dropped
This commit is contained in:
914
server/a.ps
914
server/a.ps
@ -1,914 +0,0 @@
|
|||||||
%!PS-Adobe-3.0
|
|
||||||
%%Title: yadyn
|
|
||||||
%%For: Wolfgang Hottgenroth
|
|
||||||
%%Creator: a2ps version 4.13
|
|
||||||
%%CreationDate: Sat Nov 10 10:08:03 2007
|
|
||||||
%%BoundingBox: 24 24 588 768
|
|
||||||
%%DocumentData: Clean7Bit
|
|
||||||
%%Orientation: Landscape
|
|
||||||
%%Pages: 1
|
|
||||||
%%PageOrder: Ascend
|
|
||||||
%%DocumentMedia: Letter 612 792 0 () ()
|
|
||||||
%%DocumentNeededResources: font Courier
|
|
||||||
%%+ font Courier-Bold
|
|
||||||
%%+ font Courier-BoldOblique
|
|
||||||
%%+ font Courier-Oblique
|
|
||||||
%%+ font Helvetica
|
|
||||||
%%+ font Helvetica-Bold
|
|
||||||
%%+ font Symbol
|
|
||||||
%%+ font Times-Bold
|
|
||||||
%%+ font Times-Roman
|
|
||||||
%%DocumentProcessColors: Black
|
|
||||||
%%DocumentSuppliedResources: procset a2ps-a2ps-hdr
|
|
||||||
%%+ procset a2ps-black+white-Prolog
|
|
||||||
%%+ encoding ISO-8859-1Encoding
|
|
||||||
%%EndComments
|
|
||||||
/a2psdict 200 dict def
|
|
||||||
a2psdict begin
|
|
||||||
%%BeginProlog
|
|
||||||
%%Copyright: (c) 1988, 89, 90, 91, 92, 93 Miguel Santana
|
|
||||||
%%Copyright: (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana
|
|
||||||
% Check PostScript language level.
|
|
||||||
/languagelevel where {
|
|
||||||
pop /gs_languagelevel languagelevel def
|
|
||||||
} {
|
|
||||||
/gs_languagelevel 1 def
|
|
||||||
} ifelse
|
|
||||||
|
|
||||||
% EPSF import as in the Red Book
|
|
||||||
/BeginInclude {
|
|
||||||
/b4_Inc_state save def % Save state for cleanup
|
|
||||||
/dict_count countdictstack def % Count objects on dict stack
|
|
||||||
/op_count count 1 sub def % Count objects on operand stack
|
|
||||||
userdict begin
|
|
||||||
0 setgray 0 setlinecap
|
|
||||||
1 setlinewidth 0 setlinejoin
|
|
||||||
10 setmiterlimit [ ] 0 setdash newpath
|
|
||||||
gs_languagelevel 1 ne {
|
|
||||||
false setstrokeadjust false setoverprint
|
|
||||||
} if
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
/EndInclude {
|
|
||||||
count op_count sub { pos } repeat % Clean up stacks
|
|
||||||
countdictstack dict_count sub { end } repeat
|
|
||||||
b4_Inc_state restore
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
/BeginEPSF {
|
|
||||||
BeginInclude
|
|
||||||
/showpage { } def
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
/EndEPSF {
|
|
||||||
EndInclude
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
% Page prefeed
|
|
||||||
/page_prefeed { % bool -> -
|
|
||||||
statusdict /prefeed known {
|
|
||||||
statusdict exch /prefeed exch put
|
|
||||||
} {
|
|
||||||
pop
|
|
||||||
} ifelse
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
/deffont {
|
|
||||||
findfont exch scalefont def
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
/reencode_font {
|
|
||||||
findfont reencode 2 copy definefont pop def
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
% Function c-show (str => -)
|
|
||||||
% centers text only according to x axis.
|
|
||||||
/c-show {
|
|
||||||
dup stringwidth pop
|
|
||||||
2 div neg 0 rmoveto
|
|
||||||
show
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
% Function l-show (str => -)
|
|
||||||
% prints texts so that it ends at currentpoint
|
|
||||||
/l-show {
|
|
||||||
dup stringwidth pop neg
|
|
||||||
0
|
|
||||||
rmoveto show
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
% center-fit show (str w => -)
|
|
||||||
% show centered, and scale currentfont so that the width is less than w
|
|
||||||
/cfshow {
|
|
||||||
exch dup stringwidth pop
|
|
||||||
% If the title is too big, try to make it smaller
|
|
||||||
3 2 roll 2 copy
|
|
||||||
gt
|
|
||||||
{ % if, i.e. too big
|
|
||||||
exch div
|
|
||||||
currentfont exch scalefont setfont
|
|
||||||
} { % ifelse
|
|
||||||
pop pop
|
|
||||||
}
|
|
||||||
ifelse
|
|
||||||
c-show % center title
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
% Return the y size of the current font
|
|
||||||
% - => fontsize
|
|
||||||
/currentfontsize {
|
|
||||||
currentfont /FontMatrix get 3 get 1000 mul
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
% reencode the font
|
|
||||||
% <encoding-vector> <fontdict> -> <newfontdict>
|
|
||||||
/reencode
|
|
||||||
{
|
|
||||||
dup length 5 add dict begin
|
|
||||||
{ % <vector> <key> <val>
|
|
||||||
1 index /FID ne
|
|
||||||
{ def }{ pop pop } ifelse
|
|
||||||
} forall
|
|
||||||
/Encoding exch def % -
|
|
||||||
|
|
||||||
% Use the font's bounding box to determine the ascent, descent,
|
|
||||||
% and overall height; don't forget that these values have to be
|
|
||||||
% transformed using the font's matrix. We use `load' because sometimes
|
|
||||||
% BBox is executable, sometimes not. Since we need 4 numbers an not
|
|
||||||
% an array avoid BBox from being executed
|
|
||||||
/FontBBox load aload pop
|
|
||||||
FontMatrix transform /Ascent exch def pop
|
|
||||||
FontMatrix transform /Descent exch def pop
|
|
||||||
/FontHeight Ascent Descent sub def
|
|
||||||
|
|
||||||
% Get the underline position and thickness if they're defined.
|
|
||||||
% Use 1 if they are not defined.
|
|
||||||
currentdict /FontInfo 2 copy known
|
|
||||||
{ get
|
|
||||||
/UnderlinePosition 2 copy % <FontInfo> /UP <FontInfo> /UP
|
|
||||||
2 copy known
|
|
||||||
{ get }{ pop pop 1} ifelse
|
|
||||||
0 exch FontMatrix transform exch pop
|
|
||||||
def % <FontInfo>
|
|
||||||
|
|
||||||
/UnderlineThickness 2 copy % <FontInfo> /UT <FontInfo> /UT
|
|
||||||
2 copy known
|
|
||||||
{ get }{ pop pop 1} ifelse
|
|
||||||
0 exch FontMatrix transform exch pop
|
|
||||||
def % <FontInfo>
|
|
||||||
pop % -
|
|
||||||
}{ pop pop
|
|
||||||
} ifelse
|
|
||||||
|
|
||||||
currentdict
|
|
||||||
end
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
% Function print line number (<string> # -)
|
|
||||||
/# {
|
|
||||||
gsave
|
|
||||||
sx cw mul neg 2 div 0 rmoveto
|
|
||||||
f# setfont
|
|
||||||
c-show
|
|
||||||
grestore
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
% -------- Some routines to enlight plain b/w printings ---------
|
|
||||||
|
|
||||||
% Underline
|
|
||||||
% width --
|
|
||||||
/dounderline {
|
|
||||||
currentpoint
|
|
||||||
gsave
|
|
||||||
moveto
|
|
||||||
0 currentfont /Descent get currentfontsize mul rmoveto
|
|
||||||
0 rlineto
|
|
||||||
stroke
|
|
||||||
grestore
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
% Underline a string
|
|
||||||
% string --
|
|
||||||
/dounderlinestring {
|
|
||||||
stringwidth pop
|
|
||||||
dounderline
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
/UL {
|
|
||||||
/ul exch store
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
% Draw a box of WIDTH wrt current font
|
|
||||||
% width --
|
|
||||||
/dobox {
|
|
||||||
currentpoint
|
|
||||||
gsave
|
|
||||||
newpath
|
|
||||||
moveto
|
|
||||||
0 currentfont /Descent get currentfontsize mul rmoveto
|
|
||||||
dup 0 rlineto
|
|
||||||
0 currentfont /FontHeight get currentfontsize mul rlineto
|
|
||||||
neg 0 rlineto
|
|
||||||
closepath
|
|
||||||
stroke
|
|
||||||
grestore
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
/BX {
|
|
||||||
/bx exch store
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
% Box a string
|
|
||||||
% string --
|
|
||||||
/doboxstring {
|
|
||||||
stringwidth pop
|
|
||||||
dobox
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
%
|
|
||||||
% ------------- Color routines ---------------
|
|
||||||
%
|
|
||||||
/FG /setrgbcolor load def
|
|
||||||
|
|
||||||
% Draw the background
|
|
||||||
% width --
|
|
||||||
/dobackground {
|
|
||||||
currentpoint
|
|
||||||
gsave
|
|
||||||
newpath
|
|
||||||
moveto
|
|
||||||
0 currentfont /Descent get currentfontsize mul rmoveto
|
|
||||||
dup 0 rlineto
|
|
||||||
0 currentfont /FontHeight get currentfontsize mul rlineto
|
|
||||||
neg 0 rlineto
|
|
||||||
closepath
|
|
||||||
bgcolor aload pop setrgbcolor
|
|
||||||
fill
|
|
||||||
grestore
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
% Draw bg for a string
|
|
||||||
% string --
|
|
||||||
/dobackgroundstring {
|
|
||||||
stringwidth pop
|
|
||||||
dobackground
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
|
|
||||||
/BG {
|
|
||||||
dup /bg exch store
|
|
||||||
{ mark 4 1 roll ] /bgcolor exch store } if
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
|
|
||||||
/Show {
|
|
||||||
bg { dup dobackgroundstring } if
|
|
||||||
ul { dup dounderlinestring } if
|
|
||||||
bx { dup doboxstring } if
|
|
||||||
show
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
% Function T(ab), jumps to the n-th tabulation in the current line
|
|
||||||
/T {
|
|
||||||
cw mul x0 add
|
|
||||||
bg { dup currentpoint pop sub dobackground } if
|
|
||||||
ul { dup currentpoint pop sub dounderline } if
|
|
||||||
bx { dup currentpoint pop sub dobox } if
|
|
||||||
y0 moveto
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
% Function n: move to the next line
|
|
||||||
/n {
|
|
||||||
/y0 y0 bfs sub store
|
|
||||||
x0 y0 moveto
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
% Function N: show and move to the next line
|
|
||||||
/N {
|
|
||||||
Show
|
|
||||||
/y0 y0 bfs sub store
|
|
||||||
x0 y0 moveto
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
/S {
|
|
||||||
Show
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
%%BeginResource: procset a2ps-a2ps-hdr 2.0 2
|
|
||||||
%%Copyright: (c) 1988, 89, 90, 91, 92, 93 Miguel Santana
|
|
||||||
%%Copyright: (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana
|
|
||||||
% Function title: prints page header.
|
|
||||||
% <ct> <rt> <lt> are passed as argument
|
|
||||||
/title {
|
|
||||||
% 1. Draw the background
|
|
||||||
x v get y v get moveto
|
|
||||||
gsave
|
|
||||||
0 th 2 div neg rmoveto
|
|
||||||
th setlinewidth
|
|
||||||
0.95 setgray
|
|
||||||
pw 0 rlineto stroke
|
|
||||||
grestore
|
|
||||||
% 2. Border it
|
|
||||||
gsave
|
|
||||||
0.7 setlinewidth
|
|
||||||
pw 0 rlineto
|
|
||||||
0 th neg rlineto
|
|
||||||
pw neg 0 rlineto
|
|
||||||
closepath stroke
|
|
||||||
grestore
|
|
||||||
% stk: ct rt lt
|
|
||||||
x v get y v get th sub 1 add moveto
|
|
||||||
%%IncludeResource: font Helvetica
|
|
||||||
fHelvetica fnfs 0.8 mul scalefont setfont
|
|
||||||
% 3. The left title
|
|
||||||
gsave
|
|
||||||
dup stringwidth pop fnfs 0.8 mul add exch % leave space took on stack
|
|
||||||
fnfs 0.8 mul hm rmoveto
|
|
||||||
show % left title
|
|
||||||
grestore
|
|
||||||
exch
|
|
||||||
% stk: ct ltw rt
|
|
||||||
% 4. the right title
|
|
||||||
gsave
|
|
||||||
dup stringwidth pop fnfs 0.8 mul add exch % leave space took on stack
|
|
||||||
dup
|
|
||||||
pw exch stringwidth pop fnfs 0.8 mul add sub
|
|
||||||
hm
|
|
||||||
rmoveto
|
|
||||||
show % right title
|
|
||||||
grestore
|
|
||||||
% stk: ct ltw rtw
|
|
||||||
% 5. the center title
|
|
||||||
gsave
|
|
||||||
pw 3 1 roll
|
|
||||||
% stk: ct pw ltw rtw
|
|
||||||
3 copy
|
|
||||||
% Move to the center of the left room
|
|
||||||
sub add 2 div hm rmoveto
|
|
||||||
% What is the available space in here?
|
|
||||||
add sub fnfs 0.8 mul sub fnfs 0.8 mul sub
|
|
||||||
% stk: ct space_left
|
|
||||||
%%IncludeResource: font Helvetica-Bold
|
|
||||||
fHelvetica-Bold fnfs scalefont setfont
|
|
||||||
cfshow
|
|
||||||
grestore
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
% Function border: prints virtual page border
|
|
||||||
/border { %def
|
|
||||||
gsave % print four sides
|
|
||||||
0 setgray
|
|
||||||
x v get y v get moveto
|
|
||||||
0.7 setlinewidth % of the square
|
|
||||||
pw 0 rlineto
|
|
||||||
0 ph neg rlineto
|
|
||||||
pw neg 0 rlineto
|
|
||||||
closepath stroke
|
|
||||||
grestore
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
% Function water: prints a water mark in background
|
|
||||||
/water { %def
|
|
||||||
gsave
|
|
||||||
scx scy moveto rotate
|
|
||||||
%%IncludeResource: font Times-Bold
|
|
||||||
fTimes-Bold 100 scalefont setfont
|
|
||||||
.97 setgray
|
|
||||||
dup stringwidth pop 2 div neg -50 rmoveto
|
|
||||||
show
|
|
||||||
grestore
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
% Function rhead: prints the right header
|
|
||||||
/rhead { %def
|
|
||||||
lx ly moveto
|
|
||||||
fHelvetica fnfs 0.8 mul scalefont setfont
|
|
||||||
l-show
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
% Function footer (cf rf lf -> -)
|
|
||||||
/footer {
|
|
||||||
fHelvetica fnfs 0.8 mul scalefont setfont
|
|
||||||
dx dy moveto
|
|
||||||
show
|
|
||||||
|
|
||||||
snx sny moveto
|
|
||||||
l-show
|
|
||||||
|
|
||||||
fnx fny moveto
|
|
||||||
c-show
|
|
||||||
} bind def
|
|
||||||
%%EndResource
|
|
||||||
%%BeginResource: procset a2ps-black+white-Prolog 2.0 1
|
|
||||||
|
|
||||||
% Function T(ab), jumps to the n-th tabulation in the current line
|
|
||||||
/T {
|
|
||||||
cw mul x0 add y0 moveto
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
% Function n: move to the next line
|
|
||||||
/n { %def
|
|
||||||
/y0 y0 bfs sub store
|
|
||||||
x0 y0 moveto
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
% Function N: show and move to the next line
|
|
||||||
/N {
|
|
||||||
Show
|
|
||||||
/y0 y0 bfs sub store
|
|
||||||
x0 y0 moveto
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
/S {
|
|
||||||
Show
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
/p {
|
|
||||||
false UL
|
|
||||||
false BX
|
|
||||||
fCourier bfs scalefont setfont
|
|
||||||
Show
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
/sy {
|
|
||||||
false UL
|
|
||||||
false BX
|
|
||||||
fSymbol bfs scalefont setfont
|
|
||||||
Show
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
/k {
|
|
||||||
false UL
|
|
||||||
false BX
|
|
||||||
fCourier-Oblique bfs scalefont setfont
|
|
||||||
Show
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
/K {
|
|
||||||
false UL
|
|
||||||
false BX
|
|
||||||
fCourier-Bold bfs scalefont setfont
|
|
||||||
Show
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
/c {
|
|
||||||
false UL
|
|
||||||
false BX
|
|
||||||
fCourier-Oblique bfs scalefont setfont
|
|
||||||
Show
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
/C {
|
|
||||||
false UL
|
|
||||||
false BX
|
|
||||||
fCourier-BoldOblique bfs scalefont setfont
|
|
||||||
Show
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
/l {
|
|
||||||
false UL
|
|
||||||
false BX
|
|
||||||
fHelvetica bfs scalefont setfont
|
|
||||||
Show
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
/L {
|
|
||||||
false UL
|
|
||||||
false BX
|
|
||||||
fHelvetica-Bold bfs scalefont setfont
|
|
||||||
Show
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
/str{
|
|
||||||
false UL
|
|
||||||
false BX
|
|
||||||
fTimes-Roman bfs scalefont setfont
|
|
||||||
Show
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
/e{
|
|
||||||
false UL
|
|
||||||
true BX
|
|
||||||
fHelvetica-Bold bfs scalefont setfont
|
|
||||||
Show
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
%%EndResource
|
|
||||||
%%EndProlog
|
|
||||||
%%BeginSetup
|
|
||||||
%%IncludeResource: font Courier
|
|
||||||
%%IncludeResource: font Courier-Oblique
|
|
||||||
%%IncludeResource: font Courier-Bold
|
|
||||||
%%IncludeResource: font Times-Roman
|
|
||||||
%%IncludeResource: font Symbol
|
|
||||||
%%IncludeResource: font Courier-BoldOblique
|
|
||||||
%%BeginResource: encoding ISO-8859-1Encoding
|
|
||||||
/ISO-8859-1Encoding [
|
|
||||||
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
|
|
||||||
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
|
|
||||||
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
|
|
||||||
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
|
|
||||||
/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright
|
|
||||||
/parenleft /parenright /asterisk /plus /comma /minus /period /slash
|
|
||||||
/zero /one /two /three /four /five /six /seven
|
|
||||||
/eight /nine /colon /semicolon /less /equal /greater /question
|
|
||||||
/at /A /B /C /D /E /F /G
|
|
||||||
/H /I /J /K /L /M /N /O
|
|
||||||
/P /Q /R /S /T /U /V /W
|
|
||||||
/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
|
|
||||||
/quoteleft /a /b /c /d /e /f /g
|
|
||||||
/h /i /j /k /l /m /n /o
|
|
||||||
/p /q /r /s /t /u /v /w
|
|
||||||
/x /y /z /braceleft /bar /braceright /asciitilde /.notdef
|
|
||||||
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
|
|
||||||
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
|
|
||||||
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
|
|
||||||
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
|
|
||||||
/space /exclamdown /cent /sterling /currency /yen /brokenbar /section
|
|
||||||
/dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron
|
|
||||||
/degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /bullet
|
|
||||||
/cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown
|
|
||||||
/Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
|
|
||||||
/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
|
|
||||||
/Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply
|
|
||||||
/Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls
|
|
||||||
/agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla
|
|
||||||
/egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis
|
|
||||||
/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide
|
|
||||||
/oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis
|
|
||||||
] def
|
|
||||||
%%EndResource
|
|
||||||
% Initialize page description variables.
|
|
||||||
/sh 612 def
|
|
||||||
/sw 792 def
|
|
||||||
/llx 24 def
|
|
||||||
/urx 768 def
|
|
||||||
/ury 588 def
|
|
||||||
/lly 24 def
|
|
||||||
/#copies 1 def
|
|
||||||
/th 15.000000 def
|
|
||||||
/fnfs 11 def
|
|
||||||
/bfs 6.000000 def
|
|
||||||
/cw 3.600000 def
|
|
||||||
|
|
||||||
% Dictionary for ISO-8859-1 support
|
|
||||||
/iso1dict 8 dict begin
|
|
||||||
/fCourier ISO-8859-1Encoding /Courier reencode_font
|
|
||||||
/fCourier-Bold ISO-8859-1Encoding /Courier-Bold reencode_font
|
|
||||||
/fCourier-BoldOblique ISO-8859-1Encoding /Courier-BoldOblique reencode_font
|
|
||||||
/fCourier-Oblique ISO-8859-1Encoding /Courier-Oblique reencode_font
|
|
||||||
/fHelvetica ISO-8859-1Encoding /Helvetica reencode_font
|
|
||||||
/fHelvetica-Bold ISO-8859-1Encoding /Helvetica-Bold reencode_font
|
|
||||||
/fTimes-Bold ISO-8859-1Encoding /Times-Bold reencode_font
|
|
||||||
/fTimes-Roman ISO-8859-1Encoding /Times-Roman reencode_font
|
|
||||||
currentdict end def
|
|
||||||
/bgcolor [ 0 0 0 ] def
|
|
||||||
/bg false def
|
|
||||||
/ul false def
|
|
||||||
/bx false def
|
|
||||||
% The font for line numbering
|
|
||||||
/f# /Helvetica findfont bfs .6 mul scalefont def
|
|
||||||
/fSymbol /Symbol findfont def
|
|
||||||
/hm fnfs 0.25 mul def
|
|
||||||
/pw
|
|
||||||
cw 101.400000 mul
|
|
||||||
def
|
|
||||||
/ph
|
|
||||||
520.200000 th add
|
|
||||||
def
|
|
||||||
/pmw urx llx sub pw 2 mul sub 1 div def
|
|
||||||
/pmh 0 def
|
|
||||||
/v 0 def
|
|
||||||
/x [
|
|
||||||
0
|
|
||||||
dup pmw add pw add
|
|
||||||
] def
|
|
||||||
/y [
|
|
||||||
pmh ph add 0 mul ph add
|
|
||||||
dup
|
|
||||||
] def
|
|
||||||
/scx sw 2 div def
|
|
||||||
/scy sh 2 div def
|
|
||||||
/snx urx def
|
|
||||||
/sny lly 2 add def
|
|
||||||
/dx llx def
|
|
||||||
/dy sny def
|
|
||||||
/fnx scx def
|
|
||||||
/fny dy def
|
|
||||||
/lx snx def
|
|
||||||
/ly ury fnfs 0.8 mul sub def
|
|
||||||
/sx 0 def
|
|
||||||
/tab 8 def
|
|
||||||
/x0 0 def
|
|
||||||
/y0 0 def
|
|
||||||
%%EndSetup
|
|
||||||
|
|
||||||
%%Page: (1-2) 1
|
|
||||||
%%BeginPageSetup
|
|
||||||
/pagesave save def
|
|
||||||
sh 0 translate 90 rotate
|
|
||||||
%%EndPageSetup
|
|
||||||
iso1dict begin
|
|
||||||
gsave
|
|
||||||
llx lly 12 add translate
|
|
||||||
/v 0 store
|
|
||||||
/x0 x v get 2.520000 add sx cw mul add store
|
|
||||||
/y0 y v get bfs th add sub store
|
|
||||||
x0 y0 moveto
|
|
||||||
(#!/usr/bin/python) c n
|
|
||||||
() p n
|
|
||||||
(import) K
|
|
||||||
( socket) p n
|
|
||||||
(import) K
|
|
||||||
( Queue) p n
|
|
||||||
(import) K
|
|
||||||
( threading) p n
|
|
||||||
(import) K
|
|
||||||
( md5) p n
|
|
||||||
(import) K
|
|
||||||
( time) p n
|
|
||||||
() N
|
|
||||||
(class) K
|
|
||||||
( Entry\(object\):) p n
|
|
||||||
( ) S
|
|
||||||
(def) K
|
|
||||||
( __init__\(self, dynid, sharedSecret, name\):) p n
|
|
||||||
( self.dynid = dynid) N
|
|
||||||
( self.sharedSecret = sharedSecret) N
|
|
||||||
( self.name = name) N
|
|
||||||
( self.lastEventTime = 0) N
|
|
||||||
( self.address = '') N
|
|
||||||
() N
|
|
||||||
(class) K
|
|
||||||
( IllegalEventException\(Exception\):) p n
|
|
||||||
( ) S
|
|
||||||
(def) K
|
|
||||||
( __init__\(self, msg\):) p n
|
|
||||||
( self.msg = msg) N
|
|
||||||
() N
|
|
||||||
() N
|
|
||||||
(class) K
|
|
||||||
( Event\(object\):) p n
|
|
||||||
( ) S
|
|
||||||
(def) K
|
|
||||||
( __init__\(self, address, data, receiveTime\):) p n
|
|
||||||
( self.address = address) N
|
|
||||||
( self.data = data) N
|
|
||||||
( self.receiveTime = receiveTime) N
|
|
||||||
() N
|
|
||||||
( ) S
|
|
||||||
(def) K
|
|
||||||
( prepare\(self\):) p n
|
|
||||||
( self.port = self.address[1]) N
|
|
||||||
( self.address = self.address[0]) N
|
|
||||||
( \(self.dynid, self.msgTime, self.checksum\) = self.data.split\(') S
|
|
||||||
( ) str
|
|
||||||
('\)) p n
|
|
||||||
( self.msgTime = int\(self.msgTime\)) N
|
|
||||||
( self.prepared = True) N
|
|
||||||
() N
|
|
||||||
( ) S
|
|
||||||
(def) K
|
|
||||||
( process\(self\):) p n
|
|
||||||
( ) S
|
|
||||||
(if) K
|
|
||||||
( ) p
|
|
||||||
(not) K
|
|
||||||
( self.prepared:) p n
|
|
||||||
( self.prepare\(\)) N
|
|
||||||
() N
|
|
||||||
( ) S
|
|
||||||
(if) K
|
|
||||||
( ) p
|
|
||||||
(not) K
|
|
||||||
( ENTRIES.has_key\(self.dynid\):) p n
|
|
||||||
( ) S
|
|
||||||
(raise) K
|
|
||||||
( IllegalEventException\(") p
|
|
||||||
(unknown dynid in event %s) str
|
|
||||||
(" % str\(self\)\)) p n
|
|
||||||
( entry = ENTRIES[self.dynid]) N
|
|
||||||
() N
|
|
||||||
( ) S
|
|
||||||
(if) K
|
|
||||||
( self.msgTime + MSG_TIME_CORRIDOR < self.receiveTime:) p n
|
|
||||||
( ) S
|
|
||||||
(raise) K
|
|
||||||
( IllegalEventException\(") p
|
|
||||||
(event too old %s) str
|
|
||||||
(" % str\(self\)\)) p n
|
|
||||||
( ) S
|
|
||||||
(if) K
|
|
||||||
( self.msgTime - MSG_TIME_CORRIDOR > self.receiveTime:) p n
|
|
||||||
( ) S
|
|
||||||
(raise) K
|
|
||||||
( IllegalEventException\(") p
|
|
||||||
(event too young %s) str
|
|
||||||
(" % str\(self\)\)) p n
|
|
||||||
() N
|
|
||||||
() N
|
|
||||||
( ) S
|
|
||||||
(if) K
|
|
||||||
( entry.lastEventTime >= self.msgTime:) p n
|
|
||||||
( ) S
|
|
||||||
(raise) K
|
|
||||||
( IllegalEventException\(") p
|
|
||||||
(timing sequence failure in event, possibly replay %s) str
|
|
||||||
(" % str\(self\)\)) p n
|
|
||||||
() N
|
|
||||||
( di = ") S
|
|
||||||
(%s %s %d) str
|
|
||||||
(" % \(self.dynid, entry.sharedSecret, self.msgTime\)) p n
|
|
||||||
( d = md5.new\(di\).hexdigest\(\)) N
|
|
||||||
( ) S
|
|
||||||
(print) K
|
|
||||||
( ") p
|
|
||||||
(%s, received: %s, calculated: %s) str
|
|
||||||
(" % \(di, self.checksum, d\)) p n
|
|
||||||
( ) S
|
|
||||||
(if) K
|
|
||||||
( d != self.checksum:) p n
|
|
||||||
( ) S
|
|
||||||
(raise) K
|
|
||||||
( IllegalEventException\(") p
|
|
||||||
(wrong checksum for event %s) str
|
|
||||||
(" % str\(self\)\)) p n
|
|
||||||
() N
|
|
||||||
( entry.lastEventTime = self.msgTime) N
|
|
||||||
() N
|
|
||||||
( ) S
|
|
||||||
(if) K
|
|
||||||
( entry.address == self.address:) p n
|
|
||||||
( ) S
|
|
||||||
(print) K
|
|
||||||
( ") p
|
|
||||||
(Same address, nothing to do.) str
|
|
||||||
(") p n
|
|
||||||
( ) S
|
|
||||||
(else) K
|
|
||||||
(:) p n
|
|
||||||
( entry.address = self.address) N
|
|
||||||
( ) S
|
|
||||||
(print) K
|
|
||||||
( ") p
|
|
||||||
(Set in DNS: %s -> %s) str
|
|
||||||
(" % \(entry.name, entry.address\)) p n
|
|
||||||
() N
|
|
||||||
() N
|
|
||||||
( ) S
|
|
||||||
(def) K
|
|
||||||
( __str__\(self\):) p n
|
|
||||||
( ) S
|
|
||||||
(if) K
|
|
||||||
( ) p
|
|
||||||
(not) K
|
|
||||||
( self.prepared:) p n
|
|
||||||
( self.prepare\(\)) N
|
|
||||||
( ) S
|
|
||||||
(return) K
|
|
||||||
( ") p
|
|
||||||
(%s from %s:%d) str
|
|
||||||
(" % \(self.data, self.address, self.port\)) p n
|
|
||||||
() N
|
|
||||||
(class) K
|
|
||||||
( Handler\(threading.Thread\):) p n
|
|
||||||
( ) S
|
|
||||||
(def) K
|
|
||||||
( __init__\(self, queue\):) p n
|
|
||||||
( threading.Thread.__init__\(self\)) N
|
|
||||||
( self.q = queue) N
|
|
||||||
( self.setDaemon\(True\)) N
|
|
||||||
() N
|
|
||||||
( ) S
|
|
||||||
(def) K
|
|
||||||
( run\(self\):) p n
|
|
||||||
( ) S
|
|
||||||
(while) K
|
|
||||||
( True:) p n
|
|
||||||
( event = self.q.get\(\)) N
|
|
||||||
( ) S
|
|
||||||
(try) K
|
|
||||||
(:) p n
|
|
||||||
( event.prepare\(\)) N
|
|
||||||
( ) S
|
|
||||||
(print) K
|
|
||||||
( ") p
|
|
||||||
(Processing event %s) str
|
|
||||||
(" % str\(event\)) p n
|
|
||||||
( event.process\(\)) N
|
|
||||||
( ) S
|
|
||||||
(except) K
|
|
||||||
( IllegalEventException, e:) p n
|
|
||||||
( ) S
|
|
||||||
(print) K
|
|
||||||
( ") p
|
|
||||||
(Some failure: %s) str
|
|
||||||
(" % e.msg) p n
|
|
||||||
(yadyn) (Seite 1/2) (Nov 09, 07 13:31) title
|
|
||||||
border
|
|
||||||
/v 1 store
|
|
||||||
/x0 x v get 2.520000 add sx cw mul add store
|
|
||||||
/y0 y v get bfs th add sub store
|
|
||||||
x0 y0 moveto
|
|
||||||
() p n
|
|
||||||
(class) K
|
|
||||||
( Expirer\(threading.Thread\):) p n
|
|
||||||
( ) S
|
|
||||||
(def) K
|
|
||||||
( __init__\(self\):) p n
|
|
||||||
( threading.Thread.__init__\(self\)) N
|
|
||||||
( self.setDaemon\(True\)) N
|
|
||||||
() N
|
|
||||||
( ) S
|
|
||||||
(def) K
|
|
||||||
( run\(self\):) p n
|
|
||||||
( ) S
|
|
||||||
(while) K
|
|
||||||
( True:) p n
|
|
||||||
( ) S
|
|
||||||
(print) K
|
|
||||||
( ") p
|
|
||||||
(Expiring ...) str
|
|
||||||
(") p n
|
|
||||||
( currentTime = int\(time.time\(\)\)) N
|
|
||||||
( ) S
|
|
||||||
(for) K
|
|
||||||
( entry ) p
|
|
||||||
(in) K
|
|
||||||
( ENTRIES.values\(\):) p n
|
|
||||||
( ) S
|
|
||||||
(if) K
|
|
||||||
( entry.lastEventTime != 0 ) p
|
|
||||||
(and) K
|
|
||||||
( entry.lastEventTime + EVENT_LIFE_TIME < currentTime:) p n
|
|
||||||
( ) S
|
|
||||||
(print) K
|
|
||||||
( ") p
|
|
||||||
(Entry %s expired) str
|
|
||||||
(" % entry.dynid) p n
|
|
||||||
( entry.lastEventTime = 0) N
|
|
||||||
( entry.address = NULL_ADDRESS) N
|
|
||||||
( ) S
|
|
||||||
(print) K
|
|
||||||
( ") p
|
|
||||||
(Set in DNS: %s -> %s) str
|
|
||||||
(" % \(entry.name, entry.address\)) p n
|
|
||||||
( time.sleep\(10\)) N
|
|
||||||
( ) N
|
|
||||||
() N
|
|
||||||
(ENTRIES = {) N
|
|
||||||
( ') S
|
|
||||||
(testhost) str
|
|
||||||
(': Entry\(') p
|
|
||||||
(testhost,) str
|
|
||||||
(', ') p
|
|
||||||
(test123) str
|
|
||||||
(', ') p
|
|
||||||
(test.test.de) str
|
|
||||||
('\),) p n
|
|
||||||
( }) N
|
|
||||||
(MSG_TIME_CORRIDOR = 5) N
|
|
||||||
(EVENT_LIFE_TIME = 10) N
|
|
||||||
(NULL_ADDRESS = ') S
|
|
||||||
(0.0.0.0) str
|
|
||||||
(') p n
|
|
||||||
() N
|
|
||||||
(q = Queue.Queue\(\)) N
|
|
||||||
() N
|
|
||||||
(handler = Handler\(q\)) N
|
|
||||||
(handler.start\(\)) N
|
|
||||||
() N
|
|
||||||
(expirer = Expirer\(\)) N
|
|
||||||
(expirer.start\(\)) N
|
|
||||||
() N
|
|
||||||
(s = socket.socket\(socket.AF_INET, socket.SOCK_DGRAM\)) N
|
|
||||||
(s.bind\(\("", 9090\)\)) N
|
|
||||||
() N
|
|
||||||
(while) K
|
|
||||||
( True:) p n
|
|
||||||
( data, address = s.recvfrom\(256\)) N
|
|
||||||
( ) S
|
|
||||||
(try) K
|
|
||||||
(:) p n
|
|
||||||
( q.put_nowait\(Event\(address, data, int\(time.time\(\)\)\)\)) N
|
|
||||||
( ) S
|
|
||||||
(except) K
|
|
||||||
( Queue.Full:) p n
|
|
||||||
( ) S
|
|
||||||
(print) K
|
|
||||||
( ") p
|
|
||||||
(Event %s from %s dropped) str
|
|
||||||
(" % \(data, str\(address\)\)) p n
|
|
||||||
() N
|
|
||||||
(yadyn) (Seite 2/2) (Nov 09, 07 13:31) title
|
|
||||||
border
|
|
||||||
grestore
|
|
||||||
(Gedruckt von Wolfgang Hottgenroth) rhead
|
|
||||||
(yadyn) (1/1) (Samstag November 10, 2007) footer
|
|
||||||
end % of iso1dict
|
|
||||||
pagesave restore
|
|
||||||
showpage
|
|
||||||
|
|
||||||
%%Trailer
|
|
||||||
end
|
|
||||||
%%EOF
|
|
937
server/a.ps~
937
server/a.ps~
@ -1,937 +0,0 @@
|
|||||||
%!PS-Adobe-3.0
|
|
||||||
%%Title: yadyn
|
|
||||||
%%For: Wolfgang Hottgenroth
|
|
||||||
%%Creator: a2ps version 4.13
|
|
||||||
%%CreationDate: Sat Nov 10 10:07:58 2007
|
|
||||||
%%BoundingBox: 24 24 588 768
|
|
||||||
%%DocumentData: Clean7Bit
|
|
||||||
%%Orientation: Landscape
|
|
||||||
%%Pages: 2
|
|
||||||
%%PageOrder: Ascend
|
|
||||||
%%DocumentMedia: Letter 612 792 0 () ()
|
|
||||||
%%DocumentNeededResources: font Courier
|
|
||||||
%%+ font Courier-Bold
|
|
||||||
%%+ font Courier-BoldOblique
|
|
||||||
%%+ font Courier-Oblique
|
|
||||||
%%+ font Helvetica
|
|
||||||
%%+ font Helvetica-Bold
|
|
||||||
%%+ font Symbol
|
|
||||||
%%+ font Times-Bold
|
|
||||||
%%+ font Times-Roman
|
|
||||||
%%DocumentProcessColors: Black
|
|
||||||
%%DocumentSuppliedResources: procset a2ps-a2ps-hdr
|
|
||||||
%%+ procset a2ps-black+white-Prolog
|
|
||||||
%%+ encoding ISO-8859-1Encoding
|
|
||||||
%%EndComments
|
|
||||||
/a2psdict 200 dict def
|
|
||||||
a2psdict begin
|
|
||||||
%%BeginProlog
|
|
||||||
%%Copyright: (c) 1988, 89, 90, 91, 92, 93 Miguel Santana
|
|
||||||
%%Copyright: (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana
|
|
||||||
% Check PostScript language level.
|
|
||||||
/languagelevel where {
|
|
||||||
pop /gs_languagelevel languagelevel def
|
|
||||||
} {
|
|
||||||
/gs_languagelevel 1 def
|
|
||||||
} ifelse
|
|
||||||
|
|
||||||
% EPSF import as in the Red Book
|
|
||||||
/BeginInclude {
|
|
||||||
/b4_Inc_state save def % Save state for cleanup
|
|
||||||
/dict_count countdictstack def % Count objects on dict stack
|
|
||||||
/op_count count 1 sub def % Count objects on operand stack
|
|
||||||
userdict begin
|
|
||||||
0 setgray 0 setlinecap
|
|
||||||
1 setlinewidth 0 setlinejoin
|
|
||||||
10 setmiterlimit [ ] 0 setdash newpath
|
|
||||||
gs_languagelevel 1 ne {
|
|
||||||
false setstrokeadjust false setoverprint
|
|
||||||
} if
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
/EndInclude {
|
|
||||||
count op_count sub { pos } repeat % Clean up stacks
|
|
||||||
countdictstack dict_count sub { end } repeat
|
|
||||||
b4_Inc_state restore
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
/BeginEPSF {
|
|
||||||
BeginInclude
|
|
||||||
/showpage { } def
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
/EndEPSF {
|
|
||||||
EndInclude
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
% Page prefeed
|
|
||||||
/page_prefeed { % bool -> -
|
|
||||||
statusdict /prefeed known {
|
|
||||||
statusdict exch /prefeed exch put
|
|
||||||
} {
|
|
||||||
pop
|
|
||||||
} ifelse
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
/deffont {
|
|
||||||
findfont exch scalefont def
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
/reencode_font {
|
|
||||||
findfont reencode 2 copy definefont pop def
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
% Function c-show (str => -)
|
|
||||||
% centers text only according to x axis.
|
|
||||||
/c-show {
|
|
||||||
dup stringwidth pop
|
|
||||||
2 div neg 0 rmoveto
|
|
||||||
show
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
% Function l-show (str => -)
|
|
||||||
% prints texts so that it ends at currentpoint
|
|
||||||
/l-show {
|
|
||||||
dup stringwidth pop neg
|
|
||||||
0
|
|
||||||
rmoveto show
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
% center-fit show (str w => -)
|
|
||||||
% show centered, and scale currentfont so that the width is less than w
|
|
||||||
/cfshow {
|
|
||||||
exch dup stringwidth pop
|
|
||||||
% If the title is too big, try to make it smaller
|
|
||||||
3 2 roll 2 copy
|
|
||||||
gt
|
|
||||||
{ % if, i.e. too big
|
|
||||||
exch div
|
|
||||||
currentfont exch scalefont setfont
|
|
||||||
} { % ifelse
|
|
||||||
pop pop
|
|
||||||
}
|
|
||||||
ifelse
|
|
||||||
c-show % center title
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
% Return the y size of the current font
|
|
||||||
% - => fontsize
|
|
||||||
/currentfontsize {
|
|
||||||
currentfont /FontMatrix get 3 get 1000 mul
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
% reencode the font
|
|
||||||
% <encoding-vector> <fontdict> -> <newfontdict>
|
|
||||||
/reencode
|
|
||||||
{
|
|
||||||
dup length 5 add dict begin
|
|
||||||
{ % <vector> <key> <val>
|
|
||||||
1 index /FID ne
|
|
||||||
{ def }{ pop pop } ifelse
|
|
||||||
} forall
|
|
||||||
/Encoding exch def % -
|
|
||||||
|
|
||||||
% Use the font's bounding box to determine the ascent, descent,
|
|
||||||
% and overall height; don't forget that these values have to be
|
|
||||||
% transformed using the font's matrix. We use `load' because sometimes
|
|
||||||
% BBox is executable, sometimes not. Since we need 4 numbers an not
|
|
||||||
% an array avoid BBox from being executed
|
|
||||||
/FontBBox load aload pop
|
|
||||||
FontMatrix transform /Ascent exch def pop
|
|
||||||
FontMatrix transform /Descent exch def pop
|
|
||||||
/FontHeight Ascent Descent sub def
|
|
||||||
|
|
||||||
% Get the underline position and thickness if they're defined.
|
|
||||||
% Use 1 if they are not defined.
|
|
||||||
currentdict /FontInfo 2 copy known
|
|
||||||
{ get
|
|
||||||
/UnderlinePosition 2 copy % <FontInfo> /UP <FontInfo> /UP
|
|
||||||
2 copy known
|
|
||||||
{ get }{ pop pop 1} ifelse
|
|
||||||
0 exch FontMatrix transform exch pop
|
|
||||||
def % <FontInfo>
|
|
||||||
|
|
||||||
/UnderlineThickness 2 copy % <FontInfo> /UT <FontInfo> /UT
|
|
||||||
2 copy known
|
|
||||||
{ get }{ pop pop 1} ifelse
|
|
||||||
0 exch FontMatrix transform exch pop
|
|
||||||
def % <FontInfo>
|
|
||||||
pop % -
|
|
||||||
}{ pop pop
|
|
||||||
} ifelse
|
|
||||||
|
|
||||||
currentdict
|
|
||||||
end
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
% Function print line number (<string> # -)
|
|
||||||
/# {
|
|
||||||
gsave
|
|
||||||
sx cw mul neg 2 div 0 rmoveto
|
|
||||||
f# setfont
|
|
||||||
c-show
|
|
||||||
grestore
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
% -------- Some routines to enlight plain b/w printings ---------
|
|
||||||
|
|
||||||
% Underline
|
|
||||||
% width --
|
|
||||||
/dounderline {
|
|
||||||
currentpoint
|
|
||||||
gsave
|
|
||||||
moveto
|
|
||||||
0 currentfont /Descent get currentfontsize mul rmoveto
|
|
||||||
0 rlineto
|
|
||||||
stroke
|
|
||||||
grestore
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
% Underline a string
|
|
||||||
% string --
|
|
||||||
/dounderlinestring {
|
|
||||||
stringwidth pop
|
|
||||||
dounderline
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
/UL {
|
|
||||||
/ul exch store
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
% Draw a box of WIDTH wrt current font
|
|
||||||
% width --
|
|
||||||
/dobox {
|
|
||||||
currentpoint
|
|
||||||
gsave
|
|
||||||
newpath
|
|
||||||
moveto
|
|
||||||
0 currentfont /Descent get currentfontsize mul rmoveto
|
|
||||||
dup 0 rlineto
|
|
||||||
0 currentfont /FontHeight get currentfontsize mul rlineto
|
|
||||||
neg 0 rlineto
|
|
||||||
closepath
|
|
||||||
stroke
|
|
||||||
grestore
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
/BX {
|
|
||||||
/bx exch store
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
% Box a string
|
|
||||||
% string --
|
|
||||||
/doboxstring {
|
|
||||||
stringwidth pop
|
|
||||||
dobox
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
%
|
|
||||||
% ------------- Color routines ---------------
|
|
||||||
%
|
|
||||||
/FG /setrgbcolor load def
|
|
||||||
|
|
||||||
% Draw the background
|
|
||||||
% width --
|
|
||||||
/dobackground {
|
|
||||||
currentpoint
|
|
||||||
gsave
|
|
||||||
newpath
|
|
||||||
moveto
|
|
||||||
0 currentfont /Descent get currentfontsize mul rmoveto
|
|
||||||
dup 0 rlineto
|
|
||||||
0 currentfont /FontHeight get currentfontsize mul rlineto
|
|
||||||
neg 0 rlineto
|
|
||||||
closepath
|
|
||||||
bgcolor aload pop setrgbcolor
|
|
||||||
fill
|
|
||||||
grestore
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
% Draw bg for a string
|
|
||||||
% string --
|
|
||||||
/dobackgroundstring {
|
|
||||||
stringwidth pop
|
|
||||||
dobackground
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
|
|
||||||
/BG {
|
|
||||||
dup /bg exch store
|
|
||||||
{ mark 4 1 roll ] /bgcolor exch store } if
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
|
|
||||||
/Show {
|
|
||||||
bg { dup dobackgroundstring } if
|
|
||||||
ul { dup dounderlinestring } if
|
|
||||||
bx { dup doboxstring } if
|
|
||||||
show
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
% Function T(ab), jumps to the n-th tabulation in the current line
|
|
||||||
/T {
|
|
||||||
cw mul x0 add
|
|
||||||
bg { dup currentpoint pop sub dobackground } if
|
|
||||||
ul { dup currentpoint pop sub dounderline } if
|
|
||||||
bx { dup currentpoint pop sub dobox } if
|
|
||||||
y0 moveto
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
% Function n: move to the next line
|
|
||||||
/n {
|
|
||||||
/y0 y0 bfs sub store
|
|
||||||
x0 y0 moveto
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
% Function N: show and move to the next line
|
|
||||||
/N {
|
|
||||||
Show
|
|
||||||
/y0 y0 bfs sub store
|
|
||||||
x0 y0 moveto
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
/S {
|
|
||||||
Show
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
%%BeginResource: procset a2ps-a2ps-hdr 2.0 2
|
|
||||||
%%Copyright: (c) 1988, 89, 90, 91, 92, 93 Miguel Santana
|
|
||||||
%%Copyright: (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana
|
|
||||||
% Function title: prints page header.
|
|
||||||
% <ct> <rt> <lt> are passed as argument
|
|
||||||
/title {
|
|
||||||
% 1. Draw the background
|
|
||||||
x v get y v get moveto
|
|
||||||
gsave
|
|
||||||
0 th 2 div neg rmoveto
|
|
||||||
th setlinewidth
|
|
||||||
0.95 setgray
|
|
||||||
pw 0 rlineto stroke
|
|
||||||
grestore
|
|
||||||
% 2. Border it
|
|
||||||
gsave
|
|
||||||
0.7 setlinewidth
|
|
||||||
pw 0 rlineto
|
|
||||||
0 th neg rlineto
|
|
||||||
pw neg 0 rlineto
|
|
||||||
closepath stroke
|
|
||||||
grestore
|
|
||||||
% stk: ct rt lt
|
|
||||||
x v get y v get th sub 1 add moveto
|
|
||||||
%%IncludeResource: font Helvetica
|
|
||||||
fHelvetica fnfs 0.8 mul scalefont setfont
|
|
||||||
% 3. The left title
|
|
||||||
gsave
|
|
||||||
dup stringwidth pop fnfs 0.8 mul add exch % leave space took on stack
|
|
||||||
fnfs 0.8 mul hm rmoveto
|
|
||||||
show % left title
|
|
||||||
grestore
|
|
||||||
exch
|
|
||||||
% stk: ct ltw rt
|
|
||||||
% 4. the right title
|
|
||||||
gsave
|
|
||||||
dup stringwidth pop fnfs 0.8 mul add exch % leave space took on stack
|
|
||||||
dup
|
|
||||||
pw exch stringwidth pop fnfs 0.8 mul add sub
|
|
||||||
hm
|
|
||||||
rmoveto
|
|
||||||
show % right title
|
|
||||||
grestore
|
|
||||||
% stk: ct ltw rtw
|
|
||||||
% 5. the center title
|
|
||||||
gsave
|
|
||||||
pw 3 1 roll
|
|
||||||
% stk: ct pw ltw rtw
|
|
||||||
3 copy
|
|
||||||
% Move to the center of the left room
|
|
||||||
sub add 2 div hm rmoveto
|
|
||||||
% What is the available space in here?
|
|
||||||
add sub fnfs 0.8 mul sub fnfs 0.8 mul sub
|
|
||||||
% stk: ct space_left
|
|
||||||
%%IncludeResource: font Helvetica-Bold
|
|
||||||
fHelvetica-Bold fnfs scalefont setfont
|
|
||||||
cfshow
|
|
||||||
grestore
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
% Function border: prints virtual page border
|
|
||||||
/border { %def
|
|
||||||
gsave % print four sides
|
|
||||||
0 setgray
|
|
||||||
x v get y v get moveto
|
|
||||||
0.7 setlinewidth % of the square
|
|
||||||
pw 0 rlineto
|
|
||||||
0 ph neg rlineto
|
|
||||||
pw neg 0 rlineto
|
|
||||||
closepath stroke
|
|
||||||
grestore
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
% Function water: prints a water mark in background
|
|
||||||
/water { %def
|
|
||||||
gsave
|
|
||||||
scx scy moveto rotate
|
|
||||||
%%IncludeResource: font Times-Bold
|
|
||||||
fTimes-Bold 100 scalefont setfont
|
|
||||||
.97 setgray
|
|
||||||
dup stringwidth pop 2 div neg -50 rmoveto
|
|
||||||
show
|
|
||||||
grestore
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
% Function rhead: prints the right header
|
|
||||||
/rhead { %def
|
|
||||||
lx ly moveto
|
|
||||||
fHelvetica fnfs 0.8 mul scalefont setfont
|
|
||||||
l-show
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
% Function footer (cf rf lf -> -)
|
|
||||||
/footer {
|
|
||||||
fHelvetica fnfs 0.8 mul scalefont setfont
|
|
||||||
dx dy moveto
|
|
||||||
show
|
|
||||||
|
|
||||||
snx sny moveto
|
|
||||||
l-show
|
|
||||||
|
|
||||||
fnx fny moveto
|
|
||||||
c-show
|
|
||||||
} bind def
|
|
||||||
%%EndResource
|
|
||||||
%%BeginResource: procset a2ps-black+white-Prolog 2.0 1
|
|
||||||
|
|
||||||
% Function T(ab), jumps to the n-th tabulation in the current line
|
|
||||||
/T {
|
|
||||||
cw mul x0 add y0 moveto
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
% Function n: move to the next line
|
|
||||||
/n { %def
|
|
||||||
/y0 y0 bfs sub store
|
|
||||||
x0 y0 moveto
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
% Function N: show and move to the next line
|
|
||||||
/N {
|
|
||||||
Show
|
|
||||||
/y0 y0 bfs sub store
|
|
||||||
x0 y0 moveto
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
/S {
|
|
||||||
Show
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
/p {
|
|
||||||
false UL
|
|
||||||
false BX
|
|
||||||
fCourier bfs scalefont setfont
|
|
||||||
Show
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
/sy {
|
|
||||||
false UL
|
|
||||||
false BX
|
|
||||||
fSymbol bfs scalefont setfont
|
|
||||||
Show
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
/k {
|
|
||||||
false UL
|
|
||||||
false BX
|
|
||||||
fCourier-Oblique bfs scalefont setfont
|
|
||||||
Show
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
/K {
|
|
||||||
false UL
|
|
||||||
false BX
|
|
||||||
fCourier-Bold bfs scalefont setfont
|
|
||||||
Show
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
/c {
|
|
||||||
false UL
|
|
||||||
false BX
|
|
||||||
fCourier-Oblique bfs scalefont setfont
|
|
||||||
Show
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
/C {
|
|
||||||
false UL
|
|
||||||
false BX
|
|
||||||
fCourier-BoldOblique bfs scalefont setfont
|
|
||||||
Show
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
/l {
|
|
||||||
false UL
|
|
||||||
false BX
|
|
||||||
fHelvetica bfs scalefont setfont
|
|
||||||
Show
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
/L {
|
|
||||||
false UL
|
|
||||||
false BX
|
|
||||||
fHelvetica-Bold bfs scalefont setfont
|
|
||||||
Show
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
/str{
|
|
||||||
false UL
|
|
||||||
false BX
|
|
||||||
fTimes-Roman bfs scalefont setfont
|
|
||||||
Show
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
/e{
|
|
||||||
false UL
|
|
||||||
true BX
|
|
||||||
fHelvetica-Bold bfs scalefont setfont
|
|
||||||
Show
|
|
||||||
} bind def
|
|
||||||
|
|
||||||
%%EndResource
|
|
||||||
%%EndProlog
|
|
||||||
%%BeginSetup
|
|
||||||
%%IncludeResource: font Courier
|
|
||||||
%%IncludeResource: font Courier-Oblique
|
|
||||||
%%IncludeResource: font Courier-Bold
|
|
||||||
%%IncludeResource: font Times-Roman
|
|
||||||
%%IncludeResource: font Symbol
|
|
||||||
%%IncludeResource: font Courier-BoldOblique
|
|
||||||
%%BeginResource: encoding ISO-8859-1Encoding
|
|
||||||
/ISO-8859-1Encoding [
|
|
||||||
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
|
|
||||||
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
|
|
||||||
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
|
|
||||||
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
|
|
||||||
/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright
|
|
||||||
/parenleft /parenright /asterisk /plus /comma /minus /period /slash
|
|
||||||
/zero /one /two /three /four /five /six /seven
|
|
||||||
/eight /nine /colon /semicolon /less /equal /greater /question
|
|
||||||
/at /A /B /C /D /E /F /G
|
|
||||||
/H /I /J /K /L /M /N /O
|
|
||||||
/P /Q /R /S /T /U /V /W
|
|
||||||
/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
|
|
||||||
/quoteleft /a /b /c /d /e /f /g
|
|
||||||
/h /i /j /k /l /m /n /o
|
|
||||||
/p /q /r /s /t /u /v /w
|
|
||||||
/x /y /z /braceleft /bar /braceright /asciitilde /.notdef
|
|
||||||
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
|
|
||||||
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
|
|
||||||
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
|
|
||||||
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
|
|
||||||
/space /exclamdown /cent /sterling /currency /yen /brokenbar /section
|
|
||||||
/dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron
|
|
||||||
/degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /bullet
|
|
||||||
/cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown
|
|
||||||
/Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
|
|
||||||
/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
|
|
||||||
/Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply
|
|
||||||
/Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls
|
|
||||||
/agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla
|
|
||||||
/egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis
|
|
||||||
/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide
|
|
||||||
/oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis
|
|
||||||
] def
|
|
||||||
%%EndResource
|
|
||||||
% Initialize page description variables.
|
|
||||||
/sh 612 def
|
|
||||||
/sw 792 def
|
|
||||||
/llx 24 def
|
|
||||||
/urx 768 def
|
|
||||||
/ury 588 def
|
|
||||||
/lly 24 def
|
|
||||||
/#copies 1 def
|
|
||||||
/th 15.000000 def
|
|
||||||
/fnfs 11 def
|
|
||||||
/bfs 8.000000 def
|
|
||||||
/cw 4.800000 def
|
|
||||||
|
|
||||||
% Dictionary for ISO-8859-1 support
|
|
||||||
/iso1dict 8 dict begin
|
|
||||||
/fCourier ISO-8859-1Encoding /Courier reencode_font
|
|
||||||
/fCourier-Bold ISO-8859-1Encoding /Courier-Bold reencode_font
|
|
||||||
/fCourier-BoldOblique ISO-8859-1Encoding /Courier-BoldOblique reencode_font
|
|
||||||
/fCourier-Oblique ISO-8859-1Encoding /Courier-Oblique reencode_font
|
|
||||||
/fHelvetica ISO-8859-1Encoding /Helvetica reencode_font
|
|
||||||
/fHelvetica-Bold ISO-8859-1Encoding /Helvetica-Bold reencode_font
|
|
||||||
/fTimes-Bold ISO-8859-1Encoding /Times-Bold reencode_font
|
|
||||||
/fTimes-Roman ISO-8859-1Encoding /Times-Roman reencode_font
|
|
||||||
currentdict end def
|
|
||||||
/bgcolor [ 0 0 0 ] def
|
|
||||||
/bg false def
|
|
||||||
/ul false def
|
|
||||||
/bx false def
|
|
||||||
% The font for line numbering
|
|
||||||
/f# /Helvetica findfont bfs .6 mul scalefont def
|
|
||||||
/fSymbol /Symbol findfont def
|
|
||||||
/hm fnfs 0.25 mul def
|
|
||||||
/pw
|
|
||||||
cw 75.400000 mul
|
|
||||||
def
|
|
||||||
/ph
|
|
||||||
517.600000 th add
|
|
||||||
def
|
|
||||||
/pmw urx llx sub pw 2 mul sub 1 div def
|
|
||||||
/pmh 0 def
|
|
||||||
/v 0 def
|
|
||||||
/x [
|
|
||||||
0
|
|
||||||
dup pmw add pw add
|
|
||||||
] def
|
|
||||||
/y [
|
|
||||||
pmh ph add 0 mul ph add
|
|
||||||
dup
|
|
||||||
] def
|
|
||||||
/scx sw 2 div def
|
|
||||||
/scy sh 2 div def
|
|
||||||
/snx urx def
|
|
||||||
/sny lly 2 add def
|
|
||||||
/dx llx def
|
|
||||||
/dy sny def
|
|
||||||
/fnx scx def
|
|
||||||
/fny dy def
|
|
||||||
/lx snx def
|
|
||||||
/ly ury fnfs 0.8 mul sub def
|
|
||||||
/sx 0 def
|
|
||||||
/tab 8 def
|
|
||||||
/x0 0 def
|
|
||||||
/y0 0 def
|
|
||||||
%%EndSetup
|
|
||||||
|
|
||||||
%%Page: (1-2) 1
|
|
||||||
%%BeginPageSetup
|
|
||||||
/pagesave save def
|
|
||||||
sh 0 translate 90 rotate
|
|
||||||
%%EndPageSetup
|
|
||||||
iso1dict begin
|
|
||||||
gsave
|
|
||||||
llx lly 12 add translate
|
|
||||||
/v 0 store
|
|
||||||
/x0 x v get 3.360000 add sx cw mul add store
|
|
||||||
/y0 y v get bfs th add sub store
|
|
||||||
x0 y0 moveto
|
|
||||||
(#!/usr/bin/python) c n
|
|
||||||
() p n
|
|
||||||
(import) K
|
|
||||||
( socket) p n
|
|
||||||
(import) K
|
|
||||||
( Queue) p n
|
|
||||||
(import) K
|
|
||||||
( threading) p n
|
|
||||||
(import) K
|
|
||||||
( md5) p n
|
|
||||||
(import) K
|
|
||||||
( time) p n
|
|
||||||
() N
|
|
||||||
(class) K
|
|
||||||
( Entry\(object\):) p n
|
|
||||||
( ) S
|
|
||||||
(def) K
|
|
||||||
( __init__\(self, dynid, sharedSecret, name\):) p n
|
|
||||||
( self.dynid = dynid) N
|
|
||||||
( self.sharedSecret = sharedSecret) N
|
|
||||||
( self.name = name) N
|
|
||||||
( self.lastEventTime = 0) N
|
|
||||||
( self.address = '') N
|
|
||||||
() N
|
|
||||||
(class) K
|
|
||||||
( IllegalEventException\(Exception\):) p n
|
|
||||||
( ) S
|
|
||||||
(def) K
|
|
||||||
( __init__\(self, msg\):) p n
|
|
||||||
( self.msg = msg) N
|
|
||||||
() N
|
|
||||||
() N
|
|
||||||
(class) K
|
|
||||||
( Event\(object\):) p n
|
|
||||||
( ) S
|
|
||||||
(def) K
|
|
||||||
( __init__\(self, address, data, receiveTime\):) p n
|
|
||||||
( self.address = address) N
|
|
||||||
( self.data = data) N
|
|
||||||
( self.receiveTime = receiveTime) N
|
|
||||||
() N
|
|
||||||
( ) S
|
|
||||||
(def) K
|
|
||||||
( prepare\(self\):) p n
|
|
||||||
( self.port = self.address[1]) N
|
|
||||||
( self.address = self.address[0]) N
|
|
||||||
( \(self.dynid, self.msgTime, self.checksum\) = self.data.split\(') S
|
|
||||||
( ) str
|
|
||||||
('\)) p n
|
|
||||||
( self.msgTime = int\(self.msgTime\)) N
|
|
||||||
( self.prepared = True) N
|
|
||||||
() N
|
|
||||||
( ) S
|
|
||||||
(def) K
|
|
||||||
( process\(self\):) p n
|
|
||||||
( ) S
|
|
||||||
(if) K
|
|
||||||
( ) p
|
|
||||||
(not) K
|
|
||||||
( self.prepared:) p n
|
|
||||||
( self.prepare\(\)) N
|
|
||||||
() N
|
|
||||||
( ) S
|
|
||||||
(if) K
|
|
||||||
( ) p
|
|
||||||
(not) K
|
|
||||||
( ENTRIES.has_key\(self.dynid\):) p n
|
|
||||||
( ) S
|
|
||||||
(raise) K
|
|
||||||
( IllegalEventException\(") p
|
|
||||||
(unknown dynid in event %s) str
|
|
||||||
(" % str\(self\)\)) p n
|
|
||||||
( entry = ENTRIES[self.dynid]) N
|
|
||||||
() N
|
|
||||||
( ) S
|
|
||||||
(if) K
|
|
||||||
( self.msgTime + MSG_TIME_CORRIDOR < self.receiveTime:) p n
|
|
||||||
( ) S
|
|
||||||
(raise) K
|
|
||||||
( IllegalEventException\(") p
|
|
||||||
(event too old %s) str
|
|
||||||
(" % str\(self\)\)) p n
|
|
||||||
( ) S
|
|
||||||
(if) K
|
|
||||||
( self.msgTime - MSG_TIME_CORRIDOR > self.receiveTime:) p n
|
|
||||||
( ) S
|
|
||||||
(raise) K
|
|
||||||
( IllegalEventException\(") p
|
|
||||||
(event too young %s) str
|
|
||||||
(" % str\(self\)\)) p n
|
|
||||||
() N
|
|
||||||
() N
|
|
||||||
( ) S
|
|
||||||
(if) K
|
|
||||||
( entry.lastEventTime >= self.msgTime:) p n
|
|
||||||
( ) S
|
|
||||||
(raise) K
|
|
||||||
( IllegalEventException\(") p
|
|
||||||
(timing sequence failure in event, possibly replay ) str n
|
|
||||||
(%s) S
|
|
||||||
(" % str\(self\)\)) p n
|
|
||||||
() N
|
|
||||||
( di = ") S
|
|
||||||
(%s %s %d) str
|
|
||||||
(" % \(self.dynid, entry.sharedSecret, self.msgTime\)) p n
|
|
||||||
( d = md5.new\(di\).hexdigest\(\)) N
|
|
||||||
( ) S
|
|
||||||
(print) K
|
|
||||||
( ") p
|
|
||||||
(%s, received: %s, calculated: %s) str
|
|
||||||
(" % \(di, self.checksum, d\)) p n
|
|
||||||
( ) S
|
|
||||||
(if) K
|
|
||||||
( d != self.checksum:) p n
|
|
||||||
( ) S
|
|
||||||
(raise) K
|
|
||||||
( IllegalEventException\(") p
|
|
||||||
(wrong checksum for event %s) str
|
|
||||||
(" % str\(self) p n
|
|
||||||
(\)\)) N
|
|
||||||
() N
|
|
||||||
( entry.lastEventTime = self.msgTime) N
|
|
||||||
() N
|
|
||||||
( ) S
|
|
||||||
(if) K
|
|
||||||
( entry.address == self.address:) p n
|
|
||||||
( ) S
|
|
||||||
(print) K
|
|
||||||
( ") p
|
|
||||||
(Same address, nothing to do.) str
|
|
||||||
(") p n
|
|
||||||
( ) S
|
|
||||||
(else) K
|
|
||||||
(:) p n
|
|
||||||
(yadyn) (Seite 1/3) (Nov 09, 07 13:31) title
|
|
||||||
border
|
|
||||||
/v 1 store
|
|
||||||
/x0 x v get 3.360000 add sx cw mul add store
|
|
||||||
/y0 y v get bfs th add sub store
|
|
||||||
x0 y0 moveto
|
|
||||||
( entry.address = self.address) p n
|
|
||||||
( ) S
|
|
||||||
(print) K
|
|
||||||
( ") p
|
|
||||||
(Set in DNS: %s -> %s) str
|
|
||||||
(" % \(entry.name, entry.address\)) p n
|
|
||||||
() N
|
|
||||||
() N
|
|
||||||
( ) S
|
|
||||||
(def) K
|
|
||||||
( __str__\(self\):) p n
|
|
||||||
( ) S
|
|
||||||
(if) K
|
|
||||||
( ) p
|
|
||||||
(not) K
|
|
||||||
( self.prepared:) p n
|
|
||||||
( self.prepare\(\)) N
|
|
||||||
( ) S
|
|
||||||
(return) K
|
|
||||||
( ") p
|
|
||||||
(%s from %s:%d) str
|
|
||||||
(" % \(self.data, self.address, self.port\)) p n
|
|
||||||
() N
|
|
||||||
(class) K
|
|
||||||
( Handler\(threading.Thread\):) p n
|
|
||||||
( ) S
|
|
||||||
(def) K
|
|
||||||
( __init__\(self, queue\):) p n
|
|
||||||
( threading.Thread.__init__\(self\)) N
|
|
||||||
( self.q = queue) N
|
|
||||||
( self.setDaemon\(True\)) N
|
|
||||||
() N
|
|
||||||
( ) S
|
|
||||||
(def) K
|
|
||||||
( run\(self\):) p n
|
|
||||||
( ) S
|
|
||||||
(while) K
|
|
||||||
( True:) p n
|
|
||||||
( event = self.q.get\(\)) N
|
|
||||||
( ) S
|
|
||||||
(try) K
|
|
||||||
(:) p n
|
|
||||||
( event.prepare\(\)) N
|
|
||||||
( ) S
|
|
||||||
(print) K
|
|
||||||
( ") p
|
|
||||||
(Processing event %s) str
|
|
||||||
(" % str\(event\)) p n
|
|
||||||
( event.process\(\)) N
|
|
||||||
( ) S
|
|
||||||
(except) K
|
|
||||||
( IllegalEventException, e:) p n
|
|
||||||
( ) S
|
|
||||||
(print) K
|
|
||||||
( ") p
|
|
||||||
(Some failure: %s) str
|
|
||||||
(" % e.msg) p n
|
|
||||||
() N
|
|
||||||
(class) K
|
|
||||||
( Expirer\(threading.Thread\):) p n
|
|
||||||
( ) S
|
|
||||||
(def) K
|
|
||||||
( __init__\(self\):) p n
|
|
||||||
( threading.Thread.__init__\(self\)) N
|
|
||||||
( self.setDaemon\(True\)) N
|
|
||||||
() N
|
|
||||||
( ) S
|
|
||||||
(def) K
|
|
||||||
( run\(self\):) p n
|
|
||||||
( ) S
|
|
||||||
(while) K
|
|
||||||
( True:) p n
|
|
||||||
( ) S
|
|
||||||
(print) K
|
|
||||||
( ") p
|
|
||||||
(Expiring ...) str
|
|
||||||
(") p n
|
|
||||||
( currentTime = int\(time.time\(\)\)) N
|
|
||||||
( ) S
|
|
||||||
(for) K
|
|
||||||
( entry ) p
|
|
||||||
(in) K
|
|
||||||
( ENTRIES.values\(\):) p n
|
|
||||||
( ) S
|
|
||||||
(if) K
|
|
||||||
( entry.lastEventTime != 0 ) p
|
|
||||||
(and) K
|
|
||||||
( entry.lastEventTime + EVEN) p n
|
|
||||||
(T_LIFE_TIME < currentTime:) N
|
|
||||||
( ) S
|
|
||||||
(print) K
|
|
||||||
( ") p
|
|
||||||
(Entry %s expired) str
|
|
||||||
(" % entry.dynid) p n
|
|
||||||
( entry.lastEventTime = 0) N
|
|
||||||
( entry.address = NULL_ADDRESS) N
|
|
||||||
( ) S
|
|
||||||
(print) K
|
|
||||||
( ") p
|
|
||||||
(Set in DNS: %s -> %s) str
|
|
||||||
(" % \(entry.name, entry.address\)) p n
|
|
||||||
( time.sleep\(10\)) N
|
|
||||||
( ) N
|
|
||||||
() N
|
|
||||||
(ENTRIES = {) N
|
|
||||||
( ') S
|
|
||||||
(testhost) str
|
|
||||||
(': Entry\(') p
|
|
||||||
(testhost,) str
|
|
||||||
(', ') p
|
|
||||||
(test123) str
|
|
||||||
(', ') p
|
|
||||||
(test.test.de) str
|
|
||||||
('\),) p n
|
|
||||||
( }) N
|
|
||||||
(MSG_TIME_CORRIDOR = 5) N
|
|
||||||
(EVENT_LIFE_TIME = 10) N
|
|
||||||
(NULL_ADDRESS = ') S
|
|
||||||
(0.0.0.0) str
|
|
||||||
(') p n
|
|
||||||
() N
|
|
||||||
(q = Queue.Queue\(\)) N
|
|
||||||
() N
|
|
||||||
(handler = Handler\(q\)) N
|
|
||||||
(handler.start\(\)) N
|
|
||||||
() N
|
|
||||||
(expirer = Expirer\(\)) N
|
|
||||||
(expirer.start\(\)) N
|
|
||||||
() N
|
|
||||||
(s = socket.socket\(socket.AF_INET, socket.SOCK_DGRAM\)) N
|
|
||||||
(s.bind\(\("", 9090\)\)) N
|
|
||||||
() N
|
|
||||||
(while) K
|
|
||||||
( True:) p n
|
|
||||||
( data, address = s.recvfrom\(256\)) N
|
|
||||||
(yadyn) (Seite 2/3) (Nov 09, 07 13:31) title
|
|
||||||
border
|
|
||||||
grestore
|
|
||||||
(Gedruckt von Wolfgang Hottgenroth) rhead
|
|
||||||
(yadyn) (1/2) (Samstag November 10, 2007) footer
|
|
||||||
end % of iso1dict
|
|
||||||
pagesave restore
|
|
||||||
showpage
|
|
||||||
%%Page: (3) 2
|
|
||||||
%%BeginPageSetup
|
|
||||||
/pagesave save def
|
|
||||||
sh 0 translate 90 rotate
|
|
||||||
%%EndPageSetup
|
|
||||||
iso1dict begin
|
|
||||||
gsave
|
|
||||||
llx lly 12 add translate
|
|
||||||
/v 0 store
|
|
||||||
/x0 x v get 3.360000 add sx cw mul add store
|
|
||||||
/y0 y v get bfs th add sub store
|
|
||||||
x0 y0 moveto
|
|
||||||
( ) p
|
|
||||||
(try) K
|
|
||||||
(:) p n
|
|
||||||
( q.put_nowait\(Event\(address, data, int\(time.time\(\)\)\)\)) N
|
|
||||||
( ) S
|
|
||||||
(except) K
|
|
||||||
( Queue.Full:) p n
|
|
||||||
( ) S
|
|
||||||
(print) K
|
|
||||||
( ") p
|
|
||||||
(Event %s from %s dropped) str
|
|
||||||
(" % \(data, str\(address\)\)) p n
|
|
||||||
() N
|
|
||||||
(yadyn) (Seite 3/3) (Nov 09, 07 13:31) title
|
|
||||||
border
|
|
||||||
grestore
|
|
||||||
(Gedruckt von Wolfgang Hottgenroth) rhead
|
|
||||||
(yadyn) (2/2) (Samstag November 10, 2007) footer
|
|
||||||
end % of iso1dict
|
|
||||||
pagesave restore
|
|
||||||
showpage
|
|
||||||
|
|
||||||
%%Trailer
|
|
||||||
end
|
|
||||||
%%EOF
|
|
Reference in New Issue
Block a user