From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Gregory Heytings Newsgroups: gmane.emacs.bugs Subject: bug#51377: Automatically exit server when it has no remaining clients Date: Tue, 26 Oct 2021 15:07:37 +0000 Message-ID: <664bd93fdd447eedfc55@heytings.org> References: <90ba36dccc00d6f0d62d@heytings.org> <63203d9f-dae7-a39f-c70f-ebf37632e642@gmail.com> <90ba36dcccc2abc8dec1@heytings.org> <7f3dde25-f81b-d7db-efc5-f8d471fd06bc@gmail.com> <90ba36dcccdc40168c93@heytings.org> <90ba36dcccde742a3c60@heytings.org> <2fb21ea4-0b95-a76b-8c5f-f8a6c7c1fc9b@gmail.com> <90ba36dccc0584692d36@heytings.org> <35f9b78b-c698-d92b-d6bb-fc6392944b7b@gmail.com> <664bd93fdd10b4061070@heytings.org> <664bd93fdd4886b48d45@heytings.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="jhltDiKFKz" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="38761"; mail-complaints-to="usenet@ciao.gmane.io" Cc: 51377@debbugs.gnu.org To: Jim Porter Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Tue Oct 26 17:08:59 2021 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 1mfO4R-0009ly-Dv for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 26 Oct 2021 17:08:59 +0200 Original-Received: from localhost ([::1]:40380 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mfO4P-0006H1-FR for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 26 Oct 2021 11:08:57 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:43144) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mfO3W-00050S-Qj for bug-gnu-emacs@gnu.org; Tue, 26 Oct 2021 11:08:02 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:35785) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mfO3W-00039T-HQ for bug-gnu-emacs@gnu.org; Tue, 26 Oct 2021 11:08:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1mfO3W-0002R0-5T for bug-gnu-emacs@gnu.org; Tue, 26 Oct 2021 11:08:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Gregory Heytings Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 26 Oct 2021 15:08:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 51377 X-GNU-PR-Package: emacs Original-Received: via spool by 51377-submit@debbugs.gnu.org id=B51377.16352608659327 (code B ref 51377); Tue, 26 Oct 2021 15:08:02 +0000 Original-Received: (at 51377) by debbugs.gnu.org; 26 Oct 2021 15:07:45 +0000 Original-Received: from localhost ([127.0.0.1]:47331 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mfO3E-0002QN-OH for submit@debbugs.gnu.org; Tue, 26 Oct 2021 11:07:45 -0400 Original-Received: from heytings.org ([95.142.160.155]:36294) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mfO39-0002Q9-Oo for 51377@debbugs.gnu.org; Tue, 26 Oct 2021 11:07:43 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=heytings.org; s=20210101; t=1635260858; bh=1Gr8n1RsFWCdBYIivm2qjOSAYh8g0Ukci5JZE6GVqBk=; h=Date:From:To:cc:Subject:In-Reply-To:Message-ID:References:From; b=VPTSFGe/pHrwUy0nuD3zPfdEZtEs2+K9o4bTxPE8jgGYNuluYJ6dIMGi2FxJEuUcv HbxJvHCLCl7PsgRtZ7AuTa9Xwng6SBNfuS8FAwWGpiIvcTJ01uYsP24suYFg52/ULc 5zosgngwDdJSQ9dZ/gDxk3074FHMmSqT74DV412S+ulvyu+EozhvimFcXTBghKU68X 5J4gVhTV+9mgFyNtOumxKSL/0JvqyDAqX9tdh2SVjD9bTlNzAFWfhRQ8obXGt3hmQX q3ZLLI80QcTSuw1Io5O6nEBmegpf/+OIu4NADQRhJNfZ9pOWJu/Xo4G/K292tj9HbF 0akOIffAJ8UuA== In-Reply-To: <664bd93fdd4886b48d45@heytings.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" Xref: news.gmane.io gmane.emacs.bugs:218386 Archived-At: --jhltDiKFKz Content-Type: text/plain; charset=us-ascii; format=flowed And here is a slightly improved version of the patch, with a NEWS entry. --jhltDiKFKz Content-Type: text/x-diff; name=Options-to-automatically-stop-the-Emacs-server.patch Content-Transfer-Encoding: base64 Content-ID: <664bd93fdd3029c29c9a@heytings.org> Content-Description: Content-Disposition: attachment; filename=Options-to-automatically-stop-the-Emacs-server.patch RnJvbSBlNGRiMDU5MzNlMWY4MDFmYzRlZDQwMTVmZDM5MmUzMmFjODAxZmNk IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQ0KRnJvbTogR3JlZ29yeSBIZXl0 aW5ncyA8Z3JlZ29yeUBoZXl0aW5ncy5vcmc+DQpEYXRlOiBUdWUsIDI2IE9j dCAyMDIxIDE0OjU5OjM3ICswMDAwDQpTdWJqZWN0OiBbUEFUQ0hdIE9wdGlv bnMgdG8gYXV0b21hdGljYWxseSBzdG9wIHRoZSBFbWFjcyBzZXJ2ZXIuDQoN CiogbGlzcC9zZXJ2ZXIuZWwgKHNlcnZlci1zdG9wLWF1dG9tYXRpY2FsbHkp OiBOZXcgZnVuY3Rpb24uDQooc2VydmVyLXN0b3AtYXV0b21hdGljYWxseSk6 IE5ldyBhdXhpbGlhcnkgdmFyaWFibGUuDQooc2VydmVyLXN0b3AtYXV0b21h dGljYWxseS0tbWF5YmUta2lsbC1lbWFjcywNCnNlcnZlci1zdG9wLWF1dG9t YXRpY2FsbHktLWhhbmRsZS1kZWxldGUtZnJhbWUpOiBOZXcgYXV4aWxpYXJ5 DQpmdW5jdGlvbnMuDQooc2VydmVyLXNhdmUtYnVmZmVycy1raWxsLXRlcm1p bmFsKTogQ2FsbCB0aGUgbmV3IGF1eGlsaWFyeQ0KZnVuY3Rpb24gd2hlbiBu ZWNlc3NhcnkuDQoNCiogZG9jL2VtYWNzL21pc2MudGV4aSAoRW1hY3MgU2Vy dmVyKTogRG9jdW1lbnQgdGhlIG5ldyBmdW5jdGlvbi4NCkFsc28gbWVudGlv biB0aGF0IGFuIEVtYWNzIHNlcnZlciBjYW4gYmUgc3RhcnRlZCB3aXRoIGVt YWNzY2xpZW50Lg0KDQoqIGV0Yy9ORVdTOiBEZXNjcmliZSB0aGUgbmV3IGZ1 bmN0aW9uLg0KLS0tDQogZG9jL2VtYWNzL21pc2MudGV4aSB8ICAzMSArKysr KysrKysrKysNCiBldGMvTkVXUyAgICAgICAgICAgIHwgICA5ICsrKysNCiBs aXNwL3NlcnZlci5lbCAgICAgIHwgMTE5ICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKy0tLS0tLS0tDQogMyBmaWxlcyBjaGFuZ2VkLCAx MzggaW5zZXJ0aW9ucygrKSwgMjEgZGVsZXRpb25zKC0pDQoNCmRpZmYgLS1n aXQgYS9kb2MvZW1hY3MvbWlzYy50ZXhpIGIvZG9jL2VtYWNzL21pc2MudGV4 aQ0KaW5kZXggNTEyM2E3MTZkYy4uZjk0ZTQ4ZjU3YiAxMDA2NDQNCi0tLSBh L2RvYy9lbWFjcy9taXNjLnRleGkNCisrKyBiL2RvYy9lbWFjcy9taXNjLnRl eGkNCkBAIC0xNjk3LDYgKzE2OTcsMTEgQEAgRW1hY3MgU2VydmVyDQogY2Fs bHMgQGNvZGV7c2VydmVyLXN0YXJ0fSBhZnRlciBpbml0aWFsaXphdGlvbiBh bmQgZG9lcyBub3Qgb3BlbiBhbg0KIGluaXRpYWwgZnJhbWUuICBJdCB0aGVu IHdhaXRzIGZvciBlZGl0IHJlcXVlc3RzIGZyb20gY2xpZW50cy4NCiANCitA aXRlbQ0KK1J1biB0aGUgY29tbWFuZCBAY29kZXtlbWFjc2NsaWVudH0gd2l0 aCB0aGUgQHNhbXB7LS1hbHRlcm5hdGUtZWRpdG9yPSIifQ0KK2NvbW1hbmQt bGluZSBvcHRpb24uICBUaGlzIHN0YXJ0cyBhbiBFbWFjcyBkYWVtb24gb25s eSBpZiBubyBFbWFjcyBkYWVtb24NCitpcyBhbHJlYWR5IHJ1bm5pbmcuDQor DQogQGNpbmRleCBzeXN0ZW1kIHVuaXQgZmlsZQ0KIEBpdGVtDQogSWYgeW91 ciBvcGVyYXRpbmcgc3lzdGVtIHVzZXMgQGNvbW1hbmR7c3lzdGVtZH0gdG8g bWFuYWdlIHN0YXJ0dXAsDQpAQCAtMTc2Myw2ICsxNzY4LDMyIEBAIEVtYWNz IFNlcnZlcg0KICAgZW1hY3MgLS1kYWVtb249Zm9vDQogQGVuZCBleGFtcGxl DQogDQorQGZpbmRleCBzZXJ2ZXItc3RvcC1hdXRvbWF0aWNhbGx5DQorICBU aGUgRW1hY3Mgc2VydmVyIGNhbiBvcHRpb25hbGx5IGJlIHN0b3BwZWQgYXV0 b21hdGljYWxseSB3aGVuDQorY2VydGFpbiBjb25kaXRpb25zIGFyZSBtZXQu ICBUbyBkbyB0aGlzLCBjYWxsIHRoZSBmdW5jdGlvbg0KK0Bjb2Rle3NlcnZl ci1zdG9wLWF1dG9tYXRpY2FsbHl9IGluIHlvdXIgaW5pdCBmaWxlIChAcHhy ZWZ7SW5pdA0KK0ZpbGV9KSwgd2l0aCBvbmUgb2YgdGhlIGZvbGxvd2luZyBh cmd1bWVudHM6DQorDQorQGl0ZW1pemUNCitAaXRlbQ0KK1dpdGggdGhlIGFy Z3VtZW50IEBjb2RleydlbXB0eX0sIHRoZSBzZXJ2ZXIgaXMgc3RvcHBlZCB3 aGVuIGl0IGhhcyBubw0KK2NsaWVudHMsIG5vIHVuc2F2ZWQgZmlsZS12aXNp dGluZyBidWZmZXJzIGFuZCBubyBydW5uaW5nIHByb2Nlc3Nlcw0KK2FueW1v cmUuDQorDQorQGl0ZW0NCitXaXRoIHRoZSBhcmd1bWVudCBAY29kZXsnZGVs ZXRlLWZyYW1lfSwgd2hlbiB0aGUgbGFzdCBjbGllbnQgZnJhbWUgaXMNCiti ZWluZyBjbG9zZWQsIHlvdSBhcmUgYXNrZWQgd2hldGhlciBlYWNoIHVuc2F2 ZWQgZmlsZS12aXNpdGluZyBidWZmZXINCittdXN0IGJlIHNhdmVkIGFuZCBl YWNoIHVuZmluaXNoZWQgcHJvY2VzcyBjYW4gYmUgc3RvcHBlZCwgYW5kIGlm IHNvLA0KK3RoZSBzZXJ2ZXIgaXMgc3RvcHBlZC4NCisNCitAaXRlbQ0KK1dp dGggdGhlIGFyZ3VtZW50IEBjb2RleydraWxsLXRlcm1pbmFsfSwgd2hlbiB0 aGUgbGFzdCBjbGllbnQgZnJhbWUgaXMNCitiZWluZyBjbG9zZWQgd2l0aCBA a2Jke0MteCBDLWN9IChAY29kZXtzYXZlLWJ1ZmZlcnMta2lsbC10ZXJtaW5h bH0pLA0KK3lvdSBhcmUgYXNrZWQgd2hldGhlciBlYWNoIHVuc2F2ZWQgZmls ZS12aXNpdGluZyBidWZmZXIgbXVzdCBiZSBzYXZlZA0KK2FuZCBlYWNoIHVu ZmluaXNoZWQgcHJvY2VzcyBjYW4gYmUgc3RvcHBlZCwgYW5kIGlmIHNvLCB0 aGUgc2VydmVyIGlzDQorc3RvcHBlZC4NCitAZW5kIGl0ZW1pemUNCisNCiBA ZmluZGV4IHNlcnZlci1ldmFsLWF0DQogICBJZiB5b3UgaGF2ZSBkZWZpbmVk IGEgc2VydmVyIGJ5IGEgdW5pcXVlIHNlcnZlciBuYW1lLCBpdCBpcyBwb3Nz aWJsZQ0KIHRvIGNvbm5lY3QgdG8gdGhlIHNlcnZlciBmcm9tIGFub3RoZXIg RW1hY3MgaW5zdGFuY2UgYW5kIGV2YWx1YXRlIExpc3ANCmRpZmYgLS1naXQg YS9ldGMvTkVXUyBiL2V0Yy9ORVdTDQppbmRleCA2ZDMyNTY5NTllLi4wM2Fh ODEwNDJkIDEwMDY0NA0KLS0tIGEvZXRjL05FV1MNCisrKyBiL2V0Yy9ORVdT DQpAQCAtNzMsNiArNzMsMTUgQEAgSW1hZ2Ugc3BlY2lmaWVycyBjYW4gbm93 IHVzZSAnOnR5cGUgd2VicCcuDQogKioqICdkaXNwbGF5LWJ1ZmZlcicgbm93 IGNhbiBzZXQgdXAgdGhlIGJvZHkgc2l6ZSBvZiB0aGUgY2hvc2VuIHdpbmRv dy4NCiBGb3IgZXhhbXBsZSwgYW4gYWxpc3QgZW50cnkgYXMgJyh3aW5kb3ct d2lkdGggLiAoYm9keS1jb2x1bW5zIC4gNDApKScNCiB3aWxsIG1ha2UgdGhl IGJvZHkgb2YgdGhlIGNob3NlbiB3aW5kb3cgNDAgY29sdW1ucyB3aWRlLg0K Kw0KKyoqIEVtYWNzIHNlcnZlciBhbmQgY2xpZW50IGNoYW5nZXMNCisNCisr KysNCisqKiogJ3NlcnZlci1zdG9wLWF1dG9tYXRpY2FsbHknIGNhbiBiZSB1 c2VkIHRvIGF1dG9tYXRpY2FsbHkgc3RvcCB0aGUgc2VydmVyLg0KK1RoZSBF bWFjcyBzZXJ2ZXIgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IHN0b3BwZWQgd2hl biBjZXJ0YWluIGNvbmRpdGlvbnMNCithcmUgbWV0LiAgVGhlIGNvbmRpdGlv bnMgYXJlIGdpdmVuIGJ5IHRoZSBhcmd1bWVudCwgd2hpY2ggY2FuIGJlDQor J2VtcHR5LCAnZGVsZXRlLWZyYW1lIG9yICdraWxsLXRlcm1pbmFsLg0KKw0K IAwNCiAqIEVkaXRpbmcgQ2hhbmdlcyBpbiBFbWFjcyAyOS4xDQogDQpkaWZm IC0tZ2l0IGEvbGlzcC9zZXJ2ZXIuZWwgYi9saXNwL3NlcnZlci5lbA0KaW5k ZXggNTMwNmE1NDc3Ni4uMGM1M2M1ODQ2NSAxMDA2NDQNCi0tLSBhL2xpc3Av c2VydmVyLmVsDQorKysgYi9saXNwL3NlcnZlci5lbA0KQEAgLTE3MTYsNiAr MTcxNiw5IEBAIHNlcnZlci1zd2l0Y2gtYnVmZmVyDQogICAgICh3aGVuIHNl cnZlci1yYWlzZS1mcmFtZQ0KICAgICAgIChzZWxlY3QtZnJhbWUtc2V0LWlu cHV0LWZvY3VzICh3aW5kb3ctZnJhbWUpKSkpKQ0KIA0KKyhkZWZ2YXIgc2Vy dmVyLXN0b3AtYXV0b21hdGljYWxseSBuaWwNCisgICJJbnRlcm5hbCBzdGF0 dXMgdmFyaWFibGUgZm9yIGBzZXJ2ZXItc3RvcC1hdXRvbWF0aWNhbGx5Jy4i KQ0KKw0KIDs7OyMjI2F1dG9sb2FkDQogKGRlZnVuIHNlcnZlci1zYXZlLWJ1 ZmZlcnMta2lsbC10ZXJtaW5hbCAoYXJnKQ0KICAgOzsgQ2FsbGVkIGZyb20g c2F2ZS1idWZmZXJzLWtpbGwtdGVybWluYWwgaW4gZmlsZXMuZWwuDQpAQCAt MTcyNCwyNyArMTcyNywxMDEgQEAgc2VydmVyLXNhdmUtYnVmZmVycy1raWxs LXRlcm1pbmFsDQogDQogSWYgZW1hY3NjbGllbnQgd2FzIHN0YXJ0ZWQgd2l0 aCBhIGxpc3Qgb2YgZmlsZW5hbWVzIHRvIGVkaXQsIHRoZW4NCiBvbmx5IHRo ZXNlIGZpbGVzIHdpbGwgYmUgYXNrZWQgdG8gYmUgc2F2ZWQuIg0KLSAgKGxl dCAoKHByb2MgKGZyYW1lLXBhcmFtZXRlciBuaWwgJ2NsaWVudCkpKQ0KLSAg ICAoY29uZCAoKGVxIHByb2MgJ25vd2FpdCkNCi0JICAgOzsgTm93YWl0IGZy YW1lcyBoYXZlIG5vIGNsaWVudCBidWZmZXIgbGlzdC4NCi0JICAgKGlmIChj ZHIgKGZyYW1lLWxpc3QpKQ0KLQkgICAgICAgKHByb2duIChzYXZlLXNvbWUt YnVmZmVycyBhcmcpDQotCQkgICAgICAoZGVsZXRlLWZyYW1lKSkNCi0JICAg ICA7OyBJZiB3ZSdyZSB0aGUgbGFzdCBmcmFtZSBzdGFuZGluZywga2lsbCBF bWFjcy4NCi0JICAgICAoc2F2ZS1idWZmZXJzLWtpbGwtZW1hY3MgYXJnKSkp DQotCSAgKChwcm9jZXNzcCBwcm9jKQ0KLQkgICAobGV0ICgoYnVmZmVycyAo cHJvY2Vzcy1nZXQgcHJvYyAnYnVmZmVycykpKQ0KLQkgICAgIChzYXZlLXNv bWUtYnVmZmVycw0KLQkgICAgICBhcmcgKGlmIGJ1ZmZlcnMNCi0gICAgICAg ICAgICAgICAgICAgICAgOzsgT25seSBmaWxlcyBmcm9tIGVtYWNzY2xpZW50 IGZpbGUgbGlzdC4NCi0JCSAgICAgIChsYW1iZGEgKCkgKG1lbXEgKGN1cnJl bnQtYnVmZmVyKSBidWZmZXJzKSkNCi0gICAgICAgICAgICAgICAgICAgIDs7 IE5vIGVtYWNzY2xpZW50IGZpbGUgbGlzdDogZG9uJ3Qgb3ZlcnJpZGUNCi0g ICAgICAgICAgICAgICAgICAgIDs7IGBzYXZlLXNvbWUtYnVmZmVycy1kZWZh dWx0LXByZWRpY2F0ZScgKHVubGVzcw0KLSAgICAgICAgICAgICAgICAgICAg OzsgQVJHIGlzIG5vbi1uaWwpLCBzaW5jZSB3ZSdyZSBub3Qga2lsbGluZw0K LSAgICAgICAgICAgICAgICAgICAgOzsgRW1hY3MgKHVubGlrZSBgc2F2ZS1i dWZmZXJzLWtpbGwtZW1hY3MnKS4NCi0JCSAgICAoYW5kIGFyZyB0KSkpDQot CSAgICAgKHNlcnZlci1kZWxldGUtY2xpZW50IHByb2MpKSkNCi0JICAodCAo ZXJyb3IgIkludmFsaWQgY2xpZW50IGZyYW1lIikpKSkpDQorICAoaWYgc2Vy dmVyLXN0b3AtYXV0b21hdGljYWxseQ0KKyAgICAgIChzZXJ2ZXItc3RvcC1h dXRvbWF0aWNhbGx5LS1oYW5kbGUtZGVsZXRlLWZyYW1lIChzZWxlY3RlZC1m cmFtZSkpDQorICAgIChsZXQgKChwcm9jIChmcmFtZS1wYXJhbWV0ZXIgbmls ICdjbGllbnQpKSkNCisgICAgICAoY29uZCAoKGVxIHByb2MgJ25vd2FpdCkN CisJICAgICA7OyBOb3dhaXQgZnJhbWVzIGhhdmUgbm8gY2xpZW50IGJ1ZmZl ciBsaXN0Lg0KKwkgICAgIChpZiAoY2RyIChmcmFtZS1saXN0KSkNCisJICAg ICAgICAgKHByb2duIChzYXZlLXNvbWUtYnVmZmVycyBhcmcpDQorCQkgICAg ICAgIChkZWxldGUtZnJhbWUpKQ0KKwkgICAgICAgOzsgSWYgd2UncmUgdGhl IGxhc3QgZnJhbWUgc3RhbmRpbmcsIGtpbGwgRW1hY3MuDQorCSAgICAgICAo c2F2ZS1idWZmZXJzLWtpbGwtZW1hY3MgYXJnKSkpDQorCSAgICAoKHByb2Nl c3NwIHByb2MpDQorCSAgICAgKGxldCAoKGJ1ZmZlcnMgKHByb2Nlc3MtZ2V0 IHByb2MgJ2J1ZmZlcnMpKSkNCisJICAgICAgIChzYXZlLXNvbWUtYnVmZmVy cw0KKwkgICAgICAgIGFyZyAoaWYgYnVmZmVycw0KKyAgICAgICAgICAgICAg ICAgICAgICAgIDs7IE9ubHkgZmlsZXMgZnJvbSBlbWFjc2NsaWVudCBmaWxl IGxpc3QuDQorCQkgICAgICAgIChsYW1iZGEgKCkgKG1lbXEgKGN1cnJlbnQt YnVmZmVyKSBidWZmZXJzKSkNCisgICAgICAgICAgICAgICAgICAgICAgOzsg Tm8gZW1hY3NjbGllbnQgZmlsZSBsaXN0OiBkb24ndCBvdmVycmlkZQ0KKyAg ICAgICAgICAgICAgICAgICAgICA7OyBgc2F2ZS1zb21lLWJ1ZmZlcnMtZGVm YXVsdC1wcmVkaWNhdGUnICh1bmxlc3MNCisgICAgICAgICAgICAgICAgICAg ICAgOzsgQVJHIGlzIG5vbi1uaWwpLCBzaW5jZSB3ZSdyZSBub3Qga2lsbGlu Zw0KKyAgICAgICAgICAgICAgICAgICAgICA7OyBFbWFjcyAodW5saWtlIGBz YXZlLWJ1ZmZlcnMta2lsbC1lbWFjcycpLg0KKwkJICAgICAgKGFuZCBhcmcg dCkpKQ0KKwkgICAgICAgKHNlcnZlci1kZWxldGUtY2xpZW50IHByb2MpKSkN CisJICAgICh0IChlcnJvciAiSW52YWxpZCBjbGllbnQgZnJhbWUiKSkpKSkp DQorDQorKGRlZnVuIHNlcnZlci1zdG9wLWF1dG9tYXRpY2FsbHktLWhhbmRs ZS1kZWxldGUtZnJhbWUgKGZyYW1lKQ0KKyAgIkhhbmRsZSBkZWxldGlvbiBv ZiBGUkFNRSB3aGVuIGBzZXJ2ZXItc3RvcC1hdXRvbWF0aWNhbGx5JyBpcyB1 c2VkLiINCisgICh3aGVuIHNlcnZlci1zdG9wLWF1dG9tYXRpY2FsbHkNCisg ICAgKGlmIChpZiAoYW5kIChwcm9jZXNzcCAoZnJhbWUtcGFyYW1ldGVyIGZy YW1lICdjbGllbnQpKQ0KKwkJIChlcSB0aGlzLWNvbW1hbmQgJ3NhdmUtYnVm ZmVycy1raWxsLXRlcm1pbmFsKSkNCisJICAgIChwcm9nbg0KKwkgICAgICAo ZG9saXN0IChmIChmcmFtZS1saXN0KSkNCisJCSh3aGVuIChhbmQgKGVxIChm cmFtZS1wYXJhbWV0ZXIgZnJhbWUgJ2NsaWVudCkNCisJCQkgICAgICAgKGZy YW1lLXBhcmFtZXRlciBmICdjbGllbnQpKQ0KKwkJCSAgIChub3QgKGVxIGZy YW1lIGYpKSkNCisJCSAgKHNldC1mcmFtZS1wYXJhbWV0ZXIgZiAnY2xpZW50 IG5pbCkNCisJCSAgKGxldCAoKHNlcnZlci1zdG9wLWF1dG9tYXRpY2FsbHkg bmlsKSkNCisJCSAgICAoZGVsZXRlLWZyYW1lIGYpKSkpDQorCSAgICAgIChp ZiAoY2RkciAoZnJhbWUtbGlzdCkpDQorCQkgIChsZXQgKChzZXJ2ZXItc3Rv cC1hdXRvbWF0aWNhbGx5IG5pbCkpDQorCQkgICAgKGRlbGV0ZS1mcmFtZSBm cmFtZSkNCisJCSAgICBuaWwpDQorCQl0KSkNCisJICAobnVsbCAoY2RkciAo ZnJhbWUtbGlzdCkpKSkNCisJKGxldCAoKHNlcnZlci1zdG9wLWF1dG9tYXRp Y2FsbHkgbmlsKSkNCisJICAoc2F2ZS1idWZmZXJzLWtpbGwtZW1hY3MpDQor CSAgKGRlbGV0ZS1mcmFtZSBmcmFtZSkpKSkpDQorDQorKGRlZnVuIHNlcnZl ci1zdG9wLWF1dG9tYXRpY2FsbHktLW1heWJlLWtpbGwtZW1hY3MgKCkNCisg ICJIYW5kbGUgY2xvc2luZyBvZiBFbWFjcyBkYWVtb24gd2hlbiBgc2VydmVy LXN0b3AtYXV0b21hdGljYWxseScgaXMgdXNlZC4iDQorICAodW5sZXNzIChj ZHIgKGZyYW1lLWxpc3QpKQ0KKyAgICAod2hlbiAoYW5kDQorCSAgIChub3Qg KG1lbXEgdCAobWFwY2FyIChsYW1iZGEgKGIpDQorCQkJCSAgKGFuZCAoYnVm ZmVyLWZpbGUtbmFtZSBiKQ0KKwkJCQkgICAgICAgKGJ1ZmZlci1tb2RpZmll ZC1wIGIpKSkNCisJCQkJKGJ1ZmZlci1saXN0KSkpKQ0KKwkgICAobm90ICht ZW1xIHQgKG1hcGNhciAobGFtYmRhIChwKQ0KKwkJCQkgIChhbmQgKG1lbXEg KHByb2Nlc3Mtc3RhdHVzIHApDQorCQkJCQkgICAgICcocnVuIHN0b3Agb3Bl biBsaXN0ZW4pKQ0KKwkJCQkgICAgICAgKHByb2Nlc3MtcXVlcnktb24tZXhp dC1mbGFnIHApKSkNCisJCQkJKHByb2Nlc3MtbGlzdCkpKSkpDQorICAgICAg KGtpbGwtZW1hY3MpKSkpDQorDQorOzs7IyMjYXV0b2xvYWQNCisoZGVmdW4g c2VydmVyLXN0b3AtYXV0b21hdGljYWxseSAoYXJnKQ0KKyAgIkF1dG9tYXRp Y2FsbHkgc3RvcCBzZXJ2ZXIgd2hlbiBwb3NzaWJsZS4NCisNCitXaGVuIEFS RyBpcyAnZW1wdHksIHRoZSBzZXJ2ZXIgaXMgc3RvcHBlZCB3aGVuIGl0IGhh cyBubyByZW1haW5pbmcNCitjbGllbnRzLCBubyByZW1haW5pbmcgdW5zYXZl ZCBmaWxlLXZpc2l0aW5nIGJ1ZmZlcnMsIGFuZCBubw0KK3J1bm5pbmcgcHJv Y2Vzc2VzIHdpdGggYSBxdWVyeS1vbi1leGl0IGZsYWcuDQorDQorV2hlbiBB UkcgaXMgJ2RlbGV0ZS1mcmFtZSwgdGhlIHVzZXIgaXMgYXNrZWQgd2hlbiB0 aGUgbGFzdCBmcmFtZSBpcw0KK2JlaW5nIGNsb3NlZCB3aGV0aGVyIGVhY2gg dW5zYXZlZCBmaWxlLXZpc2l0aW5nIGJ1ZmZlciBtdXN0IGJlDQorc2F2ZWQg YW5kIGVhY2ggcnVubmluZyBwcm9jZXNzIHdpdGggYSBxdWVyeS1vbi1leGl0 IGZsYWcgY2FuIGJlDQorc3RvcHBlZCwgYW5kIGlmIHNvLCB0aGUgc2VydmVy IGl0c2VsZiBpcyBzdG9wcGVkLg0KKw0KK1doZW4gQVJHIGlzICdraWxsLXRl cm1pbmFsLCB0aGUgdXNlciBpcyBhc2tlZCB3aGVuIHRoZSBsYXN0IGZyYW1l DQoraXMgYmVpbmcgY2xvc2Ugd2l0aCBcXFtzYXZlLWJ1ZmZlcnMta2lsbC10 ZXJtaW5hbF0gXA0KK3doZXRoZXIgZWFjaCB1bnNhdmVkIGZpbGUtdmlzaXRp bmcNCitidWZmZXIgbXVzdCBiZSBzYXZlZCBhbmQgZWFjaCBydW5uaW5nIHBy b2Nlc3Mgd2l0aCBhIHF1ZXJ5LW9uLWV4aXQNCitmbGFnIGNhbiBiZSBzdG9w cGVkLCBhbmQgaWYgc28sIHRoZSBzZXJ2ZXIgaXRzZWxmIGlzIHN0b3BwZWQu DQorDQorVGhpcyBmdW5jdGlvbiBpcyBtZWFudCB0byBiZSBwdXQgaW4gaW5p dCBmaWxlcy4iDQorICAod2hlbiAoZGFlbW9ucCkNCisgICAgKHNldHEgc2Vy dmVyLXN0b3AtYXV0b21hdGljYWxseSBhcmcpDQorICAgIChjb25kDQorICAg ICAoKGVxIGFyZyAnZW1wdHkpDQorICAgICAgKHNldHEgc2VydmVyLXN0b3At YXV0b21hdGljYWxseSBuaWwpDQorICAgICAgKHJ1bi13aXRoLXRpbWVyIDEw IDINCisJCSAgICAgICMnc2VydmVyLXN0b3AtYXV0b21hdGljYWxseS0tbWF5 YmUta2lsbC1lbWFjcykpDQorICAgICAoKGVxIGFyZyAnZGVsZXRlLWZyYW1l KQ0KKyAgICAgIChhZGQtaG9vayAnZGVsZXRlLWZyYW1lLWZ1bmN0aW9ucw0K KwkJIydzZXJ2ZXItc3RvcC1hdXRvbWF0aWNhbGx5LS1oYW5kbGUtZGVsZXRl LWZyYW1lKSkNCisgICAgICgoZXEgYXJnICdraWxsLXRlcm1pbmFsKSkNCisg ICAgICh0DQorICAgICAgKGVycm9yICJVbmV4cGVjdGVkIGFyZ3VtZW50Iikp KSkpDQogDQogKGRlZmluZS1rZXkgY3RsLXgtbWFwICIjIiAnc2VydmVyLWVk aXQpDQogDQotLSANCjIuMzMuMA0KDQo= --jhltDiKFKz--