From owner-freebsd-questions@FreeBSD.ORG Wed Jun 7 00:35:26 2006 Return-Path: X-Original-To: freebsd-questions@freebsd.org Delivered-To: freebsd-questions@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id CDC7816AD13 for ; Wed, 7 Jun 2006 00:17:23 +0000 (UTC) (envelope-from john.destefano@gmail.com) Received: from nz-out-0102.google.com (nz-out-0102.google.com [64.233.162.197]) by mx1.FreeBSD.org (Postfix) with ESMTP id DAC5943D45 for ; Wed, 7 Jun 2006 00:17:22 +0000 (GMT) (envelope-from john.destefano@gmail.com) Received: by nz-out-0102.google.com with SMTP id 13so51445nzn for ; Tue, 06 Jun 2006 17:17:22 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:references; b=pXbAGKRIE1/I1Df8zyCMcjxqiOv+ZTPtzO0h9xOPztkeGUpQzm6XQ/H6lGICgOjEctu2TTlUQub7sQAVJyKt2cjZrA/A4Tocum9QTPiq12PbFoILijjn8kLAcO4xESQXwrT6hciId0INTwoy74cBesEyhPAQHcbzOPCLqGYZgY8= Received: by 10.65.196.16 with SMTP id y16mr5179445qbp; Tue, 06 Jun 2006 17:17:22 -0700 (PDT) Received: by 10.65.150.2 with HTTP; Tue, 6 Jun 2006 17:17:22 -0700 (PDT) Message-ID: Date: Tue, 6 Jun 2006 20:17:22 -0400 From: "John DeStefano" To: "Kevin Kinsey" In-Reply-To: <4485ED7B.201@daleco.biz> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_63980_12306751.1149639442137" References: <4485ED7B.201@daleco.biz> Cc: freebsd-questions@freebsd.org Subject: Re: Virtual hosts and PHP "downloads": php5 and apache22 on FreeBSD 6.1-STABLE X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Jun 2006 00:35:28 -0000 ------=_Part_63980_12306751.1149639442137 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline On 6/6/06, Kevin Kinsey wrote: > John DeStefano wrote: > > I upgraded my system from 5.4-RELEASE to 6.1-STABLE last week, and my > > web server immediately stopped serving PHP pages, where I had no > > problem doing so before. Instead of processing the PHP code on the > > server and displaying the result in a browser, browsing to any page > > containing PHP code resulted in a prompt to download the PHP page as a > > file. > > As you are probably already painfully aware, this is *usually* > due to the absence of the necessary lines in the httpd.conf file; > specifically, AddModule and LoadModule (pointing to the PHP shared > object) and AddType (referring to the MIME type for PHP files). Hi Kevin. Yes: painfully aware at this point. > > > /usr/ports/UPGRADING mentions that PHP has been streamlined and must > > be recompiled to work with Apache and other packages. After > > deinstalling, configuring (where applicable), and reinstalling PHP5, > > php5-extensions, and apache2 to the latest versions, not only were PHP > > files not being served, but my web server was toast: > > "Forbidden You don't have permission to access / on this server." > > Not toast, exactly. Another configuration error, most likely. > httpd.conf tells the server which file(s) is/are acceptable as > INDEX files. If all your index files were "index.php", for > example, and the httpd.conf file (which is new, apparently?) says > that only "index.html" files are allowed as INDEX files, you'll > get this error every time. Yup... and with apache22, one of the benefits is that the PHP file handler lines are automatically filled in when compiling PHP (although I assume that would be the case with any version of apache as well). > > > I edited the new apache config file (now located in > > /usr/local/etc/apache22/httpd.conf) with my system information, > > including a DocumentRoot path. But when I started apache, I got some > > very peculiar errors: > > "Warning: DocumentRoot [/www/docs/dummy-host.example.com] does not exist > > Warning: DocumentRoot [/www/docs/dummy-host2.example.com] does not exist" > > > > Not only did I confirm beforehand that I had set the DocumentRoot > > path, and that apache was using the correct config file... but these > > "dummy" paths didn't exist in the config file! I learned eventually > > that a new apache directive splits out virtual host directives to a > > new include file (/usr/local/etc/apache22/extra/httpd-vhosts.conf). > > Then I learned after getting a server warning ("NameVirtualHost *:80 > > has no VirtualHosts") that the syntax has been slightly modified, so > > that the IP/port value of each VirtualHost specification must match > > that of the NameVirtualHost directive (i.e., "NameVirtualHost *:80" > > and ""). > > > > Still having trouble though: my "main" site loads properly, but the > > other virtual hosts aren't. Browsing to any virtual host address other > > than the default results in either the wrong content or an error. > > Here's what my httpd-vhosts.conf looks like: > > > > NameVirtualHost *:80 > > > > > > ServerName www.SiteA.com > > ServerAlias SiteA.com *.SiteA.com > > DocumentRoot /usr/www > > ErrorLog /var/log/httpd-SiteA-error.log > > CustomLog /var/log/httpd-SiteA-access.log combined > > > > > > > > ServerName www.SiteB.com > > ServerAlias SiteB.com *.SiteB.com > > DocumentRoot /usr/www2 > > ErrorLog /var/log/httpd-SiteB-error.log > > CustomLog /var/log/httpd-SiteB-access.log combined > > > > > > IANAE here, but that's not like my httpd.conf, in which > the ports aren't specified. I also don't use ServerAlias > directives. Like I said, no expert. Right: that's not from the httpd.conf file itself any longer; it's the httpd-vhosts.conf file, which is called on as an include in the 2.2 version of httpd.conf. In earlier versions, the VirtualHost directives have been moved from the main config file to that include file. And the IP/port specification for each VirtualHost entry must now match that of the NameVirtualHost entry (as shown above). > > > So, what's happening is that SiteA works as expected, but browsing to > > SiteB brings you to SiteA, or doesn't load at all ("403" error). > > > > In addition, I'm back to my original problem, where PHP files are not > > loading, and browsing to a PHP page prompts the user to download the > > page as a file. > > > > Any help on either the virtual hosts or the PHP download issue would > > be greatly appreciated. > > > > You said you did this already, but I'd again make **sure** > I was editing the correct httpd.conf. Get the right syntax, > and it'll be there. Watch out for "IF" syntax, also. I triple-checked the config to make sure apache is loading the correct config file. In fact, I've finally gotten the config to the point where none of the apache self-tests report any syntax or configuration errors at all. Unfortunately, that doesn't mean it works as I'd expected; just means there are no syntax errors. > > Can you post the relevant lines (AddModule, LoadModule, AddType) > and whether or not they are contained in an "IF" ?? Please find my httpd.conf and httpd-vhosts.conf files attached (didn't want to clutter the list) in their current states. Let me know what you think? Thank you, ~John ------=_Part_63980_12306751.1149639442137 Content-Type: text/plain; name="httpd.conf" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="httpd.conf" X-Attachment-Id: f_eo4xnaz2 IwojIFRoaXMgaXMgdGhlIG1haW4gQXBhY2hlIEhUVFAgc2VydmVyIGNvbmZpZ3VyYXRpb24gZmls ZS4gIEl0IGNvbnRhaW5zIHRoZQojIGNvbmZpZ3VyYXRpb24gZGlyZWN0aXZlcyB0aGF0IGdpdmUg dGhlIHNlcnZlciBpdHMgaW5zdHJ1Y3Rpb25zLgojIFNlZSA8VVJMOmh0dHA6Ly9odHRwZC5hcGFj aGUub3JnL2RvY3MvMi4yPiBmb3IgZGV0YWlsZWQgaW5mb3JtYXRpb24uCiMgSW4gcGFydGljdWxh ciwgc2VlIAojIDxVUkw6aHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvZG9jcy8yLjIvbW9kL2RpcmVj dGl2ZXMuaHRtbD4KIyBmb3IgYSBkaXNjdXNzaW9uIG9mIGVhY2ggY29uZmlndXJhdGlvbiBkaXJl Y3RpdmUuCiMKIyBEbyBOT1Qgc2ltcGx5IHJlYWQgdGhlIGluc3RydWN0aW9ucyBpbiBoZXJlIHdp dGhvdXQgdW5kZXJzdGFuZGluZwojIHdoYXQgdGhleSBkby4gIFRoZXkncmUgaGVyZSBvbmx5IGFz IGhpbnRzIG9yIHJlbWluZGVycy4gIElmIHlvdSBhcmUgdW5zdXJlCiMgY29uc3VsdCB0aGUgb25s aW5lIGRvY3MuIFlvdSBoYXZlIGJlZW4gd2FybmVkLiAgCiMKIyBDb25maWd1cmF0aW9uIGFuZCBs b2dmaWxlIG5hbWVzOiBJZiB0aGUgZmlsZW5hbWVzIHlvdSBzcGVjaWZ5IGZvciBtYW55CiMgb2Yg dGhlIHNlcnZlcidzIGNvbnRyb2wgZmlsZXMgYmVnaW4gd2l0aCAiLyIgKG9yICJkcml2ZTovIiBm b3IgV2luMzIpLCB0aGUKIyBzZXJ2ZXIgd2lsbCB1c2UgdGhhdCBleHBsaWNpdCBwYXRoLiAgSWYg dGhlIGZpbGVuYW1lcyBkbyAqbm90KiBiZWdpbgojIHdpdGggIi8iLCB0aGUgdmFsdWUgb2YgU2Vy dmVyUm9vdCBpcyBwcmVwZW5kZWQgLS0gc28gIi92YXIvbG9nL2Zvby5sb2ciCiMgd2l0aCBTZXJ2 ZXJSb290IHNldCB0byAiL3Vzci9sb2NhbCIgd2lsbCBiZSBpbnRlcnByZXRlZCBieSB0aGUKIyBz ZXJ2ZXIgYXMgIi91c3IvbG9jYWwvL3Zhci9sb2cvZm9vLmxvZyIuCgojCiMgU2VydmVyUm9vdDog VGhlIHRvcCBvZiB0aGUgZGlyZWN0b3J5IHRyZWUgdW5kZXIgd2hpY2ggdGhlIHNlcnZlcidzCiMg Y29uZmlndXJhdGlvbiwgZXJyb3IsIGFuZCBsb2cgZmlsZXMgYXJlIGtlcHQuCiMKIyBEbyBub3Qg YWRkIGEgc2xhc2ggYXQgdGhlIGVuZCBvZiB0aGUgZGlyZWN0b3J5IHBhdGguICBJZiB5b3UgcG9p bnQKIyBTZXJ2ZXJSb290IGF0IGEgbm9uLWxvY2FsIGRpc2ssIGJlIHN1cmUgdG8gcG9pbnQgdGhl IExvY2tGaWxlIGRpcmVjdGl2ZQojIGF0IGEgbG9jYWwgZGlzay4gIElmIHlvdSB3aXNoIHRvIHNo YXJlIHRoZSBzYW1lIFNlcnZlclJvb3QgZm9yIG11bHRpcGxlCiMgaHR0cGQgZGFlbW9ucywgeW91 IHdpbGwgbmVlZCB0byBjaGFuZ2UgYXQgbGVhc3QgTG9ja0ZpbGUgYW5kIFBpZEZpbGUuCiMKU2Vy dmVyUm9vdCAiL3Vzci9sb2NhbCIKCiMKIyBMaXN0ZW46IEFsbG93cyB5b3UgdG8gYmluZCBBcGFj aGUgdG8gc3BlY2lmaWMgSVAgYWRkcmVzc2VzIGFuZC9vcgojIHBvcnRzLCBpbnN0ZWFkIG9mIHRo ZSBkZWZhdWx0LiBTZWUgYWxzbyB0aGUgPFZpcnR1YWxIb3N0PgojIGRpcmVjdGl2ZS4KIwojIENo YW5nZSB0aGlzIHRvIExpc3RlbiBvbiBzcGVjaWZpYyBJUCBhZGRyZXNzZXMgYXMgc2hvd24gYmVs b3cgdG8gCiMgcHJldmVudCBBcGFjaGUgZnJvbSBnbG9tbWluZyBvbnRvIGFsbCBib3VuZCBJUCBh ZGRyZXNzZXMuCiMKI0xpc3RlbiAxMi4zNC41Ni43ODo4MApMaXN0ZW4gODAKCiMKIyBEeW5hbWlj IFNoYXJlZCBPYmplY3QgKERTTykgU3VwcG9ydAojCiMgVG8gYmUgYWJsZSB0byB1c2UgdGhlIGZ1 bmN0aW9uYWxpdHkgb2YgYSBtb2R1bGUgd2hpY2ggd2FzIGJ1aWx0IGFzIGEgRFNPIHlvdQojIGhh dmUgdG8gcGxhY2UgY29ycmVzcG9uZGluZyBgTG9hZE1vZHVsZScgbGluZXMgYXQgdGhpcyBsb2Nh dGlvbiBzbyB0aGUKIyBkaXJlY3RpdmVzIGNvbnRhaW5lZCBpbiBpdCBhcmUgYWN0dWFsbHkgYXZh aWxhYmxlIF9iZWZvcmVfIHRoZXkgYXJlIHVzZWQuCiMgU3RhdGljYWxseSBjb21waWxlZCBtb2R1 bGVzICh0aG9zZSBsaXN0ZWQgYnkgYGh0dHBkIC1sJykgZG8gbm90IG5lZWQKIyB0byBiZSBsb2Fk ZWQgaGVyZS4KIwojIEV4YW1wbGU6CiMgTG9hZE1vZHVsZSBmb29fbW9kdWxlIG1vZHVsZXMvbW9k X2Zvby5zbwojCkxvYWRNb2R1bGUgYXV0aG5fZmlsZV9tb2R1bGUgbGliZXhlYy9hcGFjaGUyMi9t b2RfYXV0aG5fZmlsZS5zbwpMb2FkTW9kdWxlIGF1dGhuX2RibV9tb2R1bGUgbGliZXhlYy9hcGFj aGUyMi9tb2RfYXV0aG5fZGJtLnNvCkxvYWRNb2R1bGUgYXV0aG5fYW5vbl9tb2R1bGUgbGliZXhl Yy9hcGFjaGUyMi9tb2RfYXV0aG5fYW5vbi5zbwpMb2FkTW9kdWxlIGF1dGhuX2RlZmF1bHRfbW9k dWxlIGxpYmV4ZWMvYXBhY2hlMjIvbW9kX2F1dGhuX2RlZmF1bHQuc28KTG9hZE1vZHVsZSBhdXRo el9ob3N0X21vZHVsZSBsaWJleGVjL2FwYWNoZTIyL21vZF9hdXRoel9ob3N0LnNvCkxvYWRNb2R1 bGUgYXV0aHpfZ3JvdXBmaWxlX21vZHVsZSBsaWJleGVjL2FwYWNoZTIyL21vZF9hdXRoel9ncm91 cGZpbGUuc28KTG9hZE1vZHVsZSBhdXRoel91c2VyX21vZHVsZSBsaWJleGVjL2FwYWNoZTIyL21v ZF9hdXRoel91c2VyLnNvCkxvYWRNb2R1bGUgYXV0aHpfZGJtX21vZHVsZSBsaWJleGVjL2FwYWNo ZTIyL21vZF9hdXRoel9kYm0uc28KTG9hZE1vZHVsZSBhdXRoel9vd25lcl9tb2R1bGUgbGliZXhl Yy9hcGFjaGUyMi9tb2RfYXV0aHpfb3duZXIuc28KTG9hZE1vZHVsZSBhdXRoel9kZWZhdWx0X21v ZHVsZSBsaWJleGVjL2FwYWNoZTIyL21vZF9hdXRoel9kZWZhdWx0LnNvCkxvYWRNb2R1bGUgYXV0 aF9iYXNpY19tb2R1bGUgbGliZXhlYy9hcGFjaGUyMi9tb2RfYXV0aF9iYXNpYy5zbwpMb2FkTW9k dWxlIGF1dGhfZGlnZXN0X21vZHVsZSBsaWJleGVjL2FwYWNoZTIyL21vZF9hdXRoX2RpZ2VzdC5z bwpMb2FkTW9kdWxlIGZpbGVfY2FjaGVfbW9kdWxlIGxpYmV4ZWMvYXBhY2hlMjIvbW9kX2ZpbGVf Y2FjaGUuc28KTG9hZE1vZHVsZSBjYWNoZV9tb2R1bGUgbGliZXhlYy9hcGFjaGUyMi9tb2RfY2Fj aGUuc28KTG9hZE1vZHVsZSBkaXNrX2NhY2hlX21vZHVsZSBsaWJleGVjL2FwYWNoZTIyL21vZF9k aXNrX2NhY2hlLnNvCkxvYWRNb2R1bGUgaW5jbHVkZV9tb2R1bGUgbGliZXhlYy9hcGFjaGUyMi9t b2RfaW5jbHVkZS5zbwpMb2FkTW9kdWxlIGZpbHRlcl9tb2R1bGUgbGliZXhlYy9hcGFjaGUyMi9t b2RfZmlsdGVyLnNvCkxvYWRNb2R1bGUgY2hhcnNldF9saXRlX21vZHVsZSBsaWJleGVjL2FwYWNo ZTIyL21vZF9jaGFyc2V0X2xpdGUuc28KTG9hZE1vZHVsZSBkZWZsYXRlX21vZHVsZSBsaWJleGVj L2FwYWNoZTIyL21vZF9kZWZsYXRlLnNvCkxvYWRNb2R1bGUgbG9nX2NvbmZpZ19tb2R1bGUgbGli ZXhlYy9hcGFjaGUyMi9tb2RfbG9nX2NvbmZpZy5zbwpMb2FkTW9kdWxlIGxvZ2lvX21vZHVsZSBs aWJleGVjL2FwYWNoZTIyL21vZF9sb2dpby5zbwpMb2FkTW9kdWxlIGVudl9tb2R1bGUgbGliZXhl Yy9hcGFjaGUyMi9tb2RfZW52LnNvCkxvYWRNb2R1bGUgbWltZV9tYWdpY19tb2R1bGUgbGliZXhl Yy9hcGFjaGUyMi9tb2RfbWltZV9tYWdpYy5zbwpMb2FkTW9kdWxlIGNlcm5fbWV0YV9tb2R1bGUg bGliZXhlYy9hcGFjaGUyMi9tb2RfY2Vybl9tZXRhLnNvCkxvYWRNb2R1bGUgZXhwaXJlc19tb2R1 bGUgbGliZXhlYy9hcGFjaGUyMi9tb2RfZXhwaXJlcy5zbwpMb2FkTW9kdWxlIGhlYWRlcnNfbW9k dWxlIGxpYmV4ZWMvYXBhY2hlMjIvbW9kX2hlYWRlcnMuc28KTG9hZE1vZHVsZSB1c2VydHJhY2tf bW9kdWxlIGxpYmV4ZWMvYXBhY2hlMjIvbW9kX3VzZXJ0cmFjay5zbwpMb2FkTW9kdWxlIHVuaXF1 ZV9pZF9tb2R1bGUgbGliZXhlYy9hcGFjaGUyMi9tb2RfdW5pcXVlX2lkLnNvCkxvYWRNb2R1bGUg c2V0ZW52aWZfbW9kdWxlIGxpYmV4ZWMvYXBhY2hlMjIvbW9kX3NldGVudmlmLnNvCkxvYWRNb2R1 bGUgdmVyc2lvbl9tb2R1bGUgbGliZXhlYy9hcGFjaGUyMi9tb2RfdmVyc2lvbi5zbwpMb2FkTW9k dWxlIHNzbF9tb2R1bGUgbGliZXhlYy9hcGFjaGUyMi9tb2Rfc3NsLnNvCkxvYWRNb2R1bGUgbWlt ZV9tb2R1bGUgbGliZXhlYy9hcGFjaGUyMi9tb2RfbWltZS5zbwpMb2FkTW9kdWxlIGRhdl9tb2R1 bGUgbGliZXhlYy9hcGFjaGUyMi9tb2RfZGF2LnNvCkxvYWRNb2R1bGUgc3RhdHVzX21vZHVsZSBs aWJleGVjL2FwYWNoZTIyL21vZF9zdGF0dXMuc28KTG9hZE1vZHVsZSBhdXRvaW5kZXhfbW9kdWxl IGxpYmV4ZWMvYXBhY2hlMjIvbW9kX2F1dG9pbmRleC5zbwpMb2FkTW9kdWxlIGFzaXNfbW9kdWxl IGxpYmV4ZWMvYXBhY2hlMjIvbW9kX2FzaXMuc28KTG9hZE1vZHVsZSBpbmZvX21vZHVsZSBsaWJl eGVjL2FwYWNoZTIyL21vZF9pbmZvLnNvCkxvYWRNb2R1bGUgY2dpX21vZHVsZSBsaWJleGVjL2Fw YWNoZTIyL21vZF9jZ2kuc28KTG9hZE1vZHVsZSBkYXZfZnNfbW9kdWxlIGxpYmV4ZWMvYXBhY2hl MjIvbW9kX2Rhdl9mcy5zbwpMb2FkTW9kdWxlIHZob3N0X2FsaWFzX21vZHVsZSBsaWJleGVjL2Fw YWNoZTIyL21vZF92aG9zdF9hbGlhcy5zbwpMb2FkTW9kdWxlIG5lZ290aWF0aW9uX21vZHVsZSBs aWJleGVjL2FwYWNoZTIyL21vZF9uZWdvdGlhdGlvbi5zbwpMb2FkTW9kdWxlIGRpcl9tb2R1bGUg bGliZXhlYy9hcGFjaGUyMi9tb2RfZGlyLnNvCkxvYWRNb2R1bGUgaW1hZ2VtYXBfbW9kdWxlIGxp YmV4ZWMvYXBhY2hlMjIvbW9kX2ltYWdlbWFwLnNvCkxvYWRNb2R1bGUgYWN0aW9uc19tb2R1bGUg bGliZXhlYy9hcGFjaGUyMi9tb2RfYWN0aW9ucy5zbwpMb2FkTW9kdWxlIHNwZWxpbmdfbW9kdWxl IGxpYmV4ZWMvYXBhY2hlMjIvbW9kX3NwZWxpbmcuc28KTG9hZE1vZHVsZSB1c2VyZGlyX21vZHVs ZSBsaWJleGVjL2FwYWNoZTIyL21vZF91c2VyZGlyLnNvCkxvYWRNb2R1bGUgYWxpYXNfbW9kdWxl IGxpYmV4ZWMvYXBhY2hlMjIvbW9kX2FsaWFzLnNvCkxvYWRNb2R1bGUgcmV3cml0ZV9tb2R1bGUg bGliZXhlYy9hcGFjaGUyMi9tb2RfcmV3cml0ZS5zbwpMb2FkTW9kdWxlIHBocDVfbW9kdWxlIGxp YmV4ZWMvYXBhY2hlMjIvbGlicGhwNS5zbwo8SWZNb2R1bGUgIW1wbV9uZXR3YXJlX21vZHVsZT4K IwojIElmIHlvdSB3aXNoIGh0dHBkIHRvIHJ1biBhcyBhIGRpZmZlcmVudCB1c2VyIG9yIGdyb3Vw LCB5b3UgbXVzdCBydW4KIyBodHRwZCBhcyByb290IGluaXRpYWxseSBhbmQgaXQgd2lsbCBzd2l0 Y2guICAKIwojIFVzZXIvR3JvdXA6IFRoZSBuYW1lIChvciAjbnVtYmVyKSBvZiB0aGUgdXNlci9n cm91cCB0byBydW4gaHR0cGQgYXMuCiMgSXQgaXMgdXN1YWxseSBnb29kIHByYWN0aWNlIHRvIGNy ZWF0ZSBhIGRlZGljYXRlZCB1c2VyIGFuZCBncm91cCBmb3IKIyBydW5uaW5nIGh0dHBkLCBhcyB3 aXRoIG1vc3Qgc3lzdGVtIHNlcnZpY2VzLgojClVzZXIgd3d3Ckdyb3VwIHd3dwo8L0lmTW9kdWxl PgoKIyAnTWFpbicgc2VydmVyIGNvbmZpZ3VyYXRpb24KIwojIFRoZSBkaXJlY3RpdmVzIGluIHRo aXMgc2VjdGlvbiBzZXQgdXAgdGhlIHZhbHVlcyB1c2VkIGJ5IHRoZSAnbWFpbicKIyBzZXJ2ZXIs IHdoaWNoIHJlc3BvbmRzIHRvIGFueSByZXF1ZXN0cyB0aGF0IGFyZW4ndCBoYW5kbGVkIGJ5IGEK IyA8VmlydHVhbEhvc3Q+IGRlZmluaXRpb24uICBUaGVzZSB2YWx1ZXMgYWxzbyBwcm92aWRlIGRl ZmF1bHRzIGZvcgojIGFueSA8VmlydHVhbEhvc3Q+IGNvbnRhaW5lcnMgeW91IG1heSBkZWZpbmUg bGF0ZXIgaW4gdGhlIGZpbGUuCiMKIyBBbGwgb2YgdGhlc2UgZGlyZWN0aXZlcyBtYXkgYXBwZWFy IGluc2lkZSA8VmlydHVhbEhvc3Q+IGNvbnRhaW5lcnMsCiMgaW4gd2hpY2ggY2FzZSB0aGVzZSBk ZWZhdWx0IHNldHRpbmdzIHdpbGwgYmUgb3ZlcnJpZGRlbiBmb3IgdGhlCiMgdmlydHVhbCBob3N0 IGJlaW5nIGRlZmluZWQuCiMKCiMKIyBTZXJ2ZXJBZG1pbjogWW91ciBhZGRyZXNzLCB3aGVyZSBw cm9ibGVtcyB3aXRoIHRoZSBzZXJ2ZXIgc2hvdWxkIGJlCiMgZS1tYWlsZWQuICBUaGlzIGFkZHJl c3MgYXBwZWFycyBvbiBzb21lIHNlcnZlci1nZW5lcmF0ZWQgcGFnZXMsIHN1Y2gKIyBhcyBlcnJv ciBkb2N1bWVudHMuICBlLmcuIGFkbWluQHlvdXItZG9tYWluLmNvbQojClNlcnZlckFkbWluIGRl ZXN0b0B5YWhvby5jb20KCiMKIyBTZXJ2ZXJOYW1lIGdpdmVzIHRoZSBuYW1lIGFuZCBwb3J0IHRo YXQgdGhlIHNlcnZlciB1c2VzIHRvIGlkZW50aWZ5IGl0c2VsZi4KIyBUaGlzIGNhbiBvZnRlbiBi ZSBkZXRlcm1pbmVkIGF1dG9tYXRpY2FsbHksIGJ1dCB3ZSByZWNvbW1lbmQgeW91IHNwZWNpZnkK IyBpdCBleHBsaWNpdGx5IHRvIHByZXZlbnQgcHJvYmxlbXMgZHVyaW5nIHN0YXJ0dXAuCiMKIyBJ ZiB5b3VyIGhvc3QgZG9lc24ndCBoYXZlIGEgcmVnaXN0ZXJlZCBETlMgbmFtZSwgZW50ZXIgaXRz IElQIGFkZHJlc3MgaGVyZS4KIwojU2VydmVyTmFtZSB3d3cuZXhhbXBsZS5jb206ODAKU2VydmVy TmFtZSB3d3cudGhlY2hvY29sYXRlc2hhY2suY29tCgojCiMgRG9jdW1lbnRSb290OiBUaGUgZGly ZWN0b3J5IG91dCBvZiB3aGljaCB5b3Ugd2lsbCBzZXJ2ZSB5b3VyCiMgZG9jdW1lbnRzLiBCeSBk ZWZhdWx0LCBhbGwgcmVxdWVzdHMgYXJlIHRha2VuIGZyb20gdGhpcyBkaXJlY3RvcnksIGJ1dAoj IHN5bWJvbGljIGxpbmtzIGFuZCBhbGlhc2VzIG1heSBiZSB1c2VkIHRvIHBvaW50IHRvIG90aGVy IGxvY2F0aW9ucy4KIwojRG9jdW1lbnRSb290ICIvdXNyL2xvY2FsL3d3dy9hcGFjaGUyMi9kYXRh IgpEb2N1bWVudFJvb3QgIi91c3Ivd3d3Mi90aGVjaG9jb2xhdGVzaGFjayIKCiMKIyBFYWNoIGRp cmVjdG9yeSB0byB3aGljaCBBcGFjaGUgaGFzIGFjY2VzcyBjYW4gYmUgY29uZmlndXJlZCB3aXRo IHJlc3BlY3QKIyB0byB3aGljaCBzZXJ2aWNlcyBhbmQgZmVhdHVyZXMgYXJlIGFsbG93ZWQgYW5k L29yIGRpc2FibGVkIGluIHRoYXQKIyBkaXJlY3RvcnkgKGFuZCBpdHMgc3ViZGlyZWN0b3JpZXMp LiAKIwojIEZpcnN0LCB3ZSBjb25maWd1cmUgdGhlICJkZWZhdWx0IiB0byBiZSBhIHZlcnkgcmVz dHJpY3RpdmUgc2V0IG9mIAojIGZlYXR1cmVzLiAgCiMKPERpcmVjdG9yeSAvPgogICAgQWxsb3dP dmVycmlkZSBOb25lCiAgICBPcmRlciBkZW55LGFsbG93CiAgICBEZW55IGZyb20gYWxsCiMgYWRk ZWQgY2dpIHN1cHBvcnQgNi82LzA2IC1KRAogICAgT3B0aW9ucyArRXhlY0NHSQo8L0RpcmVjdG9y eT4KCiMKIyBOb3RlIHRoYXQgZnJvbSB0aGlzIHBvaW50IGZvcndhcmQgeW91IG11c3Qgc3BlY2lm aWNhbGx5IGFsbG93CiMgcGFydGljdWxhciBmZWF0dXJlcyB0byBiZSBlbmFibGVkIC0gc28gaWYg c29tZXRoaW5nJ3Mgbm90IHdvcmtpbmcgYXMKIyB5b3UgbWlnaHQgZXhwZWN0LCBtYWtlIHN1cmUg dGhhdCB5b3UgaGF2ZSBzcGVjaWZpY2FsbHkgZW5hYmxlZCBpdAojIGJlbG93LgojCgojCiMgVGhp cyBzaG91bGQgYmUgY2hhbmdlZCB0byB3aGF0ZXZlciB5b3Ugc2V0IERvY3VtZW50Um9vdCB0by4K Iwo8RGlyZWN0b3J5ICIvdXNyL3d3dzIvdGhlY2hvY29sYXRlc2hhY2siPgojPERpcmVjdG9yeSAi L3Vzci9sb2NhbC93d3cvYXBhY2hlMjIvZGF0YSI+CiAgICAjCiAgICAjIFBvc3NpYmxlIHZhbHVl cyBmb3IgdGhlIE9wdGlvbnMgZGlyZWN0aXZlIGFyZSAiTm9uZSIsICJBbGwiLAogICAgIyBvciBh bnkgY29tYmluYXRpb24gb2Y6CiAgICAjICAgSW5kZXhlcyBJbmNsdWRlcyBGb2xsb3dTeW1MaW5r cyBTeW1MaW5rc2lmT3duZXJNYXRjaCBFeGVjQ0dJIE11bHRpVmlld3MKICAgICMKICAgICMgTm90 ZSB0aGF0ICJNdWx0aVZpZXdzIiBtdXN0IGJlIG5hbWVkICpleHBsaWNpdGx5KiAtLS0gIk9wdGlv bnMgQWxsIgogICAgIyBkb2Vzbid0IGdpdmUgaXQgdG8geW91LgogICAgIwogICAgIyBUaGUgT3B0 aW9ucyBkaXJlY3RpdmUgaXMgYm90aCBjb21wbGljYXRlZCBhbmQgaW1wb3J0YW50LiAgUGxlYXNl IHNlZQogICAgIyBodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy9kb2NzLzIuMi9tb2QvY29yZS5odG1s I29wdGlvbnMKICAgICMgZm9yIG1vcmUgaW5mb3JtYXRpb24uCiAgICAjCiAgICBPcHRpb25zIElu ZGV4ZXMgRm9sbG93U3ltTGlua3MKCiAgICAjCiAgICAjIEFsbG93T3ZlcnJpZGUgY29udHJvbHMg d2hhdCBkaXJlY3RpdmVzIG1heSBiZSBwbGFjZWQgaW4gLmh0YWNjZXNzIGZpbGVzLgogICAgIyBJ dCBjYW4gYmUgIkFsbCIsICJOb25lIiwgb3IgYW55IGNvbWJpbmF0aW9uIG9mIHRoZSBrZXl3b3Jk czoKICAgICMgICBPcHRpb25zIEZpbGVJbmZvIEF1dGhDb25maWcgTGltaXQKICAgICMKICAgIEFs bG93T3ZlcnJpZGUgTm9uZQoKICAgICMKICAgICMgQ29udHJvbHMgd2hvIGNhbiBnZXQgc3R1ZmYg ZnJvbSB0aGlzIHNlcnZlci4KICAgICMKICAgIE9yZGVyIGFsbG93LGRlbnkKICAgIEFsbG93IGZy b20gYWxsCgo8L0RpcmVjdG9yeT4KCiMKIyBEaXJlY3RvcnlJbmRleDogc2V0cyB0aGUgZmlsZSB0 aGF0IEFwYWNoZSB3aWxsIHNlcnZlIGlmIGEgZGlyZWN0b3J5CiMgaXMgcmVxdWVzdGVkLgojCjxJ Zk1vZHVsZSBkaXJfbW9kdWxlPgojICAgIERpcmVjdG9yeUluZGV4IGluZGV4Lmh0bWwKICAgIERp cmVjdG9yeUluZGV4IGluZGV4LnBocCBpbmRleC5odG1sIGluZGV4Lmh0bSBpbmRleC5odG1sLnZh cgo8L0lmTW9kdWxlPgoKIwojIFRoZSBmb2xsb3dpbmcgbGluZXMgcHJldmVudCAuaHRhY2Nlc3Mg YW5kIC5odHBhc3N3ZCBmaWxlcyBmcm9tIGJlaW5nIAojIHZpZXdlZCBieSBXZWIgY2xpZW50cy4g CiMKPEZpbGVzTWF0Y2ggIl5cLmh0Ij4KICAgIE9yZGVyIGFsbG93LGRlbnkKICAgIERlbnkgZnJv bSBhbGwKICAgIFNhdGlzZnkgQWxsCjwvRmlsZXNNYXRjaD4KCiMKIyBFcnJvckxvZzogVGhlIGxv Y2F0aW9uIG9mIHRoZSBlcnJvciBsb2cgZmlsZS4KIyBJZiB5b3UgZG8gbm90IHNwZWNpZnkgYW4g RXJyb3JMb2cgZGlyZWN0aXZlIHdpdGhpbiBhIDxWaXJ0dWFsSG9zdD4KIyBjb250YWluZXIsIGVy cm9yIG1lc3NhZ2VzIHJlbGF0aW5nIHRvIHRoYXQgdmlydHVhbCBob3N0IHdpbGwgYmUKIyBsb2dn ZWQgaGVyZS4gIElmIHlvdSAqZG8qIGRlZmluZSBhbiBlcnJvciBsb2dmaWxlIGZvciBhIDxWaXJ0 dWFsSG9zdD4KIyBjb250YWluZXIsIHRoYXQgaG9zdCdzIGVycm9ycyB3aWxsIGJlIGxvZ2dlZCB0 aGVyZSBhbmQgbm90IGhlcmUuCiMKRXJyb3JMb2cgL3Zhci9sb2cvaHR0cGQtZXJyb3IubG9nCgoj CiMgTG9nTGV2ZWw6IENvbnRyb2wgdGhlIG51bWJlciBvZiBtZXNzYWdlcyBsb2dnZWQgdG8gdGhl IGVycm9yX2xvZy4KIyBQb3NzaWJsZSB2YWx1ZXMgaW5jbHVkZTogZGVidWcsIGluZm8sIG5vdGlj ZSwgd2FybiwgZXJyb3IsIGNyaXQsCiMgYWxlcnQsIGVtZXJnLgojCkxvZ0xldmVsIHdhcm4KCjxJ Zk1vZHVsZSBsb2dfY29uZmlnX21vZHVsZT4KICAgICMKICAgICMgVGhlIGZvbGxvd2luZyBkaXJl Y3RpdmVzIGRlZmluZSBzb21lIGZvcm1hdCBuaWNrbmFtZXMgZm9yIHVzZSB3aXRoCiAgICAjIGEg Q3VzdG9tTG9nIGRpcmVjdGl2ZSAoc2VlIGJlbG93KS4KICAgICMKICAgIExvZ0Zvcm1hdCAiJWgg JWwgJXUgJXQgXCIlclwiICU+cyAlYiBcIiV7UmVmZXJlcn1pXCIgXCIle1VzZXItQWdlbnR9aVwi IiBjb21iaW5lZAogICAgTG9nRm9ybWF0ICIlaCAlbCAldSAldCBcIiVyXCIgJT5zICViIiBjb21t b24KCiAgICA8SWZNb2R1bGUgbG9naW9fbW9kdWxlPgogICAgICAjIFlvdSBuZWVkIHRvIGVuYWJs ZSBtb2RfbG9naW8uYyB0byB1c2UgJUkgYW5kICVPCiAgICAgIExvZ0Zvcm1hdCAiJWggJWwgJXUg JXQgXCIlclwiICU+cyAlYiBcIiV7UmVmZXJlcn1pXCIgXCIle1VzZXItQWdlbnR9aVwiICVJICVP IiBjb21iaW5lZGlvCiAgICA8L0lmTW9kdWxlPgoKICAgICMKICAgICMgVGhlIGxvY2F0aW9uIGFu ZCBmb3JtYXQgb2YgdGhlIGFjY2VzcyBsb2dmaWxlIChDb21tb24gTG9nZmlsZSBGb3JtYXQpLgog ICAgIyBJZiB5b3UgZG8gbm90IGRlZmluZSBhbnkgYWNjZXNzIGxvZ2ZpbGVzIHdpdGhpbiBhIDxW aXJ0dWFsSG9zdD4KICAgICMgY29udGFpbmVyLCB0aGV5IHdpbGwgYmUgbG9nZ2VkIGhlcmUuICBD b250cmFyaXdpc2UsIGlmIHlvdSAqZG8qCiAgICAjIGRlZmluZSBwZXItPFZpcnR1YWxIb3N0PiBh Y2Nlc3MgbG9nZmlsZXMsIHRyYW5zYWN0aW9ucyB3aWxsIGJlCiAgICAjIGxvZ2dlZCB0aGVyZWlu IGFuZCAqbm90KiBpbiB0aGlzIGZpbGUuCiAgICAjCiAgICAjQ3VzdG9tTG9nIC92YXIvbG9nL2h0 dHBkLWFjY2Vzcy5sb2cgY29tbW9uCgogICAgIwogICAgIyBJZiB5b3UgcHJlZmVyIGEgbG9nZmls ZSB3aXRoIGFjY2VzcywgYWdlbnQsIGFuZCByZWZlcmVyIGluZm9ybWF0aW9uCiAgICAjIChDb21i aW5lZCBMb2dmaWxlIEZvcm1hdCkgeW91IGNhbiB1c2UgdGhlIGZvbGxvd2luZyBkaXJlY3RpdmUu CiAgICAjCiAgICBDdXN0b21Mb2cgL3Zhci9sb2cvaHR0cGQtYWNjZXNzLmxvZyBjb21iaW5lZAo8 L0lmTW9kdWxlPgoKPElmTW9kdWxlIGFsaWFzX21vZHVsZT4KICAgICMKICAgICMgUmVkaXJlY3Q6 IEFsbG93cyB5b3UgdG8gdGVsbCBjbGllbnRzIGFib3V0IGRvY3VtZW50cyB0aGF0IHVzZWQgdG8g CiAgICAjIGV4aXN0IGluIHlvdXIgc2VydmVyJ3MgbmFtZXNwYWNlLCBidXQgZG8gbm90IGFueW1v cmUuIFRoZSBjbGllbnQgCiAgICAjIHdpbGwgbWFrZSBhIG5ldyByZXF1ZXN0IGZvciB0aGUgZG9j dW1lbnQgYXQgaXRzIG5ldyBsb2NhdGlvbi4KICAgICMgRXhhbXBsZToKICAgICMgUmVkaXJlY3Qg cGVybWFuZW50IC9mb28gaHR0cDovL3d3dy5leGFtcGxlLmNvbS9iYXIKCiAgICAjCiAgICAjIEFs aWFzOiBNYXBzIHdlYiBwYXRocyBpbnRvIGZpbGVzeXN0ZW0gcGF0aHMgYW5kIGlzIHVzZWQgdG8K ICAgICMgYWNjZXNzIGNvbnRlbnQgdGhhdCBkb2VzIG5vdCBsaXZlIHVuZGVyIHRoZSBEb2N1bWVu dFJvb3QuCiAgICAjIEV4YW1wbGU6CiAgICAjIEFsaWFzIC93ZWJwYXRoIC9mdWxsL2ZpbGVzeXN0 ZW0vcGF0aAogICAgIwogICAgIyBJZiB5b3UgaW5jbHVkZSBhIHRyYWlsaW5nIC8gb24gL3dlYnBh dGggdGhlbiB0aGUgc2VydmVyIHdpbGwKICAgICMgcmVxdWlyZSBpdCB0byBiZSBwcmVzZW50IGlu IHRoZSBVUkwuICBZb3Ugd2lsbCBhbHNvIGxpa2VseQogICAgIyBuZWVkIHRvIHByb3ZpZGUgYSA8 RGlyZWN0b3J5PiBzZWN0aW9uIHRvIGFsbG93IGFjY2VzcyB0bwogICAgIyB0aGUgZmlsZXN5c3Rl bSBwYXRoLgoKICAgICMKICAgICMgU2NyaXB0QWxpYXM6IFRoaXMgY29udHJvbHMgd2hpY2ggZGly ZWN0b3JpZXMgY29udGFpbiBzZXJ2ZXIgc2NyaXB0cy4gCiAgICAjIFNjcmlwdEFsaWFzZXMgYXJl IGVzc2VudGlhbGx5IHRoZSBzYW1lIGFzIEFsaWFzZXMsIGV4Y2VwdCB0aGF0CiAgICAjIGRvY3Vt ZW50cyBpbiB0aGUgdGFyZ2V0IGRpcmVjdG9yeSBhcmUgdHJlYXRlZCBhcyBhcHBsaWNhdGlvbnMg YW5kCiAgICAjIHJ1biBieSB0aGUgc2VydmVyIHdoZW4gcmVxdWVzdGVkIHJhdGhlciB0aGFuIGFz IGRvY3VtZW50cyBzZW50IHRvIHRoZQogICAgIyBjbGllbnQuICBUaGUgc2FtZSBydWxlcyBhYm91 dCB0cmFpbGluZyAiLyIgYXBwbHkgdG8gU2NyaXB0QWxpYXMKICAgICMgZGlyZWN0aXZlcyBhcyB0 byBBbGlhcy4KICAgICMKICAgIFNjcmlwdEFsaWFzIC9jZ2ktYmluLyAiL3Vzci9sb2NhbC93d3cv Y2dpLWJpbi8iCgo8L0lmTW9kdWxlPgoKPElmTW9kdWxlIGNnaWRfbW9kdWxlPgogICAgIwogICAg IyBTY3JpcHRTb2NrOiBPbiB0aHJlYWRlZCBzZXJ2ZXJzLCBkZXNpZ25hdGUgdGhlIHBhdGggdG8g dGhlIFVOSVgKICAgICMgc29ja2V0IHVzZWQgdG8gY29tbXVuaWNhdGUgd2l0aCB0aGUgQ0dJIGRh ZW1vbiBvZiBtb2RfY2dpZC4KICAgICMKICAgICNTY3JpcHRzb2NrIC92YXIvcnVuL2NnaXNvY2sK PC9JZk1vZHVsZT4KCiMKIyAiL3Vzci9sb2NhbC93d3cvYXBhY2hlMjIvY2dpLWJpbiIgc2hvdWxk IGJlIGNoYW5nZWQgdG8gd2hhdGV2ZXIgeW91ciBTY3JpcHRBbGlhc2VkCiMgQ0dJIGRpcmVjdG9y eSBleGlzdHMsIGlmIHlvdSBoYXZlIHRoYXQgY29uZmlndXJlZC4KIwo8RGlyZWN0b3J5ICIvdXNy L2xvY2FsL3d3dy9jZ2ktYmluIj4KICAgIEFsbG93T3ZlcnJpZGUgTm9uZQogICAgT3B0aW9ucyBO b25lCiAgICBPcmRlciBhbGxvdyxkZW55CiAgICBBbGxvdyBmcm9tIGFsbAo8L0RpcmVjdG9yeT4K CiMKIyBEZWZhdWx0VHlwZTogdGhlIGRlZmF1bHQgTUlNRSB0eXBlIHRoZSBzZXJ2ZXIgd2lsbCB1 c2UgZm9yIGEgZG9jdW1lbnQKIyBpZiBpdCBjYW5ub3Qgb3RoZXJ3aXNlIGRldGVybWluZSBvbmUs IHN1Y2ggYXMgZnJvbSBmaWxlbmFtZSBleHRlbnNpb25zLgojIElmIHlvdXIgc2VydmVyIGNvbnRh aW5zIG1vc3RseSB0ZXh0IG9yIEhUTUwgZG9jdW1lbnRzLCAidGV4dC9wbGFpbiIgaXMKIyBhIGdv b2QgdmFsdWUuICBJZiBtb3N0IG9mIHlvdXIgY29udGVudCBpcyBiaW5hcnksIHN1Y2ggYXMgYXBw bGljYXRpb25zCiMgb3IgaW1hZ2VzLCB5b3UgbWF5IHdhbnQgdG8gdXNlICJhcHBsaWNhdGlvbi9v Y3RldC1zdHJlYW0iIGluc3RlYWQgdG8KIyBrZWVwIGJyb3dzZXJzIGZyb20gdHJ5aW5nIHRvIGRp c3BsYXkgYmluYXJ5IGZpbGVzIGFzIHRob3VnaCB0aGV5IGFyZQojIHRleHQuCiMKRGVmYXVsdFR5 cGUgdGV4dC9wbGFpbgoKPElmTW9kdWxlIG1pbWVfbW9kdWxlPgogICAgIwogICAgIyBUeXBlc0Nv bmZpZyBwb2ludHMgdG8gdGhlIGZpbGUgY29udGFpbmluZyB0aGUgbGlzdCBvZiBtYXBwaW5ncyBm cm9tCiAgICAjIGZpbGVuYW1lIGV4dGVuc2lvbiB0byBNSU1FLXR5cGUuCiAgICAjCiAgICBUeXBl c0NvbmZpZyBldGMvYXBhY2hlMjIvbWltZS50eXBlcwoKICAgICMKICAgICMgQWRkVHlwZSBhbGxv d3MgeW91IHRvIGFkZCB0byBvciBvdmVycmlkZSB0aGUgTUlNRSBjb25maWd1cmF0aW9uCiAgICAj IGZpbGUgc3BlY2lmaWVkIGluIFR5cGVzQ29uZmlnIGZvciBzcGVjaWZpYyBmaWxlIHR5cGVzLgog ICAgIwogICAgI0FkZFR5cGUgYXBwbGljYXRpb24veC1nemlwIC50Z3oKICAgICMKICAgICMgQWRk RW5jb2RpbmcgYWxsb3dzIHlvdSB0byBoYXZlIGNlcnRhaW4gYnJvd3NlcnMgdW5jb21wcmVzcwog ICAgIyBpbmZvcm1hdGlvbiBvbiB0aGUgZmx5LiBOb3RlOiBOb3QgYWxsIGJyb3dzZXJzIHN1cHBv cnQgdGhpcy4KICAgICMKICAgICNBZGRFbmNvZGluZyB4LWNvbXByZXNzIC5aCiAgICAjQWRkRW5j b2RpbmcgeC1nemlwIC5neiAudGd6CiAgICAjCiAgICAjIElmIHRoZSBBZGRFbmNvZGluZyBkaXJl Y3RpdmVzIGFib3ZlIGFyZSBjb21tZW50ZWQtb3V0LCB0aGVuIHlvdQogICAgIyBwcm9iYWJseSBz aG91bGQgZGVmaW5lIHRob3NlIGV4dGVuc2lvbnMgdG8gaW5kaWNhdGUgbWVkaWEgdHlwZXM6CiAg ICAjCiAgICBBZGRUeXBlIGFwcGxpY2F0aW9uL3gtY29tcHJlc3MgLloKICAgIEFkZFR5cGUgYXBw bGljYXRpb24veC1nemlwIC5neiAudGd6CiAgICBBZGRUeXBlIGFwcGxpY2F0aW9uL3gtIGh0dHBk LXBocCAucGhwCiAgICBBZGRUeXBlIGFwcGxpY2F0aW9uL3gtIGh0dHBkLXBocC1zb3VyY2UgLnBo cHMKCiAgICAjCiAgICAjIEFkZEhhbmRsZXIgYWxsb3dzIHlvdSB0byBtYXAgY2VydGFpbiBmaWxl IGV4dGVuc2lvbnMgdG8gImhhbmRsZXJzIjoKICAgICMgYWN0aW9ucyB1bnJlbGF0ZWQgdG8gZmls ZXR5cGUuIFRoZXNlIGNhbiBiZSBlaXRoZXIgYnVpbHQgaW50byB0aGUgc2VydmVyCiAgICAjIG9y IGFkZGVkIHdpdGggdGhlIEFjdGlvbiBkaXJlY3RpdmUgKHNlZSBiZWxvdykKICAgICMKICAgICMg VG8gdXNlIENHSSBzY3JpcHRzIG91dHNpZGUgb2YgU2NyaXB0QWxpYXNlZCBkaXJlY3RvcmllczoK ICAgICMgKFlvdSB3aWxsIGFsc28gbmVlZCB0byBhZGQgIkV4ZWNDR0kiIHRvIHRoZSAiT3B0aW9u cyIgZGlyZWN0aXZlLikKICAgICMKICAgICNBZGRIYW5kbGVyIGNnaS1zY3JpcHQgLmNnaQoKICAg ICMgRm9yIHR5cGUgbWFwcyAobmVnb3RpYXRlZCByZXNvdXJjZXMpOgogICAgI0FkZEhhbmRsZXIg dHlwZS1tYXAgdmFyCgogICAgIwogICAgIyBGaWx0ZXJzIGFsbG93IHlvdSB0byBwcm9jZXNzIGNv bnRlbnQgYmVmb3JlIGl0IGlzIHNlbnQgdG8gdGhlIGNsaWVudC4KICAgICMKICAgICMgVG8gcGFy c2UgLnNodG1sIGZpbGVzIGZvciBzZXJ2ZXItc2lkZSBpbmNsdWRlcyAoU1NJKToKICAgICMgKFlv dSB3aWxsIGFsc28gbmVlZCB0byBhZGQgIkluY2x1ZGVzIiB0byB0aGUgIk9wdGlvbnMiIGRpcmVj dGl2ZS4pCiAgICAjCiAgICAjQWRkVHlwZSB0ZXh0L2h0bWwgLnNodG1sCiAgICAjQWRkT3V0cHV0 RmlsdGVyIElOQ0xVREVTIC5zaHRtbAo8L0lmTW9kdWxlPgoKIwojIFRoZSBtb2RfbWltZV9tYWdp YyBtb2R1bGUgYWxsb3dzIHRoZSBzZXJ2ZXIgdG8gdXNlIHZhcmlvdXMgaGludHMgZnJvbSB0aGUK IyBjb250ZW50cyBvZiB0aGUgZmlsZSBpdHNlbGYgdG8gZGV0ZXJtaW5lIGl0cyB0eXBlLiAgVGhl IE1JTUVNYWdpY0ZpbGUKIyBkaXJlY3RpdmUgdGVsbHMgdGhlIG1vZHVsZSB3aGVyZSB0aGUgaGlu dCBkZWZpbml0aW9ucyBhcmUgbG9jYXRlZC4KIwojTUlNRU1hZ2ljRmlsZSBldGMvYXBhY2hlMjIv bWFnaWMKCiMKIyBDdXN0b21pemFibGUgZXJyb3IgcmVzcG9uc2VzIGNvbWUgaW4gdGhyZWUgZmxh dm9yczoKIyAxKSBwbGFpbiB0ZXh0IDIpIGxvY2FsIHJlZGlyZWN0cyAzKSBleHRlcm5hbCByZWRp cmVjdHMKIwojIFNvbWUgZXhhbXBsZXM6CiNFcnJvckRvY3VtZW50IDUwMCAiVGhlIHNlcnZlciBt YWRlIGEgYm9vIGJvby4iCiNFcnJvckRvY3VtZW50IDQwNCAvbWlzc2luZy5odG1sCiNFcnJvckRv Y3VtZW50IDQwNCAiL2NnaS1iaW4vbWlzc2luZ19oYW5kbGVyLnBsIgojRXJyb3JEb2N1bWVudCA0 MDIgaHR0cDovL3d3dy5leGFtcGxlLmNvbS9zdWJzY3JpcHRpb25faW5mby5odG1sCiMKCiMKIyBF bmFibGVNTUFQIGFuZCBFbmFibGVTZW5kZmlsZTogT24gc3lzdGVtcyB0aGF0IHN1cHBvcnQgaXQs IAojIG1lbW9yeS1tYXBwaW5nIG9yIHRoZSBzZW5kZmlsZSBzeXNjYWxsIGlzIHVzZWQgdG8gZGVs aXZlcgojIGZpbGVzLiAgVGhpcyB1c3VhbGx5IGltcHJvdmVzIHNlcnZlciBwZXJmb3JtYW5jZSwg YnV0IG11c3QKIyBiZSB0dXJuZWQgb2ZmIHdoZW4gc2VydmluZyBmcm9tIG5ldHdvcmtlZC1tb3Vu dGVkIAojIGZpbGVzeXN0ZW1zIG9yIGlmIHN1cHBvcnQgZm9yIHRoZXNlIGZ1bmN0aW9ucyBpcyBv dGhlcndpc2UKIyBicm9rZW4gb24geW91ciBzeXN0ZW0uCiMKI0VuYWJsZU1NQVAgb2ZmCiNFbmFi bGVTZW5kZmlsZSBvZmYKCiMgU3VwcGxlbWVudGFsIGNvbmZpZ3VyYXRpb24KIwojIFRoZSBjb25m aWd1cmF0aW9uIGZpbGVzIGluIHRoZSBldGMvYXBhY2hlMjIvZXh0cmEvIGRpcmVjdG9yeSBjYW4g YmUgCiMgaW5jbHVkZWQgdG8gYWRkIGV4dHJhIGZlYXR1cmVzIG9yIHRvIG1vZGlmeSB0aGUgZGVm YXVsdCBjb25maWd1cmF0aW9uIG9mIAojIHRoZSBzZXJ2ZXIsIG9yIHlvdSBtYXkgc2ltcGx5IGNv cHkgdGhlaXIgY29udGVudHMgaGVyZSBhbmQgY2hhbmdlIGFzIAojIG5lY2Vzc2FyeS4KCiMgU2Vy dmVyLXBvb2wgbWFuYWdlbWVudCAoTVBNIHNwZWNpZmljKQojSW5jbHVkZSBldGMvYXBhY2hlMjIv ZXh0cmEvaHR0cGQtbXBtLmNvbmYKCiMgTXVsdGktbGFuZ3VhZ2UgZXJyb3IgbWVzc2FnZXMKI0lu Y2x1ZGUgZXRjL2FwYWNoZTIyL2V4dHJhL2h0dHBkLW11bHRpbGFuZy1lcnJvcmRvYy5jb25mCgoj IEZhbmN5IGRpcmVjdG9yeSBsaXN0aW5ncwpJbmNsdWRlIGV0Yy9hcGFjaGUyMi9leHRyYS9odHRw ZC1hdXRvaW5kZXguY29uZgoKIyBMYW5ndWFnZSBzZXR0aW5ncwojSW5jbHVkZSBldGMvYXBhY2hl MjIvZXh0cmEvaHR0cGQtbGFuZ3VhZ2VzLmNvbmYKCiMgVXNlciBob21lIGRpcmVjdG9yaWVzCklu Y2x1ZGUgZXRjL2FwYWNoZTIyL2V4dHJhL2h0dHBkLXVzZXJkaXIuY29uZgoKIyBSZWFsLXRpbWUg aW5mbyBvbiByZXF1ZXN0cyBhbmQgY29uZmlndXJhdGlvbgpJbmNsdWRlIGV0Yy9hcGFjaGUyMi9l eHRyYS9odHRwZC1pbmZvLmNvbmYKCiMgVmlydHVhbCBob3N0cwpJbmNsdWRlIGV0Yy9hcGFjaGUy Mi9leHRyYS9odHRwZC12aG9zdHMuY29uZgoKIyBMb2NhbCBhY2Nlc3MgdG8gdGhlIEFwYWNoZSBI VFRQIFNlcnZlciBNYW51YWwKI0luY2x1ZGUgZXRjL2FwYWNoZTIyL2V4dHJhL2h0dHBkLW1hbnVh bC5jb25mCgojIERpc3RyaWJ1dGVkIGF1dGhvcmluZyBhbmQgdmVyc2lvbmluZyAoV2ViREFWKQpJ bmNsdWRlIGV0Yy9hcGFjaGUyMi9leHRyYS9odHRwZC1kYXYuY29uZgoKIyBWYXJpb3VzIGRlZmF1 bHQgc2V0dGluZ3MKI0luY2x1ZGUgZXRjL2FwYWNoZTIyL2V4dHJhL2h0dHBkLWRlZmF1bHQuY29u ZgoKIyBTZWN1cmUgKFNTTC9UTFMpIGNvbm5lY3Rpb25zCiNJbmNsdWRlIGV0Yy9hcGFjaGUyMi9l eHRyYS9odHRwZC1zc2wuY29uZgojCiMgTm90ZTogVGhlIGZvbGxvd2luZyBtdXN0IG11c3QgYmUg cHJlc2VudCB0byBzdXBwb3J0CiMgICAgICAgc3RhcnRpbmcgd2l0aG91dCBTU0wgb24gcGxhdGZv cm1zIHdpdGggbm8gL2Rldi9yYW5kb20gZXF1aXZhbGVudAojICAgICAgIGJ1dCBhIHN0YXRpY2Fs bHkgY29tcGlsZWQtaW4gbW9kX3NzbC4KIwo8SWZNb2R1bGUgc3NsX21vZHVsZT4KU1NMUmFuZG9t U2VlZCBzdGFydHVwIGJ1aWx0aW4KU1NMUmFuZG9tU2VlZCBjb25uZWN0IGJ1aWx0aW4KPC9JZk1v ZHVsZT4KCkluY2x1ZGUgZXRjL2FwYWNoZTIyL0luY2x1ZGVzLyouY29uZgoKIyBhZGRlZCBWaXJ0 dWFsSG9zdCBpbmZvIGFuZCBkaXJlY3RvcmllcyB0byB2aG9zdHMuY29uZiBpbmNsdWRlIGZpbGUg Ni82LzA2IC1KRAo= ------=_Part_63980_12306751.1149639442137 Content-Type: text/plain; name="httpd-vhosts.conf" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="httpd-vhosts.conf" X-Attachment-Id: f_eo4xnnpe IwojIFZpcnR1YWwgSG9zdHMKIwojIElmIHlvdSB3YW50IHRvIG1haW50YWluIG11bHRpcGxlIGRv bWFpbnMvaG9zdG5hbWVzIG9uIHlvdXIKIyBtYWNoaW5lIHlvdSBjYW4gc2V0dXAgVmlydHVhbEhv c3QgY29udGFpbmVycyBmb3IgdGhlbS4gTW9zdCBjb25maWd1cmF0aW9ucwojIHVzZSBvbmx5IG5h bWUtYmFzZWQgdmlydHVhbCBob3N0cyBzbyB0aGUgc2VydmVyIGRvZXNuJ3QgbmVlZCB0byB3b3Jy eSBhYm91dAojIElQIGFkZHJlc3Nlcy4gVGhpcyBpcyBpbmRpY2F0ZWQgYnkgdGhlIGFzdGVyaXNr cyBpbiB0aGUgZGlyZWN0aXZlcyBiZWxvdy4KIwojIFBsZWFzZSBzZWUgdGhlIGRvY3VtZW50YXRp b24gYXQgCiMgPFVSTDpodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy9kb2NzLzIuMi92aG9zdHMvPgoj IGZvciBmdXJ0aGVyIGRldGFpbHMgYmVmb3JlIHlvdSB0cnkgdG8gc2V0dXAgdmlydHVhbCBob3N0 cy4KIwojIFlvdSBtYXkgdXNlIHRoZSBjb21tYW5kIGxpbmUgb3B0aW9uICctUycgdG8gdmVyaWZ5 IHlvdXIgdmlydHVhbCBob3N0CiMgY29uZmlndXJhdGlvbi4KCiMKIyBVc2UgbmFtZS1iYXNlZCB2 aXJ0dWFsIGhvc3RpbmcuCiMKTmFtZVZpcnR1YWxIb3N0ICo6ODAKCiMKIyBWaXJ0dWFsSG9zdCBl eGFtcGxlOgojIEFsbW9zdCBhbnkgQXBhY2hlIGRpcmVjdGl2ZSBtYXkgZ28gaW50byBhIFZpcnR1 YWxIb3N0IGNvbnRhaW5lci4KIyBUaGUgZmlyc3QgVmlydHVhbEhvc3Qgc2VjdGlvbiBpcyB1c2Vk IGZvciBhbGwgcmVxdWVzdHMgdGhhdCBkbyBub3QKIyBtYXRjaCBhIFNlcnZlck5hbWUgb3IgU2Vy dmVyQWxpYXMgaW4gYW55IDxWaXJ0dWFsSG9zdD4gYmxvY2suCiMKIzxWaXJ0dWFsSG9zdCAqOjgw PgojICAgIFNlcnZlckFkbWluIHdlYm1hc3RlckBkdW1teS1ob3N0LmV4YW1wbGUuY29tCiMgICAg RG9jdW1lbnRSb290IC93d3cvZG9jcy9kdW1teS1ob3N0LmV4YW1wbGUuY29tCiMgICAgU2VydmVy TmFtZSBkdW1teS1ob3N0LmV4YW1wbGUuY29tCiMgICAgU2VydmVyQWxpYXMgd3d3LmR1bW15LWhv c3QuZXhhbXBsZS5jb20KIyAgICBFcnJvckxvZyAvdmFyL2xvZy9kdW1teS1ob3N0LmV4YW1wbGUu Y29tLWVycm9yX2xvZwojICAgIEN1c3RvbUxvZyAvdmFyL2xvZy9kdW1teS1ob3N0LmV4YW1wbGUu Y29tLWFjY2Vzc19sb2cgY29tbW9uCiM8L1ZpcnR1YWxIb3N0PgojCiM8VmlydHVhbEhvc3QgKjo4 MD4KIyAgICBTZXJ2ZXJBZG1pbiB3ZWJtYXN0ZXJAZHVtbXktaG9zdDIuZXhhbXBsZS5jb20KIyAg ICBEb2N1bWVudFJvb3QgL3d3dy9kb2NzL2R1bW15LWhvc3QyLmV4YW1wbGUuY29tCiMgICAgU2Vy dmVyTmFtZSBkdW1teS1ob3N0Mi5leGFtcGxlLmNvbQojICAgIEVycm9yTG9nIC92YXIvbG9nL2R1 bW15LWhvc3QyLmV4YW1wbGUuY29tLWVycm9yX2xvZwojICAgIEN1c3RvbUxvZyAvdmFyL2xvZy9k dW1teS1ob3N0Mi5leGFtcGxlLmNvbS1hY2Nlc3NfbG9nIGNvbW1vbgojPC9WaXJ0dWFsSG9zdD4K PFZpcnR1YWxIb3N0ICo6ODA+CkRvY3VtZW50Um9vdCAvdXNyL3d3dzIvdGhlY2hvY29sYXRlc2hh Y2sKU2VydmVyTmFtZSB3d3cudGhlY2hvY29sYXRlc2hhY2suY29tClNlcnZlckFsaWFzIHRoZWNo b2NvbGF0ZXNoYWNrLmNvbSAqLnRoZWNob2NvbGF0ZXNoYWNrLmNvbSB3d3cuY2hvY29sYXRlc2hh Y2suY29tIGNob2NvbGF0ZXNoYWNrLmNvbSAqLmNob2NvbGF0ZXNoYWNrLmNvbQpFcnJvckxvZyAv dmFyL2xvZy9odHRwZC10aGVjaG9jb2xhdGVzaGFjay5jb20tZXJyb3IubG9nCkN1c3RvbUxvZyAv dmFyL2xvZy9odHRwZC10aGVjaG9jb2xhdGVzaGFjay5jb20tYWNjZXNzLmxvZyBjb21iaW5lZAo8 L1ZpcnR1YWxIb3N0PgoKPFZpcnR1YWxIb3N0ICo6ODA+CkRvY3VtZW50Um9vdCAvdXNyL3d3dwpT ZXJ2ZXJOYW1lIHd3dy50aGVkZXN0ZWZhbm9zLmNvbQpTZXJ2ZXJBbGlhcyB0aGVkZXN0ZWZhbm9z LmNvbSAqLnRoZWRlc3RlZmFub3MuY29tCkVycm9yTG9nIC92YXIvbG9nL2h0dHBkLXRoZWRlc3Rl ZmFub3MuY29tLWVycm9yLmxvZwpDdXN0b21Mb2cgL3Zhci9sb2cvaHR0cGQtdGhlZGVzdGVmYW5v cy5jb20tYWNjZXNzLmxvZyBjb21iaW5lZAo8L1ZpcnR1YWxIb3N0PgoKIzxWaXJ0dWFsSG9zdCAq OjgwPgojRG9jdW1lbnRSb290IC91c3Ivd3d3Mi90aGVjaG9jb2xhdGVzaGFjawojU2VydmVyTmFt ZSB3d3cuY2hvY29sYXRlc2hhY2suY29tCiNTZXJ2ZXJBbGlhcyBjaG9jb2xhdGVzaGFjay5jb20g Ki5jaG9jb2xhdGVzaGFjay5jb20KI0Vycm9yTG9nIC92YXIvbG9nL2h0dHBkLWNob2NvbGF0ZXNo YWNrLmNvbS1lcnJvci5sb2cKI0N1c3RvbUxvZyAvdmFyL2xvZy9odHRwZC1jaG9jb2xhdGVzaGFj ay5jb20tYWNjZXNzLmxvZyBjb21iaW5lZAojPC9WaXJ0dWFsSG9zdD4K ------=_Part_63980_12306751.1149639442137--