From unknown Wed Jun 18 23:05:32 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#23965 <23965@debbugs.gnu.org> To: bug#23965 <23965@debbugs.gnu.org> Subject: Status: egrep should report line number when failing to parse a file (with -f) Reply-To: bug#23965 <23965@debbugs.gnu.org> Date: Thu, 19 Jun 2025 06:05:32 +0000 retitle 23965 egrep should report line number when failing to parse a file = (with -f) reassign 23965 grep submitter 23965 Santiago Ruano Rinc=C3=B3n severity 23965 normal thanks From debbugs-submit-bounces@debbugs.gnu.org Wed Jul 13 05:00:11 2016 Received: (at submit) by debbugs.gnu.org; 13 Jul 2016 09:00:11 +0000 Received: from localhost ([127.0.0.1]:49036 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bNG1a-0001wT-L4 for submit@debbugs.gnu.org; Wed, 13 Jul 2016 05:00:11 -0400 Received: from eggs.gnu.org ([208.118.235.92]:35835) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bNG1Y-0001vT-QV for submit@debbugs.gnu.org; Wed, 13 Jul 2016 05:00:10 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bNG1S-00022I-K1 for submit@debbugs.gnu.org; Wed, 13 Jul 2016 05:00:03 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=BAYES_40,T_DKIM_INVALID, UNPARSEABLE_RELAY autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:52344) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bNG1S-00022D-GD for submit@debbugs.gnu.org; Wed, 13 Jul 2016 05:00:02 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:55032) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bNG1Q-0000r3-5t for bug-grep@gnu.org; Wed, 13 Jul 2016 05:00:01 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bNG1L-00021L-7P for bug-grep@gnu.org; Wed, 13 Jul 2016 04:59:58 -0400 Received: from mx1.riseup.net ([198.252.153.129]:60585) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bNG1L-00021A-0Z for bug-grep@gnu.org; Wed, 13 Jul 2016 04:59:55 -0400 Received: from piha.riseup.net (unknown [10.0.1.163]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client CN "*.riseup.net", Issuer "COMODO RSA Domain Validation Secure Server CA" (verified OK)) by mx1.riseup.net (Postfix) with ESMTPS id 639AB1A1A3A for ; Wed, 13 Jul 2016 08:59:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=riseup.net; s=squak; t=1468400390; bh=50BNP+VigQojUEsdBEAzqS/te81RcE7Be4eqp8aRTHw=; h=Date:From:To:Subject:From; b=R5aKrBDFY67ndM9CoLbxlkLbIieR7QyJKQWVyAI032ZimR6nQ0wGe5Ph4UwJ2PkCi Ur7tbSeqBUwf91MKHenlJ05fAiQ84xDmHfVjz5S382loFAgc/LwABmU+MYe0dgOEWL jA+nBwXh5xO90uoxuAny41szo2uh2320reoKrkxY= Received: from [127.0.0.1] (localhost [127.0.0.1]) (Authenticated sender: santiagorr) with ESMTPSA id B9DED1C02BB Received: by nomada (sSMTP sendmail emulation); Wed, 13 Jul 2016 10:59:45 +0200 Date: Wed, 13 Jul 2016 10:59:45 +0200 From: Santiago Ruano =?iso-8859-1?Q?Rinc=F3n?= To: bug-grep Subject: egrep should report line number when failing to parse a file (with -f) Message-ID: <20160713085945.GA16495@riseup.net> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="0OAP2g/MAC+5xKAE" Content-Disposition: inline X-Virus-Scanned: clamav-milter 0.99.2 at mx1.riseup.net X-Virus-Status: Clean X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.1 (----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -4.1 (----) --0OAP2g/MAC+5xKAE Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Hi, Please find below yet another old-standing bug filed against debian. grep's behaviour is still the same in 2.25. https://bugs.debian.org/525214 Cheers, Santiago ----- Forwarded message from Gunnar Wolf ----- Date: Wed, 22 Apr 2009 18:06:28 -0500 =46rom: Gunnar Wolf To: Debian Bug Tracking System Subject: egrep should report line number when failing to parse a file (with= -f) X-Mailer: reportbug 4.1 [...] egrep -f takes its input from a file. This functionality is often used i.e. with logcheck, which works basically off a directory full of files which contain regexes representing log messages to be either ignored or pushed up - However, when something goes bad and one of those lines is not parsable, grep won't help in debugging. As an example, I got loads of log messages such as: From: Cron Daemon To: root@iiec.unam.mx Date: Tue, 21 Apr 2009 23:02:02 -0500 (CDT) Subject: Cron if [ -x /usr/sbin/logcheck ]; then nic= e -n10 /usr/sbin/logcheck; fi egrep: Unmatched [ or [^ Finding the file/line where I made this particular mistake was a tedious job. Users deserve egrep to report the filename and line number where this error happened. [...] ----- End forwarded message ----- --0OAP2g/MAC+5xKAE Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIcBAEBCgAGBQJXhgMBAAoJEN5v/bjI1ki96i0P/j8J9OhuFMGRZUyBGh5OS4am uPJ7EyI1sqaMl9Rpu1cUfMrpSWFOj0UKDTLBakIp6mg1mwMQ31Vt2UCKNU2tK6nE ej/nyOOCqRRUwaW6PmxFFvjo5+o1mlOTsPuRFbhi05nN2SB1R2QPZ7+E3SnEhaZ0 I+ogXa8yTABDNRRV1v+wCrcK6cp666BFG7HcxejsQfU1AI0mok34PB8M2riNaz7s KXBgHWjzvdCp7hDD8a5U5EjhdWkMWe3rv0RArPOucaX2iPh2mqsbxkJ//2s6+sWx LOOLmrGdAEDdv3mIaoUunJJUuGMB/WUoEZ0x4PuvI+JQfI8Xazt0l25RrBhskQtM A0A821OZsBMB3vyp+ReTSWWT6LZOrL5k4W4qPfXrecqLTNdGM4fhnBYRvQPAlaYs 6ARlu4u9wuYhTZnAFwso6sAcNJ9xS663jZVZMwCKPAzB1H0pn6czj/v5agz5ULXh C2qgrHr8ygTTuCbK1lxhziK+6QaYHqN+cd8lVW4f1cV7wI3oVyp+yrHDGIeav+Pu 3DEuaS5kUm6L07Zkl+ImZnef36cWtvxqmf/S/VJ4o828B4IZX4WMenvR8VOXip+4 s/TmPen+eTUqfCRzMkIg6Bb11VnN77uoiA5k6QvKL/VIoJ4UorDmKaey0bXuvmQR EHOWXgaAlKD1vQz33fPO =SM3X -----END PGP SIGNATURE----- --0OAP2g/MAC+5xKAE-- From debbugs-submit-bounces@debbugs.gnu.org Wed Jul 20 17:59:09 2016 Received: (at 23965) by debbugs.gnu.org; 20 Jul 2016 21:59:09 +0000 Received: from localhost ([127.0.0.1]:59058 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bPzWH-0000JG-MS for submit@debbugs.gnu.org; Wed, 20 Jul 2016 17:59:09 -0400 Received: from mail-oi0-f54.google.com ([209.85.218.54]:33275) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bPzWE-0000Il-Uk for 23965@debbugs.gnu.org; Wed, 20 Jul 2016 17:59:07 -0400 Received: by mail-oi0-f54.google.com with SMTP id j185so91445666oih.0 for <23965@debbugs.gnu.org>; Wed, 20 Jul 2016 14:59:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc:content-transfer-encoding; bh=sTYrMlm6PtvahO+QsuFewpqow/7rjtf5+bxf7GjklQU=; b=vwTU62CGLiNoo5SZywk4P4VWTFiXITP9ziK4OPrxKPE6TcV8viRz5TgozL7+iH5W9S k7hqRHimWgjFbZcQvqufFi6oezgy3WT3FenXRzmQbSSnEyp8Iym7lwJI+8odYPaoTKM/ yjywqYk5O5JY5tly31Hjh/oyu1QXQEsGtVndHxEmyuSbzNpn/wjwWgqmZr0sU+A74yv5 wmUZ4xqMMsQkPo0T8RZxKf+5lZtILHWbRnFZqjwLYryl7oj3PuPBmVL5DEpeZyMnuqcw h0d7m5Wv+tVrAAeGWvmP9ju7nGQKhBXEbx98H3h51gX8TJNyTGom4G1LaNvdG6FiMCim cEsA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc:content-transfer-encoding; bh=sTYrMlm6PtvahO+QsuFewpqow/7rjtf5+bxf7GjklQU=; b=NEE4yEhw5pprHZy2jfe7cZa4Tu5QtCQOq/aK8qbbNNCbMwPmBvzsT4as38jzQjjMT0 VMZpAGmwz6pcjQhs6zuxphvKE+InqMP1aLZG3FK+BLyzisHoVXiPPPfrPrn3qFkZYess vrLCd3WEIfHZoBP+5WuxGx5emjRgfcH8sMtXtWxHKzgltWTQYrAtv3smRp2bOzjyrMiz Qc58/cg4OuFOzdzA70e+vsSJfhlB+lrcsetL8I784CfSoqf8rhdnSumF2SyeKZjH4DjG 1lWPRQwZqyxNAP+tCtVGzbLzAiJSdWlWU8+hnNLDp8s+OIpHC4gDablL0ikvnriy1JW9 ZPPQ== X-Gm-Message-State: ALyK8tLILzghBocJjiq3RU+BpYeRqs7CR+9vLHe0xD0uUAO7hF0VQECSu8LRYcuy/W3Wk0j8bvGv58LIcU1zMg== X-Received: by 10.202.107.2 with SMTP id g2mr16515047oic.1.1469051941315; Wed, 20 Jul 2016 14:59:01 -0700 (PDT) MIME-Version: 1.0 Received: by 10.202.3.130 with HTTP; Wed, 20 Jul 2016 14:58:41 -0700 (PDT) In-Reply-To: <20160713085945.GA16495@riseup.net> References: <20160713085945.GA16495@riseup.net> From: Jim Meyering Date: Wed, 20 Jul 2016 14:58:41 -0700 X-Google-Sender-Auth: cR2kb7ly_9xVPf0eA9mtE_gBeao Message-ID: Subject: Re: bug#23965: egrep should report line number when failing to parse a file (with -f) To: =?UTF-8?Q?Santiago_Ruano_Rinc=C3=B3n?= Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 23965 Cc: 23965@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) On Wed, Jul 13, 2016 at 1:59 AM, Santiago Ruano Rinc=C3=B3n wrote: > Please find below yet another old-standing bug filed against debian. > grep's behaviour is still the same in 2.25. > > https://bugs.debian.org/525214 > > Cheers, > > Santiago > > ----- Forwarded message from Gunnar Wolf ----- > > Date: Wed, 22 Apr 2009 18:06:28 -0500 > From: Gunnar Wolf > To: Debian Bug Tracking System > Subject: egrep should report line number when failing to parse a file (wi= th -f) > X-Mailer: reportbug 4.1 > > [...] > > egrep -f takes its input from a file. This functionality is often used > i.e. with logcheck, which works basically off a directory full of > files which contain regexes representing log messages to be either > ignored or pushed up - However, when something goes bad and one of > those lines is not parsable, grep won't help in debugging. As an > example, I got loads of log messages such as: > > From: Cron Daemon > To: root@iiec.unam.mx > Date: Tue, 21 Apr 2009 23:02:02 -0500 (CDT) > Subject: Cron if [ -x /usr/sbin/logcheck ]; then n= ice -n10 /usr/sbin/logcheck; fi > > egrep: Unmatched [ or [^ > > Finding the file/line where I made this particular mistake was a > tedious job. Users deserve egrep to report the filename and line > number where this error happened. > > [...] Thank you for forwarding that. I've written a patch to address that. Will post it shortly. From debbugs-submit-bounces@debbugs.gnu.org Sat Jul 23 12:31:39 2016 Received: (at 23965) by debbugs.gnu.org; 23 Jul 2016 16:31:39 +0000 Received: from localhost ([127.0.0.1]:35076 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bQzpp-0003C3-7n for submit@debbugs.gnu.org; Sat, 23 Jul 2016 12:31:39 -0400 Received: from mail-oi0-f44.google.com ([209.85.218.44]:35252) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bQzpm-0003Bo-P6 for 23965@debbugs.gnu.org; Sat, 23 Jul 2016 12:31:28 -0400 Received: by mail-oi0-f44.google.com with SMTP id l72so202102715oig.2 for <23965@debbugs.gnu.org>; Sat, 23 Jul 2016 09:31:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=iGlV4SUiwB0D4RIm5lCahum4q/MPPKIxg6x3KlzKWXs=; b=PhoPyV1rc1K90XfHiorLy5EOhC25olHotIfyxVTEgC4CTpiupY3lQLLqkiJr2zI/IQ 0hEpzdZNZZGpPLSLPMqUtRNBQw80+ElOtQwySkVaoNp3pC5UO+ecULXZGUzBwe9YytsV 9sm3JJu+IyFd5fpCtggVNVaJN8XWIkCJnJYom6PPRocbjIlFlYJXg1wcEf6TPD/tGV1f NTC/Oey/ou/nL+4QyOF9Ol5PHffpgQ9uZ/3LNa2AcTpRrmYgMgArqH7iVixutcdagT1O p1Jv3CYg7SMD38PS3Ic4YgWp9IkpJygBjnjH3N5iKfKJb7+Fc1BC7dcIZvlbgFNG1CxU M44A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=iGlV4SUiwB0D4RIm5lCahum4q/MPPKIxg6x3KlzKWXs=; b=WFRqQ+J1mNvkOLw6i3/z21/E9KYgeZ9sVqWwhFJZS/lsR1IvdYq+GbK1HSWLtBc4BP omEGQGc1hhPhgZ9p6cdn3r9PpHe6B4V782pZVNBW94Tujvn6+1hDB6k0klPEEOyjJ5Pm 8q43EYd7b9P7skp5fe/H+BIncZCDMar8rvjQcfMq8DJhvK00o4LEEz00nV6004/vRU8/ mk/bb+IagDWWqmA7JiHBYjnVFs0Ii5tCgDLjFLdtT0YYP6Uhex01MlGSz7GtgZ5MPux9 9ORLAfK8rCJQxpsDtOTMFivcwBQOqM2SRkNdYwNinrHwK1d7pXuk04roCYx2whSXVv/+ 7zkw== X-Gm-Message-State: AEkoouutJxASVhx3471EFz7kozd3ayDOnSzCWrS7aXhaK27bg6QBr1EWgtdVmf3NrdivTsC1r1VIupQOdF2Zgw== X-Received: by 10.157.22.245 with SMTP id s50mr4945284ots.161.1469291480967; Sat, 23 Jul 2016 09:31:20 -0700 (PDT) MIME-Version: 1.0 Received: by 10.202.3.130 with HTTP; Sat, 23 Jul 2016 09:31:01 -0700 (PDT) In-Reply-To: References: <20160713085945.GA16495@riseup.net> From: Jim Meyering Date: Sat, 23 Jul 2016 09:31:01 -0700 X-Google-Sender-Auth: eAoOyULFYEBd5MusVJl2gZJObIs Message-ID: Subject: Re: bug#23965: egrep should report line number when failing to parse a file (with -f) To: =?UTF-8?Q?Santiago_Ruano_Rinc=C3=B3n?= Content-Type: multipart/mixed; boundary=001a1145f22acb972305385014a7 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 23965 Cc: 23965@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.0 (/) --001a1145f22acb972305385014a7 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable On Wed, Jul 20, 2016 at 2:58 PM, Jim Meyering wrote: > On Wed, Jul 13, 2016 at 1:59 AM, Santiago Ruano Rinc=C3=B3n > wrote: >> Please find below yet another old-standing bug filed against debian. >> grep's behaviour is still the same in 2.25. >> >> https://bugs.debian.org/525214 >> >> Cheers, >> >> Santiago >> >> ----- Forwarded message from Gunnar Wolf ----- >> >> Date: Wed, 22 Apr 2009 18:06:28 -0500 >> From: Gunnar Wolf >> To: Debian Bug Tracking System >> Subject: egrep should report line number when failing to parse a file (w= ith -f) >> X-Mailer: reportbug 4.1 >> >> [...] >> >> egrep -f takes its input from a file. This functionality is often used >> i.e. with logcheck, which works basically off a directory full of >> files which contain regexes representing log messages to be either >> ignored or pushed up - However, when something goes bad and one of >> those lines is not parsable, grep won't help in debugging. As an >> example, I got loads of log messages such as: >> >> From: Cron Daemon >> To: root@iiec.unam.mx >> Date: Tue, 21 Apr 2009 23:02:02 -0500 (CDT) >> Subject: Cron if [ -x /usr/sbin/logcheck ]; then = nice -n10 /usr/sbin/logcheck; fi >> >> egrep: Unmatched [ or [^ >> >> Finding the file/line where I made this particular mistake was a >> tedious job. Users deserve egrep to report the filename and line >> number where this error happened. >> >> [...] > > Thank you for forwarding that. > I've written a patch to address that. Will post it shortly. Here are two patches. The first adds coreutils' perl-based test harness to grep. The second improves those diagnostics and adds a test using the new harness= : grep: print "filename:lineno:" in invalid-regex diagnostic Determining the file name and line number is a little tricky because of the way the regular expressions are all concatenated onto a newline- separated list. By the time grep would compiling regular expressions, the origin of each regexp was no longer available. This patch adds a list of filename,first_lineno pairs, one per input source, by which we can then map the ordinal regexp number to a filename,lineno pair for the diagnostic. * src/dfasearch.c (GEAcompile): When diagnosing an invalid regexp specified via -f FILE, include the "FILENAME:LINENO: " prefix. Also, when there are two or more lines with compilation failures, diagnose all of them, rather than stopping after the first. * src/grep.h (pattern_file_name): Declare it. * src/grep.c: (struct FL_pair): Define type. (fl_pair, n_fl_pair_slots, n_pattern_files, patfile_lineno): Define globals. (fl_add, pattern_file_name): Define functions. (main): Call fl_add for each type of the following: -e argument, -f argument, command-line-specified (without -e) regexp. * tests/filename-lineno.pl: New file. * tests/Makefile.am (TESTS): Add it. * NEWS (Improvements): Mention this. Initially reported by Gunnar Wolf in https://bugs.debian.org/525214 Forwarded to grep's bug list by Santiago Ruano Rinc=C3=B3n as http://debbugs.gnu.org/23965 --001a1145f22acb972305385014a7 Content-Type: text/plain; charset=UTF-8; name="filename-lineno.diff" Content-Disposition: attachment; filename="filename-lineno.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_iqze6rmz0 RnJvbSBhNjVlZjllMjMxZjc1ZGM5ZmFjNjZmOWU0NTcyNGNiMTRmMWIzNGJjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gTWV5ZXJpbmcgPG1leWVyaW5nQGZiLmNvbT4KRGF0ZTog U2F0LCAyNyBKdW4gMjAxNSAwODo0MzozMyAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMS8yXSB0ZXN0 czogYWRkIGNvcmV1dGlscycgcGVybC1kcml2ZW4gdGVzdCBmcmFtZXdvcmsKCiogY29uZmlndXJl LmFjOiBTZXQgdGhlIEFNX0NPTkRJVElPTkFMIHZhcmlhYmxlLCBIQVZFX1BFUkwuCiogdGVzdHMv Q29yZXV0aWxzLnBtOiBOZXcgZmlsZS4KKiB0ZXN0cy9DdVNraXAucG06IE5ldyBmaWxlLgoqIHRl c3RzL0N1VG1wZGlyLnBtOiBOZXcgZmlsZS4KKiB0ZXN0cy9uby1wZXJsOiBOZXcgZmlsZS4KKiB0 ZXN0cy9NYWtlZmlsZS5hbTogU2V0IHVwIHRvIHVzZSAucGwgdGVzdHM6CihURVNUX0VYVEVOU0lP TlMsIFRFU1RTVUlURV9QRVJMLCBURVNUU1VJVEVfUEVSTF9PUFRJT05TKTogRGVmaW5lLgooU0hf TE9HX0NPTVBJTEVSLCBQTF9MT0dfQ09NUElMRVIpOiBEZWZpbmUuCihFWFRSQV9ESVNUKTogQWRk IHRoZSBmb3VyIG5ldyBmaWxlIG5hbWVzLgotLS0KIGNvbmZpZ3VyZS5hYyAgICAgICB8ICAgNyAr CiB0ZXN0cy9Db3JldXRpbHMucG0gfCA2MjAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysKIHRlc3RzL0N1U2tpcC5wbSAgICB8ICAzOSArKysrCiB0 ZXN0cy9DdVRtcGRpci5wbSAgfCAxMTEgKysrKysrKysrKwogdGVzdHMvTWFrZWZpbGUuYW0gIHwg IDI0ICsrKwogdGVzdHMvbm8tcGVybCAgICAgIHwgICA2ICsKIDYgZmlsZXMgY2hhbmdlZCwgODA3 IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0cy9Db3JldXRpbHMucG0KIGNy ZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0cy9DdVNraXAucG0KIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0 cy9DdVRtcGRpci5wbQogY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RzL25vLXBlcmwKCmRpZmYgLS1n aXQgYS9jb25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMKaW5kZXggNGRlMGYzOS4uYWZiOGNkMiAx MDA2NDQKLS0tIGEvY29uZmlndXJlLmFjCisrKyBiL2NvbmZpZ3VyZS5hYwpAQCAtOTQsNiArOTQs MTMgQEAgQUNfVFlQRV9TSVpFX1QKIEFDX0NfQ09OU1QKIGdsX0lOSVQKCisjIFRoZSB0ZXN0IHN1 aXRlIG5lZWRzIHRvIGtub3cgaWYgd2UgaGF2ZSBhIHdvcmtpbmcgcGVybC4KKyMgRklYTUU6IHRo aXMgaXMgc3Vib3B0aW1hbC4gIElkZWFsbHksIHdlIHdvdWxkIGJlIGFibGUgdG8gY2FsbCBnbF9Q RVJMCisjIHdpdGggYW4gQUNUSU9OLUlGLU5PVC1GT1VORCBhcmd1bWVudCAuLi4KK2N1X2hhdmVf cGVybD15ZXMKK2Nhc2UgJFBFUkwgaW4gKiIvbWlzc2luZyAiKikgY3VfaGF2ZV9wZXJsPW5vOzsg ZXNhYworQU1fQ09ORElUSU9OQUwoW0hBVkVfUEVSTF0sIFt0ZXN0ICRjdV9oYXZlX3BlcmwgPSB5 ZXNdKQorCiBBQ19BUkdfRU5BQkxFKFtnY2Mtd2FybmluZ3NdLAogICBbQVNfSEVMUF9TVFJJTkco Wy0tZW5hYmxlLWdjYy13YXJuaW5nc10sCiAgICAgICAgICAgICAgICAgICBbdHVybiBvbiBsb3Rz IG9mIEdDQyB3YXJuaW5ncyAoZm9yIGRldmVsb3BlcnMpXSldLApkaWZmIC0tZ2l0IGEvdGVzdHMv Q29yZXV0aWxzLnBtIGIvdGVzdHMvQ29yZXV0aWxzLnBtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLmJkMjA4OGYKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy9Db3JldXRpbHMu cG0KQEAgLTAsMCArMSw2MjAgQEAKK3BhY2thZ2UgQ29yZXV0aWxzOworIyBUaGlzIGlzIGEgdGVz dGluZyBmcmFtZXdvcmsuCisKKyMgQ29weXJpZ2h0IChDKSAxOTk4LTIwMTUgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCBJbmMuCisKKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlv dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyMgaXQgdW5kZXIgdGhlIHRlcm1z IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyMgdGhl IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5z ZSwgb3IKKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworIyBUaGlzIHBy b2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK KyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy cmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ VVJQT1NFLiAgU2VlIHRoZQorIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk ZXRhaWxzLgorCisjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90 LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorCit1c2Ugc3RyaWN0OwordXNl IHZhcnMgcXcoJFZFUlNJT04gQElTQSBARVhQT1JUKTsKKwordXNlIEZpbGVIYW5kbGU7Cit1c2Ug RmlsZTo6Q29tcGFyZSBxdyhjb21wYXJlKTsKKworQElTQSA9IHF3KEV4cG9ydGVyKTsKKygkVkVS U0lPTiA9ICckUmV2aXNpb246IDEuNSAkICcpID1+IHRyL1swLTldLi8vY2Q7CitARVhQT1JUID0g cXcgKHJ1bl90ZXN0cyB0cmlwbGVfdGVzdCBnZXRsaW1pdHMpOworCitteSAkZGVidWcgPSAkRU5W e0RFQlVHfTsKKworbXkgQFR5cGVzID0gcXcgKElOIElOX1BJUEUgT1VUIEVSUiBBVVggQ01QIEVY SVQgUFJFIFBPU1QgT1VUX1NVQlNUCisgICAgICAgICAgICAgICAgRVJSX1NVQlNUIEVOViBFTlZf REVMKTsKK215ICVUeXBlcyA9IG1hcCB7JF8gPT4gMX0gQFR5cGVzOworbXkgJVplcm9fb25lX3R5 cGUgPSBtYXAgeyRfID0+IDF9CisgICBxdyAoT1VUIEVSUiBFWElUIFBSRSBQT1NUIE9VVF9TVUJT VCBFUlJfU1VCU1QgRU5WKTsKK215ICRzcmNkaXIgPSAiJEVOVntzcmNkaXJ9IjsKK215ICRHbG9i YWxfY291bnQgPSAxOworCisjIFdoZW4gcnVubmluZyBpbiBhIERKR1BQIGVudmlyb25tZW50LCBt YWtlICRFTlZ7U0hFTEx9IHBvaW50IHRvIGJhc2guCisjIE90aGVyd2lzZSwgYSBiYWQgc2hlbGwg bWlnaHQgYmUgdXNlZCAoZS5nLiBjb21tYW5kLmNvbSkgYW5kIG1hbnkKKyMgdGVzdHMgd291bGQg ZmFpbC4KK2RlZmluZWQgJEVOVntESkRJUn0KKyAgYW5kICRFTlZ7U0hFTEx9ID0gIiRFTlZ7REpE SVJ9L2Jpbi9iYXNoLmV4ZSI7CisKKyMgQSBmaWxlIHNwZWM6IGEgc2NhbGFyIG9yIGEgcmVmZXJl bmNlIHRvIGEgc2luZ2xlLWtleWVkIGhhc2gKKyMgPT09PT09PT09PT09PT09PQorIyAnY29udGVu dHMnICAgICAgICAgICAgICAgY29udGVudHMgb25seSAoZmlsZSBuYW1lIGlzIGRlcml2ZWQgZnJv bSB0ZXN0IG5hbWUpCisjIHtmaWxlbmFtZSA9PiAnY29udGVudHMnfSBmaWxlbmFtZSBhbmQgY29u dGVudHMKKyMge2ZpbGVuYW1lID0+IHVuZGVmfSAgICAgIGZpbGVuYW1lIG9ubHkgLS0gJChzcmNk aXIpL3Rlc3RzL2ZpbGVuYW1lIG11c3QgZXhpc3QKKyMKKyMgRklYTUU6IElmIHRoZXJlIGlzIG1v cmUgdGhhbiBvbmUgaW5wdXQgZmlsZSwgdGhlbiB5b3UgY2FuJ3Qgc3BlY2lmeSAnUkVESVInLgor IyBQSVBFIGlzIHN0aWxsIG9rLgorIworIyBJL08gc3BlYzogYSBoYXNoIHJlZiB3aXRoIHRoZSBm b2xsb3dpbmcgcHJvcGVydGllcworIyA9PT09PT09PT09PT09PT09CisjIC0gb25lIGtleS92YWx1 ZSBwYWlyCisjIC0gdGhlIGtleSBtdXN0IGJlIG9uZSBvZiB0aGVzZSBzdHJpbmdzOiBJTiwgT1VU LCBFUlIsIEFVWCwgQ01QLCBFWElUCisjIC0gdGhlIHZhbHVlIG11c3QgYmUgYSBmaWxlIHNwZWMK KyMge09VVCA9PiAnZGF0YSd9ICAgIHB1dCBkYXRhIGluIGEgdGVtcCBmaWxlIGFuZCBjb21wYXJl IGl0IHRvIHN0ZG91dCBmcm9tIGNtZAorIyB7T1VUID0+IHsnZmlsZW5hbWUnPT51bmRlZn19IGNv bXBhcmUgY29udGVudHMgb2YgZXhpc3RpbmcgZmlsZW5hbWUgdG8KKyMgICAgICAgICAgIHN0ZG91 dCBmcm9tIGNtZAorIyB7T1VUID0+IHsnZmlsZW5hbWUnPT5bJENUT1IsICREVE9SXX19ICRDVE9S IGFuZCAkRFRPUiBhcmUgcmVmZXJlbmNlcyB0bworIyAgICAgICAgICAgZnVuY3Rpb25zLCBlYWNo IHdoaWNoIGlzIHBhc3NlZCB0aGUgc2luZ2xlIGFyZ3VtZW50ICdmaWxlbmFtZScuCisjICAgICAg ICAgICAkQ1RPUiBtdXN0IGNyZWF0ZSAnZmlsZW5hbWUnLgorIyAgICAgICAgICAgRFRPUiBtYXkg YmUgb21pdHRlZCBpbiB3aGljaCBjYXNlICdzdWJ7dW5saW5rIEBfWzBdfScgaXMgdXNlZC4KKyMg ICAgICAgICAgIEZJWE1FOiBpbXBsZW1lbnQgdGhpcworIyB7RVJSID0+IC4uLn0KKyMgICAgICAg ICAgIFNhbWUgYXMgZm9yIE9VVCwgYnV0IGNvbXBhcmUgd2l0aCBzdGRlcnIsIG5vdCBzdGRvdXQu CisjIHtPVVRfU1VCU1QgPT4gJ3MvdmFyaWFibGVfb3V0cHV0L2V4cGVjdGVkX291dHB1dC8nfQor IyAgIFRyYW5zZm9ybSBhY3R1YWwgc3RhbmRhcmQgb3V0cHV0IGJlZm9yZSBjb21wYXJpbmcgaXQg YWdhaW5zdCBleHBlY3RlZC4KKyMgICBUaGlzIGlzIHVzZWZ1bCBlLmcuIGZvciBwcm9ncmFtcyBs aWtlIGR1IHRoYXQgcHJvZHVjZSBvdXRwdXQgdGhhdAorIyAgIHZhcmllcyBhIGxvdCBmcm9tIHN5 c3RlbS4gIEUuZy4sIGFuIGVtcHR5IGZpbGUgbWF5IGNvbnN1bWUgemVybyBmaWxlCisjICAgYmxv Y2tzLCBvciBtb3JlLCBkZXBlbmRpbmcgb24gdGhlIE9TIGFuZCBvbiB0aGUgZmlsZSBzeXN0ZW0g dHlwZS4KKyMge0VSUl9TVUJTVCA9PiAncy92YXJpYWJsZV9vdXRwdXQvZXhwZWN0ZWRfb3V0cHV0 Lyd9CisjICAgVHJhbnNmb3JtIGFjdHVhbCBzdGRlcnIgb3V0cHV0IGJlZm9yZSBjb21wYXJpbmcg aXQgYWdhaW5zdCBleHBlY3RlZC4KKyMgICBUaGlzIGlzIHVzZWZ1bCB3aGVuIHZlcmlmeWluZyB0 aGF0IHdlIGdldCBhIG1lYW5pbmdmdWwgZGlhZ25vc3RpYy4KKyMgICBGb3IgZXhhbXBsZSwgaW4g cm0vZmFpbC0yZXBlcm0sIHdlIGhhdmUgdG8gYWNjb3VudCBmb3IgdGhyZWUgZGlmZmVyZW50Cisj ICAgZGlhZ25vc3RpY3M6IE9wZXJhdGlvbiBub3QgcGVybWl0dGVkLCBOb3Qgb3duZXIsIGFuZCBQ ZXJtaXNzaW9uIGRlbmllZC4KKyMge0VYSVQgPT4gTn0gZXhwZWN0IGV4aXQgc3RhdHVzIG9mIGNt ZCB0byBiZSBOCisjIHtFTlYgPT4gJ1ZBUj12YWwgLi4uJ30KKyMgICBQcmVwZW5kICdWQVI9dmFs IC4uLicgdG8gdGhlIGNvbW1hbmQgdGhhdCB3ZSBleGVjdXRlIHZpYSAnc3lzdGVtJy4KKyMge0VO Vl9ERUwgPT4gJ1ZBUid9CisjICAgUmVtb3ZlIFZBUiBmcm9tIHRoZSBlbnZpcm9ubWVudCBqdXN0 IGJlZm9yZSBydW5uaW5nIHRoZSBjb3JyZXNwb25kaW5nCisjICAgY29tbWFuZCwgYW5kIHJlc3Rv cmUgYW55IHZhbHVlIGp1c3QgYWZ0ZXJ3YXJkcy4KKyMKKyMgVGhlcmUgbWF5IGJlIG1hbnkgaW5w dXQgZmlsZSBzcGVjcy4gIEZpbGUgbmFtZXMgZnJvbSB0aGUgaW5wdXQgc3BlY3MKKyMgYXJlIGNv bmNhdGVuYXRlZCBpbiBvcmRlciBvbiB0aGUgY29tbWFuZCBsaW5lLgorIyBUaGVyZSBtYXkgYmUg YXQgbW9zdCBvbmUgb2YgdGhlIE9VVC0sIEVSUi0sIGFuZCBFWElULWtleWVkIHNwZWNzLgorIyBJ ZiB0aGUgT1VULShvciBFUlIpLWtleWVkIGhhc2ggcmVmIGlzIG9taXR0ZWQsIHRoZW4gZXhwZWN0 IG5vIG91dHB1dAorIyAgIG9uIHN0ZG91dCAob3Igc3RkZXJyKS4KKyMgSWYgdGhlIEVYSVQta2V5 ZWQgb25lIGlzIG9taXR0ZWQsIHRoZW4gZXhwZWN0IHRoZSBleGl0IHN0YXR1cyB0byBiZSB6ZXJv LgorCisjIEZJWE1FOiBNYWtlIHN1cmUgdGhhdCBubyBqdW5rZmlsZSBpcyBhbHNvIGxpc3RlZCBh cyBhCisjIG5vbi1qdW5rZmlsZSAoaS5lLiwgd2l0aCB1bmRlZiBmb3IgY29udGVudHMpCisKK3N1 YiBfc2hlbGxfcXVvdGUgKCQpCit7CisgIG15ICgkc3RyaW5nKSA9IEBfOworICAkc3RyaW5nID1+ IHMvXCcvXCdcXFwnXCcvZzsKKyAgcmV0dXJuICInJHN0cmluZyciOworfQorCitzdWIgX2NyZWF0 ZV9maWxlICgkJCQkKQoreworICBteSAoJHByb2dyYW1fbmFtZSwgJHRlc3RfbmFtZSwgJGZpbGVf bmFtZSwgJGRhdGEpID0gQF87CisgIG15ICRmaWxlOworICBpZiAoZGVmaW5lZCAkZmlsZV9uYW1l KQorICAgIHsKKyAgICAgICRmaWxlID0gJGZpbGVfbmFtZTsKKyAgICB9CisgIGVsc2UKKyAgICB7 CisgICAgICAkZmlsZSA9ICIkdGVzdF9uYW1lLiRHbG9iYWxfY291bnQiOworICAgICAgKyskR2xv YmFsX2NvdW50OworICAgIH0KKworICB3YXJuICJjcmVhdGluZyBmaWxlICckZmlsZScgd2l0aCBj b250ZW50cyAnJGRhdGEnXG4iIGlmICRkZWJ1ZzsKKworICAjIFRoZSB0ZXN0IHNwZWMgZ2F2ZSBh IHN0cmluZy4KKyAgIyBXcml0ZSBpdCB0byBhIHRlbXAgZmlsZSBhbmQgcmV0dXJuIHRlbXBmaWxl IG5hbWUuCisgIG15ICRmaCA9IG5ldyBGaWxlSGFuZGxlICI+ICRmaWxlIjsKKyAgZGllICIkcHJv Z3JhbV9uYW1lOiAkZmlsZTogJCFcbiIgaWYgISAkZmg7CisgIHByaW50ICRmaCAkZGF0YTsKKyAg JGZoLT5jbG9zZSB8fCBkaWUgIiRwcm9ncmFtX25hbWU6ICRmaWxlOiAkIVxuIjsKKworICByZXR1 cm4gJGZpbGU7Cit9CisKK3N1YiBfY29tcGFyZV9maWxlcyAoJCQkJCQpCit7CisgIG15ICgkcHJv Z3JhbV9uYW1lLCAkdGVzdF9uYW1lLCAkaW5fb3Jfb3V0LCAkYWN0dWFsLCAkZXhwZWN0ZWQpID0g QF87CisKKyAgbXkgJGRpZmZlciA9IGNvbXBhcmUgKCRhY3R1YWwsICRleHBlY3RlZCk7CisgIGlm ICgkZGlmZmVyKQorICAgIHsKKyAgICAgIG15ICRpbmZvID0gKGRlZmluZWQgJGluX29yX291dCA/ ICJzdGQkaW5fb3Jfb3V0ICIgOiAnJyk7CisgICAgICB3YXJuICIkcHJvZ3JhbV9uYW1lOiB0ZXN0 ICR0ZXN0X25hbWU6ICR7aW5mb31taXNtYXRjaCwgY29tcGFyaW5nICIKKyAgICAgICAgLiAiJGV4 cGVjdGVkIChleHBlY3RlZCkgYW5kICRhY3R1YWwgKGFjdHVhbClcbiI7CisgICAgICAjIElnbm9y ZSBhbnkgZmFpbHVyZSwgZGlzY2FyZCBzdGRlcnIuCisgICAgICBzeXN0ZW0gImRpZmYgLWMgJGV4 cGVjdGVkICRhY3R1YWwgMj4vZGV2L251bGwiOworICAgIH0KKworICByZXR1cm4gJGRpZmZlcjsK K30KKworc3ViIF9wcm9jZXNzX2ZpbGVfc3BlYyAoJCQkJCQpCit7CisgIG15ICgkcHJvZ3JhbV9u YW1lLCAkdGVzdF9uYW1lLCAkZmlsZV9zcGVjLCAkdHlwZSwgJGp1bmtfZmlsZXMpID0gQF87CisK KyAgbXkgKCRmaWxlX25hbWUsICRjb250ZW50cyk7CisgIGlmICghcmVmICRmaWxlX3NwZWMpCisg ICAgeworICAgICAgKCRmaWxlX25hbWUsICRjb250ZW50cykgPSAodW5kZWYsICRmaWxlX3NwZWMp OworICAgIH0KKyAgZWxzaWYgKHJlZiAkZmlsZV9zcGVjIGVxICdIQVNIJykKKyAgICB7CisgICAg ICBteSAkbiA9IGtleXMgJSRmaWxlX3NwZWM7CisgICAgICBkaWUgIiRwcm9ncmFtX25hbWU6ICR0 ZXN0X25hbWU6ICR0eXBlIHNwZWMgaGFzICRuIGVsZW1lbnRzIC0tIgorICAgICAgICAuICIgZXhw ZWN0ZWQgMVxuIgorICAgICAgICAgIGlmICRuICE9IDE7CisgICAgICAoJGZpbGVfbmFtZSwgJGNv bnRlbnRzKSA9IGVhY2ggJSRmaWxlX3NwZWM7CisKKyAgICAgICMgVGhpcyBoYXBwZW5zIGZvciB0 aGUgQVVYIGhhc2ggaW4gYW4gaW9fc3BlYyBsaWtlIHRoaXM6CisgICAgICAjIHtDTVA9PiBbJ3p5 MTIzdXRzcnFwb25tbGtqaScsIHsnQEFVWEAnPT4gdW5kZWZ9XX0sCisgICAgICBkZWZpbmVkICRj b250ZW50cworICAgICAgICBvciByZXR1cm4gJGZpbGVfbmFtZTsKKyAgICB9CisgIGVsc2UKKyAg ICB7CisgICAgICBkaWUgIiRwcm9ncmFtX25hbWU6ICR0ZXN0X25hbWU6IGludmFsaWQgUkhTIGlu ICR0eXBlLXNwZWNcbiIKKyAgICB9CisKKyAgbXkgJGlzX2p1bmtfZmlsZSA9ICghIGRlZmluZWQg JGZpbGVfbmFtZQorICAgICAgICAgICAgICAgICAgICAgIHx8ICgoJHR5cGUgZXEgJ0lOJyB8fCAk dHlwZSBlcSAnQVVYJyB8fCAkdHlwZSBlcSAnQ01QJykKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgJiYgZGVmaW5lZCAkY29udGVudHMpKTsKKyAgbXkgJGZpbGUgPSBfY3JlYXRlX2ZpbGUgKCRw cm9ncmFtX25hbWUsICR0ZXN0X25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAkZmls ZV9uYW1lLCAkY29udGVudHMpOworCisgIGlmICgkaXNfanVua19maWxlKQorICAgIHsKKyAgICAg IHB1c2ggQCRqdW5rX2ZpbGVzLCAkZmlsZQorICAgIH0KKyAgZWxzZQorICAgIHsKKyAgICAgICMg RklYTUU6IHB1dCAkc3JjZGlyIGluIGhlcmUgc29tZXdoZXJlCisgICAgICB3YXJuICIkcHJvZ3Jh bV9uYW1lOiAkdGVzdF9uYW1lOiBzcGVjaWZpZWQgZmlsZSAnJGZpbGUnIGRvZXMiCisgICAgICAg IC4gIiBub3QgZXhpc3RcbiIKKyAgICAgICAgICBpZiAhIC1mICIkc3JjZGlyL3Rlc3RzLyRmaWxl IjsKKyAgICB9CisKKyAgcmV0dXJuICRmaWxlOworfQorCitzdWIgX2F0X3JlcGxhY2UgKCQkKQor eworICBteSAoJG1hcCwgJHMpID0gQF87CisgIGZvcmVhY2ggbXkgJGVvIChxdyAoQVVYIE9VVCBF UlIpKQorICAgIHsKKyAgICAgIG15ICRmID0gJG1hcC0+eyRlb307CisgICAgICAkZgorICAgICAg ICBhbmQgJHMgPX4gL1xAJGVvXEAvCisgICAgICAgICAgYW5kICRzID1+IHMvXEAkZW9cQC8kZi9n OworICAgIH0KKyAgcmV0dXJuICRzOworfQorCitzdWIgZ2V0bGltaXRzKCkKK3sKKyAgbXkgJE5W OworICBvcGVuICROViwgImdldGxpbWl0cyB8IiBvciBkaWUgIkVycm9yIHJ1bm5pbmcgZ2V0bGlt aXRzXG4iOworICBteSAlbGltaXRzID0gbWFwIHtzcGxpdCAvPXxcbi99IDwkTlY+OworICByZXR1 cm4gXCVsaW1pdHM7Cit9CisKKyMgRklYTUU6IGNsZWFudXAgb24gaW50ZXJydXB0CisjIEZJWE1F OiBleHRyYWN0ICdkb18xX3Rlc3QnIGZ1bmN0aW9uCisKKyMgRklYTUU6IGhhdmluZyB0byBpbmNs dWRlICRwcm9ncmFtX25hbWUgaGVyZSBpcyBhbiBleHBlZGllbnQga2x1ZGdlLgorIyBMaWJyYXJ5 IGNvZGUgZG9lc24ndCAnZGllJy4KK3N1YiBydW5fdGVzdHMgKCQkJCQkKQoreworICBteSAoJHBy b2dyYW1fbmFtZSwgJHByb2csICR0X3NwZWMsICRzYXZlX3RlbXBzLCAkdmVyYm9zZSkgPSBAXzsK KworICAjIFRvIGluZGljYXRlIHRoYXQgJHByb2cgaXMgYSBzaGVsbCBidWlsdC1pbiwgeW91J2Qg bWFrZSBpdCBhIHN0cmluZyAncmVmJy4KKyAgIyBFLmcuLCBjYWxsIHJ1bl90ZXN0cyAoJHByb2cs IFwkcHJvZywgXEBUZXN0cywgJHNhdmVfdGVtcHMsICR2ZXJib3NlKTsKKyAgIyBJZiBpdCdzIGEg cmVmLCBpbnZva2UgaXQgdmlhICJlbnYiOgorICBteSBAcHJvZyA9IHJlZiAkcHJvZyA/IChxdyhl bnYgLS0pLCAkJHByb2cpIDogJHByb2c7CisKKyAgIyBXYXJuIGFib3V0IGVtcHR5IHRfc3BlYy4K KyAgIyBGSVhNRQorCisgICMgUmVtb3ZlIGFsbCB0ZW1wIGZpbGVzIHVwb24gaW50ZXJydXB0Lgor ICAjIEZJWE1FCisKKyAgIyBWZXJpZnkgdGhhdCB0ZXN0IG5hbWVzIGFyZSBkaXN0aW5jdC4KKyAg bXkgJGJhZF90ZXN0X25hbWUgPSAwOworICBteSAlc2VlbjsKKyAgbXkgJXNlZW5fOGRvdDM7Cisg IG15ICR0OworICBmb3JlYWNoICR0IChAJHRfc3BlYykKKyAgICB7CisgICAgICBteSAkdGVzdF9u YW1lID0gJHQtPlswXTsKKyAgICAgIGlmICgkc2VlbnskdGVzdF9uYW1lfSkKKyAgICAgICAgewor ICAgICAgICAgIHdhcm4gIiRwcm9ncmFtX25hbWU6ICR0ZXN0X25hbWU6IGR1cGxpY2F0ZSB0ZXN0 IG5hbWVcbiI7CisgICAgICAgICAgJGJhZF90ZXN0X25hbWUgPSAxOworICAgICAgICB9CisgICAg ICAkc2VlbnskdGVzdF9uYW1lfSA9IDE7CisKKyAgICAgIGlmICgwKQorICAgICAgICB7CisgICAg ICAgICAgbXkgJHQ4ID0gbGMgc3Vic3RyICR0ZXN0X25hbWUsIDAsIDg7CisgICAgICAgICAgaWYg KCRzZWVuXzhkb3QzeyR0OH0pCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgIHdhcm4gIiRw cm9ncmFtX25hbWU6IDguMyB0ZXN0IG5hbWUgY29uZmxpY3Q6ICIKKyAgICAgICAgICAgICAgICAu ICIkdGVzdF9uYW1lLCAkc2Vlbl84ZG90M3skdDh9XG4iOworICAgICAgICAgICAgICAkYmFkX3Rl c3RfbmFtZSA9IDE7CisgICAgICAgICAgICB9CisgICAgICAgICAgJHNlZW5fOGRvdDN7JHQ4fSA9 ICR0ZXN0X25hbWU7CisgICAgICAgIH0KKworICAgICAgIyBUaGUgdGVzdCBuYW1lIG1heSBiZSBu byBsb25nZXIgdGhhbiAzMCBieXRlcy4KKyAgICAgICMgWWVzLCB0aGlzIGlzIGFuIGFyYml0cmFy eSBsaW1pdC4gIElmIGl0IGNhdXNlcyB0cm91YmxlLAorICAgICAgIyBjb25zaWRlciByZW1vdmlu ZyBpdC4KKyAgICAgIG15ICRtYXggPSAzMDsKKyAgICAgIGlmICgkbWF4IDwgbGVuZ3RoICR0ZXN0 X25hbWUpCisgICAgICAgIHsKKyAgICAgICAgICB3YXJuICIkcHJvZ3JhbV9uYW1lOiAkdGVzdF9u YW1lOiB0ZXN0IG5hbWUgaXMgdG9vIGxvbmcgKD4gJG1heClcbiI7CisgICAgICAgICAgJGJhZF90 ZXN0X25hbWUgPSAxOworICAgICAgICB9CisgICAgfQorICByZXR1cm4gMSBpZiAkYmFkX3Rlc3Rf bmFtZTsKKworICAjIEZJWE1FIGNoZWNrIGV4aXQgc3RhdHVzCisgIHN5c3RlbSAoQHByb2csICct LXZlcnNpb24nKSBpZiAkdmVyYm9zZTsKKworICBteSBAanVua19maWxlczsKKyAgbXkgJGZhaWwg PSAwOworICBmb3JlYWNoIG15ICR0dCAoQCR0X3NwZWMpCisgICAgeworICAgICAgbXkgQHBvc3Rf Y29tcGFyZTsKKyAgICAgIG15IEBkdW1teSA9IEAkdHQ7CisgICAgICBteSAkdCA9IFxAZHVtbXk7 CisgICAgICBteSAkdGVzdF9uYW1lID0gc2hpZnQgQCR0OworICAgICAgbXkgJGV4cGVjdCA9IHt9 OworICAgICAgbXkgKCRwcmUsICRwb3N0KTsKKworICAgICAgIyBGSVhNRTogbWF5YmUgZG9uJ3Qg cmVzZXQgdGhpcy4KKyAgICAgICRHbG9iYWxfY291bnQgPSAxOworICAgICAgbXkgQGFyZ3M7Cisg ICAgICBteSAkaW9fc3BlYzsKKyAgICAgIG15ICVzZWVuX3R5cGU7CisgICAgICBteSBAZW52X2Rl bGV0ZTsKKyAgICAgIG15ICRlbnZfcHJlZml4ID0gJyc7CisgICAgICBteSAkaW5wdXRfcGlwZV9j bWQ7CisgICAgICBmb3JlYWNoICRpb19zcGVjIChAJHQpCisgICAgICAgIHsKKyAgICAgICAgICBp ZiAoIXJlZiAkaW9fc3BlYykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgcHVzaCBAYXJn cywgJGlvX3NwZWM7CisgICAgICAgICAgICAgIG5leHQ7CisgICAgICAgICAgICB9CisKKyAgICAg ICAgICBpZiAocmVmICRpb19zcGVjIG5lICdIQVNIJykKKyAgICAgICAgICAgIHsKKyAgICAgICAg ICAgICAgZXZhbCAndXNlIERhdGE6OkR1bXBlcic7CisgICAgICAgICAgICAgIGRpZSAiJHByb2dy YW1fbmFtZTogJHRlc3RfbmFtZTogaW52YWxpZCBlbnRyeSBpbiB0ZXN0IHNwZWM7ICIKKyAgICAg ICAgICAgICAgICAuICJleHBlY3RlZCBIQVNILXJlZixcbmJ1dCBnb3QgdGhpczpcbiIKKyAgICAg ICAgICAgICAgICAgIC4gRGF0YTo6RHVtcGVyLT5EdW1wIChbXCRpb19zcGVjXSwgWyckaW9fc3Bl YyddKSAuICJcbiI7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICBteSAkbiA9IGtleXMgJSRp b19zcGVjOworICAgICAgICAgIGRpZSAiJHByb2dyYW1fbmFtZTogJHRlc3RfbmFtZTogc3BlYyBo YXMgJG4gZWxlbWVudHMgLS0iCisgICAgICAgICAgICAuICIgZXhwZWN0ZWQgMVxuIgorICAgICAg ICAgICAgICBpZiAkbiAhPSAxOworICAgICAgICAgIG15ICgkdHlwZSwgJHZhbCkgPSBlYWNoICUk aW9fc3BlYzsKKyAgICAgICAgICBkaWUgIiRwcm9ncmFtX25hbWU6ICR0ZXN0X25hbWU6IGludmFs aWQga2V5ICckdHlwZScgaW4gdGVzdCBzcGVjXG4iCisgICAgICAgICAgICBpZiAhICRUeXBlc3sk dHlwZX07CisKKyAgICAgICAgICAjIE1ha2Ugc3VyZSB0aGVyZSdzIG5vIG1vcmUgdGhhbiBvbmUg b2YgT1VULCBFUlIsIEVYSVQsIGV0Yy4KKyAgICAgICAgICBkaWUgIiRwcm9ncmFtX25hbWU6ICR0 ZXN0X25hbWU6IG1vcmUgdGhhbiBvbmUgJHR5cGUgc3BlY1xuIgorICAgICAgICAgICAgaWYgJFpl cm9fb25lX3R5cGV7JHR5cGV9IGFuZCAkc2Vlbl90eXBleyR0eXBlfSsrOworCisgICAgICAgICAg aWYgKCR0eXBlIGVxICdQUkUnIG9yICR0eXBlIGVxICdQT1NUJykKKyAgICAgICAgICAgIHsKKyAg ICAgICAgICAgICAgJGV4cGVjdC0+eyR0eXBlfSA9ICR2YWw7CisgICAgICAgICAgICAgIG5leHQ7 CisgICAgICAgICAgICB9CisKKyAgICAgICAgICBpZiAoJHR5cGUgZXEgJ0NNUCcpCisgICAgICAg ICAgICB7CisgICAgICAgICAgICAgIG15ICR0ID0gcmVmICR2YWw7CisgICAgICAgICAgICAgICR0 ICYmICR0IGVxICdBUlJBWScKKyAgICAgICAgICAgICAgICBvciBkaWUgIiRwcm9ncmFtX25hbWU6 ICR0ZXN0X25hbWU6IGludmFsaWQgQ01QIHNwZWNcbiI7CisgICAgICAgICAgICAgIEAkdmFsID09 IDIKKyAgICAgICAgICAgICAgICBvciBkaWUgIiRwcm9ncmFtX25hbWU6ICR0ZXN0X25hbWU6IGlu dmFsaWQgQ01QIGxpc3Q7ICBtdXN0IGhhdmUiCisgICAgICAgICAgICAgICAgICAuICIgZXhhY3Rs eSAyIGVsZW1lbnRzXG4iOworICAgICAgICAgICAgICBteSBAY21wX2ZpbGVzOworICAgICAgICAg ICAgICBmb3JlYWNoIG15ICRlIChAJHZhbCkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAg ICAgICAgICBteSAkciA9IHJlZiAkZTsKKyAgICAgICAgICAgICAgICAgICRyICYmICRyIG5lICdI QVNIJworICAgICAgICAgICAgICAgICAgICBhbmQgZGllICIkcHJvZ3JhbV9uYW1lOiAkdGVzdF9u YW1lOiBpbnZhbGlkIGVsZW1lbnQgKCRyKSIKKyAgICAgICAgICAgICAgICAgICAgICAuICIgaW4g Q01QIGxpc3Q7ICBvbmx5IHNjYWxhcnMgYW5kIGhhc2ggcmVmZXJlbmNlcyAiCisgICAgICAgICAg ICAgICAgICAgICAgICAuICJhcmUgYWxsb3dlZFxuIjsKKyAgICAgICAgICAgICAgICAgIGlmICgk ciAmJiAkciBlcSAnSEFTSCcpCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg ICAgICAgICBteSAkbiA9IGtleXMgJSRlOworICAgICAgICAgICAgICAgICAgICAgICRuID09IDEK KyAgICAgICAgICAgICAgICAgICAgICAgIG9yIGRpZSAiJHByb2dyYW1fbmFtZTogJHRlc3RfbmFt ZTogQ01QIHNwZWMgaGFzICRuICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLiAiZWxlbWVu dHMgLS0gZXhwZWN0ZWQgMVxuIjsKKworICAgICAgICAgICAgICAgICAgICAgICMgUmVwbGFjZSBh bnkgJ0BBVVhAJyBpbiB0aGUga2V5IG9mICUkZS4KKyAgICAgICAgICAgICAgICAgICAgICBteSAo JGZmLCAkdmFsKSA9IGVhY2ggJSRlOworICAgICAgICAgICAgICAgICAgICAgIG15ICRuZXdfZmYg PSBfYXRfcmVwbGFjZSAkZXhwZWN0LCAkZmY7CisgICAgICAgICAgICAgICAgICAgICAgaWYgKCRu ZXdfZmYgbmUgJGZmKQorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAg ICAgICAgICAgICAkZS0+eyRuZXdfZmZ9ID0gJHZhbDsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgZGVsZXRlICRlLT57JGZmfTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgbXkgJGNtcF9maWxlID0gX3Byb2Nlc3Nf ZmlsZV9zcGVjICgkcHJvZ3JhbV9uYW1lLCAkdGVzdF9uYW1lLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZSwgJHR5cGUsIFxAanVua19maWxl cyk7CisgICAgICAgICAgICAgICAgICBwdXNoIEBjbXBfZmlsZXMsICRjbXBfZmlsZTsKKyAgICAg ICAgICAgICAgICB9CisgICAgICAgICAgICAgIHB1c2ggQHBvc3RfY29tcGFyZSwgW0BjbXBfZmls ZXNdOworCisgICAgICAgICAgICAgICRleHBlY3QtPnskdHlwZX0gPSAkdmFsOworICAgICAgICAg ICAgICBuZXh0OworICAgICAgICAgICAgfQorCisgICAgICAgICAgaWYgKCR0eXBlIGVxICdFWElU JykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgZGllICIkcHJvZ3JhbV9uYW1lOiAkdGVz dF9uYW1lOiBpbnZhbGlkIEVYSVQgY29kZVxuIgorICAgICAgICAgICAgICAgIGlmICR2YWwgIX4g L15cZCskLzsKKyAgICAgICAgICAgICAgIyBGSVhNRTogbWFrZSBzdXJlICRkYXRhIGlzIG51bWVy aWMKKyAgICAgICAgICAgICAgJGV4cGVjdC0+e0VYSVR9ID0gJHZhbDsKKyAgICAgICAgICAgICAg bmV4dDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgIGlmICgkdHlwZSA9fiAvXihPVVR8RVJS KV9TVUJTVCQvKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAkZXhwZWN0LT57UkVTVUxU X1NVQlNUfSB8fD0ge307CisgICAgICAgICAgICAgICRleHBlY3QtPntSRVNVTFRfU1VCU1R9LT57 JDF9ID0gJHZhbDsKKyAgICAgICAgICAgICAgbmV4dDsKKyAgICAgICAgICAgIH0KKworICAgICAg ICAgIGlmICgkdHlwZSBlcSAnRU5WJykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgJGVu dl9wcmVmaXggPSAiJHZhbCAiOworICAgICAgICAgICAgICBuZXh0OworICAgICAgICAgICAgfQor CisgICAgICAgICAgaWYgKCR0eXBlIGVxICdFTlZfREVMJykKKyAgICAgICAgICAgIHsKKyAgICAg ICAgICAgICAgcHVzaCBAZW52X2RlbGV0ZSwgJHZhbDsKKyAgICAgICAgICAgICAgbmV4dDsKKyAg ICAgICAgICAgIH0KKworICAgICAgICAgIG15ICRmaWxlID0gX3Byb2Nlc3NfZmlsZV9zcGVjICgk cHJvZ3JhbV9uYW1lLCAkdGVzdF9uYW1lLCAkdmFsLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAkdHlwZSwgXEBqdW5rX2ZpbGVzKTsKKworICAgICAgICAgIGlmICgk dHlwZSBlcSAnSU4nIHx8ICR0eXBlIGVxICdJTl9QSVBFJykKKyAgICAgICAgICAgIHsKKyAgICAg ICAgICAgICAgbXkgJHF1b3RlZF9maWxlID0gX3NoZWxsX3F1b3RlICRmaWxlOworICAgICAgICAg ICAgICBpZiAoJHR5cGUgZXEgJ0lOX1BJUEUnKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAg ICAgICAgICAgIGRlZmluZWQgJGlucHV0X3BpcGVfY21kCisgICAgICAgICAgICAgICAgICAgIGFu ZCBkaWUgIiRwcm9ncmFtX25hbWU6ICR0ZXN0X25hbWU6IG9ubHkgb25lIGlucHV0IgorICAgICAg ICAgICAgICAgICAgICAgIC4gIiBtYXkgYmUgc3BlY2lmaWVkIHdpdGggSU5fUElQRVxuIjsKKyAg ICAgICAgICAgICAgICAgICRpbnB1dF9waXBlX2NtZCA9ICJjYXQgJHF1b3RlZF9maWxlIHwiOwor ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHsK KyAgICAgICAgICAgICAgICAgIHB1c2ggQGFyZ3MsICRxdW90ZWRfZmlsZTsKKyAgICAgICAgICAg ICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgZWxzaWYgKCR0eXBlIGVxICdBVVgnIHx8 ICR0eXBlIGVxICdPVVQnIHx8ICR0eXBlIGVxICdFUlInKQorICAgICAgICAgICAgeworICAgICAg ICAgICAgICAkZXhwZWN0LT57JHR5cGV9ID0gJGZpbGU7CisgICAgICAgICAgICB9CisgICAgICAg ICAgZWxzZQorICAgICAgICAgICAgeworICAgICAgICAgICAgICBkaWUgIiRwcm9ncmFtX25hbWU6 ICR0ZXN0X25hbWU6IGludmFsaWQgdHlwZTogJHR5cGVcbiIKKyAgICAgICAgICAgIH0KKyAgICAg ICAgfQorCisgICAgICAjIEV4cGVjdCBhbiBleGl0IHN0YXR1cyBvZiB6ZXJvIGlmIGl0J3Mgbm90 IHNwZWNpZmllZC4KKyAgICAgICRleHBlY3QtPntFWElUfSB8fD0gMDsKKworICAgICAgIyBBbGxv dyBFUlIgdG8gYmUgb21pdHRlZCAtLSBpbiB0aGF0IGNhc2UsIGV4cGVjdCBubyBlcnJvciBvdXRw dXQuCisgICAgICBmb3JlYWNoIG15ICRlbyAocXcgKE9VVCBFUlIpKQorICAgICAgICB7CisgICAg ICAgICAgaWYgKCFleGlzdHMgJGV4cGVjdC0+eyRlb30pCisgICAgICAgICAgICB7CisgICAgICAg ICAgICAgICRleHBlY3QtPnskZW99ID0gX2NyZWF0ZV9maWxlICgkcHJvZ3JhbV9uYW1lLCAkdGVz dF9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5k ZWYsICcnKTsKKyAgICAgICAgICAgICAgcHVzaCBAanVua19maWxlcywgJGV4cGVjdC0+eyRlb307 CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgIyBGSVhNRTogRG9lcyBpdCBldmVy IG1ha2Ugc2Vuc2UgdG8gc3BlY2lmeSBhIGZpbGVuYW1lICphbmQqIGNvbnRlbnRzCisgICAgICAj IGluIE9VVCBvciBFUlIgc3BlYz8KKworICAgICAgIyBGSVhNRTogdGhpcyBpcyByZWFsbHkgc3Vi b3B0aW1hbC4uLgorICAgICAgbXkgQG5ld19hcmdzOworICAgICAgZm9yZWFjaCBteSAkYSAoQGFy Z3MpCisgICAgICAgIHsKKyAgICAgICAgICAkYSA9IF9hdF9yZXBsYWNlICRleHBlY3QsICRhOwor ICAgICAgICAgIHB1c2ggQG5ld19hcmdzLCAkYTsKKyAgICAgICAgfQorICAgICAgQGFyZ3MgPSBA bmV3X2FyZ3M7CisKKyAgICAgIHdhcm4gIiR0ZXN0X25hbWUuLi5cbiIgaWYgJHZlcmJvc2U7Cisg ICAgICAmeyRleHBlY3QtPntQUkV9fSBpZiAkZXhwZWN0LT57UFJFfTsKKyAgICAgIG15ICVhY3R1 YWw7CisgICAgICAkYWN0dWFse09VVH0gPSAiJHRlc3RfbmFtZS5PIjsKKyAgICAgICRhY3R1YWx7 RVJSfSA9ICIkdGVzdF9uYW1lLkUiOworICAgICAgcHVzaCBAanVua19maWxlcywgJGFjdHVhbHtP VVR9LCAkYWN0dWFse0VSUn07CisgICAgICBteSBAY21kID0gKEBwcm9nLCBAYXJncywgIj4gJGFj dHVhbHtPVVR9IiwgIjI+ICRhY3R1YWx7RVJSfSIpOworICAgICAgJGVudl9wcmVmaXgKKyAgICAg ICAgYW5kIHVuc2hpZnQgQGNtZCwgJGVudl9wcmVmaXg7CisgICAgICBkZWZpbmVkICRpbnB1dF9w aXBlX2NtZAorICAgICAgICBhbmQgdW5zaGlmdCBAY21kLCAkaW5wdXRfcGlwZV9jbWQ7CisgICAg ICBteSAkY21kX3N0ciA9IGpvaW4gKCcgJywgQGNtZCk7CisKKyAgICAgICMgRGVsZXRlIGZyb20g dGhlIGVudmlyb25tZW50IGFueSBzeW1ib2xzIHNwZWNpZmllZCBieSBzeW50YXgKKyAgICAgICMg bGlrZSB0aGlzOiB7RU5WX0RFTCA9PiAnVFonfS4KKyAgICAgIG15ICVwdXNoZWRfZW52OworICAg ICAgZm9yZWFjaCBteSAkZW52X3N5bSAoQGVudl9kZWxldGUpCisgICAgICAgIHsKKyAgICAgICAg ICBteSAkdmFsID0gZGVsZXRlICRFTlZ7JGVudl9zeW19OworICAgICAgICAgIGRlZmluZWQgJHZh bAorICAgICAgICAgICAgYW5kICRwdXNoZWRfZW52eyRlbnZfc3ltfSA9ICR2YWw7CisgICAgICAg IH0KKworICAgICAgd2FybiAiUnVubmluZyBjb21tYW5kOiAnJGNtZF9zdHInXG4iIGlmICRkZWJ1 ZzsKKyAgICAgIG15ICRyYyA9IDB4ZmZmZiAmIHN5c3RlbSAkY21kX3N0cjsKKworICAgICAgIyBS ZXN0b3JlIGFueSBlbnZpcm9ubWVudCBzZXR0aW5nIHdlIGNoYW5nZWQgdmlhIGEgZGVsZXRpb24u CisgICAgICBmb3JlYWNoIG15ICRlbnZfc3ltIChrZXlzICVwdXNoZWRfZW52KQorICAgICAgICB7 CisgICAgICAgICAgJEVOVnskZW52X3N5bX0gPSAkcHVzaGVkX2VudnskZW52X3N5bX07CisgICAg ICAgIH0KKworICAgICAgaWYgKCRyYyA9PSAweGZmMDApCisgICAgICAgIHsKKyAgICAgICAgICB3 YXJuICIkcHJvZ3JhbV9uYW1lOiB0ZXN0ICR0ZXN0X25hbWUgZmFpbGVkOiBjb21tYW5kIGZhaWxl ZDpcbiIKKyAgICAgICAgICAgIC4gIiAgJyRjbWRfc3RyJzogJCFcbiI7CisgICAgICAgICAgJGZh aWwgPSAxOworICAgICAgICAgIGdvdG8gY2xlYW51cDsKKyAgICAgICAgfQorICAgICAgJHJjID4+ PSA4IGlmICRyYyA+IDB4ODA7CisgICAgICBpZiAoJGV4cGVjdC0+e0VYSVR9ICE9ICRyYykKKyAg ICAgICAgeworICAgICAgICAgIHdhcm4gIiRwcm9ncmFtX25hbWU6IHRlc3QgJHRlc3RfbmFtZSBm YWlsZWQ6IGV4aXQgc3RhdHVzIG1pc21hdGNoOiIKKyAgICAgICAgICAgIC4gIiAgZXhwZWN0ZWQg JGV4cGVjdC0+e0VYSVR9LCBnb3QgJHJjXG4iOworICAgICAgICAgICRmYWlsID0gMTsKKyAgICAg ICAgICBnb3RvIGNsZWFudXA7CisgICAgICAgIH0KKworICAgICAgbXkgJWFjdHVhbF9kYXRhOwor ICAgICAgIyBSZWNvcmQgYWN0dWFsIHN0ZG91dCBhbmQgc3RkZXJyIGNvbnRlbnRzLCBpZiBQT1NU IG1heSBuZWVkIHRoZW0uCisgICAgICBpZiAoJGV4cGVjdC0+e1BPU1R9KQorICAgICAgICB7Cisg ICAgICAgICAgZm9yZWFjaCBteSAkZW8gKHF3IChPVVQgRVJSKSkKKyAgICAgICAgICAgIHsKKyAg ICAgICAgICAgICAgbXkgJG91dF9maWxlID0gJGFjdHVhbHskZW99OworICAgICAgICAgICAgICBv cGVuIElOLCAkb3V0X2ZpbGUKKyAgICAgICAgICAgICAgICBvciAod2FybgorICAgICAgICAgICAg ICAgICAgICAiJHByb2dyYW1fbmFtZTogY2Fubm90IG9wZW4gJG91dF9maWxlIGZvciByZWFkaW5n OiAkIVxuIiksCisgICAgICAgICAgICAgICAgICAkZmFpbCA9IDEsIG5leHQ7CisgICAgICAgICAg ICAgICRhY3R1YWxfZGF0YXskZW99ID0gPElOPjsKKyAgICAgICAgICAgICAgY2xvc2UgSU4KKyAg ICAgICAgICAgICAgICBvciAod2FybiAiJHByb2dyYW1fbmFtZTogZmFpbGVkIHRvIHJlYWQgJG91 dF9maWxlOiAkIVxuIiksCisgICAgICAgICAgICAgICAgICAkZmFpbCA9IDE7CisgICAgICAgICAg ICB9CisgICAgICAgIH0KKworICAgICAgZm9yZWFjaCBteSAkZW8gKHF3IChPVVQgRVJSKSkKKyAg ICAgICAgeworICAgICAgICAgIG15ICRzdWJzdF9leHByID0gJGV4cGVjdC0+e1JFU1VMVF9TVUJT VH0tPnskZW99OworICAgICAgICAgIGlmIChkZWZpbmVkICRzdWJzdF9leHByKQorICAgICAgICAg ICAgeworICAgICAgICAgICAgICBteSAkb3V0ID0gJGFjdHVhbHskZW99OworICAgICAgICAgICAg ICBteSAkb3JpZyA9ICIkb3V0Lm9yaWciOworCisgICAgICAgICAgICAgICMgTW92ZSAkb3V0IGFz aWRlICh0byAkb3JpZyksIHRoZW4gcmVjcmVhdGUgJG91dAorICAgICAgICAgICAgICAjIGJ5IHRy YW5zZm9ybWluZyBlYWNoIGxpbmUgb2YgJG9yaWcgdmlhICRzdWJzdF9leHByLgorICAgICAgICAg ICAgICByZW5hbWUgJG91dCwgJG9yaWcKKyAgICAgICAgICAgICAgICBvciAod2FybiAiJHByb2dy YW1fbmFtZTogY2Fubm90IHJlbmFtZSAkb3V0IHRvICRvcmlnOiAkIVxuIiksCisgICAgICAgICAg ICAgICAgICAkZmFpbCA9IDEsIG5leHQ7CisgICAgICAgICAgICAgIG9wZW4gSU4sICRvcmlnCisg ICAgICAgICAgICAgICAgb3IgKHdhcm4gIiRwcm9ncmFtX25hbWU6IGNhbm5vdCBvcGVuICRvcmln IGZvciByZWFkaW5nOiAkIVxuIiksCisgICAgICAgICAgICAgICAgICAkZmFpbCA9IDEsICh1bmxp bmsgJG9yaWcpLCBuZXh0OworICAgICAgICAgICAgICB1bmxpbmsgJG9yaWcKKyAgICAgICAgICAg ICAgICBvciAod2FybiAiJHByb2dyYW1fbmFtZTogY2Fubm90IHVubGluayAkb3JpZzogJCFcbiIp LAorICAgICAgICAgICAgICAgICAgJGZhaWwgPSAxOworICAgICAgICAgICAgICBvcGVuIE9VVCwg Ij4kb3V0IgorICAgICAgICAgICAgICAgIG9yICh3YXJuICIkcHJvZ3JhbV9uYW1lOiBjYW5ub3Qg b3BlbiAkb3V0IGZvciB3cml0aW5nOiAkIVxuIiksCisgICAgICAgICAgICAgICAgICAkZmFpbCA9 IDEsIG5leHQ7CisgICAgICAgICAgICAgIHdoaWxlIChkZWZpbmVkIChteSAkbGluZSA9IDxJTj4p KQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgIGV2YWwgIlwkXyA9IFwkbGlu ZTsgJHN1YnN0X2V4cHI7IFwkbGluZSA9IFwkXyI7CisgICAgICAgICAgICAgICAgICBwcmludCBP VVQgJGxpbmU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBjbG9zZSBJTjsKKyAg ICAgICAgICAgICAgY2xvc2UgT1VUCisgICAgICAgICAgICAgICAgb3IgKHdhcm4gIiRwcm9ncmFt X25hbWU6IGZhaWxlZCB0byB3cml0ZSAkb3V0OiAkIVxuIiksCisgICAgICAgICAgICAgICAgICAk ZmFpbCA9IDEsIG5leHQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICBteSAkZW9fbG93ZXIg PSBsYyAkZW87CisgICAgICAgICAgX2NvbXBhcmVfZmlsZXMgKCRwcm9ncmFtX25hbWUsICR0ZXN0 X25hbWUsICRlb19sb3dlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJGFjdHVhbHskZW99 LCAkZXhwZWN0LT57JGVvfSkKKyAgICAgICAgICAgIGFuZCAkZmFpbCA9IDE7CisgICAgICAgIH0K KworICAgICAgZm9yZWFjaCBteSAkcGFpciAoQHBvc3RfY29tcGFyZSkKKyAgICAgICAgeworICAg ICAgICAgIG15ICgkZXhwZWN0ZWQsICRhY3R1YWwpID0gQCRwYWlyOworICAgICAgICAgIF9jb21w YXJlX2ZpbGVzICRwcm9ncmFtX25hbWUsICR0ZXN0X25hbWUsIHVuZGVmLCAkYWN0dWFsLCAkZXhw ZWN0ZWQKKyAgICAgICAgICAgIGFuZCAkZmFpbCA9IDE7CisgICAgICAgIH0KKworICAgIGNsZWFu dXA6CisgICAgICAkZXhwZWN0LT57UE9TVH0KKyAgICAgICAgYW5kICZ7JGV4cGVjdC0+e1BPU1R9 fSAoJGFjdHVhbF9kYXRhe09VVH0sICRhY3R1YWxfZGF0YXtFUlJ9KTsKKworICAgIH0KKworICAj IEZJWE1FOiBtYXliZSB1bmxpbmsgZmlsZXMgaW5zaWRlIHRoZSBiaWcgZm9yZWFjaCBsb29wPwor ICB1bmxpbmsgQGp1bmtfZmlsZXMgaWYgISAkc2F2ZV90ZW1wczsKKworICByZXR1cm4gJGZhaWw7 Cit9CisKKyMgRm9yIGVhY2ggdGVzdCBpbiBAJFRFU1RTLCBnZW5lcmF0ZSB0d28gYWRkaXRpb25h bCB0ZXN0cywKKyMgb25lIHVzaW5nIHN0ZGluLCB0aGUgb3RoZXIgdXNpbmcgYSBwaXBlLiAgSS5l LiwgZ2l2ZW4gdGhpcyBvbmUKKyMgWydpZGVtLTAnLCB7SU49PicnfSwge09VVD0+Jyd9XSwKKyMg Z2VuZXJhdGUgdGhlc2U6CisjIFsnaWRlbS0wLnInLCAnPCcsIHtJTj0+Jyd9LCB7T1VUPT4nJ31d LAorIyBbJ2lkZW0tMC5wJywge0lOX1BJUEU9PicnfSwge09VVD0+Jyd9XSwKKyMgR2VuZXJhdGUg bmV3IHRlc3RzIG9ubHkgaWYgdGhlcmUgaXMgZXhhY3RseSBvbmUgaW5wdXQgc3BlYy4KKyMgVGhl IHJldHVybmVkIGxpc3Qgb2YgdGVzdHMgY29udGFpbnMgZWFjaCBpbnB1dCB0ZXN0LCBmb2xsb3dl ZAorIyBieSB6ZXJvIG9yIHR3byBkZXJpdmVkIHRlc3RzLgorc3ViIHRyaXBsZV90ZXN0KCQpCit7 CisgIG15ICgkdGVzdHMpID0gQF87CisgIG15IEBuZXc7CisgIGZvcmVhY2ggbXkgJHQgKEAkdGVz dHMpCisgICAgeworICAgICAgcHVzaCBAbmV3LCAkdDsKKworICAgICAgbXkgQGluOworICAgICAg bXkgQGFyZ3M7CisgICAgICBteSBAbGlzdF9vZl9oYXNoOworICAgICAgZm9yZWFjaCBteSAkZSAo QCR0KQorICAgICAgICB7CisgICAgICAgICAgIXJlZiAkZQorICAgICAgICAgICAgYW5kIHB1c2gg KEBhcmdzLCAkZSksIG5leHQ7CisKKyAgICAgICAgICByZWYgJGUgJiYgcmVmICRlIGVxICdIQVNI JworICAgICAgICAgICAgb3IgKHdhcm4gIiQwOiAkdC0+WzBdOiB1bmV4cGVjdGVkIGVudHJ5IHR5 cGVcbiIpLCBuZXh0OworICAgICAgICAgIGRlZmluZWQgJGUtPntJTn0KKyAgICAgICAgICAgIGFu ZCAocHVzaCBAaW4sICRlLT57SU59KSwgbmV4dDsKKyAgICAgICAgICBwdXNoIEBsaXN0X29mX2hh c2gsICRlOworICAgICAgICB9CisgICAgICAjIEFkZCB2YXJpYW50cyBJRkYgdGhlcmUgaXMgZXhh Y3RseSBvbmUgaW5wdXQgZmlsZS4KKyAgICAgIEBpbiA9PSAxCisgICAgICAgIG9yIG5leHQ7Cisg ICAgICBzaGlmdCBAYXJnczsgIyBkaXNjYXJkIHRlc3QgbmFtZQorICAgICAgcHVzaCBAbmV3LCBb IiR0LT5bMF0uciIsIEBhcmdzLCAnPCcsIHtJTiA9PiAkaW5bMF19LCBAbGlzdF9vZl9oYXNoXTsK KyAgICAgIHB1c2ggQG5ldywgWyIkdC0+WzBdLnAiLCBAYXJncywge0lOX1BJUEUgPT4gJGluWzBd fSwgQGxpc3Rfb2ZfaGFzaF07CisgICAgfQorICByZXR1cm4gQG5ldzsKK30KKworIyMgcGFja2Fn ZSByZXR1cm4KKzE7CmRpZmYgLS1naXQgYS90ZXN0cy9DdVNraXAucG0gYi90ZXN0cy9DdVNraXAu cG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTI1Njg4YQotLS0gL2Rldi9u dWxsCisrKyBiL3Rlc3RzL0N1U2tpcC5wbQpAQCAtMCwwICsxLDM5IEBACitwYWNrYWdlIEN1U2tp cDsKKyMgU2tpcCBhIHRlc3Q6IGVtaXQgZGlhZyB0byBsb2cgYW5kIHRvIHN0ZGVyciwgYW5kIGV4 aXQgNzcKKworIyBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxNSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24sIEluYy4KKworIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRp c3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorIyB0aGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorIyAo YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisjIFRoaXMgcHJvZ3JhbSBpcyBk aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBidXQgV0lU SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor IyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT ZWUgdGhlCisjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisK KyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UKKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0 cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisKK3VzZSBzdHJpY3Q7Cit1c2Ugd2FybmluZ3M7 CisKK291ciAkTUUgPSAkMCB8fCAiPD8/Pz4iOworCisjIEVtaXQgYSBkaWFnbm9zdGljIGJvdGgg dG8gc3RkZXJyIGFuZCB0byAkc3RkZXJyX2ZpbGVub18uCisjIEZJWE1FOiBkb24ndCBoYXJkLWNv ZGUgdGhhdCB2YWx1ZSAoOSksIHNpbmNlIGl0J3MgYWxyZWFkeSBkZWZpbmVkIGluIGluaXQuY2Zn Lgorc3ViIHNraXAgKCQpCit7CisgIG15ICgkbXNnKSA9IEBfOworICBteSAkc3RkZXJyX2ZpbGVu b18gPSA5OworICB3YXJuICRtc2c7CisgIG9wZW4gRkgsICI+JiRzdGRlcnJfZmlsZW5vXyIKKyAg ICBvciB3YXJuICIkTUU6IGZhaWxlZCB0byBkdXAgc3RkZXJyXG4iOworICBwcmludCBGSCAkbXNn OworICBjbG9zZSBGSAorICAgIG9yIHdhcm4gIiRNRTogZmFpbGVkIHRvIGNsb3NlIEZEICRzdGRl cnJfZmlsZW5vX1xuIjsKKyAgZXhpdCA3NzsKK30KKworMTsKZGlmZiAtLWdpdCBhL3Rlc3RzL0N1 VG1wZGlyLnBtIGIvdGVzdHMvQ3VUbXBkaXIucG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uZmQ2NTU1NgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL0N1VG1wZGlyLnBtCkBA IC0wLDAgKzEsMTExIEBACitwYWNrYWdlIEN1VG1wZGlyOworIyBjcmVhdGUsIHRoZW4gY2hkaXIg aW50byBhIHRlbXBvcmFyeSBzdWItZGlyZWN0b3J5CisKKyMgQ29weXJpZ2h0IChDKSAyMDA3LTIw MTUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisKKyMgVGhpcyBwcm9ncmFtIGlzIGZy ZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyMgaXQg dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJs aXNoZWQgYnkKKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24g MyBvZiB0aGUgTGljZW5zZSwgb3IKKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv bi4KKworIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3 aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv cHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisjIGFsb25nIHdpdGggdGhpcyBw cm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorCit1 c2Ugc3RyaWN0OwordXNlIHdhcm5pbmdzOworCit1c2UgRmlsZTo6VGVtcDsKK3VzZSBGaWxlOjpG aW5kOworCitvdXIgJE1FID0gJDAgfHwgIjw/Pz8+IjsKKworbXkgJGRpcjsKKworc3ViIHNraXBf dGVzdCgkKQoreworICB3YXJuICIkTUU6IHNraXBwaW5nIHRlc3Q6IHVuc2FmZSB3b3JraW5nIGRp cmVjdG9yeSBuYW1lOiAnJF9bMF0nXG4iOworICBleGl0IDc3OworfQorCitzdWIgY2htb2RfMQor eworICBteSAkbmFtZSA9ICRfOworCisgICMgU2tpcCBzeW1saW5rcyBhbmQgbm9uLWRpcmVjdG9y aWVzLgorICAtbCAkbmFtZSB8fCAhLWQgXworICAgIGFuZCByZXR1cm47CisKKyAgY2htb2QgMDcw MCwgJG5hbWU7Cit9CisKK3N1YiBjaG1vZF90cmVlCit7CisgICMgV2hlbiB0ZW1wZGlyIGZhaWxz LCBpdCBjcm9ha3MsIHdoaWNoIGxlYXZlcyAkZGlyIHVuZGVmaW5lZC4KKyAgZGVmaW5lZCAkZGly CisgICAgb3IgcmV0dXJuOworCisgICMgUGVyZm9ybSB0aGUgZXF1aXZhbGVudCBvZiBmaW5kICIk ZGlyIiAtdHlwZSBkIC1wcmludDB8eGFyZ3MgLTAgY2htb2QgLVIgNzAwLgorICBteSAkb3B0aW9u cyA9IHt1bnRhaW50ID0+IDEsIHdhbnRlZCA9PiBcJmNobW9kXzF9OworICBmaW5kICgkb3B0aW9u cywgJGRpcik7Cit9CisKK3N1YiBpbXBvcnQgeworICBteSAkcHJlZml4ID0gJF9bMV07CisKKyAg JE1FIGVxICctJyAmJiBkZWZpbmVkICRwcmVmaXgKKyAgICBhbmQgJE1FID0gJHByZWZpeDsKKwor ICBpZiAoJHByZWZpeCAhfiAvXlwvLykKKyAgICB7CisgICAgICBldmFsICd1c2UgQ3dkJzsKKyAg ICAgIG15ICRjd2QgPSAkQCA/ICcuJyA6IEN3ZDo6Z2V0Y3dkKCk7CisgICAgICAkcHJlZml4ID0g IiRjd2QvJHByZWZpeCI7CisgICAgfQorCisgICMgVW50YWludCBmb3IgdGhlIHVwY29taW5nIG1r ZGlyLgorICAkcHJlZml4ID1+IG0hXihbLStcQFx3Li9dKykkIQorICAgIG9yIHNraXBfdGVzdCAk cHJlZml4OworICAkcHJlZml4ID0gJDE7CisKKyAgbXkgJG9yaWdpbmFsX3BpZCA9ICQkOworCisg IG15ICRvbl9zaWdfcmVtb3ZlX3RtcGRpciA9IHN1YiB7CisgICAgbXkgKCRzaWcpID0gQF87Cisg ICAgaWYgKCQkID09ICRvcmlnaW5hbF9waWQgYW5kIGRlZmluZWQgJGRpcikKKyAgICAgIHsKKyAg ICAgICAgY2htb2RfdHJlZTsKKyAgICAgICAgIyBPbGRlciB2ZXJzaW9ucyBvZiBGaWxlOjpUZW1w IGxhY2sgdGhpcyBtZXRob2QuCisgICAgICAgIGV4aXN0cyAmRmlsZTo6VGVtcDo6Y2xlYW51cAor ICAgICAgICAgIGFuZCAmRmlsZTo6VGVtcDo6Y2xlYW51cDsKKyAgICAgIH0KKyAgICAkU0lHeyRz aWd9ID0gJ0RFRkFVTFQnOworICAgIGtpbGwgJHNpZywgJCQ7CisgIH07CisKKyAgZm9yZWFjaCBt eSAkc2lnIChxdyAoSU5UIFRFUk0gSFVQKSkKKyAgICB7CisgICAgICAkU0lHeyRzaWd9ID0gJG9u X3NpZ19yZW1vdmVfdG1wZGlyOworICAgIH0KKworICAkZGlyID0gRmlsZTo6VGVtcDo6dGVtcGRp cigiJHByZWZpeC50bXAtWFhYWCIsIENMRUFOVVAgPT4gMSApOworICBjaGRpciAkZGlyCisgICAg b3Igd2FybiAiJE1FOiBmYWlsZWQgdG8gY2hkaXIgdG8gJGRpcjogJCFcbiI7Cit9CisKK0VORCB7 CisgICMgTW92ZSBjd2Qgb3V0IG9mIHRoZSBkaXJlY3Rvcnkgd2UncmUgYWJvdXQgdG8gcmVtb3Zl LgorICAjIFRoaXMgaXMgcmVxdWlyZWQgb24gc29tZSBzeXN0ZW1zLCBhbmQgYnkgc29tZSB2ZXJz aW9ucyBvZiBGaWxlOjpUZW1wLgorICBjaGRpciAnLi4nCisgICAgb3Igd2FybiAiJE1FOiBmYWls ZWQgdG8gY2hkaXIgdG8gLi4gZnJvbSAkZGlyOiAkIVxuIjsKKworICBteSAkc2F2ZWRfZXJybm8g PSAkPzsKKyAgY2htb2RfdHJlZTsKKyAgJD8gPSAkc2F2ZWRfZXJybm87Cit9CisKKzE7CmRpZmYg LS1naXQgYS90ZXN0cy9NYWtlZmlsZS5hbSBiL3Rlc3RzL01ha2VmaWxlLmFtCmluZGV4IGIyOTMy OGIuLjAzY2ZkYmIgMTAwNjQ0Ci0tLSBhL3Rlc3RzL01ha2VmaWxlLmFtCisrKyBiL3Rlc3RzL01h a2VmaWxlLmFtCkBAIC0xNCw2ICsxNCwyNiBAQAogIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg YSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQogIyBhbG9uZyB3aXRoIHRo aXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4K CitURVNUX0VYVEVOU0lPTlMgPSAuc2ggLnBsCisKK2lmIEhBVkVfUEVSTAorVEVTVFNVSVRFX1BF UkwgPSAkKFBFUkwpCitlbHNlCitURVNUU1VJVEVfUEVSTCA9ICQoU0hFTEwpICQoc3JjZGlyKS9u by1wZXJsCitlbmRpZgorCisjIE9wdGlvbnMgcGFzc2VkIHRvIHRoZSBwZXJsIGludm9jYXRpb25z IHJ1bm5pbmcgdGhlIHBlcmwgdGVzdCBzY3JpcHRzLgorVEVTVFNVSVRFX1BFUkxfT1BUSU9OUyA9 IC13IC1JJChzcmNkaXIpIC1NQ29yZXV0aWxzIC1NQ3VTa2lwCisjICckZicgaXMgc2V0IGJ5IHRo ZSBBdXRvbWFrZS1nZW5lcmF0ZWQgdGVzdCBoYXJuZXNzIHRvIHRoZSBwYXRoIG9mIHRoZQorIyBj dXJyZW50IHRlc3Qgc2NyaXB0IHN0cmlwcGVkIG9mIFZQQVRIIGNvbXBvbmVudHMsIGFuZCBpcyB1 c2VkIGJ5IHRoZQorIyBDdVRtcGRpciBtb2R1bGUgdG8gZGV0ZXJtaW5lIHRoZSBuYW1lIG9mIHRo ZSB0ZW1wb3JhcnkgZmlsZXMgdG8gYmUKKyMgdXNlZC4gIE5vdGUgdGhhdCAkZiBpcyBhIHNoZWxs IHZhcmlhYmxlLCBub3QgYSBtYWtlIG1hY3JvLCBzbyB0aGUgdXNlCisjIG9mICckJGYnIGJlbG93 IGlzIGNvcnJlY3QsIGFuZCBub3QgYSB0eXBvLgorVEVTVFNVSVRFX1BFUkxfT1BUSU9OUyArPSAt TSJDdVRtcGRpciBxdygkJGYpIgorCitTSF9MT0dfQ09NUElMRVIgPSAkKFNIRUxMKQorUExfTE9H X0NPTVBJTEVSID0gJChURVNUU1VJVEVfUEVSTCkgJChURVNUU1VJVEVfUEVSTF9PUFRJT05TKQor CiBjaGVja19QUk9HUkFNUyA9IGdldC1tYi1jdXItbWF4IGRmYS1tYXRjaC1hdXgKIEFNX0NQUEZM QUdTID0gLUkkKHRvcF9idWlsZGRpcikvbGliIC1JJCh0b3Bfc3JjZGlyKS9saWIgXAogICAtSSQo dG9wX3NyY2Rpcikvc3JjCkBAIC0xNTIsNiArMTcyLDkgQEAgRVhUUkFfRElTVCA9CQkJCQlcCiAg ICQoVEVTVFMpCQkJCQlcCiAgIGJyZS5hd2sJCQkJCVwKICAgYnJlLnRlc3RzCQkJCQlcCisgIENv cmV1dGlscy5wbQkJCQkJXAorICBDdVNraXAucG0JCQkJCVwKKyAgQ3VUbXBkaXIucG0JCQkJCVwK ICAgZW52dmFyLWNoZWNrCQkJCQlcCiAgIGVyZS5hd2sJCQkJCVwKICAgZXJlLnRlc3RzCQkJCQlc CkBAIC0xNTksNiArMTgyLDcgQEAgRVhUUkFfRElTVCA9CQkJCQlcCiAgIGluaXQuc2gJCQkJCVwK ICAga2hhZGFmeS5saW5lcwkJCQkJXAogICBraGFkYWZ5LnJlZ2V4cAkJCQlcCisgIG5vLXBlcmwJ CQkJCVwKICAgc3BlbmNlcjEuYXdrCQkJCQlcCiAgIHNwZW5jZXIxLnRlc3RzCQkJCVwKICAgc3Bl bmNlcjEtbG9jYWxlLmF3awpkaWZmIC0tZ2l0IGEvdGVzdHMvbm8tcGVybCBiL3Rlc3RzL25vLXBl cmwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTU2YTgyNgotLS0gL2Rldi9u dWxsCisrKyBiL3Rlc3RzL25vLXBlcmwKQEAgLTAsMCArMSw2IEBACisjISAvYmluL3NoCisjIFBl cmwgaXMgbm90IGF2YWlsYWJsZSwgdGhlIHRlc3Qgc2hvdWxkIGJlIGNvbnNpZGVyZWQgc2tpcHBl ZC4KKyMgRkQgOSBzaG91bGQgaGF2ZSBiZWVuIG9wZW5lZCBieSB0aGUgdGVzdCBzdWl0ZSBoYXJu ZXNzLCBwb2ludGluZworIyB0byB0aGUgb3JpZ2luYWwgc3RkZXJyICh1c3VhbGx5LCB0aGUgdXNl cidzIHRlcm1pbmFsKS4KK2VjaG8gInRlc3Qgc2tpcHBlZDogbm8gdXNhYmxlIHZlcnNpb24gb2Yg UGVybCBmb3VuZCIgPiY5CitleGl0IDc3Ci0tIAoyLjguMC1yYzIKCgpGcm9tIDA4MzE1ODA1MWNl NmFiMDU4ZTA4MjIzYzE5YjUyZGUyYWRiYTlmNGIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IEppbSBNZXllcmluZyA8bWV5ZXJpbmdAZmIuY29tPgpEYXRlOiBTYXQsIDE2IEp1bCAyMDE2 IDEwOjUxOjMxIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAyLzJdIGdyZXA6IHByaW50ICJmaWxlbmFt ZTpsaW5lbm86IiBpbiBpbnZhbGlkLXJlZ2V4CiBkaWFnbm9zdGljCk1JTUUtVmVyc2lvbjogMS4w CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVy LUVuY29kaW5nOiA4Yml0CgpEZXRlcm1pbmluZyB0aGUgZmlsZSBuYW1lIGFuZCBsaW5lIG51bWJl ciBpcyBhIGxpdHRsZSB0cmlja3kgYmVjYXVzZQpvZiB0aGUgd2F5IHRoZSByZWd1bGFyIGV4cHJl c3Npb25zIGFyZSBhbGwgY29uY2F0ZW5hdGVkIG9udG8gYSBuZXdsaW5lLQpzZXBhcmF0ZWQgbGlz dC4gIEJ5IHRoZSB0aW1lIGdyZXAgd291bGQgY29tcGlsaW5nIHJlZ3VsYXIgZXhwcmVzc2lvbnMs CnRoZSA8ZmlsZW5hbWUsbGluZW5vPiBvcmlnaW4gb2YgZWFjaCByZWdleHAgd2FzIG5vIGxvbmdl ciBhdmFpbGFibGUuClRoaXMgcGF0Y2ggYWRkcyBhIGxpc3Qgb2YgZmlsZW5hbWUsZmlyc3RfbGlu ZW5vIHBhaXJzLCBvbmUgcGVyIGlucHV0CnNvdXJjZSwgYnkgd2hpY2ggd2UgY2FuIHRoZW4gbWFw IHRoZSBvcmRpbmFsIHJlZ2V4cCBudW1iZXIgdG8gYQpmaWxlbmFtZSxsaW5lbm8gcGFpciBmb3Ig dGhlIGRpYWdub3N0aWMuCgoqIHNyYy9kZmFzZWFyY2guYyAoR0VBY29tcGlsZSk6IFdoZW4gZGlh Z25vc2luZyBhbiBpbnZhbGlkIHJlZ2V4cApzcGVjaWZpZWQgdmlhIC1mIEZJTEUsIGluY2x1ZGUg dGhlICJGSUxFTkFNRTpMSU5FTk86ICIgcHJlZml4LgpBbHNvLCB3aGVuIHRoZXJlIGFyZSB0d28g b3IgbW9yZSBsaW5lcyB3aXRoIGNvbXBpbGF0aW9uIGZhaWx1cmVzLApkaWFnbm9zZSBhbGwgb2Yg dGhlbSwgcmF0aGVyIHRoYW4gc3RvcHBpbmcgYWZ0ZXIgdGhlIGZpcnN0LgoqIHNyYy9ncmVwLmgg KHBhdHRlcm5fZmlsZV9uYW1lKTogRGVjbGFyZSBpdC4KKiBzcmMvZ3JlcC5jOiAoc3RydWN0IEZM X3BhaXIpOiBEZWZpbmUgdHlwZS4KKGZsX3BhaXIsIG5fZmxfcGFpcl9zbG90cywgbl9wYXR0ZXJu X2ZpbGVzLCBwYXRmaWxlX2xpbmVubyk6CkRlZmluZSBnbG9iYWxzLgooZmxfYWRkLCBwYXR0ZXJu X2ZpbGVfbmFtZSk6IERlZmluZSBmdW5jdGlvbnMuCihtYWluKTogQ2FsbCBmbF9hZGQgZm9yIGVh Y2ggdHlwZSBvZiB0aGUgZm9sbG93aW5nOiAtZSBhcmd1bWVudCwKLWYgYXJndW1lbnQsIGNvbW1h bmQtbGluZS1zcGVjaWZpZWQgKHdpdGhvdXQgLWUpIHJlZ2V4cC4KKiB0ZXN0cy9maWxlbmFtZS1s aW5lbm8ucGw6IE5ldyBmaWxlLgoqIHRlc3RzL01ha2VmaWxlLmFtIChURVNUUyk6IEFkZCBpdC4K KiBORVdTIChJbXByb3ZlbWVudHMpOiBNZW50aW9uIHRoaXMuCkluaXRpYWxseSByZXBvcnRlZCBi eSBHdW5uYXIgV29sZiBpbiBodHRwczovL2J1Z3MuZGViaWFuLm9yZy81MjUyMTQKRm9yd2FyZGVk IHRvIGdyZXAncyBidWcgbGlzdCBieSBTYW50aWFnbyBSdWFubyBSaW5jw7NuIGFzCmh0dHA6Ly9k ZWJidWdzLmdudS5vcmcvMjM5NjUKLS0tCiBORVdTICAgICAgICAgICAgICAgICAgICAgfCAgNSAr LS0KIHNyYy9kZmFzZWFyY2guYyAgICAgICAgICB8IDE2ICsrKysrKysrKy0KIHNyYy9ncmVwLmMg ICAgICAgICAgICAgICB8IDgyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKwogc3JjL2dyZXAuaCAgICAgICAgICAgICAgIHwgIDEgKwogdGVzdHMvTWFrZWZp bGUuYW0gICAgICAgIHwgIDEgKwogdGVzdHMvZmlsZW5hbWUtbGluZW5vLnBsIHwgNjEgKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDYgZmlsZXMgY2hhbmdlZCwgMTYzIGluc2Vy dGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA3NTUgdGVzdHMvZmlsZW5h bWUtbGluZW5vLnBsCgpkaWZmIC0tZ2l0IGEvTkVXUyBiL05FV1MKaW5kZXggYzNlNjAwMC4uNDRi NmZkZiAxMDA2NDQKLS0tIGEvTkVXUworKysgYi9ORVdTCkBAIC02LDEyICs2LDEzIEBAIEdOVSBn cmVwIE5FV1MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKi0gb3V0bGluZSAt Ki0KCiAgIGdyZXAgY2FuIGJlIG11Y2ggZmFzdGVyIG5vdyB3aGVuIHN0YW5kYXJkIG91dHB1dCBp cyAvZGV2L251bGwuCgotKiogSW1wcm92ZW1lbnRzCi0KICAgZ3JlcCAtRiBpcyBub3cgdHlwaWNh bGx5IG11Y2ggZmFzdGVyIHdoZW4gbWFueSBwYXR0ZXJucyBhcmUgZ2l2ZW4sCiAgIGFzIGl0IG5v dyB1c2VzIHRoZSBBaG8tQ29yYXNpY2sgYWxnb3JpdGhtIGluc3RlYWQgb2YgdGhlCiAgIENvbW1l bnR6LVdhbHRlciBhbGdvcml0aG0gaW4gdGhhdCBjYXNlLgoKKyAgZ3JlcCBub3cgcHJpbnRzIGEg IkZJTEVOQU1FOkxJTkVOTzogIiBwcmVmaXggd2hlbiBkaWFnbm9zaW5nIGFuCisgIGludmFsaWQg cmVndWxhciBleHByZXNzaW9uIHRoYXQgd2FzIHJlYWQgZnJvbSBhbiAnLWYnLXNwZWNpZmllZCBm aWxlLgorCgogKiBOb3Rld29ydGh5IGNoYW5nZXMgaW4gcmVsZWFzZSAyLjI1ICgyMDE2LTA0LTIx KSBbc3RhYmxlXQoKZGlmZiAtLWdpdCBhL3NyYy9kZmFzZWFyY2guYyBiL3NyYy9kZmFzZWFyY2gu YwppbmRleCA4MDUyZWYwLi45MDk2Nzg1IDEwMDY0NAotLS0gYS9zcmMvZGZhc2VhcmNoLmMKKysr IGIvc3JjL2RmYXNlYXJjaC5jCkBAIC0xMzUsNiArMTM1LDcgQEAgR0VBY29tcGlsZSAoY2hhciBj b25zdCAqcGF0dGVybiwgc2l6ZV90IHNpemUsIHJlZ19zeW50YXhfdCBzeW50YXhfYml0cykKICAg ICAgdGhpcyBzaG91bGQgYmUgYSBzeW50YXggZXJyb3IuICBUaGUgc2FtZSBmb3IgYmFja3JlZiwg d2hlcmUgdGhlCiAgICAgIGJhY2tyZWYgc2hvdWxkIGJlIGxvY2FsIHRvIGVhY2ggcGF0dGVybi4g ICovCiAgIGNoYXIgY29uc3QgKnAgPSBwYXR0ZXJuOworICBib29sIGNvbXBpbGF0aW9uX2ZhaWxl ZCA9IGZhbHNlOwogICBkbwogICAgIHsKICAgICAgIHNpemVfdCBsZW47CkBAIC0xNTcsMTIgKzE1 OCwyNSBAQCBHRUFjb21waWxlIChjaGFyIGNvbnN0ICpwYXR0ZXJuLCBzaXplX3Qgc2l6ZSwgcmVn X3N5bnRheF90IHN5bnRheF9iaXRzKQogICAgICAgY2hhciBjb25zdCAqZXJyID0gcmVfY29tcGls ZV9wYXR0ZXJuIChwLCBsZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICYocGF0dGVybnNbcGNvdW50XS5yZWdleGJ1ZikpOwogICAgICAgaWYgKGVycikKLSAg ICAgICAgZXJyb3IgKEVYSVRfVFJPVUJMRSwgMCwgIiVzIiwgZXJyKTsKKyAgICAgICAgeworICAg ICAgICAgIC8qIFdpdGggcGF0dGVybnMgc3BlY2lmaWVkIG9ubHkgb24gdGhlIGNvbW1hbmQgbGlu ZSwgZW1pdCB0aGUgYmFyZQorICAgICAgICAgICAgIGRpYWdub3N0aWMuICBPdGhlcndpc2UsIGlu Y2x1ZGUgYSBmaWxlbmFtZTpsaW5lbm86IHByZWZpeC4gICovCisgICAgICAgICAgc2l6ZV90IGxp bmVubzsKKyAgICAgICAgICBjaGFyIGNvbnN0ICpwYXRfZmlsZW5hbWUgPSBwYXR0ZXJuX2ZpbGVf bmFtZSAocGNvdW50ICsgMSwgJmxpbmVubyk7CisgICAgICAgICAgaWYgKCpwYXRfZmlsZW5hbWUg PT0gJ1wwJykKKyAgICAgICAgICAgIGVycm9yICgwLCAwLCAiJXMiLCBlcnIpOworICAgICAgICAg IGVsc2UKKyAgICAgICAgICAgIGVycm9yICgwLCAwLCAiJXM6JXp1OiAlcyIsIHBhdF9maWxlbmFt ZSwgbGluZW5vLCBlcnIpOworICAgICAgICAgIGNvbXBpbGF0aW9uX2ZhaWxlZCA9IHRydWU7Cisg ICAgICAgIH0KICAgICAgIHBjb3VudCsrOwogICAgICAgcCA9IHNlcDsKICAgICB9CiAgIHdoaWxl IChwKTsKCisgIGlmIChjb21waWxhdGlvbl9mYWlsZWQpCisgICAgZXhpdCAoRVhJVF9UUk9VQkxF KTsKKwogICAvKiBJbiB0aGUgbWF0Y2hfd29yZHMgYW5kIG1hdGNoX2xpbmVzIGNhc2VzLCB3ZSB1 c2UgYSBkaWZmZXJlbnQgcGF0dGVybgogICAgICBmb3IgdGhlIERGQSBtYXRjaGVyIHRoYXQgd2ls bCBxdWlja2x5IHRocm93IG91dCBjYXNlcyB0aGF0IHdvbid0IHdvcmsuCiAgICAgIFRoZW4gaWYg REZBIHN1Y2NlZWRzIHdlIGRvIHNvbWUgaGFpcnkgc3R1ZmYgdXNpbmcgdGhlIHJlZ2V4IG1hdGNo ZXIKZGlmZiAtLWdpdCBhL3NyYy9ncmVwLmMgYi9zcmMvZ3JlcC5jCmluZGV4IDMwMmU0ZDcuLmE4 MmRhNjEgMTAwNjQ0Ci0tLSBhL3NyYy9ncmVwLmMKKysrIGIvc3JjL2dyZXAuYwpAQCAtODEsNiAr ODEsODUgQEAgc3RhdGljIGJvb2wgb25seV9tYXRjaGluZzsKIC8qIElmIG5vbnplcm8sIG1ha2Ug c3VyZSBmaXJzdCBjb250ZW50IGNoYXIgaW4gYSBsaW5lIGlzIG9uIGEgdGFiIHN0b3AuICovCiBz dGF0aWMgYm9vbCBhbGlnbl90YWJzOwoKKy8qIFNlZSBiZWxvdyAqLworc3RydWN0IEZMX3BhaXIK KyAgeworICAgIGNoYXIgY29uc3QgKmZpbGVuYW1lOworICAgIHNpemVfdCBsaW5lbm87CisgIH07 CisKKy8qIEEgbGlzdCBvZiBsaW5lbm8sZmlsZW5hbWUgcGFpcnMgY29ycmVzcG9uZGluZyB0byAt ZiBGSUxFTkFNRQorICAgYXJndW1lbnRzLiBTaW5jZSB3ZSBzdG9yZSB0aGUgY29uY2F0ZW5hdGlv biBvZiBhbGwgcGF0dGVybnMgaW4KKyAgIGEgc2luZ2xlIGFycmF5LCBLRVlTLCBiZSB0aGV5IGZy b20gdGhlIGNvbW1hbmQgbGluZSB2aWEgIi1lIFBBVCIKKyAgIG9yIHJlYWQgZnJvbSBvbmUgb3Ig bW9yZSAtZi1zcGVjaWZpZWQgRklMRU5BTUVTLiAgR2l2ZW4gdGhpcworICAgaW52b2NhdGlvbiwg Z3JlcCAtZiA8KHNlcSA1KSAtZiA8KHNlcSAyKSAtZiA8KHNlcSAzKSBGSUxFLCB0aGVyZQorICAg d2lsbCBiZSB0aHJlZSBlbnRyaWVzIGluIExGX1BBSVI6IHsxLCB4fSB7NiwgeX0gezgsIHp9LCB3 aGVyZQorICAgeCwgeSBhbmQgeiBhcmUganVzdCBwbGFjZS1ob2xkZXJzIGZvciBzaGVsbC1nZW5l cmF0ZWQgbmFtZXMuICAqLworc3RhdGljIHN0cnVjdCBGTF9wYWlyICpmbF9wYWlyOworc3RhdGlj IHNpemVfdCBuX2ZsX3BhaXJfc2xvdHM7CisvKiBDb3VudCBub3Qgb25seSAtZi1zcGVjaWZpZWQg ZmlsZXMsIGJ1dCBhbHNvIGluZGl2aWR1YWwgLWUgb3BlcmFuZHMKKyAgIGFuZCBhbnkgY29tbWFu ZC1saW5lIGFyZ3VtZW50IHRoYXQgc2VydmVzIGFzIGEgcmVndWxhciBleHByZXNzaW9uLiAgKi8K K3N0YXRpYyBzaXplX3Qgbl9wYXR0ZXJuX2ZpbGVzOworCisvKiBHaXZlbiB0aGUgY29uY2F0ZW5h dGlvbiBvZiBhbGwgcGF0dGVybnMsIG9uZSBwZXIgbGluZSwgYmUgdGhleQorICAgc3BlY2lmaWVk IHZpYSAtZSwgYSBsb25lIGNvbW1hbmQtbGluZSBhcmd1bWVudCBvciAtZiwgdGhpcyBpcyB0aGUK KyAgIG51bWJlciBvZiB0aGUgZmlyc3QgbGluZSBvZiBlYWNoIGVudGl0eSwgaW4gdGhhdCBjb25j YXRlbmF0aW9uLgorICAgSXQgaXMgYWR2YW5jZWQgYnkgZmxfYWRkIGFuZCwgd2hlbiBuZWVkZWQs IHVzZWQgaW4gcGF0dGVybl9maWxlX25hbWUKKyAgIHRvIGRlcml2ZSBhIGZpbGUtcmVsYXRpdmUg bGluZSBudW1iZXIuICAqLworc3RhdGljIHVpbnRtYXhfdCBwYXRmaWxlX2xpbmVubyA9IDE7CisK Ky8qIFJldHVybiB0aGUgbnVtYmVyIG9mIG5ld2xpbmUgYnl0ZXMgaW4gQlVGIHN0YXJ0aW5nIGF0 IG9mZnNldCBCRUcKKyAgIGFuZCB1cCB0byBhbmQgbm90IGluY2x1ZGluZyBvZmZzZXQgRU5ELiAg Ki8KK3N0YXRpYyBzaXplX3QgX0dMX0FUVFJJQlVURV9QVVJFCitjb3VudF9ubF9ieXRlcyAoY2hh ciBjb25zdCAqYnVmLCBzaXplX3QgYmVnLCBzaXplX3QgZW5kKQoreworICBjaGFyIGNvbnN0ICpw ID0gYnVmICsgYmVnOworICBjaGFyIGNvbnN0ICplbmRfcCA9IGJ1ZiArIGVuZDsKKyAgdWludG1h eF90IG4gPSAwOworICB3aGlsZSAodHJ1ZSkKKyAgICB7CisgICAgICBwID0gbWVtY2hyIChwLCAn XG4nLCBlbmRfcCAtIHApOworICAgICAgaWYgKCFwKQorICAgICAgICBicmVhazsKKyAgICAgIHAr KzsKKyAgICAgIG4rKzsKKyAgICB9CisgIHJldHVybiBuOworfQorCisvKiBBcHBlbmQgYSBGSUxF TkFNRSxsaW5lLW51bWJlciBwYWlyIHRvIEZMX1BBSVIuICBUaGUgbGluZSBudW1iZXIgd2Ugc2F2 ZQorICAgd2l0aCBGSUxFTkFNRSBpcyB0aGUgaW5pdGlhbCB2YWx1ZSBvZiB0aGUgZ2xvYmFsIFBB VEZJTEVfTElORU5PLgorICAgUEFURklMRV9MSU5FTk8gaXMgdGhlbiBpbmNyZW1lbnRlZCBieSB0 aGUgbnVtYmVyIG9mIG5ld2xpbmVzIGluIEJVRgorICAgZnJvbSBvZmZzZXQgQkVHIHVwIHRvIGJ1 dCBub3QgaW5jbHVkaW5nIG9mZnNldCBFTkQuICAqLworc3RhdGljIHZvaWQKK2ZsX2FkZCAoY2hh ciBjb25zdCAqYnVmLCBzaXplX3QgYmVnLCBzaXplX3QgZW5kLCBjaGFyIGNvbnN0ICpmaWxlbmFt ZSkKK3sKKyAgaWYgKG5fZmxfcGFpcl9zbG90cyA8PSBuX3BhdHRlcm5fZmlsZXMpCisgICAgZmxf cGFpciA9IHgybnJlYWxsb2MgKGZsX3BhaXIsICZuX2ZsX3BhaXJfc2xvdHMsIHNpemVvZiAqZmxf cGFpcik7CisKKyAgZmxfcGFpcltuX3BhdHRlcm5fZmlsZXNdLmxpbmVubyA9IHBhdGZpbGVfbGlu ZW5vOworICBmbF9wYWlyW25fcGF0dGVybl9maWxlc10uZmlsZW5hbWUgPSBmaWxlbmFtZTsKKyAg bl9wYXR0ZXJuX2ZpbGVzKys7CisgIHBhdGZpbGVfbGluZW5vICs9IGNvdW50X25sX2J5dGVzIChi dWYsIGJlZywgZW5kKTsKK30KKworLyogTWFwIHRoZSBsaW5lIG51bWJlciwgTElORU5PLCBvZiBv bmUgb2YgdGhlIGlucHV0IHBhdHRlcm5zIHRvIHRoZQorICAgbmFtZSBvZiB0aGUgZmlsZSBmcm9t IHdoaWNoIGl0IGNhbWUuICBJZiBpdCB3YXMgcmVhZCBmcm9tIHN0ZGluCisgICBvciBpZiBpdCB3 YXMgc3BlY2lmaWVkIG9uIHRoZSBjb21tYW5kIGxpbmUsIHJldHVybiAiLSIuICAqLworY2hhciBj b25zdCAqIF9HTF9BVFRSSUJVVEVfUFVSRQorcGF0dGVybl9maWxlX25hbWUgKHNpemVfdCBsaW5l bm8sIHNpemVfdCAqbmV3X2xpbmVubykKK3sKKyAgc2l6ZV90IGk7CisgIGZvciAoaSA9IDE7IGkg PCBuX3BhdHRlcm5fZmlsZXM7IGkrKykKKyAgICB7CisgICAgICBpZiAobGluZW5vIDwgZmxfcGFp cltpXS5saW5lbm8pCisgICAgICAgIGJyZWFrOworICAgIH0KKworICAqbmV3X2xpbmVubyA9IGxp bmVubyAtIGZsX3BhaXJbaSAtIDFdLmxpbmVubyArIDE7CisgIHJldHVybiBmbF9wYWlyW2kgLSAx XS5maWxlbmFtZTsKK30KKwogI2lmIEhBVkVfQVNBTgogLyogUmVjb3JkIHRoZSBzdGFydGluZyBh ZGRyZXNzIGFuZCBsZW5ndGggb2YgdGhlIHNvbGUgcG9pc29uZWQgcmVnaW9uLAogICAgc28gdGhh dCB3ZSBjYW4gdW5wb2lzb24gaXQgbGF0ZXIsIGp1c3QgYmVmb3JlIGVhY2ggZm9sbG93aW5nIHJl YWQuICAqLwpAQCAtMjM4MSw2ICsyNDYwLDcgQEAgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2 KQogICAgICAgICBzdHJjcHkgKCZrZXlzW2tleWNjXSwgb3B0YXJnKTsKICAgICAgICAga2V5Y2Mg Kz0gY2M7CiAgICAgICAgIGtleXNba2V5Y2MrK10gPSAnXG4nOworICAgICAgICBmbF9hZGQgKGtl eXMsIGtleWNjIC0gY2MgLSAxLCBrZXljYywgIiIpOwogICAgICAgICBicmVhazsKCiAgICAgICBj YXNlICdmJzoKQEAgLTI0MDUsNiArMjQ4NSw3IEBAIG1haW4gKGludCBhcmdjLCBjaGFyICoqYXJn dikKICAgICAgICAgLyogQXBwZW5kIGZpbmFsIG5ld2xpbmUgaWYgZmlsZSBlbmRlZCBpbiBub24t bmV3bGluZS4gKi8KICAgICAgICAgaWYgKG9sZGNjICE9IGtleWNjICYmIGtleXNba2V5Y2MgLSAx XSAhPSAnXG4nKQogICAgICAgICAgIGtleXNba2V5Y2MrK10gPSAnXG4nOworICAgICAgICBmbF9h ZGQgKGtleXMsIG9sZGNjLCBrZXljYywgeHN0cmR1cCAob3B0YXJnKSk7CiAgICAgICAgIGJyZWFr OwoKICAgICAgIGNhc2UgJ2gnOgpAQCAtMjY0NSw2ICsyNzI2LDcgQEAgbWFpbiAoaW50IGFyZ2Ms IGNoYXIgKiphcmd2KQogICAgICAgLyogQSBjb3B5IG11c3QgYmUgbWFkZSBpbiBjYXNlIG9mIGFu IHhyZWFsbG9jKCkgb3IgZnJlZSgpIGxhdGVyLiAgKi8KICAgICAgIGtleWNjID0gc3RybGVuIChh cmd2W29wdGluZF0pOwogICAgICAga2V5cyA9IHhtZW1kdXAgKGFyZ3Zbb3B0aW5kKytdLCBrZXlj YyArIDEpOworICAgICAgZmxfYWRkIChrZXlzLCAwLCBrZXljYywgIiIpOwogICAgIH0KICAgZWxz ZQogICAgIHVzYWdlIChFWElUX1RST1VCTEUpOwpkaWZmIC0tZ2l0IGEvc3JjL2dyZXAuaCBiL3Ny Yy9ncmVwLmgKaW5kZXggNzViN2VmNy4uYjQ1OTkyZiAxMDA2NDQKLS0tIGEvc3JjL2dyZXAuaAor KysgYi9zcmMvZ3JlcC5oCkBAIC0zMCw1ICszMCw2IEBAIGV4dGVybiBib29sIG1hdGNoX2xpbmVz OwkvKiAteCAqLwogZXh0ZXJuIGNoYXIgZW9sYnl0ZTsJCS8qIC16ICovCgogZXh0ZXJuIGJvb2wg YnVmX2hhc19lbmNvZGluZ19lcnJvcnMgKGNoYXIgKiwgc2l6ZV90KTsKK2V4dGVybiBjaGFyIGNv bnN0ICpwYXR0ZXJuX2ZpbGVfbmFtZSAoc2l6ZV90LCBzaXplX3QgKik7CgogI2VuZGlmCmRpZmYg LS1naXQgYS90ZXN0cy9NYWtlZmlsZS5hbSBiL3Rlc3RzL01ha2VmaWxlLmFtCmluZGV4IDAzY2Zk YmIuLjc3NTAyY2EgMTAwNjQ0Ci0tLSBhL3Rlc3RzL01ha2VmaWxlLmFtCisrKyBiL3Rlc3RzL01h a2VmaWxlLmFtCkBAIC05OSw2ICs5OSw3IEBAIFRFU1RTID0JCQkJCQlcCiAgIGZlZG9yYQkJCQkJ XAogICBmZ3JlcC1pbmZsb29wCQkJCQlcCiAgIGZpbGUJCQkJCQlcCisgIGZpbGVuYW1lLWxpbmVu by5wbAkJCQlcCiAgIGZtYnRlc3QJCQkJCVwKICAgZm9hZDEJCQkJCQlcCiAgIGdyZXAtZGV2LW51 bGwJCQkJCVwKZGlmZiAtLWdpdCBhL3Rlc3RzL2ZpbGVuYW1lLWxpbmVuby5wbCBiL3Rlc3RzL2Zp bGVuYW1lLWxpbmVuby5wbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lZGJh Mjg2Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvZmlsZW5hbWUtbGluZW5vLnBsCkBAIC0wLDAg KzEsNjEgQEAKKyMhL3Vzci9iaW4vcGVybAorIyBQcmlvciB0byAyLjI2LCBhbiBpbnZhbGlkIHJl Z2V4cCBpbiBhIC1mLXNwZWNpZmllZCBmaWxlIHdvdWxkIGVsaWNpdAorIyBhIGRpYWdub3N0aWMg bGlrZSAiVW5tYXRjaGVkIFsgb3IgW14iLCB3aXRoIG5vIGluZGljYXRpb24gb2YgdGhlCisjIGZp bGUgb3IgbGluZSBudW1iZXIgZnJvbSB3aGljaCB0aGUgb2ZmZW5kaW5nIHJlZ3VsYXIgZXhwcmVz c2lvbiBjYW1lLgorIyBXaXRoIDIuMjYsIG5vdywgZWFjaCBzdWNoIGRpYWdub3N0aWMgaGFzIGEg IkZJTEVOQU1FOkxJTkVOTzogIiBwcmVmaXguCisKKyMgQ29weXJpZ2h0IChDKSAyMDE2IEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorCisjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3 YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisjIGl0IHVuZGVyIHRo ZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5 CisjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhl IExpY2Vuc2UsIG9yCisjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyMg VGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1 c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs aWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y IG1vcmUgZGV0YWlscy4KKworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4g IElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKwordXNlIHN0cmlj dDsKKworKG15ICRwcm9ncmFtX25hbWUgPSAkMCkgPX4gc3wuKi98fDsKKworbXkgJHByb2cgPSAn Z3JlcCc7CisKKyMgVHVybiBvZmYgbG9jYWxpemF0aW9uIG9mIGV4ZWN1dGFibGUncyBvdXRwdXQu CitARU5We3F3KExBTkdVQUdFIExBTkcgTENfQUxMKX0gPSAoJ0MnKSB4IDM7CisKKyMgVGhlcmUg YXJlIGF0IGxlYXN0IHR3byB2YXJpYW50cyBvZiBvbmUgZGlhZ25vc3RpYzoKKyMgICAtIFVubWF0 Y2hlZCBbLCBbXiwgWzosIFsuLCBvciBbPQorIyAgIC0gVW5tYXRjaGVkIFsgb3IgW14KKyMgVHJh bnNmb3JtIGVhY2ggdG8gdGhpczogIlVubWF0Y2hlZCBbLi4uIgorbXkgJGVycl9zdWJzdCA9IHtF UlJfU1VCU1QgPT4gJ3MvKDogVW5tYXRjaGVkIFxbKS4qLyQxLi4uLyd9OworCitteSBAVGVzdHMg PQorICAoCisgICAjIFNob3cgdGhhdCBncmVwIG5vdyBpbmNsdWRlcyBmaWxlbmFtZTpsaW5lbm8g aW4gdGhlIGRpYWdub3N0aWM6CisgICBbJ2ludmFsaWQtcmUnLCAnLWYgZycsIHtBVVg9PntnPT4i MVxuMlxuM1xuNFtbXG4ifX0sIHtFWElUPT4yfSwKKyAgICAkZXJyX3N1YnN0LAorICAgIHtFUlIg PT4gIiRwcm9nOiBnOjQ6IFVubWF0Y2hlZCBbLi4uXG4ifSwKKyAgIF0sCisKKyAgICMgU2hvdyB0 aGF0IHdpdGggdHdvIG9yIG1vcmUgZXJyb3JzLCBncmVwIG5vdyBwcmludHMgYWxsIGRpYWdub3N0 aWNzOgorICAgWydpbnZhbGlkLXJlMicsICctZiBnIC1mIGgnLCB7RVhJVD0+Mn0sCisgICAge0FV WD0+e2c9PiIxXG4yW1tcbjNcbjRbW1xuIn19LAorICAgIHtBVVg9PntoPT4iXG5cbltbXG4ifX0s CisgICAgJGVycl9zdWJzdCwKKyAgICB7RVJSID0+ICIkcHJvZzogZzoyOiBVbm1hdGNoZWQgWy4u LlxuIgorICAgICAgICAgLiAiJHByb2c6IGc6NDogVW5tYXRjaGVkIFsuLi5cbiIKKyAgICAgICAg IC4gIiRwcm9nOiBoOjM6IFVubWF0Y2hlZCBbLi4uXG4iCisgICAgfSwKKyAgIF0sCisgICk7CisK K215ICRzYXZlX3RlbXBzID0gJEVOVntERUJVR307CitteSAkdmVyYm9zZSA9ICRFTlZ7VkVSQk9T RX07CisKK215ICRmYWlsID0gcnVuX3Rlc3RzICgkcHJvZ3JhbV9uYW1lLCAkcHJvZywgXEBUZXN0 cywgJHNhdmVfdGVtcHMsICR2ZXJib3NlKTsKK2V4aXQgJGZhaWw7Ci0tIAoyLjguMC1yYzIKCg== --001a1145f22acb972305385014a7-- From debbugs-submit-bounces@debbugs.gnu.org Mon Jul 25 14:56:46 2016 Received: (at 23965) by debbugs.gnu.org; 25 Jul 2016 18:56:46 +0000 Received: from localhost ([127.0.0.1]:37184 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bRl3V-0007dL-Qd for submit@debbugs.gnu.org; Mon, 25 Jul 2016 14:56:45 -0400 Received: from mx1.riseup.net ([198.252.153.129]:47086) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bRl3U-0007dD-PG for 23965@debbugs.gnu.org; Mon, 25 Jul 2016 14:56:45 -0400 Received: from cotinga.riseup.net (unknown [10.0.1.164]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client CN "*.riseup.net", Issuer "COMODO RSA Domain Validation Secure Server CA" (verified OK)) by mx1.riseup.net (Postfix) with ESMTPS id C25921A2006; Mon, 25 Jul 2016 18:56:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=riseup.net; s=squak; t=1469473004; bh=xTOuu3Z0KJvgKlkiivRzFpFMVhE88Uqpt9akxzlxVPs=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=SgmnepRE7OPWw3vKQkYuBnoZGHp1H5GkeOgUoVBcR8IGDcEzkRrKtvjmBAXUYQ2XN 4KmLBnJziCtext2AU+IiJxdf1sKEbEdx8kIOZN36HaZY+JiT/DtVPqJ+mYOAjEgBgB x9JVdDPcPFIakKY82fgbmrtoAldlNUiwRiCwI4fE= Received: from [127.0.0.1] (localhost [127.0.0.1]) (Authenticated sender: santiagorr) with ESMTPSA id B8F77400A5 Received: by nomada (sSMTP sendmail emulation); Mon, 25 Jul 2016 20:56:39 +0200 Date: Mon, 25 Jul 2016 20:56:39 +0200 From: Santiago Ruano =?iso-8859-1?Q?Rinc=F3n?= To: Jim Meyering Subject: Re: bug#23965: egrep should report line number when failing to parse a file (with -f) Message-ID: <20160725185639.GC7838@riseup.net> References: <20160713085945.GA16495@riseup.net> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: X-Virus-Scanned: clamav-milter 0.99.2 at mx1.riseup.net X-Virus-Status: Clean X-Spam-Score: -2.0 (--) X-Debbugs-Envelope-To: 23965 Cc: 525214@bugs.debian.org, 23965@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.0 (--) El 23/07/16 a las 09:31, Jim Meyering escribi=C3=B3: > On Wed, Jul 20, 2016 at 2:58 PM, Jim Meyering wrote: > > On Wed, Jul 13, 2016 at 1:59 AM, Santiago Ruano Rinc=C3=B3n > > wrote: =E2=80=A6 > Here are two patches. > The first adds coreutils' perl-based test harness to grep. > The second improves those diagnostics and adds a test using the new harne= ss: Thanks! I will include it in the next grep debian release. Cheers, Santiago From debbugs-submit-bounces@debbugs.gnu.org Tue Jul 26 02:01:04 2016 Received: (at 23965-done) by debbugs.gnu.org; 26 Jul 2016 06:01:04 +0000 Received: from localhost ([127.0.0.1]:37479 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bRvQO-0001O7-BR for submit@debbugs.gnu.org; Tue, 26 Jul 2016 02:01:04 -0400 Received: from mail-io0-f194.google.com ([209.85.223.194]:33930) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bRvQK-0001NU-Jt for 23965-done@debbugs.gnu.org; Tue, 26 Jul 2016 02:01:03 -0400 Received: by mail-io0-f194.google.com with SMTP id g86so14284331ioj.1 for <23965-done@debbugs.gnu.org>; Mon, 25 Jul 2016 23:01:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc:content-transfer-encoding; bh=rVCl/xi66HGvs1I7jz/1feWQ8cG4NHNRbolUtMK9Um4=; b=CeRp17gxCwyEPKognb9zGjynHL3NKkyS5aEqqQS1bdzRvodU5HdNScSQk91pLI9T6U 7LEWdrX21ltghSG83G5Yo/UW2mgxSBZ9C92EjGBsKgzMatu/0rSiGek77Q/Iskm6R6Gj drIcYYMCF8cAHUq+0yYMr1xpYr3CXp7bOJzV11wZVyVXMwhuQBiRFUFOoSNPCk1FWM9s NPtzbvVRALntOxblm4EioKDzK+ngU/F/Xdw7XfYTawbcPBr4cVKro+9tqCv6/jVbbpbv tGh1+1I5wVV0bfALOsYcPm8TX84azAcUuulc4e55uIVJwTqscL5WgbwOj5KhWon8rNN+ PpDQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc:content-transfer-encoding; bh=rVCl/xi66HGvs1I7jz/1feWQ8cG4NHNRbolUtMK9Um4=; b=F03T7w6Yr8SWXu2DdXPh+0FXlM2FlA+s5O2VuigVXTK4CDD7nD/M9izz3eG6HWvcd/ T0/YuBI0ssK73CCXT/ssPNSdLIzgndPAbgs1K9iXzZW6IXt2VG8LP/uPaFTbjs9uZRUy CDNpI3GcH49xQ656wLqogDcRSMymvY9YUJVwsqNT92CYUhkFzyfVyXMPDDTEW4KjBEeO RPocHUr7sjxVKUm69kN8yi2j5lAJe0sy5wZkgdNTqUQnd/A/+n4DIRgy+EWdJLddwU3C lLTW7KoNJMPKiR2FCDrnBaE7YIfKTVQkmQXaxn3C6cmdHSwVil+/L7HMuPTgH8V/dbhb eWWQ== X-Gm-Message-State: AEkoouvuRXinkT2gtnCS92ySTyx17P3x6QtnzGdHgW3H5H6QwIqVDXTsJ+2t2nWPN8+9YISRIia/YszAcScWFA== X-Received: by 10.202.107.2 with SMTP id g2mr10030473oic.1.1469512854948; Mon, 25 Jul 2016 23:00:54 -0700 (PDT) MIME-Version: 1.0 Received: by 10.202.3.130 with HTTP; Mon, 25 Jul 2016 23:00:35 -0700 (PDT) In-Reply-To: <20160725185639.GC7838@riseup.net> References: <20160713085945.GA16495@riseup.net> <20160725185639.GC7838@riseup.net> From: Jim Meyering Date: Mon, 25 Jul 2016 23:00:35 -0700 X-Google-Sender-Auth: 83PSIvVGf_5-462nVbNFNl6CA10 Message-ID: Subject: Re: bug#23965: egrep should report line number when failing to parse a file (with -f) To: =?UTF-8?Q?Santiago_Ruano_Rinc=C3=B3n?= Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 23965-done Cc: 525214-done@bugs.debian.org, 23965-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) On Mon, Jul 25, 2016 at 11:56 AM, Santiago Ruano Rinc=C3=B3n wrote: > El 23/07/16 a las 09:31, Jim Meyering escribi=C3=B3: >> On Wed, Jul 20, 2016 at 2:58 PM, Jim Meyering wrote: >> > On Wed, Jul 13, 2016 at 1:59 AM, Santiago Ruano Rinc=C3=B3n >> > wrote: > > =E2=80=A6 > >> Here are two patches. >> The first adds coreutils' perl-based test harness to grep. >> The second improves those diagnostics and adds a test using the new harn= ess: > > Thanks! > > I will include it in the next grep debian release. Nice. I've added a couple more tests and pushed as http://git.savannah.gnu.org/cgit/grep.git/commit/?id=3Df13c169e13aed279baa0= 0d9ced9d93fe24775493 From unknown Wed Jun 18 23:05:32 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Tue, 23 Aug 2016 11:24:04 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator