X-Loop: help-debbugs@HIDDEN Subject: bug#21017: url-http: synchronous post and 302 error response not handled properly Resent-From: Vaidheeswaran C <vaidheeswaran.chinnaraju@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Thu, 09 Jul 2015 15:32:01 +0000 Resent-Message-ID: <handler.21017.B.143645587116297 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: report 21017 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 21017 <at> debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@HIDDEN Received: via spool by submit <at> debbugs.gnu.org id=B.143645587116297 (code B ref -1); Thu, 09 Jul 2015 15:32:01 +0000 Received: (at submit) by debbugs.gnu.org; 9 Jul 2015 15:31:11 +0000 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 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-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--
Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.503 (Entity 5.503) Content-Type: text/plain; charset=utf-8 X-Loop: help-debbugs@HIDDEN From: help-debbugs@HIDDEN (GNU bug Tracking System) To: Vaidheeswaran C <vaidheeswaran.chinnaraju@HIDDEN> Subject: bug#21017: Acknowledgement (url-http: synchronous post and 302 error response not handled properly) Message-ID: <handler.21017.B.143645587116297.ack <at> debbugs.gnu.org> References: <559E2F13.3080801@HIDDEN> X-Gnu-PR-Message: ack 21017 X-Gnu-PR-Package: emacs Reply-To: 21017 <at> debbugs.gnu.org Date: Thu, 09 Jul 2015 15:32:01 +0000 Thank you for filing a new bug report with debbugs.gnu.org. This is an automatically generated reply to let you know your message has been received. Your message is being forwarded to the package maintainers and other interested parties for their attention; they will reply in due course. Your message has been sent to the package maintainer(s): bug-gnu-emacs@HIDDEN If you wish to submit further information on this problem, please send it to 21017 <at> debbugs.gnu.org. Please do not send mail to help-debbugs@HIDDEN unless you wish to report a problem with the Bug-tracking system. --=20 21017: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D21017 GNU Bug Tracking System Contact help-debbugs@HIDDEN with problems
X-Loop: help-debbugs@HIDDEN Subject: bug#21017: url-http: synchronous post and 302 error response not handled properly Resent-From: Glenn Morris <rgm@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Thu, 09 Jul 2015 15:37:02 +0000 Resent-Message-ID: <handler.21017.B21017.143645621116923 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 21017 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 21017 <at> debbugs.gnu.org Received: via spool by 21017-submit <at> debbugs.gnu.org id=B21017.143645621116923 (code B ref 21017); Thu, 09 Jul 2015 15:37:02 +0000 Received: (at 21017) by debbugs.gnu.org; 9 Jul 2015 15:36:51 +0000 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> 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-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
Received: (at control) by debbugs.gnu.org; 9 Jul 2015 15:37:11 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Jul 09 11:37:11 2015 Received: from localhost ([127.0.0.1]:45342 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1ZDDst-0004Pn-Bj for submit <at> debbugs.gnu.org; Thu, 09 Jul 2015 11:37:11 -0400 Received: from eggs.gnu.org ([208.118.235.92]:44240) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from <rgm@HIDDEN>) id 1ZDDsr-0004Pb-Sa for control <at> debbugs.gnu.org; Thu, 09 Jul 2015 11:37:10 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from <rgm@HIDDEN>) id 1ZDDsl-0006or-Rc for control <at> debbugs.gnu.org; Thu, 09 Jul 2015 11:37:04 -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]:50455) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <rgm@HIDDEN>) id 1ZDDsl-0006oj-Gn for control <at> debbugs.gnu.org; Thu, 09 Jul 2015 11:37:03 -0400 Received: from rgm by fencepost.gnu.org with local (Exim 4.82) (envelope-from <rgm@HIDDEN>) id 1ZDDsl-00037n-7X for control <at> debbugs.gnu.org; Thu, 09 Jul 2015 11:37:03 -0400 Subject: control message for bug 21017 To: <control <at> debbugs.gnu.org> X-Mailer: mail (GNU Mailutils 2.99.98) Message-Id: <E1ZDDsl-00037n-7X@HIDDEN> From: Glenn Morris <rgm@HIDDEN> Date: Thu, 09 Jul 2015 11:37:03 -0400 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: control 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 (-----) merge 16960 21017
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.