Commits

Jason R. Coombs committed cac1dcc

Moved scripts into jaraco\site\scripts
Made projecthoneypot a package and now croakysteel_util is the package __init__ module

Comments (0)

Files changed (16)

jaraco/site/controllers.py

 from jaraco.site.charts import Charts
 from jaraco.site.openid import OpenID
 from jaraco.site import render, output
-try:
-	from croakysteel_util import from_cherrypy
-except ImportError:
-	pass
+from jaraco.site.projecthoneypot import from_cherrypy
 
 import logging
 log = logging.getLogger(__name__)

jaraco/site/manage.py

 	os.makedirs(base)
 	scripts = ('create-iis-site.cmd isapiapp.py recycle-site.py serve.py '
 		'update-site.cmd'.split())
-	package = pkg_resources.Requirement.parse('jaraco.site')
 	for script in scripts:
 		script_name = 'scripts/' + script
-		shutil.copy(pkg_resources.resource_filename(package, script_name),
+		shutil.copy(pkg_resources.resource_filename('jaraco.site', script_name),
 			os.path.join(base, script))
 	print "Don't forget you still need to run the scripts in", base

jaraco/site/projecthoneypot/__init__.py

+import sys
+orig_value = sys.dont_write_bytecode
+sys.dont_write_bytecode = True
+from croakysteel import from_zope, __file__ as cs_file
+sys.dont_write_bytecode = orig_value
+if not cs_file.endswith('.py'):
+	print "croakysteel file is %s" % cs_file
+	import os
+	import croakysteel
+	base = os.path.dirname(cs_file)
+	croakysteel.__file__ = os.path.join(base, 'croakysteel.py')
+
+class CherryPyZopeRequestAdapter(dict):
+	"""
+	An adapter that mimicks the Zope request object.
+	"""
+	def __init__(self):
+		import cherrypy
+		req = cherrypy.request
+		for header, val in req.headers.items():
+			header = 'HTTP_' + header.upper().replace('-', '_')
+			self[header] = val
+		self.update(REMOTE_ADDR = req.remote.ip)
+		self.update(SERVER_PORT = str(req.local.port))
+		self.update(SERVER_NAME = req.local.name)
+		self.update(SERVER_ADDR = req.local.ip)
+		self.update(SCRIPT_NAME = req.script_name)
+		self.update(PATH_INFO = req.path_info)
+
+def from_cherrypy():
+	return from_zope(CherryPyZopeRequestAdapter())

jaraco/site/projecthoneypot/croakysteel.py

+#!/usr/bin/python
+
+
+#  PROJECT HONEY POT ADDRESS DISTRIBUTION SCRIPT
+#  For more information visit: http://www.projecthoneypot.org/
+#  Copyright (C) 2004-2009, Unspam Technologies, Inc.
+#  
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+#  
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#  
+#  You should have received a copy of the GNU General Public License
+#  along with this program; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+#  02111-1307  USA
+#  
+#  If you choose to modify or redistribute the software, you must
+#  completely disconnect it from the Project Honey Pot Service, as
+#  specified under the Terms of Service Use. These terms are available
+#  here:
+#  
+#  http://www.projecthoneypot.org/terms_of_service_use.php
+#  
+#  The required modification to disconnect the software from the
+#  Project Honey Pot Service is explained in the comments below. To find the
+#  instructions, search for:  *** DISCONNECT INSTRUCTIONS ***
+#  
+#  Generated On: Tue, 03 Nov 2009 10:27:52 -0500
+#  For Domain: www.jaraco.com
+#  
+#  
+
+
+#  *** DISCONNECT INSTRUCTIONS ***
+#  
+#  You are free to modify or redistribute this software. However, if
+#  you do so you must disconnect it from the Project Honey Pot Service.
+#  To do this, you must delete the lines of code below located between the
+#  *** START CUT HERE *** and *** FINISH CUT HERE *** comments. Under the
+#  Terms of Service Use that you agreed to before downloading this software,
+#  you may not recreate the deleted lines or modify this software to access
+#  or otherwise connect to any Project Honey Pot server.
+#  
+#  *** START CUT HERE ***
+#  
+__REQUEST_HOST    = 'hpr6.projecthoneypot.org'
+__REQUEST_PORT    = '80'
+__REQUEST_SCRIPT  = '/cgi/serve.php'
+#  
+#  *** FINISH CUT HERE ***
+#  
+
+__HPOT_TAG1       = 'beb55980f32e6db44574361f639647a7'
+__HPOT_TAG2       = 'b6fceffd64e7de1ac86c48c9fda3d71b'
+__HPOT_TAG3       = 'd19f5da5c91195b739432dac8050cc1c'
+
+__CLASS_STYLE_1   = 'cliphubinat'
+__CLASS_STYLE_2   = 'kasasuch'
+
+__DIV1            = 'sliyum6'
+
+__VANITY_L1       = 'MEMBER OF PROJECT HONEY POT'
+__VANITY_L2       = 'Spam Harvester Protection Network'
+__VANITY_L3       = 'provided by Unspam'
+
+__DOC_TYPE1       = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\n'
+__HEAD1           = '<html>\n<head>\n'
+__HEAD2           = '<title>Univalve</title>\n</head>\n'
+__ROBOT1          = '<meta name="robots" content="follow">\n<meta name="robots" content="noarchive,noindex">\n'
+__NOCOLLECT1      = '<meta name="no-email-collection" content="/">\n'
+__TOP1            = '<body>\n<div align="center" id="depiction">\n'
+__EMAIL1A         = '<a href="mailto:'
+__EMAIL1B         = '" style="display: none;">'
+__EMAIL1C         = '</a>'
+__EMAIL2A         = '<a href="mailto:'
+__EMAIL2B         = '" style="display:none;">'
+__EMAIL2C         = '</a>'
+__EMAIL3A         = '<a style="display: none;" href="mailto:'
+__EMAIL3B         = '">'
+__EMAIL3C         = '</a>'
+__EMAIL4A         = '<a style="display:none;" href="mailto:'
+__EMAIL4B         = '">'
+__EMAIL4C         = '</a>'
+__EMAIL5A         = '<a href="mailto:'
+__EMAIL5B         = '"></a>'
+__EMAIL5C         = '..'
+__EMAIL6A         = '<span style="display: none;"><a href="mailto:'
+__EMAIL6B         = '">'
+__EMAIL6C         = '</a></span>'
+__EMAIL7A         = '<span style="display:none;"><a href="mailto:'
+__EMAIL7B         = '">'
+__EMAIL7C         = '</a></span>'
+__EMAIL8A         = '<!-- <a href="mailto:'
+__EMAIL8B         = '">'
+__EMAIL8C         = '</a> -->'
+__EMAIL9A         = '<div id="'+__DIV1+'"><a href="mailto:'
+__EMAIL9B         = '">'
+__EMAIL9C         = '</a></div><br><script language="JavaScript" type="text/javascript">document.getElementById(\''+__DIV1+'\').innerHTML=\'\';</script>'
+__EMAIL10A        = '<a href="mailto:'
+__EMAIL10B        = '"><!-- '
+__EMAIL10C        = ' --></a>'
+__LEGAL1          = ''
+__LEGAL2          = '\n'
+__STYLE1          = '\n<style>a.'+__CLASS_STYLE_1+'{color:#FFF;font:bold 10px arial,sans-serif;text-decoration:none;}</style>'
+__VANITY1         = '<table cellspacing="0"cellpadding="0"border="0"style="background:#999;width:230px;"><tr><td valign="top"style="padding: 1px 2px 5px 4px;border-right:solid 1px #CCC;"><span style="font:bold 30px arial,sans-serif;color:#666;top:0px;position:relative;">@</span></td><td valign="top" align="left" style="padding:3px 0 0 4px;"><a href="http://www.projecthoneypot.org/" class="'+__CLASS_STYLE_1+'">'+__VANITY_L1+'</a><br><a href="http://www.unspam.com"class="'+__CLASS_STYLE_1+'">'+__VANITY_L2+'<br>'+__VANITY_L3+'</a></td></tr></table>\n'
+__BOTTOM1         = '</div>\n</body>\n</html>\n'
+
+
+def _getLegalContent(): 
+    return '<table cellspacing="0" border="0" cellpadding="0">\n<tr>\n<td><font face="courier">&#160;&#160; <b><font color="#FFFFFF">p</font></b>&#160; &#160; &#160; <br>&nbsp;<br>T&#104;e webs&#105;t<br>t&#111; you &#115;ub<br>o&#116;her t&#101;rm<br>Webs<span style="display: none">junction illbred mere geography</span>ite yo<br>read them <br>agent&#115;<font color="#FFFFFF">h</font>of<font color="#FFFFFF">d</font><br>t&#104;em&#46; The<span style="display: none">glorious</span>&nbsp;<br>n&#111;n-<span style="display: none">subfreezing animated dry pulse</span>trans&#102;<br>Websi&#116;e.<br><br>&#160; &#160; &#160;&#160; <b><font color="#FFFFFF">g</font></b>&#160; <br>&nbsp;<br>Spe<span style="display: none">longwinded tile very nubile hobo</span>cial &#114;e<br>Non-Human <br>s&#112;id&#101;rs, b<br>pr&#111;gr&#97;ms d<br>a&#117;tom&#97;tica<br><br>Ema&#105;l addr<br>I&#116; is r&#101;c&#111;<br>alone. Y&#111;u<br>has a<font color="#FFFFFF">t</font>valu<br>st&#111;rage, &#97;<br>v&#97;lue of t<br>sto&#114;ing t&#104;<br>agreement <br><br>&#160; &#160; &#160; &#160; &#160; <br>&nbsp;<br>Eac&#104; party<br>ag<span style="display: none">activist suicide</span>ain&#115;&#116; th<br>("Judicial<br>&#116;he regist<br>such laws <br>and perf&#111;r<br>&#111;f federal<br>any actio&#110;<br>S&#101;rvice. Y<br>the above <br><br><b><font color="#FFFFFF">p</font></b>&#160; <b><font color="#FFFFFF">g</font></b>&#160; <b><font color="#FFFFFF">c</font></b>&#160;&#160; <br>&nbsp;<br>You consen<br>may ap&#112;ear<br>abuse<span style="display: none">debonair seed lane</span>.<font color="#FFFFFF">c</font>The<br>&#86;i&#115;itor<span style="display: none">imbecile acid vagrant monobasic extended</span>s &#97;<br><br>VISITORS A<br>PARTY OR S<br>SUBSEQUENT<br></font></td>\n<td><font face="courier">&#160; <b><font color="#FFFFFF">t</font></b>&#160; &#160; &#160;&#160; <br><br>e &#102;rom w&#104;i<br>ject to th<br>&#115; governin<br>u &#97;ccep&#116; t<br>c&#97;refully.<br>the indivi<br>access rig<br>erabl&#101; wit<br><br><br>&#160; &#160;&#160; <b>S<span style="display: none">distance deductible quack hate spiral</span>PECI</b><br><br>str&#105;&#99;tions<br>Vis&#105;tors. <br>ots, index<br>esi&#103;ned t&#111;<br>lly.<br><br>esses on t<br>gni&#122;ed tha<br>&nbsp;ac&#107;now<span style="display: none">lawn</span>le&#100;<br>&#101; not less<br>&#110;d/or dist<br>&#104;ese a&#100;dre<br>is &#87;ebsi&#116;e<br>and e&#120;p&#114;&#101;s<br><br><b><font color="#FFFFFF">p</font></b>&#160; &#160; &#160; &#160; <b><font color="#FFFFFF">s</font></b><br><br>&nbsp;agr&#101;es<span style="display: none">viewpoint volunteer specified lamb attendance</span>&nbsp;th<br>&#101; other in<br>&nbsp;&#65;&#99;t&#105;&#111;n") <br>ered Admi&#110;<br>are applie<br>med entire<br>&nbsp;and sta&#116;e<br>&nbsp;brought<font color="#FFFFFF">h</font>a<br>ou c&#111;ns&#101;nt<br>agreem&#101;nt.<br><br>&#160; &#160; <b><font color="#FFFFFF">s</font></b>&#160; &#160;&#160; <br><br>t to havin<br>&nbsp;som&#101;w&#104;er<span style="display: none">wasteful capable amidships</span>e<br>&nbsp;Iden&#116;if&#105;e<br>&#103;ree not &#116;<br><br>GREE THAT <br>E&#78;DING ANY<br>&nbsp;BREA&#67;H OF<br></font></td>\n<td><font face="courier">&#160; &#160;&#160; <b><font color="#FFFFFF">i</font></b>&nbsp;<b>TER</b><br><br>ch you acc<br>&#101; foll&#111;win<br>&#103; access<font color="#FFFFFF">s</font>t<br>hese t&#101;rm&#115;<br>&nbsp;&#65;ny Non-H<br>du&#97;l(&#115;) wh<br>hts &#103;rante<br>hout<font color="#FFFFFF">k</font>t&#104;e e<br><br><br><b>AL</b>&nbsp;<b>L&#73;CE&#78;SE</b><br><br><font color="#FFFFFF">o</font>&#111;n a vis&#105;<br>Non-<span style="display: none">diminished circumflex splitting</span>Huma&#110;<font color="#FFFFFF">p</font><br>ers, r&#111;&#98;ot<br>&nbsp;acces&#115;, r<br><br><br>his site<font color="#FFFFFF">d</font>a<br>t<font color="#FFFFFF">d</font>the&#115;e &#101;m<br>ge &#97;nd agr<br>&nbsp;tha&#110; US $<br>ri&#98;&#117;tion o<br>s<span style="display: none">cap consensual</span>ses. In&#116;&#101;<br>\'s email a<br>s&#108;y prohib<br><br>&#160;&#160; <b><font color="#FFFFFF">c</font><font color="#FFFFFF">o</font>APPLI</b><br><br>at a&#110;y s&#117;i<br>&nbsp;connec<span style="display: none">alternate</span>&#116;io<br>&#115;hall be g<br>i&#115;t&#114;&#97;tive <br>d &#116;&#111; &#97;gr&#101;&#101;<br>ly within <br>&nbsp;courts &#119;&#105;<br>gain&#115;t him<br>&nbsp;to electr<br><br><br><b><font color="#FFFFFF">o</font></b>&#160;&#160; <b>RE&#67;ORD</b><br><br>g y<span style="display: none">basis buffalo debtor</span>our Int<br>&nbsp;on this p<br>r is uniqu<br>o use this<br><br>HA&#82;VESTING<br><font color="#FFFFFF">o</font>&#77;ES&#83;AGE(S<br>&nbsp;T&#72;ESE TE&#82;<br></font></td>\n<td><font face="courier"><b>MS</b>&nbsp;<b>AND</b>&nbsp;<b>&#67;ON</b><br><br>esse<span style="display: none">open</span>d this<br>g con&#100;i<span style="display: none">talent earnings</span>t<span style="display: none">temper accidental</span>&#105;o<br>o the &#87;ebs<br>&nbsp;and &#99;on&#100;i<br>uman Visi&#116;<br>o controls<br>d to you &#117;<br>&#120;p&#114;ess &#119;ri<br><br><br>&nbsp;<b>REST&#82;&#73;C<span style="display: none">conclusion interval minimum</span>TI</b><br><br>&#116;or\'s<font color="#FFFFFF">g</font>lic&#101;<br>Vis<span style="display: none">population sweeping base educational surprise</span>i<span style="display: none">sunny capons gospel resolvent formula</span>&#116;ors &#105;<br>&#115;,<font color="#FFFFFF">f</font>cr<span style="display: none">movable icon common religion</span>aw&#108;er<br>&#101;ad, compi<br><br><br>&#114;e conside<br>ail addres<br>ee that<span style="display: none">pension</span><font color="#FFFFFF">d</font>e&#97;<br>50. Y&#111;u fu<br>&#102; t&#104;&#101;se ad<br>nti&#111;nal &#99;o<br>ddresses i<br>ited.<br><br><b>&#67;&#65;BL&#69;</b>&nbsp;<b>L&#65;W</b>&nbsp;<br><br>&#116;, a<span style="display: none">ceaseless nomadic</span>ction <br>n with or <br>overn&#101;d by<br>&#67;ontact (t<br>&#109;&#101;nts bet&#119;<br>the<font color="#FFFFFF">c</font>Admin <br>thin<font color="#FFFFFF">c</font>the A<br>&nbsp;in co&#110;nec<br>onic servi<br><br><br><b>S</b>&nbsp;<b>OF</b>&nbsp;<b>VISIT</b><br><br>e<span style="display: none">resounding</span>rn&#101;t Prot<br>ag&#101; (the "<br>ely<font color="#FFFFFF">h</font>&#109;atch&#101;<br>&nbsp;a&#100;dress f<br><br>, GATHE&#82;IN<br>&#41;<font color="#FFFFFF">h</font>TO &#84;HE &#73;<br>MS OF<font color="#FFFFFF">k</font>SERV<br></font></td>\n<td><font face="courier"><b>DITIONS</b>&nbsp;<b>OF</b><br><br>&nbsp;agreement<br>ns&#46; These <br>ite.<font color="#FFFFFF">h</font>&#66;y vi<br>tions<font color="#FFFFFF">d</font>(&#116;&#104;e<span style="display: none">loop leather audit</span><br>&#111;rs to t&#104;e<br>, au<span style="display: none">sacerdotal peculiar</span>t&#104;ors<font color="#FFFFFF">f</font><br>&#110;d&#101;r &#116;&#104;e T<br>tten perm&#105;<br><br><br><b>&#79;NS</b>&nbsp;<b>FOR</b>&nbsp;<b>NO</b><br><br>&#110;se t&#111; a<span style="display: none">wet maxillary monarch</span>c&#99;<br>n<span style="display: none">tongue obsolete chivalrous fool heptavalent</span>clude&#44; bu<br>&#115;, harves&#116;<br>le &#111;r gath<br><br><br>red pr&#111;p&#114;i<br>ses are pr<br>c&#104;<font color="#FFFFFF">i</font>email a<br>r&#116;her agre<br>dres&#115;es su<br>lle&#99;tion,<font color="#FFFFFF">t</font><br>s recogn<span style="display: none">hoc intrastate</span>iz<br><br><br><b>AND</b>&nbsp;<b>JU&#82;ISD</b><br><br>o&#114; p&#114;oceed<br>&#97;&#114;ising f&#114;<br>&nbsp;the l&#97;w o<br>he "Admi&#110; <br>een Adm&#105;n <br>&#83;tate.<font color="#FFFFFF">h</font>Yo&#117;<br>dmin State<br>tion<span style="display: none">highproof clinical</span>&nbsp;with<font color="#FFFFFF">f</font><br>ce of &#112;roc<br><br><br><b>OR</b>&nbsp;<b>USE</b>&nbsp;<b>AND</b><br><br>ocol a&#100;&#100;&#114;e<br>Identi<span style="display: none">gentle</span>fier<br>d &#116;o you&#114;<font color="#FFFFFF">c</font><br>or &#97;ny rea<br><br>G&#44; STO&#82;ING<br>DENTIFI&#69;R <br>ICE&#46;<br></font></td>\n<td><font face="courier">&nbsp;<b>USE</b>&nbsp;<br><br>&nbsp;("th&#101;<font color="#FFFFFF">i</font>&#87;eb<br>t&#101;rms ar&#101; <br>si&#116;in&#103; (in<br>&nbsp;"Te&#114;m&#115; o&#102;<br>&nbsp;Website s<br>or otherw&#105;<br>&#101;rm&#115; of Se<br>ss&#105;on<font color="#FFFFFF">p</font>of t<br><br><br><b>N&#45;HUMAN</b>&nbsp;<b>VI</b><br><br>ess<font color="#FFFFFF">f</font>the We<br>t<font color="#FFFFFF">f</font>are<span style="display: none">burden downward roasted cosignatory windup</span>&nbsp;n&#111;t<font color="#FFFFFF">g</font><br>e&#114;s, or &#97;n<br>er<span style="display: none">synthesis</span>&nbsp;con&#116;&#101;nt<br><br><br>etary<font color="#FFFFFF">p</font>i<span style="display: none">kick export</span>nte<br>o&#118;ided for<br>ddress th&#101;<br>e that th&#101;<br>b&#115;tan&#116;i&#97;ll<br>harvesting<br>ed as a v&#105;<br><br><br><b>&#73;&#67;TION</b>&nbsp;<br><br>ing bro&#117;gh<br>om<font color="#FFFFFF">h</font>the &#84;er<br>f the stat<br>Sta&#116;e") &#102;o<br>State re&#115;i<br>&nbsp;co&#110;sent t<br>. Yo<span style="display: none">ursine river</span>u cons<br>breach<span style="display: none">cystic yeomanly happy wildcat</span>es o<br>&#101;s&#115;<font color="#FFFFFF">f</font>&#114;egard<br><br><br>&nbsp;<b>ABUSE</b>&nbsp;<br><br>s&#115; recor&#100;e<br>") &#105;f we s<br>Internet P<br>son.<br><br>, T&#82;ANSFE<span style="display: none">unicorns paddle</span>R<br>CO&#78;STITUTE<br><br></font></td>\n<td><font face="courier"><br><br>site")<font color="#FFFFFF">g</font>is <br>in<font color="#FFFFFF">g</font>ad&#100;itio<br>&nbsp;an&#121; m&#97;&#110;ne<br>&nbsp;Servic<span style="display: none">candid</span>e")<br>hall<span style="display: none">bareheaded selfrecording team</span>&nbsp;be<font color="#FFFFFF">g</font>c&#111;<br>se makes u<br>rvice are<br>he &#111;wner o<br><br><br><b>SITORS</b>&nbsp;<br><br>&#98;site appl<br>limited &#116;o<br>y o&#116;her co<br>&nbsp;from<font color="#FFFFFF">a</font>the <br><br><br>llectual p<br><font color="#FFFFFF">p</font>human &#118;is<br>&nbsp;Webs&#105;te c<br>&nbsp;&#99;o<span style="display: none">softshell</span>mp&#105;lati<br>y d&#105;mini&#115;h<br>, ga&#116;&#104;erin<br>o&#108;ation of<br><br><br><br><br>&#116;<font color="#FFFFFF">k</font>&#98;&#121; such <br>ms of<span style="display: none">rose granny vagrant eager mishap</span>&nbsp;Serv<br>e of res&#105;d<br>r the<span style="display: none">laboratory steep genetic</span>&nbsp;Webs<br>d<span style="display: none">technique expensive outside unfounded</span>ents e&#110;te<br>o &#116;h&#101; juri<br>ent to the<br>f t<span style="display: none">fanatical herons classy</span>hes&#101; Te<br>ing a&#99;t&#105;&#111;n<br><br><br><br><br>d. An<font color="#FFFFFF">f</font>ema&#105;<br>uspect pot<br>ro&#116;ocol<font color="#FFFFFF">i</font>a&#100;<br><br><br>R&#73;NG TO A <br>&#83; AN ACCEP<br><br></font></td>\n<td><font face="courier"><br><br>provi&#100;ed<br>n to an&#121;<br>&#114;) the<br>.<font color="#FFFFFF">i</font>Please<br>ns&#105;&#100;ered<br>se of<br><br>f the<br><br><br><br><br>y to<br>, web<br>mput&#101;r<br>Website<br><br><br>&#114;op<span style="display: none">walkin efficacious parliamentary cruciform</span>erty.<br>itors<br>ontains<br>on,<br>e<span style="display: none">commutative</span>s<font color="#FFFFFF">h</font>the<br>g&#44;<font color="#FFFFFF">k</font>an&#100;/or<br>&nbsp;this<br><br><br><br><br>pa&#114;ty<br>ice<br>ence of<br>ite as<br>red into<br>sdi&#99;&#116;ion<br><font color="#FFFFFF">p</font>&#118;enue in<br>rms o&#102;<br>s under<br><br><br><br><br>&#108; address<br>ential<br>dre<span style="display: none">whiny match sleazy choleric striped</span>&#115;s.<br><br><br>&#84;HIRD<br>TANCE AND<br><br></font></td>\n</tr>\n</table>\n<br>'
+
+
+
+
+
+
+
+del __CLASS_STYLE_1, __CLASS_STYLE_2, __DIV1, __VANITY_L1, __VANITY_L2, __VANITY_L3
+
+__version__ = "1.3"
+
+def _formatHTML( s ):
+    return s.replace( r"\n", "\n" )
+
+def _getDocType( _formatHTML = _formatHTML, __DOC_TYPE1 = __DOC_TYPE1 ): 
+    return _formatHTML( __DOC_TYPE1 )
+del __DOC_TYPE1
+
+def _getHeadHTML1( _formatHTML = _formatHTML, __HEAD1 = __HEAD1 ):
+    return _formatHTML( __HEAD1 )
+del __HEAD1
+
+def _getRobotHTML( _formatHTML = _formatHTML, __ROBOT1 = __ROBOT1 ):
+    return _formatHTML( __ROBOT1 )
+del __ROBOT1
+
+def _getNoCollectHTML( _formatHTML = _formatHTML,
+                       __NOCOLLECT1 = __NOCOLLECT1 ):
+    return _formatHTML( __NOCOLLECT1 )
+del __NOCOLLECT1
+
+def _getHeadHTML2( _formatHTML = _formatHTML, __HEAD2 = __HEAD2 ):
+    return _formatHTML( __HEAD2 )
+del __HEAD2
+
+def _getTopHTML( _formatHTML = _formatHTML, __TOP1 = __TOP1 ):
+    return _formatHTML( __TOP1 )
+del __TOP1
+
+def _getEmailHTML( method, m,
+                   _formatHTML = _formatHTML,
+                   __EMAIL1A = __EMAIL1A, __EMAIL1B = __EMAIL1B, __EMAIL1C = __EMAIL1C,
+                   __EMAIL2A = __EMAIL2A, __EMAIL2B = __EMAIL2B, __EMAIL2C = __EMAIL2C,
+                   __EMAIL3A = __EMAIL3A, __EMAIL3B = __EMAIL3B, __EMAIL3C = __EMAIL3C,
+                   __EMAIL4A = __EMAIL4A, __EMAIL4B = __EMAIL4B, __EMAIL4C = __EMAIL4C,
+                   __EMAIL5A = __EMAIL5A, __EMAIL5B = __EMAIL5B, __EMAIL5C = __EMAIL5C,
+                   __EMAIL6A = __EMAIL6A, __EMAIL6B = __EMAIL6B, __EMAIL6C = __EMAIL6C,
+                   __EMAIL7A = __EMAIL7A, __EMAIL7B = __EMAIL7B, __EMAIL7C = __EMAIL7C,
+                   __EMAIL8A = __EMAIL8A, __EMAIL8B = __EMAIL8B, __EMAIL8C = __EMAIL8C,
+                   __EMAIL9A = __EMAIL9A, __EMAIL9B = __EMAIL9B, __EMAIL9C = __EMAIL9C,
+                   __EMAIL10A = __EMAIL10A, __EMAIL10B = __EMAIL10B, __EMAIL10C = __EMAIL10C ):
+    return { 0: "",
+             1: _formatHTML( __EMAIL1A + m + __EMAIL1B + m + __EMAIL1C ),
+             2: _formatHTML( __EMAIL2A + m + __EMAIL2B + m + __EMAIL2C ), 
+             3: _formatHTML( __EMAIL3A + m + __EMAIL3B + m + __EMAIL3C ), 
+             4: _formatHTML( __EMAIL4A + m + __EMAIL4B + m + __EMAIL4C ), 
+             5: _formatHTML( __EMAIL5A + m + __EMAIL5B ), 
+             6: _formatHTML( __EMAIL6A + m + __EMAIL6B + m + __EMAIL6C ), 
+             7: _formatHTML( __EMAIL7A + m + __EMAIL7B + m + __EMAIL7C ), 
+             8: _formatHTML( __EMAIL8A + m + __EMAIL8B + m + __EMAIL8C ), 
+             9: _formatHTML( __EMAIL9A + m + __EMAIL9B + m + __EMAIL9C ), 
+             }.get( method, # if not found then default to method 10
+                    _formatHTML( __EMAIL10A + m + __EMAIL10B + m + __EMAIL10C ) )
+del __EMAIL1A, __EMAIL1B, __EMAIL1C
+del __EMAIL2A, __EMAIL2B, __EMAIL2C
+del __EMAIL3A, __EMAIL3B, __EMAIL3C 
+del __EMAIL4A, __EMAIL4B, __EMAIL4C
+del __EMAIL5A, __EMAIL5B, __EMAIL5C
+del __EMAIL6A, __EMAIL6B, __EMAIL6C
+del __EMAIL7A, __EMAIL7B, __EMAIL7C
+del __EMAIL8A, __EMAIL8B, __EMAIL8C
+del __EMAIL9A, __EMAIL9B, __EMAIL9C
+del __EMAIL10A, __EMAIL10B, __EMAIL10C
+
+def _getLegalHTML( _formatHTML = _formatHTML, __LEGAL1 = __LEGAL1,
+                   _getLegalContent = _getLegalContent, __LEGAL2 = __LEGAL2 ):
+    return _formatHTML( __LEGAL1 + _getLegalContent() + __LEGAL2 )
+del __LEGAL1, _getLegalContent, __LEGAL2
+
+def _getStyleHTML( _formatHTML = _formatHTML, __STYLE1 = __STYLE1 ):
+    return _formatHTML( __STYLE1 )
+del __STYLE1
+
+def _getVanityHTML( _formatHTML = _formatHTML, __VANITY1 = __VANITY1 ):
+    return _formatHTML( __VANITY1 )
+del __VANITY1
+
+def _getBottomHTML( _formatHTML = _formatHTML, __BOTTOM1 = __BOTTOM1 ):
+    return _formatHTML( __BOTTOM1 )
+del __BOTTOM1
+
+def _performRequest( request,
+                     __REQUEST_HOST = __REQUEST_HOST,
+                     __REQUEST_PORT = __REQUEST_PORT,
+                     __REQUEST_SCRIPT = __REQUEST_SCRIPT,
+                     __HPOT_TAG2 = __HPOT_TAG2 ):
+    import httplib
+    headers = { "User-Agent": "PHPot" + " " + __HPOT_TAG2,
+                "Host": __REQUEST_HOST,
+                "Content-Type": "application/x-www-form-urlencoded",
+                "Connection": "close",
+                }
+    h = httplib.HTTPConnection( "%s:%s" % ( __REQUEST_HOST, __REQUEST_PORT ) )
+    h.request( "POST", __REQUEST_SCRIPT, request, headers )
+    return h.getresponse().read()
+del __REQUEST_HOST, __REQUEST_PORT, __REQUEST_SCRIPT
+
+def _whoAmI():
+    import md5
+    try:
+        r = __file__
+    except:
+        import sys
+        r = sys.argv[ 0 ]
+    body = open( r ).read()
+    body = body.split( "\n", 1 )[ 1 ]
+    return md5.new( body ).hexdigest()
+
+def _prepareRequest( REQUEST, forcePortNumber = None,
+                     _whoAmI = _whoAmI, __HPOT_TAG1 = __HPOT_TAG1,
+                     __HPOT_TAG2 = __HPOT_TAG2, __HPOT_TAG3 = __HPOT_TAG3 ):
+    from sys import version
+    postvars = {}
+    postvars[ "tag1" ] = __HPOT_TAG1
+    postvars[ "tag2" ] = __HPOT_TAG2
+    postvars[ "tag3" ] = __HPOT_TAG3
+    postvars[ "tag4" ] = _whoAmI()
+    postvars[ "ip" ] = REQUEST[ "REMOTE_ADDR" ]
+    postvars[ "svrn" ] = ( REQUEST.get( "HTTP_HOST", "" )
+                           or REQUEST.get( "SERVER_NAME", "" ) )
+    postvars[ "svp" ] = forcePortNumber or REQUEST.get( "SERVER_PORT", "80" ) 
+    postvars[ "svip" ] = REQUEST.get( "SERVER_ADDR", "" )
+    postvars[ "rquri" ] = ( REQUEST.get( "REQUEST_URI", "" ) 
+                            or REQUEST.get( "PATH_INFO", "" ) )
+    postvars[ "version" ] = __version__ + "-" + version.split()[ 0 ]
+    postvars[ "sn" ] = ( REQUEST.get( "SCRIPT_NAME", "" )
+                         or REQUEST.get( "PATH_TRANSLATED", "" ) )
+    postvars[ "ref" ] = REQUEST.get( "HTTP_REFERER", "" )
+    postvars[ "uagnt" ] = REQUEST.get( "HTTP_USER_AGENT", "" )
+    return postvars
+del _whoAmI, __HPOT_TAG1, __HPOT_TAG2, __HPOT_TAG3
+
+def _transcribeResponse( response ):
+    import urllib
+    settings = {}
+    isParam = 0
+    for line in response.split( "\n" ):
+        if line == "<END>":
+            isParam = 0
+        if isParam:
+            pieces = line.split( "=", 1 )
+            settings[ pieces[ 0 ] ] = urllib.unquote_plus( pieces[ 1 ] )
+        if line == "<BEGIN>":
+            isParam = 1
+    if settings.has_key( "directives" ):
+        settings[ "directives" ] = settings[ "directives" ].split( "," )
+    else:
+        settings[ "directives" ] = [ "1" ] * 10
+    settings[ "directives" ] = map( int, settings[ "directives" ] )
+    for k, v in settings.items():
+        try:
+            settings[ k ] = int( v )
+        except:
+            pass
+    return settings
+
+def _getSettings( REQUEST, forcePortNumber = None,
+                  _performRequest = _performRequest,
+                  _prepareRequest = _prepareRequest,
+                  _transcribeResponse = _transcribeResponse ):
+    import urllib
+    request = []
+    for k, v in _prepareRequest( REQUEST, forcePortNumber ).items():
+        request.append( k + "=" + urllib.quote( v ) )
+    request = "&".join( request )
+    response = _performRequest( request )
+    return _transcribeResponse( response )
+del _performRequest, _prepareRequest, _transcribeResponse
+
+def _makeHTML( settings,
+               _formatHTML = _formatHTML,
+               _getBottomHTML = _getBottomHTML, _getDocType = _getDocType,
+               _getEmailHTML = _getEmailHTML, _getHeadHTML1 = _getHeadHTML1,
+               _getHeadHTML2 = _getHeadHTML2, _getLegalHTML = _getLegalHTML,
+               _getNoCollectHTML = _getNoCollectHTML,
+               _getRobotHTML = _getRobotHTML, _getStyleHTML = _getStyleHTML,
+               _getTopHTML = _getTopHTML, _getVanityHTML = _getVanityHTML ):
+    directives = settings[ "directives" ]
+    email = settings.get( "email", None )
+    emailmethod = settings.get( "emailmethod", None )
+    return "".join ( [ directives[ 0 ] and _getDocType()  or "",
+                       settings.get( "injDocType", 0 ) and _formatHTML( settings.get( "injDocTypeMsg", "" ) ) or "",
+                       directives[ 1 ] and _getHeadHTML1() or "",
+                       settings.get( "injHead1HTML", 0 ) and _formatHTML( settings.get( "injHead1HTMLMsg", "" ) ) or "",
+                       directives[ 8 ] and _getRobotHTML() or "",
+                       settings.get( "injRobotHTML", 0 ) and _formatHTML( settings.get( "injRobotHTMLMsg", "" ) ) or "",
+                       directives[ 9 ] and _getNoCollectHTML() or "",
+                       settings.get( "injNoCollectHTML", 0 ) and _formatHTML( settings.get( "injNoCollectHTMLMsg", "" ) ) or "",
+                       directives[ 1 ] and _getHeadHTML2() or "",
+                       settings.get( "injHead2HTML", 0 ) and _formatHTML( settings.get( "injHead2HTMLMsg", "" ) ) or "",
+                       directives[ 2 ] and _getTopHTML() or "",
+                       settings.get( "injTopHTML", 0 ) and _formatHTML( settings.get( "injTopHTMLMsg", "" ) ) or "",
+
+                       settings.get( "actMsgOn", 0 ) and _formatHTML( settings.get( "actMsg", "" ) ) or "",
+                       settings.get( "errMsgOn", 0 ) and _formatHTML( settings.get( "errMsg", "" ) ) or "",
+                       settings.get( "customMsgOn", 0 ) and _formatHTML( settings.get( "customMsg", "" ) ) or "",
+
+                       directives[ 3 ] and _getLegalHTML() or "",
+                       settings.get( "injLegalHTML", 0 ) and _formatHTML( settings.get( "injLegalHTMLMsg", "" ) ) or "",
+                       settings.get( "altLegalOn", 0 ) and _formatHTML( settings.get( "altLegalMsg", "" ) ) or "",
+
+                       directives[ 4 ] and _getEmailHTML( emailmethod, email ) or "",
+                       settings.get( "injEmailHTML", 0 ) and _formatHTML( settings.get( "injEmailHTMLMsg", "" ) ) or "",
+                       directives[ 5 ] and _getStyleHTML() or "",
+                       settings.get( "injStyleHTML", 0 ) and _formatHTML( settings.get( "injStyleHTMLMsg", "" ) ) or "",
+
+                       directives[ 6 ] and _getVanityHTML() or "",
+                       settings.get( "injVanityHTML", 0 ) and _formatHTML( settings.get( "injVanityHTMLMsg", "" ) ) or "",
+                       settings.get( "altVanityOn", 0 ) and _formatHTML( settings.get( "altVanityMsg", "" ) ) or "",
+
+                       directives[ 7 ] and _getBottomHTML() or "",
+                       settings.get( "injBottomHTML", 0 ) and _formatHTML( settings.get( "injBottomHTMLMsg", "" ) ) or "",
+                       ] )
+del _formatHTML
+del _getBottomHTML, _getDocType, _getEmailHTML
+del _getHeadHTML1, _getHeadHTML2, _getLegalHTML, _getNoCollectHTML
+del _getRobotHTML, _getStyleHTML, _getTopHTML, _getVanityHTML
+
+
+def from_cgi( _getSettings = _getSettings, _makeHTML = _makeHTML ):
+    """This function is to be called by CGI scripts.  It will print
+    (to standard output) the Content-Type header and full page HTML
+    for your honeypot."""
+    print "Content-Type: text/html"
+    print "Cache-Control: no-cache"
+    print
+    import os
+    settings = _getSettings( os.environ )
+    print _makeHTML( settings )
+
+
+try:
+    if __name__ == '__main__':
+        from_cgi()
+    else:
+        del from_cgi
+        def from_zope( REQUEST, forcePortNumber = None,
+                       _getSettings = _getSettings, _makeHTML = _makeHTML ):
+            """Pass this function the Zope REQUEST and it will return the
+            full page HTML for your honeypot."""
+            _getSettings = getattr( from_zope, 'getSettings', _getSettings )
+            _makeHTML = getattr( from_zope, 'makeHTML', _makeHTML )
+            if forcePortNumber:
+                forcePortNumber = str( forcePortNumber )
+            settings = _getSettings( REQUEST, forcePortNumber )
+            return _makeHTML( settings )
+        try:
+            from_zope.getSettings = _getSettings
+            from_zope.makeHTML = _makeHTML
+        except:
+            pass
+        try:
+            from_zope = from_zope.__call__
+        except:
+            pass
+finally:
+    try:
+        del from_cgi
+    except:
+        pass
+    del _getSettings, _makeHTML

jaraco/site/scripts/create-iis-site.cmd

+@echo off
+\windows\system32\inetsrv\appcmd add site /id:3 /name:"Primary Web Site" /physicalPath:c:\inetpub\jaraco.site /bindings:http/*:80:www.jaraco.com,https/*:443:www.jaraco.com
+\windows\system32\inetsrv\appcmd add apppool /name:"Primary Web Site"
+\windows\system32\inetsrv\appcmd set app "Primary Web Site/" /applicationPool:"Primary Web Site"
+mkdir \inetpub\jaraco.site

jaraco/site/scripts/isapiapp.py

+#!python
+from __future__ import print_function
+
+from jaraco.site.isapi import (
+	factory as __ExtensionFactory__,
+	handle_command_line, setup_environment,
+	)
+print('setting up environment')
+setup_environment(__file__)
+print('done setting up environment')
+if __name__ == '__main__': handle_command_line()

jaraco/site/scripts/recycle-site.py

+from wmi import GetObject, WMI
+
+server_name = '.'
+ob = r'winmgmts:{{authenticationLevel=pktPrivacy}}\\{server_name}\root\microsoftiisv2'.format(**vars())
+iis = GetObject(ob)
+pools = iis.ExecQuery("Select * From IIsApplicationPool")
+for pool in pools:
+	if 'Primary Web Site' in pool.Name:
+		print("Attempting to recycle {0} on {1}".format(pool.Name, server_name))
+		pool.Recycle
+		break

jaraco/site/scripts/serve.py

+#!/usr/bin/env python
+
+import cherrypy
+import jaraco.site
+
+def main():
+	jaraco.site.init()
+	cherrypy.config.update({
+		'server.socket_host': '0.0.0.0',
+		})
+	cherrypy.engine.start()
+
+if __name__ == '__main__':
+	main()

jaraco/site/scripts/update-site.cmd

+easy_install -Z https://bitbucket.org/jaraco/jaraco.site/get/tip.zip

projecthoneypot/croakysteel.py

-#!/usr/bin/python
-
-
-#  PROJECT HONEY POT ADDRESS DISTRIBUTION SCRIPT
-#  For more information visit: http://www.projecthoneypot.org/
-#  Copyright (C) 2004-2009, Unspam Technologies, Inc.
-#  
-#  This program is free software; you can redistribute it and/or modify
-#  it under the terms of the GNU General Public License as published by
-#  the Free Software Foundation; either version 2 of the License, or
-#  (at your option) any later version.
-#  
-#  This program is distributed in the hope that it will be useful,
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#  GNU General Public License for more details.
-#  
-#  You should have received a copy of the GNU General Public License
-#  along with this program; if not, write to the Free Software
-#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-#  02111-1307  USA
-#  
-#  If you choose to modify or redistribute the software, you must
-#  completely disconnect it from the Project Honey Pot Service, as
-#  specified under the Terms of Service Use. These terms are available
-#  here:
-#  
-#  http://www.projecthoneypot.org/terms_of_service_use.php
-#  
-#  The required modification to disconnect the software from the
-#  Project Honey Pot Service is explained in the comments below. To find the
-#  instructions, search for:  *** DISCONNECT INSTRUCTIONS ***
-#  
-#  Generated On: Tue, 03 Nov 2009 10:27:52 -0500
-#  For Domain: www.jaraco.com
-#  
-#  
-
-
-#  *** DISCONNECT INSTRUCTIONS ***
-#  
-#  You are free to modify or redistribute this software. However, if
-#  you do so you must disconnect it from the Project Honey Pot Service.
-#  To do this, you must delete the lines of code below located between the
-#  *** START CUT HERE *** and *** FINISH CUT HERE *** comments. Under the
-#  Terms of Service Use that you agreed to before downloading this software,
-#  you may not recreate the deleted lines or modify this software to access
-#  or otherwise connect to any Project Honey Pot server.
-#  
-#  *** START CUT HERE ***
-#  
-__REQUEST_HOST    = 'hpr6.projecthoneypot.org'
-__REQUEST_PORT    = '80'
-__REQUEST_SCRIPT  = '/cgi/serve.php'
-#  
-#  *** FINISH CUT HERE ***
-#  
-
-__HPOT_TAG1       = 'beb55980f32e6db44574361f639647a7'
-__HPOT_TAG2       = 'b6fceffd64e7de1ac86c48c9fda3d71b'
-__HPOT_TAG3       = 'd19f5da5c91195b739432dac8050cc1c'
-
-__CLASS_STYLE_1   = 'cliphubinat'
-__CLASS_STYLE_2   = 'kasasuch'
-
-__DIV1            = 'sliyum6'
-
-__VANITY_L1       = 'MEMBER OF PROJECT HONEY POT'
-__VANITY_L2       = 'Spam Harvester Protection Network'
-__VANITY_L3       = 'provided by Unspam'
-
-__DOC_TYPE1       = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\n'
-__HEAD1           = '<html>\n<head>\n'
-__HEAD2           = '<title>Univalve</title>\n</head>\n'
-__ROBOT1          = '<meta name="robots" content="follow">\n<meta name="robots" content="noarchive,noindex">\n'
-__NOCOLLECT1      = '<meta name="no-email-collection" content="/">\n'
-__TOP1            = '<body>\n<div align="center" id="depiction">\n'
-__EMAIL1A         = '<a href="mailto:'
-__EMAIL1B         = '" style="display: none;">'
-__EMAIL1C         = '</a>'
-__EMAIL2A         = '<a href="mailto:'
-__EMAIL2B         = '" style="display:none;">'
-__EMAIL2C         = '</a>'
-__EMAIL3A         = '<a style="display: none;" href="mailto:'
-__EMAIL3B         = '">'
-__EMAIL3C         = '</a>'
-__EMAIL4A         = '<a style="display:none;" href="mailto:'
-__EMAIL4B         = '">'
-__EMAIL4C         = '</a>'
-__EMAIL5A         = '<a href="mailto:'
-__EMAIL5B         = '"></a>'
-__EMAIL5C         = '..'
-__EMAIL6A         = '<span style="display: none;"><a href="mailto:'
-__EMAIL6B         = '">'
-__EMAIL6C         = '</a></span>'
-__EMAIL7A         = '<span style="display:none;"><a href="mailto:'
-__EMAIL7B         = '">'
-__EMAIL7C         = '</a></span>'
-__EMAIL8A         = '<!-- <a href="mailto:'
-__EMAIL8B         = '">'
-__EMAIL8C         = '</a> -->'
-__EMAIL9A         = '<div id="'+__DIV1+'"><a href="mailto:'
-__EMAIL9B         = '">'
-__EMAIL9C         = '</a></div><br><script language="JavaScript" type="text/javascript">document.getElementById(\''+__DIV1+'\').innerHTML=\'\';</script>'
-__EMAIL10A        = '<a href="mailto:'
-__EMAIL10B        = '"><!-- '
-__EMAIL10C        = ' --></a>'
-__LEGAL1          = ''
-__LEGAL2          = '\n'
-__STYLE1          = '\n<style>a.'+__CLASS_STYLE_1+'{color:#FFF;font:bold 10px arial,sans-serif;text-decoration:none;}</style>'
-__VANITY1         = '<table cellspacing="0"cellpadding="0"border="0"style="background:#999;width:230px;"><tr><td valign="top"style="padding: 1px 2px 5px 4px;border-right:solid 1px #CCC;"><span style="font:bold 30px arial,sans-serif;color:#666;top:0px;position:relative;">@</span></td><td valign="top" align="left" style="padding:3px 0 0 4px;"><a href="http://www.projecthoneypot.org/" class="'+__CLASS_STYLE_1+'">'+__VANITY_L1+'</a><br><a href="http://www.unspam.com"class="'+__CLASS_STYLE_1+'">'+__VANITY_L2+'<br>'+__VANITY_L3+'</a></td></tr></table>\n'
-__BOTTOM1         = '</div>\n</body>\n</html>\n'
-
-
-def _getLegalContent(): 
-    return '<table cellspacing="0" border="0" cellpadding="0">\n<tr>\n<td><font face="courier">&#160;&#160; <b><font color="#FFFFFF">p</font></b>&#160; &#160; &#160; <br>&nbsp;<br>T&#104;e webs&#105;t<br>t&#111; you &#115;ub<br>o&#116;her t&#101;rm<br>Webs<span style="display: none">junction illbred mere geography</span>ite yo<br>read them <br>agent&#115;<font color="#FFFFFF">h</font>of<font color="#FFFFFF">d</font><br>t&#104;em&#46; The<span style="display: none">glorious</span>&nbsp;<br>n&#111;n-<span style="display: none">subfreezing animated dry pulse</span>trans&#102;<br>Websi&#116;e.<br><br>&#160; &#160; &#160;&#160; <b><font color="#FFFFFF">g</font></b>&#160; <br>&nbsp;<br>Spe<span style="display: none">longwinded tile very nubile hobo</span>cial &#114;e<br>Non-Human <br>s&#112;id&#101;rs, b<br>pr&#111;gr&#97;ms d<br>a&#117;tom&#97;tica<br><br>Ema&#105;l addr<br>I&#116; is r&#101;c&#111;<br>alone. Y&#111;u<br>has a<font color="#FFFFFF">t</font>valu<br>st&#111;rage, &#97;<br>v&#97;lue of t<br>sto&#114;ing t&#104;<br>agreement <br><br>&#160; &#160; &#160; &#160; &#160; <br>&nbsp;<br>Eac&#104; party<br>ag<span style="display: none">activist suicide</span>ain&#115;&#116; th<br>("Judicial<br>&#116;he regist<br>such laws <br>and perf&#111;r<br>&#111;f federal<br>any actio&#110;<br>S&#101;rvice. Y<br>the above <br><br><b><font color="#FFFFFF">p</font></b>&#160; <b><font color="#FFFFFF">g</font></b>&#160; <b><font color="#FFFFFF">c</font></b>&#160;&#160; <br>&nbsp;<br>You consen<br>may ap&#112;ear<br>abuse<span style="display: none">debonair seed lane</span>.<font color="#FFFFFF">c</font>The<br>&#86;i&#115;itor<span style="display: none">imbecile acid vagrant monobasic extended</span>s &#97;<br><br>VISITORS A<br>PARTY OR S<br>SUBSEQUENT<br></font></td>\n<td><font face="courier">&#160; <b><font color="#FFFFFF">t</font></b>&#160; &#160; &#160;&#160; <br><br>e &#102;rom w&#104;i<br>ject to th<br>&#115; governin<br>u &#97;ccep&#116; t<br>c&#97;refully.<br>the indivi<br>access rig<br>erabl&#101; wit<br><br><br>&#160; &#160;&#160; <b>S<span style="display: none">distance deductible quack hate spiral</span>PECI</b><br><br>str&#105;&#99;tions<br>Vis&#105;tors. <br>ots, index<br>esi&#103;ned t&#111;<br>lly.<br><br>esses on t<br>gni&#122;ed tha<br>&nbsp;ac&#107;now<span style="display: none">lawn</span>le&#100;<br>&#101; not less<br>&#110;d/or dist<br>&#104;ese a&#100;dre<br>is &#87;ebsi&#116;e<br>and e&#120;p&#114;&#101;s<br><br><b><font color="#FFFFFF">p</font></b>&#160; &#160; &#160; &#160; <b><font color="#FFFFFF">s</font></b><br><br>&nbsp;agr&#101;es<span style="display: none">viewpoint volunteer specified lamb attendance</span>&nbsp;th<br>&#101; other in<br>&nbsp;&#65;&#99;t&#105;&#111;n") <br>ered Admi&#110;<br>are applie<br>med entire<br>&nbsp;and sta&#116;e<br>&nbsp;brought<font color="#FFFFFF">h</font>a<br>ou c&#111;ns&#101;nt<br>agreem&#101;nt.<br><br>&#160; &#160; <b><font color="#FFFFFF">s</font></b>&#160; &#160;&#160; <br><br>t to havin<br>&nbsp;som&#101;w&#104;er<span style="display: none">wasteful capable amidships</span>e<br>&nbsp;Iden&#116;if&#105;e<br>&#103;ree not &#116;<br><br>GREE THAT <br>E&#78;DING ANY<br>&nbsp;BREA&#67;H OF<br></font></td>\n<td><font face="courier">&#160; &#160;&#160; <b><font color="#FFFFFF">i</font></b>&nbsp;<b>TER</b><br><br>ch you acc<br>&#101; foll&#111;win<br>&#103; access<font color="#FFFFFF">s</font>t<br>hese t&#101;rm&#115;<br>&nbsp;&#65;ny Non-H<br>du&#97;l(&#115;) wh<br>hts &#103;rante<br>hout<font color="#FFFFFF">k</font>t&#104;e e<br><br><br><b>AL</b>&nbsp;<b>L&#73;CE&#78;SE</b><br><br><font color="#FFFFFF">o</font>&#111;n a vis&#105;<br>Non-<span style="display: none">diminished circumflex splitting</span>Huma&#110;<font color="#FFFFFF">p</font><br>ers, r&#111;&#98;ot<br>&nbsp;acces&#115;, r<br><br><br>his site<font color="#FFFFFF">d</font>a<br>t<font color="#FFFFFF">d</font>the&#115;e &#101;m<br>ge &#97;nd agr<br>&nbsp;tha&#110; US $<br>ri&#98;&#117;tion o<br>s<span style="display: none">cap consensual</span>ses. In&#116;&#101;<br>\'s email a<br>s&#108;y prohib<br><br>&#160;&#160; <b><font color="#FFFFFF">c</font><font color="#FFFFFF">o</font>APPLI</b><br><br>at a&#110;y s&#117;i<br>&nbsp;connec<span style="display: none">alternate</span>&#116;io<br>&#115;hall be g<br>i&#115;t&#114;&#97;tive <br>d &#116;&#111; &#97;gr&#101;&#101;<br>ly within <br>&nbsp;courts &#119;&#105;<br>gain&#115;t him<br>&nbsp;to electr<br><br><br><b><font color="#FFFFFF">o</font></b>&#160;&#160; <b>RE&#67;ORD</b><br><br>g y<span style="display: none">basis buffalo debtor</span>our Int<br>&nbsp;on this p<br>r is uniqu<br>o use this<br><br>HA&#82;VESTING<br><font color="#FFFFFF">o</font>&#77;ES&#83;AGE(S<br>&nbsp;T&#72;ESE TE&#82;<br></font></td>\n<td><font face="courier"><b>MS</b>&nbsp;<b>AND</b>&nbsp;<b>&#67;ON</b><br><br>esse<span style="display: none">open</span>d this<br>g con&#100;i<span style="display: none">talent earnings</span>t<span style="display: none">temper accidental</span>&#105;o<br>o the &#87;ebs<br>&nbsp;and &#99;on&#100;i<br>uman Visi&#116;<br>o controls<br>d to you &#117;<br>&#120;p&#114;ess &#119;ri<br><br><br>&nbsp;<b>REST&#82;&#73;C<span style="display: none">conclusion interval minimum</span>TI</b><br><br>&#116;or\'s<font color="#FFFFFF">g</font>lic&#101;<br>Vis<span style="display: none">population sweeping base educational surprise</span>i<span style="display: none">sunny capons gospel resolvent formula</span>&#116;ors &#105;<br>&#115;,<font color="#FFFFFF">f</font>cr<span style="display: none">movable icon common religion</span>aw&#108;er<br>&#101;ad, compi<br><br><br>&#114;e conside<br>ail addres<br>ee that<span style="display: none">pension</span><font color="#FFFFFF">d</font>e&#97;<br>50. Y&#111;u fu<br>&#102; t&#104;&#101;se ad<br>nti&#111;nal &#99;o<br>ddresses i<br>ited.<br><br><b>&#67;&#65;BL&#69;</b>&nbsp;<b>L&#65;W</b>&nbsp;<br><br>&#116;, a<span style="display: none">ceaseless nomadic</span>ction <br>n with or <br>overn&#101;d by<br>&#67;ontact (t<br>&#109;&#101;nts bet&#119;<br>the<font color="#FFFFFF">c</font>Admin <br>thin<font color="#FFFFFF">c</font>the A<br>&nbsp;in co&#110;nec<br>onic servi<br><br><br><b>S</b>&nbsp;<b>OF</b>&nbsp;<b>VISIT</b><br><br>e<span style="display: none">resounding</span>rn&#101;t Prot<br>ag&#101; (the "<br>ely<font color="#FFFFFF">h</font>&#109;atch&#101;<br>&nbsp;a&#100;dress f<br><br>, GATHE&#82;IN<br>&#41;<font color="#FFFFFF">h</font>TO &#84;HE &#73;<br>MS OF<font color="#FFFFFF">k</font>SERV<br></font></td>\n<td><font face="courier"><b>DITIONS</b>&nbsp;<b>OF</b><br><br>&nbsp;agreement<br>ns&#46; These <br>ite.<font color="#FFFFFF">h</font>&#66;y vi<br>tions<font color="#FFFFFF">d</font>(&#116;&#104;e<span style="display: none">loop leather audit</span><br>&#111;rs to t&#104;e<br>, au<span style="display: none">sacerdotal peculiar</span>t&#104;ors<font color="#FFFFFF">f</font><br>&#110;d&#101;r &#116;&#104;e T<br>tten perm&#105;<br><br><br><b>&#79;NS</b>&nbsp;<b>FOR</b>&nbsp;<b>NO</b><br><br>&#110;se t&#111; a<span style="display: none">wet maxillary monarch</span>c&#99;<br>n<span style="display: none">tongue obsolete chivalrous fool heptavalent</span>clude&#44; bu<br>&#115;, harves&#116;<br>le &#111;r gath<br><br><br>red pr&#111;p&#114;i<br>ses are pr<br>c&#104;<font color="#FFFFFF">i</font>email a<br>r&#116;her agre<br>dres&#115;es su<br>lle&#99;tion,<font color="#FFFFFF">t</font><br>s recogn<span style="display: none">hoc intrastate</span>iz<br><br><br><b>AND</b>&nbsp;<b>JU&#82;ISD</b><br><br>o&#114; p&#114;oceed<br>&#97;&#114;ising f&#114;<br>&nbsp;the l&#97;w o<br>he "Admi&#110; <br>een Adm&#105;n <br>&#83;tate.<font color="#FFFFFF">h</font>Yo&#117;<br>dmin State<br>tion<span style="display: none">highproof clinical</span>&nbsp;with<font color="#FFFFFF">f</font><br>ce of &#112;roc<br><br><br><b>OR</b>&nbsp;<b>USE</b>&nbsp;<b>AND</b><br><br>ocol a&#100;&#100;&#114;e<br>Identi<span style="display: none">gentle</span>fier<br>d &#116;o you&#114;<font color="#FFFFFF">c</font><br>or &#97;ny rea<br><br>G&#44; STO&#82;ING<br>DENTIFI&#69;R <br>ICE&#46;<br></font></td>\n<td><font face="courier">&nbsp;<b>USE</b>&nbsp;<br><br>&nbsp;("th&#101;<font color="#FFFFFF">i</font>&#87;eb<br>t&#101;rms ar&#101; <br>si&#116;in&#103; (in<br>&nbsp;"Te&#114;m&#115; o&#102;<br>&nbsp;Website s<br>or otherw&#105;<br>&#101;rm&#115; of Se<br>ss&#105;on<font color="#FFFFFF">p</font>of t<br><br><br><b>N&#45;HUMAN</b>&nbsp;<b>VI</b><br><br>ess<font color="#FFFFFF">f</font>the We<br>t<font color="#FFFFFF">f</font>are<span style="display: none">burden downward roasted cosignatory windup</span>&nbsp;n&#111;t<font color="#FFFFFF">g</font><br>e&#114;s, or &#97;n<br>er<span style="display: none">synthesis</span>&nbsp;con&#116;&#101;nt<br><br><br>etary<font color="#FFFFFF">p</font>i<span style="display: none">kick export</span>nte<br>o&#118;ided for<br>ddress th&#101;<br>e that th&#101;<br>b&#115;tan&#116;i&#97;ll<br>harvesting<br>ed as a v&#105;<br><br><br><b>&#73;&#67;TION</b>&nbsp;<br><br>ing bro&#117;gh<br>om<font color="#FFFFFF">h</font>the &#84;er<br>f the stat<br>Sta&#116;e") &#102;o<br>State re&#115;i<br>&nbsp;co&#110;sent t<br>. Yo<span style="display: none">ursine river</span>u cons<br>breach<span style="display: none">cystic yeomanly happy wildcat</span>es o<br>&#101;s&#115;<font color="#FFFFFF">f</font>&#114;egard<br><br><br>&nbsp;<b>ABUSE</b>&nbsp;<br><br>s&#115; recor&#100;e<br>") &#105;f we s<br>Internet P<br>son.<br><br>, T&#82;ANSFE<span style="display: none">unicorns paddle</span>R<br>CO&#78;STITUTE<br><br></font></td>\n<td><font face="courier"><br><br>site")<font color="#FFFFFF">g</font>is <br>in<font color="#FFFFFF">g</font>ad&#100;itio<br>&nbsp;an&#121; m&#97;&#110;ne<br>&nbsp;Servic<span style="display: none">candid</span>e")<br>hall<span style="display: none">bareheaded selfrecording team</span>&nbsp;be<font color="#FFFFFF">g</font>c&#111;<br>se makes u<br>rvice are<br>he &#111;wner o<br><br><br><b>SITORS</b>&nbsp;<br><br>&#98;site appl<br>limited &#116;o<br>y o&#116;her co<br>&nbsp;from<font color="#FFFFFF">a</font>the <br><br><br>llectual p<br><font color="#FFFFFF">p</font>human &#118;is<br>&nbsp;Webs&#105;te c<br>&nbsp;&#99;o<span style="display: none">softshell</span>mp&#105;lati<br>y d&#105;mini&#115;h<br>, ga&#116;&#104;erin<br>o&#108;ation of<br><br><br><br><br>&#116;<font color="#FFFFFF">k</font>&#98;&#121; such <br>ms of<span style="display: none">rose granny vagrant eager mishap</span>&nbsp;Serv<br>e of res&#105;d<br>r the<span style="display: none">laboratory steep genetic</span>&nbsp;Webs<br>d<span style="display: none">technique expensive outside unfounded</span>ents e&#110;te<br>o &#116;h&#101; juri<br>ent to the<br>f t<span style="display: none">fanatical herons classy</span>hes&#101; Te<br>ing a&#99;t&#105;&#111;n<br><br><br><br><br>d. An<font color="#FFFFFF">f</font>ema&#105;<br>uspect pot<br>ro&#116;ocol<font color="#FFFFFF">i</font>a&#100;<br><br><br>R&#73;NG TO A <br>&#83; AN ACCEP<br><br></font></td>\n<td><font face="courier"><br><br>provi&#100;ed<br>n to an&#121;<br>&#114;) the<br>.<font color="#FFFFFF">i</font>Please<br>ns&#105;&#100;ered<br>se of<br><br>f the<br><br><br><br><br>y to<br>, web<br>mput&#101;r<br>Website<br><br><br>&#114;op<span style="display: none">walkin efficacious parliamentary cruciform</span>erty.<br>itors<br>ontains<br>on,<br>e<span style="display: none">commutative</span>s<font color="#FFFFFF">h</font>the<br>g&#44;<font color="#FFFFFF">k</font>an&#100;/or<br>&nbsp;this<br><br><br><br><br>pa&#114;ty<br>ice<br>ence of<br>ite as<br>red into<br>sdi&#99;&#116;ion<br><font color="#FFFFFF">p</font>&#118;enue in<br>rms o&#102;<br>s under<br><br><br><br><br>&#108; address<br>ential<br>dre<span style="display: none">whiny match sleazy choleric striped</span>&#115;s.<br><br><br>&#84;HIRD<br>TANCE AND<br><br></font></td>\n</tr>\n</table>\n<br>'
-
-
-
-
-
-
-
-del __CLASS_STYLE_1, __CLASS_STYLE_2, __DIV1, __VANITY_L1, __VANITY_L2, __VANITY_L3
-
-__version__ = "1.3"
-
-def _formatHTML( s ):
-    return s.replace( r"\n", "\n" )
-
-def _getDocType( _formatHTML = _formatHTML, __DOC_TYPE1 = __DOC_TYPE1 ): 
-    return _formatHTML( __DOC_TYPE1 )
-del __DOC_TYPE1
-
-def _getHeadHTML1( _formatHTML = _formatHTML, __HEAD1 = __HEAD1 ):
-    return _formatHTML( __HEAD1 )
-del __HEAD1
-
-def _getRobotHTML( _formatHTML = _formatHTML, __ROBOT1 = __ROBOT1 ):
-    return _formatHTML( __ROBOT1 )
-del __ROBOT1
-
-def _getNoCollectHTML( _formatHTML = _formatHTML,
-                       __NOCOLLECT1 = __NOCOLLECT1 ):
-    return _formatHTML( __NOCOLLECT1 )
-del __NOCOLLECT1
-
-def _getHeadHTML2( _formatHTML = _formatHTML, __HEAD2 = __HEAD2 ):
-    return _formatHTML( __HEAD2 )
-del __HEAD2
-
-def _getTopHTML( _formatHTML = _formatHTML, __TOP1 = __TOP1 ):
-    return _formatHTML( __TOP1 )
-del __TOP1
-
-def _getEmailHTML( method, m,
-                   _formatHTML = _formatHTML,
-                   __EMAIL1A = __EMAIL1A, __EMAIL1B = __EMAIL1B, __EMAIL1C = __EMAIL1C,
-                   __EMAIL2A = __EMAIL2A, __EMAIL2B = __EMAIL2B, __EMAIL2C = __EMAIL2C,
-                   __EMAIL3A = __EMAIL3A, __EMAIL3B = __EMAIL3B, __EMAIL3C = __EMAIL3C,
-                   __EMAIL4A = __EMAIL4A, __EMAIL4B = __EMAIL4B, __EMAIL4C = __EMAIL4C,
-                   __EMAIL5A = __EMAIL5A, __EMAIL5B = __EMAIL5B, __EMAIL5C = __EMAIL5C,
-                   __EMAIL6A = __EMAIL6A, __EMAIL6B = __EMAIL6B, __EMAIL6C = __EMAIL6C,
-                   __EMAIL7A = __EMAIL7A, __EMAIL7B = __EMAIL7B, __EMAIL7C = __EMAIL7C,
-                   __EMAIL8A = __EMAIL8A, __EMAIL8B = __EMAIL8B, __EMAIL8C = __EMAIL8C,
-                   __EMAIL9A = __EMAIL9A, __EMAIL9B = __EMAIL9B, __EMAIL9C = __EMAIL9C,
-                   __EMAIL10A = __EMAIL10A, __EMAIL10B = __EMAIL10B, __EMAIL10C = __EMAIL10C ):
-    return { 0: "",
-             1: _formatHTML( __EMAIL1A + m + __EMAIL1B + m + __EMAIL1C ),
-             2: _formatHTML( __EMAIL2A + m + __EMAIL2B + m + __EMAIL2C ), 
-             3: _formatHTML( __EMAIL3A + m + __EMAIL3B + m + __EMAIL3C ), 
-             4: _formatHTML( __EMAIL4A + m + __EMAIL4B + m + __EMAIL4C ), 
-             5: _formatHTML( __EMAIL5A + m + __EMAIL5B ), 
-             6: _formatHTML( __EMAIL6A + m + __EMAIL6B + m + __EMAIL6C ), 
-             7: _formatHTML( __EMAIL7A + m + __EMAIL7B + m + __EMAIL7C ), 
-             8: _formatHTML( __EMAIL8A + m + __EMAIL8B + m + __EMAIL8C ), 
-             9: _formatHTML( __EMAIL9A + m + __EMAIL9B + m + __EMAIL9C ), 
-             }.get( method, # if not found then default to method 10
-                    _formatHTML( __EMAIL10A + m + __EMAIL10B + m + __EMAIL10C ) )
-del __EMAIL1A, __EMAIL1B, __EMAIL1C
-del __EMAIL2A, __EMAIL2B, __EMAIL2C
-del __EMAIL3A, __EMAIL3B, __EMAIL3C 
-del __EMAIL4A, __EMAIL4B, __EMAIL4C
-del __EMAIL5A, __EMAIL5B, __EMAIL5C
-del __EMAIL6A, __EMAIL6B, __EMAIL6C
-del __EMAIL7A, __EMAIL7B, __EMAIL7C
-del __EMAIL8A, __EMAIL8B, __EMAIL8C
-del __EMAIL9A, __EMAIL9B, __EMAIL9C
-del __EMAIL10A, __EMAIL10B, __EMAIL10C
-
-def _getLegalHTML( _formatHTML = _formatHTML, __LEGAL1 = __LEGAL1,
-                   _getLegalContent = _getLegalContent, __LEGAL2 = __LEGAL2 ):
-    return _formatHTML( __LEGAL1 + _getLegalContent() + __LEGAL2 )
-del __LEGAL1, _getLegalContent, __LEGAL2
-
-def _getStyleHTML( _formatHTML = _formatHTML, __STYLE1 = __STYLE1 ):
-    return _formatHTML( __STYLE1 )
-del __STYLE1
-
-def _getVanityHTML( _formatHTML = _formatHTML, __VANITY1 = __VANITY1 ):
-    return _formatHTML( __VANITY1 )
-del __VANITY1
-
-def _getBottomHTML( _formatHTML = _formatHTML, __BOTTOM1 = __BOTTOM1 ):
-    return _formatHTML( __BOTTOM1 )
-del __BOTTOM1
-
-def _performRequest( request,
-                     __REQUEST_HOST = __REQUEST_HOST,
-                     __REQUEST_PORT = __REQUEST_PORT,
-                     __REQUEST_SCRIPT = __REQUEST_SCRIPT,
-                     __HPOT_TAG2 = __HPOT_TAG2 ):
-    import httplib
-    headers = { "User-Agent": "PHPot" + " " + __HPOT_TAG2,
-                "Host": __REQUEST_HOST,
-                "Content-Type": "application/x-www-form-urlencoded",
-                "Connection": "close",
-                }
-    h = httplib.HTTPConnection( "%s:%s" % ( __REQUEST_HOST, __REQUEST_PORT ) )
-    h.request( "POST", __REQUEST_SCRIPT, request, headers )
-    return h.getresponse().read()
-del __REQUEST_HOST, __REQUEST_PORT, __REQUEST_SCRIPT
-
-def _whoAmI():
-    import md5
-    try:
-        r = __file__
-    except:
-        import sys
-        r = sys.argv[ 0 ]
-    body = open( r ).read()
-    body = body.split( "\n", 1 )[ 1 ]
-    return md5.new( body ).hexdigest()
-
-def _prepareRequest( REQUEST, forcePortNumber = None,
-                     _whoAmI = _whoAmI, __HPOT_TAG1 = __HPOT_TAG1,
-                     __HPOT_TAG2 = __HPOT_TAG2, __HPOT_TAG3 = __HPOT_TAG3 ):
-    from sys import version
-    postvars = {}
-    postvars[ "tag1" ] = __HPOT_TAG1
-    postvars[ "tag2" ] = __HPOT_TAG2
-    postvars[ "tag3" ] = __HPOT_TAG3
-    postvars[ "tag4" ] = _whoAmI()
-    postvars[ "ip" ] = REQUEST[ "REMOTE_ADDR" ]
-    postvars[ "svrn" ] = ( REQUEST.get( "HTTP_HOST", "" )
-                           or REQUEST.get( "SERVER_NAME", "" ) )
-    postvars[ "svp" ] = forcePortNumber or REQUEST.get( "SERVER_PORT", "80" ) 
-    postvars[ "svip" ] = REQUEST.get( "SERVER_ADDR", "" )
-    postvars[ "rquri" ] = ( REQUEST.get( "REQUEST_URI", "" ) 
-                            or REQUEST.get( "PATH_INFO", "" ) )
-    postvars[ "version" ] = __version__ + "-" + version.split()[ 0 ]
-    postvars[ "sn" ] = ( REQUEST.get( "SCRIPT_NAME", "" )
-                         or REQUEST.get( "PATH_TRANSLATED", "" ) )
-    postvars[ "ref" ] = REQUEST.get( "HTTP_REFERER", "" )
-    postvars[ "uagnt" ] = REQUEST.get( "HTTP_USER_AGENT", "" )
-    return postvars
-del _whoAmI, __HPOT_TAG1, __HPOT_TAG2, __HPOT_TAG3
-
-def _transcribeResponse( response ):
-    import urllib
-    settings = {}
-    isParam = 0
-    for line in response.split( "\n" ):
-        if line == "<END>":
-            isParam = 0
-        if isParam:
-            pieces = line.split( "=", 1 )
-            settings[ pieces[ 0 ] ] = urllib.unquote_plus( pieces[ 1 ] )
-        if line == "<BEGIN>":
-            isParam = 1
-    if settings.has_key( "directives" ):
-        settings[ "directives" ] = settings[ "directives" ].split( "," )
-    else:
-        settings[ "directives" ] = [ "1" ] * 10
-    settings[ "directives" ] = map( int, settings[ "directives" ] )
-    for k, v in settings.items():
-        try:
-            settings[ k ] = int( v )
-        except:
-            pass
-    return settings
-
-def _getSettings( REQUEST, forcePortNumber = None,
-                  _performRequest = _performRequest,
-                  _prepareRequest = _prepareRequest,
-                  _transcribeResponse = _transcribeResponse ):
-    import urllib
-    request = []
-    for k, v in _prepareRequest( REQUEST, forcePortNumber ).items():
-        request.append( k + "=" + urllib.quote( v ) )
-    request = "&".join( request )
-    response = _performRequest( request )
-    return _transcribeResponse( response )
-del _performRequest, _prepareRequest, _transcribeResponse
-
-def _makeHTML( settings,
-               _formatHTML = _formatHTML,
-               _getBottomHTML = _getBottomHTML, _getDocType = _getDocType,
-               _getEmailHTML = _getEmailHTML, _getHeadHTML1 = _getHeadHTML1,
-               _getHeadHTML2 = _getHeadHTML2, _getLegalHTML = _getLegalHTML,
-               _getNoCollectHTML = _getNoCollectHTML,
-               _getRobotHTML = _getRobotHTML, _getStyleHTML = _getStyleHTML,
-               _getTopHTML = _getTopHTML, _getVanityHTML = _getVanityHTML ):
-    directives = settings[ "directives" ]
-    email = settings.get( "email", None )
-    emailmethod = settings.get( "emailmethod", None )
-    return "".join ( [ directives[ 0 ] and _getDocType()  or "",
-                       settings.get( "injDocType", 0 ) and _formatHTML( settings.get( "injDocTypeMsg", "" ) ) or "",
-                       directives[ 1 ] and _getHeadHTML1() or "",
-                       settings.get( "injHead1HTML", 0 ) and _formatHTML( settings.get( "injHead1HTMLMsg", "" ) ) or "",
-                       directives[ 8 ] and _getRobotHTML() or "",
-                       settings.get( "injRobotHTML", 0 ) and _formatHTML( settings.get( "injRobotHTMLMsg", "" ) ) or "",
-                       directives[ 9 ] and _getNoCollectHTML() or "",
-                       settings.get( "injNoCollectHTML", 0 ) and _formatHTML( settings.get( "injNoCollectHTMLMsg", "" ) ) or "",
-                       directives[ 1 ] and _getHeadHTML2() or "",
-                       settings.get( "injHead2HTML", 0 ) and _formatHTML( settings.get( "injHead2HTMLMsg", "" ) ) or "",
-                       directives[ 2 ] and _getTopHTML() or "",
-                       settings.get( "injTopHTML", 0 ) and _formatHTML( settings.get( "injTopHTMLMsg", "" ) ) or "",
-
-                       settings.get( "actMsgOn", 0 ) and _formatHTML( settings.get( "actMsg", "" ) ) or "",
-                       settings.get( "errMsgOn", 0 ) and _formatHTML( settings.get( "errMsg", "" ) ) or "",
-                       settings.get( "customMsgOn", 0 ) and _formatHTML( settings.get( "customMsg", "" ) ) or "",
-
-                       directives[ 3 ] and _getLegalHTML() or "",
-                       settings.get( "injLegalHTML", 0 ) and _formatHTML( settings.get( "injLegalHTMLMsg", "" ) ) or "",
-                       settings.get( "altLegalOn", 0 ) and _formatHTML( settings.get( "altLegalMsg", "" ) ) or "",
-
-                       directives[ 4 ] and _getEmailHTML( emailmethod, email ) or "",
-                       settings.get( "injEmailHTML", 0 ) and _formatHTML( settings.get( "injEmailHTMLMsg", "" ) ) or "",
-                       directives[ 5 ] and _getStyleHTML() or "",
-                       settings.get( "injStyleHTML", 0 ) and _formatHTML( settings.get( "injStyleHTMLMsg", "" ) ) or "",
-
-                       directives[ 6 ] and _getVanityHTML() or "",
-                       settings.get( "injVanityHTML", 0 ) and _formatHTML( settings.get( "injVanityHTMLMsg", "" ) ) or "",
-                       settings.get( "altVanityOn", 0 ) and _formatHTML( settings.get( "altVanityMsg", "" ) ) or "",
-
-                       directives[ 7 ] and _getBottomHTML() or "",
-                       settings.get( "injBottomHTML", 0 ) and _formatHTML( settings.get( "injBottomHTMLMsg", "" ) ) or "",
-                       ] )
-del _formatHTML
-del _getBottomHTML, _getDocType, _getEmailHTML
-del _getHeadHTML1, _getHeadHTML2, _getLegalHTML, _getNoCollectHTML
-del _getRobotHTML, _getStyleHTML, _getTopHTML, _getVanityHTML
-
-
-def from_cgi( _getSettings = _getSettings, _makeHTML = _makeHTML ):
-    """This function is to be called by CGI scripts.  It will print
-    (to standard output) the Content-Type header and full page HTML
-    for your honeypot."""
-    print "Content-Type: text/html"
-    print "Cache-Control: no-cache"
-    print
-    import os
-    settings = _getSettings( os.environ )
-    print _makeHTML( settings )
-
-
-try:
-    if __name__ == '__main__':
-        from_cgi()
-    else:
-        del from_cgi
-        def from_zope( REQUEST, forcePortNumber = None,
-                       _getSettings = _getSettings, _makeHTML = _makeHTML ):
-            """Pass this function the Zope REQUEST and it will return the
-            full page HTML for your honeypot."""
-            _getSettings = getattr( from_zope, 'getSettings', _getSettings )
-            _makeHTML = getattr( from_zope, 'makeHTML', _makeHTML )
-            if forcePortNumber:
-                forcePortNumber = str( forcePortNumber )
-            settings = _getSettings( REQUEST, forcePortNumber )
-            return _makeHTML( settings )
-        try:
-            from_zope.getSettings = _getSettings
-            from_zope.makeHTML = _makeHTML
-        except:
-            pass
-        try:
-            from_zope = from_zope.__call__
-        except:
-            pass
-finally:
-    try:
-        del from_cgi
-    except:
-        pass
-    del _getSettings, _makeHTML

projecthoneypot/croakysteel_util.py

-import sys
-orig_value = sys.dont_write_bytecode
-sys.dont_write_bytecode = True
-from croakysteel import from_zope, __file__ as cs_file
-sys.dont_write_bytecode = orig_value
-if not cs_file.endswith('.py'):
-	print "croakysteel file is %s" % cs_file
-	import os
-	import croakysteel
-	base = os.path.dirname(cs_file)
-	croakysteel.__file__ = os.path.join(base, 'croakysteel.py')
-
-class CherryPyZopeRequestAdapter(dict):
-	"""
-	An adapter that mimicks the Zope request object.
-	"""
-	def __init__(self):
-		import cherrypy
-		req = cherrypy.request
-		for header, val in req.headers.items():
-			header = 'HTTP_' + header.upper().replace('-', '_')
-			self[header] = val
-		self.update(REMOTE_ADDR = req.remote.ip)
-		self.update(SERVER_PORT = str(req.local.port))
-		self.update(SERVER_NAME = req.local.name)
-		self.update(SERVER_ADDR = req.local.ip)
-		self.update(SCRIPT_NAME = req.script_name)
-		self.update(PATH_INFO = req.path_info)
-
-def from_cherrypy():
-	return from_zope(CherryPyZopeRequestAdapter())

scripts/create-iis-site.cmd

-@echo off
-\windows\system32\inetsrv\appcmd add site /id:3 /name:"Primary Web Site" /physicalPath:c:\inetpub\jaraco.site /bindings:http/*:80:www.jaraco.com,https/*:443:www.jaraco.com
-\windows\system32\inetsrv\appcmd add apppool /name:"Primary Web Site"
-\windows\system32\inetsrv\appcmd set app "Primary Web Site/" /applicationPool:"Primary Web Site"
-mkdir \inetpub\jaraco.site

scripts/isapiapp.py

-#!python
-from __future__ import print_function
-
-from jaraco.site.isapi import (
-	factory as __ExtensionFactory__,
-	handle_command_line, setup_environment,
-	)
-print('setting up environment')
-setup_environment(__file__)
-print('done setting up environment')
-if __name__ == '__main__': handle_command_line()

scripts/recycle-site.py

-from wmi import GetObject, WMI
-
-server_name = '.'
-ob = r'winmgmts:{{authenticationLevel=pktPrivacy}}\\{server_name}\root\microsoftiisv2'.format(**vars())
-iis = GetObject(ob)
-pools = iis.ExecQuery("Select * From IIsApplicationPool")
-for pool in pools:
-	if 'Primary Web Site' in pool.Name:
-		print("Attempting to recycle {0} on {1}".format(pool.Name, server_name))
-		pool.Recycle
-		break

scripts/serve.py

-#!/usr/bin/env python
-
-import cherrypy
-import jaraco.site
-
-def main():
-	jaraco.site.init()
-	cherrypy.config.update({
-		'server.socket_host': '0.0.0.0',
-		})
-	cherrypy.engine.start()
-
-if __name__ == '__main__':
-	main()

scripts/update-site.cmd

-easy_install -Z https://bitbucket.org/jaraco/jaraco.site/get/tip.zip