From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Alexander Shukaev Newsgroups: gmane.emacs.devel Subject: Re: [Emacs-diffs] ImageMagick Support on Windows Date: Tue, 14 Oct 2014 23:33:38 +0200 Message-ID: References: <83siis71xq.fsf@gnu.org> <83siiq6e3v.fsf@gnu.org> <83r3ya65t0.fsf@gnu.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=001a11c3eeeebfa0d0050568c407 X-Trace: ger.gmane.org 1413322450 13692 80.91.229.3 (14 Oct 2014 21:34:10 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 14 Oct 2014 21:34:10 +0000 (UTC) Cc: emacs-devel@gnu.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Oct 14 23:34:02 2014 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1Xe9jG-0006HU-BI for ged-emacs-devel@m.gmane.org; Tue, 14 Oct 2014 23:34:02 +0200 Original-Received: from localhost ([::1]:40509 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Xe9jF-0001gh-VC for ged-emacs-devel@m.gmane.org; Tue, 14 Oct 2014 17:34:01 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:58654) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Xe9ix-0001gJ-JQ for emacs-devel@gnu.org; Tue, 14 Oct 2014 17:33:44 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Xe9iw-00085i-HH for emacs-devel@gnu.org; Tue, 14 Oct 2014 17:33:43 -0400 Original-Received: from mail-la0-x229.google.com ([2a00:1450:4010:c03::229]:44210) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Xe9iu-00085H-Ge; Tue, 14 Oct 2014 17:33:41 -0400 Original-Received: by mail-la0-f41.google.com with SMTP id pn19so9450666lab.28 for ; Tue, 14 Oct 2014 14:33:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=WXUygCu1fkGrzQrwAgmdRknoLUNgnzyjhdaWG0yRwS0=; b=1JWmTH6ssILaAWXtw9h/b4lpOh/lRERzHPNWy2HWkarAy7bcTIV8QErzrVQWo1V4cX 0XwKvojazTmyC6qPFTyDSFQywRbda4/bXO345FNZ/DZB1bMja2swOqCGwpmhaATe5bWm zYKnH9HDYXm7saCjB9O/bpFdYwWVlltMxF6CJrawaFWwFzn1YW6kkfe08ZVpIfexuGnb 7G1pRnXQkEB8f0hZFw6Yc2qVW5NTteaiEoYptKDyUew4BhhNlAEnEtYlc1JR03wmPTTe sde9nEWMEB8jyzo6GsJ9hUqNXq5PAFdfzOfgC6vA4GYFr5q4ExHz/ChrUPlgFTLfUp+G BalQ== X-Received: by 10.112.54.162 with SMTP id k2mr7932559lbp.63.1413322419149; Tue, 14 Oct 2014 14:33:39 -0700 (PDT) Original-Received: by 10.112.202.106 with HTTP; Tue, 14 Oct 2014 14:33:38 -0700 (PDT) In-Reply-To: X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2a00:1450:4010:c03::229 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:175378 Archived-At: --001a11c3eeeebfa0d0050568c407 Content-Type: multipart/alternative; boundary=001a11c3eeeebfa0cc050568c405 --001a11c3eeeebfa0cc050568c405 Content-Type: text/plain; charset=UTF-8 I have amended the patches and currently they look as attached. However, I think we have a problem here. After applying them, during the build, the "./temacs --batch --load loadup bootstrap" command crashes when it reaches: Loading .../src/emacs/lisp/image.el (source)... I cannot say 100% what could be the cause of this, but I can give my 99% that this is because some ImageMagick library has not been loaded. If you look at one of my previous messages: Nevertheless, on the linking stage I see: > -lMagickWand-6.Q16HDRI -lMagickCore-6.Q16HDRI So these are the import libraries needed to resolve utilized ImageMagick functions. Their respective DLLs on my system are: libMagickWand-6.Q16HDRI-2.dll libMagickCore-6.Q16HDRI-2.dll It means that we should somehow add these 2 libraries as mandatory to the "dynamic-library-alist". But from what I infer from the documentation, this: '(imagemagick "libMagickWand-6.Q16HDRI-2.dll" "libMagickCore-6.Q16HDRI-2.dll") is not the correct way of doing that since this sublist, in fact, represents alternatives to the same single library. In other words, I don't see how certain feature can be assigned more than one mandatory DLL. Looking forward to your thoughts on the subject. Please, review the patches first, so that we can be sure that the problem indeed stems from what I just described rather than something else preceding it. --001a11c3eeeebfa0cc050568c405 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
I have amended the patches and currently they look as atta= ched. However, I think we have a problem here. After applying them, during = the build, the "./temacs --batch --load loadup bootstrap" command= crashes when it reaches:

Loading .../src/emacs/lisp/ima= ge.el (source)...

I cannot say 100% what could= be the cause of this, but I can give my 99% that this is because some Imag= eMagick library has not been loaded. If you look at one of my previous mess= ages:

Nevertheless, on the linkin= g stage I see:
=C2=A0
-lMagickWand-6.Q16HDRI -lMagickCore-6.Q16HDRI

So these are the import libraries needed to resolve utili= zed ImageMagick functions. Their respective DLLs on my system are:

libMagickWand-6.Q16HDRI-2.dll
libMagickCore-= 6.Q16HDRI-2.dll

It means that we should someho= w add these 2 libraries as mandatory to the "dynamic-library-alist&quo= t;. But from what I infer from the documentation, this:

'(imagemagick "libMagickWand-6.Q16HDRI-2.dll" "lib= MagickCore-6.Q16HDRI-2.dll")

is not the corre= ct way of doing that since this sublist, in fact, represents alternatives t= o the same single library. In other words, I don't see how certain feat= ure can be assigned more than one mandatory DLL.

L= ooking forward to your thoughts on the subject. Please, review the patches = first, so that we can be sure that the problem indeed stems from what I jus= t described rather than something else preceding it.
--001a11c3eeeebfa0cc050568c405-- --001a11c3eeeebfa0d0050568c407 Content-Type: application/octet-stream; name="configure.ac.patch" Content-Disposition: attachment; filename="configure.ac.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i19r5fyq0 LS0tIGNvbmZpZ3VyZS5hYy5vcmlnCTIwMTQtMTAtMTQgMTI6MTQ6NDkuMTE2MDIxMjAwICswMjAw CisrKyBjb25maWd1cmUuYWMJMjAxNC0xMC0xNCAxNjoyNzowNi43MDI4Njk5MDAgKzAyMDAKQEAg LTIyOTEsNiArMjI5MSwxMSBAQAogICAgICAgT0xEX0NGTEFHUz0kQ0ZMQUdTCiAgICAgICBPTERf TElCUz0kTElCUwogICAgICAgQ0ZMQUdTPSIkQ0ZMQUdTICRJTUFHRU1BR0lDS19DRkxBR1MiCisg ICAgICAjIFdpbmRvd3MgbG9hZHMgbGliTWFnaWNrIGR5bmFtaWNhbGx5CisgICAgICBpZiB0ZXN0 ICIke29wc3lzfSIgPSAibWluZ3czMiI7IHRoZW4KKyAgICAgICAJSU1BR0VNQUdJQ0tfTElCUz0K KyAgICAgIGZpCisKICAgICAgIExJQlM9IiRJTUFHRU1BR0lDS19MSUJTICRMSUJTIgogICAgICAg QUNfQ0hFQ0tfRlVOQ1MoTWFnaWNrRXhwb3J0SW1hZ2VQaXhlbHMgTWFnaWNrTWVyZ2VJbWFnZUxh eWVycykKICAgICAgIENGTEFHUz0kT0xEX0NGTEFHUwo= --001a11c3eeeebfa0d0050568c407 Content-Type: application/octet-stream; name="image.c.patch" Content-Disposition: attachment; filename="image.c.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i19r5fyy1 LS0tIHNyYy9pbWFnZS5jLm9yaWcJMjAxNC0xMC0xNCAyMTo0MDozNS40MDY0MzM1MDAgKzAyMDAK KysrIHNyYy9pbWFnZS5jCTIwMTQtMTAtMTQgMjE6Mzk6NTAuODU2NTE2OTAwICswMjAwCkBAIC03 OTE5LDYgKzc5MTksMTU2IEBACiAJCQkJCSAgICBNYWdpY2tQaXhlbFBhY2tldCAqKTsKICNlbmRp ZgogCisjaWZkZWYgV0lORE9XU05UCisKKy8qIEltYWdlTWFnaWNrIGxpYnJhcnkgZGV0YWlscy4g ICovCitERUZfSU1HTElCX0ZOIChNYWdpY2tXYW5kICosIENsb25lTWFnaWNrV2FuZCwgKGNvbnN0 IE1hZ2lja1dhbmQgKikpOworREVGX0lNR0xJQl9GTiAoRXhjZXB0aW9uSW5mbyAqLCBEZXN0cm95 RXhjZXB0aW9uSW5mbywgKEV4Y2VwdGlvbkluZm8gKikpOworREVGX0lNR0xJQl9GTiAoTWFnaWNr V2FuZCAqLCBEZXN0cm95TWFnaWNrV2FuZCwgKE1hZ2lja1dhbmQgKikpOworREVGX0lNR0xJQl9G TiAoUGl4ZWxJdGVyYXRvciAqLCBEZXN0cm95UGl4ZWxJdGVyYXRvciwgKFBpeGVsSXRlcmF0b3Ig KikpOworREVGX0lNR0xJQl9GTiAoUGl4ZWxXYW5kICosIERlc3Ryb3lQaXhlbFdhbmQsIChQaXhl bFdhbmQgKikpOworREVGX0lNR0xJQl9GTiAoY2hhciAqLCBEZXN0cm95U3RyaW5nLCAoY2hhciAq KSk7CitERUZfSU1HTElCX0ZOICh2b2lkLCBHZXRFeGNlcHRpb25JbmZvLCAoRXhjZXB0aW9uSW5m byAqKSk7CitERUZfSU1HTElCX0ZOIChjaGFyICoqLCBHZXRNYWdpY2tMaXN0LCAoY29uc3QgY2hh ciAqLCBzaXplX3QgKiwgRXhjZXB0aW9uSW5mbyAqKSk7CitERUZfSU1HTElCX0ZOIChNYWdpY2tC b29sZWFuVHlwZSwgTWFnaWNrQ3JvcEltYWdlLCAoTWFnaWNrV2FuZCAqLCBjb25zdCBzaXplX3Qs IGNvbnN0IHNpemVfdCwgY29uc3Qgc3NpemVfdCwgY29uc3Qgc3NpemVfdCkpOworREVGX0lNR0xJ Ql9GTiAoTWFnaWNrQm9vbGVhblR5cGUsIE1hZ2lja0V4cG9ydEltYWdlUGl4ZWxzLCAoTWFnaWNr V2FuZCAqLCBjb25zdCBzc2l6ZV90LCBjb25zdCBzc2l6ZV90LCBjb25zdCBzaXplX3QsIGNvbnN0 IHNpemVfdCwgY29uc3QgY2hhciAqLCBjb25zdCBTdG9yYWdlVHlwZSwgdm9pZCAqKSk7CitERUZf SU1HTElCX0ZOIChNYWdpY2tXYW5kICosIE1hZ2lja0ZsYXR0ZW5JbWFnZXMsIChNYWdpY2tXYW5k ICopKTsKK0RFRl9JTUdMSUJfRk4gKGNoYXIgKiwgTWFnaWNrR2V0RXhjZXB0aW9uLCAoY29uc3Qg TWFnaWNrV2FuZCAqLCBFeGNlcHRpb25UeXBlICopKTsKK0RFRl9JTUdMSUJfRk4gKE1hZ2lja1dh bmQgKiwgTWFnaWNrR2V0SW1hZ2UsIChNYWdpY2tXYW5kICopKTsKK0RFRl9JTUdMSUJfRk4gKHNp emVfdCwgTWFnaWNrR2V0SW1hZ2VEZWxheSwgKE1hZ2lja1dhbmQgKikpOworREVGX0lNR0xJQl9G TiAoRGlzcG9zZVR5cGUsIE1hZ2lja0dldEltYWdlRGlzcG9zZSwgKE1hZ2lja1dhbmQgKikpOwor REVGX0lNR0xJQl9GTiAoc2l6ZV90LCBNYWdpY2tHZXRJbWFnZUhlaWdodCwgKE1hZ2lja1dhbmQg KikpOworREVGX0lNR0xJQl9GTiAoTWFnaWNrQm9vbGVhblR5cGUsIE1hZ2lja0dldEltYWdlUGFn ZSwgKE1hZ2lja1dhbmQgKiwgc2l6ZV90ICosIHNpemVfdCAqLCBzc2l6ZV90ICosIHNzaXplX3Qg KikpOworREVGX0lNR0xJQl9GTiAoY2hhciAqLCBNYWdpY2tHZXRJbWFnZVNpZ25hdHVyZSwgKE1h Z2lja1dhbmQgKikpOworREVGX0lNR0xJQl9GTiAoc2l6ZV90LCBNYWdpY2tHZXRJbWFnZVdpZHRo LCAoTWFnaWNrV2FuZCAqKSk7CitERUZfSU1HTElCX0ZOIChzaXplX3QsIE1hZ2lja0dldE51bWJl ckltYWdlcywgKE1hZ2lja1dhbmQgKikpOworREVGX0lNR0xJQl9GTiAoTWFnaWNrV2FuZCAqLCBN YWdpY2tNZXJnZUltYWdlTGF5ZXJzLCAoTWFnaWNrV2FuZCAqLCBjb25zdCBJbWFnZUxheWVyTWV0 aG9kKSk7CitERUZfSU1HTElCX0ZOIChNYWdpY2tCb29sZWFuVHlwZSwgTWFnaWNrUmVhZEltYWdl LCAoTWFnaWNrV2FuZCAqLCBjb25zdCBjaGFyICopKTsKK0RFRl9JTUdMSUJfRk4gKE1hZ2lja0Jv b2xlYW5UeXBlLCBNYWdpY2tSZWFkSW1hZ2VCbG9iLCAoTWFnaWNrV2FuZCAqLCBjb25zdCB2b2lk ICosIGNvbnN0IHNpemVfdCkpOworREVGX0lNR0xJQl9GTiAodm9pZCAqLCBNYWdpY2tSZWxpbnF1 aXNoTWVtb3J5LCAodm9pZCAqKSk7CitERUZfSU1HTElCX0ZOIChNYWdpY2tCb29sZWFuVHlwZSwg TWFnaWNrUm90YXRlSW1hZ2UsIChNYWdpY2tXYW5kICosIGNvbnN0IFBpeGVsV2FuZCAqLCBjb25z dCBkb3VibGUpKTsKK0RFRl9JTUdMSUJfRk4gKE1hZ2lja0Jvb2xlYW5UeXBlLCBNYWdpY2tTY2Fs ZUltYWdlLCAoTWFnaWNrV2FuZCAqLCBjb25zdCBzaXplX3QsIGNvbnN0IHNpemVfdCkpOworREVG X0lNR0xJQl9GTiAoTWFnaWNrQm9vbGVhblR5cGUsIE1hZ2lja1NldEZpbGVuYW1lLCAoTWFnaWNr V2FuZCAqLCBjb25zdCBjaGFyICopKTsKK0RFRl9JTUdMSUJfRk4gKE1hZ2lja0Jvb2xlYW5UeXBl LCBNYWdpY2tTZXRJbWFnZUJhY2tncm91bmRDb2xvciwgKE1hZ2lja1dhbmQgKiwgY29uc3QgUGl4 ZWxXYW5kICopKTsKK0RFRl9JTUdMSUJfRk4gKE1hZ2lja0Jvb2xlYW5UeXBlLCBNYWdpY2tTZXRJ dGVyYXRvckluZGV4LCAoTWFnaWNrV2FuZCAqLCBjb25zdCBzc2l6ZV90KSk7CitERUZfSU1HTElC X0ZOICh2b2lkLCBNYWdpY2tXYW5kR2VuZXNpcywgKHZvaWQpKTsKK0RFRl9JTUdMSUJfRk4gKHZv aWQsIE1hZ2lja1dhbmRUZXJtaW51cywgKHZvaWQpKTsKK0RFRl9JTUdMSUJfRk4gKE1hZ2lja1dh bmQgKiwgTmV3TWFnaWNrV2FuZCwgKHZvaWQpKTsKK0RFRl9JTUdMSUJfRk4gKFBpeGVsSXRlcmF0 b3IgKiwgTmV3UGl4ZWxJdGVyYXRvciwgKE1hZ2lja1dhbmQgKikpOworREVGX0lNR0xJQl9GTiAo UGl4ZWxXYW5kICosIE5ld1BpeGVsV2FuZCwgKHZvaWQpKTsKK0RFRl9JTUdMSUJfRk4gKGRvdWJs ZSwgUGl4ZWxHZXRBbHBoYSwgKGNvbnN0IFBpeGVsV2FuZCAqKSk7CitERUZfSU1HTElCX0ZOICh2 b2lkLCBQaXhlbEdldE1hZ2lja0NvbG9yLCAoUGl4ZWxXYW5kICosIE1hZ2lja1BpeGVsUGFja2V0 ICopKTsKK0RFRl9JTUdMSUJfRk4gKFBpeGVsV2FuZCAqKiwgUGl4ZWxHZXROZXh0SXRlcmF0b3JS b3csIChQaXhlbEl0ZXJhdG9yICosIHNpemVfdCAqKSk7CitERUZfSU1HTElCX0ZOICh2b2lkLCBQ aXhlbFNldEJsdWUsIChQaXhlbFdhbmQgKiwgY29uc3QgZG91YmxlKSk7CitERUZfSU1HTElCX0ZO ICh2b2lkLCBQaXhlbFNldEdyZWVuLCAoUGl4ZWxXYW5kICosIGNvbnN0IGRvdWJsZSkpOworREVG X0lNR0xJQl9GTiAoTWFnaWNrQm9vbGVhblR5cGUsIFBpeGVsU2V0SXRlcmF0b3JSb3csIChQaXhl bEl0ZXJhdG9yICosIGNvbnN0IHNzaXplX3QpKTsKK0RFRl9JTUdMSUJfRk4gKHZvaWQsIFBpeGVs U2V0TWFnaWNrQ29sb3IsIChQaXhlbFdhbmQgKiwgY29uc3QgTWFnaWNrUGl4ZWxQYWNrZXQgKikp OworREVGX0lNR0xJQl9GTiAodm9pZCwgUGl4ZWxTZXRSZWQsIChQaXhlbFdhbmQgKiwgY29uc3Qg ZG91YmxlKSk7CitERUZfSU1HTElCX0ZOIChNYWdpY2tCb29sZWFuVHlwZSwgUGl4ZWxTeW5jSXRl cmF0b3IsIChQaXhlbEl0ZXJhdG9yICopKTsKKworc3RhdGljIGJvb2wKK2luaXRfaW1hZ2VtYWdp Y2tfZnVuY3Rpb25zICh2b2lkKQoreworICBITU9EVUxFIGxpYnJhcnk7CisKKyAgaWYgKCEobGli cmFyeSA9IHczMl9kZWxheWVkX2xvYWQgKFFpbWFnZW1hZ2ljaykpKQorICAgcmV0dXJuIDA7CisK KyAgTE9BRF9JTUdMSUJfRk4gKGxpYnJhcnksIENsb25lTWFnaWNrV2FuZCk7CisgIExPQURfSU1H TElCX0ZOIChsaWJyYXJ5LCBEZXN0cm95RXhjZXB0aW9uSW5mbyk7CisgIExPQURfSU1HTElCX0ZO IChsaWJyYXJ5LCBEZXN0cm95TWFnaWNrV2FuZCk7CisgIExPQURfSU1HTElCX0ZOIChsaWJyYXJ5 LCBEZXN0cm95UGl4ZWxJdGVyYXRvcik7CisgIExPQURfSU1HTElCX0ZOIChsaWJyYXJ5LCBEZXN0 cm95UGl4ZWxXYW5kKTsKKyAgTE9BRF9JTUdMSUJfRk4gKGxpYnJhcnksIERlc3Ryb3lTdHJpbmcp OworICBMT0FEX0lNR0xJQl9GTiAobGlicmFyeSwgR2V0RXhjZXB0aW9uSW5mbyk7CisgIExPQURf SU1HTElCX0ZOIChsaWJyYXJ5LCBHZXRNYWdpY2tMaXN0KTsKKyAgTE9BRF9JTUdMSUJfRk4gKGxp YnJhcnksIE1hZ2lja0Nyb3BJbWFnZSk7CisgIExPQURfSU1HTElCX0ZOIChsaWJyYXJ5LCBNYWdp Y2tFeHBvcnRJbWFnZVBpeGVscyk7CisgIExPQURfSU1HTElCX0ZOIChsaWJyYXJ5LCBNYWdpY2tG bGF0dGVuSW1hZ2VzKTsKKyAgTE9BRF9JTUdMSUJfRk4gKGxpYnJhcnksIE1hZ2lja0dldEV4Y2Vw dGlvbik7CisgIExPQURfSU1HTElCX0ZOIChsaWJyYXJ5LCBNYWdpY2tHZXRJbWFnZSk7CisgIExP QURfSU1HTElCX0ZOIChsaWJyYXJ5LCBNYWdpY2tHZXRJbWFnZURlbGF5KTsKKyAgTE9BRF9JTUdM SUJfRk4gKGxpYnJhcnksIE1hZ2lja0dldEltYWdlRGlzcG9zZSk7CisgIExPQURfSU1HTElCX0ZO IChsaWJyYXJ5LCBNYWdpY2tHZXRJbWFnZUhlaWdodCk7CisgIExPQURfSU1HTElCX0ZOIChsaWJy YXJ5LCBNYWdpY2tHZXRJbWFnZVBhZ2UpOworICBMT0FEX0lNR0xJQl9GTiAobGlicmFyeSwgTWFn aWNrR2V0SW1hZ2VTaWduYXR1cmUpOworICBMT0FEX0lNR0xJQl9GTiAobGlicmFyeSwgTWFnaWNr R2V0SW1hZ2VXaWR0aCk7CisgIExPQURfSU1HTElCX0ZOIChsaWJyYXJ5LCBNYWdpY2tHZXROdW1i ZXJJbWFnZXMpOworICBMT0FEX0lNR0xJQl9GTiAobGlicmFyeSwgTWFnaWNrTWVyZ2VJbWFnZUxh eWVycyk7CisgIExPQURfSU1HTElCX0ZOIChsaWJyYXJ5LCBNYWdpY2tSZWFkSW1hZ2UpOworICBM T0FEX0lNR0xJQl9GTiAobGlicmFyeSwgTWFnaWNrUmVhZEltYWdlQmxvYik7CisgIExPQURfSU1H TElCX0ZOIChsaWJyYXJ5LCBNYWdpY2tSZWxpbnF1aXNoTWVtb3J5KTsKKyAgTE9BRF9JTUdMSUJf Rk4gKGxpYnJhcnksIE1hZ2lja1JvdGF0ZUltYWdlKTsKKyAgTE9BRF9JTUdMSUJfRk4gKGxpYnJh cnksIE1hZ2lja1NjYWxlSW1hZ2UpOworICBMT0FEX0lNR0xJQl9GTiAobGlicmFyeSwgTWFnaWNr U2V0RmlsZW5hbWUpOworICBMT0FEX0lNR0xJQl9GTiAobGlicmFyeSwgTWFnaWNrU2V0SW1hZ2VC YWNrZ3JvdW5kQ29sb3IpOworICBMT0FEX0lNR0xJQl9GTiAobGlicmFyeSwgTWFnaWNrU2V0SXRl cmF0b3JJbmRleCk7CisgIExPQURfSU1HTElCX0ZOIChsaWJyYXJ5LCBNYWdpY2tXYW5kR2VuZXNp cyk7CisgIExPQURfSU1HTElCX0ZOIChsaWJyYXJ5LCBNYWdpY2tXYW5kVGVybWludXMpOworICBM T0FEX0lNR0xJQl9GTiAobGlicmFyeSwgTmV3TWFnaWNrV2FuZCk7CisgIExPQURfSU1HTElCX0ZO IChsaWJyYXJ5LCBOZXdQaXhlbEl0ZXJhdG9yKTsKKyAgTE9BRF9JTUdMSUJfRk4gKGxpYnJhcnks IE5ld1BpeGVsV2FuZCk7CisgIExPQURfSU1HTElCX0ZOIChsaWJyYXJ5LCBQaXhlbEdldEFscGhh KTsKKyAgTE9BRF9JTUdMSUJfRk4gKGxpYnJhcnksIFBpeGVsR2V0TWFnaWNrQ29sb3IpOworICBM T0FEX0lNR0xJQl9GTiAobGlicmFyeSwgUGl4ZWxHZXROZXh0SXRlcmF0b3JSb3cpOworICBMT0FE X0lNR0xJQl9GTiAobGlicmFyeSwgUGl4ZWxTZXRCbHVlKTsKKyAgTE9BRF9JTUdMSUJfRk4gKGxp YnJhcnksIFBpeGVsU2V0R3JlZW4pOworICBMT0FEX0lNR0xJQl9GTiAobGlicmFyeSwgUGl4ZWxT ZXRJdGVyYXRvclJvdyk7CisgIExPQURfSU1HTElCX0ZOIChsaWJyYXJ5LCBQaXhlbFNldE1hZ2lj a0NvbG9yKTsKKyAgTE9BRF9JTUdMSUJfRk4gKGxpYnJhcnksIFBpeGVsU2V0UmVkKTsKKyAgTE9B RF9JTUdMSUJfRk4gKGxpYnJhcnksIFBpeGVsU3luY0l0ZXJhdG9yKTsKKworICByZXR1cm4gMTsK K30KKworI2Vsc2UKKworI2RlZmluZSBmbl9DbG9uZU1hZ2lja1dhbmQgICAgICAgICAgICAgICBD bG9uZU1hZ2lja1dhbmQKKyNkZWZpbmUgZm5fRGVzdHJveUV4Y2VwdGlvbkluZm8gICAgICAgICAg RGVzdHJveUV4Y2VwdGlvbkluZm8KKyNkZWZpbmUgZm5fRGVzdHJveU1hZ2lja1dhbmQgICAgICAg ICAgICAgRGVzdHJveU1hZ2lja1dhbmQKKyNkZWZpbmUgZm5fRGVzdHJveVBpeGVsSXRlcmF0b3Ig ICAgICAgICAgRGVzdHJveVBpeGVsSXRlcmF0b3IKKyNkZWZpbmUgZm5fRGVzdHJveVBpeGVsV2Fu ZCAgICAgICAgICAgICAgRGVzdHJveVBpeGVsV2FuZAorI2RlZmluZSBmbl9EZXN0cm95U3RyaW5n ICAgICAgICAgICAgICAgICBEZXN0cm95U3RyaW5nCisjZGVmaW5lIGZuX0dldEV4Y2VwdGlvbklu Zm8gICAgICAgICAgICAgIEdldEV4Y2VwdGlvbkluZm8KKyNkZWZpbmUgZm5fR2V0TWFnaWNrTGlz dCAgICAgICAgICAgICAgICAgR2V0TWFnaWNrTGlzdAorI2RlZmluZSBmbl9NYWdpY2tDcm9wSW1h Z2UgICAgICAgICAgICAgICBNYWdpY2tDcm9wSW1hZ2UKKyNkZWZpbmUgZm5fTWFnaWNrRXhwb3J0 SW1hZ2VQaXhlbHMgICAgICAgTWFnaWNrRXhwb3J0SW1hZ2VQaXhlbHMKKyNkZWZpbmUgZm5fTWFn aWNrRmxhdHRlbkltYWdlcyAgICAgICAgICAgTWFnaWNrRmxhdHRlbkltYWdlcworI2RlZmluZSBm bl9NYWdpY2tHZXRFeGNlcHRpb24gICAgICAgICAgICBNYWdpY2tHZXRFeGNlcHRpb24KKyNkZWZp bmUgZm5fTWFnaWNrR2V0SW1hZ2UgICAgICAgICAgICAgICAgTWFnaWNrR2V0SW1hZ2UKKyNkZWZp bmUgZm5fTWFnaWNrR2V0SW1hZ2VEZWxheSAgICAgICAgICAgTWFnaWNrR2V0SW1hZ2VEZWxheQor I2RlZmluZSBmbl9NYWdpY2tHZXRJbWFnZURpc3Bvc2UgICAgICAgICBNYWdpY2tHZXRJbWFnZURp c3Bvc2UKKyNkZWZpbmUgZm5fTWFnaWNrR2V0SW1hZ2VIZWlnaHQgICAgICAgICAgTWFnaWNrR2V0 SW1hZ2VIZWlnaHQKKyNkZWZpbmUgZm5fTWFnaWNrR2V0SW1hZ2VQYWdlICAgICAgICAgICAgTWFn aWNrR2V0SW1hZ2VQYWdlCisjZGVmaW5lIGZuX01hZ2lja0dldEltYWdlU2lnbmF0dXJlICAgICAg IE1hZ2lja0dldEltYWdlU2lnbmF0dXJlCisjZGVmaW5lIGZuX01hZ2lja0dldEltYWdlV2lkdGgg ICAgICAgICAgIE1hZ2lja0dldEltYWdlV2lkdGgKKyNkZWZpbmUgZm5fTWFnaWNrR2V0TnVtYmVy SW1hZ2VzICAgICAgICAgTWFnaWNrR2V0TnVtYmVySW1hZ2VzCisjZGVmaW5lIGZuX01hZ2lja01l cmdlSW1hZ2VMYXllcnMgICAgICAgIE1hZ2lja01lcmdlSW1hZ2VMYXllcnMKKyNkZWZpbmUgZm5f TWFnaWNrUmVhZEltYWdlICAgICAgICAgICAgICAgTWFnaWNrUmVhZEltYWdlCisjZGVmaW5lIGZu X01hZ2lja1JlYWRJbWFnZUJsb2IgICAgICAgICAgIE1hZ2lja1JlYWRJbWFnZUJsb2IKKyNkZWZp bmUgZm5fTWFnaWNrUmVsaW5xdWlzaE1lbW9yeSAgICAgICAgTWFnaWNrUmVsaW5xdWlzaE1lbW9y eQorI2RlZmluZSBmbl9NYWdpY2tSb3RhdGVJbWFnZSAgICAgICAgICAgICBNYWdpY2tSb3RhdGVJ bWFnZQorI2RlZmluZSBmbl9NYWdpY2tTY2FsZUltYWdlICAgICAgICAgICAgICBNYWdpY2tTY2Fs ZUltYWdlCisjZGVmaW5lIGZuX01hZ2lja1NldEZpbGVuYW1lICAgICAgICAgICAgIE1hZ2lja1Nl dEZpbGVuYW1lCisjZGVmaW5lIGZuX01hZ2lja1NldEltYWdlQmFja2dyb3VuZENvbG9yIE1hZ2lj a1NldEltYWdlQmFja2dyb3VuZENvbG9yCisjZGVmaW5lIGZuX01hZ2lja1NldEl0ZXJhdG9ySW5k ZXggICAgICAgIE1hZ2lja1NldEl0ZXJhdG9ySW5kZXgKKyNkZWZpbmUgZm5fTWFnaWNrV2FuZEdl bmVzaXMgICAgICAgICAgICAgTWFnaWNrV2FuZEdlbmVzaXMKKyNkZWZpbmUgZm5fTWFnaWNrV2Fu ZFRlcm1pbnVzICAgICAgICAgICAgTWFnaWNrV2FuZFRlcm1pbnVzCisjZGVmaW5lIGZuX05ld01h Z2lja1dhbmQgICAgICAgICAgICAgICAgIE5ld01hZ2lja1dhbmQKKyNkZWZpbmUgZm5fTmV3UGl4 ZWxJdGVyYXRvciAgICAgICAgICAgICAgTmV3UGl4ZWxJdGVyYXRvcgorI2RlZmluZSBmbl9OZXdQ aXhlbFdhbmQgICAgICAgICAgICAgICAgICBOZXdQaXhlbFdhbmQKKyNkZWZpbmUgZm5fUGl4ZWxH ZXRBbHBoYSAgICAgICAgICAgICAgICAgUGl4ZWxHZXRBbHBoYQorI2RlZmluZSBmbl9QaXhlbEdl dE1hZ2lja0NvbG9yICAgICAgICAgICBQaXhlbEdldE1hZ2lja0NvbG9yCisjZGVmaW5lIGZuX1Bp eGVsR2V0TmV4dEl0ZXJhdG9yUm93ICAgICAgIFBpeGVsR2V0TmV4dEl0ZXJhdG9yUm93CisjZGVm aW5lIGZuX1BpeGVsU2V0Qmx1ZSAgICAgICAgICAgICAgICAgIFBpeGVsU2V0Qmx1ZQorI2RlZmlu ZSBmbl9QaXhlbFNldEdyZWVuICAgICAgICAgICAgICAgICBQaXhlbFNldEdyZWVuCisjZGVmaW5l IGZuX1BpeGVsU2V0SXRlcmF0b3JSb3cgICAgICAgICAgIFBpeGVsU2V0SXRlcmF0b3JSb3cKKyNk ZWZpbmUgZm5fUGl4ZWxTZXRNYWdpY2tDb2xvciAgICAgICAgICAgUGl4ZWxTZXRNYWdpY2tDb2xv cgorI2RlZmluZSBmbl9QaXhlbFNldFJlZCAgICAgICAgICAgICAgICAgICBQaXhlbFNldFJlZAor I2RlZmluZSBmbl9QaXhlbFN5bmNJdGVyYXRvciAgICAgICAgICAgICBQaXhlbFN5bmNJdGVyYXRv cgorCisjZW5kaWYgLyogV0lORE9XU05UICovCisKIC8qIExvZyBJbWFnZU1hZ2ljayBlcnJvciBt ZXNzYWdlLgogICAgVXNlZnVsIHdoZW4gYSBJbWFnZU1hZ2ljayBmdW5jdGlvbiByZXR1cm5zIHRo ZSBzdGF0dXMgYE1hZ2lja0ZhbHNlJy4gICovCiAKQEAgLTc5MjgsMTEgKzgwNzgsMTEgQEAKICAg Y2hhciAqZGVzY3JpcHRpb247CiAgIEV4Y2VwdGlvblR5cGUgc2V2ZXJpdHk7CiAKLSAgZGVzY3Jp cHRpb24gPSBNYWdpY2tHZXRFeGNlcHRpb24gKHdhbmQsICZzZXZlcml0eSk7CisgIGRlc2NyaXB0 aW9uID0gZm5fTWFnaWNrR2V0RXhjZXB0aW9uICh3YW5kLCAmc2V2ZXJpdHkpOwogICBpbWFnZV9l cnJvciAoIkltYWdlTWFnaWNrIGVycm9yOiAlcyIsCiAJICAgICAgIGJ1aWxkX3N0cmluZyAoZGVz Y3JpcHRpb24pLAogCSAgICAgICBRbmlsKTsKLSAgTWFnaWNrUmVsaW5xdWlzaE1lbW9yeSAoZGVz Y3JpcHRpb24pOworICBmbl9NYWdpY2tSZWxpbnF1aXNoTWVtb3J5IChkZXNjcmlwdGlvbik7CiB9 CiAKIC8qIFBvc3NpYmx5IGdpdmUgSW1hZ2VNYWdpY2sgc29tZSBleHRyYSBoZWxwIHRvIGRldGVy bWluZSB0aGUgaW1hZ2UKQEAgLTgwMTEsNyArODE2MSw3IEBACiAgICAgICBlbHNlCiAJewogCSAg aWYgKGNhY2hlLT53YW5kKQotCSAgICBEZXN0cm95TWFnaWNrV2FuZCAoY2FjaGUtPndhbmQpOwor CSAgICBmbl9EZXN0cm95TWFnaWNrV2FuZCAoY2FjaGUtPndhbmQpOwogCSAgKnBjYWNoZSA9IGNh Y2hlLT5uZXh0OwogCSAgeGZyZWUgKGNhY2hlKTsKIAl9CkBAIC04MDIxLDcgKzgxNzEsNyBAQAog c3RhdGljIHN0cnVjdCBhbmltYXRpb25fY2FjaGUgKgogaW1hZ2VtYWdpY2tfZ2V0X2FuaW1hdGlv bl9jYWNoZSAoTWFnaWNrV2FuZCAqd2FuZCkKIHsKLSAgY2hhciAqc2lnbmF0dXJlID0gTWFnaWNr R2V0SW1hZ2VTaWduYXR1cmUgKHdhbmQpOworICBjaGFyICpzaWduYXR1cmUgPSBmbl9NYWdpY2tH ZXRJbWFnZVNpZ25hdHVyZSAod2FuZCk7CiAgIHN0cnVjdCBhbmltYXRpb25fY2FjaGUgKmNhY2hl OwogICBzdHJ1Y3QgYW5pbWF0aW9uX2NhY2hlICoqcGNhY2hlID0gJmFuaW1hdGlvbl9jYWNoZTsK IApAQCAtODA0MCw3ICs4MTkwLDcgQEAKICAgICAgIHBjYWNoZSA9ICZjYWNoZS0+bmV4dDsKICAg ICB9CiAKLSAgRGVzdHJveVN0cmluZyAoc2lnbmF0dXJlKTsKKyAgZm5fRGVzdHJveVN0cmluZyAo c2lnbmF0dXJlKTsKICAgY2FjaGUtPnVwZGF0ZV90aW1lID0gY3VycmVudF90aW1lc3BlYyAoKTsK ICAgcmV0dXJuIGNhY2hlOwogfQpAQCAtODA1MywxOCArODIwMywxOCBAQAogICBzaXplX3QgZGVz dF93aWR0aCwgZGVzdF9oZWlnaHQ7CiAgIHN0cnVjdCBhbmltYXRpb25fY2FjaGUgKmNhY2hlID0g aW1hZ2VtYWdpY2tfZ2V0X2FuaW1hdGlvbl9jYWNoZSAoc3VwZXJfd2FuZCk7CiAKLSAgTWFnaWNr U2V0SXRlcmF0b3JJbmRleCAoc3VwZXJfd2FuZCwgMCk7CisgIGZuX01hZ2lja1NldEl0ZXJhdG9y SW5kZXggKHN1cGVyX3dhbmQsIDApOwogCiAgIGlmIChpbm8gPT0gMCB8fCBjYWNoZS0+d2FuZCA9 PSBOVUxMIHx8IGNhY2hlLT5pbmRleCA+IGlubykKICAgICB7Ci0gICAgICBjb21wb3NpdGVfd2Fu ZCA9IE1hZ2lja0dldEltYWdlIChzdXBlcl93YW5kKTsKKyAgICAgIGNvbXBvc2l0ZV93YW5kID0g Zm5fTWFnaWNrR2V0SW1hZ2UgKHN1cGVyX3dhbmQpOwogICAgICAgaWYgKGNhY2hlLT53YW5kKQot CURlc3Ryb3lNYWdpY2tXYW5kIChjYWNoZS0+d2FuZCk7CisJZm5fRGVzdHJveU1hZ2lja1dhbmQg KGNhY2hlLT53YW5kKTsKICAgICB9CiAgIGVsc2UKICAgICBjb21wb3NpdGVfd2FuZCA9IGNhY2hl LT53YW5kOwogCi0gIGRlc3RfaGVpZ2h0ID0gTWFnaWNrR2V0SW1hZ2VIZWlnaHQgKGNvbXBvc2l0 ZV93YW5kKTsKKyAgZGVzdF9oZWlnaHQgPSBmbl9NYWdpY2tHZXRJbWFnZUhlaWdodCAoY29tcG9z aXRlX3dhbmQpOwogCiAgIGZvciAoaSA9IG1heCAoMSwgY2FjaGUtPmluZGV4ICsgMSk7IGkgPD0g aW5vOyBpKyspCiAgICAgewpAQCAtODA3NywzMiArODIyNywzMiBAQAogICAgICAgRGlzcG9zZVR5 cGUgZGlzcG9zZTsKICAgICAgIHB0cmRpZmZfdCBsaW5lcyA9IDA7CiAKLSAgICAgIE1hZ2lja1Nl dEl0ZXJhdG9ySW5kZXggKHN1cGVyX3dhbmQsIGkpOwotICAgICAgc3ViX3dhbmQgPSBNYWdpY2tH ZXRJbWFnZSAoc3VwZXJfd2FuZCk7CisgICAgICBmbl9NYWdpY2tTZXRJdGVyYXRvckluZGV4IChz dXBlcl93YW5kLCBpKTsKKyAgICAgIHN1Yl93YW5kID0gZm5fTWFnaWNrR2V0SW1hZ2UgKHN1cGVy X3dhbmQpOwogCi0gICAgICBNYWdpY2tHZXRJbWFnZVBhZ2UgKHN1Yl93YW5kLCAmc291cmNlX3dp ZHRoLCAmc291cmNlX2hlaWdodCwKKyAgICAgIGZuX01hZ2lja0dldEltYWdlUGFnZSAoc3ViX3dh bmQsICZzb3VyY2Vfd2lkdGgsICZzb3VyY2VfaGVpZ2h0LAogCQkJICAmc291cmNlX2xlZnQsICZz b3VyY2VfdG9wKTsKIAogICAgICAgLyogVGhpcyBmbGFnIHNheXMgaG93IHRvIGhhbmRsZSB0cmFu c3BhcmVudCBwaXhlbHMuICAqLwotICAgICAgZGlzcG9zZSA9IE1hZ2lja0dldEltYWdlRGlzcG9z ZSAoc3ViX3dhbmQpOworICAgICAgZGlzcG9zZSA9IGZuX01hZ2lja0dldEltYWdlRGlzcG9zZSAo c3ViX3dhbmQpOwogCi0gICAgICBzb3VyY2VfaXRlcmF0b3IgPSBOZXdQaXhlbEl0ZXJhdG9yIChz dWJfd2FuZCk7CisgICAgICBzb3VyY2VfaXRlcmF0b3IgPSBmbl9OZXdQaXhlbEl0ZXJhdG9yIChz dWJfd2FuZCk7CiAgICAgICBpZiAoISBzb3VyY2VfaXRlcmF0b3IpCiAJewotCSAgRGVzdHJveU1h Z2lja1dhbmQgKGNvbXBvc2l0ZV93YW5kKTsKLQkgIERlc3Ryb3lNYWdpY2tXYW5kIChzdWJfd2Fu ZCk7CisJICBmbl9EZXN0cm95TWFnaWNrV2FuZCAoY29tcG9zaXRlX3dhbmQpOworCSAgZm5fRGVz dHJveU1hZ2lja1dhbmQgKHN1Yl93YW5kKTsKIAkgIGNhY2hlLT53YW5kID0gTlVMTDsKIAkgIGlt YWdlX2Vycm9yICgiSW1hZ2VtYWdpY2sgcGl4ZWwgaXRlcmF0b3IgY3JlYXRpb24gZmFpbGVkIiwK IAkJICAgICAgIFFuaWwsIFFuaWwpOwogCSAgcmV0dXJuIE5VTEw7CiAJfQogCi0gICAgICBkZXN0 X2l0ZXJhdG9yID0gTmV3UGl4ZWxJdGVyYXRvciAoY29tcG9zaXRlX3dhbmQpOworICAgICAgZGVz dF9pdGVyYXRvciA9IGZuX05ld1BpeGVsSXRlcmF0b3IgKGNvbXBvc2l0ZV93YW5kKTsKICAgICAg IGlmICghIGRlc3RfaXRlcmF0b3IpCiAJewotCSAgRGVzdHJveU1hZ2lja1dhbmQgKGNvbXBvc2l0 ZV93YW5kKTsKLQkgIERlc3Ryb3lNYWdpY2tXYW5kIChzdWJfd2FuZCk7Ci0JICBEZXN0cm95UGl4 ZWxJdGVyYXRvciAoc291cmNlX2l0ZXJhdG9yKTsKKwkgIGZuX0Rlc3Ryb3lNYWdpY2tXYW5kIChj b21wb3NpdGVfd2FuZCk7CisJICBmbl9EZXN0cm95TWFnaWNrV2FuZCAoc3ViX3dhbmQpOworCSAg Zm5fRGVzdHJveVBpeGVsSXRlcmF0b3IgKHNvdXJjZV9pdGVyYXRvcik7CiAJICBjYWNoZS0+d2Fu ZCA9IE5VTEw7CiAJICBpbWFnZV9lcnJvciAoIkltYWdlbWFnaWNrIHBpeGVsIGl0ZXJhdG9yIGNy ZWF0aW9uIGZhaWxlZCIsCiAJCSAgICAgICBRbmlsLCBRbmlsKTsKQEAgLTgxMTMsMTIgKzgyNjMs MTIgQEAKIAkgaXRlcmF0b3IgdG8gd2hlcmUgdGhlIHN1Yi1pbWFnZSBzaG91bGQgc3RhcnQuICov CiAgICAgICBpZiAoc291cmNlX3RvcCA+IDApCiAJewotCSAgUGl4ZWxTZXRJdGVyYXRvclJvdyAo ZGVzdF9pdGVyYXRvciwgc291cmNlX3RvcCk7CisJICBmbl9QaXhlbFNldEl0ZXJhdG9yUm93IChk ZXN0X2l0ZXJhdG9yLCBzb3VyY2VfdG9wKTsKIAkgIGxpbmVzID0gc291cmNlX3RvcDsKIAl9CiAK LSAgICAgIHdoaWxlICgoc291cmNlID0gUGl4ZWxHZXROZXh0SXRlcmF0b3JSb3cgKHNvdXJjZV9p dGVyYXRvciwgJnNvdXJjZV93aWR0aCkpCi0JICAgICAhPSBOVUxMKQorICAgICAgd2hpbGUgKChz b3VyY2UgPSBmbl9QaXhlbEdldE5leHRJdGVyYXRvclJvdyAoc291cmNlX2l0ZXJhdG9yLAorCSAg ICAgJnNvdXJjZV93aWR0aCkpICE9IE5VTEwpCiAJewogCSAgcHRyZGlmZl90IHg7CiAKQEAgLTgx MjcsNyArODI3Nyw3IEBACiAJICBpZiAoKytsaW5lcyA+PSBkZXN0X2hlaWdodCkKIAkgICAgYnJl YWs7CiAKLQkgIGRlc3QgPSBQaXhlbEdldE5leHRJdGVyYXRvclJvdyAoZGVzdF9pdGVyYXRvciwg JmRlc3Rfd2lkdGgpOworCSAgZGVzdCA9IGZuX1BpeGVsR2V0TmV4dEl0ZXJhdG9yUm93IChkZXN0 X2l0ZXJhdG9yLCAmZGVzdF93aWR0aCk7CiAJICBmb3IgKHggPSAwOyB4IDwgc291cmNlX3dpZHRo OyB4KyspCiAJICAgIHsKIAkgICAgICAvKiBTYW5pdHkgY2hlY2suICBUaGlzIHNob3VsZG4ndCBo YXBwZW4sIGJ1dCBhcHBhcmVudGx5CkBAIC04MTM3LDIzICs4Mjg3LDIzIEBACiAJICAgICAgLyog Tm9ybWFsbHkgd2Ugb25seSBjb3B5IG92ZXIgbm9uLXRyYW5zcGFyZW50IHBpeGVscywKIAkJIGJ1 dCBpZiB0aGUgZGlzcG9zYWwgbWV0aG9kIGlzICJCYWNrZ3JvdW5kIiwgdGhlbiB3ZQogCQkgY29w eSBvdmVyIGFsbCBwaXhlbHMuICAqLwotCSAgICAgIGlmIChkaXNwb3NlID09IEJhY2tncm91bmRE aXNwb3NlIHx8IFBpeGVsR2V0QWxwaGEgKHNvdXJjZVt4XSkpCisJICAgICAgaWYgKGRpc3Bvc2Ug PT0gQmFja2dyb3VuZERpc3Bvc2UgfHwgZm5fUGl4ZWxHZXRBbHBoYSAoc291cmNlW3hdKSkKIAkJ ewotCQkgIFBpeGVsR2V0TWFnaWNrQ29sb3IgKHNvdXJjZVt4XSwgJnBpeGVsKTsKLQkJICBQaXhl bFNldE1hZ2lja0NvbG9yIChkZXN0W3ggKyBzb3VyY2VfbGVmdF0sICZwaXhlbCk7CisJCSAgZm5f UGl4ZWxHZXRNYWdpY2tDb2xvciAoc291cmNlW3hdLCAmcGl4ZWwpOworCQkgIGZuX1BpeGVsU2V0 TWFnaWNrQ29sb3IgKGRlc3RbeCArIHNvdXJjZV9sZWZ0XSwgJnBpeGVsKTsKIAkJfQogCSAgICB9 Ci0JICBQaXhlbFN5bmNJdGVyYXRvciAoZGVzdF9pdGVyYXRvcik7CisJICBmbl9QaXhlbFN5bmNJ dGVyYXRvciAoZGVzdF9pdGVyYXRvcik7CiAJfQogCi0gICAgICBEZXN0cm95UGl4ZWxJdGVyYXRv ciAoc291cmNlX2l0ZXJhdG9yKTsKLSAgICAgIERlc3Ryb3lQaXhlbEl0ZXJhdG9yIChkZXN0X2l0 ZXJhdG9yKTsKLSAgICAgIERlc3Ryb3lNYWdpY2tXYW5kIChzdWJfd2FuZCk7CisgICAgICBmbl9E ZXN0cm95UGl4ZWxJdGVyYXRvciAoc291cmNlX2l0ZXJhdG9yKTsKKyAgICAgIGZuX0Rlc3Ryb3lQ aXhlbEl0ZXJhdG9yIChkZXN0X2l0ZXJhdG9yKTsKKyAgICAgIGZuX0Rlc3Ryb3lNYWdpY2tXYW5k IChzdWJfd2FuZCk7CiAgICAgfQogCiAgIC8qIENhY2hlIGEgY29weSBmb3IgdGhlIG5leHQgaXRl cmF0aW9uLiAgVGhlIGN1cnJlbnQgd2FuZCB3aWxsIGJlCiAgICAgIGRlc3Ryb3llZCBieSB0aGUg Y2FsbGVyLiAqLwotICBjYWNoZS0+d2FuZCA9IENsb25lTWFnaWNrV2FuZCAoY29tcG9zaXRlX3dh bmQpOworICBjYWNoZS0+d2FuZCA9IGZuX0Nsb25lTWFnaWNrV2FuZCAoY29tcG9zaXRlX3dhbmQp OwogICBjYWNoZS0+aW5kZXggPSBpbm87CiAKICAgcmV0dXJuIGNvbXBvc2l0ZV93YW5kOwpAQCAt ODIwMiw1NyArODM1Miw1NyBAQAogICAgICBmaW5kIG91dCB0aGluZ3MgYWJvdXQgaXQuICAqLwog CiAgIC8qIEluaXRpYWxpemUgdGhlIGltYWdlbWFnaWNrIGVudmlyb25tZW50LiAgKi8KLSAgTWFn aWNrV2FuZEdlbmVzaXMgKCk7CisgIGZuX01hZ2lja1dhbmRHZW5lc2lzICgpOwogICBpbWFnZSA9 IGltYWdlX3NwZWNfdmFsdWUgKGltZy0+c3BlYywgUUNpbmRleCwgTlVMTCk7CiAgIGlubyA9IElO VEVHRVJQIChpbWFnZSkgPyBYRkFTVElOVCAoaW1hZ2UpIDogMDsKLSAgaW1hZ2Vfd2FuZCA9IE5l d01hZ2lja1dhbmQgKCk7CisgIGltYWdlX3dhbmQgPSBmbl9OZXdNYWdpY2tXYW5kICgpOwogCiAg IGlmIChmaWxlbmFtZSkKLSAgICBzdGF0dXMgPSBNYWdpY2tSZWFkSW1hZ2UgKGltYWdlX3dhbmQs IGZpbGVuYW1lKTsKKyAgICBzdGF0dXMgPSBmbl9NYWdpY2tSZWFkSW1hZ2UgKGltYWdlX3dhbmQs IGZpbGVuYW1lKTsKICAgZWxzZQogICAgIHsKICAgICAgIGZpbGVuYW1lX2hpbnQgPSBpbWFnZW1h Z2lja19maWxlbmFtZV9oaW50IChpbWctPnNwZWMsIGhpbnRfYnVmZmVyKTsKLSAgICAgIE1hZ2lj a1NldEZpbGVuYW1lIChpbWFnZV93YW5kLCBmaWxlbmFtZV9oaW50KTsKLSAgICAgIHN0YXR1cyA9 IE1hZ2lja1JlYWRJbWFnZUJsb2IgKGltYWdlX3dhbmQsIGNvbnRlbnRzLCBzaXplKTsKKyAgICAg IGZuX01hZ2lja1NldEZpbGVuYW1lIChpbWFnZV93YW5kLCBmaWxlbmFtZV9oaW50KTsKKyAgICAg IHN0YXR1cyA9IGZuX01hZ2lja1JlYWRJbWFnZUJsb2IgKGltYWdlX3dhbmQsIGNvbnRlbnRzLCBz aXplKTsKICAgICB9CiAKICAgaWYgKHN0YXR1cyA9PSBNYWdpY2tGYWxzZSkKICAgICB7CiAgICAg ICBpbWFnZW1hZ2lja19lcnJvciAoaW1hZ2Vfd2FuZCk7Ci0gICAgICBEZXN0cm95TWFnaWNrV2Fu ZCAoaW1hZ2Vfd2FuZCk7CisgICAgICBmbl9EZXN0cm95TWFnaWNrV2FuZCAoaW1hZ2Vfd2FuZCk7 CiAgICAgICByZXR1cm4gMDsKICAgICB9CiAKLSAgaWYgKGlubyA8IDAgfHwgaW5vID49IE1hZ2lj a0dldE51bWJlckltYWdlcyAoaW1hZ2Vfd2FuZCkpCisgIGlmIChpbm8gPCAwIHx8IGlubyA+PSBm bl9NYWdpY2tHZXROdW1iZXJJbWFnZXMgKGltYWdlX3dhbmQpKQogICAgIHsKICAgICAgIGltYWdl X2Vycm9yICgiSW52YWxpZCBpbWFnZSBudW1iZXIgYCVzJyBpbiBpbWFnZSBgJXMnIiwKIAkJICAg aW1hZ2UsIGltZy0+c3BlYyk7Ci0gICAgICBEZXN0cm95TWFnaWNrV2FuZCAoaW1hZ2Vfd2FuZCk7 CisgICAgICBmbl9EZXN0cm95TWFnaWNrV2FuZCAoaW1hZ2Vfd2FuZCk7CiAgICAgICByZXR1cm4g MDsKICAgICB9CiAKLSAgaWYgKE1hZ2lja0dldEltYWdlRGVsYXkgKGltYWdlX3dhbmQpID4gMCkK KyAgaWYgKGZuX01hZ2lja0dldEltYWdlRGVsYXkgKGltYWdlX3dhbmQpID4gMCkKICAgICBpbWct Pmxpc3BfZGF0YSA9CiAgICAgICBGY29ucyAoUWRlbGF5LAotICAgICAgICAgICAgIEZjb25zICht YWtlX2Zsb2F0IChNYWdpY2tHZXRJbWFnZURlbGF5IChpbWFnZV93YW5kKSAvIDEwMC4wKSwKKyAg ICAgICAgICAgICBGY29ucyAobWFrZV9mbG9hdCAoZm5fTWFnaWNrR2V0SW1hZ2VEZWxheSAoaW1h Z2Vfd2FuZCkgLyAxMDAuMCksCiAgICAgICAgICAgICAgICAgICAgIGltZy0+bGlzcF9kYXRhKSk7 CiAKLSAgaWYgKE1hZ2lja0dldE51bWJlckltYWdlcyAoaW1hZ2Vfd2FuZCkgPiAxKQorICBpZiAo Zm5fTWFnaWNrR2V0TnVtYmVySW1hZ2VzIChpbWFnZV93YW5kKSA+IDEpCiAgICAgaW1nLT5saXNw X2RhdGEgPQogICAgICAgRmNvbnMgKFFjb3VudCwKLSAgICAgICAgICAgICBGY29ucyAobWFrZV9u dW1iZXIgKE1hZ2lja0dldE51bWJlckltYWdlcyAoaW1hZ2Vfd2FuZCkpLAorICAgICAgICAgICAg IEZjb25zIChtYWtlX251bWJlciAoZm5fTWFnaWNrR2V0TnVtYmVySW1hZ2VzIChpbWFnZV93YW5k KSksCiAgICAgICAgICAgICAgICAgICAgIGltZy0+bGlzcF9kYXRhKSk7CiAKICAgLyogSWYgd2Ug aGF2ZSBhbiBhbmltYXRlZCBpbWFnZSwgZ2V0IHRoZSBuZXcgd2FuZCBiYXNlZCBvbiB0aGUKICAg ICAgInN1cGVyLXdhbmQiLiAqLwotICBpZiAoTWFnaWNrR2V0TnVtYmVySW1hZ2VzIChpbWFnZV93 YW5kKSA+IDEpCisgIGlmIChmbl9NYWdpY2tHZXROdW1iZXJJbWFnZXMgKGltYWdlX3dhbmQpID4g MSkKICAgICB7CiAgICAgICBNYWdpY2tXYW5kICpzdXBlcl93YW5kID0gaW1hZ2Vfd2FuZDsKICAg ICAgIGltYWdlX3dhbmQgPSBpbWFnZW1hZ2lja19jb21wdXRlX2FuaW1hdGVkX2ltYWdlIChzdXBl cl93YW5kLCBpbm8pOwogICAgICAgaWYgKCEgaW1hZ2Vfd2FuZCkKIAlpbWFnZV93YW5kID0gc3Vw ZXJfd2FuZDsKICAgICAgIGVsc2UKLQlEZXN0cm95TWFnaWNrV2FuZCAoc3VwZXJfd2FuZCk7CisJ Zm5fRGVzdHJveU1hZ2lja1dhbmQgKHN1cGVyX3dhbmQpOwogICAgIH0KIAogICAvKiBSZXRyaWV2 ZSB0aGUgZnJhbWUncyBiYWNrZ3JvdW5kIGNvbG9yLCBmb3IgdXNlIGxhdGVyLiAgKi8KQEAgLTgy NjUsMTkgKzg0MTUsMTkgQEAKIAl8fCAheF9kZWZpbmVkX2NvbG9yIChmLCBTU0RBVEEgKHNwZWNp ZmllZF9iZyksICZiZ2NvbG9yLCAwKSkKICAgICAgIHhfcXVlcnlfZnJhbWVfYmFja2dyb3VuZF9j b2xvciAoZiwgJmJnY29sb3IpOwogCi0gICAgYmdfd2FuZCA9IE5ld1BpeGVsV2FuZCAoKTsKLSAg ICBQaXhlbFNldFJlZCAgIChiZ193YW5kLCAoZG91YmxlKSBiZ2NvbG9yLnJlZCAgIC8gNjU1MzUp OwotICAgIFBpeGVsU2V0R3JlZW4gKGJnX3dhbmQsIChkb3VibGUpIGJnY29sb3IuZ3JlZW4gLyA2 NTUzNSk7Ci0gICAgUGl4ZWxTZXRCbHVlICAoYmdfd2FuZCwgKGRvdWJsZSkgYmdjb2xvci5ibHVl ICAvIDY1NTM1KTsKKyAgICBiZ193YW5kID0gZm5fTmV3UGl4ZWxXYW5kICgpOworICAgIGZuX1Bp eGVsU2V0UmVkICAgKGJnX3dhbmQsIChkb3VibGUpIGJnY29sb3IucmVkICAgLyA2NTUzNSk7Cisg ICAgZm5fUGl4ZWxTZXRHcmVlbiAoYmdfd2FuZCwgKGRvdWJsZSkgYmdjb2xvci5ncmVlbiAvIDY1 NTM1KTsKKyAgICBmbl9QaXhlbFNldEJsdWUgIChiZ193YW5kLCAoZG91YmxlKSBiZ2NvbG9yLmJs dWUgIC8gNjU1MzUpOwogICB9CiAKLSAgY29tcHV0ZV9pbWFnZV9zaXplIChNYWdpY2tHZXRJbWFn ZVdpZHRoIChpbWFnZV93YW5kKSwKLQkJICAgICAgTWFnaWNrR2V0SW1hZ2VIZWlnaHQgKGltYWdl X3dhbmQpLAorICBjb21wdXRlX2ltYWdlX3NpemUgKGZuX01hZ2lja0dldEltYWdlV2lkdGggKGlt YWdlX3dhbmQpLAorCQkgICAgICBmbl9NYWdpY2tHZXRJbWFnZUhlaWdodCAoaW1hZ2Vfd2FuZCks CiAJCSAgICAgIGltZy0+c3BlYywgJmRlc2lyZWRfd2lkdGgsICZkZXNpcmVkX2hlaWdodCk7CiAK ICAgaWYgKGRlc2lyZWRfd2lkdGggIT0gLTEgJiYgZGVzaXJlZF9oZWlnaHQgIT0gLTEpCiAgICAg ewotICAgICAgc3RhdHVzID0gTWFnaWNrU2NhbGVJbWFnZSAoaW1hZ2Vfd2FuZCwgZGVzaXJlZF93 aWR0aCwgZGVzaXJlZF9oZWlnaHQpOworICAgICAgc3RhdHVzID0gZm5fTWFnaWNrU2NhbGVJbWFn ZSAoaW1hZ2Vfd2FuZCwgZGVzaXJlZF93aWR0aCwgZGVzaXJlZF9oZWlnaHQpOwogICAgICAgaWYg KHN0YXR1cyA9PSBNYWdpY2tGYWxzZSkKIAl7CiAJICBpbWFnZV9lcnJvciAoIkltYWdlbWFnaWNr IHNjYWxlIGZhaWxlZCIsIFFuaWwsIFFuaWwpOwpAQCAtODMxMCw3ICs4NDYwLDcgQEAKIAkgICAg ICBpZiAoQ09OU1AgKGNyb3ApICYmIFRZUEVfUkFOR0VEX0lOVEVHRVJQIChzc2l6ZV90LCBYQ0FS IChjcm9wKSkpCiAJCXsKIAkJICBzc2l6ZV90IGNyb3BfeSA9IFhJTlQgKFhDQVIgKGNyb3ApKTsK LQkJICBNYWdpY2tDcm9wSW1hZ2UgKGltYWdlX3dhbmQsIGNyb3Bfd2lkdGgsIGNyb3BfaGVpZ2h0 LAorCQkgIGZuX01hZ2lja0Nyb3BJbWFnZSAoaW1hZ2Vfd2FuZCwgY3JvcF93aWR0aCwgY3JvcF9o ZWlnaHQsCiAJCQkJICAgY3JvcF94LCBjcm9wX3kpOwogCQl9CiAJICAgIH0KQEAgLTgzMjcsNyAr ODQ3Nyw3IEBACiAgIGlmIChGTE9BVFAgKHZhbHVlKSkKICAgICB7CiAgICAgICByb3RhdGlvbiA9 IGV4dHJhY3RfZmxvYXQgKHZhbHVlKTsKLSAgICAgIHN0YXR1cyA9IE1hZ2lja1JvdGF0ZUltYWdl IChpbWFnZV93YW5kLCBiZ193YW5kLCByb3RhdGlvbik7CisgICAgICBzdGF0dXMgPSBmbl9NYWdp Y2tSb3RhdGVJbWFnZSAoaW1hZ2Vfd2FuZCwgYmdfd2FuZCwgcm90YXRpb24pOwogICAgICAgaWYg KHN0YXR1cyA9PSBNYWdpY2tGYWxzZSkKICAgICAgICAgewogICAgICAgICAgIGltYWdlX2Vycm9y ICgiSW1hZ2VtYWdpY2sgaW1hZ2Ugcm90YXRlIGZhaWxlZCIsIFFuaWwsIFFuaWwpOwpAQCAtODM0 MiwyMCArODQ5MiwyMCBAQAogICAgICAoZS5nLiBldGMvaW1hZ2VzL3NwbGFzaC5zdmcgc2hvd3Mg YSB3aGl0ZSBiYWNrZ3JvdW5kIGFsd2F5cykuICAqLwogICB7CiAgICAgTWFnaWNrV2FuZCAqbmV3 X3dhbmQ7Ci0gICAgTWFnaWNrU2V0SW1hZ2VCYWNrZ3JvdW5kQ29sb3IgKGltYWdlX3dhbmQsIGJn X3dhbmQpOworICAgIGZuX01hZ2lja1NldEltYWdlQmFja2dyb3VuZENvbG9yIChpbWFnZV93YW5k LCBiZ193YW5kKTsKICNpZmRlZiBIQVZFX01BR0lDS01FUkdFSU1BR0VMQVlFUlMKLSAgICBuZXdf d2FuZCA9IE1hZ2lja01lcmdlSW1hZ2VMYXllcnMgKGltYWdlX3dhbmQsIE1lcmdlTGF5ZXIpOwor ICAgIG5ld193YW5kID0gZm5fTWFnaWNrTWVyZ2VJbWFnZUxheWVycyAoaW1hZ2Vfd2FuZCwgTWVy Z2VMYXllcik7CiAjZWxzZQotICAgIG5ld193YW5kID0gTWFnaWNrRmxhdHRlbkltYWdlcyAoaW1h Z2Vfd2FuZCk7CisgICAgbmV3X3dhbmQgPSBmbl9NYWdpY2tGbGF0dGVuSW1hZ2VzIChpbWFnZV93 YW5kKTsKICNlbmRpZgotICAgIERlc3Ryb3lNYWdpY2tXYW5kIChpbWFnZV93YW5kKTsKKyAgICBm bl9EZXN0cm95TWFnaWNrV2FuZCAoaW1hZ2Vfd2FuZCk7CiAgICAgaW1hZ2Vfd2FuZCA9IG5ld193 YW5kOwogICB9CiAKICAgLyogRmluYWxseSB3ZSBhcmUgZG9uZSBtYW5pcHVsYXRpbmcgdGhlIGlt YWdlLiAgRmlndXJlIG91dCB0aGUKICAgICAgcmVzdWx0aW5nIHdpZHRoL2hlaWdodCBhbmQgdHJh bnNmZXIgb3duZXJzaGlwIHRvIEVtYWNzLiAgKi8KLSAgaW1hZ2VfaGVpZ2h0ID0gTWFnaWNrR2V0 SW1hZ2VIZWlnaHQgKGltYWdlX3dhbmQpOwotICBpbWFnZV93aWR0aCA9IE1hZ2lja0dldEltYWdl V2lkdGggKGltYWdlX3dhbmQpOworICBpbWFnZV9oZWlnaHQgPSBmbl9NYWdpY2tHZXRJbWFnZUhl aWdodCAoaW1hZ2Vfd2FuZCk7CisgIGltYWdlX3dpZHRoID0gZm5fTWFnaWNrR2V0SW1hZ2VXaWR0 aCAoaW1hZ2Vfd2FuZCk7CiAKICAgaWYgKCEgKGltYWdlX3dpZHRoIDw9IElOVF9NQVggJiYgaW1h Z2VfaGVpZ2h0IDw9IElOVF9NQVgKIAkgJiYgY2hlY2tfaW1hZ2Vfc2l6ZSAoZiwgaW1hZ2Vfd2lk dGgsIGltYWdlX2hlaWdodCkpKQpAQCAtODQxMSw3ICs4NTYxLDcgQEAKICAgICAgICAgc2VlbXMg YWJvdXQgMyB0aW1lcyBhcyBmYXN0IGFzIHBpeGVsIHB1c2hpbmcobm90IGNhcmVmdWxseSBtZWFz dXJlZCkKICAgICAgICovCiAgICAgICBwaXhlbHdpZHRoID0gQ2hhclBpeGVsOyAvKj8/PyBUT0RP IGZpZ3VyZSBvdXQqLwotICAgICAgTWFnaWNrRXhwb3J0SW1hZ2VQaXhlbHMgKGltYWdlX3dhbmQs IDAsIDAsIHdpZHRoLCBoZWlnaHQsCisgICAgICBmbl9NYWdpY2tFeHBvcnRJbWFnZVBpeGVscyAo aW1hZ2Vfd2FuZCwgMCwgMCwgd2lkdGgsIGhlaWdodCwKIAkJCSAgICAgICBleHBvcnRkZXB0aCwg cGl4ZWx3aWR0aCwgeGltZy0+ZGF0YSk7CiAgICAgfQogICBlbHNlCkBAIC04NDM2LDcgKzg1ODYs NyBAQAogICAgICAgICAgaW1hZ2VzLiAgKi8KIAogICAgICAgLyogQ29weSBwaXhlbHMgZnJvbSB0 aGUgaW1hZ2VtYWdpY2sgaW1hZ2Ugc3RydWN0dXJlIHRvIHRoZSB4IGltYWdlIG1hcC4gKi8KLSAg ICAgIGl0ZXJhdG9yID0gTmV3UGl4ZWxJdGVyYXRvciAoaW1hZ2Vfd2FuZCk7CisgICAgICBpdGVy YXRvciA9IGZuX05ld1BpeGVsSXRlcmF0b3IgKGltYWdlX3dhbmQpOwogICAgICAgaWYgKCEgaXRl cmF0b3IpCiAgICAgICAgIHsKICNpZmRlZiBDT0xPUl9UQUJMRV9TVVBQT1JUCkBAIC04NDQ4LDE3 ICs4NTk4LDE3IEBACiAgICAgICAgICAgZ290byBpbWFnZW1hZ2lja19lcnJvcjsKICAgICAgICAg fQogCi0gICAgICBpbWFnZV9oZWlnaHQgPSBNYWdpY2tHZXRJbWFnZUhlaWdodCAoaW1hZ2Vfd2Fu ZCk7CisgICAgICBpbWFnZV9oZWlnaHQgPSBmbl9NYWdpY2tHZXRJbWFnZUhlaWdodCAoaW1hZ2Vf d2FuZCk7CiAgICAgICBmb3IgKHkgPSAwOyB5IDwgaW1hZ2VfaGVpZ2h0OyB5KyspCiAgICAgICAg IHsKIAkgIHNpemVfdCByb3dfd2lkdGg7Ci0JICBwaXhlbHMgPSBQaXhlbEdldE5leHRJdGVyYXRv clJvdyAoaXRlcmF0b3IsICZyb3dfd2lkdGgpOworCSAgcGl4ZWxzID0gZm5fUGl4ZWxHZXROZXh0 SXRlcmF0b3JSb3cgKGl0ZXJhdG9yLCAmcm93X3dpZHRoKTsKICAgICAgICAgICBpZiAoISBwaXhl bHMpCiAgICAgICAgICAgICBicmVhazsKIAkgIGludCB4bGltID0gbWluIChyb3dfd2lkdGgsIHdp ZHRoKTsKIAkgIGZvciAoeCA9IDA7IHggPCB4bGltOyB4KyspCiAgICAgICAgICAgICB7Ci0gICAg ICAgICAgICAgIFBpeGVsR2V0TWFnaWNrQ29sb3IgKHBpeGVsc1t4XSwgJnBpeGVsKTsKKyAgICAg ICAgICAgICAgZm5fUGl4ZWxHZXRNYWdpY2tDb2xvciAocGl4ZWxzW3hdLCAmcGl4ZWwpOwogICAg ICAgICAgICAgICBYUHV0UGl4ZWwgKHhpbWcsIHgsIHksCiAgICAgICAgICAgICAgICAgICAgICAg ICAgbG9va3VwX3JnYl9jb2xvciAoZiwKIAkJCQkJICAgY29sb3Jfc2NhbGUgKiBwaXhlbC5yZWQs CkBAIC04NDY2LDcgKzg2MTYsNyBAQAogCQkJCQkgICBjb2xvcl9zY2FsZSAqIHBpeGVsLmJsdWUp KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQotICAgICAgRGVzdHJveVBpeGVsSXRlcmF0b3Ig KGl0ZXJhdG9yKTsKKyAgICAgIGZuX0Rlc3Ryb3lQaXhlbEl0ZXJhdG9yIChpdGVyYXRvcik7CiAg ICAgfQogCiAjaWZkZWYgQ09MT1JfVEFCTEVfU1VQUE9SVApAQCAtODQ4MiwxOSArODYzMiwxOSBA QAogICBpbWFnZV9wdXRfeF9pbWFnZSAoZiwgaW1nLCB4aW1nLCAwKTsKIAogICAvKiBGaW5hbCBj bGVhbnVwLiBpbWFnZV93YW5kIHNob3VsZCBiZSB0aGUgb25seSByZXNvdXJjZSBsZWZ0LiAqLwot ICBEZXN0cm95TWFnaWNrV2FuZCAoaW1hZ2Vfd2FuZCk7Ci0gIGlmIChiZ193YW5kKSBEZXN0cm95 UGl4ZWxXYW5kIChiZ193YW5kKTsKKyAgZm5fRGVzdHJveU1hZ2lja1dhbmQgKGltYWdlX3dhbmQp OworICBpZiAoYmdfd2FuZCkgZm5fRGVzdHJveVBpeGVsV2FuZCAoYmdfd2FuZCk7CiAKICAgLyog YE1hZ2lja1dhbmRUZXJtaW51cycgdGVybWluYXRlcyB0aGUgaW1hZ2VtYWdpY2sgZW52aXJvbm1l bnQuICAqLwotICBNYWdpY2tXYW5kVGVybWludXMgKCk7CisgIGZuX01hZ2lja1dhbmRUZXJtaW51 cyAoKTsKIAogICByZXR1cm4gMTsKIAogIGltYWdlbWFnaWNrX2Vycm9yOgotICBEZXN0cm95TWFn aWNrV2FuZCAoaW1hZ2Vfd2FuZCk7Ci0gIGlmIChiZ193YW5kKSBEZXN0cm95UGl4ZWxXYW5kIChi Z193YW5kKTsKKyAgZm5fRGVzdHJveU1hZ2lja1dhbmQgKGltYWdlX3dhbmQpOworICBpZiAoYmdf d2FuZCkgZm5fRGVzdHJveVBpeGVsV2FuZCAoYmdfd2FuZCk7CiAKLSAgTWFnaWNrV2FuZFRlcm1p bnVzICgpOworICBmbl9NYWdpY2tXYW5kVGVybWludXMgKCk7CiAgIC8qIFRPRE8gbW9yZSBjbGVh bnVwLiAgKi8KICAgaW1hZ2VfZXJyb3IgKCJFcnJvciBwYXJzaW5nIElNQUdFTUFHSUNLIGltYWdl IGAlcyciLCBpbWctPnNwZWMsIFFuaWwpOwogICByZXR1cm4gMDsKQEAgLTg1NjUsMTggKzg3MTUs MTggQEAKICAgY2hhciAqKmltdHlwZXM7CiAgIHNpemVfdCBpOwogCi0gIEdldEV4Y2VwdGlvbklu Zm8oJmV4KTsKLSAgaW10eXBlcyA9IEdldE1hZ2lja0xpc3QgKCIqIiwgJm51bWYsICZleCk7Ci0g IERlc3Ryb3lFeGNlcHRpb25JbmZvKCZleCk7CisgIGZuX0dldEV4Y2VwdGlvbkluZm8oJmV4KTsK KyAgaW10eXBlcyA9IGZuX0dldE1hZ2lja0xpc3QgKCIqIiwgJm51bWYsICZleCk7CisgIGZuX0Rl c3Ryb3lFeGNlcHRpb25JbmZvKCZleCk7CiAKICAgZm9yIChpID0gMDsgaSA8IG51bWY7IGkrKykK ICAgICB7CiAgICAgICBMaXNwX09iamVjdCBpbWFnZW1hZ2lja3R5cGUgPSBpbnRlcm4gKGltdHlw ZXNbaV0pOwogICAgICAgdHlwZWxpc3QgPSBGY29ucyAoaW1hZ2VtYWdpY2t0eXBlLCB0eXBlbGlz dCk7Ci0gICAgICBpbXR5cGVzW2ldID0gTWFnaWNrUmVsaW5xdWlzaE1lbW9yeSAoaW10eXBlc1tp XSk7CisgICAgICBpbXR5cGVzW2ldID0gZm5fTWFnaWNrUmVsaW5xdWlzaE1lbW9yeSAoaW10eXBl c1tpXSk7CiAgICAgfQogCi0gIE1hZ2lja1JlbGlucXVpc2hNZW1vcnkgKGltdHlwZXMpOworICBm bl9NYWdpY2tSZWxpbnF1aXNoTWVtb3J5IChpbXR5cGVzKTsKICAgcmV0dXJuIEZucmV2ZXJzZSAo dHlwZWxpc3QpOwogfQogCg== --001a11c3eeeebfa0d0050568c407 Content-Type: application/octet-stream; name="w32-win.el.patch" Content-Disposition: attachment; filename="w32-win.el.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i19r5fz12 LS0tIGxpc3AvdGVybS93MzItd2luLmVsLm9yaWcJMjAxNC0xMC0xNCAxMjoxNToyOS42MzA1MzM3 MDAgKzAyMDAKKysrIGxpc3AvdGVybS93MzItd2luLmVsCTIwMTQtMTAtMTQgMTY6MzM6NTMuMzEx NjEwMDAwICswMjAwCkBAIC0yNjAsNiArMjYwLDcgQEAKIAkgKGlmICg+PSBsaWJnaWYtdmVyc2lv biA1MDAwMCkKIAkgICAgICcoZ2lmICJsaWJnaWYtNi5kbGwiICJnaWZsaWI1LmRsbCIgImdpZi5k bGwiKQogCSAnKGdpZiAibGliZ2lmLTUuZGxsIiAiZ2lmbGliNC5kbGwiICJsaWJ1bmdpZjQuZGxs IiAibGlidW5naWYuZGxsIikpKQorICAgICAgICcoaW1hZ2VtYWdpY2sgImxpYk1hZ2lja1dhbmQt Ni5RMTZIRFJJLTIuZGxsIikKICAgICAgICAnKHN2ZyAibGlicnN2Zy0yLTIuZGxsIikKICAgICAg ICAnKGdkay1waXhidWYgImxpYmdka19waXhidWYtMi4wLTAuZGxsIikKICAgICAgICAnKGdsaWIg ImxpYmdsaWItMi4wLTAuZGxsIikK --001a11c3eeeebfa0d0050568c407--