GNU bug report logs - #21017
url-http: synchronous post and 302 error response not handled properly

Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.

Package: emacs; Reported by: Vaidheeswaran C <vaidheeswaran.chinnaraju@HIDDEN>; merged with #16960; dated Thu, 9 Jul 2015 15:32:01 UTC; Maintainer for emacs is bug-gnu-emacs@HIDDEN.
Merged 16960 21017. Request was from Glenn Morris <rgm@HIDDEN> to control <at> debbugs.gnu.org. Full text available.

Message received at 21017 <at> debbugs.gnu.org:


Received: (at 21017) by debbugs.gnu.org; 9 Jul 2015 15:36:51 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Jul 09 11:36:51 2015
Received: from localhost ([127.0.0.1]:45338 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.80)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1ZDDsZ-0004Ot-3P
	for submit <at> debbugs.gnu.org; Thu, 09 Jul 2015 11:36:51 -0400
Received: from eggs.gnu.org ([208.118.235.92]:44186)
 by debbugs.gnu.org with esmtp (Exim 4.80)
 (envelope-from <rgm@HIDDEN>) id 1ZDDsX-0004Og-Tr
 for 21017 <at> debbugs.gnu.org; Thu, 09 Jul 2015 11:36:50 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
 (envelope-from <rgm@HIDDEN>) id 1ZDDsS-0006ls-6T
 for 21017 <at> debbugs.gnu.org; Thu, 09 Jul 2015 11:36:44 -0400
X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org
X-Spam-Level: 
X-Spam-Status: No, score=-2.2 required=5.0 tests=BAYES_00,RP_MATCHES_RCVD
 autolearn=disabled version=3.3.2
Received: from fencepost.gnu.org ([2001:4830:134:3::e]:50449)
 by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <rgm@HIDDEN>)
 id 1ZDDsS-0006lo-2n
 for 21017 <at> debbugs.gnu.org; Thu, 09 Jul 2015 11:36:44 -0400
Received: from rgm by fencepost.gnu.org with local (Exim 4.82)
 (envelope-from <rgm@HIDDEN>)
 id 1ZDDsR-000360-KN; Thu, 09 Jul 2015 11:36:43 -0400
From: Glenn Morris <rgm@HIDDEN>
To: 21017 <at> debbugs.gnu.org
Subject: Re: bug#21017: url-http: synchronous post and 302 error response not
 handled properly
References: <559E2F13.3080801@HIDDEN>
X-Spook: number key Mena Yuma Cancelled Chemical weapon Resistant
X-Ran: g,Pir}S;V8?+71u6s,wE3jYXQ_=c'3K?[%_%~!Ae9{ryaLN2kX]RZ9@dsUF>whHxr3dUUf
X-Hue: cyan
X-Attribution: GM
Date: Thu, 09 Jul 2015 11:36:43 -0400
In-Reply-To: <559E2F13.3080801@HIDDEN> (Vaidheeswaran C.'s message of "Thu, 
 09 Jul 2015 13:51:39 +0530")
Message-ID: <ot1tgh4a2c.fsf@HIDDEN>
User-Agent: Gnus (www.gnus.org), GNU Emacs (www.gnu.org/software/emacs/)
MIME-Version: 1.0
Content-Type: text/plain
X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address
 (bad octet value).
X-Received-From: 2001:4830:134:3::e
X-Spam-Score: -5.3 (-----)
X-Debbugs-Envelope-To: 21017
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -5.3 (-----)


Dupe of http://debbugs.gnu.org/16960




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#21017; Package emacs. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 9 Jul 2015 15:31:11 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Jul 09 11:31:11 2015
Received: from localhost ([127.0.0.1]:45307 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.80)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1ZDDn2-0004El-Hx
	for submit <at> debbugs.gnu.org; Thu, 09 Jul 2015 11:31:10 -0400
Received: from eggs.gnu.org ([208.118.235.92]:47924)
 by debbugs.gnu.org with esmtp (Exim 4.80)
 (envelope-from <vaidheeswaran.chinnaraju@HIDDEN>)
 id 1ZD75e-0000Qi-Rd
 for submit <at> debbugs.gnu.org; Thu, 09 Jul 2015 04:21:57 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
 (envelope-from <vaidheeswaran.chinnaraju@HIDDEN>)
 id 1ZD75W-000550-7V
 for submit <at> debbugs.gnu.org; Thu, 09 Jul 2015 04:21:49 -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.8 required=5.0 tests=BAYES_50,FREEMAIL_FROM,
 T_DKIM_INVALID autolearn=disabled version=3.3.2
Received: from lists.gnu.org ([2001:4830:134:3::11]:43003)
 by eggs.gnu.org with esmtp (Exim 4.71)
 (envelope-from <vaidheeswaran.chinnaraju@HIDDEN>)
 id 1ZD75W-00054w-2w
 for submit <at> debbugs.gnu.org; Thu, 09 Jul 2015 04:21:46 -0400
Received: from eggs.gnu.org ([2001:4830:134:3::10]:33164)
 by lists.gnu.org with esmtp (Exim 4.71)
 (envelope-from <vaidheeswaran.chinnaraju@HIDDEN>)
 id 1ZD75S-0006mM-Fk
 for bug-gnu-emacs@HIDDEN; Thu, 09 Jul 2015 04:21:45 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
 (envelope-from <vaidheeswaran.chinnaraju@HIDDEN>)
 id 1ZD75O-00051r-Ee
 for bug-gnu-emacs@HIDDEN; Thu, 09 Jul 2015 04:21:42 -0400
Received: from mail-pa0-x235.google.com ([2607:f8b0:400e:c03::235]:34994)
 by eggs.gnu.org with esmtp (Exim 4.71)
 (envelope-from <vaidheeswaran.chinnaraju@HIDDEN>)
 id 1ZD75N-00051M-SI
 for bug-gnu-emacs@HIDDEN; Thu, 09 Jul 2015 04:21:38 -0400
Received: by pactm7 with SMTP id tm7so146809342pac.2
 for <bug-gnu-emacs@HIDDEN>; Thu, 09 Jul 2015 01:21:37 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=message-id:date:from:user-agent:mime-version:to:subject
 :content-type; bh=LDOuFT8xp/dkHkWymJwxdakmFDZ2xnHetJ0hsDd6Vko=;
 b=y5zta7aiEeZZYUUqipdp1IIYELNMMKv9xkhh3Nnu4rL4NytCfGYPk8ushqrh6NrGdT
 noRGRQzLCZEKij5EJg76w+b4cg2EdrmdIYnWfv+8+NeLBPovt9qLkERwy7oEflTaqCp9
 NB+KzC6zGbTgkoUwLLkMLtC7dNE6rxq0KCRS8Hen+dxpIMDyA3zQQFMQmdtBTXsNrBQk
 qOF785TEILDBuBDKwp+NKuhKtFYLjrAFI9eVMkdaP/SshgKPtAqX6v82k9th82wzKd3p
 10fHDu5jHUf3V5tCmVK9g1cmAGvKmVTCshejJjMTxRDXUfYHHaNVm80IwJvgkEMbCV4r
 RWzA==
X-Received: by 10.66.156.68 with SMTP id wc4mr28939560pab.126.1436430097021;
 Thu, 09 Jul 2015 01:21:37 -0700 (PDT)
Received: from [192.168.43.83] ([106.216.158.36])
 by smtp.gmail.com with ESMTPSA id vz2sm4987190pbc.71.2015.07.09.01.21.32
 for <bug-gnu-emacs@HIDDEN>
 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Thu, 09 Jul 2015 01:21:35 -0700 (PDT)
Message-ID: <559E2F13.3080801@HIDDEN>
Date: Thu, 09 Jul 2015 13:51:39 +0530
From: Vaidheeswaran C <vaidheeswaran.chinnaraju@HIDDEN>
User-Agent: Mozilla/5.0 (X11; Linux i686;
 rv:31.0) Gecko/20100101 Icedove/31.3.0
MIME-Version: 1.0
To: bug-gnu-emacs@HIDDEN
Subject: url-http: synchronous post and 302 error response not handled properly
Content-Type: multipart/mixed; boundary="------------070802080004060405060703"
X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address
 (bad octet value).
X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address
 (bad octet value).
X-Received-From: 2001:4830:134:3::11
X-Spam-Score: -4.0 (----)
X-Debbugs-Envelope-To: submit
X-Mailman-Approved-At: Thu, 09 Jul 2015 11:31:07 -0400
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -4.0 (----)

This is a multi-part message in MIME format.
--------------070802080004060405060703
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit


url-http: synchronous post and 302 error response not handled
properly.  This is seen with Oddmuse wikis.

GNU Emacs is from today's master branch.

----------------------------------------------------------------

Prerequisites:

You need an oddmuse wiki that you have write access to.

----------------------------------------------------------------

The snippet below posts the "Hello Everywhere" (the "text") on to
"TemporaryPage" (the "title").

(let* ((wiki-base-url "http://localhost/cgi-bin/wiki.pl/")
       (values
	`(("pwd" . "xxxx")
	  ("recent_edit" . "off")
	  ("summary" . "Some updates")
	  ("text" . "Hello Everywhere")
	  ("title" . "TemporaryPage")
	  ("username" . "Anonymous"))))
  (let ((url-request-method "POST")
	(url-request-extra-headers
	 '(("Content-Type" . "application/x-www-form-urlencoded")))
	(url-request-data (mm-url-encode-www-form-urlencoded values)))
    (url-retrieve-synchronously wiki-base-url)
    (message "Done")))

1. Get hold of an oddmuse wiki that you have edit access to
2. Customize `url-debug' to t
3. C-x C-e the above snippet
4. See that the "Done" message gets never printed.
5. C-g your way out.
6. Verify that Oddmuse wiki page has been updated.

----------------------------------------------------------------

The HTTP process buffer says:

    HTTP/1.1 302 Found
    Status: 302 Found
    Location: http://localhost/cgi-bin/wiki.pl/TemporaryPage
    Transfer-Encoding: chunked
    Date: Thu, 09 Jul 2015 07:32:42 GMT
    Server: lighttpd/1.4.31

----------------------------------------------------------------

The *URL-DEBUG* buffer says infinite "spinning" for headers.

    http -> Contacting host: localhost:80
    http -> Marking connection as busy: localhost:80 #<process localhost>
    retrieval -> Spinning in url-retrieve-synchronously: nil (#<buffer
*http localhost:80*>)
    http -> Request is:
    POST /cgi-bin/wiki.pl/ HTTP/1.1
    MIME-Version: 1.0
    Connection: keep-alive
    Extension: Security/Digest Security/SSL
    Host: localhost
    Accept-encoding: gzip
    Accept-charset: utf-8;q=1, gb2312;q=0.5, iso-8859-1;q=0.5,
big5;q=0.5, iso-2022-jp;q=0.5, shift_jis;q=0.5, euc-tw;q=0.5,
euc-jp;q=0.5, euc-jis-2004;q=0.5, euc-kr;q=0.5, us-ascii;q=0.5,
utf-7;q=0.5, hz-gb-2312;q=0.5, big5-hkscs;q=0.5, gbk;q=0.5,
gb18030;q=0.5, iso-8859-5;q=0.5, koi8-r;q=0.5, koi8-u;q=0.5,
cp866;q=0.5, koi8-t;q=0.5, windows-1251;q=0.5, cp855;q=0.5,
iso-8859-2;q=0.5, iso-8859-3;q=0.5, iso-8859-4;q=0.5, iso-8859-9;q=0.5,
iso-8859-10;q=0.5, iso-8859-13;q=0.5, iso-8859-14;q=0.5,
iso-8859-15;q=0.5, windows-1250;q=0.5, windows-1252;q=0.5,
windows-1254;q=0.5, windows-1257;q=0.5, cp775;q=0.5, cp850;q=0.5,
cp852;q=0.5, cp857;q=0.5, cp858;q=0.5, cp860;q=0.5, cp861;q=0.5,
cp863;q=0.5, cp865;q=0.5, cp437;q=0.5, macintosh;q=0.5, next;q=0.5,
hp-roman8;q=0.5, adobe-standard-encoding;q=0.5, iso-8859-16;q=0.5,
iso-8859-7;q=0.5, windows-1253;q=0.5, cp737;q=0.5, cp851;q=0.5,
cp869;q=0.5, iso-8859-8;q=0.5, windows-1255;q=0.5, cp862;q=0.5,
iso-2022-jp-2004;q=0.5, cp874;q=0.5, iso-8859-11;q=0.5, viscii;q=0.5,
windows-1258;q=0.5, iso-8859-6;q=0.5, windows-1256;q=0.5,
iso-2022-cn;q=0.5, iso-2022-cn-ext;q=0.5, iso-2022-jp-2;q=0.5,
iso-2022-kr;q=0.5, utf-16le;q=0.5, utf-16be;q=0.5, utf-16;q=0.5,
x-ctext;q=0.5
    Accept: */*
    User-Agent: URL/Emacs
    Cookie: Wiki=pwd%251exxxx%251eusername%251eAnonymous
    Content-Type: application/x-www-form-urlencoded
    Content-length: 101


pwd=xxxx&recent_edit=off&summary=Some+updates&text=Hello+World&title=TemporaryPage&username=Anonymous
    http -> Calling after change function
`url-http-wait-for-headers-change-function' for `#<process localhost>'
    http -> url-http-wait-for-headers-change-function ( *http localhost:80*)
    http -> Saw end of headers... ( *http localhost:80*)
    http -> url-http-parse-response called in ( *http localhost:80*)
    http -> Saw chunked encoding.
    http -> Calling initial chunked-encoding for extra data at end of
headers
    http -> Reading chunk 0 (182 183 1)
    http -> Did not see start of chunk @ 183!
    http -> Spinning waiting for headers...
    retrieval -> Spinning in url-retrieve-synchronously: nil (#<buffer
*http localhost:80*>)
    http -> Calling after change function
`url-http-chunked-encoding-after-change-function' for `#<process localhost>'
    http -> Reading chunk 0 (183 188 5)
    http -> Saw start of chunk 1 (length=0, start=183
    http -> Saw end of stream chunk!
    http -> Removing terminator of last chunk
    http -> Saw end of trailers...
    http -> Marking connection as free: localhost:80 #<process localhost>
    http -> url-http-parse-headers called in ( *http localhost:80*)
    http -> url-http-parse-response called in ( *http localhost:80*)
    http -> Parsed HTTP headers: class=3 status=302
    http -> Finished parsing HTTP headers: nil
    retrieval -> Spinning in url-retrieve-synchronously: nil (#<buffer
*http localhost:80*>)
    retrieval -> Spinning in url-retrieve-synchronously: nil (#<buffer
*http localhost:80*>)

----------------------------------------------------------------

Hint for quick isolation:

If I comment out the `unless' part below (cf. url-http.el @ line 602)
thereabouts, the spinning stops altogether.


    ((or `moved-permanently `found `temporary-redirect) ; 301 302 307
     ;; If the 301|302 status code is received in response to a
     ;; request other than GET or HEAD, the user agent MUST NOT
     ;; automatically redirect the request unless it can be
     ;; confirmed by the user, since this might change the
     ;; conditions under which the request was issued.
     (unless (member url-http-method '("HEAD" "GET"))
       (setq redirect-uri nil)))

----------------------------------------------------------------

Expected behaviour:

I am attaching an edit transaction done via firefox + emacswiki
(captured with "follow TCP stream" option of wireshark)

I see a 302 response followed by a fetch of the edited page.  Whatever
be the right behaviour, I expect that synchronous fetch doesn't loop
infinitely and make emacs unusable.

--------------070802080004060405060703
Content-Type: text/plain; charset=UTF-8;
 name="oddmuse-edit-via-firefox.txt"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename="oddmuse-edit-via-firefox.txt"

R0VUIC9lbWFjcz9hY3Rpb249ZWRpdDtpZD1UZXN0IEhUVFAvMS4xDQpIb3N0OiB3d3cuZW1h
Y3N3aWtpLm9yZw0KVXNlci1BZ2VudDogTW96aWxsYS81LjAgKFgxMTsgTGludXggaTY4Njsg
cnY6MzEuMCkgR2Vja28vMjAxMDAxMDEgRmlyZWZveC8zMS4wIEljZXdlYXNlbC8zMS4zLjAN
CkFjY2VwdDogdGV4dC9odG1sLGFwcGxpY2F0aW9uL3hodG1sK3htbCxhcHBsaWNhdGlvbi94
bWw7cT0wLjksKi8qO3E9MC44DQpBY2NlcHQtTGFuZ3VhZ2U6IGVuLVVTLGVuO3E9MC41DQpB
Y2NlcHQtRW5jb2Rpbmc6IGd6aXAsIGRlZmxhdGUNClJlZmVyZXI6IGh0dHA6Ly93d3cuZW1h
Y3N3aWtpLm9yZy9lbWFjcy9UZXN0DQpDb29raWU6IFdpa2k9dWlobnNjdXNrYyUyNTFlMSUy
NTFldXNlcm5hbWUlMjUxZUFub255bW91cw0KQ29ubmVjdGlvbjoga2VlcC1hbGl2ZQ0KDQpI
VFRQLzEuMSAyMDAgT0sNClNlcnZlcjogbmdpbngvMS40LjYgKFVidW50dSkNCkRhdGU6IFRo
dSwgMDkgSnVsIDIwMTUgMDg6MDQ6MTAgR01UDQpDb250ZW50LVR5cGU6IHRleHQvaHRtbDsg
Y2hhcnNldD11dGYtOA0KVHJhbnNmZXItRW5jb2Rpbmc6IGNodW5rZWQNCkNvbm5lY3Rpb246
IGtlZXAtYWxpdmUNCkNvbnRlbnQtTG9jYXRpb246IGVtYWNzLnBsDQpWYXJ5OiBuZWdvdGlh
dGUsQWNjZXB0LUxhbmd1YWdlDQpUQ046IGNob2ljZQ0KWC1FbWFjc1dpa2ktU291cmNlOiBB
cGFjaGUvQ0dJDQpYLVByb3h5LUNhY2hlOiBCWVBBU1MNCg0KZDE1DQo8IURPQ1RZUEUgaHRt
bCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3
dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+CjxodG1sIHhtbG5z
PSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj48aGVhZD48dGl0bGU+RW1hY3NXaWtp
OiBFZGl0aW5nIFRlc3Q8L3RpdGxlPgo8bGluayB0eXBlPSJ0ZXh0L2NzcyIgcmVsPSJzdHls
ZXNoZWV0IiBocmVmPSJodHRwOi8vbmV0ZG5hLmJvb3RzdHJhcGNkbi5jb20vdHdpdHRlci1i
b290c3RyYXAvMi4zLjAvY3NzL2Jvb3RzdHJhcC1jb21iaW5lZC5taW4uY3NzIiAvPgo8bGlu
ayB0eXBlPSJ0ZXh0L2NzcyIgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvY3NzL2Jvb3RzdHJh
cC5jc3MiIC8+CjxtZXRhIG5hbWU9InJvYm90cyIgY29udGVudD0iTk9JTkRFWCxGT0xMT1ci
IC8+PGxpbmsgcmVsPSJhbHRlcm5hdGUiIHR5cGU9ImFwcGxpY2F0aW9uL3Jzcyt4bWwiIHRp
dGxlPSJFbWFjc1dpa2kiIGhyZWY9Imh0dHA6Ly93d3cuZW1hY3N3aWtpLm9yZy9lbWFjcz9h
Y3Rpb249cnNzIiAvPjxsaW5rIHJlbD0iYWx0ZXJuYXRlIiB0eXBlPSJhcHBsaWNhdGlvbi9y
c3MreG1sIiB0aXRsZT0iRW1hY3NXaWtpOiBUZXN0IiBocmVmPSJodHRwOi8vd3d3LmVtYWNz
d2lraS5vcmcvZW1hY3M/YWN0aW9uPXJzcztyY2lkb25seT1UZXN0IiAvPjxsaW5rIHJlbD0i
YWx0ZXJuYXRlIiB0eXBlPSJhcHBsaWNhdGlvbi9yc3MreG1sIiB0aXRsZT0iRm9sbG93LXVw
cyBmb3IgQW5vbnltb3VzIiBocmVmPSJodHRwOi8vd3d3LmVtYWNzd2lraS5vcmcvZW1hY3M/
YWN0aW9uPXJzcztmb2xsb3d1cD1Bbm9ueW1vdXMiIC8+CjxsaW5rIHJlbD0iYWx0ZXJuYXRl
IiB0eXBlPSJhcHBsaWNhdGlvbi9yc3MreG1sIgogICAgICB0aXRsZT0iRW1hY3MgV2lraSB3
aXRoIHBhZ2UgY29udGVudCIKICAgICAgaHJlZj0iaHR0cDovL3d3dy5lbWFjc3dpa2kub3Jn
L2Z1bGwucnNzIiAvPgo8bGluayByZWw9ImFsdGVybmF0ZSIgdHlwZT0iYXBwbGljYXRpb24v
cnNzK3htbCIKICAgICAgdGl0bGU9IkVtYWNzIFdpa2kgd2l0aCBwYWdlIGNvbnRlbnQgYW5k
IGRpZmYiCiAgICAgIGhyZWY9Imh0dHA6Ly93d3cuZW1hY3N3aWtpLm9yZy9mdWxsLWRpZmYu
cnNzIiAvPgo8bGluayByZWw9ImFsdGVybmF0ZSIgdHlwZT0iYXBwbGljYXRpb24vcnNzK3ht
bCIKICAgICAgdGl0bGU9IkVtYWNzIFdpa2kgaW5jbHVkaW5nIG1pbm9yIGRpZmZlcmVuY2Vz
IgogICAgICBocmVmPSJodHRwOi8vd3d3LmVtYWNzd2lraS5vcmcvbWlub3ItZWRpdHMucnNz
IiAvPgo8bGluayByZWw9ImFsdGVybmF0ZSIgdHlwZT0iYXBwbGljYXRpb24vcnNzK3htbCIK
ICAgICAgdGl0bGU9IkNoYW5nZXMgZm9yIFRlc3Qgb25seSIKICAgICAgaHJlZj0iaHR0cDov
L3d3dy5lbWFjc3dpa2kub3JnL2VtYWNzP2FjdGlvbj1yc3M7cmNpZG9ubHk9VGVzdCIgLz4K
PGxpbmsgcmVsPSJhbHRlcm5hdGUiIHR5cGU9ImFwcGxpY2F0aW9uL3Jzcyt4bWwiCiAgICAg
IHRpdGxlPSJGb2xsb3ctdXBzIHRvIEFub255bW91cyIKICAgICAgaHJlZj0iaHR0cDovL3d3
dy5lbWFjc3dpa2kub3JnL2VtYWNzP2FjdGlvbj1yc3M7Zm9sbG93dXA9QW5vbnltb3VzIiAv
Pgo8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoIiAv
Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwOi8vY29kZS5qcXVl
cnkuY29tL2pxdWVyeS0xLjkuMS5taW4uanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCIgc3JjPSJodHRwOi8vbmV0ZG5hLmJvb3RzdHJhcGNkbi5jb20vdHdp
dHRlci1ib290c3RyYXAvMi4zLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+Cjxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHA6Ly9lbWFjc3dpa2kub3Jn
L2Jvb3RzdHJhcC5qcyI+PC9zY3JpcHQ+CjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlw
ZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04IiAvPjwvaGVhZD48Ym9keSBj
bGFzcz0iaHR0cDovL3d3dy5lbWFjc3dpa2kub3JnL2VtYWNzIj48ZGl2IGNsYXNzPSJoZWFk
ZXIiPjxkaXYgY2xhc3M9Im1lbnUiPjxzcGFuIGNsYXNzPSJnb3RvYmFyIGJhciI+PGEgaHJl
Zj0iaHR0cDovL3d3dy5lbWFjc3dpa2kub3JnL2VtYWNzL1NpdGVNYXAiIGNsYXNzPSJsb2Nh
bCI+U2l0ZU1hcDwvYT4gPGEgaHJlZj0iaHR0cDovL3d3dy5lbWFjc3dpa2kub3JnL2VtYWNz
L1NlYXJjaCIgY2xhc3M9ImxvY2FsIj5TZWFyY2g8L2E+IDxhIGhyZWY9Imh0dHA6Ly93d3cu
ZW1hY3N3aWtpLm9yZy9lbWFjcy9FbGlzcEFyZWEiIGNsYXNzPSJsb2NhbCI+RWxpc3BBcmVh
PC9hPiA8YSBocmVmPSJodHRwOi8vd3d3LmVtYWNzd2lraS5vcmcvZW1hY3MvSG93VG8iIGNs
YXNzPSJsb2NhbCI+SG93VG88L2E+IDxhIGhyZWY9Imh0dHA6Ly93d3cuZW1hY3N3aWtpLm9y
Zy9lbWFjcy9HbG9zc2FyeSIgY2xhc3M9ImxvY2FsIj5HbG9zc2FyeTwvYT4gPGEgaHJlZj0i
aHR0cDovL3d3dy5lbWFjc3dpa2kub3JnL2VtYWNzL1JlY2VudENoYW5nZXMiIGNsYXNzPSJs
b2NhbCI+UmVjZW50Q2hhbmdlczwvYT4gPGEgY2xhc3M9ImxvY2FsIiBocmVmPSJodHRwOi8v
d3d3LmVtYWNzd2lraS5vcmcvZW1hY3MvTmV3cyI+TmV3czwvYT4gPGEgY2xhc3M9ImxvY2Fs
IiBocmVmPSJodHRwOi8vd3d3LmVtYWNzd2lraS5vcmcvZW1hY3MvUHJvYmxlbXMiPlByb2Js
ZW1zPC9hPiA8YSBocmVmPSJodHRwOi8vd3d3LmVtYWNzd2lraS5vcmcvZW1hY3MvU3VnZ2Vz
dGlvbnMiIGNsYXNzPSJsb2NhbCI+U3VnZ2VzdGlvbnM8L2E+IDwvc3Bhbj48Zm9ybSBtZXRo
b2Q9ImdldCIgYWN0aW9uPSJodHRwOi8vd3d3LmVtYWNzd2lraS5vcmcvZW1hY3MiIGVuY3R5
cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIGFjY2VwdC1jaGFyc2V0PSJ1dGYtOCIgY2xhc3M9
InNlYXJjaCI+PHA+PGxhYmVsIGZvcj0ic2VhcmNoIj5TZWFyY2g6PC9sYWJlbD4gPGlucHV0
IHR5cGU9InRleHQiIG5hbWU9InNlYXJjaCIgIHNpemU9IjIwIiBpZD0ic2VhcmNoIiBhY2Nl
c3NrZXk9ImYiIC8+IDxsYWJlbCBmb3I9InNlYXJjaGxhbmciPkxhbmd1YWdlOjwvbGFiZWw+
IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJsYW5nIiAgc2l6ZT0iMTAiIGlkPSJzZWFyY2hs
YW5nIiAvPiA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJkb3NlYXJjaCIgdmFsdWU9Ikdv
ISIgLz48L3A+PC9mb3JtPjwvZGl2PjxoMT5FZGl0aW5nIFRlc3Q8L2gxPjwvZGl2PjxkaXYg
Y2xhc3M9IndyYXBwZXIiPjxkaXYgY2xhc3M9ImNvbnRlbnQgZWRpdCI+DQo1YjkNCjxmb3Jt
IG1ldGhvZD0icG9zdCIgYWN0aW9uPSJodHRwOi8vd3d3LmVtYWNzd2lraS5vcmcvZW1hY3Mi
IGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIGFjY2VwdC1jaGFyc2V0PSJ1dGYtOCIg
Y2xhc3M9ImVkaXQgdGV4dCI+PHA+PGlucHV0IG5hbWU9InRpdGxlIiB0eXBlPSJoaWRkZW4i
IHZhbHVlPSJUZXN0IiAvPiAgPGlucHV0IG5hbWU9Im9sZHRpbWUiIHR5cGU9ImhpZGRlbiIg
dmFsdWU9IjE0MzY0Mjg5NDAiIC8+IDx0ZXh0YXJlYSBuYW1lPSJ0ZXh0IiAgcm93cz0iMjUi
IGNvbHM9Ijc4IiBpZD0idGV4dCI+SGVsbG8gV29ybGQKPC90ZXh0YXJlYT48L3A+PHA+U3Vt
bWFyeTo8YnIgLz48dGV4dGFyZWEgbmFtZT0ic3VtbWFyeSIgIHJvd3M9IjIiIGNvbHM9Ijc4
IiBpZD0ic3VtbWFyeSI+PC90ZXh0YXJlYT48L3A+PHA+PGxhYmVsPjxpbnB1dCB0eXBlPSJj
aGVja2JveCIgbmFtZT0icmVjZW50X2VkaXQiIHZhbHVlPSJvbiIgLz5UaGlzIGNoYW5nZSBp
cyBhIG1pbm9yIGVkaXQuPC9sYWJlbD48L3A+PHA+UGxlYXNlIG1ha2Ugc3VyZSB5b3UgY29u
dHJpYnV0ZSBvbmx5IHlvdXIgb3duIHdvcmsuIElQIG51bWJlcnMgYXJlIG1hZGUgYXZhaWxh
YmxlIHZpYSB0aGUgcGFnZSBoaXN0b3J5LiBJZiB5b3Ugd2FudCB0byBrZWVwIGl0IGEgc2Vj
cmV0LCB5b3UgbmVlZCB0byB1c2UgPGEgaHJlZj0iaHR0cDovL3d3dy50b3Jwcm9qZWN0Lm9y
Zy8iPlRvcjwvYT4uIFNlZSA8YSBocmVmPSIvZW1hY3MvVGV4dEZvcm1hdHRpbmdSdWxlcyI+
VGV4dEZvcm1hdHRpbmdSdWxlczwvYT4gZm9yIGhvdyB0byBmb3JtYXQgdGV4dC4gU2VlIDxh
IGhyZWY9Ii9lbWFjcy9TdHlsZUd1aWRlIj5TdHlsZUd1aWRlPC9hPiBmb3IgdGhlIHN1Z2dl
c3RlZCB3cml0aW5nIHN0eWxlIG9uIHRoaXMgd2lraS48L3A+PHA+PGxhYmVsIGZvcj0idXNl
cm5hbWUiPlVzZXJuYW1lOjwvbGFiZWw+IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2Vy
bmFtZSIgdmFsdWU9IkFub255bW91cyIgc2l6ZT0iMjAiIG1heGxlbmd0aD0iNTAiIGlkPSJ1
c2VybmFtZSIgLz48L3A+PHA+PGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0iU2F2ZSIgdmFs
dWU9IlNhdmUiIGFjY2Vzc2tleT0icyIgLz4gIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9
IlByZXZpZXciIHZhbHVlPSJQcmV2aWV3IiBhY2Nlc3NrZXk9InAiIC8+IDxpbnB1dCB0eXBl
PSJzdWJtaXQiIG5hbWU9IkNhbmNlbCIgdmFsdWU9IkNhbmNlbCIgLz48L3A+PHA+PGEgY2xh
c3M9InVwbG9hZCIgaHJlZj0iaHR0cDovL3d3dy5lbWFjc3dpa2kub3JnL2VtYWNzP2FjdGlv
bj1lZGl0O3VwbG9hZD0xO2lkPVRlc3QiIHJlbD0ibm9mb2xsb3ciPlJlcGxhY2UgdGhpcyB0
ZXh0IHdpdGggYSBmaWxlPC9hPjwvcD48ZGl2PjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9
Ii5jZ2lmaWVsZHMiIHZhbHVlPSJyZWNlbnRfZWRpdCIgIC8+PC9kaXY+CjwvZm9ybT48L2Rp
dj4NCjI3DQo8ZGl2IGNsYXNzPSJ3cmFwcGVyIGNsb3NlIj48L2Rpdj48L2Rpdj4NCjFhDQo8
ZGl2IGNsYXNzPSJmb290ZXIiPjxociAvPg0KMWRmDQo8ZGl2IGNsYXNzPSJlZGl0IGJhciI+
PGEgcmVsPSJub2ZvbGxvdyIgY2xhc3M9Imhpc3RvcnkiIGhyZWY9Imh0dHA6Ly93d3cuZW1h
Y3N3aWtpLm9yZy9lbWFjcz9hY3Rpb249aGlzdG9yeTtpZD1UZXN0Ij5WaWV3IG90aGVyIHJl
dmlzaW9uczwvYT4gPGEgY2xhc3M9ImxvY2FsIiBocmVmPSJodHRwOi8vd3d3LmVtYWNzd2lr
aS5vcmcvZW1hY3MvVGVzdCI+VmlldyBjdXJyZW50IHJldmlzaW9uPC9hPiA8YSByZWw9Im5v
Zm9sbG93IiBocmVmPSJodHRwOi8vd3d3LmVtYWNzd2lraS5vcmcvZW1hY3M/YWN0aW9uPXJj
O2FsbD0xO2Zyb209MTtzaG93ZWRpdD0xO3JjaWRvbmx5PVRlc3QiIGNsYXNzPSJyYyI+Vmll
dyBhbGwgY2hhbmdlczwvYT4gPGEgcmVsPSJub2ZvbGxvdyIgY2xhc3M9ImFkbWluIiBocmVm
PSJodHRwOi8vd3d3LmVtYWNzd2lraS5vcmcvZW1hY3M/YWN0aW9uPWFkbWluO2lkPVRlc3Qi
PkFkbWluaXN0cmF0aW9uPC9hPjwvZGl2Pg0KNzY0DQo8ZGl2IHN0eWxlPSJmbG9hdDpyaWdo
dDsgbWFyZ2luLWxlZnQ6MWV4OyI+CjwhLS0gQ3JlYXRpdmUgQ29tbW9ucyBMaWNlbnNlIC0t
Pgo8YSBjbGFzcz0ibGljZW5jZSIgaHJlZj0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcv
bGljZW5zZXMvR1BMLzIuMC8iPjxpbWcgYWx0PSJDQy1HTlUgR1BMIiBzdHlsZT0iYm9yZGVy
Om5vbmUiIHNyYz0iL3BpY3MvY2MtR1BMLWEucG5nIiAvPjwvYT4KPCEtLSAvQ3JlYXRpdmUg
Q29tbW9ucyBMaWNlbnNlIC0tPgo8L2Rpdj4KCjwhLS0KPHJkZjpSREYgeG1sbnM9Imh0dHA6
Ly93ZWIucmVzb3VyY2Uub3JnL2NjLyIKIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMv
ZWxlbWVudHMvMS4xLyIKIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8y
Mi1yZGYtc3ludGF4LW5zIyI+CjxXb3JrIHJkZjphYm91dD0iIj4KICAgPGxpY2Vuc2UgcmRm
OnJlc291cmNlPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9HUEwvMi4w
LyIgLz4KICA8ZGM6dHlwZSByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21p
dHlwZS9Tb2Z0d2FyZSIgLz4KPC9Xb3JrPgoKPExpY2Vuc2UgcmRmOmFib3V0PSJodHRwOi8v
Y3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9HUEwvMi4wLyI+CiAgIDxwZXJtaXRzIHJk
ZjpyZXNvdXJjZT0iaHR0cDovL3dlYi5yZXNvdXJjZS5vcmcvY2MvUmVwcm9kdWN0aW9uIiAv
PgogICA8cGVybWl0cyByZGY6cmVzb3VyY2U9Imh0dHA6Ly93ZWIucmVzb3VyY2Uub3JnL2Nj
L0Rpc3RyaWJ1dGlvbiIgLz4KICAgPHJlcXVpcmVzIHJkZjpyZXNvdXJjZT0iaHR0cDovL3dl
Yi5yZXNvdXJjZS5vcmcvY2MvTm90aWNlIiAvPgogICA8cGVybWl0cyByZGY6cmVzb3VyY2U9
Imh0dHA6Ly93ZWIucmVzb3VyY2Uub3JnL2NjL0Rlcml2YXRpdmVXb3JrcyIgLz4KICAgPHJl
cXVpcmVzIHJkZjpyZXNvdXJjZT0iaHR0cDovL3dlYi5yZXNvdXJjZS5vcmcvY2MvU2hhcmVB
bGlrZSIgLz4KICAgPHJlcXVpcmVzIHJkZjpyZXNvdXJjZT0iaHR0cDovL3dlYi5yZXNvdXJj
ZS5vcmcvY2MvU291cmNlQ29kZSIgLz4KPC9MaWNlbnNlPgo8L3JkZjpSREY+Ci0tPgoKPHAg
Y2xhc3M9ImxlZ2FsIj4KVGhpcyB3b3JrIGlzIGxpY2Vuc2VkIHRvIHlvdSB1bmRlciB2ZXJz
aW9uIDIgb2YgdGhlCjxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy8iPkdOVTwvYT4gPGEg
aHJlZj0iL0dQTCI+R2VuZXJhbCBQdWJsaWMgTGljZW5zZTwvYT4uCkFsdGVybmF0aXZlbHks
IHlvdSBtYXkgY2hvb3NlIHRvIHJlY2VpdmUgdGhpcyB3b3JrIHVuZGVyIGFueSBvdGhlcgps
aWNlbnNlIHRoYXQgZ3JhbnRzIHRoZSByaWdodCB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5k
L29yIGRpc3RyaWJ1dGUKdGhlIHdvcmssIGFzIGxvbmcgYXMgdGhhdCBsaWNlbnNlIGltcG9z
ZXMgdGhlIHJlc3RyaWN0aW9uIHRoYXQKZGVyaXZhdGl2ZSB3b3JrcyBoYXZlIHRvIGdyYW50
IHRoZSBzYW1lIHJpZ2h0cyBhbmQgaW1wb3NlIHRoZSBzYW1lCnJlc3RyaWN0aW9uLiBGb3Ig
ZXhhbXBsZSwgeW91IG1heSBjaG9vc2UgdG8gcmVjZWl2ZSB0aGlzIHdvcmsgdW5kZXIKdGhl
CjxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy8iPkdOVTwvYT4KPGEgaHJlZj0iL0ZETCI+
RnJlZSBEb2N1bWVudGF0aW9uIExpY2Vuc2U8L2E+LCB0aGUKPGEgaHJlZj0iaHR0cDovL2Ny
ZWF0aXZlY29tbW9ucy5vcmcvIj5DcmVhdGl2ZUNvbW1vbnM8L2E+CjxhIGhyZWY9Imh0dHA6
Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL3NhLzEuMC8iPlNoYXJlQWxpa2U8L2E+
CkxpY2Vuc2UsIHRoZSBYRW1hY3MgbWFudWFsIGxpY2Vuc2UsIG9yCjxhIGhyZWY9Ii9PTEQi
PnNpbWlsYXIgbGljZW5zZXM8L2E+Lgo8L3A+CjwvZGl2Pg0KMTENCgo8L2JvZHk+CjwvaHRt
bD4KDQowDQoNClBPU1QgL2VtYWNzIEhUVFAvMS4xDQpIb3N0OiB3d3cuZW1hY3N3aWtpLm9y
Zw0KVXNlci1BZ2VudDogTW96aWxsYS81LjAgKFgxMTsgTGludXggaTY4NjsgcnY6MzEuMCkg
R2Vja28vMjAxMDAxMDEgRmlyZWZveC8zMS4wIEljZXdlYXNlbC8zMS4zLjANCkFjY2VwdDog
dGV4dC9odG1sLGFwcGxpY2F0aW9uL3hodG1sK3htbCxhcHBsaWNhdGlvbi94bWw7cT0wLjks
Ki8qO3E9MC44DQpBY2NlcHQtTGFuZ3VhZ2U6IGVuLVVTLGVuO3E9MC41DQpBY2NlcHQtRW5j
b2Rpbmc6IGd6aXAsIGRlZmxhdGUNClJlZmVyZXI6IGh0dHA6Ly93d3cuZW1hY3N3aWtpLm9y
Zy9lbWFjcz9hY3Rpb249ZWRpdDtpZD1UZXN0DQpDb29raWU6IFdpa2k9dWlobnNjdXNrYyUy
NTFlMSUyNTFldXNlcm5hbWUlMjUxZUFub255bW91cw0KQ29ubmVjdGlvbjoga2VlcC1hbGl2
ZQ0KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvZm9ybS1kYXRhOyBib3VuZGFyeT0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0yMDg2OTg5NTYwMTQ0MTQ4NjY0NjE0NjkyOTE1NDkNCkNv
bnRlbnQtTGVuZ3RoOiA5MjENCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0yMDg2
OTg5NTYwMTQ0MTQ4NjY0NjE0NjkyOTE1NDkNCkNvbnRlbnQtRGlzcG9zaXRpb246IGZvcm0t
ZGF0YTsgbmFtZT0idGl0bGUiDQoNClRlc3QNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tMjA4Njk4OTU2MDE0NDE0ODY2NDYxNDY5MjkxNTQ5DQpDb250ZW50LURpc3Bvc2l0aW9u
OiBmb3JtLWRhdGE7IG5hbWU9Im9sZHRpbWUiDQoNCjE0MzY0Mjg5NDANCi0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tMjA4Njk4OTU2MDE0NDE0ODY2NDYxNDY5MjkxNTQ5DQpDb250
ZW50LURpc3Bvc2l0aW9uOiBmb3JtLWRhdGE7IG5hbWU9InRleHQiDQoNCkhlbGxvIFdvcmxk
IQ0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTIwODY5ODk1NjAxNDQxNDg2NjQ2
MTQ2OTI5MTU0OQ0KQ29udGVudC1EaXNwb3NpdGlvbjogZm9ybS1kYXRhOyBuYW1lPSJzdW1t
YXJ5Ig0KDQpUaGlzIGlzIGEgc3BhbSBlZGl0DQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLTIwODY5ODk1NjAxNDQxNDg2NjQ2MTQ2OTI5MTU0OQ0KQ29udGVudC1EaXNwb3NpdGlv
bjogZm9ybS1kYXRhOyBuYW1lPSJ1c2VybmFtZSINCg0KQW5vbnltb3VzDQotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLTIwODY5ODk1NjAxNDQxNDg2NjQ2MTQ2OTI5MTU0OQ0KQ29u
dGVudC1EaXNwb3NpdGlvbjogZm9ybS1kYXRhOyBuYW1lPSJTYXZlIg0KDQpTYXZlDQotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTIwODY5ODk1NjAxNDQxNDg2NjQ2MTQ2OTI5MTU0
OQ0KQ29udGVudC1EaXNwb3NpdGlvbjogZm9ybS1kYXRhOyBuYW1lPSIuY2dpZmllbGRzIg0K
DQpyZWNlbnRfZWRpdA0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0yMDg2OTg5NTYw
MTQ0MTQ4NjY0NjE0NjkyOTE1NDktLQ0KSFRUUC8xLjEgMzAyIEZvdW5kDQpTZXJ2ZXI6IG5n
aW54LzEuNC42IChVYnVudHUpDQpEYXRlOiBUaHUsIDA5IEp1bCAyMDE1IDA4OjA0OjMyIEdN
VA0KQ29udGVudC1UeXBlOiB0ZXh0L3gtcGVybA0KQ29udGVudC1MZW5ndGg6IDANCkNvbm5l
Y3Rpb246IGtlZXAtYWxpdmUNCkxvY2F0aW9uOiBodHRwOi8vd3d3LmVtYWNzd2lraS5vcmcv
ZW1hY3MvVGVzdA0KWC1FbWFjc1dpa2ktU291cmNlOiBBcGFjaGUvQ0dJDQoNCkdFVCAvZW1h
Y3MvVGVzdCBIVFRQLzEuMQ0KSG9zdDogd3d3LmVtYWNzd2lraS5vcmcNClVzZXItQWdlbnQ6
IE1vemlsbGEvNS4wIChYMTE7IExpbnV4IGk2ODY7IHJ2OjMxLjApIEdlY2tvLzIwMTAwMTAx
IEZpcmVmb3gvMzEuMCBJY2V3ZWFzZWwvMzEuMy4wDQpBY2NlcHQ6IHRleHQvaHRtbCxhcHBs
aWNhdGlvbi94aHRtbCt4bWwsYXBwbGljYXRpb24veG1sO3E9MC45LCovKjtxPTAuOA0KQWNj
ZXB0LUxhbmd1YWdlOiBlbi1VUyxlbjtxPTAuNQ0KQWNjZXB0LUVuY29kaW5nOiBnemlwLCBk
ZWZsYXRlDQpSZWZlcmVyOiBodHRwOi8vd3d3LmVtYWNzd2lraS5vcmcvZW1hY3M/YWN0aW9u
PWVkaXQ7aWQ9VGVzdA0KQ29va2llOiBXaWtpPXVpaG5zY3Vza2MlMjUxZTElMjUxZXVzZXJu
YW1lJTI1MWVBbm9ueW1vdXMNCkNvbm5lY3Rpb246IGtlZXAtYWxpdmUNCg0KSFRUUC8xLjEg
MjAwIE9LDQpTZXJ2ZXI6IG5naW54LzEuNC42IChVYnVudHUpDQpEYXRlOiBUaHUsIDA5IEp1
bCAyMDE1IDA4OjA0OjMzIEdNVA0KQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9
dXRmLTgNClRyYW5zZmVyLUVuY29kaW5nOiBjaHVua2VkDQpDb25uZWN0aW9uOiBrZWVwLWFs
aXZlDQpWYXJ5OiBBY2NlcHQtTGFuZ3VhZ2UNClgtRW1hY3NXaWtpLVNvdXJjZTogQXBhY2hl
L0NHSQ0KWC1Qcm94eS1DYWNoZTogQllQQVNTDQoNCmVjNA0KPCFET0NUWVBFIGh0bWwgUFVC
TElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIgImh0dHA6Ly93d3cudzMu
b3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgo8aHRtbCB4bWxucz0iaHR0
cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+PGhlYWQ+PHRpdGxlPkVtYWNzV2lraTogVGVz
dDwvdGl0bGU+PGxpbmsgcmVsPSJhbHRlcm5hdGUiIHR5cGU9ImFwcGxpY2F0aW9uL3dpa2ki
IHRpdGxlPSJFZGl0IHRoaXMgcGFnZSIgaHJlZj0iaHR0cDovL3d3dy5lbWFjc3dpa2kub3Jn
L2VtYWNzP2FjdGlvbj1lZGl0O2lkPVRlc3QiIC8+CjxsaW5rIHR5cGU9InRleHQvY3NzIiBy
ZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHA6Ly9uZXRkbmEuYm9vdHN0cmFwY2RuLmNvbS90
d2l0dGVyLWJvb3RzdHJhcC8yLjMuMC9jc3MvYm9vdHN0cmFwLWNvbWJpbmVkLm1pbi5jc3Mi
IC8+CjxsaW5rIHR5cGU9InRleHQvY3NzIiByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii9jc3Mv
Ym9vdHN0cmFwLmNzcyIgLz4KPG1ldGEgbmFtZT0icm9ib3RzIiBjb250ZW50PSJJTkRFWCxG
T0xMT1ciIC8+PGxpbmsgcmVsPSJhbHRlcm5hdGUiIHR5cGU9ImFwcGxpY2F0aW9uL3Jzcyt4
bWwiIHRpdGxlPSJFbWFjc1dpa2kiIGhyZWY9Imh0dHA6Ly93d3cuZW1hY3N3aWtpLm9yZy9l
bWFjcz9hY3Rpb249cnNzIiAvPjxsaW5rIHJlbD0iYWx0ZXJuYXRlIiB0eXBlPSJhcHBsaWNh
dGlvbi9yc3MreG1sIiB0aXRsZT0iRW1hY3NXaWtpOiBUZXN0IiBocmVmPSJodHRwOi8vd3d3
LmVtYWNzd2lraS5vcmcvZW1hY3M/YWN0aW9uPXJzcztyY2lkb25seT1UZXN0IiAvPjxsaW5r
IHJlbD0iYWx0ZXJuYXRlIiB0eXBlPSJhcHBsaWNhdGlvbi9yc3MreG1sIiB0aXRsZT0iRm9s
bG93LXVwcyBmb3IgQW5vbnltb3VzIiBocmVmPSJodHRwOi8vd3d3LmVtYWNzd2lraS5vcmcv
ZW1hY3M/YWN0aW9uPXJzcztmb2xsb3d1cD1Bbm9ueW1vdXMiIC8+CjxsaW5rIHJlbD0iYWx0
ZXJuYXRlIiB0eXBlPSJhcHBsaWNhdGlvbi9yc3MreG1sIgogICAgICB0aXRsZT0iRW1hY3Mg
V2lraSB3aXRoIHBhZ2UgY29udGVudCIKICAgICAgaHJlZj0iaHR0cDovL3d3dy5lbWFjc3dp
a2kub3JnL2Z1bGwucnNzIiAvPgo8bGluayByZWw9ImFsdGVybmF0ZSIgdHlwZT0iYXBwbGlj
YXRpb24vcnNzK3htbCIKICAgICAgdGl0bGU9IkVtYWNzIFdpa2kgd2l0aCBwYWdlIGNvbnRl
bnQgYW5kIGRpZmYiCiAgICAgIGhyZWY9Imh0dHA6Ly93d3cuZW1hY3N3aWtpLm9yZy9mdWxs
LWRpZmYucnNzIiAvPgo8bGluayByZWw9ImFsdGVybmF0ZSIgdHlwZT0iYXBwbGljYXRpb24v
cnNzK3htbCIKICAgICAgdGl0bGU9IkVtYWNzIFdpa2kgaW5jbHVkaW5nIG1pbm9yIGRpZmZl
cmVuY2VzIgogICAgICBocmVmPSJodHRwOi8vd3d3LmVtYWNzd2lraS5vcmcvbWlub3ItZWRp
dHMucnNzIiAvPgo8bGluayByZWw9ImFsdGVybmF0ZSIgdHlwZT0iYXBwbGljYXRpb24vcnNz
K3htbCIKICAgICAgdGl0bGU9IkNoYW5nZXMgZm9yIFRlc3Qgb25seSIKICAgICAgaHJlZj0i
aHR0cDovL3d3dy5lbWFjc3dpa2kub3JnL2VtYWNzP2FjdGlvbj1yc3M7cmNpZG9ubHk9VGVz
dCIgLz4KPGxpbmsgcmVsPSJhbHRlcm5hdGUiIHR5cGU9ImFwcGxpY2F0aW9uL3Jzcyt4bWwi
CiAgICAgIHRpdGxlPSJGb2xsb3ctdXBzIHRvIEFub255bW91cyIKICAgICAgaHJlZj0iaHR0
cDovL3d3dy5lbWFjc3dpa2kub3JnL2VtYWNzP2FjdGlvbj1yc3M7Zm9sbG93dXA9QW5vbnlt
b3VzIiAvPgo8bWV0YSBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgiIG5hbWU9InZpZXdw
b3J0IiAvPgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIvb3V0bGluZXIu
MC41LjAuNjItdG9jLmpzIj48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiPgoKICBmdW5jdGlvbiBhZGRPbmxvYWRFdmVudChmbmMpIHsKICAgIGlmICggdHlwZW9m
IHdpbmRvdy5hZGRFdmVudExpc3RlbmVyICE9ICJ1bmRlZmluZWQiICkKICAgICAgd2luZG93
LmFkZEV2ZW50TGlzdGVuZXIoICJsb2FkIiwgZm5jLCBmYWxzZSApOwogICAgZWxzZSBpZiAo
IHR5cGVvZiB3aW5kb3cuYXR0YWNoRXZlbnQgIT0gInVuZGVmaW5lZCIgKSB7CiAgICAgIHdp
bmRvdy5hdHRhY2hFdmVudCggIm9ubG9hZCIsIGZuYyApOwogICAgfQogICAgZWxzZSB7CiAg
ICAgIGlmICggd2luZG93Lm9ubG9hZCAhPSBudWxsICkgewoJdmFyIG9sZE9ubG9hZCA9IHdp
bmRvdy5vbmxvYWQ7Cgl3aW5kb3cub25sb2FkID0gZnVuY3Rpb24gKCBlICkgewoJICBvbGRP
bmxvYWQoIGUgKTsKCSAgd2luZG93W2ZuY10oKTsKCX07CiAgICAgIH0KICAgICAgZWxzZQoJ
d2luZG93Lm9ubG9hZCA9IGZuYzsKICAgIH0KICB9CgogIC8vIGh0dHBzOi8vc3RhY2tvdmVy
Zmxvdy5jb20vcXVlc3Rpb25zLzI4MDYzNC9lbmRzd2l0aC1pbi1qYXZhc2NyaXB0CiAgaWYg
KHR5cGVvZiBTdHJpbmcucHJvdG90eXBlLmVuZHNXaXRoICE9PSAnZnVuY3Rpb24nKSB7CiAg
ICBTdHJpbmcucHJvdG90eXBlLmVuZHNXaXRoID0gZnVuY3Rpb24oc3VmZml4KSB7CiAgICAg
IHJldHVybiB0aGlzLmluZGV4T2Yoc3VmZml4LCB0aGlzLmxlbmd0aCAtIHN1ZmZpeC5sZW5n
dGgpICE9PSAtMTsKICAgIH07CiAgfQoKICB2YXIgaW5pdFRvYz1mdW5jdGlvbigpIHsKCiAg
ICB2YXIgb3V0bGluZSA9IEhUTUw1T3V0bGluZShkb2N1bWVudC5ib2R5KTsKICAgIGlmIChv
dXRsaW5lLnNlY3Rpb25zLmxlbmd0aCA9PSAxKSB7CiAgICAgIG91dGxpbmUuc2VjdGlvbnMg
PSBvdXRsaW5lLnNlY3Rpb25zWzBdLnNlY3Rpb25zOwogICAgfQoKICAgIGlmIChvdXRsaW5l
LnNlY3Rpb25zLmxlbmd0aCA+IDEKCXx8IG91dGxpbmUuc2VjdGlvbnMubGVuZ3RoID09IDEK
ICAgICAgICAgICAmJiBvdXRsaW5lLnNlY3Rpb25zWzBdLnNlY3Rpb25zLmxlbmd0aCA+IDAp
IHsKCiAgICAgIHZhciB0b2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9jJyk7Cgog
ICAgICBpZiAoIXRvYykgewoJdmFyIGRpdnMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFn
TmFtZSgnZGl2Jyk7Cglmb3IgKHZhciBpID0gMDsgaSA8IGRpdnMubGVuZ3RoOyBpKyspIHsK
CSAgaWYgKGRpdnNbaV0uZ2V0QXR0cmlidXRlKCdjbGFzcycpID09ICd0b2MnKSB7CgkgICAg
dG9jID0gZGl2c1tpXTsKCSAgICBicmVhazsKCSAgfQoJfQogICAgICB9CgogICAgICBpZiAo
IXRvYykgewoJdmFyIGgyID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2gyJylb
MF07CglpZiAoaDIpIHsKCSAgdG9jID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7
CgkgIHRvYy5zZXRBdHRyaWJ1dGUoJ2NsYXNzJywgJ3RvYycpOwoJICBoMi5wYXJlbnROb2Rl
Lmluc2VydEJlZm9yZSh0b2MsIGgyKTsKCX0KICAgICAgfQoKICAgICAgaWYgKHRvYykgewog
ICAgICAgIHZhciBodG1sID0gb3V0bGluZS5hc0hUTUwodHJ1ZSk7CiAgICAgICAgdG9jLmlu
bmVySFRNTCA9IGh0bWw7CgoJaXRlbXMgPSB0b2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2En
KTsKCWZvciAodmFyIGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspIHsKCSAgd2hpbGUg
KGl0ZW1zW2ldLnRleHRDb250ZW50LmVuZHNXaXRoKCfDosKcwo4nKSkgewogICAgICAgICAg
ICB2YXIgdGV4dCA9IGl0ZW1zW2ldLmNoaWxkTm9kZXNbMF0ubm9kZVZhbHVlOwoJICAgIGl0
ZW1zW2ldLmNoaWxkTm9kZXNbMF0ubm9kZVZhbHVlID0gdGV4dC5zdWJzdHJpbmcoMCwgdGV4
dC5sZW5ndGggLSAxKTsKCSAgfQoJfQogICAgICB9CiAgICB9DQo3MzkNCgogIH0KCiAgYWRk
T25sb2FkRXZlbnQoaW5pdFRvYyk7CiAgPC9zY3JpcHQ+Cgo8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSJodHRwOi8vY29kZS5qcXVlcnkuY29tL2pxdWVyeS0xLjkuMS5t
aW4uanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJo
dHRwOi8vbmV0ZG5hLmJvb3RzdHJhcGNkbi5jb20vdHdpdHRlci1ib290c3RyYXAvMi4zLjAv
anMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9Imh0dHA6Ly9lbWFjc3dpa2kub3JnL2Jvb3RzdHJhcC5qcyI+PC9zY3Jp
cHQ+CjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1s
OyBjaGFyc2V0PXV0Zi04IiAvPjwvaGVhZD48Ym9keSBjbGFzcz0iaHR0cDovL3d3dy5lbWFj
c3dpa2kub3JnL2VtYWNzIj48ZGl2IGNsYXNzPSJoZWFkZXIiPjxkaXYgY2xhc3M9Im1lbnUi
PjxzcGFuIGNsYXNzPSJnb3RvYmFyIGJhciI+PGEgaHJlZj0iaHR0cDovL3d3dy5lbWFjc3dp
a2kub3JnL2VtYWNzL1NpdGVNYXAiIGNsYXNzPSJsb2NhbCI+U2l0ZU1hcDwvYT4gPGEgY2xh
c3M9ImxvY2FsIiBocmVmPSJodHRwOi8vd3d3LmVtYWNzd2lraS5vcmcvZW1hY3MvU2VhcmNo
Ij5TZWFyY2g8L2E+IDxhIGNsYXNzPSJsb2NhbCIgaHJlZj0iaHR0cDovL3d3dy5lbWFjc3dp
a2kub3JnL2VtYWNzL0VsaXNwQXJlYSI+RWxpc3BBcmVhPC9hPiA8YSBocmVmPSJodHRwOi8v
d3d3LmVtYWNzd2lraS5vcmcvZW1hY3MvSG93VG8iIGNsYXNzPSJsb2NhbCI+SG93VG88L2E+
IDxhIGhyZWY9Imh0dHA6Ly93d3cuZW1hY3N3aWtpLm9yZy9lbWFjcy9HbG9zc2FyeSIgY2xh
c3M9ImxvY2FsIj5HbG9zc2FyeTwvYT4gPGEgY2xhc3M9ImxvY2FsIiBocmVmPSJodHRwOi8v
d3d3LmVtYWNzd2lraS5vcmcvZW1hY3MvUmVjZW50Q2hhbmdlcyI+UmVjZW50Q2hhbmdlczwv
YT4gPGEgaHJlZj0iaHR0cDovL3d3dy5lbWFjc3dpa2kub3JnL2VtYWNzL05ld3MiIGNsYXNz
PSJsb2NhbCI+TmV3czwvYT4gPGEgY2xhc3M9ImxvY2FsIiBocmVmPSJodHRwOi8vd3d3LmVt
YWNzd2lraS5vcmcvZW1hY3MvUHJvYmxlbXMiPlByb2JsZW1zPC9hPiA8YSBjbGFzcz0ibG9j
YWwiIGhyZWY9Imh0dHA6Ly93d3cuZW1hY3N3aWtpLm9yZy9lbWFjcy9TdWdnZXN0aW9ucyI+
U3VnZ2VzdGlvbnM8L2E+IDwvc3Bhbj48Zm9ybSBtZXRob2Q9ImdldCIgYWN0aW9uPSJodHRw
Oi8vd3d3LmVtYWNzd2lraS5vcmcvZW1hY3MiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRh
dGEiIGNsYXNzPSJzZWFyY2giIGFjY2VwdC1jaGFyc2V0PSJ1dGYtOCI+PHA+PGxhYmVsIGZv
cj0ic2VhcmNoIj5TZWFyY2g6PC9sYWJlbD4gPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InNl
YXJjaCIgIHNpemU9IjIwIiBpZD0ic2VhcmNoIiBhY2Nlc3NrZXk9ImYiIC8+IDxsYWJlbCBm
b3I9InNlYXJjaGxhbmciPkxhbmd1YWdlOjwvbGFiZWw+IDxpbnB1dCB0eXBlPSJ0ZXh0IiBu
YW1lPSJsYW5nIiAgc2l6ZT0iMTAiIGlkPSJzZWFyY2hsYW5nIiAvPiA8aW5wdXQgdHlwZT0i
c3VibWl0IiBuYW1lPSJkb3NlYXJjaCIgdmFsdWU9IkdvISIgLz48L3A+PC9mb3JtPjwvZGl2
PjxoMT48YSByZWw9Im5vZm9sbG93IiB0aXRsZT0iQ2xpY2sgdG8gc2VhcmNoIGZvciByZWZl
cmVuY2VzIHRvIHRoaXMgcGFnZSIgaHJlZj0iaHR0cDovL3d3dy5lbWFjc3dpa2kub3JnL2Vt
YWNzP3NlYXJjaD0lMjJUZXN0JTIyIj5UZXN0PC9hPjwvaDE+PC9kaXY+PGRpdiBjbGFzcz0i
d3JhcHBlciI+PGRpdiBjbGFzcz0iY29udGVudCBicm93c2UiPjxwPkhlbGxvIFdvcmxkITwv
cD4NCjYNCjwvZGl2Pg0KMjcNCjxkaXYgY2xhc3M9IndyYXBwZXIgY2xvc2UiPjwvZGl2Pjwv
ZGl2Pg0KMWENCjxkaXYgY2xhc3M9ImZvb3RlciI+PGhyIC8+DQpiNGYNCjxzcGFuIGNsYXNz
PSJ0cmFuc2xhdGlvbiBiYXIiPjxiciAvPiAgPGEgcmVsPSJub2ZvbGxvdyIgaHJlZj0iaHR0
cDovL3d3dy5lbWFjc3dpa2kub3JnL2VtYWNzP2FjdGlvbj10cmFuc2xhdGU7aWQ9VGVzdDtt
aXNzaW5nPWRlX2VuX2VzX2ZyX2l0X2phX2tvX3B0X3J1X3NlX3VrX3poIiBjbGFzcz0idHJh
bnNsYXRpb24gbmV3Ij5BZGQgVHJhbnNsYXRpb248L2E+PC9zcGFuPjxkaXYgY2xhc3M9ImVk
aXQgYmFyIj48YSBjbGFzcz0iY29tbWVudCBsb2NhbCBlZGl0IiBhY2Nlc3NrZXk9ImMiIGhy
ZWY9Imh0dHA6Ly93d3cuZW1hY3N3aWtpLm9yZy9lbWFjcy9Db21tZW50c19vbl9UZXN0Ij5U
YWxrPC9hPiA8YSBjbGFzcz0iZWRpdCIgaHJlZj0iaHR0cDovL3d3dy5lbWFjc3dpa2kub3Jn
L2VtYWNzP2FjdGlvbj1lZGl0O2lkPVRlc3QiIGFjY2Vzc2tleT0iZSIgcmVsPSJub2ZvbGxv
dyIgdGl0bGU9IkNsaWNrIHRvIGVkaXQgdGhpcyBwYWdlIj5FZGl0IHRoaXMgcGFnZTwvYT4g
PGEgcmVsPSJub2ZvbGxvdyIgaHJlZj0iaHR0cDovL3d3dy5lbWFjc3dpa2kub3JnL2VtYWNz
P2FjdGlvbj1oaXN0b3J5O2lkPVRlc3QiIGNsYXNzPSJoaXN0b3J5Ij5WaWV3IG90aGVyIHJl
dmlzaW9uczwvYT4gPGEgaHJlZj0iaHR0cDovL3d3dy5lbWFjc3dpa2kub3JnL2VtYWNzP2Fj
dGlvbj1hZG1pbjtpZD1UZXN0IiBjbGFzcz0iYWRtaW4iIHJlbD0ibm9mb2xsb3ciPkFkbWlu
aXN0cmF0aW9uPC9hPjwvZGl2PjxkaXYgY2xhc3M9InRpbWUiPkxhc3QgZWRpdGVkIDIwMTUt
MDctMDkgMDg6MDQgVVRDIGJ5IDxhIGNsYXNzPSJhdXRob3IiIGhyZWY9Imh0dHA6Ly93d3cu
ZW1hY3N3aWtpLm9yZy9lbWFjcy9Bbm9ueW1vdXMiIHRpdGxlPSIxMDYuMjE2LjE1OC4zNiI+
QW5vbnltb3VzPC9hPiA8YSByZWw9Im5vZm9sbG93IiBjbGFzcz0iZGlmZiIgaHJlZj0iaHR0
cDovL3d3dy5lbWFjc3dpa2kub3JnL2VtYWNzP2FjdGlvbj1icm93c2U7ZGlmZj0yO2lkPVRl
c3QiPihkaWZmKTwvYT48L2Rpdj48ZGl2IHN0eWxlPSJmbG9hdDpyaWdodDsgbWFyZ2luLWxl
ZnQ6MWV4OyI+CjwhLS0gQ3JlYXRpdmUgQ29tbW9ucyBMaWNlbnNlIC0tPgo8YSBjbGFzcz0i
bGljZW5jZSIgaHJlZj0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvR1BM
LzIuMC8iPjxpbWcgYWx0PSJDQy1HTlUgR1BMIiBzdHlsZT0iYm9yZGVyOm5vbmUiIHNyYz0i
L3BpY3MvY2MtR1BMLWEucG5nIiAvPjwvYT4KPCEtLSAvQ3JlYXRpdmUgQ29tbW9ucyBMaWNl
bnNlIC0tPgo8L2Rpdj4KCjwhLS0KPHJkZjpSREYgeG1sbnM9Imh0dHA6Ly93ZWIucmVzb3Vy
Y2Uub3JnL2NjLyIKIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4x
LyIKIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4
LW5zIyI+CjxXb3JrIHJkZjphYm91dD0iIj4KICAgPGxpY2Vuc2UgcmRmOnJlc291cmNlPSJo
dHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9HUEwvMi4wLyIgLz4KICA8ZGM6
dHlwZSByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9Tb2Z0d2Fy
ZSIgLz4KPC9Xb3JrPgoKPExpY2Vuc2UgcmRmOmFib3V0PSJodHRwOi8vY3JlYXRpdmVjb21t
b25zLm9yZy9saWNlbnNlcy9HUEwvMi4wLyI+CiAgIDxwZXJtaXRzIHJkZjpyZXNvdXJjZT0i
aHR0cDovL3dlYi5yZXNvdXJjZS5vcmcvY2MvUmVwcm9kdWN0aW9uIiAvPgogICA8cGVybWl0
cyByZGY6cmVzb3VyY2U9Imh0dHA6Ly93ZWIucmVzb3VyY2Uub3JnL2NjL0Rpc3RyaWJ1dGlv
biIgLz4KICAgPHJlcXVpcmVzIHJkZjpyZXNvdXJjZT0iaHR0cDovL3dlYi5yZXNvdXJjZS5v
cmcvY2MvTm90aWNlIiAvPgogICA8cGVybWl0cyByZGY6cmVzb3VyY2U9Imh0dHA6Ly93ZWIu
cmVzb3VyY2Uub3JnL2NjL0Rlcml2YXRpdmVXb3JrcyIgLz4KICAgPHJlcXVpcmVzIHJkZjpy
ZXNvdXJjZT0iaHR0cDovL3dlYi5yZXNvdXJjZS5vcmcvY2MvU2hhcmVBbGlrZSIgLz4KICAg
PHJlcXVpcmVzIHJkZjpyZXNvdXJjZT0iaHR0cDovL3dlYi5yZXNvdXJjZS5vcmcvY2MvU291
cmNlQ29kZSIgLz4KPC9MaWNlbnNlPgo8L3JkZjpSREY+Ci0tPgoKPHAgY2xhc3M9ImxlZ2Fs
Ij4KVGhpcyB3b3JrIGlzIGxpY2Vuc2VkIHRvIHlvdSB1bmRlciB2ZXJzaW9uIDIgb2YgdGhl
CjxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy8iPkdOVTwvYT4gPGEgaHJlZj0iL0dQTCI+
R2VuZXJhbCBQdWJsaWMgTGljZW5zZTwvYT4uCkFsdGVybmF0aXZlbHksIHlvdSBtYXkgY2hv
b3NlIHRvIHJlY2VpdmUgdGhpcyB3b3JrIHVuZGVyIGFueSBvdGhlcgpsaWNlbnNlIHRoYXQg
Z3JhbnRzIHRoZSByaWdodCB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1
dGUKdGhlIHdvcmssIGFzIGxvbmcgYXMgdGhhdCBsaWNlbnNlIGltcG9zZXMgdGhlIHJlc3Ry
aWN0aW9uIHRoYXQKZGVyaXZhdGl2ZSB3b3JrcyBoYXZlIHRvIGdyYW50IHRoZSBzYW1lIHJp
Z2h0cyBhbmQgaW1wb3NlIHRoZSBzYW1lCnJlc3RyaWN0aW9uLiBGb3IgZXhhbXBsZSwgeW91
IG1heSBjaG9vc2UgdG8gcmVjZWl2ZSB0aGlzIHdvcmsgdW5kZXIKdGhlCjxhIGhyZWY9Imh0
dHA6Ly93d3cuZ251Lm9yZy8iPkdOVTwvYT4KPGEgaHJlZj0iL0ZETCI+RnJlZSBEb2N1bWVu
dGF0aW9uIExpY2Vuc2U8L2E+LCB0aGUKPGEgaHJlZj0iaHR0cDovL2NyZWF0aXZlY29tbW9u
cy5vcmcvIj5DcmVhdGl2ZUNvbW1vbnM8L2E+CjxhIGhyZWY9Imh0dHA6Ly9jcmVhdGl2ZWNv
bW1vbnMub3JnL2xpY2Vuc2VzL3NhLzEuMC8iPlNoYXJlQWxpa2U8L2E+CkxpY2Vuc2UsIHRo
ZSBYRW1hY3MgbWFudWFsIGxpY2Vuc2UsIG9yCjxhIGhyZWY9Ii9PTEQiPnNpbWlsYXIgbGlj
ZW5zZXM8L2E+Lgo8L3A+CjwvZGl2Pg0KMTENCgo8L2JvZHk+CjwvaHRtbD4KDQowDQoNCg==
--------------070802080004060405060703--




Acknowledgement sent to Vaidheeswaran C <vaidheeswaran.chinnaraju@HIDDEN>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs@HIDDEN. Full text available.
Report forwarded to bug-gnu-emacs@HIDDEN:
bug#21017; Package emacs. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Mon, 25 Nov 2019 12:00:02 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.