DMARC-Filter: OpenDMARC Filter v1.4.2 delorie.com 5B38vAnw3931145 Authentication-Results: delorie.com; dmarc=pass (p=none dis=none) header.from=cygwin.com Authentication-Results: delorie.com; spf=pass smtp.mailfrom=cygwin.com DKIM-Filter: OpenDKIM Filter v2.11.0 delorie.com 5B38vAnw3931145 Authentication-Results: delorie.com; dkim=pass (1024-bit key, unprotected) header.d=cygwin.com header.i=@cygwin.com header.a=rsa-sha256 header.s=default header.b=HEghgPFv X-Recipient: archive-cygwin AT delorie DOT com DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 72CFE4D108F5 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cygwin.com; s=default; t=1764752228; bh=gytH5XCDxeTGBSTYFFOOTbEA2XwhSKAJQVZCWAuG0kQ=; h=Date:To:Subject:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=HEghgPFv22bL4cEk6FqxGAoMscnXCkKN7rLcxknsBeNeL4G11Nn9Ll9bnBlXkpCCW i92gtofrcbacDzA4RiimkDmgyj99cgxFAIuII6eU6Qjov23mz707MixRCLywdmb/Gl LBJywgyqJColJpBwksiuCbBLARpsujXKWUeRw660= X-Original-To: cygwin AT cygwin DOT com Delivered-To: cygwin AT cygwin DOT com DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 937544D108C8 ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 937544D108C8 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1764752203; cv=none; b=P9QH4F7M9usAlvnn37wt7R1CIsSrkvUQIQl5Gq1v8S/Ro+fnN9AUW1N92vYIYQETivEywrQMAUWDYRL/xPwTbBRvHaHA/Ev7bBNamU8K6tXc2zgtodVVpaXBpA6utvxu5RES6vNHKHag4C4//mrEDWCb9ec5RxAPBShF8qMq+Y8= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1764752203; c=relaxed/simple; bh=hppTy1zZ0oXu7w68XjQSJuKyrRlMgrt3lzTfRcmXrHY=; h=Date:From:To:Subject:Message-Id:Mime-Version:DKIM-Signature; b=N8ai3mfjOrXcdEwYf2K7Xzw6pCEcgRWsevrbUmv5J8/0u9nK4rcFuvq1pfNLE2G4+XFbcJEaW3ZnJDA2Jkhky4SbGsgNVubXEo6HyiMV0hFpcDyhqqNdqvwkTQ67GrhJww55YvXeHYVzBTcOP5AhB4KCNc9lctUojbB6wFjwwRE= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 937544D108C8 Date: Wed, 3 Dec 2025 17:56:38 +0900 To: cygwin AT cygwin DOT com Subject: Re: dynamic conpty loading Message-Id: <20251203175638.0b4f51242c8fdab685ad9b7e@nifty.ne.jp> In-Reply-To: <20251127172026.6b6f876fd341f9c0cbd1f876@nifty.ne.jp> References: <30deef29-ba20-49d9-9b38-28020941b0ef AT towo DOT net> <707f4d4c-a20d-4f1d-bdbd-65a2392dea15 AT towo DOT net> <20251121190433 DOT 4a37dc959848a0aea89a8922 AT nifty DOT ne DOT jp> <62f3c1ae-1fd9-477d-a837-d865094dab06 AT towo DOT net> <20251126193220 DOT 1b890f58a121add2f0d05fa5 AT nifty DOT ne DOT jp> <3a6ed5bc-24fd-42b0-9f57-83c8eb678a1b AT towo DOT net> <20251127172026 DOT 6b6f876fd341f9c0cbd1f876 AT nifty DOT ne DOT jp> X-Mailer: Sylpheed 3.7.0 (GTK+ 2.24.30; i686-pc-mingw32) Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="Multipart=_Wed__3_Dec_2025_17_56_38_+0900_AQ0kd8lVd0GlvVBY" X-BeenThere: cygwin AT cygwin DOT com X-Mailman-Version: 2.1.30 Precedence: list List-Id: General Cygwin discussions and problem reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Takashi Yano via Cygwin Reply-To: Takashi Yano Errors-To: cygwin-bounces~archive-cygwin=delorie DOT com AT cygwin DOT com Sender: "Cygwin" This is a multi-part message in MIME format. --Multipart=_Wed__3_Dec_2025_17_56_38_+0900_AQ0kd8lVd0GlvVBY Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit On Thu, 27 Nov 2025 17:20:26 +0900 Takashi Yano via Cygwin wrote: > On Wed, 26 Nov 2025 19:50:07 +0100 > Thomas Wolff wrote: > > > > Am 26.11.2025 um 11:32 schrieb Takashi Yano via Cygwin: > > > On Fri, 21 Nov 2025 17:58:01 +0100 > > > Thomas Wolff wrote: > > > > > >> Am 21.11.2025 um 17:46 schrieb Corinna Vinschen via Cygwin: > > >>> Hi Thomas, > > >>> > > >>> On Nov 21 16:46, Thomas Wolff via Cygwin wrote: > > >>>> Am 21.11.2025 um 11:04 schrieb Takashi Yano via Cygwin: > > >>>>> On Sun, 5 Oct 2025 10:15:55 +0200 > > >>>>> Thomas Wolff wrote: > > >>>>>>>> The procedure seems to be: > > >>>>>>>> try LoadLibrary("conpty.dll"), (if not successful, fallback to > > >>>>>>>> GetModuleHandle("kernel32") instead) to retrieve GetProcAddress for > > >>>>>>>> CreatePseudoConsole, ResizePseudoConsole, ClosePseudoConsole, and > > >>>>>>>> then somehow (?) use those while calling CreateProcess. > > >>>>>>>> The latter is woven into the cygwin library and I don't think it's a > > >>>>>>>> good idea to clone that out of cygwin for a patched process creation > > >>>>>>>> in mintty. > > >>>>>>>> > > >>>>>>>> My question/suggestion: > > >>>>>>>> Can a cygwin mode switch to a selected conpty library instead of the > > >>>>>>>> default one please? > > >>> Where do you expect this conpty.dll to reside? > > >>> > > >>> If we do something like that, I would suggest to make sure that this > > >>> conpty.dll is in a well-defined place. /bin or /lib might be a good > > >>> idea. And if it exists in this defined place, it will be used by Cygwin. > > >>> > > >>> We can tweak the autoload mechanism to allow a primary DLL and a fallback > > >>> DLL, that drops the need to set the CYWIN env var. > > >>> > > >>> The mintty package could contain a post-install script, or some other > > >>> script in /bin to allow a user with admin rights downloading the latest > > >>> (or the most sensible) conpty.dll from MSFT. > > >>> > > >>> Would that make sense? > > >>> > > >>> > > >>> Corinna > > >>> > > >> That makes much sense, yes, thank you. /bin/conpty.dll would probably be > > >> a good place. > > > I checked the source of conpty.dll > > > https://github.com/microsoft/terminal/blob/main/src/winconpty/winconpty.cpp > > > > > > conpty.dll seems to launch OpenConsole.exe in the directory where > > > WindowsTerminal is installed. > > > However, BUILTIN\Users does not have permission to execute OpenConsole.exe. > > > > > > Do you have some idea how to solve this problem? > > > WindowsTerminal itself can launch OpenConsole.exe, so there should be > > > some solutions, I think. > > Did you install the nuget package? It can be extracted with zip, so you > > can install OpenConsole as a normal program... > > I did not find a way, though, to invoke it explicitly so that it would > > solve the pty interworking problems. > > Thanks. > > I've made an experimental patch against fhandler/pty.cc and > draft package named openconsole that installs official OpenConsole.exe > binary into /usr/bin. > > I confirmed the patch with openconsole package enables the mouse > support for vim91 and neovim 0.8.0 (native windows binary) in > pseudo console. pty patch and openconsole package files are revised. > Any comments and suggestions would be appreciated. -- Takashi Yano --Multipart=_Wed__3_Dec_2025_17_56_38_+0900_AQ0kd8lVd0GlvVBY Content-Type: text/plain; name="v2-0001-Cygwin-pty-Experimental-OpenConsole.exe-support.patch" Content-Disposition: attachment; filename="v2-0001-Cygwin-pty-Experimental-OpenConsole.exe-support.patch" Content-Transfer-Encoding: base64 RnJvbSAyODU3MGJkNDY0NDQ2ZWIzMjdiNTg4YjYyM2Y3MGY4Y2Y4ZjQ2YjNkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQ0KRnJvbTogVGFrYXNoaSBZYW5vIDx0YWthc2hpLnlhbm9AbmlmdHkubmUu anA+DQpEYXRlOiBUaHUsIDI3IE5vdiAyMDI1IDE1OjUyOjEyICswOTAwDQpTdWJqZWN0OiBbUEFU Q0ggdjJdIEN5Z3dpbjogcHR5OiBFeHBlcmltZW50YWwgT3BlbkNvbnNvbGUuZXhlIHN1cHBvcnQN Cg0KU2lnbmVkLW9mZi1ieTogVGFrYXNoaSBZYW5vIDx0YWthc2hpLnlhbm9AbmlmdHkubmUuanA+ DQotLS0NCiB3aW5zdXAvY3lnd2luL2ZoYW5kbGVyL3B0eS5jYyB8IDI4MSArKysrKysrKysrKysr KysrKysrKysrKysrKysrKystLS0tDQogMSBmaWxlIGNoYW5nZWQsIDI1MSBpbnNlcnRpb25zKCsp LCAzMCBkZWxldGlvbnMoLSkNCg0KZGlmZiAtLWdpdCBhL3dpbnN1cC9jeWd3aW4vZmhhbmRsZXIv cHR5LmNjIGIvd2luc3VwL2N5Z3dpbi9maGFuZGxlci9wdHkuY2MNCmluZGV4IDY3OTA2OGVhMi4u MmM5YWYxNzQyIDEwMDY0NA0KLS0tIGEvd2luc3VwL2N5Z3dpbi9maGFuZGxlci9wdHkuY2MNCisr KyBiL3dpbnN1cC9jeWd3aW4vZmhhbmRsZXIvcHR5LmNjDQpAQCAtMzMsNiArMzMsMTM2IEBAIGRl dGFpbHMuICovDQogI2RlZmluZSBQUk9DX1RIUkVBRF9BVFRSSUJVVEVfUFNFVURPQ09OU09MRSAw eDAwMDIwMDE2DQogI2VuZGlmIC8qIFBST0NfVEhSRUFEX0FUVFJJQlVURV9QU0VVRE9DT05TT0xF ICovDQogDQorc3RhdGljIE5UU1RBVFVTDQorY3JlYXRlX2hhbmRsZSAoUEhBTkRMRSBoYW5kbGUs IFBDV1NUUiBkZXZpY2VfbmFtZSwNCisJICAgICAgIEFDQ0VTU19NQVNLIGRlc2lyZWRfYWNjZXNz LCBIQU5ETEUgcGFyZW50LA0KKwkgICAgICAgQk9PTEVBTiBpbmhlcml0YWJsZSwgVUxPTkcgb3Bl bl9vcHRpb25zKQ0KK3sNCisgIFVMT05HIGZsYWdzID0gT0JKX0NBU0VfSU5TRU5TSVRJVkU7DQor ICBpZiAoaW5oZXJpdGFibGUpDQorICAgIGZsYWdzIHw9IE9CSl9JTkhFUklUOw0KKw0KKyAgVU5J Q09ERV9TVFJJTkcgbmFtZTsNCisgIFJ0bEluaXRVbmljb2RlU3RyaW5nICgmbmFtZSwgZGV2aWNl X25hbWUpOw0KKw0KKyAgT0JKRUNUX0FUVFJJQlVURVMgb2JqZWN0X2F0dHJpYnV0ZXM7DQorICBJ bml0aWFsaXplT2JqZWN0QXR0cmlidXRlcyAoJm9iamVjdF9hdHRyaWJ1dGVzLCAmbmFtZSwgZmxh Z3MsIHBhcmVudCwgTlVMTCk7DQorDQorICBJT19TVEFUVVNfQkxPQ0sgaW87DQorICByZXR1cm4g TnRPcGVuRmlsZSAoaGFuZGxlLCBkZXNpcmVkX2FjY2VzcywgJm9iamVjdF9hdHRyaWJ1dGVzLCAm aW8sDQorCQkgICAgIEZJTEVfU0hBUkVfUkVBRCB8IEZJTEVfU0hBUkVfV1JJVEUgfCBGSUxFX1NI QVJFX0RFTEVURSwNCisJCSAgICAgb3Blbl9vcHRpb25zKTsNCit9DQorDQorZXh0ZXJuICJDIiBX SU5CQVNFQVBJIEhSRVNVTFQgV0lOQVBJDQorQ3JlYXRlUHNldWRvQ29uc29sZV9uZXcgKENPT1JE IHNpemUsIEhBTkRMRSBoX2lucHV0LCBIQU5ETEUgaF9vdXRwdXQsDQorCQkJIERXT1JEIGZsYWdz LCBIUENPTiAqaHBjb24pDQorew0KKw0KKyAgSEFORExFIGhfY29uX3NlcnZlciwgaF9jb25fcmVm ZXJlbmNlOw0KKyAgTlRTVEFUVVMgc3RhdHVzOw0KKyAgQk9PTCByZXM7DQorICBIQU5ETEUgaF9y ZWFkX3BpcGUsIGhfd3JpdGVfcGlwZTsNCisgIEJPT0wgaW5oZXJpdF9jdXJzb3I7DQorICBwYXRo X2NvbnYgY29uaG9zdCAoIi91c3IvYmluL09wZW5Db25zb2xlLmV4ZSIpOw0KKyAgc2l6ZV90IGxl bjsNCisgIEhBTkRMRSBpbmhlcml0ZWRfaGFuZGxlc1s0XTsNCisgIFNUQVJUVVBJTkZPRVhXIHNp ID0gezAsIH07DQorICBQUk9DRVNTX0lORk9STUFUSU9OIHBpOw0KKyAgU0laRV9UIGxpc3Rfc2l6 ZSA9IDA7DQorICBMUFBST0NfVEhSRUFEX0FUVFJJQlVURV9MSVNUIGF0dHJfbGlzdDsNCisgIEhQ Q09OX0lOVEVSTkFMICpocGNvbl9pbnRlcm5hbDsNCisNCisgIHN0YXR1cyA9IGNyZWF0ZV9oYW5k bGUgKCZoX2Nvbl9zZXJ2ZXIsIEwiXFxEZXZpY2VcXENvbkRydlxcU2VydmVyIiwNCisJCQkgIEdF TkVSSUNfQUxMLCBOVUxMLCBUUlVFLCAwKTsNCisgIGlmICghTlRfU1VDQ0VTUyAoc3RhdHVzKSkN CisgICAgZ290byBjbGVhbnVwOw0KKyAgc3RhdHVzID0gY3JlYXRlX2hhbmRsZSAoJmhfY29uX3Jl ZmVyZW5jZSwgTCJcXFJlZmVyZW5jZSIsDQorCQkJIEdFTkVSSUNfUkVBRCB8IEdFTkVSSUNfV1JJ VEUgfCBTWU5DSFJPTklaRSwNCisJCQkgaF9jb25fc2VydmVyLCBGQUxTRSwgRklMRV9TWU5DSFJP Tk9VU19JT19OT05BTEVSVCk7DQorICBpZiAoIU5UX1NVQ0NFU1MgKHN0YXR1cykpDQorICAgIGdv dG8gY2xlYW51cF9oX2Nvbl9zZXJ2ZXI7DQorDQorICByZXMgPSBDcmVhdGVQaXBlICgmaF9yZWFk X3BpcGUsICZoX3dyaXRlX3BpcGUsICZzZWNfbm9uZSwgMCk7DQorICBpZiAoIXJlcykNCisgICAg Z290byBjbGVhbnVwX2hfY29uX3JlZmVyZW5jZTsNCisgIHJlcyA9IFNldEhhbmRsZUluZm9ybWF0 aW9uIChoX3JlYWRfcGlwZSwNCisJCQkgICAgICBIQU5ETEVfRkxBR19JTkhFUklULCBIQU5ETEVf RkxBR19JTkhFUklUKTsNCisgIGlmICghcmVzKQ0KKyAgICBnb3RvIGNsZWFudXBfcGlwZTsNCisN CisgIGluaGVyaXRfY3Vyc29yID0gKGZsYWdzICYgUFNFVURPQ09OU09MRV9JTkhFUklUX0NVUlNP UikgPyBUUlVFIDogRkFMU0U7DQorDQorICBXQ0hBUiBjbWRbTUFYX1BBVEhdOw0KKyAgbGVuID0g Y29uaG9zdC5nZXRfd2lkZV93aW4zMl9wYXRoX2xlbiAoKTsNCisgIGNvbmhvc3QuZ2V0X3dpZGVf d2luMzJfcGF0aCAoY21kKTsNCisgIF9fc21hbGxfc3dwcmludGYgKGNtZCArIGxlbiwNCisJCSAg ICBMIiAtLWhlYWRsZXNzICVXIg0KKwkJICAgICItLXdpZHRoICVkIC0taGVpZ2h0ICVkIC0tc2ln bmFsIDB4JXggLS1zZXJ2ZXIgMHgleCIsDQorCQkgICAgaW5oZXJpdF9jdXJzb3IgPyBMIi0taW5o ZXJpdGN1cnNvciAiIDogTCIiLA0KKwkJICAgIHNpemUuWCwgc2l6ZS5ZLCBoX3JlYWRfcGlwZSwg aF9jb25fc2VydmVyKTsNCisNCisgIHNpLlN0YXJ0dXBJbmZvLmNiID0gc2l6ZW9mIChTVEFSVFVQ SU5GT0VYVyk7DQorICBzaS5TdGFydHVwSW5mby5oU3RkSW5wdXQgPSBoX2lucHV0Ow0KKyAgc2ku U3RhcnR1cEluZm8uaFN0ZE91dHB1dCA9IGhfb3V0cHV0Ow0KKyAgc2kuU3RhcnR1cEluZm8uaFN0 ZEVycm9yID0gaF9vdXRwdXQ7DQorICBzaS5TdGFydHVwSW5mby5kd0ZsYWdzIHw9IFNUQVJURl9V U0VTVERIQU5ETEVTOw0KKw0KKyAgaW5oZXJpdGVkX2hhbmRsZXNbMF0gPSBoX2Nvbl9zZXJ2ZXI7 DQorICBpbmhlcml0ZWRfaGFuZGxlc1sxXSA9IGhfaW5wdXQ7DQorICBpbmhlcml0ZWRfaGFuZGxl c1syXSA9IGhfb3V0cHV0Ow0KKyAgaW5oZXJpdGVkX2hhbmRsZXNbM10gPSBoX3JlYWRfcGlwZTsN CisNCisgIEluaXRpYWxpemVQcm9jVGhyZWFkQXR0cmlidXRlTGlzdCAoTlVMTCwgMSwgMCwgJmxp c3Rfc2l6ZSk7DQorICBhdHRyX2xpc3QgPQ0KKyAgICAoTFBQUk9DX1RIUkVBRF9BVFRSSUJVVEVf TElTVCkgSGVhcEFsbG9jIChHZXRQcm9jZXNzSGVhcCAoKSwgMCwgbGlzdF9zaXplKTsNCisgIGlm ICghYXR0cl9saXN0KQ0KKyAgICBnb3RvIGNsZWFudXBfcGlwZTsNCisNCisgIHNpLmxwQXR0cmli dXRlTGlzdCA9IGF0dHJfbGlzdDsNCisgIEluaXRpYWxpemVQcm9jVGhyZWFkQXR0cmlidXRlTGlz dCAoc2kubHBBdHRyaWJ1dGVMaXN0LCAxLCAwLCAmbGlzdF9zaXplKTsNCisgIFVwZGF0ZVByb2NU aHJlYWRBdHRyaWJ1dGUgKHNpLmxwQXR0cmlidXRlTGlzdCwgMCwNCisJCQkgICAgIFBST0NfVEhS RUFEX0FUVFJJQlVURV9IQU5ETEVfTElTVCwNCisJCQkgICAgIGluaGVyaXRlZF9oYW5kbGVzLCBz aXplb2YgKGluaGVyaXRlZF9oYW5kbGVzKSwNCisJCQkgICAgIE5VTEwsIE5VTEwpOw0KKw0KKw0K KyAgcmVzID0gQ3JlYXRlUHJvY2Vzc1cgKE5VTEwsIGNtZCwgTlVMTCwgTlVMTCwNCisJCQlUUlVF LCBFWFRFTkRFRF9TVEFSVFVQSU5GT19QUkVTRU5ULA0KKwkJCU5VTEwsIE5VTEwsICZzaS5TdGFy dHVwSW5mbywgJnBpKTsNCisgIGlmICghcmVzKQ0KKyAgICBnb3RvIGNsZWFudXBfaGVhcDsNCisN CisgIGhwY29uX2ludGVybmFsID0gKEhQQ09OX0lOVEVSTkFMICopDQorICAgIEhlYXBBbGxvYyAo R2V0UHJvY2Vzc0hlYXAgKCksIDAsIHNpemVvZiAoSFBDT05fSU5URVJOQUwpKTsNCisgIGlmICgh aHBjb25faW50ZXJuYWwpDQorICAgIGdvdG8gY2xlYW51cF9oZWFwOw0KKyAgaHBjb25faW50ZXJu YWwtPmhXcml0ZVBpcGUgPSBoX3dyaXRlX3BpcGU7DQorICBocGNvbl9pbnRlcm5hbC0+aENvbkRy dlJlZmVyZW5jZSA9IGhfY29uX3JlZmVyZW5jZTsNCisgIGhwY29uX2ludGVybmFsLT5oQ29uSG9z dFByb2Nlc3MgPSBwaS5oUHJvY2VzczsNCisgICpocGNvbiA9IChIUENPTikgaHBjb25faW50ZXJu YWw7DQorDQorICBIZWFwRnJlZSAoR2V0UHJvY2Vzc0hlYXAoKSwgMCwgYXR0cl9saXN0KTsNCisg IENsb3NlSGFuZGxlIChoX2Nvbl9zZXJ2ZXIpOw0KKyAgQ2xvc2VIYW5kbGUgKHBpLmhUaHJlYWQp Ow0KKyAgQ2xvc2VIYW5kbGUgKHBpLmhQcm9jZXNzKTsNCisNCisgIHJldHVybiBTX09LOw0KKw0K K2NsZWFudXBfaGVhcDoNCisgIEhlYXBGcmVlIChHZXRQcm9jZXNzSGVhcCgpLCAwLCBhdHRyX2xp c3QpOw0KK2NsZWFudXBfcGlwZToNCisgIENsb3NlSGFuZGxlIChoX3JlYWRfcGlwZSk7DQorICBD bG9zZUhhbmRsZSAoaF93cml0ZV9waXBlKTsNCitjbGVhbnVwX2hfY29uX3JlZmVyZW5jZToNCisg IENsb3NlSGFuZGxlIChoX2Nvbl9yZWZlcmVuY2UpOw0KK2NsZWFudXBfaF9jb25fc2VydmVyOg0K KyAgQ2xvc2VIYW5kbGUgKGhfY29uX3NlcnZlcik7DQorY2xlYW51cDoNCisgIHJldHVybiBFX0ZB SUw7DQorfQ0KKw0KKw0KIGV4dGVybiAiQyIgaW50IHNzY2FuZiAoY29uc3QgY2hhciAqLCBjb25z dCBjaGFyICosIC4uLik7DQogDQogI2RlZmluZSBjbG9zZV9tYXliZShoKSBcDQpAQCAtMjEzNiw2 ICsyMjY2LDggQEAgZmhhbmRsZXJfcHR5X21hc3Rlcjo6Y2xvc2UgKGludCBmbGFnKQ0KIHNzaXpl X3QNCiBmaGFuZGxlcl9wdHlfbWFzdGVyOjp3cml0ZSAoY29uc3Qgdm9pZCAqcHRyLCBzaXplX3Qg bGVuKQ0KIHsNCisgIHNpemVfdCB0b3dyaXRlID0gbGVuOw0KKw0KICAgc3NpemVfdCByZXQ7DQog ICBjaGFyICpwID0gKGNoYXIgKikgcHRyOw0KICAgdGVybWlvcyAmdGkgPSB0YyAoKS0+dGk7DQpA QCAtMjE1Miw3ICsyMjg0LDcgQEAgZmhhbmRsZXJfcHR5X21hc3Rlcjo6d3JpdGUgKGNvbnN0IHZv aWQgKnB0ciwgc2l6ZV90IGxlbikNCiAJIElmIHRoZSByZXBseSBmb3IgIkNTSTZuIiBpcyBkaXZp ZGVkIGludG8gbXVsdGlwbGUgd3JpdGVzLA0KIAkgcHNldWRvIGNvbnNvbGUgc29tZXRpbWVzIGRv ZXMgbm90IHJlY29nbml6ZSBpdC4gIFRoZXJlZm9yZSwNCiAJIHB1dCB0aGVtIHRvZ2V0aGVyIGlu dG8gd3BidWYgYW5kIHdyaXRlIGFsbCBhdCBvbmNlLiAqLw0KLSAgICAgIHN0YXRpYyBjb25zdCBp bnQgd3BidWZfbGVuID0gc3RybGVuICgiXDAzM1szMjc2ODszMjg2OFIiKTsNCisgICAgICBzdGF0 aWMgY29uc3QgaW50IHdwYnVmX2xlbiA9IDY0OyAvKiBmb3IgcmVzcG9uc2UgdG8gQ1NJNm4gbmFk IENTSWMgKi8NCiAgICAgICBzdGF0aWMgY2hhciB3cGJ1Zlt3cGJ1Zl9sZW5dOw0KICAgICAgIHN0 YXRpYyBpbnQgaXhwdXQgPSAwOw0KICAgICAgIHN0YXRpYyBpbnQgc3RhdGUgPSAwOw0KQEAgLTIx NzAsNiArMjMwMiw3IEBAIGZoYW5kbGVyX3B0eV9tYXN0ZXI6OndyaXRlIChjb25zdCB2b2lkICpw dHIsIHNpemVfdCBsZW4pDQogCSAgICB9DQogCSAgaWYgKHN0YXRlID09IDEpDQogCSAgICB7DQor CSAgICAgIHRvd3JpdGUtLTsNCiAJICAgICAgaWYgKGl4cHV0IDwgd3BidWZfbGVuKQ0KIAkJd3Bi dWZbaXhwdXQrK10gPSBwW2ldOw0KIAkgICAgICBlbHNlDQpAQCAtMjE4MSwyMSArMjMxNCwyNyBA QCBmaGFuZGxlcl9wdHlfbWFzdGVyOjp3cml0ZSAoY29uc3Qgdm9pZCAqcHRyLCBzaXplX3QgbGVu KQ0KIAkJfQ0KIAkgICAgfQ0KIAkgIGVsc2UNCi0JICAgIGxpbmVfZWRpdCAocCArIGksIDEsIHRp LCAmcmV0KTsNCi0JICBpZiAoc3RhdGUgPT0gMSAmJiBwW2ldID09ICdSJykNCisJICAgIHsNCisJ ICAgICAgaWYgKGl4cHV0KQ0KKwkJbGluZV9lZGl0ICh3cGJ1ZiwgaXhwdXQsIHRpLCAmcmV0KTsN CisJICAgICAgZ2V0X3R0eXAgKCktPnBjb25fc3RhcnQgPSBmYWxzZTsNCisJICAgICAgcHRyID0g cCArIGk7DQorCSAgICAgIGJyZWFrOw0KKwkgICAgfQ0KKwkgIGlmIChzdGF0ZSA9PSAxICYmIGlz YWxwaGEocFtpXSkpDQogCSAgICBzdGF0ZSA9IDI7DQotCX0NCi0gICAgICBpZiAoc3RhdGUgPT0g MikNCi0Jew0KLQkgIC8qIHJlcV94ZmVyX2lucHV0IGlzIHRydWUgaWYgIkVTQ1s2biIgd2FzIHNl bnQganVzdCBmb3INCi0JICAgICB0cmlnZ2VyaW5nIHRyYW5zZmVyX2lucHV0KCkgaW4gbWFzdGVy LiBJbiB0aGlzIGNhc2UsDQotCSAgICAgdGhlIHJlc3BvbmNlIHNlcXVlbmNlIHNob3VsZCBub3Qg YmUgd3JpdHRlbi4gKi8NCi0JICBpZiAoIWdldF90dHlwICgpLT5yZXFfeGZlcl9pbnB1dCkNCi0J ICAgIFdyaXRlRmlsZSAodG9fc2xhdmVfbmF0LCB3cGJ1ZiwgaXhwdXQsICZuLCBOVUxMKTsNCi0J ICBpeHB1dCA9IDA7DQotCSAgc3RhdGUgPSAwOw0KLQkgIGdldF90dHlwICgpLT5yZXFfeGZlcl9p bnB1dCA9IGZhbHNlOw0KLQkgIGdldF90dHlwICgpLT5wY29uX3N0YXJ0ID0gZmFsc2U7DQorCSAg aWYgKHN0YXRlID09IDIpDQorCSAgICB7DQorCSAgICAgIC8qIHJlcV94ZmVyX2lucHV0IGlzIHRy dWUgaWYgIkVTQ1s2biIgd2FzIHNlbnQganVzdCBmb3INCisJCSB0cmlnZ2VyaW5nIHRyYW5zZmVy X2lucHV0KCkgaW4gbWFzdGVyLiBJbiB0aGlzIGNhc2UsDQorCQkgdGhlIHJlc3BvbmNlIHNlcXVl bmNlIHNob3VsZCBub3QgYmUgd3JpdHRlbi4gKi8NCisJICAgICAgaWYgKCFnZXRfdHR5cCAoKS0+ cmVxX3hmZXJfaW5wdXQpDQorCQlXcml0ZUZpbGUgKHRvX3NsYXZlX25hdCwgd3BidWYsIGl4cHV0 LCAmbiwgTlVMTCk7DQorCSAgICAgIGlmIChwW2ldID09ICdSJykNCisJCWdldF90dHlwICgpLT5y ZXFfeGZlcl9pbnB1dCA9IGZhbHNlOw0KKwkgICAgICBpeHB1dCA9IDA7DQorCSAgICAgIHN0YXRl ID0gMDsNCisJICAgIH0NCiAJfQ0KICAgICAgIFJlbGVhc2VNdXRleCAoaW5wdXRfbXV0ZXgpOw0K IA0KQEAgLTIyMTksOCArMjM1OCw4IEBAIGZoYW5kbGVyX3B0eV9tYXN0ZXI6OndyaXRlIChjb25z dCB2b2lkICpwdHIsIHNpemVfdCBsZW4pDQogCSAgICB9DQogCSAgZ2V0X3R0eXAgKCktPnBjb25f c3RhcnRfcGlkID0gMDsNCiAJfQ0KLQ0KLSAgICAgIHJldHVybiBsZW47DQorICAgICAgaWYgKHRv d3JpdGUgPT0gMCkNCisJcmV0dXJuIGxlbjsNCiAgICAgfQ0KIA0KICAgLyogV3JpdGUgdGVybWlu YWwgaW5wdXQgdG8gdG9fc2xhdmVfbmF0IHBpcGUgaW5zdGVhZCBvZiBvdXRwdXRfaGFuZGxlDQpA QCAtMjIzMiwxNCArMjM3MSwxNCBAQCBmaGFuZGxlcl9wdHlfbWFzdGVyOjp3cml0ZSAoY29uc3Qg dm9pZCAqcHRyLCBzaXplX3QgbGVuKQ0KIAkgaXMgYWN0aXZhdGVkLiAqLw0KICAgICAgIHRtcF9w YXRoYnVmIHRwOw0KICAgICAgIGNoYXIgKmJ1ZiA9IChjaGFyICopIHB0cjsNCi0gICAgICBzaXpl X3QgbmxlbiA9IGxlbjsNCisgICAgICBzaXplX3QgbmxlbiA9IHRvd3JpdGU7DQogICAgICAgaWYg KGdldF90dHlwICgpLT50ZXJtX2NvZGVfcGFnZSAhPSBDUF9VVEY4KQ0KIAl7DQogCSAgc3RhdGlj IG1ic3RhdGVfdCBtYnA7DQogCSAgYnVmID0gdHAuY19nZXQgKCk7DQogCSAgbmxlbiA9IE5UX01B WF9QQVRIOw0KIAkgIGNvbnZlcnRfbWJfc3RyIChDUF9VVEY4LCBidWYsICZubGVuLA0KLQkJCSAg Z2V0X3R0eXAgKCktPnRlcm1fY29kZV9wYWdlLCAoY29uc3QgY2hhciAqKSBwdHIsIGxlbiwNCisJ CQkgIGdldF90dHlwICgpLT50ZXJtX2NvZGVfcGFnZSwgKGNvbnN0IGNoYXIgKikgcHRyLCBubGVu LA0KIAkJCSAgJm1icCk7DQogCX0NCiANCkBAIC0yMjU1LDggKzIzOTQsNTAgQEAgZmhhbmRsZXJf cHR5X21hc3Rlcjo6d3JpdGUgKGNvbnN0IHZvaWQgKnB0ciwgc2l6ZV90IGxlbikNCiAJICAgIH0N CiAJfQ0KIA0KKyAgICAgIGNoYXIgKmJzX3BvcyA9IChjaGFyICopIG1lbWNociAoYnVmLCAnXDAx MCcgLyogXkggKi8sIG5sZW4pOw0KKyAgICAgIEhBTkRMRSBwY29uX293bmVyID0gTlVMTDsNCisg ICAgICBIQU5ETEUgaF9wY29uX2luID0gTlVMTDsNCisgICAgICBEV09SRCByZXN1bWVfcGlkID0g MDsNCisgICAgICBpZiAoYnNfcG9zKQ0KKwl7DQorCSAgcGNvbl9vd25lciA9IE9wZW5Qcm9jZXNz IChQUk9DRVNTX0RVUF9IQU5ETEUsIEZBTFNFLA0KKwkJCQkgICAgZ2V0X3R0eXAgKCktPm5hdF9w aXBlX293bmVyX3BpZCk7DQorCSAgRHVwbGljYXRlSGFuZGxlIChwY29uX293bmVyLCBnZXRfdHR5 cCAoKS0+aF9wY29uX2luLA0KKwkJCSAgIEdldEN1cnJlbnRQcm9jZXNzICgpLCAmaF9wY29uX2lu LA0KKwkJCSAgIDAsIEZBTFNFLCBEVVBMSUNBVEVfU0FNRV9BQ0NFU1MpOw0KKwkgIHJlc3VtZV9w aWQgPQ0KKwkgICAgYXR0YWNoX2NvbnNvbGVfdGVtcG9yYXJpbHkgKGdldF90dHlwKCktPm5hdF9w aXBlX293bmVyX3BpZCk7DQorCX0NCisNCiAgICAgICBEV09SRCBuOw0KLSAgICAgIFdyaXRlRmls ZSAodG9fc2xhdmVfbmF0LCBidWYsIG5sZW4sICZuLCBOVUxMKTsNCisgICAgICB3aGlsZSAoYnNf cG9zKQ0KKwl7DQorCSAgaWYgKGJzX3BvcyAtIGJ1ZiA+IDApDQorCSAgICBXcml0ZUZpbGUgKHRv X3NsYXZlX25hdCwgYnVmLCBic19wb3MgLSBidWYsICZuLCBOVUxMKTsNCisJICBJTlBVVF9SRUNP UkQgcjsNCisJICByLkV2ZW50VHlwZSA9IEtFWV9FVkVOVDsNCisJICByLkV2ZW50LktleUV2ZW50 LmJLZXlEb3duID0gMTsNCisJICByLkV2ZW50LktleUV2ZW50LndSZXBlYXRDb3VudCA9IDA7DQor CSAgci5FdmVudC5LZXlFdmVudC53VmlydHVhbEtleUNvZGUgPSAwOw0KKwkgIHIuRXZlbnQuS2V5 RXZlbnQud1ZpcnR1YWxTY2FuQ29kZSA9IDA7DQorCSAgci5FdmVudC5LZXlFdmVudC51Q2hhci5B c2NpaUNoYXIgPSAnXDAxMCc7IC8qIF5IICovDQorCSAgci5FdmVudC5LZXlFdmVudC5kd0NvbnRy b2xLZXlTdGF0ZSA9IExFRlRfQ1RSTF9QUkVTU0VEOw0KKwkgIFdyaXRlQ29uc29sZUlucHV0KGhf cGNvbl9pbiwgJnIsIDEsICZuKTsNCisJICByLkV2ZW50LktleUV2ZW50LmJLZXlEb3duID0gMDsN CisJICBXcml0ZUNvbnNvbGVJbnB1dChoX3Bjb25faW4sICZyLCAxLCAmbik7DQorCSAgbmxlbiAt PSBic19wb3MgLSBidWYgKyAxOw0KKwkgIGJ1ZiA9IGJzX3BvcyArIDE7DQorCSAgYnNfcG9zID0g KGNoYXIgKikgbWVtY2hyIChidWYsICdcMDEwJyAvKiBeSCAqLywgbmxlbik7DQorCX0NCisgICAg ICBpZiAobmxlbiA+IDApDQorCVdyaXRlRmlsZSAodG9fc2xhdmVfbmF0LCBidWYsIG5sZW4sICZu LCBOVUxMKTsNCisNCisgICAgICBpZiAocmVzdW1lX3BpZCkNCisJcmVzdW1lX2Zyb21fdGVtcG9y YXJpbHlfYXR0YWNoIChyZXN1bWVfcGlkKTsNCisgICAgICBpZiAoaF9wY29uX2luKQ0KKwlDbG9z ZUhhbmRsZShoX3Bjb25faW4pOw0KKyAgICAgIGlmIChwY29uX293bmVyKQ0KKwlDbG9zZUhhbmRs ZShwY29uX293bmVyKTsNCiAgICAgICBSZWxlYXNlTXV0ZXggKGlucHV0X211dGV4KTsNCiANCiAg ICAgICByZXR1cm4gbGVuOw0KQEAgLTIzMDIsMTEgKzI0ODMsMzAgQEAgaW50DQogZmhhbmRsZXJf cHR5X21hc3Rlcjo6dGNnZXRhdHRyIChzdHJ1Y3QgdGVybWlvcyAqdCkNCiB7DQogICAqdCA9IGN5 Z3dpbl9zaGFyZWQtPnR0eVtnZXRfbWlub3IgKCldLT50aTsNCi0gIC8qIFdvcmthcm91bmQgZm9y IHJsd3JhcCB2MC40MCBvciBsYXRlciAqLw0KLSAgaWYgKGdldF90dHlwICgpLT5wY29uX3N0YXJ0 KQ0KLSAgICB0LT5jX2xmbGFnICY9IH4oSUNBTk9OIHwgRUNITyk7DQorDQogICBpZiAoZ2V0X3R0 eXAgKCktPnBjb25fYWN0aXZhdGVkKQ0KLSAgICB0LT5jX2lmbGFnICY9IH5JQ1JOTDsNCisgICAg ew0KKyAgICAgIHQtPmNfbGZsYWcgJj0gfihJQ0FOT04gfCBFQ0hPKTsNCisgICAgICB0LT5jX2lm bGFnICY9IH5JQ1JOTDsNCisNCisgICAgICBIQU5ETEUgcGNvbl9vd25lciA9IE9wZW5Qcm9jZXNz IChQUk9DRVNTX0RVUF9IQU5ETEUsIEZBTFNFLA0KKwkJCQkgICAgICAgZ2V0X3R0eXAgKCktPm5h dF9waXBlX293bmVyX3BpZCk7DQorICAgICAgSEFORExFIGhfcGNvbl9pbjsNCisgICAgICBEdXBs aWNhdGVIYW5kbGUgKHBjb25fb3duZXIsIGdldF90dHlwICgpLT5oX3Bjb25faW4sDQorCQkgICAg ICAgR2V0Q3VycmVudFByb2Nlc3MgKCksICZoX3Bjb25faW4sDQorCQkgICAgICAgMCwgRkFMU0Us IERVUExJQ0FURV9TQU1FX0FDQ0VTUyk7DQorICAgICAgRFdPUkQgcmVzdW1lX3BpZCA9DQorCWF0 dGFjaF9jb25zb2xlX3RlbXBvcmFyaWx5IChnZXRfdHR5cCgpLT5uYXRfcGlwZV9vd25lcl9waWQp Ow0KKyAgICAgIERXT1JEIG1vZGU7DQorICAgICAgR2V0Q29uc29sZU1vZGUgKGhfcGNvbl9pbiwg Jm1vZGUpOw0KKyAgICAgIHJlc3VtZV9mcm9tX3RlbXBvcmFyaWx5X2F0dGFjaCAocmVzdW1lX3Bp ZCk7DQorICAgICAgQ2xvc2VIYW5kbGUgKGhfcGNvbl9pbik7DQorICAgICAgQ2xvc2VIYW5kbGUg KHBjb25fb3duZXIpOw0KKyAgICAgIGlmIChtb2RlICYgRU5BQkxFX0xJTkVfSU5QVVQpDQorCXQt PmNfbGZsYWcgfD0gSUNBTk9OOw0KKyAgICAgIGlmIChtb2RlICYgRU5BQkxFX0VDSE9fSU5QVVQp DQorCXQtPmNfbGZsYWcgfD0gRUNITzsNCisgICAgfQ0KICAgcmV0dXJuIDA7DQogfQ0KIA0KQEAg LTI2ODAsNyArMjg4MCw3IEBAIGZoYW5kbGVyX3B0eV9tYXN0ZXI6OnB0eV9tYXN0ZXJfZndkX3Ro cmVhZCAoY29uc3QgbWFzdGVyX2Z3ZF90aHJlYWRfcGFyYW1fdCAqcCkNCiAJICBpbnQgc3RhdGUg PSAwOw0KIAkgIGludCBzdGFydF9hdCA9IDA7DQogCSAgZm9yIChEV09SRCBpPTA7IGk8cmxlbjsg aSsrKQ0KLQkgICAgaWYgKG91dGJ1ZltpXSA9PSAnXDAzMycpDQorCSAgICBpZiAoc3RhdGUgPT0g MCAmJiBvdXRidWZbaV0gPT0gJ1wwMzMnKQ0KIAkgICAgICB7DQogCQlzdGFydF9hdCA9IGk7DQog CQlzdGF0ZSA9IDE7DQpAQCAtMjY4OCwxMiArMjg4OCwxNCBAQCBmaGFuZGxlcl9wdHlfbWFzdGVy OjpwdHlfbWFzdGVyX2Z3ZF90aHJlYWQgKGNvbnN0IG1hc3Rlcl9md2RfdGhyZWFkX3BhcmFtX3Qg KnApDQogCSAgICAgIH0NCiAJICAgIGVsc2UgaWYgKChzdGF0ZSA9PSAxICYmIG91dGJ1ZltpXSA9 PSAnXScpIHx8DQogCQkgICAgIChzdGF0ZSA9PSAyICYmIG91dGJ1ZltpXSA9PSAnMCcpIHx8DQot CQkgICAgIChzdGF0ZSA9PSAzICYmIG91dGJ1ZltpXSA9PSAnOycpKQ0KKwkJICAgICAoc3RhdGUg PT0gMyAmJiBvdXRidWZbaV0gPT0gJzsnKSB8fA0KKwkJICAgICAoc3RhdGUgPT0gNCAmJiBvdXRi dWZbaV0gPT0gJ1wwMzMnKSkNCiAJICAgICAgew0KIAkJc3RhdGUgKys7DQogCQljb250aW51ZTsN CiAJICAgICAgfQ0KLQkgICAgZWxzZSBpZiAoc3RhdGUgPT0gNCAmJiBvdXRidWZbaV0gPT0gJ1xh JykNCisJICAgIGVsc2UgaWYgKChzdGF0ZSA9PSA0ICYmIG91dGJ1ZltpXSA9PSAnXGEnKQ0KKwkJ ICAgICB8fCAoc3RhdGUgPT0gNSAmJiBvdXRidWZbaV0gPT0gJ1xcJykpDQogCSAgICAgIHsNCiAJ CWNvbnN0IGNoYXIgKmhlbHBlcl9zdHIgPSAiXFxiaW5cXGN5Z3dpbi1jb25zb2xlLWhlbHBlci5l eGUiOw0KIAkJaWYgKG1lbW1lbSAoJm91dGJ1ZltzdGFydF9hdF0sIGkgKyAxIC0gc3RhcnRfYXQs DQpAQCAtMzI2OCw5ICszNDcwLDE0IEBAIGZoYW5kbGVyX3B0eV9zbGF2ZTo6c2V0dXBfcHNldWRv Y29uc29sZSAoKQ0KICAgICAgIGNvbnN0IERXT1JEIGluaGVyaXRfY3Vyc29yID0gMTsNCiAgICAg ICBocGNvbiA9IE5VTEw7DQogICAgICAgU2V0TGFzdEVycm9yIChFUlJPUl9TVUNDRVNTKTsNCi0g ICAgICBIUkVTVUxUIHJlcyA9IENyZWF0ZVBzZXVkb0NvbnNvbGUgKHNpemUsIGdldF9oYW5kbGVf bmF0ICgpLA0KLQkJCQkJIGdldF9vdXRwdXRfaGFuZGxlX25hdCAoKSwNCi0JCQkJCSBpbmhlcml0 X2N1cnNvciwgJmhwY29uKTsNCisgICAgICAvKiBUcnkgT3BlbkNvbnNvbGUuZXhlIGJlZm9yZSBj b25ob3N0LmV4ZSAqLw0KKyAgICAgIEhSRVNVTFQgcmVzID0gQ3JlYXRlUHNldWRvQ29uc29sZV9u ZXcgKHNpemUsIGdldF9oYW5kbGVfbmF0ICgpLA0KKwkJCQkJICAgICBnZXRfb3V0cHV0X2hhbmRs ZV9uYXQgKCksDQorCQkJCQkgICAgIGluaGVyaXRfY3Vyc29yLCAmaHBjb24pOw0KKyAgICAgIGlm IChyZXMgIT0gU19PSykgLyogRmFsbGJhY2sgdG8gbGVnYWN5IGNvbmhvc3QuZXhlICovDQorICAg ICAgICByZXMgPSBDcmVhdGVQc2V1ZG9Db25zb2xlIChzaXplLCBnZXRfaGFuZGxlX25hdCAoKSwN CisJCQkJICAgZ2V0X291dHB1dF9oYW5kbGVfbmF0ICgpLA0KKwkJCQkgICBpbmhlcml0X2N1cnNv ciwgJmhwY29uKTsNCiAgICAgICBpZiAocmVzICE9IFNfT0sgfHwgR2V0TGFzdEVycm9yICgpID09 IEVSUk9SX1BST0NfTk9UX0ZPVU5EKQ0KIAl7DQogCSAgaWYgKHJlcyAhPSBTX09LKQ0KQEAgLTM2 MjcsNiArMzgzNCwyMCBAQCBmaGFuZGxlcl9wdHlfc2xhdmU6OmNsb3NlX3BzZXVkb2NvbnNvbGUg KHR0eSAqdHR5cCwgRFdPUkQgZm9yY2Vfc3dpdGNoX3RvKQ0KIAkgIHR0eXAtPm5hdF9waXBlX293 bmVyX3BpZCA9IDA7DQogCSAgdHR5cC0+cGNvbl9zdGFydCA9IGZhbHNlOw0KIAkgIHR0eXAtPnBj b25fc3RhcnRfcGlkID0gMDsNCisJICBkbw0KKwkgICAgew0KKwkgICAgICBwaW5mbyBwICh0dHlw LT5tYXN0ZXJfcGlkKTsNCisJICAgICAgSEFORExFIHB0eV9tYXN0ZXIgPSBPcGVuUHJvY2VzcyAo UFJPQ0VTU19EVVBfSEFORExFLCBGQUxTRSwNCisJCQkJCSAgICAgICBwLT5kd1Byb2Nlc3NJZCk7 DQorCSAgICAgIEhBTkRMRSB0b19tYXN0ZXJfbmF0Ow0KKwkgICAgICBEdXBsaWNhdGVIYW5kbGUg KHB0eV9tYXN0ZXIsIHR0eXAtPnRvX21hc3Rlcl9uYXQgKCksDQorCQkJICAgICAgIEdldEN1cnJl bnRQcm9jZXNzICgpLCAmdG9fbWFzdGVyX25hdCwNCisJCQkgICAgICAgMCwgRkFMU0UsIERVUExJ Q0FURV9TQU1FX0FDQ0VTUyk7DQorCSAgICAgIFdyaXRlRmlsZSAodG9fbWFzdGVyX25hdCwgIlww MzNbPzEwMDRsIiwgOCwgTlVMTCwgTlVMTCk7DQorCSAgICAgIENsb3NlSGFuZGxlICh0b19tYXN0 ZXJfbmF0KTsNCisJICAgICAgQ2xvc2VIYW5kbGUgKHB0eV9tYXN0ZXIpOw0KKwkgICAgfQ0KKwkg IHdoaWxlIChmYWxzZSk7DQogCX0NCiAgICAgfQ0KICAgZWxzZQ0KLS0gDQoyLjUxLjANCg0K --Multipart=_Wed__3_Dec_2025_17_56_38_+0900_AQ0kd8lVd0GlvVBY Content-Type: text/plain; name="libopenconsole.postinstall" Content-Disposition: attachment; filename="libopenconsole.postinstall" Content-Transfer-Encoding: base64 aWYgWyAkKHVuYW1lIC1tKSA9ICJ4ODZfNjQiIF0NCnRoZW4NCglQT1NURklYPSJ4NjQiDQplbHNl DQoJUE9TVEZJWD0ieDg2Ig0KZmkNClZFUlNJT049JChjYXQgL2V0Yy9saWJvcGVuY29uc29sZS92 ZXJzaW9uLnR4dCkNCmNkIC90bXANCndnZXQgLXEgaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29m dC90ZXJtaW5hbC9yZWxlYXNlcy9kb3dubG9hZC92JHtWRVJTSU9OfS9NaWNyb3NvZnQuV2luZG93 c1Rlcm1pbmFsXyR7VkVSU0lPTn1fJHtQT1NURklYfS56aXAgLU8gLSA+IE1pY3Jvc29mdC5XaW5k b3dzVGVybWluYWxfJHtWRVJTSU9OfV8ke1BPU1RGSVh9LnRtcA0KaWYgc2hhMjU2c3VtIC0tc3Rh dHVzIC1jIC9ldGMvbGlib3BlbmNvbnNvbGUvTWljcm9zb2Z0LldpbmRvd3NUZXJtaW5hbF8ke1ZF UlNJT059XyR7UE9TVEZJWH0uemlwLnNoYTI1Ng0KdGhlbg0KCW12IE1pY3Jvc29mdC5XaW5kb3dz VGVybWluYWxfJHtWRVJTSU9OfV8ke1BPU1RGSVh9LnRtcCBNaWNyb3NvZnQuV2luZG93c1Rlcm1p bmFsXyR7VkVSU0lPTn1fJHtQT1NURklYfS56aXANCgl1bnppcCAtanEgTWljcm9zb2Z0LldpbmRv d3NUZXJtaW5hbF8ke1ZFUlNJT059XyR7UE9TVEZJWH0uemlwICcqL09wZW5Db25zb2xlLmV4ZScN CgltdiBPcGVuQ29uc29sZS5leGUgL3Vzci9iaW4vLg0KZWxzZQ0KCSMgSGFzaCBtaXNtYXRjaCAo b3IgZmFpbGVkIHRvIGRvd25sb2FkKQ0KCXJtIE1pY3Jvc29mdC5XaW5kb3dzVGVybWluYWxfJHtW RVJTSU9OfV8ke1BPU1RGSVh9LnRtcA0KCWV4aXQgMQ0KZmkNCmNobW9kIGEreCAvdXNyL2Jpbi9P cGVuQ29uc29sZS5leGUNCg== --Multipart=_Wed__3_Dec_2025_17_56_38_+0900_AQ0kd8lVd0GlvVBY Content-Type: text/plain; name="libopenconsole.preremove" Content-Disposition: attachment; filename="libopenconsole.preremove" Content-Transfer-Encoding: base64 cm0gLWYgL3Vzci9iaW4vT3BlbkNvbnNvbGUuZXhlDQo= --Multipart=_Wed__3_Dec_2025_17_56_38_+0900_AQ0kd8lVd0GlvVBY Content-Type: text/plain; name="openconsole.cygport" Content-Disposition: attachment; filename="openconsole.cygport" Content-Transfer-Encoding: base64 TkFNRT0ib3BlbmNvbnNvbGUiDQpWRVJTSU9OPTEuMjMuMTI4MTEuMA0KUkVMRUFTRT0xDQpDQVRF R09SWT0iTGlicyINClNVTU1BUlk9ImNvbmhvc3QuZXhlIGFsdGVybmF0aXZlIg0KREVTQ1JJUFRJ T049ImNvbmhvc3QuZXhlIGFsdGVybmF0aXZlIGZvciBuZXcgZmVhdHVyZXMgb2YgcHVzZWRvIGNv bnNvbGUiDQpIT01FUEFHRT0iaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC90ZXJtaW5hbC8i DQpMSUNFTlNFPSJNSVQiDQpBUkNIPSJub2FyY2giICMgVGhpcyBpcyBub2FyY2ggYmVjYXVzZSBp dCdzIGp1c3QgaGVscGVyIHNoZWxsIHNjcnBpdHMuDQpTUkNfVVJJPSIke05BTUV9LSR7VkVSU0lP Tn0udGFyLnh6Ig0KQ1lHV0lOX0ZJTEVTPSINCglsaWIke05BTUV9LnBvc3RpbnN0YWxsDQoJbGli JHtOQU1FfS5wcmVyZW1vdmUNCiINCg0KIyBNYWtlIGR1bW15IHNvdXJjZSBmaWxlIGZvciBwcmVw DQppZiBbICEgLWYgJHtTUkNfVVJJfSBdDQp0aGVuDQoJbWtkaXIgLXAgJHtOQU1FfS0ke1ZFUlNJ T059DQoJdGFyIGFjZiAke1NSQ19VUkl9ICR7TkFNRX0tJHtWRVJTSU9OfQ0KCXJtIC1yZiAke05B TUV9LSR7VkVSU0lPTn0NCmZpDQoNClBLR19OQU1FUz0ibGlib3BlbmNvbnNvbGUiDQpsaWJvcGVu Y29uc29sZV9DT05URU5UUz0iZXRjLyINCmxpYm9wZW5jb25zb2xlX1JFUVVJUkVTPSJ3Z2V0IHVu emlwIg0KDQpzcmNfY29tcGlsZSgpIHsNCgk6DQp9DQoNCnNyY19pbnN0YWxsKCkgew0KCW1rZGly IC1wICR7RH0vZXRjL2xpYiR7TkFNRX0NCgkjIE1ha2Ugc2hhMjU2IGhhc2gNCgl3Z2V0IC1xIGh0 dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQvdGVybWluYWwvcmVsZWFzZXMvZG93bmxvYWQvdiR7 VkVSU0lPTn0vTWljcm9zb2Z0LldpbmRvd3NUZXJtaW5hbF8ke1ZFUlNJT059X3g2NC56aXAgLU8g LSB8IHNoYTI1NnN1bSB8IHNlZCAicy8tJC9NaWNyb3NvZnQuV2luZG93c1Rlcm1pbmFsXyR7VkVS U0lPTn1feDY0LnRtcC8iID4gJHtEfS9ldGMvbGliJHtOQU1FfS9NaWNyb3NvZnQuV2luZG93c1Rl cm1pbmFsXyR7VkVSU0lPTn1feDY0LnppcC5zaGEyNTYNCgl3Z2V0IC1xIGh0dHBzOi8vZ2l0aHVi LmNvbS9taWNyb3NvZnQvdGVybWluYWwvcmVsZWFzZXMvZG93bmxvYWQvdiR7VkVSU0lPTn0vTWlj cm9zb2Z0LldpbmRvd3NUZXJtaW5hbF8ke1ZFUlNJT059X3g4Ni56aXAgLU8gLSB8IHNoYTI1NnN1 bSB8IHNlZCAicy8tJC9NaWNyb3NvZnQuV2luZG93c1Rlcm1pbmFsXyR7VkVSU0lPTn1feDg2LnRt cC8iID4gJHtEfS9ldGMvbGliJHtOQU1FfS9NaWNyb3NvZnQuV2luZG93c1Rlcm1pbmFsXyR7VkVS U0lPTn1feDg2LnppcC5zaGEyNTYNCgkjIE1ha2UgdmVyc2lvbiB0ZXh0DQoJZWNobyAke1ZFUlNJ T059ID4gJHtEfS9ldGMvbGliJHtOQU1FfS92ZXJzaW9uLnR4dA0KfQ0K --Multipart=_Wed__3_Dec_2025_17_56_38_+0900_AQ0kd8lVd0GlvVBY Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline -- Problem reports: https://cygwin.com/problems.html FAQ: https://cygwin.com/faq/ Documentation: https://cygwin.com/docs.html Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple --Multipart=_Wed__3_Dec_2025_17_56_38_+0900_AQ0kd8lVd0GlvVBY--