From owner-freebsd-amd64@FreeBSD.ORG Sun Mar 28 00:38:35 2004 Return-Path: Delivered-To: freebsd-amd64@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 25FD316A4CE for ; Sun, 28 Mar 2004 00:38:35 -0800 (PST) Received: from smartmx-06.inode.at (smartmx-06.inode.at [213.229.60.38]) by mx1.FreeBSD.org (Postfix) with ESMTP id E052043D45 for ; Sun, 28 Mar 2004 00:38:32 -0800 (PST) (envelope-from markus@schanovsky.at) Received: from [81.223.211.129] (port=15529 helo=xenos-xp.schanovsky.at) by smartmx-06.inode.at with esmtp (Exim 4.30) id 1B7VoN-0007YW-MC for freebsd-amd64@freebsd.org; Sun, 28 Mar 2004 10:38:31 +0200 Message-Id: <6.0.0.22.2.20040328102132.028191f8@mail.schanovsky.at> X-Sender: markus#schanovsky.at@mail.schanovsky.at (Unverified) X-Mailer: QUALCOMM Windows Eudora Version 6.0.0.22 Date: Sun, 28 Mar 2004 10:32:03 +0200 To: freebsd-amd64@freebsd.org From: Markus Schanovsky Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; format=flowed X-Content-Filtered-By: Mailman/MimeDel 2.1.1 Subject: WARNING: WRITE_DMA UDMA IRCR error X-BeenThere: freebsd-amd64@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Porting FreeBSD to the AMD64 platform List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Mar 2004 08:38:35 -0000 Hello! I have a new am464-Box running FreeBSD 5.2.1 with a serial ATA-Disk of 160 GB. From the beginning I encountered errors like : Mar 26 09:02:04 free kernel: ad4: WARNING - WRITE_DMA UDMA ICRC error (retrying request) LBA=118 166239 Mar 26 09:02:25 free kernel: ad4: WARNING - WRITE_DMA UDMA ICRC error (retrying request) LBA=118 169055 ................ There was no other problem, not loss of data - the machine seems very fast, compiling of ports was quick and successfull. I tried to use a small serial-ata-disk - with the same errors. Is it a serious problem running FreBSd with this errors? may some data be lost sometime in the future? Now I solved the problem with sysctl hw.ata.ata_dma = 0 in my /boot/loader.conf - there are no write errors further. But what's the disadvantage of turning ata_dma off? Speed? Please give me some hints! With best regards Mark ---------- Markus Schanovsky Paedagogisches Institut der Stadt Wien EDV-Administrator Burggasse 14-16/214 Tel: +43-1/523 62 22/99 222 A-1070 Vienna Fax: +43-1/523 62 22/99 93 200 Austria email: m.schanovsky@m56ssr.wien.at priv: markus@schanovsky.at Website: http://www.pi-wien.at From owner-freebsd-amd64@FreeBSD.ORG Sun Mar 28 02:14:34 2004 Return-Path: Delivered-To: freebsd-amd64@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 8366516A4CE for ; Sun, 28 Mar 2004 02:14:34 -0800 (PST) Received: from dogfood.jrv.org (rrcs-sw-24-73-246-106.biz.rr.com [24.73.246.106]) by mx1.FreeBSD.org (Postfix) with ESMTP id 20B6943D41 for ; Sun, 28 Mar 2004 02:14:34 -0800 (PST) (envelope-from james@jrv.org) Received: from jrv.org (zippy.jrv.org [192.168.3.156]) (authenticated bits=0) by dogfood.jrv.org (8.12.11/8.12.10) with ESMTP id i2SAEX6q019951 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Sun, 28 Mar 2004 04:14:33 -0600 (CST) (envelope-from james@jrv.org) Message-ID: <4066A588.4090705@jrv.org> Date: Sun, 28 Mar 2004 04:14:32 -0600 From: "James R. Van Artsalen" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.6) Gecko/20040113 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Markus Schanovsky References: <6.0.0.22.2.20040328102132.028191f8@mail.schanovsky.at> In-Reply-To: <6.0.0.22.2.20040328102132.028191f8@mail.schanovsky.at> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit cc: freebsd-amd64@freebsd.org Subject: Re: WARNING: WRITE_DMA UDMA IRCR error X-BeenThere: freebsd-amd64@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Porting FreeBSD to the AMD64 platform List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Mar 2004 10:14:34 -0000 Markus Schanovsky wrote: > Mar 26 09:02:25 free kernel: ad4: WARNING - WRITE_DMA UDMA ICRC error > (retrying request) LBA=118 > 169055 > > Now I solved the problem with sysctl hw.ata.ata_dma = 0 in my > /boot/loader.conf - there are no write errors further. > But what's the disadvantage of turning ata_dma off? > Speed? I have never seen that error. What disk controller are you using? Do you get that error with any other disk controller? Try different sATA cables? Boot into single-user mode and do a manual "fsck /usr" and make sure the disk is really OK after make buildworld. Turning off DMA will slow down disk transfers and increase CPU. Worse, it probably doesn't really fix the problem but rather hides it. From owner-freebsd-amd64@FreeBSD.ORG Sun Mar 28 06:16:57 2004 Return-Path: Delivered-To: freebsd-amd64@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 3045A16A4CE for ; Sun, 28 Mar 2004 06:16:57 -0800 (PST) Received: from smartmx-03.inode.at (smartmx-03.inode.at [213.229.60.35]) by mx1.FreeBSD.org (Postfix) with ESMTP id 934EE43D31 for ; Sun, 28 Mar 2004 06:16:56 -0800 (PST) (envelope-from markus@schanovsky.at) Received: from [81.223.211.129] (port=16791 helo=xenos-xp.schanovsky.at) by smartmx-03.inode.at with esmtp (Exim 4.30) id 1B7b5r-00041A-BV for freebsd-amd64@freebsd.org; Sun, 28 Mar 2004 16:16:55 +0200 Message-Id: <6.0.0.22.2.20040328161458.02889b50@mail.schanovsky.at> X-Sender: markus#schanovsky.at@mail.schanovsky.at (Unverified) X-Mailer: QUALCOMM Windows Eudora Version 6.0.0.22 Date: Sun, 28 Mar 2004 16:16:24 +0200 To: freebsd-amd64@freebsd.org From: Markus Schanovsky Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; format=flowed X-Content-Filtered-By: Mailman/MimeDel 2.1.1 Subject: Serial ATA Raid X-BeenThere: freebsd-amd64@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Porting FreeBSD to the AMD64 platform List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Mar 2004 14:16:57 -0000 Hello! Has anybody running a Serial ATA-Raid-Controller with FreeBSd 5.2.1 AMD64? Which one? With best regards Mark ---------- Markus Schanovsky Paedagogisches Institut der Stadt Wien EDV-Administrator Burggasse 14-16/214 Tel: +43-1/523 62 22/99 222 A-1070 Vienna Fax: +43-1/523 62 22/99 93 200 Austria email: m.schanovsky@m56ssr.wien.at priv: markus@schanovsky.at Website: http://www.pi-wien.at From owner-freebsd-amd64@FreeBSD.ORG Sun Mar 28 15:23:49 2004 Return-Path: Delivered-To: freebsd-amd64@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 105C416A4CE for ; Sun, 28 Mar 2004 15:23:49 -0800 (PST) Received: from smartmx-07.inode.at (smartmx-07.inode.at [213.229.60.39]) by mx1.FreeBSD.org (Postfix) with ESMTP id 40BEB43D2D for ; Sun, 28 Mar 2004 15:23:48 -0800 (PST) (envelope-from markus@schanovsky.at) Received: from [81.223.211.129] (port=20004 helo=xenos-xp.schanovsky.at) by smartmx-07.inode.at with esmtp (Exim 4.30) id 1B7jd5-0000U0-OQ for freebsd-amd64@freebsd.org; Mon, 29 Mar 2004 01:23:47 +0200 Message-Id: <6.0.0.22.2.20040329011626.0289a3b8@mail.schanovsky.at> X-Sender: markus#schanovsky.at@mail.schanovsky.at (Unverified) X-Mailer: QUALCOMM Windows Eudora Version 6.0.0.22 Date: Mon, 29 Mar 2004 01:23:11 +0200 To: freebsd-amd64@freebsd.org From: Markus Schanovsky Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; format=flowed X-Content-Filtered-By: Mailman/MimeDel 2.1.1 Subject: amd64 with mod_php - but no transmission of form-data X-BeenThere: freebsd-amd64@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Porting FreeBSD to the AMD64 platform List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Mar 2004 23:23:49 -0000 Hello! After some time and much help from the list I got my mod_php4 running on my FreeBSD 5.2.1 AMD64. I can access a database as expected - OK But there is a problem I never saw before: It's not possible to post or get data from from one php-page to another - the variables lokk unknown to the destination-page. The URL is displayed correct: http://193.171.252.28/php/test3.php?content=example&subbutton=send But neither $content nor $subbutton ar displayable. I tried the same 2 pages on an other machine (i386) without any problem. Does anybody know this trouble? With best regards Mark ---------- Markus Schanovsky Paedagogisches Institut der Stadt Wien EDV-Administrator Burggasse 14-16/214 Tel: +43-1/523 62 22/99 222 A-1070 Vienna Fax: +43-1/523 62 22/99 93 200 Austria email: m.schanovsky@m56ssr.wien.at priv: markus@schanovsky.at Website: http://www.pi-wien.at From owner-freebsd-amd64@FreeBSD.ORG Sun Mar 28 18:18:28 2004 Return-Path: Delivered-To: freebsd-amd64@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 0812716A4CE for ; Sun, 28 Mar 2004 18:18:28 -0800 (PST) Received: from bsdhosting.net (bsdhosting.net [65.39.221.113]) by mx1.FreeBSD.org (Postfix) with SMTP id C34D343D3F for ; Sun, 28 Mar 2004 18:18:27 -0800 (PST) (envelope-from jhopper@bsdhosting.net) Received: (qmail 1801 invoked from network); 29 Mar 2004 02:18:13 -0000 Received: from bsdhosting.net (HELO ?192.168.1.7?) (jhopper@bsdhosting.net@65.39.221.113) by bsdhosting.net with SMTP; 29 Mar 2004 02:18:13 -0000 From: Justin Hopper To: freebsd-amd64@freebsd.org In-Reply-To: <6.0.0.22.2.20040329011626.0289a3b8@mail.schanovsky.at> References: <6.0.0.22.2.20040329011626.0289a3b8@mail.schanovsky.at> Content-Type: text/plain Message-Id: <1080526705.27726.434.camel@work.gusalmighty.com> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.6 Date: Sun, 28 Mar 2004 18:18:26 -0800 Content-Transfer-Encoding: 7bit Subject: Re: amd64 with mod_php - but no transmission of form-data X-BeenThere: freebsd-amd64@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Porting FreeBSD to the AMD64 platform List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Mar 2004 02:18:28 -0000 On Sun, 2004-03-28 at 15:23, Markus Schanovsky wrote: > But there is a problem I never saw before: > It's not possible to post or get data from from one php-page to another - > the variables lokk unknown to the destination-page. > The URL is displayed correct: > http://193.171.252.28/php/test3.php?content=example&subbutton=send > But neither $content nor $subbutton ar displayable. > I tried the same 2 pages on an other machine (i386) without any problem. If you are accessing the variables as globals, did you make sure register_globals=on in your php.ini file? It's much better to just use the superglobal arrays, like $_GET['var'] and $_POST['var']. I was not sure from your post if such simple things as these had been overlooked or not, so I thought I would put them out there just in case they had. -- Justin Hopper UNIX Systems Engineer BSDHosting.net Hosting Division of Digital Oasys Inc. http://www.bsdhosting.net From owner-freebsd-amd64@FreeBSD.ORG Mon Mar 29 08:16:54 2004 Return-Path: Delivered-To: freebsd-amd64@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 1CAD916A4D0 for ; Mon, 29 Mar 2004 08:16:54 -0800 (PST) Received: from smp4.smallcatbrain.com (bdsl.66.14.133.120.gte.net [66.14.133.120]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9207643D46 for ; Mon, 29 Mar 2004 08:16:53 -0800 (PST) (envelope-from richd@smallcatbrain.com) Received: from smallcatbrain.com (smp4.smallcatbrain.com [192.168.0.2]) i2TGTgZ9015226 for ; Mon, 29 Mar 2004 08:29:42 -0800 (PST) (envelope-from richd@smallcatbrain.com) Received: from 134.134.136.13 (SquirrelMail authenticated user richd) by www.smallcatbrain.com with HTTP; Mon, 29 Mar 2004 08:29:42 -0800 (PST) Message-ID: <38712.134.134.136.13.1080577782.squirrel@www.smallcatbrain.com> Date: Mon, 29 Mar 2004 08:29:42 -0800 (PST) From: "Rich Dunkle" To: X-Priority: 3 Importance: Normal X-Mailer: SquirrelMail (version 1.2.8) MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Subject: Re: New 5.2-CURRENT snapshot -softdep_disk_prewrite+0x44 X-BeenThere: freebsd-amd64@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Porting FreeBSD to the AMD64 platform List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Mar 2004 16:16:54 -0000 I am having the same problem with this snapshot as the other snapshots I have created in the last week. Hang during inital boot. softdep_disk_prewrite+0x44 I reported this in freebsd-current on Friday Does anyone else see this ? From owner-freebsd-amd64@FreeBSD.ORG Mon Mar 29 08:24:14 2004 Return-Path: Delivered-To: freebsd-amd64@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 9C9CA16A4CE for ; Mon, 29 Mar 2004 08:24:14 -0800 (PST) Received: from farside.isc.org (farside.isc.org [204.152.187.5]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8B72943D58 for ; Mon, 29 Mar 2004 08:24:14 -0800 (PST) (envelope-from Peter_Losher@isc.org) Received: from [10.0.0.3] (tardis-nat.plosh.net [64.139.14.228]) (using TLSv1 with cipher RC4-MD5 (128/128 bits)) (No client certificate requested) by farside.isc.org (Postfix) with ESMTP id 2BAB2A82B for ; Mon, 29 Mar 2004 16:24:14 +0000 (UTC) (envelope-from Peter_Losher@isc.org) From: Peter Losher Organization: ISC To: amd64@freebsd.org Date: Mon, 29 Mar 2004 08:25:41 -0800 User-Agent: KMail/1.6.1 MIME-Version: 1.0 Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Boundary-02=_U4EaACz5/YTrQpG"; charset="us-ascii" Content-Transfer-Encoding: 7bit Message-Id: <200403290825.56251.Peter_Losher@isc.org> Subject: 5.2.1-REL or -CURRENT on a amd64 production system? X-BeenThere: freebsd-amd64@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Porting FreeBSD to the AMD64 platform List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Mar 2004 16:24:14 -0000 --Boundary-02=_U4EaACz5/YTrQpG Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline So I have a dual-Opteron system I have been testing for the last couple=20 of months w/ FreeBSD 5.2.x-REL/amd64 code. As the box is about ready to=20 be put into production as a storage/DB server, and as I have been=20 catching up on mail from the amd64 list from the past week, I do have=20 some concerns: =2D RELENG_5_2 or .? I have a particular aversion to running -CURRENT code= =20 on production systems. But reading the fixes the the stack alignment=20 code that Peter Wemm did here: http://marc.theaimsgroup.com/?l=3Dfreebsd-amd64&m=3D107981757401261&w=3D2 and the lack of responses to my pending issues with make buildworld,=20 makes it seem that most everyone here is running -CURRENT. How stable=20 is it at the moment...? (one would assume O'Brien's latest snapshot=20 ISO's are fine in this regard) I just have a aversion to 4-6 months=20 down the line having to recompile all my ports ;) =2D VLAN support - BTW, in case anyone needed to know, adding vlan support= =20 to the kernel, then activating it on a network interface, causes=20 ifconfig to panic (at least in 5.2.1-REL). Dunno if anyone else has=20 tried it yet or not in -CURRENT... Thanks in advance for any advice you can provide (I will probably file=20 the VLAN issue as a bug report if it hasn't already been fixed in=20 =2DCURRENT) =2DPeter =2D-=20 Peter_Losher@isc.org | ISC | OpenPGP Key E8048D08 | "The bits must flow" --Boundary-02=_U4EaACz5/YTrQpG Content-Type: application/pgp-signature Content-Description: signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (FreeBSD) iD8DBQBAaE4UPtVx9OgEjQgRAm2+AJ0ZvyQ7kHFeTLUmSsBq/dhsEelAVgCfeNgb hl61eUjaxQ0eXsr+TfB9RRc= =x8/q -----END PGP SIGNATURE----- --Boundary-02=_U4EaACz5/YTrQpG-- From owner-freebsd-amd64@FreeBSD.ORG Mon Mar 29 09:01:24 2004 Return-Path: Delivered-To: freebsd-amd64@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id CC30516A661 for ; Mon, 29 Mar 2004 09:01:24 -0800 (PST) Received: from natrium.plan-ix.de (natrium.plan-ix.de [212.37.39.36]) by mx1.FreeBSD.org (Postfix) with SMTP id D1F2A43D3F for ; Mon, 29 Mar 2004 09:01:22 -0800 (PST) (envelope-from braukmann@tse-online.de) Received: (qmail 19765 invoked from network); 29 Mar 2004 16:37:48 -0000 Received: from unknown (HELO ?192.168.222.11?) (ab%plan-ix.de@212.37.49.203) by natrium.plan-ix.de with SMTP; 29 Mar 2004 16:37:48 -0000 Date: Mon, 29 Mar 2004 18:39:34 +0200 From: Andreas Braukmann To: freebsd-amd64@freebsd.org Message-ID: <2147483647.1080585573@[192.168.222.11]> In-Reply-To: <38712.134.134.136.13.1080577782.squirrel@www.smallcatbrain.com> References: <38712.134.134.136.13.1080577782.squirrel@www.smallcatbrain.com> X-Mailer: Mulberry/3.1.1 (Mac OS X) MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1; format=flowed Content-Transfer-Encoding: quoted-printable Content-Disposition: inline cc: Rich Dunkle Subject: Re: New 5.2-CURRENT snapshot -softdep_disk_prewrite+0x44 X-BeenThere: freebsd-amd64@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Porting FreeBSD to the AMD64 platform List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Mar 2004 17:01:24 -0000 --On Montag, 29. M=E4rz 2004 08:29 Uhr -0800 Rich Dunkle wrote: > softdep_disk_prewrite+0x44 > > I reported this in freebsd-current on Friday > > Does anyone else see this ? I see this on i386 using Lex Mini-ITX-Mainboard CV860A with VIA VT8601A/VT82C686B Chipset. I would have reported this, but I didn't have the time to investigate it any further than stumbling over it. (I would like to rule out bad hardware first.) -Andreas From owner-freebsd-amd64@FreeBSD.ORG Mon Mar 29 11:01:36 2004 Return-Path: Delivered-To: freebsd-amd64@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id CEA0116A4CE for ; Mon, 29 Mar 2004 11:01:36 -0800 (PST) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id C871A43D1F for ; Mon, 29 Mar 2004 11:01:36 -0800 (PST) (envelope-from owner-bugmaster@freebsd.org) Received: from freefall.freebsd.org (peter@localhost [127.0.0.1]) by freefall.freebsd.org (8.12.10/8.12.10) with ESMTP id i2TJ1abv083743 for ; Mon, 29 Mar 2004 11:01:36 -0800 (PST) (envelope-from owner-bugmaster@freebsd.org) Received: (from peter@localhost) by freefall.freebsd.org (8.12.10/8.12.10/Submit) id i2TJ1Z8T083737 for freebsd-amd64@freebsd.org; Mon, 29 Mar 2004 11:01:35 -0800 (PST) (envelope-from owner-bugmaster@freebsd.org) Date: Mon, 29 Mar 2004 11:01:35 -0800 (PST) Message-Id: <200403291901.i2TJ1Z8T083737@freefall.freebsd.org> X-Authentication-Warning: freefall.freebsd.org: peter set sender to owner-bugmaster@freebsd.org using -f From: FreeBSD bugmaster To: freebsd-amd64@FreeBSD.org Subject: Current problem reports assigned to you X-BeenThere: freebsd-amd64@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Porting FreeBSD to the AMD64 platform List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Mar 2004 19:01:36 -0000 Current FreeBSD problem reports Critical problems S Submitted Tracker Resp. Description ------------------------------------------------------------------------------- o [2003/11/26] amd64/59713 amd64 Delivered-To: freebsd-amd64@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 1D68116A4CE for ; Mon, 29 Mar 2004 16:57:27 -0800 (PST) Received: from mtaw4.prodigy.net (mtaw4.prodigy.net [64.164.98.52]) by mx1.FreeBSD.org (Postfix) with ESMTP id EB80E43D1F for ; Mon, 29 Mar 2004 16:57:26 -0800 (PST) (envelope-from kris@obsecurity.org) Received: from obsecurity.dyndns.org (46438ab6d22d362ab8172110a99c4728@adsl-67-115-73-128.dsl.lsan03.pacbell.net [67.115.73.128]) by mtaw4.prodigy.net (8.12.10/8.12.10) with ESMTP id i2U0vPfG002329 for ; Mon, 29 Mar 2004 16:57:26 -0800 (PST) Received: by obsecurity.dyndns.org (Postfix, from userid 1000) id 2F4C052322; Mon, 29 Mar 2004 16:57:25 -0800 (PST) Date: Mon, 29 Mar 2004 16:57:25 -0800 From: Kris Kennaway To: amd64@FreeBSD.org Message-ID: <20040330005724.GA23942@xor.obsecurity.org> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="YZ5djTAD1cGYuMQK" Content-Disposition: inline User-Agent: Mutt/1.4.2.1i Subject: New packages uploaded X-BeenThere: freebsd-amd64@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Porting FreeBSD to the AMD64 platform List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Mar 2004 00:57:27 -0000 --YZ5djTAD1cGYuMQK Content-Type: text/plain; charset=us-ascii Content-Disposition: inline I have just uploaded a full set (8234) of amd64 packages to ftp-master, which cover Peter's recent change to stack alignment that may have caused binary compatibility problems for some ports. Expect them to show up at your local mirror over the next day or so. Kris --YZ5djTAD1cGYuMQK Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (FreeBSD) iD8DBQFAaMX0Wry0BWjoQKURAr96AJ4yVsqsqb8vdLNx2aAUsr6rCLSVgwCfd0gY a51B3XICpm4Nyw3t/yw52Z4= =50L7 -----END PGP SIGNATURE----- --YZ5djTAD1cGYuMQK-- From owner-freebsd-amd64@FreeBSD.ORG Mon Mar 29 21:35:16 2004 Return-Path: Delivered-To: freebsd-amd64@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E005A16A4CE; Mon, 29 Mar 2004 21:35:16 -0800 (PST) Received: from freebsd-current.sentex.ca (freebsd-current.sentex.ca [64.7.128.98]) by mx1.FreeBSD.org (Postfix) with ESMTP id BFC4943D46; Mon, 29 Mar 2004 21:35:16 -0800 (PST) (envelope-from tinderbox@freebsd.org) Received: by freebsd-current.sentex.ca (Postfix, from userid 666) id 40BDA7303A; Tue, 30 Mar 2004 00:35:16 -0500 (EST) Sender: FreeBSD Tinderbox From: FreeBSD Tinderbox To: FreeBSD Tinderbox , , Precedence: bulk Message-Id: <20040330053516.40BDA7303A@freebsd-current.sentex.ca> Date: Tue, 30 Mar 2004 00:35:16 -0500 (EST) Subject: [current tinderbox] failure on amd64/amd64 X-BeenThere: freebsd-amd64@freebsd.org X-Mailman-Version: 2.1.1 List-Id: Porting FreeBSD to the AMD64 platform List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Mar 2004 05:35:17 -0000 TB --- 2004-03-30 04:09:58 - tinderbox 2.3 running on freebsd-current.sentex.ca TB --- 2004-03-30 04:09:58 - starting CURRENT tinderbox run for amd64/amd64 TB --- 2004-03-30 04:09:58 - checking out the source tree TB --- 2004-03-30 04:09:58 - cd /home/tinderbox/sandbox/CURRENT/amd64/amd64 TB --- 2004-03-30 04:09:58 - /usr/bin/cvs -f -R -q -d/home/ncvs update -Pd -A src TB --- 2004-03-30 04:15:41 - Use of uninitialized value in concatenation (.) or string at /home/tinderbox/bin/tinderbox line 544. TB --- 2004-03-30 04:15:41 - building world (CFLAGS={'CFLAGS'}) TB --- 2004-03-30 04:15:41 - cd /home/tinderbox/sandbox/CURRENT/amd64/amd64/src TB --- 2004-03-30 04:15:41 - /usr/bin/make -B buildworld >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries [...] ranlib libdevstat.a cc -fpic -DPIC -O2 -pipe -I/other/tinderbox/CURRENT/amd64/amd64/src/lib/libdevstat -Wsystem-headers -Werror -Wall -Wno-format-y2k -Wno-uninitialized -c /other/tinderbox/CURRENT/amd64/amd64/src/lib/libdevstat/devstat.c -o devstat.So building shared library libdevstat.so.4 ===> lib/libdisk cc -O2 -pipe -I/other/tinderbox/CURRENT/amd64/amd64/src/lib/libdisk/../../sys/geom -Wsystem-headers -Werror -Wall -Wno-format-y2k -W -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wreturn-type -Wcast-qual -Wwrite-strings -Wswitch -Wshadow -Wcast-align -Wno-uninitialized -c /other/tinderbox/CURRENT/amd64/amd64/src/lib/libdisk/blocks.c cc -O2 -pipe -I/other/tinderbox/CURRENT/amd64/amd64/src/lib/libdisk/../../sys/geom -Wsystem-headers -Werror -Wall -Wno-format-y2k -W -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wreturn-type -Wcast-qual -Wwrite-strings -Wswitch -Wshadow -Wcast-align -Wno-uninitialized -c /other/tinderbox/CURRENT/amd64/amd64/src/lib/libdisk/change.c /other/tinderbox/CURRENT/amd64/amd64/src/lib/libdisk/change.c: In function `Sanitize_Bios_Geom': /other/tinderbox/CURRENT/amd64/amd64/src/lib/libdisk/change.c:52: warning: comparison between signed and unsigned *** Error code 1 Stop in /other/tinderbox/CURRENT/amd64/amd64/src/lib/libdisk. *** Error code 1 Stop in /other/tinderbox/CURRENT/amd64/amd64/src/lib. *** Error code 1 Stop in /other/tinderbox/CURRENT/amd64/amd64/src. *** Error code 1 Stop in /other/tinderbox/CURRENT/amd64/amd64/src. *** Error code 1 Stop in /other/tinderbox/CURRENT/amd64/amd64/src. *** Error code 1 Stop in /other/tinderbox/CURRENT/amd64/amd64/src. TB --- 2004-03-30 05:35:15 - WARNING: /usr/bin/make returned exit code 1 TB --- 2004-03-30 05:35:15 - ERROR: failed to build world TB --- 2004-03-30 05:35:15 - tinderbox aborted From owner-freebsd-amd64@FreeBSD.ORG Tue Mar 30 14:11:27 2004 Return-Path: Delivered-To: freebsd-amd64@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 6B81116A4CE for ; Tue, 30 Mar 2004 14:11:27 -0800 (PST) Received: from freebee.digiware.nl (dsl390.iae.nl [212.61.63.138]) by mx1.FreeBSD.org (Postfix) with ESMTP id 5DAA643D3F for ; Tue, 30 Mar 2004 14:11:26 -0800 (PST) (envelope-from wjw@withagen.nl) Received: from dual (dual [212.61.27.71]) by freebee.digiware.nl (8.12.10/8.12.9) with SMTP id i2UM7MeL077663 for ; Wed, 31 Mar 2004 00:07:22 +0200 (CEST) (envelope-from wjw@withagen.nl) Message-ID: <03c701c416a3$8d2c2f60$471b3dd4@dual> From: "Willem Jan Withagen" To: Date: Wed, 31 Mar 2004 00:08:37 +0200 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1158 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 Subject: AMD overview document missing X-BeenThere: freebsd-amd64@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Porting FreeBSD to the AMD64 platform List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Mar 2004 22:11:27 -0000 Hi, On the amd64 port page is a link to: AMD x86-64 Architecture Specification but it is no longer on the place indicated. Searching the amd website does not reveil something that seems to look like it. Does anybody have a copy???? Thanx, --WjW From owner-freebsd-amd64@FreeBSD.ORG Tue Mar 30 14:27:54 2004 Return-Path: Delivered-To: freebsd-amd64@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 15AA116A4CF for ; Tue, 30 Mar 2004 14:27:54 -0800 (PST) Received: from host142.ipowerweb.com (host142.ipowerweb.com [66.235.193.61]) by mx1.FreeBSD.org (Postfix) with SMTP id CF3C743D45 for ; Tue, 30 Mar 2004 14:27:53 -0800 (PST) (envelope-from jem@thejemreport.com) Received: (qmail 27903 invoked from network); 30 Mar 2004 22:27:07 -0000 Received: from unknown (HELO thejemreport.com) (66.67.130.234) by host142.ipowerweb.com with SMTP; 30 Mar 2004 22:27:07 -0000 Message-ID: <4069F399.90201@thejemreport.com> Date: Tue, 30 Mar 2004 17:24:25 -0500 From: Jem Matzan User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.6) Gecko/20040319 X-Accept-Language: en-us, en MIME-Version: 1.0 To: freebsd-amd64@freebsd.org References: <03c701c416a3$8d2c2f60$471b3dd4@dual> In-Reply-To: <03c701c416a3$8d2c2f60$471b3dd4@dual> Content-Type: multipart/mixed; boundary="------------040109030707030207060107" X-Content-Filtered-By: Mailman/MimeDel 2.1.1 Subject: Re: AMD overview document missing X-BeenThere: freebsd-amd64@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Porting FreeBSD to the AMD64 platform List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Mar 2004 22:27:54 -0000 This is a multi-part message in MIME format. --------------040109030707030207060107 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Willem Jan Withagen wrote: >Hi, > >On the amd64 port page is a link to: > > AMD x86-64 Architecture Specification > >but it is no longer on the place indicated. >Searching the amd website does not reveil something that >seems to look like it. > >Does anybody have a copy???? > >Thanx, >--WjW > >_______________________________________________ >freebsd-amd64@freebsd.org mailing list >http://lists.freebsd.org/mailman/listinfo/freebsd-amd64 >To unsubscribe, send any mail to "freebsd-amd64-unsubscribe@freebsd.org" > > > > http://www.thejemreport.com/files/AMD64API.pdf I'll leave it up for a while, so if anyone else wants it, have at. -Jem --------------040109030707030207060107-- From owner-freebsd-amd64@FreeBSD.ORG Tue Mar 30 15:40:46 2004 Return-Path: Delivered-To: freebsd-amd64@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 8036B16A4CE for ; Tue, 30 Mar 2004 15:40:46 -0800 (PST) Received: from freebee.digiware.nl (dsl390.iae.nl [212.61.63.138]) by mx1.FreeBSD.org (Postfix) with ESMTP id 21C7343D41 for ; Tue, 30 Mar 2004 15:40:45 -0800 (PST) (envelope-from wjw@withagen.nl) Received: from dual (dual [212.61.27.71]) by freebee.digiware.nl (8.12.10/8.12.9) with SMTP id i2UNaeeL079811; Wed, 31 Mar 2004 01:36:41 +0200 (CEST) (envelope-from wjw@withagen.nl) Message-ID: <04e601c416b0$079be950$471b3dd4@dual> From: "Willem Jan Withagen" To: "Jem Matzan" , References: <03c701c416a3$8d2c2f60$471b3dd4@dual> <4069F399.90201@thejemreport.com> Date: Wed, 31 Mar 2004 01:37:56 +0200 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1158 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 Subject: Re: AMD overview document missing X-BeenThere: freebsd-amd64@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Porting FreeBSD to the AMD64 platform List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Mar 2004 23:40:46 -0000 ----- Original Message ----- From: "Jem Matzan" > >On the amd64 port page is a link to: > > > > AMD x86-64 Architecture Specification > > > >but it is no longer on the place indicated. > >Searching the amd website does not reveil something that > >seems to look like it. > > > >Does anybody have a copy???? > http://www.thejemreport.com/files/AMD64API.pdf > > I'll leave it up for a while, so if anyone else wants it, have at. > > -Jem Is this is the document then they are still online, only the naming has changed.... It is now called: http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/24592.pdf Somebody cares to fix the amd64-port page??? --WjW From owner-freebsd-amd64@FreeBSD.ORG Tue Mar 30 23:36:04 2004 Return-Path: Delivered-To: freebsd-amd64@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E9B1E16A4CE for ; Tue, 30 Mar 2004 23:36:04 -0800 (PST) Received: from canning.wemm.org (canning.wemm.org [192.203.228.65]) by mx1.FreeBSD.org (Postfix) with ESMTP id C94D843D69 for ; Tue, 30 Mar 2004 23:36:04 -0800 (PST) (envelope-from peter@evilpete.dyndns.org) Received: from fw.wemm.org (canning.wemm.org [192.203.228.65]) by canning.wemm.org (Postfix) with ESMTP id 88AF12A7EA for ; Tue, 30 Mar 2004 23:36:04 -0800 (PST) (envelope-from peter@overcee.wemm.org) Received: from overcee.wemm.org (overcee.wemm.org [10.0.0.3]) by fw.wemm.org (Postfix) with ESMTP id 9EF87E259 for ; Tue, 30 Mar 2004 23:36:05 -0800 (PST) (envelope-from peter@overcee.wemm.org) Received: from overcee.wemm.org (localhost [127.0.0.1]) by overcee.wemm.org (8.12.11/8.12.11) with ESMTP id i2V7ZGLp037460 for ; Tue, 30 Mar 2004 23:35:16 -0800 (PST) (envelope-from peter@overcee.wemm.org) Received: from localhost (localhost [[UNIX: localhost]]) by overcee.wemm.org (8.12.11/8.12.11/Submit) id i2V7ZGPK037459 for freebsd-amd64@freebsd.org; Tue, 30 Mar 2004 23:35:16 -0800 (PST) (envelope-from peter) From: Peter Wemm Date: Tue, 30 Mar 2004 23:35:16 -0800 User-Agent: KMail/1.6.1 To: freebsd-amd64@freebsd.org MIME-Version: 1.0 Content-Disposition: inline Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <200403302335.16357.peter@wemm.org> Subject: HEADS UP: cvs commit: src/lib/libc/amd64/gen makecontext.c signalcontext.c X-BeenThere: freebsd-amd64@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Porting FreeBSD to the AMD64 platform List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Mar 2004 07:36:05 -0000 I've found another stack alignment bug. This one is an easy fix, it just needs a libc rebuild/install. Can I get a sanity check from the folks who can break ogg123? I actually found this using ogg123 in case you're interested. ---------- Forwarded Message ---------- Subject: cvs commit: src/lib/libc/amd64/gen makecontext.c signalcontext.c Date: Tuesday 30 March 2004 11:27 pm From: Peter Wemm To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org peter 2004/03/30 23:27:31 PST FreeBSD src repository Modified files: lib/libc/amd64/gen makecontext.c signalcontext.c Log: Fix Yet Another 16 byte stack alignment bug. Thankfully, this one is solved by a simple 'make world'. The signalcontext function was going to the trouble of generating an even 16 byte alignment, but in fact it needed to be odd aligned to simulate the 8-byte return address having been pushed by the caller. This fixes yet another group of crashes in applications using libpthread. And yet again, it was my fault all along. While here, rename the duplicate internal ctx_wrapper() functions to makectx_wrapper() and sigctx_wrapper() so that traces aren't ambiguous. Revision Changes Path 1.3 +3 -3 src/lib/libc/amd64/gen/makecontext.c 1.3 +7 -7 src/lib/libc/amd64/gen/signalcontext.c ------------------------------------------------------- -- Peter Wemm - peter@wemm.org; peter@FreeBSD.org; peter@yahoo-inc.com "All of this is for nothing if we don't go to the stars" - JMS/B5 From owner-freebsd-amd64@FreeBSD.ORG Wed Mar 31 00:07:53 2004 Return-Path: Delivered-To: freebsd-amd64@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 11CA916A4CE for ; Wed, 31 Mar 2004 00:07:53 -0800 (PST) Received: from farside.isc.org (farside.isc.org [204.152.187.5]) by mx1.FreeBSD.org (Postfix) with ESMTP id EAC9E43D58 for ; Wed, 31 Mar 2004 00:07:52 -0800 (PST) (envelope-from Peter_Losher@isc.org) Received: by farside.isc.org (Postfix, from userid 10188) id C45B5A84A; Wed, 31 Mar 2004 08:07:52 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by farside.isc.org (Postfix) with ESMTP id C151FA847 for ; Wed, 31 Mar 2004 08:07:52 +0000 (UTC) (envelope-from plosher@isc.org) Date: Wed, 31 Mar 2004 08:07:52 +0000 (UTC) From: Peter Losher To: freebsd-amd64@freebsd.org Message-ID: <20040331074508.M42491@farside.isc.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Subject: mod_perl2 and libperl.a and -fPIC... X-BeenThere: freebsd-amd64@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Porting FreeBSD to the AMD64 platform List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Mar 2004 08:07:53 -0000 I am trying to compile mod_perl2 as a DSO on my amd64 system, and cam across this error.. -=- /usr/bin/ld: /usr/local/lib/perl5/5.6.1/mach/CORE/libperl.a(perl.o): relocation R_X86_64_32S can not be used when making a shared object; recompile with -fPIC /usr/local/lib/perl5/5.6.1/mach/CORE/libperl.a: could not read symbols: Bad value *** Error code 1 Stop in /usr/ports/www/mod_perl2/work/mod_perl-1.99_12/src/modules/perl. *** Error code 1 -=- Now as I understand it perl is built w/ -fPIC (even rebuilt the port to be sure), so is there something else at work here? Best Wishes - Peter -- Peter_Losher@isc.org | ISC | OpenPGP 0xE8048D08 | "The bits must flow" From owner-freebsd-amd64@FreeBSD.ORG Wed Mar 31 00:28:50 2004 Return-Path: Delivered-To: freebsd-amd64@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id C7E3316A4CE for ; Wed, 31 Mar 2004 00:28:50 -0800 (PST) Received: from canning.wemm.org (canning.wemm.org [192.203.228.65]) by mx1.FreeBSD.org (Postfix) with ESMTP id B71A843D31 for ; Wed, 31 Mar 2004 00:28:50 -0800 (PST) (envelope-from peter@evilpete.dyndns.org) Received: from fw.wemm.org (canning.wemm.org [192.203.228.65]) by canning.wemm.org (Postfix) with ESMTP id 979DF2A7EA for ; Wed, 31 Mar 2004 00:28:50 -0800 (PST) (envelope-from peter@overcee.wemm.org) Received: from overcee.wemm.org (overcee.wemm.org [10.0.0.3]) by fw.wemm.org (Postfix) with ESMTP id 96FEBE259 for ; Wed, 31 Mar 2004 00:28:51 -0800 (PST) (envelope-from peter@overcee.wemm.org) Received: from overcee.wemm.org (localhost [127.0.0.1]) by overcee.wemm.org (8.12.11/8.12.11) with ESMTP id i2V8S2lQ038034; Wed, 31 Mar 2004 00:28:02 -0800 (PST) (envelope-from peter@overcee.wemm.org) Received: from localhost (localhost [[UNIX: localhost]]) by overcee.wemm.org (8.12.11/8.12.11/Submit) id i2V8S2lI038033; Wed, 31 Mar 2004 00:28:02 -0800 (PST) (envelope-from peter) From: Peter Wemm To: freebsd-amd64@freebsd.org Date: Wed, 31 Mar 2004 00:28:02 -0800 User-Agent: KMail/1.6.1 References: <20040331074508.M42491@farside.isc.org> In-Reply-To: <20040331074508.M42491@farside.isc.org> MIME-Version: 1.0 Content-Disposition: inline Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <200403310028.02495.peter@wemm.org> Subject: Re: mod_perl2 and libperl.a and -fPIC... X-BeenThere: freebsd-amd64@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Porting FreeBSD to the AMD64 platform List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Mar 2004 08:28:50 -0000 On Wednesday 31 March 2004 12:07 am, Peter Losher wrote: > I am trying to compile mod_perl2 as a DSO on my amd64 system, and cam > across this error.. > > -=- > /usr/bin/ld: /usr/local/lib/perl5/5.6.1/mach/CORE/libperl.a(perl.o): > relocation R_X86_64_32S can not be used when making a shared object; > recompile with -fPIC > /usr/local/lib/perl5/5.6.1/mach/CORE/libperl.a: could not read > symbols: Bad value > *** Error code 1 > > Stop in > /usr/ports/www/mod_perl2/work/mod_perl-1.99_12/src/modules/perl. *** > Error code 1 > -=- > > Now as I understand it perl is built w/ -fPIC (even rebuilt the port > to be sure), so is there something else at work here? Yeah, the perl5.6.1 port doesn't build a shared object, so it can't be embedded inside another shared object. However, the perl5.8 port does have shared object support enabled. Don't ask me why 5.6.1 doesn't do it though. :-) > Best Wishes - Peter -- Peter Wemm - peter@wemm.org; peter@FreeBSD.org; peter@yahoo-inc.com "All of this is for nothing if we don't go to the stars" - JMS/B5 From owner-freebsd-amd64@FreeBSD.ORG Wed Mar 31 00:46:33 2004 Return-Path: Delivered-To: freebsd-amd64@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id BBBF416A4CE; Wed, 31 Mar 2004 00:46:33 -0800 (PST) Received: from mta4.rcsntx.swbell.net (mta4.rcsntx.swbell.net [151.164.30.28]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7208943D48; Wed, 31 Mar 2004 00:46:33 -0800 (PST) (envelope-from kris@obsecurity.org) Received: from obsecurity.dyndns.org (57a4f8c727301f7cf14e8e8ec9316057@adsl-67-115-73-128.dsl.lsan03.pacbell.net [67.115.73.128])i2V8kVbF008930; Wed, 31 Mar 2004 02:46:31 -0600 (CST) Received: by obsecurity.dyndns.org (Postfix, from userid 1000) id F2DB251A72; Wed, 31 Mar 2004 00:46:30 -0800 (PST) Date: Wed, 31 Mar 2004 00:46:30 -0800 From: Kris Kennaway To: Burkard Meyendriesch Message-ID: <20040331084630.GA46610@xor.obsecurity.org> References: <20040320141343.37a38cc2.bm@malepartus.de> <20040321000001.GA40310@xor.obsecurity.org> <20040331092247.6de3b225.bm@malepartus.de> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="M9NhX3UHpAaciwkO" Content-Disposition: inline In-Reply-To: <20040331092247.6de3b225.bm@malepartus.de> User-Agent: Mutt/1.4.2.1i cc: freebsd-amd64@freebsd.org cc: freebsd-ports@freebsd.org cc: Kris Kennaway Subject: Re: amd64 -CURRENT: still problems with shared libraries X-BeenThere: freebsd-amd64@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Porting FreeBSD to the AMD64 platform List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Mar 2004 08:46:33 -0000 --M9NhX3UHpAaciwkO Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Wed, Mar 31, 2004 at 09:22:47AM +0200, Burkard Meyendriesch wrote: > Hi Kris, >=20 > sorry to disturb you again with my shared libraries problem. I can not > find the cause of the strange behaviour of the ports system (maybe the > reason is that I don't fully understand the autoconf, configure, libtool > mechanism). >=20 > For example: If I try to compile and install libiconv: >=20 > # cd /usr/ports/converters/libiconv > # make clean > # make > # ls -l work/libiconv-1.9.1/lib/.libs > -rw-r--r-- 1 root wheel 1052434 31 Mr 08:45 libiconv.a > lrwxr-xr-x 1 root wheel 14 31 Mr 08:45 libiconv.la -> ../libiconv= .la > -rw-r--r-- 1 root wheel 619 31 Mr 08:45 libiconv.lai >=20 > I only get the static version of the library. It seems that libtool > decided not to build shared libraries: >=20 > # grep ^build_libtool_libs=3D work/libiconv-1.9.1/libtool > build_libtool_libs=3Dno >=20 > Even if I force the generation of the shared libs: > # cd /usr/ports/converters/libiconv/work/libiconv-1.9.1 > # make clean > # ./configure --enable-shared > # grep ^build_libtool_libs=3D libtool > build_libtool_libs=3Dno >=20 > the system refuses to do so. > (Find the complete config.status and libtool appended.) >=20 > My environment: > # uname -a > FreeBSD Reineke.Malepartus.de 5.2-CURRENT FreeBSD 5.2-CURRENT #15: Mon Ma= r 22 19:28:17 CET 2004 bm@Reineke.Malepartus.de:/usr/obj/usr/src/sys/RE= INEKE amd64 >=20 > An actual /usr/ports tree (31.03.2004 04:00 UTC), *no* options enabled=20 > in /etc/make.conf. >=20 > Any help how to locate and fix the problem welcome :-) > Burkard Something must be wrong with your libtool installation..try reinstalling th= e ports. Kris --M9NhX3UHpAaciwkO Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (FreeBSD) iD8DBQFAaoVmWry0BWjoQKURAnULAKCpahjcvyBOvHkkNTbEwNFEhwVKSwCgvQ7W Sdfsn2oogDPWsgovPDh/qxU= =M46r -----END PGP SIGNATURE----- --M9NhX3UHpAaciwkO-- From owner-freebsd-amd64@FreeBSD.ORG Wed Mar 31 02:36:42 2004 Return-Path: Delivered-To: freebsd-amd64@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 999CA16A4CF; Wed, 31 Mar 2004 02:36:42 -0800 (PST) Received: from reineke.malepartus.de (reineke.malepartus.de [194.25.4.41]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7D83D43D6A; Wed, 31 Mar 2004 02:36:41 -0800 (PST) (envelope-from bm@reineke.malepartus.de) Received: from reineke.malepartus.de (localhost.malepartus.de [127.0.0.1]) i2VAaTUa098919; Wed, 31 Mar 2004 12:36:29 +0200 (CEST) (envelope-from bm@reineke.malepartus.de) Received: (from bm@localhost) by reineke.malepartus.de (8.12.11/8.12.11/Submit) id i2VAaTsv098918; Wed, 31 Mar 2004 12:36:29 +0200 (CEST) (envelope-from bm) Date: Wed, 31 Mar 2004 12:36:29 +0200 From: Burkard Meyendriesch To: Kris Kennaway Message-Id: <20040331123629.11efe20f.bm@malepartus.de> In-Reply-To: <20040331084630.GA46610@xor.obsecurity.org> References: <20040320141343.37a38cc2.bm@malepartus.de> <20040321000001.GA40310@xor.obsecurity.org> <20040331092247.6de3b225.bm@malepartus.de> <20040331084630.GA46610@xor.obsecurity.org> Organization: The Home of Reineke Fuchs X-Mailer: Sylpheed version 0.9.10 (GTK+ 1.2.10; amd64-portbld-freebsd5.2.1) X-Face: "[-; ]oI+8gP9>*J%knDN8d%DuhvJS2Lj4L\bRb7gz(pcT?2Zh6_Vam_6csAum3$<&lhAFd^ jt|!&Ut1C~Vg*E/q}+#cbFg-GU]c.bB8Ad,L'W$'9{^0y'AzM4#hS[C[F-1'|O; Kg3Vrq5q6dsU*TmJ@}+QPM\ b[^9Rhd,UoMpRpd5k[X=h.Dom*kbT`cNQ Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Malepartus-MailScanner-Information: Please contact the ISP for more information X-Malepartus-MailScanner: Found to be clean X-MailScanner-From: bm@reineke.malepartus.de cc: freebsd-amd64@freebsd.org cc: freebsd-ports@freebsd.org Subject: Re: amd64 -CURRENT: still problems with shared libraries X-BeenThere: freebsd-amd64@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Porting FreeBSD to the AMD64 platform List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Mar 2004 10:36:42 -0000 On Wed, 31 Mar 2004 00:46:30 -0800 Kris Kennaway wrote: > Something must be wrong with your libtool installation..try > reinstalling the ports. Okay; I had three versions of libtool on my system: # pkg_info | grep libtool libtool-1.3.5_2 Generic shared library support script (version 1.3) libtool-1.4.3_3 Generic shared library support script (version 1.4) libtool-1.5.2_1 Generic shared library support script (version 1.5) I pkg_deinstall'ed them all: # pkg_deinstall -f libtool-1.3.5_2 libtool-1.4.3_3 libtool-1.5.2_1 Then I tried again to install libiconv: # portinstall -f converters/libiconv This installs libtool-1.3.5_2 but still results in the same problem: no shared library: # ls -ltr /usr/local/lib/libiconv.* -rw-r--r-- 1 root wheel 1052434 31 Mr 12:26 /usr/local/lib/libiconv.a ---- /usr/ports/converters/libiconv/work/libiconv-1.9.1/libtool ---- # Whether or not to build shared libraries. build_libtool_libs=no # Whether or not to build static libraries. build_old_libs=yes -------------------------------------------------------------------- Still the same behaviour :-( Even if I force ./configure --enable-shared Burkard -- Burkard Meyendriesch Stevern 2 D-48301 Nottuln From owner-freebsd-amd64@FreeBSD.ORG Tue Mar 30 23:23:18 2004 Return-Path: Delivered-To: freebsd-amd64@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 0E23216A4CE; Tue, 30 Mar 2004 23:23:18 -0800 (PST) Received: from reineke.malepartus.de (reineke.malepartus.de [194.25.4.41]) by mx1.FreeBSD.org (Postfix) with ESMTP id 6F2F143D1D; Tue, 30 Mar 2004 23:22:53 -0800 (PST) (envelope-from bm@reineke.malepartus.de) Received: from reineke.malepartus.de (localhost.malepartus.de [127.0.0.1]) i2V7MlKF063130; Wed, 31 Mar 2004 09:22:47 +0200 (CEST) (envelope-from bm@reineke.malepartus.de) Received: (from bm@localhost) by reineke.malepartus.de (8.12.11/8.12.11/Submit) id i2V7Ml25063129; Wed, 31 Mar 2004 09:22:47 +0200 (CEST) (envelope-from bm) Date: Wed, 31 Mar 2004 09:22:47 +0200 From: Burkard Meyendriesch To: Kris Kennaway Message-Id: <20040331092247.6de3b225.bm@malepartus.de> In-Reply-To: <20040321000001.GA40310@xor.obsecurity.org> References: <20040320141343.37a38cc2.bm@malepartus.de> <20040321000001.GA40310@xor.obsecurity.org> Organization: The Home of Reineke Fuchs X-Mailer: Sylpheed version 0.9.10 (GTK+ 1.2.10; amd64-portbld-freebsd5.2.1) X-Face: "[-; ]oI+8gP9>*J%knDN8d%DuhvJS2Lj4L\bRb7gz(pcT?2Zh6_Vam_6csAum3$<&lhAFd^ jt|!&Ut1C~Vg*E/q}+#cbFg-GU]c.bB8Ad,L'W$'9{^0y'AzM4#hS[C[F-1'|O; Kg3Vrq5q6dsU*TmJ@}+QPM\ b[^9Rhd,UoMpRpd5k[X=h.Dom*kbT`cNQ Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="Multipart=_Wed__31_Mar_2004_09_22_47_+0200_IVAWlh/MouLt7b_T" X-Malepartus-MailScanner-Information: Please contact the ISP for more information X-Malepartus-MailScanner: Found to be clean X-MailScanner-From: bm@reineke.malepartus.de X-Mailman-Approved-At: Wed, 31 Mar 2004 04:32:02 -0800 cc: freebsd-amd64@freebsd.org cc: freebsd-ports@freebsd.org Subject: amd64 -CURRENT: still problems with shared libraries X-BeenThere: freebsd-amd64@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Porting FreeBSD to the AMD64 platform List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Mar 2004 07:23:18 -0000 This is a multi-part message in MIME format. --Multipart=_Wed__31_Mar_2004_09_22_47_+0200_IVAWlh/MouLt7b_T Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Hi Kris, sorry to disturb you again with my shared libraries problem. I can not find the cause of the strange behaviour of the ports system (maybe the reason is that I don't fully understand the autoconf, configure, libtool mechanism). For example: If I try to compile and install libiconv: # cd /usr/ports/converters/libiconv # make clean # make # ls -l work/libiconv-1.9.1/lib/.libs -rw-r--r-- 1 root wheel 1052434 31 Mr 08:45 libiconv.a lrwxr-xr-x 1 root wheel 14 31 Mr 08:45 libiconv.la -> ../libiconv.la -rw-r--r-- 1 root wheel 619 31 Mr 08:45 libiconv.lai I only get the static version of the library. It seems that libtool decided not to build shared libraries: # grep ^build_libtool_libs= work/libiconv-1.9.1/libtool build_libtool_libs=no Even if I force the generation of the shared libs: # cd /usr/ports/converters/libiconv/work/libiconv-1.9.1 # make clean # ./configure --enable-shared # grep ^build_libtool_libs= libtool build_libtool_libs=no the system refuses to do so. (Find the complete config.status and libtool appended.) My environment: # uname -a FreeBSD Reineke.Malepartus.de 5.2-CURRENT FreeBSD 5.2-CURRENT #15: Mon Mar 22 19:28:17 CET 2004 bm@Reineke.Malepartus.de:/usr/obj/usr/src/sys/REINEKE amd64 An actual /usr/ports tree (31.03.2004 04:00 UTC), *no* options enabled in /etc/make.conf. Any help how to locate and fix the problem welcome :-) Burkard -- Burkard Meyendriesch Stevern 2 D-48301 Nottuln --Multipart=_Wed__31_Mar_2004_09_22_47_+0200_IVAWlh/MouLt7b_T Content-Type: application/octet-stream; name="config.status" Content-Disposition: attachment; filename="config.status" Content-Transfer-Encoding: base64 IyEgL2Jpbi9iYXNoCiMgR2VuZXJhdGVkIGJ5IGNvbmZpZ3VyZS4KIyBSdW4gdGhpcyBmaWxlIHRv IHJlY3JlYXRlIHRoZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24uCiMgQ29tcGlsZXIgb3V0cHV0IHBy b2R1Y2VkIGJ5IGNvbmZpZ3VyZSwgdXNlZnVsIGZvciBkZWJ1Z2dpbmcKIyBjb25maWd1cmUsIGlz IGluIGNvbmZpZy5sb2cgaWYgaXQgZXhpc3RzLgoKZGVidWc9ZmFsc2UKYWNfY3NfcmVjaGVjaz1m YWxzZQphY19jc19zaWxlbnQ9ZmFsc2UKU0hFTEw9JHtDT05GSUdfU0hFTEwtL2Jpbi9iYXNofQoj IyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKIyMgTTRzaCBJbml0aWFsaXphdGlvbi4gICMjCiMj IC0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwoKIyBCZSBCb3VybmUgY29tcGF0aWJsZQppZiB0ZXN0 IC1uICIke1pTSF9WRVJTSU9OK3NldH0iICYmIChlbXVsYXRlIHNoKSA+L2Rldi9udWxsIDI+JjE7 IHRoZW4KICBlbXVsYXRlIHNoCiAgTlVMTENNRD06CiAgIyBac2ggMy54IGFuZCA0LnggcGVyZm9y bXMgd29yZCBzcGxpdHRpbmcgb24gJHsxKyIkQCJ9LCB3aGljaAogICMgaXMgY29udHJhcnkgdG8g b3VyIHVzYWdlLiAgRGlzYWJsZSB0aGlzIGZlYXR1cmUuCiAgYWxpYXMgLWcgJyR7MSsiJEAifSc9 JyIkQCInCmVsaWYgdGVzdCAtbiAiJHtCQVNIX1ZFUlNJT04rc2V0fSIgJiYgKHNldCAtbyBwb3Np eCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCiAgc2V0IC1vIHBvc2l4CmZpCgojIFN1cHBvcnQgdW5z ZXQgd2hlbiBwb3NzaWJsZS4KaWYgKEZPTz1GT087IHVuc2V0IEZPTykgPi9kZXYvbnVsbCAyPiYx OyB0aGVuCiAgYXNfdW5zZXQ9dW5zZXQKZWxzZQogIGFzX3Vuc2V0PWZhbHNlCmZpCgoKIyBXb3Jr IGFyb3VuZCBidWdzIGluIHByZS0zLjAgVVdJTiBrc2guCiRhc191bnNldCBFTlYgTUFJTCBNQUlM UEFUSApQUzE9JyQgJwpQUzI9Jz4gJwpQUzQ9JysgJwoKIyBOTFMgbnVpc2FuY2VzLgpmb3IgYXNf dmFyIGluIFwKICBMQU5HIExBTkdVQUdFIExDX0FERFJFU1MgTENfQUxMIExDX0NPTExBVEUgTENf Q1RZUEUgTENfSURFTlRJRklDQVRJT04gXAogIExDX01FQVNVUkVNRU5UIExDX01FU1NBR0VTIExD X01PTkVUQVJZIExDX05BTUUgTENfTlVNRVJJQyBMQ19QQVBFUiBcCiAgTENfVEVMRVBIT05FIExD X1RJTUUKZG8KICBpZiAoc2V0ICt4OyB0ZXN0IC1uICJgKGV2YWwgJGFzX3Zhcj1DOyBleHBvcnQg JGFzX3ZhcikgMj4mMWAiKTsgdGhlbgogICAgZXZhbCAkYXNfdmFyPUM7IGV4cG9ydCAkYXNfdmFy CiAgZWxzZQogICAgJGFzX3Vuc2V0ICRhc192YXIKICBmaQpkb25lCgojIFJlcXVpcmVkIHRvIHVz ZSBiYXNlbmFtZS4KaWYgZXhwciBhIDogJ1woYVwpJyA+L2Rldi9udWxsIDI+JjE7IHRoZW4KICBh c19leHByPWV4cHIKZWxzZQogIGFzX2V4cHI9ZmFsc2UKZmkKCmlmIChiYXNlbmFtZSAvKSA+L2Rl di9udWxsIDI+JjEgJiYgdGVzdCAiWGBiYXNlbmFtZSAvIDI+JjFgIiA9ICJYLyI7IHRoZW4KICBh c19iYXNlbmFtZT1iYXNlbmFtZQplbHNlCiAgYXNfYmFzZW5hbWU9ZmFsc2UKZmkKCgojIE5hbWUg b2YgdGhlIGV4ZWN1dGFibGUuCmFzX21lPWAkYXNfYmFzZW5hbWUgIiQwIiB8fAokYXNfZXhwciBY LyIkMCIgOiAnLiovXChbXi9dW14vXSpcKS8qJCcgXHwgXAoJIFgiJDAiIDogJ1hcKC8vXCkkJyBc fCBcCgkgWCIkMCIgOiAnWFwoL1wpJCcgXHwgXAoJIC4gICAgIDogJ1woLlwpJyAyPi9kZXYvbnVs bCB8fAplY2hvIFgvIiQwIiB8CiAgICBzZWQgJy9eLipcL1woW14vXVteL10qXClcLyokL3sgcy8v XDEvOyBxOyB9CiAgCSAgL15YXC9cKFwvXC9cKSQveyBzLy9cMS87IHE7IH0KICAJICAvXlhcL1wo XC9cKS4qL3sgcy8vXDEvOyBxOyB9CiAgCSAgcy8uKi8uLzsgcSdgCgoKIyBQQVRIIG5lZWRzIENS LCBhbmQgTElORU5PIG5lZWRzIENSIGFuZCBQQVRILgojIEF2b2lkIGRlcGVuZGluZyB1cG9uIENo YXJhY3RlciBSYW5nZXMuCmFzX2NyX2xldHRlcnM9J2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6 Jwphc19jcl9MRVRURVJTPSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWicKYXNfY3JfTGV0dGVy cz0kYXNfY3JfbGV0dGVycyRhc19jcl9MRVRURVJTCmFzX2NyX2RpZ2l0cz0nMDEyMzQ1Njc4OScK YXNfY3JfYWxudW09JGFzX2NyX0xldHRlcnMkYXNfY3JfZGlnaXRzCgojIFRoZSB1c2VyIGlzIGFs d2F5cyByaWdodC4KaWYgdGVzdCAiJHtQQVRIX1NFUEFSQVRPUitzZXR9IiAhPSBzZXQ7IHRoZW4K ICBlY2hvICIjISAvYmluL3NoIiA+Y29uZiQkLnNoCiAgZWNobyAgImV4aXQgMCIgICA+PmNvbmYk JC5zaAogIGNobW9kICt4IGNvbmYkJC5zaAogIGlmIChQQVRIPSIvbm9uZXhpc3RlbnQ7LiI7IGNv bmYkJC5zaCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCiAgICBQQVRIX1NFUEFSQVRPUj0nOycKICBl bHNlCiAgICBQQVRIX1NFUEFSQVRPUj06CiAgZmkKICBybSAtZiBjb25mJCQuc2gKZmkKCgogIGFz X2xpbmVub18xPSRMSU5FTk8KICBhc19saW5lbm9fMj0kTElORU5PCiAgYXNfbGluZW5vXzM9YChl eHByICRhc19saW5lbm9fMSArIDEpIDI+L2Rldi9udWxsYAogIHRlc3QgIngkYXNfbGluZW5vXzEi ICE9ICJ4JGFzX2xpbmVub18yIiAmJgogIHRlc3QgIngkYXNfbGluZW5vXzMiICA9ICJ4JGFzX2xp bmVub18yIiAgfHwgewogICMgRmluZCB3aG8gd2UgYXJlLiAgTG9vayBpbiB0aGUgcGF0aCBpZiB3 ZSBjb250YWluIG5vIHBhdGggYXQgYWxsCiAgIyByZWxhdGl2ZSBvciBub3QuCiAgY2FzZSAkMCBp bgogICAgKltcXC9dKiApIGFzX215c2VsZj0kMCA7OwogICAgKikgYXNfc2F2ZV9JRlM9JElGUzsg SUZTPSRQQVRIX1NFUEFSQVRPUgpmb3IgYXNfZGlyIGluICRQQVRICmRvCiAgSUZTPSRhc19zYXZl X0lGUwogIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCiAgdGVzdCAtciAiJGFzX2Rpci8k MCIgJiYgYXNfbXlzZWxmPSRhc19kaXIvJDAgJiYgYnJlYWsKZG9uZQoKICAgICAgIDs7CiAgZXNh YwogICMgV2UgZGlkIG5vdCBmaW5kIG91cnNlbHZlcywgbW9zdCBwcm9iYWJseSB3ZSB3ZXJlIHJ1 biBhcyBgc2ggQ09NTUFORCcKICAjIGluIHdoaWNoIGNhc2Ugd2UgYXJlIG5vdCB0byBiZSBmb3Vu ZCBpbiB0aGUgcGF0aC4KICBpZiB0ZXN0ICJ4JGFzX215c2VsZiIgPSB4OyB0aGVuCiAgICBhc19t eXNlbGY9JDAKICBmaQogIGlmIHRlc3QgISAtZiAiJGFzX215c2VsZiI7IHRoZW4KICAgIHsgeyBl Y2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBmaW5kIG15c2VsZjsgcmVydW4gd2l0 aCBhbiBhYnNvbHV0ZSBwYXRoIiA+JjUKZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGZpbmQg bXlzZWxmOyByZXJ1biB3aXRoIGFuIGFic29sdXRlIHBhdGgiID4mMjt9CiAgIHsgKGV4aXQgMSk7 IGV4aXQgMTsgfTsgfQogIGZpCiAgY2FzZSAkQ09ORklHX1NIRUxMIGluCiAgJycpCiAgICBhc19z YXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCmZvciBhc19kaXIgaW4gL2JpbiRQQVRI X1NFUEFSQVRPUi91c3IvYmluJFBBVEhfU0VQQVJBVE9SJFBBVEgKZG8KICBJRlM9JGFzX3NhdmVf SUZTCiAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KICBmb3IgYXNfYmFzZSBpbiBzaCBi YXNoIGtzaCBzaDU7IGRvCgkgY2FzZSAkYXNfZGlyIGluCgkgLyopCgkgICBpZiAoIiRhc19kaXIv JGFzX2Jhc2UiIC1jICcKICBhc19saW5lbm9fMT0kTElORU5PCiAgYXNfbGluZW5vXzI9JExJTkVO TwogIGFzX2xpbmVub18zPWAoZXhwciAkYXNfbGluZW5vXzEgKyAxKSAyPi9kZXYvbnVsbGAKICB0 ZXN0ICJ4JGFzX2xpbmVub18xIiAhPSAieCRhc19saW5lbm9fMiIgJiYKICB0ZXN0ICJ4JGFzX2xp bmVub18zIiAgPSAieCRhc19saW5lbm9fMiIgJykgMj4vZGV2L251bGw7IHRoZW4KCSAgICAgJGFz X3Vuc2V0IEJBU0hfRU5WIHx8IHRlc3QgIiR7QkFTSF9FTlYrc2V0fSIgIT0gc2V0IHx8IHsgQkFT SF9FTlY9OyBleHBvcnQgQkFTSF9FTlY7IH0KCSAgICAgJGFzX3Vuc2V0IEVOViB8fCB0ZXN0ICIk e0VOVitzZXR9IiAhPSBzZXQgfHwgeyBFTlY9OyBleHBvcnQgRU5WOyB9CgkgICAgIENPTkZJR19T SEVMTD0kYXNfZGlyLyRhc19iYXNlCgkgICAgIGV4cG9ydCBDT05GSUdfU0hFTEwKCSAgICAgZXhl YyAiJENPTkZJR19TSEVMTCIgIiQwIiAkezErIiRAIn0KCSAgIGZpOzsKCSBlc2FjCiAgICAgICBk b25lCmRvbmUKOzsKICBlc2FjCgogICMgQ3JlYXRlICRhc19tZS5saW5lbm8gYXMgYSBjb3B5IG9m ICRhc19teXNlbGYsIGJ1dCB3aXRoICRMSU5FTk8KICAjIHVuaWZvcm1seSByZXBsYWNlZCBieSB0 aGUgbGluZSBudW1iZXIuICBUaGUgZmlyc3QgJ3NlZCcgaW5zZXJ0cyBhCiAgIyBsaW5lLW51bWJl ciBsaW5lIGJlZm9yZSBlYWNoIGxpbmU7IHRoZSBzZWNvbmQgJ3NlZCcgZG9lcyB0aGUgcmVhbAog ICMgd29yay4gIFRoZSBzZWNvbmQgc2NyaXB0IHVzZXMgJ04nIHRvIHBhaXIgZWFjaCBsaW5lLW51 bWJlciBsaW5lCiAgIyB3aXRoIHRoZSBudW1iZXJlZCBsaW5lLCBhbmQgYXBwZW5kcyB0cmFpbGlu ZyAnLScgZHVyaW5nCiAgIyBzdWJzdGl0dXRpb24gc28gdGhhdCAkTElORU5PIGlzIG5vdCBhIHNw ZWNpYWwgY2FzZSBhdCBsaW5lIGVuZC4KICAjIChSYWphIFIgSGFyaW5hdGggc3VnZ2VzdGVkIHNl ZCAnPScsIGFuZCBQYXVsIEVnZ2VydCB3cm90ZSB0aGUKICAjIHNlY29uZCAnc2VkJyBzY3JpcHQu ICBCbGFtZSBMZWUgRS4gTWNNYWhvbiBmb3Igc2VkJ3Mgc3ludGF4LiAgOi0pCiAgc2VkICc9JyA8 JGFzX215c2VsZiB8CiAgICBzZWQgJwogICAgICBOCiAgICAgIHMsJCwtLAogICAgICA6IGxvb3AK ICAgICAgcyxeXChbJyRhc19jcl9kaWdpdHMnXSpcKVwoLipcKVskXUxJTkVOT1woW14nJGFzX2Ny X2FsbnVtJ19dXCksXDFcMlwxXDMsCiAgICAgIHQgbG9vcAogICAgICBzLC0kLCwKICAgICAgcyxe WyckYXNfY3JfZGlnaXRzJ10qXG4sLAogICAgJyA+JGFzX21lLmxpbmVubyAmJgogIGNobW9kICt4 ICRhc19tZS5saW5lbm8gfHwKICAgIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNh bm5vdCBjcmVhdGUgJGFzX21lLmxpbmVubzsgcmVydW4gd2l0aCBhIFBPU0lYIHNoZWxsIiA+JjUK ZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGNyZWF0ZSAkYXNfbWUubGluZW5vOyByZXJ1biB3 aXRoIGEgUE9TSVggc2hlbGwiID4mMjt9CiAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQoKICAj IERvbid0IHRyeSB0byBleGVjIGFzIGl0IGNoYW5nZXMgJFswXSwgY2F1c2luZyBhbGwgc29ydCBv ZiBwcm9ibGVtcwogICMgKHRoZSBkaXJuYW1lIG9mICRbMF0gaXMgbm90IHRoZSBwbGFjZSB3aGVy ZSB3ZSBtaWdodCBmaW5kIHRoZQogICMgb3JpZ2luYWwgYW5kIHNvIG9uLiAgQXV0b2NvbmYgaXMg ZXNwZWNpYWxseSBzZW5zaWJsZSB0byB0aGlzKS4KICAuIC4vJGFzX21lLmxpbmVubwogICMgRXhp dCBzdGF0dXMgaXMgdGhhdCBvZiB0aGUgbGFzdCBjb21tYW5kLgogIGV4aXQKfQoKCmNhc2UgYGVj aG8gInRlc3RpbmdcYyI7IGVjaG8gMSwyLDNgLGBlY2hvIC1uIHRlc3Rpbmc7IGVjaG8gMSwyLDNg IGluCiAgKmMqLC1uKikgRUNIT19OPSBFQ0hPX0M9JwonIEVDSE9fVD0nCScgOzsKICAqYyosKiAg KSBFQ0hPX049LW4gRUNIT19DPSBFQ0hPX1Q9IDs7CiAgKikgICAgICAgRUNIT19OPSBFQ0hPX0M9 J1xjJyBFQ0hPX1Q9IDs7CmVzYWMKCmlmIGV4cHIgYSA6ICdcKGFcKScgPi9kZXYvbnVsbCAyPiYx OyB0aGVuCiAgYXNfZXhwcj1leHByCmVsc2UKICBhc19leHByPWZhbHNlCmZpCgpybSAtZiBjb25m JCQgY29uZiQkLmV4ZSBjb25mJCQuZmlsZQplY2hvID5jb25mJCQuZmlsZQppZiBsbiAtcyBjb25m JCQuZmlsZSBjb25mJCQgMj4vZGV2L251bGw7IHRoZW4KICAjIFdlIGNvdWxkIGp1c3QgY2hlY2sg Zm9yIERKR1BQOyBidXQgdGhpcyB0ZXN0IGEpIHdvcmtzIGIpIGlzIG1vcmUgZ2VuZXJpYwogICMg YW5kIGMpIHdpbGwgcmVtYWluIHZhbGlkIG9uY2UgREpHUFAgc3VwcG9ydHMgc3ltbGlua3MgKERK R1BQIDIuMDQpLgogIGlmIHRlc3QgLWYgY29uZiQkLmV4ZTsgdGhlbgogICAgIyBEb24ndCB1c2Ug bG4gYXQgYWxsOyB3ZSBkb24ndCBoYXZlIGFueSBsaW5rcwogICAgYXNfbG5fcz0nY3AgLXAnCiAg ZWxzZQogICAgYXNfbG5fcz0nbG4gLXMnCiAgZmkKZWxpZiBsbiBjb25mJCQuZmlsZSBjb25mJCQg Mj4vZGV2L251bGw7IHRoZW4KICBhc19sbl9zPWxuCmVsc2UKICBhc19sbl9zPSdjcCAtcCcKZmkK cm0gLWYgY29uZiQkIGNvbmYkJC5leGUgY29uZiQkLmZpbGUKCmlmIG1rZGlyIC1wIC4gMj4vZGV2 L251bGw7IHRoZW4KICBhc19ta2Rpcl9wPToKZWxzZQogIGFzX21rZGlyX3A9ZmFsc2UKZmkKCmFz X2V4ZWN1dGFibGVfcD0idGVzdCAtZiIKCiMgU2VkIGV4cHJlc3Npb24gdG8gbWFwIGEgc3RyaW5n IG9udG8gYSB2YWxpZCBDUFAgbmFtZS4KYXNfdHJfY3BwPSJzZWQgeSUqJGFzX2NyX2xldHRlcnMl UCRhc19jcl9MRVRURVJTJTtzJVteXyRhc19jcl9hbG51bV0lXyVnIgoKIyBTZWQgZXhwcmVzc2lv biB0byBtYXAgYSBzdHJpbmcgb250byBhIHZhbGlkIHZhcmlhYmxlIG5hbWUuCmFzX3RyX3NoPSJz ZWQgeSUqKyVwcCU7cyVbXl8kYXNfY3JfYWxudW1dJV8lZyIKCgojIElGUwojIFdlIG5lZWQgc3Bh Y2UsIHRhYiBhbmQgbmV3IGxpbmUsIGluIHByZWNpc2VseSB0aGF0IG9yZGVyLgphc19ubD0nCicK SUZTPSIgCSRhc19ubCIKCiMgQ0RQQVRILgokYXNfdW5zZXQgQ0RQQVRICgpleGVjIDY+JjEKCiMg T3BlbiB0aGUgbG9nIHJlYWwgc29vbiwgdG8ga2VlcCBcJFswXSBhbmQgc28gb24gbWVhbmluZ2Z1 bCwgYW5kIHRvCiMgcmVwb3J0IGFjdHVhbCBpbnB1dCB2YWx1ZXMgb2YgQ09ORklHX0ZJTEVTIGV0 Yy4gaW5zdGVhZCBvZiB0aGVpcgojIHZhbHVlcyBhZnRlciBvcHRpb25zIGhhbmRsaW5nLiAgTG9n Z2luZyAtLXZlcnNpb24gZXRjLiBpcyBPSy4KZXhlYyA1Pj5jb25maWcubG9nCnsKICBlY2hvCiAg c2VkICdoO3MvLi8tL2c7cy9eLi4uLyMjIC87cy8uLi4kLyAjIy87cDt4O3A7eCcgPDxfQVNCT1gK IyMgUnVubmluZyAkYXNfbWUuICMjCl9BU0JPWAp9ID4mNQpjYXQgPiY1IDw8X0NTRU9GCgpUaGlz IGZpbGUgd2FzIGV4dGVuZGVkIGJ5ICRhc19tZSwgd2hpY2ggd2FzCmdlbmVyYXRlZCBieSBHTlUg QXV0b2NvbmYgMi41Ny4gIEludm9jYXRpb24gY29tbWFuZCBsaW5lIHdhcwoKICBDT05GSUdfRklM RVMgICAgPSAkQ09ORklHX0ZJTEVTCiAgQ09ORklHX0hFQURFUlMgID0gJENPTkZJR19IRUFERVJT CiAgQ09ORklHX0xJTktTICAgID0gJENPTkZJR19MSU5LUwogIENPTkZJR19DT01NQU5EUyA9ICRD T05GSUdfQ09NTUFORFMKICAkICQwICRACgpfQ1NFT0YKZWNobyAib24gYChob3N0bmFtZSB8fCB1 bmFtZSAtbikgMj4vZGV2L251bGwgfCBzZWQgMXFgIiA+JjUKZWNobyA+JjUKY29uZmlnX2ZpbGVz PSIgTWFrZWZpbGUgbGliL01ha2VmaWxlIHNyY2xpYi9NYWtlZmlsZSBzcmMvTWFrZWZpbGUgcG8v TWFrZWZpbGUuaW4gbWFuL01ha2VmaWxlIHRlc3RzL01ha2VmaWxlIGluY2x1ZGUvaWNvbnYuaCIK Y29uZmlnX2hlYWRlcnM9IiBjb25maWcuaCBsaWIvY29uZmlnLmgiCmNvbmZpZ19jb21tYW5kcz0i IGRlcGZpbGVzIGRlZmF1bHQtMSIKCmFjX2NzX3VzYWdlPSJcClxgJGFzX21lJyBpbnN0YW50aWF0 ZXMgZmlsZXMgZnJvbSB0ZW1wbGF0ZXMgYWNjb3JkaW5nIHRvIHRoZQpjdXJyZW50IGNvbmZpZ3Vy YXRpb24uCgpVc2FnZTogJDAgW09QVElPTlNdIFtGSUxFXS4uLgoKICAtaCwgLS1oZWxwICAgICAg IHByaW50IHRoaXMgaGVscCwgdGhlbiBleGl0CiAgLVYsIC0tdmVyc2lvbiAgICBwcmludCB2ZXJz aW9uIG51bWJlciwgdGhlbiBleGl0CiAgLXEsIC0tcXVpZXQgICAgICBkbyBub3QgcHJpbnQgcHJv Z3Jlc3MgbWVzc2FnZXMKICAtZCwgLS1kZWJ1ZyAgICAgIGRvbid0IHJlbW92ZSB0ZW1wb3Jhcnkg ZmlsZXMKICAgICAgLS1yZWNoZWNrICAgIHVwZGF0ZSAkYXNfbWUgYnkgcmVjb25maWd1cmluZyBp biB0aGUgc2FtZSBjb25kaXRpb25zCiAgLS1maWxlPUZJTEVbOlRFTVBMQVRFXQogICAgICAgICAg ICAgICAgICAgaW5zdGFudGlhdGUgdGhlIGNvbmZpZ3VyYXRpb24gZmlsZSBGSUxFCiAgLS1oZWFk ZXI9RklMRVs6VEVNUExBVEVdCiAgICAgICAgICAgICAgICAgICBpbnN0YW50aWF0ZSB0aGUgY29u ZmlndXJhdGlvbiBoZWFkZXIgRklMRQoKQ29uZmlndXJhdGlvbiBmaWxlczoKJGNvbmZpZ19maWxl cwoKQ29uZmlndXJhdGlvbiBoZWFkZXJzOgokY29uZmlnX2hlYWRlcnMKCkNvbmZpZ3VyYXRpb24g Y29tbWFuZHM6CiRjb25maWdfY29tbWFuZHMKClJlcG9ydCBidWdzIHRvIDxidWctYXV0b2NvbmZA Z251Lm9yZz4uIgphY19jc192ZXJzaW9uPSJcCmNvbmZpZy5zdGF0dXMKY29uZmlndXJlZCBieSAu L2NvbmZpZ3VyZSwgZ2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjU3LAogIHdpdGggb3B0aW9u cyBcIictLWVuYWJsZS1zaGFyZWQnXCIKCkNvcHlyaWdodCAxOTkyLCAxOTkzLCAxOTk0LCAxOTk1 LCAxOTk2LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxCkZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg SW5jLgpUaGlzIGNvbmZpZy5zdGF0dXMgc2NyaXB0IGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24KZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSwg ZGlzdHJpYnV0ZSBhbmQgbW9kaWZ5IGl0LiIKc3JjZGlyPS4KSU5TVEFMTD0iL3Vzci9iaW4vaW5z dGFsbCAtYyIKIyBJZiBubyBmaWxlIGFyZSBzcGVjaWZpZWQgYnkgdGhlIHVzZXIsIHRoZW4gd2Ug bmVlZCB0byBwcm92aWRlIGRlZmF1bHQKIyB2YWx1ZS4gIEJ5IHdlIG5lZWQgdG8ga25vdyBpZiBm aWxlcyB3ZXJlIHNwZWNpZmllZCBieSB0aGUgdXNlci4KYWNfbmVlZF9kZWZhdWx0cz06CndoaWxl IHRlc3QgJCMgIT0gMApkbwogIGNhc2UgJDEgaW4KICAtLSo9KikKICAgIGFjX29wdGlvbj1gZXhw ciAieCQxIiA6ICd4XChbXj1dKlwpPSdgCiAgICBhY19vcHRhcmc9YGV4cHIgIngkMSIgOiAneFte PV0qPVwoLipcKSdgCiAgICBhY19zaGlmdD06CiAgICA7OwogIC0qKQogICAgYWNfb3B0aW9uPSQx CiAgICBhY19vcHRhcmc9JDIKICAgIGFjX3NoaWZ0PXNoaWZ0CiAgICA7OwogICopICMgVGhpcyBp cyBub3QgYW4gb3B0aW9uLCBzbyB0aGUgdXNlciBoYXMgcHJvYmFibHkgZ2l2ZW4gZXhwbGljaXQK ICAgICAjIGFyZ3VtZW50cy4KICAgICBhY19vcHRpb249JDEKICAgICBhY19uZWVkX2RlZmF1bHRz PWZhbHNlOzsKICBlc2FjCgogIGNhc2UgJGFjX29wdGlvbiBpbgogICMgSGFuZGxpbmcgb2YgdGhl IG9wdGlvbnMuCiAgLXJlY2hlY2sgfCAtLXJlY2hlY2sgfCAtLXJlY2hlYyB8IC0tcmVjaGUgfCAt LXJlY2ggfCAtLXJlYyB8IC0tcmUgfCAtLXIpCiAgICBhY19jc19yZWNoZWNrPTogOzsKICAtLXZl cnNpb24gfCAtLXZlcnMqIHwgLVYgKQogICAgZWNobyAiJGFjX2NzX3ZlcnNpb24iOyBleGl0IDAg OzsKICAtLWhlIHwgLS1oKQogICAgIyBDb25mbGljdCBiZXR3ZWVuIC0taGVscCBhbmQgLS1oZWFk ZXIKICAgIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGFtYmlndW91cyBvcHRpb246 ICQxClRyeSBcYCQwIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uIiA+JjUKZWNobyAiJGFz X21lOiBlcnJvcjogYW1iaWd1b3VzIG9wdGlvbjogJDEKVHJ5IFxgJDAgLS1oZWxwJyBmb3IgbW9y ZSBpbmZvcm1hdGlvbi4iID4mMjt9CiAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfTs7CiAgLS1o ZWxwIHwgLS1oZWwgfCAtaCApCiAgICBlY2hvICIkYWNfY3NfdXNhZ2UiOyBleGl0IDAgOzsKICAt LWRlYnVnIHwgLS1kKiB8IC1kICkKICAgIGRlYnVnPTogOzsKICAtLWZpbGUgfCAtLWZpbCB8IC0t ZmkgfCAtLWYgKQogICAgJGFjX3NoaWZ0CiAgICBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMg JGFjX29wdGFyZyIKICAgIGFjX25lZWRfZGVmYXVsdHM9ZmFsc2U7OwogIC0taGVhZGVyIHwgLS1o ZWFkZSB8IC0taGVhZCB8IC0taGVhICkKICAgICRhY19zaGlmdAogICAgQ09ORklHX0hFQURFUlM9 IiRDT05GSUdfSEVBREVSUyAkYWNfb3B0YXJnIgogICAgYWNfbmVlZF9kZWZhdWx0cz1mYWxzZTs7 CiAgLXEgfCAtcXVpZXQgfCAtLXF1aWV0IHwgLS1xdWllIHwgLS1xdWkgfCAtLXF1IHwgLS1xIFwK ICB8IC1zaWxlbnQgfCAtLXNpbGVudCB8IC0tc2lsZW4gfCAtLXNpbGUgfCAtLXNpbCB8IC0tc2kg fCAtLXMpCiAgICBhY19jc19zaWxlbnQ9OiA7OwoKICAjIFRoaXMgaXMgYW4gZXJyb3IuCiAgLSop IHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IHVucmVjb2duaXplZCBvcHRpb246ICQx ClRyeSBcYCQwIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uIiA+JjUKZWNobyAiJGFzX21l OiBlcnJvcjogdW5yZWNvZ25pemVkIG9wdGlvbjogJDEKVHJ5IFxgJDAgLS1oZWxwJyBmb3IgbW9y ZSBpbmZvcm1hdGlvbi4iID4mMjt9CiAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfSA7OwoKICAq KSBhY19jb25maWdfdGFyZ2V0cz0iJGFjX2NvbmZpZ190YXJnZXRzICQxIiA7OwoKICBlc2FjCiAg c2hpZnQKZG9uZQoKYWNfY29uZmlndXJlX2V4dHJhX2FyZ3M9CgppZiAkYWNfY3Nfc2lsZW50OyB0 aGVuCiAgZXhlYyA2Pi9kZXYvbnVsbAogIGFjX2NvbmZpZ3VyZV9leHRyYV9hcmdzPSIkYWNfY29u ZmlndXJlX2V4dHJhX2FyZ3MgLS1zaWxlbnQiCmZpCgppZiAkYWNfY3NfcmVjaGVjazsgdGhlbgog IGVjaG8gInJ1bm5pbmcgL2Jpbi9iYXNoIC4vY29uZmlndXJlICIgJy0tZW5hYmxlLXNoYXJlZCcg JGFjX2NvbmZpZ3VyZV9leHRyYV9hcmdzICIgLS1uby1jcmVhdGUgLS1uby1yZWN1cnNpb24iID4m NgogIGV4ZWMgL2Jpbi9iYXNoIC4vY29uZmlndXJlICctLWVuYWJsZS1zaGFyZWQnICRhY19jb25m aWd1cmVfZXh0cmFfYXJncyAtLW5vLWNyZWF0ZSAtLW5vLXJlY3Vyc2lvbgpmaQoKIwojIElOSVQt Q09NTUFORFMgc2VjdGlvbi4KIwoKQU1ERVBfVFJVRT0iIiBhY19hdXhfZGlyPSJhdXRvY29uZiIK IyBDYXB0dXJlIHRoZSB2YWx1ZSBvZiBvYnNvbGV0ZSBBTExfTElOR1VBUyBiZWNhdXNlIHdlIG5l ZWQgaXQgdG8gY29tcHV0ZQogICAgIyBQT0ZJTEVTLCBHTU9GSUxFUywgVVBEQVRFUE9GSUxFUywg RFVNTVlQT0ZJTEVTLCBDQVRBTE9HUy4gQnV0IGhpZGUgaXQKICAgICMgZnJvbSBhdXRvbWFrZS4K ICAgIGV2YWwgJ09CU09MRVRFX0FMTF9MSU5HVUFTJyc9IiInCiAgICAjIENhcHR1cmUgdGhlIHZh bHVlIG9mIExJTkdVQVMgYmVjYXVzZSB3ZSBuZWVkIGl0IHRvIGNvbXB1dGUgQ0FUQUxPR1MuCiAg ICBMSU5HVUFTPSIlVU5TRVQlIgoKCmZvciBhY19jb25maWdfdGFyZ2V0IGluICRhY19jb25maWdf dGFyZ2V0cwpkbwogIGNhc2UgIiRhY19jb25maWdfdGFyZ2V0IiBpbgogICMgSGFuZGxpbmcgb2Yg YXJndW1lbnRzLgogICJNYWtlZmlsZSIgKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgTWFr ZWZpbGUiIDs7CiAgImxpYi9NYWtlZmlsZSIgKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMg bGliL01ha2VmaWxlIiA7OwogICJzcmNsaWIvTWFrZWZpbGUiICkgQ09ORklHX0ZJTEVTPSIkQ09O RklHX0ZJTEVTIHNyY2xpYi9NYWtlZmlsZSIgOzsKICAic3JjL01ha2VmaWxlIiApIENPTkZJR19G SUxFUz0iJENPTkZJR19GSUxFUyBzcmMvTWFrZWZpbGUiIDs7CiAgInBvL01ha2VmaWxlLmluIiAp IENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBwby9NYWtlZmlsZS5pbiIgOzsKICAibWFuL01h a2VmaWxlIiApIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBtYW4vTWFrZWZpbGUiIDs7CiAg IiR7VEVTVFNfTUFLRUZJTEV9IiApIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyAke1RFU1RT X01BS0VGSUxFfSIgOzsKICAiaW5jbHVkZS9pY29udi5oIiApIENPTkZJR19GSUxFUz0iJENPTkZJ R19GSUxFUyBpbmNsdWRlL2ljb252LmgiIDs7CiAgImRlcGZpbGVzIiApIENPTkZJR19DT01NQU5E Uz0iJENPTkZJR19DT01NQU5EUyBkZXBmaWxlcyIgOzsKICAiZGVmYXVsdC0xIiApIENPTkZJR19D T01NQU5EUz0iJENPTkZJR19DT01NQU5EUyBkZWZhdWx0LTEiIDs7CiAgImNvbmZpZy5oIiApIENP TkZJR19IRUFERVJTPSIkQ09ORklHX0hFQURFUlMgY29uZmlnLmgiIDs7CiAgImxpYi9jb25maWcu aCIgKSBDT05GSUdfSEVBREVSUz0iJENPTkZJR19IRUFERVJTIGxpYi9jb25maWcuaCIgOzsKICAq KSB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBpbnZhbGlkIGFyZ3VtZW50OiAkYWNf Y29uZmlnX3RhcmdldCIgPiY1CmVjaG8gIiRhc19tZTogZXJyb3I6IGludmFsaWQgYXJndW1lbnQ6 ICRhY19jb25maWdfdGFyZ2V0IiA+JjI7fQogICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07Owog IGVzYWMKZG9uZQoKIyBJZiB0aGUgdXNlciBkaWQgbm90IHVzZSB0aGUgYXJndW1lbnRzIHRvIHNw ZWNpZnkgdGhlIGl0ZW1zIHRvIGluc3RhbnRpYXRlLAojIHRoZW4gdGhlIGVudnZhciBpbnRlcmZh Y2UgaXMgdXNlZC4gIFNldCBvbmx5IHRob3NlIHRoYXQgYXJlIG5vdC4KIyBXZSB1c2UgdGhlIGxv bmcgZm9ybSBmb3IgdGhlIGRlZmF1bHQgYXNzaWdubWVudCBiZWNhdXNlIG9mIGFuIGV4dHJlbWVs eQojIGJpemFycmUgYnVnIG9uIFN1bk9TIDQuMS4zLgppZiAkYWNfbmVlZF9kZWZhdWx0czsgdGhl bgogIHRlc3QgIiR7Q09ORklHX0ZJTEVTK3NldH0iID0gc2V0IHx8IENPTkZJR19GSUxFUz0kY29u ZmlnX2ZpbGVzCiAgdGVzdCAiJHtDT05GSUdfSEVBREVSUytzZXR9IiA9IHNldCB8fCBDT05GSUdf SEVBREVSUz0kY29uZmlnX2hlYWRlcnMKICB0ZXN0ICIke0NPTkZJR19DT01NQU5EUytzZXR9IiA9 IHNldCB8fCBDT05GSUdfQ09NTUFORFM9JGNvbmZpZ19jb21tYW5kcwpmaQoKIyBIYXZlIGEgdGVt cG9yYXJ5IGRpcmVjdG9yeSBmb3IgY29udmVuaWVuY2UuICBNYWtlIGl0IGluIHRoZSBidWlsZCB0 cmVlCiMgc2ltcGx5IGJlY2F1c2UgdGhlcmUgaXMgbm8gcmVhc29uIHRvIHB1dCBpdCBoZXJlLCBh bmQgaW4gYWRkaXRpb24sCiMgY3JlYXRpbmcgYW5kIG1vdmluZyBmaWxlcyBmcm9tIC90bXAgY2Fu IHNvbWV0aW1lcyBjYXVzZSBwcm9ibGVtcy4KIyBDcmVhdGUgYSB0ZW1wb3JhcnkgZGlyZWN0b3J5 LCBhbmQgaG9vayBmb3IgaXRzIHJlbW92YWwgdW5sZXNzIGRlYnVnZ2luZy4KJGRlYnVnIHx8CnsK ICB0cmFwICdleGl0X3N0YXR1cz0kPzsgcm0gLXJmICR0bXAgJiYgZXhpdCAkZXhpdF9zdGF0dXMn IDAKICB0cmFwICd7IChleGl0IDEpOyBleGl0IDE7IH0nIDEgMiAxMyAxNQp9CgojIENyZWF0ZSBh IChzZWN1cmUpIHRtcCBkaXJlY3RvcnkgZm9yIHRtcCBmaWxlcy4KCnsKICB0bXA9YCh1bWFzayAw NzcgJiYgbWt0ZW1wIC1kIC1xICIuL2NvbmZzdGF0WFhYWFhYIikgMj4vZGV2L251bGxgICYmCiAg dGVzdCAtbiAiJHRtcCIgJiYgdGVzdCAtZCAiJHRtcCIKfSAgfHwKewogIHRtcD0uL2NvbmZzdGF0 JCQtJFJBTkRPTQogICh1bWFzayAwNzcgJiYgbWtkaXIgJHRtcCkKfSB8fAp7CiAgIGVjaG8gIiRt ZTogY2Fubm90IGNyZWF0ZSBhIHRlbXBvcmFyeSBkaXJlY3RvcnkgaW4gLiIgPiYyCiAgIHsgKGV4 aXQgMSk7IGV4aXQgMTsgfQp9CgoKIwojIENPTkZJR19GSUxFUyBzZWN0aW9uLgojCgojIE5vIG5l ZWQgdG8gZ2VuZXJhdGUgdGhlIHNjcmlwdHMgaWYgdGhlcmUgYXJlIG5vIENPTkZJR19GSUxFUy4K IyBUaGlzIGhhcHBlbnMgZm9yIGluc3RhbmNlIHdoZW4gLi9jb25maWcuc3RhdHVzIGNvbmZpZy5o CmlmIHRlc3QgLW4gIiRDT05GSUdfRklMRVMiOyB0aGVuCiAgIyBQcm90ZWN0IGFnYWluc3QgYmVp bmcgb24gdGhlIHJpZ2h0IHNpZGUgb2YgYSBzZWQgc3Vic3QgaW4gY29uZmlnLnN0YXR1cy4KICBz ZWQgJ3MvLEAvQEAvOyBzL0AsL0BALzsgcy8sO3QgdCQvQDt0IHQvOyAvQDt0IHQkL3MvW1xcJixd L1xcJi9nOwogICBzL0BALyxALzsgcy9AQC9ALC87IHMvQDt0IHQkLyw7dCB0LycgPiR0bXAvc3Vi cy5zZWQgPDxcQ0VPRgpzLEBTSEVMTEAsL2Jpbi9iYXNoLDt0IHQKcyxAUEFUSF9TRVBBUkFUT1JA LDosO3QgdApzLEBQQUNLQUdFX05BTUVALCw7dCB0CnMsQFBBQ0tBR0VfVEFSTkFNRUAsLDt0IHQK cyxAUEFDS0FHRV9WRVJTSU9OQCwsO3QgdApzLEBQQUNLQUdFX1NUUklOR0AsLDt0IHQKcyxAUEFD S0FHRV9CVUdSRVBPUlRALCw7dCB0CnMsQGV4ZWNfcHJlZml4QCwke3ByZWZpeH0sO3QgdApzLEBw cmVmaXhALC91c3IvbG9jYWwsO3QgdApzLEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQCxzLHgseCws O3QgdApzLEBiaW5kaXJALCR7ZXhlY19wcmVmaXh9L2Jpbiw7dCB0CnMsQHNiaW5kaXJALCR7ZXhl Y19wcmVmaXh9L3NiaW4sO3QgdApzLEBsaWJleGVjZGlyQCwke2V4ZWNfcHJlZml4fS9saWJleGVj LDt0IHQKcyxAZGF0YWRpckAsJHtwcmVmaXh9L3NoYXJlLDt0IHQKcyxAc3lzY29uZmRpckAsJHtw cmVmaXh9L2V0Yyw7dCB0CnMsQHNoYXJlZHN0YXRlZGlyQCwke3ByZWZpeH0vY29tLDt0IHQKcyxA bG9jYWxzdGF0ZWRpckAsJHtwcmVmaXh9L3Zhciw7dCB0CnMsQGxpYmRpckAsJHtleGVjX3ByZWZp eH0vbGliLDt0IHQKcyxAaW5jbHVkZWRpckAsJHtwcmVmaXh9L2luY2x1ZGUsO3QgdApzLEBvbGRp bmNsdWRlZGlyQCwvdXNyL2luY2x1ZGUsO3QgdApzLEBpbmZvZGlyQCwke3ByZWZpeH0vaW5mbyw7 dCB0CnMsQG1hbmRpckAsJHtwcmVmaXh9L21hbiw7dCB0CnMsQGJ1aWxkX2FsaWFzQCwsO3QgdApz LEBob3N0X2FsaWFzQCwsO3QgdApzLEB0YXJnZXRfYWxpYXNALCw7dCB0CnMsQERFRlNALC1ESEFW RV9DT05GSUdfSCw7dCB0CnMsQEVDSE9fQ0AsLDt0IHQKcyxARUNIT19OQCwtbiw7dCB0CnMsQEVD SE9fVEAsLDt0IHQKcyxATElCU0AsLDt0IHQKcyxASU5TVEFMTF9QUk9HUkFNQCwke0lOU1RBTEx9 LDt0IHQKcyxASU5TVEFMTF9TQ1JJUFRALCR7SU5TVEFMTH0sO3QgdApzLEBJTlNUQUxMX0RBVEFA LCR7SU5TVEFMTH0gLW0gNjQ0LDt0IHQKcyxAQ1lHUEFUSF9XQCxlY2hvLDt0IHQKcyxAUEFDS0FH RUAsbGliaWNvbnYsO3QgdApzLEBWRVJTSU9OQCwxLjksO3QgdApzLEBBQ0xPQ0FMQCwke1NIRUxM fSAvdXNyL3BvcnRzL2NvbnZlcnRlcnMvbGliaWNvbnYvd29yay9saWJpY29udi0xLjkuMS9hdXRv Y29uZi9taXNzaW5nIC0tcnVuIGFjbG9jYWwtMS43LDt0IHQKcyxAQVVUT0NPTkZALCR7U0hFTEx9 IC91c3IvcG9ydHMvY29udmVydGVycy9saWJpY29udi93b3JrL2xpYmljb252LTEuOS4xL2F1dG9j b25mL21pc3NpbmcgLS1ydW4gYXV0b2NvbmYsO3QgdApzLEBBVVRPTUFLRUAsJHtTSEVMTH0gL3Vz ci9wb3J0cy9jb252ZXJ0ZXJzL2xpYmljb252L3dvcmsvbGliaWNvbnYtMS45LjEvYXV0b2NvbmYv bWlzc2luZyAtLXJ1biBhdXRvbWFrZS0xLjcsO3QgdApzLEBBVVRPSEVBREVSQCwke1NIRUxMfSAv dXNyL3BvcnRzL2NvbnZlcnRlcnMvbGliaWNvbnYvd29yay9saWJpY29udi0xLjkuMS9hdXRvY29u Zi9taXNzaW5nIC0tcnVuIGF1dG9oZWFkZXIsO3QgdApzLEBNQUtFSU5GT0AsJHtTSEVMTH0gL3Vz ci9wb3J0cy9jb252ZXJ0ZXJzL2xpYmljb252L3dvcmsvbGliaWNvbnYtMS45LjEvYXV0b2NvbmYv bWlzc2luZyAtLXJ1biBtYWtlaW5mbyw7dCB0CnMsQEFNVEFSQCwke1NIRUxMfSAvdXNyL3BvcnRz L2NvbnZlcnRlcnMvbGliaWNvbnYvd29yay9saWJpY29udi0xLjkuMS9hdXRvY29uZi9taXNzaW5n IC0tcnVuIHRhciw7dCB0CnMsQGluc3RhbGxfc2hALC91c3IvcG9ydHMvY29udmVydGVycy9saWJp Y29udi93b3JrL2xpYmljb252LTEuOS4xL2F1dG9jb25mL2luc3RhbGwtc2gsO3QgdApzLEBTVFJJ UEAsc3RyaXAsO3QgdApzLEBhY19jdF9TVFJJUEAsc3RyaXAsO3QgdApzLEBJTlNUQUxMX1NUUklQ X1BST0dSQU1ALCR7U0hFTEx9ICQoaW5zdGFsbF9zaCkgLWMgLXMsO3QgdApzLEBBV0tALG5hd2ss O3QgdApzLEBTRVRfTUFLRUAsLDt0IHQKcyxAYW1fX2xlYWRpbmdfZG90QCwuLDt0IHQKcyxAQ0NA LGdjYyw7dCB0CnMsQENGTEFHU0AsLWcgLU8yLDt0IHQKcyxATERGTEFHU0AsLDt0IHQKcyxAQ1BQ RkxBR1NALC1JL3Vzci9sb2NhbC9pbmNsdWRlLDt0IHQKcyxAYWNfY3RfQ0NALGdjYyw7dCB0CnMs QEVYRUVYVEAsLDt0IHQKcyxAT0JKRVhUQCxvLDt0IHQKcyxAREVQRElSQCwuZGVwcyw7dCB0CnMs QGFtX19pbmNsdWRlQCxpbmNsdWRlLDt0IHQKcyxAYW1fX3F1b3RlQCwsO3QgdApzLEBBTURFUF9U UlVFQCwsO3QgdApzLEBBTURFUF9GQUxTRUAsIyw7dCB0CnMsQEFNREVQQkFDS1NMQVNIQCxcLDt0 IHQKcyxAQ0NERVBNT0RFQCxkZXBtb2RlPW5vbmUsO3QgdApzLEBhbV9fZmFzdGRlcENDX1RSVUVA LCMsO3QgdApzLEBhbV9fZmFzdGRlcENDX0ZBTFNFQCwsO3QgdApzLEBDUFBALGdjYyAtRSw7dCB0 CnMsQEVHUkVQQCxncmVwIC1FLDt0IHQKcyxAYnVpbGRALGFtZDY0LXVua25vd24ta2ZyZWVic2Q1 LjItZ251LDt0IHQKcyxAYnVpbGRfY3B1QCxhbWQ2NCw7dCB0CnMsQGJ1aWxkX3ZlbmRvckAsdW5r bm93biw7dCB0CnMsQGJ1aWxkX29zQCxrZnJlZWJzZDUuMi1nbnUsO3QgdApzLEBob3N0QCxhbWQ2 NC11bmtub3duLWtmcmVlYnNkNS4yLWdudSw7dCB0CnMsQGhvc3RfY3B1QCxhbWQ2NCw7dCB0CnMs QGhvc3RfdmVuZG9yQCx1bmtub3duLDt0IHQKcyxAaG9zdF9vc0Asa2ZyZWVic2Q1LjItZ251LDt0 IHQKcyxAUkVMT0NBVEFCTEVALG5vLDt0IHQKcyxATElCT0JKU0AsIGNhbm9uaWNhbGl6ZSRVLm8s O3QgdApzLEBTRVRfUkVMT0NBVEFCTEVALCw7dCB0CnMsQFJFTE9DQVRBQkxFX1ZJQV9MRF9UUlVF QCwjLDt0IHQKcyxAUkVMT0NBVEFCTEVfVklBX0xEX0ZBTFNFQCwsO3QgdApzLEBVU0VfRVhUUkFf RU5DT0RJTkdTQCxubyw7dCB0CnMsQFJBTkxJQkAscmFubGliLDt0IHQKcyxAYWNfY3RfUkFOTElC QCxyYW5saWIsO3QgdApzLEBDUEAsY3AgLXAsO3QgdApzLEBMTkAsbG4sO3QgdApzLEBMTl9TQCxs biAtcyw7dCB0CnMsQEVDSE9ALGVjaG8sO3QgdApzLEBBUkAsYXIsO3QgdApzLEBhY19jdF9BUkAs YXIsO3QgdApzLEBETExUT09MQCxkbGx0b29sLDt0IHQKcyxAYWNfY3RfRExMVE9PTEAsLDt0IHQK cyxAQVNALGFzLDt0IHQKcyxAYWNfY3RfQVNALCw7dCB0CnMsQE9CSkRVTVBALG9iamR1bXAsO3Qg dApzLEBhY19jdF9PQkpEVU1QQCwsO3QgdApzLEBDWFhALGcrKyw7dCB0CnMsQENYWEZMQUdTQCwt ZyAtTzIsO3QgdApzLEBhY19jdF9DWFhALGcrKyw7dCB0CnMsQENYWERFUE1PREVALGRlcG1vZGU9 bm9uZSw7dCB0CnMsQGFtX19mYXN0ZGVwQ1hYX1RSVUVALCMsO3QgdApzLEBhbV9fZmFzdGRlcENY WF9GQUxTRUAsLDt0IHQKcyxAQ1hYQ1BQQCxnKysgLUUsO3QgdApzLEBGNzdALGY3Nyw7dCB0CnMs QEZGTEFHU0AsLWcgLU8yLDt0IHQKcyxAYWNfY3RfRjc3QCxmNzcsO3QgdApzLEBMSUJUT09MQCwk KFNIRUxMKSAkKHRvcF9idWlsZGRpcikvbGlidG9vbCw7dCB0CnMsQExJQklDT05WQCwvdXNyL2xv Y2FsL2xpYi9saWJpY29udi5zbyAtV2wsLXJwYXRoIC1XbCwvdXNyL2xvY2FsL2xpYiw7dCB0CnMs QExUTElCSUNPTlZALC1ML3Vzci9sb2NhbC9saWIgLWxpY29udiAtUi91c3IvbG9jYWwvbGliLDt0 IHQKcyxATUtJTlNUQUxMRElSU0AsJCh0b3BfYnVpbGRkaXIpL2F1dG9jb25mL21raW5zdGFsbGRp cnMsO3QgdApzLEBVU0VfTkxTQCx5ZXMsO3QgdApzLEBNU0dGTVRALC91c3IvbG9jYWwvYmluL21z Z2ZtdCw7dCB0CnMsQEdNU0dGTVRALC91c3IvbG9jYWwvYmluL21zZ2ZtdCw7dCB0CnMsQFhHRVRU RVhUQCwvdXNyL2xvY2FsL2Jpbi94Z2V0dGV4dCw7dCB0CnMsQE1TR01FUkdFQCwvdXNyL2xvY2Fs L2Jpbi9tc2dtZXJnZSw7dCB0CnMsQElOVExMSUJTQCwvdXNyL2xvY2FsL2xpYi9saWJpbnRsLnNv IC1XbCwtcnBhdGggLVdsLC91c3IvbG9jYWwvbGliLDt0IHQKcyxATElCSU5UTEAsL3Vzci9sb2Nh bC9saWIvbGliaW50bC5zbyAtV2wsLXJwYXRoIC1XbCwvdXNyL2xvY2FsL2xpYiw7dCB0CnMsQExU TElCSU5UTEAsLUwvdXNyL2xvY2FsL2xpYiAtbGludGwgLVIvdXNyL2xvY2FsL2xpYiw7dCB0CnMs QFBPU1VCQCxwbyw7dCB0CnMsQElDT05WX0NPTlNUQCxjb25zdCw7dCB0CnMsQEVJTFNFUUAsLDt0 IHQKcyxAQUxMT0NBQCwsO3QgdApzLEBBTExPQ0FfSEAsYWxsb2NhLmgsO3QgdApzLEBIQVZFX19C T09MQCwsO3QgdApzLEBTVERCT09MX0hALCw7dCB0CnMsQE9TQCwsO3QgdApzLEBHQ0NALHllcyw7 dCB0CnMsQFBMVUdMSUJALCw7dCB0CnMsQHN1YmRpcnNALCBsaWJjaGFyc2V0LDt0IHQKcyxATFRM SUJPQkpTQCwgY2Fub25pY2FsaXplJFUubG8sO3QgdApDRU9GCgogICMgU3BsaXQgdGhlIHN1YnN0 aXR1dGlvbnMgaW50byBiaXRlLXNpemVkIHBpZWNlcyBmb3Igc2VkcyB3aXRoCiAgIyBzbWFsbCBj b21tYW5kIG51bWJlciBsaW1pdHMsIGxpa2Ugb24gRGlnaXRhbCBPU0YvMSBhbmQgSFAtVVguCiAg YWNfbWF4X3NlZF9saW5lcz00OAogIGFjX3NlZF9mcmFnPTEgIyBOdW1iZXIgb2YgY3VycmVudCBm aWxlLgogIGFjX2JlZz0xICMgRmlyc3QgbGluZSBmb3IgY3VycmVudCBmaWxlLgogIGFjX2VuZD0k YWNfbWF4X3NlZF9saW5lcyAjIExpbmUgYWZ0ZXIgbGFzdCBsaW5lIGZvciBjdXJyZW50IGZpbGUu CiAgYWNfbW9yZV9saW5lcz06CiAgYWNfc2VkX2NtZHM9CiAgd2hpbGUgJGFjX21vcmVfbGluZXM7 IGRvCiAgICBpZiB0ZXN0ICRhY19iZWcgLWd0IDE7IHRoZW4KICAgICAgc2VkICIxLCR7YWNfYmVn fWQ7ICR7YWNfZW5kfXEiICR0bXAvc3Vicy5zZWQgPiR0bXAvc3Vicy5mcmFnCiAgICBlbHNlCiAg ICAgIHNlZCAiJHthY19lbmR9cSIgJHRtcC9zdWJzLnNlZCA+JHRtcC9zdWJzLmZyYWcKICAgIGZp CiAgICBpZiB0ZXN0ICEgLXMgJHRtcC9zdWJzLmZyYWc7IHRoZW4KICAgICAgYWNfbW9yZV9saW5l cz1mYWxzZQogICAgZWxzZQogICAgICAjIFRoZSBwdXJwb3NlIG9mIHRoZSBsYWJlbCBhbmQgb2Yg dGhlIGJyYW5jaGluZyBjb25kaXRpb24gaXMgdG8KICAgICAgIyBzcGVlZCB1cCB0aGUgc2VkIHBy b2Nlc3NpbmcgKGlmIHRoZXJlIGFyZSBubyBgQCcgYXQgYWxsLCB0aGVyZQogICAgICAjIGlzIG5v IG5lZWQgdG8gYnJvd3NlIGFueSBvZiB0aGUgc3Vic3RpdHV0aW9ucykuCiAgICAgICMgVGhlc2Ug YXJlIHRoZSB0d28gZXh0cmEgc2VkIGNvbW1hbmRzIG1lbnRpb25lZCBhYm92ZS4KICAgICAgKGVj aG8gJzp0CiAgL0BbYS16QS1aX11bYS16QS1aXzAtOV0qQC8hYicgJiYgY2F0ICR0bXAvc3Vicy5m cmFnKSA+JHRtcC9zdWJzLSRhY19zZWRfZnJhZy5zZWQKICAgICAgaWYgdGVzdCAteiAiJGFjX3Nl ZF9jbWRzIjsgdGhlbgogIAlhY19zZWRfY21kcz0ic2VkIC1mICR0bXAvc3Vicy0kYWNfc2VkX2Zy YWcuc2VkIgogICAgICBlbHNlCiAgCWFjX3NlZF9jbWRzPSIkYWNfc2VkX2NtZHMgfCBzZWQgLWYg JHRtcC9zdWJzLSRhY19zZWRfZnJhZy5zZWQiCiAgICAgIGZpCiAgICAgIGFjX3NlZF9mcmFnPWBl eHByICRhY19zZWRfZnJhZyArIDFgCiAgICAgIGFjX2JlZz0kYWNfZW5kCiAgICAgIGFjX2VuZD1g ZXhwciAkYWNfZW5kICsgJGFjX21heF9zZWRfbGluZXNgCiAgICBmaQogIGRvbmUKICBpZiB0ZXN0 IC16ICIkYWNfc2VkX2NtZHMiOyB0aGVuCiAgICBhY19zZWRfY21kcz1jYXQKICBmaQpmaSAjIHRl c3QgLW4gIiRDT05GSUdfRklMRVMiCgpmb3IgYWNfZmlsZSBpbiA6ICRDT05GSUdfRklMRVM7IGRv IHRlc3QgIngkYWNfZmlsZSIgPSB4OiAmJiBjb250aW51ZQogICMgU3VwcG9ydCAib3V0ZmlsZVs6 aW5maWxlWzppbmZpbGUuLi5dXSIsIGRlZmF1bHRpbmcgaW5maWxlPSJvdXRmaWxlLmluIi4KICBj YXNlICRhY19maWxlIGluCiAgLSB8ICo6LSB8ICo6LToqICkgIyBpbnB1dCBmcm9tIHN0ZGluCiAg ICAgICAgY2F0ID4kdG1wL3N0ZGluCiAgICAgICAgYWNfZmlsZV9pbj1gZWNobyAiJGFjX2ZpbGUi IHwgc2VkICdzLFteOl0qOiwsJ2AKICAgICAgICBhY19maWxlPWBlY2hvICIkYWNfZmlsZSIgfCBz ZWQgJ3MsOi4qLCwnYCA7OwogICo6KiApIGFjX2ZpbGVfaW49YGVjaG8gIiRhY19maWxlIiB8IHNl ZCAncyxbXjpdKjosLCdgCiAgICAgICAgYWNfZmlsZT1gZWNobyAiJGFjX2ZpbGUiIHwgc2VkICdz LDouKiwsJ2AgOzsKICAqICkgICBhY19maWxlX2luPSRhY19maWxlLmluIDs7CiAgZXNhYwoKICAj IENvbXB1dGUgQHNyY2RpckAsIEB0b3Bfc3JjZGlyQCwgYW5kIEBJTlNUQUxMQCBmb3Igc3ViZGly ZWN0b3JpZXMuCiAgYWNfZGlyPWAoZGlybmFtZSAiJGFjX2ZpbGUiKSAyPi9kZXYvbnVsbCB8fAok YXNfZXhwciBYIiRhY19maWxlIiA6ICdYXCguKlteL11cKS8vKlteL11bXi9dKi8qJCcgXHwgXAog ICAgICAgICBYIiRhY19maWxlIiA6ICdYXCgvL1wpW14vXScgXHwgXAogICAgICAgICBYIiRhY19m aWxlIiA6ICdYXCgvL1wpJCcgXHwgXAogICAgICAgICBYIiRhY19maWxlIiA6ICdYXCgvXCknIFx8 IFwKICAgICAgICAgLiAgICAgOiAnXCguXCknIDI+L2Rldi9udWxsIHx8CmVjaG8gWCIkYWNfZmls ZSIgfAogICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sgcy8vXDEvOyBx OyB9CiAgCSAgL15YXChcL1wvXClbXi9dLioveyBzLy9cMS87IHE7IH0KICAJICAvXlhcKFwvXC9c KSQveyBzLy9cMS87IHE7IH0KICAJICAvXlhcKFwvXCkuKi97IHMvL1wxLzsgcTsgfQogIAkgIHMv LiovLi87IHEnYAogIHsgaWYgJGFzX21rZGlyX3A7IHRoZW4KICAgIG1rZGlyIC1wICIkYWNfZGly IgogIGVsc2UKICAgIGFzX2Rpcj0iJGFjX2RpciIKICAgIGFzX2RpcnM9CiAgICB3aGlsZSB0ZXN0 ICEgLWQgIiRhc19kaXIiOyBkbwogICAgICBhc19kaXJzPSIkYXNfZGlyICRhc19kaXJzIgogICAg ICBhc19kaXI9YChkaXJuYW1lICIkYXNfZGlyIikgMj4vZGV2L251bGwgfHwKJGFzX2V4cHIgWCIk YXNfZGlyIiA6ICdYXCguKlteL11cKS8vKlteL11bXi9dKi8qJCcgXHwgXAogICAgICAgICBYIiRh c19kaXIiIDogJ1hcKC8vXClbXi9dJyBcfCBcCiAgICAgICAgIFgiJGFzX2RpciIgOiAnWFwoLy9c KSQnIFx8IFwKICAgICAgICAgWCIkYXNfZGlyIiA6ICdYXCgvXCknIFx8IFwKICAgICAgICAgLiAg ICAgOiAnXCguXCknIDI+L2Rldi9udWxsIHx8CmVjaG8gWCIkYXNfZGlyIiB8CiAgICBzZWQgJy9e WFwoLipbXi9dXClcL1wvKlteL11bXi9dKlwvKiQveyBzLy9cMS87IHE7IH0KICAJICAvXlhcKFwv XC9cKVteL10uKi97IHMvL1wxLzsgcTsgfQogIAkgIC9eWFwoXC9cL1wpJC97IHMvL1wxLzsgcTsg fQogIAkgIC9eWFwoXC9cKS4qL3sgcy8vXDEvOyBxOyB9CiAgCSAgcy8uKi8uLzsgcSdgCiAgICBk b25lCiAgICB0ZXN0ICEgLW4gIiRhc19kaXJzIiB8fCBta2RpciAkYXNfZGlycwogIGZpIHx8IHsg eyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBjcmVhdGUgZGlyZWN0b3J5IFwi JGFjX2RpclwiIiA+JjUKZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGNyZWF0ZSBkaXJlY3Rv cnkgXCIkYWNfZGlyXCIiID4mMjt9CiAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfTsgfQoKICBh Y19idWlsZGRpcj0uCgppZiB0ZXN0ICIkYWNfZGlyIiAhPSAuOyB0aGVuCiAgYWNfZGlyX3N1ZmZp eD0vYGVjaG8gIiRhY19kaXIiIHwgc2VkICdzLF5cLltcXC9dLCwnYAogICMgQSAiLi4vIiBmb3Ig ZWFjaCBkaXJlY3RvcnkgaW4gJGFjX2Rpcl9zdWZmaXguCiAgYWNfdG9wX2J1aWxkZGlyPWBlY2hv ICIkYWNfZGlyX3N1ZmZpeCIgfCBzZWQgJ3MsL1teXFwvXSosLi4vLGcnYAplbHNlCiAgYWNfZGly X3N1ZmZpeD0gYWNfdG9wX2J1aWxkZGlyPQpmaQoKY2FzZSAkc3JjZGlyIGluCiAgLikgICMgTm8g LS1zcmNkaXIgb3B0aW9uLiAgV2UgYXJlIGJ1aWxkaW5nIGluIHBsYWNlLgogICAgYWNfc3JjZGly PS4KICAgIGlmIHRlc3QgLXogIiRhY190b3BfYnVpbGRkaXIiOyB0aGVuCiAgICAgICBhY190b3Bf c3JjZGlyPS4KICAgIGVsc2UKICAgICAgIGFjX3RvcF9zcmNkaXI9YGVjaG8gJGFjX3RvcF9idWls ZGRpciB8IHNlZCAncywvJCwsJ2AKICAgIGZpIDs7CiAgW1xcL10qIHwgPzpbXFwvXSogKSAgIyBB YnNvbHV0ZSBwYXRoLgogICAgYWNfc3JjZGlyPSRzcmNkaXIkYWNfZGlyX3N1ZmZpeDsKICAgIGFj X3RvcF9zcmNkaXI9JHNyY2RpciA7OwogICopICMgUmVsYXRpdmUgcGF0aC4KICAgIGFjX3NyY2Rp cj0kYWNfdG9wX2J1aWxkZGlyJHNyY2RpciRhY19kaXJfc3VmZml4CiAgICBhY190b3Bfc3JjZGly PSRhY190b3BfYnVpbGRkaXIkc3JjZGlyIDs7CmVzYWMKIyBEb24ndCBibGluZGx5IHBlcmZvcm0g YSBgY2QgIiRhY19kaXIiLyRhY19mb28gJiYgcHdkYCBzaW5jZSAkYWNfZm9vIGNhbiBiZQojIGFi c29sdXRlLgphY19hYnNfYnVpbGRkaXI9YGNkICIkYWNfZGlyIiAmJiBjZCAkYWNfYnVpbGRkaXIg JiYgcHdkYAphY19hYnNfdG9wX2J1aWxkZGlyPWBjZCAiJGFjX2RpciIgJiYgY2QgJHthY190b3Bf YnVpbGRkaXJ9LiAmJiBwd2RgCmFjX2Fic19zcmNkaXI9YGNkICIkYWNfZGlyIiAmJiBjZCAkYWNf c3JjZGlyICYmIHB3ZGAKYWNfYWJzX3RvcF9zcmNkaXI9YGNkICIkYWNfZGlyIiAmJiBjZCAkYWNf dG9wX3NyY2RpciAmJiBwd2RgCgoKICBjYXNlICRJTlNUQUxMIGluCiAgW1xcLyRdKiB8ID86W1xc L10qICkgYWNfSU5TVEFMTD0kSU5TVEFMTCA7OwogICopIGFjX0lOU1RBTEw9JGFjX3RvcF9idWls ZGRpciRJTlNUQUxMIDs7CiAgZXNhYwoKICBpZiB0ZXN0IHgiJGFjX2ZpbGUiICE9IHgtOyB0aGVu CiAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBjcmVhdGluZyAkYWNfZmlsZSIgPiY1CmVjaG8g IiRhc19tZTogY3JlYXRpbmcgJGFjX2ZpbGUiID4mNjt9CiAgICBybSAtZiAiJGFjX2ZpbGUiCiAg ZmkKICAjIExldCdzIHN0aWxsIHByZXRlbmQgaXQgaXMgYGNvbmZpZ3VyZScgd2hpY2ggaW5zdGFu dGlhdGVzIChpLmUuLCBkb24ndAogICMgdXNlICRhc19tZSksIHBlb3BsZSB3b3VsZCBiZSBzdXJw cmlzZWQgdG8gcmVhZDoKICAjICAgIC8qIGNvbmZpZy5oLiAgR2VuZXJhdGVkIGJ5IGNvbmZpZy5z dGF0dXMuICAqLwogIGlmIHRlc3QgeCIkYWNfZmlsZSIgPSB4LTsgdGhlbgogICAgY29uZmlndXJl X2lucHV0PQogIGVsc2UKICAgIGNvbmZpZ3VyZV9pbnB1dD0iJGFjX2ZpbGUuICAiCiAgZmkKICBj b25maWd1cmVfaW5wdXQ9JGNvbmZpZ3VyZV9pbnB1dCJHZW5lcmF0ZWQgZnJvbSBgZWNobyAkYWNf ZmlsZV9pbiB8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWQgJ3MsLiov LCwnYCBieSBjb25maWd1cmUuIgoKICAjIEZpcnN0IGxvb2sgZm9yIHRoZSBpbnB1dCBmaWxlcyBp biB0aGUgYnVpbGQgdHJlZSwgb3RoZXJ3aXNlIGluIHRoZQogICMgc3JjIHRyZWUuCiAgYWNfZmls ZV9pbnB1dHM9YElGUz06CiAgICBmb3IgZiBpbiAkYWNfZmlsZV9pbjsgZG8KICAgICAgY2FzZSAk ZiBpbgogICAgICAtKSBlY2hvICR0bXAvc3RkaW4gOzsKICAgICAgW1xcLyRdKikKICAgICAgICAg IyBBYnNvbHV0ZSAoY2FuJ3QgYmUgRE9TLXN0eWxlLCBhcyBJRlM9OikKICAgICAgICAgdGVzdCAt ZiAiJGYiIHx8IHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBmaW5kIGlu cHV0IGZpbGU6ICRmIiA+JjUKZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGZpbmQgaW5wdXQg ZmlsZTogJGYiID4mMjt9CiAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQogICAgICAgICBlY2hv ICRmOzsKICAgICAgKikgIyBSZWxhdGl2ZQogICAgICAgICBpZiB0ZXN0IC1mICIkZiI7IHRoZW4K ICAgICAgICAgICAjIEJ1aWxkIHRyZWUKICAgICAgICAgICBlY2hvICRmCiAgICAgICAgIGVsaWYg dGVzdCAtZiAiJHNyY2Rpci8kZiI7IHRoZW4KICAgICAgICAgICAjIFNvdXJjZSB0cmVlCiAgICAg ICAgICAgZWNobyAkc3JjZGlyLyRmCiAgICAgICAgIGVsc2UKICAgICAgICAgICAjIC9kZXYvbnVs bCB0cmVlCiAgICAgICAgICAgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2Fubm90 IGZpbmQgaW5wdXQgZmlsZTogJGYiID4mNQplY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgZmlu ZCBpbnB1dCBmaWxlOiAkZiIgPiYyO30KICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CiAgICAg ICAgIGZpOzsKICAgICAgZXNhYwogICAgZG9uZWAgfHwgeyAoZXhpdCAxKTsgZXhpdCAxOyB9CiAg c2VkICIvXlsgCV0qVlBBVEhbIAldKj0vewpzLzoqXCQoc3JjZGlyKToqLzovOwpzLzoqXCR7c3Jj ZGlyfToqLzovOwpzLzoqQHNyY2RpckA6Ki86LzsKcy9eXChbXj1dKj1bIAldKlwpOiovXDEvOwpz LzoqJC8vOwpzL15bXj1dKj1bIAldKiQvLzsKfQoKOnQKL0BbYS16QS1aX11bYS16QS1aXzAtOV0q QC8hYgpzLEBjb25maWd1cmVfaW5wdXRALCRjb25maWd1cmVfaW5wdXQsO3QgdApzLEBzcmNkaXJA LCRhY19zcmNkaXIsO3QgdApzLEBhYnNfc3JjZGlyQCwkYWNfYWJzX3NyY2Rpciw7dCB0CnMsQHRv cF9zcmNkaXJALCRhY190b3Bfc3JjZGlyLDt0IHQKcyxAYWJzX3RvcF9zcmNkaXJALCRhY19hYnNf dG9wX3NyY2Rpciw7dCB0CnMsQGJ1aWxkZGlyQCwkYWNfYnVpbGRkaXIsO3QgdApzLEBhYnNfYnVp bGRkaXJALCRhY19hYnNfYnVpbGRkaXIsO3QgdApzLEB0b3BfYnVpbGRkaXJALCRhY190b3BfYnVp bGRkaXIsO3QgdApzLEBhYnNfdG9wX2J1aWxkZGlyQCwkYWNfYWJzX3RvcF9idWlsZGRpciw7dCB0 CnMsQElOU1RBTExALCRhY19JTlNUQUxMLDt0IHQKIiAkYWNfZmlsZV9pbnB1dHMgfCAoZXZhbCAi JGFjX3NlZF9jbWRzIikgPiR0bXAvb3V0CiAgcm0gLWYgJHRtcC9zdGRpbgogIGlmIHRlc3QgeCIk YWNfZmlsZSIgIT0geC07IHRoZW4KICAgIG12ICR0bXAvb3V0ICRhY19maWxlCiAgZWxzZQogICAg Y2F0ICR0bXAvb3V0CiAgICBybSAtZiAkdG1wL291dAogIGZpCgpkb25lCgojCiMgQ09ORklHX0hF QURFUiBzZWN0aW9uLgojCgojIFRoZXNlIHNlZCBjb21tYW5kcyBhcmUgcGFzc2VkIHRvIHNlZCBh cyAiQSBOQU1FIEIgTkFNRSBDIFZBTFVFIEQiLCB3aGVyZQojIE5BTUUgaXMgdGhlIGNwcCBtYWNy byBiZWluZyBkZWZpbmVkIGFuZCBWQUxVRSBpcyB0aGUgdmFsdWUgaXQgaXMgYmVpbmcgZ2l2ZW4u CiMKIyBhY19kIHNldHMgdGhlIHZhbHVlIGluICIjZGVmaW5lIE5BTUUgVkFMVUUiIGxpbmVzLgph Y19kQT0ncyxeXChbIAldKlwpI1woWyAJXSpkZWZpbmVbIAldWyAJXSpcKScKYWNfZEI9J1sgCV0u KiQsXDEjXDInCmFjX2RDPScgJwphY19kRD0nLDt0JwojIGFjX3UgdHVybnMgIiN1bmRlZiBOQU1F IiB3aXRob3V0IHRyYWlsaW5nIGJsYW5rcyBpbnRvICIjZGVmaW5lIE5BTUUgVkFMVUUiLgphY191 QT0ncyxeXChbIAldKlwpI1woWyAJXSpcKXVuZGVmXChbIAldWyAJXSpcKScKYWNfdUI9JyQsXDEj XDJkZWZpbmVcMycKYWNfdUM9JyAnCmFjX3VEPScsO3QnCgpmb3IgYWNfZmlsZSBpbiA6ICRDT05G SUdfSEVBREVSUzsgZG8gdGVzdCAieCRhY19maWxlIiA9IHg6ICYmIGNvbnRpbnVlCiAgIyBTdXBw b3J0ICJvdXRmaWxlWzppbmZpbGVbOmluZmlsZS4uLl1dIiwgZGVmYXVsdGluZyBpbmZpbGU9Im91 dGZpbGUuaW4iLgogIGNhc2UgJGFjX2ZpbGUgaW4KICAtIHwgKjotIHwgKjotOiogKSAjIGlucHV0 IGZyb20gc3RkaW4KICAgICAgICBjYXQgPiR0bXAvc3RkaW4KICAgICAgICBhY19maWxlX2luPWBl Y2hvICIkYWNfZmlsZSIgfCBzZWQgJ3MsW146XSo6LCwnYAogICAgICAgIGFjX2ZpbGU9YGVjaG8g IiRhY19maWxlIiB8IHNlZCAncyw6LiosLCdgIDs7CiAgKjoqICkgYWNfZmlsZV9pbj1gZWNobyAi JGFjX2ZpbGUiIHwgc2VkICdzLFteOl0qOiwsJ2AKICAgICAgICBhY19maWxlPWBlY2hvICIkYWNf ZmlsZSIgfCBzZWQgJ3MsOi4qLCwnYCA7OwogICogKSAgIGFjX2ZpbGVfaW49JGFjX2ZpbGUuaW4g OzsKICBlc2FjCgogIHRlc3QgeCIkYWNfZmlsZSIgIT0geC0gJiYgeyBlY2hvICIkYXNfbWU6JExJ TkVOTzogY3JlYXRpbmcgJGFjX2ZpbGUiID4mNQplY2hvICIkYXNfbWU6IGNyZWF0aW5nICRhY19m aWxlIiA+JjY7fQoKICAjIEZpcnN0IGxvb2sgZm9yIHRoZSBpbnB1dCBmaWxlcyBpbiB0aGUgYnVp bGQgdHJlZSwgb3RoZXJ3aXNlIGluIHRoZQogICMgc3JjIHRyZWUuCiAgYWNfZmlsZV9pbnB1dHM9 YElGUz06CiAgICBmb3IgZiBpbiAkYWNfZmlsZV9pbjsgZG8KICAgICAgY2FzZSAkZiBpbgogICAg ICAtKSBlY2hvICR0bXAvc3RkaW4gOzsKICAgICAgW1xcLyRdKikKICAgICAgICAgIyBBYnNvbHV0 ZSAoY2FuJ3QgYmUgRE9TLXN0eWxlLCBhcyBJRlM9OikKICAgICAgICAgdGVzdCAtZiAiJGYiIHx8 IHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBmaW5kIGlucHV0IGZpbGU6 ICRmIiA+JjUKZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGZpbmQgaW5wdXQgZmlsZTogJGYi ID4mMjt9CiAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQogICAgICAgICBlY2hvICRmOzsKICAg ICAgKikgIyBSZWxhdGl2ZQogICAgICAgICBpZiB0ZXN0IC1mICIkZiI7IHRoZW4KICAgICAgICAg ICAjIEJ1aWxkIHRyZWUKICAgICAgICAgICBlY2hvICRmCiAgICAgICAgIGVsaWYgdGVzdCAtZiAi JHNyY2Rpci8kZiI7IHRoZW4KICAgICAgICAgICAjIFNvdXJjZSB0cmVlCiAgICAgICAgICAgZWNo byAkc3JjZGlyLyRmCiAgICAgICAgIGVsc2UKICAgICAgICAgICAjIC9kZXYvbnVsbCB0cmVlCiAg ICAgICAgICAgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2Fubm90IGZpbmQgaW5w dXQgZmlsZTogJGYiID4mNQplY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgZmluZCBpbnB1dCBm aWxlOiAkZiIgPiYyO30KICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CiAgICAgICAgIGZpOzsK ICAgICAgZXNhYwogICAgZG9uZWAgfHwgeyAoZXhpdCAxKTsgZXhpdCAxOyB9CiAgIyBSZW1vdmUg dGhlIHRyYWlsaW5nIHNwYWNlcy4KICBzZWQgJ3MvWyAJXSokLy8nICRhY19maWxlX2lucHV0cyA+ JHRtcC9pbgoKICAjIEhhbmRsZSBhbGwgdGhlICNkZWZpbmUgdGVtcGxhdGVzIG9ubHkgaWYgbmVj ZXNzYXJ5LgogIGlmIGdyZXAgIl5bIAldKiNbIAldKmRlZmluZSIgJHRtcC9pbiA+L2Rldi9udWxs OyB0aGVuCiAgIyBJZiB0aGVyZSBhcmUgbm8gZGVmaW5lcywgd2UgbWF5IGhhdmUgYW4gZW1wdHkg aWYvZmkKICA6CiAgY2F0ID4kdG1wL2RlZmluZXMuc2VkIDw8Q0VPRgovXlsgCV0qI1sgCV0qZGVm aW5lLyFiCnQgY2xyCjogY2xyCiR7YWNfZEF9UEFDS0FHRV9OQU1FJHthY19kQn1QQUNLQUdFX05B TUUke2FjX2RDfSIiJHthY19kRH0KJHthY19kQX1QQUNLQUdFX1RBUk5BTUUke2FjX2RCfVBBQ0tB R0VfVEFSTkFNRSR7YWNfZEN9IiIke2FjX2REfQoke2FjX2RBfVBBQ0tBR0VfVkVSU0lPTiR7YWNf ZEJ9UEFDS0FHRV9WRVJTSU9OJHthY19kQ30iIiR7YWNfZER9CiR7YWNfZEF9UEFDS0FHRV9TVFJJ Tkcke2FjX2RCfVBBQ0tBR0VfU1RSSU5HJHthY19kQ30iIiR7YWNfZER9CiR7YWNfZEF9UEFDS0FH RV9CVUdSRVBPUlQke2FjX2RCfVBBQ0tBR0VfQlVHUkVQT1JUJHthY19kQ30iIiR7YWNfZER9CiR7 YWNfZEF9UEFDS0FHRSR7YWNfZEJ9UEFDS0FHRSR7YWNfZEN9ImxpYmljb252IiR7YWNfZER9CiR7 YWNfZEF9VkVSU0lPTiR7YWNfZEJ9VkVSU0lPTiR7YWNfZEN9IjEuOSIke2FjX2REfQoke2FjX2RB fUlOU1RBTExQUkVGSVgke2FjX2RCfUlOU1RBTExQUkVGSVgke2FjX2RDfSIvdXNyL2xvY2FsIiR7 YWNfZER9CiR7YWNfZEF9X0dOVV9TT1VSQ0Uke2FjX2RCfV9HTlVfU09VUkNFJHthY19kQ30xJHth Y19kRH0KJHthY19kQX1TVERDX0hFQURFUlMke2FjX2RCfVNURENfSEVBREVSUyR7YWNfZEN9MSR7 YWNfZER9CiR7YWNfZEF9SEFWRV9TWVNfVFlQRVNfSCR7YWNfZEJ9SEFWRV9TWVNfVFlQRVNfSCR7 YWNfZEN9MSR7YWNfZER9CiR7YWNfZEF9SEFWRV9TWVNfU1RBVF9IJHthY19kQn1IQVZFX1NZU19T VEFUX0gke2FjX2RDfTEke2FjX2REfQoke2FjX2RBfUhBVkVfU1RETElCX0gke2FjX2RCfUhBVkVf U1RETElCX0gke2FjX2RDfTEke2FjX2REfQoke2FjX2RBfUhBVkVfU1RSSU5HX0gke2FjX2RCfUhB VkVfU1RSSU5HX0gke2FjX2RDfTEke2FjX2REfQoke2FjX2RBfUhBVkVfTUVNT1JZX0gke2FjX2RC fUhBVkVfTUVNT1JZX0gke2FjX2RDfTEke2FjX2REfQoke2FjX2RBfUhBVkVfU1RSSU5HU19IJHth Y19kQn1IQVZFX1NUUklOR1NfSCR7YWNfZEN9MSR7YWNfZER9CiR7YWNfZEF9SEFWRV9JTlRUWVBF U19IJHthY19kQn1IQVZFX0lOVFRZUEVTX0gke2FjX2RDfTEke2FjX2REfQoke2FjX2RBfUhBVkVf U1RESU5UX0gke2FjX2RCfUhBVkVfU1RESU5UX0gke2FjX2RDfTEke2FjX2REfQoke2FjX2RBfUhB VkVfVU5JU1REX0gke2FjX2RCfUhBVkVfVU5JU1REX0gke2FjX2RDfTEke2FjX2REfQoke2FjX2RB fUhBVkVfRExGQ05fSCR7YWNfZEJ9SEFWRV9ETEZDTl9IJHthY19kQ30xJHthY19kRH0KJHthY19k QX1IQVZFX0lDT05WJHthY19kQn1IQVZFX0lDT05WJHthY19kQ30xJHthY19kRH0KJHthY19kQX1J Q09OVl9DT05TVCR7YWNfZEJ9SUNPTlZfQ09OU1Qke2FjX2RDfWNvbnN0JHthY19kRH0KJHthY19k QX1IQVZFX0lDT05WJHthY19kQn1IQVZFX0lDT05WJHthY19kQ30xJHthY19kRH0KJHthY19kQX1F TkFCTEVfTkxTJHthY19kQn1FTkFCTEVfTkxTJHthY19kQ30xJHthY19kRH0KJHthY19kQX1IQVZF X0dFVFRFWFQke2FjX2RCfUhBVkVfR0VUVEVYVCR7YWNfZEN9MSR7YWNfZER9CiR7YWNfZEF9SEFW RV9EQ0dFVFRFWFQke2FjX2RCfUhBVkVfRENHRVRURVhUJHthY19kQ30xJHthY19kRH0KJHthY19k QX1TVERDX0hFQURFUlMke2FjX2RCfVNURENfSEVBREVSUyR7YWNfZEN9MSR7YWNfZER9CiR7YWNf ZEF9SEFWRV9MT0NBTEVfSCR7YWNfZEJ9SEFWRV9MT0NBTEVfSCR7YWNfZEN9MSR7YWNfZER9CiR7 YWNfZEF9SEFWRV9TVERERUZfSCR7YWNfZEJ9SEFWRV9TVERERUZfSCR7YWNfZEN9MSR7YWNfZER9 CiR7YWNfZEF9SEFWRV9TVERMSUJfSCR7YWNfZEJ9SEFWRV9TVERMSUJfSCR7YWNfZEN9MSR7YWNf ZER9CiR7YWNfZEF9SEFWRV9TVFJJTkdfSCR7YWNfZEJ9SEFWRV9TVFJJTkdfSCR7YWNfZEN9MSR7 YWNfZER9CiR7YWNfZEF9SEFWRV9TVERMSUJfSCR7YWNfZEJ9SEFWRV9TVERMSUJfSCR7YWNfZEN9 MSR7YWNfZER9CiR7YWNfZEF9SEFWRV9HRVRDX1VOTE9DS0VEJHthY19kQn1IQVZFX0dFVENfVU5M T0NLRUQke2FjX2RDfTEke2FjX2REfQoke2FjX2RBfUhBVkVfTUJSVE9XQyR7YWNfZEJ9SEFWRV9N QlJUT1dDJHthY19kQ30xJHthY19kRH0KJHthY19kQX1IQVZFX1dDUlRPTUIke2FjX2RCfUhBVkVf V0NSVE9NQiR7YWNfZEN9MSR7YWNfZER9CiR7YWNfZEF9SEFWRV9NQlNJTklUJHthY19kQn1IQVZF X01CU0lOSVQke2FjX2RDfTEke2FjX2REfQoke2FjX2RBfUhBVkVfU0VUTE9DQUxFJHthY19kQn1I QVZFX1NFVExPQ0FMRSR7YWNfZEN9MSR7YWNfZER9CiR7YWNfZEF9SEFWRV9NRU1NT1ZFJHthY19k Qn1IQVZFX01FTU1PVkUke2FjX2RDfTEke2FjX2REfQpDRU9GCiAgc2VkIC1mICR0bXAvZGVmaW5l cy5zZWQgJHRtcC9pbiA+JHRtcC9vdXQKICBybSAtZiAkdG1wL2luCiAgbXYgJHRtcC9vdXQgJHRt cC9pbgoKICBjYXQgPiR0bXAvZGVmaW5lcy5zZWQgPDxDRU9GCi9eWyAJXSojWyAJXSpkZWZpbmUv IWIKdCBjbHIKOiBjbHIKJHthY19kQX1IQVZFX0xBTkdJTkZPX0NPREVTRVQke2FjX2RCfUhBVkVf TEFOR0lORk9fQ09ERVNFVCR7YWNfZEN9MSR7YWNfZER9CiR7YWNfZEF9SEFWRV9XQ0hBUl9IJHth Y19kQn1IQVZFX1dDSEFSX0gke2FjX2RDfTEke2FjX2REfQoke2FjX2RBfVdPUkRTX0xJVFRMRUVO RElBTiR7YWNfZEJ9V09SRFNfTElUVExFRU5ESUFOJHthY19kQ30xJHthY19kRH0KJHthY19kQX1I QVZFX0FMTE9DQSR7YWNfZEJ9SEFWRV9BTExPQ0Eke2FjX2RDfTEke2FjX2REfQoke2FjX2RBfUhB VkVfU1RETElCX0gke2FjX2RCfUhBVkVfU1RETElCX0gke2FjX2RDfTEke2FjX2REfQoke2FjX2RB fUhBVkVfU1RSSU5HX0gke2FjX2RCfUhBVkVfU1RSSU5HX0gke2FjX2RDfTEke2FjX2REfQoke2Fj X2RBfUhBVkVfU1lTX1BBUkFNX0gke2FjX2RCfUhBVkVfU1lTX1BBUkFNX0gke2FjX2RDfTEke2Fj X2REfQoke2FjX2RBfUhBVkVfVU5JU1REX0gke2FjX2RCfUhBVkVfVU5JU1REX0gke2FjX2RDfTEk e2FjX2REfQoke2FjX2RBfXJlYWxwYXRoJHthY19kQn1yZWFscGF0aCR7YWNfZEN9cnBsX3JlYWxw YXRoJHthY19kRH0KJHthY19kQX1IQVZFX0dFVENXRCR7YWNfZEJ9SEFWRV9HRVRDV0Qke2FjX2RD fTEke2FjX2REfQoke2FjX2RBfUhBVkVfREVDTF9DTEVBUkVSUl9VTkxPQ0tFRCR7YWNfZEJ9SEFW RV9ERUNMX0NMRUFSRVJSX1VOTE9DS0VEJHthY19kQ30xJHthY19kRH0KJHthY19kQX1IQVZFX0RF Q0xfRkVPRl9VTkxPQ0tFRCR7YWNfZEJ9SEFWRV9ERUNMX0ZFT0ZfVU5MT0NLRUQke2FjX2RDfTEk e2FjX2REfQoke2FjX2RBfUhBVkVfREVDTF9GRVJST1JfVU5MT0NLRUQke2FjX2RCfUhBVkVfREVD TF9GRVJST1JfVU5MT0NLRUQke2FjX2RDfTEke2FjX2REfQoke2FjX2RBfUhBVkVfREVDTF9GRkxV U0hfVU5MT0NLRUQke2FjX2RCfUhBVkVfREVDTF9GRkxVU0hfVU5MT0NLRUQke2FjX2RDfTAke2Fj X2REfQoke2FjX2RBfUhBVkVfREVDTF9GR0VUU19VTkxPQ0tFRCR7YWNfZEJ9SEFWRV9ERUNMX0ZH RVRTX1VOTE9DS0VEJHthY19kQ30wJHthY19kRH0KJHthY19kQX1IQVZFX0RFQ0xfRlBVVENfVU5M T0NLRUQke2FjX2RCfUhBVkVfREVDTF9GUFVUQ19VTkxPQ0tFRCR7YWNfZEN9MCR7YWNfZER9CiR7 YWNfZEF9SEFWRV9ERUNMX0ZQVVRTX1VOTE9DS0VEJHthY19kQn1IQVZFX0RFQ0xfRlBVVFNfVU5M T0NLRUQke2FjX2RDfTAke2FjX2REfQoke2FjX2RBfUhBVkVfREVDTF9GUkVBRF9VTkxPQ0tFRCR7 YWNfZEJ9SEFWRV9ERUNMX0ZSRUFEX1VOTE9DS0VEJHthY19kQ30wJHthY19kRH0KJHthY19kQX1I QVZFX0RFQ0xfRldSSVRFX1VOTE9DS0VEJHthY19kQn1IQVZFX0RFQ0xfRldSSVRFX1VOTE9DS0VE JHthY19kQ30wJHthY19kRH0KJHthY19kQX1IQVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCR7YWNfZEJ9 SEFWRV9ERUNMX0dFVENfVU5MT0NLRUQke2FjX2RDfTEke2FjX2REfQoke2FjX2RBfUhBVkVfREVD TF9HRVRDSEFSX1VOTE9DS0VEJHthY19kQn1IQVZFX0RFQ0xfR0VUQ0hBUl9VTkxPQ0tFRCR7YWNf ZEN9MSR7YWNfZER9CiR7YWNfZEF9SEFWRV9ERUNMX1BVVENfVU5MT0NLRUQke2FjX2RCfUhBVkVf REVDTF9QVVRDX1VOTE9DS0VEJHthY19kQ30xJHthY19kRH0KJHthY19kQX1IQVZFX0RFQ0xfUFVU Q0hBUl9VTkxPQ0tFRCR7YWNfZEJ9SEFWRV9ERUNMX1BVVENIQVJfVU5MT0NLRUQke2FjX2RDfTEk e2FjX2REfQoke2FjX2RBfUhBVkVfVlBSSU5URiR7YWNfZEJ9SEFWRV9WUFJJTlRGJHthY19kQ30x JHthY19kRH0KJHthY19kQX1IQVZFX1NUUkVSUk9SJHthY19kQn1IQVZFX1NUUkVSUk9SJHthY19k Q30xJHthY19kRH0KJHthY19kQX1IQVZFX0RFQ0xfU1RSRVJST1Ike2FjX2RCfUhBVkVfREVDTF9T VFJFUlJPUiR7YWNfZEN9MSR7YWNfZER9CiR7YWNfZEF9SEFWRV9ERUNMX1NUUkVSUk9SX1Ike2Fj X2RCfUhBVkVfREVDTF9TVFJFUlJPUl9SJHthY19kQ30xJHthY19kRH0KJHthY19kQX1IQVZFX1NU UkVSUk9SX1Ike2FjX2RCfUhBVkVfU1RSRVJST1JfUiR7YWNfZEN9MSR7YWNfZER9CiR7YWNfZEF9 SEFWRV9MSU1JVFNfSCR7YWNfZEJ9SEFWRV9MSU1JVFNfSCR7YWNfZEN9MSR7YWNfZER9CiR7YWNf ZEF9SEFWRV9TRVRFTlYke2FjX2RCfUhBVkVfU0VURU5WJHthY19kQ30xJHthY19kRH0KJHthY19k QX1IQVZFX1VOU0VURU5WJHthY19kQn1IQVZFX1VOU0VURU5WJHthY19kQ30xJHthY19kRH0KJHth Y19kQX1IQVZFX1NFQVJDSF9IJHthY19kQn1IQVZFX1NFQVJDSF9IJHthY19kQ30xJHthY19kRH0K JHthY19kQX1IQVZFX1NURExJQl9IJHthY19kQn1IQVZFX1NURExJQl9IJHthY19kQ30xJHthY19k RH0KJHthY19kQX1IQVZFX1NUUklOR19IJHthY19kQn1IQVZFX1NUUklOR19IJHthY19kQ30xJHth Y19kRH0KJHthY19kQX1IQVZFX1VOSVNURF9IJHthY19kQn1IQVZFX1VOSVNURF9IJHthY19kQ30x JHthY19kRH0KJHthY19kQX1IQVZFX1RTRUFSQ0gke2FjX2RCfUhBVkVfVFNFQVJDSCR7YWNfZEN9 MSR7YWNfZER9CiR7YWNfZEF9SEFWRV9FUlJOT19ERUNMJHthY19kQn1IQVZFX0VSUk5PX0RFQ0wk e2FjX2RDfTEke2FjX2REfQoke2FjX2RBfUhBVkVfU1REQk9PTF9IJHthY19kQn1IQVZFX1NUREJP T0xfSCR7YWNfZEN9MSR7YWNfZER9CkNFT0YKICBzZWQgLWYgJHRtcC9kZWZpbmVzLnNlZCAkdG1w L2luID4kdG1wL291dAogIHJtIC1mICR0bXAvaW4KICBtdiAkdG1wL291dCAkdG1wL2luCgogIGNh dCA+JHRtcC9kZWZpbmVzLnNlZCA8PENFT0YKL15bIAldKiNbIAldKmRlZmluZS8hYgp0IGNscgo6 IGNscgoke2FjX2RBfUhBVkVfU1RSRVJST1Ike2FjX2RCfUhBVkVfU1RSRVJST1Ike2FjX2RDfTEk e2FjX2REfQoke2FjX2RBfUhBVkVfU1lTX1RZUEVTX0gke2FjX2RCfUhBVkVfU1lTX1RZUEVTX0gk e2FjX2RDfTEke2FjX2REfQpDRU9GCiAgc2VkIC1mICR0bXAvZGVmaW5lcy5zZWQgJHRtcC9pbiA+ JHRtcC9vdXQKICBybSAtZiAkdG1wL2luCiAgbXYgJHRtcC9vdXQgJHRtcC9pbgoKICBmaSAjIGdy ZXAKCiAgIyBIYW5kbGUgYWxsIHRoZSAjdW5kZWYgdGVtcGxhdGVzCiAgY2F0ID4kdG1wL3VuZGVm cy5zZWQgPDxDRU9GCi9eWyAJXSojWyAJXSp1bmRlZi8hYgp0IGNscgo6IGNscgoke2FjX3VBfVBB Q0tBR0VfTkFNRSR7YWNfdUJ9UEFDS0FHRV9OQU1FJHthY191Q30iIiR7YWNfdUR9CiR7YWNfdUF9 UEFDS0FHRV9UQVJOQU1FJHthY191Qn1QQUNLQUdFX1RBUk5BTUUke2FjX3VDfSIiJHthY191RH0K JHthY191QX1QQUNLQUdFX1ZFUlNJT04ke2FjX3VCfVBBQ0tBR0VfVkVSU0lPTiR7YWNfdUN9IiIk e2FjX3VEfQoke2FjX3VBfVBBQ0tBR0VfU1RSSU5HJHthY191Qn1QQUNLQUdFX1NUUklORyR7YWNf dUN9IiIke2FjX3VEfQoke2FjX3VBfVBBQ0tBR0VfQlVHUkVQT1JUJHthY191Qn1QQUNLQUdFX0JV R1JFUE9SVCR7YWNfdUN9IiIke2FjX3VEfQoke2FjX3VBfVBBQ0tBR0Uke2FjX3VCfVBBQ0tBR0Uk e2FjX3VDfSJsaWJpY29udiIke2FjX3VEfQoke2FjX3VBfVZFUlNJT04ke2FjX3VCfVZFUlNJT04k e2FjX3VDfSIxLjkiJHthY191RH0KJHthY191QX1JTlNUQUxMUFJFRklYJHthY191Qn1JTlNUQUxM UFJFRklYJHthY191Q30iL3Vzci9sb2NhbCIke2FjX3VEfQoke2FjX3VBfV9HTlVfU09VUkNFJHth Y191Qn1fR05VX1NPVVJDRSR7YWNfdUN9MSR7YWNfdUR9CiR7YWNfdUF9U1REQ19IRUFERVJTJHth Y191Qn1TVERDX0hFQURFUlMke2FjX3VDfTEke2FjX3VEfQoke2FjX3VBfUhBVkVfU1lTX1RZUEVT X0gke2FjX3VCfUhBVkVfU1lTX1RZUEVTX0gke2FjX3VDfTEke2FjX3VEfQoke2FjX3VBfUhBVkVf U1lTX1NUQVRfSCR7YWNfdUJ9SEFWRV9TWVNfU1RBVF9IJHthY191Q30xJHthY191RH0KJHthY191 QX1IQVZFX1NURExJQl9IJHthY191Qn1IQVZFX1NURExJQl9IJHthY191Q30xJHthY191RH0KJHth Y191QX1IQVZFX1NUUklOR19IJHthY191Qn1IQVZFX1NUUklOR19IJHthY191Q30xJHthY191RH0K JHthY191QX1IQVZFX01FTU9SWV9IJHthY191Qn1IQVZFX01FTU9SWV9IJHthY191Q30xJHthY191 RH0KJHthY191QX1IQVZFX1NUUklOR1NfSCR7YWNfdUJ9SEFWRV9TVFJJTkdTX0gke2FjX3VDfTEk e2FjX3VEfQoke2FjX3VBfUhBVkVfSU5UVFlQRVNfSCR7YWNfdUJ9SEFWRV9JTlRUWVBFU19IJHth Y191Q30xJHthY191RH0KJHthY191QX1IQVZFX1NURElOVF9IJHthY191Qn1IQVZFX1NURElOVF9I JHthY191Q30xJHthY191RH0KJHthY191QX1IQVZFX1VOSVNURF9IJHthY191Qn1IQVZFX1VOSVNU RF9IJHthY191Q30xJHthY191RH0KJHthY191QX1IQVZFX0RMRkNOX0gke2FjX3VCfUhBVkVfRExG Q05fSCR7YWNfdUN9MSR7YWNfdUR9CiR7YWNfdUF9SEFWRV9JQ09OViR7YWNfdUJ9SEFWRV9JQ09O ViR7YWNfdUN9MSR7YWNfdUR9CiR7YWNfdUF9SUNPTlZfQ09OU1Qke2FjX3VCfUlDT05WX0NPTlNU JHthY191Q31jb25zdCR7YWNfdUR9CiR7YWNfdUF9SEFWRV9JQ09OViR7YWNfdUJ9SEFWRV9JQ09O ViR7YWNfdUN9MSR7YWNfdUR9CiR7YWNfdUF9RU5BQkxFX05MUyR7YWNfdUJ9RU5BQkxFX05MUyR7 YWNfdUN9MSR7YWNfdUR9CiR7YWNfdUF9SEFWRV9HRVRURVhUJHthY191Qn1IQVZFX0dFVFRFWFQk e2FjX3VDfTEke2FjX3VEfQoke2FjX3VBfUhBVkVfRENHRVRURVhUJHthY191Qn1IQVZFX0RDR0VU VEVYVCR7YWNfdUN9MSR7YWNfdUR9CiR7YWNfdUF9U1REQ19IRUFERVJTJHthY191Qn1TVERDX0hF QURFUlMke2FjX3VDfTEke2FjX3VEfQoke2FjX3VBfUhBVkVfTE9DQUxFX0gke2FjX3VCfUhBVkVf TE9DQUxFX0gke2FjX3VDfTEke2FjX3VEfQoke2FjX3VBfUhBVkVfU1REREVGX0gke2FjX3VCfUhB VkVfU1REREVGX0gke2FjX3VDfTEke2FjX3VEfQoke2FjX3VBfUhBVkVfU1RETElCX0gke2FjX3VC fUhBVkVfU1RETElCX0gke2FjX3VDfTEke2FjX3VEfQoke2FjX3VBfUhBVkVfU1RSSU5HX0gke2Fj X3VCfUhBVkVfU1RSSU5HX0gke2FjX3VDfTEke2FjX3VEfQoke2FjX3VBfUhBVkVfU1RETElCX0gk e2FjX3VCfUhBVkVfU1RETElCX0gke2FjX3VDfTEke2FjX3VEfQoke2FjX3VBfUhBVkVfR0VUQ19V TkxPQ0tFRCR7YWNfdUJ9SEFWRV9HRVRDX1VOTE9DS0VEJHthY191Q30xJHthY191RH0KJHthY191 QX1IQVZFX01CUlRPV0Mke2FjX3VCfUhBVkVfTUJSVE9XQyR7YWNfdUN9MSR7YWNfdUR9CiR7YWNf dUF9SEFWRV9XQ1JUT01CJHthY191Qn1IQVZFX1dDUlRPTUIke2FjX3VDfTEke2FjX3VEfQoke2Fj X3VBfUhBVkVfTUJTSU5JVCR7YWNfdUJ9SEFWRV9NQlNJTklUJHthY191Q30xJHthY191RH0KJHth Y191QX1IQVZFX1NFVExPQ0FMRSR7YWNfdUJ9SEFWRV9TRVRMT0NBTEUke2FjX3VDfTEke2FjX3VE fQoke2FjX3VBfUhBVkVfTUVNTU9WRSR7YWNfdUJ9SEFWRV9NRU1NT1ZFJHthY191Q30xJHthY191 RH0KQ0VPRgogIHNlZCAtZiAkdG1wL3VuZGVmcy5zZWQgJHRtcC9pbiA+JHRtcC9vdXQKICBybSAt ZiAkdG1wL2luCiAgbXYgJHRtcC9vdXQgJHRtcC9pbgoKICBjYXQgPiR0bXAvdW5kZWZzLnNlZCA8 PENFT0YKL15bIAldKiNbIAldKnVuZGVmLyFiCnQgY2xyCjogY2xyCiR7YWNfdUF9SEFWRV9MQU5H SU5GT19DT0RFU0VUJHthY191Qn1IQVZFX0xBTkdJTkZPX0NPREVTRVQke2FjX3VDfTEke2FjX3VE fQoke2FjX3VBfUhBVkVfV0NIQVJfSCR7YWNfdUJ9SEFWRV9XQ0hBUl9IJHthY191Q30xJHthY191 RH0KJHthY191QX1XT1JEU19MSVRUTEVFTkRJQU4ke2FjX3VCfVdPUkRTX0xJVFRMRUVORElBTiR7 YWNfdUN9MSR7YWNfdUR9CiR7YWNfdUF9SEFWRV9BTExPQ0Eke2FjX3VCfUhBVkVfQUxMT0NBJHth Y191Q30xJHthY191RH0KJHthY191QX1IQVZFX1NURExJQl9IJHthY191Qn1IQVZFX1NURExJQl9I JHthY191Q30xJHthY191RH0KJHthY191QX1IQVZFX1NUUklOR19IJHthY191Qn1IQVZFX1NUUklO R19IJHthY191Q30xJHthY191RH0KJHthY191QX1IQVZFX1NZU19QQVJBTV9IJHthY191Qn1IQVZF X1NZU19QQVJBTV9IJHthY191Q30xJHthY191RH0KJHthY191QX1IQVZFX1VOSVNURF9IJHthY191 Qn1IQVZFX1VOSVNURF9IJHthY191Q30xJHthY191RH0KJHthY191QX1yZWFscGF0aCR7YWNfdUJ9 cmVhbHBhdGgke2FjX3VDfXJwbF9yZWFscGF0aCR7YWNfdUR9CiR7YWNfdUF9SEFWRV9HRVRDV0Qk e2FjX3VCfUhBVkVfR0VUQ1dEJHthY191Q30xJHthY191RH0KJHthY191QX1IQVZFX0RFQ0xfQ0xF QVJFUlJfVU5MT0NLRUQke2FjX3VCfUhBVkVfREVDTF9DTEVBUkVSUl9VTkxPQ0tFRCR7YWNfdUN9 MSR7YWNfdUR9CiR7YWNfdUF9SEFWRV9ERUNMX0ZFT0ZfVU5MT0NLRUQke2FjX3VCfUhBVkVfREVD TF9GRU9GX1VOTE9DS0VEJHthY191Q30xJHthY191RH0KJHthY191QX1IQVZFX0RFQ0xfRkVSUk9S X1VOTE9DS0VEJHthY191Qn1IQVZFX0RFQ0xfRkVSUk9SX1VOTE9DS0VEJHthY191Q30xJHthY191 RH0KJHthY191QX1IQVZFX0RFQ0xfRkZMVVNIX1VOTE9DS0VEJHthY191Qn1IQVZFX0RFQ0xfRkZM VVNIX1VOTE9DS0VEJHthY191Q30wJHthY191RH0KJHthY191QX1IQVZFX0RFQ0xfRkdFVFNfVU5M T0NLRUQke2FjX3VCfUhBVkVfREVDTF9GR0VUU19VTkxPQ0tFRCR7YWNfdUN9MCR7YWNfdUR9CiR7 YWNfdUF9SEFWRV9ERUNMX0ZQVVRDX1VOTE9DS0VEJHthY191Qn1IQVZFX0RFQ0xfRlBVVENfVU5M T0NLRUQke2FjX3VDfTAke2FjX3VEfQoke2FjX3VBfUhBVkVfREVDTF9GUFVUU19VTkxPQ0tFRCR7 YWNfdUJ9SEFWRV9ERUNMX0ZQVVRTX1VOTE9DS0VEJHthY191Q30wJHthY191RH0KJHthY191QX1I QVZFX0RFQ0xfRlJFQURfVU5MT0NLRUQke2FjX3VCfUhBVkVfREVDTF9GUkVBRF9VTkxPQ0tFRCR7 YWNfdUN9MCR7YWNfdUR9CiR7YWNfdUF9SEFWRV9ERUNMX0ZXUklURV9VTkxPQ0tFRCR7YWNfdUJ9 SEFWRV9ERUNMX0ZXUklURV9VTkxPQ0tFRCR7YWNfdUN9MCR7YWNfdUR9CiR7YWNfdUF9SEFWRV9E RUNMX0dFVENfVU5MT0NLRUQke2FjX3VCfUhBVkVfREVDTF9HRVRDX1VOTE9DS0VEJHthY191Q30x JHthY191RH0KJHthY191QX1IQVZFX0RFQ0xfR0VUQ0hBUl9VTkxPQ0tFRCR7YWNfdUJ9SEFWRV9E RUNMX0dFVENIQVJfVU5MT0NLRUQke2FjX3VDfTEke2FjX3VEfQoke2FjX3VBfUhBVkVfREVDTF9Q VVRDX1VOTE9DS0VEJHthY191Qn1IQVZFX0RFQ0xfUFVUQ19VTkxPQ0tFRCR7YWNfdUN9MSR7YWNf dUR9CiR7YWNfdUF9SEFWRV9ERUNMX1BVVENIQVJfVU5MT0NLRUQke2FjX3VCfUhBVkVfREVDTF9Q VVRDSEFSX1VOTE9DS0VEJHthY191Q30xJHthY191RH0KJHthY191QX1IQVZFX1ZQUklOVEYke2Fj X3VCfUhBVkVfVlBSSU5URiR7YWNfdUN9MSR7YWNfdUR9CiR7YWNfdUF9SEFWRV9TVFJFUlJPUiR7 YWNfdUJ9SEFWRV9TVFJFUlJPUiR7YWNfdUN9MSR7YWNfdUR9CiR7YWNfdUF9SEFWRV9ERUNMX1NU UkVSUk9SJHthY191Qn1IQVZFX0RFQ0xfU1RSRVJST1Ike2FjX3VDfTEke2FjX3VEfQoke2FjX3VB fUhBVkVfREVDTF9TVFJFUlJPUl9SJHthY191Qn1IQVZFX0RFQ0xfU1RSRVJST1JfUiR7YWNfdUN9 MSR7YWNfdUR9CiR7YWNfdUF9SEFWRV9TVFJFUlJPUl9SJHthY191Qn1IQVZFX1NUUkVSUk9SX1Ik e2FjX3VDfTEke2FjX3VEfQoke2FjX3VBfUhBVkVfTElNSVRTX0gke2FjX3VCfUhBVkVfTElNSVRT X0gke2FjX3VDfTEke2FjX3VEfQoke2FjX3VBfUhBVkVfU0VURU5WJHthY191Qn1IQVZFX1NFVEVO ViR7YWNfdUN9MSR7YWNfdUR9CiR7YWNfdUF9SEFWRV9VTlNFVEVOViR7YWNfdUJ9SEFWRV9VTlNF VEVOViR7YWNfdUN9MSR7YWNfdUR9CiR7YWNfdUF9SEFWRV9TRUFSQ0hfSCR7YWNfdUJ9SEFWRV9T RUFSQ0hfSCR7YWNfdUN9MSR7YWNfdUR9CiR7YWNfdUF9SEFWRV9TVERMSUJfSCR7YWNfdUJ9SEFW RV9TVERMSUJfSCR7YWNfdUN9MSR7YWNfdUR9CiR7YWNfdUF9SEFWRV9TVFJJTkdfSCR7YWNfdUJ9 SEFWRV9TVFJJTkdfSCR7YWNfdUN9MSR7YWNfdUR9CiR7YWNfdUF9SEFWRV9VTklTVERfSCR7YWNf dUJ9SEFWRV9VTklTVERfSCR7YWNfdUN9MSR7YWNfdUR9CiR7YWNfdUF9SEFWRV9UU0VBUkNIJHth Y191Qn1IQVZFX1RTRUFSQ0gke2FjX3VDfTEke2FjX3VEfQoke2FjX3VBfUhBVkVfRVJSTk9fREVD TCR7YWNfdUJ9SEFWRV9FUlJOT19ERUNMJHthY191Q30xJHthY191RH0KJHthY191QX1IQVZFX1NU REJPT0xfSCR7YWNfdUJ9SEFWRV9TVERCT09MX0gke2FjX3VDfTEke2FjX3VEfQpDRU9GCiAgc2Vk IC1mICR0bXAvdW5kZWZzLnNlZCAkdG1wL2luID4kdG1wL291dAogIHJtIC1mICR0bXAvaW4KICBt diAkdG1wL291dCAkdG1wL2luCgogIGNhdCA+JHRtcC91bmRlZnMuc2VkIDw8Q0VPRgovXlsgCV0q I1sgCV0qdW5kZWYvIWIKdCBjbHIKOiBjbHIKJHthY191QX1IQVZFX1NUUkVSUk9SJHthY191Qn1I QVZFX1NUUkVSUk9SJHthY191Q30xJHthY191RH0KJHthY191QX1IQVZFX1NZU19UWVBFU19IJHth Y191Qn1IQVZFX1NZU19UWVBFU19IJHthY191Q30xJHthY191RH0KcyxeWyAJXSojWyAJXSp1bmRl ZlsgCV1bIAldKlthLXpBLVpfXVthLXpBLVpfMC05XSosLyogJiAqLywKQ0VPRgogIHNlZCAtZiAk dG1wL3VuZGVmcy5zZWQgJHRtcC9pbiA+JHRtcC9vdXQKICBybSAtZiAkdG1wL2luCiAgbXYgJHRt cC9vdXQgJHRtcC9pbgoKICAjIExldCdzIHN0aWxsIHByZXRlbmQgaXQgaXMgYGNvbmZpZ3VyZScg d2hpY2ggaW5zdGFudGlhdGVzIChpLmUuLCBkb24ndAogICMgdXNlICRhc19tZSksIHBlb3BsZSB3 b3VsZCBiZSBzdXJwcmlzZWQgdG8gcmVhZDoKICAjICAgIC8qIGNvbmZpZy5oLiAgR2VuZXJhdGVk IGJ5IGNvbmZpZy5zdGF0dXMuICAqLwogIGlmIHRlc3QgeCIkYWNfZmlsZSIgPSB4LTsgdGhlbgog ICAgZWNobyAiLyogR2VuZXJhdGVkIGJ5IGNvbmZpZ3VyZS4gICovIiA+JHRtcC9jb25maWcuaAog IGVsc2UKICAgIGVjaG8gIi8qICRhY19maWxlLiAgR2VuZXJhdGVkIGJ5IGNvbmZpZ3VyZS4gICov IiA+JHRtcC9jb25maWcuaAogIGZpCiAgY2F0ICR0bXAvaW4gPj4kdG1wL2NvbmZpZy5oCiAgcm0g LWYgJHRtcC9pbgogIGlmIHRlc3QgeCIkYWNfZmlsZSIgIT0geC07IHRoZW4KICAgIGlmIGRpZmYg JGFjX2ZpbGUgJHRtcC9jb25maWcuaCA+L2Rldi9udWxsIDI+JjE7IHRoZW4KICAgICAgeyBlY2hv ICIkYXNfbWU6JExJTkVOTzogJGFjX2ZpbGUgaXMgdW5jaGFuZ2VkIiA+JjUKZWNobyAiJGFzX21l OiAkYWNfZmlsZSBpcyB1bmNoYW5nZWQiID4mNjt9CiAgICBlbHNlCiAgICAgIGFjX2Rpcj1gKGRp cm5hbWUgIiRhY19maWxlIikgMj4vZGV2L251bGwgfHwKJGFzX2V4cHIgWCIkYWNfZmlsZSIgOiAn WFwoLipbXi9dXCkvLypbXi9dW14vXSovKiQnIFx8IFwKICAgICAgICAgWCIkYWNfZmlsZSIgOiAn WFwoLy9cKVteL10nIFx8IFwKICAgICAgICAgWCIkYWNfZmlsZSIgOiAnWFwoLy9cKSQnIFx8IFwK ICAgICAgICAgWCIkYWNfZmlsZSIgOiAnWFwoL1wpJyBcfCBcCiAgICAgICAgIC4gICAgIDogJ1wo LlwpJyAyPi9kZXYvbnVsbCB8fAplY2hvIFgiJGFjX2ZpbGUiIHwKICAgIHNlZCAnL15YXCguKlte L11cKVwvXC8qW14vXVteL10qXC8qJC97IHMvL1wxLzsgcTsgfQogIAkgIC9eWFwoXC9cL1wpW14v XS4qL3sgcy8vXDEvOyBxOyB9CiAgCSAgL15YXChcL1wvXCkkL3sgcy8vXDEvOyBxOyB9CiAgCSAg L15YXChcL1wpLioveyBzLy9cMS87IHE7IH0KICAJICBzLy4qLy4vOyBxJ2AKICAgICAgeyBpZiAk YXNfbWtkaXJfcDsgdGhlbgogICAgbWtkaXIgLXAgIiRhY19kaXIiCiAgZWxzZQogICAgYXNfZGly PSIkYWNfZGlyIgogICAgYXNfZGlycz0KICAgIHdoaWxlIHRlc3QgISAtZCAiJGFzX2RpciI7IGRv CiAgICAgIGFzX2RpcnM9IiRhc19kaXIgJGFzX2RpcnMiCiAgICAgIGFzX2Rpcj1gKGRpcm5hbWUg IiRhc19kaXIiKSAyPi9kZXYvbnVsbCB8fAokYXNfZXhwciBYIiRhc19kaXIiIDogJ1hcKC4qW14v XVwpLy8qW14vXVteL10qLyokJyBcfCBcCiAgICAgICAgIFgiJGFzX2RpciIgOiAnWFwoLy9cKVte L10nIFx8IFwKICAgICAgICAgWCIkYXNfZGlyIiA6ICdYXCgvL1wpJCcgXHwgXAogICAgICAgICBY IiRhc19kaXIiIDogJ1hcKC9cKScgXHwgXAogICAgICAgICAuICAgICA6ICdcKC5cKScgMj4vZGV2 L251bGwgfHwKZWNobyBYIiRhc19kaXIiIHwKICAgIHNlZCAnL15YXCguKlteL11cKVwvXC8qW14v XVteL10qXC8qJC97IHMvL1wxLzsgcTsgfQogIAkgIC9eWFwoXC9cL1wpW14vXS4qL3sgcy8vXDEv OyBxOyB9CiAgCSAgL15YXChcL1wvXCkkL3sgcy8vXDEvOyBxOyB9CiAgCSAgL15YXChcL1wpLiov eyBzLy9cMS87IHE7IH0KICAJICBzLy4qLy4vOyBxJ2AKICAgIGRvbmUKICAgIHRlc3QgISAtbiAi JGFzX2RpcnMiIHx8IG1rZGlyICRhc19kaXJzCiAgZmkgfHwgeyB7IGVjaG8gIiRhc19tZTokTElO RU5POiBlcnJvcjogY2Fubm90IGNyZWF0ZSBkaXJlY3RvcnkgXCIkYWNfZGlyXCIiID4mNQplY2hv ICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgY3JlYXRlIGRpcmVjdG9yeSBcIiRhY19kaXJcIiIgPiYy O30KICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9OyB9CgogICAgICBybSAtZiAkYWNfZmlsZQog ICAgICBtdiAkdG1wL2NvbmZpZy5oICRhY19maWxlCiAgICBmaQogIGVsc2UKICAgIGNhdCAkdG1w L2NvbmZpZy5oCiAgICBybSAtZiAkdG1wL2NvbmZpZy5oCiAgZmkKIyBDb21wdXRlICRhY19maWxl J3MgaW5kZXggaW4gJGNvbmZpZ19oZWFkZXJzLgpfYW1fc3RhbXBfY291bnQ9MQpmb3IgX2FtX2hl YWRlciBpbiAkY29uZmlnX2hlYWRlcnMgOjsgZG8KICBjYXNlICRfYW1faGVhZGVyIGluCiAgICAk YWNfZmlsZSB8ICRhY19maWxlOiogKQogICAgICBicmVhayA7OwogICAgKiApCiAgICAgIF9hbV9z dGFtcF9jb3VudD1gZXhwciAkX2FtX3N0YW1wX2NvdW50ICsgMWAgOzsKICBlc2FjCmRvbmUKZWNo byAidGltZXN0YW1wIGZvciAkYWNfZmlsZSIgPmAoZGlybmFtZSAkYWNfZmlsZSkgMj4vZGV2L251 bGwgfHwKJGFzX2V4cHIgWCRhY19maWxlIDogJ1hcKC4qW14vXVwpLy8qW14vXVteL10qLyokJyBc fCBcCiAgICAgICAgIFgkYWNfZmlsZSA6ICdYXCgvL1wpW14vXScgXHwgXAogICAgICAgICBYJGFj X2ZpbGUgOiAnWFwoLy9cKSQnIFx8IFwKICAgICAgICAgWCRhY19maWxlIDogJ1hcKC9cKScgXHwg XAogICAgICAgICAuICAgICA6ICdcKC5cKScgMj4vZGV2L251bGwgfHwKZWNobyBYJGFjX2ZpbGUg fAogICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sgcy8vXDEvOyBxOyB9 CiAgCSAgL15YXChcL1wvXClbXi9dLioveyBzLy9cMS87IHE7IH0KICAJICAvXlhcKFwvXC9cKSQv eyBzLy9cMS87IHE7IH0KICAJICAvXlhcKFwvXCkuKi97IHMvL1wxLzsgcTsgfQogIAkgIHMvLiov Li87IHEnYC9zdGFtcC1oJF9hbV9zdGFtcF9jb3VudApkb25lCgojCiMgQ09ORklHX0NPTU1BTkRT IHNlY3Rpb24uCiMKZm9yIGFjX2ZpbGUgaW4gOiAkQ09ORklHX0NPTU1BTkRTOyBkbyB0ZXN0ICJ4 JGFjX2ZpbGUiID0geDogJiYgY29udGludWUKICBhY19kZXN0PWBlY2hvICIkYWNfZmlsZSIgfCBz ZWQgJ3MsOi4qLCwnYAogIGFjX3NvdXJjZT1gZWNobyAiJGFjX2ZpbGUiIHwgc2VkICdzLFteOl0q OiwsJ2AKICBhY19kaXI9YChkaXJuYW1lICIkYWNfZGVzdCIpIDI+L2Rldi9udWxsIHx8CiRhc19l eHByIFgiJGFjX2Rlc3QiIDogJ1hcKC4qW14vXVwpLy8qW14vXVteL10qLyokJyBcfCBcCiAgICAg ICAgIFgiJGFjX2Rlc3QiIDogJ1hcKC8vXClbXi9dJyBcfCBcCiAgICAgICAgIFgiJGFjX2Rlc3Qi IDogJ1hcKC8vXCkkJyBcfCBcCiAgICAgICAgIFgiJGFjX2Rlc3QiIDogJ1hcKC9cKScgXHwgXAog ICAgICAgICAuICAgICA6ICdcKC5cKScgMj4vZGV2L251bGwgfHwKZWNobyBYIiRhY19kZXN0IiB8 CiAgICBzZWQgJy9eWFwoLipbXi9dXClcL1wvKlteL11bXi9dKlwvKiQveyBzLy9cMS87IHE7IH0K ICAJICAvXlhcKFwvXC9cKVteL10uKi97IHMvL1wxLzsgcTsgfQogIAkgIC9eWFwoXC9cL1wpJC97 IHMvL1wxLzsgcTsgfQogIAkgIC9eWFwoXC9cKS4qL3sgcy8vXDEvOyBxOyB9CiAgCSAgcy8uKi8u LzsgcSdgCiAgYWNfYnVpbGRkaXI9LgoKaWYgdGVzdCAiJGFjX2RpciIgIT0gLjsgdGhlbgogIGFj X2Rpcl9zdWZmaXg9L2BlY2hvICIkYWNfZGlyIiB8IHNlZCAncyxeXC5bXFwvXSwsJ2AKICAjIEEg Ii4uLyIgZm9yIGVhY2ggZGlyZWN0b3J5IGluICRhY19kaXJfc3VmZml4LgogIGFjX3RvcF9idWls ZGRpcj1gZWNobyAiJGFjX2Rpcl9zdWZmaXgiIHwgc2VkICdzLC9bXlxcL10qLC4uLyxnJ2AKZWxz ZQogIGFjX2Rpcl9zdWZmaXg9IGFjX3RvcF9idWlsZGRpcj0KZmkKCmNhc2UgJHNyY2RpciBpbgog IC4pICAjIE5vIC0tc3JjZGlyIG9wdGlvbi4gIFdlIGFyZSBidWlsZGluZyBpbiBwbGFjZS4KICAg IGFjX3NyY2Rpcj0uCiAgICBpZiB0ZXN0IC16ICIkYWNfdG9wX2J1aWxkZGlyIjsgdGhlbgogICAg ICAgYWNfdG9wX3NyY2Rpcj0uCiAgICBlbHNlCiAgICAgICBhY190b3Bfc3JjZGlyPWBlY2hvICRh Y190b3BfYnVpbGRkaXIgfCBzZWQgJ3MsLyQsLCdgCiAgICBmaSA7OwogIFtcXC9dKiB8ID86W1xc L10qICkgICMgQWJzb2x1dGUgcGF0aC4KICAgIGFjX3NyY2Rpcj0kc3JjZGlyJGFjX2Rpcl9zdWZm aXg7CiAgICBhY190b3Bfc3JjZGlyPSRzcmNkaXIgOzsKICAqKSAjIFJlbGF0aXZlIHBhdGguCiAg ICBhY19zcmNkaXI9JGFjX3RvcF9idWlsZGRpciRzcmNkaXIkYWNfZGlyX3N1ZmZpeAogICAgYWNf dG9wX3NyY2Rpcj0kYWNfdG9wX2J1aWxkZGlyJHNyY2RpciA7Owplc2FjCiMgRG9uJ3QgYmxpbmRs eSBwZXJmb3JtIGEgYGNkICIkYWNfZGlyIi8kYWNfZm9vICYmIHB3ZGAgc2luY2UgJGFjX2ZvbyBj YW4gYmUKIyBhYnNvbHV0ZS4KYWNfYWJzX2J1aWxkZGlyPWBjZCAiJGFjX2RpciIgJiYgY2QgJGFj X2J1aWxkZGlyICYmIHB3ZGAKYWNfYWJzX3RvcF9idWlsZGRpcj1gY2QgIiRhY19kaXIiICYmIGNk ICR7YWNfdG9wX2J1aWxkZGlyfS4gJiYgcHdkYAphY19hYnNfc3JjZGlyPWBjZCAiJGFjX2RpciIg JiYgY2QgJGFjX3NyY2RpciAmJiBwd2RgCmFjX2Fic190b3Bfc3JjZGlyPWBjZCAiJGFjX2RpciIg JiYgY2QgJGFjX3RvcF9zcmNkaXIgJiYgcHdkYAoKCiAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzog ZXhlY3V0aW5nICRhY19kZXN0IGNvbW1hbmRzIiA+JjUKZWNobyAiJGFzX21lOiBleGVjdXRpbmcg JGFjX2Rlc3QgY29tbWFuZHMiID4mNjt9CiAgY2FzZSAkYWNfZGVzdCBpbgogICAgZGVwZmlsZXMg KSB0ZXN0IHgiJEFNREVQX1RSVUUiICE9IHgiIiB8fCBmb3IgbWYgaW4gJENPTkZJR19GSUxFUzsg ZG8KICAjIFN0cmlwIE1GIHNvIHdlIGVuZCB1cCB3aXRoIHRoZSBuYW1lIG9mIHRoZSBmaWxlLgog IG1mPWBlY2hvICIkbWYiIHwgc2VkIC1lICdzLzouKiQvLydgCiAgIyBDaGVjayB3aGV0aGVyIHRo aXMgaXMgYW4gQXV0b21ha2UgZ2VuZXJhdGVkIE1ha2VmaWxlIG9yIG5vdC4KICAjIFdlIHVzZWQg dG8gbWF0Y2ggb25seSB0aGUgZmlsZXMgbmFtZWQgYE1ha2VmaWxlLmluJywgYnV0CiAgIyBzb21l IHBlb3BsZSByZW5hbWUgdGhlbTsgc28gaW5zdGVhZCB3ZSBsb29rIGF0IHRoZSBmaWxlIGNvbnRl bnQuCiAgIyBHcmVwJ2luZyB0aGUgZmlyc3QgbGluZSBpcyBub3QgZW5vdWdoOiBzb21lIHBlb3Bs ZSBwb3N0LXByb2Nlc3MKICAjIGVhY2ggTWFrZWZpbGUuaW4gYW5kIGFkZCBhIG5ldyBsaW5lIG9u IHRvcCBvZiBlYWNoIGZpbGUgdG8gc2F5IHNvLgogICMgU28gbGV0J3MgZ3JlcCB3aG9sZSBmaWxl LgogIGlmIGdyZXAgJ14jLipnZW5lcmF0ZWQgYnkgYXV0b21ha2UnICRtZiA+IC9kZXYvbnVsbCAy PiYxOyB0aGVuCiAgICBkaXJwYXJ0PWAoZGlybmFtZSAiJG1mIikgMj4vZGV2L251bGwgfHwKJGFz X2V4cHIgWCIkbWYiIDogJ1hcKC4qW14vXVwpLy8qW14vXVteL10qLyokJyBcfCBcCiAgICAgICAg IFgiJG1mIiA6ICdYXCgvL1wpW14vXScgXHwgXAogICAgICAgICBYIiRtZiIgOiAnWFwoLy9cKSQn IFx8IFwKICAgICAgICAgWCIkbWYiIDogJ1hcKC9cKScgXHwgXAogICAgICAgICAuICAgICA6ICdc KC5cKScgMj4vZGV2L251bGwgfHwKZWNobyBYIiRtZiIgfAogICAgc2VkICcvXlhcKC4qW14vXVwp XC9cLypbXi9dW14vXSpcLyokL3sgcy8vXDEvOyBxOyB9CiAgCSAgL15YXChcL1wvXClbXi9dLiov eyBzLy9cMS87IHE7IH0KICAJICAvXlhcKFwvXC9cKSQveyBzLy9cMS87IHE7IH0KICAJICAvXlhc KFwvXCkuKi97IHMvL1wxLzsgcTsgfQogIAkgIHMvLiovLi87IHEnYAogIGVsc2UKICAgIGNvbnRp bnVlCiAgZmkKICBncmVwICdeREVQX0ZJTEVTICo9ICpbXiAjXScgPCAiJG1mIiA+IC9kZXYvbnVs bCB8fCBjb250aW51ZQogICMgRXh0cmFjdCB0aGUgZGVmaW5pdGlvbiBvZiBERVBfRklMRVMgZnJv bSB0aGUgTWFrZWZpbGUgd2l0aG91dAogICMgcnVubmluZyBgbWFrZScuCiAgREVQRElSPWBzZWQg LW4gLWUgJy9eREVQRElSID0gLyBzLy8vcCcgPCAiJG1mImAKICB0ZXN0IC16ICIkREVQRElSIiAm JiBjb250aW51ZQogICMgV2hlbiB1c2luZyBhbnNpMmtuciwgVSBtYXkgYmUgZW1wdHkgb3IgYW4g dW5kZXJzY29yZTsgZXhwYW5kIGl0CiAgVT1gc2VkIC1uIC1lICcvXlUgPSAvIHMvLy9wJyA8ICIk bWYiYAogIHRlc3QgLWQgIiRkaXJwYXJ0LyRERVBESVIiIHx8IG1rZGlyICIkZGlycGFydC8kREVQ RElSIgogICMgV2UgaW52b2tlIHNlZCB0d2ljZSBiZWNhdXNlIGl0IGlzIHRoZSBzaW1wbGVzdCBh cHByb2FjaCB0bwogICMgY2hhbmdpbmcgJChERVBESVIpIHRvIGl0cyBhY3R1YWwgdmFsdWUgaW4g dGhlIGV4cGFuc2lvbi4KICBmb3IgZmlsZSBpbiBgc2VkIC1uIC1lICcKICAgIC9eREVQX0ZJTEVT ID0gLipcXFxcJC8gewogICAgICBzL15ERVBfRklMRVMgPSAvLwogICAgICA6bG9vcAoJcy9cXFxc JC8vCglwCgluCgkvXFxcXCQvIGIgbG9vcAogICAgICBwCiAgICB9CiAgICAvXkRFUF9GSUxFUyA9 IC8gcy9eREVQX0ZJTEVTID0gLy9wJyA8ICIkbWYiIHwgXAogICAgICAgc2VkIC1lICdzL1wkKERF UERJUikvJyIkREVQRElSIicvZycgLWUgJ3MvXCRVLyciJFUiJy9nJ2A7IGRvCiAgICAjIE1ha2Ug c3VyZSB0aGUgZGlyZWN0b3J5IGV4aXN0cy4KICAgIHRlc3QgLWYgIiRkaXJwYXJ0LyRmaWxlIiAm JiBjb250aW51ZQogICAgZmRpcj1gKGRpcm5hbWUgIiRmaWxlIikgMj4vZGV2L251bGwgfHwKJGFz X2V4cHIgWCIkZmlsZSIgOiAnWFwoLipbXi9dXCkvLypbXi9dW14vXSovKiQnIFx8IFwKICAgICAg ICAgWCIkZmlsZSIgOiAnWFwoLy9cKVteL10nIFx8IFwKICAgICAgICAgWCIkZmlsZSIgOiAnWFwo Ly9cKSQnIFx8IFwKICAgICAgICAgWCIkZmlsZSIgOiAnWFwoL1wpJyBcfCBcCiAgICAgICAgIC4g ICAgIDogJ1woLlwpJyAyPi9kZXYvbnVsbCB8fAplY2hvIFgiJGZpbGUiIHwKICAgIHNlZCAnL15Y XCguKlteL11cKVwvXC8qW14vXVteL10qXC8qJC97IHMvL1wxLzsgcTsgfQogIAkgIC9eWFwoXC9c L1wpW14vXS4qL3sgcy8vXDEvOyBxOyB9CiAgCSAgL15YXChcL1wvXCkkL3sgcy8vXDEvOyBxOyB9 CiAgCSAgL15YXChcL1wpLioveyBzLy9cMS87IHE7IH0KICAJICBzLy4qLy4vOyBxJ2AKICAgIHsg aWYgJGFzX21rZGlyX3A7IHRoZW4KICAgIG1rZGlyIC1wICRkaXJwYXJ0LyRmZGlyCiAgZWxzZQog ICAgYXNfZGlyPSRkaXJwYXJ0LyRmZGlyCiAgICBhc19kaXJzPQogICAgd2hpbGUgdGVzdCAhIC1k ICIkYXNfZGlyIjsgZG8KICAgICAgYXNfZGlycz0iJGFzX2RpciAkYXNfZGlycyIKICAgICAgYXNf ZGlyPWAoZGlybmFtZSAiJGFzX2RpciIpIDI+L2Rldi9udWxsIHx8CiRhc19leHByIFgiJGFzX2Rp ciIgOiAnWFwoLipbXi9dXCkvLypbXi9dW14vXSovKiQnIFx8IFwKICAgICAgICAgWCIkYXNfZGly IiA6ICdYXCgvL1wpW14vXScgXHwgXAogICAgICAgICBYIiRhc19kaXIiIDogJ1hcKC8vXCkkJyBc fCBcCiAgICAgICAgIFgiJGFzX2RpciIgOiAnWFwoL1wpJyBcfCBcCiAgICAgICAgIC4gICAgIDog J1woLlwpJyAyPi9kZXYvbnVsbCB8fAplY2hvIFgiJGFzX2RpciIgfAogICAgc2VkICcvXlhcKC4q W14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sgcy8vXDEvOyBxOyB9CiAgCSAgL15YXChcL1wvXClb Xi9dLioveyBzLy9cMS87IHE7IH0KICAJICAvXlhcKFwvXC9cKSQveyBzLy9cMS87IHE7IH0KICAJ ICAvXlhcKFwvXCkuKi97IHMvL1wxLzsgcTsgfQogIAkgIHMvLiovLi87IHEnYAogICAgZG9uZQog ICAgdGVzdCAhIC1uICIkYXNfZGlycyIgfHwgbWtkaXIgJGFzX2RpcnMKICBmaSB8fCB7IHsgZWNo byAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgY3JlYXRlIGRpcmVjdG9yeSAkZGlycGFy dC8kZmRpciIgPiY1CmVjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBjcmVhdGUgZGlyZWN0b3J5 ICRkaXJwYXJ0LyRmZGlyIiA+JjI7fQogICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07IH0KCiAg ICAjIGVjaG8gImNyZWF0aW5nICRkaXJwYXJ0LyRmaWxlIgogICAgZWNobyAnIyBkdW1teScgPiAi JGRpcnBhcnQvJGZpbGUiCiAgZG9uZQpkb25lCiA7OwogICAgZGVmYXVsdC0xICkKICAgIGZvciBh Y19maWxlIGluICRDT05GSUdfRklMRVM7IGRvCiAgICAgICMgU3VwcG9ydCAib3V0ZmlsZVs6aW5m aWxlWzppbmZpbGUuLi5dXSIKICAgICAgY2FzZSAiJGFjX2ZpbGUiIGluCiAgICAgICAgKjoqKSBh Y19maWxlPWBlY2hvICIkYWNfZmlsZSJ8c2VkICdzJTouKiUlJ2AgOzsKICAgICAgZXNhYwogICAg ICAjIFBPIGRpcmVjdG9yaWVzIGhhdmUgYSBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgZnJvbSBNYWtl ZmlsZS5pbi5pbi4KICAgICAgY2FzZSAiJGFjX2ZpbGUiIGluICovTWFrZWZpbGUuaW4pCiAgICAg ICAgIyBBZGp1c3QgYSByZWxhdGl2ZSBzcmNkaXIuCiAgICAgICAgYWNfZGlyPWBlY2hvICIkYWNf ZmlsZSJ8c2VkICdzJS9bXi9dW14vXSokJSUnYAogICAgICAgIGFjX2Rpcl9zdWZmaXg9Ii9gZWNo byAiJGFjX2RpciJ8c2VkICdzJV5cLi8lJSdgIgogICAgICAgIGFjX2RvdHM9YGVjaG8gIiRhY19k aXJfc3VmZml4InxzZWQgJ3MlL1teL10qJS4uLyVnJ2AKICAgICAgICAjIEluIGF1dG9jb25mLTIu MTMgaXQgaXMgY2FsbGVkICRhY19naXZlbl9zcmNkaXIuCiAgICAgICAgIyBJbiBhdXRvY29uZi0y LjUwIGl0IGlzIGNhbGxlZCAkc3JjZGlyLgogICAgICAgIHRlc3QgLW4gIiRhY19naXZlbl9zcmNk aXIiIHx8IGFjX2dpdmVuX3NyY2Rpcj0iJHNyY2RpciIKICAgICAgICBjYXNlICIkYWNfZ2l2ZW5f c3JjZGlyIiBpbgogICAgICAgICAgLikgIHRvcF9zcmNkaXI9YGVjaG8gJGFjX2RvdHN8c2VkICdz JS8kJSUnYCA7OwogICAgICAgICAgLyopIHRvcF9zcmNkaXI9IiRhY19naXZlbl9zcmNkaXIiIDs7 CiAgICAgICAgICAqKSAgdG9wX3NyY2Rpcj0iJGFjX2RvdHMkYWNfZ2l2ZW5fc3JjZGlyIiA7Owog ICAgICAgIGVzYWMKICAgICAgICBpZiB0ZXN0IC1mICIkYWNfZ2l2ZW5fc3JjZGlyLyRhY19kaXIv UE9URklMRVMuaW4iOyB0aGVuCiAgICAgICAgICBybSAtZiAiJGFjX2Rpci9QT1RGSUxFUyIKICAg ICAgICAgIHRlc3QgLW4gIiRhc19tZSIgJiYgZWNobyAiJGFzX21lOiBjcmVhdGluZyAkYWNfZGly L1BPVEZJTEVTIiB8fCBlY2hvICJjcmVhdGluZyAkYWNfZGlyL1BPVEZJTEVTIgogICAgICAgICAg Y2F0ICIkYWNfZ2l2ZW5fc3JjZGlyLyRhY19kaXIvUE9URklMRVMuaW4iIHwgc2VkIC1lICIvXiMv ZCIgLWUgIi9eWyAJXSpcJC9kIiAtZSAicywuKiwgICAgICR0b3Bfc3JjZGlyLyYgXFxcXCwiIHwg c2VkIC1lICJcJHMvXCguKlwpIFxcXFwvXDEvIiA+ICIkYWNfZGlyL1BPVEZJTEVTIgogICAgICAg ICAgUE9NQUtFRklMRURFUFM9IlBPVEZJTEVTLmluIgogICAgICAgICAgIyBBTExfTElOR1VBUywg UE9GSUxFUywgR01PRklMRVMsIFVQREFURVBPRklMRVMsIERVTU1ZUE9GSUxFUyBkZXBlbmQKICAg ICAgICAgICMgb24gJGFjX2RpciBidXQgZG9uJ3QgZGVwZW5kIG9uIHVzZXItc3BlY2lmaWVkIGNv bmZpZ3VyYXRpb24KICAgICAgICAgICMgcGFyYW1ldGVycy4KICAgICAgICAgIGlmIHRlc3QgLWYg IiRhY19naXZlbl9zcmNkaXIvJGFjX2Rpci9MSU5HVUFTIjsgdGhlbgogICAgICAgICAgICAjIFRo ZSBMSU5HVUFTIGZpbGUgY29udGFpbnMgdGhlIHNldCBvZiBhdmFpbGFibGUgbGFuZ3VhZ2VzLgog ICAgICAgICAgICBpZiB0ZXN0IC1uICIkT0JTT0xFVEVfQUxMX0xJTkdVQVMiOyB0aGVuCiAgICAg ICAgICAgICAgdGVzdCAtbiAiJGFzX21lIiAmJiBlY2hvICIkYXNfbWU6IHNldHRpbmcgQUxMX0xJ TkdVQVMgaW4gY29uZmlndXJlLmluIGlzIG9ic29sZXRlIiB8fCBlY2hvICJzZXR0aW5nIEFMTF9M SU5HVUFTIGluIGNvbmZpZ3VyZS5pbiBpcyBvYnNvbGV0ZSIKICAgICAgICAgICAgZmkKICAgICAg ICAgICAgQUxMX0xJTkdVQVNfPWBzZWQgLWUgIi9eIy9kIiAiJGFjX2dpdmVuX3NyY2Rpci8kYWNf ZGlyL0xJTkdVQVMiYAogICAgICAgICAgICAjIEhpZGUgdGhlIEFMTF9MSU5HVUFTIGFzc2lnbWVu dCBmcm9tIGF1dG9tYWtlLgogICAgICAgICAgICBldmFsICdBTExfTElOR1VBUycnPSRBTExfTElO R1VBU18nCiAgICAgICAgICAgIFBPTUFLRUZJTEVERVBTPSIkUE9NQUtFRklMRURFUFMgTElOR1VB UyIKICAgICAgICAgIGVsc2UKICAgICAgICAgICAgIyBUaGUgc2V0IG9mIGF2YWlsYWJsZSBsYW5n dWFnZXMgd2FzIGdpdmVuIGluIGNvbmZpZ3VyZS5pbi4KICAgICAgICAgICAgZXZhbCAnQUxMX0xJ TkdVQVMnJz0kT0JTT0xFVEVfQUxMX0xJTkdVQVMnCiAgICAgICAgICBmaQogICAgICAgICAgY2Fz ZSAiJGFjX2dpdmVuX3NyY2RpciIgaW4KICAgICAgICAgICAgLikgc3JjZGlycHJlPSA7OwogICAg ICAgICAgICAqKSBzcmNkaXJwcmU9JyQoc3JjZGlyKS8nIDs7CiAgICAgICAgICBlc2FjCiAgICAg ICAgICBQT0ZJTEVTPQogICAgICAgICAgR01PRklMRVM9CiAgICAgICAgICBVUERBVEVQT0ZJTEVT PQogICAgICAgICAgRFVNTVlQT0ZJTEVTPQogICAgICAgICAgZm9yIGxhbmcgaW4gJEFMTF9MSU5H VUFTOyBkbwogICAgICAgICAgICBQT0ZJTEVTPSIkUE9GSUxFUyAkc3JjZGlycHJlJGxhbmcucG8i CiAgICAgICAgICAgIEdNT0ZJTEVTPSIkR01PRklMRVMgJHNyY2RpcnByZSRsYW5nLmdtbyIKICAg ICAgICAgICAgVVBEQVRFUE9GSUxFUz0iJFVQREFURVBPRklMRVMgJGxhbmcucG8tdXBkYXRlIgog ICAgICAgICAgICBEVU1NWVBPRklMRVM9IiREVU1NWVBPRklMRVMgJGxhbmcubm9wIgogICAgICAg ICAgZG9uZQogICAgICAgICAgIyBDQVRBTE9HUyBkZXBlbmRzIG9uIGJvdGggJGFjX2RpciBhbmQg dGhlIHVzZXIncyBMSU5HVUFTCiAgICAgICAgICAjIGVudmlyb25tZW50IHZhcmlhYmxlLgogICAg ICAgICAgSU5TVF9MSU5HVUFTPQogICAgICAgICAgaWYgdGVzdCAtbiAiJEFMTF9MSU5HVUFTIjsg dGhlbgogICAgICAgICAgICBmb3IgcHJlc2VudGxhbmcgaW4gJEFMTF9MSU5HVUFTOyBkbwogICAg ICAgICAgICAgIHVzZWl0PW5vCiAgICAgICAgICAgICAgaWYgdGVzdCAiJVVOU0VUJSIgIT0gIiRM SU5HVUFTIjsgdGhlbgogICAgICAgICAgICAgICAgZGVzaXJlZGxhbmd1YWdlcz0iJExJTkdVQVMi CiAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgZGVzaXJlZGxhbmd1YWdlcz0iJEFM TF9MSU5HVUFTIgogICAgICAgICAgICAgIGZpCiAgICAgICAgICAgICAgZm9yIGRlc2lyZWRsYW5n IGluICRkZXNpcmVkbGFuZ3VhZ2VzOyBkbwogICAgICAgICAgICAgICAgIyBVc2UgdGhlIHByZXNl bnRsYW5nIGNhdGFsb2cgaWYgZGVzaXJlZGxhbmcgaXMKICAgICAgICAgICAgICAgICMgICBhLiBl cXVhbCB0byBwcmVzZW50bGFuZywgb3IKICAgICAgICAgICAgICAgICMgICBiLiBhIHZhcmlhbnQg b2YgcHJlc2VudGxhbmcgKGJlY2F1c2UgaW4gdGhpcyBjYXNlLAogICAgICAgICAgICAgICAgIyAg ICAgIHByZXNlbnRsYW5nIGNhbiBiZSB1c2VkIGFzIGEgZmFsbGJhY2sgZm9yIG1lc3NhZ2VzCiAg ICAgICAgICAgICAgICAjICAgICAgd2hpY2ggYXJlIG5vdCB0cmFuc2xhdGVkIGluIHRoZSBkZXNp cmVkbGFuZyBjYXRhbG9nKS4KICAgICAgICAgICAgICAgIGNhc2UgIiRkZXNpcmVkbGFuZyIgaW4K ICAgICAgICAgICAgICAgICAgIiRwcmVzZW50bGFuZyIqKSB1c2VpdD15ZXM7OwogICAgICAgICAg ICAgICAgZXNhYwogICAgICAgICAgICAgIGRvbmUKICAgICAgICAgICAgICBpZiB0ZXN0ICR1c2Vp dCA9IHllczsgdGhlbgogICAgICAgICAgICAgICAgSU5TVF9MSU5HVUFTPSIkSU5TVF9MSU5HVUFT ICRwcmVzZW50bGFuZyIKICAgICAgICAgICAgICBmaQogICAgICAgICAgICBkb25lCiAgICAgICAg ICBmaQogICAgICAgICAgQ0FUQUxPR1M9CiAgICAgICAgICBpZiB0ZXN0IC1uICIkSU5TVF9MSU5H VUFTIjsgdGhlbgogICAgICAgICAgICBmb3IgbGFuZyBpbiAkSU5TVF9MSU5HVUFTOyBkbwogICAg ICAgICAgICAgIENBVEFMT0dTPSIkQ0FUQUxPR1MgJGxhbmcuZ21vIgogICAgICAgICAgICBkb25l CiAgICAgICAgICBmaQogICAgICAgICAgdGVzdCAtbiAiJGFzX21lIiAmJiBlY2hvICIkYXNfbWU6 IGNyZWF0aW5nICRhY19kaXIvTWFrZWZpbGUiIHx8IGVjaG8gImNyZWF0aW5nICRhY19kaXIvTWFr ZWZpbGUiCiAgICAgICAgICBzZWQgLWUgIi9eUE9URklMRVMgPS9yICRhY19kaXIvUE9URklMRVMi IC1lICIvXiMgTWFrZXZhcnMvciAkYWNfZ2l2ZW5fc3JjZGlyLyRhY19kaXIvTWFrZXZhcnMiIC1l ICJzfEBQT0ZJTEVTQHwkUE9GSUxFU3xnIiAtZSAic3xAR01PRklMRVNAfCRHTU9GSUxFU3xnIiAt ZSAic3xAVVBEQVRFUE9GSUxFU0B8JFVQREFURVBPRklMRVN8ZyIgLWUgInN8QERVTU1ZUE9GSUxF U0B8JERVTU1ZUE9GSUxFU3xnIiAtZSAic3xAQ0FUQUxPR1NAfCRDQVRBTE9HU3xnIiAtZSAic3xA UE9NQUtFRklMRURFUFNAfCRQT01BS0VGSUxFREVQU3xnIiAiJGFjX2Rpci9NYWtlZmlsZS5pbiIg PiAiJGFjX2Rpci9NYWtlZmlsZSIKICAgICAgICAgIGZvciBmIGluICIkYWNfZ2l2ZW5fc3JjZGly LyRhY19kaXIiL1J1bGVzLSo7IGRvCiAgICAgICAgICAgIGlmIHRlc3QgLWYgIiRmIjsgdGhlbgog ICAgICAgICAgICAgIGNhc2UgIiRmIiBpbgogICAgICAgICAgICAgICAgKi5vcmlnIHwgKi5iYWsg fCAqfikgOzsKICAgICAgICAgICAgICAgICopIGNhdCAiJGYiID4+ICIkYWNfZGlyL01ha2VmaWxl IiA7OwogICAgICAgICAgICAgIGVzYWMKICAgICAgICAgICAgZmkKICAgICAgICAgIGRvbmUKICAg ICAgICBmaQogICAgICAgIDs7CiAgICAgIGVzYWMKICAgIGRvbmUgOzsKICBlc2FjCmRvbmUKCnsg KGV4aXQgMCk7IGV4aXQgMDsgfQo= --Multipart=_Wed__31_Mar_2004_09_22_47_+0200_IVAWlh/MouLt7b_T Content-Type: application/octet-stream; name="libtool" Content-Disposition: attachment; filename="libtool" Content-Transfer-Encoding: base64 IyEgL2Jpbi9iYXNoCgojIGxpYnRvb2wgLSBQcm92aWRlIGdlbmVyYWxpemVkIGxpYnJhcnktYnVp bGRpbmcgc3VwcG9ydCBzZXJ2aWNlcy4KIyBHZW5lcmF0ZWQgYXV0b21hdGljYWxseSBieSBsdGNv bmZpZyAoR05VIGxpYnRvb2wgMS4zLjUtZnJlZWJzZC1wb3J0cyAoMS4zODUuMi4yMDYgMjAwMC8w NS8yNyAxMToxMjoyNykpCiMgTk9URTogQ2hhbmdlcyBtYWRlIHRvIHRoaXMgZmlsZSB3aWxsIGJl IGxvc3Q6IGxvb2sgYXQgbHRjb25maWcgb3IgbHRtYWluLnNoLgojCiMgQ29weXJpZ2h0IChDKSAx OTk2LTE5OTkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiMgT3JpZ2luYWxseSBieSBH b3Jkb24gTWF0emlna2VpdCA8Z29yZEBnbnUuYWkubWl0LmVkdT4sIDE5OTYKIwojIFRoaXMgcHJv Z3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9k aWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIg dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy IHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh dCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0CiMgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiMgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg Y29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMg cHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24s IEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3 LCBVU0EuCiMKIyBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSwgaWYgeW91CiMgZGlzdHJpYnV0ZSB0aGlzIGZpbGUgYXMgcGFydCBvZiBhIHBy b2dyYW0gdGhhdCBjb250YWlucyBhCiMgY29uZmlndXJhdGlvbiBzY3JpcHQgZ2VuZXJhdGVkIGJ5 IEF1dG9jb25mLCB5b3UgbWF5IGluY2x1ZGUgaXQgdW5kZXIKIyB0aGUgc2FtZSBkaXN0cmlidXRp b24gdGVybXMgdGhhdCB5b3UgdXNlIGZvciB0aGUgcmVzdCBvZiB0aGF0IHByb2dyYW0uCgojIFNl ZCB0aGF0IGhlbHBzIHVzIGF2b2lkIGFjY2lkZW50YWxseSB0cmlnZ2VyaW5nIGVjaG8oMSkgb3B0 aW9ucyBsaWtlIC1uLgpYc2VkPSJzZWQgLWUgcy9eWC8vIgoKIyBUaGUgSFAtVVgga3NoIGFuZCBQ T1NJWCBzaGVsbCBwcmludCB0aGUgdGFyZ2V0IGRpcmVjdG9yeSB0byBzdGRvdXQKIyBpZiBDRFBB VEggaXMgc2V0LgppZiB0ZXN0ICJYJHtDRFBBVEgrc2V0fSIgPSBYc2V0OyB0aGVuIENEUEFUSD06 OyBleHBvcnQgQ0RQQVRIOyBmaQoKIyMjIEJFR0lOIExJQlRPT0wgQ09ORklHCiMgTGlidG9vbCB3 YXMgY29uZmlndXJlZCBhcyBmb2xsb3dzLCBvbiBob3N0IFJlaW5la2UuTWFsZXBhcnR1cy5kZToK IwojIENDPSIiIENGTEFHUz0iIiBDUFBGTEFHUz0iIiBcCiMgTEQ9IiIgTERGTEFHUz0iIiBMSUJT PSIiIFwKIyBOTT0iIiBSQU5MSUI9IiIgTE5fUz0iIiBcCiMgRExMVE9PTD0iIiBPQkpEVU1QPSIi IEFTPSIiIFwKIyAgIC91c3IvbG9jYWwvc2hhcmUvbGlidG9vbDEzL2x0Y29uZmlnMTMgLS1kaXNh YmxlLWx0bGlicyAvdXNyL2xvY2FsL3NoYXJlL2xpYnRvb2wxMy9sdG1haW4uc2gKIwojIENvbXBp bGVyIGFuZCBvdGhlciB0ZXN0IG91dHB1dCBwcm9kdWNlZCBieSBsdGNvbmZpZzEzLCB1c2VmdWwg Zm9yCiMgZGVidWdnaW5nIGx0Y29uZmlnMTMsIGlzIGluIC4vY29uZmlnLmxvZyBpZiBpdCBleGlz dHMuCgojIFRoZSB2ZXJzaW9uIG9mIGx0Y29uZmlnMTMgdGhhdCBnZW5lcmF0ZWQgdGhpcyBzY3Jp cHQuCkxUQ09ORklHX1ZFUlNJT049IjEuMy41LWZyZWVic2QtcG9ydHMiCgojIFNoZWxsIHRvIHVz ZSB3aGVuIGludm9raW5nIHNoZWxsIHNjcmlwdHMuClNIRUxMPSIvYmluL2Jhc2giCgojIFdoZXRo ZXIgdG8gd2FzdGUgZGlzayBzcGFjZS4KaW5zdGFsbF9sdGxpYnM9bm8gCgojIFdoYXQgdG8gZG8g d2l0aCAtcmVsZWFzZS4KIyAgeWVzIC0gb25seSBmb3Igc2hhcmVkIGFyY2hpdmUKIyAgbm8gIC0g aW5nbm9yZQojICBhbGwgLSBmb3IgYWxsIGFyY2hpdmVzCnJlbGVhc2Vfc3VmZml4PXllcwoKIyBX aGV0aGVyIG9yIG5vdCB0byBidWlsZCBzaGFyZWQgbGlicmFyaWVzLgpidWlsZF9saWJ0b29sX2xp YnM9bm8KCiMgV2hldGhlciBvciBub3QgdG8gYnVpbGQgc3RhdGljIGxpYnJhcmllcy4KYnVpbGRf b2xkX2xpYnM9eWVzCgojIFdoZXRoZXIgb3Igbm90IHRvIG9wdGltaXplIGZvciBmYXN0IGluc3Rh bGxhdGlvbi4KZmFzdF9pbnN0YWxsPW5lZWRsZXNzCgojIFRoZSBob3N0IHN5c3RlbS4KaG9zdF9h bGlhcz1hbWQ2NC11bmtub3duLWtmcmVlYnNkNS4yLWdudQpob3N0PWFtZDY0LXVua25vd24ta2Zy ZWVic2Q1LjItZ251CgojIEFuIGVjaG8gcHJvZ3JhbSB0aGF0IGRvZXMgbm90IGludGVycHJldCBi YWNrc2xhc2hlcy4KZWNobz0iZWNobyIKCiMgVGhlIGFyY2hpdmVyLgpBUj0iYXIiCgojIFRoZSBk ZWZhdWx0IEMgY29tcGlsZXIuCkNDPSJnY2MiCgojIFRoZSBsaW5rZXIgdXNlZCB0byBidWlsZCBs aWJyYXJpZXMuCkxEPSIvdXNyL2Jpbi9sZCIKCiMgV2hldGhlciB3ZSBuZWVkIGhhcmQgb3Igc29m dCBsaW5rcy4KTE5fUz0ibG4gLXNmIgoKIyBBIEJTRC1jb21wYXRpYmxlIG5tIHByb2dyYW0uCk5N PSIvdXNyL2Jpbi9ubSAtQiIKCiMgVXNlZCBvbiBjeWd3aW46IERMTCBjcmVhdGlvbiBwcm9ncmFt LgpETExUT09MPSJkbGx0b29sIgoKIyBVc2VkIG9uIGN5Z3dpbjogb2JqZWN0IGR1bXBlci4KT0JK RFVNUD0ib2JqZHVtcCIKCiMgVXNlZCBvbiBjeWd3aW46IGFzc2VtYmxlci4KQVM9ImFzIgoKIyBU aGUgbmFtZSBvZiB0aGUgZGlyZWN0b3J5IHRoYXQgY29udGFpbnMgdGVtcG9yYXJ5IGxpYnRvb2wg ZmlsZXMuCm9iamRpcj0ubGlicwoKIyBIb3cgdG8gY3JlYXRlIHJlbG9hZGFibGUgb2JqZWN0IGZp bGVzLgpyZWxvYWRfZmxhZz0iIC1yIgpyZWxvYWRfY21kcz0iXCRMRFwkcmVsb2FkX2ZsYWcgLW8g XCRvdXRwdXRcJHJlbG9hZF9vYmpzIgoKIyBIb3cgdG8gcGFzcyBhIGxpbmtlciBmbGFnIHRocm91 Z2ggdGhlIGNvbXBpbGVyLgp3bD0iLVdsLCIKCiMgT2JqZWN0IGZpbGUgc3VmZml4IChub3JtYWxs eSAibyIpLgpvYmpleHQ9Im8iCgojIE9sZCBhcmNoaXZlIHN1ZmZpeCAobm9ybWFsbHkgImEiKS4K bGliZXh0PSJhIgoKIyBFeGVjdXRhYmxlIGZpbGUgc3VmZml4IChub3JtYWxseSAiIikuCmV4ZWV4 dD0iIgoKIyBBZGRpdGlvbmFsIGNvbXBpbGVyIGZsYWdzIGZvciBidWlsZGluZyBsaWJyYXJ5IG9i amVjdHMuCnBpY19mbGFnPSIgLWZQSUMiCgojIERvZXMgY29tcGlsZXIgc2ltdWx0YW5lb3VzbHkg c3VwcG9ydCAtYyBhbmQgLW8gb3B0aW9ucz8KY29tcGlsZXJfY19vPSJ5ZXMiCgojIENhbiB3ZSB3 cml0ZSBkaXJlY3RseSB0byBhIC5sbyA/CmNvbXBpbGVyX29fbG89InllcyIKCiMgTXVzdCB3ZSBs b2NrIGZpbGVzIHdoZW4gZG9pbmcgY29tcGlsYXRpb24gPwpuZWVkX2xvY2tzPSJubyIKCiMgRG8g d2UgbmVlZCB0aGUgbGliIHByZWZpeCBmb3IgbW9kdWxlcz8KbmVlZF9saWJfcHJlZml4PXVua25v d24KCiMgRG8gd2UgbmVlZCBhIHZlcnNpb24gZm9yIGxpYnJhcmllcz8KbmVlZF92ZXJzaW9uPXVu a25vd24KCiMgV2hldGhlciBkbG9wZW4gaXMgc3VwcG9ydGVkLgpkbG9wZW49dW5rbm93bgoKIyBX aGV0aGVyIGRsb3BlbiBvZiBwcm9ncmFtcyBpcyBzdXBwb3J0ZWQuCmRsb3Blbl9zZWxmPXVua25v d24KCiMgV2hldGhlciBkbG9wZW4gb2Ygc3RhdGljYWxseSBsaW5rZWQgcHJvZ3JhbXMgaXMgc3Vw cG9ydGVkLgpkbG9wZW5fc2VsZl9zdGF0aWM9dW5rbm93bgoKIyBDb21waWxlciBmbGFnIHRvIHBy ZXZlbnQgZHluYW1pYyBsaW5raW5nLgpsaW5rX3N0YXRpY19mbGFnPSItc3RhdGljIgoKIyBDb21w aWxlciBmbGFnIHRvIHR1cm4gb2ZmIGJ1aWx0aW4gZnVuY3Rpb25zLgpub19idWlsdGluX2ZsYWc9 IiAtZm5vLWJ1aWx0aW4iCgojIENvbXBpbGVyIGZsYWcgdG8gYWxsb3cgcmVmbGV4aXZlIGRsb3Bl bnMuCmV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYz0iXCR7d2x9LS1leHBvcnQtZHluYW1pYyIKCiMg Q29tcGlsZXIgZmxhZyB0byBnZW5lcmF0ZSBzaGFyZWQgb2JqZWN0cyBkaXJlY3RseSBmcm9tIGFy Y2hpdmVzLgp3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0iXCR7d2x9LS13aG9sZS1hcmNoaXZlXCRj b252ZW5pZW5jZSBcJHt3bH0tLW5vLXdob2xlLWFyY2hpdmUiCgojIENvbXBpbGVyIGZsYWcgdG8g Z2VuZXJhdGUgdGhyZWFkLXNhZmUgb2JqZWN0cy4KdGhyZWFkX3NhZmVfZmxhZ19zcGVjPSIiCgoj IExpYnJhcnkgdmVyc2lvbmluZyB0eXBlLgp2ZXJzaW9uX3R5cGU9bm9uZQoKIyBGb3JtYXQgb2Yg bGlicmFyeSBuYW1lIHByZWZpeC4KbGlibmFtZV9zcGVjPSJsaWJcJG5hbWUiCgojIExpc3Qgb2Yg YXJjaGl2ZSBuYW1lcy4gIEZpcnN0IG5hbWUgaXMgdGhlIHJlYWwgb25lLCB0aGUgcmVzdCBhcmUg bGlua3MuCiMgVGhlIGxhc3QgbmFtZSBpcyB0aGUgb25lIHRoYXQgdGhlIGxpbmtlciBmaW5kcyB3 aXRoIC1sTkFNRS4KbGlicmFyeV9uYW1lc19zcGVjPSIiCgojIFRoZSBjb2RlZCBuYW1lIG9mIHRo ZSBsaWJyYXJ5LCBpZiBkaWZmZXJlbnQgZnJvbSB0aGUgcmVhbCBuYW1lLgpzb25hbWVfc3BlYz0i IgoKIyBDb21tYW5kcyB1c2VkIHRvIGJ1aWxkIGFuZCBpbnN0YWxsIGFuIG9sZC1zdHlsZSBhcmNo aXZlLgpSQU5MSUI9InJhbmxpYiIKb2xkX2FyY2hpdmVfY21kcz0iXCRBUiBjcnUgXCRvbGRsaWJc JG9sZG9ianN+XCRSQU5MSUIgXCRvbGRsaWIiCm9sZF9wb3N0aW5zdGFsbF9jbWRzPSJcJFJBTkxJ QiBcJG9sZGxpYn5jaG1vZCA2NDQgXCRvbGRsaWIiCm9sZF9wb3N0dW5pbnN0YWxsX2NtZHM9IiIK CiMgQ3JlYXRlIGFuIG9sZC1zdHlsZSBhcmNoaXZlIGZyb20gYSBzaGFyZWQgYXJjaGl2ZS4Kb2xk X2FyY2hpdmVfZnJvbV9uZXdfY21kcz0iIgoKIyBDb21tYW5kcyB1c2VkIHRvIGJ1aWxkIGFuZCBp bnN0YWxsIGEgc2hhcmVkIGFyY2hpdmUuCmFyY2hpdmVfY21kcz0iXCRDQyAtc2hhcmVkIFwkY29t cGlsZV9ycGF0aCBcJGxpYm9ianMgXCRkZXBsaWJzIFwkbGlua29wdHMgXCR7d2x9LXNvbmFtZSBc JHdsXCRzb25hbWUgLW8gXCRsaWIiCmFyY2hpdmVfZXhwc3ltX2NtZHM9IlwkQ0MgLXNoYXJlZCBc JGNvbXBpbGVfcnBhdGggXCRsaWJvYmpzIFwkZGVwbGlicyBcJGxpbmtvcHRzIFwke3dsfS1zb25h bWUgXCR3bFwkc29uYW1lIFwke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlIFwkd2xcJGV4cG9ydF9z eW1ib2xzIC1vIFwkbGliIgpwb3N0aW5zdGFsbF9jbWRzPSIiCnBvc3R1bmluc3RhbGxfY21kcz0i IgoKIyBNZXRob2QgdG8gY2hlY2sgd2hldGhlciBkZXBlbmRlbnQgbGlicmFyaWVzIGFyZSBzaGFy ZWQgb2JqZWN0cy4KZGVwbGlic19jaGVja19tZXRob2Q9InVua25vd24iCgojIENvbW1hbmQgdG8g dXNlIHdoZW4gZGVwbGlic19jaGVja19tZXRob2QgPT0gZmlsZV9tYWdpYy4KZmlsZV9tYWdpY19j bWQ9IiIKCiMgRmxhZyB0aGF0IGFsbG93cyBzaGFyZWQgbGlicmFyaWVzIHdpdGggdW5kZWZpbmVk IHN5bWJvbHMgdG8gYmUgYnVpbHQuCmFsbG93X3VuZGVmaW5lZF9mbGFnPSIiCgojIEZsYWcgdGhh dCBmb3JjZXMgbm8gdW5kZWZpbmVkIHN5bWJvbHMuCm5vX3VuZGVmaW5lZF9mbGFnPSIiCgojIENv bW1hbmRzIHVzZWQgdG8gZmluaXNoIGEgbGlidG9vbCBsaWJyYXJ5IGluc3RhbGxhdGlvbiBpbiBh IGRpcmVjdG9yeS4KZmluaXNoX2NtZHM9IiIKCiMgU2FtZSBhcyBhYm92ZSwgYnV0IGEgc2luZ2xl IHNjcmlwdCBmcmFnbWVudCB0byBiZSBldmFsZWQgYnV0IG5vdCBzaG93bi4KZmluaXNoX2V2YWw9 IiIKCiMgVGFrZSB0aGUgb3V0cHV0IG9mIG5tIGFuZCBwcm9kdWNlIGEgbGlzdGluZyBvZiByYXcg c3ltYm9scyBhbmQgQyBuYW1lcy4KZ2xvYmFsX3N5bWJvbF9waXBlPSJzZWQgLW4gLWUgJ3MvXi4q WyAJXVxcKFtBQkNER0lTVFddXFwpWyAJXVsgCV0qXFwoXFwpXFwoW19BLVphLXpdW19BLVphLXow LTldKlxcKVwkL1xcMSBcXDJcXDMgXFwzL3AnIgoKIyBUcmFuc2Zvcm0gdGhlIG91dHB1dCBvZiBu bSBpbiBhIHByb3BlciBDIGRlY2xhcmF0aW9uCmdsb2JhbF9zeW1ib2xfdG9fY2RlY2w9InNlZCAt biAtZSAncy9eLiAuKiBcXCguKlxcKVwkL2V4dGVybiBjaGFyIFxcMTsvcCciCgojIFRoaXMgaXMg dGhlIHNoYXJlZCBsaWJyYXJ5IHJ1bnRpbWUgcGF0aCB2YXJpYWJsZS4KcnVucGF0aF92YXI9TERf UlVOX1BBVEgKCiMgVGhpcyBpcyB0aGUgc2hhcmVkIGxpYnJhcnkgcGF0aCB2YXJpYWJsZS4Kc2hs aWJwYXRoX3Zhcj0KCiMgSXMgc2hsaWJwYXRoIHNlYXJjaGVkIGJlZm9yZSB0aGUgaGFyZC1jb2Rl ZCBsaWJyYXJ5IHNlYXJjaCBwYXRoPwpzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9dW5rbm93 bgoKIyBIb3cgdG8gaGFyZGNvZGUgYSBzaGFyZWQgbGlicmFyeSBwYXRoIGludG8gYW4gZXhlY3V0 YWJsZS4KaGFyZGNvZGVfYWN0aW9uPWltbWVkaWF0ZQoKIyBGbGFnIHRvIGhhcmRjb2RlICRsaWJk aXIgaW50byBhIGJpbmFyeSBkdXJpbmcgbGlua2luZy4KIyBUaGlzIG11c3Qgd29yayBldmVuIGlm ICRsaWJkaXIgZG9lcyBub3QgZXhpc3QuCmhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Ilwke3ds fS0tcnBhdGggXCR7d2x9XCRsaWJkaXIiCgojIFdoZXRoZXIgd2UgbmVlZCBhIHNpbmdsZSAtcnBh dGggZmxhZyB3aXRoIGEgc2VwYXJhdGVkIGFyZ3VtZW50LgpoYXJkY29kZV9saWJkaXJfc2VwYXJh dG9yPSIiCgojIFNldCB0byB5ZXMgaWYgdXNpbmcgRElSL2xpYk5BTUUuc28gZHVyaW5nIGxpbmtp bmcgaGFyZGNvZGVzIERJUiBpbnRvIHRoZQojIHJlc3VsdGluZyBiaW5hcnkuCmhhcmRjb2RlX2Rp cmVjdD1ubwoKIyBTZXQgdG8geWVzIGlmIHVzaW5nIHRoZSAtTERJUiBmbGFnIGR1cmluZyBsaW5r aW5nIGhhcmRjb2RlcyBESVIgaW50byB0aGUKIyByZXN1bHRpbmcgYmluYXJ5LgpoYXJkY29kZV9t aW51c19MPW5vCgojIFNldCB0byB5ZXMgaWYgdXNpbmcgU0hMSUJQQVRIX1ZBUj1ESVIgZHVyaW5n IGxpbmtpbmcgaGFyZGNvZGVzIERJUiBpbnRvCiMgdGhlIHJlc3VsdGluZyBiaW5hcnkuCmhhcmRj b2RlX3NobGlicGF0aF92YXI9dW5zdXBwb3J0ZWQKCiMgQ29tcGlsZS10aW1lIHN5c3RlbSBzZWFy Y2ggcGF0aCBmb3IgbGlicmFyaWVzCnN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL2xpYiAvdXNy L2xpYiIKCiMgUnVuLXRpbWUgc3lzdGVtIHNlYXJjaCBwYXRoIGZvciBsaWJyYXJpZXMKc3lzX2xp Yl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii9saWIgL3Vzci9saWIiCgojIEZpeCB0aGUgc2hlbGwgdmFy aWFibGUgJHNyY2ZpbGUgZm9yIHRoZSBjb21waWxlci4KZml4X3NyY2ZpbGVfcGF0aD0iIgoKIyBT ZXQgdG8geWVzIGlmIGV4cG9ydGVkIHN5bWJvbHMgYXJlIHJlcXVpcmVkLgphbHdheXNfZXhwb3J0 X3N5bWJvbHM9bm8KCiMgVGhlIGNvbW1hbmRzIHRvIGxpc3QgZXhwb3J0ZWQgc3ltYm9scy4KZXhw b3J0X3N5bWJvbHNfY21kcz0iXCROTSBcJGxpYm9ianMgXCRjb252ZW5pZW5jZSB8IFwkZ2xvYmFs X3N5bWJvbF9waXBlIHwgc2VkICdzLy4qIC8vJyB8IHNvcnQgfCB1bmlxID4gXCRleHBvcnRfc3lt Ym9scyIKCiMgU3ltYm9scyB0aGF0IHNob3VsZCBub3QgYmUgbGlzdGVkIGluIHRoZSBwcmVsb2Fk ZWQgc3ltYm9scy4KZXhjbHVkZV9leHBzeW1zPSJfR0xPQkFMX09GRlNFVF9UQUJMRV8iCgojIFN5 bWJvbHMgdGhhdCBtdXN0IGFsd2F5cyBiZSBleHBvcnRlZC4KaW5jbHVkZV9leHBzeW1zPSIiCgoj IyMgRU5EIExJQlRPT0wgQ09ORklHCgojIGx0bWFpbi5zaCAtIFByb3ZpZGUgZ2VuZXJhbGl6ZWQg bGlicmFyeS1idWlsZGluZyBzdXBwb3J0IHNlcnZpY2VzLgojIE5PVEU6IENoYW5naW5nIHRoaXMg ZmlsZSB3aWxsIG5vdCBhZmZlY3QgYW55dGhpbmcgdW50aWwgeW91IHJlcnVuIGx0Y29uZmlnLgoj CiMgQ29weXJpZ2h0IChDKSAxOTk2LTE5OTkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu CiMgT3JpZ2luYWxseSBieSBHb3Jkb24gTWF0emlna2VpdCA8Z29yZEBnbnUuYWkubWl0LmVkdT4s IDE5OTYKIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp YnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3Vy IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0 ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0CiMgV0lUSE9VVCBBTlkg V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5U QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V CiMgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojCiMgWW91IHNob3Vs ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UK IyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0 d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9z dG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCiMKIyBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgaWYgeW91CiMgZGlzdHJpYnV0ZSB0aGlzIGZp bGUgYXMgcGFydCBvZiBhIHByb2dyYW0gdGhhdCBjb250YWlucyBhCiMgY29uZmlndXJhdGlvbiBz Y3JpcHQgZ2VuZXJhdGVkIGJ5IEF1dG9jb25mLCB5b3UgbWF5IGluY2x1ZGUgaXQgdW5kZXIKIyB0 aGUgc2FtZSBkaXN0cmlidXRpb24gdGVybXMgdGhhdCB5b3UgdXNlIGZvciB0aGUgcmVzdCBvZiB0 aGF0IHByb2dyYW0uCgpFWFBSX0NPTVBBVD0xCmV4cG9ydCBFWFBSX0NPTVBBVAoKIyBDaGVjayB0 aGF0IHdlIGhhdmUgYSB3b3JraW5nICRlY2hvLgppZiB0ZXN0ICJYJDEiID0gWC0tbm8tcmVleGVj OyB0aGVuCiAgIyBEaXNjYXJkIHRoZSAtLW5vLXJlZXhlYyBmbGFnLCBhbmQgY29udGludWUuCiAg c2hpZnQKZWxpZiB0ZXN0ICJYJDEiID0gWC0tZmFsbGJhY2stZWNobzsgdGhlbgogICMgQXZvaWQg aW5saW5lIGRvY3VtZW50IGhlcmUsIGl0IG1heSBiZSBsZWZ0IG92ZXIKICA6CmVsaWYgdGVzdCAi WGAoJGVjaG8gJ1x0JykgMj4vZGV2L251bGxgIiA9ICdYXHQnOyB0aGVuCiAgIyBZaXBwZWUsICRl Y2hvIHdvcmtzIQogIDoKZWxzZQogICMgUmVzdGFydCB1bmRlciB0aGUgY29ycmVjdCBzaGVsbCwg YW5kIHRoZW4gbWF5YmUgJGVjaG8gd2lsbCB3b3JrLgogIGV4ZWMgJFNIRUxMICIkMCIgLS1uby1y ZWV4ZWMgJHsxKyIkQCJ9CmZpCgppZiB0ZXN0ICJYJDEiID0gWC0tZmFsbGJhY2stZWNobzsgdGhl bgogICMgdXNlZCBhcyBmYWxsYmFjayBlY2hvCiAgc2hpZnQKICBjYXQgPDxFT0YKJCoKRU9GCiAg ZXhpdCAwCmZpCgojIFRoZSBuYW1lIG9mIHRoaXMgcHJvZ3JhbS4KcHJvZ25hbWU9YCRlY2hvICIk MCIgfCBzZWQgJ3MlXi4qLyUlJ2AKbW9kZW5hbWU9IiRwcm9nbmFtZSIKCiMgQ29uc3RhbnRzLgpQ Uk9HUkFNPWx0bWFpbi5zaApQQUNLQUdFPWxpYnRvb2wKVkVSU0lPTj0xLjMuNS1mcmVlYnNkLXBv cnRzClRJTUVTVEFNUD0iICgxLjM4NS4yLjIwNiAyMDAwLzA1LzI3IDExOjEyOjI3KSIKCmRlZmF1 bHRfbW9kZT0KaGVscD0iVHJ5IFxgJHByb2duYW1lIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRp b24uIgptYWdpYz0iJSUlTUFHSUMgdmFyaWFibGUlJSUiCm1rZGlyPSJta2RpciIKbXY9Im12IC1m IgpybT0icm0gLWYiCgojIFNlZCBzdWJzdGl0dXRpb24gdGhhdCBoZWxwcyB1cyBkbyByb2J1c3Qg cXVvdGluZy4gIEl0IGJhY2tzbGFzaGlmaWVzCiMgbWV0YWNoYXJhY3RlcnMgdGhhdCBhcmUgc3Rp bGwgYWN0aXZlIHdpdGhpbiBkb3VibGUtcXVvdGVkIHN0cmluZ3MuClhzZWQ9J3NlZCAtZSAxcy9e WC8vJwpzZWRfcXVvdGVfc3Vic3Q9J3MvXChbXFxgXFwiJFxcXFxdXCkvXFxcMS9nJwpTUDJOTD0n dHIgXDA0MCBcMDEyJwpOTDJTUD0ndHIgXDAxNVwwMTIgXDA0MFwwNDAnCgojIE5MUyBudWlzYW5j ZXMuCiMgT25seSBzZXQgTEFORyBhbmQgTENfQUxMIHRvIEMgaWYgYWxyZWFkeSBzZXQuCiMgVGhl c2UgbXVzdCBub3QgYmUgc2V0IHVuY29uZGl0aW9uYWxseSBiZWNhdXNlIG5vdCBhbGwgc3lzdGVt cyB1bmRlcnN0YW5kCiMgZS5nLiBMQU5HPUMgKG5vdGFibHkgU0NPKS4KIyBXZSBzYXZlIHRoZSBv bGQgdmFsdWVzIHRvIHJlc3RvcmUgZHVyaW5nIGV4ZWN1dGUgbW9kZS4KaWYgdGVzdCAiJHtMQ19B TEwrc2V0fSIgPSBzZXQ7IHRoZW4KICBzYXZlX0xDX0FMTD0iJExDX0FMTCI7IExDX0FMTD1DOyBl eHBvcnQgTENfQUxMCmZpCmlmIHRlc3QgIiR7TEFORytzZXR9IiA9IHNldDsgdGhlbgogIHNhdmVf TEFORz0iJExBTkciOyBMQU5HPUM7IGV4cG9ydCBMQU5HCmZpCgppZiB0ZXN0ICIkTFRDT05GSUdf VkVSU0lPTiIgIT0gIiRWRVJTSU9OIjsgdGhlbgogIGVjaG8gIiRtb2RlbmFtZTogbHRjb25maWcg dmVyc2lvbiBcYCRMVENPTkZJR19WRVJTSU9OJyBkb2VzIG5vdCBtYXRjaCAkUFJPR1JBTSB2ZXJz aW9uIFxgJFZFUlNJT04nIiAxPiYyCiAgZWNobyAiRmF0YWwgY29uZmlndXJhdGlvbiBlcnJvci4g IFNlZSB0aGUgJFBBQ0tBR0UgZG9jcyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iIDE+JjIKICBleGl0 IDEKZmkKCmlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiICE9IHllcyAmJiB0ZXN0ICIkYnVp bGRfb2xkX2xpYnMiICE9IHllczsgdGhlbgogIGVjaG8gIiRtb2RlbmFtZTogbm90IGNvbmZpZ3Vy ZWQgdG8gYnVpbGQgYW55IGtpbmQgb2YgbGlicmFyeSIgMT4mMgogIGVjaG8gIkZhdGFsIGNvbmZp Z3VyYXRpb24gZXJyb3IuICBTZWUgdGhlICRQQUNLQUdFIGRvY3MgZm9yIG1vcmUgaW5mb3JtYXRp b24uIiAxPiYyCiAgZXhpdCAxCmZpCgojIEdsb2JhbCB2YXJpYWJsZXMuCm1vZGU9JGRlZmF1bHRf bW9kZQpub25vcHQ9CnByZXY9CnByZXZvcHQ9CnJ1bj0Kc2hvdz0iJGVjaG8iCnNob3dfaGVscD0K ZXhlY3V0ZV9kbGZpbGVzPQpsbzJvPSJzL1xcLmxvXCQvLiR7b2JqZXh0fS8iCm8ybG89InMvXFwu JHtvYmpleHR9XCQvLmxvLyIKCiMgUGFyc2Ugb3VyIGNvbW1hbmQgbGluZSBvcHRpb25zIG9uY2Us IHRob3JvdWdobHkuCndoaWxlIHRlc3QgJCMgLWd0IDAKZG8KICBhcmc9IiQxIgogIHNoaWZ0Cgog IGNhc2UgIiRhcmciIGluCiAgLSo9Kikgb3B0YXJnPWAkZWNobyAiWCRhcmciIHwgJFhzZWQgLWUg J3MvWy1fYS16QS1aMC05XSo9Ly8nYCA7OwogICopIG9wdGFyZz0gOzsKICBlc2FjCgogICMgSWYg dGhlIHByZXZpb3VzIG9wdGlvbiBuZWVkcyBhbiBhcmd1bWVudCwgYXNzaWduIGl0LgogIGlmIHRl c3QgLW4gIiRwcmV2IjsgdGhlbgogICAgY2FzZSAiJHByZXYiIGluCiAgICBleGVjdXRlX2RsZmls ZXMpCiAgICAgIGV2YWwgIiRwcmV2PVwiXCQkcHJldiBcJGFyZ1wiIgogICAgICA7OwogICAgKikK ICAgICAgZXZhbCAiJHByZXY9XCRhcmciCiAgICAgIDs7CiAgICBlc2FjCgogICAgcHJldj0KICAg IHByZXZvcHQ9CiAgICBjb250aW51ZQogIGZpCgogICMgSGF2ZSB3ZSBzZWVuIGEgbm9uLW9wdGlv bmFsIGFyZ3VtZW50IHlldD8KICBjYXNlICIkYXJnIiBpbgogIC0taGVscCkKICAgIHNob3dfaGVs cD15ZXMKICAgIDs7CgogIC0tdmVyc2lvbikKICAgIGVjaG8gIiRQUk9HUkFNIChHTlUgJFBBQ0tB R0UpICRWRVJTSU9OJFRJTUVTVEFNUCIKICAgIGV4aXQgMAogICAgOzsKCiAgLS1jb25maWcpCiAg ICBzZWQgLWUgJzEsL14jIyMgQkVHSU4gTElCVE9PTCBDT05GSUcvZCcgLWUgJy9eIyMjIEVORCBM SUJUT09MIENPTkZJRy8sJGQnICQwCiAgICBleGl0IDAKICAgIDs7CgogIC0tZGVidWcpCiAgICBl Y2hvICIkcHJvZ25hbWU6IGVuYWJsaW5nIHNoZWxsIHRyYWNlIG1vZGUiCiAgICBzZXQgLXgKICAg IDs7CgogIC0tZHJ5LXJ1biB8IC1uKQogICAgcnVuPToKICAgIDs7CgogIC0tZmVhdHVyZXMpCiAg ICBlY2hvICJob3N0OiAkaG9zdCIKICAgIGlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0g eWVzOyB0aGVuCiAgICAgIGVjaG8gImVuYWJsZSBzaGFyZWQgbGlicmFyaWVzIgogICAgZWxzZQog ICAgICBlY2hvICJkaXNhYmxlIHNoYXJlZCBsaWJyYXJpZXMiCiAgICBmaQogICAgaWYgdGVzdCAi JGJ1aWxkX29sZF9saWJzIiA9IHllczsgdGhlbgogICAgICBlY2hvICJlbmFibGUgc3RhdGljIGxp YnJhcmllcyIKICAgIGVsc2UKICAgICAgZWNobyAiZGlzYWJsZSBzdGF0aWMgbGlicmFyaWVzIgog ICAgZmkKICAgIGV4aXQgMAogICAgOzsKCiAgLS1maW5pc2gpIG1vZGU9ImZpbmlzaCIgOzsKCiAg LS1tb2RlKSBwcmV2b3B0PSItLW1vZGUiIHByZXY9bW9kZSA7OwogIC0tbW9kZT0qKSBtb2RlPSIk b3B0YXJnIiA7OwoKICAtLXF1aWV0IHwgLS1zaWxlbnQpCiAgICBzaG93PToKICAgIDs7CgogIC1k bG9wZW4pCiAgICBwcmV2b3B0PSItZGxvcGVuIgogICAgcHJldj1leGVjdXRlX2RsZmlsZXMKICAg IDs7CgogIC0qKQogICAgJGVjaG8gIiRtb2RlbmFtZTogdW5yZWNvZ25pemVkIG9wdGlvbiBcYCRh cmcnIiAxPiYyCiAgICAkZWNobyAiJGhlbHAiIDE+JjIKICAgIGV4aXQgMQogICAgOzsKCiAgKikK ICAgIG5vbm9wdD0iJGFyZyIKICAgIGJyZWFrCiAgICA7OwogIGVzYWMKZG9uZQoKaWYgdGVzdCAt biAiJHByZXZvcHQiOyB0aGVuCiAgJGVjaG8gIiRtb2RlbmFtZTogb3B0aW9uIFxgJHByZXZvcHQn IHJlcXVpcmVzIGFuIGFyZ3VtZW50IiAxPiYyCiAgJGVjaG8gIiRoZWxwIiAxPiYyCiAgZXhpdCAx CmZpCgppZiB0ZXN0IC16ICIkc2hvd19oZWxwIjsgdGhlbgoKICAjIEluZmVyIHRoZSBvcGVyYXRp b24gbW9kZS4KICBpZiB0ZXN0IC16ICIkbW9kZSI7IHRoZW4KICAgIGNhc2UgIiRub25vcHQiIGlu CiAgICAqY2MgfCAqKysgfCBnY2MqIHwgKi1nY2MqKQogICAgICBtb2RlPWxpbmsKICAgICAgZm9y IGFyZwogICAgICBkbwoJY2FzZSAiJGFyZyIgaW4KCS1jKQoJICAgbW9kZT1jb21waWxlCgkgICBi cmVhawoJICAgOzsKCWVzYWMKICAgICAgZG9uZQogICAgICA7OwogICAgKmRiIHwgKmRieCB8ICpz dHJhY2UgfCAqdHJ1c3MpCiAgICAgIG1vZGU9ZXhlY3V0ZQogICAgICA7OwogICAgKmluc3RhbGwq fGNwfG12KQogICAgICBtb2RlPWluc3RhbGwKICAgICAgOzsKICAgICpybSkKICAgICAgbW9kZT11 bmluc3RhbGwKICAgICAgOzsKICAgICopCiAgICAgICMgSWYgd2UgaGF2ZSBubyBtb2RlLCBidXQg ZGxmaWxlcyB3ZXJlIHNwZWNpZmllZCwgdGhlbiBkbyBleGVjdXRlIG1vZGUuCiAgICAgIHRlc3Qg LW4gIiRleGVjdXRlX2RsZmlsZXMiICYmIG1vZGU9ZXhlY3V0ZQoKICAgICAgIyBKdXN0IHVzZSB0 aGUgZGVmYXVsdCBvcGVyYXRpb24gbW9kZS4KICAgICAgaWYgdGVzdCAteiAiJG1vZGUiOyB0aGVu CglpZiB0ZXN0IC1uICIkbm9ub3B0IjsgdGhlbgoJICAkZWNobyAiJG1vZGVuYW1lOiB3YXJuaW5n OiBjYW5ub3QgaW5mZXIgb3BlcmF0aW9uIG1vZGUgZnJvbSBcYCRub25vcHQnIiAxPiYyCgllbHNl CgkgICRlY2hvICIkbW9kZW5hbWU6IHdhcm5pbmc6IGNhbm5vdCBpbmZlciBvcGVyYXRpb24gbW9k ZSB3aXRob3V0IE1PREUtQVJHUyIgMT4mMgoJZmkKICAgICAgZmkKICAgICAgOzsKICAgIGVzYWMK ICBmaQoKICAjIE9ubHkgZXhlY3V0ZSBtb2RlIGlzIGFsbG93ZWQgdG8gaGF2ZSAtZGxvcGVuIGZs YWdzLgogIGlmIHRlc3QgLW4gIiRleGVjdXRlX2RsZmlsZXMiICYmIHRlc3QgIiRtb2RlIiAhPSBl eGVjdXRlOyB0aGVuCiAgICAkZWNobyAiJG1vZGVuYW1lOiB1bnJlY29nbml6ZWQgb3B0aW9uIFxg LWRsb3BlbiciIDE+JjIKICAgICRlY2hvICIkaGVscCIgMT4mMgogICAgZXhpdCAxCiAgZmkKCiAg IyBDaGFuZ2UgdGhlIGhlbHAgbWVzc2FnZSB0byBhIG1vZGUtc3BlY2lmaWMgb25lLgogIGdlbmVy aWNfaGVscD0iJGhlbHAiCiAgaGVscD0iVHJ5IFxgJG1vZGVuYW1lIC0taGVscCAtLW1vZGU9JG1v ZGUnIGZvciBtb3JlIGluZm9ybWF0aW9uLiIKCiAgIyBUaGVzZSBtb2RlcyBhcmUgaW4gb3JkZXIg b2YgZXhlY3V0aW9uIGZyZXF1ZW5jeSBzbyB0aGF0IHRoZXkgcnVuIHF1aWNrbHkuCiAgY2FzZSAi JG1vZGUiIGluCiAgIyBsaWJ0b29sIGNvbXBpbGUgbW9kZQogIGNvbXBpbGUpCiAgICBtb2RlbmFt ZT0iJG1vZGVuYW1lOiBjb21waWxlIgogICAgIyBHZXQgdGhlIGNvbXBpbGF0aW9uIGNvbW1hbmQg YW5kIHRoZSBzb3VyY2UgZmlsZS4KICAgIGJhc2VfY29tcGlsZT0KICAgIGxhc3Rhcmc9CiAgICBz cmNmaWxlPSIkbm9ub3B0IgogICAgc3VwcHJlc3Nfb3V0cHV0PQoKICAgIHVzZXJfdGFyZ2V0PW5v CiAgICBmb3IgYXJnCiAgICBkbwogICAgICAjIEFjY2VwdCBhbnkgY29tbWFuZC1saW5lIG9wdGlv bnMuCiAgICAgIGNhc2UgIiRhcmciIGluCiAgICAgIC1vKQoJaWYgdGVzdCAiJHVzZXJfdGFyZ2V0 IiAhPSAibm8iOyB0aGVuCgkgICRlY2hvICIkbW9kZW5hbWU6IHlvdSBjYW5ub3Qgc3BlY2lmeSBc YC1vJyBtb3JlIHRoYW4gb25jZSIgMT4mMgoJICBleGl0IDEKCWZpCgl1c2VyX3RhcmdldD1uZXh0 Cgk7OwoKICAgICAgLXN0YXRpYykKCWJ1aWxkX29sZF9saWJzPXllcwoJY29udGludWUKCTs7CiAg ICAgIGVzYWMKCiAgICAgIGNhc2UgIiR1c2VyX3RhcmdldCIgaW4KICAgICAgbmV4dCkKCSMgVGhl IG5leHQgb25lIGlzIHRoZSAtbyB0YXJnZXQgbmFtZQoJdXNlcl90YXJnZXQ9eWVzCgljb250aW51 ZQoJOzsKICAgICAgeWVzKQoJIyBXZSBnb3QgdGhlIG91dHB1dCBmaWxlCgl1c2VyX3RhcmdldD1z ZXQKCWxpYm9iaj0iJGFyZyIKCWNvbnRpbnVlCgk7OwogICAgICBlc2FjCgogICAgICAjIEFjY2Vw dCB0aGUgY3VycmVudCBhcmd1bWVudCBhcyB0aGUgc291cmNlIGZpbGUuCiAgICAgIGxhc3Rhcmc9 IiRzcmNmaWxlIgogICAgICBzcmNmaWxlPSIkYXJnIgoKICAgICAgIyBBZXN0aGV0aWNhbGx5IHF1 b3RlIHRoZSBwcmV2aW91cyBhcmd1bWVudC4KCiAgICAgICMgQmFja3NsYXNoaWZ5IGFueSBiYWNr c2xhc2hlcywgZG91YmxlIHF1b3RlcywgYW5kIGRvbGxhciBzaWducy4KICAgICAgIyBUaGVzZSBh cmUgdGhlIG9ubHkgY2hhcmFjdGVycyB0aGF0IGFyZSBzdGlsbCBzcGVjaWFsbHkKICAgICAgIyBp bnRlcnByZXRlZCBpbnNpZGUgb2YgZG91YmxlLXF1b3RlZCBzY3JpbmdzLgogICAgICBsYXN0YXJn PWAkZWNobyAiWCRsYXN0YXJnIiB8ICRYc2VkIC1lICIkc2VkX3F1b3RlX3N1YnN0ImAKCiAgICAg ICMgRG91YmxlLXF1b3RlIGFyZ3MgY29udGFpbmluZyBvdGhlciBzaGVsbCBtZXRhY2hhcmFjdGVy cy4KICAgICAgIyBNYW55IEJvdXJuZSBzaGVsbHMgY2Fubm90IGhhbmRsZSBjbG9zZSBicmFja2V0 cyBjb3JyZWN0bHkgaW4gc2NhbgogICAgICAjIHNldHMsIHNvIHdlIHNwZWNpZnkgaXQgc2VwYXJh dGVseS4KICAgICAgY2FzZSAiJGxhc3RhcmciIGluCiAgICAgICpbXFtcflwjXF5cJlwqXChcKVx7 XH1cfFw7XDxcPlw/XCdcIFwJXSp8Kl0qKQoJbGFzdGFyZz0iXCIkbGFzdGFyZ1wiIgoJOzsKICAg ICAgZXNhYwoKICAgICAgIyBBZGQgdGhlIHByZXZpb3VzIGFyZ3VtZW50IHRvIGJhc2VfY29tcGls ZS4KICAgICAgaWYgdGVzdCAteiAiJGJhc2VfY29tcGlsZSI7IHRoZW4KCWJhc2VfY29tcGlsZT0i JGxhc3RhcmciCiAgICAgIGVsc2UKCWJhc2VfY29tcGlsZT0iJGJhc2VfY29tcGlsZSAkbGFzdGFy ZyIKICAgICAgZmkKICAgIGRvbmUKCiAgICBjYXNlICIkdXNlcl90YXJnZXQiIGluCiAgICBzZXQp CiAgICAgIDs7CiAgICBubykKICAgICAgIyBHZXQgdGhlIG5hbWUgb2YgdGhlIGxpYnJhcnkgb2Jq ZWN0LgogICAgICBsaWJvYmo9YCRlY2hvICJYJHNyY2ZpbGUiIHwgJFhzZWQgLWUgJ3MlXi4qLyUl J2AKICAgICAgOzsKICAgICopCiAgICAgICRlY2hvICIkbW9kZW5hbWU6IHlvdSBtdXN0IHNwZWNp ZnkgYSB0YXJnZXQgd2l0aCBcYC1vJyIgMT4mMgogICAgICBleGl0IDEKICAgICAgOzsKICAgIGVz YWMKCiAgICAjIFJlY29nbml6ZSBzZXZlcmFsIGRpZmZlcmVudCBmaWxlIHN1ZmZpeGVzLgogICAg IyBJZiB0aGUgdXNlciBzcGVjaWZpZXMgLW8gZmlsZS5vLCBpdCBpcyByZXBsYWNlZCB3aXRoIGZp bGUubG8KICAgIHhmb3JtPSdbY0NGU2Ztc29dJwogICAgY2FzZSAiJGxpYm9iaiIgaW4KICAgICou YWRhKSB4Zm9ybT1hZGEgOzsKICAgICouYWRiKSB4Zm9ybT1hZGIgOzsKICAgICouYWRzKSB4Zm9y bT1hZHMgOzsKICAgICouYXNtKSB4Zm9ybT1hc20gOzsKICAgICouYysrKSB4Zm9ybT1jKysgOzsK ICAgICouY2MpIHhmb3JtPWNjIDs7CiAgICAqLmNwcCkgeGZvcm09Y3BwIDs7CiAgICAqLmN4eCkg eGZvcm09Y3h4IDs7CiAgICAqLmY5MCkgeGZvcm09ZjkwIDs7CiAgICAqLmZvcikgeGZvcm09Zm9y IDs7CiAgICBlc2FjCgogICAgbGlib2JqPWAkZWNobyAiWCRsaWJvYmoiIHwgJFhzZWQgLWUgInMv XC4keGZvcm0kLy5sby8iYAoKICAgIGNhc2UgIiRsaWJvYmoiIGluCiAgICAqLmxvKSBvYmo9YCRl Y2hvICJYJGxpYm9iaiIgfCAkWHNlZCAtZSAiJGxvMm8iYCA7OwogICAgKikKICAgICAgJGVjaG8g IiRtb2RlbmFtZTogY2Fubm90IGRldGVybWluZSBuYW1lIG9mIGxpYnJhcnkgb2JqZWN0IGZyb20g XGAkbGlib2JqJyIgMT4mMgogICAgICBleGl0IDEKICAgICAgOzsKICAgIGVzYWMKCiAgICBpZiB0 ZXN0IC16ICIkYmFzZV9jb21waWxlIjsgdGhlbgogICAgICAkZWNobyAiJG1vZGVuYW1lOiB5b3Ug bXVzdCBzcGVjaWZ5IGEgY29tcGlsYXRpb24gY29tbWFuZCIgMT4mMgogICAgICAkZWNobyAiJGhl bHAiIDE+JjIKICAgICAgZXhpdCAxCiAgICBmaQoKICAgICMgRGVsZXRlIGFueSBsZWZ0b3ZlciBs aWJyYXJ5IG9iamVjdHMuCiAgICBpZiB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMiID0geWVzOyB0aGVu CiAgICAgIHJlbW92ZWxpc3Q9IiRvYmogJGxpYm9iaiIKICAgIGVsc2UKICAgICAgcmVtb3ZlbGlz dD0iJGxpYm9iaiIKICAgIGZpCgogICAgJHJ1biAkcm0gJHJlbW92ZWxpc3QKICAgIHRyYXAgIiRy dW4gJHJtICRyZW1vdmVsaXN0OyBleGl0IDEiIDEgMiAxNQoKICAgICMgQ2FsY3VsYXRlIHRoZSBm aWxlbmFtZSBvZiB0aGUgb3V0cHV0IG9iamVjdCBpZiBjb21waWxlciBkb2VzCiAgICAjIG5vdCBz dXBwb3J0IC1vIHdpdGggLWMKICAgIGlmIHRlc3QgIiRjb21waWxlcl9jX28iID0gbm87IHRoZW4K ICAgICAgb3V0cHV0X29iaj1gJGVjaG8gIlgkc3JjZmlsZSIgfCAkWHNlZCAtZSAncyVeLiovJSUn IC1lICdzJVwuLiokJSUnYC4ke29iamV4dH0KICAgICAgbG9ja2ZpbGU9IiRvdXRwdXRfb2JqLmxv Y2siCiAgICAgIHJlbW92ZWxpc3Q9IiRyZW1vdmVsaXN0ICRvdXRwdXRfb2JqICRsb2NrZmlsZSIK ICAgICAgdHJhcCAiJHJ1biAkcm0gJHJlbW92ZWxpc3Q7IGV4aXQgMSIgMSAyIDE1CiAgICBlbHNl CiAgICAgIG5lZWRfbG9ja3M9bm8KICAgICAgbG9ja2ZpbGU9CiAgICBmaQoKICAgICMgTG9jayB0 aGlzIGNyaXRpY2FsIHNlY3Rpb24gaWYgaXQgaXMgbmVlZGVkCiAgICAjIFdlIHVzZSB0aGlzIHNj cmlwdCBmaWxlIHRvIG1ha2UgdGhlIGxpbmssIGl0IGF2b2lkcyBjcmVhdGluZyBhIG5ldyBmaWxl CiAgICBpZiB0ZXN0ICIkbmVlZF9sb2NrcyIgPSB5ZXM7IHRoZW4KICAgICAgdW50aWwgbG4gIiQw IiAiJGxvY2tmaWxlIiAyPi9kZXYvbnVsbDsgZG8KCSRzaG93ICJXYWl0aW5nIGZvciAkbG9ja2Zp bGUgdG8gYmUgcmVtb3ZlZCIKCXNsZWVwIDIKICAgICAgZG9uZQogICAgZWxpZiB0ZXN0ICIkbmVl ZF9sb2NrcyIgPSB3YXJuOyB0aGVuCiAgICAgIGlmIHRlc3QgLWYgIiRsb2NrZmlsZSI7IHRoZW4K CWVjaG8gIlwKKioqIEVSUk9SLCAkbG9ja2ZpbGUgZXhpc3RzIGFuZCBjb250YWluczoKYGNhdCAk bG9ja2ZpbGUgMj4vZGV2L251bGxgCgpUaGlzIGluZGljYXRlcyB0aGF0IGFub3RoZXIgcHJvY2Vz cyBpcyB0cnlpbmcgdG8gdXNlIHRoZSBzYW1lCnRlbXBvcmFyeSBvYmplY3QgZmlsZSwgYW5kIGxp YnRvb2wgY291bGQgbm90IHdvcmsgYXJvdW5kIGl0IGJlY2F1c2UKeW91ciBjb21waWxlciBkb2Vz IG5vdCBzdXBwb3J0IFxgLWMnIGFuZCBcYC1vJyB0b2dldGhlci4gIElmIHlvdQpyZXBlYXQgdGhp cyBjb21waWxhdGlvbiwgaXQgbWF5IHN1Y2NlZWQsIGJ5IGNoYW5jZSwgYnV0IHlvdSBoYWQgYmV0 dGVyCmF2b2lkIHBhcmFsbGVsIGJ1aWxkcyAobWFrZSAtaikgaW4gdGhpcyBwbGF0Zm9ybSwgb3Ig Z2V0IGEgYmV0dGVyCmNvbXBpbGVyLiIKCgkkcnVuICRybSAkcmVtb3ZlbGlzdAoJZXhpdCAxCiAg ICAgIGZpCiAgICAgIGVjaG8gJHNyY2ZpbGUgPiAiJGxvY2tmaWxlIgogICAgZmkKCiAgICBpZiB0 ZXN0IC1uICIkZml4X3NyY2ZpbGVfcGF0aCI7IHRoZW4KICAgICAgZXZhbCBzcmNmaWxlPVwiJGZp eF9zcmNmaWxlX3BhdGhcIgogICAgZmkKCiAgICAjIE9ubHkgYnVpbGQgYSBQSUMgb2JqZWN0IGlm IHdlIGFyZSBidWlsZGluZyBsaWJ0b29sIGxpYnJhcmllcy4KICAgIGlmIHRlc3QgIiRidWlsZF9s aWJ0b29sX2xpYnMiID0geWVzOyB0aGVuCiAgICAgICMgV2l0aG91dCB0aGlzIGFzc2lnbm1lbnQs IGJhc2VfY29tcGlsZSBnZXRzIGVtcHRpZWQuCiAgICAgIGZic2RfaGlkZW91c19zaF9idWc9JGJh c2VfY29tcGlsZQoKICAgICAgIyBBbGwgcGxhdGZvcm1zIHVzZSAtRFBJQywgdG8gbm90aWZ5IHBy ZXByb2Nlc3NlZCBhc3NlbWJsZXIgY29kZS4KICAgICAgY29tbWFuZD0iJGJhc2VfY29tcGlsZSAk c3JjZmlsZSAkcGljX2ZsYWcgLURQSUMiCiAgICAgIGlmIHRlc3QgIiRidWlsZF9vbGRfbGlicyIg PSB5ZXM7IHRoZW4KCWxvX2xpYm9iaj0iJGxpYm9iaiIKCWRpcj1gJGVjaG8gIlgkbGlib2JqIiB8 ICRYc2VkIC1lICdzJS9bXi9dKiQlJSdgCglpZiB0ZXN0ICJYJGRpciIgPSAiWCRsaWJvYmoiOyB0 aGVuCgkgIGRpcj0iJG9iamRpciIKCWVsc2UKCSAgZGlyPSIkZGlyLyRvYmpkaXIiCglmaQoJbGli b2JqPSIkZGlyLyJgJGVjaG8gIlgkbGlib2JqIiB8ICRYc2VkIC1lICdzJV4uKi8lJSdgCgoJaWYg dGVzdCAtZCAiJGRpciI7IHRoZW4KCSAgJHNob3cgIiRybSAkbGlib2JqIgoJICAkcnVuICRybSAk bGlib2JqCgllbHNlCgkgICRzaG93ICIkbWtkaXIgJGRpciIKCSAgJHJ1biAkbWtkaXIgJGRpcgoJ ICBzdGF0dXM9JD8KCSAgaWYgdGVzdCAkc3RhdHVzIC1uZSAwICYmIHRlc3QgISAtZCAkZGlyOyB0 aGVuCgkgICAgZXhpdCAkc3RhdHVzCgkgIGZpCglmaQogICAgICBmaQogICAgICBpZiB0ZXN0ICIk Y29tcGlsZXJfb19sbyIgPSB5ZXM7IHRoZW4KCW91dHB1dF9vYmo9IiRsaWJvYmoiCgljb21tYW5k PSIkY29tbWFuZCAtbyAkb3V0cHV0X29iaiIKICAgICAgZWxpZiB0ZXN0ICIkY29tcGlsZXJfY19v IiA9IHllczsgdGhlbgoJb3V0cHV0X29iaj0iJG9iaiIKCWNvbW1hbmQ9IiRjb21tYW5kIC1vICRv dXRwdXRfb2JqIgogICAgICBmaQoKICAgICAgJHJ1biAkcm0gIiRvdXRwdXRfb2JqIgogICAgICAk c2hvdyAiJGNvbW1hbmQiCiAgICAgIGlmICRydW4gZXZhbCAiJGNvbW1hbmQiOyB0aGVuIDoKICAg ICAgZWxzZQoJdGVzdCAtbiAiJG91dHB1dF9vYmoiICYmICRydW4gJHJtICRyZW1vdmVsaXN0Cgll eGl0IDEKICAgICAgZmkKCiAgICAgIGlmIHRlc3QgIiRuZWVkX2xvY2tzIiA9IHdhcm4gJiYKCSB0 ZXN0IHgiYGNhdCAkbG9ja2ZpbGUgMj4vZGV2L251bGxgIiAhPSB4IiRzcmNmaWxlIjsgdGhlbgoJ ZWNobyAiXAoqKiogRVJST1IsICRsb2NrZmlsZSBjb250YWluczoKYGNhdCAkbG9ja2ZpbGUgMj4v ZGV2L251bGxgCgpidXQgaXQgc2hvdWxkIGNvbnRhaW46CiRzcmNmaWxlCgpUaGlzIGluZGljYXRl cyB0aGF0IGFub3RoZXIgcHJvY2VzcyBpcyB0cnlpbmcgdG8gdXNlIHRoZSBzYW1lCnRlbXBvcmFy eSBvYmplY3QgZmlsZSwgYW5kIGxpYnRvb2wgY291bGQgbm90IHdvcmsgYXJvdW5kIGl0IGJlY2F1 c2UKeW91ciBjb21waWxlciBkb2VzIG5vdCBzdXBwb3J0IFxgLWMnIGFuZCBcYC1vJyB0b2dldGhl ci4gIElmIHlvdQpyZXBlYXQgdGhpcyBjb21waWxhdGlvbiwgaXQgbWF5IHN1Y2NlZWQsIGJ5IGNo YW5jZSwgYnV0IHlvdSBoYWQgYmV0dGVyCmF2b2lkIHBhcmFsbGVsIGJ1aWxkcyAobWFrZSAtaikg aW4gdGhpcyBwbGF0Zm9ybSwgb3IgZ2V0IGEgYmV0dGVyCmNvbXBpbGVyLiIKCgkkcnVuICRybSAk cmVtb3ZlbGlzdAoJZXhpdCAxCiAgICAgIGZpCgogICAgICAjIEp1c3QgbW92ZSB0aGUgb2JqZWN0 IGlmIG5lZWRlZCwgdGhlbiBnbyBvbiB0byBjb21waWxlIHRoZSBuZXh0IG9uZQogICAgICBpZiB0 ZXN0IHgiJG91dHB1dF9vYmoiICE9IHgiJGxpYm9iaiI7IHRoZW4KCSRzaG93ICIkbXYgJG91dHB1 dF9vYmogJGxpYm9iaiIKCWlmICRydW4gJG12ICRvdXRwdXRfb2JqICRsaWJvYmo7IHRoZW4gOgoJ ZWxzZQoJICBlcnJvcj0kPwoJICAkcnVuICRybSAkcmVtb3ZlbGlzdAoJICBleGl0ICRlcnJvcgoJ ZmkKICAgICAgZmkKCiAgICAgICMgSWYgd2UgaGF2ZSBubyBwaWNfZmxhZywgdGhlbiBjb3B5IHRo ZSBvYmplY3QgaW50byBwbGFjZSBhbmQgZmluaXNoLgogICAgICBpZiB0ZXN0IC16ICIkcGljX2Zs YWciICYmIHRlc3QgIiRidWlsZF9vbGRfbGlicyIgPSB5ZXM7IHRoZW4KCSMgUmVuYW1lIHRoZSAu bG8gZnJvbSB3aXRoaW4gb2JqZGlyIHRvIG9iagoJaWYgdGVzdCAtZiAkb2JqOyB0aGVuCgkgICRz aG93ICRybSAkb2JqCgkgICRydW4gJHJtICRvYmoKCWZpCgoJJHNob3cgIiRtdiAkbGlib2JqICRv YmoiCglpZiAkcnVuICRtdiAkbGlib2JqICRvYmo7IHRoZW4gOgoJZWxzZQoJICBlcnJvcj0kPwoJ ICAkcnVuICRybSAkcmVtb3ZlbGlzdAoJICBleGl0ICRlcnJvcgoJZmkKCgl4ZGlyPWAkZWNobyAi WCRvYmoiIHwgJFhzZWQgLWUgJ3MlL1teL10qJCUlJ2AKCWlmIHRlc3QgIlgkeGRpciIgPSAiWCRv YmoiOyB0aGVuCgkgIHhkaXI9Ii4iCgllbHNlCgkgIHhkaXI9IiR4ZGlyIgoJZmkKCWJhc2VvYmo9 YCRlY2hvICJYJG9iaiIgfCAkWHNlZCAtZSAicyUuKi8lJSJgCglsaWJvYmo9YCRlY2hvICJYJGJh c2VvYmoiIHwgJFhzZWQgLWUgIiRvMmxvImAKCSMgTm93IGFycmFuZ2UgdGhhdCBvYmogYW5kIGxv X2xpYm9iaiBiZWNvbWUgdGhlIHNhbWUgZmlsZQoJJHNob3cgIihjZCAkeGRpciAmJiAkTE5fUyAk YmFzZW9iaiAkbGlib2JqKSIKCWlmICRydW4gZXZhbCAnKGNkICR4ZGlyICYmICRMTl9TICRiYXNl b2JqICRsaWJvYmopJzsgdGhlbgoJICBleGl0IDAKCWVsc2UKCSAgZXJyb3I9JD8KCSAgJHJ1biAk cm0gJHJlbW92ZWxpc3QKCSAgZXhpdCAkZXJyb3IKCWZpCiAgICAgIGZpCgogICAgICAjIEFsbG93 IGVycm9yIG1lc3NhZ2VzIG9ubHkgZnJvbSB0aGUgZmlyc3QgY29tcGlsYXRpb24uCiAgICAgIHN1 cHByZXNzX291dHB1dD0nID4vZGV2L251bGwgMj4mMScKICAgIGZpCgogICAgIyBPbmx5IGJ1aWxk IGEgcG9zaXRpb24tZGVwZW5kZW50IG9iamVjdCBpZiB3ZSBidWlsZCBvbGQgbGlicmFyaWVzLgog ICAgaWYgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9IHllczsgdGhlbgogICAgICBjb21tYW5kPSIk YmFzZV9jb21waWxlICRzcmNmaWxlIgogICAgICBpZiB0ZXN0ICIkY29tcGlsZXJfY19vIiA9IHll czsgdGhlbgoJY29tbWFuZD0iJGNvbW1hbmQgLW8gJG9iaiIKCW91dHB1dF9vYmo9IiRvYmoiCiAg ICAgIGZpCgogICAgICAjIFN1cHByZXNzIGNvbXBpbGVyIG91dHB1dCBpZiB3ZSBhbHJlYWR5IGRp ZCBhIFBJQyBjb21waWxhdGlvbi4KICAgICAgY29tbWFuZD0iJGNvbW1hbmQkc3VwcHJlc3Nfb3V0 cHV0IgogICAgICAkcnVuICRybSAiJG91dHB1dF9vYmoiCiAgICAgICRzaG93ICIkY29tbWFuZCIK ICAgICAgaWYgJHJ1biBldmFsICIkY29tbWFuZCI7IHRoZW4gOgogICAgICBlbHNlCgkkcnVuICRy bSAkcmVtb3ZlbGlzdAoJZXhpdCAxCiAgICAgIGZpCgogICAgICBpZiB0ZXN0ICIkbmVlZF9sb2Nr cyIgPSB3YXJuICYmCgkgdGVzdCB4ImBjYXQgJGxvY2tmaWxlIDI+L2Rldi9udWxsYCIgIT0geCIk c3JjZmlsZSI7IHRoZW4KCWVjaG8gIlwKKioqIEVSUk9SLCAkbG9ja2ZpbGUgY29udGFpbnM6CmBj YXQgJGxvY2tmaWxlIDI+L2Rldi9udWxsYAoKYnV0IGl0IHNob3VsZCBjb250YWluOgokc3JjZmls ZQoKVGhpcyBpbmRpY2F0ZXMgdGhhdCBhbm90aGVyIHByb2Nlc3MgaXMgdHJ5aW5nIHRvIHVzZSB0 aGUgc2FtZQp0ZW1wb3Jhcnkgb2JqZWN0IGZpbGUsIGFuZCBsaWJ0b29sIGNvdWxkIG5vdCB3b3Jr IGFyb3VuZCBpdCBiZWNhdXNlCnlvdXIgY29tcGlsZXIgZG9lcyBub3Qgc3VwcG9ydCBcYC1jJyBh bmQgXGAtbycgdG9nZXRoZXIuICBJZiB5b3UKcmVwZWF0IHRoaXMgY29tcGlsYXRpb24sIGl0IG1h eSBzdWNjZWVkLCBieSBjaGFuY2UsIGJ1dCB5b3UgaGFkIGJldHRlcgphdm9pZCBwYXJhbGxlbCBi dWlsZHMgKG1ha2UgLWopIGluIHRoaXMgcGxhdGZvcm0sIG9yIGdldCBhIGJldHRlcgpjb21waWxl ci4iCgoJJHJ1biAkcm0gJHJlbW92ZWxpc3QKCWV4aXQgMQogICAgICBmaQoKICAgICAgIyBKdXN0 IG1vdmUgdGhlIG9iamVjdCBpZiBuZWVkZWQKICAgICAgaWYgdGVzdCB4IiRvdXRwdXRfb2JqIiAh PSB4IiRvYmoiOyB0aGVuCgkkc2hvdyAiJG12ICRvdXRwdXRfb2JqICRvYmoiCglpZiAkcnVuICRt diAkb3V0cHV0X29iaiAkb2JqOyB0aGVuIDoKCWVsc2UKCSAgZXJyb3I9JD8KCSAgJHJ1biAkcm0g JHJlbW92ZWxpc3QKCSAgZXhpdCAkZXJyb3IKCWZpCiAgICAgIGZpCgogICAgICAjIENyZWF0ZSBh biBpbnZhbGlkIGxpYnRvb2wgb2JqZWN0IGlmIG5vIFBJQywgc28gdGhhdCB3ZSBkbyBub3QKICAg ICAgIyBhY2NpZGVudGFsbHkgbGluayBpdCBpbnRvIGEgcHJvZ3JhbS4KICAgICAgaWYgdGVzdCAi JGJ1aWxkX2xpYnRvb2xfbGlicyIgIT0geWVzOyB0aGVuCgkkc2hvdyAiZWNobyB0aW1lc3RhbXAg PiAkbGlib2JqIgoJJHJ1biBldmFsICJlY2hvIHRpbWVzdGFtcCA+IFwkbGlib2JqIiB8fCBleGl0 ICQ/CiAgICAgIGVsc2UKCSMgTW92ZSB0aGUgLmxvIGZyb20gd2l0aGluIG9iamRpcgoJJHNob3cg IiRtdiAkbGlib2JqICRsb19saWJvYmoiCglpZiAkcnVuICRtdiAkbGlib2JqICRsb19saWJvYmo7 IHRoZW4gOgoJZWxzZQoJICBlcnJvcj0kPwoJICAkcnVuICRybSAkcmVtb3ZlbGlzdAoJICBleGl0 ICRlcnJvcgoJZmkKICAgICAgZmkKICAgIGZpCgogICAgIyBVbmxvY2sgdGhlIGNyaXRpY2FsIHNl Y3Rpb24gaWYgaXQgd2FzIGxvY2tlZAogICAgaWYgdGVzdCAiJG5lZWRfbG9ja3MiICE9IG5vOyB0 aGVuCiAgICAgICRybSAiJGxvY2tmaWxlIgogICAgZmkKCiAgICBleGl0IDAKICAgIDs7CgogICMg bGlidG9vbCBsaW5rIG1vZGUKICBsaW5rKQogICAgbW9kZW5hbWU9IiRtb2RlbmFtZTogbGluayIK ICAgIGNhc2UgIiRob3N0IiBpbgogICAgKi0qLWN5Z3dpbiogfCAqLSotbWluZ3cqIHwgKi0qLW9z MiopCiAgICAgICMgSXQgaXMgaW1wb3NzaWJsZSB0byBsaW5rIGEgZGxsIHdpdGhvdXQgdGhpcyBz ZXR0aW5nLCBhbmQKICAgICAgIyB3ZSBzaG91bGRuJ3QgZm9yY2UgdGhlIG1ha2VmaWxlIG1haW50 YWluZXIgdG8gZmlndXJlIG91dAogICAgICAjIHdoaWNoIHN5c3RlbSB3ZSBhcmUgY29tcGlsaW5n IGZvciBpbiBvcmRlciB0byBwYXNzIGFuIGV4dHJhCiAgICAgICMgZmxhZyBmb3IgZXZlcnkgbGli dG9vbCBpbnZva2F0aW9uLgogICAgICAjIGFsbG93X3VuZGVmaW5lZD1ubwoKICAgICAgIyBGSVhN RTogVW5mb3J0dW5hdGVseSwgdGhlcmUgYXJlIHByb2JsZW1zIHdpdGggdGhlIGFib3ZlIHdoZW4g dHJ5aW5nCiAgICAgICMgdG8gbWFrZSBhIGRsbCB3aGljaCBoYXMgdW5kZWZpbmVkIHN5bWJvbHMs IGluIHdoaWNoIGNhc2Ugbm90CiAgICAgICMgZXZlbiBhIHN0YXRpYyBsaWJyYXJ5IGlzIGJ1aWx0 LiAgRm9yIG5vdywgd2UgbmVlZCB0byBzcGVjaWZ5CiAgICAgICMgLW5vLXVuZGVmaW5lZCBvbiB0 aGUgbGlidG9vbCBsaW5rIGxpbmUgd2hlbiB3ZSBjYW4gYmUgY2VydGFpbgogICAgICAjIHRoYXQg YWxsIHN5bWJvbHMgYXJlIHNhdGlzZmllZCwgb3RoZXJ3aXNlIHdlIGdldCBhIHN0YXRpYyBsaWJy YXJ5LgogICAgICBhbGxvd191bmRlZmluZWQ9eWVzCgogICAgICAjIFRoaXMgaXMgYSBzb3VyY2Ug cHJvZ3JhbSB0aGF0IGlzIHVzZWQgdG8gY3JlYXRlIGRsbHMgb24gV2luZG93cwogICAgICAjIERv bid0IHJlbW92ZSBub3IgbW9kaWZ5IHRoZSBzdGFydGluZyBhbmQgY2xvc2luZyBjb21tZW50cwoj IC8qIGx0ZGxsLmMgc3RhcnRzIGhlcmUgKi8KIyAjZGVmaW5lIFdJTjMyX0xFQU5fQU5EX01FQU4K IyAjaW5jbHVkZSA8d2luZG93cy5oPgojICN1bmRlZiBXSU4zMl9MRUFOX0FORF9NRUFOCiMgI2lu Y2x1ZGUgPHN0ZGlvLmg+CiMKIyAjaWZuZGVmIF9fQ1lHV0lOX18KIyAjICBpZmRlZiBfX0NZR1dJ TjMyX18KIyAjICAgIGRlZmluZSBfX0NZR1dJTl9fIF9fQ1lHV0lOMzJfXwojICMgIGVuZGlmCiMg I2VuZGlmCiMKIyAjaWZkZWYgX19jcGx1c3BsdXMKIyBleHRlcm4gIkMiIHsKIyAjZW5kaWYKIyBC T09MIEFQSUVOVFJZIERsbE1haW4gKEhJTlNUQU5DRSBoSW5zdCwgRFdPUkQgcmVhc29uLCBMUFZP SUQgcmVzZXJ2ZWQpOwojICNpZmRlZiBfX2NwbHVzcGx1cwojIH0KIyAjZW5kaWYKIwojICNpZmRl ZiBfX0NZR1dJTl9fCiMgI2luY2x1ZGUgPGN5Z3dpbi9jeWd3aW5fZGxsLmg+CiMgREVDTEFSRV9D WUdXSU5fRExMKCBEbGxNYWluICk7CiMgI2VuZGlmCiMgSElOU1RBTkNFIF9faERsbEluc3RhbmNl X2Jhc2U7CiMKIyBCT09MIEFQSUVOVFJZCiMgRGxsTWFpbiAoSElOU1RBTkNFIGhJbnN0LCBEV09S RCByZWFzb24sIExQVk9JRCByZXNlcnZlZCkKIyB7CiMgICBfX2hEbGxJbnN0YW5jZV9iYXNlID0g aEluc3Q7CiMgICByZXR1cm4gVFJVRTsKIyB9CiMgLyogbHRkbGwuYyBlbmRzIGhlcmUgKi8KICAg ICAgIyBUaGlzIGlzIGEgc291cmNlIHByb2dyYW0gdGhhdCBpcyB1c2VkIHRvIGNyZWF0ZSBpbXBv cnQgbGlicmFyaWVzCiAgICAgICMgb24gV2luZG93cyBmb3IgZGxscyB3aGljaCBsYWNrIHRoZW0u IERvbid0IHJlbW92ZSBub3IgbW9kaWZ5IHRoZQogICAgICAjIHN0YXJ0aW5nIGFuZCBjbG9zaW5n IGNvbW1lbnRzCiMgLyogaW1wZ2VuLmMgc3RhcnRzIGhlcmUgKi8KIyAvKiAgIENvcHlyaWdodCAo QykgMTk5OSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KIyAKIyAgVGhpcyBmaWxlIGlz IHBhcnQgb2YgR05VIGxpYnRvb2wuCiMgCiMgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJl OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgIGl0IHVuZGVyIHRoZSB0 ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMg IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExp Y2Vuc2UsIG9yCiMgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgCiMgIFRo aXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl ZnVsLAojICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll ZCB3YXJyYW50eSBvZgojICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt b3JlIGRldGFpbHMuCiMgCiMgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBp ZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgIEZvdW5kYXRpb24sIEluYy4sIDU5 IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCiMg ICovCiMgCiMgICNpbmNsdWRlIDxzdGRpby5oPgkJLyogZm9yIHByaW50ZigpICovCiMgICNpbmNs dWRlIDx1bmlzdGQuaD4JCS8qIGZvciBvcGVuKCksIGxzZWVrKCksIHJlYWQoKSAqLwojICAjaW5j bHVkZSA8ZmNudGwuaD4JCS8qIGZvciBPX1JET05MWSwgT19CSU5BUlkgKi8KIyAgI2luY2x1ZGUg PHN0cmluZy5oPgkJLyogZm9yIHN0cmR1cCgpICovCiMgCiMgIHN0YXRpYyB1bnNpZ25lZCBpbnQK IyAgcGVfZ2V0MTYgKGZkLCBvZmZzZXQpCiMgICAgICAgaW50IGZkOwojICAgICAgIGludCBvZmZz ZXQ7CiMgIHsKIyAgICB1bnNpZ25lZCBjaGFyIGJbMl07CiMgICAgbHNlZWsgKGZkLCBvZmZzZXQs IFNFRUtfU0VUKTsKIyAgICByZWFkIChmZCwgYiwgMik7CiMgICAgcmV0dXJuIGJbMF0gKyAoYlsx XTw8OCk7CiMgIH0KIyAKIyAgc3RhdGljIHVuc2lnbmVkIGludAojICBwZV9nZXQzMiAoZmQsIG9m ZnNldCkKIyAgICAgIGludCBmZDsKIyAgICAgIGludCBvZmZzZXQ7CiMgIHsKIyAgICB1bnNpZ25l ZCBjaGFyIGJbNF07CiMgICAgbHNlZWsgKGZkLCBvZmZzZXQsIFNFRUtfU0VUKTsKIyAgICByZWFk IChmZCwgYiwgNCk7CiMgICAgcmV0dXJuIGJbMF0gKyAoYlsxXTw8OCkgKyAoYlsyXTw8MTYpICsg KGJbM108PDI0KTsKIyAgfQojIAojICBzdGF0aWMgdW5zaWduZWQgaW50CiMgIHBlX2FzMzIgKHB0 cikKIyAgICAgICB2b2lkICpwdHI7CiMgIHsKIyAgICB1bnNpZ25lZCBjaGFyICpiID0gcHRyOwoj ICAgIHJldHVybiBiWzBdICsgKGJbMV08PDgpICsgKGJbMl08PDE2KSArIChiWzNdPDwyNCk7CiMg IH0KIyAKIyAgaW50CiMgIG1haW4gKGFyZ2MsIGFyZ3YpCiMgICAgICBpbnQgYXJnYzsKIyAgICAg IGNoYXIgKmFyZ3ZbXTsKIyAgewojICAgICAgaW50IGRsbDsKIyAgICAgIHVuc2lnbmVkIGxvbmcg cGVfaGVhZGVyX29mZnNldCwgb3B0aGRyX29mcywgbnVtX2VudHJpZXMsIGk7CiMgICAgICB1bnNp Z25lZCBsb25nIGV4cG9ydF9ydmEsIGV4cG9ydF9zaXplLCBuc2VjdGlvbnMsIHNlY3B0ciwgZXhw cHRyOwojICAgICAgdW5zaWduZWQgbG9uZyBuYW1lX3J2YXMsIG5leHA7CiMgICAgICB1bnNpZ25l ZCBjaGFyICpleHBkYXRhLCAqZXJ2YTsKIyAgICAgIGNoYXIgKmZpbGVuYW1lLCAqZGxsX25hbWU7 CiMgCiMgICAgICBmaWxlbmFtZSA9IGFyZ3ZbMV07CiMgCiMgICAgICBkbGwgPSBvcGVuKGZpbGVu YW1lLCBPX1JET05MWXxPX0JJTkFSWSk7CiMgICAgICBpZiAoIWRsbCkKIyAgCXJldHVybiAxOwoj IAojICAgICAgZGxsX25hbWUgPSBmaWxlbmFtZTsKIyAgICAKIyAgICAgIGZvciAoaT0wOyBmaWxl bmFtZVtpXTsgaSsrKQojICAJaWYgKGZpbGVuYW1lW2ldID09ICcvJyB8fCBmaWxlbmFtZVtpXSA9 PSAnXFwnICB8fCBmaWxlbmFtZVtpXSA9PSAnOicpCiMgIAkgICAgZGxsX25hbWUgPSBmaWxlbmFt ZSArIGkgKzE7CiMgCiMgICAgICBwZV9oZWFkZXJfb2Zmc2V0ID0gcGVfZ2V0MzIgKGRsbCwgMHgz Yyk7CiMgICAgICBvcHRoZHJfb2ZzID0gcGVfaGVhZGVyX29mZnNldCArIDQgKyAyMDsKIyAgICAg IG51bV9lbnRyaWVzID0gcGVfZ2V0MzIgKGRsbCwgb3B0aGRyX29mcyArIDkyKTsKIyAKIyAgICAg IGlmIChudW1fZW50cmllcyA8IDEpIC8qIG5vIGV4cG9ydHMgKi8KIyAgCXJldHVybiAxOwojIAoj ICAgICAgZXhwb3J0X3J2YSA9IHBlX2dldDMyIChkbGwsIG9wdGhkcl9vZnMgKyA5Nik7CiMgICAg ICBleHBvcnRfc2l6ZSA9IHBlX2dldDMyIChkbGwsIG9wdGhkcl9vZnMgKyAxMDApOwojICAgICAg bnNlY3Rpb25zID0gcGVfZ2V0MTYgKGRsbCwgcGVfaGVhZGVyX29mZnNldCArIDQgKzIpOwojICAg ICAgc2VjcHRyID0gKHBlX2hlYWRlcl9vZmZzZXQgKyA0ICsgMjAgKwojICAJICAgICAgcGVfZ2V0 MTYgKGRsbCwgcGVfaGVhZGVyX29mZnNldCArIDQgKyAxNikpOwojIAojICAgICAgZXhwcHRyID0g MDsKIyAgICAgIGZvciAoaSA9IDA7IGkgPCBuc2VjdGlvbnM7IGkrKykKIyAgICAgIHsKIyAgCWNo YXIgc25hbWVbOF07CiMgIAl1bnNpZ25lZCBsb25nIHNlY3B0cjEgPSBzZWNwdHIgKyA0MCAqIGk7 CiMgIAl1bnNpZ25lZCBsb25nIHZhZGRyID0gcGVfZ2V0MzIgKGRsbCwgc2VjcHRyMSArIDEyKTsK IyAgCXVuc2lnbmVkIGxvbmcgdnNpemUgPSBwZV9nZXQzMiAoZGxsLCBzZWNwdHIxICsgMTYpOwoj ICAJdW5zaWduZWQgbG9uZyBmcHRyID0gcGVfZ2V0MzIgKGRsbCwgc2VjcHRyMSArIDIwKTsKIyAg CWxzZWVrKGRsbCwgc2VjcHRyMSwgU0VFS19TRVQpOwojICAJcmVhZChkbGwsIHNuYW1lLCA4KTsK IyAgCWlmICh2YWRkciA8PSBleHBvcnRfcnZhICYmIHZhZGRyK3ZzaXplID4gZXhwb3J0X3J2YSkK IyAgCXsKIyAgCSAgICBleHBwdHIgPSBmcHRyICsgKGV4cG9ydF9ydmEgLSB2YWRkcik7CiMgIAkg ICAgaWYgKGV4cG9ydF9ydmEgKyBleHBvcnRfc2l6ZSA+IHZhZGRyICsgdnNpemUpCiMgIAkJZXhw b3J0X3NpemUgPSB2c2l6ZSAtIChleHBvcnRfcnZhIC0gdmFkZHIpOwojICAJICAgIGJyZWFrOwoj ICAJfQojICAgICAgfQojIAojICAgICAgZXhwZGF0YSA9ICh1bnNpZ25lZCBjaGFyKiltYWxsb2Mo ZXhwb3J0X3NpemUpOwojICAgICAgbHNlZWsgKGRsbCwgZXhwcHRyLCBTRUVLX1NFVCk7CiMgICAg ICByZWFkIChkbGwsIGV4cGRhdGEsIGV4cG9ydF9zaXplKTsKIyAgICAgIGVydmEgPSBleHBkYXRh IC0gZXhwb3J0X3J2YTsKIyAKIyAgICAgIG5leHAgPSBwZV9hczMyIChleHBkYXRhKzI0KTsKIyAg ICAgIG5hbWVfcnZhcyA9IHBlX2FzMzIgKGV4cGRhdGErMzIpOwojIAojICAgICAgcHJpbnRmICgi RVhQT1JUU1xuIik7CiMgICAgICBmb3IgKGkgPSAwOyBpPG5leHA7IGkrKykKIyAgICAgIHsKIyAg CXVuc2lnbmVkIGxvbmcgbmFtZV9ydmEgPSBwZV9hczMyIChlcnZhK25hbWVfcnZhcytpKjQpOwoj ICAJcHJpbnRmICgiXHQlcyBAICVsZCA7XG4iLCBlcnZhK25hbWVfcnZhLCAxKyBpKTsKIyAgICAg IH0KIyAKIyAgICAgIHJldHVybiAwOwojICB9CiMgLyogaW1wZ2VuLmMgZW5kcyBoZXJlICovCiAg ICAgIDs7CiAgICAqKQogICAgICBhbGxvd191bmRlZmluZWQ9eWVzCiAgICAgIDs7CiAgICBlc2Fj CiAgICBjb21waWxlX2NvbW1hbmQ9IiRub25vcHQiCiAgICBmaW5hbGl6ZV9jb21tYW5kPSIkbm9u b3B0IgoKICAgIGNvbXBpbGVfcnBhdGg9CiAgICBmaW5hbGl6ZV9ycGF0aD0KICAgIGNvbXBpbGVf c2hsaWJwYXRoPQogICAgZmluYWxpemVfc2hsaWJwYXRoPQogICAgY29udmVuaWVuY2U9CiAgICBv bGRfY29udmVuaWVuY2U9CiAgICBkZXBsaWJzPQogICAgbGlua29wdHM9CgogICAgaWYgdGVzdCAt biAiJHNobGlicGF0aF92YXIiOyB0aGVuCiAgICAgICMgZ2V0IHRoZSBkaXJlY3RvcmllcyBsaXN0 ZWQgaW4gJHNobGlicGF0aF92YXIKICAgICAgZXZhbCBsaWJfc2VhcmNoX3BhdGg9XGBcJGVjaG8g XCJYIFwkeyRzaGxpYnBhdGhfdmFyfVwiIFx8IFwkWHNlZCAtZSBcJ3MvOi8gL2dcJ1xgCiAgICBl bHNlCiAgICAgIGxpYl9zZWFyY2hfcGF0aD0KICAgIGZpCiAgICAjIG5vdyBwcmVwZW5kIHRoZSBz eXN0ZW0tc3BlY2lmaWMgb25lcwogICAgZXZhbCBsaWJfc2VhcmNoX3BhdGg9XCIkc3lzX2xpYl9z ZWFyY2hfcGF0aF9zcGVjXCRsaWJfc2VhcmNoX3BhdGhcIgogICAgZXZhbCBzeXNfbGliX2Rsc2Vh cmNoX3BhdGg9XCIkc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWNcIgogICAgCiAgICBhdm9pZF92 ZXJzaW9uPW5vCiAgICBkbGZpbGVzPQogICAgZGxwcmVmaWxlcz0KICAgIGRsc2VsZj1ubwogICAg ZXhwb3J0X2R5bmFtaWM9bm8KICAgIGV4cG9ydF9zeW1ib2xzPQogICAgZXhwb3J0X3N5bWJvbHNf cmVnZXg9CiAgICBnZW5lcmF0ZWQ9CiAgICBsaWJvYmpzPQogICAgbGlua19hZ2FpbnN0X2xpYnRv b2xfbGlicz0KICAgIGx0bGlicz0KICAgIG1vZHVsZT1ubwogICAgb2Jqcz0KICAgIHByZWZlcl9z dGF0aWNfbGlicz1ubwogICAgcHJlbG9hZD1ubwogICAgcHJldj0KICAgIHByZXZhcmc9CiAgICBy ZWxlYXNlPQogICAgcnBhdGg9CiAgICB4cnBhdGg9CiAgICBwZXJtX3JwYXRoPQogICAgdGVtcF9y cGF0aD0KICAgIHRocmVhZF9zYWZlPW5vCiAgICB2aW5mbz0KCiAgICAjIFdlIG5lZWQgdG8ga25v dyAtc3RhdGljLCB0byBnZXQgdGhlIHJpZ2h0IG91dHB1dCBmaWxlbmFtZXMuCiAgICBmb3IgYXJn CiAgICBkbwogICAgICBjYXNlICIkYXJnIiBpbgogICAgICAtYWxsLXN0YXRpYyB8IC1zdGF0aWMp CglpZiB0ZXN0ICJYJGFyZyIgPSAiWC1hbGwtc3RhdGljIjsgdGhlbgoJICBpZiB0ZXN0ICIkYnVp bGRfbGlidG9vbF9saWJzIiA9IHllcyAmJiB0ZXN0IC16ICIkbGlua19zdGF0aWNfZmxhZyI7IHRo ZW4KCSAgICAkZWNobyAiJG1vZGVuYW1lOiB3YXJuaW5nOiBjb21wbGV0ZSBzdGF0aWMgbGlua2lu ZyBpcyBpbXBvc3NpYmxlIGluIHRoaXMgY29uZmlndXJhdGlvbiIgMT4mMgoJICBmaQoJICBpZiB0 ZXN0IC1uICIkbGlua19zdGF0aWNfZmxhZyI7IHRoZW4KCSAgICBkbG9wZW5fc2VsZj0kZGxvcGVu X3NlbGZfc3RhdGljCgkgIGZpCgllbHNlCgkgIGlmIHRlc3QgLXogIiRwaWNfZmxhZyIgJiYgdGVz dCAtbiAiJGxpbmtfc3RhdGljX2ZsYWciOyB0aGVuCgkgICAgZGxvcGVuX3NlbGY9JGRsb3Blbl9z ZWxmX3N0YXRpYwoJICBmaQoJZmkKCWJ1aWxkX2xpYnRvb2xfbGlicz1ubwoJYnVpbGRfb2xkX2xp YnM9eWVzCglwcmVmZXJfc3RhdGljX2xpYnM9eWVzCglicmVhawoJOzsKICAgICAgZXNhYwogICAg ZG9uZQoKICAgICMgU2VlIGlmIG91ciBzaGFyZWQgYXJjaGl2ZXMgZGVwZW5kIG9uIHN0YXRpYyBh cmNoaXZlcy4KICAgIHRlc3QgLW4gIiRvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzIiAmJiBidWls ZF9vbGRfbGlicz15ZXMKCiAgICAjIEdvIHRocm91Z2ggdGhlIGFyZ3VtZW50cywgdHJhbnNmb3Jt aW5nIHRoZW0gb24gdGhlIHdheS4KICAgIHdoaWxlIHRlc3QgJCMgLWd0IDA7IGRvCiAgICAgIGFy Zz0iJDEiCiAgICAgIHNoaWZ0CgogICAgICAjIElmIHRoZSBwcmV2aW91cyBvcHRpb24gbmVlZHMg YW4gYXJndW1lbnQsIGFzc2lnbiBpdC4KICAgICAgaWYgdGVzdCAtbiAiJHByZXYiOyB0aGVuCglj YXNlICIkcHJldiIgaW4KCW91dHB1dCkKCSAgY29tcGlsZV9jb21tYW5kPSIkY29tcGlsZV9jb21t YW5kIEBPVVRQVVRAIgoJICBmaW5hbGl6ZV9jb21tYW5kPSIkZmluYWxpemVfY29tbWFuZCBAT1VU UFVUQCIKCSAgOzsKCWVzYWMKCgljYXNlICIkcHJldiIgaW4KCWRsZmlsZXN8ZGxwcmVmaWxlcykK CSAgaWYgdGVzdCAiJHByZWxvYWQiID0gbm87IHRoZW4KCSAgICAjIEFkZCB0aGUgc3ltYm9sIG9i amVjdCBpbnRvIHRoZSBsaW5raW5nIGNvbW1hbmRzLgoJICAgIGNvbXBpbGVfY29tbWFuZD0iJGNv bXBpbGVfY29tbWFuZCBAU1lNRklMRUAiCgkgICAgZmluYWxpemVfY29tbWFuZD0iJGZpbmFsaXpl X2NvbW1hbmQgQFNZTUZJTEVAIgoJICAgIHByZWxvYWQ9eWVzCgkgIGZpCgkgIGNhc2UgIiRhcmci IGluCgkgICoubGEgfCAqLmxvKSA7OyAgIyBXZSBoYW5kbGUgdGhlc2UgY2FzZXMgYmVsb3cuCgkg IGZvcmNlKQoJICAgIGlmIHRlc3QgIiRkbHNlbGYiID0gbm87IHRoZW4KCSAgICAgIGRsc2VsZj1u ZWVkbGVzcwoJICAgICAgZXhwb3J0X2R5bmFtaWM9eWVzCgkgICAgZmkKCSAgICBwcmV2PQoJICAg IGNvbnRpbnVlCgkgICAgOzsKCSAgc2VsZikKCSAgICBpZiB0ZXN0ICIkcHJldiIgPSBkbHByZWZp bGVzOyB0aGVuCgkgICAgICBkbHNlbGY9eWVzCgkgICAgZWxpZiB0ZXN0ICIkcHJldiIgPSBkbGZp bGVzICYmIHRlc3QgIiRkbG9wZW5fc2VsZiIgIT0geWVzOyB0aGVuCgkgICAgICBkbHNlbGY9eWVz CgkgICAgZWxzZQoJICAgICAgZGxzZWxmPW5lZWRsZXNzCgkgICAgICBleHBvcnRfZHluYW1pYz15 ZXMKCSAgICBmaQoJICAgIHByZXY9CgkgICAgY29udGludWUKCSAgICA7OwoJICAqKQoJICAgIGlm IHRlc3QgIiRwcmV2IiA9IGRsZmlsZXM7IHRoZW4KCSAgICAgIGRsZmlsZXM9IiRkbGZpbGVzICRh cmciCgkgICAgZWxzZQoJICAgICAgZGxwcmVmaWxlcz0iJGRscHJlZmlsZXMgJGFyZyIKCSAgICBm aQoJICAgIHByZXY9CgkgICAgOzsKCSAgZXNhYwoJICA7OwoJZXhwc3ltcykKCSAgZXhwb3J0X3N5 bWJvbHM9IiRhcmciCgkgIGlmIHRlc3QgISAtZiAiJGFyZyI7IHRoZW4KCSAgICAkZWNobyAiJG1v ZGVuYW1lOiBzeW1ib2wgZmlsZSBcYCRhcmcnIGRvZXMgbm90IGV4aXN0IgoJICAgIGV4aXQgMQoJ ICBmaQoJICBwcmV2PQoJICBjb250aW51ZQoJICA7OwoJZXhwc3ltc19yZWdleCkKCSAgZXhwb3J0 X3N5bWJvbHNfcmVnZXg9IiRhcmciCgkgIHByZXY9CgkgIGNvbnRpbnVlCgkgIDs7CglyZWxlYXNl KQoJICBpZiB0ZXN0ICIkcmVsZWFzZV9zdWZmaXgiID0gYWxsOyB0aGVuCgkgICAgcmVsZWFzZT0i JGFyZyIKCSAgZWxpZiB0ZXN0ICIkcmVsZWFzZV9zdWZmaXgiID0geWVzOyB0aGVuCgkgIHJlbGVh c2U9Ii0kYXJnIgoJICBmaQoJICBwcmV2PQoJICBjb250aW51ZQoJICA7OwoJcnBhdGggfCB4cnBh dGgpCgkgICMgV2UgbmVlZCBhbiBhYnNvbHV0ZSBwYXRoLgoJICBjYXNlICIkYXJnIiBpbgoJICBb XFwvXSogfCBbQS1aYS16XTpbXFwvXSopIDs7CgkgICopCgkgICAgJGVjaG8gIiRtb2RlbmFtZTog b25seSBhYnNvbHV0ZSBydW4tcGF0aHMgYXJlIGFsbG93ZWQiIDE+JjIKCSAgICBleGl0IDEKCSAg ICA7OwoJICBlc2FjCgkgIGlmIHRlc3QgIiRwcmV2IiA9IHJwYXRoOyB0aGVuCgkgICAgY2FzZSAi JHJwYXRoICIgaW4KCSAgICAqIiAkYXJnICIqKSA7OwoJICAgICopIHJwYXRoPSIkcnBhdGggJGFy ZyIgOzsKCSAgICBlc2FjCgkgIGVsc2UKCSAgICBjYXNlICIkeHJwYXRoICIgaW4KCSAgICAqIiAk YXJnICIqKSA7OwoJICAgICopIHhycGF0aD0iJHhycGF0aCAkYXJnIiA7OwoJICAgIGVzYWMKCSAg ZmkKCSAgcHJldj0KCSAgY29udGludWUKCSAgOzsKCSopCgkgIGV2YWwgIiRwcmV2PVwiXCRhcmdc IiIKCSAgcHJldj0KCSAgY29udGludWUKCSAgOzsKCWVzYWMKICAgICAgZmkKCiAgICAgIHByZXZh cmc9IiRhcmciCgogICAgICBjYXNlICIkYXJnIiBpbgogICAgICAtYWxsLXN0YXRpYykKCWlmIHRl c3QgLW4gIiRsaW5rX3N0YXRpY19mbGFnIjsgdGhlbgoJICBjb21waWxlX2NvbW1hbmQ9IiRjb21w aWxlX2NvbW1hbmQgJGxpbmtfc3RhdGljX2ZsYWciCgkgIGZpbmFsaXplX2NvbW1hbmQ9IiRmaW5h bGl6ZV9jb21tYW5kICRsaW5rX3N0YXRpY19mbGFnIgoJZmkKCWNvbnRpbnVlCgk7OwoKICAgICAg LWFsbG93LXVuZGVmaW5lZCkKCSMgRklYTUU6IHJlbW92ZSB0aGlzIGZsYWcgc29tZXRpbWUgaW4g dGhlIGZ1dHVyZS4KCSRlY2hvICIkbW9kZW5hbWU6IFxgLWFsbG93LXVuZGVmaW5lZCcgaXMgZGVw cmVjYXRlZCBiZWNhdXNlIGl0IGlzIHRoZSBkZWZhdWx0IiAxPiYyCgljb250aW51ZQoJOzsKCiAg ICAgIC1hdm9pZC12ZXJzaW9uKQoJYnVpbGRfb2xkX2xpYnM9bm8KCWF2b2lkX3ZlcnNpb249eWVz Cgljb250aW51ZQoJOzsKCiAgICAgIC1kbG9wZW4pCglwcmV2PWRsZmlsZXMKCWNvbnRpbnVlCgk7 OwoKICAgICAgLWRscHJlb3BlbikKCXByZXY9ZGxwcmVmaWxlcwoJY29udGludWUKCTs7CgogICAg ICAtZXhwb3J0LWR5bmFtaWMpCglleHBvcnRfZHluYW1pYz15ZXMKCWNvbnRpbnVlCgk7OwoKICAg ICAgLWV4cG9ydC1zeW1ib2xzIHwgLWV4cG9ydC1zeW1ib2xzLXJlZ2V4KQoJaWYgdGVzdCAtbiAi JGV4cG9ydF9zeW1ib2xzIiB8fCB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHNfcmVnZXgiOyB0aGVu CgkgICRlY2hvICIkbW9kZW5hbWU6IG5vdCBtb3JlIHRoYW4gb25lIC1leHBvcnRlZC1zeW1ib2xz IGFyZ3VtZW50IGFsbG93ZWQiCgkgIGV4aXQgMQoJZmkKCWlmIHRlc3QgIlgkYXJnIiA9ICJYLWV4 cG9ydC1zeW1ib2xzIjsgdGhlbgoJICBwcmV2PWV4cHN5bXMKCWVsc2UKCSAgcHJldj1leHBzeW1z X3JlZ2V4CglmaQoJY29udGludWUKCTs7CgogICAgICAtTCopCglkaXI9YCRlY2hvICJYJGFyZyIg fCAkWHNlZCAtZSAncy9eLUwvLydgCgkjIFdlIG5lZWQgYW4gYWJzb2x1dGUgcGF0aC4KCWNhc2Ug IiRkaXIiIGluCglbXFwvXSogfCBbQS1aYS16XTpbXFwvXSopIDs7CgkqKQoJICBhYnNkaXI9YGNk ICIkZGlyIiAmJiBwd2RgCgkgIGlmIHRlc3QgLXogIiRhYnNkaXIiOyB0aGVuCgkgICAgJGVjaG8g IiRtb2RlbmFtZTogd2FybmluZzogY2Fubm90IGRldGVybWluZSBhYnNvbHV0ZSBkaXJlY3Rvcnkg bmFtZSBvZiBcYCRkaXInIiAxPiYyCgkgICAgJGVjaG8gIiRtb2RlbmFtZTogcGFzc2luZyBpdCBs aXRlcmFsbHkgdG8gdGhlIGxpbmtlciwgYWx0aG91Z2ggaXQgbWlnaHQgZmFpbCIgMT4mMgoJICAg IGFic2Rpcj0iJGRpciIKCSAgZmkKCSAgZGlyPSIkYWJzZGlyIgoJICA7OwoJZXNhYwoJY2FzZSAi ICRkZXBsaWJzICIgaW4KCSoiICRhcmcgIiopIDs7CgkqKSBkZXBsaWJzPSIkZGVwbGlicyAkYXJn Ijs7Cgllc2FjCgljYXNlICIgJGxpYl9zZWFyY2hfcGF0aCAiIGluCgkqIiAkZGlyICIqKSA7OwoJ KikgbGliX3NlYXJjaF9wYXRoPSIkbGliX3NlYXJjaF9wYXRoICRkaXIiOzsKCWVzYWMKCWNhc2Ug IiRob3N0IiBpbgoJKi0qLWN5Z3dpbiogfCAqLSotbWluZ3cqIHwgKi0qLW9zMiopCgkgIGRsbHNl YXJjaGRpcj1gY2QgIiRkaXIiICYmIHB3ZCB8fCBlY2hvICIkZGlyImAKCSAgY2FzZSAiOiRkbGxz ZWFyY2hwYXRoOiIgaW4KCSAgOjopIGRsbHNlYXJjaHBhdGg9IiRkbGxzZWFyY2hkaXIiOzsKCSAg KiI6JGRsbHNlYXJjaGRpcjoiKikgOzsKCSAgKikgZGxsc2VhcmNocGF0aD0iJGRsbHNlYXJjaHBh dGg6JGRsbHNlYXJjaGRpciI7OwoJICBlc2FjCgkgIDs7Cgllc2FjCgk7OwoKICAgICAgLWwqKQoJ aWYgdGVzdCAiJGFyZyIgPSAiLWxjIjsgdGhlbgoJICBjYXNlICIkaG9zdCIgaW4KCSAgKi0qLWN5 Z3dpbiogfCAqLSotbWluZ3cqIHwgKi0qLW9zMiogfCAqLSotYmVvcyopCgkgICAgIyBUaGVzZSBz eXN0ZW1zIGRvbid0IGFjdHVhbGx5IGhhdmUgYyBsaWJyYXJ5IChhcyBzdWNoKQoJICAgIGNvbnRp bnVlCgkgICAgOzsKCSAgZXNhYwoJZWxpZiB0ZXN0ICIkYXJnIiA9ICItbG0iOyB0aGVuCgkgIGNh c2UgIiRob3N0IiBpbgoJICAqLSotY3lnd2luKiB8ICotKi1iZW9zKikKCSAgICAjIFRoZXNlIHN5 c3RlbXMgZG9uJ3QgYWN0dWFsbHkgaGF2ZSBtYXRoIGxpYnJhcnkgKGFzIHN1Y2gpCgkgICAgY29u dGludWUKCSAgICA7OwoJICBlc2FjCglmaQoJZGVwbGlicz0iJGRlcGxpYnMgJGFyZyIKCTs7Cgog ICAgICAtP3RocmVhZCkKCWRlcGxpYnM9IiRkZXBsaWJzICRhcmciCgk7OwoKICAgICAgLW1vZHVs ZSkKCW1vZHVsZT15ZXMKCWNvbnRpbnVlCgk7OwoKICAgICAgLW5vLXVuZGVmaW5lZCkKCWFsbG93 X3VuZGVmaW5lZD1ubwoJY29udGludWUKCTs7CgogICAgICAtbykgcHJldj1vdXRwdXQgOzsKCiAg ICAgIC1yZWxlYXNlKQoJcHJldj1yZWxlYXNlCgljb250aW51ZQoJOzsKCiAgICAgIC1ycGF0aCkK CXByZXY9cnBhdGgKCWNvbnRpbnVlCgk7OwoKICAgICAgLVIpCglwcmV2PXhycGF0aAoJY29udGlu dWUKCTs7CgogICAgICAtUiopCglkaXI9YCRlY2hvICJYJGFyZyIgfCAkWHNlZCAtZSAncy9eLVIv LydgCgkjIFdlIG5lZWQgYW4gYWJzb2x1dGUgcGF0aC4KCWNhc2UgIiRkaXIiIGluCglbXFwvXSog fCBbQS1aYS16XTpbXFwvXSopIDs7CgkqKQoJICAkZWNobyAiJG1vZGVuYW1lOiBvbmx5IGFic29s dXRlIHJ1bi1wYXRocyBhcmUgYWxsb3dlZCIgMT4mMgoJICBleGl0IDEKCSAgOzsKCWVzYWMKCWNh c2UgIiR4cnBhdGggIiBpbgoJKiIgJGRpciAiKikgOzsKCSopIHhycGF0aD0iJHhycGF0aCAkZGly IiA7OwoJZXNhYwoJY29udGludWUKCTs7CgogICAgICAtc3RhdGljKQoJIyBJZiB3ZSBoYXZlIG5v IHBpY19mbGFnLCB0aGVuIHRoaXMgaXMgdGhlIHNhbWUgYXMgLWFsbC1zdGF0aWMuCglpZiB0ZXN0 IC16ICIkcGljX2ZsYWciICYmIHRlc3QgLW4gIiRsaW5rX3N0YXRpY19mbGFnIjsgdGhlbgoJICBj b21waWxlX2NvbW1hbmQ9IiRjb21waWxlX2NvbW1hbmQgJGxpbmtfc3RhdGljX2ZsYWciCgkgIGZp bmFsaXplX2NvbW1hbmQ9IiRmaW5hbGl6ZV9jb21tYW5kICRsaW5rX3N0YXRpY19mbGFnIgoJZmkK CWNvbnRpbnVlCgk7OwoKICAgICAgLXRocmVhZC1zYWZlKQoJdGhyZWFkX3NhZmU9eWVzCgljb250 aW51ZQoJOzsKCiAgICAgIC12ZXJzaW9uLWluZm8pCglwcmV2PXZpbmZvCgljb250aW51ZQoJOzsK CiAgICAgICMgU29tZSBvdGhlciBjb21waWxlciBmbGFnLgogICAgICAtKiB8ICsqKQoJIyBVbmtu b3duIGFyZ3VtZW50cyBpbiBib3RoIGZpbmFsaXplX2NvbW1hbmQgYW5kIGNvbXBpbGVfY29tbWFu ZCBuZWVkCgkjIHRvIGJlIGFlc3RoZXRpY2FsbHkgcXVvdGVkIGJlY2F1c2UgdGhleSBhcmUgZXZh bGVkIGxhdGVyLgoJYXJnPWAkZWNobyAiWCRhcmciIHwgJFhzZWQgLWUgIiRzZWRfcXVvdGVfc3Vi c3QiYAoJY2FzZSAiJGFyZyIgaW4KCSpbXFtcflwjXF5cJlwqXChcKVx7XH1cfFw7XDxcPlw/XCdc IFwJXSp8Kl0qKQoJICBhcmc9IlwiJGFyZ1wiIgoJICA7OwoJZXNhYwoJOzsKCiAgICAgICoubyB8 ICoub2JqIHwgKi5hIHwgKi5saWIpCgkjIEEgc3RhbmRhcmQgb2JqZWN0LgoJbGlib2Jqcz0iJGxp Ym9ianMgJGFyZyIKCTs7CgogICAgICAqLmxvKQoJIyBBIGxpYnJhcnkgb2JqZWN0LgoJaWYgdGVz dCAiJHByZXYiID0gZGxmaWxlczsgdGhlbgoJICBkbGZpbGVzPSIkZGxmaWxlcyAkYXJnIgoJICBp ZiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiA9IHllcyAmJiB0ZXN0ICIkZGxvcGVuIiA9IHll czsgdGhlbgoJICAgIHByZXY9CgkgICAgY29udGludWUKCSAgZWxzZQoJICAgICMgSWYgbGlidG9v bCBvYmplY3RzIGFyZSB1bnN1cHBvcnRlZCwgdGhlbiB3ZSBuZWVkIHRvIHByZWxvYWQuCgkgICAg cHJldj1kbHByZWZpbGVzCgkgIGZpCglmaQoKCWlmIHRlc3QgIiRwcmV2IiA9IGRscHJlZmlsZXM7 IHRoZW4KCSAgIyBQcmVsb2FkIHRoZSBvbGQtc3R5bGUgb2JqZWN0LgoJICBkbHByZWZpbGVzPSIk ZGxwcmVmaWxlcyAiYCRlY2hvICJYJGFyZyIgfCAkWHNlZCAtZSAiJGxvMm8iYAoJICBwcmV2PQoJ ZmkKCWxpYm9ianM9IiRsaWJvYmpzICRhcmciCgk7OwoKICAgICAgKi5sYSkKCSMgQSBsaWJ0b29s LWNvbnRyb2xsZWQgbGlicmFyeS4KCglkbG5hbWU9CglsaWJkaXI9CglsaWJyYXJ5X25hbWVzPQoJ b2xkX2xpYnJhcnk9CgoJIyBDaGVjayB0byBzZWUgdGhhdCB0aGlzIHJlYWxseSBpcyBhIGxpYnRv b2wgYXJjaGl2ZS4KCWlmIChzZWQgLWUgJzJxJyAkYXJnIHwgZWdyZXAgIl4jIEdlbmVyYXRlZCBi eSAuKiRQQUNLQUdFIikgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIDoKCWVsc2UKCSAgJGVjaG8gIiRt b2RlbmFtZTogXGAkYXJnJyBpcyBub3QgYSB2YWxpZCBsaWJ0b29sIGFyY2hpdmUiIDE+JjIKCSAg ZXhpdCAxCglmaQoKCSMgSWYgdGhlIGxpYnJhcnkgd2FzIGluc3RhbGxlZCB3aXRoIGFuIG9sZCBy ZWxlYXNlIG9mIGxpYnRvb2wsCgkjIGl0IHdpbGwgbm90IHJlZGVmaW5lIHZhcmlhYmxlIGluc3Rh bGxlZC4KCWluc3RhbGxlZD15ZXMKCgkjIFJlYWQgdGhlIC5sYSBmaWxlCgkjIElmIHRoZXJlIGlz IG5vIGRpcmVjdG9yeSBjb21wb25lbnQsIHRoZW4gYWRkIG9uZS4KCWNhc2UgIiRhcmciIGluCgkq LyogfCAqXFwqKSAuICRhcmcgOzsKCSopIC4gLi8kYXJnIDs7Cgllc2FjCgoJIyBHZXQgdGhlIG5h bWUgb2YgdGhlIGxpYnJhcnkgd2UgbGluayBhZ2FpbnN0LgoJbGlua2xpYj0KCWZvciBsIGluICRv bGRfbGlicmFyeSAkbGlicmFyeV9uYW1lczsgZG8KCSAgbGlua2xpYj0iJGwiCglkb25lCgoJaWYg dGVzdCAteiAiJGxpbmtsaWIiOyB0aGVuCgkgICRlY2hvICIkbW9kZW5hbWU6IGNhbm5vdCBmaW5k IG5hbWUgb2YgbGluayBsaWJyYXJ5IGZvciBcYCRhcmcnIiAxPiYyCgkgIGV4aXQgMQoJZmkKCgkj IEZpbmQgdGhlIHJlbGV2YW50IG9iamVjdCBkaXJlY3RvcnkgYW5kIGxpYnJhcnkgbmFtZS4KCW5h bWU9YCRlY2hvICJYJGFyZyIgfCAkWHNlZCAtZSAncyVeLiovJSUnIC1lICdzL1wubGEkLy8nIC1l ICdzL15saWIvLydgCgoJaWYgdGVzdCAiWCRpbnN0YWxsZWQiID0gWHllczsgdGhlbgoJICBkaXI9 IiRsaWJkaXIiCgllbHNlCgkgIGRpcj1gJGVjaG8gIlgkYXJnIiB8ICRYc2VkIC1lICdzJS9bXi9d KiQlJSdgCgkgIGlmIHRlc3QgIlgkZGlyIiA9ICJYJGFyZyI7IHRoZW4KCSAgICBkaXI9IiRvYmpk aXIiCgkgIGVsc2UKCSAgICBkaXI9IiRkaXIvJG9iamRpciIKCSAgZmkKCWZpCgoJaWYgdGVzdCAt biAiJGRlcGVuZGVuY3lfbGlicyI7IHRoZW4KCSAgIyBFeHRyYWN0IC1SIGFuZCAtTCBmcm9tIGRl cGVuZGVuY3lfbGlicwoJICB0ZW1wX2RlcGxpYnM9CgkgIGZvciBkZXBsaWIgaW4gJGRlcGVuZGVu Y3lfbGliczsgZG8KCSAgICBjYXNlICIkZGVwbGliIiBpbgoJICAgIC1SKikgdGVtcF94cnBhdGg9 YCRlY2hvICJYJGRlcGxpYiIgfCAkWHNlZCAtZSAncy9eLVIvLydgCgkJIGNhc2UgIiAkcnBhdGgg JHhycGF0aCAiIGluCgkJICoiICR0ZW1wX3hycGF0aCAiKikgOzsKCQkgKikgeHJwYXRoPSIkeHJw YXRoICR0ZW1wX3hycGF0aCI7OwoJCSBlc2FjOzsKCSAgICAtTCopIGNhc2UgIiRjb21waWxlX2Nv bW1hbmQgJHRlbXBfZGVwbGlicyAiIGluCgkJICoiICRkZXBsaWIgIiopIDs7CgkJICopIHRlbXBf ZGVwbGlicz0iJHRlbXBfZGVwbGlicyAkZGVwbGliIjs7CgkJIGVzYWMKCQkgdGVtcF9kaXI9YCRl Y2hvICJYJGRlcGxpYiIgfCAkWHNlZCAtZSAncy9eLUwvLydgCgkJIGNhc2UgIiAkbGliX3NlYXJj aF9wYXRoICIgaW4KCQkgKiIgJHRlbXBfZGlyICIqKSA7OwoJCSAqKSBsaWJfc2VhcmNoX3BhdGg9 IiRsaWJfc2VhcmNoX3BhdGggJHRlbXBfZGlyIjs7CgkJIGVzYWMKCQkgOzsKCSAgICAqKSB0ZW1w X2RlcGxpYnM9IiR0ZW1wX2RlcGxpYnMgJGRlcGxpYiI7OwoJICAgIGVzYWMKCSAgZG9uZQoJICBk ZXBlbmRlbmN5X2xpYnM9IiR0ZW1wX2RlcGxpYnMiCglmaQoKCWlmIHRlc3QgLXogIiRsaWJkaXIi OyB0aGVuCgkgICMgSXQgaXMgYSBsaWJ0b29sIGNvbnZlbmllbmNlIGxpYnJhcnksIHNvIGFkZCBp biBpdHMgb2JqZWN0cy4KCSAgY29udmVuaWVuY2U9IiRjb252ZW5pZW5jZSAkZGlyLyRvbGRfbGli cmFyeSIKCSAgb2xkX2NvbnZlbmllbmNlPSIkb2xkX2NvbnZlbmllbmNlICRkaXIvJG9sZF9saWJy YXJ5IgoJICBkZXBsaWJzPSIkZGVwbGlicyRkZXBlbmRlbmN5X2xpYnMiCgkgIGNvbXBpbGVfY29t bWFuZD0iJGNvbXBpbGVfY29tbWFuZCAkZGlyLyRvbGRfbGlicmFyeSRkZXBlbmRlbmN5X2xpYnMi CgkgIGZpbmFsaXplX2NvbW1hbmQ9IiRmaW5hbGl6ZV9jb21tYW5kICRkaXIvJG9sZF9saWJyYXJ5 JGRlcGVuZGVuY3lfbGlicyIKCSAgY29udGludWUKCWZpCgoJIyBUaGlzIGxpYnJhcnkgd2FzIHNw ZWNpZmllZCB3aXRoIC1kbG9wZW4uCglpZiB0ZXN0ICIkcHJldiIgPSBkbGZpbGVzOyB0aGVuCgkg IGRsZmlsZXM9IiRkbGZpbGVzICRhcmciCgkgIGlmIHRlc3QgLXogIiRkbG5hbWUiIHx8IHRlc3Qg IiRkbG9wZW4iICE9IHllcyB8fCB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiA9IG5vOyB0aGVu CgkgICAgIyBJZiB0aGVyZSBpcyBubyBkbG5hbWUsIG5vIGRsb3BlbiBzdXBwb3J0IG9yIHdlJ3Jl IGxpbmtpbmcgc3RhdGljYWxseSwKCSAgICAjIHdlIG5lZWQgdG8gcHJlbG9hZC4KCSAgICBwcmV2 PWRscHJlZmlsZXMKCSAgZWxzZQoJICAgICMgV2Ugc2hvdWxkIG5vdCBjcmVhdGUgYSBkZXBlbmRl bmN5IG9uIHRoaXMgbGlicmFyeSwgYnV0IHdlCgkgICAgIyBtYXkgbmVlZCBhbnkgbGlicmFyaWVz IGl0IHJlcXVpcmVzLgoJICAgIGNvbXBpbGVfY29tbWFuZD0iJGNvbXBpbGVfY29tbWFuZCRkZXBl bmRlbmN5X2xpYnMiCgkgICAgZmluYWxpemVfY29tbWFuZD0iJGZpbmFsaXplX2NvbW1hbmQkZGVw ZW5kZW5jeV9saWJzIgoJICAgIHByZXY9CgkgICAgY29udGludWUKCSAgZmkKCWZpCgoJIyBUaGUg bGlicmFyeSB3YXMgc3BlY2lmaWVkIHdpdGggLWRscHJlb3Blbi4KCWlmIHRlc3QgIiRwcmV2IiA9 IGRscHJlZmlsZXM7IHRoZW4KCSAgIyBQcmVmZXIgdXNpbmcgYSBzdGF0aWMgbGlicmFyeSAoc28g dGhhdCBubyBzaWxseSBfRFlOQU1JQyBzeW1ib2xzCgkgICMgYXJlIHJlcXVpcmVkIHRvIGxpbmsp LgoJICBpZiB0ZXN0IC1uICIkb2xkX2xpYnJhcnkiOyB0aGVuCgkgICAgZGxwcmVmaWxlcz0iJGRs cHJlZmlsZXMgJGRpci8kb2xkX2xpYnJhcnkiCgkgIGVsc2UKCSAgICBkbHByZWZpbGVzPSIkZGxw cmVmaWxlcyAkZGlyLyRsaW5rbGliIgoJICBmaQoJICBwcmV2PQoJZmkKCglpZiB0ZXN0IC1uICIk bGlicmFyeV9uYW1lcyIgJiYKCSAgIHsgdGVzdCAiJHByZWZlcl9zdGF0aWNfbGlicyIgPSBubyB8 fCB0ZXN0IC16ICIkb2xkX2xpYnJhcnkiOyB9OyB0aGVuCgkgIGxpbmtfYWdhaW5zdF9saWJ0b29s X2xpYnM9IiRsaW5rX2FnYWluc3RfbGlidG9vbF9saWJzICRhcmciCgkgIGlmIHRlc3QgLW4gIiRz aGxpYnBhdGhfdmFyIjsgdGhlbgoJICAgICMgTWFrZSBzdXJlIHRoZSBycGF0aCBjb250YWlucyBv bmx5IHVuaXF1ZSBkaXJlY3Rvcmllcy4KCSAgICBjYXNlICIkdGVtcF9ycGF0aCAiIGluCgkgICAg KiIgJGRpciAiKikgOzsKCSAgICAqKSB0ZW1wX3JwYXRoPSIkdGVtcF9ycGF0aCAkZGlyIiA7OwoJ ICAgIGVzYWMKCSAgZmkKCgkgICMgV2UgbmVlZCBhbiBhYnNvbHV0ZSBwYXRoLgoJICBjYXNlICIk ZGlyIiBpbgoJICBbXFwvXSB8IFtBLVphLXpdOltcXC9dKikgYWJzZGlyPSIkZGlyIiA7OwoJICAq KQoJICAgIGFic2Rpcj1gY2QgIiRkaXIiICYmIHB3ZGAKCSAgICBpZiB0ZXN0IC16ICIkYWJzZGly IjsgdGhlbgoJICAgICAgJGVjaG8gIiRtb2RlbmFtZTogd2FybmluZzogY2Fubm90IGRldGVybWlu ZSBhYnNvbHV0ZSBkaXJlY3RvcnkgbmFtZSBvZiBcYCRkaXInIiAxPiYyCgkgICAgICAkZWNobyAi JG1vZGVuYW1lOiBwYXNzaW5nIGl0IGxpdGVyYWxseSB0byB0aGUgbGlua2VyLCBhbHRob3VnaCBp dCBtaWdodCBmYWlsIiAxPiYyCgkgICAgICBhYnNkaXI9IiRkaXIiCgkgICAgZmkKCSAgICA7OwoJ ICBlc2FjCgkgIAoJICAjIFRoaXMgaXMgdGhlIG1hZ2ljIHRvIHVzZSAtcnBhdGguCgkgICMgU2tp cCBkaXJlY3RvcmllcyB0aGF0IGFyZSBpbiB0aGUgc3lzdGVtIGRlZmF1bHQgcnVuLXRpbWUKCSAg IyBzZWFyY2ggcGF0aCwgdW5sZXNzIHRoZXkgaGF2ZSBiZWVuIHJlcXVlc3RlZCB3aXRoIC1SLgoJ ICBjYXNlICIgJHN5c19saWJfZGxzZWFyY2hfcGF0aCAiIGluCgkgICoiICRhYnNkaXIgIiopIDs7 CgkgICopCgkgICAgY2FzZSAiJGNvbXBpbGVfcnBhdGggIiBpbgoJICAgICoiICRhYnNkaXIgIiop IDs7CgkgICAgKikgY29tcGlsZV9ycGF0aD0iJGNvbXBpbGVfcnBhdGggJGFic2RpciIgCgkgICAg ZXNhYwoJICAgIDs7CgkgIGVzYWMKCgkgIGNhc2UgIiAkc3lzX2xpYl9kbHNlYXJjaF9wYXRoICIg aW4KCSAgKiIgJGxpYmRpciAiKikgOzsKCSAgKikKCSAgICBjYXNlICIkZmluYWxpemVfcnBhdGgg IiBpbgoJICAgICoiICRsaWJkaXIgIiopIDs7CgkgICAgKikgZmluYWxpemVfcnBhdGg9IiRmaW5h bGl6ZV9ycGF0aCAkbGliZGlyIgoJICAgIGVzYWMKCSAgICA7OwoJICBlc2FjCgoJICBsaWJfbGlu a2VkPXllcwoJICBjYXNlICIkaGFyZGNvZGVfYWN0aW9uIiBpbgoJICBpbW1lZGlhdGUgfCB1bnN1 cHBvcnRlZCkKCSAgICBpZiB0ZXN0ICIkaGFyZGNvZGVfZGlyZWN0IiA9IG5vOyB0aGVuCgkgICAg ICBjb21waWxlX2NvbW1hbmQ9IiRjb21waWxlX2NvbW1hbmQgJGRpci8kbGlua2xpYiIKCSAgICAg IGRlcGxpYnM9IiRkZXBsaWJzICRkaXIvJGxpbmtsaWIiCgkgICAgICBjYXNlICIkaG9zdCIgaW4K CSAgICAgICotKi1jeWd3aW4qIHwgKi0qLW1pbmd3KiB8ICotKi1vczIqKQoJCWRsbHNlYXJjaGRp cj1gY2QgIiRkaXIiICYmIHB3ZCB8fCBlY2hvICIkZGlyImAKCQlpZiB0ZXN0IC1uICIkZGxsc2Vh cmNocGF0aCI7IHRoZW4KCQkgIGRsbHNlYXJjaHBhdGg9IiRkbGxzZWFyY2hwYXRoOiRkbGxzZWFy Y2hkaXIiCgkJZWxzZQoJCSAgZGxsc2VhcmNocGF0aD0iJGRsbHNlYXJjaGRpciIKCQlmaQoJCTs7 CgkgICAgICBlc2FjCgkgICAgZWxpZiB0ZXN0ICIkaGFyZGNvZGVfbWludXNfTCIgPSBubzsgdGhl bgoJICAgICAgY2FzZSAiJGhvc3QiIGluCgkgICAgICAqLSotc3Vub3MqKQoJCWNvbXBpbGVfc2hs aWJwYXRoPSIkY29tcGlsZV9zaGxpYnBhdGgkZGlyOiIKCQk7OwoJICAgICAgZXNhYwoJICAgICAg Y2FzZSAiJGNvbXBpbGVfY29tbWFuZCAiIGluCgkgICAgICAqIiAtTCRkaXIgIiopIDs7CgkgICAg ICAqKSBjb21waWxlX2NvbW1hbmQ9IiRjb21waWxlX2NvbW1hbmQgLUwkZGlyIjs7CgkgICAgICBl c2FjCgkgICAgICBjb21waWxlX2NvbW1hbmQ9IiRjb21waWxlX2NvbW1hbmQgLWwkbmFtZSIKCSAg ICAgIGRlcGxpYnM9IiRkZXBsaWJzIC1MJGRpciAtbCRuYW1lIgoJICAgIGVsaWYgdGVzdCAiJGhh cmRjb2RlX3NobGlicGF0aF92YXIiID0gbm87IHRoZW4KCSAgICAgIGNhc2UgIjokY29tcGlsZV9z aGxpYnBhdGg6IiBpbgoJICAgICAgKiI6JGRpcjoiKikgOzsKCSAgICAgICopIGNvbXBpbGVfc2hs aWJwYXRoPSIkY29tcGlsZV9zaGxpYnBhdGgkZGlyOiI7OwoJICAgICAgZXNhYwoJICAgICAgY29t cGlsZV9jb21tYW5kPSIkY29tcGlsZV9jb21tYW5kIC1sJG5hbWUiCgkgICAgICBkZXBsaWJzPSIk ZGVwbGlicyAtbCRuYW1lIgoJICAgIGVsc2UKCSAgICAgIGxpYl9saW5rZWQ9bm8KCSAgICBmaQoJ ICAgIDs7CgoJICByZWxpbmspCgkgICAgaWYgdGVzdCAiJGhhcmRjb2RlX2RpcmVjdCIgPSB5ZXM7 IHRoZW4KCSAgICAgIGNvbXBpbGVfY29tbWFuZD0iJGNvbXBpbGVfY29tbWFuZCAkYWJzZGlyLyRs aW5rbGliIgoJICAgICAgZGVwbGlicz0iJGRlcGxpYnMgJGFic2Rpci8kbGlua2xpYiIKCSAgICBl bGlmIHRlc3QgIiRoYXJkY29kZV9taW51c19MIiA9IHllczsgdGhlbgoJICAgICAgY2FzZSAiJGNv bXBpbGVfY29tbWFuZCAiIGluCgkgICAgICAqIiAtTCRhYnNkaXIgIiopIDs7CgkgICAgICAqKSBj b21waWxlX2NvbW1hbmQ9IiRjb21waWxlX2NvbW1hbmQgLUwkYWJzZGlyIjs7CgkgICAgICBlc2Fj CgkgICAgICBjb21waWxlX2NvbW1hbmQ9IiRjb21waWxlX2NvbW1hbmQgLWwkbmFtZSIKCSAgICAg IGRlcGxpYnM9IiRkZXBsaWJzIC1MJGFic2RpciAtbCRuYW1lIgoJICAgIGVsaWYgdGVzdCAiJGhh cmRjb2RlX3NobGlicGF0aF92YXIiID0geWVzOyB0aGVuCgkgICAgICBjYXNlICI6JGNvbXBpbGVf c2hsaWJwYXRoOiIgaW4KCSAgICAgICoiOiRhYnNkaXI6IiopIDs7CgkgICAgICAqKSBjb21waWxl X3NobGlicGF0aD0iJGNvbXBpbGVfc2hsaWJwYXRoJGFic2RpcjoiOzsKCSAgICAgIGVzYWMKCSAg ICAgIGNvbXBpbGVfY29tbWFuZD0iJGNvbXBpbGVfY29tbWFuZCAtbCRuYW1lIgoJICAgICAgZGVw bGlicz0iJGRlcGxpYnMgLWwkbmFtZSIKCSAgICBlbHNlCgkgICAgICBsaWJfbGlua2VkPW5vCgkg ICAgZmkKCSAgICA7OwoKCSAgKikKCSAgICBsaWJfbGlua2VkPW5vCgkgICAgOzsKCSAgZXNhYwoK CSAgaWYgdGVzdCAiJGxpYl9saW5rZWQiICE9IHllczsgdGhlbgoJICAgICRlY2hvICIkbW9kZW5h bWU6IGNvbmZpZ3VyYXRpb24gZXJyb3I6IHVuc3VwcG9ydGVkIGhhcmRjb2RlIHByb3BlcnRpZXMi CgkgICAgZXhpdCAxCgkgIGZpCgoJICAjIEZpbmFsaXplIGNvbW1hbmQgZm9yIGJvdGggaXMgc2lt cGxlOiBqdXN0IGhhcmRjb2RlIGl0LgoJICBpZiB0ZXN0ICIkaGFyZGNvZGVfZGlyZWN0IiA9IHll czsgdGhlbgoJICAgIGZpbmFsaXplX2NvbW1hbmQ9IiRmaW5hbGl6ZV9jb21tYW5kICRsaWJkaXIv JGxpbmtsaWIiCgkgIGVsaWYgdGVzdCAiJGhhcmRjb2RlX21pbnVzX0wiID0geWVzOyB0aGVuCgkg ICAgY2FzZSAiJGZpbmFsaXplX2NvbW1hbmQgIiBpbgoJICAgICoiIC1MJGxpYmRpciAiKikgOzsK CSAgICAqKSBmaW5hbGl6ZV9jb21tYW5kPSIkZmluYWxpemVfY29tbWFuZCAtTCRsaWJkaXIiOzsK CSAgICBlc2FjCgkgICAgZmluYWxpemVfY29tbWFuZD0iJGZpbmFsaXplX2NvbW1hbmQgLWwkbmFt ZSIKCSAgZWxpZiB0ZXN0ICIkaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciIgPSB5ZXM7IHRoZW4KCSAg ICBjYXNlICI6JGZpbmFsaXplX3NobGlicGF0aDoiIGluCgkgICAgKiI6JGxpYmRpcjoiKikgOzsK CSAgICAqKSBmaW5hbGl6ZV9zaGxpYnBhdGg9IiRmaW5hbGl6ZV9zaGxpYnBhdGgkbGliZGlyOiI7 OwoJICAgIGVzYWMKCSAgICBmaW5hbGl6ZV9jb21tYW5kPSIkZmluYWxpemVfY29tbWFuZCAtbCRu YW1lIgoJICBlbHNlCgkgICAgIyBXZSBjYW5ub3Qgc2VlbSB0byBoYXJkY29kZSBpdCwgZ3Vlc3Mg d2UnbGwgZmFrZSBpdC4KCSAgICBjYXNlICIkZmluYWxpemVfY29tbWFuZCAiIGluCgkgICAgKiIg LUwkZGlyICIqKSA7OwoJICAgICopIGZpbmFsaXplX2NvbW1hbmQ9IiRmaW5hbGl6ZV9jb21tYW5k IC1MJGxpYmRpciI7OwoJICAgIGVzYWMKCSAgICBmaW5hbGl6ZV9jb21tYW5kPSIkZmluYWxpemVf Y29tbWFuZCAtbCRuYW1lIgoJICBmaQoJZWxzZQoJICAjIFRyYW5zZm9ybSBkaXJlY3RseSB0byBv bGQgYXJjaGl2ZXMgaWYgd2UgZG9uJ3QgYnVpbGQgbmV3IGxpYnJhcmllcy4KCSAgaWYgdGVzdCAt biAiJHBpY19mbGFnIiAmJiB0ZXN0IC16ICIkb2xkX2xpYnJhcnkiOyB0aGVuCgkgICAgJGVjaG8g IiRtb2RlbmFtZTogY2Fubm90IGZpbmQgc3RhdGljIGxpYnJhcnkgZm9yIFxgJGFyZyciIDE+JjIK CSAgICBleGl0IDEKCSAgZmkKCgkgICMgSGVyZSB3ZSBhc3N1bWUgdGhhdCBvbmUgb2YgaGFyZGNv ZGVfZGlyZWN0IG9yIGhhcmRjb2RlX21pbnVzX0wKCSAgIyBpcyBub3QgdW5zdXBwb3J0ZWQuICBU aGlzIGlzIHZhbGlkIG9uIGFsbCBrbm93biBzdGF0aWMgYW5kCgkgICMgc2hhcmVkIHBsYXRmb3Jt cy4KCSAgaWYgdGVzdCAiJGhhcmRjb2RlX2RpcmVjdCIgIT0gdW5zdXBwb3J0ZWQ7IHRoZW4KCSAg ICB0ZXN0IC1uICIkb2xkX2xpYnJhcnkiICYmIGxpbmtsaWI9IiRvbGRfbGlicmFyeSIKCSAgICBj b21waWxlX2NvbW1hbmQ9IiRjb21waWxlX2NvbW1hbmQgJGRpci8kbGlua2xpYiIKCSAgICBmaW5h bGl6ZV9jb21tYW5kPSIkZmluYWxpemVfY29tbWFuZCAkZGlyLyRsaW5rbGliIgoJICBlbHNlCgkg ICAgY2FzZSAiJGNvbXBpbGVfY29tbWFuZCAiIGluCgkgICAgKiIgLUwkZGlyICIqKSA7OwoJICAg ICopIGNvbXBpbGVfY29tbWFuZD0iJGNvbXBpbGVfY29tbWFuZCAtTCRkaXIiOzsKCSAgICBlc2Fj CgkgICAgY29tcGlsZV9jb21tYW5kPSIkY29tcGlsZV9jb21tYW5kIC1sJG5hbWUiCgkgICAgY2Fz ZSAiJGZpbmFsaXplX2NvbW1hbmQgIiBpbgoJICAgICoiIC1MJGRpciAiKikgOzsKCSAgICAqKSBm aW5hbGl6ZV9jb21tYW5kPSIkZmluYWxpemVfY29tbWFuZCAtTCRkaXIiOzsKCSAgICBlc2FjCgkg ICAgZmluYWxpemVfY29tbWFuZD0iJGZpbmFsaXplX2NvbW1hbmQgLWwkbmFtZSIKCSAgZmkKCWZp CgoJIyBBZGQgaW4gYW55IGxpYnJhcmllcyB0aGF0IHRoaXMgb25lIGRlcGVuZHMgdXBvbi4KCWNv bXBpbGVfY29tbWFuZD0iJGNvbXBpbGVfY29tbWFuZCRkZXBlbmRlbmN5X2xpYnMiCglmaW5hbGl6 ZV9jb21tYW5kPSIkZmluYWxpemVfY29tbWFuZCRkZXBlbmRlbmN5X2xpYnMiCgljb250aW51ZQoJ OzsKCiAgICAgICMgU29tZSBvdGhlciBjb21waWxlciBhcmd1bWVudC4KICAgICAgKikKCSMgVW5r bm93biBhcmd1bWVudHMgaW4gYm90aCBmaW5hbGl6ZV9jb21tYW5kIGFuZCBjb21waWxlX2NvbW1h bmQgbmVlZAoJIyB0byBiZSBhZXN0aGV0aWNhbGx5IHF1b3RlZCBiZWNhdXNlIHRoZXkgYXJlIGV2 YWxlZCBsYXRlci4KCWFyZz1gJGVjaG8gIlgkYXJnIiB8ICRYc2VkIC1lICIkc2VkX3F1b3RlX3N1 YnN0ImAKCWNhc2UgIiRhcmciIGluCgkqW1xbXH5cI1xeXCZcKlwoXClce1x9XHxcO1w8XD5cP1wn XCBcCV0qfCpdKikKCSAgYXJnPSJcIiRhcmdcIiIKCSAgOzsKCWVzYWMKCTs7CiAgICAgIGVzYWMK CiAgICAgICMgTm93IGFjdHVhbGx5IHN1YnN0aXR1dGUgdGhlIGFyZ3VtZW50IGludG8gdGhlIGNv bW1hbmRzLgogICAgICBpZiB0ZXN0IC1uICIkYXJnIjsgdGhlbgoJY29tcGlsZV9jb21tYW5kPSIk Y29tcGlsZV9jb21tYW5kICRhcmciCglmaW5hbGl6ZV9jb21tYW5kPSIkZmluYWxpemVfY29tbWFu ZCAkYXJnIgogICAgICBmaQogICAgZG9uZQoKICAgIGlmIHRlc3QgLW4gIiRwcmV2IjsgdGhlbgog ICAgICAkZWNobyAiJG1vZGVuYW1lOiB0aGUgXGAkcHJldmFyZycgb3B0aW9uIHJlcXVpcmVzIGFu IGFyZ3VtZW50IiAxPiYyCiAgICAgICRlY2hvICIkaGVscCIgMT4mMgogICAgICBleGl0IDEKICAg IGZpCgogICAgaWYgdGVzdCAiJGV4cG9ydF9keW5hbWljIiA9IHllcyAmJiB0ZXN0IC1uICIkZXhw b3J0X2R5bmFtaWNfZmxhZ19zcGVjIjsgdGhlbgogICAgICBldmFsIGFyZz1cIiRleHBvcnRfZHlu YW1pY19mbGFnX3NwZWNcIgogICAgICBjb21waWxlX2NvbW1hbmQ9IiRjb21waWxlX2NvbW1hbmQg JGFyZyIKICAgICAgZmluYWxpemVfY29tbWFuZD0iJGZpbmFsaXplX2NvbW1hbmQgJGFyZyIKICAg IGZpCgogICAgb2xkbGlicz0KICAgICMgY2FsY3VsYXRlIHRoZSBuYW1lIG9mIHRoZSBmaWxlLCB3 aXRob3V0IGl0cyBkaXJlY3RvcnkKICAgIG91dHB1dG5hbWU9YCRlY2hvICJYJG91dHB1dCIgfCAk WHNlZCAtZSAncyVeLiovJSUnYAogICAgbGlib2Jqc19zYXZlPSIkbGlib2JqcyIKCiAgICBjYXNl ICIkb3V0cHV0IiBpbgogICAgIiIpCiAgICAgICRlY2hvICIkbW9kZW5hbWU6IHlvdSBtdXN0IHNw ZWNpZnkgYW4gb3V0cHV0IGZpbGUiIDE+JjIKICAgICAgJGVjaG8gIiRoZWxwIiAxPiYyCiAgICAg IGV4aXQgMQogICAgICA7OwoKICAgICouYSB8ICoubGliKQogICAgICBpZiB0ZXN0IC1uICIkbGlu a19hZ2FpbnN0X2xpYnRvb2xfbGlicyI7IHRoZW4KCSRlY2hvICIkbW9kZW5hbWU6IGVycm9yOiBj YW5ub3QgbGluayBsaWJ0b29sIGxpYnJhcmllcyBpbnRvIGFyY2hpdmVzIiAxPiYyCglleGl0IDEK ICAgICAgZmkKCiAgICAgIGlmIHRlc3QgLW4gIiRkZXBsaWJzIjsgdGhlbgoJJGVjaG8gIiRtb2Rl bmFtZTogd2FybmluZzogXGAtbCcgYW5kIFxgLUwnIGFyZSBpZ25vcmVkIGZvciBhcmNoaXZlcyIg MT4mMgogICAgICBmaQoKICAgICAgaWYgdGVzdCAtbiAiJGRsZmlsZXMkZGxwcmVmaWxlcyIgfHwg dGVzdCAiJGRsc2VsZiIgIT0gbm87IHRoZW4KCSRlY2hvICIkbW9kZW5hbWU6IHdhcm5pbmc6IFxg LWRsb3BlbicgaXMgaWdub3JlZCBmb3IgYXJjaGl2ZXMiIDE+JjIKICAgICAgZmkKCiAgICAgIGlm IHRlc3QgLW4gIiRycGF0aCI7IHRoZW4KCSRlY2hvICIkbW9kZW5hbWU6IHdhcm5pbmc6IFxgLXJw YXRoJyBpcyBpZ25vcmVkIGZvciBhcmNoaXZlcyIgMT4mMgogICAgICBmaQoKICAgICAgaWYgdGVz dCAtbiAiJHhycGF0aCI7IHRoZW4KCSRlY2hvICIkbW9kZW5hbWU6IHdhcm5pbmc6IFxgLVInIGlz IGlnbm9yZWQgZm9yIGFyY2hpdmVzIiAxPiYyCiAgICAgIGZpCgogICAgICBpZiB0ZXN0IC1uICIk dmluZm8iOyB0aGVuCgkkZWNobyAiJG1vZGVuYW1lOiB3YXJuaW5nOiBcYC12ZXJzaW9uLWluZm8n IGlzIGlnbm9yZWQgZm9yIGFyY2hpdmVzIiAxPiYyCiAgICAgIGZpCgogICAgICBpZiB0ZXN0IC1u ICIkcmVsZWFzZSI7IHRoZW4KCSRlY2hvICIkbW9kZW5hbWU6IHdhcm5pbmc6IFxgLXJlbGVhc2Un IGlzIGlnbm9yZWQgZm9yIGFyY2hpdmVzIiAxPiYyCiAgICAgIGZpCgogICAgICBpZiB0ZXN0IC1u ICIkZXhwb3J0X3N5bWJvbHMiIHx8IHRlc3QgLW4gIiRleHBvcnRfc3ltYm9sc19yZWdleCI7IHRo ZW4KCSRlY2hvICIkbW9kZW5hbWU6IHdhcm5pbmc6IFxgLWV4cG9ydC1zeW1ib2xzJyBpcyBpZ25v cmVkIGZvciBhcmNoaXZlcyIgMT4mMgogICAgICBmaQoKICAgICAgIyBOb3cgc2V0IHRoZSB2YXJp YWJsZXMgZm9yIGJ1aWxkaW5nIG9sZCBsaWJyYXJpZXMuCiAgICAgIGJ1aWxkX2xpYnRvb2xfbGli cz1ubwogICAgICBvbGRsaWJzPSIkb3V0cHV0IgogICAgICA7OwoKICAgICoubGEpCiAgICAgICMg TWFrZSBzdXJlIHdlIG9ubHkgZ2VuZXJhdGUgbGlicmFyaWVzIG9mIHRoZSBmb3JtIGBsaWJOQU1F LmxhJy4KICAgICAgY2FzZSAiJG91dHB1dG5hbWUiIGluCiAgICAgIGxpYiopCgluYW1lPWAkZWNo byAiWCRvdXRwdXRuYW1lIiB8ICRYc2VkIC1lICdzL1wubGEkLy8nIC1lICdzL15saWIvLydgCgll dmFsIGxpYm5hbWU9XCIkbGlibmFtZV9zcGVjXCIKCTs7CiAgICAgICopCglpZiB0ZXN0ICIkbW9k dWxlIiA9IG5vOyB0aGVuCgkgICRlY2hvICIkbW9kZW5hbWU6IGxpYnRvb2wgbGlicmFyeSBcYCRv dXRwdXQnIG11c3QgYmVnaW4gd2l0aCBcYGxpYiciIDE+JjIKCSAgJGVjaG8gIiRoZWxwIiAxPiYy CgkgIGV4aXQgMQoJZmkKCWlmIHRlc3QgIiRuZWVkX2xpYl9wcmVmaXgiICE9IG5vOyB0aGVuCgkg ICMgQWRkIHRoZSAibGliIiBwcmVmaXggZm9yIG1vZHVsZXMgaWYgcmVxdWlyZWQKCSAgbmFtZT1g JGVjaG8gIlgkb3V0cHV0bmFtZSIgfCAkWHNlZCAtZSAncy9cLmxhJC8vJ2AKCSAgZXZhbCBsaWJu YW1lPVwiJGxpYm5hbWVfc3BlY1wiCgllbHNlCgkgIGxpYm5hbWU9YCRlY2hvICJYJG91dHB1dG5h bWUiIHwgJFhzZWQgLWUgJ3MvXC5sYSQvLydgCglmaQoJOzsKICAgICAgZXNhYwoKICAgICAgb3V0 cHV0X29iamRpcj1gJGVjaG8gIlgkb3V0cHV0IiB8ICRYc2VkIC1lICdzJS9bXi9dKiQlJSdgCiAg ICAgIGlmIHRlc3QgIlgkb3V0cHV0X29iamRpciIgPSAiWCRvdXRwdXQiOyB0aGVuCglvdXRwdXRf b2JqZGlyPSIkb2JqZGlyIgogICAgICBlbHNlCglvdXRwdXRfb2JqZGlyPSIkb3V0cHV0X29iamRp ci8kb2JqZGlyIgogICAgICBmaQoKICAgICAgaWYgdGVzdCAtbiAiJG9ianMiOyB0aGVuCgkkZWNo byAiJG1vZGVuYW1lOiBjYW5ub3QgYnVpbGQgbGlidG9vbCBsaWJyYXJ5IFxgJG91dHB1dCcgZnJv bSBub24tbGlidG9vbCBvYmplY3RzOiRvYmpzIiAyPiYxCglleGl0IDEKICAgICAgZmkKCiAgICAg IGlmIHRlc3QgLW4gIiRkbGZpbGVzJGRscHJlZmlsZXMiIHx8IHRlc3QgIiRkbHNlbGYiICE9IG5v OyB0aGVuCgkkZWNobyAiJG1vZGVuYW1lOiB3YXJuaW5nOiBcYC1kbG9wZW4nIGlzIGlnbm9yZWQg Zm9yIGxpYnRvb2wgbGlicmFyaWVzIiAxPiYyCiAgICAgIGZpCgogICAgICBzZXQgZHVtbXkgJHJw YXRoCiAgICAgIGlmIHRlc3QgJCMgLWd0IDI7IHRoZW4KCSRlY2hvICIkbW9kZW5hbWU6IHdhcm5p bmc6IGlnbm9yaW5nIG11bHRpcGxlIFxgLXJwYXRoJ3MgZm9yIGEgbGlidG9vbCBsaWJyYXJ5IiAx PiYyCiAgICAgIGZpCiAgICAgIGluc3RhbGxfbGliZGlyPSIkMiIKCiAgICAgIG9sZGxpYnM9CiAg ICAgIGlmIHRlc3QgLXogIiRycGF0aCI7IHRoZW4KCWlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xp YnMiID0geWVzOyB0aGVuCgkgICMgQnVpbGRpbmcgYSBsaWJ0b29sIGNvbnZlbmllbmNlIGxpYnJh cnkuCgkgIGxpYmV4dD1hbAoJICBvbGRsaWJzPSIkb3V0cHV0X29iamRpci8kbGlibmFtZS4kbGli ZXh0ICRvbGRsaWJzIgoJICBidWlsZF9saWJ0b29sX2xpYnM9Y29udmVuaWVuY2UKCSAgYnVpbGRf b2xkX2xpYnM9eWVzCglmaQoJZGVwZW5kZW5jeV9saWJzPSIkZGVwbGlicyIKCglpZiB0ZXN0IC1u ICIkdmluZm8iOyB0aGVuCgkgICRlY2hvICIkbW9kZW5hbWU6IHdhcm5pbmc6IFxgLXZlcnNpb24t aW5mbycgaXMgaWdub3JlZCBmb3IgY29udmVuaWVuY2UgbGlicmFyaWVzIiAxPiYyCglmaQoKCWlm IHRlc3QgLW4gIiRyZWxlYXNlIjsgdGhlbgoJICAkZWNobyAiJG1vZGVuYW1lOiB3YXJuaW5nOiBc YC1yZWxlYXNlJyBpcyBpZ25vcmVkIGZvciBjb252ZW5pZW5jZSBsaWJyYXJpZXMiIDE+JjIKCWZp CiAgICAgIGVsc2UKCgkjIFBhcnNlIHRoZSB2ZXJzaW9uIGluZm9ybWF0aW9uIGFyZ3VtZW50LgoJ SUZTPSIke0lGUz0gCX0iOyBzYXZlX2lmcz0iJElGUyI7IElGUz0nOicKCXNldCBkdW1teSAkdmlu Zm8gMCAwIDAKCUlGUz0iJHNhdmVfaWZzIgoKCWlmIHRlc3QgLW4gIiQ4IjsgdGhlbgoJICAkZWNo byAiJG1vZGVuYW1lOiB0b28gbWFueSBwYXJhbWV0ZXJzIHRvIFxgLXZlcnNpb24taW5mbyciIDE+ JjIKCSAgJGVjaG8gIiRoZWxwIiAxPiYyCgkgIGV4aXQgMQoJZmkKCgljdXJyZW50PSIkMiIKCXJl dmlzaW9uPSIkMyIKCWFnZT0iJDQiCgoJIyBDaGVjayB0aGF0IGVhY2ggb2YgdGhlIHRoaW5ncyBh cmUgdmFsaWQgbnVtYmVycy4KCWNhc2UgIiRjdXJyZW50IiBpbgoJMCB8IFsxLTldIHwgWzEtOV1b MC05XSopIDs7CgkqKQoJICAkZWNobyAiJG1vZGVuYW1lOiBDVVJSRU5UIFxgJGN1cnJlbnQnIGlz IG5vdCBhIG5vbm5lZ2F0aXZlIGludGVnZXIiIDE+JjIKCSAgJGVjaG8gIiRtb2RlbmFtZTogXGAk dmluZm8nIGlzIG5vdCB2YWxpZCB2ZXJzaW9uIGluZm9ybWF0aW9uIiAxPiYyCgkgIGV4aXQgMQoJ ICA7OwoJZXNhYwoKCWNhc2UgIiRyZXZpc2lvbiIgaW4KCTAgfCBbMS05XSB8IFsxLTldWzAtOV0q KSA7OwoJKikKCSAgJGVjaG8gIiRtb2RlbmFtZTogUkVWSVNJT04gXGAkcmV2aXNpb24nIGlzIG5v dCBhIG5vbm5lZ2F0aXZlIGludGVnZXIiIDE+JjIKCSAgJGVjaG8gIiRtb2RlbmFtZTogXGAkdmlu Zm8nIGlzIG5vdCB2YWxpZCB2ZXJzaW9uIGluZm9ybWF0aW9uIiAxPiYyCgkgIGV4aXQgMQoJICA7 OwoJZXNhYwoKCWNhc2UgIiRhZ2UiIGluCgkwIHwgWzEtOV0gfCBbMS05XVswLTldKikgOzsKCSop CgkgICRlY2hvICIkbW9kZW5hbWU6IEFHRSBcYCRhZ2UnIGlzIG5vdCBhIG5vbm5lZ2F0aXZlIGlu dGVnZXIiIDE+JjIKCSAgJGVjaG8gIiRtb2RlbmFtZTogXGAkdmluZm8nIGlzIG5vdCB2YWxpZCB2 ZXJzaW9uIGluZm9ybWF0aW9uIiAxPiYyCgkgIGV4aXQgMQoJICA7OwoJZXNhYwoKCWlmIHRlc3Qg JGFnZSAtZ3QgJGN1cnJlbnQ7IHRoZW4KCSAgJGVjaG8gIiRtb2RlbmFtZTogQUdFIFxgJGFnZScg aXMgZ3JlYXRlciB0aGFuIHRoZSBjdXJyZW50IGludGVyZmFjZSBudW1iZXIgXGAkY3VycmVudCci IDE+JjIKCSAgJGVjaG8gIiRtb2RlbmFtZTogXGAkdmluZm8nIGlzIG5vdCB2YWxpZCB2ZXJzaW9u IGluZm9ybWF0aW9uIiAxPiYyCgkgIGV4aXQgMQoJZmkKCgkjIENhbGN1bGF0ZSB0aGUgdmVyc2lv biB2YXJpYWJsZXMuCgltYWpvcj0KCXZlcnN1ZmZpeD0KCXZlcnN0cmluZz0KCWNhc2UgIiR2ZXJz aW9uX3R5cGUiIGluCglub25lKSA7OwoKCWlyaXgpCgkgIG1ham9yPWBleHByICRjdXJyZW50IC0g JGFnZSArIDFgCgkgIHZlcnN1ZmZpeD0iJG1ham9yLiRyZXZpc2lvbiIKCSAgdmVyc3RyaW5nPSJz Z2kkbWFqb3IuJHJldmlzaW9uIgoKCSAgIyBBZGQgaW4gYWxsIHRoZSBpbnRlcmZhY2VzIHRoYXQg d2UgYXJlIGNvbXBhdGlibGUgd2l0aC4KCSAgbG9vcD0kcmV2aXNpb24KCSAgd2hpbGUgdGVzdCAk bG9vcCAhPSAwOyBkbwoJICAgIGlmYWNlPWBleHByICRyZXZpc2lvbiAtICRsb29wYAoJICAgIGxv b3A9YGV4cHIgJGxvb3AgLSAxYAoJICAgIHZlcnN0cmluZz0ic2dpJG1ham9yLiRpZmFjZTokdmVy c3RyaW5nIgoJICBkb25lCgkgIDs7CgoJbGludXgpCgkgIG1ham9yPS5gZXhwciAkY3VycmVudCAt ICRhZ2VgCgkgIHZlcnN1ZmZpeD0iJG1ham9yLiRhZ2UuJHJldmlzaW9uIgoJICA7OwoKCW9zZikK CSAgbWFqb3I9YGV4cHIgJGN1cnJlbnQgLSAkYWdlYAoJICB2ZXJzdWZmaXg9Ii4kY3VycmVudC4k YWdlLiRyZXZpc2lvbiIKCSAgdmVyc3RyaW5nPSIkY3VycmVudC4kYWdlLiRyZXZpc2lvbiIKCgkg ICMgQWRkIGluIGFsbCB0aGUgaW50ZXJmYWNlcyB0aGF0IHdlIGFyZSBjb21wYXRpYmxlIHdpdGgu CgkgIGxvb3A9JGFnZQoJICB3aGlsZSB0ZXN0ICRsb29wICE9IDA7IGRvCgkgICAgaWZhY2U9YGV4 cHIgJGN1cnJlbnQgLSAkbG9vcGAKCSAgICBsb29wPWBleHByICRsb29wIC0gMWAKCSAgICB2ZXJz dHJpbmc9IiR2ZXJzdHJpbmc6JHtpZmFjZX0uMCIKCSAgZG9uZQoKCSAgIyBNYWtlIGV4ZWN1dGFi bGVzIGRlcGVuZCBvbiBvdXIgY3VycmVudCB2ZXJzaW9uLgoJICB2ZXJzdHJpbmc9IiR2ZXJzdHJp bmc6JHtjdXJyZW50fS4wIgoJICA7OwoKCXN1bm9zKQoJICBtYWpvcj0iLiRjdXJyZW50IgoJICB2 ZXJzdWZmaXg9Ii4kY3VycmVudC4kcmV2aXNpb24iCgkgIDs7CgoJZnJlZWJzZC1hb3V0KQoJICBt YWpvcj0iLiRjdXJyZW50IgoJICB2ZXJzdWZmaXg9Ii4kY3VycmVudC4kcmV2aXNpb24iOwoJICA7 OwoKCWZyZWVic2QtZWxmKQoJICBtYWpvcj0iLiRjdXJyZW50IgoJICB2ZXJzdWZmaXg9Ii4kY3Vy cmVudCI7CgkgIDs7CgoJd2luZG93cykKCSAgIyBMaWtlIExpbnV4LCBidXQgd2l0aCAnLScgcmF0 aGVyIHRoYW4gJy4nLCBzaW5jZSB3ZSBvbmx5CgkgICMgd2FudCBvbmUgZXh0ZW5zaW9uIG9uIFdp bmRvd3MgOTUuCgkgIG1ham9yPWBleHByICRjdXJyZW50IC0gJGFnZWAKCSAgdmVyc3VmZml4PSIt JG1ham9yLSRhZ2UtJHJldmlzaW9uIgoJICA7OwoKCSopCgkgICRlY2hvICIkbW9kZW5hbWU6IHVu a25vd24gbGlicmFyeSB2ZXJzaW9uIHR5cGUgXGAkdmVyc2lvbl90eXBlJyIgMT4mMgoJICBlY2hv ICJGYXRhbCBjb25maWd1cmF0aW9uIGVycm9yLiAgU2VlIHRoZSAkUEFDS0FHRSBkb2NzIGZvciBt b3JlIGluZm9ybWF0aW9uLiIgMT4mMgoJICBleGl0IDEKCSAgOzsKCWVzYWMKCgkjIENsZWFyIHRo ZSB2ZXJzaW9uIGluZm8gaWYgd2UgZGVmYXVsdGVkLCBhbmQgdGhleSBzcGVjaWZpZWQgYSByZWxl YXNlLgoJaWYgdGVzdCAteiAiJHZpbmZvIiAmJiB0ZXN0IC1uICIkcmVsZWFzZSI7IHRoZW4KCSAg bWFqb3I9CgkgIHZlcnN0cmluZz0iMC4wIgoJICBpZiB0ZXN0ICIkbmVlZF92ZXJzaW9uIiA9IG5v OyB0aGVuCgkgICAgdmVyc3VmZml4PQoJICBlbHNlCgkgICAgdmVyc3VmZml4PSIuMC4wIgoJICBm aQoJZmkKCgkjIFJlbW92ZSB2ZXJzaW9uIGluZm8gZnJvbSBuYW1lIGlmIHZlcnNpb25pbmcgc2hv dWxkIGJlIGF2b2lkZWQKCWlmIHRlc3QgIiRhdm9pZF92ZXJzaW9uIiA9IHllcyAmJiB0ZXN0ICIk bmVlZF92ZXJzaW9uIiA9IG5vOyB0aGVuCgkgIG1ham9yPQoJICB2ZXJzdWZmaXg9CgkgIHZlcnN0 cmluZz0iIgoJZmkKCQoJIyBDaGVjayB0byBzZWUgaWYgdGhlIGFyY2hpdmUgd2lsbCBoYXZlIHVu ZGVmaW5lZCBzeW1ib2xzLgoJaWYgdGVzdCAiJGFsbG93X3VuZGVmaW5lZCIgPSB5ZXM7IHRoZW4K CSAgaWYgdGVzdCAiJGFsbG93X3VuZGVmaW5lZF9mbGFnIiA9IHVuc3VwcG9ydGVkOyB0aGVuCgkg ICAgJGVjaG8gIiRtb2RlbmFtZTogd2FybmluZzogdW5kZWZpbmVkIHN5bWJvbHMgbm90IGFsbG93 ZWQgaW4gJGhvc3Qgc2hhcmVkIGxpYnJhcmllcyIgMT4mMgoJICAgIGJ1aWxkX2xpYnRvb2xfbGli cz1ubwoJICAgIGJ1aWxkX29sZF9saWJzPXllcwoJICBmaQoJZWxzZQoJICAjIERvbid0IGFsbG93 IHVuZGVmaW5lZCBzeW1ib2xzLgoJICBhbGxvd191bmRlZmluZWRfZmxhZz0iJG5vX3VuZGVmaW5l ZF9mbGFnIgoJZmkKCglkZXBlbmRlbmN5X2xpYnM9IiRkZXBsaWJzIgoJY2FzZSAiJGhvc3QiIGlu CgkqLSotY3lnd2luKiB8ICotKi1taW5ndyogfCAqLSotb3MyKiB8ICotKi1iZW9zKikKCSAgIyB0 aGVzZSBzeXN0ZW1zIGRvbid0IGFjdHVhbGx5IGhhdmUgYSBjIGxpYnJhcnkgKGFzIHN1Y2gpIQoJ ICA7OwogICAgICAgICotKi1yaGFwc29keSopCgkgICMgcmhhcHNvZHkgaXMgYSBsaXR0bGUgb2Rk Li4uCgkgIGRlcGxpYnM9IiRkZXBsaWJzIC1mcmFtZXdvcmsgU3lzdGVtIgoJICA7OwoJKi0qLWZy ZWVic2QqKQoJICAjIEZyZWVCU0QgZG9lc24ndCBuZWVkIHRoaXMuLi4KCSAgOzsKCSopCgkgICMg QWRkIGxpYmMgdG8gZGVwbGlicyBvbiBhbGwgb3RoZXIgc3lzdGVtcy4KCSAgZGVwbGlicz0iJGRl cGxpYnMgLWxjIgoJICA7OwoJZXNhYwogICAgICBmaQoKICAgICAgaWYgdGVzdCAtbiAiJHJwYXRo JHhycGF0aCI7IHRoZW4KCSMgSWYgdGhlIHVzZXIgc3BlY2lmaWVkIGFueSBycGF0aCBmbGFncywg dGhlbiBhZGQgdGhlbS4KCWZvciBsaWJkaXIgaW4gJHJwYXRoICR4cnBhdGg7IGRvCgkgICMgVGhp cyBpcyB0aGUgbWFnaWMgdG8gdXNlIC1ycGF0aC4KCSAgY2FzZSAiJGNvbXBpbGVfcnBhdGggIiBp bgoJICAqIiAkbGliZGlyICIqKSA7OwoJICAqKSBjb21waWxlX3JwYXRoPSIkY29tcGlsZV9ycGF0 aCAkbGliZGlyIiA7OwoJICBlc2FjCgkgIGNhc2UgIiRmaW5hbGl6ZV9ycGF0aCAiIGluCgkgICoi ICRsaWJkaXIgIiopIDs7CgkgICopIGZpbmFsaXplX3JwYXRoPSIkZmluYWxpemVfcnBhdGggJGxp YmRpciIgOzsKCSAgZXNhYwoJZG9uZQogICAgICBmaQoKICAgICAgIyBOb3cgaGFyZGNvZGUgdGhl IGxpYnJhcnkgcGF0aHMKICAgICAgcnBhdGg9CiAgICAgIGhhcmRjb2RlX2xpYmRpcnM9CiAgICAg IGZvciBsaWJkaXIgaW4gJGNvbXBpbGVfcnBhdGg7IGRvCglpZiB0ZXN0IC1uICIkaGFyZGNvZGVf bGliZGlyX2ZsYWdfc3BlYyI7IHRoZW4KCSAgaWYgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9z ZXBhcmF0b3IiOyB0aGVuCgkgICAgaWYgdGVzdCAteiAiJGhhcmRjb2RlX2xpYmRpcnMiOyB0aGVu CgkgICAgICBoYXJkY29kZV9saWJkaXJzPSIkbGliZGlyIgoJICAgIGVsc2UKCSAgICAgICMgSnVz dCBhY2N1bXVsYXRlIHRoZSB1bmlxdWUgbGliZGlycy4KCSAgICAgIGNhc2UgIiRoYXJkY29kZV9s aWJkaXJfc2VwYXJhdG9yJGhhcmRjb2RlX2xpYmRpcnMkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRv ciIgaW4KCSAgICAgICoiJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IkbGliZGlyJGhhcmRjb2Rl X2xpYmRpcl9zZXBhcmF0b3IiKikKCQk7OwoJICAgICAgKikKCQloYXJkY29kZV9saWJkaXJzPSIk aGFyZGNvZGVfbGliZGlycyRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yJGxpYmRpciIKCQk7OwoJ ICAgICAgZXNhYwoJICAgIGZpCgkgIGVsc2UKCSAgICBldmFsIGZsYWc9XCIkaGFyZGNvZGVfbGli ZGlyX2ZsYWdfc3BlY1wiCgkgICAgcnBhdGg9IiRycGF0aCAkZmxhZyIKCSAgZmkKCWVsaWYgdGVz dCAtbiAiJHJ1bnBhdGhfdmFyIjsgdGhlbgoJICBjYXNlICIkcGVybV9ycGF0aCAiIGluCgkgICoi ICRsaWJkaXIgIiopIDs7CgkgICopIHBlcm1fcnBhdGg9IiRwZXJtX3JwYXRoICRsaWJkaXIiIDs7 CgkgIGVzYWMKCWZpCiAgICAgIGRvbmUKICAgICAgIyBTdWJzdGl0dXRlIHRoZSBoYXJkY29kZWQg bGliZGlycyBpbnRvIHRoZSBycGF0aC4KICAgICAgaWYgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRp cl9zZXBhcmF0b3IiICYmCgkgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcnMiOyB0aGVuCglsaWJk aXI9IiRoYXJkY29kZV9saWJkaXJzIgoJZXZhbCBycGF0aD1cIiAkaGFyZGNvZGVfbGliZGlyX2Zs YWdfc3BlY1wiCiAgICAgIGZpCiAgICAgIGNvbXBpbGVfcnBhdGg9IiRycGF0aCIKCiAgICAgIHJw YXRoPQogICAgICBoYXJkY29kZV9saWJkaXJzPQogICAgICBmb3IgbGliZGlyIGluICRmaW5hbGl6 ZV9ycGF0aDsgZG8KCWlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjIjsgdGhl bgoJICBpZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciI7IHRoZW4KCSAgICBp ZiB0ZXN0IC16ICIkaGFyZGNvZGVfbGliZGlycyI7IHRoZW4KCSAgICAgIGhhcmRjb2RlX2xpYmRp cnM9IiRsaWJkaXIiCgkgICAgZWxzZQoJICAgICAgIyBKdXN0IGFjY3VtdWxhdGUgdGhlIHVuaXF1 ZSBsaWJkaXJzLgoJICAgICAgY2FzZSAiJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IkaGFyZGNv ZGVfbGliZGlycyRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIiBpbgoJICAgICAgKiIkaGFyZGNv ZGVfbGliZGlyX3NlcGFyYXRvciRsaWJkaXIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciIqKQoJ CTs7CgkgICAgICAqKQoJCWhhcmRjb2RlX2xpYmRpcnM9IiRoYXJkY29kZV9saWJkaXJzJGhhcmRj b2RlX2xpYmRpcl9zZXBhcmF0b3IkbGliZGlyIgoJCTs7CgkgICAgICBlc2FjCgkgICAgZmkKCSAg ZWxzZQoJICAgIGV2YWwgZmxhZz1cIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjXCIKCSAgICBy cGF0aD0iJHJwYXRoICRmbGFnIgoJICBmaQoJZWxpZiB0ZXN0IC1uICIkcnVucGF0aF92YXIiOyB0 aGVuCgkgIGNhc2UgIiRmaW5hbGl6ZV9wZXJtX3JwYXRoICIgaW4KCSAgKiIgJGxpYmRpciAiKikg OzsKCSAgKikgZmluYWxpemVfcGVybV9ycGF0aD0iJGZpbmFsaXplX3Blcm1fcnBhdGggJGxpYmRp ciIgOzsKCSAgZXNhYwoJZmkKICAgICAgZG9uZQogICAgICAjIFN1YnN0aXR1dGUgdGhlIGhhcmRj b2RlZCBsaWJkaXJzIGludG8gdGhlIHJwYXRoLgogICAgICBpZiB0ZXN0IC1uICIkaGFyZGNvZGVf bGliZGlyX3NlcGFyYXRvciIgJiYKCSB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlycyI7IHRoZW4K CWxpYmRpcj0iJGhhcmRjb2RlX2xpYmRpcnMiCglldmFsIHJwYXRoPVwiICRoYXJkY29kZV9saWJk aXJfZmxhZ19zcGVjXCIKICAgICAgZmkKICAgICAgZmluYWxpemVfcnBhdGg9IiRycGF0aCIKCiAg ICAgICMgQ3JlYXRlIHRoZSBvdXRwdXQgZGlyZWN0b3J5LCBvciByZW1vdmUgb3VyIG91dHB1dHMg aWYgd2UgbmVlZCB0by4KICAgICAgaWYgdGVzdCAtZCAkb3V0cHV0X29iamRpcjsgdGhlbgoJJHNo b3cgIiR7cm19ciAkb3V0cHV0X29iamRpci8kb3V0cHV0bmFtZSAkb3V0cHV0X29iamRpci8kbGli bmFtZS4qICRvdXRwdXRfb2JqZGlyLyR7bGlibmFtZX0ke3JlbGVhc2V9LioiCgkkcnVuICR7cm19 ciAkb3V0cHV0X29iamRpci8kb3V0cHV0bmFtZSAkb3V0cHV0X29iamRpci8kbGlibmFtZS4qICRv dXRwdXRfb2JqZGlyLyR7bGlibmFtZX0ke3JlbGVhc2V9LioKICAgICAgZWxzZQoJJHNob3cgIiRt a2RpciAkb3V0cHV0X29iamRpciIKCSRydW4gJG1rZGlyICRvdXRwdXRfb2JqZGlyCglzdGF0dXM9 JD8KCWlmIHRlc3QgJHN0YXR1cyAtbmUgMCAmJiB0ZXN0ICEgLWQgJG91dHB1dF9vYmpkaXI7IHRo ZW4KCSAgZXhpdCAkc3RhdHVzCglmaQogICAgICBmaQoKICAgICAgIyBOb3cgc2V0IHRoZSB2YXJp YWJsZXMgZm9yIGJ1aWxkaW5nIG9sZCBsaWJyYXJpZXMuCiAgICAgIGlmIHRlc3QgIiRidWlsZF9v bGRfbGlicyIgPSB5ZXMgJiYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgIT0gY29udmVuaWVu Y2UgOyB0aGVuCglpZiB0ZXN0ICIkcmVsZWFzZV9zdWZmaXgiID0gYWxsOyB0aGVuCgkgb2xkbGli cz0iJG9sZGxpYnMgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUkcmVsZWFzZS4kbGliZXh0IgoJZWxz ZQoJb2xkbGlicz0iJG9sZGxpYnMgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuJGxpYmV4dCIKCWZp CgoJIyBUcmFuc2Zvcm0gLmxvIGZpbGVzIHRvIC5vIGZpbGVzLgoJb2xkb2Jqcz0iJG9ianMgImAk ZWNobyAiWCRsaWJvYmpzIiB8ICRTUDJOTCB8ICRYc2VkIC1lICcvXC4nJHtsaWJleHR9JyQvZCcg LWUgIiRsbzJvIiB8ICROTDJTUGAKICAgICAgZmkKCiAgICAgIGlmIHRlc3QgIiRidWlsZF9saWJ0 b29sX2xpYnMiID0geWVzOyB0aGVuCgkjIFRyYW5zZm9ybSBkZXBsaWJzIGludG8gb25seSBkZXBs aWJzIHRoYXQgY2FuIGJlIGxpbmtlZCBpbiBzaGFyZWQuCgluYW1lX3NhdmU9JG5hbWUKCWxpYm5h bWVfc2F2ZT0kbGlibmFtZQoJcmVsZWFzZV9zYXZlPSRyZWxlYXNlCgl2ZXJzdWZmaXhfc2F2ZT0k dmVyc3VmZml4CgltYWpvcl9zYXZlPSRtYWpvcgoJIyBJJ20gbm90IHN1cmUgaWYgSSdtIHRyZWF0 aW5nIHRoZSByZWxlYXNlIGNvcnJlY3RseS4gIEkgdGhpbmsKCSMgcmVsZWFzZSBzaG91bGQgc2hv dyB1cCBpbiB0aGUgLWwgKGllIC1sZ21wNSkgc28gd2UgZG9uJ3Qgd2FudCB0bwoJIyBhZGQgaXQg aW4gdHdpY2UuICBJcyB0aGF0IGNvcnJlY3Q/CglyZWxlYXNlPSIiCgl2ZXJzdWZmaXg9IiIKCW1h am9yPSIiCgluZXdkZXBsaWJzPQoJZHJvcHBlZGRlcHM9bm8KCWNhc2UgIiRkZXBsaWJzX2NoZWNr X21ldGhvZCIgaW4KCXBhc3NfYWxsKQoJICAjIERvbid0IGNoZWNrIGZvciBzaGFyZWQvc3RhdGlj LiAgRXZlcnl0aGluZyB3b3Jrcy4KCSAgIyBUaGlzIG1pZ2h0IGJlIGEgbGl0dGxlIG5haXZlLiAg V2UgbWlnaHQgd2FudCB0byBjaGVjawoJICAjIHdoZXRoZXIgdGhlIGxpYnJhcnkgZXhpc3RzIG9y IG5vdC4gIEJ1dCB0aGlzIGlzIG9uCgkgICMgb3NmMyAmIG9zZjQgYW5kIEknbSBub3QgcmVhbGx5 IHN1cmUuLi4gSnVzdAoJICAjIGltcGxlbWVudGluZyB3aGF0IHdhcyBhbHJlYWR5IHRoZSBiZWhh dmlvdXIuCgkgIG5ld2RlcGxpYnM9JGRlcGxpYnMKCSAgOzsKCXRlc3RfY29tcGlsZSkKCSAgIyBU aGlzIGNvZGUgc3RyZXNzZXMgdGhlICJsaWJyYXJpZXMgYXJlIHByb2dyYW1zIiBwYXJhZGlnbSB0 byBpdHMKCSAgIyBsaW1pdHMuIE1heWJlIGV2ZW4gYnJlYWtzIGl0LiAgV2UgY29tcGlsZSBhIHBy b2dyYW0sIGxpbmtpbmcgaXQKCSAgIyBhZ2FpbnN0IHRoZSBkZXBsaWJzIGFzIGEgcHJveHkgZm9y IHRoZSBsaWJyYXJ5LiAgVGhlbiB3ZSBjYW4gY2hlY2sKCSAgIyB3aGV0aGVyIHRoZXkgbGlua2Vk IGluIHN0YXRpY2FsbHkgb3IgZHluYW1pY2FsbHkgd2l0aCBsZGQuCgkgICRybSBjb25mdGVzdC5j CgkgIGNhdCA+IGNvbmZ0ZXN0LmMgPDxFT0YKCSAgaW50IG1haW4oKSB7IHJldHVybiAwOyB9CkVP RgoJICAkcm0gY29uZnRlc3QKCSAgJENDIC1vIGNvbmZ0ZXN0IGNvbmZ0ZXN0LmMgJGRlcGxpYnMK CSAgaWYgdGVzdCAkPyAtZXEgMCA7IHRoZW4KCSAgICBsZGRfb3V0cHV0PWBsZGQgY29uZnRlc3Rg CgkgICAgZm9yIGkgaW4gJGRlcGxpYnM7IGRvCgkgICAgICBuYW1lPSJgZXhwciAkaSA6ICctbFwo LipcKSdgIgoJICAgICAgIyBJZiAkbmFtZSBpcyBlbXB0eSB3ZSBhcmUgb3BlcmF0aW5nIG9uIGEg LUwgYXJndW1lbnQuCgkgICAgICBpZiB0ZXN0ICIkbmFtZSIgIT0gIiIgOyB0aGVuCgkJbGlibmFt ZT1gZXZhbCBcXCRlY2hvIFwiJGxpYm5hbWVfc3BlY1wiYAoJCWRlcGxpYl9tYXRjaGVzPWBldmFs IFxcJGVjaG8gXCIkbGlicmFyeV9uYW1lc19zcGVjXCJgCgkJc2V0IGR1bW15ICRkZXBsaWJfbWF0 Y2hlcwoJCWRlcGxpYl9tYXRjaD0kMgoJCWlmIHRlc3QgYGV4cHIgIiRsZGRfb3V0cHV0IiA6ICIu KiRkZXBsaWJfbWF0Y2giYCAtbmUgMCA7IHRoZW4KCQkgIG5ld2RlcGxpYnM9IiRuZXdkZXBsaWJz ICRpIgoJCWVsc2UKCQkgIGRyb3BwZWRkZXBzPXllcwoJCSAgZWNobwoJCSAgZWNobyAiKioqIFdh cm5pbmc6IFRoaXMgbGlicmFyeSBuZWVkcyBzb21lIGZ1bmN0aW9uYWxpdHkgcHJvdmlkZWQgYnkg JGkuIgoJCSAgZWNobyAiKioqIEkgaGF2ZSB0aGUgY2FwYWJpbGl0eSB0byBtYWtlIHRoYXQgbGli cmFyeSBhdXRvbWF0aWNhbGx5IGxpbmsgaW4gd2hlbiIKCQkgIGVjaG8gIioqKiB5b3UgbGluayB0 byB0aGlzIGxpYnJhcnkuICBCdXQgSSBjYW4gb25seSBkbyB0aGlzIGlmIHlvdSBoYXZlIGEiCgkJ ICBlY2hvICIqKiogc2hhcmVkIHZlcnNpb24gb2YgdGhlIGxpYnJhcnksIHdoaWNoIHlvdSBkbyBu b3QgYXBwZWFyIHRvIGhhdmUuIgoJCWZpCgkgICAgICBlbHNlCgkJbmV3ZGVwbGlicz0iJG5ld2Rl cGxpYnMgJGkiCgkgICAgICBmaQoJICAgIGRvbmUKCSAgZWxzZQoJICAgICMgRXJyb3Igb2NjdXJl ZCBpbiB0aGUgZmlyc3QgY29tcGlsZS4gIExldCdzIHRyeSB0byBzYWx2YWdlIHRoZSBzaXR1YXRp b246CgkgICAgIyBDb21waWxlIGEgc2VwZXJhdGUgcHJvZ3JhbSBmb3IgZWFjaCBsaWJyYXJ5LgoJ ICAgIGZvciBpIGluICRkZXBsaWJzOyBkbwoJICAgICAgbmFtZT0iYGV4cHIgJGkgOiAnLWxcKC4q XCknYCIKCSAgICAgIyBJZiAkbmFtZSBpcyBlbXB0eSB3ZSBhcmUgb3BlcmF0aW5nIG9uIGEgLUwg YXJndW1lbnQuCgkgICAgICBpZiB0ZXN0ICIkbmFtZSIgIT0gIiIgOyB0aGVuCgkJJHJtIGNvbmZ0 ZXN0CgkJJENDIC1vIGNvbmZ0ZXN0IGNvbmZ0ZXN0LmMgJGkKCQkjIERpZCBpdCB3b3JrPwoJCWlm IHRlc3QgJD8gLWVxIDAgOyB0aGVuCgkJICBsZGRfb3V0cHV0PWBsZGQgY29uZnRlc3RgCgkJICBs aWJuYW1lPWBldmFsIFxcJGVjaG8gXCIkbGlibmFtZV9zcGVjXCJgCgkJICBkZXBsaWJfbWF0Y2hl cz1gZXZhbCBcXCRlY2hvIFwiJGxpYnJhcnlfbmFtZXNfc3BlY1wiYAoJCSAgc2V0IGR1bW15ICRk ZXBsaWJfbWF0Y2hlcwoJCSAgZGVwbGliX21hdGNoPSQyCgkJICBpZiB0ZXN0IGBleHByICIkbGRk X291dHB1dCIgOiAiLiokZGVwbGliX21hdGNoImAgLW5lIDAgOyB0aGVuCgkJICAgIG5ld2RlcGxp YnM9IiRuZXdkZXBsaWJzICRpIgoJCSAgZWxzZQoJCSAgICBkcm9wcGVkZGVwcz15ZXMKCQkgICAg ZWNobwoJCSAgICBlY2hvICIqKiogV2FybmluZzogVGhpcyBsaWJyYXJ5IG5lZWRzIHNvbWUgZnVu Y3Rpb25hbGl0eSBwcm92aWRlZCBieSAkaS4iCgkJICAgIGVjaG8gIioqKiBJIGhhdmUgdGhlIGNh cGFiaWxpdHkgdG8gbWFrZSB0aGF0IGxpYnJhcnkgYXV0b21hdGljYWxseSBsaW5rIGluIHdoZW4i CgkJICAgIGVjaG8gIioqKiB5b3UgbGluayB0byB0aGlzIGxpYnJhcnkuICBCdXQgSSBjYW4gb25s eSBkbyB0aGlzIGlmIHlvdSBoYXZlIGEiCgkJICAgIGVjaG8gIioqKiBzaGFyZWQgdmVyc2lvbiBv ZiB0aGUgbGlicmFyeSwgd2hpY2ggeW91IGRvIG5vdCBhcHBlYXIgdG8gaGF2ZS4iCgkJICBmaQoJ CWVsc2UKCQkgIGRyb3BwZWRkZXBzPXllcwoJCSAgZWNobwoJCSAgZWNobyAiKioqIFdhcm5pbmch ICBMaWJyYXJ5ICRpIGlzIG5lZWRlZCBieSB0aGlzIGxpYnJhcnkgYnV0IEkgd2FzIG5vdCBhYmxl IHRvIgoJCSAgZWNobyAiKioqICBtYWtlIGl0IGxpbmsgaW4hICBZb3Ugd2lsbCBwcm9iYWJseSBu ZWVkIHRvIGluc3RhbGwgaXQgb3Igc29tZSIKCQkgIGVjaG8gIioqKiBsaWJyYXJ5IHRoYXQgaXQg ZGVwZW5kcyBvbiBiZWZvcmUgdGhpcyBsaWJyYXJ5IHdpbGwgYmUgZnVsbHkiCgkJICBlY2hvICIq KiogZnVuY3Rpb25hbC4gIEluc3RhbGxpbmcgaXQgYmVmb3JlIGNvbnRpbnVpbmcgd291bGQgYmUg ZXZlbiBiZXR0ZXIuIgoJCWZpCgkgICAgICBlbHNlCgkJbmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMg JGkiCgkgICAgICBmaQoJICAgIGRvbmUKCSAgZmkKCSAgOzsKCWZpbGVfbWFnaWMqKQoJICBzZXQg ZHVtbXkgJGRlcGxpYnNfY2hlY2tfbWV0aG9kCgkgIGZpbGVfbWFnaWNfcmVnZXg9ImBleHByIFwi JGRlcGxpYnNfY2hlY2tfbWV0aG9kXCIgOiBcIiQyIFwoLipcKVwiYCIKCSAgZm9yIGFfZGVwbGli IGluICRkZXBsaWJzOyBkbwoJICAgIG5hbWU9ImBleHByICRhX2RlcGxpYiA6ICctbFwoLipcKSdg IgoJICAgICMgSWYgJG5hbWUgaXMgZW1wdHkgd2UgYXJlIG9wZXJhdGluZyBvbiBhIC1MIGFyZ3Vt ZW50LgoJICAgIGlmIHRlc3QgIiRuYW1lIiAhPSAiIiA7IHRoZW4KCSAgICAgIGxpYm5hbWU9YGV2 YWwgXFwkZWNobyBcIiRsaWJuYW1lX3NwZWNcImAKCSAgICAgIGZvciBpIGluICRsaWJfc2VhcmNo X3BhdGg7IGRvCgkJICAgIHBvdGVudGlhbF9saWJzPWBscyAkaS8kbGlibmFtZVsuLV0qIDI+L2Rl di9udWxsYAoJCSAgICBmb3IgcG90ZW50X2xpYiBpbiAkcG90ZW50aWFsX2xpYnM7IGRvCgkJICAg ICAgIyBGb2xsb3cgc29mdCBsaW5rcy4KCQkgICAgICBpZiBscyAtbExkICIkcG90ZW50X2xpYiIg Mj4vZGV2L251bGwgXAoJCQkgfCBncmVwICIgLT4gIiA+L2Rldi9udWxsOyB0aGVuCgkJCWNvbnRp bnVlIAoJCSAgICAgIGZpCgkJICAgICAgIyBUaGUgc3RhdGVtZW50IGFib3ZlIHRyaWVzIHRvIGF2 b2lkIGVudGVyaW5nIGFuCgkJICAgICAgIyBlbmRsZXNzIGxvb3AgYmVsb3csIGluIGNhc2Ugb2Yg Y3ljbGljIGxpbmtzLgoJCSAgICAgICMgV2UgbWlnaHQgc3RpbGwgZW50ZXIgYW4gZW5kbGVzcyBs b29wLCBzaW5jZSBhIGxpbmsKCQkgICAgICAjIGxvb3AgY2FuIGJlIGNsb3NlZCB3aGlsZSB3ZSBm b2xsb3cgbGlua3MsCgkJICAgICAgIyBidXQgc28gd2hhdD8KCQkgICAgICBwb3RsaWI9IiRwb3Rl bnRfbGliIgoJCSAgICAgIHdoaWxlIHRlc3QgLWggIiRwb3RsaWIiIDI+L2Rldi9udWxsOyBkbwoJ CQlwb3RsaWJsaW5rPWBscyAtbGQgJHBvdGxpYiB8IHNlZCAncy8uKiAtPiAvLydgCgkJCWNhc2Ug IiRwb3RsaWJsaW5rIiBpbgoJCQlbXFwvXSogfCBbQS1aYS16XTpbXFwvXSopIHBvdGxpYj0iJHBv dGxpYmxpbmsiOzsKCQkJKikgcG90bGliPWAkZWNobyAiWCRwb3RsaWIiIHwgJFhzZWQgLWUgJ3Ms W14vXSokLCwnYCIkcG90bGlibGluayI7OwoJCQllc2FjCgkJICAgICAgZG9uZQoJCSAgICAgIGlm IGV2YWwgJGZpbGVfbWFnaWNfY21kIFwiXCRwb3RsaWJcIiAyPi9kZXYvbnVsbCBcCgkJCSB8IHNl ZCAxMHEgXAoJCQkgfCBlZ3JlcCAiJGZpbGVfbWFnaWNfcmVnZXgiID4gL2Rldi9udWxsOyB0aGVu CgkJCW5ld2RlcGxpYnM9IiRuZXdkZXBsaWJzICRhX2RlcGxpYiIKCQkJYV9kZXBsaWI9IiIKCQkJ YnJlYWsgMgoJCSAgICAgIGZpCgkJICAgIGRvbmUKCSAgICAgIGRvbmUKCSAgICAgIGlmIHRlc3Qg LW4gIiRhX2RlcGxpYiIgOyB0aGVuCgkJZHJvcHBlZGRlcHM9eWVzCgkJZWNobwoJCWVjaG8gIioq KiBXYXJuaW5nOiBUaGlzIGxpYnJhcnkgbmVlZHMgc29tZSBmdW5jdGlvbmFsaXR5IHByb3ZpZGVk IGJ5ICRhX2RlcGxpYi4iCgkJZWNobyAiKioqIEkgaGF2ZSB0aGUgY2FwYWJpbGl0eSB0byBtYWtl IHRoYXQgbGlicmFyeSBhdXRvbWF0aWNhbGx5IGxpbmsgaW4gd2hlbiIKCQllY2hvICIqKiogeW91 IGxpbmsgdG8gdGhpcyBsaWJyYXJ5LiAgQnV0IEkgY2FuIG9ubHkgZG8gdGhpcyBpZiB5b3UgaGF2 ZSBhIgoJCWVjaG8gIioqKiBzaGFyZWQgdmVyc2lvbiBvZiB0aGUgbGlicmFyeSwgd2hpY2ggeW91 IGRvIG5vdCBhcHBlYXIgdG8gaGF2ZS4iCgkgICAgICBmaQoJICAgIGVsc2UKCSAgICAgICMgQWRk IGEgLUwgYXJndW1lbnQuCgkgICAgICBuZXdkZXBsaWJzPSIkbmV3ZGVwbGlicyAkYV9kZXBsaWIi CgkgICAgZmkKCSAgZG9uZSAjIEdvbmUgdGhyb3VnaCBhbGwgZGVwbGlicy4KCSAgOzsKCW5vbmUg fCB1bmtub3duIHwgKikKCSAgbmV3ZGVwbGlicz0iIgoJICBpZiAkZWNobyAiWCAkZGVwbGlicyIg fCAkWHNlZCAtZSAncy8gLWxjJC8vJyBcCgkgICAgICAgLWUgJ3MvIC1bTFJdW14gXSovL2cnIC1l ICdzL1sgCV0vL2cnIHwKCSAgICAgZ3JlcCAuID4vZGV2L251bGw7IHRoZW4KCSAgICBlY2hvCgkg ICAgaWYgdGVzdCAiWCRkZXBsaWJzX2NoZWNrX21ldGhvZCIgPSAiWG5vbmUiOyB0aGVuCgkgICAg ICBlY2hvICIqKiogV2FybmluZzogaW50ZXItbGlicmFyeSBkZXBlbmRlbmNpZXMgYXJlIG5vdCBz dXBwb3J0ZWQgaW4gdGhpcyBwbGF0Zm9ybS4iCgkgICAgZWxzZQoJICAgICAgZWNobyAiKioqIFdh cm5pbmc6IGludGVyLWxpYnJhcnkgZGVwZW5kZW5jaWVzIGFyZSBub3Qga25vd24gdG8gYmUgc3Vw cG9ydGVkLiIKCSAgICBmaQoJICAgIGVjaG8gIioqKiBBbGwgZGVjbGFyZWQgaW50ZXItbGlicmFy eSBkZXBlbmRlbmNpZXMgYXJlIGJlaW5nIGRyb3BwZWQuIgoJICAgIGRyb3BwZWRkZXBzPXllcwoJ ICBmaQoJICA7OwoJZXNhYwoJdmVyc3VmZml4PSR2ZXJzdWZmaXhfc2F2ZQoJbWFqb3I9JG1ham9y X3NhdmUKCXJlbGVhc2U9JHJlbGVhc2Vfc2F2ZQoJbGlibmFtZT0kbGlibmFtZV9zYXZlCgluYW1l PSRuYW1lX3NhdmUKCglpZiB0ZXN0ICIkZHJvcHBlZGRlcHMiID0geWVzOyB0aGVuCgkgIGlmIHRl c3QgIiRtb2R1bGUiID0geWVzOyB0aGVuCgkgICAgZWNobwoJICAgIGVjaG8gIioqKiBXYXJuaW5n OiBsaWJ0b29sIGNvdWxkIG5vdCBzYXRpc2Z5IGFsbCBkZWNsYXJlZCBpbnRlci1saWJyYXJ5IgoJ ICAgIGVjaG8gIioqKiBkZXBlbmRlbmNpZXMgb2YgbW9kdWxlICRsaWJuYW1lLiAgVGhlcmVmb3Jl LCBsaWJ0b29sIHdpbGwgY3JlYXRlIgoJICAgIGVjaG8gIioqKiBhIHN0YXRpYyBtb2R1bGUsIHRo YXQgc2hvdWxkIHdvcmsgYXMgbG9uZyBhcyB0aGUgZGxvcGVuaW5nIgoJICAgIGVjaG8gIioqKiBh cHBsaWNhdGlvbiBpcyBsaW5rZWQgd2l0aCB0aGUgLWRsb3BlbiBmbGFnLiIKCSAgICBpZiB0ZXN0 IC16ICIkZ2xvYmFsX3N5bWJvbF9waXBlIjsgdGhlbgoJICAgICAgZWNobwoJICAgICAgZWNobyAi KioqIEhvd2V2ZXIsIHRoaXMgd291bGQgb25seSB3b3JrIGlmIGxpYnRvb2wgd2FzIGFibGUgdG8g ZXh0cmFjdCBzeW1ib2wiCgkgICAgICBlY2hvICIqKiogbGlzdHMgZnJvbSBhIHByb2dyYW0sIHVz aW5nIFxgbm0nIG9yIGVxdWl2YWxlbnQsIGJ1dCBsaWJ0b29sIGNvdWxkIgoJICAgICAgZWNobyAi KioqIG5vdCBmaW5kIHN1Y2ggYSBwcm9ncmFtLiAgU28sIHRoaXMgbW9kdWxlIGlzIHByb2JhYmx5 IHVzZWxlc3MuIgoJICAgICAgZWNobyAiKioqIFxgbm0nIGZyb20gR05VIGJpbnV0aWxzIGFuZCBh IGZ1bGwgcmVidWlsZCBtYXkgaGVscC4iCgkgICAgZmkKCSAgICBpZiB0ZXN0ICIkYnVpbGRfb2xk X2xpYnMiID0gbm87IHRoZW4KCSAgICAgIGlmIHRlc3QgIiRyZWxlYXNlX3N1ZmZpeCIgPSBhbGw7 IHRoZW4KCSAgICAgICAgb2xkbGlicz0iJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUkcmVsZWFzZS4k bGliZXh0IgoJICAgICAgZWxzZQoJICAgICAgb2xkbGlicz0iJG91dHB1dF9vYmpkaXIvJGxpYm5h bWUuJGxpYmV4dCIKCSAgICAgIGZpCgkgICAgICBidWlsZF9saWJ0b29sX2xpYnM9bW9kdWxlCgkg ICAgICBidWlsZF9vbGRfbGlicz15ZXMKCSAgICBlbHNlCgkgICAgICBidWlsZF9saWJ0b29sX2xp YnM9bm8KCSAgICBmaQoJICBlbHNlCgkgICAgZWNobyAiKioqIFRoZSBpbnRlci1saWJyYXJ5IGRl cGVuZGVuY2llcyB0aGF0IGhhdmUgYmVlbiBkcm9wcGVkIGhlcmUgd2lsbCBiZSIKCSAgICBlY2hv ICIqKiogYXV0b21hdGljYWxseSBhZGRlZCB3aGVuZXZlciBhIHByb2dyYW0gaXMgbGlua2VkIHdp dGggdGhpcyBsaWJyYXJ5IgoJICAgIGVjaG8gIioqKiBvciBpcyBkZWNsYXJlZCB0byAtZGxvcGVu IGl0LiIKCSAgZmkKCWZpCgkjIERvbmUgY2hlY2tpbmcgZGVwbGlicyEKCWRlcGxpYnM9JG5ld2Rl cGxpYnMKICAgICAgZmkKCiAgICAgICMgQWxsIHRoZSBsaWJyYXJ5LXNwZWNpZmljIHZhcmlhYmxl cyAoaW5zdGFsbF9saWJkaXIgaXMgc2V0IGFib3ZlKS4KICAgICAgbGlicmFyeV9uYW1lcz0KICAg ICAgb2xkX2xpYnJhcnk9CiAgICAgIGRsbmFtZT0KICAgICAgCiAgICAgICMgVGVzdCBhZ2Fpbiwg d2UgbWF5IGhhdmUgZGVjaWRlZCBub3QgdG8gYnVpbGQgaXQgYW55IG1vcmUKICAgICAgaWYgdGVz dCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSB5ZXM7IHRoZW4KCSMgR2V0IHRoZSByZWFsIGFuZCBs aW5rIG5hbWVzIG9mIHRoZSBsaWJyYXJ5LgoJZXZhbCBsaWJyYXJ5X25hbWVzPVwiJGxpYnJhcnlf bmFtZXNfc3BlY1wiCglzZXQgZHVtbXkgJGxpYnJhcnlfbmFtZXMKCXJlYWxuYW1lPSIkMiIKCXNo aWZ0OyBzaGlmdAoKCWlmIHRlc3QgLW4gIiRzb25hbWVfc3BlYyI7IHRoZW4KCSAgZXZhbCBzb25h bWU9XCIkc29uYW1lX3NwZWNcIgoJZWxzZQoJICBzb25hbWU9IiRyZWFsbmFtZSIKCWZpCgoJbGli PSIkb3V0cHV0X29iamRpci8kcmVhbG5hbWUiCglmb3IgbGluawoJZG8KCSAgbGlua25hbWVzPSIk bGlua25hbWVzICRsaW5rIgoJZG9uZQoKCSMgRW5zdXJlIHRoYXQgd2UgaGF2ZSAubyBvYmplY3Rz IGZvciBsaW5rZXJzIHdoaWNoIGRpc2xpa2UgLmxvCgkjIChlLmcuIGFpeCkgaW4gY2FzZSB3ZSBh cmUgcnVubmluZyAtLWRpc2FibGUtc3RhdGljCglmb3Igb2JqIGluICRsaWJvYmpzOyBkbwoJICB4 ZGlyPWAkZWNobyAiWCRvYmoiIHwgJFhzZWQgLWUgJ3MlL1teL10qJCUlJ2AKCSAgaWYgdGVzdCAi WCR4ZGlyIiA9ICJYJG9iaiI7IHRoZW4KCSAgICB4ZGlyPSIuIgoJICBlbHNlCgkgICAgeGRpcj0i JHhkaXIiCgkgIGZpCgkgIGJhc2VvYmo9YCRlY2hvICJYJG9iaiIgfCAkWHNlZCAtZSAncyVeLiov JSUnYAoJICBvbGRvYmo9YCRlY2hvICJYJGJhc2VvYmoiIHwgJFhzZWQgLWUgIiRsbzJvImAKCSAg aWYgdGVzdCAhIC1mICR4ZGlyLyRvbGRvYmo7IHRoZW4KCSAgICAkc2hvdyAiKGNkICR4ZGlyICYm ICR7TE5fU30gJGJhc2VvYmogJG9sZG9iaikiCgkgICAgJHJ1biBldmFsICcoY2QgJHhkaXIgJiYg JHtMTl9TfSAkYmFzZW9iaiAkb2xkb2JqKScgfHwgZXhpdCAkPwoJICBmaQoJZG9uZQoKCSMgVXNl IHN0YW5kYXJkIG9iamVjdHMgaWYgdGhleSBhcmUgcGljCgl0ZXN0IC16ICIkcGljX2ZsYWciICYm IGxpYm9ianM9YCRlY2hvICJYJGxpYm9ianMiIHwgJFNQMk5MIHwgJFhzZWQgLWUgIiRsbzJvIiB8 ICROTDJTUGAKCgkjIFByZXBhcmUgdGhlIGxpc3Qgb2YgZXhwb3J0ZWQgc3ltYm9scwoJaWYgdGVz dCAteiAiJGV4cG9ydF9zeW1ib2xzIjsgdGhlbgoJICBpZiB0ZXN0ICIkYWx3YXlzX2V4cG9ydF9z eW1ib2xzIiA9IHllcyB8fCB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHNfcmVnZXgiOyB0aGVuCgkg ICAgJHNob3cgImdlbmVyYXRpbmcgc3ltYm9sIGxpc3QgZm9yIFxgJGxpYm5hbWUubGEnIgoJICAg IGV4cG9ydF9zeW1ib2xzPSIkb3V0cHV0X29iamRpci8kbGlibmFtZS5leHAiCgkgICAgJHJ1biAk cm0gJGV4cG9ydF9zeW1ib2xzCgkgICAgZXZhbCBjbWRzPVwiJGV4cG9ydF9zeW1ib2xzX2NtZHNc IgoJICAgIElGUz0iJHtJRlM9IAl9Ijsgc2F2ZV9pZnM9IiRJRlMiOyBJRlM9J34nCgkgICAgZm9y IGNtZCBpbiAkY21kczsgZG8KCSAgICAgIElGUz0iJHNhdmVfaWZzIgoJICAgICAgJHNob3cgIiRj bWQiCgkgICAgICAkcnVuIGV2YWwgIiRjbWQiIHx8IGV4aXQgJD8KCSAgICBkb25lCgkgICAgSUZT PSIkc2F2ZV9pZnMiCgkgICAgaWYgdGVzdCAtbiAiJGV4cG9ydF9zeW1ib2xzX3JlZ2V4IjsgdGhl bgoJICAgICAgJHNob3cgImVncmVwIC1lIFwiJGV4cG9ydF9zeW1ib2xzX3JlZ2V4XCIgXCIkZXhw b3J0X3N5bWJvbHNcIiA+IFwiJHtleHBvcnRfc3ltYm9sc31UXCIiCgkgICAgICAkcnVuIGV2YWwg J2VncmVwIC1lICIkZXhwb3J0X3N5bWJvbHNfcmVnZXgiICIkZXhwb3J0X3N5bWJvbHMiID4gIiR7 ZXhwb3J0X3N5bWJvbHN9VCInCgkgICAgICAkc2hvdyAiJG12IFwiJHtleHBvcnRfc3ltYm9sc31U XCIgXCIkZXhwb3J0X3N5bWJvbHNcIiIKCSAgICAgICRydW4gZXZhbCAnJG12ICIke2V4cG9ydF9z eW1ib2xzfVQiICIkZXhwb3J0X3N5bWJvbHMiJwoJICAgIGZpCgkgIGZpCglmaQoKCWlmIHRlc3Qg LW4gIiRleHBvcnRfc3ltYm9scyIgJiYgdGVzdCAtbiAiJGluY2x1ZGVfZXhwc3ltcyI7IHRoZW4K CSAgJHJ1biBldmFsICckZWNobyAiWCRpbmNsdWRlX2V4cHN5bXMiIHwgJFNQMk5MID4+ICIkZXhw b3J0X3N5bWJvbHMiJwoJZmkKCglpZiB0ZXN0IC1uICIkY29udmVuaWVuY2UiOyB0aGVuCgkgIGlm IHRlc3QgLW4gIiR3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYyI7IHRoZW4KCSAgICBldmFsIGxpYm9i anM9XCJcJGxpYm9ianMgJHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjXCIKCSAgZWxzZQoJICAgIGdl bnRvcD0iJG91dHB1dF9vYmpkaXIvJHtvdXRwdXRuYW1lfXgiCgkgICAgJHNob3cgIiR7cm19ciAk Z2VudG9wIgoJICAgICRydW4gJHtybX1yICIkZ2VudG9wIgoJICAgICRzaG93ICJta2RpciAkZ2Vu dG9wIgoJICAgICRydW4gbWtkaXIgIiRnZW50b3AiCgkgICAgc3RhdHVzPSQ/CgkgICAgaWYgdGVz dCAkc3RhdHVzIC1uZSAwICYmIHRlc3QgISAtZCAiJGdlbnRvcCI7IHRoZW4KCSAgICAgIGV4aXQg JHN0YXR1cwoJICAgIGZpCgkgICAgZ2VuZXJhdGVkPSIkZ2VuZXJhdGVkICRnZW50b3AiCgoJICAg IGZvciB4bGliIGluICRjb252ZW5pZW5jZTsgZG8KCSAgICAgICMgRXh0cmFjdCB0aGUgb2JqZWN0 cy4KCSAgICAgIGNhc2UgIiR4bGliIiBpbgoJICAgICAgW1xcL10qIHwgW0EtWmEtel06W1xcL10q KSB4YWJzPSIkeGxpYiIgOzsKCSAgICAgICopIHhhYnM9YHB3ZGAiLyR4bGliIiA7OwoJICAgICAg ZXNhYwoJICAgICAgeGxpYj1gJGVjaG8gIlgkeGxpYiIgfCAkWHNlZCAtZSAncyVeLiovJSUnYAoJ ICAgICAgeGRpcj0iJGdlbnRvcC8keGxpYiIKCgkgICAgICAkc2hvdyAiJHtybX1yICR4ZGlyIgoJ ICAgICAgJHJ1biAke3JtfXIgIiR4ZGlyIgoJICAgICAgJHNob3cgIm1rZGlyICR4ZGlyIgoJICAg ICAgJHJ1biBta2RpciAiJHhkaXIiCgkgICAgICBzdGF0dXM9JD8KCSAgICAgIGlmIHRlc3QgJHN0 YXR1cyAtbmUgMCAmJiB0ZXN0ICEgLWQgIiR4ZGlyIjsgdGhlbgoJCWV4aXQgJHN0YXR1cwoJICAg ICAgZmkKCSAgICAgICRzaG93ICIoY2QgJHhkaXIgJiYgJEFSIHggJHhhYnMpIgoJICAgICAgJHJ1 biBldmFsICIoY2QgXCR4ZGlyICYmICRBUiB4IFwkeGFicykiIHx8IGV4aXQgJD8KCgkgICAgICBs aWJvYmpzPSIkbGlib2JqcyAiYGZpbmQgJHhkaXIgLW5hbWUgXCoubyAtcHJpbnQgLW8gLW5hbWUg XCoubG8gLXByaW50IHwgJE5MMlNQYAoJICAgIGRvbmUKCSAgZmkKCWZpCgoJaWYgdGVzdCAiJHRo cmVhZF9zYWZlIiA9IHllcyAmJiB0ZXN0IC1uICIkdGhyZWFkX3NhZmVfZmxhZ19zcGVjIjsgdGhl bgoJICBldmFsIGZsYWc9XCIkdGhyZWFkX3NhZmVfZmxhZ19zcGVjXCIKCSAgbGlua29wdHM9IiRs aW5rb3B0cyAkZmxhZyIKCWZpCgoJIyBEbyBlYWNoIG9mIHRoZSBhcmNoaXZlIGNvbW1hbmRzLgoJ aWYgdGVzdCAtbiAiJGV4cG9ydF9zeW1ib2xzIiAmJiB0ZXN0IC1uICIkYXJjaGl2ZV9leHBzeW1f Y21kcyI7IHRoZW4KCSAgZXZhbCBjbWRzPVwiJGFyY2hpdmVfZXhwc3ltX2NtZHNcIgoJZWxzZQoJ ICBldmFsIGNtZHM9XCIkYXJjaGl2ZV9jbWRzXCIKCWZpCglJRlM9IiR7SUZTPSAJfSI7IHNhdmVf aWZzPSIkSUZTIjsgSUZTPSd+JwoJZm9yIGNtZCBpbiAkY21kczsgZG8KCSAgSUZTPSIkc2F2ZV9p ZnMiCgkgICRzaG93ICIkY21kIgoJICAkcnVuIGV2YWwgIiRjbWQiIHx8IGV4aXQgJD8KCWRvbmUK CUlGUz0iJHNhdmVfaWZzIgoKCSMgQ3JlYXRlIGxpbmtzIHRvIHRoZSByZWFsIGxpYnJhcnkuCglm b3IgbGlua25hbWUgaW4gJGxpbmtuYW1lczsgZG8KCSAgaWYgdGVzdCAiJHJlYWxuYW1lIiAhPSAi JGxpbmtuYW1lIjsgdGhlbgoJICAgICRzaG93ICIoY2QgJG91dHB1dF9vYmpkaXIgJiYgJHJtICRs aW5rbmFtZSAmJiAkTE5fUyAkcmVhbG5hbWUgJGxpbmtuYW1lKSIKCSAgICAkcnVuIGV2YWwgJyhj ZCAkb3V0cHV0X29iamRpciAmJiAkcm0gJGxpbmtuYW1lICYmICRMTl9TICRyZWFsbmFtZSAkbGlu a25hbWUpJyB8fCBleGl0ICQ/CgkgIGZpCglkb25lCgoJIyBJZiAtbW9kdWxlIG9yIC1leHBvcnQt ZHluYW1pYyB3YXMgc3BlY2lmaWVkLCBzZXQgdGhlIGRsbmFtZS4KCWlmIHRlc3QgIiRtb2R1bGUi ID0geWVzIHx8IHRlc3QgIiRleHBvcnRfZHluYW1pYyIgPSB5ZXM7IHRoZW4KCSAgIyBPbiBhbGwg a25vd24gb3BlcmF0aW5nIHN5c3RlbXMsIHRoZXNlIGFyZSBpZGVudGljYWwuCgkgIGRsbmFtZT0i JHNvbmFtZSIKCWZpCiAgICAgIGZpCiAgICAgIDs7CgogICAgKi5sbyB8ICoubyB8ICoub2JqKQog ICAgICBpZiB0ZXN0IC1uICIkbGlua19hZ2FpbnN0X2xpYnRvb2xfbGlicyI7IHRoZW4KCSRlY2hv ICIkbW9kZW5hbWU6IGVycm9yOiBjYW5ub3QgbGluayBsaWJ0b29sIGxpYnJhcmllcyBpbnRvIG9i amVjdHMiIDE+JjIKCWV4aXQgMQogICAgICBmaQoKICAgICAgaWYgdGVzdCAtbiAiJGRlcGxpYnMi OyB0aGVuCgkkZWNobyAiJG1vZGVuYW1lOiB3YXJuaW5nOiBcYC1sJyBhbmQgXGAtTCcgYXJlIGln bm9yZWQgZm9yIG9iamVjdHMiIDE+JjIKICAgICAgZmkKCiAgICAgIGlmIHRlc3QgLW4gIiRkbGZp bGVzJGRscHJlZmlsZXMiIHx8IHRlc3QgIiRkbHNlbGYiICE9IG5vOyB0aGVuCgkkZWNobyAiJG1v ZGVuYW1lOiB3YXJuaW5nOiBcYC1kbG9wZW4nIGlzIGlnbm9yZWQgZm9yIG9iamVjdHMiIDE+JjIK ICAgICAgZmkKCiAgICAgIGlmIHRlc3QgLW4gIiRycGF0aCI7IHRoZW4KCSRlY2hvICIkbW9kZW5h bWU6IHdhcm5pbmc6IFxgLXJwYXRoJyBpcyBpZ25vcmVkIGZvciBvYmplY3RzIiAxPiYyCiAgICAg IGZpCgogICAgICBpZiB0ZXN0IC1uICIkeHJwYXRoIjsgdGhlbgoJJGVjaG8gIiRtb2RlbmFtZTog d2FybmluZzogXGAtUicgaXMgaWdub3JlZCBmb3Igb2JqZWN0cyIgMT4mMgogICAgICBmaQoKICAg ICAgaWYgdGVzdCAtbiAiJHZpbmZvIjsgdGhlbgoJJGVjaG8gIiRtb2RlbmFtZTogd2FybmluZzog XGAtdmVyc2lvbi1pbmZvJyBpcyBpZ25vcmVkIGZvciBvYmplY3RzIiAxPiYyCiAgICAgIGZpCgog ICAgICBpZiB0ZXN0IC1uICIkcmVsZWFzZSI7IHRoZW4KCSRlY2hvICIkbW9kZW5hbWU6IHdhcm5p bmc6IFxgLXJlbGVhc2UnIGlzIGlnbm9yZWQgZm9yIG9iamVjdHMiIDE+JjIKICAgICAgZmkKCiAg ICAgIGNhc2UgIiRvdXRwdXQiIGluCiAgICAgICoubG8pCglpZiB0ZXN0IC1uICIkb2JqcyI7IHRo ZW4KCSAgJGVjaG8gIiRtb2RlbmFtZTogY2Fubm90IGJ1aWxkIGxpYnJhcnkgb2JqZWN0IFxgJG91 dHB1dCcgZnJvbSBub24tbGlidG9vbCBvYmplY3RzIiAxPiYyCgkgIGV4aXQgMQoJZmkKCWxpYm9i aj0iJG91dHB1dCIKCW9iaj1gJGVjaG8gIlgkb3V0cHV0IiB8ICRYc2VkIC1lICIkbG8ybyJgCgk7 OwogICAgICAqKQoJbGlib2JqPQoJb2JqPSIkb3V0cHV0IgoJOzsKICAgICAgZXNhYwoKICAgICAg IyBEZWxldGUgdGhlIG9sZCBvYmplY3RzLgogICAgICAkcnVuICRybSAkb2JqICRsaWJvYmoKCiAg ICAgICMgT2JqZWN0cyBmcm9tIGNvbnZlbmllbmNlIGxpYnJhcmllcy4gIFRoaXMgYXNzdW1lcwog ICAgICAjIHNpbmdsZS12ZXJzaW9uIGNvbnZlbmllbmNlIGxpYnJhcmllcy4gIFdoZW5ldmVyIHdl IGNyZWF0ZQogICAgICAjIGRpZmZlcmVudCBvbmVzIGZvciBQSUMvbm9uLVBJQywgdGhpcyB3ZSds bCBoYXZlIHRvIGR1cGxpY2F0ZQogICAgICAjIHRoZSBleHRyYWN0aW9uLgogICAgICByZWxvYWRf Y29udl9vYmpzPQogICAgICBnZW50b3A9CiAgICAgICMgcmVsb2FkX2NtZHMgcnVucyAkTEQgZGly ZWN0bHksIHNvIGxldCB1cyBnZXQgcmlkIG9mCiAgICAgICMgLVdsIGZyb20gd2hvbGVfYXJjaGl2 ZV9mbGFnX3NwZWMKICAgICAgd2w9IAoKICAgICAgaWYgdGVzdCAtbiAiJGNvbnZlbmllbmNlIjsg dGhlbgoJaWYgdGVzdCAtbiAiJHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjIjsgdGhlbgoJICBldmFs IHJlbG9hZF9jb252X29ianM9XCJcJHJlbG9hZF9vYmpzICR3aG9sZV9hcmNoaXZlX2ZsYWdfc3Bl Y1wiCgllbHNlCgkgIGdlbnRvcD0iJG91dHB1dF9vYmpkaXIvJHtvYmp9eCIKCSAgJHNob3cgIiR7 cm19ciAkZ2VudG9wIgoJICAkcnVuICR7cm19ciAiJGdlbnRvcCIKCSAgJHNob3cgIm1rZGlyICRn ZW50b3AiCgkgICRydW4gbWtkaXIgIiRnZW50b3AiCgkgIHN0YXR1cz0kPwoJICBpZiB0ZXN0ICRz dGF0dXMgLW5lIDAgJiYgdGVzdCAhIC1kICIkZ2VudG9wIjsgdGhlbgoJICAgIGV4aXQgJHN0YXR1 cwoJICBmaQoJICBnZW5lcmF0ZWQ9IiRnZW5lcmF0ZWQgJGdlbnRvcCIKCgkgIGZvciB4bGliIGlu ICRjb252ZW5pZW5jZTsgZG8KCSAgICAjIEV4dHJhY3QgdGhlIG9iamVjdHMuCgkgICAgY2FzZSAi JHhsaWIiIGluCgkgICAgW1xcL10qIHwgW0EtWmEtel06W1xcL10qKSB4YWJzPSIkeGxpYiIgOzsK CSAgICAqKSB4YWJzPWBwd2RgIi8keGxpYiIgOzsKCSAgICBlc2FjCgkgICAgeGxpYj1gJGVjaG8g IlgkeGxpYiIgfCAkWHNlZCAtZSAncyVeLiovJSUnYAoJICAgIHhkaXI9IiRnZW50b3AvJHhsaWIi CgoJICAgICRzaG93ICIke3JtfXIgJHhkaXIiCgkgICAgJHJ1biAke3JtfXIgIiR4ZGlyIgoJICAg ICRzaG93ICJta2RpciAkeGRpciIKCSAgICAkcnVuIG1rZGlyICIkeGRpciIKCSAgICBzdGF0dXM9 JD8KCSAgICBpZiB0ZXN0ICRzdGF0dXMgLW5lIDAgJiYgdGVzdCAhIC1kICIkeGRpciI7IHRoZW4K CSAgICAgIGV4aXQgJHN0YXR1cwoJICAgIGZpCgkgICAgJHNob3cgIihjZCAkeGRpciAmJiAkQVIg eCAkeGFicykiCgkgICAgJHJ1biBldmFsICIoY2QgXCR4ZGlyICYmICRBUiB4IFwkeGFicykiIHx8 IGV4aXQgJD8KCgkgICAgcmVsb2FkX2NvbnZfb2Jqcz0iJHJlbG9hZF9vYmpzICJgZmluZCAkeGRp ciAtbmFtZSBcKi5vIC1wcmludCAtbyAtbmFtZSBcKi5sbyAtcHJpbnQgfCAkTkwyU1BgCgkgIGRv bmUKCWZpCiAgICAgIGZpCgogICAgICAjIENyZWF0ZSB0aGUgb2xkLXN0eWxlIG9iamVjdC4KICAg ICAgcmVsb2FkX29ianM9IiRvYmpzICJgJGVjaG8gIlgkbGlib2JqcyIgfCAkU1AyTkwgfCAkWHNl ZCAtZSAnL1wuJyR7bGliZXh0fSQnL2QnIC1lICcvXC5saWIkL2QnIC1lICIkbG8ybyIgfCAkTkwy U1BgIiAkcmVsb2FkX2NvbnZfb2JqcyIKCiAgICAgIG91dHB1dD0iJG9iaiIKICAgICAgZXZhbCBj bWRzPVwiJHJlbG9hZF9jbWRzXCIKICAgICAgSUZTPSIke0lGUz0gCX0iOyBzYXZlX2lmcz0iJElG UyI7IElGUz0nficKICAgICAgZm9yIGNtZCBpbiAkY21kczsgZG8KCUlGUz0iJHNhdmVfaWZzIgoJ JHNob3cgIiRjbWQiCgkkcnVuIGV2YWwgIiRjbWQiIHx8IGV4aXQgJD8KICAgICAgZG9uZQogICAg ICBJRlM9IiRzYXZlX2lmcyIKCiAgICAgICMgRXhpdCBpZiB3ZSBhcmVuJ3QgZG9pbmcgYSBsaWJy YXJ5IG9iamVjdCBmaWxlLgogICAgICBpZiB0ZXN0IC16ICIkbGlib2JqIjsgdGhlbgoJaWYgdGVz dCAtbiAiJGdlbnRvcCI7IHRoZW4KCSAgJHNob3cgIiR7cm19ciAkZ2VudG9wIgoJICAkcnVuICR7 cm19ciAkZ2VudG9wCglmaQoKCWV4aXQgMAogICAgICBmaQoKICAgICAgaWYgdGVzdCAiJGJ1aWxk X2xpYnRvb2xfbGlicyIgIT0geWVzOyB0aGVuCglpZiB0ZXN0IC1uICIkZ2VudG9wIjsgdGhlbgoJ ICAkc2hvdyAiJHtybX1yICRnZW50b3AiCgkgICRydW4gJHtybX1yICRnZW50b3AKCWZpCgoJIyBD cmVhdGUgYW4gaW52YWxpZCBsaWJ0b29sIG9iamVjdCBpZiBubyBQSUMsIHNvIHRoYXQgd2UgZG9u J3QKCSMgYWNjaWRlbnRhbGx5IGxpbmsgaXQgaW50byBhIHByb2dyYW0uCgkkc2hvdyAiZWNobyB0 aW1lc3RhbXAgPiAkbGlib2JqIgoJJHJ1biBldmFsICJlY2hvIHRpbWVzdGFtcCA+ICRsaWJvYmoi IHx8IGV4aXQgJD8KCWV4aXQgMAogICAgICBmaQoKICAgICAgaWYgdGVzdCAtbiAiJHBpY19mbGFn IjsgdGhlbgoJIyBPbmx5IGRvIGNvbW1hbmRzIGlmIHdlIHJlYWxseSBoYXZlIGRpZmZlcmVudCBQ SUMgb2JqZWN0cy4KCXJlbG9hZF9vYmpzPSIkbGlib2JqcyAkcmVsb2FkX2NvbnZfb2JqcyIKCW91 dHB1dD0iJGxpYm9iaiIKCWV2YWwgY21kcz1cIiRyZWxvYWRfY21kc1wiCglJRlM9IiR7SUZTPSAJ fSI7IHNhdmVfaWZzPSIkSUZTIjsgSUZTPSd+JwoJZm9yIGNtZCBpbiAkY21kczsgZG8KCSAgSUZT PSIkc2F2ZV9pZnMiCgkgICRzaG93ICIkY21kIgoJICAkcnVuIGV2YWwgIiRjbWQiIHx8IGV4aXQg JD8KCWRvbmUKCUlGUz0iJHNhdmVfaWZzIgogICAgICBlbHNlCgkjIEp1c3QgY3JlYXRlIGEgc3lt bGluay4KCSRzaG93ICRybSAkbGlib2JqCgkkcnVuICRybSAkbGlib2JqCgl4ZGlyPWAkZWNobyAi WCRsaWJvYmoiIHwgJFhzZWQgLWUgJ3MlL1teL10qJCUlJ2AKCWlmIHRlc3QgIlgkeGRpciIgPSAi WCRsaWJvYmoiOyB0aGVuCgkgIHhkaXI9Ii4iCgllbHNlCgkgIHhkaXI9IiR4ZGlyIgoJZmkKCWJh c2VvYmo9YCRlY2hvICJYJGxpYm9iaiIgfCAkWHNlZCAtZSAncyVeLiovJSUnYAoJb2xkb2JqPWAk ZWNobyAiWCRiYXNlb2JqIiB8ICRYc2VkIC1lICIkbG8ybyJgCgkkc2hvdyAiKGNkICR4ZGlyICYm ICRMTl9TICRvbGRvYmogJGJhc2VvYmopIgoJJHJ1biBldmFsICcoY2QgJHhkaXIgJiYgJExOX1Mg JG9sZG9iaiAkYmFzZW9iaiknIHx8IGV4aXQgJD8KICAgICAgZmkKCiAgICAgIGlmIHRlc3QgLW4g IiRnZW50b3AiOyB0aGVuCgkkc2hvdyAiJHtybX1yICRnZW50b3AiCgkkcnVuICR7cm19ciAkZ2Vu dG9wCiAgICAgIGZpCgogICAgICBleGl0IDAKICAgICAgOzsKCiAgICAjIEFueXRoaW5nIGVsc2Ug c2hvdWxkIGJlIGEgcHJvZ3JhbS4KICAgICopCiAgICAgIGlmIHRlc3QgLW4gIiR2aW5mbyI7IHRo ZW4KCSRlY2hvICIkbW9kZW5hbWU6IHdhcm5pbmc6IFxgLXZlcnNpb24taW5mbycgaXMgaWdub3Jl ZCBmb3IgcHJvZ3JhbXMiIDE+JjIKICAgICAgZmkKCiAgICAgIGlmIHRlc3QgLW4gIiRyZWxlYXNl IjsgdGhlbgoJJGVjaG8gIiRtb2RlbmFtZTogd2FybmluZzogXGAtcmVsZWFzZScgaXMgaWdub3Jl ZCBmb3IgcHJvZ3JhbXMiIDE+JjIKICAgICAgZmkKCiAgICAgIGlmIHRlc3QgIiRwcmVsb2FkIiA9 IHllczsgdGhlbgoJaWYgdGVzdCAiJGRsb3BlbiIgPSB1bmtub3duICYmIHRlc3QgIiRkbG9wZW5f c2VsZiIgPSB1bmtub3duICYmCgkgICB0ZXN0ICIkZGxvcGVuX3NlbGZfc3RhdGljIiA9IHVua25v d247IHRoZW4KCSAgJGVjaG8gIiRtb2RlbmFtZTogd2FybmluZzogXGBBQ19MSUJUT09MX0RMT1BF Ticgbm90IHVzZWQuIEFzc3VtaW5nIG5vIGRsb3BlbiBzdXBwb3J0LiIKCWZpIAogICAgICBmaQog ICAgCiAgICAgIGlmIHRlc3QgLW4gIiRycGF0aCR4cnBhdGgiOyB0aGVuCgkjIElmIHRoZSB1c2Vy IHNwZWNpZmllZCBhbnkgcnBhdGggZmxhZ3MsIHRoZW4gYWRkIHRoZW0uCglmb3IgbGliZGlyIGlu ICRycGF0aCAkeHJwYXRoOyBkbwoJICAjIFRoaXMgaXMgdGhlIG1hZ2ljIHRvIHVzZSAtcnBhdGgu CgkgIGNhc2UgIiRjb21waWxlX3JwYXRoICIgaW4KCSAgKiIgJGxpYmRpciAiKikgOzsKCSAgKikg Y29tcGlsZV9ycGF0aD0iJGNvbXBpbGVfcnBhdGggJGxpYmRpciIgOzsKCSAgZXNhYwoJICBjYXNl ICIkZmluYWxpemVfcnBhdGggIiBpbgoJICAqIiAkbGliZGlyICIqKSA7OwoJICAqKSBmaW5hbGl6 ZV9ycGF0aD0iJGZpbmFsaXplX3JwYXRoICRsaWJkaXIiIDs7CgkgIGVzYWMKCWRvbmUKICAgICAg ZmkKCiAgICAgICMgTm93IGhhcmRjb2RlIHRoZSBsaWJyYXJ5IHBhdGhzCiAgICAgIHJwYXRoPQog ICAgICBoYXJkY29kZV9saWJkaXJzPQogICAgICBmb3IgbGliZGlyIGluICRjb21waWxlX3JwYXRo ICRmaW5hbGl6ZV9ycGF0aDsgZG8KCWlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfZmxhZ19z cGVjIjsgdGhlbgoJICBpZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciI7IHRo ZW4KCSAgICBpZiB0ZXN0IC16ICIkaGFyZGNvZGVfbGliZGlycyI7IHRoZW4KCSAgICAgIGhhcmRj b2RlX2xpYmRpcnM9IiRsaWJkaXIiCgkgICAgZWxzZQoJICAgICAgIyBKdXN0IGFjY3VtdWxhdGUg dGhlIHVuaXF1ZSBsaWJkaXJzLgoJICAgICAgY2FzZSAiJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0 b3IkaGFyZGNvZGVfbGliZGlycyRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIiBpbgoJICAgICAg KiIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciRsaWJkaXIkaGFyZGNvZGVfbGliZGlyX3NlcGFy YXRvciIqKQoJCTs7CgkgICAgICAqKQoJCWhhcmRjb2RlX2xpYmRpcnM9IiRoYXJkY29kZV9saWJk aXJzJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IkbGliZGlyIgoJCTs7CgkgICAgICBlc2FjCgkg ICAgZmkKCSAgZWxzZQoJICAgIGV2YWwgZmxhZz1cIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj XCIKCSAgICBycGF0aD0iJHJwYXRoICRmbGFnIgoJICBmaQoJZWxpZiB0ZXN0IC1uICIkcnVucGF0 aF92YXIiOyB0aGVuCgkgIGNhc2UgIiRwZXJtX3JwYXRoICIgaW4KCSAgKiIgJGxpYmRpciAiKikg OzsKCSAgKikgcGVybV9ycGF0aD0iJHBlcm1fcnBhdGggJGxpYmRpciIgOzsKCSAgZXNhYwoJZmkK ICAgICAgZG9uZQogICAgICAjIFN1YnN0aXR1dGUgdGhlIGhhcmRjb2RlZCBsaWJkaXJzIGludG8g dGhlIHJwYXRoLgogICAgICBpZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciIg JiYKCSB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlycyI7IHRoZW4KCWxpYmRpcj0iJGhhcmRjb2Rl X2xpYmRpcnMiCglldmFsIHJwYXRoPVwiICRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjXCIKICAg ICAgZmkKICAgICAgY29tcGlsZV9ycGF0aD0iJHJwYXRoIgoKICAgICAgcnBhdGg9CiAgICAgIGhh cmRjb2RlX2xpYmRpcnM9CiAgICAgIGZvciBsaWJkaXIgaW4gJGZpbmFsaXplX3JwYXRoOyBkbwoJ aWYgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMiOyB0aGVuCgkgIGlmIHRlc3Qg LW4gIiRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIjsgdGhlbgoJICAgIGlmIHRlc3QgLXogIiRo YXJkY29kZV9saWJkaXJzIjsgdGhlbgoJICAgICAgaGFyZGNvZGVfbGliZGlycz0iJGxpYmRpciIK CSAgICBlbHNlCgkgICAgICAjIEp1c3QgYWNjdW11bGF0ZSB0aGUgdW5pcXVlIGxpYmRpcnMuCgkg ICAgICBjYXNlICIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciRoYXJkY29kZV9saWJkaXJzJGhh cmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IiIGluCgkgICAgICAqIiRoYXJkY29kZV9saWJkaXJfc2Vw YXJhdG9yJGxpYmRpciRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIiopCgkJOzsKCSAgICAgICop CgkJaGFyZGNvZGVfbGliZGlycz0iJGhhcmRjb2RlX2xpYmRpcnMkaGFyZGNvZGVfbGliZGlyX3Nl cGFyYXRvciRsaWJkaXIiCgkJOzsKCSAgICAgIGVzYWMKCSAgICBmaQoJICBlbHNlCgkgICAgZXZh bCBmbGFnPVwiJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNcIgoJICAgIHJwYXRoPSIkcnBhdGgg JGZsYWciCgkgIGZpCgllbGlmIHRlc3QgLW4gIiRydW5wYXRoX3ZhciI7IHRoZW4KCSAgY2FzZSAi JGZpbmFsaXplX3Blcm1fcnBhdGggIiBpbgoJICAqIiAkbGliZGlyICIqKSA7OwoJICAqKSBmaW5h bGl6ZV9wZXJtX3JwYXRoPSIkZmluYWxpemVfcGVybV9ycGF0aCAkbGliZGlyIiA7OwoJICBlc2Fj CglmaQogICAgICBkb25lCiAgICAgICMgU3Vic3RpdHV0ZSB0aGUgaGFyZGNvZGVkIGxpYmRpcnMg aW50byB0aGUgcnBhdGguCiAgICAgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfc2VwYXJh dG9yIiAmJgoJIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJzIjsgdGhlbgoJbGliZGlyPSIkaGFy ZGNvZGVfbGliZGlycyIKCWV2YWwgcnBhdGg9XCIgJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNc IgogICAgICBmaQogICAgICBmaW5hbGl6ZV9ycGF0aD0iJHJwYXRoIgoKICAgICAgb3V0cHV0X29i amRpcj1gJGVjaG8gIlgkb3V0cHV0IiB8ICRYc2VkIC1lICdzJS9bXi9dKiQlJSdgCiAgICAgIGlm IHRlc3QgIlgkb3V0cHV0X29iamRpciIgPSAiWCRvdXRwdXQiOyB0aGVuCglvdXRwdXRfb2JqZGly PSIkb2JqZGlyIgogICAgICBlbHNlCglvdXRwdXRfb2JqZGlyPSIkb3V0cHV0X29iamRpci8kb2Jq ZGlyIgogICAgICBmaQoKICAgICAgIyBDcmVhdGUgdGhlIGJpbmFyeSBpbiB0aGUgb2JqZWN0IGRp cmVjdG9yeSwgdGhlbiB3cmFwIGl0LgogICAgICBpZiB0ZXN0ICEgLWQgJG91dHB1dF9vYmpkaXI7 IHRoZW4KCSRzaG93ICIkbWtkaXIgJG91dHB1dF9vYmpkaXIiCgkkcnVuICRta2RpciAkb3V0cHV0 X29iamRpcgoJc3RhdHVzPSQ/CglpZiB0ZXN0ICRzdGF0dXMgLW5lIDAgJiYgdGVzdCAhIC1kICRv dXRwdXRfb2JqZGlyOyB0aGVuCgkgIGV4aXQgJHN0YXR1cwoJZmkKICAgICAgZmkKCiAgICAgIGlm IHRlc3QgLW4gIiRsaWJvYmpzIiAmJiB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMiID0geWVzOyB0aGVu CgkjIFRyYW5zZm9ybSBhbGwgdGhlIGxpYnJhcnkgb2JqZWN0cyBpbnRvIHN0YW5kYXJkIG9iamVj dHMuCgljb21waWxlX2NvbW1hbmQ9YCRlY2hvICJYJGNvbXBpbGVfY29tbWFuZCIgfCAkU1AyTkwg fCAkWHNlZCAtZSAiJGxvMm8iIHwgJE5MMlNQYAoJZmluYWxpemVfY29tbWFuZD1gJGVjaG8gIlgk ZmluYWxpemVfY29tbWFuZCIgfCAkU1AyTkwgfCAkWHNlZCAtZSAiJGxvMm8iIHwgJE5MMlNQYAog ICAgICBmaQoKICAgICAgZGxzeW1zPQogICAgICBpZiB0ZXN0IC1uICIkZGxmaWxlcyRkbHByZWZp bGVzIiB8fCB0ZXN0ICIkZGxzZWxmIiAhPSBubzsgdGhlbgoJaWYgdGVzdCAtbiAiJE5NIiAmJiB0 ZXN0IC1uICIkZ2xvYmFsX3N5bWJvbF9waXBlIjsgdGhlbgoJICBkbHN5bXM9IiR7b3V0cHV0bmFt ZX1TLmMiCgllbHNlCgkgICRlY2hvICIkbW9kZW5hbWU6IG5vdCBjb25maWd1cmVkIHRvIGV4dHJh Y3QgZ2xvYmFsIHN5bWJvbHMgZnJvbSBkbHByZW9wZW5lZCBmaWxlcyIgMT4mMgoJZmkKICAgICAg ZmkKCiAgICAgIGlmIHRlc3QgLW4gIiRkbHN5bXMiOyB0aGVuCgljYXNlICIkZGxzeW1zIiBpbgoJ IiIpIDs7CgkqLmMpCgkgICMgRGlzY292ZXIgdGhlIG5saXN0IG9mIGVhY2ggb2YgdGhlIGRsZmls ZXMuCgkgIG5saXN0PSIkb3V0cHV0X29iamRpci8ke291dHB1dG5hbWV9Lm5tIgoKCSAgJHNob3cg IiRybSAkbmxpc3QgJHtubGlzdH1TICR7bmxpc3R9VCIKCSAgJHJ1biAkcm0gIiRubGlzdCIgIiR7 bmxpc3R9UyIgIiR7bmxpc3R9VCIKCgkgICMgUGFyc2UgdGhlIG5hbWUgbGlzdCBpbnRvIGEgc291 cmNlIGZpbGUuCgkgICRzaG93ICJjcmVhdGluZyAkb3V0cHV0X29iamRpci8kZGxzeW1zIgoKCSAg dGVzdCAteiAiJHJ1biIgJiYgJGVjaG8gPiAiJG91dHB1dF9vYmpkaXIvJGRsc3ltcyIgIlwKLyog JGRsc3ltcyAtIHN5bWJvbCByZXNvbHV0aW9uIHRhYmxlIGZvciBcYCRvdXRwdXRuYW1lJyBkbHN5 bSBlbXVsYXRpb24uICovCi8qIEdlbmVyYXRlZCBieSAkUFJPR1JBTSAtIEdOVSAkUEFDS0FHRSAk VkVSU0lPTiRUSU1FU1RBTVAgKi8KCiNpZmRlZiBfX2NwbHVzcGx1cwpleHRlcm4gXCJDXCIgewoj ZW5kaWYKCi8qIFByZXZlbnQgdGhlIG9ubHkga2luZCBvZiBkZWNsYXJhdGlvbiBjb25mbGljdHMg d2UgY2FuIG1ha2UuICovCiNkZWZpbmUgbHRfcHJlbG9hZGVkX3N5bWJvbHMgc29tZV9vdGhlcl9z eW1ib2wKCi8qIEV4dGVybmFsIHN5bWJvbCBkZWNsYXJhdGlvbnMgZm9yIHRoZSBjb21waWxlci4g Ki9cCiIKCgkgIGlmIHRlc3QgIiRkbHNlbGYiID0geWVzOyB0aGVuCgkgICAgJHNob3cgImdlbmVy YXRpbmcgc3ltYm9sIGxpc3QgZm9yIFxgJG91dHB1dCciCgoJICAgIHRlc3QgLXogIiRydW4iICYm ICRlY2hvICc6IEBQUk9HUkFNQCAnID4gIiRubGlzdCIKCgkgICAgIyBBZGQgb3VyIG93biBwcm9n cmFtIG9iamVjdHMgdG8gdGhlIHN5bWJvbCBsaXN0LgoJICAgIHByb2dmaWxlcz1gJGVjaG8gIlgk b2JqcyIgfCAkU1AyTkwgfCAkWHNlZCAtZSAiJGxvMm8iIHwgJE5MMlNQYAoJICAgIGZvciBhcmcg aW4gJHByb2dmaWxlczsgZG8KCSAgICAgICRzaG93ICJleHRyYWN0aW5nIGdsb2JhbCBDIHN5bWJv bHMgZnJvbSBcYCRhcmcnIgoJICAgICAgJHJ1biBldmFsICIkTk0gJGFyZyB8ICRnbG9iYWxfc3lt Ym9sX3BpcGUgPj4gJyRubGlzdCciCgkgICAgZG9uZQoKCSAgICBpZiB0ZXN0IC1uICIkZXhjbHVk ZV9leHBzeW1zIjsgdGhlbgoJICAgICAgJHJ1biBldmFsICdlZ3JlcCAtdiAiICgkZXhjbHVkZV9l eHBzeW1zKSQiICIkbmxpc3QiID4gIiRubGlzdCJUJwoJICAgICAgJHJ1biBldmFsICckbXYgIiRu bGlzdCJUICIkbmxpc3QiJwoJICAgIGZpCgkgICAgCgkgICAgaWYgdGVzdCAtbiAiJGV4cG9ydF9z eW1ib2xzX3JlZ2V4IjsgdGhlbgoJICAgICAgJHJ1biBldmFsICdlZ3JlcCAtZSAiJGV4cG9ydF9z eW1ib2xzX3JlZ2V4IiAiJG5saXN0IiA+ICIkbmxpc3QiVCcKCSAgICAgICRydW4gZXZhbCAnJG12 ICIkbmxpc3QiVCAiJG5saXN0IicKCSAgICBmaQoKCSAgICAjIFByZXBhcmUgdGhlIGxpc3Qgb2Yg ZXhwb3J0ZWQgc3ltYm9scwoJICAgIGlmIHRlc3QgLXogIiRleHBvcnRfc3ltYm9scyI7IHRoZW4K CSAgICAgIGV4cG9ydF9zeW1ib2xzPSIkb3V0cHV0X29iamRpci8kb3V0cHV0LmV4cCIKCSAgICAg ICRydW4gJHJtICRleHBvcnRfc3ltYm9scwoJICAgICAgJHJ1biBldmFsICJzZWQgLW4gLWUgJy9e OiBAUFJPR1JBTUAkL2QnIC1lICdzL14uKiBcKC4qXCkkL1wxL3AnICInPCAiJG5saXN0IiA+ICIk ZXhwb3J0X3N5bWJvbHMiJwoJICAgIGVsc2UKCSAgICAgICRydW4gZXZhbCAic2VkIC1lICdzL1wo W11bLipeJF1cKS9cXFwxL2cnIC1lICdzL14vIC8nIC1lICdzLyQvJC8nIicgPCAiJGV4cG9ydF9z eW1ib2xzIiA+ICIkb3V0cHV0X29iamRpci8kb3V0cHV0LmV4cCInCgkgICAgICAkcnVuIGV2YWwg J2dyZXAgLWYgIiRvdXRwdXRfb2JqZGlyLyRvdXRwdXQuZXhwIiA8ICIkbmxpc3QiID4gIiRubGlz dCJUJwoJICAgICAgJHJ1biBldmFsICdtdiAiJG5saXN0IlQgIiRubGlzdCInCgkgICAgZmkKCSAg ZmkKCgkgIGZvciBhcmcgaW4gJGRscHJlZmlsZXM7IGRvCgkgICAgJHNob3cgImV4dHJhY3Rpbmcg Z2xvYmFsIEMgc3ltYm9scyBmcm9tIFxgJGFyZyciCgkgICAgbmFtZT1gZWNobyAiJGFyZyIgfCBz ZWQgLWUgJ3MlXi4qLyUlJ2AKCSAgICAkcnVuIGV2YWwgJ2VjaG8gIjogJG5hbWUgIiA+PiAiJG5s aXN0IicKCSAgICAkcnVuIGV2YWwgIiROTSAkYXJnIHwgJGdsb2JhbF9zeW1ib2xfcGlwZSA+PiAn JG5saXN0JyIKCSAgZG9uZQoKCSAgaWYgdGVzdCAteiAiJHJ1biI7IHRoZW4KCSAgICAjIE1ha2Ug c3VyZSB3ZSBoYXZlIGF0IGxlYXN0IGFuIGVtcHR5IGZpbGUuCgkgICAgdGVzdCAtZiAiJG5saXN0 IiB8fCA6ID4gIiRubGlzdCIKCgkgICAgaWYgdGVzdCAtbiAiJGV4Y2x1ZGVfZXhwc3ltcyI7IHRo ZW4KCSAgICAgIGVncmVwIC12ICIgKCRleGNsdWRlX2V4cHN5bXMpJCIgIiRubGlzdCIgPiAiJG5s aXN0IlQKCSAgICAgICRtdiAiJG5saXN0IlQgIiRubGlzdCIKCSAgICBmaQoKCSAgICAjIFRyeSBz b3J0aW5nIGFuZCB1bmlxdWlmeWluZyB0aGUgb3V0cHV0LgoJICAgIGlmIGdyZXAgLXYgIl46ICIg PCAiJG5saXN0IiB8IHNvcnQgKzIgfCB1bmlxID4gIiRubGlzdCJTOyB0aGVuCgkgICAgICA6Cgkg ICAgZWxzZQoJICAgICAgZ3JlcCAtdiAiXjogIiA8ICIkbmxpc3QiID4gIiRubGlzdCJTCgkgICAg ZmkKCgkgICAgaWYgdGVzdCAtZiAiJG5saXN0IlM7IHRoZW4KCSAgICAgIGV2YWwgIiRnbG9iYWxf c3ltYm9sX3RvX2NkZWNsIicgPCAiJG5saXN0IlMgPj4gIiRvdXRwdXRfb2JqZGlyLyRkbHN5bXMi JwoJICAgIGVsc2UKCSAgICAgIGVjaG8gJy8qIE5PTkUgKi8nID4+ICIkb3V0cHV0X29iamRpci8k ZGxzeW1zIgoJICAgIGZpCgoJICAgICRlY2hvID4+ICIkb3V0cHV0X29iamRpci8kZGxzeW1zIiAi XAoKI3VuZGVmIGx0X3ByZWxvYWRlZF9zeW1ib2xzCgojaWYgZGVmaW5lZCAoX19TVERDX18pICYm IF9fU1REQ19fCiMgZGVmaW5lIGx0X3B0cl90IHZvaWQgKgojZWxzZQojIGRlZmluZSBsdF9wdHJf dCBjaGFyICoKIyBkZWZpbmUgY29uc3QKI2VuZGlmCgovKiBUaGUgbWFwcGluZyBiZXR3ZWVuIHN5 bWJvbCBuYW1lcyBhbmQgc3ltYm9scy4gKi8KY29uc3Qgc3RydWN0IHsKICBjb25zdCBjaGFyICpu YW1lOwogIGx0X3B0cl90IGFkZHJlc3M7Cn0KbHRfcHJlbG9hZGVkX3N5bWJvbHNbXSA9CntcCiIK CgkgICAgc2VkIC1uIC1lICdzL146IFwoW14gXSpcKSAkLyAge1wiXDFcIiwgKGx0X3B0cl90KSAw fSwvcCcgXAoJCS1lICdzL14uIFwoW14gXSpcKSBcKFteIF0qXCkkLyAgeyJcMiIsIChsdF9wdHJf dCkgXCZcMn0sL3AnIFwKCQkgIDwgIiRubGlzdCIgPj4gIiRvdXRwdXRfb2JqZGlyLyRkbHN5bXMi CgoJICAgICRlY2hvID4+ICIkb3V0cHV0X29iamRpci8kZGxzeW1zIiAiXAogIHswLCAobHRfcHRy X3QpIDB9Cn07CgovKiBUaGlzIHdvcmtzIGFyb3VuZCBhIHByb2JsZW0gaW4gRnJlZUJTRCBsaW5r ZXIgKi8KI2lmZGVmIEZSRUVCU0RfV09SS0FST1VORApzdGF0aWMgY29uc3Qgdm9pZCAqbHRfcHJl bG9hZGVkX3NldHVwKCkgewogIHJldHVybiBsdF9wcmVsb2FkZWRfc3ltYm9sczsKfQojZW5kaWYK CiNpZmRlZiBfX2NwbHVzcGx1cwp9CiNlbmRpZlwKIgoJICBmaQoKCSAgcGljX2ZsYWdfZm9yX3N5 bXRhYmxlPQoJICBjYXNlICIkaG9zdCIgaW4KCSAgIyBjb21waWxpbmcgdGhlIHN5bWJvbCB0YWJs ZSBmaWxlIHdpdGggcGljX2ZsYWcgd29ya3MgYXJvdW5kCgkgICMgYSBGcmVlQlNEIGJ1ZyB0aGF0 IGNhdXNlcyBwcm9ncmFtcyB0byBjcmFzaCB3aGVuIC1sbSBpcwoJICAjIGxpbmtlZCBiZWZvcmUg YW55IG90aGVyIFBJQyBvYmplY3QuICBCdXQgd2UgbXVzdCBub3QgdXNlCgkgICMgcGljX2ZsYWcg d2hlbiBsaW5raW5nIHdpdGggLXN0YXRpYy4gIFRoZSBwcm9ibGVtIGV4aXN0cyBpbgoJICAjIEZy ZWVCU0QgMi4yLjYgYW5kIGlzIGZpeGVkIGluIEZyZWVCU0QgMy4xLgoJICAqLSotZnJlZWJzZDIq fCotKi1mcmVlYnNkMy4wKnwqLSotZnJlZWJzZGVsZjMuMCopDQoJICAgIGNhc2UgIiRjb21waWxl X2NvbW1hbmQgIiBpbgoJICAgICoiIC1zdGF0aWMgIiopIDs7CgkgICAgKikgcGljX2ZsYWdfZm9y X3N5bXRhYmxlPSIgJHBpY19mbGFnIC1EUElDIC1ERlJFRUJTRF9XT1JLQVJPVU5EIjs7CgkgICAg ZXNhYzs7CgkgICotKi1ocHV4KikKCSAgICBjYXNlICIkY29tcGlsZV9jb21tYW5kICIgaW4KCSAg ICAqIiAtc3RhdGljICIqKSA7OwoJICAgICopIHBpY19mbGFnX2Zvcl9zeW10YWJsZT0iICRwaWNf ZmxhZyAtRFBJQyI7OwoJICAgIGVzYWMKCSAgZXNhYwoKCSAgIyBOb3cgY29tcGlsZSB0aGUgZHlu YW1pYyBzeW1ib2wgZmlsZS4KCSAgJHNob3cgIihjZCAkb3V0cHV0X29iamRpciAmJiAkQ0MgLWMk bm9fYnVpbHRpbl9mbGFnJHBpY19mbGFnX2Zvcl9zeW10YWJsZSBcIiRkbHN5bXNcIikiCgkgICRy dW4gZXZhbCAnKGNkICRvdXRwdXRfb2JqZGlyICYmICRDQyAtYyRub19idWlsdGluX2ZsYWckcGlj X2ZsYWdfZm9yX3N5bXRhYmxlICIkZGxzeW1zIiknIHx8IGV4aXQgJD8KCgkgICMgQ2xlYW4gdXAg dGhlIGdlbmVyYXRlZCBmaWxlcy4KCSAgJHNob3cgIiRybSAkb3V0cHV0X29iamRpci8kZGxzeW1z ICRubGlzdCAke25saXN0fVMgJHtubGlzdH1UIgoJICAkcnVuICRybSAiJG91dHB1dF9vYmpkaXIv JGRsc3ltcyIgIiRubGlzdCIgIiR7bmxpc3R9UyIgIiR7bmxpc3R9VCIKCgkgICMgVHJhbnNmb3Jt IHRoZSBzeW1ib2wgZmlsZSBpbnRvIHRoZSBjb3JyZWN0IG5hbWUuCgkgIGNvbXBpbGVfY29tbWFu ZD1gJGVjaG8gIlgkY29tcGlsZV9jb21tYW5kIiB8ICRYc2VkIC1lICJzJUBTWU1GSUxFQCUkb3V0 cHV0X29iamRpci8ke291dHB1dG5hbWV9Uy4ke29iamV4dH0lImAKCSAgZmluYWxpemVfY29tbWFu ZD1gJGVjaG8gIlgkZmluYWxpemVfY29tbWFuZCIgfCAkWHNlZCAtZSAicyVAU1lNRklMRUAlJG91 dHB1dF9vYmpkaXIvJHtvdXRwdXRuYW1lfVMuJHtvYmpleHR9JSJgCgkgIDs7CgkqKQoJICAkZWNo byAiJG1vZGVuYW1lOiB1bmtub3duIHN1ZmZpeCBmb3IgXGAkZGxzeW1zJyIgMT4mMgoJICBleGl0 IDEKCSAgOzsKCWVzYWMKICAgICAgZWxzZQoJIyBXZSBrZWVwIGdvaW5nIGp1c3QgaW4gY2FzZSB0 aGUgdXNlciBkaWRuJ3QgcmVmZXIgdG8KCSMgbHRfcHJlbG9hZGVkX3N5bWJvbHMuICBUaGUgbGlu a2VyIHdpbGwgZmFpbCBpZiBnbG9iYWxfc3ltYm9sX3BpcGUKCSMgcmVhbGx5IHdhcyByZXF1aXJl ZC4KCgkjIE51bGxpZnkgdGhlIHN5bWJvbCBmaWxlLgoJY29tcGlsZV9jb21tYW5kPWAkZWNobyAi WCRjb21waWxlX2NvbW1hbmQiIHwgJFhzZWQgLWUgInMlIEBTWU1GSUxFQCUlImAKCWZpbmFsaXpl X2NvbW1hbmQ9YCRlY2hvICJYJGZpbmFsaXplX2NvbW1hbmQiIHwgJFhzZWQgLWUgInMlIEBTWU1G SUxFQCUlImAKICAgICAgZmkKCiAgICAgIGlmIHRlc3QgLXogIiRsaW5rX2FnYWluc3RfbGlidG9v bF9saWJzIiB8fCB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiAhPSB5ZXM7IHRoZW4KCSMgUmVw bGFjZSB0aGUgb3V0cHV0IGZpbGUgc3BlY2lmaWNhdGlvbi4KCWNvbXBpbGVfY29tbWFuZD1gJGVj aG8gIlgkY29tcGlsZV9jb21tYW5kIiB8ICRYc2VkIC1lICdzJUBPVVRQVVRAJSciJG91dHB1dCIn JWcnYAoJbGlua19jb21tYW5kPSIkY29tcGlsZV9jb21tYW5kJGNvbXBpbGVfcnBhdGgiCgoJIyBX ZSBoYXZlIG5vIHVuaW5zdGFsbGVkIGxpYnJhcnkgZGVwZW5kZW5jaWVzLCBzbyBmaW5hbGl6ZSBy aWdodCBub3cuCgkkc2hvdyAiJGxpbmtfY29tbWFuZCIKCSRydW4gZXZhbCAiJGxpbmtfY29tbWFu ZCIKCXN0YXR1cz0kPwoJCgkjIERlbGV0ZSB0aGUgZ2VuZXJhdGVkIGZpbGVzLgoJaWYgdGVzdCAt biAiJGRsc3ltcyI7IHRoZW4KCSAgJHNob3cgIiRybSAkb3V0cHV0X29iamRpci8ke291dHB1dG5h bWV9Uy4ke29iamV4dH0iCgkgICRydW4gJHJtICIkb3V0cHV0X29iamRpci8ke291dHB1dG5hbWV9 Uy4ke29iamV4dH0iCglmaQoKCWV4aXQgJHN0YXR1cwogICAgICBmaQoKICAgICAgaWYgdGVzdCAt biAiJHNobGlicGF0aF92YXIiOyB0aGVuCgkjIFdlIHNob3VsZCBzZXQgdGhlIHNobGlicGF0aF92 YXIKCXJwYXRoPQoJZm9yIGRpciBpbiAkdGVtcF9ycGF0aDsgZG8KCSAgY2FzZSAiJGRpciIgaW4K CSAgW1xcL10qIHwgW0EtWmEtel06W1xcL10qKQoJICAgICMgQWJzb2x1dGUgcGF0aC4KCSAgICBy cGF0aD0iJHJwYXRoJGRpcjoiCgkgICAgOzsKCSAgKikKCSAgICAjIFJlbGF0aXZlIHBhdGg6IGFk ZCBhIHRoaXNkaXIgZW50cnkuCgkgICAgcnBhdGg9IiRycGF0aFwkdGhpc2Rpci8kZGlyOiIKCSAg ICA7OwoJICBlc2FjCglkb25lCgl0ZW1wX3JwYXRoPSIkcnBhdGgiCiAgICAgIGZpCgogICAgICBp ZiB0ZXN0IC1uICIkY29tcGlsZV9zaGxpYnBhdGgkZmluYWxpemVfc2hsaWJwYXRoIjsgdGhlbgoJ Y29tcGlsZV9jb21tYW5kPSIkc2hsaWJwYXRoX3Zhcj1cIiRjb21waWxlX3NobGlicGF0aCRmaW5h bGl6ZV9zaGxpYnBhdGhcJCRzaGxpYnBhdGhfdmFyXCIgJGNvbXBpbGVfY29tbWFuZCIKICAgICAg ZmkKICAgICAgaWYgdGVzdCAtbiAiJGZpbmFsaXplX3NobGlicGF0aCI7IHRoZW4KCWZpbmFsaXpl X2NvbW1hbmQ9IiRzaGxpYnBhdGhfdmFyPVwiJGZpbmFsaXplX3NobGlicGF0aFwkJHNobGlicGF0 aF92YXJcIiAkZmluYWxpemVfY29tbWFuZCIKICAgICAgZmkKCiAgICAgIGNvbXBpbGVfdmFyPQog ICAgICBmaW5hbGl6ZV92YXI9CiAgICAgIGlmIHRlc3QgLW4gIiRydW5wYXRoX3ZhciI7IHRoZW4K CWlmIHRlc3QgLW4gIiRwZXJtX3JwYXRoIjsgdGhlbgoJICAjIFdlIHNob3VsZCBzZXQgdGhlIHJ1 bnBhdGhfdmFyLgoJICBycGF0aD0KCSAgZm9yIGRpciBpbiAkcGVybV9ycGF0aDsgZG8KCSAgICBy cGF0aD0iJHJwYXRoJGRpcjoiCgkgIGRvbmUKCSAgY29tcGlsZV92YXI9IiRydW5wYXRoX3Zhcj1c IiRycGF0aFwkJHJ1bnBhdGhfdmFyXCIgIgoJZmkKCWlmIHRlc3QgLW4gIiRmaW5hbGl6ZV9wZXJt X3JwYXRoIjsgdGhlbgoJICAjIFdlIHNob3VsZCBzZXQgdGhlIHJ1bnBhdGhfdmFyLgoJICBycGF0 aD0KCSAgZm9yIGRpciBpbiAkZmluYWxpemVfcGVybV9ycGF0aDsgZG8KCSAgICBycGF0aD0iJHJw YXRoJGRpcjoiCgkgIGRvbmUKCSAgZmluYWxpemVfdmFyPSIkcnVucGF0aF92YXI9XCIkcnBhdGhc JCRydW5wYXRoX3ZhclwiICIKCWZpCiAgICAgIGZpCgogICAgICBpZiB0ZXN0ICIkaGFyZGNvZGVf YWN0aW9uIiA9IHJlbGluazsgdGhlbgoJIyBGYXN0IGluc3RhbGxhdGlvbiBpcyBub3Qgc3VwcG9y dGVkCglsaW5rX2NvbW1hbmQ9IiRjb21waWxlX3ZhciRjb21waWxlX2NvbW1hbmQkY29tcGlsZV9y cGF0aCIKCXJlbGlua19jb21tYW5kPSIkZmluYWxpemVfdmFyJGZpbmFsaXplX2NvbW1hbmQkZmlu YWxpemVfcnBhdGgiCgkKCSRlY2hvICIkbW9kZW5hbWU6IHdhcm5pbmc6IHRoaXMgcGxhdGZvcm0g ZG9lcyBub3QgbGlrZSB1bmluc3RhbGxlZCBzaGFyZWQgbGlicmFyaWVzIiAxPiYyCgkkZWNobyAi JG1vZGVuYW1lOiBcYCRvdXRwdXQnIHdpbGwgYmUgcmVsaW5rZWQgZHVyaW5nIGluc3RhbGxhdGlv biIgMT4mMgogICAgICBlbHNlCglpZiB0ZXN0ICIkZmFzdF9pbnN0YWxsIiAhPSBubzsgdGhlbgoJ ICBsaW5rX2NvbW1hbmQ9IiRmaW5hbGl6ZV92YXIkY29tcGlsZV9jb21tYW5kJGZpbmFsaXplX3Jw YXRoIgoJICBpZiB0ZXN0ICIkZmFzdF9pbnN0YWxsIiA9IHllczsgdGhlbgoJICAgIHJlbGlua19j b21tYW5kPWAkZWNobyAiWCRjb21waWxlX3ZhciRjb21waWxlX2NvbW1hbmQkY29tcGlsZV9ycGF0 aCIgfCAkWHNlZCAtZSAncyVAT1VUUFVUQCVcJHByb2dkaXIvXCRmaWxlJWcnYAoJICBlbHNlCgkg ICAgIyBmYXN0X2luc3RhbGwgaXMgc2V0IHRvIG5lZWRsZXNzCgkgICAgcmVsaW5rX2NvbW1hbmQ9 CgkgIGZpCgllbHNlCgkgIGxpbmtfY29tbWFuZD0iJGNvbXBpbGVfdmFyJGNvbXBpbGVfY29tbWFu ZCRjb21waWxlX3JwYXRoIgoJICByZWxpbmtfY29tbWFuZD0iJGZpbmFsaXplX3ZhciRmaW5hbGl6 ZV9jb21tYW5kJGZpbmFsaXplX3JwYXRoIgoJZmkKICAgICAgZmkKCiAgICAgICMgUmVwbGFjZSB0 aGUgb3V0cHV0IGZpbGUgc3BlY2lmaWNhdGlvbi4KICAgICAgbGlua19jb21tYW5kPWAkZWNobyAi WCRsaW5rX2NvbW1hbmQiIHwgJFhzZWQgLWUgJ3MlQE9VVFBVVEAlJyIkb3V0cHV0X29iamRpci8k b3V0cHV0bmFtZSInJWcnYAogICAgICAKICAgICAgIyBEZWxldGUgdGhlIG9sZCBvdXRwdXQgZmls ZXMuCiAgICAgICRydW4gJHJtICRvdXRwdXQgJG91dHB1dF9vYmpkaXIvJG91dHB1dG5hbWUgJG91 dHB1dF9vYmpkaXIvbHQtJG91dHB1dG5hbWUKCiAgICAgICRzaG93ICIkbGlua19jb21tYW5kIgog ICAgICAkcnVuIGV2YWwgIiRsaW5rX2NvbW1hbmQiIHx8IGV4aXQgJD8KCiAgICAgICMgTm93IGNy ZWF0ZSB0aGUgd3JhcHBlciBzY3JpcHQuCiAgICAgICRzaG93ICJjcmVhdGluZyAkb3V0cHV0IgoK ICAgICAgIyBRdW90ZSB0aGUgcmVsaW5rIGNvbW1hbmQgZm9yIHNoaXBwaW5nLgogICAgICBpZiB0 ZXN0IC1uICIkcmVsaW5rX2NvbW1hbmQiOyB0aGVuCglyZWxpbmtfY29tbWFuZD1gJGVjaG8gIlgk cmVsaW5rX2NvbW1hbmQiIHwgJFhzZWQgLWUgIiRzZWRfcXVvdGVfc3Vic3QiYAogICAgICBmaQoK ICAgICAgIyBRdW90ZSAkZWNobyBmb3Igc2hpcHBpbmcuCiAgICAgIGlmIHRlc3QgIlgkZWNobyIg PSAiWCRTSEVMTCAkMCAtLWZhbGxiYWNrLWVjaG8iOyB0aGVuCgljYXNlICIkMCIgaW4KCVtcXC9d KiB8IFtBLVphLXpdOltcXC9dKikgcWVjaG89IiRTSEVMTCAkMCAtLWZhbGxiYWNrLWVjaG8iOzsK CSopIHFlY2hvPSIkU0hFTEwgYHB3ZGAvJDAgLS1mYWxsYmFjay1lY2hvIjs7Cgllc2FjCglxZWNo bz1gJGVjaG8gIlgkcWVjaG8iIHwgJFhzZWQgLWUgIiRzZWRfcXVvdGVfc3Vic3QiYAogICAgICBl bHNlCglxZWNobz1gJGVjaG8gIlgkZWNobyIgfCAkWHNlZCAtZSAiJHNlZF9xdW90ZV9zdWJzdCJg CiAgICAgIGZpCgogICAgICAjIE9ubHkgYWN0dWFsbHkgZG8gdGhpbmdzIGlmIG91ciBydW4gY29t bWFuZCBpcyBub24tbnVsbC4KICAgICAgaWYgdGVzdCAteiAiJHJ1biI7IHRoZW4KCSMgd2luMzIg d2lsbCB0aGluayB0aGUgc2NyaXB0IGlzIGEgYmluYXJ5IGlmIGl0IGhhcwoJIyBhIC5leGUgc3Vm Zml4LCBzbyB3ZSBzdHJpcCBpdCBvZmYgaGVyZS4KCWNhc2UgJG91dHB1dCBpbgoJICAqLmV4ZSkg b3V0cHV0PWBlY2hvICRvdXRwdXR8c2VkICdzLC5leGUkLCwnYCA7OwoJZXNhYwoJJHJtICRvdXRw dXQKCXRyYXAgIiRybSAkb3V0cHV0OyBleGl0IDEiIDEgMiAxNQoKCSRlY2hvID4gJG91dHB1dCAi XAojISAkU0hFTEwKCiMgJG91dHB1dCAtIHRlbXBvcmFyeSB3cmFwcGVyIHNjcmlwdCBmb3IgJG9i amRpci8kb3V0cHV0bmFtZQojIEdlbmVyYXRlZCBieSAkUFJPR1JBTSAtIEdOVSAkUEFDS0FHRSAk VkVSU0lPTiRUSU1FU1RBTVAKIwojIFRoZSAkb3V0cHV0IHByb2dyYW0gY2Fubm90IGJlIGRpcmVj dGx5IGV4ZWN1dGVkIHVudGlsIGFsbCB0aGUgbGlidG9vbAojIGxpYnJhcmllcyB0aGF0IGl0IGRl cGVuZHMgb24gYXJlIGluc3RhbGxlZC4KIwojIFRoaXMgd3JhcHBlciBzY3JpcHQgc2hvdWxkIG5l dmVyIGJlIG1vdmVkIG91dCBvZiB0aGUgYnVpbGQgZGlyZWN0b3J5LgojIElmIGl0IGlzLCBpdCB3 aWxsIG5vdCBvcGVyYXRlIGNvcnJlY3RseS4KCiMgU2VkIHN1YnN0aXR1dGlvbiB0aGF0IGhlbHBz IHVzIGRvIHJvYnVzdCBxdW90aW5nLiAgSXQgYmFja3NsYXNoaWZpZXMKIyBtZXRhY2hhcmFjdGVy cyB0aGF0IGFyZSBzdGlsbCBhY3RpdmUgd2l0aGluIGRvdWJsZS1xdW90ZWQgc3RyaW5ncy4KWHNl ZD0nc2VkIC1lIDFzL15YLy8nCnNlZF9xdW90ZV9zdWJzdD0nJHNlZF9xdW90ZV9zdWJzdCcKCiMg VGhlIEhQLVVYIGtzaCBhbmQgUE9TSVggc2hlbGwgcHJpbnQgdGhlIHRhcmdldCBkaXJlY3Rvcnkg dG8gc3Rkb3V0CiMgaWYgQ0RQQVRIIGlzIHNldC4KaWYgdGVzdCBcIlwke0NEUEFUSCtzZXR9XCIg PSBzZXQ7IHRoZW4gQ0RQQVRIPTo7IGV4cG9ydCBDRFBBVEg7IGZpCgpyZWxpbmtfY29tbWFuZD1c IiRyZWxpbmtfY29tbWFuZFwiCgojIFRoaXMgZW52aXJvbm1lbnQgdmFyaWFibGUgZGV0ZXJtaW5l cyBvdXIgb3BlcmF0aW9uIG1vZGUuCmlmIHRlc3QgXCJcJGxpYnRvb2xfaW5zdGFsbF9tYWdpY1wi ID0gXCIkbWFnaWNcIjsgdGhlbgogICMgaW5zdGFsbCBtb2RlIG5lZWRzIHRoZSBmb2xsb3dpbmcg dmFyaWFibGU6CiAgbGlua19hZ2FpbnN0X2xpYnRvb2xfbGlicz0nJGxpbmtfYWdhaW5zdF9saWJ0 b29sX2xpYnMnCmVsc2UKICAjIFdoZW4gd2UgYXJlIHNvdXJjZWQgaW4gZXhlY3V0ZSBtb2RlLCBc JGZpbGUgYW5kIFwkZWNobyBhcmUgYWxyZWFkeSBzZXQuCiAgaWYgdGVzdCBcIlwkbGlidG9vbF9l eGVjdXRlX21hZ2ljXCIgIT0gXCIkbWFnaWNcIjsgdGhlbgogICAgZWNobz1cIiRxZWNob1wiCiAg ICBmaWxlPVwiXCQwXCIKICAgICMgTWFrZSBzdXJlIGVjaG8gd29ya3MuCiAgICBpZiB0ZXN0IFwi WFwkMVwiID0gWC0tbm8tcmVleGVjOyB0aGVuCiAgICAgICMgRGlzY2FyZCB0aGUgLS1uby1yZWV4 ZWMgZmxhZywgYW5kIGNvbnRpbnVlLgogICAgICBzaGlmdAogICAgZWxpZiB0ZXN0IFwiWFxgKFwk ZWNobyAnXHQnKSAyPi9kZXYvbnVsbFxgXCIgPSAnWFx0JzsgdGhlbgogICAgICAjIFlpcHBlZSwg XCRlY2hvIHdvcmtzIQogICAgICA6CiAgICBlbHNlCiAgICAgICMgUmVzdGFydCB1bmRlciB0aGUg Y29ycmVjdCBzaGVsbCwgYW5kIHRoZW4gbWF5YmUgXCRlY2hvIHdpbGwgd29yay4KICAgICAgZXhl YyAkU0hFTEwgXCJcJDBcIiAtLW5vLXJlZXhlYyBcJHsxK1wiXCRAXCJ9CiAgICBmaQogIGZpXAoi CgkkZWNobyA+PiAkb3V0cHV0ICJcCgogICMgRmluZCB0aGUgZGlyZWN0b3J5IHRoYXQgdGhpcyBz Y3JpcHQgbGl2ZXMgaW4uCiAgdGhpc2Rpcj1cYFwkZWNobyBcIlhcJGZpbGVcIiB8IFwkWHNlZCAt ZSAncyUvW14vXSokJSUnXGAKICB0ZXN0IFwieFwkdGhpc2RpclwiID0gXCJ4XCRmaWxlXCIgJiYg dGhpc2Rpcj0uCgogICMgRm9sbG93IHN5bWJvbGljIGxpbmtzIHVudGlsIHdlIGdldCB0byB0aGUg cmVhbCB0aGlzZGlyLgogIGZpbGU9XGBscyAtbGQgXCJcJGZpbGVcIiB8IHNlZCAtbiAncy8uKi0+ IC8vcCdcYAogIHdoaWxlIHRlc3QgLW4gXCJcJGZpbGVcIjsgZG8KICAgIGRlc3RkaXI9XGBcJGVj aG8gXCJYXCRmaWxlXCIgfCBcJFhzZWQgLWUgJ3MlL1teL10qXCQlJSdcYAoKICAgICMgSWYgdGhl cmUgd2FzIGEgZGlyZWN0b3J5IGNvbXBvbmVudCwgdGhlbiBjaGFuZ2UgdGhpc2Rpci4KICAgIGlm IHRlc3QgXCJ4XCRkZXN0ZGlyXCIgIT0gXCJ4XCRmaWxlXCI7IHRoZW4KICAgICAgY2FzZSBcIlwk ZGVzdGRpclwiIGluCiAgICAgIFtcXC9dKiB8IFtBLVphLXpdOltcXC9dKikgdGhpc2Rpcj1cIlwk ZGVzdGRpclwiIDs7CiAgICAgICopIHRoaXNkaXI9XCJcJHRoaXNkaXIvXCRkZXN0ZGlyXCIgOzsK ICAgICAgZXNhYwogICAgZmkKCiAgICBmaWxlPVxgXCRlY2hvIFwiWFwkZmlsZVwiIHwgXCRYc2Vk IC1lICdzJV4uKi8lJSdcYAogICAgZmlsZT1cYGxzIC1sZCBcIlwkdGhpc2Rpci9cJGZpbGVcIiB8 IHNlZCAtbiAncy8uKi0+IC8vcCdcYAogIGRvbmUKCiAgIyBUcnkgdG8gZ2V0IHRoZSBhYnNvbHV0 ZSBkaXJlY3RvcnkgbmFtZS4KICBhYnNkaXI9XGBjZCBcIlwkdGhpc2RpclwiICYmIHB3ZFxgCiAg dGVzdCAtbiBcIlwkYWJzZGlyXCIgJiYgdGhpc2Rpcj1cIlwkYWJzZGlyXCIKIgoKCWlmIHRlc3Qg IiRmYXN0X2luc3RhbGwiID0geWVzOyB0aGVuCgkgIGVjaG8gPj4gJG91dHB1dCAiXAogIHByb2dy YW09bHQtJyRvdXRwdXRuYW1lJwogIHByb2dkaXI9XCJcJHRoaXNkaXIvJG9iamRpclwiCiAgCiAg aWYgdGVzdCAhIC1mIFwiXCRwcm9nZGlyL1wkcHJvZ3JhbVwiIHx8IFxcCiAgICAgeyBmaWxlPVxg bHMgLTFkdCBcIlwkcHJvZ2Rpci9cJHByb2dyYW1cIiBcIlwkcHJvZ2Rpci8uLi9cJHByb2dyYW1c IiAyPi9kZXYvbnVsbCB8IHNlZCAxcVxgOyBcXAogICAgICAgdGVzdCBcIlhcJGZpbGVcIiAhPSBc IlhcJHByb2dkaXIvXCRwcm9ncmFtXCI7IH07IHRoZW4KCiAgICBmaWxlPVwiXCRcJC1cJHByb2dy YW1cIgoKICAgIGlmIHRlc3QgISAtZCBcIlwkcHJvZ2RpclwiOyB0aGVuCiAgICAgICRta2RpciBc IlwkcHJvZ2RpclwiCiAgICBlbHNlCiAgICAgICRybSBcIlwkcHJvZ2Rpci9cJGZpbGVcIgogICAg ZmkiCgoJICBlY2hvID4+ICRvdXRwdXQgIlwKCiAgICAjIHJlbGluayBleGVjdXRhYmxlIGlmIG5l Y2Vzc2FyeQogICAgaWYgdGVzdCAtbiBcIlwkcmVsaW5rX2NvbW1hbmRcIjsgdGhlbgogICAgICBp ZiAoY2QgXCJcJHRoaXNkaXJcIiAmJiBldmFsIFwkcmVsaW5rX2NvbW1hbmQpOyB0aGVuIDoKICAg ICAgZWxzZQoJJHJtIFwiXCRwcm9nZGlyL1wkZmlsZVwiCglleGl0IDEKICAgICAgZmkKICAgIGZp CgogICAgJG12IFwiXCRwcm9nZGlyL1wkZmlsZVwiIFwiXCRwcm9nZGlyL1wkcHJvZ3JhbVwiIDI+ L2Rldi9udWxsIHx8CiAgICB7ICRybSBcIlwkcHJvZ2Rpci9cJHByb2dyYW1cIjsKICAgICAgJG12 IFwiXCRwcm9nZGlyL1wkZmlsZVwiIFwiXCRwcm9nZGlyL1wkcHJvZ3JhbVwiOyB9CiAgICAkcm0g XCJcJHByb2dkaXIvXCRmaWxlXCIKICBmaSIKCWVsc2UKCSAgZWNobyA+PiAkb3V0cHV0ICJcCiAg cHJvZ3JhbT0nJG91dHB1dG5hbWUnCiAgcHJvZ2Rpcj1cIlwkdGhpc2Rpci8kb2JqZGlyXCIKIgoJ ZmkKCgllY2hvID4+ICRvdXRwdXQgIlwKCiAgaWYgdGVzdCAtZiBcIlwkcHJvZ2Rpci9cJHByb2dy YW1cIjsgdGhlbiIKCgkjIEV4cG9ydCBvdXIgc2hsaWJwYXRoX3ZhciBpZiB3ZSBoYXZlIG9uZS4K CWlmIHRlc3QgIiRzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGgiID0geWVzICYmIHRlc3QgLW4g IiRzaGxpYnBhdGhfdmFyIiAmJiB0ZXN0IC1uICIkdGVtcF9ycGF0aCI7IHRoZW4KCSAgJGVjaG8g Pj4gJG91dHB1dCAiXAogICAgIyBBZGQgb3VyIG93biBsaWJyYXJ5IHBhdGggdG8gJHNobGlicGF0 aF92YXIKICAgICRzaGxpYnBhdGhfdmFyPVwiJHRlbXBfcnBhdGhcJCRzaGxpYnBhdGhfdmFyXCIK CiAgICAjIFNvbWUgc3lzdGVtcyBjYW5ub3QgY29wZSB3aXRoIGNvbG9uLXRlcm1pbmF0ZWQgJHNo bGlicGF0aF92YXIKICAgICMgVGhlIHNlY29uZCBjb2xvbiBpcyBhIHdvcmthcm91bmQgZm9yIGEg YnVnIGluIEJlT1MgUjQgc2VkCiAgICAkc2hsaWJwYXRoX3Zhcj1cYFwkZWNobyBcIlhcJCRzaGxp YnBhdGhfdmFyXCIgfCBcJFhzZWQgLWUgJ3MvOjoqXCQvLydcYAoKICAgIGV4cG9ydCAkc2hsaWJw YXRoX3ZhcgoiCglmaQoKCSMgZml4dXAgdGhlIGRsbCBzZWFyY2hwYXRoIGlmIHdlIG5lZWQgdG8u CglpZiB0ZXN0IC1uICIkZGxsc2VhcmNocGF0aCI7IHRoZW4KCSAgJGVjaG8gPj4gJG91dHB1dCAi XAogICAgIyBBZGQgdGhlIGRsbCBzZWFyY2ggcGF0aCBjb21wb25lbnRzIHRvIHRoZSBleGVjdXRh YmxlIFBBVEgKICAgIFBBVEg9JGRsbHNlYXJjaHBhdGg6XCRQQVRICiIKCWZpCgoJJGVjaG8gPj4g JG91dHB1dCAiXAogICAgaWYgdGVzdCBcIlwkbGlidG9vbF9leGVjdXRlX21hZ2ljXCIgIT0gXCIk bWFnaWNcIjsgdGhlbgogICAgICAjIFJ1biB0aGUgYWN0dWFsIHByb2dyYW0gd2l0aCBvdXIgYXJn dW1lbnRzLgoiCgljYXNlICRob3N0IGluCgkgICMgd2luMzIgc3lzdGVtcyBuZWVkIHRvIHVzZSB0 aGUgcHJvZyBwYXRoIGZvciBkbGwKCSAgIyBsb29rdXAgdG8gd29yawoJKi0qLWN5Z3dpbiopCgkg ICRlY2hvID4+ICRvdXRwdXQgIlwKICAgICAgZXhlYyBcJHByb2dkaXIvXCRwcm9ncmFtIFwkezEr XCJcJEBcIn0KIgoJICA7OwoKCSMgQmFja3NsYXNoZXMgc2VwYXJhdGUgZGlyZWN0b3JpZXMgb24g cGxhaW4gd2luZG93cwoJKi0qLW1pbmd3IHwgKi0qLW9zMiopCgkgICRlY2hvID4+ICRvdXRwdXQg IlwKICAgICAgZXhlYyBcJHByb2dkaXJcXFxcXCRwcm9ncmFtIFwkezErXCJcJEBcIn0KIgoJICA7 OwoKCSopCgkgICRlY2hvID4+ICRvdXRwdXQgIlwKICAgICAgIyBFeHBvcnQgdGhlIHBhdGggdG8g dGhlIHByb2dyYW0uCiAgICAgIFBBVEg9XCJcJHByb2dkaXI6XCRQQVRIXCIKICAgICAgZXhwb3J0 IFBBVEgKCiAgICAgIGV4ZWMgXCRwcm9ncmFtIFwkezErXCJcJEBcIn0KIgoJICA7OwoJZXNhYwoJ JGVjaG8gPj4gJG91dHB1dCAiXAogICAgICBcJGVjaG8gXCJcJDA6IGNhbm5vdCBleGVjIFwkcHJv Z3JhbSBcJHsxK1wiXCRAXCJ9XCIKICAgICAgZXhpdCAxCiAgICBmaQogIGVsc2UKICAgICMgVGhl IHByb2dyYW0gZG9lc24ndCBleGlzdC4KICAgIFwkZWNobyBcIlwkMDogZXJyb3I6IFwkcHJvZ2Rp ci9cJHByb2dyYW0gZG9lcyBub3QgZXhpc3RcIiAxPiYyCiAgICBcJGVjaG8gXCJUaGlzIHNjcmlw dCBpcyBqdXN0IGEgd3JhcHBlciBmb3IgXCRwcm9ncmFtLlwiIDE+JjIKICAgIGVjaG8gXCJTZWUg dGhlICRQQUNLQUdFIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgaW5mb3JtYXRpb24uXCIgMT4mMgog ICAgZXhpdCAxCiAgZmkKZmlcCiIKCWNobW9kICt4ICRvdXRwdXQKICAgICAgZmkKICAgICAgZXhp dCAwCiAgICAgIDs7CiAgICBlc2FjCgogICAgIyBTZWUgaWYgd2UgbmVlZCB0byBidWlsZCBhbiBv bGQtZmFzaGlvbmVkIGFyY2hpdmUuCiAgICBmb3Igb2xkbGliIGluICRvbGRsaWJzOyBkbwoKICAg ICAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSBjb252ZW5pZW5jZTsgdGhlbgoJb2xk b2Jqcz0iJGxpYm9ianNfc2F2ZSIKCWFkZGxpYnM9IiRjb252ZW5pZW5jZSIKCWJ1aWxkX2xpYnRv b2xfbGlicz1ubwogICAgICBlbHNlCglpZiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiA9IG1v ZHVsZTsgdGhlbgoJICBvbGRvYmpzPSIkbGlib2Jqc19zYXZlIgoJICBidWlsZF9saWJ0b29sX2xp YnM9bm8KCWVsc2UKCSAgb2xkb2Jqcz0iJG9ianMgImAkZWNobyAiWCRsaWJvYmpzX3NhdmUiIHwg JFNQMk5MIHwgJFhzZWQgLWUgJy9cLicke2xpYmV4dH0nJC9kJyAtZSAnL1wubGliJC9kJyAtZSAi JGxvMm8iIHwgJE5MMlNQYAoJZmkKCWFkZGxpYnM9IiRvbGRfY29udmVuaWVuY2UiCiAgICAgIGZp CgogICAgICBpZiB0ZXN0IC1uICIkYWRkbGlicyI7IHRoZW4KCWdlbnRvcD0iJG91dHB1dF9vYmpk aXIvJHtvdXRwdXRuYW1lfXgiCgkkc2hvdyAiJHtybX1yICRnZW50b3AiCgkkcnVuICR7cm19ciAi JGdlbnRvcCIKCSRzaG93ICJta2RpciAkZ2VudG9wIgoJJHJ1biBta2RpciAiJGdlbnRvcCIKCXN0 YXR1cz0kPwoJaWYgdGVzdCAkc3RhdHVzIC1uZSAwICYmIHRlc3QgISAtZCAiJGdlbnRvcCI7IHRo ZW4KCSAgZXhpdCAkc3RhdHVzCglmaQoJZ2VuZXJhdGVkPSIkZ2VuZXJhdGVkICRnZW50b3AiCgkg IAoJIyBBZGQgaW4gbWVtYmVycyBmcm9tIGNvbnZlbmllbmNlIGFyY2hpdmVzLgoJZm9yIHhsaWIg aW4gJGFkZGxpYnM7IGRvCgkgICMgRXh0cmFjdCB0aGUgb2JqZWN0cy4KCSAgY2FzZSAiJHhsaWIi IGluCgkgIFtcXC9dKiB8IFtBLVphLXpdOltcXC9dKikgeGFicz0iJHhsaWIiIDs7CgkgICopIHhh YnM9YHB3ZGAiLyR4bGliIiA7OwoJICBlc2FjCgkgIHhsaWI9YCRlY2hvICJYJHhsaWIiIHwgJFhz ZWQgLWUgJ3MlXi4qLyUlJ2AKCSAgeGRpcj0iJGdlbnRvcC8keGxpYiIKCgkgICRzaG93ICIke3Jt fXIgJHhkaXIiCgkgICRydW4gJHtybX1yICIkeGRpciIKCSAgJHNob3cgIm1rZGlyICR4ZGlyIgoJ ICAkcnVuIG1rZGlyICIkeGRpciIKCSAgc3RhdHVzPSQ/CgkgIGlmIHRlc3QgJHN0YXR1cyAtbmUg MCAmJiB0ZXN0ICEgLWQgIiR4ZGlyIjsgdGhlbgoJICAgIGV4aXQgJHN0YXR1cwoJICBmaQoJICAk c2hvdyAiKGNkICR4ZGlyICYmICRBUiB4ICR4YWJzKSIKCSAgJHJ1biBldmFsICIoY2QgXCR4ZGly ICYmICRBUiB4IFwkeGFicykiIHx8IGV4aXQgJD8KCgkgIG9sZG9ianM9IiRvbGRvYmpzICJgZmlu ZCAkeGRpciAtbmFtZSBcKi4ke29iamV4dH0gLXByaW50IC1vIC1uYW1lIFwqLmxvIC1wcmludCB8 ICROTDJTUGAKCWRvbmUKICAgICAgZmkKCiAgICAgICMgRG8gZWFjaCBjb21tYW5kIGluIHRoZSBh cmNoaXZlIGNvbW1hbmRzLgogICAgICBpZiB0ZXN0IC1uICIkb2xkX2FyY2hpdmVfZnJvbV9uZXdf Y21kcyIgJiYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSB5ZXM7IHRoZW4KCWV2YWwgY21k cz1cIiRvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzXCIKICAgICAgZWxzZQoJIyBFbnN1cmUgdGhh dCB3ZSBoYXZlIC5vIG9iamVjdHMgaW4gcGxhY2UgaW4gY2FzZSB3ZSBkZWNpZGVkCgkjIG5vdCB0 byBidWlsZCBhIHNoYXJlZCBsaWJyYXJ5LCBhbmQgaGF2ZSBmYWxsZW4gYmFjayB0byBidWlsZGlu ZwoJIyBzdGF0aWMgbGlicyBldmVuIHRob3VnaCAtLWRpc2FibGUtc3RhdGljIHdhcyBwYXNzZWQh Cglmb3Igb2xkb2JqIGluICRvbGRvYmpzOyBkbwoJICBpZiB0ZXN0ICEgLWYgJG9sZG9iajsgdGhl bgoJICAgIHhkaXI9YCRlY2hvICJYJG9sZG9iaiIgfCAkWHNlZCAtZSAncyUvW14vXSokJSUnYAoJ ICAgIGlmIHRlc3QgIlgkeGRpciIgPSAiWCRvbGRvYmoiOyB0aGVuCgkgICAgICB4ZGlyPSIuIgoJ ICAgIGVsc2UKCSAgICAgIHhkaXI9IiR4ZGlyIgoJICAgIGZpCgkgICAgYmFzZW9iaj1gJGVjaG8g Ilgkb2xkb2JqIiB8ICRYc2VkIC1lICdzJV4uKi8lJSdgCgkgICAgb2JqPWAkZWNobyAiWCRiYXNl b2JqIiB8ICRYc2VkIC1lICIkbzJsbyJgCgkgICAgJHNob3cgIihjZCAkeGRpciAmJiAke0xOX1N9 ICRvYmogJGJhc2VvYmopIgoJICAgICRydW4gZXZhbCAnKGNkICR4ZGlyICYmICR7TE5fU30gJG9i aiAkYmFzZW9iaiknIHx8IGV4aXQgJD8KCSAgZmkKCWRvbmUKCglldmFsIGNtZHM9XCIkb2xkX2Fy Y2hpdmVfY21kc1wiCiAgICAgIGZpCiAgICAgIElGUz0iJHtJRlM9IAl9Ijsgc2F2ZV9pZnM9IiRJ RlMiOyBJRlM9J34nCiAgICAgIGZvciBjbWQgaW4gJGNtZHM7IGRvCglJRlM9IiRzYXZlX2lmcyIK CSRzaG93ICIkY21kIgoJJHJ1biBldmFsICIkY21kIiB8fCBleGl0ICQ/CiAgICAgIGRvbmUKICAg ICAgSUZTPSIkc2F2ZV9pZnMiCiAgICBkb25lCgogICAgaWYgdGVzdCAtbiAiJGdlbmVyYXRlZCI7 IHRoZW4KICAgICAgJHNob3cgIiR7cm19ciRnZW5lcmF0ZWQiCiAgICAgICRydW4gJHtybX1yJGdl bmVyYXRlZAogICAgZmkKCiAgICAjIE5vdyBjcmVhdGUgdGhlIGxpYnRvb2wgYXJjaGl2ZS4KICAg IGNhc2UgIiRvdXRwdXQiIGluCiAgICAqLmxhKQogICAgICBvbGRfbGlicmFyeT0KICAgICAgaWYg dGVzdCAiJHJlbGVhc2Vfc3VmZml4IiA9IGFsbDsgdGhlbgogICAgICAgIHRlc3QgIiRidWlsZF9v bGRfbGlicyIgPSB5ZXMgJiYgb2xkX2xpYnJhcnk9IiRsaWJuYW1lJHJlbGVhc2UuJGxpYmV4dCIK ICAgICAgZWxzZQogICAgICB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMiID0geWVzICYmIG9sZF9saWJy YXJ5PSIkbGlibmFtZS4kbGliZXh0IgogICAgICBmaQogICAgICAkc2hvdyAiY3JlYXRpbmcgJG91 dHB1dCIKCiAgICAgIGlmIHRlc3QgLW4gIiR4cnBhdGgiOyB0aGVuCgl0ZW1wX3hycGF0aD0KCWZv ciBsaWJkaXIgaW4gJHhycGF0aDsgZG8KCSAgdGVtcF94cnBhdGg9IiR0ZW1wX3hycGF0aCAtUiRs aWJkaXIiCglkb25lCglkZXBlbmRlbmN5X2xpYnM9IiR0ZW1wX3hycGF0aCAkZGVwZW5kZW5jeV9s aWJzIgogICAgICBmaQoKICAgICAgIyBPbmx5IGNyZWF0ZSB0aGUgb3V0cHV0IGlmIG5vdCBhIGRy eSBydW4uCiAgICAgIGlmIHRlc3QgLXogIiRydW4iOyB0aGVuCglmb3IgaW5zdGFsbGVkIGluIG5v IHllczsgZG8KCSAgaWYgdGVzdCAiJGluc3RhbGxlZCIgPSB5ZXM7IHRoZW4KCSAgICBpZiB0ZXN0 IC16ICIkaW5zdGFsbF9saWJkaXIiOyB0aGVuCgkgICAgICBicmVhawoJICAgIGZpCgkgICAgb3V0 cHV0PSIkb3V0cHV0X29iamRpci8kb3V0cHV0bmFtZSJpCgkgIGZpCgkgICRybSAkb3V0cHV0Cgkg ICRlY2hvID4gJG91dHB1dCAiXAojICRvdXRwdXRuYW1lIC0gYSBsaWJ0b29sIGxpYnJhcnkgZmls ZQojIEdlbmVyYXRlZCBieSAkUFJPR1JBTSAtIEdOVSAkUEFDS0FHRSAkVkVSU0lPTiRUSU1FU1RB TVAKIwojIFBsZWFzZSBETyBOT1QgZGVsZXRlIHRoaXMgZmlsZSEKIyBJdCBpcyBuZWNlc3Nhcnkg Zm9yIGxpbmtpbmcgdGhlIGxpYnJhcnkuCgojIFRoZSBuYW1lIHRoYXQgd2UgY2FuIGRsb3Blbigz KS4KZGxuYW1lPSckZGxuYW1lJwoKIyBOYW1lcyBvZiB0aGlzIGxpYnJhcnkuCmxpYnJhcnlfbmFt ZXM9JyRsaWJyYXJ5X25hbWVzJwoKIyBUaGUgbmFtZSBvZiB0aGUgc3RhdGljIGFyY2hpdmUuCm9s ZF9saWJyYXJ5PSckb2xkX2xpYnJhcnknCgojIExpYnJhcmllcyB0aGF0IHRoaXMgb25lIGRlcGVu ZHMgdXBvbi4KZGVwZW5kZW5jeV9saWJzPSckZGVwZW5kZW5jeV9saWJzJwoKIyBWZXJzaW9uIGlu Zm9ybWF0aW9uIGZvciAkbGlibmFtZS4KY3VycmVudD0kY3VycmVudAphZ2U9JGFnZQpyZXZpc2lv bj0kcmV2aXNpb24KCiMgSXMgdGhpcyBhbiBhbHJlYWR5IGluc3RhbGxlZCBsaWJyYXJ5PwppbnN0 YWxsZWQ9JGluc3RhbGxlZAoKIyBEaXJlY3RvcnkgdGhhdCB0aGlzIGxpYnJhcnkgbmVlZHMgdG8g YmUgaW5zdGFsbGVkIGluOgpsaWJkaXI9JyRpbnN0YWxsX2xpYmRpcidcCiIKCWRvbmUKICAgICAg ZmkKCiAgICAgICMgRG8gYSBzeW1ib2xpYyBsaW5rIHNvIHRoYXQgdGhlIGxpYnRvb2wgYXJjaGl2 ZSBjYW4gYmUgZm91bmQgaW4KICAgICAgIyBMRF9MSUJSQVJZX1BBVEggYmVmb3JlIHRoZSBwcm9n cmFtIGlzIGluc3RhbGxlZC4KICAgICAgJHNob3cgIihjZCAkb3V0cHV0X29iamRpciAmJiAkcm0g JG91dHB1dG5hbWUgJiYgJExOX1MgLi4vJG91dHB1dG5hbWUgJG91dHB1dG5hbWUpIgogICAgICAk cnVuIGV2YWwgIihjZCAkb3V0cHV0X29iamRpciAmJiAkcm0gJG91dHB1dG5hbWUgJiYgJExOX1Mg Li4vJG91dHB1dG5hbWUgJG91dHB1dG5hbWUpIiB8fCBleGl0ICQ/CiAgICAgIDs7CiAgICBlc2Fj CiAgICBleGl0IDAKICAgIDs7CgogICMgbGlidG9vbCBpbnN0YWxsIG1vZGUKICBpbnN0YWxsKQog ICAgbW9kZW5hbWU9IiRtb2RlbmFtZTogaW5zdGFsbCIKCiAgICAjIFRoZXJlIG1heSBiZSBhbiBv cHRpb25hbCBzaCgxKSBhcmd1bWVudCBhdCB0aGUgYmVnaW5uaW5nIG9mCiAgICAjIGluc3RhbGxf cHJvZyAoZXNwZWNpYWxseSBvbiBXaW5kb3dzIE5UKS4KICAgIGlmIHRlc3QgIiRub25vcHQiID0g IiRTSEVMTCIgfHwgdGVzdCAiJG5vbm9wdCIgPSAvYmluL3NoOyB0aGVuCiAgICAgICMgQWVzdGhl dGljYWxseSBxdW90ZSBpdC4KICAgICAgYXJnPWAkZWNobyAiWCRub25vcHQiIHwgJFhzZWQgLWUg IiRzZWRfcXVvdGVfc3Vic3QiYAogICAgICBjYXNlICIkYXJnIiBpbgogICAgICAqW1xbXH5cI1xe XCZcKlwoXClce1x9XHxcO1w8XD5cP1wnXCBcCV0qfCpdKikKCWFyZz0iXCIkYXJnXCIiCgk7Owog ICAgICBlc2FjCiAgICAgIGluc3RhbGxfcHJvZz0iJGFyZyAiCiAgICAgIGFyZz0iJDEiCiAgICAg IHNoaWZ0CiAgICBlbHNlCiAgICAgIGluc3RhbGxfcHJvZz0KICAgICAgYXJnPSIkbm9ub3B0Igog ICAgZmkKCiAgICAjIFRoZSByZWFsIGZpcnN0IGFyZ3VtZW50IHNob3VsZCBiZSB0aGUgbmFtZSBv ZiB0aGUgaW5zdGFsbGF0aW9uIHByb2dyYW0uCiAgICAjIEFlc3RoZXRpY2FsbHkgcXVvdGUgaXQu CiAgICBhcmc9YCRlY2hvICJYJGFyZyIgfCAkWHNlZCAtZSAiJHNlZF9xdW90ZV9zdWJzdCJgCiAg ICBjYXNlICIkYXJnIiBpbgogICAgKltcW1x+XCNcXlwmXCpcKFwpXHtcfVx8XDtcPFw+XD9cJ1wg XAldKnwqXSopCiAgICAgIGFyZz0iXCIkYXJnXCIiCiAgICAgIDs7CiAgICBlc2FjCiAgICBpbnN0 YWxsX3Byb2c9IiRpbnN0YWxsX3Byb2ckYXJnIgoKICAgICMgV2UgbmVlZCB0byBhY2NlcHQgYXQg bGVhc3QgYWxsIHRoZSBCU0QgaW5zdGFsbCBmbGFncy4KICAgIGRlc3Q9CiAgICBmaWxlcz0KICAg IG9wdHM9CiAgICBwcmV2PQogICAgaW5zdGFsbF90eXBlPQogICAgaXNkaXI9bm8KICAgIHN0cmlw bWU9CiAgICBmb3IgYXJnCiAgICBkbwogICAgICBpZiB0ZXN0IC1uICIkZGVzdCI7IHRoZW4KCWZp bGVzPSIkZmlsZXMgJGRlc3QiCglkZXN0PSIkYXJnIgoJY29udGludWUKICAgICAgZmkKCiAgICAg IGNhc2UgIiRhcmciIGluCiAgICAgIC1kKSBpc2Rpcj15ZXMgOzsKICAgICAgLWYpIHByZXY9Ii1m IiA7OwogICAgICAtZykgcHJldj0iLWciIDs7CiAgICAgIC1tKSBwcmV2PSItbSIgOzsKICAgICAg LW8pIHByZXY9Ii1vIiA7OwogICAgICAtcykKCXN0cmlwbWU9IiAtcyIKCWNvbnRpbnVlCgk7Owog ICAgICAtKikgOzsKCiAgICAgICopCgkjIElmIHRoZSBwcmV2aW91cyBvcHRpb24gbmVlZGVkIGFu IGFyZ3VtZW50LCB0aGVuIHNraXAgaXQuCglpZiB0ZXN0IC1uICIkcHJldiI7IHRoZW4KCSAgcHJl dj0KCWVsc2UKCSAgZGVzdD0iJGFyZyIKCSAgY29udGludWUKCWZpCgk7OwogICAgICBlc2FjCgog ICAgICAjIEFlc3RoZXRpY2FsbHkgcXVvdGUgdGhlIGFyZ3VtZW50LgogICAgICBhcmc9YCRlY2hv ICJYJGFyZyIgfCAkWHNlZCAtZSAiJHNlZF9xdW90ZV9zdWJzdCJgCiAgICAgIGNhc2UgIiRhcmci IGluCiAgICAgICpbXFtcflwjXF5cJlwqXChcKVx7XH1cfFw7XDxcPlw/XCdcIFwJXSp8Kl0qKQoJ YXJnPSJcIiRhcmdcIiIKCTs7CiAgICAgIGVzYWMKICAgICAgaW5zdGFsbF9wcm9nPSIkaW5zdGFs bF9wcm9nICRhcmciCiAgICBkb25lCgogICAgaWYgdGVzdCAteiAiJGluc3RhbGxfcHJvZyI7IHRo ZW4KICAgICAgJGVjaG8gIiRtb2RlbmFtZTogeW91IG11c3Qgc3BlY2lmeSBhbiBpbnN0YWxsIHBy b2dyYW0iIDE+JjIKICAgICAgJGVjaG8gIiRoZWxwIiAxPiYyCiAgICAgIGV4aXQgMQogICAgZmkK CiAgICBpZiB0ZXN0IC1uICIkcHJldiI7IHRoZW4KICAgICAgJGVjaG8gIiRtb2RlbmFtZTogdGhl IFxgJHByZXYnIG9wdGlvbiByZXF1aXJlcyBhbiBhcmd1bWVudCIgMT4mMgogICAgICAkZWNobyAi JGhlbHAiIDE+JjIKICAgICAgZXhpdCAxCiAgICBmaQoKICAgIGlmIHRlc3QgLXogIiRmaWxlcyI7 IHRoZW4KICAgICAgaWYgdGVzdCAteiAiJGRlc3QiOyB0aGVuCgkkZWNobyAiJG1vZGVuYW1lOiBu byBmaWxlIG9yIGRlc3RpbmF0aW9uIHNwZWNpZmllZCIgMT4mMgogICAgICBlbHNlCgkkZWNobyAi JG1vZGVuYW1lOiB5b3UgbXVzdCBzcGVjaWZ5IGEgZGVzdGluYXRpb24iIDE+JjIKICAgICAgZmkK ICAgICAgJGVjaG8gIiRoZWxwIiAxPiYyCiAgICAgIGV4aXQgMQogICAgZmkKCiAgICAjIFN0cmlw IGFueSB0cmFpbGluZyBzbGFzaCBmcm9tIHRoZSBkZXN0aW5hdGlvbi4KICAgIGRlc3Q9YCRlY2hv ICJYJGRlc3QiIHwgJFhzZWQgLWUgJ3MlLyQlJSdgCgogICAgIyBDaGVjayB0byBzZWUgdGhhdCB0 aGUgZGVzdGluYXRpb24gaXMgYSBkaXJlY3RvcnkuCiAgICB0ZXN0IC1kICIkZGVzdCIgJiYgaXNk aXI9eWVzCiAgICBpZiB0ZXN0ICIkaXNkaXIiID0geWVzOyB0aGVuCiAgICAgIGRlc3RkaXI9IiRk ZXN0IgogICAgICBkZXN0bmFtZT0KICAgIGVsc2UKICAgICAgZGVzdGRpcj1gJGVjaG8gIlgkZGVz dCIgfCAkWHNlZCAtZSAncyUvW14vXSokJSUnYAogICAgICB0ZXN0ICJYJGRlc3RkaXIiID0gIlgk ZGVzdCIgJiYgZGVzdGRpcj0uCiAgICAgIGRlc3RuYW1lPWAkZWNobyAiWCRkZXN0IiB8ICRYc2Vk IC1lICdzJV4uKi8lJSdgCgogICAgICAjIE5vdCBhIGRpcmVjdG9yeSwgc28gY2hlY2sgdG8gc2Vl IHRoYXQgdGhlcmUgaXMgb25seSBvbmUgZmlsZSBzcGVjaWZpZWQuCiAgICAgIHNldCBkdW1teSAk ZmlsZXMKICAgICAgaWYgdGVzdCAkIyAtZ3QgMjsgdGhlbgoJJGVjaG8gIiRtb2RlbmFtZTogXGAk ZGVzdCcgaXMgbm90IGEgZGlyZWN0b3J5IiAxPiYyCgkkZWNobyAiJGhlbHAiIDE+JjIKCWV4aXQg MQogICAgICBmaQogICAgZmkKICAgIGNhc2UgIiRkZXN0ZGlyIiBpbgogICAgW1xcL10qIHwgW0Et WmEtel06W1xcL10qKSA7OwogICAgKikKICAgICAgZm9yIGZpbGUgaW4gJGZpbGVzOyBkbwoJY2Fz ZSAiJGZpbGUiIGluCgkqLmxvKSA7OwoJKikKCSAgJGVjaG8gIiRtb2RlbmFtZTogXGAkZGVzdGRp cicgbXVzdCBiZSBhbiBhYnNvbHV0ZSBkaXJlY3RvcnkgbmFtZSIgMT4mMgoJICAkZWNobyAiJGhl bHAiIDE+JjIKCSAgZXhpdCAxCgkgIDs7Cgllc2FjCiAgICAgIGRvbmUKICAgICAgOzsKICAgIGVz YWMKCiAgICAjIFRoaXMgdmFyaWFibGUgdGVsbHMgd3JhcHBlciBzY3JpcHRzIGp1c3QgdG8gc2V0 IHZhcmlhYmxlcyByYXRoZXIKICAgICMgdGhhbiBydW5uaW5nIHRoZWlyIHByb2dyYW1zLgogICAg bGlidG9vbF9pbnN0YWxsX21hZ2ljPSIkbWFnaWMiCgogICAgc3RhdGljbGlicz0KICAgIGZ1dHVy ZV9saWJkaXJzPQogICAgY3VycmVudF9saWJkaXJzPQogICAgZm9yIGZpbGUgaW4gJGZpbGVzOyBk bwoKICAgICAgIyBEbyBlYWNoIGluc3RhbGxhdGlvbi4KICAgICAgY2FzZSAiJGZpbGUiIGluCiAg ICAgICouYSB8ICoubGliKQoJIyBEbyB0aGUgc3RhdGljIGxpYnJhcmllcyBsYXRlci4KCXN0YXRp Y2xpYnM9IiRzdGF0aWNsaWJzICRmaWxlIgoJOzsKCiAgICAgICoubGEpCgkjIENoZWNrIHRvIHNl ZSB0aGF0IHRoaXMgcmVhbGx5IGlzIGEgbGlidG9vbCBhcmNoaXZlLgoJaWYgKHNlZCAtZSAnMnEn ICRmaWxlIHwgZWdyZXAgIl4jIEdlbmVyYXRlZCBieSAuKiRQQUNLQUdFIikgPi9kZXYvbnVsbCAy PiYxOyB0aGVuIDoKCWVsc2UKCSAgJGVjaG8gIiRtb2RlbmFtZTogXGAkZmlsZScgaXMgbm90IGEg dmFsaWQgbGlidG9vbCBhcmNoaXZlIiAxPiYyCgkgICRlY2hvICIkaGVscCIgMT4mMgoJICBleGl0 IDEKCWZpCgoJbGlicmFyeV9uYW1lcz0KCW9sZF9saWJyYXJ5PQoJIyBJZiB0aGVyZSBpcyBubyBk aXJlY3RvcnkgY29tcG9uZW50LCB0aGVuIGFkZCBvbmUuCgljYXNlICIkZmlsZSIgaW4KCSovKiB8 ICpcXCopIC4gJGZpbGUgOzsKCSopIC4gLi8kZmlsZSA7OwoJZXNhYwoKCSMgQWRkIHRoZSBsaWJk aXIgdG8gY3VycmVudF9saWJkaXJzIGlmIGl0IGlzIHRoZSBkZXN0aW5hdGlvbi4KCWlmIHRlc3Qg IlgkZGVzdGRpciIgPSAiWCRsaWJkaXIiOyB0aGVuCgkgIGNhc2UgIiRjdXJyZW50X2xpYmRpcnMg IiBpbgoJICAqIiAkbGliZGlyICIqKSA7OwoJICAqKSBjdXJyZW50X2xpYmRpcnM9IiRjdXJyZW50 X2xpYmRpcnMgJGxpYmRpciIgOzsKCSAgZXNhYwoJZWxzZQoJICAjIE5vdGUgdGhlIGxpYmRpciBh cyBhIGZ1dHVyZSBsaWJkaXIuCgkgIGNhc2UgIiRmdXR1cmVfbGliZGlycyAiIGluCgkgICoiICRs aWJkaXIgIiopIDs7CgkgICopIGZ1dHVyZV9saWJkaXJzPSIkZnV0dXJlX2xpYmRpcnMgJGxpYmRp ciIgOzsKCSAgZXNhYwoJZmkKCglkaXI9ImAkZWNobyAiWCRmaWxlIiB8ICRYc2VkIC1lICdzJS9b Xi9dKiQlJSdgLyIKCXRlc3QgIlgkZGlyIiA9ICJYJGZpbGUvIiAmJiBkaXI9CglkaXI9IiRkaXIk b2JqZGlyIgoKCSMgU2VlIHRoZSBuYW1lcyBvZiB0aGUgc2hhcmVkIGxpYnJhcnkuCglzZXQgZHVt bXkgJGxpYnJhcnlfbmFtZXMKCWlmIHRlc3QgLW4gIiQyIjsgdGhlbgoJICByZWFsbmFtZT0iJDIi CgkgIHNoaWZ0CgkgIHNoaWZ0CgoJICAjIEluc3RhbGwgdGhlIHNoYXJlZCBsaWJyYXJ5IGFuZCBi dWlsZCB0aGUgc3ltbGlua3MuCgkgICRzaG93ICIkaW5zdGFsbF9wcm9nICRkaXIvJHJlYWxuYW1l ICRkZXN0ZGlyLyRyZWFsbmFtZSIKCSAgJHJ1biBldmFsICIkaW5zdGFsbF9wcm9nICRkaXIvJHJl YWxuYW1lICRkZXN0ZGlyLyRyZWFsbmFtZSIgfHwgZXhpdCAkPwoKCSAgaWYgdGVzdCAkIyAtZ3Qg MDsgdGhlbgoJICAgICMgRGVsZXRlIHRoZSBvbGQgc3ltbGlua3MsIGFuZCBjcmVhdGUgbmV3IG9u ZXMuCgkgICAgZm9yIGxpbmtuYW1lCgkgICAgZG8KCSAgICAgIGlmIHRlc3QgIiRsaW5rbmFtZSIg IT0gIiRyZWFsbmFtZSI7IHRoZW4KCQkkc2hvdyAiKGNkICRkZXN0ZGlyICYmICRybSAkbGlua25h bWUgJiYgJExOX1MgJHJlYWxuYW1lICRsaW5rbmFtZSkiCgkJJHJ1biBldmFsICIoY2QgJGRlc3Rk aXIgJiYgJHJtICRsaW5rbmFtZSAmJiAkTE5fUyAkcmVhbG5hbWUgJGxpbmtuYW1lKSIKCSAgICAg IGZpCgkgICAgZG9uZQoJICBmaQoKCSAgIyBEbyBlYWNoIGNvbW1hbmQgaW4gdGhlIHBvc3RpbnN0 YWxsIGNvbW1hbmRzLgoJICBsaWI9IiRkZXN0ZGlyLyRyZWFsbmFtZSIKCSAgZXZhbCBjbWRzPVwi JHBvc3RpbnN0YWxsX2NtZHNcIgoJICBJRlM9IiR7SUZTPSAJfSI7IHNhdmVfaWZzPSIkSUZTIjsg SUZTPSd+JwoJICBmb3IgY21kIGluICRjbWRzOyBkbwoJICAgIElGUz0iJHNhdmVfaWZzIgoJICAg ICRzaG93ICIkY21kIgoJICAgICRydW4gZXZhbCAiJGNtZCIgfHwgZXhpdCAkPwoJICBkb25lCgkg IElGUz0iJHNhdmVfaWZzIgoJZmkKCgkjIEluc3RhbGwgdGhlIHBzZXVkby1saWJyYXJ5IGZvciBp bmZvcm1hdGlvbiBwdXJwb3Nlcy4KCWlmIHRlc3QgIiRpbnN0YWxsX2x0bGlicyIgPSB5ZXM7IHRo ZW4KCW5hbWU9YCRlY2hvICJYJGZpbGUiIHwgJFhzZWQgLWUgJ3MlXi4qLyUlJ2AKCWluc3RuYW1l PSIkZGlyLyRuYW1lImkKCSRzaG93ICIkaW5zdGFsbF9wcm9nICRpbnN0bmFtZSAkZGVzdGRpci8k bmFtZSIKCSRydW4gZXZhbCAiJGluc3RhbGxfcHJvZyAkaW5zdG5hbWUgJGRlc3RkaXIvJG5hbWUi IHx8IGV4aXQgJD8KCWZpCgoJIyBNYXliZSBpbnN0YWxsIHRoZSBzdGF0aWMgbGlicmFyeSwgdG9v LgoJdGVzdCAtbiAiJG9sZF9saWJyYXJ5IiAmJiBzdGF0aWNsaWJzPSIkc3RhdGljbGlicyAkZGly LyRvbGRfbGlicmFyeSIKCTs7CgogICAgICAqLmxvKQoJIyBJbnN0YWxsIChpLmUuIGNvcHkpIGEg bGlidG9vbCBvYmplY3QuCgoJIyBGaWd1cmUgb3V0IGRlc3RpbmF0aW9uIGZpbGUgbmFtZSwgaWYg aXQgd2Fzbid0IGFscmVhZHkgc3BlY2lmaWVkLgoJaWYgdGVzdCAtbiAiJGRlc3RuYW1lIjsgdGhl bgoJICBkZXN0ZmlsZT0iJGRlc3RkaXIvJGRlc3RuYW1lIgoJZWxzZQoJICBkZXN0ZmlsZT1gJGVj aG8gIlgkZmlsZSIgfCAkWHNlZCAtZSAncyVeLiovJSUnYAoJICBkZXN0ZmlsZT0iJGRlc3RkaXIv JGRlc3RmaWxlIgoJZmkKCgkjIERlZHVjZSB0aGUgbmFtZSBvZiB0aGUgZGVzdGluYXRpb24gb2xk LXN0eWxlIG9iamVjdCBmaWxlLgoJY2FzZSAiJGRlc3RmaWxlIiBpbgoJKi5sbykKCSAgc3RhdGlj ZGVzdD1gJGVjaG8gIlgkZGVzdGZpbGUiIHwgJFhzZWQgLWUgIiRsbzJvImAKCSAgOzsKCSoubyB8 ICoub2JqKQoJICBzdGF0aWNkZXN0PSIkZGVzdGZpbGUiCgkgIGRlc3RmaWxlPQoJICA7OwoJKikK CSAgJGVjaG8gIiRtb2RlbmFtZTogY2Fubm90IGNvcHkgYSBsaWJ0b29sIG9iamVjdCB0byBcYCRk ZXN0ZmlsZSciIDE+JjIKCSAgJGVjaG8gIiRoZWxwIiAxPiYyCgkgIGV4aXQgMQoJICA7OwoJZXNh YwoKCSMgSW5zdGFsbCB0aGUgbGlidG9vbCBvYmplY3QgaWYgcmVxdWVzdGVkLgoJaWYgdGVzdCAt biAiJGRlc3RmaWxlIjsgdGhlbgoJICAkc2hvdyAiJGluc3RhbGxfcHJvZyAkZmlsZSAkZGVzdGZp bGUiCgkgICRydW4gZXZhbCAiJGluc3RhbGxfcHJvZyAkZmlsZSAkZGVzdGZpbGUiIHx8IGV4aXQg JD8KCWZpCgoJIyBJbnN0YWxsIHRoZSBvbGQgb2JqZWN0IGlmIGVuYWJsZWQuCglpZiB0ZXN0ICIk YnVpbGRfb2xkX2xpYnMiID0geWVzOyB0aGVuCgkgICMgRGVkdWNlIHRoZSBuYW1lIG9mIHRoZSBv bGQtc3R5bGUgb2JqZWN0IGZpbGUuCgkgIHN0YXRpY29iaj1gJGVjaG8gIlgkZmlsZSIgfCAkWHNl ZCAtZSAiJGxvMm8iYAoKCSAgJHNob3cgIiRpbnN0YWxsX3Byb2cgJHN0YXRpY29iaiAkc3RhdGlj ZGVzdCIKCSAgJHJ1biBldmFsICIkaW5zdGFsbF9wcm9nIFwkc3RhdGljb2JqIFwkc3RhdGljZGVz dCIgfHwgZXhpdCAkPwoJZmkKCWV4aXQgMAoJOzsKCiAgICAgICopCgkjIEZpZ3VyZSBvdXQgZGVz dGluYXRpb24gZmlsZSBuYW1lLCBpZiBpdCB3YXNuJ3QgYWxyZWFkeSBzcGVjaWZpZWQuCglpZiB0 ZXN0IC1uICIkZGVzdG5hbWUiOyB0aGVuCgkgIGRlc3RmaWxlPSIkZGVzdGRpci8kZGVzdG5hbWUi CgllbHNlCgkgIGRlc3RmaWxlPWAkZWNobyAiWCRmaWxlIiB8ICRYc2VkIC1lICdzJV4uKi8lJSdg CgkgIGRlc3RmaWxlPSIkZGVzdGRpci8kZGVzdGZpbGUiCglmaQoKCSMgRG8gYSB0ZXN0IHRvIHNl ZSBpZiB0aGlzIGlzIHJlYWxseSBhIGxpYnRvb2wgcHJvZ3JhbS4KCWlmIChzZWQgLWUgJzRxJyAk ZmlsZSB8IGVncmVwICJeIyBHZW5lcmF0ZWQgYnkgLiokUEFDS0FHRSIpID4vZGV2L251bGwgMj4m MTsgdGhlbgoJICBsaW5rX2FnYWluc3RfbGlidG9vbF9saWJzPQoJICByZWxpbmtfY29tbWFuZD0K CgkgICMgSWYgdGhlcmUgaXMgbm8gZGlyZWN0b3J5IGNvbXBvbmVudCwgdGhlbiBhZGQgb25lLgoJ ICBjYXNlICIkZmlsZSIgaW4KCSAgKi8qIHwgKlxcKikgLiAkZmlsZSA7OwoJICAqKSAuIC4vJGZp bGUgOzsKCSAgZXNhYwoKCSAgIyBDaGVjayB0aGUgdmFyaWFibGVzIHRoYXQgc2hvdWxkIGhhdmUg YmVlbiBzZXQuCgkgIGlmIHRlc3QgLXogIiRsaW5rX2FnYWluc3RfbGlidG9vbF9saWJzIjsgdGhl bgoJICAgICRlY2hvICIkbW9kZW5hbWU6IGludmFsaWQgbGlidG9vbCB3cmFwcGVyIHNjcmlwdCBc YCRmaWxlJyIgMT4mMgoJICAgIGV4aXQgMQoJICBmaQoKCSAgZmluYWxpemU9eWVzCgkgIGZvciBs aWIgaW4gJGxpbmtfYWdhaW5zdF9saWJ0b29sX2xpYnM7IGRvCgkgICAgIyBDaGVjayB0byBzZWUg dGhhdCBlYWNoIGxpYnJhcnkgaXMgaW5zdGFsbGVkLgoJICAgIGxpYmRpcj0KCSAgICBpZiB0ZXN0 IC1mICIkbGliIjsgdGhlbgoJICAgICAgIyBJZiB0aGVyZSBpcyBubyBkaXJlY3RvcnkgY29tcG9u ZW50LCB0aGVuIGFkZCBvbmUuCgkgICAgICBjYXNlICIkbGliIiBpbgoJICAgICAgKi8qIHwgKlxc KikgLiAkbGliIDs7CgkgICAgICAqKSAuIC4vJGxpYiA7OwoJICAgICAgZXNhYwoJICAgIGZpCgkg ICAgbGliZmlsZT0iJGxpYmRpci9gJGVjaG8gIlgkbGliIiB8ICRYc2VkIC1lICdzJV4uKi8lJWcn YCIKCSAgICBpZiB0ZXN0IC1uICIkbGliZGlyIiAmJiB0ZXN0ICEgLWYgIiRsaWJmaWxlIjsgdGhl bgoJICAgICAgZmluYWxpemU9bm8KCSAgICBmaQoJICBkb25lCgoJICBvdXRwdXRuYW1lPQoJICBp ZiB0ZXN0ICIkZmFzdF9pbnN0YWxsIiA9IG5vICYmIHRlc3QgLW4gIiRyZWxpbmtfY29tbWFuZCI7 IHRoZW4KCSAgICBpZiB0ZXN0ICIkZmluYWxpemUiID0geWVzICYmIHRlc3QgLXogIiRydW4iOyB0 aGVuCgkgICAgICB0bXBkaXI9Ii90bXAiCgkgICAgICB0ZXN0IC1uICIkVE1QRElSIiAmJiB0bXBk aXI9IiRUTVBESVIiCgkgICAgICB0bXBkaXI9IiR0bXBkaXIvbGlidG9vbC0kJCIKCSAgICAgIHNh dmVfdW1hc2s9YHVtYXNrYAoJICAgICAgdW1hc2sgMDA3NwoJICAgICAgaWYgJG1rZGlyICIkdG1w ZGlyIjsgdGhlbgoJCXVtYXNrICRzYXZlX3VtYXNrCgkgICAgICBlbHNlCgkJdW1hc2sgJHNhdmVf dW1hc2sKCQkkZWNobyAiJG1vZGVuYW1lOiBlcnJvcjogY2Fubm90IGNyZWF0ZSB0ZW1wb3Jhcnkg ZGlyZWN0b3J5IFxgJHRtcGRpciciIDE+JjIKCQljb250aW51ZQoJICAgICAgZmkKCSAgICAgIG91 dHB1dG5hbWU9IiR0bXBkaXIvJGZpbGUiCgkgICAgICAjIFJlcGxhY2UgdGhlIG91dHB1dCBmaWxl IHNwZWNpZmljYXRpb24uCgkgICAgICByZWxpbmtfY29tbWFuZD1gJGVjaG8gIlgkcmVsaW5rX2Nv bW1hbmQiIHwgJFhzZWQgLWUgJ3MlQE9VVFBVVEAlJyIkb3V0cHV0bmFtZSInJWcnYAoKCSAgICAg ICRzaG93ICIkcmVsaW5rX2NvbW1hbmQiCgkgICAgICBpZiAkcnVuIGV2YWwgIiRyZWxpbmtfY29t bWFuZCI7IHRoZW4gOgoJICAgICAgZWxzZQoJCSRlY2hvICIkbW9kZW5hbWU6IGVycm9yOiByZWxp bmsgXGAkZmlsZScgd2l0aCB0aGUgYWJvdmUgY29tbWFuZCBiZWZvcmUgaW5zdGFsbGluZyBpdCIg MT4mMgoJCSR7cm19ciAiJHRtcGRpciIKCQljb250aW51ZQoJICAgICAgZmkKCSAgICAgIGZpbGU9 IiRvdXRwdXRuYW1lIgoJICAgIGVsc2UKCSAgICAgICRlY2hvICIkbW9kZW5hbWU6IHdhcm5pbmc6 IGNhbm5vdCByZWxpbmsgXGAkZmlsZSciIDE+JjIKCSAgICBmaQoJICBlbHNlCgkgICAgIyBJbnN0 YWxsIHRoZSBiaW5hcnkgdGhhdCB3ZSBjb21waWxlZCBlYXJsaWVyLgoJICAgIGZpbGU9YCRlY2hv ICJYJGZpbGUiIHwgJFhzZWQgLWUgInMlXChbXi9dKlwpJCUkb2JqZGlyL1wxJSJgCgkgIGZpCglm aQoKCSRzaG93ICIkaW5zdGFsbF9wcm9nJHN0cmlwbWUgJGZpbGUgJGRlc3RmaWxlIgoJJHJ1biBl dmFsICIkaW5zdGFsbF9wcm9nXCRzdHJpcG1lIFwkZmlsZSBcJGRlc3RmaWxlIiB8fCBleGl0ICQ/ Cgl0ZXN0IC1uICIkb3V0cHV0bmFtZSIgJiYgJHtybX1yICIkdG1wZGlyIgoJOzsKICAgICAgZXNh YwogICAgZG9uZQoKICAgIGZvciBmaWxlIGluICRzdGF0aWNsaWJzOyBkbwogICAgICBuYW1lPWAk ZWNobyAiWCRmaWxlIiB8ICRYc2VkIC1lICdzJV4uKi8lJSdgCgogICAgICAjIFNldCB1cCB0aGUg cmFubGliIHBhcmFtZXRlcnMuCiAgICAgIG9sZGxpYj0iJGRlc3RkaXIvJG5hbWUiCgogICAgICAk c2hvdyAiJGluc3RhbGxfcHJvZyAkZmlsZSAkb2xkbGliIgogICAgICAkcnVuIGV2YWwgIiRpbnN0 YWxsX3Byb2cgXCRmaWxlIFwkb2xkbGliIiB8fCBleGl0ICQ/CgogICAgICAjIERvIGVhY2ggY29t bWFuZCBpbiB0aGUgcG9zdGluc3RhbGwgY29tbWFuZHMuCiAgICAgIGV2YWwgY21kcz1cIiRvbGRf cG9zdGluc3RhbGxfY21kc1wiCiAgICAgIElGUz0iJHtJRlM9IAl9Ijsgc2F2ZV9pZnM9IiRJRlMi OyBJRlM9J34nCiAgICAgIGZvciBjbWQgaW4gJGNtZHM7IGRvCglJRlM9IiRzYXZlX2lmcyIKCSRz aG93ICIkY21kIgoJJHJ1biBldmFsICIkY21kIiB8fCBleGl0ICQ/CiAgICAgIGRvbmUKICAgICAg SUZTPSIkc2F2ZV9pZnMiCiAgICBkb25lCgogICAgaWYgdGVzdCAtbiAiJGZ1dHVyZV9saWJkaXJz IjsgdGhlbgogICAgICAkZWNobyAiJG1vZGVuYW1lOiB3YXJuaW5nOiByZW1lbWJlciB0byBydW4g XGAkcHJvZ25hbWUgLS1maW5pc2gkZnV0dXJlX2xpYmRpcnMnIiAxPiYyCiAgICBmaQoKICAgIGlm IHRlc3QgLW4gIiRjdXJyZW50X2xpYmRpcnMiOyB0aGVuCiAgICAgICMgTWF5YmUganVzdCBkbyBh IGRyeSBydW4uCiAgICAgIHRlc3QgLW4gIiRydW4iICYmIGN1cnJlbnRfbGliZGlycz0iIC1uJGN1 cnJlbnRfbGliZGlycyIKICAgICAgZXhlYyAkU0hFTEwgJDAgLS1maW5pc2gkY3VycmVudF9saWJk aXJzCiAgICAgIGV4aXQgMQogICAgZmkKCiAgICBleGl0IDAKICAgIDs7CgogICMgbGlidG9vbCBm aW5pc2ggbW9kZQogIGZpbmlzaCkKICAgIG1vZGVuYW1lPSIkbW9kZW5hbWU6IGZpbmlzaCIKICAg IGxpYmRpcnM9IiRub25vcHQiCiAgICBhZG1pbmNtZHM9CgogICAgaWYgdGVzdCAtbiAiJGZpbmlz aF9jbWRzJGZpbmlzaF9ldmFsIiAmJiB0ZXN0IC1uICIkbGliZGlycyI7IHRoZW4KICAgICAgZm9y IGRpcgogICAgICBkbwoJbGliZGlycz0iJGxpYmRpcnMgJGRpciIKICAgICAgZG9uZQoKICAgICAg Zm9yIGxpYmRpciBpbiAkbGliZGlyczsgZG8KCWlmIHRlc3QgLW4gIiRmaW5pc2hfY21kcyI7IHRo ZW4KCSAgIyBEbyBlYWNoIGNvbW1hbmQgaW4gdGhlIGZpbmlzaCBjb21tYW5kcy4KCSAgZXZhbCBj bWRzPVwiJGZpbmlzaF9jbWRzXCIKCSAgSUZTPSIke0lGUz0gCX0iOyBzYXZlX2lmcz0iJElGUyI7 IElGUz0nficKCSAgZm9yIGNtZCBpbiAkY21kczsgZG8KCSAgICBJRlM9IiRzYXZlX2lmcyIKCSAg ICAkc2hvdyAiJGNtZCIKCSAgICAkcnVuIGV2YWwgIiRjbWQiIHx8IGFkbWluY21kcz0iJGFkbWlu Y21kcwogICAgICAgJGNtZCIKCSAgZG9uZQoJICBJRlM9IiRzYXZlX2lmcyIKCWZpCglpZiB0ZXN0 IC1uICIkZmluaXNoX2V2YWwiOyB0aGVuCgkgICMgRG8gdGhlIHNpbmdsZSBmaW5pc2hfZXZhbC4K CSAgZXZhbCBjbWRzPVwiJGZpbmlzaF9ldmFsXCIKCSAgJHJ1biBldmFsICIkY21kcyIgfHwgYWRt aW5jbWRzPSIkYWRtaW5jbWRzCiAgICAgICAkY21kcyIKCWZpCiAgICAgIGRvbmUKICAgIGZpCgog ICAgIyBFeGl0IGhlcmUgaWYgdGhleSB3YW50ZWQgc2lsZW50IG1vZGUuCiAgICB0ZXN0ICIkc2hv dyIgPSA6ICYmIGV4aXQgMAoKICAgIGVjaG8gIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCiAgICBlY2hvICJMaWJy YXJpZXMgaGF2ZSBiZWVuIGluc3RhbGxlZCBpbjoiCiAgICBmb3IgbGliZGlyIGluICRsaWJkaXJz OyBkbwogICAgICBlY2hvICIgICAkbGliZGlyIgogICAgZG9uZQogICAgZWNobwogICAgZWNobyAi SWYgeW91IGV2ZXIgaGFwcGVuIHRvIHdhbnQgdG8gbGluayBhZ2FpbnN0IGluc3RhbGxlZCBsaWJy YXJpZXMiCiAgICBlY2hvICJpbiBhIGdpdmVuIGRpcmVjdG9yeSwgTElCRElSLCB5b3UgbXVzdCBl aXRoZXIgdXNlIGxpYnRvb2wsIGFuZCIKICAgIGVjaG8gInNwZWNpZnkgdGhlIGZ1bGwgcGF0aG5h bWUgb2YgdGhlIGxpYnJhcnksIG9yIHVzZSBcYC1MTElCRElSJyIKICAgIGVjaG8gImZsYWcgZHVy aW5nIGxpbmtpbmcgYW5kIGRvIGF0IGxlYXN0IG9uZSBvZiB0aGUgZm9sbG93aW5nOiIKICAgIGlm IHRlc3QgLW4gIiRzaGxpYnBhdGhfdmFyIjsgdGhlbgogICAgICBlY2hvICIgICAtIGFkZCBMSUJE SVIgdG8gdGhlIFxgJHNobGlicGF0aF92YXInIGVudmlyb25tZW50IHZhcmlhYmxlIgogICAgICBl Y2hvICIgICAgIGR1cmluZyBleGVjdXRpb24iCiAgICBmaQogICAgaWYgdGVzdCAtbiAiJHJ1bnBh dGhfdmFyIjsgdGhlbgogICAgICBlY2hvICIgICAtIGFkZCBMSUJESVIgdG8gdGhlIFxgJHJ1bnBh dGhfdmFyJyBlbnZpcm9ubWVudCB2YXJpYWJsZSIKICAgICAgZWNobyAiICAgICBkdXJpbmcgbGlu a2luZyIKICAgIGZpCiAgICBpZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYyI7 IHRoZW4KICAgICAgbGliZGlyPUxJQkRJUgogICAgICBldmFsIGZsYWc9XCIkaGFyZGNvZGVfbGli ZGlyX2ZsYWdfc3BlY1wiCgogICAgICBlY2hvICIgICAtIHVzZSB0aGUgXGAkZmxhZycgbGlua2Vy IGZsYWciCiAgICBmaQogICAgaWYgdGVzdCAtbiAiJGFkbWluY21kcyI7IHRoZW4KICAgICAgZWNo byAiICAgLSBoYXZlIHlvdXIgc3lzdGVtIGFkbWluaXN0cmF0b3IgcnVuIHRoZXNlIGNvbW1hbmRz OiRhZG1pbmNtZHMiCiAgICBmaQogICAgaWYgdGVzdCAtZiAvZXRjL2xkLnNvLmNvbmY7IHRoZW4K ICAgICAgZWNobyAiICAgLSBoYXZlIHlvdXIgc3lzdGVtIGFkbWluaXN0cmF0b3IgYWRkIExJQkRJ UiB0byBcYC9ldGMvbGQuc28uY29uZiciCiAgICBmaQogICAgZWNobwogICAgZWNobyAiU2VlIGFu eSBvcGVyYXRpbmcgc3lzdGVtIGRvY3VtZW50YXRpb24gYWJvdXQgc2hhcmVkIGxpYnJhcmllcyBm b3IiCiAgICBlY2hvICJtb3JlIGluZm9ybWF0aW9uLCBzdWNoIGFzIHRoZSBsZCgxKSBhbmQgbGQu c28oOCkgbWFudWFsIHBhZ2VzLiIKICAgIGVjaG8gIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCiAgICBleGl0IDAK ICAgIDs7CgogICMgbGlidG9vbCBleGVjdXRlIG1vZGUKICBleGVjdXRlKQogICAgbW9kZW5hbWU9 IiRtb2RlbmFtZTogZXhlY3V0ZSIKCiAgICAjIFRoZSBmaXJzdCBhcmd1bWVudCBpcyB0aGUgY29t bWFuZCBuYW1lLgogICAgY21kPSIkbm9ub3B0IgogICAgaWYgdGVzdCAteiAiJGNtZCI7IHRoZW4K ICAgICAgJGVjaG8gIiRtb2RlbmFtZTogeW91IG11c3Qgc3BlY2lmeSBhIENPTU1BTkQiIDE+JjIK ICAgICAgJGVjaG8gIiRoZWxwIgogICAgICBleGl0IDEKICAgIGZpCgogICAgIyBIYW5kbGUgLWRs b3BlbiBmbGFncyBpbW1lZGlhdGVseS4KICAgIGZvciBmaWxlIGluICRleGVjdXRlX2RsZmlsZXM7 IGRvCiAgICAgIGlmIHRlc3QgISAtZiAiJGZpbGUiOyB0aGVuCgkkZWNobyAiJG1vZGVuYW1lOiBc YCRmaWxlJyBpcyBub3QgYSBmaWxlIiAxPiYyCgkkZWNobyAiJGhlbHAiIDE+JjIKCWV4aXQgMQog ICAgICBmaQoKICAgICAgZGlyPQogICAgICBjYXNlICIkZmlsZSIgaW4KICAgICAgKi5sYSkKCSMg Q2hlY2sgdG8gc2VlIHRoYXQgdGhpcyByZWFsbHkgaXMgYSBsaWJ0b29sIGFyY2hpdmUuCglpZiAo c2VkIC1lICcycScgJGZpbGUgfCBlZ3JlcCAiXiMgR2VuZXJhdGVkIGJ5IC4qJFBBQ0tBR0UiKSA+ L2Rldi9udWxsIDI+JjE7IHRoZW4gOgoJZWxzZQoJICAkZWNobyAiJG1vZGVuYW1lOiBcYCRsaWIn IGlzIG5vdCBhIHZhbGlkIGxpYnRvb2wgYXJjaGl2ZSIgMT4mMgoJICAkZWNobyAiJGhlbHAiIDE+ JjIKCSAgZXhpdCAxCglmaQoKCSMgUmVhZCB0aGUgbGlidG9vbCBsaWJyYXJ5LgoJZGxuYW1lPQoJ bGlicmFyeV9uYW1lcz0KCgkjIElmIHRoZXJlIGlzIG5vIGRpcmVjdG9yeSBjb21wb25lbnQsIHRo ZW4gYWRkIG9uZS4KCWNhc2UgIiRmaWxlIiBpbgoJKi8qIHwgKlxcKikgLiAkZmlsZSA7OwoJKikg LiAuLyRmaWxlIDs7Cgllc2FjCgoJIyBTa2lwIHRoaXMgbGlicmFyeSBpZiBpdCBjYW5ub3QgYmUg ZGxvcGVuZWQuCglpZiB0ZXN0IC16ICIkZGxuYW1lIjsgdGhlbgoJICAjIFdhcm4gaWYgaXQgd2Fz IGEgc2hhcmVkIGxpYnJhcnkuCgkgIHRlc3QgLW4gIiRsaWJyYXJ5X25hbWVzIiAmJiAkZWNobyAi JG1vZGVuYW1lOiB3YXJuaW5nOiBcYCRmaWxlJyB3YXMgbm90IGxpbmtlZCB3aXRoIFxgLWV4cG9y dC1keW5hbWljJyIKCSAgY29udGludWUKCWZpCgoJZGlyPWAkZWNobyAiWCRmaWxlIiB8ICRYc2Vk IC1lICdzJS9bXi9dKiQlJSdgCgl0ZXN0ICJYJGRpciIgPSAiWCRmaWxlIiAmJiBkaXI9LgoKCWlm IHRlc3QgLWYgIiRkaXIvJG9iamRpci8kZGxuYW1lIjsgdGhlbgoJICBkaXI9IiRkaXIvJG9iamRp ciIKCWVsc2UKCSAgJGVjaG8gIiRtb2RlbmFtZTogY2Fubm90IGZpbmQgXGAkZGxuYW1lJyBpbiBc YCRkaXInIG9yIFxgJGRpci8kb2JqZGlyJyIgMT4mMgoJICBleGl0IDEKCWZpCgk7OwoKICAgICAg Ki5sbykKCSMgSnVzdCBhZGQgdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoZSAubG8gZmlsZS4K CWRpcj1gJGVjaG8gIlgkZmlsZSIgfCAkWHNlZCAtZSAncyUvW14vXSokJSUnYAoJdGVzdCAiWCRk aXIiID0gIlgkZmlsZSIgJiYgZGlyPS4KCTs7CgogICAgICAqKQoJJGVjaG8gIiRtb2RlbmFtZTog d2FybmluZyBcYC1kbG9wZW4nIGlzIGlnbm9yZWQgZm9yIG5vbi1saWJ0b29sIGxpYnJhcmllcyBh bmQgb2JqZWN0cyIgMT4mMgoJY29udGludWUKCTs7CiAgICAgIGVzYWMKCiAgICAgICMgR2V0IHRo ZSBhYnNvbHV0ZSBwYXRobmFtZS4KICAgICAgYWJzZGlyPWBjZCAiJGRpciIgJiYgcHdkYAogICAg ICB0ZXN0IC1uICIkYWJzZGlyIiAmJiBkaXI9IiRhYnNkaXIiCgogICAgICAjIE5vdyBhZGQgdGhl IGRpcmVjdG9yeSB0byBzaGxpYnBhdGhfdmFyLgogICAgICBpZiBldmFsICJ0ZXN0IC16IFwiXCQk c2hsaWJwYXRoX3ZhclwiIjsgdGhlbgoJZXZhbCAiJHNobGlicGF0aF92YXI9XCJcJGRpclwiIgog ICAgICBlbHNlCglldmFsICIkc2hsaWJwYXRoX3Zhcj1cIlwkZGlyOlwkJHNobGlicGF0aF92YXJc IiIKICAgICAgZmkKICAgIGRvbmUKCiAgICAjIFRoaXMgdmFyaWFibGUgdGVsbHMgd3JhcHBlciBz Y3JpcHRzIGp1c3QgdG8gc2V0IHNobGlicGF0aF92YXIKICAgICMgcmF0aGVyIHRoYW4gcnVubmlu ZyB0aGVpciBwcm9ncmFtcy4KICAgIGxpYnRvb2xfZXhlY3V0ZV9tYWdpYz0iJG1hZ2ljIgoKICAg ICMgQ2hlY2sgaWYgYW55IG9mIHRoZSBhcmd1bWVudHMgaXMgYSB3cmFwcGVyIHNjcmlwdC4KICAg IGFyZ3M9CiAgICBmb3IgZmlsZQogICAgZG8KICAgICAgY2FzZSAiJGZpbGUiIGluCiAgICAgIC0q KSA7OwogICAgICAqKQoJIyBEbyBhIHRlc3QgdG8gc2VlIGlmIHRoaXMgaXMgcmVhbGx5IGEgbGli dG9vbCBwcm9ncmFtLgoJaWYgKHNlZCAtZSAnNHEnICRmaWxlIHwgZWdyZXAgIl4jIEdlbmVyYXRl ZCBieSAuKiRQQUNLQUdFIikgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCgkgICMgSWYgdGhlcmUgaXMg bm8gZGlyZWN0b3J5IGNvbXBvbmVudCwgdGhlbiBhZGQgb25lLgoJICBjYXNlICIkZmlsZSIgaW4K CSAgKi8qIHwgKlxcKikgLiAkZmlsZSA7OwoJICAqKSAuIC4vJGZpbGUgOzsKCSAgZXNhYwoKCSAg IyBUcmFuc2Zvcm0gYXJnIHRvIHdyYXBwZWQgbmFtZS4KCSAgZmlsZT0iJHByb2dkaXIvJHByb2dy YW0iCglmaQoJOzsKICAgICAgZXNhYwogICAgICAjIFF1b3RlIGFyZ3VtZW50cyAodG8gcHJlc2Vy dmUgc2hlbGwgbWV0YWNoYXJhY3RlcnMpLgogICAgICBmaWxlPWAkZWNobyAiWCRmaWxlIiB8ICRY c2VkIC1lICIkc2VkX3F1b3RlX3N1YnN0ImAKICAgICAgYXJncz0iJGFyZ3MgXCIkZmlsZVwiIgog ICAgZG9uZQoKICAgIGlmIHRlc3QgLXogIiRydW4iOyB0aGVuCiAgICAgIGlmIHRlc3QgLW4gIiRz aGxpYnBhdGhfdmFyIjsgdGhlbgogICAgICAgICMgRXhwb3J0IHRoZSBzaGxpYnBhdGhfdmFyLgog ICAgICAgIGV2YWwgImV4cG9ydCAkc2hsaWJwYXRoX3ZhciIKICAgICAgZmkKCiAgICAgICMgUmVz dG9yZSBzYXZlZCBlbnZpcm9tZW50IHZhcmlhYmxlcwogICAgICBpZiB0ZXN0ICIke3NhdmVfTENf QUxMK3NldH0iID0gc2V0OyB0aGVuCglMQ19BTEw9IiRzYXZlX0xDX0FMTCI7IGV4cG9ydCBMQ19B TEwKICAgICAgZmkKICAgICAgaWYgdGVzdCAiJHtzYXZlX0xBTkcrc2V0fSIgPSBzZXQ7IHRoZW4K CUxBTkc9IiRzYXZlX0xBTkciOyBleHBvcnQgTEFORwogICAgICBmaQoKICAgICAgIyBOb3cgYWN0 dWFsbHkgZXhlYyB0aGUgY29tbWFuZC4KICAgICAgZXZhbCAiZXhlYyBcJGNtZCRhcmdzIgoKICAg ICAgJGVjaG8gIiRtb2RlbmFtZTogY2Fubm90IGV4ZWMgXCRjbWQkYXJncyIKICAgICAgZXhpdCAx CiAgICBlbHNlCiAgICAgICMgRGlzcGxheSB3aGF0IHdvdWxkIGJlIGRvbmUuCiAgICAgIGlmIHRl c3QgLW4gIiRzaGxpYnBhdGhfdmFyIjsgdGhlbgogICAgICAgIGV2YWwgIlwkZWNobyBcIlwkc2hs aWJwYXRoX3Zhcj1cJCRzaGxpYnBhdGhfdmFyXCIiCiAgICAgICAgJGVjaG8gImV4cG9ydCAkc2hs aWJwYXRoX3ZhciIKICAgICAgZmkKICAgICAgJGVjaG8gIiRjbWQkYXJncyIKICAgICAgZXhpdCAw CiAgICBmaQogICAgOzsKCiAgIyBsaWJ0b29sIHVuaW5zdGFsbCBtb2RlCiAgdW5pbnN0YWxsKQog ICAgbW9kZW5hbWU9IiRtb2RlbmFtZTogdW5pbnN0YWxsIgogICAgcm09IiRub25vcHQiCiAgICBm aWxlcz0KCiAgICBmb3IgYXJnCiAgICBkbwogICAgICBjYXNlICIkYXJnIiBpbgogICAgICAtKikg cm09IiRybSAkYXJnIiA7OwogICAgICAqKSBmaWxlcz0iJGZpbGVzICRhcmciIDs7CiAgICAgIGVz YWMKICAgIGRvbmUKCiAgICBpZiB0ZXN0IC16ICIkcm0iOyB0aGVuCiAgICAgICRlY2hvICIkbW9k ZW5hbWU6IHlvdSBtdXN0IHNwZWNpZnkgYW4gUk0gcHJvZ3JhbSIgMT4mMgogICAgICAkZWNobyAi JGhlbHAiIDE+JjIKICAgICAgZXhpdCAxCiAgICBmaQoKICAgIGZvciBmaWxlIGluICRmaWxlczsg ZG8KICAgICAgZGlyPWAkZWNobyAiWCRmaWxlIiB8ICRYc2VkIC1lICdzJS9bXi9dKiQlJSdgCiAg ICAgIHRlc3QgIlgkZGlyIiA9ICJYJGZpbGUiICYmIGRpcj0uCiAgICAgIG5hbWU9YCRlY2hvICJY JGZpbGUiIHwgJFhzZWQgLWUgJ3MlXi4qLyUlJ2AKCiAgICAgIHJtZmlsZXM9IiRmaWxlIgoKICAg ICAgY2FzZSAiJG5hbWUiIGluCiAgICAgICoubGEpCgkjIFBvc3NpYmx5IGEgbGlidG9vbCBhcmNo aXZlLCBzbyB2ZXJpZnkgaXQuCglpZiAoc2VkIC1lICcycScgJGZpbGUgfCBlZ3JlcCAiXiMgR2Vu ZXJhdGVkIGJ5IC4qJFBBQ0tBR0UiKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KCSAgLiAkZGlyLyRu YW1lCgoJICAjIERlbGV0ZSB0aGUgbGlidG9vbCBsaWJyYXJpZXMgYW5kIHN5bWxpbmtzLgoJICBm b3IgbiBpbiAkbGlicmFyeV9uYW1lczsgZG8KCSAgICBybWZpbGVzPSIkcm1maWxlcyAkZGlyLyRu IgoJICBkb25lCgkgIHRlc3QgLW4gIiRvbGRfbGlicmFyeSIgJiYgcm1maWxlcz0iJHJtZmlsZXMg JGRpci8kb2xkX2xpYnJhcnkiCgoJICAkc2hvdyAiJHJtICRybWZpbGVzIgoJICAkcnVuICRybSAk cm1maWxlcwoKCSAgaWYgdGVzdCAtbiAiJGxpYnJhcnlfbmFtZXMiOyB0aGVuCgkgICAgIyBEbyBl YWNoIGNvbW1hbmQgaW4gdGhlIHBvc3R1bmluc3RhbGwgY29tbWFuZHMuCgkgICAgZXZhbCBjbWRz PVwiJHBvc3R1bmluc3RhbGxfY21kc1wiCgkgICAgSUZTPSIke0lGUz0gCX0iOyBzYXZlX2lmcz0i JElGUyI7IElGUz0nficKCSAgICBmb3IgY21kIGluICRjbWRzOyBkbwoJICAgICAgSUZTPSIkc2F2 ZV9pZnMiCgkgICAgICAkc2hvdyAiJGNtZCIKCSAgICAgICRydW4gZXZhbCAiJGNtZCIKCSAgICBk b25lCgkgICAgSUZTPSIkc2F2ZV9pZnMiCgkgIGZpCgoJICBpZiB0ZXN0IC1uICIkb2xkX2xpYnJh cnkiOyB0aGVuCgkgICAgIyBEbyBlYWNoIGNvbW1hbmQgaW4gdGhlIG9sZF9wb3N0dW5pbnN0YWxs IGNvbW1hbmRzLgoJICAgIGV2YWwgY21kcz1cIiRvbGRfcG9zdHVuaW5zdGFsbF9jbWRzXCIKCSAg ICBJRlM9IiR7SUZTPSAJfSI7IHNhdmVfaWZzPSIkSUZTIjsgSUZTPSd+JwoJICAgIGZvciBjbWQg aW4gJGNtZHM7IGRvCgkgICAgICBJRlM9IiRzYXZlX2lmcyIKCSAgICAgICRzaG93ICIkY21kIgoJ ICAgICAgJHJ1biBldmFsICIkY21kIgoJICAgIGRvbmUKCSAgICBJRlM9IiRzYXZlX2lmcyIKCSAg ZmkKCgkgICMgRklYTUU6IHNob3VsZCByZWluc3RhbGwgdGhlIGJlc3QgcmVtYWluaW5nIHNoYXJl ZCBsaWJyYXJ5LgoJZmkKCTs7CgogICAgICAqLmxvKQoJaWYgdGVzdCAiJGJ1aWxkX29sZF9saWJz IiA9IHllczsgdGhlbgoJICBvbGRvYmo9YCRlY2hvICJYJG5hbWUiIHwgJFhzZWQgLWUgIiRsbzJv ImAKCSAgcm1maWxlcz0iJHJtZmlsZXMgJGRpci8kb2xkb2JqIgoJZmkKCSRzaG93ICIkcm0gJHJt ZmlsZXMiCgkkcnVuICRybSAkcm1maWxlcwoJOzsKCiAgICAgICopCgkkc2hvdyAiJHJtICRybWZp bGVzIgoJJHJ1biAkcm0gJHJtZmlsZXMKCTs7CiAgICAgIGVzYWMKICAgIGRvbmUKICAgIGV4aXQg MAogICAgOzsKCiAgIiIpCiAgICAkZWNobyAiJG1vZGVuYW1lOiB5b3UgbXVzdCBzcGVjaWZ5IGEg TU9ERSIgMT4mMgogICAgJGVjaG8gIiRnZW5lcmljX2hlbHAiIDE+JjIKICAgIGV4aXQgMQogICAg OzsKICBlc2FjCgogICRlY2hvICIkbW9kZW5hbWU6IGludmFsaWQgb3BlcmF0aW9uIG1vZGUgXGAk bW9kZSciIDE+JjIKICAkZWNobyAiJGdlbmVyaWNfaGVscCIgMT4mMgogIGV4aXQgMQpmaSAjIHRl c3QgLXogIiRzaG93X2hlbHAiCgojIFdlIG5lZWQgdG8gZGlzcGxheSBoZWxwIGZvciBlYWNoIG9m IHRoZSBtb2Rlcy4KY2FzZSAiJG1vZGUiIGluCiIiKSAkZWNobyBcCiJVc2FnZTogJG1vZGVuYW1l IFtPUFRJT05dLi4uIFtNT0RFLUFSR10uLi4KClByb3ZpZGUgZ2VuZXJhbGl6ZWQgbGlicmFyeS1i dWlsZGluZyBzdXBwb3J0IHNlcnZpY2VzLgoKICAgIC0tY29uZmlnICAgICAgICAgIHNob3cgYWxs IGNvbmZpZ3VyYXRpb24gdmFyaWFibGVzCiAgICAtLWRlYnVnICAgICAgICAgICBlbmFibGUgdmVy Ym9zZSBzaGVsbCB0cmFjaW5nCi1uLCAtLWRyeS1ydW4gICAgICAgICBkaXNwbGF5IGNvbW1hbmRz IHdpdGhvdXQgbW9kaWZ5aW5nIGFueSBmaWxlcwogICAgLS1mZWF0dXJlcyAgICAgICAgZGlzcGxh eSBiYXNpYyBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uIGFuZCBleGl0CiAgICAtLWZpbmlzaCAg ICAgICAgICBzYW1lIGFzIFxgLS1tb2RlPWZpbmlzaCcKICAgIC0taGVscCAgICAgICAgICAgIGRp c3BsYXkgdGhpcyBoZWxwIG1lc3NhZ2UgYW5kIGV4aXQKICAgIC0tbW9kZT1NT0RFICAgICAgIHVz ZSBvcGVyYXRpb24gbW9kZSBNT0RFIFtkZWZhdWx0PWluZmVycmVkIGZyb20gTU9ERS1BUkdTXQog ICAgLS1xdWlldCAgICAgICAgICAgc2FtZSBhcyBcYC0tc2lsZW50JwogICAgLS1zaWxlbnQgICAg ICAgICAgZG9uJ3QgcHJpbnQgaW5mb3JtYXRpb25hbCBtZXNzYWdlcwogICAgLS12ZXJzaW9uICAg ICAgICAgcHJpbnQgdmVyc2lvbiBpbmZvcm1hdGlvbgoKTU9ERSBtdXN0IGJlIG9uZSBvZiB0aGUg Zm9sbG93aW5nOgoKICAgICAgY29tcGlsZSAgICAgICAgIGNvbXBpbGUgYSBzb3VyY2UgZmlsZSBp bnRvIGEgbGlidG9vbCBvYmplY3QKICAgICAgZXhlY3V0ZSAgICAgICAgIGF1dG9tYXRpY2FsbHkg c2V0IGxpYnJhcnkgcGF0aCwgdGhlbiBydW4gYSBwcm9ncmFtCiAgICAgIGZpbmlzaCAgICAgICAg ICBjb21wbGV0ZSB0aGUgaW5zdGFsbGF0aW9uIG9mIGxpYnRvb2wgbGlicmFyaWVzCiAgICAgIGlu c3RhbGwgICAgICAgICBpbnN0YWxsIGxpYnJhcmllcyBvciBleGVjdXRhYmxlcwogICAgICBsaW5r ICAgICAgICAgICAgY3JlYXRlIGEgbGlicmFyeSBvciBhbiBleGVjdXRhYmxlCiAgICAgIHVuaW5z dGFsbCAgICAgICByZW1vdmUgbGlicmFyaWVzIGZyb20gYW4gaW5zdGFsbGVkIGRpcmVjdG9yeQoK TU9ERS1BUkdTIHZhcnkgZGVwZW5kaW5nIG9uIHRoZSBNT0RFLiAgVHJ5IFxgJG1vZGVuYW1lIC0t aGVscCAtLW1vZGU9TU9ERScgZm9yCmEgbW9yZSBkZXRhaWxlZCBkZXNjcmlwdGlvbiBvZiBNT0RF LiIKICBleGl0IDAKICA7OwoKY29tcGlsZSkKICAkZWNobyBcCiJVc2FnZTogJG1vZGVuYW1lIFtP UFRJT05dLi4uIC0tbW9kZT1jb21waWxlIENPTVBJTEUtQ09NTUFORC4uLiBTT1VSQ0VGSUxFCgpD b21waWxlIGEgc291cmNlIGZpbGUgaW50byBhIGxpYnRvb2wgbGlicmFyeSBvYmplY3QuCgpUaGlz IG1vZGUgYWNjZXB0cyB0aGUgZm9sbG93aW5nIGFkZGl0aW9uYWwgb3B0aW9uczoKCiAgLW8gT1VU UFVULUZJTEUgICAgc2V0IHRoZSBvdXRwdXQgZmlsZSBuYW1lIHRvIE9VVFBVVC1GSUxFCiAgLXN0 YXRpYyAgICAgICAgICAgYWx3YXlzIGJ1aWxkIGEgXGAubycgZmlsZSBzdWl0YWJsZSBmb3Igc3Rh dGljIGxpbmtpbmcKCkNPTVBJTEUtQ09NTUFORCBpcyBhIGNvbW1hbmQgdG8gYmUgdXNlZCBpbiBj cmVhdGluZyBhIFxgc3RhbmRhcmQnIG9iamVjdCBmaWxlCmZyb20gdGhlIGdpdmVuIFNPVVJDRUZJ TEUuCgpUaGUgb3V0cHV0IGZpbGUgbmFtZSBpcyBkZXRlcm1pbmVkIGJ5IHJlbW92aW5nIHRoZSBk aXJlY3RvcnkgY29tcG9uZW50IGZyb20KU09VUkNFRklMRSwgdGhlbiBzdWJzdGl0dXRpbmcgdGhl IEMgc291cmNlIGNvZGUgc3VmZml4IFxgLmMnIHdpdGggdGhlCmxpYnJhcnkgb2JqZWN0IHN1ZmZp eCwgXGAubG8nLiIKICA7OwoKZXhlY3V0ZSkKICAkZWNobyBcCiJVc2FnZTogJG1vZGVuYW1lIFtP UFRJT05dLi4uIC0tbW9kZT1leGVjdXRlIENPTU1BTkQgW0FSR1NdLi4uCgpBdXRvbWF0aWNhbGx5 IHNldCBsaWJyYXJ5IHBhdGgsIHRoZW4gcnVuIGEgcHJvZ3JhbS4KClRoaXMgbW9kZSBhY2NlcHRz IHRoZSBmb2xsb3dpbmcgYWRkaXRpb25hbCBvcHRpb25zOgoKICAtZGxvcGVuIEZJTEUgICAgICBh ZGQgdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIEZJTEUgdG8gdGhlIGxpYnJhcnkgcGF0aAoKVGhp cyBtb2RlIHNldHMgdGhlIGxpYnJhcnkgcGF0aCBlbnZpcm9ubWVudCB2YXJpYWJsZSBhY2NvcmRp bmcgdG8gXGAtZGxvcGVuJwpmbGFncy4KCklmIGFueSBvZiB0aGUgQVJHUyBhcmUgbGlidG9vbCBl eGVjdXRhYmxlIHdyYXBwZXJzLCB0aGVuIHRoZXkgYXJlIHRyYW5zbGF0ZWQKaW50byB0aGVpciBj b3JyZXNwb25kaW5nIHVuaW5zdGFsbGVkIGJpbmFyeSwgYW5kIGFueSBvZiB0aGVpciByZXF1aXJl ZCBsaWJyYXJ5CmRpcmVjdG9yaWVzIGFyZSBhZGRlZCB0byB0aGUgbGlicmFyeSBwYXRoLgoKVGhl biwgQ09NTUFORCBpcyBleGVjdXRlZCwgd2l0aCBBUkdTIGFzIGFyZ3VtZW50cy4iCiAgOzsKCmZp bmlzaCkKICAkZWNobyBcCiJVc2FnZTogJG1vZGVuYW1lIFtPUFRJT05dLi4uIC0tbW9kZT1maW5p c2ggW0xJQkRJUl0uLi4KCkNvbXBsZXRlIHRoZSBpbnN0YWxsYXRpb24gb2YgbGlidG9vbCBsaWJy YXJpZXMuCgpFYWNoIExJQkRJUiBpcyBhIGRpcmVjdG9yeSB0aGF0IGNvbnRhaW5zIGxpYnRvb2wg bGlicmFyaWVzLgoKVGhlIGNvbW1hbmRzIHRoYXQgdGhpcyBtb2RlIGV4ZWN1dGVzIG1heSByZXF1 aXJlIHN1cGVydXNlciBwcml2aWxlZ2VzLiAgVXNlCnRoZSBcYC0tZHJ5LXJ1bicgb3B0aW9uIGlm IHlvdSBqdXN0IHdhbnQgdG8gc2VlIHdoYXQgd291bGQgYmUgZXhlY3V0ZWQuIgogIDs7CgppbnN0 YWxsKQogICRlY2hvIFwKIlVzYWdlOiAkbW9kZW5hbWUgW09QVElPTl0uLi4gLS1tb2RlPWluc3Rh bGwgSU5TVEFMTC1DT01NQU5ELi4uCgpJbnN0YWxsIGV4ZWN1dGFibGVzIG9yIGxpYnJhcmllcy4K CklOU1RBTEwtQ09NTUFORCBpcyB0aGUgaW5zdGFsbGF0aW9uIGNvbW1hbmQuICBUaGUgZmlyc3Qg Y29tcG9uZW50IHNob3VsZCBiZQplaXRoZXIgdGhlIFxgaW5zdGFsbCcgb3IgXGBjcCcgcHJvZ3Jh bS4KClRoZSByZXN0IG9mIHRoZSBjb21wb25lbnRzIGFyZSBpbnRlcnByZXRlZCBhcyBhcmd1bWVu dHMgdG8gdGhhdCBjb21tYW5kIChvbmx5CkJTRC1jb21wYXRpYmxlIGluc3RhbGwgb3B0aW9ucyBh cmUgcmVjb2duaXplZCkuIgogIDs7CgpsaW5rKQogICRlY2hvIFwKIlVzYWdlOiAkbW9kZW5hbWUg W09QVElPTl0uLi4gLS1tb2RlPWxpbmsgTElOSy1DT01NQU5ELi4uCgpMaW5rIG9iamVjdCBmaWxl cyBvciBsaWJyYXJpZXMgdG9nZXRoZXIgdG8gZm9ybSBhbm90aGVyIGxpYnJhcnksIG9yIHRvCmNy ZWF0ZSBhbiBleGVjdXRhYmxlIHByb2dyYW0uCgpMSU5LLUNPTU1BTkQgaXMgYSBjb21tYW5kIHVz aW5nIHRoZSBDIGNvbXBpbGVyIHRoYXQgeW91IHdvdWxkIHVzZSB0byBjcmVhdGUKYSBwcm9ncmFt IGZyb20gc2V2ZXJhbCBvYmplY3QgZmlsZXMuCgpUaGUgZm9sbG93aW5nIGNvbXBvbmVudHMgb2Yg TElOSy1DT01NQU5EIGFyZSB0cmVhdGVkIHNwZWNpYWxseToKCiAgLWFsbC1zdGF0aWMgICAgICAg ZG8gbm90IGRvIGFueSBkeW5hbWljIGxpbmtpbmcgYXQgYWxsCiAgLWF2b2lkLXZlcnNpb24gICAg ZG8gbm90IGFkZCBhIHZlcnNpb24gc3VmZml4IGlmIHBvc3NpYmxlCiAgLWRsb3BlbiBGSUxFICAg ICAgXGAtZGxwcmVvcGVuJyBGSUxFIGlmIGl0IGNhbm5vdCBiZSBkbG9wZW5lZCBhdCBydW50aW1l CiAgLWRscHJlb3BlbiBGSUxFICAgbGluayBpbiBGSUxFIGFuZCBhZGQgaXRzIHN5bWJvbHMgdG8g bHRfcHJlbG9hZGVkX3N5bWJvbHMKICAtZXhwb3J0LWR5bmFtaWMgICBhbGxvdyBzeW1ib2xzIGZy b20gT1VUUFVULUZJTEUgdG8gYmUgcmVzb2x2ZWQgd2l0aCBkbHN5bSgzKQogIC1leHBvcnQtc3lt Ym9scyBTWU1GSUxFCgkJICAgIHRyeSB0byBleHBvcnQgb25seSB0aGUgc3ltYm9scyBsaXN0ZWQg aW4gU1lNRklMRQogIC1leHBvcnQtc3ltYm9scy1yZWdleCBSRUdFWAoJCSAgICB0cnkgdG8gZXhw b3J0IG9ubHkgdGhlIHN5bWJvbHMgbWF0Y2hpbmcgUkVHRVgKICAtTExJQkRJUiAgICAgICAgICBz ZWFyY2ggTElCRElSIGZvciByZXF1aXJlZCBpbnN0YWxsZWQgbGlicmFyaWVzCiAgLWxOQU1FICAg ICAgICAgICAgT1VUUFVULUZJTEUgcmVxdWlyZXMgdGhlIGluc3RhbGxlZCBsaWJyYXJ5IGxpYk5B TUUKICAtbW9kdWxlICAgICAgICAgICBidWlsZCBhIGxpYnJhcnkgdGhhdCBjYW4gZGxvcGVuZWQK ICAtbm8tdW5kZWZpbmVkICAgICBkZWNsYXJlIHRoYXQgYSBsaWJyYXJ5IGRvZXMgbm90IHJlZmVy IHRvIGV4dGVybmFsIHN5bWJvbHMKICAtbyBPVVRQVVQtRklMRSAgICBjcmVhdGUgT1VUUFVULUZJ TEUgZnJvbSB0aGUgc3BlY2lmaWVkIG9iamVjdHMKICAtcmVsZWFzZSBSRUxFQVNFICBzcGVjaWZ5 IHBhY2thZ2UgcmVsZWFzZSBpbmZvcm1hdGlvbgogIC1ycGF0aCBMSUJESVIgICAgIHRoZSBjcmVh dGVkIGxpYnJhcnkgd2lsbCBldmVudHVhbGx5IGJlIGluc3RhbGxlZCBpbiBMSUJESVIKICAtUlsg XUxJQkRJUiAgICAgICBhZGQgTElCRElSIHRvIHRoZSBydW50aW1lIHBhdGggb2YgcHJvZ3JhbXMg YW5kIGxpYnJhcmllcwogIC1zdGF0aWMgICAgICAgICAgIGRvIG5vdCBkbyBhbnkgZHluYW1pYyBs aW5raW5nIG9mIGxpYnRvb2wgbGlicmFyaWVzCiAgLXZlcnNpb24taW5mbyBDVVJSRU5UWzpSRVZJ U0lPTls6QUdFXV0KCQkgICAgc3BlY2lmeSBsaWJyYXJ5IHZlcnNpb24gaW5mbyBbZWFjaCB2YXJp YWJsZSBkZWZhdWx0cyB0byAwXQoKQWxsIG90aGVyIG9wdGlvbnMgKGFyZ3VtZW50cyBiZWdpbm5p bmcgd2l0aCBcYC0nKSBhcmUgaWdub3JlZC4KCkV2ZXJ5IG90aGVyIGFyZ3VtZW50IGlzIHRyZWF0 ZWQgYXMgYSBmaWxlbmFtZS4gIEZpbGVzIGVuZGluZyBpbiBcYC5sYScgYXJlCnRyZWF0ZWQgYXMg dW5pbnN0YWxsZWQgbGlidG9vbCBsaWJyYXJpZXMsIG90aGVyIGZpbGVzIGFyZSBzdGFuZGFyZCBv ciBsaWJyYXJ5Cm9iamVjdCBmaWxlcy4KCklmIHRoZSBPVVRQVVQtRklMRSBlbmRzIGluIFxgLmxh JywgdGhlbiBhIGxpYnRvb2wgbGlicmFyeSBpcyBjcmVhdGVkLApvbmx5IGxpYnJhcnkgb2JqZWN0 cyAoXGAubG8nIGZpbGVzKSBtYXkgYmUgc3BlY2lmaWVkLCBhbmQgXGAtcnBhdGgnIGlzCnJlcXVp cmVkLCBleGNlcHQgd2hlbiBjcmVhdGluZyBhIGNvbnZlbmllbmNlIGxpYnJhcnkuCgpJZiBPVVRQ VVQtRklMRSBlbmRzIGluIFxgLmEnIG9yIFxgLmxpYicsIHRoZW4gYSBzdGFuZGFyZCBsaWJyYXJ5 IGlzIGNyZWF0ZWQKdXNpbmcgXGBhcicgYW5kIFxgcmFubGliJywgb3Igb24gV2luZG93cyB1c2lu ZyBcYGxpYicuCgpJZiBPVVRQVVQtRklMRSBlbmRzIGluIFxgLmxvJyBvciBcYC4ke29iamV4dH0n LCB0aGVuIGEgcmVsb2FkYWJsZSBvYmplY3QgZmlsZQppcyBjcmVhdGVkLCBvdGhlcndpc2UgYW4g ZXhlY3V0YWJsZSBwcm9ncmFtIGlzIGNyZWF0ZWQuIgogIDs7Cgp1bmluc3RhbGwpCiAgJGVjaG8g XAoiVXNhZ2U6ICRtb2RlbmFtZSBbT1BUSU9OXS4uLiAtLW1vZGU9dW5pbnN0YWxsIFJNIFtSTS1P UFRJT05dLi4uIEZJTEUuLi4KClJlbW92ZSBsaWJyYXJpZXMgZnJvbSBhbiBpbnN0YWxsYXRpb24g ZGlyZWN0b3J5LgoKUk0gaXMgdGhlIG5hbWUgb2YgdGhlIHByb2dyYW0gdG8gdXNlIHRvIGRlbGV0 ZSBmaWxlcyBhc3NvY2lhdGVkIHdpdGggZWFjaCBGSUxFCih0eXBpY2FsbHkgXGAvYmluL3JtJyku ICBSTS1PUFRJT05TIGFyZSBvcHRpb25zIChzdWNoIGFzIFxgLWYnKSB0byBiZSBwYXNzZWQKdG8g Uk0uCgpJZiBGSUxFIGlzIGEgbGlidG9vbCBsaWJyYXJ5LCBhbGwgdGhlIGZpbGVzIGFzc29jaWF0 ZWQgd2l0aCBpdCBhcmUgZGVsZXRlZC4KT3RoZXJ3aXNlLCBvbmx5IEZJTEUgaXRzZWxmIGlzIGRl bGV0ZWQgdXNpbmcgUk0uIgogIDs7CgoqKQogICRlY2hvICIkbW9kZW5hbWU6IGludmFsaWQgb3Bl cmF0aW9uIG1vZGUgXGAkbW9kZSciIDE+JjIKICAkZWNobyAiJGhlbHAiIDE+JjIKICBleGl0IDEK ICA7Owplc2FjCgplY2hvCiRlY2hvICJUcnkgXGAkbW9kZW5hbWUgLS1oZWxwJyBmb3IgbW9yZSBp bmZvcm1hdGlvbiBhYm91dCBvdGhlciBtb2Rlcy4iCgpleGl0IDAKCiMgTG9jYWwgVmFyaWFibGVz OgojIG1vZGU6c2hlbGwtc2NyaXB0CiMgc2gtaW5kZW50YXRpb246MgojIEVuZDoK --Multipart=_Wed__31_Mar_2004_09_22_47_+0200_IVAWlh/MouLt7b_T-- From owner-freebsd-amd64@FreeBSD.ORG Wed Mar 31 04:41:51 2004 Return-Path: Delivered-To: freebsd-amd64@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 1BF3516A4CE; Wed, 31 Mar 2004 04:41:51 -0800 (PST) Received: from freebsd-current.sentex.ca (freebsd-current.sentex.ca [64.7.128.98]) by mx1.FreeBSD.org (Postfix) with ESMTP id EC7B743D45; Wed, 31 Mar 2004 04:41:50 -0800 (PST) (envelope-from tinderbox@freebsd.org) Received: by freebsd-current.sentex.ca (Postfix, from userid 666) id 2C0287303A; Wed, 31 Mar 2004 07:41:50 -0500 (EST) Sender: FreeBSD Tinderbox From: FreeBSD Tinderbox To: FreeBSD Tinderbox , , Precedence: bulk Message-Id: <20040331124150.2C0287303A@freebsd-current.sentex.ca> Date: Wed, 31 Mar 2004 07:41:50 -0500 (EST) Subject: [current tinderbox] failure on amd64/amd64 X-BeenThere: freebsd-amd64@freebsd.org X-Mailman-Version: 2.1.1 List-Id: Porting FreeBSD to the AMD64 platform List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Mar 2004 12:41:51 -0000 TB --- 2004-03-31 12:00:45 - tinderbox 2.3 running on freebsd-current.sentex.ca TB --- 2004-03-31 12:00:45 - starting CURRENT tinderbox run for amd64/amd64 TB --- 2004-03-31 12:00:45 - checking out the source tree TB --- 2004-03-31 12:00:45 - cd /home/tinderbox/sandbox/CURRENT/amd64/amd64 TB --- 2004-03-31 12:00:45 - /usr/bin/cvs -f -R -q -d/home/ncvs update -Pd -A src TB --- 2004-03-31 12:06:38 - building world (CFLAGS=-O2 -pipe) TB --- 2004-03-31 12:06:38 - cd /home/tinderbox/sandbox/CURRENT/amd64/amd64/src TB --- 2004-03-31 12:06:38 - /usr/bin/make -B buildworld >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries [...] /other/tinderbox/CURRENT/amd64/amd64/src/contrib/libpcap/pcap.c:335: error: (near initialization for `dlt_choices[28]') /other/tinderbox/CURRENT/amd64/amd64/src/contrib/libpcap/pcap.c:336: error: `DLT_IEEE802_11_RADIO_AVS' undeclared here (not in a function) /other/tinderbox/CURRENT/amd64/amd64/src/contrib/libpcap/pcap.c:336: error: initializer element is not constant /other/tinderbox/CURRENT/amd64/amd64/src/contrib/libpcap/pcap.c:336: error: (near initialization for `dlt_choices[29].dlt') /other/tinderbox/CURRENT/amd64/amd64/src/contrib/libpcap/pcap.c:336: error: initializer element is not constant /other/tinderbox/CURRENT/amd64/amd64/src/contrib/libpcap/pcap.c:336: error: (near initialization for `dlt_choices[29]') /other/tinderbox/CURRENT/amd64/amd64/src/contrib/libpcap/pcap.c:337: error: initializer element is not constant /other/tinderbox/CURRENT/amd64/amd64/src/contrib/libpcap/pcap.c:337: error: (near initialization for `dlt_choices[30]') *** Error code 1 Stop in /other/tinderbox/CURRENT/amd64/amd64/src/lib/libpcap. *** Error code 1 Stop in /other/tinderbox/CURRENT/amd64/amd64/src/lib. *** Error code 1 Stop in /other/tinderbox/CURRENT/amd64/amd64/src. *** Error code 1 Stop in /other/tinderbox/CURRENT/amd64/amd64/src. *** Error code 1 Stop in /other/tinderbox/CURRENT/amd64/amd64/src. *** Error code 1 Stop in /other/tinderbox/CURRENT/amd64/amd64/src. TB --- 2004-03-31 12:41:50 - WARNING: /usr/bin/make returned exit code 1 TB --- 2004-03-31 12:41:50 - ERROR: failed to build world TB --- 2004-03-31 12:41:50 - tinderbox aborted From owner-freebsd-amd64@FreeBSD.ORG Wed Mar 31 15:07:17 2004 Return-Path: Delivered-To: freebsd-amd64@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 978BD16A4CE; Wed, 31 Mar 2004 15:07:17 -0800 (PST) Received: from freebsd-current.sentex.ca (freebsd-current.sentex.ca [64.7.128.98]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3DEAF43D2F; Wed, 31 Mar 2004 15:07:17 -0800 (PST) (envelope-from tinderbox@freebsd.org) Received: by freebsd-current.sentex.ca (Postfix, from userid 666) id 83BCB7303A; Wed, 31 Mar 2004 18:07:16 -0500 (EST) Sender: FreeBSD Tinderbox From: FreeBSD Tinderbox To: FreeBSD Tinderbox , , Precedence: bulk Message-Id: <20040331230716.83BCB7303A@freebsd-current.sentex.ca> Date: Wed, 31 Mar 2004 18:07:16 -0500 (EST) Subject: [current tinderbox] failure on amd64/amd64 X-BeenThere: freebsd-amd64@freebsd.org X-Mailman-Version: 2.1.1 List-Id: Porting FreeBSD to the AMD64 platform List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Mar 2004 23:07:17 -0000 TB --- 2004-03-31 22:07:13 - tinderbox 2.3 running on freebsd-current.sentex.ca TB --- 2004-03-31 22:07:13 - starting CURRENT tinderbox run for amd64/amd64 TB --- 2004-03-31 22:07:13 - checking out the source tree TB --- 2004-03-31 22:07:13 - cd /home/tinderbox/sandbox/CURRENT/amd64/amd64 TB --- 2004-03-31 22:07:13 - /usr/bin/cvs -f -R -q -d/home/ncvs update -Pd -A src TB --- 2004-03-31 22:12:05 - building world (CFLAGS=-O2 -pipe) TB --- 2004-03-31 22:12:05 - cd /home/tinderbox/sandbox/CURRENT/amd64/amd64/src TB --- 2004-03-31 22:12:05 - /usr/bin/make -B buildworld >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries >>> stage 4.3: make dependencies >>> stage 4.4: building everything [...] ===> usr.sbin/ndc cc -O2 -pipe -I/other/tinderbox/CURRENT/amd64/amd64/src/usr.sbin/ndc/../../contrib/bind/port/freebsd/include -I/other/tinderbox/CURRENT/amd64/amd64/src/usr.sbin/ndc/../../contrib/bind/bin/named -I/other/tinderbox/CURRENT/amd64/amd64/src/usr.sbin/ndc/../../contrib/bind/include -I. -c /other/tinderbox/CURRENT/amd64/amd64/src/contrib/bind/bin/ndc/ndc.c cc -O2 -pipe -I/other/tinderbox/CURRENT/amd64/amd64/src/usr.sbin/ndc/../../contrib/bind/port/freebsd/include -I/other/tinderbox/CURRENT/amd64/amd64/src/usr.sbin/ndc/../../contrib/bind/bin/named -I/other/tinderbox/CURRENT/amd64/amd64/src/usr.sbin/ndc/../../contrib/bind/include -I. -o ndc ndc.o /other/tinderbox/CURRENT/amd64/amd64/obj/amd64/other/tinderbox/CURRENT/amd64/amd64/src/usr.sbin/ndc/../../lib/libbind/libbind.a INDOT_U=`echo ""|LC_ALL=C tr "a-z" "A-Z"`; export INDOT_U; XFER_INDOT_U=`echo ""|LC_ALL=C tr "a-z" "A-Z"`; export XFER_INDOT_U; CMD_EXT_U=`echo "1"|LC_ALL=C tr "a-z" "A-Z"`; export CMD_EXT_U; SYS_OPS_EXT_U=`echo "8"|LC_ALL=C tr "a-z" "A-Z"`; export SYS_OPS_EXT_U; LIB_NETWORK_EXT_U=`echo "3"|LC_ALL=C tr "a-z" "A-Z"`; export LIB_NETWORK_EXT_U; FORMAT_EXT_U=`echo "5"|LC_ALL=C tr "a-z" "A-Z"`; export FORMAT_EXT_U; DESC_EXT_U=`echo "7"|LC_ALL=C tr "a-z" "A-Z"`; export DESC_EXT_U; SYSCALL_EXT_U=`echo "2"|LC_ALL=C tr "a-z" "A-Z"`; export SYSCALL_EXT_U; BSD_SYSCALL_EXT_U=`echo "2"|LC_ALL=C tr "a-z" "A-Z"`; export BSD_SYSCALL_EXT_U; LIB_C_EXT_U=`echo "3"|LC_ALL=C tr "a-z" "A-Z"`; export LIB_C_EXT_U; sed -e "s/@INDOT@//g" -e "s/@INDOT_U@/${INDOT_U}/g" -e "s/@XFER_INDOT@//g" -e "s/@XFER_INDOT_U@/${XFER_INDOT_U}/g" -e "s/@CMD_EXT@/1/g" -e "s/@CMD_EXT_U@/${CMD_EXT_U}/g" -e "s/@LIB_NETWORK_EXT@/3/g" -e "s/@LIB_NETWORK_EXT_U@/${LIB_NETWORK_EXT_U}/g" -e "s/@FORMAT _EXT@/5/g" -e "s/@FORMAT_EXT_U@/${FORMAT_EXT_U}/g" -e "s/@DESC_EXT@/7/g" -e "s/@DESC_EXT_U@/${DESC_EXT_U}/g" -e "s/@SYS_OPS_EXT@/8/g" -e "s/@SYS_OPS_EXT_U@/${SYS_OPS_EXT_U}/g" -e "s/@SYSCALL_EXT@/2/g" -e "s/@SYSCALL_EXT_U@/${SYSCALL_EXT_U}/g" -e "s/@BSD_SYSCALL_EXT@/2/g" -e "s/@BSD_SYSCALL_EXT_U@/${BSD_SYSCALL_EXT_U}/g" -e "s/@LIB_C_EXT@/3/g" -e "s/@LIB_C_EXT_U@/${LIB_C_EXT_U}/g" -e "s@/etc/named\.conf@/etc/namedb/named.conf@g" -e "s/^ *$/.Pp/" < /other/tinderbox/CURRENT/amd64/amd64/src/usr.sbin/ndc/../../contrib/bind/doc/man/ndc.8 | gzip -cn > ndc.8.gz ===> usr.sbin/ndp cc -O2 -pipe -DINET6 -I. -I/other/tinderbox/CURRENT/amd64/amd64/src/usr.sbin/ndp -I/other/tinderbox/CURRENT/amd64/amd64/src/usr.sbin/ndp/../../contrib/tcpdump -c /other/tinderbox/CURRENT/amd64/amd64/src/usr.sbin/ndp/ndp.c cc -O2 -pipe -DINET6 -I. -I/other/tinderbox/CURRENT/amd64/amd64/src/usr.sbin/ndp -I/other/tinderbox/CURRENT/amd64/amd64/src/usr.sbin/ndp/../../contrib/tcpdump -c /other/tinderbox/CURRENT/amd64/amd64/src/contrib/tcpdump/gmt2local.c /other/tinderbox/CURRENT/amd64/amd64/src/contrib/tcpdump/gmt2local.c:23: error: syntax error before "_U_" *** Error code 1 Stop in /other/tinderbox/CURRENT/amd64/amd64/src/usr.sbin/ndp. *** Error code 1 Stop in /other/tinderbox/CURRENT/amd64/amd64/src/usr.sbin. *** Error code 1 Stop in /other/tinderbox/CURRENT/amd64/amd64/src. *** Error code 1 Stop in /other/tinderbox/CURRENT/amd64/amd64/src. *** Error code 1 Stop in /other/tinderbox/CURRENT/amd64/amd64/src. TB --- 2004-03-31 23:07:16 - WARNING: /usr/bin/make returned exit code 1 TB --- 2004-03-31 23:07:16 - ERROR: failed to build world TB --- 2004-03-31 23:07:16 - tinderbox aborted From owner-freebsd-amd64@FreeBSD.ORG Wed Mar 31 15:19:55 2004 Return-Path: Delivered-To: freebsd-amd64@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 5C2FA16A4CF for ; Wed, 31 Mar 2004 15:19:55 -0800 (PST) Received: from pandora.cs.kun.nl (pandora.cs.kun.nl [131.174.33.4]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3D96D43D2D for ; Wed, 31 Mar 2004 15:19:54 -0800 (PST) (envelope-from adridg@cs.kun.nl) Received: from odin.cs.kun.nl [131.174.33.33] (helo=localhost) by pandora.cs.kun.nl (8.12.10/3.67) with ESMTP id i2VNJqqR009879 for ; Thu, 1 Apr 2004 01:19:52 +0200 (MEST) From: Adriaan de Groot To: freebsd-amd64@freebsd.org Date: Thu, 1 Apr 2004 01:19:33 +0200 User-Agent: KMail/1.6.51 References: <200403302335.16357.peter@wemm.org> In-Reply-To: <200403302335.16357.peter@wemm.org> MIME-Version: 1.0 Content-Disposition: inline Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Message-Id: <200404010119.39384.adridg@cs.kun.nl> Subject: Re: HEADS UP: cvs commit: src/lib/libc/amd64/gen makecontext.c signalcontext.c X-BeenThere: freebsd-amd64@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Porting FreeBSD to the AMD64 platform List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Mar 2004 23:19:55 -0000 =2D----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Wednesday 31 March 2004 09:35, Peter Wemm wrote: > I've found another stack alignment bug. This one is an easy fix, it > just needs a libc rebuild/install. > > Can I get a sanity check from the folks who can break ogg123? I > actually found this using ogg123 in case you're interested. Rebuilt world and kernel =46reeBSD beans.ebn.kun.nl 5.2-CURRENT FreeBSD 5.2-CURRENT #3: Wed Mar 31=20 22:31:42 CEST 2004 =20 root@beans.ebn.kun.nl:/usr/obj/mnt/sys/CURRENT/src/sys/BEANS amd64 but not ogg123 itself, and it (ogg123) still cores on me when using=20 libpthread. libc_r remains stable as always. Since this problem is obviousl= y=20 just me, let it lie. =2D --=20 pub 1024D/FEA2A3FE 2002-06-18 Adriaan de Groot Would you like a freem? =2D----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (FreeBSD) iD8DBQFAa1ILdqzuAf6io/4RAgXeAKCRsgmmmvADvE4iGkUAjS0Kx5RmXgCeJOpq CNTUEJg9L1QUgqE0zXXlozo=3D =3DYUD3 =2D----END PGP SIGNATURE----- From owner-freebsd-amd64@FreeBSD.ORG Wed Mar 31 18:36:19 2004 Return-Path: Delivered-To: freebsd-amd64@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 0FDF116A4CE for ; Wed, 31 Mar 2004 18:36:19 -0800 (PST) Received: from delivery.infowest.com (delivery.infowest.com [204.17.177.5]) by mx1.FreeBSD.org (Postfix) with ESMTP id C15E743D1D for ; Wed, 31 Mar 2004 18:36:18 -0800 (PST) (envelope-from butch@infowest.com) Received: from webmail.infowest.com (webmail.infowest.com [204.17.177.50]) by delivery.infowest.com (Postfix) with ESMTP id 22666EBBA17 for ; Wed, 31 Mar 2004 19:36:18 -0700 (MST) Received: (from www@localhost) by webmail.infowest.com (8.12.6p3/8.12.6/Submit) id i312aIlQ021461 for freebsd-amd64@freebsd.org; Wed, 31 Mar 2004 19:36:18 -0700 (MST) X-Authentication-Warning: webmail.infowest.com: www set sender to butch@infowest.com using -f Received: from triana.kmpanilla.com (triana.kmpanilla.com [208.186.104.164]) by webmail2.infowest.com (IMP) with HTTP for ; Wed, 31 Mar 2004 19:36:18 -0700 Message-ID: <1080786978.406b80221fd5f@webmail2.infowest.com> Date: Wed, 31 Mar 2004 19:36:18 -0700 From: "Cassidy B. Larson" To: freebsd-amd64@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit User-Agent: Internet Messaging Program (IMP) 3.2.2 / FreeBSD-4.7 X-Originating-IP: 208.186.104.164 Subject: SMP issues on K8S Pro S2882G3NR X-BeenThere: freebsd-amd64@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Porting FreeBSD to the AMD64 platform List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Apr 2004 02:36:19 -0000 Hello, We just got our new Dual Opteron 246 box and I'm having some problems getting our second CPU to load correctly with a SMP kernel. Wondering if anybody could offer some assistance, or pointers. Using the Tyan K8S Pro S2882G3NR board. 3ware 8506 4 port SATA card. I've also tried Disabling ACPI in the kernel and bios, then one at a time. Below are partial dmesg, mptable and kern config. Unfortunately, with different combinations of the NO_MIXED_MODE on and off and acpi enabled and disabled, I am unable to get SMP to launch our second CPU for use. Anybody experienced the same problem?? Would -CURRENT be ideal over 5.2.1-p4 for me? Note that the GENERICicized SMP kernel also does not launch the second processor. Any pointers, helpful hints, etc? Thanks, -c Partial dmesg: Copyright (c) 1992-2004 The FreeBSD Project. Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 The Regents of the University of California. All rights reserved. FreeBSD 5.2.1-RELEASE-p4 #7: Wed Mar 31 16:10:21 MST 2004 cbl@azul.infowest.com:/usr/obj/usr/src/sys/AZUL.INFOWEST.COM Preloaded elf kernel "/boot/kernel/kernel" at 0xffffffff80557000. Timecounter "i8254" frequency 1193182 Hz quality 0 CPU: AMD Opteron(tm) Processor 246 (1991.41-MHz K8-class CPU) Origin = "AuthenticAMD" Id = 0xf58 Stepping = 8 Features=0x78bfbff AMD Features=0xe0500000 real memory = 3221225472 (3072 MB) avail memory = 3063418880 (2921 MB) pcib0: at pcibus 0 on motherboard mptable processors entry: MP Config Base Table Entries: -- Processors: APIC ID Version State Family Model Step Flags 0 0x10 BSP, usable 15 5 8 0x78bfbff 1 0x10 AP, usable 15 5 8 0x78bfbff So I see that mptable seems to see both processors, am I assuming correct here? Partial kernel config: machine amd64 cpu HAMMER ident AZUL_INFOWEST_COM maxusers 0 makeoptions NO_MODULES=not_yet options SCHED_4BSD #4BSD scheduler options INET #InterNETworking options IPSEC #IPSEC options FFS #Berkeley Fast Filesystem options SOFTUPDATES #Enable FFS soft updates support options UFS_ACL #Support for access control lists options UFS_DIRHASH #Improve performance on big directories options CD9660 #ISO 9660 Filesystem options PROCFS #Process filesystem (requires PSEUDOFS) options PSEUDOFS #Pseudo-filesystem framework options IA32 #Compatible with i386 binaries options COMPAT_FREEBSD4 #Compatible with FreeBSD4 options SCSI_DELAY=5000 #Delay (in ms) before probing SCSI options KTRACE #ktrace(1) support options SYSVSHM #SYSV-style shared memory options SYSVMSG #SYSV-style message queues options SYSVSEM #SYSV-style semaphores options IPFIREWALL options IPDIVERT #divert sockets options _KPOSIX_PRIORITY_SCHEDULING #Posix P1003_1B real-time extensions options KBD_INSTALL_CDEV # install a CDEV entry in /dev ## SMP Stuff: options SMP #device acpi device atpic # 8259A compatability #options NO_MIXED_MODE # Don't penalize working chipsets From owner-freebsd-amd64@FreeBSD.ORG Wed Mar 31 20:37:07 2004 Return-Path: Delivered-To: freebsd-amd64@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B77FE16A4CE for ; Wed, 31 Mar 2004 20:37:07 -0800 (PST) Received: from dogfood.jrv.org (rrcs-sw-24-73-246-106.biz.rr.com [24.73.246.106]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2635E43D1D for ; Wed, 31 Mar 2004 20:37:05 -0800 (PST) (envelope-from james@jrv.org) Received: from jrv.org (zippy.jrv.org [192.168.3.156]) (authenticated bits=0) by dogfood.jrv.org (8.12.11/8.12.10) with ESMTP id i314b3JJ053331 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 31 Mar 2004 22:37:03 -0600 (CST) (envelope-from james@jrv.org) Message-ID: <406B9C6F.5070803@jrv.org> Date: Wed, 31 Mar 2004 22:37:03 -0600 From: "James R. Van Artsalen" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.6) Gecko/20040113 X-Accept-Language: en-us, en MIME-Version: 1.0 To: "Cassidy B. Larson" References: <1080786978.406b80221fd5f@webmail2.infowest.com> In-Reply-To: <1080786978.406b80221fd5f@webmail2.infowest.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit cc: freebsd-amd64@freebsd.org Subject: Re: SMP issues on K8S Pro S2882G3NR X-BeenThere: freebsd-amd64@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Porting FreeBSD to the AMD64 platform List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Apr 2004 04:37:07 -0000 Cassidy B. Larson wrote: >Copyright (c) 1992-2004 The FreeBSD Project. >Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 >The Regents of the University of California. All rights reserved. >FreeBSD 5.2.1-RELEASE-p4 #7: Wed Mar 31 16:10:21 MST 2004 >cbl@azul.infowest.com:/usr/obj/usr/src/sys/AZUL.INFOWEST.COM >Preloaded elf kernel "/boot/kernel/kernel" at 0xffffffff80557000. >Timecounter "i8254" frequency 1193182 Hz quality 0 > > I have an APIC line here: Preloaded elf kernel "/boot/kernel/kernel" at 0xffffffff8090c000. ACPI APIC Table: Timecounter "i8254" frequency 1193182 Hz quality 0 CPU: AMD Opteron(tm) Processor 244 (1793.45-MHz K8-class CPU) Origin = "AuthenticAMD" Id = 0xf51 Stepping = 1 Features=0x78bfbff AMD Features=0xe0500000 real memory = 8589934592 (8192 MB) avail memory = 7305748480 (6967 MB) FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs cpu0 (BSP): APIC ID: 0 cpu1 (AP): APIC ID: 1 ioapic0 irqs 0-23 on motherboard ioapic1 irqs 24-27 on motherboard ioapic2 irqs 28-31 on motherboard From owner-freebsd-amd64@FreeBSD.ORG Thu Apr 1 00:47:25 2004 Return-Path: Delivered-To: freebsd-amd64@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id ED5AB16A4CF for ; Thu, 1 Apr 2004 00:47:25 -0800 (PST) Received: from dogfood.jrv.org (rrcs-sw-24-73-246-106.biz.rr.com [24.73.246.106]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7324143D2D for ; Thu, 1 Apr 2004 00:47:25 -0800 (PST) (envelope-from james@jrv.org) Received: from jrv.org (zippy.jrv.org [192.168.3.156]) (authenticated bits=0) by dogfood.jrv.org (8.12.11/8.12.10) with ESMTP id i318lOCP069357 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 1 Apr 2004 02:47:24 -0600 (CST) (envelope-from james@jrv.org) Message-ID: <406BD71C.4030305@jrv.org> Date: Thu, 01 Apr 2004 02:47:24 -0600 From: "James R. Van Artsalen" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.6) Gecko/20040113 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Rich Dunkle References: <38712.134.134.136.13.1080577782.squirrel@www.smallcatbrain.com> In-Reply-To: <38712.134.134.136.13.1080577782.squirrel@www.smallcatbrain.com> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit cc: freebsd-amd64@freebsd.org Subject: Re: New 5.2-CURRENT snapshot -softdep_disk_prewrite+0x44 X-BeenThere: freebsd-amd64@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Porting FreeBSD to the AMD64 platform List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Apr 2004 08:47:26 -0000 Rich Dunkle wrote: >I am having the same problem with this snapshot as the other >snapshots I have created in the last week. >Hang during inital boot. > >softdep_disk_prewrite+0x44 > >I reported this in freebsd-current on Friday > >Does anyone else see this ? > > I see this on a Tyan S2885 with four disks in mirrored pairs on a Promise S150 TX4 controller. From owner-freebsd-amd64@FreeBSD.ORG Thu Apr 1 03:16:48 2004 Return-Path: Delivered-To: freebsd-amd64@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 7278A16A4CE for ; Thu, 1 Apr 2004 03:16:48 -0800 (PST) Received: from mail.uk.psi.com (mail.uk.psi.com [154.8.2.142]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8440F43D2F for ; Thu, 1 Apr 2004 03:16:47 -0800 (PST) (envelope-from alan.barrow@psineteurope.com) Received: from camdev-01.ops.uk.psi.com ([154.8.22.17]) by mail.uk.psi.com with esmtp (Exim 3.33 #1) id 1B90BH-0003wd-00; Thu, 01 Apr 2004 12:16:19 +0100 From: alan barrow To: "James R. Van Artsalen" In-Reply-To: <406B9C6F.5070803@jrv.org> References: <1080786978.406b80221fd5f@webmail2.infowest.com> <406B9C6F.5070803@jrv.org> Content-Type: text/plain Content-Transfer-Encoding: 7bit X-Mailer: Ximian Evolution 1.0.8 (1.0.8-9.7x.1) Date: 01 Apr 2004 12:16:19 +0100 Message-Id: <1080818179.2843.47.camel@camdev-01.ops.uk.psi.com> Mime-Version: 1.0 cc: "freebsd-amd64@freebsd.org" Subject: Re: SMP issues on K8S Pro S2882G3NR X-BeenThere: freebsd-amd64@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Porting FreeBSD to the AMD64 platform List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Apr 2004 11:16:48 -0000 Is this a problem ? turn off APIC ? On Thu, 2004-04-01 at 05:37, James R. Van Artsalen wrote: > Cassidy B. Larson wrote: > > >Copyright (c) 1992-2004 The FreeBSD Project. > >Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 > >The Regents of the University of California. All rights reserved. > >FreeBSD 5.2.1-RELEASE-p4 #7: Wed Mar 31 16:10:21 MST 2004 > >cbl@azul.infowest.com:/usr/obj/usr/src/sys/AZUL.INFOWEST.COM > >Preloaded elf kernel "/boot/kernel/kernel" at 0xffffffff80557000. > >Timecounter "i8254" frequency 1193182 Hz quality 0 > > > > > > I have an APIC line here: > > Preloaded elf kernel "/boot/kernel/kernel" at 0xffffffff8090c000. > ACPI APIC Table: > Timecounter "i8254" frequency 1193182 Hz quality 0 > CPU: AMD Opteron(tm) Processor 244 (1793.45-MHz K8-class CPU) > Origin = "AuthenticAMD" Id = 0xf51 Stepping = 1 > > Features=0x78bfbff > AMD Features=0xe0500000 > real memory = 8589934592 (8192 MB) > avail memory = 7305748480 (6967 MB) > FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs > cpu0 (BSP): APIC ID: 0 > cpu1 (AP): APIC ID: 1 > ioapic0 irqs 0-23 on motherboard > ioapic1 irqs 24-27 on motherboard > ioapic2 irqs 28-31 on motherboard > _______________________________________________ > freebsd-amd64@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-amd64 > To unsubscribe, send any mail to "freebsd-amd64-unsubscribe@freebsd.org" > From owner-freebsd-amd64@FreeBSD.ORG Thu Apr 1 03:27:39 2004 Return-Path: Delivered-To: freebsd-amd64@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id F344516A4CE for ; Thu, 1 Apr 2004 03:27:38 -0800 (PST) Received: from mail.uk.psi.com (mail.uk.psi.com [154.8.2.142]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8DA9143D1F for ; Thu, 1 Apr 2004 03:27:38 -0800 (PST) (envelope-from alan.barrow@psineteurope.com) Received: from camdev-01.ops.uk.psi.com ([154.8.22.17]) by mail.uk.psi.com with esmtp (Exim 3.33 #1) id 1B90M2-0004mG-00; Thu, 01 Apr 2004 12:27:26 +0100 From: alan barrow To: "Cassidy B. Larson" In-Reply-To: <1080786978.406b80221fd5f@webmail2.infowest.com> References: <1080786978.406b80221fd5f@webmail2.infowest.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit X-Mailer: Ximian Evolution 1.0.8 (1.0.8-9.7x.1) Date: 01 Apr 2004 12:27:26 +0100 Message-Id: <1080818846.2845.59.camel@camdev-01.ops.uk.psi.com> Mime-Version: 1.0 cc: "freebsd-amd64@freebsd.org" Subject: Re: SMP issues on K8S Pro S2882G3NR X-BeenThere: freebsd-amd64@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Porting FreeBSD to the AMD64 platform List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Apr 2004 11:27:39 -0000 We have been testing this fine, Upgrade your BIOS to version 2.00 it's the only one that works properly. (Thanks tyan) see the list. We have not had this issue at all, have you tried a standard drive only ??? i.e. no SATA.... just to see what happens. We have rebuilt the kernel and it works fine, yours sarig. On Thu, 2004-04-01 at 03:36, Cassidy B. Larson wrote: > > > Hello, > > We just got our new Dual Opteron 246 box and I'm having some problems getting > our second CPU to load correctly with a SMP kernel. > > Wondering if anybody could offer some assistance, or pointers. > > Using the Tyan K8S Pro S2882G3NR board. 3ware 8506 4 port SATA card. > > I've also tried Disabling ACPI in the kernel and bios, then one at a time. > > Below are partial dmesg, mptable and kern config. Unfortunately, with > different combinations of the NO_MIXED_MODE on and off and acpi enabled and > disabled, I am unable to get SMP to launch our second CPU for use. > > Anybody experienced the same problem?? Would -CURRENT be ideal over 5.2.1-p4 for > me? Note that the GENERICicized SMP kernel also does not launch the second > processor. > > Any pointers, helpful hints, etc? > > Thanks, > > -c > > > Partial dmesg: > > Copyright (c) 1992-2004 The FreeBSD Project. > Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 > The Regents of the University of California. All rights reserved. > FreeBSD 5.2.1-RELEASE-p4 #7: Wed Mar 31 16:10:21 MST 2004 > cbl@azul.infowest.com:/usr/obj/usr/src/sys/AZUL.INFOWEST.COM > Preloaded elf kernel "/boot/kernel/kernel" at 0xffffffff80557000. > Timecounter "i8254" frequency 1193182 Hz quality 0 > CPU: AMD Opteron(tm) Processor 246 (1991.41-MHz K8-class CPU) > Origin = "AuthenticAMD" Id = 0xf58 Stepping = 8 > Features=0x78bfbff > AMD Features=0xe0500000 > real memory = 3221225472 (3072 MB) > avail memory = 3063418880 (2921 MB) > pcib0: at pcibus 0 on motherboard > > > mptable processors entry: > > MP Config Base Table Entries: > -- > Processors: APIC ID Version State Family Model Step Flags > 0 0x10 BSP, usable 15 5 8 > 0x78bfbff > 1 0x10 AP, usable 15 5 8 > 0x78bfbff > > So I see that mptable seems to see both processors, am I assuming correct here? > > Partial kernel config: > > machine amd64 > cpu HAMMER > ident AZUL_INFOWEST_COM > maxusers 0 > > makeoptions NO_MODULES=not_yet > > options SCHED_4BSD #4BSD scheduler > options INET #InterNETworking > options IPSEC #IPSEC > options FFS #Berkeley Fast Filesystem > options SOFTUPDATES #Enable FFS soft updates support > options UFS_ACL #Support for access control lists > options UFS_DIRHASH #Improve performance on big directories > options CD9660 #ISO 9660 Filesystem > options PROCFS #Process filesystem (requires PSEUDOFS) > options PSEUDOFS #Pseudo-filesystem framework > options IA32 #Compatible with i386 binaries > options COMPAT_FREEBSD4 #Compatible with FreeBSD4 > options SCSI_DELAY=5000 #Delay (in ms) before probing SCSI > options KTRACE #ktrace(1) support > options SYSVSHM #SYSV-style shared memory > options SYSVMSG #SYSV-style message queues > options SYSVSEM #SYSV-style semaphores > options IPFIREWALL > options IPDIVERT #divert sockets > options _KPOSIX_PRIORITY_SCHEDULING #Posix P1003_1B real-time > extensions > options KBD_INSTALL_CDEV # install a CDEV entry in /dev > > ## SMP Stuff: > options SMP > > #device acpi > device atpic # 8259A compatability > #options NO_MIXED_MODE # Don't penalize working chipsets > > _______________________________________________ > freebsd-amd64@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-amd64 > To unsubscribe, send any mail to "freebsd-amd64-unsubscribe@freebsd.org" > -- From owner-freebsd-amd64@FreeBSD.ORG Thu Apr 1 03:31:23 2004 Return-Path: Delivered-To: freebsd-amd64@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 5301816A4CE for ; Thu, 1 Apr 2004 03:31:23 -0800 (PST) Received: from dogfood.jrv.org (rrcs-sw-24-73-246-106.biz.rr.com [24.73.246.106]) by mx1.FreeBSD.org (Postfix) with ESMTP id BAE3C43D2D for ; Thu, 1 Apr 2004 03:31:22 -0800 (PST) (envelope-from james@jrv.org) Received: from jrv.org (zippy.jrv.org [192.168.3.156]) (authenticated bits=0) by dogfood.jrv.org (8.12.11/8.12.10) with ESMTP id i31BVLKa076544 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 1 Apr 2004 05:31:21 -0600 (CST) (envelope-from james@jrv.org) Message-ID: <406BFD89.1010905@jrv.org> Date: Thu, 01 Apr 2004 05:31:21 -0600 From: "James R. Van Artsalen" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.6) Gecko/20040113 X-Accept-Language: en-us, en MIME-Version: 1.0 To: alan barrow References: <1080786978.406b80221fd5f@webmail2.infowest.com> <406B9C6F.5070803@jrv.org> <1080818179.2843.47.camel@camdev-01.ops.uk.psi.com> In-Reply-To: <1080818179.2843.47.camel@camdev-01.ops.uk.psi.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit cc: "freebsd-amd64@freebsd.org" Subject: Re: SMP issues on K8S Pro S2882G3NR X-BeenThere: freebsd-amd64@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Porting FreeBSD to the AMD64 platform List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Apr 2004 11:31:23 -0000 alan barrow wrote: >Is this a problem ? turn off APIC ? > > > The APIC is needed for SMP. The fact that the other system shows no APIC is probably related to the SMP problem. From owner-freebsd-amd64@FreeBSD.ORG Thu Apr 1 03:36:34 2004 Return-Path: Delivered-To: freebsd-amd64@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 023DF16A4CE for ; Thu, 1 Apr 2004 03:36:34 -0800 (PST) Received: from mail.uk.psi.com (mail.uk.psi.com [154.8.2.142]) by mx1.FreeBSD.org (Postfix) with ESMTP id C17B243D58 for ; Thu, 1 Apr 2004 03:36:33 -0800 (PST) (envelope-from alan.barrow@psineteurope.com) Received: from camdev-01.ops.uk.psi.com ([154.8.22.17]) by mail.uk.psi.com with esmtp (Exim 3.33 #1) id 1B90Un-0005Pz-00; Thu, 01 Apr 2004 12:36:29 +0100 From: alan barrow To: "James R. Van Artsalen" In-Reply-To: <406BFD89.1010905@jrv.org> References: <1080786978.406b80221fd5f@webmail2.infowest.com> <406B9C6F.5070803@jrv.org> <1080818179.2843.47.camel@camdev-01.ops.uk.psi.com> <406BFD89.1010905@jrv.org> Content-Type: text/plain Content-Transfer-Encoding: 7bit X-Mailer: Ximian Evolution 1.0.8 (1.0.8-9.7x.1) Date: 01 Apr 2004 12:36:29 +0100 Message-Id: <1080819389.2845.62.camel@camdev-01.ops.uk.psi.com> Mime-Version: 1.0 cc: "freebsd-amd64@freebsd.org" Subject: Re: SMP issues on K8S Pro S2882G3NR X-BeenThere: freebsd-amd64@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Porting FreeBSD to the AMD64 platform List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Apr 2004 11:36:34 -0000 I know... So have you tried the 2.0 bios ? On Thu, 2004-04-01 at 12:31, James R. Van Artsalen wrote: > alan barrow wrote: > > >Is this a problem ? turn off APIC ? > > > > > > > The APIC is needed for SMP. The fact that the other system shows no > APIC is probably related to the SMP problem. > From owner-freebsd-amd64@FreeBSD.ORG Thu Apr 1 03:52:46 2004 Return-Path: Delivered-To: freebsd-amd64@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E844E16A4CE; Thu, 1 Apr 2004 03:52:45 -0800 (PST) Received: from freebsd-current.sentex.ca (freebsd-current.sentex.ca [64.7.128.98]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9B22043D45; Thu, 1 Apr 2004 03:52:45 -0800 (PST) (envelope-from tinderbox@freebsd.org) Received: by freebsd-current.sentex.ca (Postfix, from userid 666) id D76637303A; Thu, 1 Apr 2004 06:52:44 -0500 (EST) Sender: FreeBSD Tinderbox From: FreeBSD Tinderbox To: FreeBSD Tinderbox , , Precedence: bulk Message-Id: <20040401115244.D76637303A@freebsd-current.sentex.ca> Date: Thu, 1 Apr 2004 06:52:44 -0500 (EST) Subject: [current tinderbox] failure on amd64/amd64 X-BeenThere: freebsd-amd64@freebsd.org X-Mailman-Version: 2.1.1 List-Id: Porting FreeBSD to the AMD64 platform List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Apr 2004 11:52:46 -0000 TB --- 2004-04-01 10:42:30 - tinderbox 2.3 running on freebsd-current.sentex.ca TB --- 2004-04-01 10:42:30 - starting CURRENT tinderbox run for amd64/amd64 TB --- 2004-04-01 10:42:30 - checking out the source tree TB --- 2004-04-01 10:42:30 - cd /home/tinderbox/sandbox/CURRENT/amd64/amd64 TB --- 2004-04-01 10:42:30 - /usr/bin/cvs -f -R -q -d/home/ncvs update -Pd -A src TB --- 2004-04-01 10:47:24 - building world (CFLAGS=-O2 -pipe) TB --- 2004-04-01 10:47:24 - cd /home/tinderbox/sandbox/CURRENT/amd64/amd64/src TB --- 2004-04-01 10:47:24 - /usr/bin/make -B buildworld >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries >>> stage 4.3: make dependencies >>> stage 4.4: building everything TB --- 2004-04-01 11:45:16 - building generic kernel (COPTFLAGS=-O2 -pipe) TB --- 2004-04-01 11:45:16 - cd /home/tinderbox/sandbox/CURRENT/amd64/amd64/src TB --- 2004-04-01 11:45:16 - /usr/bin/make buildkernel KERNCONF=GENERIC >>> Kernel build for GENERIC started on Thu Apr 1 11:45:16 GMT 2004 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything >>> Kernel build for GENERIC completed on Thu Apr 1 11:52:43 GMT 2004 TB --- 2004-04-01 11:52:43 - generating LINT kernel config TB --- 2004-04-01 11:52:43 - cd /home/tinderbox/sandbox/CURRENT/amd64/amd64/src/sys/amd64/conf TB --- 2004-04-01 11:52:43 - /usr/bin/make -B LINT TB --- 2004-04-01 11:52:43 - building LINT kernel (COPTFLAGS=-O2 -pipe) TB --- 2004-04-01 11:52:43 - cd /home/tinderbox/sandbox/CURRENT/amd64/amd64/src TB --- 2004-04-01 11:52:43 - /usr/bin/make buildkernel KERNCONF=LINT >>> Kernel build for LINT started on Thu Apr 1 11:52:44 GMT 2004 >>> stage 1: configuring the kernel -------------------------------------------------------------- cd /other/tinderbox/CURRENT/amd64/amd64/src/sys/amd64/conf; PATH=/home/tinderbox/sandbox/CURRENT/amd64/amd64/obj/amd64/other/tinderbox/CURRENT/amd64/amd64/src/i386/legacy/usr/sbin:/home/tinderbox/sandbox/CURRENT/amd64/amd64/obj/amd64/other/tinderbox/CURRENT/amd64/amd64/src/i386/legacy/usr/bin:/home/tinderbox/sandbox/CURRENT/amd64/amd64/obj/amd64/other/tinderbox/CURRENT/amd64/amd64/src/i386/legacy/usr/games:/home/tinderbox/sandbox/CURRENT/amd64/amd64/obj/amd64/other/tinderbox/CURRENT/amd64/amd64/src/i386/usr/sbin:/home/tinderbox/sandbox/CURRENT/amd64/amd64/obj/amd64/other/tinderbox/CURRENT/amd64/amd64/src/i386/usr/bin:/home/tinderbox/sandbox/CURRENT/amd64/amd64/obj/amd64/other/tinderbox/CURRENT/amd64/amd64/src/i386/usr/games:/sbin:/bin:/usr/sbin:/usr/bin config -d /home/tinderbox/sandbox/CURRENT/amd64/amd64/obj/amd64/other/tinderbox/CURRENT/amd64/amd64/src/sys/LINT /other/tinderbox/CURRENT/amd64/amd64/src/sys/amd64/conf/LINT FYI: static unit limits for vcoda are set: NVCODA=4 config: Error: device "twa" is unknown config: 1 errors WARNING: kernel contains GPL contaminated ext2fs filesystem *** Error code 1 Stop in /other/tinderbox/CURRENT/amd64/amd64/src. *** Error code 1 Stop in /other/tinderbox/CURRENT/amd64/amd64/src. TB --- 2004-04-01 11:52:44 - WARNING: /usr/bin/make returned exit code 1 TB --- 2004-04-01 11:52:44 - ERROR: failed to build lint kernel TB --- 2004-04-01 11:52:44 - tinderbox aborted From owner-freebsd-amd64@FreeBSD.ORG Thu Apr 1 05:10:45 2004 Return-Path: Delivered-To: freebsd-amd64@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 90CA016A4D0 for ; Thu, 1 Apr 2004 05:10:45 -0800 (PST) Received: from biostats.snu.ac.kr (bibs.snu.ac.kr [147.46.42.54]) by mx1.FreeBSD.org (Postfix) with SMTP id DF44B43D41 for ; Thu, 1 Apr 2004 05:10:44 -0800 (PST) (envelope-from skon@kr.FreeBSD.org) Received: (qmail 69347 invoked from network); 1 Apr 2004 13:10:33 -0000 Received: from unknown (HELO skon2) (192.168.42.18) by 192.168.42.17 with SMTP; 1 Apr 2004 13:10:33 -0000 Message-ID: <007e01c417eb$6691ef90$122aa8c0@skon2> From: "SungGON Yi." To: Date: Thu, 1 Apr 2004 22:15:06 +0900 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1158 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 cc: freebsd-amd64@freebsd.org Subject: ATA driver cannot detect the Serial ATA disk in FreeBSD/AMD64-Current X-BeenThere: freebsd-amd64@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Porting FreeBSD to the AMD64 platform List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Apr 2004 13:10:45 -0000 My system is consisted in Tyan S2885 opteron dual board and Seagate 7200.1 SATA disk with FreeBSD/AMD64 5.2-Current. Old ata driver could detect the disk. Below the verbose message on bootstrap: ---------------------- ... atapci0: port 0x8400-0x840f,0x8480-0x8483,0x8800-0 x8807,0x8880-0x8883,0x8c00-0x8c07 mem 0xfe8ffc00-0xfe8fffff irq 17 at device 11. 0 on pci3 pcib1: device atapci0 requested decoded I/O range 0x8400-0x840f atapci0: [MPSAFE] pcib1: device atapci0 requested decoded memory range 0xfe8ffc00-0xfe8fffff ata2: reset tp1 mask=01 ostat0=50 ostat1=50 ata2-master: stat=0xff err=0xff lsb=0xff msb=0xff ata2-master: stat=0xff err=0xff lsb=0xff msb=0xff ata2-master: stat=0x50 err=0x01 lsb=0x00 msb=0x00 ata2: reset tp2 mask=01 stat0=50 stat1=00 devices=0x1 ata2: at 0xfe8ffc00 on atapci0 ... ata1-master: pio=0x0c wdma=0x22 udma=0xffffffff cable=40pin ata1-master: setting PIO4 on AMD 8111 chip acd0: CDROM drive at ata1 as master acd0: read 6875KB/s (6875KB/s), 128KB buffer, PIO4 acd0: Reads: CDR, CDRW, CDDA stream, packet acd0: Writes: acd0: Audio: play, 255 volume levels acd0: Mechanism: ejectable tray, unlocked, lock protected acd0: Medium: no/blank disc ata2-master: pio=0x0c wdma=0x22 udma=0x46 cable=40pin ad4: ATA-6 disk at ata2-master ad4: 76319MB (156301488 sectors), 155061 C, 16 H, 63 S, 512 B ad4: 16 secs/int, 1 depth queue, UDMA100 GEOM: new disk ad4 ... -------------- But, new ata driver cannot detect the disk. --------------- ... atapci0: port 0x8400-0x840f,0x8480-0x8483,0x8800-0 x8807,0x8880-0x8883,0x8c00-0x8c07 mem 0xfe8ffc00-0xfe8fffff irq 17 at device 11. 0 on pci3 pcib1: device atapci0 requested decoded I/O range 0x8400-0x840f atapci0: [MPSAFE] pcib1: device atapci0 requested decoded memory range 0xfe8ffc00-0xfe8fffff ata2: at 0xfe8ffc00 on atapci0 ata2: [MPSAFE] ata3: reset tp1 mask=01 ostat0=7f ostat1=7f ata3-master: stat=0x7f err=0x00 lsb=0x00 msb=0x00 ... ata1-master: pio=0x0c wdma=0x22 udma=0xffffffff cable=40pin ata1-master: setting PIO4 on AMD 8111 chip acd0: CDROM drive at ata1 as master acd0: read 6875KB/s (6875KB/s), 128KB buffer, PIO4 acd0: Reads: CDR, CDRW, CDDA stream, packet acd0: Writes: acd0: Audio: play, 255 volume levels acd0: Mechanism: ejectable tray, unlocked, lock protected acd0: Medium: no/blank disc ... ------------ Therefore, My system cannot be bootstrapped new ata driver. (root in ad4s1a) Anyone help me. SungGON Yi. skon@kr.FreeBSD.org From owner-freebsd-amd64@FreeBSD.ORG Thu Apr 1 06:41:07 2004 Return-Path: Delivered-To: freebsd-amd64@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 1D39916A4CE; Thu, 1 Apr 2004 06:41:07 -0800 (PST) Received: from spider.deepcore.dk (cpe.atm2-0-53484.0x50a6c9a6.abnxx9.customer.tele.dk [80.166.201.166]) by mx1.FreeBSD.org (Postfix) with ESMTP id C860143D2D; Thu, 1 Apr 2004 06:41:05 -0800 (PST) (envelope-from sos@DeepCore.dk) Received: from DeepCore.dk (sos.deepcore.dk [194.192.25.130]) by spider.deepcore.dk (8.12.11/8.12.10) with ESMTP id i31EewAn014073; Thu, 1 Apr 2004 16:41:03 +0200 (CEST) (envelope-from sos@DeepCore.dk) Message-ID: <406C29F9.3070705@DeepCore.dk> Date: Thu, 01 Apr 2004 16:40:57 +0200 From: =?UTF-8?B?U8O4cmVuIFNjaG1pZHQ=?= User-Agent: Mozilla Thunderbird 0.5 (X11/20040329) X-Accept-Language: en-us, en MIME-Version: 1.0 To: "SungGON Yi." References: <007e01c417eb$6691ef90$122aa8c0@skon2> In-Reply-To: <007e01c417eb$6691ef90$122aa8c0@skon2> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-mail-scanned: by DeepCore Virus & Spam killer v1.4 cc: freebsd-current@freebsd.org cc: freebsd-amd64@freebsd.org Subject: Re: ATA driver cannot detect the Serial ATA disk in FreeBSD/AMD64-Current X-BeenThere: freebsd-amd64@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Porting FreeBSD to the AMD64 platform List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Apr 2004 14:41:07 -0000 SungGON Yi. wrote: > My system is consisted in Tyan S2885 opteron dual board and Seagate 7200.1 SATA > disk with > FreeBSD/AMD64 5.2-Current. > > Old ata driver could detect the disk. Below the verbose message on bootstrap: Please try this patch: Index: ata-pci.c =================================================================== RCS file: /home/ncvs/src/sys/dev/ata/ata-pci.c,v retrieving revision 1.77 diff -u -r1.77 ata-pci.c --- ata-pci.c 17 Mar 2004 17:50:27 -0000 1.77 +++ ata-pci.c 1 Apr 2004 14:40:00 -0000 @@ -546,8 +546,6 @@ ch->device[MASTER].setmode = ctlr->setmode; ch->device[SLAVE].setmode = ctlr->setmode; ch->locking = ctlr->locking; - if (ch->reset) - ch->reset(ch); return ata_probe(dev); } -- -Søren From owner-freebsd-amd64@FreeBSD.ORG Thu Apr 1 08:01:50 2004 Return-Path: Delivered-To: freebsd-amd64@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 18A0816A4CE for ; Thu, 1 Apr 2004 08:01:50 -0800 (PST) Received: from delivery.infowest.com (delivery.infowest.com [204.17.177.5]) by mx1.FreeBSD.org (Postfix) with ESMTP id E6DB243D3F for ; Thu, 1 Apr 2004 08:01:49 -0800 (PST) (envelope-from butch@infowest.com) Received: from [10.100.100.240] (zurg.infowest.com [216.190.25.82]) by delivery.infowest.com (Postfix) with ESMTP id 50181EA9E27; Thu, 1 Apr 2004 09:01:49 -0700 (MST) User-Agent: Microsoft-Entourage/10.1.4.030702.0 Date: Thu, 01 Apr 2004 09:00:54 -0700 From: "Cassidy B. Larson" To: alan barrow , "James R. Van Artsalen" Message-ID: In-Reply-To: <1080819389.2845.62.camel@camdev-01.ops.uk.psi.com> Mime-version: 1.0 Content-type: text/plain; charset="US-ASCII" Content-transfer-encoding: 7bit cc: "freebsd-amd64@freebsd.org" Subject: Re: SMP issues on K8S Pro S2882G3NR X-BeenThere: freebsd-amd64@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Porting FreeBSD to the AMD64 platform List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Apr 2004 16:01:50 -0000 Tyan's beta 2.0 BIOS with APIC enabled got me up with SMP. Yeah! I do show these errors in dmesg: ACPI-1287: *** Error: Method execution failed [\\_SB_.PCI0.SBRG.HPET._STA] (Node 0xffffff00008edc00), AE_AML_REGION_LIMIT ACPI-0175: *** Error: Method execution failed [\\_SB_.PCI0.SBRG.HPET._STA] (Node 0xffffff00008edc00), AE_AML_REGION_LIMIT ACPI-1287: *** Error: Method execution failed [\\_SB_.PCI0.SBRG.HPET._STA] (Node 0xffffff00008edc00), AE_AML_REGION_LIMIT ACPI-0175: *** Error: Method execution failed [\\_SB_.PCI0.SBRG.HPET._STA] (Node 0xffffff00008edc00), AE_AML_REGION_LIMIT ACPI-1287: *** Error: Method execution failed [\\_SB_.PCI0.SBRG.HPET._STA] (Node 0xffffff00008edc00), AE_AML_REGION_LIMIT ACPI-0175: *** Error: Method execution failed [\\_SB_.PCI0.SBRG.HPET._STA] (Node 0xffffff00008edc00), AE_AML_REGION_LIMIT Digging through the list archives, it appears this is normal behavior and will get minimized if I track -CURRENT. Am I assuming correctly here? -c On 4/1/04 4:36 AM, "alan barrow" wrote: > I know... > > So have you tried the 2.0 bios ? > > On Thu, 2004-04-01 at 12:31, James R. Van Artsalen wrote: >> alan barrow wrote: >> >>> Is this a problem ? turn off APIC ? >>> >>> >>> >> The APIC is needed for SMP. The fact that the other system shows no >> APIC is probably related to the SMP problem. >> > > > From owner-freebsd-amd64@FreeBSD.ORG Thu Apr 1 16:29:08 2004 Return-Path: Delivered-To: freebsd-amd64@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id C3A5916A4CE; Thu, 1 Apr 2004 16:29:08 -0800 (PST) Received: from freebsd-current.sentex.ca (freebsd-current.sentex.ca [64.7.128.98]) by mx1.FreeBSD.org (Postfix) with ESMTP id 68F8743D2D; Thu, 1 Apr 2004 16:29:08 -0800 (PST) (envelope-from tinderbox@freebsd.org) Received: by freebsd-current.sentex.ca (Postfix, from userid 666) id C341B7303A; Thu, 1 Apr 2004 19:29:07 -0500 (EST) Sender: FreeBSD Tinderbox From: FreeBSD Tinderbox To: FreeBSD Tinderbox , , Precedence: bulk Message-Id: <20040402002907.C341B7303A@freebsd-current.sentex.ca> Date: Thu, 1 Apr 2004 19:29:07 -0500 (EST) Subject: [current tinderbox] failure on amd64/amd64 X-BeenThere: freebsd-amd64@freebsd.org X-Mailman-Version: 2.1.1 List-Id: Porting FreeBSD to the AMD64 platform List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Apr 2004 00:29:08 -0000 TB --- 2004-04-01 23:02:02 - tinderbox 2.3 running on freebsd-current.sentex.ca TB --- 2004-04-01 23:02:02 - starting CURRENT tinderbox run for amd64/amd64 TB --- 2004-04-01 23:02:02 - checking out the source tree TB --- 2004-04-01 23:02:02 - cd /home/tinderbox/sandbox/CURRENT/amd64/amd64 TB --- 2004-04-01 23:02:02 - /usr/bin/cvs -f -R -q -d/home/ncvs update -Pd -A src TB --- 2004-04-01 23:08:54 - building world (CFLAGS=-O2 -pipe) TB --- 2004-04-01 23:08:54 - cd /home/tinderbox/sandbox/CURRENT/amd64/amd64/src TB --- 2004-04-01 23:08:54 - /usr/bin/make -B buildworld >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries >>> stage 4.3: make dependencies >>> stage 4.4: building everything TB --- 2004-04-02 00:16:23 - building generic kernel (COPTFLAGS=-O2 -pipe) TB --- 2004-04-02 00:16:23 - cd /home/tinderbox/sandbox/CURRENT/amd64/amd64/src TB --- 2004-04-02 00:16:23 - /usr/bin/make buildkernel KERNCONF=GENERIC >>> Kernel build for GENERIC started on Fri Apr 2 00:16:23 GMT 2004 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything >>> Kernel build for GENERIC completed on Fri Apr 2 00:24:03 GMT 2004 TB --- 2004-04-02 00:24:03 - generating LINT kernel config TB --- 2004-04-02 00:24:03 - cd /home/tinderbox/sandbox/CURRENT/amd64/amd64/src/sys/amd64/conf TB --- 2004-04-02 00:24:03 - /usr/bin/make -B LINT TB --- 2004-04-02 00:24:03 - building LINT kernel (COPTFLAGS=-O2 -pipe) TB --- 2004-04-02 00:24:03 - cd /home/tinderbox/sandbox/CURRENT/amd64/amd64/src TB --- 2004-04-02 00:24:03 - /usr/bin/make buildkernel KERNCONF=LINT >>> Kernel build for LINT started on Fri Apr 2 00:24:03 GMT 2004 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything [...] cc -c -O2 -pipe -fno-strict-aliasing -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -fformat-extensions -std=c99 -nostdinc -I- -I. -I/other/tinderbox/CURRENT/amd64/amd64/src/sys -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/dev/acpica -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/ipfilter -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/pf -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/dev/ath -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/dev/ath/freebsd -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/ngatm -D_KERNEL -include opt_global.h -fno-common -finline-limit=8000 -fno-builtin -fno-omit-frame-pointer -mcmodel=kernel -mno-red-zone -mfpmath=387 -mno-sse -mno-sse2 -mno-mmx -mno-3dnow -msoft-float -fno-asynchronous-unwind-tables -ffreestanding -Werror /other/tinderbox/CURRENT/amd64/amd64/src/sys/dev/syscons/rain/rain_saver.c cc -c -O2 -pipe -fno-strict-aliasing -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -fformat-extensions -std=c99 -nostdinc -I- -I. -I/other/tinderbox/CURRENT/amd64/amd64/src/sys -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/dev/acpica -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/ipfilter -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/pf -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/dev/ath -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/dev/ath/freebsd -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/ngatm -D_KERNEL -include opt_global.h -fno-common -finline-limit=8000 -fno-builtin -fno-omit-frame-pointer -mcmodel=kernel -mno-red-zone -mfpmath=387 -mno-sse -mno-sse2 -mno-mmx -mno-3dnow -msoft-float -fno-asynchronous-unwind-tables -ffreestanding -Werror /other/tinderbox/CURRENT/amd64/amd64/src/sys/dev/syscons/star/star_saver.c cc -c -O2 -pipe -fno-strict-aliasing -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -fformat-extensions -std=c99 -nostdinc -I- -I. -I/other/tinderbox/CURRENT/amd64/amd64/src/sys -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/dev/acpica -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/ipfilter -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/pf -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/dev/ath -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/dev/ath/freebsd -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/ngatm -D_KERNEL -include opt_global.h -fno-common -finline-limit=8000 -fno-builtin -fno-omit-frame-pointer -mcmodel=kernel -mno-red-zone -mfpmath=387 -mno-sse -mno-sse2 -mno-mmx -mno-3dnow -msoft-float -fno-asynchronous-unwind-tables -ffreestanding -Werror /other/tinderbox/CURRENT/amd64/amd64/src/sys/dev/syscons/warp/warp_saver.c cc -c -O2 -pipe -fno-strict-aliasing -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -fformat-extensions -std=c99 -nostdinc -I- -I. -I/other/tinderbox/CURRENT/amd64/amd64/src/sys -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/dev/acpica -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/ipfilter -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/pf -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/dev/ath -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/dev/ath/freebsd -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/ngatm -D_KERNEL -include opt_global.h -fno-common -finline-limit=8000 -fno-builtin -fno-omit-frame-pointer -mcmodel=kernel -mno-red-zone -mfpmath=387 -mno-sse -mno-sse2 -mno-mmx -mno-3dnow -msoft-float -fno-asynchronous-unwind-tables -ffreestanding -Werror /other/tinderbox/CURRENT/amd64/amd64/src/sys/dev/tdfx/tdfx_pci.c cc -c -O2 -pipe -fno-strict-aliasing -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -fformat-extensions -std=c99 -nostdinc -I- -I. -I/other/tinderbox/CURRENT/amd64/amd64/src/sys -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/dev/acpica -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/ipfilter -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/pf -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/dev/ath -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/dev/ath/freebsd -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/ngatm -D_KERNEL -include opt_global.h -fno-common -finline-limit=8000 -fno-builtin -fno-omit-frame-pointer -mcmodel=kernel -mno-red-zone -mfpmath=387 -mno-sse -mno-sse2 -mno-mmx -mno-3dnow -msoft-float -fno-asynchronous-unwind-tables -ffreestanding -Werror /other/tinderbox/CURRENT/amd64/amd64/src/sys/dev/trm/trm.c cc -c -O2 -pipe -fno-strict-aliasing -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -fformat-extensions -std=c99 -nostdinc -I- -I. -I/other/tinderbox/CURRENT/amd64/amd64/src/sys -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/dev/acpica -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/ipfilter -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/pf -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/dev/ath -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/dev/ath/freebsd -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/ngatm -D_KERNEL -include opt_global.h -fno-common -finline-limit=8000 -fno-builtin -fno-omit-frame-pointer -mcmodel=kernel -mno-red-zone -mfpmath=387 -mno-sse -mno-sse2 -mno-mmx -mno-3dnow -msoft-float -fno-asynchronous-unwind-tables -ffreestanding -Werror /other/tinderbox/CURRENT/amd64/amd64/src/sys/dev/twa/twa.c /other/tinderbox/CURRENT/amd64/amd64/src/sys/dev/twa/twa.c: In function `twa_enqueue_aen': /other/tinderbox/CURRENT/amd64/amd64/src/sys/dev/twa/twa.c:2053: warning: unsigned int format, different type arg (arg 10) *** Error code 1 Stop in /other/tinderbox/CURRENT/amd64/amd64/obj/amd64/other/tinderbox/CURRENT/amd64/amd64/src/sys/LINT. *** Error code 1 Stop in /other/tinderbox/CURRENT/amd64/amd64/src. *** Error code 1 Stop in /other/tinderbox/CURRENT/amd64/amd64/src. TB --- 2004-04-02 00:29:07 - WARNING: /usr/bin/make returned exit code 1 TB --- 2004-04-02 00:29:07 - ERROR: failed to build lint kernel TB --- 2004-04-02 00:29:07 - tinderbox aborted From owner-freebsd-amd64@FreeBSD.ORG Thu Apr 1 18:26:59 2004 Return-Path: Delivered-To: freebsd-amd64@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B6D2D16A4CE for ; Thu, 1 Apr 2004 18:26:59 -0800 (PST) Received: from demos.bsdclusters.com (demos.bsdclusters.com [69.55.225.36]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8078043D48 for ; Thu, 1 Apr 2004 18:26:59 -0800 (PST) (envelope-from kmacy@fsmware.com) Received: from demos.bsdclusters.com (demos [69.55.225.36]) i322Qq5V029600 for ; Thu, 1 Apr 2004 18:26:52 -0800 (PST) (envelope-from kmacy@fsmware.com) Received: from localhost (kmacy@localhost)i322Qq6F029597 for ; Thu, 1 Apr 2004 18:26:52 -0800 (PST) X-Authentication-Warning: demos.bsdclusters.com: kmacy owned process doing -bs Date: Thu, 1 Apr 2004 18:26:51 -0800 (PST) From: Kip Macy X-X-Sender: kmacy@demos.bsdclusters.com To: freebsd-amd64@freebsd.org Message-ID: <20040401182140.A25794@demos.bsdclusters.com> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Subject: How widely used is the port? X-BeenThere: freebsd-amd64@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Porting FreeBSD to the AMD64 platform List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Apr 2004 02:26:59 -0000 On my laptop 5.2.1 panics with a GPF on boot after install when mounting ad0s1a. The latest snapshot panics in malloc as result of a use after free in the CAM subsytem on initial boot. I've verified that there are no hardware issues (although there are driver limitations) by successfully installing and running Mandrake 10 and Fedora Core 2. -Kip From owner-freebsd-amd64@FreeBSD.ORG Thu Apr 1 19:41:05 2004 Return-Path: Delivered-To: freebsd-amd64@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 20E0A16A4CF; Thu, 1 Apr 2004 19:41:05 -0800 (PST) Received: from carver.gumbysoft.com (carver.gumbysoft.com [66.220.23.50]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1A53A43D4C; Thu, 1 Apr 2004 19:41:05 -0800 (PST) (envelope-from dwhite@gumbysoft.com) Received: by carver.gumbysoft.com (Postfix, from userid 1000) id 0F31872DF0; Thu, 1 Apr 2004 19:41:05 -0800 (PST) Received: from localhost (localhost [127.0.0.1]) by carver.gumbysoft.com (Postfix) with ESMTP id 0C32072DCA; Thu, 1 Apr 2004 19:41:05 -0800 (PST) Date: Thu, 1 Apr 2004 19:41:05 -0800 (PST) From: Doug White To: "SungGON Yi." In-Reply-To: <007e01c417eb$6691ef90$122aa8c0@skon2> Message-ID: <20040401194006.S35367@carver.gumbysoft.com> References: <007e01c417eb$6691ef90$122aa8c0@skon2> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: freebsd-current@freebsd.org cc: freebsd-amd64@freebsd.org Subject: Re: ATA driver cannot detect the Serial ATA disk in FreeBSD/AMD64-Current X-BeenThere: freebsd-amd64@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Porting FreeBSD to the AMD64 platform List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Apr 2004 03:41:05 -0000 On Thu, 1 Apr 2004, SungGON Yi. wrote: > ata3: reset tp1 mask=01 ostat0=7f ostat1=7f > ata3-master: stat=0x7f err=0x00 lsb=0x00 msb=0x00 Hm, this is the 3rd person in my -current mailbox that is sseeing 0x7f in the registers when it should'nt be there. Something is coming up with bad PCI reads ro something... -- Doug White | FreeBSD: The Power to Serve dwhite@gumbysoft.com | www.FreeBSD.org From owner-freebsd-amd64@FreeBSD.ORG Fri Apr 2 00:37:33 2004 Return-Path: Delivered-To: freebsd-amd64@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B1A4816A4CE for ; Fri, 2 Apr 2004 00:37:33 -0800 (PST) Received: from mail.uk.psi.com (mail.uk.psi.com [154.8.2.142]) by mx1.FreeBSD.org (Postfix) with ESMTP id 58D9D43D1D for ; Fri, 2 Apr 2004 00:37:33 -0800 (PST) (envelope-from alan.barrow@psineteurope.com) Received: from camdev-01.ops.uk.psi.com ([154.8.22.17]) by mail.uk.psi.com with esmtp (Exim 3.33 #1) id 1B9KB5-0002B6-00; Fri, 02 Apr 2004 09:37:27 +0100 From: alan barrow To: "Cassidy B. Larson" In-Reply-To: References: Content-Type: text/plain Content-Transfer-Encoding: 7bit X-Mailer: Ximian Evolution 1.0.8 (1.0.8-9.7x.1) Date: 02 Apr 2004 09:37:27 +0100 Message-Id: <1080895047.28221.1.camel@camdev-01.ops.uk.psi.com> Mime-Version: 1.0 cc: "James R. Van Artsalen" cc: "freebsd-amd64@freebsd.org" Subject: Re: SMP issues on K8S Pro S2882G3NR X-BeenThere: freebsd-amd64@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Porting FreeBSD to the AMD64 platform List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Apr 2004 08:37:33 -0000 Horrrayyyyyyyyyyyyy Yes.... Nice.... (I enjoy peoples victories in the morning) I think your assumption is correct, I will check with tyan uk this afternoon on it though, but I think your on a roll dude :) yours a.r.b. On Thu, 2004-04-01 at 17:00, Cassidy B. Larson wrote: > > Tyan's beta 2.0 BIOS with APIC enabled got me up with SMP. Yeah! > > I do show these errors in dmesg: > > ACPI-1287: *** Error: Method execution failed > [\\_SB_.PCI0.SBRG.HPET._STA] (Node 0xffffff00008edc00), AE_AML_REGION_LIMIT > ACPI-0175: *** Error: Method execution failed > [\\_SB_.PCI0.SBRG.HPET._STA] (Node 0xffffff00008edc00), AE_AML_REGION_LIMIT > ACPI-1287: *** Error: Method execution failed > [\\_SB_.PCI0.SBRG.HPET._STA] (Node 0xffffff00008edc00), AE_AML_REGION_LIMIT > ACPI-0175: *** Error: Method execution failed > [\\_SB_.PCI0.SBRG.HPET._STA] (Node 0xffffff00008edc00), AE_AML_REGION_LIMIT > ACPI-1287: *** Error: Method execution failed > [\\_SB_.PCI0.SBRG.HPET._STA] (Node 0xffffff00008edc00), AE_AML_REGION_LIMIT > ACPI-0175: *** Error: Method execution failed > [\\_SB_.PCI0.SBRG.HPET._STA] (Node 0xffffff00008edc00), AE_AML_REGION_LIMIT > > > Digging through the list archives, it appears this is normal behavior and > will get minimized if I track -CURRENT. > > Am I assuming correctly here? > > -c > > On 4/1/04 4:36 AM, "alan barrow" wrote: > > > I know... > > > > So have you tried the 2.0 bios ? > > > > On Thu, 2004-04-01 at 12:31, James R. Van Artsalen wrote: > >> alan barrow wrote: > >> > >>> Is this a problem ? turn off APIC ? > >>> > >>> > >>> > >> The APIC is needed for SMP. The fact that the other system shows no > >> APIC is probably related to the SMP problem. > >> > > > > > > > > From owner-freebsd-amd64@FreeBSD.ORG Fri Apr 2 01:20:48 2004 Return-Path: Delivered-To: freebsd-amd64@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id BF5C416A4CE for ; Fri, 2 Apr 2004 01:20:48 -0800 (PST) Received: from dogfood.jrv.org (rrcs-sw-24-73-246-106.biz.rr.com [24.73.246.106]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3279643D3F for ; Fri, 2 Apr 2004 01:20:48 -0800 (PST) (envelope-from james@jrv.org) Received: from jrv.org (zippy.jrv.org [192.168.3.156]) (authenticated bits=0) by dogfood.jrv.org (8.12.11/8.12.10) with ESMTP id i329KkT0089625 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Fri, 2 Apr 2004 03:20:46 -0600 (CST) (envelope-from james@jrv.org) Message-ID: <406D306E.6090509@jrv.org> Date: Fri, 02 Apr 2004 03:20:46 -0600 From: "James R. Van Artsalen" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.6) Gecko/20040113 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Peter_Losher@isc.org References: <20040331074508.M42491@farside.isc.org> <200403310028.02495.peter@wemm.org> In-Reply-To: <200403310028.02495.peter@wemm.org> Content-Type: multipart/mixed; boundary="------------090009030007010109050409" cc: freebsd-amd64@freebsd.org Subject: Re: mod_perl2 and libperl.a and -fPIC... X-BeenThere: freebsd-amd64@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Porting FreeBSD to the AMD64 platform List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Apr 2004 09:20:48 -0000 This is a multi-part message in MIME format. --------------090009030007010109050409 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Peter Wemm wrote: >Yeah, the perl5.6.1 port doesn't build a shared object, so it can't be >embedded inside another shared object. > >However, the perl5.8 port does have shared object support enabled. > >Don't ask me why 5.6.1 doesn't do it though. :-) > > Attached is a quick patch to get ports/land/perl5 to build libperl.so, needed by many things. patch -d /usr/ports < pat.perl after every cvsup against ports (cvsup ports will undo the patch). How far back has FreeBSD support shared libs? This patch blind says 4*|5* build libperl.so and everything else builds libperl.a Grrr - I just realized this no longer builds libperl.a. Oh well, maybe someone might find it useful. --------------090009030007010109050409 Content-Type: text/plain; name="pat.perl" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="pat.perl" --- lang/perl5/files/patch-af.~1~ Fri Nov 1 08:43:46 2002 +++ lang/perl5/files/patch-af Fri Apr 2 02:28:03 2004 @@ -1,8 +1,6 @@ -$FreeBSD: ports/lang/perl5/files/patch-af,v 1.4 2002/11/01 14:43:46 tobez Exp $ - ---- Configure.orig Mon Mar 19 04:03:33 2001 -+++ Configure Fri Nov 1 14:58:06 2002 -@@ -296,7 +296,7 @@ cppflags='' +--- Configure.orig Sun Mar 18 21:03:33 2001 ++++ Configure Fri Apr 2 02:27:20 2004 +@@ -296,7 +296,7 @@ ldflags='' lkflags='' locincpth='' @@ -11,7 +9,22 @@ cf_email='' cf_by='' cf_time='' -@@ -14940,7 +14940,7 @@ for i in \`$cc -v -c tmp.c 2>&1 $postpro +@@ -6672,6 +6672,14 @@ + ;; + esac + ;; ++ freebsd) ++ case "$osvers" in ++ 4*|5*) dflt=y ++ ;; ++ *) dflt=n ++ ;; ++ esac ++ ;; + *) dflt=n + ;; + esac +@@ -14940,7 +14948,7 @@ do case "\$i" in -D*) echo "\$i" | $sed 's/^-D//';; --------------090009030007010109050409-- From owner-freebsd-amd64@FreeBSD.ORG Fri Apr 2 04:51:04 2004 Return-Path: Delivered-To: freebsd-amd64@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id AC80116A4CE; Fri, 2 Apr 2004 04:51:04 -0800 (PST) Received: from freebsd-current.sentex.ca (freebsd-current.sentex.ca [64.7.128.98]) by mx1.FreeBSD.org (Postfix) with ESMTP id 5215E43D1D; Fri, 2 Apr 2004 04:51:04 -0800 (PST) (envelope-from tinderbox@freebsd.org) Received: by freebsd-current.sentex.ca (Postfix, from userid 666) id C79097303A; Fri, 2 Apr 2004 07:51:03 -0500 (EST) Sender: FreeBSD Tinderbox From: FreeBSD Tinderbox To: FreeBSD Tinderbox , , Precedence: bulk Message-Id: <20040402125103.C79097303A@freebsd-current.sentex.ca> Date: Fri, 2 Apr 2004 07:51:03 -0500 (EST) Subject: [current tinderbox] failure on amd64/amd64 X-BeenThere: freebsd-amd64@freebsd.org X-Mailman-Version: 2.1.1 List-Id: Porting FreeBSD to the AMD64 platform List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Apr 2004 12:51:04 -0000 TB --- 2004-04-02 11:02:58 - tinderbox 2.3 running on freebsd-current.sentex.ca TB --- 2004-04-02 11:02:58 - starting CURRENT tinderbox run for amd64/amd64 TB --- 2004-04-02 11:02:58 - checking out the source tree TB --- 2004-04-02 11:02:58 - cd /home/tinderbox/sandbox/CURRENT/amd64/amd64 TB --- 2004-04-02 11:02:58 - /usr/bin/cvs -f -R -q -d/home/ncvs update -Pd -A src TB --- 2004-04-02 11:10:20 - building world (CFLAGS=-O2 -pipe) TB --- 2004-04-02 11:10:20 - cd /home/tinderbox/sandbox/CURRENT/amd64/amd64/src TB --- 2004-04-02 11:10:20 - /usr/bin/make -B buildworld >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries >>> stage 4.3: make dependencies >>> stage 4.4: building everything TB --- 2004-04-02 12:36:10 - building generic kernel (COPTFLAGS=-O2 -pipe) TB --- 2004-04-02 12:36:10 - cd /home/tinderbox/sandbox/CURRENT/amd64/amd64/src TB --- 2004-04-02 12:36:10 - /usr/bin/make buildkernel KERNCONF=GENERIC >>> Kernel build for GENERIC started on Fri Apr 2 12:36:10 GMT 2004 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything >>> Kernel build for GENERIC completed on Fri Apr 2 12:45:14 GMT 2004 TB --- 2004-04-02 12:45:14 - generating LINT kernel config TB --- 2004-04-02 12:45:14 - cd /home/tinderbox/sandbox/CURRENT/amd64/amd64/src/sys/amd64/conf TB --- 2004-04-02 12:45:14 - /usr/bin/make -B LINT TB --- 2004-04-02 12:45:14 - building LINT kernel (COPTFLAGS=-O2 -pipe) TB --- 2004-04-02 12:45:14 - cd /home/tinderbox/sandbox/CURRENT/amd64/amd64/src TB --- 2004-04-02 12:45:14 - /usr/bin/make buildkernel KERNCONF=LINT >>> Kernel build for LINT started on Fri Apr 2 12:45:14 GMT 2004 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything [...] cc -c -O2 -pipe -fno-strict-aliasing -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -fformat-extensions -std=c99 -nostdinc -I- -I. -I/other/tinderbox/CURRENT/amd64/amd64/src/sys -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/dev/acpica -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/ipfilter -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/pf -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/dev/ath -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/dev/ath/freebsd -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/ngatm -D_KERNEL -include opt_global.h -fno-common -finline-limit=8000 -fno-builtin -fno-omit-frame-pointer -mcmodel=kernel -mno-red-zone -mfpmath=387 -mno-sse -mno-sse2 -mno-mmx -mno-3dnow -msoft-float -fno-asynchronous-unwind-tables -ffreestanding -Werror /other/tinderbox/CURRENT/amd64/amd64/src/sys/dev/syscons/rain/rain_saver.c cc -c -O2 -pipe -fno-strict-aliasing -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -fformat-extensions -std=c99 -nostdinc -I- -I. -I/other/tinderbox/CURRENT/amd64/amd64/src/sys -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/dev/acpica -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/ipfilter -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/pf -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/dev/ath -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/dev/ath/freebsd -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/ngatm -D_KERNEL -include opt_global.h -fno-common -finline-limit=8000 -fno-builtin -fno-omit-frame-pointer -mcmodel=kernel -mno-red-zone -mfpmath=387 -mno-sse -mno-sse2 -mno-mmx -mno-3dnow -msoft-float -fno-asynchronous-unwind-tables -ffreestanding -Werror /other/tinderbox/CURRENT/amd64/amd64/src/sys/dev/syscons/star/star_saver.c cc -c -O2 -pipe -fno-strict-aliasing -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -fformat-extensions -std=c99 -nostdinc -I- -I. -I/other/tinderbox/CURRENT/amd64/amd64/src/sys -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/dev/acpica -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/ipfilter -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/pf -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/dev/ath -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/dev/ath/freebsd -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/ngatm -D_KERNEL -include opt_global.h -fno-common -finline-limit=8000 -fno-builtin -fno-omit-frame-pointer -mcmodel=kernel -mno-red-zone -mfpmath=387 -mno-sse -mno-sse2 -mno-mmx -mno-3dnow -msoft-float -fno-asynchronous-unwind-tables -ffreestanding -Werror /other/tinderbox/CURRENT/amd64/amd64/src/sys/dev/syscons/warp/warp_saver.c cc -c -O2 -pipe -fno-strict-aliasing -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -fformat-extensions -std=c99 -nostdinc -I- -I. -I/other/tinderbox/CURRENT/amd64/amd64/src/sys -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/dev/acpica -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/ipfilter -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/pf -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/dev/ath -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/dev/ath/freebsd -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/ngatm -D_KERNEL -include opt_global.h -fno-common -finline-limit=8000 -fno-builtin -fno-omit-frame-pointer -mcmodel=kernel -mno-red-zone -mfpmath=387 -mno-sse -mno-sse2 -mno-mmx -mno-3dnow -msoft-float -fno-asynchronous-unwind-tables -ffreestanding -Werror /other/tinderbox/CURRENT/amd64/amd64/src/sys/dev/tdfx/tdfx_pci.c cc -c -O2 -pipe -fno-strict-aliasing -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -fformat-extensions -std=c99 -nostdinc -I- -I. -I/other/tinderbox/CURRENT/amd64/amd64/src/sys -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/dev/acpica -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/ipfilter -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/pf -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/dev/ath -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/dev/ath/freebsd -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/ngatm -D_KERNEL -include opt_global.h -fno-common -finline-limit=8000 -fno-builtin -fno-omit-frame-pointer -mcmodel=kernel -mno-red-zone -mfpmath=387 -mno-sse -mno-sse2 -mno-mmx -mno-3dnow -msoft-float -fno-asynchronous-unwind-tables -ffreestanding -Werror /other/tinderbox/CURRENT/amd64/amd64/src/sys/dev/trm/trm.c cc -c -O2 -pipe -fno-strict-aliasing -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -fformat-extensions -std=c99 -nostdinc -I- -I. -I/other/tinderbox/CURRENT/amd64/amd64/src/sys -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/dev/acpica -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/ipfilter -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/pf -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/dev/ath -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/dev/ath/freebsd -I/other/tinderbox/CURRENT/amd64/amd64/src/sys/contrib/ngatm -D_KERNEL -include opt_global.h -fno-common -finline-limit=8000 -fno-builtin -fno-omit-frame-pointer -mcmodel=kernel -mno-red-zone -mfpmath=387 -mno-sse -mno-sse2 -mno-mmx -mno-3dnow -msoft-float -fno-asynchronous-unwind-tables -ffreestanding -Werror /other/tinderbox/CURRENT/amd64/amd64/src/sys/dev/twa/twa.c /other/tinderbox/CURRENT/amd64/amd64/src/sys/dev/twa/twa.c: In function `twa_enqueue_aen': /other/tinderbox/CURRENT/amd64/amd64/src/sys/dev/twa/twa.c:2053: warning: unsigned int format, different type arg (arg 10) *** Error code 1 Stop in /other/tinderbox/CURRENT/amd64/amd64/obj/amd64/other/tinderbox/CURRENT/amd64/amd64/src/sys/LINT. *** Error code 1 Stop in /other/tinderbox/CURRENT/amd64/amd64/src. *** Error code 1 Stop in /other/tinderbox/CURRENT/amd64/amd64/src. TB --- 2004-04-02 12:51:03 - WARNING: /usr/bin/make returned exit code 1 TB --- 2004-04-02 12:51:03 - ERROR: failed to build lint kernel TB --- 2004-04-02 12:51:03 - tinderbox aborted From owner-freebsd-amd64@FreeBSD.ORG Fri Apr 2 09:12:59 2004 Return-Path: Delivered-To: freebsd-amd64@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id D954B16A4DB for ; Fri, 2 Apr 2004 09:12:59 -0800 (PST) Received: from delivery.infowest.com (delivery.infowest.com [204.17.177.5]) by mx1.FreeBSD.org (Postfix) with ESMTP id 83BB743D46 for ; Fri, 2 Apr 2004 09:12:59 -0800 (PST) (envelope-from butch@infowest.com) Received: from [10.0.1.2] (montehacho.kmpanilla.com [208.186.104.165]) by delivery.infowest.com (Postfix) with ESMTP id C98E2EBC503; Fri, 2 Apr 2004 10:12:58 -0700 (MST) User-Agent: Microsoft-Entourage/10.1.4.030702.0 Date: Fri, 02 Apr 2004 10:12:04 -0700 From: "Cassidy B. Larson" To: alan barrow , "freebsd-amd64@freebsd.org" Message-ID: In-Reply-To: <1080895047.28221.1.camel@camdev-01.ops.uk.psi.com> Mime-version: 1.0 Content-type: text/plain; charset="US-ASCII" Content-transfer-encoding: 7bit Subject: Re: SMP issues on K8S Pro S2882G3NR X-BeenThere: freebsd-amd64@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Porting FreeBSD to the AMD64 platform List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Apr 2004 17:13:00 -0000 One more question I had. What's the typical temperature of two 246 opterons? We have it in a 1U box with fans and ventilation galore, but when I push the box for more then 20 seconds with 0 CPU free, it freezes. A quick power cycle into the BIOS details that I'm running at over 95 degrees centigrade. Letting it cool down will let me run my CPU test another 2-3 times then freezes again. I looked through the Tyan manual and found nothing of the halt temperature, nor AMD's site. If needs be I may send this back and get a 2U case with better cooling. Argh. -c On 4/2/04 1:37 AM, "alan barrow" wrote: > Horrrayyyyyyyyyyyyy > > > Yes.... Nice.... (I enjoy peoples victories in the morning) > > I think your assumption is correct, I will check with tyan uk this > afternoon on it though, but I think your on a roll dude :) > > yours a.r.b. > From owner-freebsd-amd64@FreeBSD.ORG Fri Apr 2 10:29:15 2004 Return-Path: Delivered-To: freebsd-amd64@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 031AB16A4CE for ; Fri, 2 Apr 2004 10:29:15 -0800 (PST) Received: from odin.ac.hmc.edu (Odin.AC.HMC.Edu [134.173.32.75]) by mx1.FreeBSD.org (Postfix) with ESMTP id DC40243D2D for ; Fri, 2 Apr 2004 10:29:14 -0800 (PST) (envelope-from brdavis@odin.ac.hmc.edu) Received: from odin.ac.hmc.edu (IDENT:brdavis@localhost.localdomain [127.0.0.1]) by odin.ac.hmc.edu (8.12.10/8.12.3) with ESMTP id i32IT5QF006786; Fri, 2 Apr 2004 10:29:05 -0800 Received: (from brdavis@localhost) by odin.ac.hmc.edu (8.12.10/8.12.3/Submit) id i32IT5iR006784; Fri, 2 Apr 2004 10:29:05 -0800 Date: Fri, 2 Apr 2004 10:29:05 -0800 From: Brooks Davis To: Kip Macy Message-ID: <20040402182903.GB11637@Odin.AC.HMC.Edu> References: <20040401182140.A25794@demos.bsdclusters.com> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="qcHopEYAB45HaUaB" Content-Disposition: inline In-Reply-To: <20040401182140.A25794@demos.bsdclusters.com> User-Agent: Mutt/1.5.4i X-Virus-Scanned: by amavisd-milter (http://amavis.org/) on odin.ac.hmc.edu cc: freebsd-amd64@freebsd.org Subject: Re: How widely used is the port? X-BeenThere: freebsd-amd64@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Porting FreeBSD to the AMD64 platform List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Apr 2004 18:29:15 -0000 --qcHopEYAB45HaUaB Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Thu, Apr 01, 2004 at 06:26:51PM -0800, Kip Macy wrote: > On my laptop 5.2.1 panics with a GPF on boot after install when mounting > ad0s1a. The latest snapshot panics in malloc as result of a use after > free in the CAM subsytem on initial boot. >=20 > I've verified that there are no hardware issues (although there are > driver limitations) by successfully installing and running Mandrake 10 > and Fedora Core 2. I've got a couple that work fine here. One of them is a primary development system and I've never had problems with it. What's your hardware? Have you tried disabling ACPI? -- Brooks --=20 Any statement of the form "X is the one, true Y" is FALSE. PGP fingerprint 655D 519C 26A7 82E7 2529 9BF0 5D8E 8BE9 F238 1AD4 --qcHopEYAB45HaUaB Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.1 (GNU/Linux) iD8DBQFAbbDuXY6L6fI4GtQRAsu0AJ9IohKXJ0hfafTjvzKP1NMQfAbgwgCfT644 9gBuc09AzZVrKJHiL99DwC0= =v1Io -----END PGP SIGNATURE----- --qcHopEYAB45HaUaB-- From owner-freebsd-amd64@FreeBSD.ORG Fri Apr 2 11:06:05 2004 Return-Path: Delivered-To: freebsd-amd64@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id F41B416A4CF for ; Fri, 2 Apr 2004 11:06:04 -0800 (PST) Received: from mail.sandvine.com (sandvine.com [199.243.201.138]) by mx1.FreeBSD.org (Postfix) with ESMTP id A533743D1D for ; Fri, 2 Apr 2004 11:06:04 -0800 (PST) (envelope-from don@sandvine.com) Received: by mail.sandvine.com with Internet Mail Service (5.5.2657.72) id ; Fri, 2 Apr 2004 14:06:03 -0500 Message-ID: From: Don Bowman To: "'Cassidy B. Larson'" , alan barrow , freebsd-amd64@freebsd.org Date: Fri, 2 Apr 2004 14:06:02 -0500 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2657.72) Content-Type: text/plain; charset="iso-8859-1" Subject: RE: SMP issues on K8S Pro S2882G3NR X-BeenThere: freebsd-amd64@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Porting FreeBSD to the AMD64 platform List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Apr 2004 19:06:05 -0000 From: Cassidy B. Larson [mailto:butch@infowest.com] > One more question I had. > > What's the typical temperature of two 246 opterons? We have > it in a 1U box > with fans and ventilation galore, but when I push the box for > more then 20 > seconds with 0 CPU free, it freezes. A quick power cycle > into the BIOS > details that I'm running at over 95 degrees centigrade. > Letting it cool > down will let me run my CPU test another 2-3 times then freezes again. > > I looked through the Tyan manual and found nothing of the > halt temperature, > nor AMD's site. > > If needs be I may send this back and get a 2U case with > better cooling. > Argh. Make sure your air flow is forced over the CPU. Air takes the path of least resistance, so e.g. opening the top of the case will make the air escape. The fans should be ducted to go directly over the heat sink, there will be foam or something to make this happen. Operate with the case closed. run e.g. lmmon to see your temperatures. I don't know how to do this with amd, with intel xeon, there is on chip sensor on smb. From owner-freebsd-amd64@FreeBSD.ORG Fri Apr 2 11:55:31 2004 Return-Path: Delivered-To: freebsd-amd64@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 39C7216A4D6 for ; Fri, 2 Apr 2004 11:55:31 -0800 (PST) Received: from delivery.infowest.com (delivery.infowest.com [204.17.177.5]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1A92843D3F for ; Fri, 2 Apr 2004 11:55:31 -0800 (PST) (envelope-from butch@infowest.com) Received: from [10.100.100.240] (zurg.infowest.com [216.190.25.82]) by delivery.infowest.com (Postfix) with ESMTP id 9F251EB1F3E; Fri, 2 Apr 2004 12:55:30 -0700 (MST) User-Agent: Microsoft-Entourage/10.1.4.030702.0 Date: Fri, 02 Apr 2004 12:54:36 -0700 From: "Cassidy B. Larson" To: Don Bowman , Message-ID: In-Reply-To: Mime-version: 1.0 Content-type: text/plain; charset="US-ASCII" Content-transfer-encoding: 7bit Subject: Re: SMP issues on K8S Pro S2882G3NR X-BeenThere: freebsd-amd64@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Porting FreeBSD to the AMD64 platform List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Apr 2004 19:55:31 -0000 On 4/2/04 12:06 PM, "Don Bowman" wrote: > > Make sure your air flow is forced over the CPU. Air takes > the path of least resistance, so e.g. opening the top > of the case will make the air escape. The fans should > be ducted to go directly over the heat sink, there will > be foam or something to make this happen. Operate with the > case closed. > > run e.g. lmmon to see your temperatures. I don't know > how to do this with amd, with intel xeon, there is on > chip sensor on smb. > > Yes, CPU air flow is forced over the cpu copper heat sinks. And the top of the case is firmly in place. I let it sit over night to "cool down". Upon boot-up the CPU temperatures started around 104-105 F. Letting them sit in the BIOS noticing the temperature go up over 130F. Booting into 5.2.1 with SMP kernel, I ran my perl fork mysql test scripts six times then it froze. Back into BIOS I went again after a power cycle and the temperatures were at 185 and 175. Not as hot as yesterday, but I only had it up for 10 minutes total from a cold state. Anybody have any temperature monitoring apps for amd 5.2.1? Anybody know what the lock-up temperature is AMD sets into their chips? Or does anybody know how hot their 1U dual opteron 246 servers run? :) -c From owner-freebsd-amd64@FreeBSD.ORG Fri Apr 2 12:55:53 2004 Return-Path: Delivered-To: freebsd-amd64@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 96B1F16A4CE for ; Fri, 2 Apr 2004 12:55:53 -0800 (PST) Received: from demos.bsdclusters.com (demos.bsdclusters.com [69.55.225.36]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7DB9543D46 for ; Fri, 2 Apr 2004 12:55:53 -0800 (PST) (envelope-from kmacy@fsmware.com) Received: from demos.bsdclusters.com (demos [69.55.225.36]) i32KtqTx050943; Fri, 2 Apr 2004 12:55:52 -0800 (PST) (envelope-from kmacy@fsmware.com) Received: from localhost (kmacy@localhost)i32KtqhV050940; Fri, 2 Apr 2004 12:55:52 -0800 (PST) X-Authentication-Warning: demos.bsdclusters.com: kmacy owned process doing -bs Date: Fri, 2 Apr 2004 12:55:52 -0800 (PST) From: Kip Macy X-X-Sender: kmacy@demos.bsdclusters.com To: Brooks Davis In-Reply-To: <20040402182903.GB11637@Odin.AC.HMC.Edu> Message-ID: <20040402125339.K24893@demos.bsdclusters.com> References: <20040401182140.A25794@demos.bsdclusters.com> <20040402182903.GB11637@Odin.AC.HMC.Edu> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: freebsd-amd64@freebsd.org Subject: Re: How widely used is the port? X-BeenThere: freebsd-amd64@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Porting FreeBSD to the AMD64 platform List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Apr 2004 20:55:53 -0000 I'm fairly certain that I did try it without ACPI. However, I'll try it again in any event. Have you run the latest snapshot? Do you have any ATAPI devices on either of your systems? Thanks. -Kip On Fri, 2 Apr 2004, Brooks Davis wrote: > On Thu, Apr 01, 2004 at 06:26:51PM -0800, Kip Macy wrote: > > On my laptop 5.2.1 panics with a GPF on boot after install when mounting > > ad0s1a. The latest snapshot panics in malloc as result of a use after > > free in the CAM subsytem on initial boot. > > > > I've verified that there are no hardware issues (although there are > > driver limitations) by successfully installing and running Mandrake 10 > > and Fedora Core 2. > > I've got a couple that work fine here. One of them is a primary > development system and I've never had problems with it. > > What's your hardware? Have you tried disabling ACPI? > > -- Brooks > > -- > Any statement of the form "X is the one, true Y" is FALSE. > PGP fingerprint 655D 519C 26A7 82E7 2529 9BF0 5D8E 8BE9 F238 1AD4 > From owner-freebsd-amd64@FreeBSD.ORG Fri Apr 2 13:12:43 2004 Return-Path: Delivered-To: freebsd-amd64@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id D08F516A4D9 for ; Fri, 2 Apr 2004 13:12:43 -0800 (PST) Received: from pimout1-ext.prodigy.net (pimout1-ext.prodigy.net [207.115.63.77]) by mx1.FreeBSD.org (Postfix) with ESMTP id 63AF043D41 for ; Fri, 2 Apr 2004 13:12:43 -0800 (PST) (envelope-from bob@immure.com) Received: from maul.immure.com (adsl-66-136-206-1.dsl.austtx.swbell.net [66.136.206.1])i32LCfuO155554; Fri, 2 Apr 2004 16:12:41 -0500 Received: (from root@localhost) by maul.immure.com (8.12.11/8.12.11) id i32LCfAZ002472; Fri, 2 Apr 2004 15:12:41 -0600 (CST) (envelope-from bob@immure.com) Received: from luke.immure.com (luke.immure.com [10.1.132.3]) by maul.immure.com (8.12.11/8.12.3) with ESMTP id i32LCd1g002447; Fri, 2 Apr 2004 15:12:40 -0600 (CST) (envelope-from bob@immure.com) Received: from luke.immure.com (localhost [127.0.0.1]) by luke.immure.com (8.12.11/8.12.11) with ESMTP id i32LCd8F025270; Fri, 2 Apr 2004 15:12:39 -0600 (CST) (envelope-from bob@luke.immure.com) Received: (from bob@localhost) by luke.immure.com (8.12.11/8.12.11/Submit) id i32LCdQD025269; Fri, 2 Apr 2004 15:12:39 -0600 (CST) (envelope-from bob) Date: Fri, 2 Apr 2004 15:12:39 -0600 From: Bob Willcox To: "Cassidy B. Larson" Message-ID: <20040402211239.GC19295@luke.immure.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.6i X-scanner: scanned by Inflex 1.0.12.3 on maul.immure.com cc: freebsd-amd64@freebsd.org Subject: Re: SMP issues on K8S Pro S2882G3NR X-BeenThere: freebsd-amd64@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list Reply-To: Bob Willcox List-Id: Porting FreeBSD to the AMD64 platform List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Apr 2004 21:12:44 -0000 On Fri, Apr 02, 2004 at 12:54:36PM -0700, Cassidy B. Larson wrote: > On 4/2/04 12:06 PM, "Don Bowman" wrote: > > > > Make sure your air flow is forced over the CPU. Air takes > > the path of least resistance, so e.g. opening the top > > of the case will make the air escape. The fans should > > be ducted to go directly over the heat sink, there will > > be foam or something to make this happen. Operate with the > > case closed. > > > > run e.g. lmmon to see your temperatures. I don't know > > how to do this with amd, with intel xeon, there is on > > chip sensor on smb. > > > > > > Yes, CPU air flow is forced over the cpu copper heat sinks. And the top of > the case is firmly in place. > > I let it sit over night to "cool down". Upon boot-up the CPU temperatures > started around 104-105 F. Letting them sit in the BIOS noticing the > temperature go up over 130F. > > Booting into 5.2.1 with SMP kernel, I ran my perl fork mysql test scripts > six times then it froze. Back into BIOS I went again after a power cycle and > the temperatures were at 185 and 175. Not as hot as yesterday, but I only > had it up for 10 minutes total from a cold state. > > Anybody have any temperature monitoring apps for amd 5.2.1? xmbmon (I usually use the cli version, mbmon) works on my amd64 system. However, my motherboard is an ASUS SK8V, not a Tyan (also only a single CPU model, an Opteron 146). > > Anybody know what the lock-up temperature is AMD sets into their chips? When mostly idle, my system's CPU temperature swings between about 45 and 53 degrees Celsius, as the CPU cooler fan turns on and off. When running under a constant (heavy) load, the temperature stabilizes at about 49 C (with the CPU cooler fan running at a constant appx. 2000 rpm). > > Or does anybody know how hot their 1U dual opteron 246 servers run? :) Of course, my system isn't a 1U dual server so I would expect it to run cooler than yours, but if I had a system with the CPUs running as hot as yours I would worry... :-( Bob > > -c > > _______________________________________________ > freebsd-amd64@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-amd64 > To unsubscribe, send any mail to "freebsd-amd64-unsubscribe@freebsd.org" -- Bob Willcox What's done to children, they will do to society. bob@immure.com Austin, TX From owner-freebsd-amd64@FreeBSD.ORG Sat Apr 3 10:09:41 2004 Return-Path: Delivered-To: freebsd-amd64@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 91DC916A4CF; Sat, 3 Apr 2004 10:09:41 -0800 (PST) Received: from mailhost.stack.nl (vaak.stack.nl [131.155.140.140]) by mx1.FreeBSD.org (Postfix) with ESMTP id EC34243D55; Sat, 3 Apr 2004 10:09:40 -0800 (PST) (envelope-from dean@dragon.stack.nl) Received: from dragon.stack.nl (dragon.stack.nl [2001:610:1108:5011:207:e9ff:fe09:230]) by mailhost.stack.nl (Postfix) with ESMTP id 406EFDE3#A28EA1F00A; Sat, 3 Apr 2004 20:09:39 +0200 (CEST) Received: by dragon.stack.nl (Postfix, from userid 1600) id 8FA225F258; Sat, 3 Apr 2004 20:09:39 +0200 (CEST) Date: Sat, 3 Apr 2004 20:09:39 +0200 From: Dean Strik To: S??ren Schmidt Message-ID: <20040403180939.GG83830@dragon.stack.nl> References: <007e01c417eb$6691ef90$122aa8c0@skon2> <406C29F9.3070705@DeepCore.dk> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <406C29F9.3070705@DeepCore.dk> X-Editor: VIM Rulez! http://www.vim.org/ X-MUD: Outerspace - telnet://mud.stack.nl:3333 X-Really: Yes User-Agent: Mutt/1.5.6i cc: "SungGON Yi." cc: freebsd-current@freebsd.org cc: freebsd-amd64@freebsd.org Subject: Re: ATA driver cannot detect the Serial ATA disk in FreeBSD/AMD64-Current X-BeenThere: freebsd-amd64@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Porting FreeBSD to the AMD64 platform List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Apr 2004 18:09:41 -0000 S??ren Schmidt wrote: > SungGON Yi. wrote: > >My system is consisted in Tyan S2885 opteron dual board and Seagate 7200.1 > >SATA > >disk with > >FreeBSD/AMD64 5.2-Current. > > > >Old ata driver could detect the disk. Below the verbose message on > >bootstrap: > > Please try this patch: > > Index: ata-pci.c > =================================================================== > RCS file: /home/ncvs/src/sys/dev/ata/ata-pci.c,v > retrieving revision 1.77 > diff -u -r1.77 ata-pci.c Okay, works here (the system Marc Olzheim wrote about) as well. -- Dean C. Strik Eindhoven University of Technology dean@stack.nl | dean@ipnet6.org | http://www.ipnet6.org/ "This isn't right. This isn't even wrong." -- Wolfgang Pauli From owner-freebsd-amd64@FreeBSD.ORG Sat Apr 3 12:49:17 2004 Return-Path: Delivered-To: freebsd-amd64@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id C54D216A4CE for ; Sat, 3 Apr 2004 12:49:17 -0800 (PST) Received: from mail.jrv.org (rrcs-sw-24-73-246-106.biz.rr.com [24.73.246.106]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7146D43D2D for ; Sat, 3 Apr 2004 12:49:11 -0800 (PST) (envelope-from james@jrv.org) Received: from jrv.org (zippy.jrv.org [192.168.3.156]) (authenticated bits=0) by dogfood.jrv.org (8.12.11/8.12.10) with ESMTP id i337QaAc067033 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Sat, 3 Apr 2004 01:26:36 -0600 (CST) (envelope-from james@jrv.org) Message-ID: <406E672C.4050100@jrv.org> Date: Sat, 03 Apr 2004 01:26:36 -0600 From: "James R. Van Artsalen" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.6) Gecko/20040113 X-Accept-Language: en-us, en MIME-Version: 1.0 To: "Cassidy B. Larson" References: In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit cc: "freebsd-amd64@freebsd.org" Subject: Re: SMP issues on K8S Pro S2882G3NR X-BeenThere: freebsd-amd64@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Porting FreeBSD to the AMD64 platform List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Apr 2004 20:49:17 -0000 Cassidy B. Larson wrote: >One more question I had. > >What's the typical temperature of two 246 opterons? We have it in a 1U box >with fans and ventilation galore, but when I push the box for more then 20 >seconds with 0 CPU free, it freezes. A quick power cycle into the BIOS >details that I'm running at over 95 degrees centigrade. Letting it cool >down will let me run my CPU test another 2-3 times then freezes again. > > The rated case temperature is 70 C. There is a hardware-enforced shutdown mechanism at "125 C" but I don't know where this is measured. I don't know if the ROM Setup number is accurate, or what it is measuring. I have no confidence in this number. There are two pins to an on-die thermal diode they could monitor, but I don't know how to relate this value to the rated thermal maximums. >I looked through the Tyan manual and found nothing of the halt temperature, >nor AMD's site. > > Try http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/23932.pdf , the AMD Opteron Processor Data Sheet, the Power Management sections and the Miscellaneous Pin Descriptions for THERMDA, THERMDC and THERMTRIP_L. >If needs be I may send this back and get a 2U case with better cooling. >Argh. > > Make sure CPU cooler exhaust air is not recirculating back into the CPU cooler air intake. Most ATX thermal schemes are completely incompetent, as is the BTX proposal. The focus should be on getting hot exhaust air out of the chassis before it heats any component, especially the CPU. If you have to get another case evaluate thermals by seeing how they evacuate hot exhaust from the CPU (it should not recirculate or bake any other component). From owner-freebsd-amd64@FreeBSD.ORG Sat Apr 3 12:49:18 2004 Return-Path: Delivered-To: freebsd-amd64@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 73E3D16A4CE for ; Sat, 3 Apr 2004 12:49:18 -0800 (PST) Received: from mail.jrv.org (rrcs-sw-24-73-246-106.biz.rr.com [24.73.246.106]) by mx1.FreeBSD.org (Postfix) with ESMTP id F222243D2D for ; Sat, 3 Apr 2004 12:49:17 -0800 (PST) (envelope-from james@jrv.org) Received: from jrv.org (zippy.jrv.org [192.168.3.156]) (authenticated bits=0) by dogfood.jrv.org (8.12.11/8.12.10) with ESMTP id i336b2gS064832 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Sat, 3 Apr 2004 00:37:02 -0600 (CST) (envelope-from james@jrv.org) Message-ID: <406E5B8E.4060400@jrv.org> Date: Sat, 03 Apr 2004 00:37:02 -0600 From: "James R. Van Artsalen" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.6) Gecko/20040113 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Kip Macy References: <20040401182140.A25794@demos.bsdclusters.com> In-Reply-To: <20040401182140.A25794@demos.bsdclusters.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit cc: freebsd-amd64@freebsd.org Subject: Re: How widely used is the port? X-BeenThere: freebsd-amd64@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Porting FreeBSD to the AMD64 platform List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Apr 2004 20:49:18 -0000 Kip Macy wrote: >On my laptop 5.2.1 panics with a GPF on boot after install when mounting >ad0s1a. The latest snapshot panics in malloc as result of a use after >free in the CAM subsytem on initial boot. > > That's not normal. I don't know of any other such bug report, not in the last six months anyway. >I've verified that there are no hardware issues (although there are >driver limitations) by successfully installing and running Mandrake 10 >and Fedora Core 2. > > It might be better to try FreeBSD/i386 to see if there is a hardware or software issue that might affect FreeBSD/amd64. From owner-freebsd-amd64@FreeBSD.ORG Sat Apr 3 15:40:02 2004 Return-Path: Delivered-To: freebsd-amd64@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 8FFE216A4CE; Sat, 3 Apr 2004 15:40:02 -0800 (PST) Received: from freebsd-current.sentex.ca (freebsd-current.sentex.ca [64.7.128.98]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4FF6F43D2D; Sat, 3 Apr 2004 15:40:02 -0800 (PST) (envelope-from tinderbox@freebsd.org) Received: by freebsd-current.sentex.ca (Postfix, from userid 666) id BD10F7303A; Sat, 3 Apr 2004 18:40:01 -0500 (EST) Sender: FreeBSD Tinderbox From: FreeBSD Tinderbox To: FreeBSD Tinderbox , , Precedence: bulk Message-Id: <20040403234001.BD10F7303A@freebsd-current.sentex.ca> Date: Sat, 3 Apr 2004 18:40:01 -0500 (EST) Subject: [current tinderbox] failure on amd64/amd64 X-BeenThere: freebsd-amd64@freebsd.org X-Mailman-Version: 2.1.1 List-Id: Porting FreeBSD to the AMD64 platform List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Apr 2004 23:40:02 -0000 TB --- 2004-04-03 22:35:04 - tinderbox 2.3 running on freebsd-current.sentex.ca TB --- 2004-04-03 22:35:04 - starting CURRENT tinderbox run for amd64/amd64 TB --- 2004-04-03 22:35:04 - checking out the source tree TB --- 2004-04-03 22:35:04 - cd /home/tinderbox/sandbox/CURRENT/amd64/amd64 TB --- 2004-04-03 22:35:04 - /usr/bin/cvs -f -R -q -d/home/ncvs update -Pd -A src TB --- 2004-04-03 22:40:58 - building world (CFLAGS=-O2 -pipe) TB --- 2004-04-03 22:40:58 - cd /home/tinderbox/sandbox/CURRENT/amd64/amd64/src TB --- 2004-04-03 22:40:58 - /usr/bin/make -B buildworld >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries >>> stage 4.3: make dependencies >>> stage 4.4: building everything [...] cc -O2 -pipe -I/other/tinderbox/CURRENT/amd64/amd64/src/gnu/usr.bin/cvs/cvs -I../lib -DHAVE_CONFIG_H -I/other/tinderbox/CURRENT/amd64/amd64/src/gnu/usr.bin/cvs/cvs/../../../../contrib/cvs/src -I/home/tinderbox/sandbox/CURRENT/amd64/amd64/obj/amd64/other/tinderbox/CURRENT/amd64/amd64/src/i386/usr/include/gnu -I/other/tinderbox/CURRENT/amd64/amd64/src/gnu/usr.bin/cvs/cvs/../../../../contrib/cvs/lib -I/other/tinderbox/CURRENT/amd64/amd64/src/gnu/usr.bin/cvs/cvs/../../../../contrib/cvs/diff -I. -DHAVE_GSSAPI -DHAVE_GSSAPI_H -DENCRYPTION -c /other/tinderbox/CURRENT/amd64/amd64/src/contrib/cvs/src/watch.c cc -O2 -pipe -I/other/tinderbox/CURRENT/amd64/amd64/src/gnu/usr.bin/cvs/cvs -I../lib -DHAVE_CONFIG_H -I/other/tinderbox/CURRENT/amd64/amd64/src/gnu/usr.bin/cvs/cvs/../../../../contrib/cvs/src -I/home/tinderbox/sandbox/CURRENT/amd64/amd64/obj/amd64/other/tinderbox/CURRENT/amd64/amd64/src/i386/usr/include/gnu -I/other/tinderbox/CURRENT/amd64/amd64/src/gnu/usr.bin/cvs/cvs/../../../../contrib/cvs/lib -I/other/tinderbox/CURRENT/amd64/amd64/src/gnu/usr.bin/cvs/cvs/../../../../contrib/cvs/diff -I. -DHAVE_GSSAPI -DHAVE_GSSAPI_H -DENCRYPTION -c /other/tinderbox/CURRENT/amd64/amd64/src/contrib/cvs/src/wrapper.c cc -O2 -pipe -I/other/tinderbox/CURRENT/amd64/amd64/src/gnu/usr.bin/cvs/cvs -I../lib -DHAVE_CONFIG_H -I/other/tinderbox/CURRENT/amd64/amd64/src/gnu/usr.bin/cvs/cvs/../../../../contrib/cvs/src -I/home/tinderbox/sandbox/CURRENT/amd64/amd64/obj/amd64/other/tinderbox/CURRENT/amd64/amd64/src/i386/usr/include/gnu -I/other/tinderbox/CURRENT/amd64/amd64/src/gnu/usr.bin/cvs/cvs/../../../../contrib/cvs/lib -I/other/tinderbox/CURRENT/amd64/amd64/src/gnu/usr.bin/cvs/cvs/../../../../contrib/cvs/diff -I. -DHAVE_GSSAPI -DHAVE_GSSAPI_H -DENCRYPTION -c /other/tinderbox/CURRENT/amd64/amd64/src/contrib/cvs/src/zlib.c cc -O2 -pipe -I/other/tinderbox/CURRENT/amd64/amd64/src/gnu/usr.bin/cvs/cvs -I../lib -DHAVE_CONFIG_H -I/other/tinderbox/CURRENT/amd64/amd64/src/gnu/usr.bin/cvs/cvs/../../../../contrib/cvs/src -I/home/tinderbox/sandbox/CURRENT/amd64/amd64/obj/amd64/other/tinderbox/CURRENT/amd64/amd64/src/i386/usr/include/gnu -I/other/tinderbox/CURRENT/amd64/amd64/src/gnu/usr.bin/cvs/cvs/../../../../contrib/cvs/lib -I/other/tinderbox/CURRENT/amd64/amd64/src/gnu/usr.bin/cvs/cvs/../../../../contrib/cvs/diff -I. -DHAVE_GSSAPI -DHAVE_GSSAPI_H -DENCRYPTION -o cvs add.o admin.o annotate.o buffer.o checkin.o checkout.o classify.o client.o commit.o create_adm.o cvsrc.o diff.o edit.o entries.o error.o expand_path.o fileattr.o filesubr.o find_names.o hardlink.o hash.o history.o ignore.o import.o lock.o log.o login.o logmsg.o main.o mkmodules.o modules.o myndbm.o no_diff.o parseinfo.o patch.o prepend_args.o rcs.o rcscmds.o recurse.o release.o remove.o repos.o root.o run.o scramble.o server.o status.o subr.o tag.o update.o vers_ts.o version.o watch.o wrapper.o zlib.o /other/tinderbox/CURRENT/amd64/amd64/obj/amd64/other/tinderbox/CURRENT/amd64/amd64/src/gnu/usr.bin/cvs/cvs/../lib/libcvs.a /other/tinderbox/CURRENT/amd64/amd64/obj/amd64/other/tinderbox/CURRENT/amd64/amd64/src/gnu/usr.bin/cvs/cvs/../libdiff/libdiff.a -lgnuregex -lmd -lcrypt -lz -lgssapi -lkrb5 -lasn1 -lcrypto -lroken -lcrypt -lcom_err /home/tinderbox/sandbox/CURRENT/amd64/amd64/obj/amd64/other/tinderbox/CURRENT/amd64/amd64/src/i386/usr/lib/libgssapi.so: undefined reference to `_gssapi_wrap_arcfour' /home/tinderbox/sandbox/CURRENT/amd64/amd64/obj/amd64/other/tinderbox/CURRENT/amd64/amd64/src/i386/usr/lib/libgssapi.so: undefined reference to `_gssapi_get_mic_arcfour' /home/tinderbox/sandbox/CURRENT/amd64/amd64/obj/amd64/other/tinderbox/CURRENT/amd64/amd64/src/i386/usr/lib/libgssapi.so: undefined reference to `_gssapi_unwrap_arcfour' /home/tinderbox/sandbox/CURRENT/amd64/amd64/obj/amd64/other/tinderbox/CURRENT/amd64/amd64/src/i386/usr/lib/libgssapi.so: undefined reference to `_gssapi_verify_mic_arcfour' *** Error code 1 Stop in /other/tinderbox/CURRENT/amd64/amd64/src/gnu/usr.bin/cvs/cvs. *** Error code 1 Stop in /other/tinderbox/CURRENT/amd64/amd64/src/gnu/usr.bin/cvs. *** Error code 1 Stop in /other/tinderbox/CURRENT/amd64/amd64/src/gnu/usr.bin. *** Error code 1 Stop in /other/tinderbox/CURRENT/amd64/amd64/src/gnu. *** Error code 1 Stop in /other/tinderbox/CURRENT/amd64/amd64/src. *** Error code 1 Stop in /other/tinderbox/CURRENT/amd64/amd64/src. *** Error code 1 Stop in /other/tinderbox/CURRENT/amd64/amd64/src. TB --- 2004-04-03 23:40:01 - WARNING: /usr/bin/make returned exit code 1 TB --- 2004-04-03 23:40:01 - ERROR: failed to build world TB --- 2004-04-03 23:40:01 - tinderbox aborted From owner-freebsd-amd64@FreeBSD.ORG Sat Apr 3 17:04:24 2004 Return-Path: Delivered-To: freebsd-amd64@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E7EF416A4CE for ; Sat, 3 Apr 2004 17:04:24 -0800 (PST) Received: from demos.bsdclusters.com (demos.bsdclusters.com [69.55.225.36]) by mx1.FreeBSD.org (Postfix) with ESMTP id B271843D46 for ; Sat, 3 Apr 2004 17:04:24 -0800 (PST) (envelope-from kmacy@fsmware.com) Received: from demos.bsdclusters.com (demos [69.55.225.36]) i3414MTx076202; Sat, 3 Apr 2004 17:04:22 -0800 (PST) (envelope-from kmacy@fsmware.com) Received: from localhost (kmacy@localhost)i3414Mmv076199; Sat, 3 Apr 2004 17:04:22 -0800 (PST) X-Authentication-Warning: demos.bsdclusters.com: kmacy owned process doing -bs Date: Sat, 3 Apr 2004 17:04:22 -0800 (PST) From: Kip Macy X-X-Sender: kmacy@demos.bsdclusters.com To: "James R. Van Artsalen" In-Reply-To: <406E5B8E.4060400@jrv.org> Message-ID: <20040403170005.A87222@demos.bsdclusters.com> References: <20040401182140.A25794@demos.bsdclusters.com> <406E5B8E.4060400@jrv.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: freebsd-amd64@freebsd.org Subject: Re: How widely used is the port? X-BeenThere: freebsd-amd64@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Porting FreeBSD to the AMD64 platform List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 04 Apr 2004 01:04:25 -0000 I just installed 5.2.1 i386, and it runs just fine. At least I'm now in a position to build a debug kernel through cross-compilation and grab a core-dump. Thanks. -Kip > > It might be better to try FreeBSD/i386 to see if there is a hardware or > software issue that might affect FreeBSD/amd64. >