From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Dani Moncayo Newsgroups: gmane.emacs.devel Subject: Re: Building Emacs from a new MinGW environment Date: Sat, 9 Nov 2013 15:47:28 +0100 Message-ID: References: <83sixwfdjk.fsf@gnu.org> <834n9nhhp6.fsf@gnu.org> <83ppsbfoe7.fsf@gnu.org> <83mwnffkom.fsf@gnu.org> <83k3ijfhk0.fsf@gnu.org> <83hadnf7gs.fsf@gnu.org> <83hadmqvql.fsf@gnu.org> <83txhkpszv.fsf@gnu.org> <83pps8pnc9.fsf@gnu.org> <83ob7splia.fsf@gnu.org> <83k3ifq5o5.fsf@gnu.org> <83d2o7q28r.fsf@gnu.org> <8338p3pded.fsf@gnu.org> <83r4cmo9m2.fsf@gnu.org> <83bo3pmc8b.fsf@gnu.org> <8361txm9r1.fsf@gnu.org> <834n9hm87s.fsf@gnu.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=001a1135e5a4f22a0604eabf939e X-Trace: ger.gmane.org 1384008454 32538 80.91.229.3 (9 Nov 2013 14:47:34 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sat, 9 Nov 2013 14:47:34 +0000 (UTC) Cc: Emacs development discussions To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sat Nov 09 15:47:41 2013 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1Vf9p6-0008PJ-CG for ged-emacs-devel@m.gmane.org; Sat, 09 Nov 2013 15:47:40 +0100 Original-Received: from localhost ([::1]:57406 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Vf9p5-00028b-Sb for ged-emacs-devel@m.gmane.org; Sat, 09 Nov 2013 09:47:39 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:44299) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Vf9p1-000252-Bv for emacs-devel@gnu.org; Sat, 09 Nov 2013 09:47:37 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Vf9oz-00008O-Jd for emacs-devel@gnu.org; Sat, 09 Nov 2013 09:47:35 -0500 Original-Received: from mail-la0-x235.google.com ([2a00:1450:4010:c03::235]:53990) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Vf9ov-00007s-U6; Sat, 09 Nov 2013 09:47:30 -0500 Original-Received: by mail-la0-f53.google.com with SMTP id eh20so2740823lab.40 for ; Sat, 09 Nov 2013 06:47:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=+vuScXJstEm0GY8C+rzFN2x4FBBoLtFyqWjVfpSiHkc=; b=YjBC9rrmHsj5mO7aMgAIVU9Csk6wLIW4dH58WhXF/b20nY8JdVROTAAmXqOhC9w5hf CE044NDuvaDfZRpbTmdF5sGO0o1+JQGAMI0wDLhoEohERCMnSOxcMIGrgYFhwAAjOunO xFgyTho46uPdmRwkeWqe9QgazaaonsbbVAU5s5TmEwdlKXBGNx7XWodMXOherYl3RoY8 uo5rCT1IMg+EREcRLHgvDTjMt0GNC/lqC4Zy5nnY0Np37WqZhsXYG4eRzc2uqcwX9Tkd 40F5e8S04jOZZPKCW+VgPHHNL7S4jJaHi/o9GpB9mqZopGwZvBmVr3Xl6JTZYGki1Kep KdyA== X-Received: by 10.152.171.72 with SMTP id as8mr518885lac.33.1384008448610; Sat, 09 Nov 2013 06:47:28 -0800 (PST) Original-Received: by 10.114.176.231 with HTTP; Sat, 9 Nov 2013 06:47:28 -0800 (PST) In-Reply-To: <834n9hm87s.fsf@gnu.org> X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2a00:1450:4010:c03::235 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:165099 Archived-At: --001a1135e5a4f22a0604eabf939e Content-Type: text/plain; charset=ISO-8859-1 >> > In a nutshell, srcdir is now guaranteed to be in /d/foo/bar format, >> > and should be edited into d:/foo/bar when it is placed in >> > src/epaths.h. The job is to remove anything from top-level >> > Makefile.in that is required for file names in format other than >> > /d/foo/bar, and still allow using %emacs_dir% in >> > '--enable-locallisppath=PATH' option to configure. So I think >> > msys_to_w32 should stay intact, but msys_lisppath_to_w32 could be >> > simplified. >> >> A more ambitious goal, IMO, would be to understand what is the problem >> with doing every conversion of MSYS paths to native w32 format with >> "pwd -W", so that the pattern-matching technique could be entirely >> replaced with that simpler and more elegant one. > > That's a possibility, but note that "pwd -W" requires that you cd into > the directory first, which might be a problem in some rare cases. > > Also msys_lisppath_to_w32 works on PATH-style directory lists, not on > single directories, and some of those directories might not exist, or > include %emacs_dir%, which will cause pwd to fail. > > If these difficulties can be overcome, I have nothing against using > "pwd -W". I'm attaching a patch that works for me, and I think fulfills the above requirements. It makes _all_ translations of paths to native MS-Windows format using the "pwd -W" feature of the MSYS shell, which I think is the only reliable way of doing such translations. -- Dani Moncayo --001a1135e5a4f22a0604eabf939e Content-Type: text/plain; charset=US-ASCII; name="msys-to-w32.diff" Content-Disposition: attachment; filename="msys-to-w32.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hnsyrv2s0 ZGlmZiAtLWdpdCBhL01ha2VmaWxlLmluIGIvTWFrZWZpbGUuaW4KaW5kZXggOTg0ZGNlYS4uZWQz YWE4YiAxMDA2NDQKLS0tIGEvTWFrZWZpbGUuaW4KKysrIGIvTWFrZWZpbGUuaW4KQEAgLTMxNywy MiArMzE3LDkgQEAgZXBhdGhzLWZvcmNlOiBGUkMKIAkgIC1lICdzO1woIy4qUEFUSF9ET0NcKS4q JCQ7XDEgIiR7ZXRjZG9jZGlyfSI7JykgJiYJCVwKIAkke3NyY2Rpcn0vYnVpbGQtYXV4L21vdmUt aWYtY2hhbmdlIGVwYXRocy5oLiQkJCQgc3JjL2VwYXRocy5oCiAKLSMgQ29udmVydCBNU1lTLXN0 eWxlIC94L2ZvbyBvciBXaW5kb3dzLXN0eWxlIHg6XGZvbyBmaWxlIG5hbWVzCi0jIGludG8geDov Zm9vIHRoYXQgV2luZG93cyBjYW4gZ3Jvay4KLW1zeXNfdG9fdzMyPXNlZCAtZSAncyxcXFxcLC8s ZycgLWUgJ3MsXi9cKFtBLVphLXpdXCkvLFwxOi8sJwotCi0jIFRyYW5zZm9ybSBkaXJlY3Rvcnkg c2VhcmNoIHBhdGggYW5kIGl0cyBjb21wb25lbnRzLiAgT3JpZ2luYWwgY2FuCi0jIGJlIE1TWVMg b3IgV2luZG93cyBzdHlsZS4gIFNldCBwYXRoIHNlcGFyYXRvciB0byAiOyIsIGRpcmVjdG9yeQot IyBzZXBhcmF0b3IgdG8gIi8iIGFuZCB0cmFuc2Zvcm0gTVNZUy1zdHlsZSAiL2MvIiB0byAiYzov Ii4KLSMgUmVtb3ZlIGVtcHR5IHBhdGggY29tcG9uZW50cyBhbmQgZXNjYXBlIHNlbWljb2xvbnMu Ci1tc3lzX2xpc3BwYXRoX3RvX3czMj1zZWQgLWUgJ3MsXFxcXCwvLGcnIAkJCVwKLQktZSAncyxc KF5cfFs6O11cKVwoW0EtWmEtel1cKTovLFwxL1wyLyxnJwkJXAotCS1lICdzLzovOy9nJyAtZSAn cyxcKF5cfDtcKS9cKFtBLVphLXpdXCkvLFwxXDI6LyxnJwlcCi0JLWUgJ3MvO1wrLzsvZycgLWUg J3MvXjsvLycgLWUgJ3MvOyQkLy8nIC1lICdzLzsvXFxcXDsvZycKLQotIyBSZXBsYWNlICIke3By ZWZpeH0iIHdpdGggJyVlbWFjc19kaXIlJyAod2hpY2ggZXhwYW5kcyB0byBpbnN0YWxsCisjIFJl cGxhY2UgIiR7dzMycHJlZml4fSIgd2l0aCAnJWVtYWNzX2RpciUnICh3aGljaCBleHBhbmRzIHRv IGluc3RhbGwKICMgZGlyZWN0b3J5IGF0IHJ1bnRpbWUpLgotbXN5c19wcmVmaXhfc3Vic3Q9c2Vk IC1lICdzIVwoXlx8O1wpJyIkJHtwcmVmaXhwYXR0ZXJufSInXChbOy9dXHwkJFwpIVwxJWVtYWNz X2RpciVcMiFnJworbXN5c193MzJwcmVmaXhfc3Vic3Q9c2VkIC1lICdzIVwoXlx8O1wpJyIkJHt3 MzJwcmVmaXhwYXR0ZXJufSInXChbOy9dXHwkJFwpIVwxJWVtYWNzX2RpciVcMiFnJwogCiAjIFF1 b3RlIFNlZCBzcGVjaWFsIGNoYXJhY3RlcnMgKGV4Y2VwdCBiYWNrc2xhc2ggYW5kIG5ld2xpbmUp IHdpdGgKICMgYSBkb3VibGUgYmFja3NsYXNoLgpAQCAtMzQwLDIyICszMjcsMjEgQEAgbXN5c19z ZWRfc2hfZXNjYXBlPXNlZCAtZSAncy9bXTskJCouXltdL1xcXFwmL2cnCiAKICMgVGhlIHczMiBi dWlsZCBuZWVkcyBhIHNsaWdodGx5IGRpZmZlcmVudCBlZGl0aW5nLCBhbmQgaXQgdXNlcwogIyBu dC9lcGF0aHMubnQgYXMgdGhlIHRlbXBsYXRlLgorIwogIyBVc2UgdGhlIHZhbHVlIG9mICR7bG9j YWxsaXNwcGF0aH0gc3VwcGxpZWQgYnkgYGNvbmZpZ3VyZScsCiAjIHRvIHN1cHBvcnQgdGhlIC0t ZW5hYmxlLWxvY2FsbGlzcHBhdGggYXJndW1lbnQuCiAjCi0jIFdoZW4gYnVpbGRpbmcgd2l0aCBN aW5HVyBpbnNpZGUgdGhlIE1TWVMgdHJlZSwgJ3B3ZCcgcHJvZHVjZXMgZGlyZWN0b3JpZXMKLSMg cmVsYXRpdmUgdG8gdGhlIHJvb3Qgb2YgdGhlIE1TWVMgdHJlZSwgZS5nLiAnL2hvbWUvdXNlci9m b28nIGluc3RlYWQgb2YKLSMgJy9kL01TWVMvaG9tZS91c2VyL2ZvbycuICBJZiBzdWNoIGEgdmFs dWUgb2Ygc3JjZGlyIGlzIHdyaXR0ZW4gdG8KLSMgc3JjL2VwYXRocy5oLCB0aGF0IGNhdXNlcyB0 ZW1hY3MgdG8gZmFpbCwgYmVjYXVzZSwgYmVpbmcgYSBNaW5HVwotIyBwcm9ncmFtIHRoYXQga25v d3Mgbm90aGluZyBvZiBNU1lTIHJvb3Qgc3Vic3RpdHV0aW9uLCBpdCBjYW5ub3QgZmluZAotIyB0 aGUgZGF0YSBkaXJlY3RvcnkuICAicHdkIC1XIiBwcm9kdWNlcyBXaW5kb3dzLXN0eWxlICdkOi9m b28vYmFyJwotIyBhYnNvbHV0ZSBkaXJlY3RvcnkgbmFtZXMsIHNvIHdlIHVzZSBpdCBoZXJlIHRv IGNvdW50ZXJtYW5kIHRoYXQgbG9zc2FnZS4KKyMgSW4gdGhpcyBjYXNlLCB0aGUgcGF0aHMgd3Jp dHRlbiB0byAnc3JjL2VwYXRocy5oJyBtdXN0IGJlIGluIG5hdGl2ZQorIyBNUy1XaW5kb3dzIGZv cm1hdCAoZS5nLiAnYzovZm9vL2JhcicpLCBiZWNhdXNlIHRlbWFjcyBpcyBhIE1pbkdXCisjIHBy b2dyYW0gdGhhdCBkb2Vzbid0IHN1cHBvcnQgTVNZUy1zdHlsZSBwYXRocyAoZS5nLiAnL2MvZm9v L2Jhcicgb3IKKyMgJy9mb28vYmFyJykuCiBlcGF0aHMtZm9yY2UtdzMyOiBGUkMKLQlAKHczMnNy Y2Rpcj1gY2QgIiR7c3JjZGlyfSI7IHB3ZCAtVyB8IHNlZCAtZSAncyxeXChbQS1aYS16XVwpOiwv XDEsJyB8ICR7bXN5c190b193MzJ9YCA7IAlcCi0JICBwcmVmaXhwYXR0ZXJuPWBlY2hvICcke3By ZWZpeH0nIHwgJHttc3lzX3RvX3czMn0gfCAke21zeXNfc2VkX3NoX2VzY2FwZX1gIDsgXAotCSAg bG9jYWxsaXNwcGF0aD1gZWNobyAnJHtsb2NhbGxpc3BwYXRofScgfCAke21zeXNfbGlzcHBhdGhf dG9fdzMyfSB8ICR7bXN5c19wcmVmaXhfc3Vic3R9YCA7IFwKKwlAKHczMnNyY2Rpcj1gJHtzcmNk aXJ9L2J1aWxkLWF1eC9tc3lzLXRvLXczMiAiJHtzcmNkaXJ9ImA7IFwKKwkgIHczMnByZWZpeD1g JHtzcmNkaXJ9L2J1aWxkLWF1eC9tc3lzLXRvLXczMiAiJHtwcmVmaXh9IiBOYDsgXAorCSAgdzMy cHJlZml4cGF0dGVybj1gZWNobyAiJHt3MzJwcmVmaXh9IiB8ICR7bXN5c19zZWRfc2hfZXNjYXBl fWAgOyBcCisJICB3MzJsb2NhbGxpc3BwYXRoPWAke3NyY2Rpcn0vYnVpbGQtYXV4L21zeXMtdG8t dzMyICIke2xvY2FsbGlzcHBhdGh9IiBOICI6IiAiXFw7IiB8ICR7bXN5c193MzJwcmVmaXhfc3Vi c3R9YCA7IFwKIAkgIHNlZCA8ICR7c3JjZGlyfS9udC9lcGF0aHMubnQgPiBlcGF0aHMuaC4kJCQk CQlcCi0JICAtZSAncztcKCMuKlBBVEhfU0lURUxPQURTRUFSQ0hcKS4qJCQ7XDEgIiciJCR7bG9j YWxsaXNwcGF0aH0iJyI7JyBcCisJICAtZSAncztcKCMuKlBBVEhfU0lURUxPQURTRUFSQ0hcKS4q JCQ7XDEgIiciJCR7dzMybG9jYWxsaXNwcGF0aH0iJyI7JyBcCiAJICAtZSAnL14uKiMvcy9AVkVS QC8ke3ZlcnNpb259L2cnIAkJCVwKIAkgIC1lICcvXi4qIy9zL0BDRkdALyR7Y29uZmlndXJhdGlv bn0vZycgCQlcCiAJICAtZSAiL14uKiMvc3xAU1JDQHwkJHt3MzJzcmNkaXJ9fGciKSAmJgkJXApk aWZmIC0tZ2l0IGEvYnVpbGQtYXV4L21zeXMtdG8tdzMyIGIvYnVpbGQtYXV4L21zeXMtdG8tdzMy Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY4YWUyZDQKLS0tIC9kZXYvbnVs bAorKysgYi9idWlsZC1hdXgvbXN5cy10by13MzIKQEAgLTAsMCArMSwxODggQEAKKyMhL2Jpbi9z aAorIyBUYWtlIGEgbGlzdCBvZiBNU1lTLWNvbXBhdGlibGUgcGF0aHMgYW5kIGNvbnZlcnQgdGhl bSB0byBuYXRpdmUKKyMgTVMtV2luZG93cyBmb3JtYXQuCisjIFN0YXR1cyBpcyB6ZXJvIGlmIHN1 Y2Nlc3NmdWwsIG5vbnplcm8gb3RoZXJ3aXNlLgorCitWRVJTSU9OPScyMDEzLTExLTA5IDEwOjQ4 JzsgIyBVVEMKKyMgVGhlIGRlZmluaXRpb24gYWJvdmUgbXVzdCBsaWUgd2l0aGluIHRoZSBmaXJz dCA4IGxpbmVzIGluIG9yZGVyCisjIGZvciB0aGUgRW1hY3MgdGltZS1zdGFtcCB3cml0ZSBob29r IChhdCBlbmQpIHRvIHVwZGF0ZSBpdC4KKyMgSWYgeW91IGNoYW5nZSB0aGlzIGZpbGUgd2l0aCBF bWFjcywgcGxlYXNlIGxldCB0aGUgd3JpdGUgaG9vaworIyBkbyBpdHMgam9iLiAgT3RoZXJ3aXNl LCB1cGRhdGUgdGhpcyBzdHJpbmcgbWFudWFsbHkuCisKKyMgQ29weXJpZ2h0IChDKSAyMDAyLTIw MTMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisKKyMgVGhpcyBwcm9ncmFtIGlzIGZy ZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyMgaXQg dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJs aXNoZWQgYnkKKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24g MyBvZiB0aGUgTGljZW5zZSwgb3IKKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv bi4KKworIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3 aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv cHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisjIGFsb25nIHdpdGggdGhpcyBw cm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorCit1 c2FnZT0idXNhZ2U6ICQwIFBBVEhMSVNUIFtNVVNURVhJU1RdIFtTRVBBUkFUT1IgW1NFUEFSQVRP UjJdXSIKKworaGVscD0iJHVzYWdlCisgIG9yOiAgJDAgT1BUSU9OCisKK0NvbnZlcnQgTVNZUy1j b21wYXRpYmxlIHBhdGhzIHRvIE1TLVdpbmRvd3MgbmF0aXZlIGZvcm1hdC4KKworUEFUSExJU1Qg c2hvdWxkIGJlIGEgbGlzdCBvZiBwYXRocyBzZXBhcmF0ZWQgYnkgU0VQQVJBVE9SLiAgVGhpcyBs aXN0Cit3aWxsIGJlIHdyaXR0ZW4gdG8gdGhlIHN0YW5kYXJkIG91dHB1dCBhZnRlciBwZXJmb3Jt aW5nIHRoZSBmb2xsb3dpbmcKK3RyYW5zZm9ybWF0aW9uczoKKzEuIEVtcHR5IHBhdGhzIHdpbGwg YmUgZGlzY2FyZGVkLgorMi4gQmFja3NsYXNoZXMgd2lsbCBiZSByZXBsYWNlZCBieSBmb3J3YXJk IHNsYXNoZWQuCiszLiBUd28gY29uc2VjdXRpdmUgc2xhc2hlcyB3aWxsIGJlIHJlcGxhY2VkIGJ5 IGEgc2luZ2xlIG9uZS4KKzQuIEVhY2ggcGF0aCB3aWxsIGJlIHRyYW5zbGF0ZWQgdG8gV2luZG93 cy1uYXRpdmUgZm9ybWF0LCB1c2luZworICAgZm9yd2FyZCBzbGFzaGVzIChlLmcuICdjOi9mb28v YmFyJykuICBUaGlzIHRyYW5zbGF0ZWQgcGF0aCB3aWxsCisgICBuZXZlciBlbmQgd2l0aCBhIHNs YXNoLgorNS4gT2N1cnJlbmNlcyBvZiBTRVBBUkFUT1IyIHdpdGhpbmcgdGhlIHBhdGhzIHdpbGwg YmUgZXNjYXBlZCB3aXRoCisgICBiYWNrc2xhc2hlcy4KKzYuIERpZmZlcmVudCBwYXRocyB3aWxs IGJlIHNlcGFyYXRlZCB3aXRoIFNFUEFSQVRPUjIuCisKK0lmIE1VU1RFWElTVCBpcyAnWScgKG9y IG5vdCBzdXBwbGllZCksIHRoZW4gZWFjaCBwYXRoIGluIFBBVEhMSVNUIG11c3QKK2V4aXN0cy4K KworSWYgU0VQQVJBVE9SIGlzIG5vdCBzdXBwbGllZCwgUEFUSExJU1Qgd2lsbCBiZSByZWdhcmRl ZCBhcyBhIHNpbmdsZQorcGF0aC4KKworSWYgU0VQQVJBVE9SMiBpcyBub3Qgc3VwcGxpZWQsIGl0 IHdpbGwgdGFrZSB0aGUgc2FtZSB2YWx1ZSBhcworU0VQQVJBVE9SLgorCitPcHRpb25zOgorICAt LWhlbHAgICAgIGRpc3BsYXkgdGhpcyBoZWxwIGFuZCBleGl0CisgIC0tdmVyc2lvbiAgb3V0cHV0 IHZlcnNpb24gaW5mb3JtYXRpb24gYW5kIGV4aXQKKworUmVwb3J0IGJ1Z3MgdG8gPGJ1Zy1nbnUt ZW1hY3NAZ251Lm9yZz4uIgorCit2ZXJzaW9uPWBleHByICIkVkVSU0lPTiIgOiAnXChbXiBdKlwp J2AKK3ZlcnNpb249Im1zeXMtdG8tdzMyICR2ZXJzaW9uCitDb3B5cmlnaHQgKEMpIDIwMTEgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCitMaWNlbnNlIEdQTHYzKzogR05VIEdQTCB2ZXJz aW9uIDMgb3IgbGF0ZXIgPGh0dHA6Ly9nbnUub3JnL2xpY2Vuc2VzL2dwbC5odG1sPgorVGhpcyBp cyBmcmVlIHNvZnR3YXJlOiB5b3UgYXJlIGZyZWUgdG8gY2hhbmdlIGFuZCByZWRpc3RyaWJ1dGUg aXQuCitUaGVyZSBpcyBOTyBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3 LiIKKworZm9yIGFyZworZG8KKyAgY2FzZSAkYXJnIGluCisgICAgLS1oZWxwIHwgLS1oZWwgfCAt LWhlIHwgLS1oKQorICAgICAgZXhlYyBlY2hvICIkaGVscCIgOzsKKyAgICAtLXZlcnNpb24gfCAt LXZlcnNpbyB8IC0tdmVyc2kgfCAtLXZlcnMgfCAtLXZlciB8IC0tdmUgfCAtLXYpCisgICAgICBl eGVjIGVjaG8gIiR2ZXJzaW9uIiA7OworICAgIC0tKQorICAgICAgc2hpZnQKKyAgICAgIGJyZWFr IDs7CisgICAgLSopCisgICAgICBlY2hvICIkMDogaW52YWxpZCBvcHRpb246ICRhcmciID4mMgor ICAgICAgZXhpdCAxIDs7CisgICAgKikKKyAgICAgIGJyZWFrIDs7CisgIGVzYWMKK2RvbmUKKwor eyB0ZXN0ICQjIC1nZSAxICYmIHRlc3QgJCMgLWxlIDQ7IH0gfHwKK3sgZWNobyAiJDA6ICR1c2Fn ZSIgPiYyOyBleGl0IDE7IH0KKworIyBBcmd1bWVudHMKK3BhdGhsaXN0PSQxCittdXN0ZXhpc3Q9 JHsyOi1ZfQorc2VwYXJhdG9yPSQzCitzZXBhcmF0b3IyPSR7NDotJHtzZXBhcmF0b3J9fQorCisj IFNwbGl0IHBhdGhsaXN0IGludG8gaXRzIHBhdGggY29tcG9uZW50cworaWYgdGVzdCAtbiAiJHNl cGFyYXRvciIKK3RoZW4KKyAgICBJRlM9JHtzZXBhcmF0b3J9IHBhdGhhcnJheT0oICRwYXRobGlz dCApCitlbHNlCisgICAgcGF0aGFycmF5PSggIiRwYXRobGlzdCIgKQorZmkKKworIyBPdXRwdXQg cGF0aGxpc3QKK3BhdGhsaXN0Mj0iIgorCitmb3IgcCBpbiAiJHtwYXRoYXJyYXlbQF19IgorZG8K KyAgICAjIFNraXAgZW1wdHkgcGF0aHMKKyAgICB0ZXN0ICIkcCIgPSAiIiAmJiBjb250aW51ZQor CisgICAgIyBSZXBsYWNlICdcJyB3aXRoICcvJywgJy8vJyB3aXRoICcvJyBhbmQgcmVtb3ZlIHRo ZSBmaW5hbCBzbGFzaAorICAgICMgKGlmIGFueSkuCisgICAgcD0ke3AvLyJcXCIvIi8ifQorICAg IHA9JHtwLy9cL1wvLyIvIn0KKyAgICB0ZXN0ICR7I3B9IC1ndCAxICYmIHA9JHtwJSIvIn0KKwor ICAgIGlmIHRlc3QgLWQgIiRwIgorICAgIHRoZW4KKwkjIFRoZSBwYXRoIGV4aXN0cywgc28ganVz dCB0cmFuc2xhdGUgaXQKKwlwMj1gY2QgIiRwIiAmJiBwd2QgLVdgCisgICAgZWxzZQorCSMgVGhl IHBhdGggZG9lcyBub3QgZXhpc3RzLiAgU28sIHRyeSB0byBndWVzcyB0aGUKKwkjIFdpbmRvd3Mt bmF0aXZlIHRyYW5zbGF0aW9uCisKKwl0ZXN0ICIke211c3RleGlzdH0iID0gIlkiICYmCisJeyBl Y2hvICIkMDogaW52YWxpZCBwYXRoOiAkcCIgPiYyOyBleGl0IDE7IH0KKwkKKwkjIExvb2sgZm9y IHRoZSBkZWVwZXN0IGV4aXN0aW5nIGRpcmVjdG9yeSBpbiB0aGlzIHBhdGgsCisJIyB0ZXN0aW5n IHdpdGggcGFydGlhbCBwYXRocyBieSByZW1vdmluZyBvbmUgY29tcG9uZW50IGZyb20KKwkjIHRo ZSByaWdodCBzaWRlIGluIGVhY2ggaXRlcmF0aW9uCisJSUZTPS8gcGNvbXBvbmVudHM9KCAkcCAp CisJcGE9JHAKKworCWZvciAoKCBpPSR7I3Bjb21wb25lbnRzW0BdfS0xIDsgaT49MCA7IGktLSAp KQorCWRvCisKKwkgICAgaWYgdGVzdCAiJHtwY29tcG9uZW50c1tpXX0iID0gIiIKKwkgICAgdGhl bgorCQkjIFRoZSBwYXRoIGNvbXBvbmVudCBpcyBlbXB0eS4gIFRoaXMgY2FuIG9ubHkgbWVhbgor CQkjIHRoYXQgdGhlIHBhdGggc3RhcnRzIHdpdGggIi8iIGFuZCBhbGwgY29tcG9uZW50cworCQkj IGhhdmUgYmVlbiBzdHJpcHBlZCBvdXQgYWxyZWFkeS4gIFNvIGluIHRoaXMgY2FzZQorCQkjICJw YSIgbXVzdCBiZSBzZXQgdG8gdGhlIE1TWVMgcm9vdCBkaXJlY3RvcnkKKwkJcGE9Ii8iCisJICAg IGVsc2UKKwkJcGE9JHtwYSUiLyR7cGNvbXBvbmVudHNbaV19In0KKwkgICAgZmkKKworCSAgICBp ZiB0ZXN0IC1kICIke3BhfSIKKwkgICAgdGhlbgorCisJCSMgVHJhbnNsYXRlIHRoZSBleGlzdGlu ZyBwYXJ0CisJCXAyPWBjZCAiJHtwYX0iICYmIHB3ZCAtV2AKKworCQkjIFJlbWFpbmRlcgorCQlw Yj0iJHtwIyR7cGF9fSIKKworCQkjIENvbmNhdGVuYXRlIGJvdGggcGFydHMgKGV4aXN0aW5nIGFu ZCByZW1haW5kZXIpCisJCXRlc3QgIiR7cDJ9IiA9ICIvIiB8fCBwMj0iJHtwMn0vIgorCQlwYj0k e3BiIy99CisJCXAyPSIke3AyfSR7cGJ9IgorCisJCWJyZWFrCisJICAgIGZpCisKKwlkb25lCisK KwkjIElmIG5vIGV4aXN0aW5nIGRpcmVjdG9yeSB3YXMgZm91bmQsIGVycm9yIG91dAorCXRlc3Qg LWUgIiR7cGF9IiB8fAorCXsgZWNobyAiJDA6IGludmFsaWQgcGF0aDogJHtwfSIgPiYyOyBleGl0 IDE7IH0KKyAgICBmaQorCisgICAgIyBBZGQgdGhpcyB0cmFuc2xhdGVkIHBhdGggdG8gdGhlIHRy YW5zbGF0ZWQgcGF0aGxpc3QKKyAgICB0ZXN0ICIke3BhdGhsaXN0Mn0iID0gIiIgfHwgcGF0aGxp c3QyPSIke3BhdGhsaXN0Mn0ke3NlcGFyYXRvcjJ9IgorICAgIHBhdGhsaXN0Mj0iJHtwYXRobGlz dDJ9JHtwMi8vJHtzZXBhcmF0b3IyfS9cXCR7c2VwYXJhdG9yMn19IgorCitkb25lCisKKyMgV3Jp dGUgdGhlIHRyYW5zbGF0ZWQgcGF0aGxpc3QgdG8gdGhlIHN0YW5kYXJkIG91dHB1dAorcHJpbnRm ICIke3BhdGhsaXN0Mn0iCisKKyMjIExvY2FsIFZhcmlhYmxlczoKKyMjIGV2YWw6IChhZGQtaG9v ayAnd3JpdGUtZmlsZS1mdW5jdGlvbnMgJ3RpbWUtc3RhbXApCisjIyB0aW1lLXN0YW1wLXN0YXJ0 OiAiVkVSU0lPTj0nIgorIyMgdGltZS1zdGFtcC1mb3JtYXQ6ICIlOnktJTAybS0lMDJkICUwMkg6 JTAyTSIKKyMjIHRpbWUtc3RhbXAtdGltZS16b25lOiAiVVRDIgorIyMgdGltZS1zdGFtcC1lbmQ6 ICInOyAjIFVUQyIKKyMjIEVuZDoK --001a1135e5a4f22a0604eabf939e--