From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Cecilio Pardo Newsgroups: gmane.emacs.bugs Subject: bug#74423: Low level key events Date: Wed, 18 Dec 2024 11:59:16 +0100 Message-ID: <343e2854-a16e-4718-894a-470b733ae91f@imayhem.com> References: <31bdc55d-8c13-4de0-9cef-bd6cc4fb033f@imayhem.com> <705fabb8-1ea0-4894-8c32-05097ab822c9@imayhem.com> <868qsvz07i.fsf@gnu.org> <162dada7-ad54-4ca5-8f11-d55dd6dccb3c@imayhem.com> <867c8ezny3.fsf@gnu.org> <86bjxev7ng.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------Ho0Ev8LvMd4RGoiUOUnpb8B7" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="12736"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla Thunderbird Cc: luangruo@yahoo.com, 74423@debbugs.gnu.org, monnier@iro.umontreal.ca To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Wed Dec 18 12:00:33 2024 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1tNrn5-00032d-4o for geb-bug-gnu-emacs@m.gmane-mx.org; Wed, 18 Dec 2024 12:00:31 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tNrmn-0003H4-JE; Wed, 18 Dec 2024 06:00:13 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tNrme-0003EM-87 for bug-gnu-emacs@gnu.org; Wed, 18 Dec 2024 06:00:04 -0500 Original-Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tNrmd-0000SA-H3 for bug-gnu-emacs@gnu.org; Wed, 18 Dec 2024 06:00:03 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debbugs.gnu.org; s=debbugs-gnu-org; h=In-Reply-To:From:References:MIME-Version:Date:To:Subject; bh=h6PqSZbmT9mbgnX4kX0VkTPE/BjaHcwOQd0/46gM9jE=; b=mbeKi/3LAVg2rhkWj+WDG0N7decCgrWmUR+HakQtHXAbpilTki1MCeWv2KCmldKZ02+qGJjpuZ1hjyjjWVpEqj19CcS9OKh+LBqq+kXT5JDHMapOLK+ibiPKIe05iX/2/rmhtz3c5BtyTXDG7W916RU4p+pKO23EKcOzBzI8+DJMYNXXMoJGU7oN6G7HhfAXMTAoGcKLQr7VoBm7tJ45uqZiFrSl1ojxXq/enGRYsJZFewBLEkiuyozftgxFb6bw/oiJkNSegk16R0n/kN2f8xEbwUgNjDMg+y5VeABu/RYAlSMWN1+x+26nEpqfmRCOlRVXlOqXXbAIZsu+5523oQ==; Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1tNrmc-0004TL-Vl for bug-gnu-emacs@gnu.org; Wed, 18 Dec 2024 06:00:03 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Cecilio Pardo Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 18 Dec 2024 11:00:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 74423 X-GNU-PR-Package: emacs Original-Received: via spool by 74423-submit@debbugs.gnu.org id=B74423.173451957817115 (code B ref 74423); Wed, 18 Dec 2024 11:00:02 +0000 Original-Received: (at 74423) by debbugs.gnu.org; 18 Dec 2024 10:59:38 +0000 Original-Received: from localhost ([127.0.0.1]:33618 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tNrm5-0004Re-LH for submit@debbugs.gnu.org; Wed, 18 Dec 2024 05:59:38 -0500 Original-Received: from mail.imayhem.com ([82.223.54.191]:48129 helo=zealous-pike.82-223-54-191.plesk.page) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tNrlz-0004RA-56 for 74423@debbugs.gnu.org; Wed, 18 Dec 2024 05:59:27 -0500 Original-Received: from [192.168.68.103] (111.red-88-21-7.staticip.rima-tde.net [88.21.7.111]) by zealous-pike.82-223-54-191.plesk.page (Postfix) with ESMTPSA id 528BA80135; Wed, 18 Dec 2024 10:59:17 +0000 (UTC) Authentication-Results: zealous-pike.82-223-54-191.plesk.page; spf=pass (sender IP is 88.21.7.111) smtp.mailfrom=cpardo@imayhem.com smtp.helo=[192.168.68.103] Received-SPF: pass (zealous-pike.82-223-54-191.plesk.page: connection is authenticated) Content-Language: es-ES In-Reply-To: <86bjxev7ng.fsf@gnu.org> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:297332 Archived-At: This is a multi-part message in MIME format. --------------Ho0Ev8LvMd4RGoiUOUnpb8B7 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 14/12/2024 12:14, Eli Zaretskii wrote: > Aren't these events sent only if enable-low-level-key-events is > non-nil? If so, this should be documented, and the variable itself > should be documented. Fixed this and the style mistakes. --------------Ho0Ev8LvMd4RGoiUOUnpb8B7 Content-Type: text/plain; charset=UTF-8; name="0001-Send-events-for-key-presses-and-key-releases.patch" Content-Disposition: attachment; filename="0001-Send-events-for-key-presses-and-key-releases.patch" Content-Transfer-Encoding: base64 RnJvbSA5ZTdkMjE5NTQzYjJkZDQyNDcyNzEyNTkxMGVjNzExZjFhYTZjYjU1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBDZWNpbGlvIFBhcmRvIDxjcGFyZG9AaW1heWhlbS5j b20+CkRhdGU6IE1vbiwgMiBEZWMgMjAyNCAxNzozMDo0MiArMDEwMApTdWJqZWN0OiBbUEFU Q0hdIFNlbmQgZXZlbnRzIGZvciBrZXkgcHJlc3NlcyBhbmQga2V5IHJlbGVhc2VzLgoKRGV0 ZWN0IGRvdWJsZS90cmlwbGUgdGFwcy4KCiogZG9jL2xpc3ByZWYvY29tbWFuZHMudGV4aTog QWRkZWQgaW5mb3JtYXRpb24gYWJvdXQgbmV3IGV2ZW50LgoqIHNyYy9ndGt1dGlsLmMgKHhn X2NyZWF0ZV9mcmFtZV93aWRnZXRzKTogTW9kaWZpZWQgdG8gaGFuZGxlIGtleQpyZWxlYXNl IGV2ZW50cy4KKHhnX21heWJlX3NlbmRfbG93X2xldmVsX2tleV9ldmVudCk6IE5ldyBmdW5j dGlvbiB0aGF0IHNlbmRzIGtleQpldmVudHMuCih4Z193aWRnZXRfa2V5X3ByZXNzX2V2ZW50 X2NiKTogTW9kaWZpZWQgdG8gc2VuZCBsb3cgbGV2ZWwga2V5IGV2ZW50cy4KKHhnX3dpZGdl dF9rZXlfcmVsZWFzZV9ldmVudF9jYik6IE5ldyBmdW5jdGlvbiB0byBzZW5kIGxvdyBsZXZl bCBrZXkKZXZlbnRzIG9uIGtleSByZWxlYXNlLgoqIHNyYy9rZXlib2FyZC5jIChrYmRfYnVm ZmVyX2dldF9ldmVudCk6IE1vZGlmaWVkIHRvIGhhbmRsZSBsb3cgbGV2ZWwKa2V5Ym9hcmQg ZXZlbnRzLgoobWFrZV9saXNweV9ldmVudCk6IE1vZGlmaWVkIHRvIGhhbmRsZSBsb3cgbGV2 ZWwga2V5Ym9hcmQgZXZlbnRzLgooa2JkX2xvd19sZXZlbF9rZXlfaXNfZW5hYmxlZCk6IE5l dyBmdW5jdGlvbiB0byBkZWNpZGUgaWYgYSBwYXJ0aWN1bGFyCmtleSBzaG91bGQgZ2VuZXJh dGUgZXZlbnRzLCBsb29raW5nIGF0IGNvbmZpZ3VyYXRpb24uCihzeW1zX29mX2tleWJvYXJk KTogQWRkZWQgc3ltYm9scyBhbmQgdmFyaWFsYmxlcy4KKGtleXNfb2Zfa2V5Ym9hcmQpOiBN b2RpZmllZCB0byBtYXAgbG93IGxldmVsIGtleSBldmVudHMgdG8KJ3NwZWNpYWwtZXZlbnQt bWFwJy4KKiBzcmMva2V5Ym9hcmQuaDogTW9kaWZpZWQgd2l0aCBmdW5jdGlvbiBwcm90b3R5 cGUuCiogc3JjL3BndGt0ZXJtLmMgKHBndGtfbWF5YmVfc2VuZF9sb3dfbGV2ZWxfa2V5X2V2 ZW50KTogTmV3IGZ1bmN0aW9uCnRoYXQgc2VuZHMga2V5IGV2ZW50cy4KKGtleV9wcmVzc19l dmVudCk6IE1vZGlmaWVkIHRvIGhhbmRsZSBsb3cgbGV2ZWwga2V5Ym9hcmQgZXZlbnRzLgoo a2V5X3JlbGVhc2VfZXZlbnQpOiBNb2RpZmllZCB0byBoYW5kbGUgbG93IGxldmVsIGtleWJv YXJkIGV2ZW50cy4KKiBzcmMvdGVybWhvb2tzLmg6IE1vZGlmaWVkIHRvIGRlZmluZSBjb25z dGFudC4KKiBzcmMvdzMyZm5zLmMgKHczMl93bmRfcHJvYyk6IE1vZGlmaWVkIHRvIGdlbmVy YXRlIGxvdyBsZXZlbCBrZXkKZXZlbnRzLgoqIHNyYy93MzJ0ZXJtLmMgKHczMl9yZWFkX3Nv Y2tldCk6IE1vZGlmaWVkIHRvIGdlbmVyYXRlIGxvdyBsZXZlbCBrZXkKZXZlbnRzLgoqIHNy Yy93MzJ0ZXJtLmg6IE1vZGlmaWVkIHRvIGRlZmluZSBjb25zdGFudHMuCiogc3JjL3h0ZXJt LmMgKHhfZ2V0X21vZGlmaWVyX2Zvcl9rZXljb2RlKTogTmV3IGZ1bmN0aW9uIHRvIGRlY2lk ZQp3aGljaCAoaWYgYW55KSBtb2RpZmllciBjb3JyZXNwb25kcyB0byBhIGdpdmVuIGtleS4K KHhfbWF5YmVfc2VuZF9sb3dfbGV2ZWxfa2V5X2V2ZW50KTogTmV3IGZ1bmN0aW9uIHRoYXQg c2VuZHMga2V5CmV2ZW50cy4KKGhhbmRsZV9vbmVfeGV2ZW50KTogTW9kaWZpZWQgdG8gaGFu ZGxlIGxvdyBsZXZlbCBrZXkgZXZlbnRzLgooc3ltc19vZl94dGVybSk6IE1vZGlmaWVkIHRv IGRlZmluZSBzeW1ib2wuCiogc3JjL3h0ZXJtLmg6IE1vZGlmaWVkIHdpdGggZnVuY3Rpb24g cHJvdG90eXBlCiogbGlzcC9sb3ctbGV2ZWwta2V5LmVsIChOZXcgZmlsZSkuCihsbGstYmlu ZGluZ3MpOiBVc2VyIGJpbmRpbmdzIGZvciBsb3cgbGV2ZWwga2V5IGV2ZW50cy4KKGxsay10 YXAtY291bnQpOiBVc2VyIG9wdGlvbi4KKGxsay10YXAtdGltZW91dCk6IFVzZXIgb3B0aW9u LgoobGxrLXRhcC1rZXlzKTogVXNlciBvcHRpb24uCihsbGsta2V5c3ltcyk6IExpc3Qgb2Yg YXZhaWxhYmxlIGtleXN5bXMuCihkZWZpbmUteGspOiBNYWNybyBmb3IgZGVmaW5pbmcga2V5 c3ltcy4KKGxsay1kZWZpbmUta2V5c3ltcyk6IEJ1aWxkIGxsay1rZXlzeW1zLgoobGxrLWlu aXQpOiBGdW5jdGlvbiB0byBpbml0aWFsaXplIGxvdyBsZXZlbCBrZXkgaGFuZGxpbmcuCihl dmVudC1pcy1rZXktcHJlc3MpOiBHZXQgZmllbGQgZnJvbSBldmVudC4KKGV2ZW50LWtleXN5 bSk6IEdldCBmaWVsZCBmcm9tIGV2ZW50LgooZXZlbnQtbW9kaWZpZXIpOiBHZXQgZmllbGQg ZnJvbSBldmVudC4KKGV2ZW50LXRpbWUpOiBHZXQgZmllbGQgZnJvbSBldmVudC4KKGxsay1i aW5kKTogRnVuY3Rpb24gdG8gY3JlYXRlIGEgYmluZGluZy4KKGxsay1ldmVudHMpOiBFdmVu dCBoaXN0b3J5IGZvciB0YXAgZGV0ZWN0aW9uLgoobGxrLWRldGVjdC1uLXRhcCk6IEZ1bmN0 aW9uIHRvIGRldGVjdCB0YXBzLgooZGVzY3JpYmUtbG93LWxldmVsLWtleSk6IENvbW1hbmQg dG8gZ2V0IGluZm9ybWF0aW9uIGFib3V0IGEga2V5LgoobGxrLXNob3ctZXZlbnQtZGVzY3Jp cHRpb24pOiBTaG93IGhlbHAgYnVmZmVyIHdpdGggaW5mb3JtYXRpb24KYWJvdXQgYW4gZXZl bnQuCihsbGstaGFuZGxlKTogSGFuZGxlciBmb3Iga2V5IGV2ZW50cy4KLS0tCiBkb2MvbGlz cHJlZi9jb21tYW5kcy50ZXhpIHwgIDMyICsrKysKIGxpc3AvbG93LWxldmVsLWtleS5lbCAg ICAgfCAzNDIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHNyYy9n dGt1dGlsLmMgICAgICAgICAgICAgfCAgODEgKysrKysrKysrCiBzcmMva2V5Ym9hcmQuYyAg ICAgICAgICAgIHwgIDY1ICsrKysrKysrCiBzcmMva2V5Ym9hcmQuaCAgICAgICAgICAgIHwg ICAxICsKIHNyYy9wZ3RrdGVybS5jICAgICAgICAgICAgfCAgNTUgKysrKysrCiBzcmMvdGVy bWhvb2tzLmggICAgICAgICAgIHwgICAxICsKIHNyYy93MzJmbnMuYyAgICAgICAgICAgICAg fCAgMTEgKysKIHNyYy93MzJ0ZXJtLmMgICAgICAgICAgICAgfCAgNDkgKysrKysrCiBzcmMv dzMydGVybS5oICAgICAgICAgICAgIHwgICAzICstCiBzcmMveHRlcm0uYyAgICAgICAgICAg ICAgIHwgMTQyICsrKysrKysrKysrKysrKysKIHNyYy94dGVybS5oICAgICAgICAgICAgICAg fCAgIDIgKwogMTIgZmlsZXMgY2hhbmdlZCwgNzgzIGluc2VydGlvbnMoKyksIDEgZGVsZXRp b24oLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaXNwL2xvdy1sZXZlbC1rZXkuZWwKCmRpZmYg LS1naXQgYS9kb2MvbGlzcHJlZi9jb21tYW5kcy50ZXhpIGIvZG9jL2xpc3ByZWYvY29tbWFu ZHMudGV4aQppbmRleCBkZjgyNjZhNzE1Ny4uODhkZDZkNGJhYTAgMTAwNjQ0Ci0tLSBhL2Rv Yy9saXNwcmVmL2NvbW1hbmRzLnRleGkKKysrIGIvZG9jL2xpc3ByZWYvY29tbWFuZHMudGV4 aQpAQCAtMjY1OCw2ICsyNjU4LDM4IEBAIE1pc2MgRXZlbnRzCiByZXNwZWN0aXZlbHkuICBU aGV5IGFyZSB1c3VhbGx5IGludGVycHJldGVkIGFzIGJlaW5nIHJlbGF0aXZlIHRvIHRoZQog c2l6ZSBvZiB0aGUgb2JqZWN0IGJlbmVhdGggdGhlIGdlc3R1cmU6IGltYWdlLCB3aW5kb3cs IGV0Yy4KIAorQGNpbmRleCBAY29kZXtsb3ctbGV2ZWwta2V5fSBldmVudAorQGl0ZW0gKGxv dy1sZXZlbC1rZXkgQHZhcntpcy1rZXktcHJlc3N9IEB2YXJ7a2V5fSBAdmFye21vZGlmaWVy fSBAdmFye3RpbWV9IEB2YXJ7ZnJhbWV9KQorVGhpcyBldmVudCBpcyBzZW50IG9uIHRoZSBw aHlzaWNhbCBwcmVzcyBvciByZWxlYXNlIG9mIGtleXMsIG9ubHkgb24gR1VJCitzeXN0ZW1z LCBjdXJyZW50bHkgWCwgTVMtV2luZG93cyBhbmQgUEdUSywgYW5kIG9ubHkgaWYgdGhlIHZh cmlhYmxlCitAY29kZXtlbmFibGUtbG93LWxldmVsLWtleS1ldmVudHN9IGhhcyBhIG5vbi1A Y29kZXtuaWx9IHZhbHVlLiAgU2VlIGl0cworZG9jdW1lbnRhdGlvbiBmb3IgdGhlIHZhbHVl cyBpdCBjYW4gdGFrZSwgdGhhdCBhbGxvdyB0byBmaWx0ZXIgd2hpY2gKK2tleXMgc2hvdWxk IGdlbmVyYXRlIHRoaXMga2luZCBvZiBldmVudC4KKworQHZhcntpcy1rZXktcHJlc3N9IGlz IEBjb2Rle3R9IGZvciBhIGtleSBwcmVzcywgQGNvZGV7bmlsfSBmb3IgYSBrZXkgcmVsZWFz ZS4KK0B2YXJ7dGltZX0gaXMgdGhlIGV2ZW50J3MgdGltZSBpbiBtaWxsaXNlY29uZHMsIEB2 YXJ7ZnJhbWV9IGlzIHRoZQorZnJhbWUgcmVjZWl2aW5nIGl0LiAgQHZhcnttb2RpZmllcn0g aXMgQGNvZGV7bmlsfSBpZiB0aGUga2V5IGlzIG5vdCBhCittb2RpZmllciBrZXksIEBjb2Rl e3R9IGlmIGl0IGlzLCBidXQgaXQgaXMgdW5rbm93biB3aGljaCBvbmUsIG9yIG9uZSBvZgor QGNvZGV7c2hpZnR9LCBAY29kZXtjb250cm9sfSwgQGNvZGV7bWV0YX0sIEBjb2Rle2FsdH0s IEBjb2Rle3N1cGVyfSwKK0Bjb2Rle2h5cGVyfS4KKworQHZhcntrZXl9LCBhbiBpbnRlZ2Vy LCBpZGVudGlmaWVzIHRoZSBrZXkgcHJlc3NlZCBvciByZWxlYXNlZC4gIFRoaXMKK251bWJl ciBpcyBwbGF0Zm9ybSBkZXBlbmRlbnQsIGJ1dCB0aGVyZSBhcmUgdmFyaWFibGVzIGZvciBt b3N0IGtleXMgdGhhdAorY2FuIGJlIHVzZWQgaW4gcGxhY2Ugb2YgdGhlIG51bWJlcnMgdG8g aWRlbnRpZnkgdGhlbS4gIEZvciBleGFtcGxlLCB0aGUKK3ZhcmlhYmxlIEBjb2Rle3hrLWJh Y2tzcGFjZX0gaWRlbnRpZmllcyB0aGUgQGtleXtiYWNrc3BhY2V9IGtleS4KKworVGhlIG5h bWVzIGFyZSBwYXJhbGxlbCB0byB0aG9zZSBmb3IgS2V5U3ltcyBvbiBYLCBhcyBkZWZpbmVk IGluCitAZmlsZXt4a2V5c3ltZGVmLmh9LiAgRm9yIGV4YW1wbGUsIEBjb2Rle1hLX1NoaWZ0 X0x9ICh0aGUgbGVmdCBzaGlmdAora2V5KSwgY29ycmVzcG9uZHMgdG8gQGNvZGV7eGstc2hp ZnQtbH0uICBUaGUgQGZpbGV7eGtleXN5bWRlZi5ofSBmaWxlCitkZWZpbmVzIGRpZmZlcmVu dCBLZXlTeW1zIGZvciBjYXBpdGFsIGFuZCBzbWFsbCB2ZXJzaW9ucyBvZiBsZXR0ZXJzLgor Rm9yIHRoaXMgZXZlbnQsIG9ubHkgdGhlIGNhcGl0YWwgdmVyc2lvbiBpcyB1c2VkLCB3aXRo IHRoZSB2YXJpYWJsZXMKK0Bjb2Rle3hrLWF9LCBAY29kZXt4ay1ifSwgZXRjLgorCitUaGVz ZSB2YXJpYWJsZXMgYXJlIGluaXRpYWxpemVkIGJ5IGNhbGxpbmcgdGhlIGZ1bmN0aW9uIEBj b2Rle2xsay1pbml0fS4KK1RoaXMgZnVuY3Rpb24gYWxzbyBiaW5kcyBhIGhhbmRsZXIgdG8g dGhpcyBldmVudCwgd2hpY2ggYWxsb3dzIHRvIGRldGVjdAorZG91YmxlIHRhcHMgb24ga2V5 cyAobm9ybWFsbHkgbW9kaWZpZXIga2V5cykgYW5kIGJpbmQgY29tbWFuZHMgb3IKK2Z1bmN0 aW9ucyB0byBiZSBydW4uICBTZWUgdGhlIGZ1bmN0aW9uIEBjb2Rle2xsay1iaW5kfS4KKwog QGNpbmRleCBAY29kZXtwcmVlZGl0LXRleHR9IGV2ZW50CiBAaXRlbSAocHJlZWRpdC10ZXh0 IEB2YXJ7YXJnfSkKIFRoaXMgZXZlbnQgaXMgc2VudCB3aGVuIGEgc3lzdGVtIGlucHV0IG1l dGhvZCB0ZWxscyBFbWFjcyB0byBkaXNwbGF5CmRpZmYgLS1naXQgYS9saXNwL2xvdy1sZXZl bC1rZXkuZWwgYi9saXNwL2xvdy1sZXZlbC1rZXkuZWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAuLmJjOTMxMWY4MmQwCi0tLSAvZGV2L251bGwKKysrIGIvbGlz cC9sb3ctbGV2ZWwta2V5LmVsCkBAIC0wLDAgKzEsMzQyIEBACis7OzsgLSotIGxleGljYWwt YmluZGluZzogdCAtKi0KKworOzsgVGhlIHBoeXNpY2FsLWtleSBldmVudCBpcyBsaWtlIHRo aXM6Cis7OyAobG93LWxldmVsLWtleSBJUy1LRVktUFJFU1MgS0VZIE1PRElGSUVSIFRJTUUg RlJBTUUpCis7OyBJUy1LRVktUFJFU1MgaXMgdCBpZiB0aGUga2V5IGhhcyBiZWVuIHByZXNz ZWQsIG5pbCBpZiBpdCBoYXMgYmVlbiByZWxlYXNlZC4KKzs7IEtFWSBpcyB0aGUga2V5c3lt IG51bWJlci4KKzs7IE1PRElGSUVSIGlzIHRoZSBtb2RpZmllciBhc3NvY2lhdGVkIHdpdGgg dGhpcyBrZXkuICBJdCBpcyBuaWwgaWYgdGhlIGtleSBpcworOzsgbm90IGEgbW9kaWZpZXIu ICBJdCBjYW4gYmUgb25lIG9mIHRoZSBmb2xsb3dpbmcgc3ltYm9sczogc2hpZnQsIGNvbnRy b2wsIG1ldGEsCis7OyBzdXBlciwgaHlwZXIsIGFsdC4gIEl0IGNhbiBhbHNvIGJlIHQgaWYg dGhlIGtleSBpcyBhIG1vZGlmaWVyIGJ1dCBpdCBjYW4ndCBiZQorOzsgaWRlbnRpZmllZCwg YXMgaW4gdGhlIFBHVEsgYmFja2VuZC4KKzs7IFRJTUUgaXMgdGhlIHRpbWVzdGFtcCBpbiBt aWxsaXNlY29uZHMgb2YgdGhlIGV2ZW50LgorOzsgRlJBTUUgaXMgdGhlIGZyYW1lIHdoZXJl IHRoZSBldmVudCBoYXBwZW5lZC4KKzs7Cis7OyBBZnRlciBjYWxsaW5nICdsbGstaW5pdCcg YW5kIHNldHRpbmcgYSBub24tbmlsIHZhbHVlIGZvcgorOzsgJ2VuYWJsZS1sb3ctbGV2ZWwt a2V5LWV2ZW50cycsIGV2ZW50cyBiZWdpbiB0byBiZSBoYW5kbGVkIGJ5ICdsbGstaGFuZGxl cicsCis7OyB3aGljaCB0cmllcyB0byBkZXRlY3Qgbi10YXBzIGFuZCBjYWxscyB0aGUgY29y cmVzcG9uZGluZyBmdW5jdGlvbi4KKzs7Cis7OyBUbyBpbXBsZW1lbnQgb3RoZXIgZnVuY3Rp b25hbGl0aWVzLCB5b3UgY2FuIHJlcGxhY2UgbGxrLWhhbmRsZXIgd2l0aAorOzsgeW91ciBv d24gZnVuY3Rpb24uCisKKyhyZXF1aXJlICdjbC1saWIpCisKKzs7IFVzZXIgb3B0aW9ucwor CisoZGVmdmFyIGxsay1iaW5kaW5ncyBuaWwKKyAgIkxpc3Qgb2YgYmluZGluZ3MgZm9yIGxv dyBsZXZlbCBrZXkgZXZlbnRzIChwcmVzcy9yZWxlYXNlL3RhcCkuCisKK1VzZSB0aGUgYGxs ay1iaW5kJyBmdW5jdGlvbiB0byBhZGQgYmluZGluZ3MuICBTZWUgaXRzIGRvY3VtZW50YXRp b24gZm9yCithIGRlc2NyaXB0aW9uIG9mIHRoZSBiaW5kaW5nIGluZm9ybWF0aW9uLiIpCisK KyhkZWZ2YXIgbGxrLXRhcC1jb3VudCAyCisgICJOdW1iZXIgb3Iga2V5IHByZXNzL3JlbGVh c2VzIHRvIGNvbnNpZGVyIGEgdGFwLiIpCisKKyhkZWZ2YXIgbGxrLXRhcC10aW1lb3V0IDEw MDAKKyAgIlRpbWUgKG1zKSBiZXR3ZWVuIGNvbnNlY3V0aXZlIGtleSBwcmVzc2VzL3JlbGVh c2VzIHRvIGNvbnNpZGVyIGEgdGFwLiIpCisKKyhkZWZ2YXIgbGxrLXRhcC1rZXlzCisgICco eGstc2hpZnQtbCB4ay1zaGlmdC1yIHhrLWNvbnRyb2wtbCB4ay1jb250cm9sLXIgbWV0YSkK KyAgIktleXMgdGhhdCBjYW4gZ2VuZXJhdGUgdGFwcy4iKQorCisoZGVmdmFyIGxsay1rZXlz eW1zIG5pbAorICAiTGlzdCBvZiBrZXlzeW0gbnVtYmVycyBhbmQgdGhlaXIgY29ycmVzcG9u ZGluZyBzeW1ib2xzLgorCitFYWNoIGVsZW1lbnQgaGFzIHRoZSBmb3JtIChLRVlTWU0gLiBT WU1CT0wpLiAgVGhlIHZhcmlhYmxlIHZhbHVlIGZvcgorZWFjaCBzeW1ib2wgaXMgdGhlIGtl eXN5bS4gIFRoaXMgbGlzdCBpcyBpbml0aWFsaXplZCBieSBgbGxrLWluaXQnLiIpCisKKyhk ZWZ2YXIgbGxrLWRlc2NyaWJlLW5leHQtcHJlc3MgbmlsCisgICJJbnRlcm5hbCB2YXJpYWJs ZSB0byBtYXJrIHRoYXQgbmV4dCBrZXkgcHJlc3Mgc2hvdWxkIGJlIGRlc2NyaWJlZC4iKQor CisoZGVmbWFjcm8gZGVmaW5lLXhrIChuYW1lIHgta2V5c3ltIHczMi1rZXlzeW0pCisgICJJ bnRlcm5hbCBtYWNybyB0byBkZWZpbmUga2V5c3ltcy4iCisgIGAobGV0ICgoa3N5bSAocGNh c2UgKHdpbmRvdy1zeXN0ZW0pCisgICAgICAgICAgICAgICAgICgncGd0ayAseC1rZXlzeW0p CisgICAgICAgICAgICAgICAgICgneCAseC1rZXlzeW0pCisgICAgICAgICAgICAgICAgICgn dzMyICx3MzIta2V5c3ltKSkpKQorICAgICAoZGVmY29uc3QgLG5hbWUga3N5bSAiQ29uc3Rh bnQgZm9yIGEga2V5c3ltIHZhbHVlLiIpCisgICAgIChwdXNoIChjb25zIGtzeW0gJyxuYW1l KSBsbGsta2V5c3ltcykpKQorCisoZGVmdW4gbGxrLWRlZmluZS1rZXlzeW1zICgpCisgICJJ bml0aWFsaXplIHRoZSBrZXlzeW0gbGlzdCwgYGxsay1rZXlzeW1zJy4KKworQ2FsbGVkIGZy b20gYGxsay1pbml0Jy4iCisgIChzZXRxIGxsay1rZXlzeW1zIG5pbCkKKworICA7OyB0dHkg a2V5cworICAoZGVmaW5lLXhrIHhrLWJhY2tzcGFjZSAgICN4ZmYwOCAjeDA4KSA7OyBYS19C YWNrU3BhY2UgVktfQkFDSworICAoZGVmaW5lLXhrIHhrLXRhYiAgICAgICAgICN4ZmYwOSAj eDA5KSA7OyBYS19UYWIgVktfVEFCCisgIChkZWZpbmUteGsgeGstY2xlYXIgICAgICAgI3hm ZjBiICN4MEMpIDs7IFhLX0NsZWFyIFZLX0NMRUFSCisgIChkZWZpbmUteGsgeGstcmV0dXJu ICAgICAgI3hmZjBkICN4MEQpIDs7IFhLX1JldHVybiBWS19SRVRVUk4KKyAgKGRlZmluZS14 ayB4ay1wYXVzZSAgICAgICAjeGZmMTMgI3gxMykgOzsgWEtfUGF1c2UgVktfUEFVU0UKKyAg KGRlZmluZS14ayB4ay1zY3JvbGwtbG9jayAjeGZmMTQgI3g5MSkgOzsgWEtfU2Nyb2xsX0xv Y2sgVktfU0NST0xMCisgIChkZWZpbmUteGsgeGstZXNjYXBlICAgICAgI3hmZjFCICN4MUIp IDs7IFhLX0VzY2FwZSBWS19FU0NBUEUKKyAgKGRlZmluZS14ayB4ay1kZWxldGUgICAgICAj eGZmZmYgI3gyRSkgOzsgWEtfRGVsZXRlIFZLX0RFTEVURQorCisgIDs7IEN1cnNvciBjb250 cm9sIGFuZCBtb3Rpb24KKyAgKGRlZmluZS14ayB4ay1ob21lICAgICAgICAjeGZmNTAgI3gy NCkgOzsgWEtfSG9tZSBWS19IT01FCisgIChkZWZpbmUteGsgeGstbGVmdCAgICAgICAgI3hm ZjUxICN4MjUpIDs7IFhLX0xlZnQgVktfTEVGVAorICAoZGVmaW5lLXhrIHhrLXVwICAgICAg ICAgICN4ZmY1MiAjeDI2KSA7OyBYS19VcCBWS19VUAorICAoZGVmaW5lLXhrIHhrLXJpZ2h0 ICAgICAgICN4ZmY1MyAjeDI3KSA7OyBYS19SaWdodCBWS19SSUdIVAorICAoZGVmaW5lLXhr IHhrLWRvd24gICAgICAgICN4ZmY1NCAjeDI4KSA7OyBYS19Eb3duIFZLX0RPV04KKyAgKGRl ZmluZS14ayB4ay1wYWdlLXVwICAgICAjeGZmNTUgI3gyMSkgOzsgWEtfUGFnZV9VcCBWS19Q UklPUgorICAoZGVmaW5lLXhrIHhrLXBhZ2UtZG93biAgICN4ZmY1NiAjeDIyKSA7OyBYS19Q YWdlX0Rvd24gVktfTkVYVAorICAoZGVmaW5lLXhrIHhrLWVuZCAgICAgICAgICN4ZmY1NyAj eDIzKSA7OyBYS19FbmQgVktfRU5ECisgIChkZWZpbmUteGsgeGstYmVnaW4gICAgICAgI3hm ZjU4ICN4MjQpIDs7IFhLX0JlZ2luIFZLX0hPTUUKKworICA7OyBTcGVjaWFsIFdpbmRvd3Mg a2V5Ym9hcmQga2V5cworICAoZGVmaW5lLXhrIHhrLXdpbi1sICAgICAgICN4RkY1QiAjeDVC KSA7OyBYS19XaW5fTCBWS19MV0lOCisgIChkZWZpbmUteGsgeGstd2luLXIgICAgICAgI3hG RjVDICN4NUMpIDs7IFhLX1dpbl9SIFZLX1JXSU4KKyAgKGRlZmluZS14ayB4ay1hcHAgICAg ICAgICAjeEZGNUQgI3g1RCkgOzsgWEtfQXBwIFZLX0FQUFMKKworICA7OyBNaXNjIGZ1bmN0 aW9ucworICAoZGVmaW5lLXhrIHhrLXNlbGVjdCAgICAgICN4ZmY2MCAjeDI5KSA7OyBYS19T ZWxlY3QgVktfU0VMRUNUCisgIChkZWZpbmUteGsgeGstcHJpbnQgICAgICAgI3hmZjYxICN4 MkEpIDs7IFhLX1ByaW50IFZLX1BSSU5UCisgIChkZWZpbmUteGsgeGstaW5zZXJ0ICAgICAg I3hmZjY0ICN4MkQpIDs7IFhLX0luc2VydCBWS19JTlNFUlQKKyAgKGRlZmluZS14ayB4ay1u dW0tbG9jayAgICAjeGZmN2YgI3g5MCkgOzsgWEtfTnVtX0xvY2sgVktfTlVNTE9DSworCisg IDs7IEtleXBhZAorICA7OyBUT0RPOiBDaGVjayB2YWx1ZXMgZm9yIE1TLVdpbmRvd3MKKyAg KGRlZmluZS14ayB4ay1rcC1lbnRlciAgICAjeGZmOGQgbmlsKSA7OyBYS19LUF9FbnRlciA/ Pz8KKyAgKGRlZmluZS14ayB4ay1rcC1tdWx0aXBseSAjeGZmYWEgbmlsKSA7OyBYS19LUF9N dWx0aXBseSA/Pz8KKyAgKGRlZmluZS14ayB4ay1rcC1hZGQgICAgICAjeGZmYWIgbmlsKSA7 OyBYS19LUF9BZGQgPz8/CisgIChkZWZpbmUteGsgeGsta3Atc3VidHJhY3QgI3hmZmFkIG5p bCkgOzsgWEtfS1BfU3VidHJhY3QgPz8/CisgIChkZWZpbmUteGsgeGsta3AtZGVjaW1hbCAg I3hmZmFlIG5pbCkgOzsgWEtfS1BfRGVjaW1hbCA/Pz8KKyAgKGRlZmluZS14ayB4ay1rcC1k aXZpZGUgICAjeGZmYWYgbmlsKSA7OyBYS19LUF9EaXZpZGUgPz8/CisgIChkZWZpbmUteGsg eGsta3AtMCAgICAgICAgI3hmZmIwICN4NjApIDs7IFhLX0tQXzAgVktfTlVNUEFEMAorICAo ZGVmaW5lLXhrIHhrLWtwLTEgICAgICAgICN4ZmZiMSAjeDYxKSA7OyBYS19LUF8xIFZLX05V TVBBRDEKKyAgKGRlZmluZS14ayB4ay1rcC0yICAgICAgICAjeGZmYjIgI3g2MikgOzsgWEtf S1BfMiBWS19OVU1QQUQyCisgIChkZWZpbmUteGsgeGsta3AtMyAgICAgICAgI3hmZmIzICN4 NjMpIDs7IFhLX0tQXzMgVktfTlVNUEFEMworICAoZGVmaW5lLXhrIHhrLWtwLTQgICAgICAg ICN4ZmZiNCAjeDY0KSA7OyBYS19LUF80IFZLX05VTVBBRDQKKyAgKGRlZmluZS14ayB4ay1r cC01ICAgICAgICAjeGZmYjUgI3g2NSkgOzsgWEtfS1BfNSBWS19OVU1QQUQ1CisgIChkZWZp bmUteGsgeGsta3AtNiAgICAgICAgI3hmZmI2ICN4NjYpIDs7IFhLX0tQXzYgVktfTlVNUEFE NgorICAoZGVmaW5lLXhrIHhrLWtwLTcgICAgICAgICN4ZmZiNyAjeDY3KSA7OyBYS19LUF83 IFZLX05VTVBBRDcKKyAgKGRlZmluZS14ayB4ay1rcC04ICAgICAgICAjeGZmYjggI3g2OCkg OzsgWEtfS1BfOCBWS19OVU1QQUQ4CisgIChkZWZpbmUteGsgeGsta3AtOSAgICAgICAgI3hm ZmI5ICN4NjkpIDs7IFhLX0tQXzkgVktfTlVNUEFEOQorCisgIDs7IEZ1bmN0aW9uIGtleXMK KyAgKGRlZmluZS14ayB4ay1mMSAgICAgICAgICAjeGZmYmUgI3g3MCkgOzsgWEtfRjEgVktf RjEKKyAgKGRlZmluZS14ayB4ay1mMiAgICAgICAgICAjeGZmYmYgI3g3MSkgOzsgWEtfRjIg VktfRjIKKyAgKGRlZmluZS14ayB4ay1mMyAgICAgICAgICAjeGZmYzAgI3g3MikgOzsgWEtf RjMgVktfRjMKKyAgKGRlZmluZS14ayB4ay1mNCAgICAgICAgICAjeGZmYzEgI3g3MykgOzsg WEtfRjQgVktfRjQKKyAgKGRlZmluZS14ayB4ay1mNSAgICAgICAgICAjeGZmYzIgI3g3NCkg OzsgWEtfRjUgVktfRjUKKyAgKGRlZmluZS14ayB4ay1mNiAgICAgICAgICAjeGZmYzMgI3g3 NSkgOzsgWEtfRjYgVktfRjYKKyAgKGRlZmluZS14ayB4ay1mNyAgICAgICAgICAjeGZmYzQg I3g3NikgOzsgWEtfRjcgVktfRjcKKyAgKGRlZmluZS14ayB4ay1mOCAgICAgICAgICAjeGZm YzUgI3g3NykgOzsgWEtfRjggVktfRjgKKyAgKGRlZmluZS14ayB4ay1mOSAgICAgICAgICAj eGZmYzYgI3g3OCkgOzsgWEtfRjkgVktfRjkKKyAgKGRlZmluZS14ayB4ay1mMTAgICAgICAg ICAjeGZmYzcgI3g3OSkgOzsgWEtfRjEwIFZLX0YxMAorICAoZGVmaW5lLXhrIHhrLWYxMSAg ICAgICAgICN4ZmZjOCAjeDdBKSA7OyBYS19GMTEgVktfRjExCisgIChkZWZpbmUteGsgeGst ZjEyICAgICAgICAgI3hmZmM5ICN4N0IpIDs7IFhLX0YxMiBWS19GMTIKKyAgKGRlZmluZS14 ayB4ay1mMTMgICAgICAgICAjeGZmY2EgI3g3QykgOzsgWEtfRjEzIFZLX0YxMworICAoZGVm aW5lLXhrIHhrLWYxNCAgICAgICAgICN4ZmZjYiAjeDdEKSA7OyBYS19GMTQgVktfRjE0Cisg IChkZWZpbmUteGsgeGstZjE1ICAgICAgICAgI3hmZmNjICN4N0UpIDs7IFhLX0YxNSBWS19G MTUKKyAgKGRlZmluZS14ayB4ay1mMTYgICAgICAgICAjeGZmY2QgI3g3RikgOzsgWEtfRjE2 IFZLX0YxNgorICAoZGVmaW5lLXhrIHhrLWYxNyAgICAgICAgICN4ZmZjZSAjeDgwKSA7OyBY S19GMTcgVktfRjE3CisgIChkZWZpbmUteGsgeGstZjE4ICAgICAgICAgI3hmZmNmICN4ODEp IDs7IFhLX0YxOCBWS19GMTgKKyAgKGRlZmluZS14ayB4ay1mMTkgICAgICAgICAjeGZmZDAg I3g4MikgOzsgWEtfRjE5IFZLX0YxOQorICAoZGVmaW5lLXhrIHhrLWYyMCAgICAgICAgICN4 ZmZkMSAjeDgzKSA7OyBYS19GMjAgVktfRjIwCisgIChkZWZpbmUteGsgeGstZjIxICAgICAg ICAgI3hmZmQyICN4ODQpIDs7IFhLX0YyMSBWS19GMjEKKyAgKGRlZmluZS14ayB4ay1mMjIg ICAgICAgICAjeGZmZDMgI3g4NSkgOzsgWEtfRjIyIFZLX0YyMgorICAoZGVmaW5lLXhrIHhr LWYyMyAgICAgICAgICN4ZmZkNCAjeDg2KSA7OyBYS19GMjMgVktfRjIzCisgIChkZWZpbmUt eGsgeGstZjI0ICAgICAgICAgI3hmZmQ1ICN4ODcpIDs7IFhLX0YyNCBWS19GMjQKKworICA7 OyBNb2RpZmllciBrZXlzCisgIChkZWZpbmUteGsgeGstc2hpZnQtbCAgICAgI3hmZmUxICN4 QTApIDs7IFhLX1NoaWZ0X0wgVktfTFNISUZUCisgIChkZWZpbmUteGsgeGstc2hpZnQtciAg ICAgI3hmZmUyICN4QTEpIDs7IFhLX1NoaWZ0X1IgVktfUlNISUZUCisgIChkZWZpbmUteGsg eGstY29udHJvbC1sICAgI3hmZmUzICN4QTIpIDs7IFhLX0NvbnRyb2xfTCBWS19MQ09OVFJP TAorICAoZGVmaW5lLXhrIHhrLWNvbnRyb2wtciAgICN4ZmZlNCAjeEEzKSA7OyBYS19Db250 cm9sX1IgVktfUkNPTlRST0wKKyAgKGRlZmluZS14ayB4ay1jYXBzLWxvY2sgICAjeGZmZTUg I3gxNCkgOzsgWEtfQ2Fwc19Mb2NrIFZLX0NBUElUQUwKKyAgKGRlZmluZS14ayB4ay1tZXRh bC1sICAgICAjeGZmZTcgbmlsKSA7OyBYS19NZXRhX0wKKyAgKGRlZmluZS14ayB4ay1tZXRh bC10ICAgICAjeGZmZWUgbmlsKSA7OyBYS19NZXRhX1IKKyAgKGRlZmluZS14ayB4ay1hbHQt bCAgICAgICAjeGZmZTkgI3hBNCkgOzsgWEtfQWx0X0wgVktfTE1FTlUKKyAgKGRlZmluZS14 ayB4ay1hbHQtciAgICAgICAjeGZmZWEgI3hBNSkgOzsgWEtfQWx0X1IgVktfUk1FTlUKKyAg KGRlZmluZS14ayB4ay1zdXBlci1sICAgICAjeGZmZWIgbmlsKSA7OyBYS19TdXBlcl9MCisg IChkZWZpbmUteGsgeGstc3VwZXItciAgICAgI3hmZmVjIG5pbCkgOzsgWEtfU3VwZXJfUgor ICAoZGVmaW5lLXhrIHhrLWh5cGVyLWwgICAgICN4ZmZlZCBuaWwpIDs7IFhLX0h5cGVyX0wK KyAgKGRlZmluZS14ayB4ay1oeXBlci1yICAgICAjeGZmZWUgbmlsKSA7OyBYS19IeXBlcl9S CisKKyAgOzsgTGF0aW4gMQorICA7OyBGb3IgbnVtYmVycyBhbmQgbGV0dGVycywgTVMtV2lu ZG93cyBkb2VzIG5vdCBkZWZpbmUgY29uc3RhbnQgbmFtZXMuCisgIDs7IFgxMSBkZWZpbmVz IGRpc3RpbmN0IGtleXN5bXMgZm9yIGxvd2VyY2FzZSBhbmQgdXBwZXJjYXNlCisgIDs7IGxl dHRlcnMuICBXZSB1c2Ugb25seSB0aGUgdXBwZXJjYXNlIG9uZXMuICBFdmVudHMgd2l0aCBs b3dlcmNhc2UKKyAgOzsgbGV0dGVycyBhcmUgY29udmVydGVkIHRvIHVwcGVyY2FzZS4KKyAg KGRlZmluZS14ayB4ay1zcGFjZSAgICAgICAjeDAwMjAgI3gyMCkgOzsgWEtfc3BhY2UgVktf U1BBQ0UKKyAgKGRlZmluZS14ayB4ay0wICAgICAgICAgICAjeDAwMzAgI3gzMCkgOzsgWEtf MAorICAoZGVmaW5lLXhrIHhrLTEgICAgICAgICAgICN4MDAzMSAjeDMxKSA7OyBYS18xCisg IChkZWZpbmUteGsgeGstMiAgICAgICAgICAgI3gwMDMyICN4MzIpIDs7IFhLXzIKKyAgKGRl ZmluZS14ayB4ay0zICAgICAgICAgICAjeDAwMzMgI3gzMykgOzsgWEtfMworICAoZGVmaW5l LXhrIHhrLTQgICAgICAgICAgICN4MDAzNCAjeDM0KSA7OyBYS180CisgIChkZWZpbmUteGsg eGstNSAgICAgICAgICAgI3gwMDM1ICN4MzUpIDs7IFhLXzUKKyAgKGRlZmluZS14ayB4ay02 ICAgICAgICAgICAjeDAwMzYgI3gzNikgOzsgWEtfNgorICAoZGVmaW5lLXhrIHhrLTcgICAg ICAgICAgICN4MDAzNyAjeDM3KSA7OyBYS183CisgIChkZWZpbmUteGsgeGstOCAgICAgICAg ICAgI3gwMDM4ICN4MzgpIDs7IFhLXzgKKyAgKGRlZmluZS14ayB4ay05ICAgICAgICAgICAj eDAwMzkgI3gzOSkgOzsgWEtfOQorICAoZGVmaW5lLXhrIHhrLWEgICAgICAgICAgICN4MDA0 MSAjeDQxKSA7OyBYS19BCisgIChkZWZpbmUteGsgeGstYiAgICAgICAgICAgI3gwMDQyICN4 NDIpIDs7IFhLX0IKKyAgKGRlZmluZS14ayB4ay1jICAgICAgICAgICAjeDAwNDMgI3g0Mykg OzsgWEtfQworICAoZGVmaW5lLXhrIHhrLWQgICAgICAgICAgICN4MDA0NCAjeDQ0KSA7OyBY S19ECisgIChkZWZpbmUteGsgeGstZSAgICAgICAgICAgI3gwMDQ1ICN4NDUpIDs7IFhLX0UK KyAgKGRlZmluZS14ayB4ay1mICAgICAgICAgICAjeDAwNDYgI3g0NikgOzsgWEtfRgorICAo ZGVmaW5lLXhrIHhrLWcgICAgICAgICAgICN4MDA0NyAjeDQ3KSA7OyBYS19HCisgIChkZWZp bmUteGsgeGstaCAgICAgICAgICAgI3gwMDQ4ICN4NDgpIDs7IFhLX0gKKyAgKGRlZmluZS14 ayB4ay1pICAgICAgICAgICAjeDAwNDkgI3g0OSkgOzsgWEtfSQorICAoZGVmaW5lLXhrIHhr LWogICAgICAgICAgICN4MDA0QSAjeDRBKSA7OyBYS19KCisgIChkZWZpbmUteGsgeGstayAg ICAgICAgICAgI3gwMDRCICN4NEIpIDs7IFhLX0sKKyAgKGRlZmluZS14ayB4ay1sICAgICAg ICAgICAjeDAwNEMgI3g0QykgOzsgWEtfTAorICAoZGVmaW5lLXhrIHhrLW0gICAgICAgICAg ICN4MDA0RCAjeDREKSA7OyBYS19NCisgIChkZWZpbmUteGsgeGstbiAgICAgICAgICAgI3gw MDRFICN4NEUpIDs7IFhLX04KKyAgKGRlZmluZS14ayB4ay1vICAgICAgICAgICAjeDAwNEYg I3g0RikgOzsgWEtfTworICAoZGVmaW5lLXhrIHhrLXAgICAgICAgICAgICN4MDA1MCAjeDUw KSA7OyBYS19QCisgIChkZWZpbmUteGsgeGstcSAgICAgICAgICAgI3gwMDUxICN4NTEpIDs7 IFhLX1EKKyAgKGRlZmluZS14ayB4ay1yICAgICAgICAgICAjeDAwNTIgI3g1MikgOzsgWEtf UgorICAoZGVmaW5lLXhrIHhrLXMgICAgICAgICAgICN4MDA1MyAjeDUzKSA7OyBYS19TCisg IChkZWZpbmUteGsgeGstdCAgICAgICAgICAgI3gwMDU0ICN4NTQpIDs7IFhLX1QKKyAgKGRl ZmluZS14ayB4ay11ICAgICAgICAgICAjeDAwNTUgI3g1NSkgOzsgWEtfVQorICAoZGVmaW5l LXhrIHhrLXYgICAgICAgICAgICN4MDA1NiAjeDU2KSA7OyBYS19WCisgIChkZWZpbmUteGsg eGstdyAgICAgICAgICAgI3gwMDU3ICN4NTcpIDs7IFhLX1cKKyAgKGRlZmluZS14ayB4ay14 ICAgICAgICAgICAjeDAwNTggI3g1OCkgOzsgWEtfWAorICAoZGVmaW5lLXhrIHhrLXkgICAg ICAgICAgICN4MDA1OSAjeDU5KSA7OyBYS19ZCisgIChkZWZpbmUteGsgeGsteiAgICAgICAg ICAgI3gwMDVBICN4NUEpKTs7IFhLX1oKKworKGRlZnVuIGxsay1pbml0ICgpCisgICJJbml0 aWFsaXplIGxvdyBsZXZlbCBrZXkgZXZlbnRzLgorCitGaWxscyB0aGUgYGxsay1rZXlzeW1z JyBsaXN0LCBhbmQgYmluZHMgdGhlIGBsb3ctbGV2ZWwta2V5JyBldmVudAordG8gdGhlIGBs bGstaGFuZGxlJyBmdW5jdGlvbi4gIFJlc2V0cyB0aGUgYGxsay1iaW5kaW5ncycgbGlzdC4K K0Jlc2lkZXMgY2FsbGluZyB0aGlzIGZ1bmN0aW9uLCB5b3UgbmVlZCB0byBzZXQgYGVuYWJs ZS1sb3ctbGV2ZWwta2V5LWV2ZW50cycKK3RvIGEgbm9uLW5pbCB2YWx1ZS4iCisgIChpbnRl cmFjdGl2ZSkKKyAgKGxsay1kZWZpbmUta2V5c3ltcykKKyAgKGRlZmluZS1rZXkgc3BlY2lh bC1ldmVudC1tYXAgW2xvdy1sZXZlbC1rZXldICdsbGstaGFuZGxlKQorICAoc2V0cSBsbGst YmluZGluZ3MgbmlsKSkKKworKGRlZnN1YnN0IGV2ZW50LWlzLWtleS1wcmVzcyAoZXZlbnQp CisgICJSZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSBJUy1LRVktUFJFU1MgZmllbGQgb2YgdGhl IEVWRU5ULCBhIGxvdyBsZXZlbCBrZXkgZXZlbnQuIgorICAoZGVjbGFyZSAoc2lkZS1lZmZl Y3QtZnJlZSB0KSkKKyAgKGlmIChjb25zcCBldmVudCkgKG50aCAxIGV2ZW50KSkpCisKKyhk ZWZzdWJzdCBldmVudC1rZXlzeW0gKGV2ZW50KQorICAiUmV0dXJuIHRoZSB2YWx1ZSBvZiB0 aGUgS0VZIGZpZWxkIG9mIHRoZSBFVkVOVCwgYSBsb3cgbGV2ZWwga2V5IGV2ZW50LiIKKyAg KGRlY2xhcmUgKHNpZGUtZWZmZWN0LWZyZWUgdCkpCisgIChpZiAoY29uc3AgZXZlbnQpIChu dGggMiBldmVudCkpKQorCisoZGVmc3Vic3QgZXZlbnQtbW9kaWZpZXIgKGV2ZW50KQorICAi UmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGUgTU9ESUZJRVIgZmllbGQgb2YgdGhlIEVWRU5ULCBh IGxvdyBsZXZlbCBrZXkgZXZlbnQuIgorICAoZGVjbGFyZSAoc2lkZS1lZmZlY3QtZnJlZSB0 KSkKKyAgKGlmIChjb25zcCBldmVudCkgKG50aCAzIGV2ZW50KSkpCisKKyhkZWZzdWJzdCBl dmVudC10aW1lIChldmVudCkKKyAgIlJldHVybiB0aGUgdmFsdWUgb2YgdGhlIFRJTUUgZmll bGQgb2YgdGhlIEVWRU5ULCBhIGxvdyBsZXZlbCBrZXkgZXZlbnQuIgorICAoZGVjbGFyZSAo c2lkZS1lZmZlY3QtZnJlZSB0KSkKKyAgKGlmIChjb25zcCBldmVudCkgKG50aCA0IGV2ZW50 KSkpCisKKzs7IEZvciBleGFtcGxlOgorOzsgQmluZCBrZXkgdGFwIHRvIGNvbW1hbmQKKzs7 ICAgIChsbGstYmluZCAndGFwICd4ay1zaGlmdC1sICdkZWxldGUtb3RoZXItd2luZG93cykK Kzs7IEJpbmQgbW9kaWZpZXIgdGFwIHRvIGNvbW1hbmQKKzs7ICAgICAobGxrLWJpbmQgJ3Rh cCAnc2hpZnQgJ2RlbGV0ZS1vdGhlci13aW5kb3dzKQorOzsgQmluZCB0YXAgdG8gaHlwZXIg bW9kaWZpZXIKKzs7ICAgICAgKGxsay1iaW5kICd0YXAgJ3hrLXNoaWZ0LXIgKGxhbWJkYSAo KQorOzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWVzc2FnZSAiSC0uLi4iKQor OzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0cSB1bnJlYWQtY29tbWFuZC1l dmVudHMKKzs7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFwcGVuZCAo ZXZlbnQtYXBwbHktaHlwZXItbW9kaWZpZXIgbmlsKSBuaWwpKSkpCis7OyBDYW4gYmluZCB0 byBhIGNvbW1hbmQgb3IgZnVuY3Rpb24KKyhkZWZ1biBsbGstYmluZCAoYWN0aW9uIGtleSBm dW5jdGlvbikKKyAgIkJpbmQgYSBjb21tYW5kIG9yIGZ1bmN0aW9uIHRvIGEgbG93IGxldmVs IGtleSBldmVudC4KKworVGhlIG9ubHkgYWN0aW9uIHN1cHBvcnRlZCBjdXJyZW50bHkgaXMg YHRhcCcuICBUaGUga2V5IGNhbiBiZSBhIGtleXN5bQorc3ltYm9sLCBvciBhIG1vZGlmaWVy IHN5bWJvbCAoc2hpZnQsIGNvbnRyb2wsIGFsdCwgbWV0YSwgaHlwZXIsIHN1cGVyKS4KK0lm IHRoZXJlIGlzIG5vIGtleXN5bSBzeW1ib2wgZm9yIGEga2V5LCB1c2UgdGhlIGtleXN5bSBu dW1iZXIuIgorICAocHVzaCAobGlzdCBhY3Rpb24ga2V5IGZ1bmN0aW9uKSBsbGstYmluZGlu Z3MpKQorCis7OyBXZSBzdG9yZSB0aGUgbGFzdCBldmVudHMgKGtleS9tb2RpZmllciBpcy1w cmVzcyB0aW1lc3RhbXApIGhlcmUgdG8KKzs7IHRlc3QgZm9yIG11bHRpdGFwLgorKGRlZnZh ciBsbGstZXZlbnRzIG5pbAorICAiSW50ZXJuYWwgdmFyaWFibGUgZm9yIGRldGVjdGluZyB0 YXBzLiIpCisKKzs7IElmIHBvc2l0aXZlLCByZXR1cm4ga2V5ICh4ay1zaGlmdC1sLCBldGMp IGVsc2UgcmV0dXJuIG5pbC4KKyhkZWZ1biBsbGstZGV0ZWN0LW4tdGFwIChuIHRpbWVvdXQp CisgICJJbnRlcm5hbCBmdW5jdGlvbiB0byBkZXRlY3Qgbi10YXAga2V5cy4iCisgIChsZXQg KGtleQorICAgICAgICAoaXMtcHJlc3MgKGV2ZW50LWlzLWtleS1wcmVzcyBsYXN0LWlucHV0 LWV2ZW50KSkKKyAgICAgICAgOzsgY29udmVydCBudW1iZXIgdG8ga2V5c3ltIHN5bWJvbAor ICAgICAgICAoa2V5c3ltIChjZHIgKGFzc29jIChldmVudC1rZXlzeW0gbGFzdC1pbnB1dC1l dmVudCkgbGxrLWtleXN5bXMpKSkKKyAgICAgICAgKHRpbWVzdGFtcCAoZXZlbnQtdGltZSBs YXN0LWlucHV0LWV2ZW50KSkKKyAgICAgICAgKG1vZGlmaWVyIChldmVudC1tb2RpZmllciBs YXN0LWlucHV0LWV2ZW50KSkpCisKKyAgICA7OyBpZiBlaHRlIGlzIG5vIHN5bWJvbCBmb3Ig dGhpcyBrZXksIHVzZSBpdHMga2V5c3ltIG51bWJlcgorICAgICh1bmxlc3Mga2V5c3ltIChz ZXRxIGtleXN5bSAoZXZlbnQta2V5c3ltIGxhc3QtaW5wdXQtZXZlbnQpKSkKKworICAgIDs7 IGxvb2sgaW4gbGxrLXRhcC1rZXlzIGZvciB0aGUga2V5LCB0aGVuIHRoZSBtb2RpZmllcgor ICAgIChpZiAobWVtYmVyIGtleXN5bSBsbGstdGFwLWtleXMpCisgICAgICAgIChzZXRxIGtl eSBrZXlzeW0pCisgICAgICAoaWYgKG1lbWJlciBtb2RpZmllciBsbGstdGFwLWtleXMpCisg ICAgICAgICAgKHNldHEga2V5IG1vZGlmaWVyKSkpCisKKyAgICAoaWYgKG5vdCBrZXkpCisg ICAgICAgIDs7IEtleSBub3QgaW4gdGFwIGxpc3QsIGNsZWFyIGhpc3RvcnkKKyAgICAgICAg KHNldHEgbGxrLWV2ZW50cyBuaWwpCisgICAgICA7OyBDbGVhciBpdCBhbHNvIGlmIHRoZSBm aXJzdCBlbGVtZW50IGlzIGZyb20gYSBkaWZmZXJlbnQga2V5CisgICAgICAoYW5kIGxsay1l dmVudHMKKyAgICAgICAgICAgKG5vdCAoZXF1YWwgKGNhciAoY2FyIGxsay1ldmVudHMpKSBr ZXkpKQorICAgICAgICAgICAoc2V0cSBsbGstZXZlbnRzIG5pbCkpCisgICAgICAocHVzaCAo bGlzdCBrZXkgaXMtcHJlc3MgdGltZXN0YW1wKSBsbGstZXZlbnRzKQorICAgICAgOzsgT25s eSBjYXJlIGFib3V0IGxhc3QgMnhOIGV2ZW50cworICAgICAgKG50YWtlICgqIDIgbikgbGxr LWV2ZW50cykKKyAgICAgIDs7IElmIHdlIGhhdmU6CisgICAgICA7OyAtIEV4YWN0bHkgMiAq IG4gZXZlbnRzLgorICAgICAgOzsgLSBkb3duLCB1cCwgZG93biwgdXAsIC4uLgorICAgICAg OzsgLSBub3QgdHdvIG11Y2ggdGltZSBiZXR3ZWVuIGZpcnN0IGFuZCBsYXN0CisgICAgICAo YW5kIChlcSAoKiAyIG4pIChsZW5ndGggbGxrLWV2ZW50cykpCisgICAgICAgICAgIChjbC1l dmVyeSAnZXEKKyAgICAgICAgICAgICAgICAgICAgIChudGFrZSAoKiAyIG4pCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKGxpc3QgbmlsIHQgbmlsIHQgbmlsIHQgbmlsIHQKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuaWwgdCBuaWwgdCBuaWwgdCBuaWwg dCkpCisgICAgICAgICAgICAgICAgICAgICAobWFwY2FyICdjbC1zZWNvbmQgbGxrLWV2ZW50 cykpCisgICAgICAgICAgICg8ICgtIChjbC10aGlyZCAoY2wtZmlyc3QgbGxrLWV2ZW50cykp CisgICAgICAgICAgICAgICAgIChjbC10aGlyZCAoY2FyIChsYXN0IGxsay1ldmVudHMpKSkp CisgICAgICAgICAgICAgIHRpbWVvdXQpCisgICAgICAgICAgIChwcm9nbgorICAgICAgICAg ICAgIChzZXRxIGxsay1ldmVudHMgbmlsKQorICAgICAgICAgICAgIGtleSkpKSkpCisKKyhk ZWZ1biBkZXNjcmliZS1sb3ctbGV2ZWwta2V5ICgpCisgICJXYWl0IGZvciBrZXkgcHJlc3Mg YW5kIGRlc2NyaWJlIHRoZSBsb3cgbGV2ZWwga2V5IGV2ZW50IGl0IGdlbmVyYXRlcy4iCisg IChpbnRlcmFjdGl2ZSkKKyAgKHNldHEgbGxrLWRlc2NyaWJlLW5leHQtcHJlc3MgdCkpCisK KyhkZWZ1biBsbGstc2hvdy1ldmVudC1kZXNjcmlwdGlvbiAoKQorICAiU2hvdyBpbmZvcm1h dGlvbiBhYm91dCB0aGUgbGFzdCBsb3cgbGV2ZWwga2V5IGV2ZW50LiIKKyAgKHNldHEgbGxr LWRlc2NyaWJlLW5leHQtcHJlc3MgbmlsKQorICAod2l0aC1oZWxwLXdpbmRvdyAoaGVscC1i dWZmZXIpCisgICAgKGluc2VydCAiXG4iKQorICAgIChsZXQqICgoeGsgKGV2ZW50LWtleXN5 bSBsYXN0LWlucHV0LWV2ZW50KSkKKyAgICAgICAgICAgKHN5bSAoYXNzb2MgeGsgbGxrLWtl eXN5bXMpKSkKKyAgICAgIChpbnNlcnQgKGZvcm1hdCAiS2V5c3ltIG51bWJlcjogJWQgKCN4 JVgpLFxuIiB4ayB4aykpCisgICAgICAoaWYgc3ltCisgICAgICAgICAgKGluc2VydCAoZm9y bWF0ICJ3aGljaCBjb3JyZXNwb25kcyB0byBuYW1lZCBrZXkgJXMuXG5cbiIgKGNkciBzeW0p KSkKKyAgICAgICAgKGluc2VydCAid2hpY2ggZG9lcyBub3QgY29ycmVzcG9uZCB0byBhbnkg a25vd24gbmFtZWQga2V5LlxuXG4iKSkKKyAgICAgIChpZiAoZXZlbnQtbW9kaWZpZXIgbGFz dC1pbnB1dC1ldmVudCkKKyAgICAgICAgICAoaW5zZXJ0IChmb3JtYXQgIlRoaXMga2V5IGNv cnJlc3BvbmRzIHRvIHRoZSAlcyBtb2RpZmllci5cblxuIgorICAgICAgICAgICAgICAgICAg ICAgICAgICAoZXZlbnQtbW9kaWZpZXIgbGFzdC1pbnB1dC1ldmVudCkpKQorICAgICAgICAo aW5zZXJ0ICJUaGlzIGtleSBkb2VzIG5vdCBjb3JyZXNwb25kIHRvIGEgbW9kaWZpZXIuXG5c biIpKQorICAgICAgKGluc2VydCAiU2VlIHRoZSB2YWx1ZSBvZiB0aGUgYGxsay1rZXlzeW1z JyB2YXJpYWJsZSBmb3IgYSBsaXN0IG9mIGtub3duIGtleXMuXG4iKSkpKQorCisoZGVmdW4g bGxrLWhhbmRsZSAoKQorICAiSW50ZXJuYWwgZnVuY3Rpb24gdG8gaGFuZGxlIGxvdyBsZXZl bCBrZXkgZXZlbnRzLiIKKyAgKGludGVyYWN0aXZlKQorICAoaWYgKGFuZCAoZXZlbnQtaXMt a2V5LXByZXNzIGxhc3QtaW5wdXQtZXZlbnQpCisgICAgICAgICAgIGxsay1kZXNjcmliZS1u ZXh0LXByZXNzKQorICAgICAgKGxsay1zaG93LWV2ZW50LWRlc2NyaXB0aW9uKQorICAgIChs ZXQgKCh0YXAta2V5IChsbGstZGV0ZWN0LW4tdGFwCisgICAgICAgICAgICAgICAgICAgIGxs ay10YXAtY291bnQKKyAgICAgICAgICAgICAgICAgICAgbGxrLXRhcC10aW1lb3V0KSkpCisg ICAgICAod2hlbiB0YXAta2V5CisgICAgICAgIChsZXQgKChmdW5jIChjbC10aGlyZAorICAg ICAgICAgICAgICAgICAgICAgKHNlcS1maW5kCisgICAgICAgICAgICAgICAgICAgICAgKGxh bWJkYSAoYikKKyAgICAgICAgICAgICAgICAgICAgICAgIChhbmQgKGVxIChjbC1maXJzdCBi KSAndGFwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXEgKGNsLXNlY29uZCBi KSB0YXAta2V5KSkpCisgICAgICAgICAgICAgICAgICAgICAgbGxrLWJpbmRpbmdzKSkpKQor ICAgICAgICAgIChjb25kCisgICAgICAgICAgICgoY29tbWFuZHAgZnVuYykgKGNhbGwtaW50 ZXJhY3RpdmVseSBmdW5jKSkKKyAgICAgICAgICAgKChmdW5jdGlvbnAgZnVuYykgKGZ1bmNh bGwgZnVuYykpKSkpKSkpCmRpZmYgLS1naXQgYS9zcmMvZ3RrdXRpbC5jIGIvc3JjL2d0a3V0 aWwuYwppbmRleCBkNTc2MjdmMTUyZi4uODZkNDMyMWNmMzUgMTAwNjQ0Ci0tLSBhL3NyYy9n dGt1dGlsLmMKKysrIGIvc3JjL2d0a3V0aWwuYwpAQCAtOTgsNiArOTgsNyBAQCBHX0RFRklO RV9UWVBFIChFbWFjc01lbnVCYXIsIGVtYWNzX21lbnVfYmFyLCBHVEtfVFlQRV9NRU5VX0JB UikKIHN0YXRpYyB2b2lkIHhnX2ltX2NvbnRleHRfcHJlZWRpdF9jaGFuZ2VkIChHdGtJTUNv bnRleHQgKiwgZ3BvaW50ZXIpOwogc3RhdGljIHZvaWQgeGdfaW1fY29udGV4dF9wcmVlZGl0 X2VuZCAoR3RrSU1Db250ZXh0ICosIGdwb2ludGVyKTsKIHN0YXRpYyBib29sIHhnX3dpZGdl dF9rZXlfcHJlc3NfZXZlbnRfY2IgKEd0a1dpZGdldCAqLCBHZGtFdmVudCAqLCBncG9pbnRl cik7CitzdGF0aWMgYm9vbCB4Z193aWRnZXRfa2V5X3JlbGVhc2VfZXZlbnRfY2IgKEd0a1dp ZGdldCAqLCBHZGtFdmVudCAqLCBncG9pbnRlcik7CiAjZW5kaWYKIAogI2lmIEdUS19DSEVD S19WRVJTSU9OICgzLCAxMCwgMCkKQEAgLTE3NDksNiArMTc1MCwxMiBAQCB4Z19jcmVhdGVf ZnJhbWVfd2lkZ2V0cyAoc3RydWN0IGZyYW1lICpmKQogICBnX3NpZ25hbF9jb25uZWN0IChH X09CSkVDVCAod2ZpeGVkKSwgImtleS1wcmVzcy1ldmVudCIsCiAJCSAgICBHX0NBTExCQUNL ICh4Z193aWRnZXRfa2V5X3ByZXNzX2V2ZW50X2NiKSwKIAkJICAgIE5VTEwpOworCisgIGdf c2lnbmFsX2Nvbm5lY3QgKEdfT0JKRUNUICh3Zml4ZWQpLCAia2V5LXJlbGVhc2UtZXZlbnQi LAorCQkgICAgR19DQUxMQkFDSyAoeGdfd2lkZ2V0X2tleV9yZWxlYXNlX2V2ZW50X2NiKSwK KwkJICAgIE5VTEwpOworCisKICNlbmRpZgogCiAgIHsKQEAgLTYzNzYsNiArNjM4Myw1MyBA QCB4Z19pbV9jb250ZXh0X3ByZWVkaXRfZW5kIChHdGtJTUNvbnRleHQgKmltYywgZ3BvaW50 ZXIgdXNlcl9kYXRhKQogICBrYmRfYnVmZmVyX3N0b3JlX2V2ZW50ICgmaW5ldik7CiB9CiAK KyNpZm5kZWYgSEFWRV9YSU5QVVQyCitzdGF0aWMgdm9pZAoreGdfbWF5YmVfc2VuZF9sb3df bGV2ZWxfa2V5X2V2ZW50IChzdHJ1Y3QgZnJhbWUgKmYsCisJCQkJICAgR2RrRXZlbnQgKnhl dikKK3sKKyAgR2RrRXZlbnRLZXkgeGtleSA9IHhldi0+a2V5OworICBib29sIGlzX3ByZXNz OworICBMaXNwX09iamVjdCBrZXksIG1vZGlmaWVyOworICB1bmlvbiBidWZmZXJlZF9pbnB1 dF9ldmVudCBpbmV2OworCisgIGlmIChOSUxQIChWZW5hYmxlX2xvd19sZXZlbF9rZXlfZXZl bnRzKSkKKyAgICByZXR1cm47CisKKyAgc3dpdGNoICh4ZXYtPnR5cGUpCisgICAgeworICAg IGNhc2UgR0RLX0tFWV9QUkVTUzoKKyAgICAgIGlzX3ByZXNzID0gdHJ1ZTsKKyAgICAgIGJy ZWFrOworICAgIGNhc2UgR0RLX0tFWV9SRUxFQVNFOgorICAgICAgaXNfcHJlc3MgPSBmYWxz ZTsKKyAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICByZXR1cm47CisgICAgfQor CisgIG1vZGlmaWVyID0geF9nZXRfbW9kaWZpZXJfZm9yX2tleWNvZGUgKEZSQU1FX09VVFBV VF9EQVRBIChmKS0+ZGlzcGxheV9pbmZvLAorCQkJCQkgeGV2LT5rZXkuaGFyZHdhcmVfa2V5 Y29kZSk7CisKKyAgaW50IGtleXN5bSA9IHhrZXkua2V5dmFsOworCisgIGlmIChrZXlzeW0g Pj0gR0RLX0tFWV9hICYmIGtleXN5bSA8PSBHREtfS0VZX3opCisgICAga2V5c3ltIC09IEdE S19LRVlfYSAtIEdES19LRVlfQTsKKworICBpZiAoIWtiZF9sb3dfbGV2ZWxfa2V5X2lzX2Vu YWJsZWQgKGtleXN5bSwgbW9kaWZpZXIpKQorICAgIHJldHVybjsKKworICBrZXkgPSBtYWtl X2ZpeG51bSAoa2V5c3ltKTsKKworICBFVkVOVF9JTklUIChpbmV2LmllKTsKKyAgWFNFVEZS QU1FIChpbmV2LmllLmZyYW1lX29yX3dpbmRvdywgZik7CisgIGluZXYuaWUua2luZCA9IExP V19MRVZFTF9LRVlfRVZFTlQ7CisgIGluZXYuaWUudGltZXN0YW1wID0geGtleS50aW1lOwor ICBpbmV2LmllLmFyZyA9IGxpc3QzIChpc19wcmVzcyA/IFF0IDogUW5pbCwga2V5LCBtb2Rp Zmllcik7CisgIGtiZF9idWZmZXJfc3RvcmVfYnVmZmVyZWRfZXZlbnQgKCZpbmV2LCAmeGdf cGVuZGluZ19xdWl0X2V2ZW50KTsKK30KKyNlbmRpZgorCiBzdGF0aWMgYm9vbAogeGdfd2lk Z2V0X2tleV9wcmVzc19ldmVudF9jYiAoR3RrV2lkZ2V0ICp3aWRnZXQsIEdka0V2ZW50ICpl dmVudCwKIAkJCSAgICAgIGdwb2ludGVyIHVzZXJfZGF0YSkKQEAgLTY0MDQsNiArNjQ1OCwx MCBAQCB4Z193aWRnZXRfa2V5X3ByZXNzX2V2ZW50X2NiIChHdGtXaWRnZXQgKndpZGdldCwg R2RrRXZlbnQgKmV2ZW50LAogICBpZiAoIWYpCiAgICAgcmV0dXJuIHRydWU7CiAKKyNpZm5k ZWYgSEFWRV9YSU5QVVQyCisgICAgeGdfbWF5YmVfc2VuZF9sb3dfbGV2ZWxfa2V5X2V2ZW50 IChmLCBldmVudCk7CisjZW5kaWYKKwogICBpZiAocG9wdXBfYWN0aXZhdGVkICgpKQogICAg IHJldHVybiB0cnVlOwogCkBAIC02NTU3LDYgKzY2MTUsMjkgQEAgeGdfd2lkZ2V0X2tleV9w cmVzc19ldmVudF9jYiAoR3RrV2lkZ2V0ICp3aWRnZXQsIEdka0V2ZW50ICpldmVudCwKICAg cmV0dXJuIHRydWU7CiB9CiAKK3N0YXRpYyBib29sCit4Z193aWRnZXRfa2V5X3JlbGVhc2Vf ZXZlbnRfY2IgKEd0a1dpZGdldCAqd2lkZ2V0LCBHZGtFdmVudCAqZXZlbnQsCisJCQkJZ3Bv aW50ZXIgdXNlcl9kYXRhKQoreworI2lmbmRlZiBIQVZFX1hJTlBVVDIKKyAgTGlzcF9PYmpl Y3QgdGFpbCwgdGVtOworICBzdHJ1Y3QgZnJhbWUgKmYgPSBOVUxMOworCisgIEZPUl9FQUNI X0ZSQU1FICh0YWlsLCB0ZW0pCisgICAgeworICAgICAgaWYgKEZSQU1FX1hfUCAoWEZSQU1F ICh0ZW0pKQorCSAgJiYgKEZSQU1FX0dUS19XSURHRVQgKFhGUkFNRSAodGVtKSkgPT0gd2lk Z2V0KSkKKwl7CisJICBmID0gWEZSQU1FICh0ZW0pOworCSAgYnJlYWs7CisJfQorICAgIH0K KyAgaWYgKGYpCisgICAgeGdfbWF5YmVfc2VuZF9sb3dfbGV2ZWxfa2V5X2V2ZW50IChmLCBl dmVudCk7CisjZW5kaWYKKyAgcmV0dXJuIHRydWU7Cit9CisKIGJvb2wKIHhnX2ZpbHRlcl9r ZXkgKHN0cnVjdCBmcmFtZSAqZnJhbWUsIFhFdmVudCAqeGtleSkKIHsKZGlmZiAtLWdpdCBh L3NyYy9rZXlib2FyZC5jIGIvc3JjL2tleWJvYXJkLmMKaW5kZXggNmQyOGRjYTlhZWIuLmVh YTg0ZjUwMzI3IDEwMDY0NAotLS0gYS9zcmMva2V5Ym9hcmQuYworKysgYi9zcmMva2V5Ym9h cmQuYwpAQCAtNDI3NCw2ICs0Mjc0LDcgQEAga2JkX2J1ZmZlcl9nZXRfZXZlbnQgKEtCT0FS RCAqKmticCwKICAgICAgIGNhc2UgQ09ORklHX0NIQU5HRURfRVZFTlQ6CiAgICAgICBjYXNl IEZPQ1VTX09VVF9FVkVOVDoKICAgICAgIGNhc2UgU0VMRUNUX1dJTkRPV19FVkVOVDoKKyAg ICAgIGNhc2UgTE9XX0xFVkVMX0tFWV9FVkVOVDoKICAgICAgICAgewogICAgICAgICAgIG9i aiA9IG1ha2VfbGlzcHlfZXZlbnQgKCZldmVudC0+aWUpOwogICAgICAgICAgIGtiZF9mZXRj aF9wdHIgPSBuZXh0X2tiZF9ldmVudCAoZXZlbnQpOwpAQCAtNzExOCwxMiArNzExOSw0NyBA QCBtYWtlX2xpc3B5X2V2ZW50IChzdHJ1Y3QgaW5wdXRfZXZlbnQgKmV2ZW50KQogICAgIGNh c2UgUFJFRURJVF9URVhUX0VWRU5UOgogICAgICAgcmV0dXJuIGxpc3QyIChRcHJlZWRpdF90 ZXh0LCBldmVudC0+YXJnKTsKIAorICAgIGNhc2UgTE9XX0xFVkVMX0tFWV9FVkVOVDoKKyAg ICAgIHJldHVybiBsaXN0biAoNiwgUWxvd19sZXZlbF9rZXksCisJCSAgICBYQ0FSIChldmVu dC0+YXJnKSwgLyogUHJlc3Mgb3IgcmVsZWFzZS4gICovCisJCSAgICBYQ0FSIChYQ0RSIChl dmVudC0+YXJnKSksIC8qIFRoZSBrZXkgc3ltYm9sLiAgKi8KKwkJICAgIFhDQVIgKFhDRFIg KFhDRFIgKGV2ZW50LT5hcmcpKSksIC8qIFRoZSBtb2RpZmllci4gICovCisJCSAgICBtYWtl X2ZpeG51bSAoZXZlbnQtPnRpbWVzdGFtcCksCisJCSAgICBldmVudC0+ZnJhbWVfb3Jfd2lu ZG93KTsKKwogICAgICAgLyogVGhlICdraW5kJyBmaWVsZCBvZiB0aGUgZXZlbnQgaXMgc29t ZXRoaW5nIHdlIGRvbid0IHJlY29nbml6ZS4gICovCiAgICAgZGVmYXVsdDoKICAgICAgIGVt YWNzX2Fib3J0ICgpOwogICAgIH0KIH0KIAorYm9vbAora2JkX2xvd19sZXZlbF9rZXlfaXNf ZW5hYmxlZCAoaW50IGtleXN5bSwgTGlzcF9PYmplY3QgbW9kaWZpZXIpCit7CisgIGlmIChW ZW5hYmxlX2xvd19sZXZlbF9rZXlfZXZlbnRzID09IFF0KQorICAgIHJldHVybiB0cnVlOwor CisgIGlmIChWZW5hYmxlX2xvd19sZXZlbF9rZXlfZXZlbnRzID09IFFuaWwpCisgICAgcmV0 dXJuIGZhbHNlOworCisgIGlmIChGSVhOVU1QIChWZW5hYmxlX2xvd19sZXZlbF9rZXlfZXZl bnRzKSkKKyAgICByZXR1cm4ga2V5c3ltID09IFhGSVhOVU0gKFZlbmFibGVfbG93X2xldmVs X2tleV9ldmVudHMpOworCisgIGlmIChWZW5hYmxlX2xvd19sZXZlbF9rZXlfZXZlbnRzID09 IFFtb2RpZmllcnMpCisgICAgcmV0dXJuIG1vZGlmaWVyICE9IFFuaWw7CisKKyAgZm9yIChM aXNwX09iamVjdCBlID0gVmVuYWJsZV9sb3dfbGV2ZWxfa2V5X2V2ZW50czsgQ09OU1AgKGUp OyBlID0gWENEUiAoZSkpCisgICAgeworICAgICAgTGlzcF9PYmplY3QgYyA9IFhDQVIgKGUp OworICAgICAgaWYgKEZJWE5VTVAgKGMpICYmIFhGSVhOVU0gKGMpID09IGtleXN5bSkKKwly ZXR1cm4gdHJ1ZTsKKyAgICAgIGlmIChjID09IFFtb2RpZmllcnMgJiYgbW9kaWZpZXIgIT0g UW5pbCkKKwlyZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgcmV0dXJuIGZhbHNlOworfQorCiBz dGF0aWMgTGlzcF9PYmplY3QKIG1ha2VfbGlzcHlfbW92ZW1lbnQgKHN0cnVjdCBmcmFtZSAq ZnJhbWUsIExpc3BfT2JqZWN0IGJhcl93aW5kb3csIGVudW0gc2Nyb2xsX2Jhcl9wYXJ0IHBh cnQsCiAJCSAgICAgTGlzcF9PYmplY3QgeCwgTGlzcF9PYmplY3QgeSwgVGltZSB0KQpAQCAt MTI5MzEsNiArMTI5NjcsMzMgQEAgc3ltc19vZl9rZXlib2FyZCAodm9pZCkKICAgREVGU1lN IChRZmlsZV9ub3RpZnksICJmaWxlLW5vdGlmeSIpOwogI2VuZGlmIC8qIFVTRV9GSUxFX05P VElGWSAqLwogCisKKyAgREVGU1lNIChRbW9kaWZpZXJzLCAibW9kaWZpZXJzIik7CisKKyAg REVGVkFSX0xJU1AgKCJlbmFibGUtbG93LWxldmVsLWtleS1ldmVudHMiLCBWZW5hYmxlX2xv d19sZXZlbF9rZXlfZXZlbnRzLAorCSAgICAgICBkb2M6IC8qIElmIG5vbi1uaWwsIHJlY2Vw dGlvbiBvZiBsb3ctbGV2ZWwga2V5IGV2ZW50cyBpcyBlbmFibGVkLgorCitUaGUgdmFsdWUg Y29uZmlndXJlcyB0aGUgc2V0IG9mIGtleXMgdGhhdCBhcmUgaGFuZGxlZDoKKworSWYgdCwg c2VuZCBldmVudHMgZm9yIGFsbCBrZXlzLgorCitJZiBhIG51bWJlciwgc2VuZCBldmVudHMg Zm9yIHRoZSBjb3JyZXNwb25kaW5nIGtleXN5bS4gIFdoZW4gY2FsbGluZworYGxsay1pbml0 JywgYSBzZXQgb2YgdmFyaWFibGVzIHdpdGggdGhlIHhrLSBwcmVmaXggaXMgaW5pdGlhbGl6 ZWQgd2l0aAordGhlIG51bWVyaWMgdmFsdWVzIGZvciBrZXlzeW1zLiAgQmVjYXVzZSB0aGlz IG51bWJlciBhcmUgcGxhdGZvcm0KK2RlcGVuZGVudCwgb25seSB0aGUgdmFyaWFibGVzIHNo b3VsZCBiZSB1c2VkIHRvIHJlZmVyIHRvIGEga2V5LiAgRm9yCitleGFtcGxlLCB0aGUgJ3hr LWJhY2tzcGFjZScgdmFyaWFibGUgcmVmZXIgdG8gdGhlIGJhY2tzcGFjZSBrZXksIHdpdGgK K3RoZSBudW1lcmljIHZhbHVlIDB4ZmYwOCBvbiBYLCBhbmQgdGhlIDB4MDggb24gTVMtV2lu ZG93cy4gIFlvdSBjYW4gc2VlCithbGwgZGVmaW5lZCB2YXJpYWJsZXMgb24gdGhlIHZhcmlh YmxlIGBsbGsta2V5c3ltcycuCisKK0lmIGEgc3ltYm9sLCBhIHByZWRlZmluZWQgc2V0IG9m IGtleXMgaXMgc2VsZWN0ZWQuICBUaGUgb25seSBjdXJyZW50bHkKK3ZhbGlkIHN5bWJvbCBp cyAnbW9kaWZpZXJzLgorCitJZiBhIGxpc3Qgb2YgbnVtYmVycyBhbmQvb3Igc3ltYm9scywg dGhlIGNvcnJlc3BvbmRpbmcga2V5c3ltcyBhbmQgc2V0cworYXJlIHNlbGVjdGVkLiAgKi8p OworICBWZW5hYmxlX2xvd19sZXZlbF9rZXlfZXZlbnRzID0gUW5pbDsKKworICBERUZTWU0g KFFsb3dfbGV2ZWxfa2V5LCAibG93LWxldmVsLWtleSIpOworCiAgIERFRlNZTSAoUXRvdWNo X2VuZCwgInRvdWNoLWVuZCIpOwogCiAgIC8qIE1lbnUgYW5kIHRvb2wgYmFyIGl0ZW0gcGFy dHMuICAqLwpAQCAtMTQwMTgsNiArMTQwODEsOCBAQCBrZXlzX29mX2tleWJvYXJkICh2b2lk KQogCQkJICAgICJoYW5kbGUtZm9jdXMtb3V0Iik7CiAgIGluaXRpYWxfZGVmaW5lX2xpc3B5 X2tleSAoVnNwZWNpYWxfZXZlbnRfbWFwLCAibW92ZS1mcmFtZSIsCiAJCQkgICAgImhhbmRs ZS1tb3ZlLWZyYW1lIik7CisgIGluaXRpYWxfZGVmaW5lX2xpc3B5X2tleSAoVnNwZWNpYWxf ZXZlbnRfbWFwLCAibG93LWxldmVsLWtleSIsCisJCQkgICAgImlnbm9yZSIpOwogfQogCiAv KiBNYXJrIHRoZSBwb2ludGVycyBpbiB0aGUga2JvYXJkIG9iamVjdHMuCmRpZmYgLS1naXQg YS9zcmMva2V5Ym9hcmQuaCBiL3NyYy9rZXlib2FyZC5oCmluZGV4IDM4NzUwMWM5Zjg4Li44 M2Y5YTBmMTQxYSAxMDA2NDQKLS0tIGEvc3JjL2tleWJvYXJkLmgKKysrIGIvc3JjL2tleWJv YXJkLmgKQEAgLTUxMSw2ICs1MTEsNyBAQCBrYmRfYnVmZmVyX3N0b3JlX2V2ZW50X2hvbGQg KHN0cnVjdCBpbnB1dF9ldmVudCAqZXZlbnQsCiBleHRlcm4gTGlzcF9PYmplY3QgbWVudV9p dGVtX2V2YWxfcHJvcGVydHkgKExpc3BfT2JqZWN0KTsKIGV4dGVybiBib29sIGtiZF9idWZm ZXJfZXZlbnRzX3dhaXRpbmcgKHZvaWQpOwogZXh0ZXJuIHZvaWQgYWRkX3VzZXJfc2lnbmFs IChpbnQsIGNvbnN0IGNoYXIgKik7CitleHRlcm4gYm9vbCBrYmRfbG93X2xldmVsX2tleV9p c19lbmFibGVkIChpbnQsIExpc3BfT2JqZWN0KTsKIAogZXh0ZXJuIGludCB0dHlfcmVhZF9h dmFpbF9pbnB1dCAoc3RydWN0IHRlcm1pbmFsICosIHN0cnVjdCBpbnB1dF9ldmVudCAqKTsK IGV4dGVybiBzdHJ1Y3QgdGltZXNwZWMgdGltZXJfY2hlY2sgKHZvaWQpOwpkaWZmIC0tZ2l0 IGEvc3JjL3BndGt0ZXJtLmMgYi9zcmMvcGd0a3Rlcm0uYwppbmRleCAwNzk5NDUxMjZlMC4u ZmJhODFmNWVjMGUgMTAwNjQ0Ci0tLSBhL3NyYy9wZ3RrdGVybS5jCisrKyBiL3NyYy9wZ3Rr dGVybS5jCkBAIC01MjAxLDYgKzUyMDEsNTYgQEAgcGd0a19lbnF1ZXVlX3ByZWVkaXQgKHN0 cnVjdCBmcmFtZSAqZiwgTGlzcF9PYmplY3QgcHJlZWRpdCkKICAgZXZxX2VucXVldWUgKCZp bmV2KTsKIH0KIAorc3RhdGljIHZvaWQKK3BndGtfbWF5YmVfc2VuZF9sb3dfbGV2ZWxfa2V5 X2V2ZW50IChzdHJ1Y3QgZnJhbWUgKmYsIEdka0V2ZW50ICpldmVudCkKK3sKKyAgR2RrRXZl bnRLZXkgeGtleSA9IGV2ZW50LT5rZXk7CisgIGJvb2wgaXNfcHJlc3M7CisgIExpc3BfT2Jq ZWN0IGtleSwgbW9kaWZpZXI7CisgIHVuaW9uIGJ1ZmZlcmVkX2lucHV0X2V2ZW50IGluZXY7 CisKKyAgaWYgKE5JTFAgKFZlbmFibGVfbG93X2xldmVsX2tleV9ldmVudHMpKQorICAgIHJl dHVybjsKKworICBzd2l0Y2ggKGV2ZW50LT50eXBlKQorICAgIHsKKyAgICBjYXNlIEdES19L RVlfUFJFU1M6CisgICAgICBpc19wcmVzcyA9IHRydWU7CisgICAgICBicmVhazsKKyAgICBj YXNlIEdES19LRVlfUkVMRUFTRToKKyAgICAgIGlzX3ByZXNzID0gZmFsc2U7CisgICAgICBi cmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgcmV0dXJuOworICAgIH0KKworICAvKiBXZSBk b24ndCBzdXBwb3J0IG1vZGlmaWVyIGlkZW50aWZpY2F0aW9uIG9uIFBHVEsuIFdlIG9ubHkg Y2FuIHRlbGwKKyAgICBpZiB0aGUga2V5IGNvcnJlc3BvbmRzIHRvIGEgbW9kaWZpZXIgb3Ig bm90LCB3aGljaCBpcyB1c2VkIGZvcgorICAgIGZpbHRlcmluZyBlbmFibGVkIGtleXMgd2l0 aCBrYmRfbG93X2xldmVsX2tleV9pc19lbmFibGVkLiAgKi8KKyAgbW9kaWZpZXIgPSBldmVu dC0+a2V5LmlzX21vZGlmaWVyID8gUXQgOiBRbmlsOworCisgIGludCBrZXlzeW0gPSB4a2V5 LmtleXZhbDsKKworICBpZiAoa2V5c3ltID49IEdES19LRVlfYSAmJiBrZXlzeW0gPD0gR0RL X0tFWV96KQorICAgIGtleXN5bSAtPSBHREtfS0VZX2EgLSBHREtfS0VZX0E7CisgIGlmICgh a2JkX2xvd19sZXZlbF9rZXlfaXNfZW5hYmxlZCAoa2V5c3ltLCBtb2RpZmllcikpCisgICAg cmV0dXJuOworCisgIGlmICghZikKKyAgICBmID0gcGd0a19hbnlfd2luZG93X3RvX2ZyYW1l IChldmVudC0+a2V5LndpbmRvdyk7CisgIGlmICghZikKKyAgICByZXR1cm47CisKKyAga2V5 ID0gbWFrZV9maXhudW0gKGtleXN5bSk7CisKKyAgRVZFTlRfSU5JVCAoaW5ldi5pZSk7Cisg IFhTRVRGUkFNRSAoaW5ldi5pZS5mcmFtZV9vcl93aW5kb3csIGYpOworICBpbmV2LmllLmtp bmQgPSBMT1dfTEVWRUxfS0VZX0VWRU5UOworICBpbmV2LmllLnRpbWVzdGFtcCA9IGV2ZW50 LT5rZXkudGltZTsKKyAgaW5ldi5pZS5hcmcgPSBsaXN0MyAoaXNfcHJlc3MgPyBRdCA6IFFu aWwsIGtleSwgbW9kaWZpZXIpOworICBldnFfZW5xdWV1ZSAoJmluZXYpOworfQorCiBzdGF0 aWMgZ2Jvb2xlYW4KIGtleV9wcmVzc19ldmVudCAoR3RrV2lkZ2V0ICp3aWRnZXQsIEdka0V2 ZW50ICpldmVudCwgZ3BvaW50ZXIgKnVzZXJfZGF0YSkKIHsKQEAgLTUyMTEsNiArNTI2MSw5 IEBAIGtleV9wcmVzc19ldmVudCAoR3RrV2lkZ2V0ICp3aWRnZXQsIEdka0V2ZW50ICpldmVu dCwgZ3BvaW50ZXIgKnVzZXJfZGF0YSkKICAgc3RydWN0IHBndGtfZGlzcGxheV9pbmZvICpk cHlpbmZvOwogCiAgIGYgPSBwZ3RrX2FueV93aW5kb3dfdG9fZnJhbWUgKGd0a193aWRnZXRf Z2V0X3dpbmRvdyAod2lkZ2V0KSk7CisKKyAgcGd0a19tYXliZV9zZW5kX2xvd19sZXZlbF9r ZXlfZXZlbnQgKGYsIGV2ZW50KTsKKwogICBFVkVOVF9JTklUIChpbmV2LmllKTsKICAgaGxp bmZvID0gTU9VU0VfSExfSU5GTyAoZik7CiAgIG5ieXRlcyA9IDA7CkBAIC01NDU0LDYgKzU1 MDcsOCBAQCBrZXlfcmVsZWFzZV9ldmVudCAoR3RrV2lkZ2V0ICp3aWRnZXQsCiAgIEdka0Rp c3BsYXkgKmRpc3BsYXk7CiAgIHN0cnVjdCBwZ3RrX2Rpc3BsYXlfaW5mbyAqZHB5aW5mbzsK IAorICBwZ3RrX21heWJlX3NlbmRfbG93X2xldmVsX2tleV9ldmVudCAoTlVMTCwgZXZlbnQp OworCiAgIGRpc3BsYXkgPSBndGtfd2lkZ2V0X2dldF9kaXNwbGF5ICh3aWRnZXQpOwogICBk cHlpbmZvID0gcGd0a19kaXNwbGF5X2luZm9fZm9yX2Rpc3BsYXkgKGRpc3BsYXkpOwogCmRp ZmYgLS1naXQgYS9zcmMvdGVybWhvb2tzLmggYi9zcmMvdGVybWhvb2tzLmgKaW5kZXggZDZh OTMwMGJhYzkuLjk2NmE2NDkyZjY5IDEwMDY0NAotLS0gYS9zcmMvdGVybWhvb2tzLmgKKysr IGIvc3JjL3Rlcm1ob29rcy5oCkBAIC0zNDcsNiArMzQ3LDcgQEAgI2RlZmluZSBFTUFDU19U RVJNSE9PS1NfSAogICAvKiBJbiBhIE5PVElGSUNBVElPTl9FVkVOVCwgLmFyZyBpcyBhIGxh bWJkYSB0byBldmFsdWF0ZS4gICovCiAgICwgTk9USUZJQ0FUSU9OX0VWRU5UCiAjZW5kaWYg LyogSEFWRV9BTkRST0lEICovCisgICwgTE9XX0xFVkVMX0tFWV9FVkVOVAogfTsKIAogLyog Qml0IHdpZHRoIG9mIGFuIGVudW0gZXZlbnRfa2luZCB0YWcgYXQgdGhlIHN0YXJ0IG9mIHN0 cnVjdHMgYW5kIHVuaW9ucy4gICovCmRpZmYgLS1naXQgYS9zcmMvdzMyZm5zLmMgYi9zcmMv dzMyZm5zLmMKaW5kZXggZTI0NTViOTI3MWUuLjFkMThiZjQwOGUxIDEwMDY0NAotLS0gYS9z cmMvdzMyZm5zLmMKKysrIGIvc3JjL3czMmZucy5jCkBAIC00NjY5LDYgKzQ2NjksMTEgQEAg dzMyX3duZF9wcm9jIChIV05EIGh3bmQsIFVJTlQgbXNnLCBXUEFSQU0gd1BhcmFtLCBMUEFS QU0gbFBhcmFtKQogICAgIGNhc2UgV01fS0VZVVA6CiAgICAgY2FzZSBXTV9TWVNLRVlVUDoK ICAgICAgIHJlY29yZF9rZXl1cCAod1BhcmFtLCBsUGFyYW0pOworICAgICAgaWYgKCFOSUxQ IChWZW5hYmxlX2xvd19sZXZlbF9rZXlfZXZlbnRzKSkKKwl7CisJICBzaWduYWxfdXNlcl9p bnB1dCAoKTsKKwkgIG15X3Bvc3RfbXNnICgmd21zZywgaHduZCwgV01fRU1BQ1NfTE9XX0xF VkVMX0tFWSwgd1BhcmFtLCBsUGFyYW0pOworCX0KICAgICAgIGdvdG8gZGZsdDsKIAogICAg IGNhc2UgV01fS0VZRE9XTjoKQEAgLTQ2OTUsNiArNDcwMCwxMiBAQCB3MzJfd25kX3Byb2Mg KEhXTkQgaHduZCwgVUlOVCBtc2csIFdQQVJBTSB3UGFyYW0sIExQQVJBTSBsUGFyYW0pCiAg ICAgICBpZiAodzMyX3VzZV9mYWxsYmFja193bV9jaGFyc19tZXRob2QpCiAJd1BhcmFtID0g bWFwX2tleXBhZF9rZXlzICh3UGFyYW0sIChsUGFyYW0gJiAweDEwMDAwMDBMKSAhPSAwKTsK IAorICAgICAgaWYgKCFOSUxQIChWZW5hYmxlX2xvd19sZXZlbF9rZXlfZXZlbnRzKSkKKwl7 CisJICBzaWduYWxfdXNlcl9pbnB1dCAoKTsKKwkgIG15X3Bvc3RfbXNnICgmd21zZywgaHdu ZCwgV01fRU1BQ1NfTE9XX0xFVkVMX0tFWSwgd1BhcmFtLCBsUGFyYW0pOworCX0KKwogICAg ICAgd2luZG93c190cmFuc2xhdGUgPSAwOwogCiAgICAgICBzd2l0Y2ggKHdQYXJhbSkKZGlm ZiAtLWdpdCBhL3NyYy93MzJ0ZXJtLmMgYi9zcmMvdzMydGVybS5jCmluZGV4IGUxOGYzOWRk MmE4Li5hMmUwYTRiMGZhMCAxMDA2NDQKLS0tIGEvc3JjL3czMnRlcm0uYworKysgYi9zcmMv dzMydGVybS5jCkBAIC01MjcwLDYgKzUyNzAsNTUgQEAgdzMyX3JlYWRfc29ja2V0IChzdHJ1 Y3QgdGVybWluYWwgKnRlcm1pbmFsLAogCSAgICB9CiAJICBicmVhazsKIAorCWNhc2UgV01f RU1BQ1NfTE9XX0xFVkVMX0tFWToKKwkgIFdPUkQga2V5X2ZsYWdzID0gSElXT1JEIChtc2cu bXNnLmxQYXJhbSk7CisJICBCT09MIGlzX3dtX2tleXVwID0ga2V5X2ZsYWdzICYgS0ZfVVA7 CisKKwkgIGlmIChpc193bV9rZXl1cCB8fCAoa2V5X2ZsYWdzICYgS0ZfUkVQRUFUKSA9PSAw KSAvKiBXTV9LRVlET1dOLCBub3QgcmVwZWF0aW5nLiAgKi8KKwkgICAgeworCSAgICAgIFdP UkQgc2Nhbl9jb2RlID0gTE9CWVRFIChrZXlfZmxhZ3MpOworCSAgICAgIGlmIChrZXlfZmxh Z3MgJiBLRl9FWFRFTkRFRCkKKwkJc2Nhbl9jb2RlID0gTUFLRVdPUkQgKHNjYW5fY29kZSwg MHhFMCk7CisKKwkgICAgICBVSU5UIHRyYW5zbGF0ZWQgPSBNYXBWaXJ0dWFsS2V5IChzY2Fu X2NvZGUsIE1BUFZLX1ZTQ19UT19WS19FWCk7CisJICAgICAgV09SRCB2ayA9IExPV09SRCAo bXNnLm1zZy53UGFyYW0pOworCSAgICAgIGlmICh0cmFuc2xhdGVkKQorCQl2ayA9IExPV09S RCAodHJhbnNsYXRlZCk7CisKKwkgICAgICBMaXNwX09iamVjdCBrZXkgPSBtYWtlX2ZpeG51 bSAodmspOworCSAgICAgIExpc3BfT2JqZWN0IG1vZGlmaWVyID0gUW5pbDsKKworCSAgICAg IHN3aXRjaCAodmspCisJCXsKKwkJY2FzZSBWS19MU0hJRlQ6CisJCWNhc2UgVktfUlNISUZU OgorCQkgIG1vZGlmaWVyID0gUXNoaWZ0OworCQkgIGJyZWFrOworCQljYXNlIFZLX0xDT05U Uk9MOgorCQljYXNlIFZLX1JDT05UUk9MOgorCQkgIG1vZGlmaWVyID0gUWN0cmw7CisJCSAg YnJlYWs7CisJCWNhc2UgVktfTE1FTlU6CisJCWNhc2UgVktfUk1FTlU6CisJCSAgbW9kaWZp ZXIgPSBRbWV0YTsKKwkJICBicmVhazsKKwkJfQorCisJICAgICAgaWYgKGtiZF9sb3dfbGV2 ZWxfa2V5X2lzX2VuYWJsZWQgKHZrLCBtb2RpZmllcikpCisJCXsKKwkJICBmID0gdzMyX3dp bmRvd190b19mcmFtZSAoZHB5aW5mbywgbXNnLm1zZy5od25kKTsKKwkJICBpbmV2LmtpbmQg PSBMT1dfTEVWRUxfS0VZX0VWRU5UOworCQkgIFhTRVRGUkFNRSAoaW5ldi5mcmFtZV9vcl93 aW5kb3csIGYpOworCQkgIGluZXYudGltZXN0YW1wID0gbXNnLm1zZy50aW1lOworCQkgIGlu ZXYuYXJnID0gbGlzdDMgKGlzX3dtX2tleXVwID8gUW5pbCA6IFF0LCBrZXksIG1vZGlmaWVy KTsKKwkJICBrYmRfYnVmZmVyX3N0b3JlX2V2ZW50X2hvbGQgKCZpbmV2LCBob2xkX3F1aXQp OworCQl9CisKKwkgICAgICBpbmV2LmtpbmQgPSBOT19FVkVOVDsKKworCSAgICB9CisJICBi cmVhazsKKwogICAgICAgICBjYXNlIFdNX1VOSUNIQVI6CiAJY2FzZSBXTV9TWVNDSEFSOgog CWNhc2UgV01fQ0hBUjoKZGlmZiAtLWdpdCBhL3NyYy93MzJ0ZXJtLmggYi9zcmMvdzMydGVy bS5oCmluZGV4IGNhZDlmY2Y4Y2IxLi44OGY3ZGZlZWY4YiAxMDA2NDQKLS0tIGEvc3JjL3cz MnRlcm0uaAorKysgYi9zcmMvdzMydGVybS5oCkBAIC03MTMsNyArNzEzLDggQEAgI2RlZmlu ZSBXTV9FTUFDU19GSUxFTk9USUZZICAgICAgICAgICAgKFdNX0VNQUNTX1NUQVJUICsgMjUp CiAjZGVmaW5lIFdNX0VNQUNTX0lNRV9TVEFUVVMgICAgICAgICAgICAoV01fRU1BQ1NfU1RB UlQgKyAyNikKICNkZWZpbmUgV01fRU1BQ1NfRFJBR09WRVIgICAgICAgICAgICAgIChXTV9F TUFDU19TVEFSVCArIDI3KQogI2RlZmluZSBXTV9FTUFDU19EUk9QICAgICAgICAgICAgICAg ICAgKFdNX0VNQUNTX1NUQVJUICsgMjgpCi0jZGVmaW5lIFdNX0VNQUNTX0VORCAgICAgICAg ICAgICAgICAgICAoV01fRU1BQ1NfU1RBUlQgKyAyOSkKKyNkZWZpbmUgV01fRU1BQ1NfTE9X X0xFVkVMX0tFWSAgICAgICAgIChXTV9FTUFDU19TVEFSVCArIDI5KQorI2RlZmluZSBXTV9F TUFDU19FTkQgICAgICAgICAgICAgICAgICAgKFdNX0VNQUNTX1NUQVJUICsgMzApCiAKICNk ZWZpbmUgV05EX0ZPTlRXSURUSF9JTkRFWCAgICAoMCkKICNkZWZpbmUgV05EX0xJTkVIRUlH SFRfSU5ERVggICAoNCkKZGlmZiAtLWdpdCBhL3NyYy94dGVybS5jIGIvc3JjL3h0ZXJtLmMK aW5kZXggMGMyMGQzOGIwZjcuLjcyNzE1ZTBlZDczIDEwMDY0NAotLS0gYS9zcmMveHRlcm0u YworKysgYi9zcmMveHRlcm0uYwpAQCAtMTc4NDAsNiArMTc4NDAsMTQxIEBAICNkZWZpbmUg U1RPUkVfS0VZU1lNX0ZPUl9ERUJVRyhrZXlzeW0pICgodm9pZCkwKQogCiBzdGF0aWMgc3Ry dWN0IHhfZGlzcGxheV9pbmZvICpuZXh0X25vb3BfZHB5aW5mbzsKIAorTGlzcF9PYmplY3QK K3hfZ2V0X21vZGlmaWVyX2Zvcl9rZXljb2RlIChzdHJ1Y3QgeF9kaXNwbGF5X2luZm8gKmRw eWluZm8sCisJCQkgICAgaW50IGtleWNvZGUpCit7CisjaWZkZWYgSEFWRV9YS0IKKyAgaWYg KGRweWluZm8tPnhrYl9kZXNjKQorICAgIGZvciAoaW50IG1vZCA9IDA7IG1vZCA8IFhrYk51 bU1vZGlmaWVyczsgbW9kKyspCisgICAgICB7CisJaW50IG1hc2sgPSAoMSA8PCBtb2QpOwor CWlmIChkcHlpbmZvLT54a2JfZGVzYy0+bWFwLT5tb2RtYXBba2V5Y29kZV0gJiBtYXNrKQor CSAgeworCSAgICBpZiAobWFzayA9PSBTaGlmdE1hc2spCisJICAgICAgcmV0dXJuIFFzaGlm dDsKKwkgICAgaWYgKG1hc2sgPT0gQ29udHJvbE1hc2spCisJICAgICAgcmV0dXJuIFFjdHJs OworCSAgICBpZiAobWFzayA9PSBkcHlpbmZvLT5tZXRhX21vZF9tYXNrKQorCSAgICAgIHJl dHVybiBRbWV0YTsKKwkgICAgaWYgKG1hc2sgPT0gZHB5aW5mby0+YWx0X21vZF9tYXNrKQor CSAgICAgIHJldHVybiBRYWx0OworCSAgICBpZiAobWFzayA9PSBkcHlpbmZvLT5zdXBlcl9t b2RfbWFzaykKKwkgICAgICByZXR1cm4gUXN1cGVyOworCSAgICBpZiAobWFzayA9PSBkcHlp bmZvLT5oeXBlcl9tb2RfbWFzaykKKwkgICAgICByZXR1cm4gUWh5cGVyOworCSAgfQorICAg ICAgfQorI2VuZGlmCisgIFhNb2RpZmllcktleW1hcCAqbWFwID0gZHB5aW5mby0+bW9kbWFw OworICBpZiAobWFwKQorICAgIGZvciAoaW50IG1vZCA9IDA7IG1vZCA8IDg7IG1vZCsrKQor ICAgICAgeworCWludCBtYXNrID0gKDEgPDwgbW9kKTsKKyAgICAgICAgZm9yIChpbnQga2V5 ID0gMDsga2V5IDwgbWFwLT5tYXhfa2V5cGVybW9kOyBrZXkrKykKKwkgIGlmIChtYXAtPm1v ZGlmaWVybWFwW21vZCAqIG1hcC0+bWF4X2tleXBlcm1vZCArIGtleV0gPT0ga2V5Y29kZSkK KwkgICAgeworCSAgICAgIGlmIChtYXNrID09IFNoaWZ0TWFzaykKKwkJcmV0dXJuIFFzaGlm dDsKKwkgICAgICBpZiAobWFzayA9PSBDb250cm9sTWFzaykKKwkJcmV0dXJuIFFjdHJsOwor CSAgICAgIGlmIChtYXNrID09IGRweWluZm8tPm1ldGFfbW9kX21hc2spCisJCXJldHVybiBR bWV0YTsKKwkgICAgICBpZiAobWFzayA9PSBkcHlpbmZvLT5hbHRfbW9kX21hc2spCisJCXJl dHVybiBRYWx0OworCSAgICAgIGlmIChtYXNrID09IGRweWluZm8tPnN1cGVyX21vZF9tYXNr KQorCQlyZXR1cm4gUXN1cGVyOworCSAgICAgIGlmIChtYXNrID09IGRweWluZm8tPmh5cGVy X21vZF9tYXNrKQorCQlyZXR1cm4gUWh5cGVyOworCSAgICB9CisgICAgICB9CisgIHJldHVy biBRbmlsOworfQorCitzdGF0aWMgdm9pZAoreF9tYXliZV9zZW5kX2xvd19sZXZlbF9rZXlf ZXZlbnQgKHN0cnVjdCB4X2Rpc3BsYXlfaW5mbyAqZHB5aW5mbywKKwkJCQkgIGNvbnN0IFhF dmVudCAqeGV2LCBzdHJ1Y3QgZnJhbWUgKmYpCit7CisgIFhLZXlFdmVudCB4a2V5OworICBi b29sIGlzX3ByZXNzOworICBLZXlTeW0ga2V5c3ltOworICBMaXNwX09iamVjdCBrZXksIG1v ZGlmaWVyOworICBzdHJ1Y3QgaW5wdXRfZXZlbnQgaWU7CisKKyAgaWYgKE5JTFAgKFZlbmFi bGVfbG93X2xldmVsX2tleV9ldmVudHMpKQorICAgIHJldHVybjsKKworICBzd2l0Y2ggKHhl di0+dHlwZSkKKyAgICB7CisgICAgY2FzZSBLZXlQcmVzczoKKyAgICAgIGlzX3ByZXNzID0g dHJ1ZTsKKyAgICAgIHhrZXkgPSB4ZXYtPnhrZXk7CisgICAgICBicmVhazsKKyAgICBjYXNl IEtleVJlbGVhc2U6CisgICAgICBpc19wcmVzcyA9IGZhbHNlOworICAgICAgeGtleSA9IHhl di0+eGtleTsKKyAgICAgIGJyZWFrOworI2lmZGVmIEhBVkVfWElOUFVUMgorICAgIGNhc2Ug R2VuZXJpY0V2ZW50OgorICAgICAgWElEZXZpY2VFdmVudCAqeGlldiA9IHhldi0+eGNvb2tp ZS5kYXRhOworICAgICAgc3dpdGNoICh4ZXYtPnhnZW5lcmljLmV2dHlwZSkKKwl7CisJY2Fz ZSBYSV9LZXlQcmVzczoKKwkgIGlzX3ByZXNzID0gdHJ1ZTsKKwkgIGJyZWFrOworCWNhc2Ug WElfS2V5UmVsZWFzZToKKwkgIGlzX3ByZXNzID0gZmFsc2U7CisJICBicmVhazsKKwlkZWZh dWx0OgorCSAgcmV0dXJuOworCX0KKworICAgICAgeGtleS5zZXJpYWwgPSB4aWV2LT5zZXJp YWw7CisgICAgICB4a2V5LnNlbmRfZXZlbnQgPSB4aWV2LT5zZW5kX2V2ZW50OworICAgICAg eGtleS5kaXNwbGF5ID0geGlldi0+ZGlzcGxheTsKKyAgICAgIHhrZXkud2luZG93ID0geGll di0+ZXZlbnQ7CisgICAgICB4a2V5LnJvb3QgPSB4aWV2LT5yb290OworICAgICAgeGtleS5z dWJ3aW5kb3cgPSB4aWV2LT5jaGlsZDsKKyAgICAgIHhrZXkudGltZSA9IHhpZXYtPnRpbWU7 CisgICAgICB4a2V5LnggPSB4aWV2LT5ldmVudF94OworICAgICAgeGtleS55ID0geGlldi0+ ZXZlbnRfeTsKKyAgICAgIHhrZXkueF9yb290ID0geGlldi0+cm9vdF94OworICAgICAgeGtl eS55X3Jvb3QgPSB4aWV2LT5yb290X3k7CisgICAgICB4a2V5LnN0YXRlID0geGlldi0+bW9k cy5lZmZlY3RpdmU7CisgICAgICB4a2V5LmtleWNvZGUgPSB4aWV2LT5kZXRhaWw7CisgICAg ICB4a2V5LnNhbWVfc2NyZWVuID0gMTsKKyAgICAgIGJyZWFrOworI2VuZGlmCisgICAgZGVm YXVsdDoKKyAgICAgIHJldHVybjsKKyAgICB9CisKKyAgaWYgKCFmKQorICAgIGYgPSB4X2Fu eV93aW5kb3dfdG9fZnJhbWUgKGRweWluZm8sIHhrZXkud2luZG93KTsKKyAgaWYgKCFmKQor ICAgIHJldHVybjsKKworICBYTG9va3VwU3RyaW5nICgmeGtleSwgTlVMTCwgMCwgJmtleXN5 bSwgTlVMTCk7CisKKyAgbW9kaWZpZXIgPSB4X2dldF9tb2RpZmllcl9mb3Jfa2V5Y29kZSAo ZHB5aW5mbywgeGtleS5rZXljb2RlKTsKKworICAvKiBDb252ZXJ0IGxvd2VyY2FzZSBsYXRp biBsZXR0ZXIgdG8gdXBwZXJjYXNlLiAgKi8KKyAgaWYgKGtleXN5bSA+PSBYS19hICYmIGtl eXN5bSA8PSBYS196KQorICAgIGtleXN5bSAtPSBYS19hIC0gWEtfQTsKKworICBpZiAoIWti ZF9sb3dfbGV2ZWxfa2V5X2lzX2VuYWJsZWQgKGtleXN5bSwgbW9kaWZpZXIpKQorICAgIHJl dHVybjsKKworICBrZXkgPSBtYWtlX2ZpeG51bSAoa2V5c3ltKTsKKworICBFVkVOVF9JTklU IChpZSk7CisgIFhTRVRGUkFNRSAoaWUuZnJhbWVfb3Jfd2luZG93LCBmKTsKKyAgaWUua2lu ZCA9IExPV19MRVZFTF9LRVlfRVZFTlQ7CisgIGllLnRpbWVzdGFtcCA9IHhrZXkudGltZTsK KyAgaWUuYXJnID0gbGlzdDMgKGlzX3ByZXNzID8gUXQgOiBRbmlsLCBrZXksIG1vZGlmaWVy KTsKKyAga2JkX2J1ZmZlcl9zdG9yZV9ldmVudCAoJmllKTsKK30KKwogLyogRmlsdGVyIGV2 ZW50cyBmb3IgdGhlIGN1cnJlbnQgWCBpbnB1dCBtZXRob2QuCiAgICBEUFlJTkZPIGlzIHRo ZSBkaXNwbGF5IHRoaXMgZXZlbnQgaXMgZm9yLgogICAgRVZFTlQgaXMgdGhlIFggZXZlbnQg dG8gZmlsdGVyLgpAQCAtMjAyMDYsNiArMjAzNDEsNyBAQCBoYW5kbGVfb25lX3hldmVudCAo c3RydWN0IHhfZGlzcGxheV9pbmZvICpkcHlpbmZvLAogICAgICAgZ290byBPVEhFUjsKIAog ICAgIGNhc2UgS2V5UHJlc3M6CisgICAgICB4X21heWJlX3NlbmRfbG93X2xldmVsX2tleV9l dmVudCAoZHB5aW5mbywgZXZlbnQsIGFueSk7CiAgICAgICB4X2Rpc3BsYXlfc2V0X2xhc3Rf dXNlcl90aW1lIChkcHlpbmZvLCBldmVudC0+eGtleS50aW1lLAogCQkJCSAgICBldmVudC0+ eGtleS5zZW5kX2V2ZW50LAogCQkJCSAgICB0cnVlKTsKQEAgLTIwNzE1LDYgKzIwODUxLDcg QEAgaGFuZGxlX29uZV94ZXZlbnQgKHN0cnVjdCB4X2Rpc3BsYXlfaW5mbyAqZHB5aW5mbywK ICNlbmRpZgogCiAgICAgY2FzZSBLZXlSZWxlYXNlOgorICAgICAgeF9tYXliZV9zZW5kX2xv d19sZXZlbF9rZXlfZXZlbnQgKGRweWluZm8sIGV2ZW50LCBhbnkpOwogI2lmZGVmIEhBVkVf WF9JMThOCiAgICAgICAvKiBEb24ndCBkaXNwYXRjaCB0aGlzIGV2ZW50IHNpbmNlIFh0RGlz cGF0Y2hFdmVudCBjYWxscwogICAgICAgICAgWEZpbHRlckV2ZW50LCBhbmQgdHdvIGNhbGxz IGluIGEgcm93IG1heSBmcmVlemUgdGhlCkBAIC0yMzk3MCw2ICsyNDEwNyw4IEBAIGhhbmRs ZV9vbmVfeGV2ZW50IChzdHJ1Y3QgeF9kaXNwbGF5X2luZm8gKmRweWluZm8sCiAJICAgICAg c3RydWN0IHhpX2RldmljZV90ICpkZXZpY2UsICpzb3VyY2U7CiAJICAgICAgWEtleVByZXNz ZWRFdmVudCB4a2V5OwogCisJICAgICAgeF9tYXliZV9zZW5kX2xvd19sZXZlbF9rZXlfZXZl bnQgKGRweWluZm8sIGV2ZW50LCBhbnkpOworCiAJICAgICAgY29kaW5nID0gUWxhdGluXzE7 CiAKIAkgICAgICAvKiBUaGUgY29kZSB1bmRlciB0aGlzIGxhYmVsIGlzIHF1aXRlIGRlc3Vs dG9yeS4gIFRoZXJlCkBAIC0yNDU4Niw2ICsyNDcyNSw4IEBAIGhhbmRsZV9vbmVfeGV2ZW50 IChzdHJ1Y3QgeF9kaXNwbGF5X2luZm8gKmRweWluZm8sCiAjZW5kaWYKIAogCSAgY2FzZSBY SV9LZXlSZWxlYXNlOgorCSAgICB4X21heWJlX3NlbmRfbG93X2xldmVsX2tleV9ldmVudCAo ZHB5aW5mbywgZXZlbnQsIGFueSk7CisKICNpZiBkZWZpbmVkIEhBVkVfWF9JMThOIHx8IGRl ZmluZWQgVVNFX0dUSyB8fCBkZWZpbmVkIFVTRV9MVUNJRAogCSAgICB7CiAJICAgICAgWEtl eVByZXNzZWRFdmVudCB4a2V5OwpAQCAtMzI2NjIsNiArMzI4MDMsNyBAQCBzeW1zX29mX3h0 ZXJtICh2b2lkKQogICBWeF90b29sa2l0X3Njcm9sbF9iYXJzID0gUW5pbDsKICNlbmRpZgog CisgIERFRlNZTSAoUXNoaWZ0LCAic2hpZnQiKTsKICAgREVGU1lNIChRbW9kaWZpZXJfdmFs dWUsICJtb2RpZmllci12YWx1ZSIpOwogICBERUZTWU0gKFFjdHJsLCAiY3RybCIpOwogICBG cHV0IChRY3RybCwgUW1vZGlmaWVyX3ZhbHVlLCBtYWtlX2ZpeG51bSAoY3RybF9tb2RpZmll cikpOwpkaWZmIC0tZ2l0IGEvc3JjL3h0ZXJtLmggYi9zcmMveHRlcm0uaAppbmRleCA4ZDVj OTkxNzc0OS4uNjZlMDUyZTdhY2QgMTAwNjQ0Ci0tLSBhL3NyYy94dGVybS5oCisrKyBiL3Ny Yy94dGVybS5oCkBAIC0xOTA2LDYgKzE5MDYsOCBAQCB4X211dGFibGVfY29sb3JtYXAgKFhW aXN1YWxJbmZvICp2aXN1YWwpCiBleHRlcm4gdm9pZCB0ZWFyX2Rvd25feF9iYWNrX2J1ZmZl ciAoc3RydWN0IGZyYW1lICpmKTsKIGV4dGVybiB2b2lkIGluaXRpYWxfc2V0X3VwX3hfYmFj a19idWZmZXIgKHN0cnVjdCBmcmFtZSAqZik7CiAKK2V4dGVybiBMaXNwX09iamVjdCB4X2dl dF9tb2RpZmllcl9mb3Jfa2V5Y29kZSAoc3RydWN0IHhfZGlzcGxheV9pbmZvICosIGludCk7 CisKIC8qIERlZmluZWQgaW4geGZucy5jLiAgKi8KIGV4dGVybiB2b2lkIHhfcmVhbF9wb3Np dGlvbnMgKHN0cnVjdCBmcmFtZSAqLCBpbnQgKiwgaW50ICopOwogZXh0ZXJuIHZvaWQgeF9j aGFuZ2VfdGFiX2Jhcl9oZWlnaHQgKHN0cnVjdCBmcmFtZSAqLCBpbnQpOwotLSAKMi4zNS4x LndpbmRvd3MuMgoK --------------Ho0Ev8LvMd4RGoiUOUnpb8B7--