From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Juanma Barranquero Newsgroups: gmane.emacs.devel Subject: Re: stop using P_, __P in header files Date: Mon, 5 Jul 2010 02:28:07 +0200 Message-ID: References: <4C2DB1E0.7010305@swipnet.se> <83aaqa9ml7.fsf@gnu.org> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=0016e6d56670ebb557048a9903e7 X-Trace: dough.gmane.org 1278289864 11612 80.91.229.12 (5 Jul 2010 00:31:04 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Mon, 5 Jul 2010 00:31:04 +0000 (UTC) Cc: Eli Zaretskii , =?UTF-8?Q?Jan_Dj=C3=A4rv?= , emacs-devel@gnu.org To: Dan Nicolaescu Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Jul 05 02:31:01 2010 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1OVZYl-0002Gj-Sf for ged-emacs-devel@m.gmane.org; Mon, 05 Jul 2010 02:31:00 +0200 Original-Received: from localhost ([127.0.0.1]:54320 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OVZYC-0006tm-UM for ged-emacs-devel@m.gmane.org; Sun, 04 Jul 2010 20:28:44 -0400 Original-Received: from [140.186.70.92] (port=34506 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OVZY3-0006sk-Cj for emacs-devel@gnu.org; Sun, 04 Jul 2010 20:28:37 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OVZY1-0002Gf-CI for emacs-devel@gnu.org; Sun, 04 Jul 2010 20:28:35 -0400 Original-Received: from mail-bw0-f41.google.com ([209.85.214.41]:33288) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OVZXw-0002G4-IC; Sun, 04 Jul 2010 20:28:29 -0400 Original-Received: by bwz9 with SMTP id 9so3151237bwz.0 for ; Sun, 04 Jul 2010 17:28:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:mime-version:received:in-reply-to :references:from:date:message-id:subject:to:cc:content-type; bh=/Wjc4Q0n0bb+pwvwQi0j/LmBqJ9uCnE9c6egOfFubGU=; b=gaihQktObrJCFhmutiUFTIGvmTXkAWqGTb/ZTLS39uwUHLDfRTJqPbQd0CyfHu+al9 961SQZf3yOaE8Zr0qoZvIg6Raogvx0E+1EIMBhedRoBfeMUJTimVe7HPhRQYo5R+tAlV qewz03v4ERNQmLvNNVh11RfUSX01qiIsfTmfc= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type; b=JLC9DnP4qRt9EGJZKMOl6p0TfyacrdCWdOfEK/dDTGR1gZVEy8tmGuFNSYYVTkEidt EcLHhTmf/2GnRCL2Ov4TSMN7KlrneJudWvqEsKQ8B2O44YYDspy13F5gV/hWyoUxWUnc RLRIR7wff03lc973ue36HAWDWHvHduDGEUKIk= Original-Received: by 10.204.85.89 with SMTP id n25mr1784342bkl.105.1278289707250; Sun, 04 Jul 2010 17:28:27 -0700 (PDT) Original-Received: by 10.204.53.204 with HTTP; Sun, 4 Jul 2010 17:28:07 -0700 (PDT) In-Reply-To: X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 2) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:126774 Archived-At: --0016e6d56670ebb557048a9903e7 Content-Type: text/plain; charset=UTF-8 Attached is rem2.diff, which includes your eval.c and term.c. Differences: - the error functions that have been reverted to K&R (they should be converted to standard variadic functions, like Ken suggested) - a few fixes They compile fine on my setup. Finally: cm.c, image.c and vm-limit.c do not cause any trouble on Windows (cm.c is not used, in fact). I'll try on Ubuntu, but if you have a log of the error you saw, that'd help. Juanma --0016e6d56670ebb557048a9903e7 Content-Type: text/x-patch; charset=US-ASCII; name="rem2.diff" Content-Disposition: attachment; filename="rem2.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gb8knyua0 PT09IG1vZGlmaWVkIGZpbGUgJ3NyYy9ldmFsLmMnDQotLS0gc3JjL2V2YWwuYwkyMDEwLTA3LTAy IDEyOjE5OjUzICswMDAwDQorKysgc3JjL2V2YWwuYwkyMDEwLTA3LTA1IDAwOjE5OjMxICswMDAw DQpAQCAtMTc3LDEyICsxNzcsMTIgQEANCiAvKiAiZ2NjIC1PMyIgZW5hYmxlcyBhdXRvbWF0aWMg ZnVuY3Rpb24gaW5saW5pbmcsIHdoaWNoIG9wdGltaXplcyBvdXQNCiAgICB0aGUgYXJndW1lbnRz IGZvciB0aGUgaW52b2NhdGlvbnMgb2YgdGhlc2UgZnVuY3Rpb25zLCB3aGVyZWFzIHRoZXkNCiAg ICBleHBlY3QgdGhlc2UgdmFsdWVzIG9uIHRoZSBzdGFjay4gICovDQotTGlzcF9PYmplY3QgYXBw bHkxICgpIF9fYXR0cmlidXRlX18oKG5vaW5saW5lKSk7DQotTGlzcF9PYmplY3QgY2FsbDIgKCkg X19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKTsNCitMaXNwX09iamVjdCBhcHBseTEgKExpc3BfT2Jq ZWN0IGZuLCBMaXNwX09iamVjdCBhcmcpIF9fYXR0cmlidXRlX18oKG5vaW5saW5lKSk7DQorTGlz cF9PYmplY3QgY2FsbDIgKExpc3BfT2JqZWN0IGZuLCBMaXNwX09iamVjdCBhcmcxLCBMaXNwX09i amVjdCBhcmcyKSBfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpOw0KICNlbmRpZg0KIAwNCiB2b2lk DQotaW5pdF9ldmFsX29uY2UgKCkNCitpbml0X2V2YWxfb25jZSAodm9pZCkNCiB7DQogICBzcGVj cGRsX3NpemUgPSA1MDsNCiAgIHNwZWNwZGwgPSAoc3RydWN0IHNwZWNiaW5kaW5nICopIHhtYWxs b2MgKHNwZWNwZGxfc2l6ZSAqIHNpemVvZiAoc3RydWN0IHNwZWNiaW5kaW5nKSk7DQpAQCAtMTk1 LDcgKzE5NSw3IEBADQogfQ0KIA0KIHZvaWQNCi1pbml0X2V2YWwgKCkNCitpbml0X2V2YWwgKHZv aWQpDQogew0KICAgc3BlY3BkbF9wdHIgPSBzcGVjcGRsOw0KICAgY2F0Y2hsaXN0ID0gMDsNCkBA IC0yMTQsOCArMjE0LDcgQEANCiAvKiB1bndpbmQtcHJvdGVjdCBmdW5jdGlvbiB1c2VkIGJ5IGNh bGxfZGVidWdnZXIuICAqLw0KIA0KIHN0YXRpYyBMaXNwX09iamVjdA0KLXJlc3RvcmVfc3RhY2tf bGltaXRzIChkYXRhKQ0KLSAgICAgTGlzcF9PYmplY3QgZGF0YTsNCityZXN0b3JlX3N0YWNrX2xp bWl0cyAoTGlzcF9PYmplY3QgZGF0YSkNCiB7DQogICBtYXhfc3BlY3BkbF9zaXplID0gWElOVCAo WENBUiAoZGF0YSkpOw0KICAgbWF4X2xpc3BfZXZhbF9kZXB0aCA9IFhJTlQgKFhDRFIgKGRhdGEp KTsNCkBAIC0yMjUsOCArMjI0LDcgQEANCiAvKiBDYWxsIHRoZSBMaXNwIGRlYnVnZ2VyLCBnaXZp bmcgaXQgYXJndW1lbnQgQVJHLiAgKi8NCiANCiBMaXNwX09iamVjdA0KLWNhbGxfZGVidWdnZXIg KGFyZykNCi0gICAgIExpc3BfT2JqZWN0IGFyZzsNCitjYWxsX2RlYnVnZ2VyIChMaXNwX09iamVj dCBhcmcpDQogew0KICAgaW50IGRlYnVnX3doaWxlX3JlZGlzcGxheWluZzsNCiAgIGludCBjb3Vu dCA9IFNQRUNQRExfSU5ERVggKCk7DQpAQCAtMjgyLDggKzI4MCw3IEBADQogfQ0KIA0KIHZvaWQN Ci1kb19kZWJ1Z19vbl9jYWxsIChjb2RlKQ0KLSAgICAgTGlzcF9PYmplY3QgY29kZTsNCitkb19k ZWJ1Z19vbl9jYWxsIChMaXNwX09iamVjdCBjb2RlKQ0KIHsNCiAgIGRlYnVnX29uX25leHRfY2Fs bCA9IDA7DQogICBiYWNrdHJhY2VfbGlzdC0+ZGVidWdfb25fZXhpdCA9IDE7DQpAQCAtNjA5LDgg KzYwNiw3IEBADQogICAgIGNhbGxlZCBpcyBhIGJ1aWx0LWluLiAgKi8NCiANCiBpbnQNCi1pbnRl cmFjdGl2ZV9wIChleGNsdWRlX3N1YnJzX3ApDQotICAgICBpbnQgZXhjbHVkZV9zdWJyc19wOw0K K2ludGVyYWN0aXZlX3AgKGludCBleGNsdWRlX3N1YnJzX3ApDQogew0KICAgc3RydWN0IGJhY2t0 cmFjZSAqYnRwOw0KICAgTGlzcF9PYmplY3QgZnVuOw0KQEAgLTkzMiw4ICs5MjgsNyBAQA0KIA0K IC8qIEVycm9yIGhhbmRsZXIgdXNlZCBpbiBGdXNlcl92YXJpYWJsZV9wLiAgKi8NCiBzdGF0aWMg TGlzcF9PYmplY3QNCi11c2VyX3ZhcmlhYmxlX3BfZWggKGlnbm9yZSkNCi0gICAgIExpc3BfT2Jq ZWN0IGlnbm9yZTsNCit1c2VyX3ZhcmlhYmxlX3BfZWggKExpc3BfT2JqZWN0IGlnbm9yZSkNCiB7 DQogICByZXR1cm4gUW5pbDsNCiB9DQpAQCAtMTIxOSwxMCArMTIxNCw3IEBADQogICAgVGhpcyBp cyBob3cgY2F0Y2hlcyBhcmUgZG9uZSBmcm9tIHdpdGhpbiBDIGNvZGUuICovDQogDQogTGlzcF9P YmplY3QNCi1pbnRlcm5hbF9jYXRjaCAodGFnLCBmdW5jLCBhcmcpDQotICAgICBMaXNwX09iamVj dCB0YWc7DQotICAgICBMaXNwX09iamVjdCAoKmZ1bmMpICgpOw0KLSAgICAgTGlzcF9PYmplY3Qg YXJnOw0KK2ludGVybmFsX2NhdGNoIChMaXNwX09iamVjdCB0YWcsIExpc3BfT2JqZWN0ICgqZnVu YykgKExpc3BfT2JqZWN0KSwgTGlzcF9PYmplY3QgYXJnKQ0KIHsNCiAgIC8qIFRoaXMgc3RydWN0 dXJlIGlzIG1hZGUgcGFydCBvZiB0aGUgY2hhaW4gYGNhdGNobGlzdCcuICAqLw0KICAgc3RydWN0 IGNhdGNodGFnIGM7DQpAQCAtMTI2Nyw5ICsxMjU5LDcgQEANCiAgICBUaGlzIGlzIHVzZWQgZm9y IGNvcnJlY3QgdW53aW5kaW5nIGluIEZ0aHJvdyBhbmQgRnNpZ25hbC4gICovDQogDQogc3RhdGlj IHZvaWQNCi11bndpbmRfdG9fY2F0Y2ggKGNhdGNoLCB2YWx1ZSkNCi0gICAgIHN0cnVjdCBjYXRj aHRhZyAqY2F0Y2g7DQotICAgICBMaXNwX09iamVjdCB2YWx1ZTsNCit1bndpbmRfdG9fY2F0Y2gg KHN0cnVjdCBjYXRjaHRhZyAqY2F0Y2gsIExpc3BfT2JqZWN0IHZhbHVlKQ0KIHsNCiAgIHJlZ2lz dGVyIGludCBsYXN0X3RpbWU7DQogDQpAQCAtMTQwMCw5ICsxMzkwLDcgQEANCiAgICByYXRoZXIg dGhhbiBwYXNzZWQgaW4gYSBsaXN0LiAgVXNlZCBieSBGYnl0ZV9jb2RlLiAgKi8NCiANCiBMaXNw X09iamVjdA0KLWludGVybmFsX2xpc3BfY29uZGl0aW9uX2Nhc2UgKHZhciwgYm9keWZvcm0sIGhh bmRsZXJzKQ0KLSAgICAgdm9sYXRpbGUgTGlzcF9PYmplY3QgdmFyOw0KLSAgICAgTGlzcF9PYmpl Y3QgYm9keWZvcm0sIGhhbmRsZXJzOw0KK2ludGVybmFsX2xpc3BfY29uZGl0aW9uX2Nhc2UgKHZv bGF0aWxlIHZvbGF0aWxlIExpc3BfT2JqZWN0IHZhciwgTGlzcF9PYmplY3QgYm9keWZvcm0sIExp c3BfT2JqZWN0IGhhbmRsZXJzKQ0KIHsNCiAgIExpc3BfT2JqZWN0IHZhbDsNCiAgIHN0cnVjdCBj YXRjaHRhZyBjOw0KQEAgLTE0NjksMTAgKzE0NTcsOCBAQA0KICAgIGJ1dCBhbGxvdyB0aGUgZGVi dWdnZXIgdG8gcnVuIGlmIHRoYXQgaXMgZW5hYmxlZC4gICovDQogDQogTGlzcF9PYmplY3QNCi1p bnRlcm5hbF9jb25kaXRpb25fY2FzZSAoYmZ1biwgaGFuZGxlcnMsIGhmdW4pDQotICAgICBMaXNw X09iamVjdCAoKmJmdW4pICgpOw0KLSAgICAgTGlzcF9PYmplY3QgaGFuZGxlcnM7DQotICAgICBM aXNwX09iamVjdCAoKmhmdW4pICgpOw0KK2ludGVybmFsX2NvbmRpdGlvbl9jYXNlIChMaXNwX09i amVjdCAoKmJmdW4pICh2b2lkKSwgTGlzcF9PYmplY3QgaGFuZGxlcnMsDQorCQkJIExpc3BfT2Jq ZWN0ICgqaGZ1bikgKExpc3BfT2JqZWN0KSkNCiB7DQogICBMaXNwX09iamVjdCB2YWw7DQogICBz dHJ1Y3QgY2F0Y2h0YWcgYzsNCkBAIC0xNTE2LDExICsxNTAyLDggQEANCiAvKiBMaWtlIGludGVy bmFsX2NvbmRpdGlvbl9jYXNlIGJ1dCBjYWxsIEJGVU4gd2l0aCBBUkcgYXMgaXRzIGFyZ3VtZW50 LiAgKi8NCiANCiBMaXNwX09iamVjdA0KLWludGVybmFsX2NvbmRpdGlvbl9jYXNlXzEgKGJmdW4s IGFyZywgaGFuZGxlcnMsIGhmdW4pDQotICAgICBMaXNwX09iamVjdCAoKmJmdW4pICgpOw0KLSAg ICAgTGlzcF9PYmplY3QgYXJnOw0KLSAgICAgTGlzcF9PYmplY3QgaGFuZGxlcnM7DQotICAgICBM aXNwX09iamVjdCAoKmhmdW4pICgpOw0KK2ludGVybmFsX2NvbmRpdGlvbl9jYXNlXzEgKExpc3Bf T2JqZWN0ICgqYmZ1bikgKExpc3BfT2JqZWN0KSwgTGlzcF9PYmplY3QgYXJnLA0KKwkJCSAgIExp c3BfT2JqZWN0IGhhbmRsZXJzLCBMaXNwX09iamVjdCAoKmhmdW4pIChMaXNwX09iamVjdCkpDQog ew0KICAgTGlzcF9PYmplY3QgdmFsOw0KICAgc3RydWN0IGNhdGNodGFnIGM7DQpAQCAtMTc5MCw4 ICsxNzczLDcgQEANCiAgICBVc2VkIGZvciBhbnl0aGluZyBidXQgUXF1aXQgKHdoaWNoIGNhbiBy ZXR1cm4gZnJvbSBGc2lnbmFsKS4gICovDQogDQogdm9pZA0KLXhzaWduYWwgKGVycm9yX3N5bWJv bCwgZGF0YSkNCi0gICAgIExpc3BfT2JqZWN0IGVycm9yX3N5bWJvbCwgZGF0YTsNCit4c2lnbmFs IChMaXNwX09iamVjdCBlcnJvcl9zeW1ib2wsIExpc3BfT2JqZWN0IGRhdGEpDQogew0KICAgRnNp Z25hbCAoZXJyb3Jfc3ltYm9sLCBkYXRhKTsNCiAgIGFib3J0ICgpOw0KQEAgLTE4MDAsMjkgKzE3 ODIsMjUgQEANCiAvKiBMaWtlIHhzaWduYWwsIGJ1dCB0YWtlcyAwLCAxLCAyLCBvciAzIGFyZ3Mg aW5zdGVhZCBvZiBhIGxpc3QuICAqLw0KIA0KIHZvaWQNCi14c2lnbmFsMCAoZXJyb3Jfc3ltYm9s KQ0KLSAgICAgTGlzcF9PYmplY3QgZXJyb3Jfc3ltYm9sOw0KK3hzaWduYWwwIChMaXNwX09iamVj dCBlcnJvcl9zeW1ib2wpDQogew0KICAgeHNpZ25hbCAoZXJyb3Jfc3ltYm9sLCBRbmlsKTsNCiB9 DQogDQogdm9pZA0KLXhzaWduYWwxIChlcnJvcl9zeW1ib2wsIGFyZykNCi0gICAgIExpc3BfT2Jq ZWN0IGVycm9yX3N5bWJvbCwgYXJnOw0KK3hzaWduYWwxIChMaXNwX09iamVjdCBlcnJvcl9zeW1i b2wsIExpc3BfT2JqZWN0IGFyZykNCiB7DQogICB4c2lnbmFsIChlcnJvcl9zeW1ib2wsIGxpc3Qx IChhcmcpKTsNCiB9DQogDQogdm9pZA0KLXhzaWduYWwyIChlcnJvcl9zeW1ib2wsIGFyZzEsIGFy ZzIpDQotICAgICBMaXNwX09iamVjdCBlcnJvcl9zeW1ib2wsIGFyZzEsIGFyZzI7DQoreHNpZ25h bDIgKExpc3BfT2JqZWN0IGVycm9yX3N5bWJvbCwgTGlzcF9PYmplY3QgYXJnMSwgTGlzcF9PYmpl Y3QgYXJnMikNCiB7DQogICB4c2lnbmFsIChlcnJvcl9zeW1ib2wsIGxpc3QyIChhcmcxLCBhcmcy KSk7DQogfQ0KIA0KIHZvaWQNCi14c2lnbmFsMyAoZXJyb3Jfc3ltYm9sLCBhcmcxLCBhcmcyLCBh cmczKQ0KLSAgICAgTGlzcF9PYmplY3QgZXJyb3Jfc3ltYm9sLCBhcmcxLCBhcmcyLCBhcmczOw0K K3hzaWduYWwzIChMaXNwX09iamVjdCBlcnJvcl9zeW1ib2wsIExpc3BfT2JqZWN0IGFyZzEsIExp c3BfT2JqZWN0IGFyZzIsIExpc3BfT2JqZWN0IGFyZzMpDQogew0KICAgeHNpZ25hbCAoZXJyb3Jf c3ltYm9sLCBsaXN0MyAoYXJnMSwgYXJnMiwgYXJnMykpOw0KIH0NCkBAIC0xODMxLDkgKzE4MDks NyBAQA0KICAgIElmIEFSRyBpcyBub3QgYSBnZW51aW5lIGxpc3QsIG1ha2UgaXQgYSBvbmUtZWxl bWVudCBsaXN0LiAgKi8NCiANCiB2b2lkDQotc2lnbmFsX2Vycm9yIChzLCBhcmcpDQotICAgICBj aGFyICpzOw0KLSAgICAgTGlzcF9PYmplY3QgYXJnOw0KK3NpZ25hbF9lcnJvciAoY2hhciAqcywg TGlzcF9PYmplY3QgYXJnKQ0KIHsNCiAgIExpc3BfT2JqZWN0IHRvcnRvaXNlLCBoYXJlOw0KIA0K QEAgLTE4NjIsOCArMTgzOCw3IEBADQogICAgYSBsaXN0IGNvbnRhaW5pbmcgb25lIG9mIENPTkRJ VElPTlMuICAqLw0KIA0KIHN0YXRpYyBpbnQNCi13YW50c19kZWJ1Z2dlciAobGlzdCwgY29uZGl0 aW9ucykNCi0gICAgIExpc3BfT2JqZWN0IGxpc3QsIGNvbmRpdGlvbnM7DQord2FudHNfZGVidWdn ZXIgKExpc3BfT2JqZWN0IGxpc3QsIExpc3BfT2JqZWN0IGNvbmRpdGlvbnMpDQogew0KICAgaWYg KE5JTFAgKGxpc3QpKQ0KICAgICByZXR1cm4gMDsNCkBAIC0xODg3LDggKzE4NjIsNyBAQA0KICAg IGFjY29yZGluZyB0byBkZWJ1Z2dlci1pZ25vcmVkLWVycm9ycy4gICovDQogDQogc3RhdGljIGlu dA0KLXNraXBfZGVidWdnZXIgKGNvbmRpdGlvbnMsIGRhdGEpDQotICAgICBMaXNwX09iamVjdCBj b25kaXRpb25zLCBkYXRhOw0KK3NraXBfZGVidWdnZXIgKExpc3BfT2JqZWN0IGNvbmRpdGlvbnMs IExpc3BfT2JqZWN0IGRhdGEpDQogew0KICAgTGlzcF9PYmplY3QgdGFpbDsNCiAgIGludCBmaXJz dF9zdHJpbmcgPSAxOw0KQEAgLTE5MjUsOCArMTg5OSw3IEBADQogICAgU0lHIGFuZCBEQVRBIGRl c2NyaWJlIHRoZSBzaWduYWwsIGFzIGluIGZpbmRfaGFuZGxlcl9jbGF1c2UuICAqLw0KIA0KIHN0 YXRpYyBpbnQNCi1tYXliZV9jYWxsX2RlYnVnZ2VyIChjb25kaXRpb25zLCBzaWcsIGRhdGEpDQot ICAgICBMaXNwX09iamVjdCBjb25kaXRpb25zLCBzaWcsIGRhdGE7DQorbWF5YmVfY2FsbF9kZWJ1 Z2dlciAoTGlzcF9PYmplY3QgY29uZGl0aW9ucywgTGlzcF9PYmplY3Qgc2lnLCBMaXNwX09iamVj dCBkYXRhKQ0KIHsNCiAgIExpc3BfT2JqZWN0IGNvbWJpbmVkX2RhdGE7DQogDQpAQCAtMTk2Miw4 ICsxOTM1LDcgQEANCiAgICBhIHNlY29uZCBlcnJvciBoZXJlIGluIGNhc2Ugd2UncmUgaGFuZGxp bmcgc3BlY3BkbCBvdmVyZmxvdy4gICovDQogDQogc3RhdGljIExpc3BfT2JqZWN0DQotZmluZF9o YW5kbGVyX2NsYXVzZSAoaGFuZGxlcnMsIGNvbmRpdGlvbnMsIHNpZywgZGF0YSkNCi0gICAgIExp c3BfT2JqZWN0IGhhbmRsZXJzLCBjb25kaXRpb25zLCBzaWcsIGRhdGE7DQorZmluZF9oYW5kbGVy X2NsYXVzZSAoTGlzcF9PYmplY3QgaGFuZGxlcnMsIExpc3BfT2JqZWN0IGNvbmRpdGlvbnMsIExp c3BfT2JqZWN0IHNpZywgTGlzcF9PYmplY3QgZGF0YSkNCiB7DQogICByZWdpc3RlciBMaXNwX09i amVjdCBoOw0KICAgcmVnaXN0ZXIgTGlzcF9PYmplY3QgdGVtOw0KQEAgLTIyMDUsOCArMjE3Nyw3 IEBADQogfQ0KIA0KIExpc3BfT2JqZWN0DQotdW5fYXV0b2xvYWQgKG9sZHF1ZXVlKQ0KLSAgICAg TGlzcF9PYmplY3Qgb2xkcXVldWU7DQordW5fYXV0b2xvYWQgKExpc3BfT2JqZWN0IG9sZHF1ZXVl KQ0KIHsNCiAgIHJlZ2lzdGVyIExpc3BfT2JqZWN0IHF1ZXVlLCBmaXJzdCwgc2Vjb25kOw0KIA0K QEAgLTIyMzMsOCArMjIwNCw3IEBADQogICAgRlVOREVGIGlzIHRoZSBhdXRvbG9hZCBkZWZpbml0 aW9uIChhIGxpc3QpLiAgKi8NCiANCiB2b2lkDQotZG9fYXV0b2xvYWQgKGZ1bmRlZiwgZnVubmFt ZSkNCi0gICAgIExpc3BfT2JqZWN0IGZ1bmRlZiwgZnVubmFtZTsNCitkb19hdXRvbG9hZCAoTGlz cF9PYmplY3QgZnVuZGVmLCBMaXNwX09iamVjdCBmdW5uYW1lKQ0KIHsNCiAgIGludCBjb3VudCA9 IFNQRUNQRExfSU5ERVggKCk7DQogICBMaXNwX09iamVjdCBmdW47DQpAQCAtMjY4MiwxMCArMjY1 Miw3IEBADQogICAgZXhjZXB0IHRoYXQgaXQgaXNuJ3QgbmVjZXNzYXJ5IHRvIGdjcHJvIEFSR1Nb MF0uICAqLw0KIA0KIHN0YXRpYyBMaXNwX09iamVjdA0KLXJ1bl9ob29rX3dpdGhfYXJncyAobmFy Z3MsIGFyZ3MsIGNvbmQpDQotICAgICBpbnQgbmFyZ3M7DQotICAgICBMaXNwX09iamVjdCAqYXJn czsNCi0gICAgIGVudW0gcnVuX2hvb2tzX2NvbmRpdGlvbiBjb25kOw0KK3J1bl9ob29rX3dpdGhf YXJncyAoaW50IG5hcmdzLCBMaXNwX09iamVjdCAqYXJncywgZW51bSBydW5faG9va3NfY29uZGl0 aW9uIGNvbmQpDQogew0KICAgTGlzcF9PYmplY3Qgc3ltLCB2YWwsIHJldDsNCiAgIHN0cnVjdCBn Y3BybyBnY3BybzEsIGdjcHJvMiwgZ2Nwcm8zOw0KQEAgLTI3NjUsMTAgKzI3MzIsNyBAQA0KICAg IGV4Y2VwdCB0aGF0IGl0IGlzbid0IG5lY2Vzc2FyeSB0byBnY3BybyBBUkdTWzBdLiAgKi8NCiAN CiBMaXNwX09iamVjdA0KLXJ1bl9ob29rX2xpc3Rfd2l0aF9hcmdzIChmdW5saXN0LCBuYXJncywg YXJncykNCi0gICAgIExpc3BfT2JqZWN0IGZ1bmxpc3Q7DQotICAgICBpbnQgbmFyZ3M7DQotICAg ICBMaXNwX09iamVjdCAqYXJnczsNCitydW5faG9va19saXN0X3dpdGhfYXJncyAoTGlzcF9PYmpl Y3QgZnVubGlzdCwgaW50IG5hcmdzLCBMaXNwX09iamVjdCAqYXJncykNCiB7DQogICBMaXNwX09i amVjdCBzeW07DQogICBMaXNwX09iamVjdCB2YWw7DQpAQCAtMjgxMCw4ICsyNzc0LDcgQEANCiAv KiBSdW4gdGhlIGhvb2sgSE9PSywgZ2l2aW5nIGVhY2ggZnVuY3Rpb24gdGhlIHR3byBhcmdzIEFS RzEgYW5kIEFSRzIuICAqLw0KIA0KIHZvaWQNCi1ydW5faG9va193aXRoX2FyZ3NfMiAoaG9vaywg YXJnMSwgYXJnMikNCi0gICAgIExpc3BfT2JqZWN0IGhvb2ssIGFyZzEsIGFyZzI7DQorcnVuX2hv b2tfd2l0aF9hcmdzXzIgKExpc3BfT2JqZWN0IGhvb2ssIExpc3BfT2JqZWN0IGFyZzEsIExpc3Bf T2JqZWN0IGFyZzIpDQogew0KICAgTGlzcF9PYmplY3QgdGVtcFszXTsNCiAgIHRlbXBbMF0gPSBo b29rOw0KQEAgLTI4MjMsOCArMjc4Niw3IEBADQogDA0KIC8qIEFwcGx5IGZuIHRvIGFyZyAqLw0K IExpc3BfT2JqZWN0DQotYXBwbHkxIChmbiwgYXJnKQ0KLSAgICAgTGlzcF9PYmplY3QgZm4sIGFy ZzsNCithcHBseTEgKExpc3BfT2JqZWN0IGZuLCBMaXNwX09iamVjdCBhcmcpDQogew0KICAgc3Ry dWN0IGdjcHJvIGdjcHJvMTsNCiANCkBAIC0yODQzLDggKzI4MDUsNyBAQA0KIA0KIC8qIENhbGwg ZnVuY3Rpb24gZm4gb24gbm8gYXJndW1lbnRzICovDQogTGlzcF9PYmplY3QNCi1jYWxsMCAoZm4p DQotICAgICBMaXNwX09iamVjdCBmbjsNCitjYWxsMCAoTGlzcF9PYmplY3QgZm4pDQogew0KICAg c3RydWN0IGdjcHJvIGdjcHJvMTsNCiANCkBAIC0yODU1LDggKzI4MTYsNyBAQA0KIC8qIENhbGwg ZnVuY3Rpb24gZm4gd2l0aCAxIGFyZ3VtZW50IGFyZzEgKi8NCiAvKiBBUkdTVVNFRCAqLw0KIExp c3BfT2JqZWN0DQotY2FsbDEgKGZuLCBhcmcxKQ0KLSAgICAgTGlzcF9PYmplY3QgZm4sIGFyZzE7 DQorY2FsbDEgKExpc3BfT2JqZWN0IGZuLCBMaXNwX09iamVjdCBhcmcxKQ0KIHsNCiAgIHN0cnVj dCBnY3BybyBnY3BybzE7DQogICBMaXNwX09iamVjdCBhcmdzWzJdOw0KQEAgLTI4NzEsOCArMjgz MSw3IEBADQogLyogQ2FsbCBmdW5jdGlvbiBmbiB3aXRoIDIgYXJndW1lbnRzIGFyZzEsIGFyZzIg Ki8NCiAvKiBBUkdTVVNFRCAqLw0KIExpc3BfT2JqZWN0DQotY2FsbDIgKGZuLCBhcmcxLCBhcmcy KQ0KLSAgICAgTGlzcF9PYmplY3QgZm4sIGFyZzEsIGFyZzI7DQorY2FsbDIgKExpc3BfT2JqZWN0 IGZuLCBMaXNwX09iamVjdCBhcmcxLCBMaXNwX09iamVjdCBhcmcyKQ0KIHsNCiAgIHN0cnVjdCBn Y3BybyBnY3BybzE7DQogICBMaXNwX09iamVjdCBhcmdzWzNdOw0KQEAgLTI4ODcsOCArMjg0Niw3 IEBADQogLyogQ2FsbCBmdW5jdGlvbiBmbiB3aXRoIDMgYXJndW1lbnRzIGFyZzEsIGFyZzIsIGFy ZzMgKi8NCiAvKiBBUkdTVVNFRCAqLw0KIExpc3BfT2JqZWN0DQotY2FsbDMgKGZuLCBhcmcxLCBh cmcyLCBhcmczKQ0KLSAgICAgTGlzcF9PYmplY3QgZm4sIGFyZzEsIGFyZzIsIGFyZzM7DQorY2Fs bDMgKExpc3BfT2JqZWN0IGZuLCBMaXNwX09iamVjdCBhcmcxLCBMaXNwX09iamVjdCBhcmcyLCBM aXNwX09iamVjdCBhcmczKQ0KIHsNCiAgIHN0cnVjdCBnY3BybyBnY3BybzE7DQogICBMaXNwX09i amVjdCBhcmdzWzRdOw0KQEAgLTI5MDQsOCArMjg2Miw4IEBADQogLyogQ2FsbCBmdW5jdGlvbiBm biB3aXRoIDQgYXJndW1lbnRzIGFyZzEsIGFyZzIsIGFyZzMsIGFyZzQgKi8NCiAvKiBBUkdTVVNF RCAqLw0KIExpc3BfT2JqZWN0DQotY2FsbDQgKGZuLCBhcmcxLCBhcmcyLCBhcmczLCBhcmc0KQ0K LSAgICAgTGlzcF9PYmplY3QgZm4sIGFyZzEsIGFyZzIsIGFyZzMsIGFyZzQ7DQorY2FsbDQgKExp c3BfT2JqZWN0IGZuLCBMaXNwX09iamVjdCBhcmcxLCBMaXNwX09iamVjdCBhcmcyLCBMaXNwX09i amVjdCBhcmczLA0KKyAgICAgICBMaXNwX09iamVjdCBhcmc0KQ0KIHsNCiAgIHN0cnVjdCBnY3By byBnY3BybzE7DQogICBMaXNwX09iamVjdCBhcmdzWzVdOw0KQEAgLTI5MjIsOCArMjg4MCw4IEBA DQogLyogQ2FsbCBmdW5jdGlvbiBmbiB3aXRoIDUgYXJndW1lbnRzIGFyZzEsIGFyZzIsIGFyZzMs IGFyZzQsIGFyZzUgKi8NCiAvKiBBUkdTVVNFRCAqLw0KIExpc3BfT2JqZWN0DQotY2FsbDUgKGZu LCBhcmcxLCBhcmcyLCBhcmczLCBhcmc0LCBhcmc1KQ0KLSAgICAgTGlzcF9PYmplY3QgZm4sIGFy ZzEsIGFyZzIsIGFyZzMsIGFyZzQsIGFyZzU7DQorY2FsbDUgKExpc3BfT2JqZWN0IGZuLCBMaXNw X09iamVjdCBhcmcxLCBMaXNwX09iamVjdCBhcmcyLCBMaXNwX09iamVjdCBhcmczLA0KKyAgICAg ICBMaXNwX09iamVjdCBhcmc0LCBMaXNwX09iamVjdCBhcmc1KQ0KIHsNCiAgIHN0cnVjdCBnY3By byBnY3BybzE7DQogICBMaXNwX09iamVjdCBhcmdzWzZdOw0KQEAgLTI5NDEsOCArMjg5OSw4IEBA DQogLyogQ2FsbCBmdW5jdGlvbiBmbiB3aXRoIDYgYXJndW1lbnRzIGFyZzEsIGFyZzIsIGFyZzMs IGFyZzQsIGFyZzUsIGFyZzYgKi8NCiAvKiBBUkdTVVNFRCAqLw0KIExpc3BfT2JqZWN0DQotY2Fs bDYgKGZuLCBhcmcxLCBhcmcyLCBhcmczLCBhcmc0LCBhcmc1LCBhcmc2KQ0KLSAgICAgTGlzcF9P YmplY3QgZm4sIGFyZzEsIGFyZzIsIGFyZzMsIGFyZzQsIGFyZzUsIGFyZzY7DQorY2FsbDYgKExp c3BfT2JqZWN0IGZuLCBMaXNwX09iamVjdCBhcmcxLCBMaXNwX09iamVjdCBhcmcyLCBMaXNwX09i amVjdCBhcmczLA0KKyAgICAgICBMaXNwX09iamVjdCBhcmc0LCBMaXNwX09iamVjdCBhcmc1LCBM aXNwX09iamVjdCBhcmc2KQ0KIHsNCiAgIHN0cnVjdCBnY3BybyBnY3BybzE7DQogICBMaXNwX09i amVjdCBhcmdzWzddOw0KQEAgLTI5NjEsOCArMjkxOSw4IEBADQogLyogQ2FsbCBmdW5jdGlvbiBm biB3aXRoIDcgYXJndW1lbnRzIGFyZzEsIGFyZzIsIGFyZzMsIGFyZzQsIGFyZzUsIGFyZzYsIGFy ZzcgKi8NCiAvKiBBUkdTVVNFRCAqLw0KIExpc3BfT2JqZWN0DQotY2FsbDcgKGZuLCBhcmcxLCBh cmcyLCBhcmczLCBhcmc0LCBhcmc1LCBhcmc2LCBhcmc3KQ0KLSAgICAgTGlzcF9PYmplY3QgZm4s IGFyZzEsIGFyZzIsIGFyZzMsIGFyZzQsIGFyZzUsIGFyZzYsIGFyZzc7DQorY2FsbDcgKExpc3Bf T2JqZWN0IGZuLCBMaXNwX09iamVjdCBhcmcxLCBMaXNwX09iamVjdCBhcmcyLCBMaXNwX09iamVj dCBhcmczLA0KKyAgICAgICBMaXNwX09iamVjdCBhcmc0LCBMaXNwX09iamVjdCBhcmc1LCBMaXNw X09iamVjdCBhcmc2LCBMaXNwX09iamVjdCBhcmc3KQ0KIHsNCiAgIHN0cnVjdCBnY3BybyBnY3By bzE7DQogICBMaXNwX09iamVjdCBhcmdzWzhdOw0KQEAgLTMxNDcsOSArMzEwNSw3IEBADQogfQ0K IAwNCiBMaXNwX09iamVjdA0KLWFwcGx5X2xhbWJkYSAoZnVuLCBhcmdzLCBldmFsX2ZsYWcpDQot ICAgICBMaXNwX09iamVjdCBmdW4sIGFyZ3M7DQotICAgICBpbnQgZXZhbF9mbGFnOw0KK2FwcGx5 X2xhbWJkYSAoTGlzcF9PYmplY3QgZnVuLCBMaXNwX09iamVjdCBhcmdzLCBpbnQgZXZhbF9mbGFn KQ0KIHsNCiAgIExpc3BfT2JqZWN0IGFyZ3NfbGVmdDsNCiAgIExpc3BfT2JqZWN0IG51bWFyZ3M7 DQpAQCAtMzE5NiwxMCArMzE1Miw3IEBADQogICAgRlVOIG11c3QgYmUgZWl0aGVyIGEgbGFtYmRh LWV4cHJlc3Npb24gb3IgYSBjb21waWxlZC1jb2RlIG9iamVjdC4gICovDQogDQogc3RhdGljIExp c3BfT2JqZWN0DQotZnVuY2FsbF9sYW1iZGEgKGZ1biwgbmFyZ3MsIGFyZ192ZWN0b3IpDQotICAg ICBMaXNwX09iamVjdCBmdW47DQotICAgICBpbnQgbmFyZ3M7DQotICAgICByZWdpc3RlciBMaXNw X09iamVjdCAqYXJnX3ZlY3RvcjsNCitmdW5jYWxsX2xhbWJkYSAoTGlzcF9PYmplY3QgZnVuLCBp bnQgbmFyZ3MsIHJlZ2lzdGVyIExpc3BfT2JqZWN0ICphcmdfdmVjdG9yKQ0KIHsNCiAgIExpc3Bf T2JqZWN0IHZhbCwgc3ltc19sZWZ0LCBuZXh0Ow0KICAgaW50IGNvdW50ID0gU1BFQ1BETF9JTkRF WCAoKTsNCkBAIC0zMjkxLDcgKzMyNDQsNyBAQA0KIH0NCiAMDQogdm9pZA0KLWdyb3dfc3BlY3Bk bCAoKQ0KK2dyb3dfc3BlY3BkbCAodm9pZCkNCiB7DQogICByZWdpc3RlciBpbnQgY291bnQgPSBT UEVDUERMX0lOREVYICgpOw0KICAgaWYgKHNwZWNwZGxfc2l6ZSA+PSBtYXhfc3BlY3BkbF9zaXpl KQ0KQEAgLTMzMjQsOCArMzI3Nyw3IEBADQogICAgICBCVUZGRVIgZGlkIG5vdCB5ZXQgaGF2ZSBh IGJ1ZmZlci1sb2NhbCB2YWx1ZSkuICAqLw0KIA0KIHZvaWQNCi1zcGVjYmluZCAoc3ltYm9sLCB2 YWx1ZSkNCi0gICAgIExpc3BfT2JqZWN0IHN5bWJvbCwgdmFsdWU7DQorc3BlY2JpbmQgKExpc3Bf T2JqZWN0IHN5bWJvbCwgTGlzcF9PYmplY3QgdmFsdWUpDQogew0KICAgc3RydWN0IExpc3BfU3lt Ym9sICpzeW07DQogDQpAQCAtMzQyMyw5ICszMzc1LDcgQEANCiB9DQogDQogdm9pZA0KLXJlY29y ZF91bndpbmRfcHJvdGVjdCAoZnVuY3Rpb24sIGFyZykNCi0gICAgIExpc3BfT2JqZWN0ICgqZnVu Y3Rpb24pIChMaXNwX09iamVjdCk7DQotICAgICBMaXNwX09iamVjdCBhcmc7DQorcmVjb3JkX3Vu d2luZF9wcm90ZWN0IChMaXNwX09iamVjdCAoKmZ1bmN0aW9uKSAoTGlzcF9PYmplY3QpLCBMaXNw X09iamVjdCBhcmcpDQogew0KICAgZWFzc2VydCAoIWhhbmRsaW5nX3NpZ25hbCk7DQogDQpAQCAt MzQzOCw5ICszMzg4LDcgQEANCiB9DQogDQogTGlzcF9PYmplY3QNCi11bmJpbmRfdG8gKGNvdW50 LCB2YWx1ZSkNCi0gICAgIGludCBjb3VudDsNCi0gICAgIExpc3BfT2JqZWN0IHZhbHVlOw0KK3Vu YmluZF90byAoaW50IGNvdW50LCBMaXNwX09iamVjdCB2YWx1ZSkNCiB7DQogICBMaXNwX09iamVj dCBxdWl0ZiA9IFZxdWl0X2ZsYWc7DQogICBzdHJ1Y3QgZ2Nwcm8gZ2Nwcm8xLCBnY3BybzI7DQpA QCAtMzYyMyw3ICszNTcxLDcgQEANCiANCiAMDQogdm9pZA0KLW1hcmtfYmFja3RyYWNlICgpDQor bWFya19iYWNrdHJhY2UgKHZvaWQpDQogew0KICAgcmVnaXN0ZXIgc3RydWN0IGJhY2t0cmFjZSAq YmFja2xpc3Q7DQogICByZWdpc3RlciBpbnQgaTsNCkBAIC0zNjQyLDcgKzM1OTAsNyBAQA0KIH0N CiANCiB2b2lkDQotc3ltc19vZl9ldmFsICgpDQorc3ltc19vZl9ldmFsICh2b2lkKQ0KIHsNCiAg IERFRlZBUl9JTlQgKCJtYXgtc3BlY3BkbC1zaXplIiwgJm1heF9zcGVjcGRsX3NpemUsDQogCSAg ICAgIGRvYzogLyogKkxpbWl0IG9uIG51bWJlciBvZiBMaXNwIHZhcmlhYmxlIGJpbmRpbmdzIGFu ZCBgdW53aW5kLXByb3RlY3Qncy4NCg0KPT09IG1vZGlmaWVkIGZpbGUgJ3NyYy90ZXJtLmMnDQot LS0gc3JjL3Rlcm0uYwkyMDEwLTA3LTAyIDIyOjE4OjI4ICswMDAwDQorKysgc3JjL3Rlcm0uYwky MDEwLTA3LTA1IDAwOjEzOjM5ICswMDAwDQpAQCAtMTgxLDcgKzE4MSw3IEBADQogDQogY2hhciAq dHBhcmFtICgpOw0KIA0KLWV4dGVybiBjaGFyICp0Z2V0c3RyICgpOw0KK2V4dGVybiBjaGFyICp0 Z2V0c3RyIChjaGFyICosIGNoYXIgKiopOw0KIAwNCiANCiAjaWZkZWYgSEFWRV9HUE0NCkBAIC01 NTgsMTAgKzU1OCw3IEBADQogICAgc2VxdWVuY2UsIGFuZCByZXR1cm4gYSBwb2ludGVyIHRvIHRo YXQgYnl0ZSBzZXF1ZW5jZS4gICovDQogDQogdW5zaWduZWQgY2hhciAqDQotZW5jb2RlX3Rlcm1p bmFsX2NvZGUgKHNyYywgc3JjX2xlbiwgY29kaW5nKQ0KLSAgICAgc3RydWN0IGdseXBoICpzcmM7 DQotICAgICBpbnQgc3JjX2xlbjsNCi0gICAgIHN0cnVjdCBjb2Rpbmdfc3lzdGVtICpjb2Rpbmc7 DQorZW5jb2RlX3Rlcm1pbmFsX2NvZGUgKHN0cnVjdCBnbHlwaCAqc3JjLCBpbnQgc3JjX2xlbiwg c3RydWN0IGNvZGluZ19zeXN0ZW0gKmNvZGluZykNCiB7DQogICBzdHJ1Y3QgZ2x5cGggKnNyY19l bmQgPSBzcmMgKyBzcmNfbGVuOw0KICAgdW5zaWduZWQgY2hhciAqYnVmOw0KQEAgLTgzNiwxMCAr ODMzLDggQEANCiAjaWZkZWYgSEFWRV9HUE0JCQkvKiBPbmx5IHVzZWQgYnkgR1BNIGNvZGUuICAq Lw0KIA0KIHN0YXRpYyB2b2lkDQotdHR5X3dyaXRlX2dseXBoc193aXRoX2ZhY2UgKGYsIHN0cmlu ZywgbGVuLCBmYWNlX2lkKQ0KLSAgICAgcmVnaXN0ZXIgc3RydWN0IGZyYW1lICpmOw0KLSAgICAg cmVnaXN0ZXIgc3RydWN0IGdseXBoICpzdHJpbmc7DQotICAgICByZWdpc3RlciBpbnQgbGVuLCBm YWNlX2lkOw0KK3R0eV93cml0ZV9nbHlwaHNfd2l0aF9mYWNlIChyZWdpc3RlciBzdHJ1Y3QgZnJh bWUgKmYsIHJlZ2lzdGVyIHN0cnVjdCBnbHlwaCAqc3RyaW5nLA0KKwkJCSAgICByZWdpc3RlciBp bnQgbGVuLCByZWdpc3RlciBpbnQgZmFjZV9pZCkNCiB7DQogICB1bnNpZ25lZCBjaGFyICpjb252 ZXJzaW9uX2J1ZmZlcjsNCiAgIHN0cnVjdCBjb2Rpbmdfc3lzdGVtICpjb2Rpbmc7DQpAQCAtMTM2 NiwxNiArMTM2MSwxNCBAQA0KIA0KIHN0YXRpYyBjaGFyICoqdGVybV9nZXRfZmtleXNfYWRkcmVz czsNCiBzdGF0aWMgS0JPQVJEICp0ZXJtX2dldF9ma2V5c19rYm9hcmQ7DQotc3RhdGljIExpc3Bf T2JqZWN0IHRlcm1fZ2V0X2ZrZXlzXzEgKCk7DQorc3RhdGljIExpc3BfT2JqZWN0IHRlcm1fZ2V0 X2ZrZXlzXzEgKHZvaWQpOw0KIA0KIC8qIEZpbmQgdGhlIGVzY2FwZSBjb2RlcyBzZW50IGJ5IHRo ZSBmdW5jdGlvbiBrZXlzIGZvciBWaW5wdXRfZGVjb2RlX21hcC4NCiAgICBUaGlzIGZ1bmN0aW9u IHNjYW5zIHRoZSB0ZXJtY2FwIGZ1bmN0aW9uIGtleSBzZXF1ZW5jZSBlbnRyaWVzLCBhbmQNCiAg ICBhZGRzIGVudHJpZXMgdG8gVmlucHV0X2RlY29kZV9tYXAgZm9yIGVhY2ggZnVuY3Rpb24ga2V5 IGl0IGZpbmRzLiAgKi8NCiANCiBzdGF0aWMgdm9pZA0KLXRlcm1fZ2V0X2ZrZXlzIChhZGRyZXNz LCBrYm9hcmQpDQotICAgICBjaGFyICoqYWRkcmVzczsNCi0gICAgIEtCT0FSRCAqa2JvYXJkOw0K K3Rlcm1fZ2V0X2ZrZXlzIChjaGFyICoqYWRkcmVzcywgS0JPQVJEICprYm9hcmQpDQogew0KICAg LyogV2UgcnVuIHRoZSBib2R5IG9mIHRoZSBmdW5jdGlvbiAodGVybV9nZXRfZmtleXNfMSkgYW5k IGlnbm9yZSBhbGwgTGlzcA0KICAgICAgZXJyb3JzIGR1cmluZyB0aGUgY2FsbC4gIFRoZSBvbmx5 IGVycm9ycyBzaG91bGQgYmUgZnJvbSBGZGVmaW5lX2tleQ0KQEAgLTEzOTIsNyArMTM4NSw3IEBA DQogfQ0KIA0KIHN0YXRpYyBMaXNwX09iamVjdA0KLXRlcm1fZ2V0X2ZrZXlzXzEgKCkNCit0ZXJt X2dldF9ma2V5c18xICh2b2lkKQ0KIHsNCiAgIGludCBpOw0KIA0KQEAgLTE1MjksOCArMTUyMiw3 IEBADQogICAgSVQtPnBpeGVsX3dpZHRoID4gMS4gICovDQogDQogc3RhdGljIHZvaWQNCi1hcHBl bmRfZ2x5cGggKGl0KQ0KLSAgICAgc3RydWN0IGl0ICppdDsNCithcHBlbmRfZ2x5cGggKHN0cnVj dCBpdCAqaXQpDQogew0KICAgc3RydWN0IGdseXBoICpnbHlwaCwgKmVuZDsNCiAgIGludCBpOw0K QEAgLTE2MDksOCArMTYwMSw3IEBADQogICAgaW5zdGVhZCB0aGV5IHVzZSB0aGUgbWFjcm8gUFJP RFVDRV9HTFlQSFMuICAqLw0KIA0KIHZvaWQNCi1wcm9kdWNlX2dseXBocyAoaXQpDQotICAgICBz dHJ1Y3QgaXQgKml0Ow0KK3Byb2R1Y2VfZ2x5cGhzIChzdHJ1Y3QgaXQgKml0KQ0KIHsNCiAgIC8q IElmIGEgaG9vayBpcyBpbnN0YWxsZWQsIGxldCBpdCBkbyB0aGUgd29yay4gICovDQogDQpAQCAt MTcyOCw4ICsxNzE5LDcgQEANCiAgICB0byByZWFjaCBIUE9TLCBhIHZhbHVlIGluIGNhbm9uaWNh bCBjaGFyYWN0ZXIgdW5pdHMuICAqLw0KIA0KIHN0YXRpYyB2b2lkDQotcHJvZHVjZV9zdHJldGNo X2dseXBoIChpdCkNCi0gICAgIHN0cnVjdCBpdCAqaXQ7DQorcHJvZHVjZV9zdHJldGNoX2dseXBo IChzdHJ1Y3QgaXQgKml0KQ0KIHsNCiAgIC8qIChzcGFjZSA6d2lkdGggV0lEVEggLi4uKSAgKi8N CiAgIExpc3BfT2JqZWN0IHByb3AsIHBsaXN0Ow0KQEAgLTE3OTgsOCArMTc4OCw3IEBADQogICAg ZmFjZS4gICovDQogDQogc3RhdGljIHZvaWQNCi1hcHBlbmRfY29tcG9zaXRlX2dseXBoIChpdCkN Ci0gICAgIHN0cnVjdCBpdCAqaXQ7DQorYXBwZW5kX2NvbXBvc2l0ZV9nbHlwaCAoc3RydWN0IGl0 ICppdCkNCiB7DQogICBzdHJ1Y3QgZ2x5cGggKmdseXBoOw0KIA0KQEAgLTE4NjMsOCArMTg1Miw3 IEBADQogICAgY29ycmVjdGx5LiAgKi8NCiANCiBzdGF0aWMgdm9pZA0KLXByb2R1Y2VfY29tcG9z aXRlX2dseXBoIChpdCkNCi0gICAgIHN0cnVjdCBpdCAqaXQ7DQorcHJvZHVjZV9jb21wb3NpdGVf Z2x5cGggKHN0cnVjdCBpdCAqaXQpDQogew0KICAgaW50IGM7DQogDQpAQCAtMTg5NCw5ICsxODgy LDcgQEANCiAgICBmYWNlX2lkLCBjLCBsZW4gb2YgSVQgYXJlIGxlZnQgdW50b3VjaGVkLiAgKi8N CiANCiB2b2lkDQotcHJvZHVjZV9zcGVjaWFsX2dseXBocyAoaXQsIHdoYXQpDQotICAgICBzdHJ1 Y3QgaXQgKml0Ow0KLSAgICAgZW51bSBkaXNwbGF5X2VsZW1lbnRfdHlwZSB3aGF0Ow0KK3Byb2R1 Y2Vfc3BlY2lhbF9nbHlwaHMgKHN0cnVjdCBpdCAqaXQsIGVudW0gZGlzcGxheV9lbGVtZW50X3R5 cGUgd2hhdCkNCiB7DQogICBzdHJ1Y3QgaXQgdGVtcF9pdDsNCiAgIExpc3BfT2JqZWN0IGdjOw0K QEAgLTE5NzAsOSArMTk1Niw3IEBADQogICAgRkFDRV9JRCBpcyBhIHJlYWxpemVkIGZhY2UgSUQg bnVtYmVyLCBpbiB0aGUgZmFjZSBjYWNoZS4gICovDQogDQogc3RhdGljIHZvaWQNCi10dXJuX29u X2ZhY2UgKGYsIGZhY2VfaWQpDQotICAgICBzdHJ1Y3QgZnJhbWUgKmY7DQotICAgICBpbnQgZmFj ZV9pZDsNCit0dXJuX29uX2ZhY2UgKHN0cnVjdCBmcmFtZSAqZiwgaW50IGZhY2VfaWQpDQogew0K ICAgc3RydWN0IGZhY2UgKmZhY2UgPSBGQUNFX0ZST01fSUQgKGYsIGZhY2VfaWQpOw0KICAgbG9u ZyBmZyA9IGZhY2UtPmZvcmVncm91bmQ7DQpAQCAtMjA2OSw5ICsyMDUzLDcgQEANCiAvKiBUdXJu IG9mZiBhcHBlYXJhbmNlcyBvZiBmYWNlIEZBQ0VfSUQgb24gdHR5IGZyYW1lIEYuICAqLw0KIA0K IHN0YXRpYyB2b2lkDQotdHVybl9vZmZfZmFjZSAoZiwgZmFjZV9pZCkNCi0gICAgIHN0cnVjdCBm cmFtZSAqZjsNCi0gICAgIGludCBmYWNlX2lkOw0KK3R1cm5fb2ZmX2ZhY2UgKHN0cnVjdCBmcmFt ZSAqZiwgaW50IGZhY2VfaWQpDQogew0KICAgc3RydWN0IGZhY2UgKmZhY2UgPSBGQUNFX0ZST01f SUQgKGYsIGZhY2VfaWQpOw0KICAgc3RydWN0IHR0eV9kaXNwbGF5X2luZm8gKnR0eSA9IEZSQU1F X1RUWSAoZik7DQpAQCAtMjEyNCwxMCArMjEwNiw4IEBADQogICAgY29sb3JzIEZHIGFuZCBCRy4g ICovDQogDQogaW50DQotdHR5X2NhcGFibGVfcCAodHR5LCBjYXBzLCBmZywgYmcpDQotICAgICBz dHJ1Y3QgdHR5X2Rpc3BsYXlfaW5mbyAqdHR5Ow0KLSAgICAgdW5zaWduZWQgY2FwczsNCi0gICAg IHVuc2lnbmVkIGxvbmcgZmcsIGJnOw0KK3R0eV9jYXBhYmxlX3AgKHN0cnVjdCB0dHlfZGlzcGxh eV9pbmZvICp0dHksIHVuc2lnbmVkIGludCBjYXBzLA0KKwkgICAgICAgbG9uZyB1bnNpZ25lZCBp bnQgZmcsIGxvbmcgdW5zaWduZWQgaW50IGJnKQ0KIHsNCiAjZGVmaW5lIFRUWV9DQVBBQkxFX1Bf VFJZKHR0eSwgY2FwLCBUUywgTkNfYml0KQkJCQlcDQogICBpZiAoKGNhcHMgJiAoY2FwKSkgJiYg KCEoVFMpIHx8ICFNQVlfVVNFX1dJVEhfQ09MT1JTX1AodHR5LCBOQ19iaXQpKSkJXA0KQEAgLTIy NjcsOSArMjI0Nyw3IEBADQogfQ0KIA0KIHZvaWQNCi1zZXRfdHR5X2NvbG9yX21vZGUgKHR0eSwg ZikNCi0gICAgIHN0cnVjdCB0dHlfZGlzcGxheV9pbmZvICp0dHk7DQotICAgICBzdHJ1Y3QgZnJh bWUgKmY7DQorc2V0X3R0eV9jb2xvcl9tb2RlIChzdHJ1Y3QgdHR5X2Rpc3BsYXlfaW5mbyAqdHR5 LCBzdHJ1Y3QgZnJhbWUgKmYpDQogew0KICAgTGlzcF9PYmplY3QgdGVtLCB2YWw7DQogICBMaXNw X09iamVjdCBjb2xvcl9tb2RlOw0KQEAgLTIzMzMsOCArMjMxMSw3IEBADQogICAgUmV0dXJucyBO VUxMIGlmIHRoZSBuYW1lZCB0ZXJtaW5hbCBkZXZpY2UgaXMgbm90IG9wZW5lZC4gICovDQogDQog c3RydWN0IHRlcm1pbmFsICoNCi1nZXRfbmFtZWRfdHR5IChuYW1lKQ0KLSAgICAgY2hhciAqbmFt ZTsNCitnZXRfbmFtZWRfdHR5IChjaGFyICpuYW1lKQ0KIHsNCiAgIHN0cnVjdCB0ZXJtaW5hbCAq dDsNCiANCkBAIC0yNjY0LDcgKzI2NDEsNyBAQA0KIH0NCiANCiBzdGF0aWMgdm9pZA0KLXRlcm1f Y2xlYXJfbW91c2VfZmFjZSAoKQ0KK3Rlcm1fY2xlYXJfbW91c2VfZmFjZSAodm9pZCkNCiB7DQog ICBpZiAoIU5JTFAgKG1vdXNlX2ZhY2Vfd2luZG93KSkNCiAgICAgdGVybV9zaG93X21vdXNlX2Zh Y2UgKERSQVdfTk9STUFMX1RFWFQpOw0KQEAgLTQwNzIsNyArNDA0OSw3IEBADQogDA0KIA0KIHZv aWQNCi1zeW1zX29mX3Rlcm0gKCkNCitzeW1zX29mX3Rlcm0gKHZvaWQpDQogew0KICAgREVGVkFS X0JPT0wgKCJzeXN0ZW0tdXNlcy10ZXJtaW5mbyIsICZzeXN0ZW1fdXNlc190ZXJtaW5mbywNCiAg ICAgZG9jOiAvKiBOb24tbmlsIG1lYW5zIHRoZSBzeXN0ZW0gdXNlcyB0ZXJtaW5mbyByYXRoZXIg dGhhbiB0ZXJtY2FwLg0KDQo= --0016e6d56670ebb557048a9903e7--