Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Branch: master
Fetching contributors…

Cannot retrieve contributors at this time

executable file 914 lines (886 sloc) 59.394 kB
#!/usr/bin/env python
# Here is an base64-encoded icon data (irssi.icns) for use within Growl
_ICON_DATA_="""aWNucwAAmgVpY3MjAAAASAAAB+Af+D/8f/7//////////3/+f/wf+B/gfABwAAAAAAAH4B/4
P/x//v//////////f/5//B/4H+B8AHAAAABpczMyAAAB/ZEAB9Stko6NkcDUgwAD167E9IH/
A/O/qcyAAAHKuof/BKnSANa3if8DpLav/oj/A/zxtaeI/wb++fuqpP/+hv8H/ffympz5/f2E
/wf9+fLRn9WP/4H+F/39/Pr28ul02ACvhvH9+/r49vb599FruYAAC86N//j46urgvHhmyIEA
Cs/H/8tnYF9jgLqqgQAIvrfDc2rRv9CqgwAEf4RlgMKJAAGqtooAkQAH1K2Sjo2RwNSDAAPX
rsT0gf8D87+pzIAAAcq6h/8EqdIA1reJ/wOktq/+iP8D/PG1p4j/Bv75+6qk//6G/wf99/Ka
nPn9/YT/B/358tGf1Y//gf4X/f38+vby6XTYAK+G8f37+vj29vn30Wu5gAALzo3/+Pjq6uC8
eGbIgQAKz8f/y2dgX2OAuqqBAAi+t8NzatG/0KqDAAR/hGWAwokAAaq2igCRAAfUrZKOjZHA
1IMAA9euxPSB/wPzv6nMgAAByrqH/wSp0gDWt4n/A6S2r/6I/wP88bWniP8G/vn7qqT//ob/
B/338pqc+f39hP8H/fny0Z/Vj/+B/hf9/fz69vLpdNgAr4bx/fv6+Pb2+ffRa7mAAAvOjf/4
+Orq4Lx4ZsiBAArPx//LZ2BfY4C6qoEACL63w3Nq0b/QqoMABH+EZYDCiQABqraKAHM4bWsA
AAEIAAAAAAAAAAAAAAAAAAAAAAAAAAASWKTDwp9ODAAAAAAAABqS6////////+KACgAAADXc
/////////////8siABPe////////////////xQd0//////////////////9epv//////////
////////iqb//////////////////45y//////////////////9lH9z////////////////V
FABK4//////////////fPgAAACrI//////////CqLwAAAAAr5///1rS4pn0/BgAAAAFP7P/r
nCcICwMAAAAAAAAEjrV9NwIAAAAAAAAAAAAAAAMHAAAAAAAAAAAAAAAAAElDTiMAAAEIAAAA
AAAAAAAAB+AAAD/8AAH//wAD///AD///8B////g////4P////H////5////+f////v////7/
///+f////n////5////+P////D////wf///4D///8Af//+AD//+AA//+AAf/4AAP+AAAH+AA
AD+AAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAH4AAAP/wAAf//AAP//8AP///wH///+D////g/
///8f////n////5////+/////v////5////+f////n////4////8P////B////gP///wB///
4AP//4AD//4AB//gAA/4AAAf4AAAP4AAAAwAAAAAAAAAAAAAAGlsMzIAAAVyygAFGiQlIiIW
lAALJ1eApbSwr7CadUgVjgAIEW+/6/n8+vv8gfsD9eCpUYoABwR34P35+Pv+hP8F/vz++cVQ
hwAEKsb99vqL/wT9/vmaB4QAAz7j+fiO/wT8+v+9EoIAAybh9fuP/wT++/f/toIAArr2/JH/
BP358/94gAACUvT4kv8J/vv28+AaAACq+JP/Cf779/DzZQAI0vuT/wn9+/fx7ZUADtr9kv8L
/v379vDnogAN2vz8kP8O/v78+fTu4Z0AAMP9+fz+jf8R/v79+/fx6Nt+AAB9//T5/P3+iv8T
/v79+/jz7trVPgAAGer19fn8/f6F/4H+CP38+/j07+PTp4EABW3/8PX6/IX+gf0J/Pv69/Pv
5tDQNIIABZb/8/f7/YD+Af39gPwL+/v6+ff08e3j0NVUhAAXi//8+fz8/fz7+vr5+Pf29fPw
7erd1MtShgAVWd79+fr6+ff29PPy8O/t6+nk3dalLogAEw/C/vf18/Du6+no5+fo6ufWplAB
igAPwffx7+vv8vHw8OvgyKNuMowADVzj6erc48RJPD4+NyQLjgAHLNHc5NzUihCUAAYtzN3l
0ZU3lQAFXN7HpG0nlgADH208FPcAygAFGiQlIiIWlAALJ1eApbSwr7CadUgVjgAIEW+/6/n8
+vv8gfsD9eCpUYoABwR34P35+Pv+hP8F/vz++cVQhwAEKsb99vqL/wT9/vmaB4QAAz7j+fiO
/wT8+v+9EoIAAybh9fuP/wT++/f/toIAArr2/JH/BP358/94gAACUvT4kv8J/vv28+AaAACq
+JP/Cf779/DzZQAI0vuT/wn9+/fx7ZUADtr9kv8L/v379vDnogAN2vz8kP8O/v78+fTu4Z0A
AMP9+fz+jf8R/v79+/fx6Nt+AAB9//T5/P3+iv8T/v79+/jz7trVPgAAGer19fn8/f6F/4H+
CP38+/j07+PTp4EABW3/8PX6/IX+gf0J/Pv69/Pv5tDQNIIABZb/8/f7/YD+Af39gPwL+/v6
+ff08e3j0NVUhAAXi//8+fz8/fz7+vr5+Pf29fPw7erd1MtShgAVWd79+fr6+ff29PPy8O/t
6+nk3dalLogAEw/C/vf18/Du6+no5+fo6ufWplABigAPwffx7+vv8vHw8OvgyKNuMowADVzj
6erc48RJPD4+NyQLjgAHLNHc5NzUihCUAAYtzN3l0ZU3lQAFXN7HpG0nlgADH208FPcAygAF
GiQlIiIWlAALJ1eApbSwr7CadUgVjgAIEW+/6/n8+vv8gfsD9eCpUYoABwR34P35+Pv+hP8F
/vz++cVQhwAEKsb99vqL/wT9/vmaB4QAAz7j+fiO/wT8+v+9EoIAAybh9fuP/wT++/f/toIA
Arr2/JH/BP358/94gAACUvT4kv8J/vv28+AaAACq+JP/Cf779/DzZQAI0vuT/wn9+/fx7ZUA
Dtr9kv8L/v379vDnogAN2vz8kP8O/v78+fTu4Z0AAMP9+fz+jf8R/v79+/fx6Nt+AAB9//T5
/P3+iv8T/v79+/jz7trVPgAAGer19fn8/f6F/4H+CP38+/j07+PTp4EABW3/8PX6/IX+gf0J
/Pv69/Pv5tDQNIIABZb/8/f7/YD+Af39gPwL+/v6+ff08e3j0NVUhAAXi//8+fz8/fz7+vr5
+Pf29fPw7erd1MtShgAVWd79+fr6+ff29PPy8O/t6+nk3dalLogAEw/C/vf18/Du6+no5+fo
6ufWplABigAPwffx7+vv8vHw8OvgyKNuMowADVzj6erc48RJPD4+NyQLjgAHLNHc5NzUihCU
AAYtzN3l0ZU3lQAFXN7HpG0nlgADH208FPcAbDhtawAABAgAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAASLUxaYF9YRScLAAAAAAAAAAAAAAAAAAAAAAAAAAAeVYyz1N3f3tzNrH9HEgAAAAAAAAAA
AAAAAAAAAAJHo+X////////////////XjTAAAAAAAAAAAAAAAAA0r/v/////////////////
////75EbAAAAAAAAAAAAZ+v//////////////////////////9NCAAAAAAAAAX7+////////
/////////////////////+5SAAAAAABk/v///////////////////////////////+s1AAAA
KOj//////////////////////////////////8ALAACP////////////////////////////
/////////1gAFNr/////////////////////////////////////rQE7+v//////////////
///////////////////////fFUj8/////////////////////////////////////+gkSvv/
////////////////////////////////////6Sc47f//////////////////////////////
///////ZHx3B/////////////////////////////////////6gPEXf/////////////////
///////////////////2ZAgKNMT//////////////////////////////////7ApBAIZWuD/
///////////////////////////////NUw8BAAgkbdv////////////////////////////+
ymkbBAAAAAwqZsH4////////////////////////7bVlIAYAAAAAAAwlU5Dp////////////
////////7seRUB0HAAAAAAAAAAcVSuv///////////////jr1reQYjMSBQAAAAAAAAAAAACb
///////zvLa4uLewn4txUjIXCAEAAAAAAAAAAAAAbPz/////4J9iU1hYUko9LR0QBwEAAAAA
AAAAAAAAAGv6///+47mBQhsSEhIQDQkFAgAAAAAAAAAAAAAAABiS//7r0rCGVikNAgAAAAAA
AAAAAAAAAAAAAAAAAAAAcdS2ooxwTSsSBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAEaP0ZBLxwO
BgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQULDwsGAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAgQDAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaWNoIwAAAkgAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAB/4AAAAAf//gAAAD///8AAAP////AAA/////gAB/////4AD/////8AH
/////+AP//////Af//////g///////g///////x///////x///////x///////5///////5/
//////5///////5///////5///////5///////4///////w///////w///////wf//////gP
//////AP//////AH/////+AD/////8AB/////wAAf////gAAP///+AAAf///4AAAf///AAAA
///AAAAB/+AAAAAD/8AAAAAP/wAAAAAf/AAAAAAP4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/4AAAAAf//gAAAD///8AAAP////AAA
/////gAB/////4AD/////8AH/////+AP//////Af//////g///////g///////x///////x/
//////x///////5///////5///////5///////5///////5///////5///////4///////w/
//////w///////wf//////gP//////AP//////AH/////+AD/////8AB/////wAAf////gAA
P///+AAAf///4AAAf///AAAA///AAAAB/+AAAAAD/8AAAAAP/wAAAAAf/AAAAAAP4AAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABpaDMyAAAKu/8AzgAIBhsiJCUlIh4VoAARIVOPsM/j
6ezr6+rl2b6mdUQOmAAXHHG86fn18u3q6+rr6unq6uzu8O3UnE0DkwALLZnk+vLs7fH2+v3+
g/8J/fv18O3w7cJqC48ACBKK7fjt7fT6/o3/Bfry7/DFU40ABkjS++zu9/6Q/wf+/vz28u6a
FooABWr08Ov2/pT/Bv37+vT1wiiIAAR++Orv/Jb/B/79+/n299MwhgAEZ/fn8v6Y/wf+/Pr3
9PnNGIQAAz3v5/Kb/wf+/Pn18fysA4IAAwPD7eyc/wf+/fr38/D4YoIAA1z05f2d/wf9+/j0
7/HKEYEAAr3p9Z7/B/38+fXx7OtegAACKefnnv8I/v38+fbx7eefgAACYu7xnv8P/v38+vbx
7eHEEAAAdPD3/pz/Ef7+/fv59fDs3M8eAAB49Pn8/pv/Ev7+/fv49fDr2NIiAABz9fj7/f6Z
/xP+/v38+vf07unSzyAAAGb09vj7/Zj/F/7+/fz7+fby7eXNxhUAADLp9fb5/P3+/pT/gP4J
/fz69/Tv69rPpoAACAXD+PP2+fv8/YD+j/+A/gv9/fv6+PXx7OXM1m6BAAdq/u/09/n7/IH+
jP+B/gz9/Pz6+Pby7erXx8ohgQAJC9X27/T3+fv8/YD+hP+F/oD9C/z7+vj28u7q3sfWe4MA
CVX97fD09/n7/P2K/oH9Dvz8+/r59/Xy7uvhys26E4QACI3/7fH1+Pr8/YX+gv2A/A77+/r5
9/b08O3q4cvJzTeFAAsBp//u8vb5+/z9/f6B/YD8gfsP+vr5+Pf28/Lv7OneycnSUIcAEAea
//Pz9/r7/P39/Pz7+/r6gPkQ+Pj39/b08/Hu7Orn2cfOyEqKACF38//2+Pv8/Pv7+vr5+Pf2
9vX19PPy8e/u7Ono49HH1a8xjAAEOL7/+fmA+hf5+Pb19PPy8fHw7+7t6+no5uTazdLMeQyP
ABth8fn39/b19PLw7+3s6+rq6efn5eTi3NXUx4ookQAZEe/39PTy8O/s6unn5eTj4uLj5OTj
3dGucSKTAApg6+zx7+3s6ufu8oD0CfPw7OPPupNnMAaUABQFv9no7Orl2trus0tVWVxbU0k4
FwaYAAqH4NTp59/Mzdh9B6EACVzfzN/j1c3XuUmiAAlW3s3V29TWt2EMogAIauDN0d3PpFcJ
ogAHE5vvzLWdayqkAAUNfpRSNQ//AP8AkAD/AM4ACAYbIiQlJSIeFaAAESFTj7DP4+ns6+vq
5dm+pnVEDpgAFxxxvOn59fLt6uvq6+rp6urs7vDt1JxNA5MACy2Z5Pry7O3x9vr9/oP/Cf37
9fDt8O3CaguPAAgSiu347e30+v6N/wX68u/wxVONAAZI0vvs7vf+kP8H/v789vLumhaKAAVq
9PDr9v6U/wb9+/r09cIoiAAEfvjq7/yW/wf+/fv59vfTMIYABGf35/L+mP8H/vz69/T5zRiE
AAM97+fym/8H/vz59fH8rAOCAAMDw+3snP8H/v369/Pw+GKCAANc9OX9nf8H/fv49O/xyhGB
AAK96fWe/wf9/Pn18ezrXoAAAinn557/CP79/Pn28e3nn4AAAmLu8Z7/D/79/Pr28e3hxBAA
AHTw9/6c/xH+/v37+fXw7NzPHgAAePT5/P6b/xL+/v37+PXw69jSIgAAc/X4+/3+mf8T/v79
/Pr39O7p0s8gAABm9Pb4+/2Y/xf+/v38+/n28u3lzcYVAAAy6fX2+fz9/v6U/4D+Cf38+vf0
7+vaz6aAAAgFw/jz9vn7/P2A/o//gP4L/f37+vj18ezlzNZugQAHav7v9Pf5+/yB/oz/gf4M
/fz8+vj28u3q18fKIYEACQvV9u/09/n7/P2A/oT/hf6A/Qv8+/r49vLu6t7H1nuDAAlV/e3w
9Pf5+/z9iv6B/Q78/Pv6+ff18u7r4crNuhOEAAiN/+3x9fj6/P2F/oL9gPwO+/v6+ff29PDt
6uHLyc03hQALAaf/7vL2+fv8/f3+gf2A/IH7D/r6+fj39vPy7+zp3snJ0lCHABAHmv/z8/f6
+/z9/fz8+/v6+oD5EPj49/f29PPx7uzq59nHzshKigAhd/P/9vj7/Pz7+/r6+fj39vb19fTz
8vHv7uzp6OPRx9WvMYwABDi+//n5gPoX+fj29fTz8vHx8O/u7evp6Obk2s3SzHkMjwAbYfH5
9/f29fTy8O/t7Ovq6unn5+Xk4tzV1MeKKJEAGRHv9/T08vDv7Orp5+Xk4+Li4+Tk493RrnEi
kwAKYOvs8e/t7Orn7vKA9Anz8Ozjz7qTZzAGlAAUBb/Z6Ozq5dra7rNLVVlcW1NJOBcGmAAK
h+DU6effzM3YfQehAAlc38zf49XN17lJogAJVt7N1dvU1rdhDKIACGrgzdHdz6RXCaIABxOb
78y1nWsqpAAFDX6UUjUP/wD/AJAA/wDOAAgGGyIkJSUiHhWgABEhU4+wz+Pp7Ovr6uXZvqZ1
RA6YABcccbzp+fXy7err6uvq6erq7O7w7dScTQOTAAstmeT68uzt8fb6/f6D/wn9+/Xw7fDt
wmoLjwAIEort+O3t9Pr+jf8F+vLv8MVTjQAGSNL77O73/pD/B/7+/Pby7poWigAFavTw6/b+
lP8G/fv69PXCKIgABH746u/8lv8H/v37+fb30zCGAARn9+fy/pj/B/78+vf0+c0YhAADPe/n
8pv/B/78+fXx/KwDggADA8Pt7Jz/B/79+vfz8PhiggADXPTl/Z3/B/37+PTv8coRgQACven1
nv8H/fz59fHs616AAAIp5+ee/wj+/fz59vHt55+AAAJi7vGe/w/+/fz69vHt4cQQAAB08Pf+
nP8R/v79+/n18Ozczx4AAHj0+fz+m/8S/v79+/j18OvY0iIAAHP1+Pv9/pn/E/7+/fz69/Tu
6dLPIAAAZvT2+Pv9mP8X/v79/Pv59vLt5c3GFQAAMun19vn8/f7+lP+A/gn9/Pr39O/r2s+m
gAAIBcP48/b5+/z9gP6P/4D+C/39+/r49fHs5czWboEAB2r+7/T3+fv8gf6M/4H+DP38/Pr4
9vLt6tfHyiGBAAkL1fbv9Pf5+/z9gP6E/4X+gP0L/Pv6+Pby7urex9Z7gwAJVf3t8PT3+fv8
/Yr+gf0O/Pz7+vn39fLu6+HKzboThAAIjf/t8fX4+vz9hf6C/YD8Dvv7+vn39vTw7erhy8nN
N4UACwGn/+7y9vn7/P39/oH9gPyB+w/6+vn49/bz8u/s6d7JydJQhwAQB5r/8/P3+vv8/f38
/Pv7+vqA+RD4+Pf39vTz8e7s6ufZx87ISooAIXfz//b4+/z8+/v6+vn49/b29fX08/Lx7+7s
6ejj0cfVrzGMAAQ4vv/5+YD6F/n49vX08/Lx8fDv7u3r6ejm5NrN0sx5DI8AG2Hx+ff39vX0
8vDv7ezr6urp5+fl5OLc1dTHiiiRABkR7/f09PLw7+zq6efl5OPi4uPk5OPd0a5xIpMACmDr
7PHv7ezq5+7ygPQJ8/Ds48+6k2cwBpQAFAW/2ejs6uXa2u6zS1VZXFtTSTgXBpgACofg1Onn
38zN2H0HoQAJXN/M3+PVzde5SaIACVbezdXb1Na3YQyiAAhq4M3R3c+kVwmiAAcTm+/MtZ1r
KqQABQ1+lFI1D/8A/wCQAGg4bWsAAAkIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAQYL0xlcHd7enVtXUAnDwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAA01bJ7J4fP//////////evduI1XIwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAn
a7Ll///////////////////////61ppPEgAAAAAAAAAAAAAAAAAAAAAAAAAAJXzR/f//////
///////////////////////ytFkRAAAAAAAAAAAAAAAAAAAAAA1iy///////////////////
//////////////////OnOwAAAAAAAAAAAAAAAAAAIprz////////////////////////////
////////////3GcKAAAAAAAAAAAAAAA3u///////////////////////////////////////
//////KLEwAAAAAAAAAAADbH///////////////////////////////////////////////8
khIAAAAAAAAAIbn/////////////////////////////////////////////////+n0EAAAA
AAAHkv///////////////////////////////////////////////////+xQAAAAAABQ7v//
///////////////////////////////////////////////////AGwAAAA+u////////////
///////////////////////////////////////////8aQAAAEDr////////////////////
////////////////////////////////////uBAAAnr/////////////////////////////
////////////////////////////6jkAEK7/////////////////////////////////////
/////////////////////2sAG7z/////////////////////////////////////////////
/////////////4QDI7z/////////////////////////////////////////////////////
/////40JJLz//////////////////////////////////////////////////////////4wM
IbX//////////////////////////////////////////////////////////4QNG43/////
////////////////////////////////////////////////////92kMF2Lz////////////
////////////////////////////////////////////20gMFD3F////////////////////
////////////////////////////////////qiwMECuA+///////////////////////////
///////////////////////////jcRwJCB9IwP//////////////////////////////////
//////////////////inQBMEAxQva+D/////////////////////////////////////////
/////////8BqIQsBAQkePobq////////////////////////////////////////////////
zIQ1FAUAAAMPJ0iQ5P////////////////////////////////////////////zJjUQaCQEA
AAAFEyxNitP+////////////////////////////////////////8rqLTCANAgAAAAABBhUt
S3+56//////////////////////////////////////YqYVIIQ4DAAAAAAAAAQYUKkNsmcf9
///////////////////////////////937aXcj0eDgMAAAAAAAAAAAEFESI4VJD9////////
////////////////////8tWym4JWLhkMAwAAAAAAAAAAAAAAAwwYMqr/////////////////
//////v249G4pZWAXDgiEwgCAAAAAAAAAAAAAAAAAAEBXO7//////////+m9w8HBwcHDvq6m
npKEbVA1IxYLBAEAAAAAAAAAAAAAAAAAAAAvzP//////////2KSNiYyPj42Jg3xtXUo4Kh8V
CwUBAAAAAAAAAAAAAAAAAAAAACCx//////////LBmXZKQkNEREE+OTIrJB4WDggEAQAAAAAA
AAAAAAAAAAAAAAAAJqv////////yy6eNXTIjHBscGxoYFhIPCwYDAQAAAAAAAAAAAAAAAAAA
AAAAAAA2u///////68amk3VFJRUKBQQEBAQEAwEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAClrV
///55c60oZJ1TC0cDwQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYNbmx7qnnZOE
aEctHhIIAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKXl5enhyYUw3JxwRCAMA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACCSEwNjUvJh4VDQcDAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBwwUGBYRCwcDAQAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQGBQMBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
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
+Pn6+/v8/ID9kf6M/Yb8gfuA+h35+fj49/f29fTz8vHw7u3s6ujn5eHRycjGxsXDwoWUABQE
q+fp6uvt7vDx8/T19vf4+fr7/PyB/Yz+iv2H/IP7gfof+fn4+Pf39vX19PPy8O/u7evq6Ofl
39HJyMbGxcPClQSVABQruOjp6uzt7/Dy8/T29/j5+vv7/PyB/Yf+iP2I/IT7gvqA+R74+Pf3
9vX19PPy8fDv7ezr6ejm5d/OycjGxsXEw50plwAUQb7o6evs7u/x8vT19vf4+fr7+/z8gv2B
/of9hvyG+4P6gfkg+Pj39/b29fX08/Lx8O/u7evq6efm5N7NycfGxsXEw6M8mQARSL3o6uvt
7vDx8/T19/j5+vr7gPyL/YX8hfuE+oL5gPiA9x329vX09PPy8fDv7u3s6+no5+Xk2svIx8bG
xMPDo0ObABFFuenq7O3v8PLz9fb3+Pn6+/uA/If9g/yE+4T6g/mB+ID3gPYd9fX08/Py8fDv
7u3s6+rp5+bl4tbJyMfGxcTDwp8+nQARM7Dq6+3u8PHz9PX3+Pn6+vv7gPyD/YP8gvuC+oT5
gviB94D2gPUd9PTz8vLx8O/u7ezr6uno5+Xk4NLJyMbGxcTDwpcunwAOEKLi7O3v8PLz9fb3
+Pn6gPuI/IH7gvqB+YP4gveB9oD1IPT08/Py8vHw8O/u7ezr6uno5+bk493OyMfGxsXEw7uK
DqIADYnT7e7w8fP09vf4+fn6gPuE/IH7gfqA+YL4gfeC9oH1gPQg8/Py8vHx8PDv7u7t7Ovq
6ejn5uXk4djKyMfGxcTEw7B2pQANYb/u7/Hy9PX29/j5+vqH+4H6gPmA+ID3gfaB9YH0gPOA
8h/x8fDw7+/u7u3s6+vq6ejn5uXk497SyMfGxsXEw8KgVKcACxug3/Dy8/T29/j4+YD6gvuB
+oD5Afj4gPeA9oD1gPSB84HyAfHxgPAe7+/u7u3t7Ovr6uno5+fm5eTj4dnOx8bGxcXEw7aI
GaoAC2nB8fP09fb3+Pj5+YT6gPkB+PiA9wP29vX1gPSA84DygPGA8IDvgO4c7e3s7Ovq6uno
6Ofm5eTj4uHd08nHxsbFxMPCn1qtAAkEkdTz9Pb29/j4hfkB+PiA9wv29vX19PTz8/Ly8fGA
8IHvgO6A7R7s7Ovr6urp6ejn5+bl5eTj4uHg183HxsbFxMPDrXkEsAAGNqPd9fb394X4gPcO
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
xsbEw7ptkwAUlOfo6uvs7u/x8vT19vf4+fr7+/z8gP2R/oz9hvyB+4D6Hfn5+Pj39/b19PPy
8fDu7ezq6Ofl4dHJyMbGxcPChZQAFASr5+nq6+3u8PHz9PX29/j5+vv8/IH9jP6K/Yf8g/uB
+h/5+fj49/f29fX08/Lw7+7t6+ro5+Xf0cnIxsbFw8KVBJUAFCu46Onq7O3v8PLz9Pb3+Pn6
+/v8/IH9h/6I/Yj8hPuC+oD5Hvj49/f29fX08/Lx8O/t7Ovp6Obl387JyMbGxcTDnSmXABRB
vujp6+zu7/Hy9PX29/j5+vv7/PyC/YH+h/2G/Ib7g/qB+SD4+Pf39vb19fTz8vHw7+7t6+rp
5+bk3s3Jx8bGxcTDozyZABFIvejq6+3u8PHz9PX3+Pn6+vuA/Iv9hfyF+4T6gvmA+ID3Hfb2
9fT08/Lx8O/u7ezr6ejn5eTay8jHxsbEw8OjQ5sAEUW56ers7e/w8vP19vf4+fr7+4D8h/2D
/IT7hPqD+YH4gPeA9h319fTz8/Lx8O/u7ezr6unn5uXi1snIx8bFxMPCnz6dABEzsOrr7e7w
8fP09ff4+fr6+/uA/IP9g/yC+4L6hPmC+IH3gPaA9R309PPy8vHw7+7t7Ovq6ejn5eTg0snI
xsbFxMPCly6fAA4QouLs7e/w8vP19vf4+fqA+4j8gfuC+oH5g/iC94H2gPUg9PTz8/Ly8fDw
7+7t7Ovq6ejn5uTj3c7Ix8bGxcTDu4oOogANidPt7vDx8/T29/j5+fqA+4T8gfuB+oD5gviB
94L2gfWA9CDz8/Ly8fHw8O/u7u3s6+rp6Ofm5eTh2MrIx8bFxMTDsHalAA1hv+7v8fL09fb3
+Pn6+of7gfqA+YD4gPeB9oH1gfSA84DyH/Hx8PDv7+7u7ezr6+rp6Ofm5eTj3tLIx8bGxcTD
wqBUpwALG6Df8PLz9Pb3+Pj5gPqC+4H6gPkB+PiA94D2gPWA9IHzgfIB8fGA8B7v7+7u7e3s
6+vq6ejn5+bl5OPh2c7HxsbFxcTDtogZqgALacHx8/T19vf4+Pn5hPqA+QH4+ID3A/b29fWA
9IDzgPKA8YDwgO+A7hzt7ezs6+rq6ejo5+bl5OPi4d3TycfGxsXEw8KfWq0ACQSR1PP09vb3
+PiF+QH4+ID3C/b29fX09PPz8vLx8YDwge+A7oDtHuzs6+vq6unp6Ofn5uXl5OPi4eDXzcfG
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
+fn4+Pf29vX08/Lw7+3s6unn5eHQycjGxsTDum2TABSU5+jq6+zu7/Hy9PX29/j5+vv7/PyA
/ZH+jP2G/IH7gPod+fn4+Pf39vX08/Lx8O7t7Oro5+Xh0cnIxsbFw8KFlAAUBKvn6err7e7w
8fP09fb3+Pn6+/z8gf2M/or9h/yD+4H6H/n5+Pj39/b19fTz8vDv7u3r6ujn5d/RycjGxsXD
wpUElQAUK7jo6ers7e/w8vP09vf4+fr7+/z8gf2H/oj9iPyE+4L6gPke+Pj39/b19fTz8vHw
7+3s6+no5uXfzsnIxsbFxMOdKZcAFEG+6Onr7O7v8fL09fb3+Pn6+/v8/IL9gf6H/Yb8hvuD
+oH5IPj49/f29vX19PPy8fDv7u3r6unn5uTezcnHxsbFxMOjPJkAEUi96Orr7e7w8fP09ff4
+fr6+4D8i/2F/IX7hPqC+YD4gPcd9vb19PTz8vHw7+7t7Ovp6Ofl5NrLyMfGxsTDw6NDmwAR
Rbnp6uzt7/Dy8/X29/j5+vv7gPyH/YP8hPuE+oP5gfiA94D2HfX19PPz8vHw7+7t7Ovq6efm
5eLWycjHxsXEw8KfPp0AETOw6uvt7vDx8/T19/j5+vr7+4D8g/2D/IL7gvqE+YL4gfeA9oD1
HfT08/Ly8fDv7u3s6+rp6Ofl5ODSycjGxsXEw8KXLp8ADhCi4uzt7/Dy8/X29/j5+oD7iPyB
+4L6gfmD+IL3gfaA9SD09PPz8vLx8PDv7u3s6+rp6Ofm5OPdzsjHxsbFxMO7ig6iAA2J0+3u
8PHz9Pb3+Pn5+oD7hPyB+4H6gPmC+IH3gvaB9YD0IPPz8vLx8fDw7+7u7ezr6uno5+bl5OHY
ysjHxsXExMOwdqUADWG/7u/x8vT19vf4+fr6h/uB+oD5gPiA94H2gfWB9IDzgPIf8fHw8O/v
7u7t7Ovr6uno5+bl5OPe0sjHxsbFxMPCoFSnAAsboN/w8vP09vf4+PmA+oL7gfqA+QH4+ID3
gPaA9YD0gfOB8gHx8YDwHu/v7u7t7ezr6+rp6Ofn5uXk4+HZzsfGxsXFxMO2iBmqAAtpwfHz
9PX29/j4+fmE+oD5Afj4gPcD9vb19YD0gPOA8oDxgPCA74DuHO3t7Ozr6urp6Ojn5uXk4+Lh
3dPJx8bGxcTDwp9arQAJBJHU8/T29vf4+IX5Afj4gPcL9vb19fT08/Py8vHxgPCB74DugO0e
7Ozr6+rq6eno5+fm5eXk4+Lh4NfNx8bGxcTDw615BLAABjaj3fX29/eF+ID3Dvb29fX08/Py
8vHx8PDv74DugO2A7IDrAerqgOkO6Ojn5ubl5OTj4uHh4NnQgMYGxcTEw7CGLrQABEbI9fb2
hfcT9vb19fTz8/Ly8fDw7+/u7u3t7OyA64DqgOkB6OiA5xfm5uXl5OPj4uHh4N/b0snGxsXE
xMOwiju3AAOc9PX1hPYT9fX09PPy8vHw7+/u7u3s7Ovr6uqA6YDogOcB5uaA5Rbk5OPj4uLh
4ODf39rRysbFxcTDw6yCNLkAA77z9PSC9YD0D/Py8vHw8O/u7e3s6+vq6umA6AHn54DmgOUB
5OSA4xXi4uHh4ODf397e19DIxsXExMO6nnAVuwAA14DzgfQX8/Py8vHw8O/u7e3s6+rq6ejo
5+fm5uXlgOSA4wHi4oDhgOAQ39/e3t3b083GxcTEw76qhEi9AANB2eTtg/IX8fDw7+7u7ezr
6urp6Ofn5uXl5OTj4+LigOGA4IHfAd7egN0L29XQycXExMO6pIVPwAAGo9bW2ujx8YDwFO/v
7u3s7Ovq6ejn5+bl5OTj4uLh4YDggN+A3oHdBdzc2tTPyYDEBL2tlHA1wgABA82A1QDggO8Y
7u7t7ezr6uno6Ofm5eTj4+Lh4eDg39/e3oHdgdwM29nV0MvGxLuun4ZmMsYAAJWB1Czk7u3t
7Ozr6urp6Ofm5eTk4+Lh4ODJn6+6w8vQ1NfY29jUzca+tKqdkX9oSRnKABMZytLT0tLn7Ovr
6urp6Ofn5drb3IDdgN4BqwLhAACrgdEA1IDqEOno6Ofm5d/NzMvKycjHx8SI4gAAfIHQFM/c
6ejo5+bm5eTYy8rJycjHxsa8YeIAAUPKgs8S5Ofm5uXk4+HRysnIx8fGxsWqI+IAAQq+gM8N
zs7Y5uXk5OPi28vJyMeAxgLFwIXkAAOsz87OgM0J4eTj4uLg08jHx4DGA8XErz7kAA6izs3N
zMzL2OPi4eDbzMeAxgTFxcS6e+UADZzOzczMy8rR4uHg3dHHgMYFxcTEvI4V5QAMlM3NzMvK
yc3f4N3TyIDGBcXExLuDFeYAC5rNzMvLysnJ29zRyIDGBcXExLZ6CeYACwqvzczLysnIx9LR
yIDGBMXExLBw6AAKNLzOzcvKycjDxceAxgTFxL2ZVekAEVbGzs3Myse/t73HxsbFvqVuCeoA
D37Lz83Lxbu0s7zHxryhag7sAAye0M3Gv7e1tLOzqH037gAKO7bEvbq4tKWPcjnxAAZ2rqmd
iGg//wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/ANAAdDhtawAAQAgAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEDRYeJSsxNzs/QkRG
R0ZEQj87NzErJR4WDQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAIFiIsN0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRzcsIhYIAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAChknNUdHR0dHUWl/k6a3xtTg6vL5/f/9+fLq4NTGt6aTf2lR
R0dHR0c1JxkKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQITNHR0dHXX2budXx////////
//////////////////////////HVuZt9XUdHR0czIRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAi
OUdHR1+Fq8/z///////////////////////////////////////////////zz6uFX0dHRzki
EAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAABCB03R0dHbZnF7v//////////////////////////////////////
///////////////////uxZltR0dHNx0IAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABDy5HR0domcn4////////////////
//////////////////////////////////////////////////jJmWhHR0cuDwEAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEjRH
R1CFuu7/////////////////////////////////////////////////////////////////
////////7rqFUEdHNBIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAABETVHR16X0P//////////////////////////////////////////
///////////////////////////////////////Ql15HRzURAQAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABDDNHR2Kf2///////////////////
////////////////////////////////////////////////////////////////////259i
R0czDAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAixH
R1ub3P//////////////////////////////////////////////////////////////////
/////////////////////////9ybW0dHLAIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAABARI8R0qO0f//////////////////////////////////////////
///////////////////////////////////////////////////////RjkpHPBIBAQAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEvR0d1vP//////////////////
////////////////////////////////////////////////////////////////////////
////////////vHVHRy8BAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEM
O0dSnOb/////////////////////////////////////////////////////////////////
////////////////////////////////////////5pxSRzsMAQEAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAEBE0RHcb7/////////////////////////////////////////
/////////////////////////////////////////////////////////////////////75x
R0QTAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAi1HR4zb////////////////
////////////////////////////////////////////////////////////////////////
/////////////////////////9uMR0ctAgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB
AQIzR02g8///////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////OgTUczAgEBAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAQECNkdbsP//////////////////////////////////////
////////////////////////////////////////////////////////////////////////
//////////+wXEc2AgEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAjZHY7v/////////////
////////////////////////////////////////////////////////////////////////
//////////////////////////////////////+8ZEc2AgEBAAAAAAAAAAAAAAAAAAAAAAAA
AAABAQI1R2XB////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////CZ0c1
AgEBAAAAAAAAAAAAAAAAAAAAAAAAAQECMkdiwP//////////////////////////////////
////////////////////////////////////////////////////////////////////////
///////////////////////DZEcyAgEBAAAAAAAAAAAAAAAAAAAAAAEBAi1HWbr/////////
////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////++W0ctAgEBAAAAAAAAAAAA
AAAAAAABAQITR0qu////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
//////+zSkcTAgEBAAAAAAAAAAAAAAAAAAECCkJHm///////////////////////////////
////////////////////////////////////////////////////////////////////////
//////////////////////////////////+hR0IKAgEAAAAAAAAAAAAAAAABAgM3R4Pt////
////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////CIRzcDAgEA
AAAAAAAAAAAAAQIDGkdk0P//////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
/////////////////9dmRxoDAgEAAAAAAAAAAAEBAgtCR63/////////////////////////
////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////7VHQgsCAQEAAAAAAAAAAQIEMEeC
9f//////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
94lHMAQCAQAAAAAAAAECAxBHUMb/////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
////////////////////////////0FFHEAMCAQAAAAAAAQIFMUeQ////////////////////
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////mUcxBQIBAAAAAAEC
BA9HUc3/////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
///////////WU0cPBAIBAAAAAQMFI0eJ////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
//////////////////////////////////////+WRyMFAwEAAAECBAc7R8D/////////////
////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////81IOwcE
AgEAAQMFF0du9f//////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
////////////////////+HpHFwUDAQACAwcnR53/////////////////////////////////
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////rUcnBwMCAQIFCTdHyf//////
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
///VTTcJBQIBAwYTR2Dy////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
//////////////////////////////VwRxMGAwEECCBHgv//////////////////////////
////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////5dHIAgEAgUJK0eg
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
////////////tEsrCQUCBgszR7z/////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
///////////////////////////////////////LUzMLBgMHDDpH0///////////////////
////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////91cOgwH
AwgOQUfm////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
////////////////////7GFBDggECQ9ER/P/////////////////////////////////////
////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////2Y0QPCQUKEEZH/P//////////
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
//1lRhAKBgsRRkf8////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
/////////////////////////////WVGEQsGDBJFR/P/////////////////////////////
////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////2ZUUSDAcME0JH5v//
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
/////////+xlQhMMBw0TPEfT////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
////////////////////////////////////3WU8Ew0HDRQ3R7z/////////////////////
////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////LZTcUDQgN
FDFHoP//////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
/////////////////7RlMRQNCA0TKUeC////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////mmUpEw0HDBMhR2D0////////////
////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////V8
YyETDAcMEho9R9H/////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
////////////////////////1WVYGhIMBwsRGTNHqP//////////////////////////////
////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////+xZUoZEQsGChAYKUd39///
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
////+IllNxgQCgYJDxYfQUvK////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
///////////////////////////////OZWAjFg8JBQgOFB00R5r/////////////////////
////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////6BlUR0UDggEBwwS
GihHYdX/////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
///////////YbmU9GhIMBwMGCxEYID1Nov//////////////////////////////////////
////////////////////////////////////////////////////////////////////////
/////////////////////////////////////6ZlXCgYEQsGAwUJDxUeLEdmz///////////
////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////SbmVGHhUP
CQUCBAgNExsjPVOX9///////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
////////////////+JplXjEbEw0IBAIDBgoQFyArR2C6////////////////////////////
////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////++ZWNIIhcQCgYDAQIFCQ4UHCU2VH3Y
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////239l
VzQcFA4JBQIBAgMHCxEYICpEXpfw////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
//////////////////////GaZWBFIhgRCwcDAgEBAwUJDhQcJTBPZKz/////////////////
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////sGVjUTAcFA4JBQMBAAECBAcL
ERggKDZaZ7v/////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
/79nZVc+IBgRCwcEAgEAAAEDBQkOFBsjLERgdMb/////////////////////////////////
////////////////////////////////////////////////////////////////////////
///////////////////////////KdmVfSCgbFA4JBQMBAAAAAQIEBwoQFh4mLktjfMr/////
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////zn5lYE4xHhYQCgcEAgEA
AAAAAQIFCAwSGCAoMVJlfsv/////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
/////86AZWFSOCAYEgwIBQIBAAAAAAABAgMGCQ4UGyIqNFZlfcb/////////////////////
////////////////////////////////////////////////////////////////////////
///////////////////////////////Kf2ViVD8jGxQOCQYDAgEAAAAAAAABAgQHCg8VHCQs
N1hldr3/////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////wXhlY1VDJxwVDwoH
BAIBAAAAAAAAAAEBAgUIDBEXHiUtOVllarD1////////////////////////////////////
////////////////////////////////////////////////////////////////////////
////////9rRrZWJVRSoeFxEMCAUCAQEAAAAAAAAAAAECAwUIDRIYHyYtO1hlZZ7h////////
////////////////////////////////////////////////////////////////////////
/////////////////////////////////+OiZWVhVUUsHxgSDQgFAwIBAAAAAAAAAAAAAAEC
AwYJDRIYHyYtOlNlZYjJ////////////////////////////////////////////////////
///////////////////////////////////////////////////////////Ni2VlXVVDKx8Y
Eg0JBgMCAQAAAAAAAAAAAAAAAAECBAYJDhMYHyYtOE5kZW6s6v//////////////////////
////////////////////////////////////////////////////////////////////////
///////////ssG9lZF1VQSofGBMOCQYEAgEAAAAAAAAAAAAAAAAAAQECBAYKDhMYHyUsNElh
ZWWMx///////////////////////////////////////////////////////////////////
////////////////////////////////////y49lZWNaUj0mHxgTDgoGBAIBAQAAAAAAAAAA
AAAAAAAAAQECBAcKDhIYHiQrMkRaZWVnoNj/////////////////////////////////////
////////////////////////////////////////////////////////////26RnZWVfWE43
JB4YEg4KBwQCAQEAAAAAAAAAAAAAAAAAAAAAAQECBAYJDRIXHSMqMD1RY2Vldqzh////////
////////////////////////////////////////////////////////////////////////
////////////47B4ZWVjXFZGMiMdFxINCQYEAgEBAAAAAAAAAAAAAAAAAAAAAAAAAQECBAYJ
DREWHCInLTVIXGRlZXvK////////////////////////////////////////////////////
////////////////////////////////////47N9ZWVkXllRPSkiHBYRDQkGBAIBAQAAAAAA
AAAAAAAAAAAAAAAAAAAAAQECBAYJDBAVGh8lKzE/UGJlZab/////////////////////////
////////////////////////////////////////////////////////////26x6ZWVkYVtW
RjMlHxoVEAwJBgQCAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQECAwYICw8TGB0jKC42R1xl
wf//////////////////////////////////////////////////////////////////////
///////////yyZ1tZWVkYlxYTTopIh0YEw8LCAYDAgEBAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAQECAwUHCg0RFhsgJi0zSVXj////////////////////////////////////////////
//////////////////////////////////rVrYNlZWVkYVxZTz4uJR8aFhENCgcFAwIBAQAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAECAwQGCQwPFBkfJTNHXf//////////////////
////////////////////////////////////////////////////////8tGuh2VlZWVjYFxZ
T0AwJiEcGBMPDAkGBAMCAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAgQFCAoO
ExgfPUei////////////////////////////////////////////////////////////////
//////bavZ17ZWVlZWRiX1tYTT8vJyIdGRURDQoIBQQCAQEAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAEBAgMFBwoOFCJHSe7/////////////////////////////////////
//////////////////////////TfyLCVeWVlZWVlZGFgXVpVSDotJiIeGRYSDgsJBgUDAgEB
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQIEBwsQN0eT////////////
/////////////////////+C1w8/b5e30+v3//fr07ubd0se4qJeDbmVlZWVlZWVjYWBdW1dM
QDMqJSIeGRYSDwwJBwUDAgEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAABAQMFCSFHUO7////////////////////////////////AZ2VlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZGJgX1xbVktANSsnJCAdGRYSDwwKCAYEAwIBAQAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAgUQQEex///////////////////////////////9
rmVlZ2ZmZmVlZWVlZWVlZWVlZmVlZWVkY2FgX15cW1dORjwyKyglIh4bGBURDwwKCAYEAwIB
AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEDBjZHf///////
////////////////////////8pJlZWVkY2JhYWFhYWFhYWFhYWBgYF9fXVxbW1dQSUM7Mywq
JyQhHhwZFhMQDgwJBwYEAwIBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAABAgQuR1/0/////////////////////////////9dzZWViYFdNT1FTVFdYWltb
W1pXVlNQTUpGQj03MS0rKSclIiAdGxgWFBEPDQsJBwYEAwIBAQAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEDHUdL2P//////////////////////////
//qsZWVkYFtLNTMyMTExMTExMTExMTAvLy4tLCsqKCYlIyEfHRsZFxUTEQ8NCwkIBgUEAwIB
AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAhhHR7P/
///////////////////////////ef2VlY1tXQS4rKScmJiYmJiYmJiYmJSUkIyMiIB8eHRsa
GBcVFBIQDg0LCQgHBQQDAgIBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAABAQIVR0em///////////////////////////ypWVlZF5ZUTcqJSIfHh0c
HBwcHR0dHBwcGxsaGRkYFxYVExIRDw4NDAoJCAYFBAMCAgEBAQAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQECFEdHoP//////////////////////
///1tW1lZWJbVkgtJiEdGRcWFRQUFBQUFBQUFBQTExISERAQDw4NDAsKCQgHBgUEAwICAQEB
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAh5H
R5f////////////////////////wrG1lZWReWVQ9KCIdGRUSEA8ODQ0NDQ4ODg0NDQ0MDAwL
CgoJCAgHBgUFBAMCAgEBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAABAQItR0ee///////////////////////ppWplZWRgW1ZKMCUgGxYS
DgwKCQgICAgICAgICAgIBwcHBwYGBQUEBAMDAgIBAQEBAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEGMUdLuv//////////////////
///jnmVlZWVhXFhROygjHRgTDwwJBwYFBAQEBAQEBAQEBAQDAwMDAwICAgEBAQEBAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEB
CzdHWNT///////////////////XEimVlZWRgXFlSPywlHxsWEQ0KBwUEAgIBAQEBAQEBAQEB
AQEBAQEBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAABAhNAR2fp////////////////+dGZamVlZWRhXFlSPy0mIRwY
Ew8MCQYEAwIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQIkR0d/9v/////////////w
yZdrZWVlZWNfXFlQPS0nIh4ZFRENCggFAwIBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AQEHMkdHnv//////////8M6le2VlZWVlZGBeW1hOOisnIh4aFhIODAkGBQMCAQEAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAABBz9HWsz//////ePFpX1lZWVlZWVjYF9cWlRFNSomIh4a
FhIPDAkHBQMCAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEXSIXUzrylnIBlZWVl
ZWRjYmBfXVtaVko7LiklIR0ZFhIPDAoIBgQDAgEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAABAghEVVVVYGVlZWVhXltaWltbWlhTSTwuKiYjHxwYFRIPDAoIBgQDAgEBAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAECAxNCVVVTUE5MS09RU1VVUUk/My0qJyQgHRoX
FBEODAkIBgQDAgEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQIECiI0NDk/
Q0ZKTEdCOjIsKiglIyAdGxgVEhANCwkHBgQDAgEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAEBAgQIEigwMDAtLCklJSYlJCMhHhwaFxUTEA4MCggHBQQDAgEBAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQECBAYJDQ8SFhkbHR4eHh0cGhgWFBIQ
DgwKCQcGBQMCAgEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQID
BQgKDQ8SFBYXFxcWFRQSEQ8ODAoJBwYFBAMCAQEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAABAgMFBggKDA4PEBEREBAPDgwLCQgHBgUEAwICAQEAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAgMFBggJCgsMDAwLCgkI
BwYFBAMDAgEBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAQECAwMFBgYHBwcHBwYGBQQDAwICAQEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQECAgMDBAQEBAQDAwICAgEBAQAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQICAgIC
AQEBAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAA"""
# Echo server program
import socket
import shlex, subprocess
import sys
import os
import os.path
import base64
__AUTHOR__ = 'Bernard `Guyzmo` Pratz'
__CONTACT__ = 'guyzmo AT m0g DOT net'
__NAME__ = 'irssi-notify-listener.py'
__VERSION__ = 0.2
__DESCRIPTION__ = 'Use libnotify over SSH to alert user for hilighted messages'
__LICENSE__ = 'WTF Public License <http://sam.zoy.org/wtfpl/>'
__URL__ = 'http://github.com/guyzmo/irssi-over-ssh-notifications'
__UPDATED__ = '''Last update: Wed May 05 15:27:48 CEST 2010
'''
NOTIFIER_GROWL = '/usr/local/bin/growlnotify'
NOTIFIER_DBUS = '/usr/bin/notify-send'
HOST = 'localhost'
PORT = 4222
# Daemonization
PID_FILE = "/tmp/irssi-notify-listener.pid"
UMASK = 766
WORKDIR='/tmp/'
MAXFD=1024
if (hasattr(os, "devnull")):
REDIRECT_TO = os.devnull
else:
REDIRECT_TO = "/dev/null"
def createDaemon():
"""Detach a process from the controlling terminal and run it in the
background as a daemon.
"""
try:
pid = os.fork()
except OSError, e:
raise Exception, "%s [%d]" % (e.strerror, e.errno)
if (pid == 0): # The first child.
os.setsid()
try:
pid = os.fork() # Fork a second child.
except OSError, e:
raise Exception, "%s [%d]" % (e.strerror, e.errno)
if (pid == 0): # The second child.
os.chdir(WORKDIR)
os.umask(UMASK)
else:
os._exit(0) # Exit parent (the first child) of the second child.
else:
os._exit(0) # Exit parent of the first child.
import resource # Resource usage information.
maxfd = resource.getrlimit(resource.RLIMIT_NOFILE)[1]
if (maxfd == resource.RLIM_INFINITY):
maxfd = MAXFD
# Iterate through and close all file descriptors.
for fd in range(0, maxfd):
try:
os.close(fd)
except OSError: # ERROR, fd wasn't open to begin with (ignored)
pass
# This call to open is guaranteed to return the lowest file descriptor,
# which will be 0 (stdin), since it was closed above.
os.open(REDIRECT_TO, os.O_RDWR) # standard input (0)
# Duplicate standard input to standard output and standard error.
os.dup2(0, 1) # standard output (1)
os.dup2(0, 2) # standard error (2)
return(0)
# decode the icon put at begining of the script
def write_icon(file, data):
f = open(file, "w")
f.write(base64.b64decode(data))
f.close()
# define the command used with darwin systems
def notify_growl(args):
args = args.split(':')
return [NOTIFIER_GROWL, '-s', '-n', 'Terminal', '--image', 'irssi.icns', '-m', ':'.join(args[1:]), args[0]]
# define the command used with linux systems
def notify_dbus(args):
args = args.split('|')
case = { 1 : lambda xs: [NOTIFIER_DBUS, '-i', 'gtk-dialog-info', '-t', '5000', 'notification from remote host', xs[0]],
2 : lambda xs: [NOTIFIER_DBUS, '-i', 'gtk-dialog-info', '-t', '5000'] + xs[0].split(' ') + ['notification from remote host', xs[1]],
3 : lambda xs: filter(None,[NOTIFIER_DBUS, '-i', 'gtk-dialog-info', '-t', '5000'] + xs[0].split(' ') + [xs[1], '|'.join(xs[2:])]) }
if len(args)>3:
return case[3](args)
else:
return case[len(args)](args)
# define 'notify' function depending on running platform (whether it is darwin or linux)
if sys.platform == 'darwin':
if not os.path.isfile(NOTIFIER_GROWL):
print 'Please install Growl and check if growlnotify exists and is correctly set in source'
sys.exit(1)
notify = notify_growl
write_icon("/tmp/irssi.icns", _ICON_DATA_)
elif sys.platform == 'linux2':
if not os.path.isfile(NOTIFIER_DBUS):
print 'Please install libnotify and check if the notify command exists and is correctly set in source'
sys.exit(1)
notify = notify_dbus
if __name__ == '__main__':
fg = False
### check arguments
# check for help
if len(sys.argv) == 2 and sys.argv[1] in ('-h', '--help') or len(sys.argv) > 2 :
print '''Usage: %s [-s|-f|-h]
Usage: %s [--stop|--foreground|--help]
Running with no argument or one wrong argument, will still launch the daemon.
Only one argument is expected. More will give you that help message.
-s|--stop stop the running daemon
-f|--foreground executes in foreground (and outputs all notifications to stdout)
-h|--help this help message
''' % (sys.argv[0], sys.argv[0])
sys.exit(0)
# check for -stop
if len(sys.argv) == 2 and sys.argv[1] in ('--stop', '-s'):
if not os.path.isfile(PID_FILE):
print 'nothing to stop. exiting...'
sys.exit(1)
try:
os.kill(int(open(PID_FILE, 'r').read()), 9)
except ValueError, ve:
print 'Invalid PID file. exiting...'
sys.exit(1)
except OSError, oe:
print 'Invalid PID: %s. Process has already exited. exiting...' % int(open(PID_FILE, 'r').read())
sys.exit(1)
os.unlink(PID_FILE)
print 'notify daemon killed'
sys.exit(0)
if os.path.isfile(PID_FILE):
print 'Daemon is already running... Exiting.'
sys.exit(1)
if not (len(sys.argv) == 2 and sys.argv[1] in ('-f', '--foreground')):
print 'Starting server as daemon...'
retCode = createDaemon()
# create PID file
f = open(PID_FILE, 'w').write(str(os.getpid()))
else:
fg = True
print 'Starting server in foreground mode...'
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
s.listen(1)
if fg is True: print 'Listening on '+str(HOST)+':'+str(PORT)+'...'
# daemon main loop
while True:
conn, addr = s.accept()
while 1:
data = conn.recv(1024)
if not data: break
if fg is True: print 'RCPT: '+str(data)
p = subprocess.Popen(notify(data))
conn.close()
sys.exit(retCode)
Jump to Line
Something went wrong with that request. Please try again.