From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Vince Salvino Newsgroups: gmane.emacs.bugs Subject: bug#51404: Support system dark mode on Windows 10 Date: Sun, 23 Jan 2022 00:00:32 +0000 Message-ID: References: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="_002_CH2PR12MB42312B6F6237B1FBC6C67D3CA55D9CH2PR12MB4231namp_" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="9128"; mail-complaints-to="usenet@ciao.gmane.io" To: "51404@debbugs.gnu.org" <51404@debbugs.gnu.org> Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sun Jan 23 01:01:13 2022 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 1nBQJk-0002EO-Eo for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 23 Jan 2022 01:01:12 +0100 Original-Received: from localhost ([::1]:47106 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nBQJi-0006KJ-Qd for geb-bug-gnu-emacs@m.gmane-mx.org; Sat, 22 Jan 2022 19:01:10 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:54488) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nBQJb-0006KB-79 for bug-gnu-emacs@gnu.org; Sat, 22 Jan 2022 19:01:03 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]:45296) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nBQJZ-0001os-V7 for bug-gnu-emacs@gnu.org; Sat, 22 Jan 2022 19:01:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1nBQJZ-0002jO-TH for bug-gnu-emacs@gnu.org; Sat, 22 Jan 2022 19:01:01 -0500 X-Loop: help-debbugs@gnu.org In-Reply-To: Resent-From: Vince Salvino Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 23 Jan 2022 00:01:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 51404 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 51404-submit@debbugs.gnu.org id=B51404.164289605110473 (code B ref 51404); Sun, 23 Jan 2022 00:01:01 +0000 Original-Received: (at 51404) by debbugs.gnu.org; 23 Jan 2022 00:00:51 +0000 Original-Received: from localhost ([127.0.0.1]:38199 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nBQJF-0002if-Ho for submit@debbugs.gnu.org; Sat, 22 Jan 2022 19:00:51 -0500 Original-Received: from mail-bn8nam11on2042.outbound.protection.outlook.com ([40.107.236.42]:53489 helo=NAM11-BN8-obe.outbound.protection.outlook.com) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nBQJE-0002iS-Dd for 51404@debbugs.gnu.org; Sat, 22 Jan 2022 19:00:40 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cvQDFWYJS6KBT7+fnMBaoBIaFEVKnJosnEp514vXG+6i4Iy1zUrLl0lnKjWftJIEbjNcuaKvgNwV7z5OIj0b6fEP9icf4xTUGJyhLi3Z77AAENBTWJVc3L/zShJYIHv+zfmtsOt6GxD5UGAErPyZUGS/9hyDsnUeuO8PwsgBDs6ivPM6UjpGrSP9GoRfsY8U1BUyu2aNsAxbrcy5aIMy76uQ5uviClOK156eUJpoYfEC47NsPCYk+on3s2Pn4hW15lWtYqY5PAb1BhgbN3uqwLMhNp0oEWn79DhUS7nec3qLms/KZp8f5i8ImHywOX/Rt5PmmJhSNvCkiamdJgjkTg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=bVZVsi8Cf2TJT1MBjwJv29C1Keo9bIfOoc5blEKptPY=; b=QcT8Mzq2nTjaSSpzrszm6zjET1MfLNfQoV7GHXa1tOAIJZxLoMPDuhnz23xRerjx+a8j3qDweyjxTUc5g5Za3QR5PdD2tU1BGQ781NtSFerEWDWUjNuK952Rp3mnyKEuQD24jO7v+2W1NixFZuhBPAn4dBXi7EmNMMED+ICofKZikcqwlDQ867c5Vfjuvt3vNP7WDqmZhijEFaO4lNippi/5rYSaAozsiSG0DH1EAFz498iEGmzrrmXSYlnGd0smmiwWo8YD0Cmc4QmkwTOLU9UJ6UwSo6+xz6QfdzqZQKCUhfqwoWvkvRELn4OaVVlaOwxFxIpt5yJ6tPougBI1Vw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=coderedcorp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=bVZVsi8Cf2TJT1MBjwJv29C1Keo9bIfOoc5blEKptPY=; b=cLAa+LqmOX6T/KEyq8k3qm9BI45yfyF265zApqkOH60hLeQj3aSmBMhMijIS1lcxGBZ3mHYxi7yIil6TvOBPIWQu6hJoFJ/+WAnFw5+efVAcykBWrkZdrmHkc/7s9XMAepLwQ8l1t8i79w4/1nRDzufdeu/nOmR8+zOK3QjYxh8= Original-Received: from CH2PR12MB4231.namprd12.prod.outlook.com (2603:10b6:610:7d::24) by BN8PR12MB3587.namprd12.prod.outlook.com (2603:10b6:408:43::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4909.12; Sun, 23 Jan 2022 00:00:32 +0000 Original-Received: from CH2PR12MB4231.namprd12.prod.outlook.com ([fe80::859e:5a4f:dd62:bb26]) by CH2PR12MB4231.namprd12.prod.outlook.com ([fe80::859e:5a4f:dd62:bb26%9]) with mapi id 15.20.4909.017; Sun, 23 Jan 2022 00:00:32 +0000 Thread-Topic: RE: Support system dark mode on Windows 10 Thread-Index: AdgP6yLz28PvEhmTQP2D0iM80imrRw== Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=coderedcorp.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 6e6498ad-19a7-49b9-1e3f-08d9de035fd6 x-ms-traffictypediagnostic: BN8PR12MB3587:EE_ x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: FxnF+f3/wt6+gcfhv2mHXBJsE/KHKlgoZnkeLGMAtDV0etr26BHfDAQPA/qeLuEnvaFh43n1GSWemMGEZOMV5s7jVSqPjvCpNF0F6k1BwjMLY6P2nRri9e0TC/HGwnysFqjuVIblUCY5q8+oSH50MjvPQDOfFADWp6LlUr8O4yRUZp7VMH1cDyJepB8vYbZsTHR5vo06FwBI37M+3Iw1hEZjjz/zuGWx/EBzi1FV0vKg3XhDGd/xFvFh1jEYmgvae9OPHFg+SCsZWU+bTke+TuGmvy31q1f0/pEMFGKOJmMD1p9z7ssvo2QLN2EEeQvYLaW2Id1HWMxuaCyqjOhd5a1pOBsX7xDfFfRXy2Ymrsrwm0hC0PBPnY2n6yYDLJU9iqIv4xBvNw/MtOz2RQTJetuaOlDvxRe+tTo6r9wD/4y7SwFC55GrV3gXg/oZwCK80xwMwt9SwMdfxtZvLAg/63GxLapk4x5UAu6zhWN8oar9oMmVdmuQfgL/QqsW3oob0Xw2RBY8+GPHVbgbKQKSN1o8W22jZB06gEhjKjRshJhqsWg0qVjyPfNZY3fYV02Ph/xPbrBFpZVA/DnR+c3xu7EdOrS70H1M/M+/Dred2XZeoCK54uKyQjPog0qPZax+lrA23Qq5LRIAvXPReuhCI94Y25vYcjDcRmyld4MVoE/VKjB2tJYWOPVRAm7D+WWrF4WULqATsWmN7oVin2QEjg== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CH2PR12MB4231.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(396003)(136003)(376002)(39830400003)(346002)(366004)(8936002)(4744005)(33656002)(316002)(2906002)(5660300002)(9686003)(8676002)(186003)(76116006)(6506007)(55016003)(7696005)(66476007)(66556008)(71200400001)(99936003)(38070700005)(38100700002)(86362001)(52536014)(508600001)(66946007)(6916009)(66446008)(64756008)(4326008)(26005)(122000001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: eLpP1+moDyXnrOXk0zgtwWgMYae2lrSQM0HqdkT9KlqYeei5hbl66OSdvar3TRno084DXv8nEPTbfUyF+cEMNn4hPklagmL/0UrHtdApN+i2GyXHrttbwdciceD2hIWmTtfxlSw1jNvf85z64FbR8hMo9twRWccfRws25H+aFMT0xtsakwdf5YCLGsOETDrbiNKlHjlJ4SvdtLAoBCLH2xgcUxyXd9VKEDmQDBFc2FuxHceY+UD/tGFqDGzc1P6A+w42rQBY68+j0LtZTr+HRIOyeyGnQRVvkWTxFUt24CGwGfnEim5GAjXaYLq9nu6M8FJy2SArdTE2D0dp9Trhx6QRo4fS6ugeDXtE0zRHXNj93+VVNeXKNBHGHD2GMwRnak4Q+41fgdrgJQqK8OWY8mXHwu1WNEbcUnkCP6cKTJIEcPDe5izVcP4fhF8xGeo3lYwgKyYzfER3Ii0+lq3PYPjn5x7/PK77bG+ztFhpmXcr6562SKrE4a+igHzkMOoXaDpK8F43rxNc7jffYWDoy0cvSdh+hlQsgB00RAjM1F5CRSEVJcooBhI9oD69vB1iPwnfUNlMvMZKQGuZ/qxJzC/Ta4+z/0pz1qzX6dHJTx2rkNCKQaeCdoTqIlqFzlPWVggG/hXVLToDTpIfj6B2s6W/zrv/Wm1C16U5hqiEzLOyEX5qwZnbNJymbcRd8mu7dO+f2xwyMqKC2HWQSRg1/rIGkUorxnWOMnaaIz+WFhReWWGivRIinN7S65 dn8WxB4E3H6Ac2FhOVLKfRCwSkJyJA2sBu2gA/izVfJQHw+4WcWJ++w4/AQsg9dm7HIdFTh76lJGIurjho7cOGRimLcmPFKT4Y X-OriginatorOrg: coderedcorp.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CH2PR12MB4231.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6e6498ad-19a7-49b9-1e3f-08d9de035fd6 X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Jan 2022 00:00:32.2522 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 9c94adb1-2ce8-484f-be82-c9b5127d4cb1 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: C2MfnzP2w569B7usE9MMqYRNzbByInAg1pQl68JRtpNSm/kuubevkQVfFO0zhQw1it4pzlWaQFFNF9gKQbqgaA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN8PR12MB3587 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" Xref: news.gmane.io gmane.emacs.bugs:224871 Archived-At: --_002_CH2PR12MB42312B6F6237B1FBC6C67D3CA55D9CH2PR12MB4231namp_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Attached is a patch which listens to the OS settings change, to dynamically= change light/dark GUI during runtime. Disclaimer here, I am not actually a C nor Win32 developer. I am not curren= tly happy with the g_hwnds[256] implementation - that is purely a sloppy ha= ck as a proof of concept. There is probably a much better way to track the = window handles (all outlined in the TODO comment). However, this works if a= nyone wants to play around with it. Vince Salvino --_002_CH2PR12MB42312B6F6237B1FBC6C67D3CA55D9CH2PR12MB4231namp_ Content-Type: application/octet-stream; name="0002-Support-MS-Windows-light-dark-mode-theme-change-duri.patch" Content-Description: 0002-Support-MS-Windows-light-dark-mode-theme-change-duri.patch Content-Disposition: attachment; filename="0002-Support-MS-Windows-light-dark-mode-theme-change-duri.patch"; size=7271; creation-date="Sat, 22 Jan 2022 23:50:00 GMT"; modification-date="Sun, 23 Jan 2022 00:00:32 GMT" Content-Transfer-Encoding: base64 RnJvbSA4OWVmMzkwY2EwNjM5N2MyMWJlMGRlZWE0MmRjYzVlYjBmOGFjZmFkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBWaW5jZSBTYWx2aW5vIDxzYWx2aW5vQGNvZGVyZWRjb3JwLmNv bT4KRGF0ZTogU2F0LCAyMiBKYW4gMjAyMiAxODozOTo0MSAtMDUwMApTdWJqZWN0OiBbUEFUQ0hd IFN1cHBvcnQgTVMtV2luZG93cyBsaWdodC9kYXJrIG1vZGUgdGhlbWUgY2hhbmdlIGR1cmluZwog cnVudGltZS4gKEJ1ZyM1MTQwNCkKCi0tLQogc3JjL3czMmZucy5jIHwgMTE2ICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQs IDk0IGluc2VydGlvbnMoKyksIDIyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy93MzJm bnMuYyBiL3NyYy93MzJmbnMuYwppbmRleCAzN2Y5YjgxM2M2Li40Mjk5ODYwNTFjIDEwMDY0NAot LS0gYS9zcmMvdzMyZm5zLmMKKysrIGIvc3JjL3czMmZucy5jCkBAIC03OCw2ICs3OCw3IEBAICNk ZWZpbmUgX1dJTjMyX1dJTk5UIDB4MDYwMAogICBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9taWNy b3NvZnQvV2luZG93c0FwcFNESy9pc3N1ZXMvNDEKICovCiAjZGVmaW5lIERBUktfTU9ERV9BUFBf TkFNRSBMIkRhcmtNb2RlX0V4cGxvcmVyIgorI2RlZmluZSBMSUdIVF9NT0RFX0FQUF9OQU1FIEwi RXhwbG9yZXIiCiAvKiBGb3IgV2luZG93cyAxMCB2ZXJzaW9uIDE4MDksIDE5MDMsIDE5MDkuICov CiAjaWZuZGVmIERXTVdBX1VTRV9JTU1FUlNJVkVfREFSS19NT0RFX09MRAogI2RlZmluZSBEV01X QV9VU0VfSU1NRVJTSVZFX0RBUktfTU9ERV9PTEQgMTkKQEAgLTI3Myw5ICsyNzQsMjUgQEAgI2Rl ZmluZSBNRU5VX0ZSRUVfREVMQVkgMTAwMAogaW50IHczMl9taW5vcl92ZXJzaW9uOwogaW50IHcz Ml9idWlsZF9udW1iZXI7CiAKLS8qIElmIHRoZSBPUyBpcyBzZXQgdG8gdXNlIGRhcmsgbW9kZS4g ICovCisvKiBJZiB0aGUgT1Mgc3VwcG9ydHMgbGlnaHQvZGFyayBtb2RlLiAqLworQk9PTCB3MzJf c3VwcG9ydHNfZGFya21vZGUgPSBGQUxTRTsKKy8qIElmIEVtYWNzIHNob3VsZCB1c2UgdGhlIE9T J3MgZGFyayBtb2RlLiAgKi8KIEJPT0wgdzMyX2Rhcmttb2RlID0gRkFMU0U7CiAKKy8qIFRyYWNr IEFMTCB3aW5kb3cgaGFuZGxlcyBzbyB0aGV5IGNhbiBiZSB1cGRhdGVkIGlmIHRoZSBXaW5kb3dz CisgICBsaWdodC9kYXJrIG1vZGUgdGhlbWUgaXMgY2hhbmdlZC4gRWFjaCBmcmFtZSBjb3VsZCBo YXZlIHNvbWVod2VyZQorICAgYmV0d2VlbiAxLTYgSFdORHMgZGVwZW5kaW5nIG9uIHdoaWNoIEdV SSBmZWF0dXJlcyBhcmUgZW5hYmxlZCBieQorICAgdGhlIHVzZXIuCisKKyAgIFRPRE86IENvbnZl cnQgdGhpcyB0byBzb21ldGhpbmcgbW9yZSBkeW5hbWljOgorICAgKiBSZW1vdmUgdXBwZXIgbGlt aXQgKDI1Nikgb2YgSFdORHMuCisgICAqIFdoZW4gYSBIV05EIGlzIGRlc3Ryb3llZCBpdCBzaG91 bGQgYmUgcmVtb3ZlZCBmcm9tIHRoaXMgbGlzdAorICAgICAoanVzdCBmb3Igc2FrZSBvZiBtZW1v cnkgbWFuYWdlbWVudCBjbGVhbmxpbmVzczsgaXQgZG9lcyBub3QKKyAgICAgYWN0dWFsbHkgY2F1 c2UgYSBwcm9ibGVtIHRvIG1ha2UgdzMyIGNhbGxzIHRvIGRlYWQgSFdORHMpLgorKi8KK0hXTkQg Z19od25kc1syNTZdOworaW50IGdfaHduZHNfaWR4ID0gLTE7CisKIC8qIERpc3Rpbmd1aXNoIGJl dHdlZW4gV2luZG93cyBOVCBhbmQgV2luZG93cyA5NS4gICovCiBpbnQgb3Nfc3VidHlwZTsKIApA QCAtMjMwMywxOSArMjMyMCw1MCBAQCB3MzJfaW5pdF9jbGFzcyAoSElOU1RBTkNFIGhpbnN0KQog ICAgIH0KIH0KIAorCisvKiBHZXRzIHRoZSBwcmVmZXJyZWQgV2luZG93cyBhcHAgbW9kZToKKyAg ICogRkFMU0UgPSBMaWdodCBtb2RlICh0aGlzIGlzIGVxdWl2YWxlbnQgdG8gdGhlIHVzZXIgc3Bl Y2lmeWluZworICAgICAgICAgICAgIExpZ2h0LCBvciB0aGUgYWJzZW5jZSBvZiBhbnkgc2V0dGlu ZykKKyAgICogVFJVRSA9IERhcmsgbW9kZSAoYWRkZWQgaW4gV2luZG93cyAxMCAxODA5KS4gKi8K K3N0YXRpYyBCT09MCit3MzJfcXVlcnlkYXJrbW9kZSAodm9pZCkKK3sKKyAgaWYgKHczMl9zdXBw b3J0c19kYXJrbW9kZSkKKyAgICB7CisgICAgICAvKiBDaGVjayBXaW5kb3dzIFJlZ2lzdHJ5IGZv ciBzeXN0ZW0gdGhlbWUuCisJIFRPRE86ICJOaWNlIHRvIGhhdmUiIHdvdWxkIGJlIHRvIGNyZWF0 ZSBhIGxpc3Agc2V0dGluZyAod2hpY2gKKwkgZGVmYXVsdHMgdG8gdGhpcyBXaW5kb3dzIFJlZ2lz dHJ5IHZhbHVlKSwgdGhlbiByZWFkIHRoYXQgbGlzcAorCSB2YWx1ZSBoZXJlIGluc3RlYWQuIFRo aXMgd291bGQgYWxsb3cgdGhlIHVzZXIgdG8gZm9yY2libHkKKwkgb3ZlcnJpZGUgdGhlIHN5c3Rl bSB0aGVtZSAod2hpY2ggaXMgYWxzbyB1c2VyLWNvbmZpZ3VyYWJsZSBpbgorCSBXaW5kb3dzIHNl dHRpbmdzOyBzZWUgTVMtV2luZG93cyBzZWN0aW9uIGluIEVtYWNzIG1hbnVhbCkuICovCisgICAg ICBMUEJZVEUgdmFsID0KKwl3MzJfZ2V0X3Jlc291cmNlICgiU29mdHdhcmVcXE1pY3Jvc29mdFxc V2luZG93c1xcQ3VycmVudFZlcnNpb25cXFRoZW1lc1xcUGVyc29uYWxpemUiLAorCQkJICAiQXBw c1VzZUxpZ2h0VGhlbWUiLAorCQkJICBOVUxMKTsKKyAgICAgIHJldHVybiB2YWwgJiYgKnZhbCA9 PSAwOworICAgIH0KKyAgcmV0dXJuIEZBTFNFOworfQorCiAvKiBBcHBsaWVzIHRoZSBXaW5kb3dz IHN5c3RlbSB0aGVtZSAobGlnaHQgb3IgZGFyaykgdG8gdGhlIHdpbmRvdwotICAgaGFuZGxlIEhX TkQuICAqLworICAgaGFuZGxlIEhXTkQuIGB0cmFja2Agc2hvdWxkIGdlbmVyYWxseSBiZSBUUlVF IHRvIGtlZXAgYSByZWZlcmVuY2UKKyAgIHRvIHRoaXMgSFdORCBmb3IgZnV0dXJlIHVzZS4gKi8K IHN0YXRpYyB2b2lkCi13MzJfYXBwbHl0aGVtZSAoSFdORCBod25kKQordzMyX2FwcGx5dGhlbWUg KEhXTkQgaHduZCwgYm9vbCB0cmFjaykKIHsKLSAgaWYgKHczMl9kYXJrbW9kZSkKKyAgaWYgKHcz Ml9zdXBwb3J0c19kYXJrbW9kZSkKICAgICB7CiAgICAgICAvKiBTZXQgd2luZG93IHRoZW1lIHRv IHRoYXQgb2YgYSBidWlsdC1pbiBXaW5kb3dzIGFwcCAoRXhwbG9yZXIpLAogCSBiZWNhdXNlIGl0 IGhhcyBkYXJrIHNjcm9sbCBiYXJzIGFuZCBvdGhlciBVSSBlbGVtZW50cy4gICovCiAgICAgICBp ZiAoU2V0V2luZG93VGhlbWVfZm4pCi0JU2V0V2luZG93VGhlbWVfZm4gKGh3bmQsIERBUktfTU9E RV9BUFBfTkFNRSwgTlVMTCk7CisJeworCSAgaWYgKHczMl9kYXJrbW9kZSkKKwkgICAgU2V0V2lu ZG93VGhlbWVfZm4gKGh3bmQsIERBUktfTU9ERV9BUFBfTkFNRSwgTlVMTCk7CisJICBlbHNlCisJ ICAgIFNldFdpbmRvd1RoZW1lX2ZuIChod25kLCBMSUdIVF9NT0RFX0FQUF9OQU1FLCBOVUxMKTsK Kwl9CiAKLSAgICAgIC8qIFNldCB0aGUgdGl0bGViYXIgdG8gc3lzdGVtIGRhcmsgbW9kZS4gICov CisgICAgICAvKiBUb2dnbGUgZGFya21vZGUgdGl0bGViYXIgb24gb3Igb2ZmLiAgKi8KICAgICAg IGlmIChEd21TZXRXaW5kb3dBdHRyaWJ1dGVfZm4pCiAJewogCSAgLyogV2luZG93cyAxMCB2ZXJz aW9uIDIwMDQgYW5kIHVwLCBXaW5kb3dzIDExLiAgKi8KQEAgLTIzMjMsOSArMjM3MSwyNiBAQCB3 MzJfYXBwbHl0aGVtZSAoSFdORCBod25kKQogCSAgLyogV2luZG93cyAxMCBvbGRlciB0aGFuIDIw MDQuICAqLwogCSAgaWYgKHczMl9idWlsZF9udW1iZXIgPCAxOTA0MSkKIAkgICAgYXR0ciA9IERX TVdBX1VTRV9JTU1FUlNJVkVfREFSS19NT0RFX09MRDsKKwkgIC8qIFRvZ2dsZSBkYXJrIG1vZGUg ZmxhZyBiYXNlZCBvbiB2YWx1ZSBvZiBgdzMyX2Rhcmttb2RlYCAqLwogCSAgRHdtU2V0V2luZG93 QXR0cmlidXRlX2ZuIChod25kLCBhdHRyLAogCQkJCSAgICAmdzMyX2Rhcmttb2RlLCBzaXplb2Yg KHczMl9kYXJrbW9kZSkpOwogCX0KKworICAgICAgLyogQWZ0ZXIgYXBwbHlpbmcgdGhlIHRoZW1l LCBhZGQgdGhlIEhXTkQgdG8gb3VyIGdsb2JhbCBsaXN0IHNvCisJIGl0IGNhbiBiZSBjaGFuZ2Vk IGxhdGVyIGlmIHRoZSBPUyBsaWdodC9kYXJrIG1vZGUgdGhlbWUgaXMKKwkgY2hhbmdlZC4gKi8K KyAgICAgIGlmKHRyYWNrKQorCXsKKwkgIGlmKGdfaHduZHNfaWR4IDwgMjU2KQorCSAgICB7CisJ ICAgICAgZ19od25kc19pZHgrKzsKKwkgICAgICBnX2h3bmRzW2dfaHduZHNfaWR4XSA9IGh3bmQ7 CisJICAgIH0KKwkgIGVsc2UKKwkgICAgeworCSAgICAgIHByaW50ZigiTnVtYmVyIG9mIHdpbmRv dyBoYW5kbGVzIGhhcyBleGNlZWRlZCBjYXBhY2l0eSEiKTsKKwkgICAgfQorCX0KICAgICB9CiB9 CiAKQEAgLTIzNDIsNyArMjQwNyw3IEBAIHczMl9jcmVhdGV2c2Nyb2xsYmFyIChzdHJ1Y3QgZnJh bWUgKmYsIHN0cnVjdCBzY3JvbGxfYmFyICogYmFyKQogCQkgICAgICAgYmFyLT5sZWZ0LCBiYXIt PnRvcCwgYmFyLT53aWR0aCwgYmFyLT5oZWlnaHQsCiAJCSAgICAgICBGUkFNRV9XMzJfV0lORE9X IChmKSwgTlVMTCwgaGluc3QsIE5VTEwpOwogICBpZiAoaHduZCkKLSAgICB3MzJfYXBwbHl0aGVt ZSAoaHduZCk7CisgICAgdzMyX2FwcGx5dGhlbWUgKGh3bmQsIFRSVUUpOwogICByZXR1cm4gaHdu ZDsKIH0KIApAQCAtMjM1OSw3ICsyNDI0LDcgQEAgdzMyX2NyZWF0ZWhzY3JvbGxiYXIgKHN0cnVj dCBmcmFtZSAqZiwgc3RydWN0IHNjcm9sbF9iYXIgKiBiYXIpCiAJCSAgICAgICBiYXItPmxlZnQs IGJhci0+dG9wLCBiYXItPndpZHRoLCBiYXItPmhlaWdodCwKIAkJICAgICAgIEZSQU1FX1czMl9X SU5ET1cgKGYpLCBOVUxMLCBoaW5zdCwgTlVMTCk7CiAgIGlmIChod25kKQotICAgIHczMl9hcHBs eXRoZW1lIChod25kKTsKKyAgICB3MzJfYXBwbHl0aGVtZSAoaHduZCwgVFJVRSk7CiAgIHJldHVy biBod25kOwogfQogCkBAIC0yNDQ3LDcgKzI1MTIsNyBAQCB3MzJfY3JlYXRld2luZG93IChzdHJ1 Y3QgZnJhbWUgKmYsIGludCAqY29vcmRzKQogICAgICAgRHJhZ0FjY2VwdEZpbGVzIChod25kLCBU UlVFKTsKIAogICAgICAgLyogRW5hYmxlIHN5c3RlbSBsaWdodC9kYXJrIHRoZW1lLiAgKi8KLSAg ICAgIHczMl9hcHBseXRoZW1lIChod25kKTsKKyAgICAgIHczMl9hcHBseXRoZW1lIChod25kLCBU UlVFKTsKIAogICAgICAgLyogRG8gdGhpcyB0byBkaXNjYXJkIHRoZSBkZWZhdWx0IHNldHRpbmcg c3BlY2lmaWVkIGJ5IG91ciBwYXJlbnQuICovCiAgICAgICBTaG93V2luZG93IChod25kLCBTV19I SURFKTsKQEAgLTUxNzgsNiArNTI0MywyMyBAQCB3MzJfd25kX3Byb2MgKEhXTkQgaHduZCwgVUlO VCBtc2csIFdQQVJBTSB3UGFyYW0sIExQQVJBTSBsUGFyYW0pCiAJIGNoYW5nZWQsIHNvIGlmIEVt YWNzIGlzIGludGVyZXN0ZWQgaW4gc29tZSBvZiB0aGVtLCBpdCBjb3VsZAogCSB1cGRhdGUgaXRz IGludGVybmFsIHZhbHVlcy4gICovCiAgICAgICBteV9wb3N0X21zZyAoJndtc2csIGh3bmQsIG1z Zywgd1BhcmFtLCBsUGFyYW0pOworCisgICAgICAvKiBDaGVjayBpZiBzZXR0aW5ncyBjaGFuZ2Vk IExpZ2h0L0RhcmsgbW9kZS4KKwkgUmUtbG9va3VwIHRoZSBzZXR0aW5nIGFuZCB1cGRhdGUgdGhl IEhXTkRzIGFjY29yZGluZ2x5LiAqLworICAgICAgaWYodzMyX3N1cHBvcnRzX2Rhcmttb2RlKQor CXsKKwkgIEJPT0wgbmV3X2Rhcmttb2RlID0gdzMyX3F1ZXJ5ZGFya21vZGUoKTsKKwkgIGlmICh3 MzJfZGFya21vZGUgIT0gbmV3X2Rhcmttb2RlKQorCSAgICB7CisJICAgICAgdzMyX2Rhcmttb2Rl ID0gbmV3X2Rhcmttb2RlOworCSAgICAgIC8qIExvb3AgdGhyb3VnaCBhbGwga25vd24gSFdORHMg YW5kIGFwcGx5IHRoZW1lICovCisJICAgICAgZm9yKGludCBpPTA7IGk8PWdfaHduZHNfaWR4OyBp KyspCisJCXsKKwkJICB3MzJfYXBwbHl0aGVtZShnX2h3bmRzW2ldLCBmYWxzZSk7CisJCX0KKwkg ICAgfQorCX0KKwogICAgICAgZ290byBkZmx0OwogCiAgICAgY2FzZSBXTV9TRVRGT0NVUzoKQEAg LTExMTU3LDYgKzExMjM5LDcgQEAgZ2xvYmFsc19vZl93MzJmbnMgKHZvaWQpCiAgIGlmIChvc19z dWJ0eXBlID09IE9TX1NVQlRZUEVfTlQKICAgICAgICYmIHczMl9tYWpvcl92ZXJzaW9uID49IDEw ICYmIHczMl9idWlsZF9udW1iZXIgPj0gMTc3NjMpCiAgICAgeworICAgICAgdzMyX3N1cHBvcnRz X2Rhcmttb2RlID0gVFJVRTsKICAgICAgIC8qIExvYWQgZHdtYXBpLmRsbCBhbmQgdXh0aGVtZS5k bGwsIHdoaWNoIHdpbGwgYmUgbmVlZGVkIHRvIHNldAogCSB3aW5kb3cgdGhlbWVzLiAgKi8KICAg ICAgIEhNT0RVTEUgZHdtYXBpX2xpYiA9IExvYWRMaWJyYXJ5KCJkd21hcGkuZGxsIik7CkBAIC0x MTE2NSwxOSArMTEyNDgsOCBAQCBnbG9iYWxzX29mX3czMmZucyAodm9pZCkKICAgICAgIEhNT0RV TEUgdXh0aGVtZV9saWIgPSBMb2FkTGlicmFyeSgidXh0aGVtZS5kbGwiKTsKICAgICAgIFNldFdp bmRvd1RoZW1lX2ZuID0gKFNldFdpbmRvd1RoZW1lX1Byb2MpCiAJZ2V0X3Byb2NfYWRkciAodXh0 aGVtZV9saWIsICJTZXRXaW5kb3dUaGVtZSIpOwotCi0gICAgICAvKiBDaGVjayBXaW5kb3dzIFJl Z2lzdHJ5IGZvciBzeXN0ZW0gdGhlbWUgYW5kIHNldCB3MzJfZGFya21vZGUuCi0JIFRPRE86ICJO aWNlIHRvIGhhdmUiIHdvdWxkIGJlIHRvIGNyZWF0ZSBhIGxpc3Agc2V0dGluZyAod2hpY2gKLQkg ZGVmYXVsdHMgdG8gdGhpcyBXaW5kb3dzIFJlZ2lzdHJ5IHZhbHVlKSwgdGhlbiByZWFkIHRoYXQg bGlzcAotCSB2YWx1ZSBoZXJlIGluc3RlYWQuIFRoaXMgd291bGQgYWxsb3cgdGhlIHVzZXIgdG8g Zm9yY2libHkKLQkgb3ZlcnJpZGUgdGhlIHN5c3RlbSB0aGVtZSAod2hpY2ggaXMgYWxzbyB1c2Vy LWNvbmZpZ3VyYWJsZSBpbgotCSBXaW5kb3dzIHNldHRpbmdzOyBzZWUgTVMtV2luZG93cyBzZWN0 aW9uIGluIEVtYWNzIG1hbnVhbCkuICovCi0gICAgICBMUEJZVEUgdmFsID0KLQl3MzJfZ2V0X3Jl c291cmNlICgiU29mdHdhcmVcXE1pY3Jvc29mdFxcV2luZG93c1xcQ3VycmVudFZlcnNpb25cXFRo ZW1lc1xcUGVyc29uYWxpemUiLAotCQkJICAiQXBwc1VzZUxpZ2h0VGhlbWUiLAotCQkJICBOVUxM KTsKLSAgICAgIGlmICh2YWwgJiYgKnZhbCA9PSAwKQotCXczMl9kYXJrbW9kZSA9IFRSVUU7Cisg ICAgICAvKiBTZXQgdGhlIHByZWZlcnJlZCBtb2RlIGZyb20gT1Mgc2V0dGluZ3MuICovCisgICAg ICB3MzJfZGFya21vZGUgPSB3MzJfcXVlcnlkYXJrbW9kZSgpOwogICAgIH0KIAogICBleGNlcHRf Y29kZSA9IDA7Ci0tIAoyLjM0LjEud2luZG93cy4xCgo= --_002_CH2PR12MB42312B6F6237B1FBC6C67D3CA55D9CH2PR12MB4231namp_--