From mboxrd@z Thu Jan 1 00:00:00 1970 Received: by 10.28.91.67 with SMTP id p64csp3867753wmb; Tue, 20 Mar 2018 06:59:25 -0700 (PDT) X-Google-Smtp-Source: AG47ELvI7uY+DHmZjxPbP4ap+ENXEkvrNio1Oe50jGdGRJmnDBWYVUIPpUNYc79t1m7T8/uBg5CE X-Received: by 10.55.160.139 with SMTP id j133mr24138658qke.18.1521554365412; Tue, 20 Mar 2018 06:59:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1521554365; cv=none; d=google.com; s=arc-20160816; b=zqv55gNDQ9mgnhPGp32SEJAy1nPwHlUS8raot7pjMl11o1qyaIKKVHu76bXVhok+0L FwhqBF2VjTuuHrg8ZxfoRDBRg+frzSSTmY8HM5dnNgN8OL/p7ZLcWrO5tX/OELmUpYq0 Tn1qcBTj+OaTFaCXNkq6RM7+hZcRHpeeEI47Uu/glYgjnOWWziu6A1KFr5ygCfGNGZlp bmQQpQZeQsVThZJDnfHtByYLC6Pbg2IWKUtWT7uz7MNddNnWjJ1uJQTL9PHap0jvcrtv dsjrLA9cfolFAFXCODC60iAc+eQhTMvzseu31ZWJWS5ngA70g1bk9twcghsu4TVFfrwV VtSQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:subject:in-reply-to :content-disposition:mime-version:references:message-id:to:from:date :arc-authentication-results; bh=xpOLX7Y9nt5fMo5JCT1kcVugp/f7fCn7F7ZK3KB8Gwo=; b=IRjfoA+C/HirmRUmUL3vL7tdE/tiHgoVZ3pu6een/QzamoMmqlwnpbbipP4VjBTX5i UEDWGasJPUCJcEqJcVjWneW94OWRgSYAtkyRhaQ8FTK2TNZr+p461GkKP621MUc1FGLe O5uRCDaYLMALtp63daFvIeSQLG1VTYItQZe5HMvHZpATf7mvagI5rx+G1NPkFVTEfCXE PoMoA169ANAhZ4vA9zi0Fp2378MLu7YD5s8VK5jJQMHTLTflHCiwtraR2ZjPx5wh2T+6 uPAAt3KPDfKlU9ErHtrykaF+35exn+SjAMWzQHNKC5v4q+l1+GOgFtVpUX+Thp5+bbjt iTEQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of qemu-arm-bounces+alex.bennee=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) smtp.mailfrom=qemu-arm-bounces+alex.bennee=linaro.org@nongnu.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org. [2001:4830:134:3::11]) by mx.google.com with ESMTPS id m124si2891393qkc.56.2018.03.20.06.59.25 for (version=TLS1 cipher=AES128-SHA bits=128/128); Tue, 20 Mar 2018 06:59:25 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-arm-bounces+alex.bennee=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) client-ip=2001:4830:134:3::11; Authentication-Results: mx.google.com; spf=pass (google.com: domain of qemu-arm-bounces+alex.bennee=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) smtp.mailfrom=qemu-arm-bounces+alex.bennee=linaro.org@nongnu.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: from localhost ([::1]:48938 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eyHnQ-0006Vy-PY for alex.bennee@linaro.org; Tue, 20 Mar 2018 09:59:24 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57267) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eyHLQ-0002bE-HQ for qemu-arm@nongnu.org; Tue, 20 Mar 2018 09:30:32 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eyHLP-00026w-EM for qemu-arm@nongnu.org; Tue, 20 Mar 2018 09:30:28 -0400 Received: from mx3-rdu2.redhat.com ([66.187.233.73]:40926 helo=mx1.redhat.com) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1eyHLP-00026a-7h; Tue, 20 Mar 2018 09:30:27 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id DAE584079F2B; Tue, 20 Mar 2018 13:30:22 +0000 (UTC) Received: from redhat.com (ovpn-121-0.rdu2.redhat.com [10.10.121.0]) by smtp.corp.redhat.com (Postfix) with SMTP id BF0A0202322F; Tue, 20 Mar 2018 13:30:15 +0000 (UTC) Date: Tue, 20 Mar 2018 15:30:15 +0200 From: "Michael S. Tsirkin" To: Stefan Hajnoczi Message-ID: <20180320152446-mutt-send-email-mst@kernel.org> References: <1521510562-529051-1-git-send-email-mst@redhat.com> <20180320131041.GB24329@stefanha-x1.localdomain> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20180320131041.GB24329@stefanha-x1.localdomain> X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.5]); Tue, 20 Mar 2018 13:30:23 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.5]); Tue, 20 Mar 2018 13:30:23 +0000 (UTC) for IP:'10.11.54.4' DOMAIN:'int-mx04.intmail.prod.int.rdu2.redhat.com' HELO:'smtp.corp.redhat.com' FROM:'mst@redhat.com' RCPT:'' X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 66.187.233.73 X-Mailman-Approved-At: Tue, 20 Mar 2018 09:59:16 -0400 Subject: Re: [Qemu-arm] [Qemu-block] [PATCH] qemu: include generated files with <> and not "" X-BeenThere: qemu-arm@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , Dmitry Fleytman , sheepdog@lists.wpkg.org, Pavel Dovgalyuk , Li Zhijian , David Hildenbrand , Jason Wang , Mark Cave-Ayland , qemu-devel@nongnu.org, Alexander Graf , BALATON Zoltan , Keith Busch , Max Filippov , Gerd Hoffmann , Max Reitz , Yongbok Kim , Hannes Reinecke , Stefano Stabellini , zhanghailiang , Ben Warren , Stefan Berger , Ronnie Sahlberg , Michael Roth , "Richard W.M. Jones" , Christian Borntraeger , =?iso-8859-1?Q?Herv=E9?= Poussineau , =?iso-8859-1?Q?Marc-Andr=E9?= Lureau , Shannon Zhao , Marcel Apfelbaum , Liu Yuan , Richard Henderson , Andrzej Zaborowski , Juan Quintela , Artyom Tarasenko , Alistair Francis , Jiri Pirko , Eduardo Habkost , Corey Minyard , Amit Shah , Stefan Weil , Xie Changlong , Riku Voipio , Peter Lieven , "Dr. David Alan Gilbert" , Fabien Chouteau , Greg Kurz , Anthony Perard , Alex Williamson , qemu-arm@nongnu.org, Peter Chubb , Yuval Shaia , Stefan Hajnoczi , Zhang Chen , xen-devel@lists.xenproject.org, Fam Zheng , David Gibson , Kevin Wolf , kvm@vger.kernel.org, Daniel =?iso-8859-1?Q?P=2E_Berrang=E9?= , qemu-block@nongnu.org, Hitoshi Mitake , Markus Armbruster , qemu-s390x@nongnu.org, Marcelo Tosatti , Laurent Vivier , Subbaraya Sundeep , Michael Walle , Igor Mammedov , qemu-ppc@nongnu.org, Wen Congyang , Cornelia Huck , Paolo Bonzini , Andreas =?iso-8859-1?Q?F=E4rber?= , Aurelien Jarno , Philippe =?iso-8859-1?Q?Mathieu-Daud=E9?= Errors-To: qemu-arm-bounces+alex.bennee=linaro.org@nongnu.org Sender: "Qemu-arm" X-TUID: iG0AtiX8B2GE On Tue, Mar 20, 2018 at 01:10:41PM +0000, Stefan Hajnoczi wrote: > On Tue, Mar 20, 2018 at 03:54:36AM +0200, Michael S. Tsirkin wrote: > > QEMU coding style at the moment asks for all non-system > > include files to be used with #include "foo.h". > > However this rule actually does not make sense and > > creates issues for when the included file is generated. > > > > In C, include "file" means look in current directory, > > then on include search path. Current directory here > > means the source file directory. > > By comparison include means look on include search path. > > > > As generated files are not in the search directory (unless the build > > directory happens to match the source directory), it does not make sense > > to include them with "" - doing so is merely more work for preprocessor > > and a source or errors if a stale file happens to exist in the source > > directory. > > > > This changes include directives for all generated files, across the > > tree. The idea is to avoid sending a huge amount of email. But when > > merging, the changes will be split with one commit per file, e.g. for > > ease of bisect in case of build failures, and to ease merging. > > > > Note that should some generated files be missed by this tree-wide > > refactoring, it isn't a big deal - this merely maintains the status quo, > > and this can be addressed by a separate patch on top. > > Stale header files are a pain. I often do make distclean before > checking out a radically different QEMU version to avoid the problem. > > This patch trades off the stale header file issue for a new approach to > using <> vs "", which will be hard to use consistently The proposed rule is to use <> everywhere except if the file is in the source directory. It will be very easy to use consistently for the simple reason that compiler will enforce it. If you use <> for a header in the current directory build fails. So you are forced to use "". > in the future > since it is unconventional. All compilers I know without exception implement include <> meaning look in -I search path, and include "" meaning look in current directory then in -I search path. Looks conventional to me. > Is the build time improvement worth it (please post numbers)? > > Stefan Haven't tested it frankly. Will it convince anyone if it's marginally faster? -- MST From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Michael S. Tsirkin" Subject: Re: [Qemu-block] [PATCH] qemu: include generated files with <> and not "" Date: Tue, 20 Mar 2018 15:30:15 +0200 Message-ID: <20180320152446-mutt-send-email-mst@kernel.org> References: <1521510562-529051-1-git-send-email-mst@redhat.com> <20180320131041.GB24329@stefanha-x1.localdomain> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1eyHLO-0000f7-9E for xen-devel@lists.xenproject.org; Tue, 20 Mar 2018 13:30:26 +0000 Content-Disposition: inline In-Reply-To: <20180320131041.GB24329@stefanha-x1.localdomain> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Stefan Hajnoczi Cc: Peter Maydell , Dmitry Fleytman , sheepdog@lists.wpkg.org, Pavel Dovgalyuk , Li Zhijian , David Hildenbrand , Jason Wang , Mark Cave-Ayland , qemu-devel@nongnu.org, Alexander Graf , BALATON Zoltan , Keith Busch , Max Filippov , Gerd Hoffmann , "Edgar E. Iglesias" , Max Reitz , Yongbok Kim , Hannes Reinecke , Stefano Stabellini , zhanghailiang , Ben Warren , Stefan Berger , Ronnie Sahlberg List-Id: xen-devel@lists.xenproject.org T24gVHVlLCBNYXIgMjAsIDIwMTggYXQgMDE6MTA6NDFQTSArMDAwMCwgU3RlZmFuIEhham5vY3pp IHdyb3RlOgo+IE9uIFR1ZSwgTWFyIDIwLCAyMDE4IGF0IDAzOjU0OjM2QU0gKzAyMDAsIE1pY2hh ZWwgUy4gVHNpcmtpbiB3cm90ZToKPiA+IFFFTVUgY29kaW5nIHN0eWxlIGF0IHRoZSBtb21lbnQg YXNrcyBmb3IgYWxsIG5vbi1zeXN0ZW0KPiA+IGluY2x1ZGUgZmlsZXMgdG8gYmUgdXNlZCB3aXRo ICNpbmNsdWRlICJmb28uaCIuCj4gPiBIb3dldmVyIHRoaXMgcnVsZSBhY3R1YWxseSBkb2VzIG5v dCBtYWtlIHNlbnNlIGFuZAo+ID4gY3JlYXRlcyBpc3N1ZXMgZm9yIHdoZW4gdGhlIGluY2x1ZGVk IGZpbGUgaXMgZ2VuZXJhdGVkLgo+ID4gCj4gPiBJbiBDLCBpbmNsdWRlICJmaWxlIiBtZWFucyBs b29rIGluIGN1cnJlbnQgZGlyZWN0b3J5LAo+ID4gdGhlbiBvbiBpbmNsdWRlIHNlYXJjaCBwYXRo LiBDdXJyZW50IGRpcmVjdG9yeSBoZXJlCj4gPiBtZWFucyB0aGUgc291cmNlIGZpbGUgZGlyZWN0 b3J5Lgo+ID4gQnkgY29tcGFyaXNvbiBpbmNsdWRlIDxmaWxlPiBtZWFucyBsb29rIG9uIGluY2x1 ZGUgc2VhcmNoIHBhdGguCj4gPiAKPiA+IEFzIGdlbmVyYXRlZCBmaWxlcyBhcmUgbm90IGluIHRo ZSBzZWFyY2ggZGlyZWN0b3J5ICh1bmxlc3MgdGhlIGJ1aWxkCj4gPiBkaXJlY3RvcnkgaGFwcGVu cyB0byBtYXRjaCB0aGUgc291cmNlIGRpcmVjdG9yeSksIGl0IGRvZXMgbm90IG1ha2Ugc2Vuc2UK PiA+IHRvIGluY2x1ZGUgdGhlbSB3aXRoICIiIC0gZG9pbmcgc28gaXMgbWVyZWx5IG1vcmUgd29y ayBmb3IgcHJlcHJvY2Vzc29yCj4gPiBhbmQgYSBzb3VyY2Ugb3IgZXJyb3JzIGlmIGEgc3RhbGUg ZmlsZSBoYXBwZW5zIHRvIGV4aXN0IGluIHRoZSBzb3VyY2UKPiA+IGRpcmVjdG9yeS4KPiA+IAo+ ID4gVGhpcyBjaGFuZ2VzIGluY2x1ZGUgZGlyZWN0aXZlcyBmb3IgYWxsIGdlbmVyYXRlZCBmaWxl cywgYWNyb3NzIHRoZQo+ID4gdHJlZS4gVGhlIGlkZWEgaXMgdG8gYXZvaWQgc2VuZGluZyBhIGh1 Z2UgYW1vdW50IG9mIGVtYWlsLiAgQnV0IHdoZW4KPiA+IG1lcmdpbmcsIHRoZSBjaGFuZ2VzIHdp bGwgYmUgc3BsaXQgd2l0aCBvbmUgY29tbWl0IHBlciBmaWxlLCBlLmcuIGZvcgo+ID4gZWFzZSBv ZiBiaXNlY3QgaW4gY2FzZSBvZiBidWlsZCBmYWlsdXJlcywgYW5kIHRvIGVhc2UgbWVyZ2luZy4K PiA+IAo+ID4gTm90ZSB0aGF0IHNob3VsZCBzb21lIGdlbmVyYXRlZCBmaWxlcyBiZSBtaXNzZWQg YnkgdGhpcyB0cmVlLXdpZGUKPiA+IHJlZmFjdG9yaW5nLCBpdCBpc24ndCBhIGJpZyBkZWFsIC0g dGhpcyBtZXJlbHkgbWFpbnRhaW5zIHRoZSBzdGF0dXMgcXVvLAo+ID4gYW5kIHRoaXMgY2FuIGJl IGFkZHJlc3NlZCBieSBhIHNlcGFyYXRlIHBhdGNoIG9uIHRvcC4KPiAKPiBTdGFsZSBoZWFkZXIg ZmlsZXMgYXJlIGEgcGFpbi4gIEkgb2Z0ZW4gZG8gbWFrZSBkaXN0Y2xlYW4gYmVmb3JlCj4gY2hl Y2tpbmcgb3V0IGEgcmFkaWNhbGx5IGRpZmZlcmVudCBRRU1VIHZlcnNpb24gdG8gYXZvaWQgdGhl IHByb2JsZW0uCj4gCj4gVGhpcyBwYXRjaCB0cmFkZXMgb2ZmIHRoZSBzdGFsZSBoZWFkZXIgZmls ZSBpc3N1ZSBmb3IgYSBuZXcgYXBwcm9hY2ggdG8KPiB1c2luZyA8PiB2cyAiIiwgd2hpY2ggd2ls bCBiZSBoYXJkIHRvIHVzZSBjb25zaXN0ZW50bHkKClRoZSBwcm9wb3NlZCBydWxlIGlzIHRvIHVz ZSA8PiBldmVyeXdoZXJlIGV4Y2VwdCBpZiB0aGUgZmlsZSBpcyBpbiB0aGUKc291cmNlIGRpcmVj dG9yeS4gIEl0IHdpbGwgYmUgdmVyeSBlYXN5IHRvIHVzZSBjb25zaXN0ZW50bHkgZm9yIHRoZQpz aW1wbGUgcmVhc29uIHRoYXQgY29tcGlsZXIgd2lsbCBlbmZvcmNlIGl0LiAgSWYgeW91IHVzZSA8 PiBmb3IgYSBoZWFkZXIKaW4gdGhlIGN1cnJlbnQgZGlyZWN0b3J5IGJ1aWxkIGZhaWxzLiBTbyB5 b3UgYXJlIGZvcmNlZCB0byB1c2UgIiIuCgo+IGluIHRoZSBmdXR1cmUKPiBzaW5jZSBpdCBpcyB1 bmNvbnZlbnRpb25hbC4KCkFsbCBjb21waWxlcnMgSSBrbm93IHdpdGhvdXQgZXhjZXB0aW9uIGlt cGxlbWVudAppbmNsdWRlIDw+IG1lYW5pbmcgbG9vayBpbiAtSSBzZWFyY2ggcGF0aCwgYW5kCmlu Y2x1ZGUgIiIgbWVhbmluZyBsb29rIGluIGN1cnJlbnQgZGlyZWN0b3J5IHRoZW4KaW4gLUkgc2Vh cmNoIHBhdGguCgpMb29rcyBjb252ZW50aW9uYWwgdG8gbWUuCgo+IElzIHRoZSBidWlsZCB0aW1l IGltcHJvdmVtZW50IHdvcnRoIGl0IChwbGVhc2UgcG9zdCBudW1iZXJzKT8KPiAKPiBTdGVmYW4K CkhhdmVuJ3QgdGVzdGVkIGl0IGZyYW5rbHkuIFdpbGwgaXQgY29udmluY2UgYW55b25lIGlmIGl0 J3MgbWFyZ2luYWxseQpmYXN0ZXI/CgotLSAKTVNUCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBs aXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4v bGlzdGluZm8veGVuLWRldmVs From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Michael S. Tsirkin" Subject: Re: [Qemu-block] [PATCH] qemu: include generated files with <> and not "" Date: Tue, 20 Mar 2018 15:30:15 +0200 Message-ID: <20180320152446-mutt-send-email-mst@kernel.org> References: <1521510562-529051-1-git-send-email-mst@redhat.com> <20180320131041.GB24329@stefanha-x1.localdomain> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: Peter Maydell , Dmitry Fleytman , sheepdog@lists.wpkg.org, Pavel Dovgalyuk , Li Zhijian , David Hildenbrand , Jason Wang , Mark Cave-Ayland , qemu-devel@nongnu.org, Alexander Graf , BALATON Zoltan , Keith Busch , Max Filippov , Gerd Hoffmann , "Edgar E. Iglesias" , Max Reitz , Yongbok Kim , Hannes Reinecke , Stefano Stabellini , zhanghailiang , Ben Warren , Stefan Berger , Ronnie Sahlberg , To: Stefan Hajnoczi Return-path: Content-Disposition: inline In-Reply-To: <20180320131041.GB24329@stefanha-x1.localdomain> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" List-Id: kvm.vger.kernel.org T24gVHVlLCBNYXIgMjAsIDIwMTggYXQgMDE6MTA6NDFQTSArMDAwMCwgU3RlZmFuIEhham5vY3pp IHdyb3RlOgo+IE9uIFR1ZSwgTWFyIDIwLCAyMDE4IGF0IDAzOjU0OjM2QU0gKzAyMDAsIE1pY2hh ZWwgUy4gVHNpcmtpbiB3cm90ZToKPiA+IFFFTVUgY29kaW5nIHN0eWxlIGF0IHRoZSBtb21lbnQg YXNrcyBmb3IgYWxsIG5vbi1zeXN0ZW0KPiA+IGluY2x1ZGUgZmlsZXMgdG8gYmUgdXNlZCB3aXRo ICNpbmNsdWRlICJmb28uaCIuCj4gPiBIb3dldmVyIHRoaXMgcnVsZSBhY3R1YWxseSBkb2VzIG5v dCBtYWtlIHNlbnNlIGFuZAo+ID4gY3JlYXRlcyBpc3N1ZXMgZm9yIHdoZW4gdGhlIGluY2x1ZGVk IGZpbGUgaXMgZ2VuZXJhdGVkLgo+ID4gCj4gPiBJbiBDLCBpbmNsdWRlICJmaWxlIiBtZWFucyBs b29rIGluIGN1cnJlbnQgZGlyZWN0b3J5LAo+ID4gdGhlbiBvbiBpbmNsdWRlIHNlYXJjaCBwYXRo LiBDdXJyZW50IGRpcmVjdG9yeSBoZXJlCj4gPiBtZWFucyB0aGUgc291cmNlIGZpbGUgZGlyZWN0 b3J5Lgo+ID4gQnkgY29tcGFyaXNvbiBpbmNsdWRlIDxmaWxlPiBtZWFucyBsb29rIG9uIGluY2x1 ZGUgc2VhcmNoIHBhdGguCj4gPiAKPiA+IEFzIGdlbmVyYXRlZCBmaWxlcyBhcmUgbm90IGluIHRo ZSBzZWFyY2ggZGlyZWN0b3J5ICh1bmxlc3MgdGhlIGJ1aWxkCj4gPiBkaXJlY3RvcnkgaGFwcGVu cyB0byBtYXRjaCB0aGUgc291cmNlIGRpcmVjdG9yeSksIGl0IGRvZXMgbm90IG1ha2Ugc2Vuc2UK PiA+IHRvIGluY2x1ZGUgdGhlbSB3aXRoICIiIC0gZG9pbmcgc28gaXMgbWVyZWx5IG1vcmUgd29y ayBmb3IgcHJlcHJvY2Vzc29yCj4gPiBhbmQgYSBzb3VyY2Ugb3IgZXJyb3JzIGlmIGEgc3RhbGUg ZmlsZSBoYXBwZW5zIHRvIGV4aXN0IGluIHRoZSBzb3VyY2UKPiA+IGRpcmVjdG9yeS4KPiA+IAo+ ID4gVGhpcyBjaGFuZ2VzIGluY2x1ZGUgZGlyZWN0aXZlcyBmb3IgYWxsIGdlbmVyYXRlZCBmaWxl cywgYWNyb3NzIHRoZQo+ID4gdHJlZS4gVGhlIGlkZWEgaXMgdG8gYXZvaWQgc2VuZGluZyBhIGh1 Z2UgYW1vdW50IG9mIGVtYWlsLiAgQnV0IHdoZW4KPiA+IG1lcmdpbmcsIHRoZSBjaGFuZ2VzIHdp bGwgYmUgc3BsaXQgd2l0aCBvbmUgY29tbWl0IHBlciBmaWxlLCBlLmcuIGZvcgo+ID4gZWFzZSBv ZiBiaXNlY3QgaW4gY2FzZSBvZiBidWlsZCBmYWlsdXJlcywgYW5kIHRvIGVhc2UgbWVyZ2luZy4K PiA+IAo+ID4gTm90ZSB0aGF0IHNob3VsZCBzb21lIGdlbmVyYXRlZCBmaWxlcyBiZSBtaXNzZWQg YnkgdGhpcyB0cmVlLXdpZGUKPiA+IHJlZmFjdG9yaW5nLCBpdCBpc24ndCBhIGJpZyBkZWFsIC0g dGhpcyBtZXJlbHkgbWFpbnRhaW5zIHRoZSBzdGF0dXMgcXVvLAo+ID4gYW5kIHRoaXMgY2FuIGJl IGFkZHJlc3NlZCBieSBhIHNlcGFyYXRlIHBhdGNoIG9uIHRvcC4KPiAKPiBTdGFsZSBoZWFkZXIg ZmlsZXMgYXJlIGEgcGFpbi4gIEkgb2Z0ZW4gZG8gbWFrZSBkaXN0Y2xlYW4gYmVmb3JlCj4gY2hl Y2tpbmcgb3V0IGEgcmFkaWNhbGx5IGRpZmZlcmVudCBRRU1VIHZlcnNpb24gdG8gYXZvaWQgdGhl IHByb2JsZW0uCj4gCj4gVGhpcyBwYXRjaCB0cmFkZXMgb2ZmIHRoZSBzdGFsZSBoZWFkZXIgZmls ZSBpc3N1ZSBmb3IgYSBuZXcgYXBwcm9hY2ggdG8KPiB1c2luZyA8PiB2cyAiIiwgd2hpY2ggd2ls bCBiZSBoYXJkIHRvIHVzZSBjb25zaXN0ZW50bHkKClRoZSBwcm9wb3NlZCBydWxlIGlzIHRvIHVz ZSA8PiBldmVyeXdoZXJlIGV4Y2VwdCBpZiB0aGUgZmlsZSBpcyBpbiB0aGUKc291cmNlIGRpcmVj dG9yeS4gIEl0IHdpbGwgYmUgdmVyeSBlYXN5IHRvIHVzZSBjb25zaXN0ZW50bHkgZm9yIHRoZQpz aW1wbGUgcmVhc29uIHRoYXQgY29tcGlsZXIgd2lsbCBlbmZvcmNlIGl0LiAgSWYgeW91IHVzZSA8 PiBmb3IgYSBoZWFkZXIKaW4gdGhlIGN1cnJlbnQgZGlyZWN0b3J5IGJ1aWxkIGZhaWxzLiBTbyB5 b3UgYXJlIGZvcmNlZCB0byB1c2UgIiIuCgo+IGluIHRoZSBmdXR1cmUKPiBzaW5jZSBpdCBpcyB1 bmNvbnZlbnRpb25hbC4KCkFsbCBjb21waWxlcnMgSSBrbm93IHdpdGhvdXQgZXhjZXB0aW9uIGlt cGxlbWVudAppbmNsdWRlIDw+IG1lYW5pbmcgbG9vayBpbiAtSSBzZWFyY2ggcGF0aCwgYW5kCmlu Y2x1ZGUgIiIgbWVhbmluZyBsb29rIGluIGN1cnJlbnQgZGlyZWN0b3J5IHRoZW4KaW4gLUkgc2Vh cmNoIHBhdGguCgpMb29rcyBjb252ZW50aW9uYWwgdG8gbWUuCgo+IElzIHRoZSBidWlsZCB0aW1l IGltcHJvdmVtZW50IHdvcnRoIGl0IChwbGVhc2UgcG9zdCBudW1iZXJzKT8KPiAKPiBTdGVmYW4K CkhhdmVuJ3QgdGVzdGVkIGl0IGZyYW5rbHkuIFdpbGwgaXQgY29udmluY2UgYW55b25lIGlmIGl0 J3MgbWFyZ2luYWxseQpmYXN0ZXI/CgotLSAKTVNUCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBs aXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4v bGlzdGluZm8veGVuLWRldmVs