]> mj.ucw.cz Git - ga.git/commitdiff
Importing initial version.
authorMartin Mares <mj@ucw.cz>
Fri, 27 Oct 2006 09:54:35 +0000 (11:54 +0200)
committerMartin Mares <mj@ucw.cz>
Fri, 27 Oct 2006 09:54:35 +0000 (11:54 +0200)
59 files changed:
1-toky/1-toky.tex [new file with mode: 0644]
1-toky/Makefile [new file with mode: 0644]
1-toky/bip-graf.eps [new file with mode: 0644]
1-toky/bip-tok.eps [new file with mode: 0644]
1-toky/graf.eps [new file with mode: 0644]
1-toky/podrozdeleni.eps [new file with mode: 0644]
1-toky/vrchol.eps [new file with mode: 0644]
2-dinic/2-dinic.tex [new file with mode: 0644]
2-dinic/Makefile [new file with mode: 0644]
2-dinic/dinic-bipartitni.eps [new file with mode: 0644]
2-dinic/dinic-cestashranouzpet.eps [new file with mode: 0644]
2-dinic/dinic-cistasit.eps [new file with mode: 0644]
2-dinic/dinic-neprocistenasit.eps [new file with mode: 0644]
2-dinic/dinic-scaling-g.eps [new file with mode: 0644]
2-dinic/dinic-scaling-original.eps [new file with mode: 0644]
2-dinic/dinic-sort.eps [new file with mode: 0644]
2-dinic/dinic-vrcholrez.eps [new file with mode: 0644]
2-dinic/dinic-zpetnahrana.eps [new file with mode: 0644]
2-dinic/dinic.dia [new file with mode: 0644]
3-bipcon/3-bipcon.tex [new file with mode: 0644]
3-bipcon/Makefile [new file with mode: 0644]
4-ght/4-ght-g1g2.eps [new file with mode: 0644]
4-ght/4-ght-htl-a.eps [new file with mode: 0644]
4-ght/4-ght-htl-b.eps [new file with mode: 0644]
4-ght/4-ght-htl.eps [new file with mode: 0644]
4-ght/4-ght-rez.eps [new file with mode: 0644]
4-ght/4-ght-rezx.eps [new file with mode: 0644]
4-ght/4-ght.tex [new file with mode: 0644]
4-ght/Makefile [new file with mode: 0644]
5-mst/01.eps [new file with mode: 0644]
5-mst/02.eps [new file with mode: 0644]
5-mst/03.eps [new file with mode: 0644]
5-mst/04.eps [new file with mode: 0644]
5-mst/05.eps [new file with mode: 0644]
5-mst/5-mst.tex [new file with mode: 0644]
5-mst/Makefile [new file with mode: 0644]
6-borjar/6-borjar.tex [new file with mode: 0644]
6-borjar/Makefile [new file with mode: 0644]
7-ram/7-ram.tex [new file with mode: 0644]
7-ram/Makefile [new file with mode: 0644]
8-qheapuf/8-qheapuf.tex [new file with mode: 0644]
8-qheapuf/Makefile [new file with mode: 0644]
8-qheapuf/trie.eps [new file with mode: 0644]
8-qheapuf/trie.vrr [new file with mode: 0644]
9-suffix/9-suffix.tex [new file with mode: 0644]
9-suffix/CT-35120024224-FS.eps [new file with mode: 0644]
9-suffix/Makefile [new file with mode: 0644]
9-suffix/ST-BARBARA.eps [new file with mode: 0644]
9-suffix/ct-35120024224-fs.eps [new file with mode: 0644]
9-suffix/ct-35120024224.eps [new file with mode: 0644]
9-suffix/st-barbara.eps [new file with mode: 0644]
9-suffix/trie-c.eps [new file with mode: 0644]
9-suffix/trie-cd.eps [new file with mode: 0644]
9-suffix/trie.eps [new file with mode: 0644]
Makefile [new file with mode: 0644]
Makerules [new file with mode: 0644]
all/Makefile [new file with mode: 0644]
all/preprocess [new file with mode: 0755]
sgr.tex [new file with mode: 0644]

diff --git a/1-toky/1-toky.tex b/1-toky/1-toky.tex
new file mode 100644 (file)
index 0000000..334827c
--- /dev/null
@@ -0,0 +1,170 @@
+%%%%%%%%%%%%%%%%%%%%%%%\r
+% Zápisek prvého semináøe z grafových algoritmù - ze dne ? 7.6.2006 ?\r
+% Téma Toky v sítích a zejména Ford-Fulkersonùv algoritmus.\r
+% Zapsal Radovan ©esták - radovan.sestak@gmail.com\r
+%%%%%%%%%%%%%%%%%%%%%%\r
+\r
+\input ../sgr.tex\r
+\r
+\prednaska{1}{Toky v sítích a FF algoritmus}{zapsal Radovan ©esták}\r
+\r
+\h{Toky v sítích}\r
+\r
+V následujícím odstavci uká¾eme nìkolik tvrzení o sítích, které je\r
+mo¾né si pøedstavit jako sí» potrubí køí¾ící se v uzlech. Vrchol\r
+z kterého se kapalina ¹íøí nazveme zdroj a vrchol kde odtéká stok. Pro\r
+ostatní vrcholy platí, ¾e objem kapaliny pøitékající se rovná objemu\r
+kapaliny odtékající. Toto pravidlo, které pochází z teorie o elektrických obvodech,\r
+se zvykne nazývat Kirchhoffùv zákon. Hledání maximálního toku je duální úlohou k hledání \r
+minimálního øezu. Ford-Fulkersonùv(FF) algoritmus, který bude popsán ní¾e je základním \r
+algoritmem pro hledání tokù. Na úlohu hledání maximálního toku se dají pøevést mnohé\r
+grafové problémy a i proto existuje mnoho algoritmù a nìkteré z nich jsou pouze modifikace \r
+základního FF algoritmu. V dal¹í pøedná¹ce najdete Dinitzùv algoritmus pro tenhle problém.\r
+\r
+\r
+\s{Definice:}\r
+\r
+\itemize\ibull\r
+\:sí»: $N=(V,E,s,t,w)$ kde $V$ je mno¾ina vrcholù, $E\subseteq V\times V$,\r
+$s\in V$ je zdroj, $t\in V$ je stok, $w:\, E\rightarrow{R}^{+}$ jsou kapacity hran\r
+\:tok: $f:\, E\rightarrow{R}^{+}$kde $\forall e\in E\, f(e)\leq w(e)$ a\r
+$\forall v\in V,\, v\neq s,\, v\neq t\,\,\sum_{uv\in E}f(uv)=\sum_{vw\in E}f(vw)$\r
+\:velikost toku: $\|f\|=\sum_{sv\in E}f(sv)-\sum_{vs\in E}f(vs)$ kde $s$ je zdroj\r
+\:øez: $st$-øez je mno¾ina hran $C\subseteq E$ taková, ¾e v grafu $(V,\, E\setminus C)$ neexistuje\r
+cesta z s do t\r
+\:separátor: $st$-separátor je mno¾ina vrcholù $S\subseteq V$ taková, ¾e v grafu\r
+$(V\setminus S,\, E\cap(V\setminus S)\times(V\backslash S))$ neexistuje\r
+cesta z s do t\r
+\:velikost øezu: $\|c\|=\sum_{e\in c}w(e)$ je velikost øezu\r
+\endlist\r
+\r
+\figure{graf.eps}{Pøíklad orientovaného grafu ze zvoleným zdrojem a stokem.}{0.4\hsize}\r
+\r
+\s{Vìta(Ford-Fulkerson) o souvislosti tokù a øezù}\r
+Nech» $N=(V,E,s,t,w)$ je sí», $F$ je mno¾ina pøípustných tokù pro tuto sí» a $C$ je\r
+mno¾ina øezù oddìlující zdroj od stoku. Pak \r
+$$max_{f\in F}|f|=min_{c\in C}\|c\|$$. \r
+Vìta platí pro v¹echny výbìry zdrojù a stokù $\forall s,t\in V, s\neq t$ nech» $st-F$ je mno¾ina\r
+v¹ech tokù ze zdroje $s$ do stoku $t$ a $st-C$ je mno¾ina v¹ech øezù oddìlujících $s$ od $t$. Pak\r
+$$max_{f\in st-F}\|f\|=min_{c\in st-C}\|c\|$$\r
+pro graf $G=(V,E,w)$.\r
+\r
+\s{Dùkaz vìty:}\r
+\r
+\s{$max_{f}\|f\|\leq min_{c}\|c\|$:} Vìznìme libovolný øez oddìlující zdroj od stoku $c$ a uva¾me\r
+graf $G'=(V,E\setminus c)$, který vznikl odebráním hran nacházejících se v øezu. Buï $S$ mno¾ina \r
+vrcholù dosa¾itelných ze zdroje v $G'$.\r
+Pro libovolnej tok  $f$ platí: \r
+\r
+$$\|f\| =  \sum_{uv\in E, u\in S, v\notin S}f(uv) - \sum_{uv\in E, u\in S, v\notin S}f(vu)$$\r
+velikost toku je rovna rozdílu velikostí tokù pøes hrany opou¹tìjící $S$ a pøicházející do $S$.\r
+$$\|f\| = \sum_{u\in V}f(su) - \sum_{u\in V}f(us)$$\r
+proto¾e se tok zachovává ve v¹ech vrcholech partity $S$ kromì $s$ dostáváme\r
+$$= \sum_{v\in S}(\sum_{u\in V}f(uv)-\sum_{u\in V}f(vu))$$\r
+$f(uv)$ pro $u,v\in S$ jsme jednou pøièítali a jednou odèítali\r
+$$= \sum_{uv\in E, u\in S, v\notin S}f(uv) - \sum_{uv\in E, u\in S, v\notin S}f(vu)$$\r
+\r
+Teï si u¾ staèí jenom uvìdomit, ¾e \r
+$$\|f\| = \sum_{uv\in E, u\in S, v\notin S}f(uv)- \sum_{uv\in E, u\in S, v\notin S}f(vu) \leq \sum_{uv\in E, u\in S, v\notin S}f(uv)\r
+\leq \sum_{uv\in E, u\in S, v\notin S}w(uv) \leq \|c\|$$\r
+Poslední nerovnost je dùsledkem toho, ¾e øez obsahuje v¹echny hrany opou¹tìjící $S$.\r
+\r
+$max_{f}|f|\geq min_{c}|c|$: dùkaz plyne z korektnosti\r
+Ford-Fulkersonova algoritmu viz. algoritmus dále\r
+\r
+\s{Dùsledek:}Pro ka¾dou sí» s celoèíselnými kapacitami je její maximální tok celoèíselný.\r
+\r
+\h{Maximální párování v bipartitním grafu}\r
+Maximální párování v bipartitním grafu $(A\cup B,E)$ se dá najít\r
+pomocí maximálního toku v síti $(A\cup B\cup s\cup t,E',s,t,w)$ kde\r
+$w(e)=1$ a $E'=\{ uv\| u\in A, uv\in E\} \cup \{su\| u\in A\} \cup\{ut\| u\in B\}$ a\r
+obdobnì mù¾eme nalézt minimální vrcholové pokrytí.\r
+\r
+\figure{bip-graf.eps}{Bipartitní graf pro který hledáme maximální párování.}{0.2\hsize}\r
+\figure{bip-tok.eps}{Sí» v které najdeme maximální tok.}{0.3\hsize}\r
+\r
+\s{Definice}\r
+\itemize\ibull\r
+\:neorientovaný graf G je vrcholovì k-souvislý $\Leftrightarrow$ G má alespoò\r
+k+1 vrcholù a neexistuje separátor s ménì ne¾ k vrcholy\r
+\:neorientovaný graf G je hranovì k-souvislý $\Leftrightarrow$ G má alespoò k+1 vrcholù\r
+a neexistuje øez s ménì ne¾ k hranami\r
+\:orientovaný graf je silnì souvislý $\Leftrightarrow$ existuje orientovaná cesta mezi\r
+v¹emi vrcholy v obou smìrech\r
+\:cirkulace je nulový tok t.j.  $\forall v\in V, \sum f(uv)=\sum f(vu)$\r
+\endlist\r
+\r
+\s{Vìta:}(Menger) o souvislosti existencí disjunktních cest a souvislostí\r
+grafù\r
+\r
+buï $G$ neorientovaný graf, pak:\r
+\itemize\ibull\r
+\:$G$ je vrcholovì k-souvislý $\Leftrightarrow$$\forall v,w\in V\,\exists$\r
+k vrcholovì disjunktních cest z $v$ do $w$\r
+\:$G$ je hranovì k-souvislý $\Leftrightarrow$$\forall v,w\in V\,\exists$\r
+k hranovì disjunktních cest z $v$ do $w$\r
+\:kdy¾ $u$ a $v$ jsou nesousední vrcholy v $G$ pak maximální poèet vrcholovì disjunktních\r
+cest mezi $u$ a $v$ se rovná minimálnímu poètu vrcholù z $G-{u,v}$ kterých odebrání oddìlí\r
+$u$ od $v$ \r
+\:kdy¾ $u$ a $v$ jsou vrcholy v $G$ pak maximální poèet hranovì disjunktních\r
+cest mezi $u$ a $v$ se rovná minimálnímu poètu hran, kterých odebrání oddìlí $u$ od $v$\r
+\endlist\r
+buï $G$ orientovaný graf, pak:\r
+\itemize\ibull\r
+\:kdy¾ $u$ a $v$ jsou vrcholy $G$, $uv\notin E(G)$ pak maximální poèet vrcholovì disjunktních\r
+cest z $u$ do $v$ je rovný minimálnímu poètu vrcholù z $G-{u,v}$ kterých odebrání oddìlí $u$ od $v$\r
+\:kdy¾ $u$ a $v$ jsou vrcholy $G$ pak maximální poèet hranovì disjunktních cest z $u$ do $v$ je\r
+rovný minimálnímu poètu hran, kterých odebrání oddìlí $u$ od $v$\r
+\endlist\r
+\r
+Vrcholová i hranová souvislost grafu se dá zjistit pomocí maximálního\r
+toku. Pro hranovou souvislost pøímo zjistíme maximální tok pro ka¾dou\r
+dvojici vrcholù (volba zdroje a stoku). V pøípadì neorientovaného grafu vyrobíme orientovaný graf tak, ¾e ka¾dou\r
+neorientovanou hranu nahradíme orientovanými v obou smìrech. Pro vrcholovou souvislost\r
+navíc musíme ka¾dý vrchol nahradit dvìma novými a spojit je hranou\r
+v obou smìrech (pod-rozdìlení vrcholu). Kapacity hran volíme 1.\r
+Pro nalezení tìchto cest staèí v¾dy v síti odebírat postupnì cestu\r
+z $s$ do $t$. Odebrání jedné cesty sní¾í tok o jedna a tedy cest\r
+musíme nalézt $k$.\r
+\figure{vrchol.eps}{Vrchol který chceme pod-rozdìlit.}{0.1\hsize}\r
+\figure{podrozdeleni.eps}{Výsledek pod-rozdìlení vrcholu.}{0.15\hsize}\r
+\r
+\r
+\s{Ford-Fulkersonùv algoritmus}\r
+Algoritmus nepracuje pøímo s kapacitami a s toky pøes hrany, ale s rezervami\r
+tìchto hran. Funkce rezerv definujeme jako $r(uv)\equiv w(uv)-f(uv)+f(vu)$.\r
+Jestli $uv\notin E(G)$ pak $w(uv)=0$.\r
+Kdy¾ zmen¹ujeme rezervu hrany tak o stejnou hodnotu zvý¹íme hodnotu\r
+rezervy opaèné hrany. Dále pak FF cesta, je cesta pro kterou má ka¾dá hrana kladnou rezervu.\r
+\r
+\algo\r
+\:nastav rezervy pro nulový tok na v¹ech hranách (rezervy se rovnají kapacitám)\r
+\:while $\exists$FF cesta z $s$ do $t$\r
+\::buï $p$ FF cesta z $s$ do $t$\r
+\::zvìt¹i tok zmen¹ením rezerv, o $m=min_{uv\in p}r(uv)$ \r
+\:end while\r
+\:spoèti tok z rezerv\r
+\endalgo\r
+\r
+Pro dùkaz korektnosti algoritmu uva¾ mno¾inu $X=\{ v,\,\exists$FF\r
+cesta z $s$ do $v\}$ po dobìhnutí algoritmu. Proto¾e neexistuje FF cesta z $s$ do $t$, $t\notin X$.\r
+Pak mno¾iny $X$ a $V\setminus X$ urèují øez tvoøený hranami spojujícími\r
+vrcholy z rùzných mno¾in $c=\{uv: uv\in E, u\in X, v\in V\setminus X\}$. V¹echny hrany $uv\in c$\r
+mají nulovou rezervu, nebo» jinak by se dala prodlou¾it FF cesta do vrcholu z $V\setminus X$. Tak¾e velikost\r
+toku se rovná souètu kapacit hran z $X$ do $V\setminus X$ (tohle tvrzení jsme dokázali pøi dùkazu opaèné implikace\r
+FF vìty). Souèasnì tyhle hrany tvoøí $st$-øez, kterého kapacita je rovna velikosti toku. Na¹li jsme tedy øez, \r
+kterého velikost se rovná velikosti pøípustného toku a tím je dùkaz FF vìty ukonèen. \r
+\r
+Kdy¾ máme celoèíselné kapacity hran tak v ka¾dém kroku se tok zvìt¹í\r
+alespoò o jedna a maximální tok je z hora omezen, napøíklad souètem\r
+v¹ech kapacit hran. Pro racionální kapacity staèí vynásobit kapacity\r
+a dostaneme celoèíselné.  Z toho plyne koneènost FF algoritmu pro hrany s racionálními kapacitami.\r
+Táto varianta FF algoritmu není obecnì koneèná pøi reálných kapacitách. Volíme-li ov¹em zlep¹ující cestu, která\r
+má maximální minimum pøes rezervy tak je FF algoritmus koneèný i pro reálné kapacity hran.\r
+\r
+Pro FF algoritmus s jednotkovými kapacitami a vyu¾itím BFS (procházení\r
+do ¹íøky) na hledání FF cest je èasová slo¾itost algoritmu $O(n.m)$.\r
+Edmunds s Karpem dokázali, ¾e pøi volbì nejkrat¹í cesty je èasová\r
+slo¾itost v obecném pøípadì $O(n.m^{2})$.\r
+\r
+\bye\r
diff --git a/1-toky/Makefile b/1-toky/Makefile
new file mode 100644 (file)
index 0000000..e82416b
--- /dev/null
@@ -0,0 +1,3 @@
+P=1-toky
+
+include ../Makerules
diff --git a/1-toky/bip-graf.eps b/1-toky/bip-graf.eps
new file mode 100644 (file)
index 0000000..98da488
--- /dev/null
@@ -0,0 +1,221 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: /mnt/data/toky/toky.dia
+%%Creator: Dia v0.95
+%%CreationDate: Tue Jun 13 12:12:35 2006
+%%For: radofan
+%%Orientation: Portrait
+%%Magnification: 1.0000
+%%BoundingBox: 0 0 197 171
+%%BeginSetup
+%%EndSetup
+%%EndComments
+%%BeginProlog
+[ /.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 /hyphen /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 /periodcentered /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] /isolatin1encoding exch def
+/cp {closepath} bind def
+/c {curveto} bind def
+/f {fill} bind def
+/a {arc} bind def
+/ef {eofill} bind def
+/ex {exch} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/sa {save} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/rm {rmoveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/sh {show} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/rot {rotate} bind def
+/sc {scale} bind def
+/sd {setdash} bind def
+/ff {findfont} bind def
+/sf {setfont} bind def
+/scf {scalefont} bind def
+/sw {stringwidth pop} bind def
+/tr {translate} bind def
+
+/ellipsedict 8 dict def
+ellipsedict /mtrx matrix put
+/ellipse
+{ ellipsedict begin
+   /endangle exch def
+   /startangle exch def
+   /yrad exch def
+   /xrad exch def
+   /y exch def
+   /x exch def   /savematrix mtrx currentmatrix def
+   x y tr xrad yrad sc
+   0 0 1 startangle endangle arc
+   savematrix setmatrix
+   end
+} def
+
+/mergeprocs {
+dup length
+3 -1 roll
+dup
+length
+dup
+5 1 roll
+3 -1 roll
+add
+array cvx
+dup
+3 -1 roll
+0 exch
+putinterval
+dup
+4 2 roll
+putinterval
+} bind def
+/dpi_x 300 def
+/dpi_y 300 def
+/conicto {
+    /to_y exch def
+    /to_x exch def
+    /conic_cntrl_y exch def
+    /conic_cntrl_x exch def
+    currentpoint
+    /p0_y exch def
+    /p0_x exch def
+    /p1_x p0_x conic_cntrl_x p0_x sub 2 3 div mul add def
+    /p1_y p0_y conic_cntrl_y p0_y sub 2 3 div mul add def
+    /p2_x p1_x to_x p0_x sub 1 3 div mul add def
+    /p2_y p1_y to_y p0_y sub 1 3 div mul add def
+    p1_x p1_y p2_x p2_y to_x to_y curveto
+} bind def
+/start_ol { gsave 1.1 dpi_x div dup scale} bind def
+/end_ol { closepath fill grestore } bind def
+28.346000 -28.346000 scale
+-8.605723 4.387504 translate
+%%EndProlog
+
+
+1.000000 1.000000 1.000000 srgb
+n 13.857500 -7.427508 0.826777 2.937496 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 13.857500 -7.427508 0.826777 2.937496 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 10.200000 -7.375000 0.826777 2.937496 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 10.200000 -7.375000 0.826777 2.937496 0 360 ellipse cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 10.000000 -10.000000 m 14.000000 -8.000000 l s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 10.000000 -8.000000 m 14.000000 -6.000000 l s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 10.000000 -5.000000 m 14.000000 -5.000000 l s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 14.000000 -8.000000 m 10.000000 -6.000000 l s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 14.000000 -10.000000 m 10.000000 -7.000000 l s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 10.000000 -9.000000 m 14.000000 -10.000000 l s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 10.000000 -7.000000 m 14.000000 -8.000000 l s
+gsave 8.623223 -7.187504 translate 0.035278 -0.035278 scale
+start_ol
+1600 2882 moveto
+985 1216 lineto
+2218 1216 lineto
+1600 2882 lineto
+1344 3328 moveto
+1858 3328 lineto
+3136 0 lineto
+2665 0 lineto
+2360 832 lineto
+847 832 lineto
+542 0 lineto
+64 0 lineto
+1344 3328 lineto
+end_ol grestore 
+gsave 15.148223 -7.312504 translate 0.035278 -0.035278 scale
+start_ol
+896 1600 moveto
+896 384 lineto
+1632 384 lineto
+2007 384 2187 534 conicto
+2368 684 2368 993 conicto
+2368 1304 2187 1452 conicto
+2007 1600 1632 1600 conicto
+896 1600 lineto
+896 2944 moveto
+896 1984 lineto
+1575 1984 lineto
+1911 1984 2075 2102 conicto
+2240 2221 2240 2464 conicto
+2240 2705 2075 2824 conicto
+1911 2944 1575 2944 conicto
+896 2944 lineto
+448 3328 moveto
+1608 3328 lineto
+2127 3328 2407 3117 conicto
+2688 2906 2688 2517 conicto
+2688 2216 2546 2037 conicto
+2404 1859 2129 1815 conicto
+2455 1743 2635 1514 conicto
+2816 1286 2816 943 conicto
+2816 492 2514 246 conicto
+2212 0 1654 0 conicto
+448 0 lineto
+448 3328 lineto
+end_ol grestore 
+showpage
diff --git a/1-toky/bip-tok.eps b/1-toky/bip-tok.eps
new file mode 100644 (file)
index 0000000..355a493
--- /dev/null
@@ -0,0 +1,434 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: toky.dia
+%%Creator: Dia v0.94
+%%CreationDate: Tue Jun 13 20:07:01 2006
+%%For: sestr2am
+%%Orientation: Portrait
+%%Magnification: 1.0000
+%%BoundingBox: 0 0 343 189
+%%BeginSetup
+%%EndSetup
+%%EndComments
+%%BeginProlog
+[ /.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 /hyphen /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 /periodcentered /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] /isolatin1encoding exch def
+/cp {closepath} bind def
+/c {curveto} bind def
+/f {fill} bind def
+/a {arc} bind def
+/ef {eofill} bind def
+/ex {exch} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/sa {save} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/rm {rmoveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/sh {show} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/rot {rotate} bind def
+/sc {scale} bind def
+/sd {setdash} bind def
+/ff {findfont} bind def
+/sf {setfont} bind def
+/scf {scalefont} bind def
+/sw {stringwidth pop} bind def
+/tr {translate} bind def
+
+/ellipsedict 8 dict def
+ellipsedict /mtrx matrix put
+/ellipse
+{ ellipsedict begin
+   /endangle exch def
+   /startangle exch def
+   /yrad exch def
+   /xrad exch def
+   /y exch def
+   /x exch def   /savematrix mtrx currentmatrix def
+   x y tr xrad yrad sc
+   0 0 1 startangle endangle arc
+   savematrix setmatrix
+   end
+} def
+
+/mergeprocs {
+dup length
+3 -1 roll
+dup
+length
+dup
+5 1 roll
+3 -1 roll
+add
+array cvx
+dup
+3 -1 roll
+0 exch
+putinterval
+dup
+4 2 roll
+putinterval
+} bind def
+/dpi_x 300 def
+/dpi_y 300 def
+/conicto {
+    /to_y exch def
+    /to_x exch def
+    /conic_cntrl_y exch def
+    /conic_cntrl_x exch def
+    currentpoint
+    /p0_y exch def
+    /p0_x exch def
+    /p1_x p0_x conic_cntrl_x p0_x sub 2 3 div mul add def
+    /p1_y p0_y conic_cntrl_y p0_y sub 2 3 div mul add def
+    /p2_x p1_x to_x p0_x sub 1 3 div mul add def
+    /p2_y p1_y to_y p0_y sub 1 3 div mul add def
+    p1_x p1_y p2_x p2_y to_x to_y curveto
+} bind def
+/start_ol { gsave 1.1 dpi_x div dup scale} bind def
+/end_ol { closepath fill grestore } bind def
+28.346000 -28.346000 scale
+-6.498220 -2.584992 translate
+%%EndProlog
+
+
+1.000000 1.000000 1.000000 srgb
+n 9.907497 -0.502504 0.826777 2.937496 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 9.907497 -0.502504 0.826777 2.937496 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 13.882477 -0.402504 0.826777 2.937496 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 13.882477 -0.402504 0.826777 2.937496 0 360 ellipse cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 10.000000 -3.000000 m 13.564590 -1.217705 l s
+[] 0 sd
+0 slj
+0 slc
+n 13.900000 -1.050000 m 13.340983 -1.050000 l 13.564590 -1.217705 l 13.564590 -1.497214 l ef
+n 13.900000 -1.050000 m 13.340983 -1.050000 l 13.564590 -1.217705 l 13.564590 -1.497214 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 10.000000 -1.000000 m 13.564590 0.782295 l s
+[] 0 sd
+0 slj
+0 slc
+n 13.900000 0.950000 m 13.340983 0.950000 l 13.564590 0.782295 l 13.564590 0.502786 l ef
+n 13.900000 0.950000 m 13.340983 0.950000 l 13.564590 0.782295 l 13.564590 0.502786 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 10.000000 2.000000 m 13.513197 2.000000 l s
+[] 0 sd
+0 slj
+0 slc
+n 13.888197 2.000000 m 13.388197 2.250000 l 13.513197 2.000000 l 13.388197 1.750000 l ef
+n 13.888197 2.000000 m 13.388197 2.250000 l 13.513197 2.000000 l 13.388197 1.750000 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 13.564590 -0.782295 m 10.000000 1.000000 l s
+[] 0 sd
+0 slj
+0 slc
+n 13.900000 -0.950000 m 13.564590 -0.502786 l 13.564590 -0.782295 l 13.340983 -0.950000 l ef
+n 13.900000 -0.950000 m 13.564590 -0.502786 l 13.564590 -0.782295 l 13.340983 -0.950000 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 10.000000 0.000000 m 13.610557 -2.707918 l s
+[] 0 sd
+0 slj
+0 slc
+n 13.910557 -2.932918 m 13.660557 -2.432918 l 13.610557 -2.707918 l 13.360557 -2.832918 l ef
+n 13.910557 -2.932918 m 13.660557 -2.432918 l 13.610557 -2.707918 l 13.360557 -2.832918 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 10.000000 -2.000000 m 13.527731 -2.881933 l s
+[] 0 sd
+0 slj
+0 slc
+n 13.891535 -2.972884 m 13.467097 -2.609080 l 13.527731 -2.881933 l 13.345830 -3.094152 l ef
+n 13.891535 -2.972884 m 13.467097 -2.609080 l 13.527731 -2.881933 l 13.345830 -3.094152 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 10.000000 0.000000 m 13.527731 -0.881933 l s
+[] 0 sd
+0 slj
+0 slc
+n 13.891535 -0.972884 m 13.467097 -0.609080 l 13.527731 -0.881933 l 13.345830 -1.094152 l ef
+n 13.891535 -0.972884 m 13.467097 -0.609080 l 13.527731 -0.881933 l 13.345830 -1.094152 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 7.000000 -1.000000 m 9.594955 -2.729970 l s
+[] 0 sd
+0 slj
+0 slc
+n 9.906974 -2.937983 m 9.629624 -2.452620 l 9.594955 -2.729970 l 9.352274 -2.868645 l ef
+n 9.906974 -2.937983 m 9.629624 -2.452620 l 9.594955 -2.729970 l 9.352274 -2.868645 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 7.000000 -1.000000 m 9.538178 -1.846059 l s
+[] 0 sd
+0 slj
+0 slc
+n 9.893934 -1.964645 m 9.498649 -1.569360 l 9.538178 -1.846059 l 9.340535 -2.043702 l ef
+n 9.893934 -1.964645 m 9.498649 -1.569360 l 9.538178 -1.846059 l 9.340535 -2.043702 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 7.000000 -1.000000 m 9.513197 -1.000000 l s
+[] 0 sd
+0 slj
+0 slc
+n 9.888197 -1.000000 m 9.388197 -0.750000 l 9.513197 -1.000000 l 9.388197 -1.250000 l ef
+n 9.888197 -1.000000 m 9.388197 -0.750000 l 9.513197 -1.000000 l 9.388197 -1.250000 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 7.000000 -1.000000 m 9.538178 -0.153941 l s
+[] 0 sd
+0 slj
+0 slc
+n 9.893934 -0.035355 m 9.340535 0.043702 l 9.538178 -0.153941 l 9.498649 -0.430640 l ef
+n 9.893934 -0.035355 m 9.340535 0.043702 l 9.538178 -0.153941 l 9.498649 -0.430640 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 7.000000 -1.000000 m 9.594955 0.729970 l s
+[] 0 sd
+0 slj
+0 slc
+n 9.906974 0.937983 m 9.352274 0.868645 l 9.594955 0.729970 l 9.629624 0.452620 l ef
+n 9.906974 0.937983 m 9.352274 0.868645 l 9.594955 0.729970 l 9.629624 0.452620 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 7.000000 -1.000000 m 9.655778 1.655778 l s
+[] 0 sd
+0 slj
+0 slc
+n 9.920943 1.920943 m 9.390613 1.744166 l 9.655778 1.655778 l 9.744166 1.390613 l ef
+n 9.920943 1.920943 m 9.390613 1.744166 l 9.655778 1.655778 l 9.744166 1.390613 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 14.000000 -3.000000 m 17.564590 -1.217705 l s
+[] 0 sd
+0 slj
+0 slc
+n 17.900000 -1.050000 m 17.340983 -1.050000 l 17.564590 -1.217705 l 17.564590 -1.497214 l ef
+n 17.900000 -1.050000 m 17.340983 -1.050000 l 17.564590 -1.217705 l 17.564590 -1.497214 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 14.000000 -1.000000 m 17.513197 -1.000000 l s
+[] 0 sd
+0 slj
+0 slc
+n 17.888197 -1.000000 m 17.388197 -0.750000 l 17.513197 -1.000000 l 17.388197 -1.250000 l ef
+n 17.888197 -1.000000 m 17.388197 -0.750000 l 17.513197 -1.000000 l 17.388197 -1.250000 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 14.000000 1.000000 m 17.564590 -0.782295 l s
+[] 0 sd
+0 slj
+0 slc
+n 17.900000 -0.950000 m 17.564590 -0.502786 l 17.564590 -0.782295 l 17.340983 -0.950000 l ef
+n 17.900000 -0.950000 m 17.564590 -0.502786 l 17.564590 -0.782295 l 17.340983 -0.950000 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 14.000000 2.000000 m 17.610557 -0.707918 l s
+[] 0 sd
+0 slj
+0 slc
+n 17.910557 -0.932918 m 17.660557 -0.432918 l 17.610557 -0.707918 l 17.360557 -0.832918 l ef
+n 17.910557 -0.932918 m 17.660557 -0.432918 l 17.610557 -0.707918 l 17.360557 -0.832918 l cp s
+gsave 8.898220 -3.337500 translate 0.035278 -0.035278 scale
+start_ol
+3072 0 moveto
+2596 0 lineto
+2281 896 lineto
+855 896 lineto
+541 0 lineto
+64 0 lineto
+1273 3328 lineto
+1862 3328 lineto
+3072 0 lineto
+2143 1280 moveto
+1569 2895 lineto
+990 1280 lineto
+2143 1280 lineto
+end_ol grestore 
+gsave 14.473200 -3.462500 translate 0.035278 -0.035278 scale
+start_ol
+2944 1020 moveto
+2944 772 2850 583 conicto
+2757 394 2599 272 conicto
+2413 125 2189 62 conicto
+1966 0 1621 0 conicto
+448 0 lineto
+448 3328 lineto
+1440 3328 lineto
+1806 3328 1988 3301 conicto
+2171 3274 2337 3189 conicto
+2522 3093 2605 2941 conicto
+2688 2789 2688 2579 conicto
+2688 2340 2567 2173 conicto
+2446 2006 2244 1903 conicto
+2244 1885 lineto
+2569 1816 2756 1590 conicto
+2944 1364 2944 1020 conicto
+2240 2517 moveto
+2240 2638 2199 2720 conicto
+2158 2803 2067 2855 conicto
+1961 2915 1808 2929 conicto
+1656 2944 1432 2944 conicto
+896 2944 lineto
+896 1984 lineto
+1477 1984 lineto
+1688 1984 1812 2005 conicto
+1937 2026 2044 2093 conicto
+2151 2160 2195 2266 conicto
+2240 2372 2240 2517 conicto
+2496 1001 moveto
+2496 1198 2436 1314 conicto
+2376 1431 2218 1512 conicto
+2111 1567 1958 1583 conicto
+1806 1600 1588 1600 conicto
+896 1600 lineto
+896 384 lineto
+1479 384 lineto
+1769 384 1953 413 conicto
+2138 443 2256 522 conicto
+2380 608 2438 718 conicto
+2496 828 2496 1001 conicto
+end_ol grestore 
+gsave 6.498220 -0.912504 translate 0.035278 -0.035278 scale
+start_ol
+2240 719 moveto
+2240 375 1952 155 conicto
+1665 -64 1167 -64 conicto
+885 -64 650 4 conicto
+415 72 256 153 conicto
+256 640 lineto
+278 640 lineto
+479 493 725 406 conicto
+971 320 1196 320 conicto
+1476 320 1634 403 conicto
+1792 486 1792 665 conicto
+1792 812 1705 889 conicto
+1619 965 1374 1018 conicto
+1283 1038 1136 1065 conicto
+990 1092 869 1124 conicto
+536 1212 396 1380 conicto
+256 1549 256 1796 conicto
+256 1950 320 2087 conicto
+384 2224 515 2332 conicto
+641 2436 836 2498 conicto
+1031 2560 1272 2560 conicto
+1497 2560 1728 2505 conicto
+1959 2450 2112 2371 conicto
+2112 1920 lineto
+2089 1920 lineto
+1929 2028 1699 2102 conicto
+1470 2176 1250 2176 conicto
+1020 2176 862 2095 conicto
+704 2014 704 1852 conicto
+704 1698 802 1619 conicto
+897 1540 1111 1492 conicto
+1229 1465 1375 1438 conicto
+1522 1411 1620 1388 conicto
+1917 1321 2078 1158 conicto
+2240 992 2240 719 conicto
+end_ol grestore 
+gsave 18.348200 -0.812504 translate 0.035278 -0.035278 scale
+start_ol
+1728 8 moveto
+1610 -23 1471 -43 conicto
+1333 -64 1224 -64 conicto
+844 -64 646 140 conicto
+448 345 448 794 conicto
+448 2112 lineto
+192 2112 lineto
+192 2496 lineto
+448 2496 lineto
+448 3200 lineto
+896 3200 lineto
+896 2496 lineto
+1728 2496 lineto
+1728 2112 lineto
+896 2112 lineto
+896 994 lineto
+896 801 904 692 conicto
+913 584 965 489 conicto
+1012 401 1094 360 conicto
+1177 320 1347 320 conicto
+1445 320 1552 344 conicto
+1659 368 1707 384 conicto
+1728 384 lineto
+1728 8 lineto
+end_ol grestore 
+showpage
diff --git a/1-toky/graf.eps b/1-toky/graf.eps
new file mode 100644 (file)
index 0000000..e9edee3
--- /dev/null
@@ -0,0 +1,310 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: /mnt/data/toky/toky.dia
+%%Creator: Dia v0.95
+%%CreationDate: Tue Jun 13 12:12:08 2006
+%%For: radofan
+%%Orientation: Portrait
+%%Magnification: 1.0000
+%%BoundingBox: 0 0 397 169
+%%BeginSetup
+%%EndSetup
+%%EndComments
+%%BeginProlog
+[ /.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 /hyphen /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 /periodcentered /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] /isolatin1encoding exch def
+/cp {closepath} bind def
+/c {curveto} bind def
+/f {fill} bind def
+/a {arc} bind def
+/ef {eofill} bind def
+/ex {exch} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/sa {save} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/rm {rmoveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/sh {show} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/rot {rotate} bind def
+/sc {scale} bind def
+/sd {setdash} bind def
+/ff {findfont} bind def
+/sf {setfont} bind def
+/scf {scalefont} bind def
+/sw {stringwidth pop} bind def
+/tr {translate} bind def
+
+/ellipsedict 8 dict def
+ellipsedict /mtrx matrix put
+/ellipse
+{ ellipsedict begin
+   /endangle exch def
+   /startangle exch def
+   /yrad exch def
+   /xrad exch def
+   /y exch def
+   /x exch def   /savematrix mtrx currentmatrix def
+   x y tr xrad yrad sc
+   0 0 1 startangle endangle arc
+   savematrix setmatrix
+   end
+} def
+
+/mergeprocs {
+dup length
+3 -1 roll
+dup
+length
+dup
+5 1 roll
+3 -1 roll
+add
+array cvx
+dup
+3 -1 roll
+0 exch
+putinterval
+dup
+4 2 roll
+putinterval
+} bind def
+/dpi_x 300 def
+/dpi_y 300 def
+/conicto {
+    /to_y exch def
+    /to_x exch def
+    /conic_cntrl_y exch def
+    /conic_cntrl_x exch def
+    currentpoint
+    /p0_y exch def
+    /p0_x exch def
+    /p1_x p0_x conic_cntrl_x p0_x sub 2 3 div mul add def
+    /p1_y p0_y conic_cntrl_y p0_y sub 2 3 div mul add def
+    /p2_x p1_x to_x p0_x sub 1 3 div mul add def
+    /p2_y p1_y to_y p0_y sub 1 3 div mul add def
+    p1_x p1_y p2_x p2_y to_x to_y curveto
+} bind def
+/start_ol { gsave 1.1 dpi_x div dup scale} bind def
+/end_ol { closepath fill grestore } bind def
+28.346000 -28.346000 scale
+-5.545100 12.570000 translate
+%%EndProlog
+
+
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+0.000000 0.000000 0.000000 srgb
+n 6.000000 -16.000000 m 9.564590 -17.782295 l s
+[] 0 sd
+0 slj
+0 slc
+n 9.900000 -17.950000 m 9.564590 -17.502786 l 9.564590 -17.782295 l 9.340983 -17.950000 l ef
+n 9.900000 -17.950000 m 9.564590 -17.502786 l 9.564590 -17.782295 l 9.340983 -17.950000 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 6.000000 -16.000000 m 9.527731 -16.881933 l s
+[] 0 sd
+0 slj
+0 slc
+n 9.891535 -16.972884 m 9.467097 -16.609080 l 9.527731 -16.881933 l 9.345830 -17.094152 l ef
+n 9.891535 -16.972884 m 9.467097 -16.609080 l 9.527731 -16.881933 l 9.345830 -17.094152 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 6.000000 -16.000000 m 9.527731 -15.118067 l s
+[] 0 sd
+0 slj
+0 slc
+n 9.891535 -15.027116 m 9.345830 -14.905848 l 9.527731 -15.118067 l 9.467097 -15.390920 l ef
+n 9.891535 -15.027116 m 9.345830 -14.905848 l 9.527731 -15.118067 l 9.467097 -15.390920 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 10.000000 -13.000000 m 6.389443 -15.707918 l s
+[] 0 sd
+0 slj
+0 slc
+n 6.089443 -15.932918 m 6.639443 -15.832918 l 6.389443 -15.707918 l 6.339443 -15.432918 l ef
+n 6.089443 -15.932918 m 6.639443 -15.832918 l 6.389443 -15.707918 l 6.339443 -15.432918 l cp s
+gsave 5.562600 -15.887500 translate 0.035278 -0.035278 scale
+start_ol
+2048 2432 moveto
+2048 2048 lineto
+1868 2144 1674 2192 conicto
+1480 2240 1273 2240 conicto
+957 2240 798 2144 conicto
+640 2048 640 1856 conicto
+640 1709 757 1625 conicto
+875 1542 1229 1467 conicto
+1380 1435 lineto
+1812 1341 1994 1170 conicto
+2176 999 2176 692 conicto
+2176 343 1899 139 conicto
+1622 -64 1137 -64 conicto
+936 -64 717 -32 conicto
+498 0 256 64 conicto
+256 512 lineto
+490 385 718 320 conicto
+947 256 1170 256 conicto
+1470 256 1631 358 conicto
+1792 461 1792 647 conicto
+1792 820 1670 912 conicto
+1549 1004 1141 1089 conicto
+988 1123 lineto
+600 1203 428 1369 conicto
+256 1535 256 1824 conicto
+256 2177 510 2368 conicto
+765 2560 1233 2560 conicto
+1466 2560 1670 2528 conicto
+1875 2496 2048 2432 conicto
+end_ol grestore 
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 10.000000 -18.000000 m 13.564590 -16.217705 l s
+[] 0 sd
+0 slj
+0 slc
+n 13.900000 -16.050000 m 13.340983 -16.050000 l 13.564590 -16.217705 l 13.564590 -16.497214 l ef
+n 13.900000 -16.050000 m 13.340983 -16.050000 l 13.564590 -16.217705 l 13.564590 -16.497214 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 14.000000 -16.000000 m 10.389443 -13.292082 l s
+[] 0 sd
+0 slj
+0 slc
+n 10.089443 -13.067082 m 10.339443 -13.567082 l 10.389443 -13.292082 l 10.639443 -13.167082 l ef
+n 10.089443 -13.067082 m 10.339443 -13.567082 l 10.389443 -13.292082 l 10.639443 -13.167082 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 14.000000 -18.000000 m 10.389443 -15.292082 l s
+[] 0 sd
+0 slj
+0 slc
+n 10.089443 -15.067082 m 10.339443 -15.567082 l 10.389443 -15.292082 l 10.639443 -15.167082 l ef
+n 10.089443 -15.067082 m 10.339443 -15.567082 l 10.389443 -15.292082 l 10.639443 -15.167082 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 14.000000 -18.000000 m 18.548014 -16.180794 l s
+[] 0 sd
+0 slj
+0 slc
+n 18.896193 -16.041523 m 18.339107 -15.995099 l 18.548014 -16.180794 l 18.524802 -16.459337 l ef
+n 18.896193 -16.041523 m 18.339107 -15.995099 l 18.548014 -16.180794 l 18.524802 -16.459337 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 19.000000 -16.000000 m 14.486803 -16.000000 l s
+[] 0 sd
+0 slj
+0 slc
+n 14.111803 -16.000000 m 14.611803 -16.250000 l 14.486803 -16.000000 l 14.611803 -15.750000 l ef
+n 14.111803 -16.000000 m 14.611803 -16.250000 l 14.486803 -16.000000 l 14.611803 -15.750000 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 10.000000 -13.000000 m 18.538178 -15.846059 l s
+[] 0 sd
+0 slj
+0 slc
+n 18.893934 -15.964645 m 18.498649 -15.569360 l 18.538178 -15.846059 l 18.340535 -16.043702 l ef
+n 18.893934 -15.964645 m 18.498649 -15.569360 l 18.538178 -15.846059 l 18.340535 -16.043702 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 10.000000 -18.000000 m 18.524789 -16.105602 l s
+[] 0 sd
+0 slj
+0 slc
+n 18.890859 -16.024254 m 18.348533 -15.888672 l 18.524789 -16.105602 l 18.456998 -16.376766 l ef
+n 18.890859 -16.024254 m 18.348533 -15.888672 l 18.524789 -16.105602 l 18.456998 -16.376766 l cp s
+gsave 19.275000 -15.725000 translate 0.035278 -0.035278 scale
+start_ol
+832 3200 moveto
+832 2496 lineto
+1664 2496 lineto
+1664 2176 lineto
+832 2176 lineto
+832 804 lineto
+832 495 914 407 conicto
+997 320 1248 320 conicto
+1664 320 lineto
+1664 0 lineto
+1248 0 lineto
+793 0 620 173 conicto
+448 347 448 804 conicto
+448 2176 lineto
+128 2176 lineto
+128 2496 lineto
+448 2496 lineto
+448 3200 lineto
+832 3200 lineto
+end_ol grestore 
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 9.987600 -16.987500 m 18.253945 -16.042775 l s
+[] 0 sd
+0 slj
+0 slc
+n 18.626520 -16.000195 m 18.101367 -15.808585 l 18.253945 -16.042775 l 18.158140 -16.305351 l ef
+n 18.626520 -16.000195 m 18.101367 -15.808585 l 18.253945 -16.042775 l 18.158140 -16.305351 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 10.000000 -18.000000 m 13.513197 -18.000000 l s
+[] 0 sd
+0 slj
+0 slc
+n 13.888197 -18.000000 m 13.388197 -17.750000 l 13.513197 -18.000000 l 13.388197 -18.250000 l ef
+n 13.888197 -18.000000 m 13.388197 -17.750000 l 13.513197 -18.000000 l 13.388197 -18.250000 l cp s
+showpage
diff --git a/1-toky/podrozdeleni.eps b/1-toky/podrozdeleni.eps
new file mode 100644 (file)
index 0000000..ee2fd3f
--- /dev/null
@@ -0,0 +1,262 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: /mnt/data/toky/toky.dia
+%%Creator: Dia v0.95
+%%CreationDate: Tue Jun 13 12:14:41 2006
+%%For: radofan
+%%Orientation: Portrait
+%%Magnification: 1.0000
+%%BoundingBox: 0 0 180 84
+%%BeginSetup
+%%EndSetup
+%%EndComments
+%%BeginProlog
+[ /.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 /hyphen /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 /periodcentered /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] /isolatin1encoding exch def
+/cp {closepath} bind def
+/c {curveto} bind def
+/f {fill} bind def
+/a {arc} bind def
+/ef {eofill} bind def
+/ex {exch} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/sa {save} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/rm {rmoveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/sh {show} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/rot {rotate} bind def
+/sc {scale} bind def
+/sd {setdash} bind def
+/ff {findfont} bind def
+/sf {setfont} bind def
+/scf {scalefont} bind def
+/sw {stringwidth pop} bind def
+/tr {translate} bind def
+
+/ellipsedict 8 dict def
+ellipsedict /mtrx matrix put
+/ellipse
+{ ellipsedict begin
+   /endangle exch def
+   /startangle exch def
+   /yrad exch def
+   /xrad exch def
+   /y exch def
+   /x exch def   /savematrix mtrx currentmatrix def
+   x y tr xrad yrad sc
+   0 0 1 startangle endangle arc
+   savematrix setmatrix
+   end
+} def
+
+/mergeprocs {
+dup length
+3 -1 roll
+dup
+length
+dup
+5 1 roll
+3 -1 roll
+add
+array cvx
+dup
+3 -1 roll
+0 exch
+putinterval
+dup
+4 2 roll
+putinterval
+} bind def
+/dpi_x 300 def
+/dpi_y 300 def
+/conicto {
+    /to_y exch def
+    /to_x exch def
+    /conic_cntrl_y exch def
+    /conic_cntrl_x exch def
+    currentpoint
+    /p0_y exch def
+    /p0_x exch def
+    /p1_x p0_x conic_cntrl_x p0_x sub 2 3 div mul add def
+    /p1_y p0_y conic_cntrl_y p0_y sub 2 3 div mul add def
+    /p2_x p1_x to_x p0_x sub 1 3 div mul add def
+    /p2_y p1_y to_y p0_y sub 1 3 div mul add def
+    p1_x p1_y p2_x p2_y to_x to_y curveto
+} bind def
+/start_ol { gsave 1.1 dpi_x div dup scale} bind def
+/end_ol { closepath fill grestore } bind def
+28.346000 -28.346000 scale
+-7.932918 -10.469574 translate
+%%EndProlog
+
+
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+0.000000 0.000000 0.000000 srgb
+n 8.000000 8.000000 m 9.564590 8.782295 l s
+[] 0 sd
+0 slj
+0 slc
+n 9.900000 8.950000 m 9.340983 8.950000 l 9.564590 8.782295 l 9.564590 8.502786 l ef
+n 9.900000 8.950000 m 9.340983 8.950000 l 9.564590 8.782295 l 9.564590 8.502786 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 8.000000 9.000000 m 9.513197 9.000000 l s
+[] 0 sd
+0 slj
+0 slc
+n 9.888197 9.000000 m 9.388197 9.250000 l 9.513197 9.000000 l 9.388197 8.750000 l ef
+n 9.888197 9.000000 m 9.388197 9.250000 l 9.513197 9.000000 l 9.388197 8.750000 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 8.000000 10.000000 m 9.564590 9.217705 l s
+[] 0 sd
+0 slj
+0 slc
+n 9.900000 9.050000 m 9.564590 9.497214 l 9.564590 9.217705 l 9.340983 9.050000 l ef
+n 9.900000 9.050000 m 9.564590 9.497214 l 9.564590 9.217705 l 9.340983 9.050000 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 12.000000 9.000000 m 13.564590 8.217705 l s
+[] 0 sd
+0 slj
+0 slc
+n 13.900000 8.050000 m 13.564590 8.497214 l 13.564590 8.217705 l 13.340983 8.050000 l ef
+n 13.900000 8.050000 m 13.564590 8.497214 l 13.564590 8.217705 l 13.340983 8.050000 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 12.000000 9.000000 m 13.564590 9.782295 l s
+[] 0 sd
+0 slj
+0 slc
+n 13.900000 9.950000 m 13.340983 9.950000 l 13.564590 9.782295 l 13.564590 9.502786 l ef
+n 13.900000 9.950000 m 13.340983 9.950000 l 13.564590 9.782295 l 13.564590 9.502786 l cp s
+gsave 9.850000 8.325000 translate 0.035278 -0.035278 scale
+start_ol
+448 986 moveto
+448 2496 lineto
+832 2496 lineto
+832 1001 lineto
+832 629 978 442 conicto
+1124 256 1417 256 conicto
+1768 256 1972 477 conicto
+2176 699 2176 1081 conicto
+2176 2496 lineto
+2560 2496 lineto
+2560 0 lineto
+2176 0 lineto
+2176 384 lineto
+2022 157 1819 46 conicto
+1617 -64 1349 -64 conicto
+906 -64 677 203 conicto
+448 471 448 986 conicto
+end_ol grestore 
+gsave 10.239467 8.325000 translate 0.035278 -0.035278 scale
+start_ol
+832 3328 moveto
+832 2048 lineto
+448 2048 lineto
+448 3328 lineto
+832 3328 lineto
+end_ol grestore 
+gsave 11.648223 8.193746 translate 0.035278 -0.035278 scale
+start_ol
+448 986 moveto
+448 2496 lineto
+832 2496 lineto
+832 1001 lineto
+832 629 978 442 conicto
+1124 256 1417 256 conicto
+1768 256 1972 477 conicto
+2176 699 2176 1081 conicto
+2176 2496 lineto
+2560 2496 lineto
+2560 0 lineto
+2176 0 lineto
+2176 384 lineto
+2022 157 1819 46 conicto
+1617 -64 1349 -64 conicto
+906 -64 677 203 conicto
+448 471 448 986 conicto
+end_ol grestore 
+gsave 12.037690 8.193746 translate 0.035278 -0.035278 scale
+start_ol
+832 3328 moveto
+832 2048 lineto
+448 2048 lineto
+448 3328 lineto
+832 3328 lineto
+end_ol grestore 
+gsave 12.207023 8.193746 translate 0.035278 -0.035278 scale
+start_ol
+832 3328 moveto
+832 2048 lineto
+448 2048 lineto
+448 3328 lineto
+832 3328 lineto
+end_ol grestore 
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0 slc
+n 10.000000 9.000000 m 10.948223 9.518746 11.073223 9.568746 11.585095 9.254620 c s
+[] 0 sd
+0 slj
+0 slc
+n 11.904709 9.058478 m 11.609318 9.533077 l 11.585095 9.254620 l 11.347796 9.106924 l ef
+n 11.904709 9.058478 m 11.609318 9.533077 l 11.585095 9.254620 l 11.347796 9.106924 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0 slc
+n 12.000000 9.000000 m 11.098223 8.343746 11.048223 8.443746 10.430008 8.771810 c s
+[] 0 sd
+0 slj
+0 slc
+n 10.098759 8.947592 m 10.423237 8.492384 l 10.430008 8.771810 l 10.657612 8.934049 l ef
+n 10.098759 8.947592 m 10.423237 8.492384 l 10.430008 8.771810 l 10.657612 8.934049 l cp s
+showpage
diff --git a/1-toky/vrchol.eps b/1-toky/vrchol.eps
new file mode 100644 (file)
index 0000000..cf720a5
--- /dev/null
@@ -0,0 +1,196 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: /mnt/data/toky/toky.dia
+%%Creator: Dia v0.95
+%%CreationDate: Tue Jun 13 12:14:09 2006
+%%For: radofan
+%%Orientation: Portrait
+%%Magnification: 1.0000
+%%BoundingBox: 0 0 123 84
+%%BeginSetup
+%%EndSetup
+%%EndComments
+%%BeginProlog
+[ /.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 /hyphen /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 /periodcentered /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] /isolatin1encoding exch def
+/cp {closepath} bind def
+/c {curveto} bind def
+/f {fill} bind def
+/a {arc} bind def
+/ef {eofill} bind def
+/ex {exch} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/sa {save} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/rm {rmoveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/sh {show} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/rot {rotate} bind def
+/sc {scale} bind def
+/sd {setdash} bind def
+/ff {findfont} bind def
+/sf {setfont} bind def
+/scf {scalefont} bind def
+/sw {stringwidth pop} bind def
+/tr {translate} bind def
+
+/ellipsedict 8 dict def
+ellipsedict /mtrx matrix put
+/ellipse
+{ ellipsedict begin
+   /endangle exch def
+   /startangle exch def
+   /yrad exch def
+   /xrad exch def
+   /y exch def
+   /x exch def   /savematrix mtrx currentmatrix def
+   x y tr xrad yrad sc
+   0 0 1 startangle endangle arc
+   savematrix setmatrix
+   end
+} def
+
+/mergeprocs {
+dup length
+3 -1 roll
+dup
+length
+dup
+5 1 roll
+3 -1 roll
+add
+array cvx
+dup
+3 -1 roll
+0 exch
+putinterval
+dup
+4 2 roll
+putinterval
+} bind def
+/dpi_x 300 def
+/dpi_y 300 def
+/conicto {
+    /to_y exch def
+    /to_x exch def
+    /conic_cntrl_y exch def
+    /conic_cntrl_x exch def
+    currentpoint
+    /p0_y exch def
+    /p0_x exch def
+    /p1_x p0_x conic_cntrl_x p0_x sub 2 3 div mul add def
+    /p1_y p0_y conic_cntrl_y p0_y sub 2 3 div mul add def
+    /p2_x p1_x to_x p0_x sub 1 3 div mul add def
+    /p2_y p1_y to_y p0_y sub 1 3 div mul add def
+    p1_x p1_y p2_x p2_y to_x to_y curveto
+} bind def
+/start_ol { gsave 1.1 dpi_x div dup scale} bind def
+/end_ol { closepath fill grestore } bind def
+28.346000 -28.346000 scale
+-7.932918 -6.469574 translate
+%%EndProlog
+
+
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+0.000000 0.000000 0.000000 srgb
+n 8.000000 4.000000 m 9.564590 4.782295 l s
+[] 0 sd
+0 slj
+0 slc
+n 9.900000 4.950000 m 9.340983 4.950000 l 9.564590 4.782295 l 9.564590 4.502786 l ef
+n 9.900000 4.950000 m 9.340983 4.950000 l 9.564590 4.782295 l 9.564590 4.502786 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 8.000000 5.000000 m 9.513197 5.000000 l s
+[] 0 sd
+0 slj
+0 slc
+n 9.888197 5.000000 m 9.388197 5.250000 l 9.513197 5.000000 l 9.388197 4.750000 l ef
+n 9.888197 5.000000 m 9.388197 5.250000 l 9.513197 5.000000 l 9.388197 4.750000 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 8.000000 6.000000 m 9.564590 5.217705 l s
+[] 0 sd
+0 slj
+0 slc
+n 9.900000 5.050000 m 9.564590 5.497214 l 9.564590 5.217705 l 9.340983 5.050000 l ef
+n 9.900000 5.050000 m 9.564590 5.497214 l 9.564590 5.217705 l 9.340983 5.050000 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 10.000000 5.000000 m 11.564590 4.217705 l s
+[] 0 sd
+0 slj
+0 slc
+n 11.900000 4.050000 m 11.564590 4.497214 l 11.564590 4.217705 l 11.340983 4.050000 l ef
+n 11.900000 4.050000 m 11.564590 4.497214 l 11.564590 4.217705 l 11.340983 4.050000 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 10.000000 5.000000 m 11.564590 5.782295 l s
+[] 0 sd
+0 slj
+0 slc
+n 11.900000 5.950000 m 11.340983 5.950000 l 11.564590 5.782295 l 11.564590 5.502786 l ef
+n 11.900000 5.950000 m 11.340983 5.950000 l 11.564590 5.782295 l 11.564590 5.502786 l cp s
+gsave 9.825000 4.475000 translate 0.035278 -0.035278 scale
+start_ol
+448 986 moveto
+448 2496 lineto
+832 2496 lineto
+832 1001 lineto
+832 629 978 442 conicto
+1124 256 1417 256 conicto
+1768 256 1972 477 conicto
+2176 699 2176 1081 conicto
+2176 2496 lineto
+2560 2496 lineto
+2560 0 lineto
+2176 0 lineto
+2176 384 lineto
+2022 157 1819 46 conicto
+1617 -64 1349 -64 conicto
+906 -64 677 203 conicto
+448 471 448 986 conicto
+end_ol grestore 
+showpage
diff --git a/2-dinic/2-dinic.tex b/2-dinic/2-dinic.tex
new file mode 100644 (file)
index 0000000..a96e168
--- /dev/null
@@ -0,0 +1,299 @@
+%%%%%%%%%%%%
+% Zápisek druhého semináøe z grafových algoritmù - ze dne 13.3.2006
+% Téma Dinicùv algoritmus a v¹emo¾né jeho modifikace.
+% Zapsal Bernard Lidický - bernard@matfyz.cz 
+%
+% Verze z 29. dubna 2006
+%
+%%%%%%%%%%%
+
+\input ../sgr.tex
+
+\prednaska{2}{Dinicùv algoritmus a jeho analýza}{zapsal Bernard Lidický}
+
+\h{Dinicùv algoritmus}
+
+Dinicùv algoritmus je zalo¾en na my¹lence, ¾e ve Ford-Fulkersonovì algoritmu
+není potøeba pøièítat jen zlep¹ující cesty, ale je mo¾né pøièítat rovnou zlep¹ující
+toky. Funguje takto:
+
+\algo
+\:Zaèni s~libovolným tokem~$f$, napøíklad prázdným (v¹ude nulovým).
+\:Iterativnì vylep¹uj tok podle zlep¹ujících tokù v síti rezerv: {\I (vnìj¹í cyklus)}
+\::Sestroj sí» rezerv.
+\::Najdi nejkrat¹í $st$-cestu. Kdy¾ ¾ádná neexistuje, skonèi.
+\::Proèisti sí», tj. nech v ní pouze vrcholy a hrany na nejkrat¹ích $st$-cestách.
+\::Najdi blokující tok $f_B$:
+\:::$f_B \leftarrow \<prázdný tok>$
+\:::Postupnì pøidáváme $st$-cesty: {\I (vnitøní cyklus)}
+\::::Najdi $st$-cestu. Napø. hladovì metodou rovnou za nosem.
+\::::Po¹li co nejvíce po cestì.
+\::::Sma¾ nasycené hrany. (Pozor, smazáním hran mohou vzniknout slepé ulièky,
+èím¾ se zneèistí sí» a nebude fungovat metoda rovnou za nosem.)
+\::::Doèisti sí».
+\::Zlep¹i $f$ podle $f_B$
+\endalgo
+
+\figure{dinic-cistasit.eps}{Proèi¹tìná sí» rozdìlená do vrstev}{0.3\hsize}
+
+\s{Slo¾itost algoritmu:}
+Oznaèíme $l$ délku nejkrat¹í $st$-cesty, $n$ poèet vrcholù sítì a $m$ poèet hran sítì.
+
+\itemize\ibull
+\:Jeden prùchod vnitøním cyklem trvá $\O(l)$, co¾ mù¾eme odhadnout jako $\O(n)$, proto¾e v¾dy platí $l \leq n$.
+\:Vnitøní cyklus se provede maximálnì $m$-krát, proto¾e se v¾dy alespoò jedna hrana nasytí
+  a ze sítì vypadne, tak¾e krok~6 mimo podkroku~12 bude trvat $\O(mn)$.
+\:Èi¹tìní a doèi¹»ování sítì dohromady provedeme takto:
+  \itemize\ibull
+  \:Rozvrstvíme vrcholy do vrstev podle vzdálenosti od $s$.
+  \:Zaøízneme dlouhé cesty (del¹í, ne¾ do vrstvy obsahující $t$).
+  \:Dr¾íme si frontu vrcholù, které mají $\deg^+ = 0$ èi $\deg^- = 0$.
+  \:Vrcholy z~fronty vybíráme a zahazujeme vèetnì hran, které vedou do/z nich.
+    A pøípadnì pøidáváme do~fronty vrcholy, kterým klesl jeden ze stupòù na 0
+    pøi vyhazování hran. Vyma¾ou se tím slepé ulièky, které by vadily v podkroku~9.
+  \endlist
+  Tedy kroky 5 a 12 dohromady spotøebují èas $\O(m)$\foot{Pøesnìji $\O(m+n)$, pokud by v síti byly izolované
+  vrcholy, ale ty mù¾eme zahodit úplnì u¾ na zaèátku.}.
+  \:Jeden prùchod vnìj¹ím cyklem tedy trvá $\O(mn)$.
+\endlist
+
+\s{Vìta:}
+V~ka¾dém prùchodu Dinicova algoritmu vzroste $l$ alespoò~o~1.
+
+\s{Dùsledek:}
+Vnìj¹ím cyklem projdeme $\O(n)$ krát, proto¾e nejdel¹í cesta bude mít
+délku $\leq n$. Celková slo¾itost algoritmu tedy bude $\O(n^2m)$
+
+\s{Korektnost algoritmu:}
+Korektnost Dinicova algoritmu plyne z korektnosti FF algoritmu. Kdy¾ se Dinicùv
+algoritmus zastaví, musí vydat maximální tok. Pokud ne, tak podle FF algoritmu
+existuje zlep¹ující cesta, ale to je ve sporu s~krokem~4, který po¾aduje, ¾e ¾ádná
+zlep¹ující cesta neexistuje.
+
+\s{Dùkaz vìty:}
+Podíváme se na výpoèet jednoho prùchodu vnìj¹ím cyklem.
+Délku aktuálnì nejkrat¹í $st$-cesty oznaème~$l$.
+Vypozorujeme, ¾e délka cest, které pøípadnì vzniknou pøi hledání a sycení
+v¹ech cest délky $l$, musí být vìt¹í ne¾ $l$. Jinak øeèeno, nestane se,
+¾e by vznikaly nové krátké cesty.
+
+Vnìj¹í cyklus zaèíná s neproèi¹tìnou sítí. Pøíklad takové sítì je na obrázku nìkde
+okolo. Po proèi¹tìní zùstanou v~síti jen èerné hrany. Èervené a modré\foot{Modré jsou
+ty, které vedou v rámci jedné vrstvy, èervené vedou zpìt èi za~spotøebiè èi do~slepých
+ulièek. Pøi vyti¹tìní na papír není snadné je barevnì odli¹it od èerných.} se zahodí.
+\figure{dinic-neprocistenasit.eps}{Neproèi¹tìná sí». Obsahuje zpìtné hrany, hrany uvnitø vrstvy a slepé ulièky.}{0.3\hsize}
+Nové hrany tak mohou vznikat jen díky èerným hranám, proto¾e s hranami zahozenými pøi èi¹tìní algoritmus
+dále nepoèítá. 
+Nová hrana mù¾e vzniknout zlep¹ení toku po nìjaké zlep¹ující cestì, proto¾e
+kdy¾ po hranì po¹leme nìjaký tok, zvedne se rezerva hrany opaèné, která mohla být
+nulová\foot{Tedy po zpìtné hranì ne¹lo nic poslat a nepoèítalo se s ní.}.
+Tím vznikne nová zpìtná hrana. ®ádné novì dopøedné hrany pøeskakující více vrstev nevznikají.
+\figure{dinic-zpetnahrana.eps}{Vznik nové zpìtné hrany}{0.3\hsize}
+
+Poka¾dé, kdy¾ se zlep¹í tok podél nìjaké cesty, budou v grafu ke v¹em hranám cesty
+existovat hrany opaèného smìru s~nenulovou rezervou. Nìkteré
+tyto opaèné hrany u¾ v~grafu mohly být, ale tím lépe pro nás\foot{Tento odstavec
+je spí¹e informativní a slou¾í malinko pro osvícení ètenáøe. V dùkazu nemá ¾ádný smysl.}.
+
+Vznikem nových hran by mohly vzniknout nové $st$-cesty, které pou¾ívají
+zpìtné hrany. Ale $st$-cesta, která pou¾ívá zpìtnou hranu, musí alespoò jednou skoèit zpìt. 
+Tedy její délka je alespoò $l+2$.
+
+\figure{dinic-cestashranouzpet.eps}{Cesta u¾ívající novou zpìtnou hranu}{0.3\hsize}
+
+Tedy ve vnitøním cyklu zaniknou v¹echny $st$-cesty délky $l$ a pøitom nevzniknou ¾ádné nové krat¹í $st$-cesty.
+Proto délka nejkrat¹ích cest vzroste alespoò o 1.
+\qed
+
+\h{Implementaèní poznámky}
+
+\itemize\ibull
+\:Není potøeba tak brutální èi¹tìní. Vrcholy se vstupním stupnìm 0 nám
+   nevadí -- stejnì se do nich nedostaneme. Vadí jen vrcholy s výstupním stupnìm 0, kde by mohl
+   havarovat postup v podkroku 9.
+\:Je mo¾né dìlat prohledávání a èi¹tìní souèasnì. Jednodu¹e metodou HRRR na nì a kdy¾
+   to nevyjde (dostaneme se do slepé ulièky), kus ustoupíme a pøi ústupu èistíme sí»
+   odstraòováním slepé ulièky.
+\:U¾ pøi prohledáváni si rovnou udr¾ujeme  minimum z rezerv a pøi zpáteèní cestì
+   opravujeme kapacity.\foot{Jak se asi zkombinuje s pøedchozím, kde musíme ustupovat?
+   V ka¾dé úrovni rekurze si zapamatujeme minimum, jaké bylo, kdy¾ jsme tam pøi¹li. Pokud
+   se vracíme, recyklujeme toto minimum.}
+\:V prùbìhu výpoètu udr¾ujeme jen sí» rezerv a tok vypoèteme a¾ nakonec z rezerv a kapacit.
+\:Kdy¾ budeme chtít hledat minimální øez, spustíme Dinicùv algoritmus, pak jednou iterací FF
+   algoritmu dostaneme jeden z minimálních øezù\foot{Samozøejmì získáme i maximální tok.}.
+\endlist
+
+\s{Na pøemý¹lení:} Máme minimální øez. Jak zjistíme maximální tok?
+
+\h{Speciální sítì (ubíráme na obecnosti)}
+
+Dále se budeme vìnovat modifikacím algoritmu na speciální druhy sítí,
+kde je mo¾né dostat lep¹í èasovou slo¾itost ne¾ v~obecném pøípadì.
+
+\s{Jednotkové kapacity:}
+V¹echny rezervy jsou jen 0 nebo~1. Na $st$-cestì má v¹echno kapacitu/rezervu~1.
+Mù¾eme poslat~1~a rovnou celou cestu zahodit -- není potøeba si pamatovat minimum z~rezerv.
+Kdy¾ máme $m$ hran, zlep¹eních po cestách délky $l$ bude maximálnì $m/l$.
+Proto slo¾itost podkrokù 9, 10 a 11 bude $m/l \cdot \O(l) = \O(m)$.%
+\foot{Nebo by ¹lo argumentovat, ¾e ka¾dou hranu pou¾ijeme jen $1\times$.}
+Tedy pro jednotkové kapacity dostáváme slo¾itost $\O(nm)$.
+
+\s{Jednotkové kapacity znovu a lépe:}
+Vnitøní cyklus lépe udìlat nepùjde. Je potøeba alespoò $\O(m)$ pro èi¹tìní.
+Mù¾eme se ale pokusit lépe odhadnout poèet iterací vnìj¹ího cyklu.
+
+Sledujeme stav sítì po $k$ iteracích vnìj¹ího cyklu a pokusíme se odhadnout, kolik iterací
+je¹tì algoritmus udìlá. Oznaème délku nejkrat¹í $st$-cesty $l$. 
+Víme, ¾e $l \geq k$, proto¾e v ka¾dé iteraci vzroste $l$ alespoò o 1.
+
+Máme tok $f_k$ a chceme dostat maximální tok $f$. $f - f_k$ je tok v~síti rezerv.
+Tedy $\exists f_R$ tok v síti rezerv takový, ¾e
+zlep¹ení $f_k$ podle $f_R$ je $f$. 
+Ka¾dá iterace velkého cyklu zlep¹í $f_k$ alespoò o 1. Tedy nám zbývá je¹tì
+nejvý¹e $\vert f_R \vert$ iterací.
+Proto bychom chtìli omezit velikost toku $f_R$. Napøíklad øezem.
+Najdeme v síti rezerv øez $C$. Kde ho vzít?\foot{Pøeci v øeznictví. Kdepak, spí¹e v cukrárnì.
+Myslíte, ¾e v cukrárnì mají Dinicovy øezy? Myslím, ¾e v cukrárnì je vìt¹ina øezù minimální.}
+Poèítejme jen hrany zleva doprava. Tìch je jistì nejvý¹e $m$ a tvoøí $k-1$ rozhraní mezi
+$k$ vrstvami. Tedy existuje rozhraní vrstev 
+s~nejvý¹e $m/k$ hranami\foot{Princip holubníku a nìjaká ta $\pm1$.}.
+Toto rozhraní je øez. Tedy existuje øez $C$, ¾e $\vert C\vert \leq m/k$
+Algoritmu tedy zbývá maximálnì $m/k$ krokù. 
+Celkový poèet krokù je nejvý¹ $k + m/k$. Staèí zvolit $k = \sqrt{m}$. Poèet krokù
+pak bude $\O(\sqrt{m})$.
+
+Celkovì slo¾itost Dinicova algoritmu pro jednotkové kapacity znovu a lépe 
+je $\O(\sqrt{m} m) = \O(m^{3/2})$. Pomohli jsme si pro øídké grafy.
+
+\s{Jednotkové kapacity a jeden ze stupòù roven 1:}
+Úlohu hledání maximálního párování v bipartitním grafu lze
+hezky pøevést na hledání maximálního toku. Z grafu se vytvoøí
+sí» tak, ¾e v¹echny vrcholy jedné partity se napojí na $s$ a v¹echny
+vrcholy druhé partity se napojí na $t$.\foot{$s,t$ jsou novì pøidané vrcholy.}
+Na v¹echny hrany se dají jednotkové kapacity a orientace ka¾dé bude smìrem\foot{%
+V¹echny hrany v bipartitním grafu se zorientují smìrem ke komponentì, kde je napojený
+vrchol $t$. Hrany obsahující vrchol $t$ se zorientují smìrem do $t$. Hrany obsahující vrchol
+$s$ se zorientují smìrem od $s$. Snad je to intuitivnì vidìt. Pro jistotu je nìkde okolo
+obrázek popisované sítì.} k~$t$.
+Najde se maximální tok a hrany v~toku tvoøí maximální párování. Proto mù¾e být
+u¾iteèné zkoumat tento speciální pøípad sítí.
+
+\figure{dinic-bipartitni.eps}{Sí» vzniklá z bipartitního grafu}{0.4\hsize}
+
+Sí» se vyznaèuje tím, ¾e ka¾dý vrchol krom $s$ a $t$ má vstupní nebo výstupní stupeò 1.
+Pro takovou sí» mù¾eme odhad je¹tì tro¹ku upravit. My¹lenka je stejná jako minule. Pokusíme
+se nalézt v síti po $k$ krocích nìjaký malý øez. Místo rozhraní budeme hledat jednu malou
+vrstvu a z malé vrstvy vytvoøíme malý øez. Pro ka¾dý vrchol z vrstvy vezmeme tu hranu, 
+která je ve svém smìru sama, a tím získáme øez.
+
+\figure{dinic-vrcholrez.eps}{Øez podle vrcholù ve vrstvì}{0.2\hsize}
+
+Tedy $\forall v \neq s,t: \min(\deg^-(v), \deg^+(v)) \leq 1$.
+Po $k$ krocích máme $k$ vrstev. Tedy existuje vrstva $\delta$ s nejvý¹e $n/k$ vrcholy\foot{Holubníkový princip.}.
+Tedy existuje øez $C$, ¾e $\vert C\vert \leq n/k$, který získáme z vrstvy $\delta$ vý¹e popsaným postupem.
+Algoritmu zbývá do konce $\leq n/k$ iterací vnìj¹ího cyklu. Algoritmus celkem udìlá $k + n/k$ krokù%
+\foot{Mo¾ná chybí nìjaké $\pm1$, ale to nehraje roli.}. Staèí zvolit $k = \sqrt{n}$ a slo¾itost
+celého algoritmu vyjde $\O(\sqrt{n}m)$\foot{Poèet iterací vnìj¹ího cyklu je $\O(\sqrt{n})$ a
+vnitøní cyklus má $\O(m)$.}.
+
+\s{Tøetí pokus pro jednotkové kapacity bez omezení na stupnì vrcholù v síti:}
+Hlavní my¹lenkou je opìt po $k$ krocích najít nìjaký malý øez. Najdeme dvì malé\foot{Co do souètu 
+poètu vrcholù v obou vrstvách.} sousední vrstvy a v¹echny hrany mezi nimi budou tvoøit námi hledaný malý øez.
+
+Oznaème $s_i$ poèet vrcholù v $i$-té vrstvì. Souèet poètu vrcholù ve dvou
+sousedních vrstvách oznaèíme $t_i = s_i + s_{i+1}$. Bude tedy platit nerovnost
+$$\sum_i t_i \leq 2\sum_i s_i \leq 2n {\rm .}$$
+
+Tedy existuje $i$, ¾e $t_i \leq 2n/k$\foot{Holubníkový princip. Zase.}. 
+Tedy $\exists i: s_i + s_{i+1} \leq 2n/k$. Poèet hran mezi $s_i$ a $s_{i+1}$ je velikost øezu
+$C$ a to je men¹í ne¾ $s_i \cdot s_{i+1}$. 
+Nejhor¹í pøípad je, kdy¾ $s_i = s_{i+1} = n/k$. Tedy $\vert C\vert \leq {(n/k)}^2$.
+Pro jistotu je¹tì jednou v celku jako dlouhá nerovnost:
+$$ \<\# hran mezi>\  s_i, s_{i+1} = \vert C\vert \leq  s_i\cdot s_{i+1} \leq {(n/k)}^2 {\rm .}$$
+Proto poèet iterací velkého cyklu je $\leq \<konstanta> + k + {(n/k)}^2$. 
+Chytøe zvolíme $k = n^{2/3}$. Slo¾itost celého algoritmu pak bude $\O(n^{2/3}m)$.
+
+\s{Poslední odhad pro celoèíselné kapacity:}
+Poslední\foot{Samozøejmì následuje je¹tì jeden algoritmus i s odhadem pro celoèíselné kapacity.
+Ale to u¾ není pøímo Dinicùv algoritmus. Jen Dinice pou¾ívá jako podprogram.} odhad je zalo¾en na velikosti 
+maximálního toku $f$ a pøedpokladu celoèíselných kapacit.
+Za jednu iteraci velkého cyklu projdeme malým cyklem maximálnì tolikrát,
+o kolik se v nìm zvedl tok, proto¾e ka¾dá zlep¹ující cesta ho zvedne alespoò o $1$.
+Zlep¹ující cesta se tedy hledá maximálnì  $\vert f\vert$ krát za celou dobu bìhu algoritmu.
+Cestu najedeme v èase $\O(n)$. Celkem na hledání
+cest spotøebujeme $\O(\vert f\vert n)$ za celou dobu bìhu algoritmu.
+
+Nesmíme ale zapomenout na cleanupy. V jedné iteraci velkého cyklu stojí cleanupy $\O(m)$ a velkých
+iterací je $\leq n$. Proto celková slo¾itost algoritmu je $\O(\vert f\vert n + nm)$
+
+Pokud navíc budeme pøedpokládat omezení na maximální kapacitu hran $ \leq C$, 
+lze získat je¹tì jeden odhad tím, ¾e odhadneme maximální velikost toku jako $ \leq Cn$.
+Co¾ lze odùvodnit napøíklad tak, ¾e z $s$ jde maximálnì $n$~hran\foot{Nepøedpokládáme multigraf.}
+a kapacita ka¾dé je $ \leq C$. Proto celkový tok musí být $ \leq Cn$. 
+Dostaneme odhad $\O(Cn^2 + nm)$.
+
+\h{Scaling kapacit}
+
+Základní my¹lenka je podobná, jako u algoritmu pro tøídìní dlouhých èísel postupnì po øádech pomocí 
+radix-sortu. Pro jistotu si ho pøipomeòme. Algoritmus nejprve setøídí èísla podle poslední%
+\foot{Poslední cifrou myslíme nejménì významnou cifru.}
+cifry, poté podle pøedposlední, pøedpøedposlední a tak dále.  
+
+\figure{dinic-sort.eps}{Kroky postupného tøídìní podle øádù}{0.2\hsize}
+
+V na¹em pøípadì budeme postupnì budovat sítì a v nich poèítat toky, a¾ nakonec získáme tok pro celou sí».
+Pøedpokládejme celoèíselné kapacity. Maximální tok v síti $G$ budeme hledat tak, ¾e hranám postupnì
+budeme zvìt¹ovat kapacity bit po bitu v binárním zápisu, a¾ k jejich skuteèné kapacitì.
+Pøitom po~ka¾dém posunu zavoláme Dinicùv algoritmus. Pomocí pøedchozího odhadu uká¾eme, ¾e jedno
+volání Dinice nebude pøíli¹ drahé.
+
+\figure{dinic-scaling-original.eps}{Pùvodní sí», na hranách jsou jejich kapacity v binárním zápisu}{0.2\hsize}
+
+Oznaème $k$ poèet bitù v zápisu nejvìt¹í kapacity z celé sítì. $k = \lceil \log_2C \rceil$.
+Postupnì budeme budovat sítì $G_i$ s kapacitami $C_i(e) = \lfloor {C(e) / 2^{k-i}} \rfloor$.
+$G_0$ je nejoøezanìj¹í sí», kde ka¾dá hrana má kapacitu jako je nejvy¹¹í bit v binárním zápisu
+její skuteèné kapacity. $G_k$ je pùvodní sí» $G$.
+
+ $$ C_{i+1}(e) = \left\{
+\eqalign{
+          2C_i(e),   &\hbox{\quad pokud $(k-i-1)$-tý bitík je 0}  \cr
+          2C_i(e)+1, &\hbox{\quad pokud $(k-i-1)$-tý bitík je 1}  \cr}
+\right.
+ $$     
+
+\figure{dinic-scaling-g.eps}{Sítì $G_0$, $G_1$ a $G_2$, jak vyjdou pro sí» z~pøedchozího obrázku}{0.8\hsize}
+
+Na spoètení maximálního toku $f_i$ v síti $G_i$ zavoláme Dinicùv algoritmus, 
+ov¹em do zaèátku nepou¾ijeme nulový tok, nýbr¾ tok $2f_{i-1}$. Rozdíl toku z inicializace
+a výsledného bude malý. 
+Tvrdíme, ¾e:
+$$ \vert f_i\vert - \vert 2f_{i-1}\vert \leq m.$$
+
+\s{Dùkaz:}
+Vezmeme minimální øez $R$ v $G_{i-1}$. Platí $\vert f_{i-1}\vert = \vert R\vert$\foot{Minimaxová vìta.}.
+Øez $R$ obsahuje $\leq m$ hran. V $G_{i}$ má øez $R$ kapacitu maximálnì $2\vert R\vert+m$.
+Maximální tok je omezen ka¾dým øezem. Tedy i øezem $R$. Proto tok vzroste o $\leq m$.
+Proto podle pøedchozího odhadu výpoèet toku $f_i$ trvá $\O(mn)$. Tok se bude poèítat $k$-krát.
+Celková slo¾itost bude $\O(mn\log C)$.
+\qed
+
+\h{Dinicova tabulka}
+
+$$\vbox{\halign{# \hfil \quad &# \hfil \cr
+\it verze &\it èas \cr\noalign{\smallskip\hrule\smallskip}
+standardní                              &$\O(n^2m)$      \cr
+jednotkové kapacity                     &$\O(nm)$        \cr
+jednotkové kapacity podruhé             &$\O(\sqrt{m}m) = \O(m^{3/2})$   \cr
+jednotkové kapacity, 1 stupeò $\leq 1$  &$\O(\sqrt{n}m)$   \cr
+jednotkové kapacity veseleji            &$\O(n^{2/3}m)$    \cr
+celoèíselné kapacity                    &$\O(\vert f\vert n + nm)$     \cr
+celoèíselné kapacity $ \leq C$          &$\O(Cn^2 + mn)$   \cr
+celoèíselné kapacity $ \leq C$          &$\O(mn\log C)$    \cr
+}}$$
+
+\bye
diff --git a/2-dinic/Makefile b/2-dinic/Makefile
new file mode 100644 (file)
index 0000000..c183fb0
--- /dev/null
@@ -0,0 +1,3 @@
+P=2-dinic
+
+include ../Makerules
diff --git a/2-dinic/dinic-bipartitni.eps b/2-dinic/dinic-bipartitni.eps
new file mode 100644 (file)
index 0000000..bc8b0ab
--- /dev/null
@@ -0,0 +1,420 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: Diagram1.dia
+%%Creator: Dia v0.94
+%%CreationDate: Thu Apr 27 13:18:41 2006
+%%For: bernard
+%%Orientation: Portrait
+%%Magnification: 1.0000
+%%BoundingBox: 0 0 674 341
+%%BeginSetup
+%%EndSetup
+%%EndComments
+%%BeginProlog
+[ /.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 /hyphen /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 /periodcentered /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] /isolatin1encoding exch def
+/cp {closepath} bind def
+/c {curveto} bind def
+/f {fill} bind def
+/a {arc} bind def
+/ef {eofill} bind def
+/ex {exch} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/sa {save} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/rm {rmoveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/sh {show} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/rot {rotate} bind def
+/sc {scale} bind def
+/sd {setdash} bind def
+/ff {findfont} bind def
+/sf {setfont} bind def
+/scf {scalefont} bind def
+/sw {stringwidth pop} bind def
+/tr {translate} bind def
+
+/ellipsedict 8 dict def
+ellipsedict /mtrx matrix put
+/ellipse
+{ ellipsedict begin
+   /endangle exch def
+   /startangle exch def
+   /yrad exch def
+   /xrad exch def
+   /y exch def
+   /x exch def   /savematrix mtrx currentmatrix def
+   x y tr xrad yrad sc
+   0 0 1 startangle endangle arc
+   savematrix setmatrix
+   end
+} def
+
+/mergeprocs {
+dup length
+3 -1 roll
+dup
+length
+dup
+5 1 roll
+3 -1 roll
+add
+array cvx
+dup
+3 -1 roll
+0 exch
+putinterval
+dup
+4 2 roll
+putinterval
+} bind def
+/dpi_x 300 def
+/dpi_y 300 def
+/conicto {
+    /to_y exch def
+    /to_x exch def
+    /conic_cntrl_y exch def
+    /conic_cntrl_x exch def
+    currentpoint
+    /p0_y exch def
+    /p0_x exch def
+    /p1_x p0_x conic_cntrl_x p0_x sub 2 3 div mul add def
+    /p1_y p0_y conic_cntrl_y p0_y sub 2 3 div mul add def
+    /p2_x p1_x to_x p0_x sub 1 3 div mul add def
+    /p2_y p1_y to_y p0_y sub 1 3 div mul add def
+    p1_x p1_y p2_x p2_y to_x to_y curveto
+} bind def
+/start_ol { gsave 1.1 dpi_x div dup scale} bind def
+/end_ol { closepath fill grestore } bind def
+28.346000 -28.346000 scale
+-2.500000 -14.003022 translate
+%%EndProlog
+
+
+1.000000 1.000000 1.000000 srgb
+n 18.960000 8.055822 0.950000 5.861600 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 18.960000 8.055822 0.950000 5.861600 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 15.185000 7.955822 0.462500 0.450000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 15.185000 7.955822 0.462500 0.450000 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 25.671000 8.187822 0.450000 0.450000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 25.671000 8.187822 0.450000 0.450000 0 360 ellipse cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 15.512040 7.637622 m 18.419170 5.984009 l s
+[] 0 sd
+0 slj
+0 slc
+n 18.745128 5.798600 m 18.434124 6.263118 l 18.419170 5.984009 l 18.186912 5.828507 l ef
+n 18.745128 5.798600 m 18.434124 6.263118 l 18.419170 5.984009 l 18.186912 5.828507 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 15.512040 8.274022 m 18.422626 10.310358 l s
+[] 0 sd
+0 slj
+0 slc
+n 18.729891 10.525330 m 18.176889 10.443544 l 18.422626 10.310358 l 18.463519 10.033857 l ef
+n 18.729891 10.525330 m 18.176889 10.443544 l 18.422626 10.310358 l 18.463519 10.033857 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 15.647500 7.955822 m 18.473418 8.041133 l s
+[] 0 sd
+0 slj
+0 slc
+n 18.848248 8.052448 m 18.340931 8.287247 l 18.473418 8.041133 l 18.356019 7.787475 l ef
+n 18.848248 8.052448 m 18.340931 8.287247 l 18.473418 8.041133 l 18.356019 7.787475 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 19.013500 3.933422 m 22.283474 10.039186 l s
+[] 0 sd
+0 slj
+0 slc
+n 22.460516 10.369763 m 22.004075 10.047022 l 22.283474 10.039186 l 22.444845 9.810966 l ef
+n 22.460516 10.369763 m 22.004075 10.047022 l 22.283474 10.039186 l 22.444845 9.810966 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 19.269500 8.093422 m 21.957872 5.947052 l s
+[] 0 sd
+0 slj
+0 slc
+n 22.250928 5.713079 m 22.016169 6.220414 l 21.957872 5.947052 l 21.704205 5.829673 l ef
+n 22.250928 5.713079 m 22.016169 6.220414 l 21.957872 5.947052 l 21.704205 5.829673 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 18.885500 12.253422 m 22.202993 8.243405 l s
+[] 0 sd
+0 slj
+0 slc
+n 22.442032 7.954467 m 22.315939 8.499077 l 22.202993 8.243405 l 21.930688 8.180358 l ef
+n 22.442032 7.954467 m 22.315939 8.499077 l 22.202993 8.243405 l 21.930688 8.180358 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 19.141500 10.589422 m 22.059297 10.590193 l s
+[] 0 sd
+0 slj
+0 slc
+n 22.434297 10.590293 m 21.934231 10.840160 l 22.059297 10.590193 l 21.934363 10.340160 l ef
+n 22.434297 10.590293 m 21.934231 10.840160 l 22.059297 10.590193 l 21.934363 10.340160 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 22.661500 5.917422 m 24.958749 7.583788 l s
+[] 0 sd
+0 slj
+0 slc
+n 25.262299 7.803975 m 24.710774 7.712758 l 24.958749 7.583788 l 25.004357 7.308025 l ef
+n 25.262299 7.803975 m 24.710774 7.712758 l 24.958749 7.583788 l 25.004357 7.308025 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 22.725500 7.901422 m 24.737371 8.132318 l s
+[] 0 sd
+0 slj
+0 slc
+n 25.109926 8.175074 m 24.584682 8.366435 l 24.737371 8.132318 l 24.641691 7.869696 l ef
+n 25.109926 8.175074 m 24.584682 8.366435 l 24.737371 8.132318 l 24.641691 7.869696 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 22.789500 10.525422 m 24.970408 8.807276 l s
+[] 0 sd
+0 slj
+0 slc
+n 25.264977 8.575211 m 25.026928 9.081010 l 24.970408 8.807276 l 24.717508 8.688251 l ef
+n 25.264977 8.575211 m 25.026928 9.081010 l 24.970408 8.807276 l 24.717508 8.688251 l cp s
+gsave 14.597500 10.118322 translate 0.035278 -0.035278 scale
+start_ol
+6314 6050 moveto
+6023 4487 lineto
+5441 4766 4866 4911 conicto
+4292 5056 3780 5056 conicto
+3194 5056 2877 4902 conicto
+2560 4749 2560 4465 conicto
+2560 4297 2736 4196 conicto
+2912 4096 3428 3985 conicto
+3785 3918 lineto
+4987 3660 5469 3254 conicto
+5952 2848 5952 2126 conicto
+5952 1034 5110 421 conicto
+4269 -192 2758 -192 conicto
+2127 -192 1467 -90 conicto
+807 12 120 215 conicto
+416 1793 lineto
+946 1475 1551 1313 conicto
+2156 1152 2790 1152 conicto
+3408 1152 3720 1302 conicto
+4032 1453 4032 1743 conicto
+4032 1944 3856 2055 conicto
+3680 2167 3131 2284 conicto
+2774 2351 lineto
+1726 2575 1279 3011 conicto
+832 3448 832 4221 conicto
+832 5269 1610 5834 conicto
+2389 6400 3834 6400 conicto
+4467 6400 5079 6312 conicto
+5692 6225 6314 6050 conicto
+end_ol grestore 
+gsave 25.613500 10.255322 translate 0.035278 -0.035278 scale
+start_ol
+4037 8003 moveto
+3703 6228 lineto
+5709 6228 lineto
+5430 4800 lineto
+3423 4800 lineto
+2919 2171 lineto
+2897 2082 2888 2021 conicto
+2880 1960 2880 1904 conicto
+2880 1650 3047 1539 conicto
+3215 1428 3610 1428 conicto
+4624 1428 lineto
+4344 0 lineto
+2704 0 lineto
+1822 0 1359 378 conicto
+896 757 896 1470 conicto
+896 1625 912 1803 conicto
+929 1981 961 2166 conicto
+1460 4800 lineto
+501 4800 lineto
+770 6228 lineto
+1736 6228 lineto
+2072 8003 lineto
+4037 8003 lineto
+end_ol grestore 
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 15.185000 8.405822 m 18.375125 11.865157 l s
+[] 0 sd
+0 slj
+0 slc
+n 18.629346 12.140832 m 18.106601 11.942746 l 18.375125 11.865157 l 18.474167 11.603785 l ef
+n 18.629346 12.140832 m 18.106601 11.942746 l 18.375125 11.865157 l 18.474167 11.603785 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 15.185000 7.505822 m 18.416343 4.216682 l s
+[] 0 sd
+0 slj
+0 slc
+n 18.679147 3.949177 m 18.507078 4.481053 l 18.416343 4.216682 l 18.150405 4.130647 l ef
+n 18.679147 3.949177 m 18.507078 4.481053 l 18.416343 4.216682 l 18.150405 4.130647 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 22.405500 3.997422 m 25.350846 7.371108 l s
+[] 0 sd
+0 slj
+0 slc
+n 25.597471 7.653599 m 25.080310 7.441361 l 25.350846 7.371108 l 25.456965 7.112528 l ef
+n 25.597471 7.653599 m 25.080310 7.441361 l 25.350846 7.371108 l 25.456965 7.112528 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 22.642000 12.297922 m 25.360633 9.012855 l s
+[] 0 sd
+0 slj
+0 slc
+n 25.599718 8.723955 m 25.473537 9.268545 l 25.360633 9.012855 l 25.088338 8.949765 l ef
+n 25.599718 8.723955 m 25.473537 9.268545 l 25.360633 9.012855 l 25.088338 8.949765 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 19.013500 3.805422 m 21.854697 3.805422 l s
+[] 0 sd
+0 slj
+0 slc
+n 22.229697 3.805422 m 21.729697 4.055422 l 21.854697 3.805422 l 21.729697 3.555422 l ef
+n 22.229697 3.805422 m 21.729697 4.055422 l 21.854697 3.805422 l 21.729697 3.555422 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 19.077500 12.253422 m 21.982697 12.253422 l s
+[] 0 sd
+0 slj
+0 slc
+n 22.357697 12.253422 m 21.857697 12.503422 l 21.982697 12.253422 l 21.857697 12.003422 l ef
+n 22.357697 12.253422 m 21.857697 12.503422 l 21.982697 12.253422 l 21.857697 12.003422 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+n 22.291900 8.091422 0.950000 5.861600 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 3.500000 7.911600 0.950000 5.861600 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 3.500000 7.911600 0.950000 5.861600 0 360 ellipse cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 3.553500 3.789200 m 7.053300 10.324100 l s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 3.809500 7.949200 m 6.878300 5.499100 l s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 3.425500 12.109200 m 7.053300 7.724100 l s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 3.681500 10.445200 m 7.086100 10.446100 l s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 3.553500 3.661200 m 6.881500 3.661200 l s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 3.617500 12.109200 m 7.009500 12.109200 l s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+n 6.831900 7.947200 0.950000 5.861600 0 360 ellipse cp s
+0.100000 slw
+[0.200000] 0 sd
+[0.200000] 0 sd
+0 slj
+0 slc
+n 9.297500 8.575000 m 11.547500 7.075000 11.397500 9.425000 12.998695 8.304163 c s
+[] 0 sd
+0 slj
+0 slc
+n 13.305907 8.089115 m 13.039657 8.580654 l 12.998695 8.304163 l 12.752926 8.171038 l ef
+n 13.305907 8.089115 m 13.039657 8.580654 l 12.998695 8.304163 l 12.752926 8.171038 l cp s
+showpage
diff --git a/2-dinic/dinic-cestashranouzpet.eps b/2-dinic/dinic-cestashranouzpet.eps
new file mode 100644 (file)
index 0000000..0869139
--- /dev/null
@@ -0,0 +1,297 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: Diagram1.dia
+%%Creator: Dia v0.94
+%%CreationDate: Sun Mar 26 18:45:50 2006
+%%For: bernard
+%%Orientation: Portrait
+%%Magnification: 1.0000
+%%BoundingBox: 0 0 539 219
+%%BeginSetup
+%%EndSetup
+%%EndComments
+%%BeginProlog
+[ /.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 /hyphen /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 /periodcentered /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] /isolatin1encoding exch def
+/cp {closepath} bind def
+/c {curveto} bind def
+/f {fill} bind def
+/a {arc} bind def
+/ef {eofill} bind def
+/ex {exch} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/sa {save} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/rm {rmoveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/sh {show} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/rot {rotate} bind def
+/sc {scale} bind def
+/sd {setdash} bind def
+/ff {findfont} bind def
+/sf {setfont} bind def
+/scf {scalefont} bind def
+/sw {stringwidth pop} bind def
+/tr {translate} bind def
+
+/ellipsedict 8 dict def
+ellipsedict /mtrx matrix put
+/ellipse
+{ ellipsedict begin
+   /endangle exch def
+   /startangle exch def
+   /yrad exch def
+   /xrad exch def
+   /y exch def
+   /x exch def   /savematrix mtrx currentmatrix def
+   x y tr xrad yrad sc
+   0 0 1 startangle endangle arc
+   savematrix setmatrix
+   end
+} def
+
+/mergeprocs {
+dup length
+3 -1 roll
+dup
+length
+dup
+5 1 roll
+3 -1 roll
+add
+array cvx
+dup
+3 -1 roll
+0 exch
+putinterval
+dup
+4 2 roll
+putinterval
+} bind def
+/dpi_x 300 def
+/dpi_y 300 def
+/conicto {
+    /to_y exch def
+    /to_x exch def
+    /conic_cntrl_y exch def
+    /conic_cntrl_x exch def
+    currentpoint
+    /p0_y exch def
+    /p0_x exch def
+    /p1_x p0_x conic_cntrl_x p0_x sub 2 3 div mul add def
+    /p1_y p0_y conic_cntrl_y p0_y sub 2 3 div mul add def
+    /p2_x p1_x to_x p0_x sub 1 3 div mul add def
+    /p2_y p1_y to_y p0_y sub 1 3 div mul add def
+    p1_x p1_y p2_x p2_y to_x to_y curveto
+} bind def
+/start_ol { gsave 1.1 dpi_x div dup scale} bind def
+/end_ol { closepath fill grestore } bind def
+28.346000 -28.346000 scale
+-5.000000 -8.493600 translate
+%%EndProlog
+
+
+1.000000 1.000000 1.000000 srgb
+n 9.362500 4.500000 0.950000 3.650000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 9.362500 4.500000 0.950000 3.650000 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 12.962500 4.564000 0.950000 3.650000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 12.962500 4.564000 0.950000 3.650000 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 16.481600 4.793600 0.950000 3.650000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 16.481600 4.793600 0.950000 3.650000 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 20.080500 4.632000 0.950000 3.650000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 20.080500 4.632000 0.950000 3.650000 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 5.587500 4.400000 0.462500 0.450000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 5.587500 4.400000 0.462500 0.450000 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 23.497500 4.760000 0.450000 0.450000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 23.497500 4.760000 0.450000 0.450000 0 360 ellipse cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 6.050000 4.400000 m 8.875918 4.485311 l s
+[] 0 sd
+0 slj
+0 slc
+n 9.250748 4.496626 m 8.743431 4.731425 l 8.875918 4.485311 l 8.758519 4.231653 l ef
+n 9.250748 4.496626 m 8.743431 4.731425 l 8.875918 4.485311 l 8.758519 4.231653 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 9.697600 4.601600 m 12.796832 6.404790 l s
+[] 0 sd
+0 slj
+0 slc
+n 13.120963 6.593375 m 12.563065 6.558015 l 12.796832 6.404790 l 12.814512 6.125841 l ef
+n 13.120963 6.593375 m 12.563065 6.558015 l 12.796832 6.404790 l 12.814512 6.125841 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 16.481600 2.297600 m 19.672090 4.367088 l s
+[] 0 sd
+0 slj
+0 slc
+n 19.986701 4.571158 m 19.431172 4.508805 l 19.672090 4.367088 l 19.703266 4.089323 l ef
+n 19.986701 4.571158 m 19.431172 4.508805 l 19.672090 4.367088 l 19.703266 4.089323 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 20.513600 4.729600 m 22.560732 4.754160 l s
+[] 0 sd
+0 slj
+0 slc
+n 22.935705 4.758659 m 22.432742 5.002643 l 22.560732 4.754160 l 22.438740 4.502679 l ef
+n 22.935705 4.758659 m 22.432742 5.002643 l 22.560732 4.754160 l 22.438740 4.502679 l cp s
+gsave 5.000000 6.562500 translate 0.035278 -0.035278 scale
+start_ol
+5729 6016 moveto
+5533 5056 lineto
+5124 5280 4670 5392 conicto
+4216 5504 3734 5504 conicto
+2921 5504 2452 5229 conicto
+1984 4954 1984 4482 conicto
+1984 3933 3088 3639 conicto
+3172 3617 3213 3606 conicto
+3548 3506 lineto
+4567 3221 4907 2908 conicto
+5248 2595 5248 2053 conicto
+5248 1059 4456 433 conicto
+3665 -192 2384 -192 conicto
+1886 -192 1338 -98 conicto
+790 -5 130 192 conicto
+331 1280 lineto
+896 997 1444 850 conicto
+1992 704 2496 704 conicto
+3263 704 3743 1023 conicto
+4224 1343 4224 1833 conicto
+4224 2361 2963 2686 conicto
+2854 2714 lineto
+2496 2802 lineto
+1700 3010 1330 3349 conicto
+960 3689 960 4217 conicto
+960 5221 1716 5810 conicto
+2472 6400 3771 6400 conicto
+4283 6400 4769 6304 conicto
+5256 6208 5729 6016 conicto
+end_ol grestore 
+gsave 23.440000 6.827500 translate 0.035278 -0.035278 scale
+start_ol
+4867 6272 moveto
+4711 5440 lineto
+2658 5440 lineto
+1992 2036 lineto
+1958 1846 1941 1717 conicto
+1925 1589 1925 1516 conicto
+1925 1157 2140 994 conicto
+2356 832 2831 832 conicto
+3872 832 lineto
+3698 0 lineto
+2714 0 lineto
+1796 0 1346 353 conicto
+896 706 896 1423 conicto
+896 1551 912 1702 conicto
+929 1854 963 2036 conicto
+1628 5440 lineto
+752 5440 lineto
+918 6272 lineto
+1774 6272 lineto
+2121 8064 lineto
+3150 8064 lineto
+2809 6272 lineto
+4867 6272 lineto
+end_ol grestore 
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+0.975875 0.112764 0.032090 srgb
+n 16.163919 1.258881 3.439993 3.439993 87.657866 147.036577 ellipse s
+[] 0 sd
+0 slj
+0 slc
+n 13.132801 2.784720 m 13.556586 3.149283 l 13.277703 3.130593 l 13.095421 3.342485 l ef
+n 13.132801 2.784720 m 13.556586 3.149283 l 13.277703 3.130593 l 13.095421 3.342485 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+0.000000 0.000000 0.000000 srgb
+n 13.388362 6.692362 m 15.935649 5.171189 l s
+[] 0 sd
+0 slj
+0 slc
+n 16.257610 4.978923 m 15.956507 5.449918 l 15.935649 5.171189 l 15.700151 5.020638 l ef
+n 16.257610 4.978923 m 15.956507 5.449918 l 15.935649 5.171189 l 15.700151 5.020638 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 13.025600 2.425600 m 15.802797 2.425600 l s
+[] 0 sd
+0 slj
+0 slc
+n 16.177797 2.425600 m 15.677797 2.675600 l 15.802797 2.425600 l 15.677797 2.175600 l ef
+n 16.177797 2.425600 m 15.677797 2.675600 l 15.802797 2.425600 l 15.677797 2.175600 l cp s
+showpage
diff --git a/2-dinic/dinic-cistasit.eps b/2-dinic/dinic-cistasit.eps
new file mode 100644 (file)
index 0000000..1f89736
--- /dev/null
@@ -0,0 +1,385 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: Diagram1.dia
+%%Creator: Dia v0.94
+%%CreationDate: Sun Mar 26 18:42:37 2006
+%%For: bernard
+%%Orientation: Portrait
+%%Magnification: 1.0000
+%%BoundingBox: 0 0 539 213
+%%BeginSetup
+%%EndSetup
+%%EndComments
+%%BeginProlog
+[ /.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 /hyphen /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 /periodcentered /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] /isolatin1encoding exch def
+/cp {closepath} bind def
+/c {curveto} bind def
+/f {fill} bind def
+/a {arc} bind def
+/ef {eofill} bind def
+/ex {exch} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/sa {save} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/rm {rmoveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/sh {show} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/rot {rotate} bind def
+/sc {scale} bind def
+/sd {setdash} bind def
+/ff {findfont} bind def
+/sf {setfont} bind def
+/scf {scalefont} bind def
+/sw {stringwidth pop} bind def
+/tr {translate} bind def
+
+/ellipsedict 8 dict def
+ellipsedict /mtrx matrix put
+/ellipse
+{ ellipsedict begin
+   /endangle exch def
+   /startangle exch def
+   /yrad exch def
+   /xrad exch def
+   /y exch def
+   /x exch def   /savematrix mtrx currentmatrix def
+   x y tr xrad yrad sc
+   0 0 1 startangle endangle arc
+   savematrix setmatrix
+   end
+} def
+
+/mergeprocs {
+dup length
+3 -1 roll
+dup
+length
+dup
+5 1 roll
+3 -1 roll
+add
+array cvx
+dup
+3 -1 roll
+0 exch
+putinterval
+dup
+4 2 roll
+putinterval
+} bind def
+/dpi_x 300 def
+/dpi_y 300 def
+/conicto {
+    /to_y exch def
+    /to_x exch def
+    /conic_cntrl_y exch def
+    /conic_cntrl_x exch def
+    currentpoint
+    /p0_y exch def
+    /p0_x exch def
+    /p1_x p0_x conic_cntrl_x p0_x sub 2 3 div mul add def
+    /p1_y p0_y conic_cntrl_y p0_y sub 2 3 div mul add def
+    /p2_x p1_x to_x p0_x sub 1 3 div mul add def
+    /p2_y p1_y to_y p0_y sub 1 3 div mul add def
+    p1_x p1_y p2_x p2_y to_x to_y curveto
+} bind def
+/start_ol { gsave 1.1 dpi_x div dup scale} bind def
+/end_ol { closepath fill grestore } bind def
+28.346000 -28.346000 scale
+-2.500000 -9.500000 translate
+%%EndProlog
+
+
+1.000000 1.000000 1.000000 srgb
+n 6.862500 5.700000 0.950000 3.650000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 6.862500 5.700000 0.950000 3.650000 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 10.526500 5.700000 0.950000 3.650000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 10.526500 5.700000 0.950000 3.650000 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 13.862500 5.800000 0.950000 3.650000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 13.862500 5.800000 0.950000 3.650000 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 17.772500 5.768000 0.950000 3.650000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 17.772500 5.768000 0.950000 3.650000 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 3.087500 5.600000 0.462500 0.450000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 3.087500 5.600000 0.462500 0.450000 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 20.997500 5.768000 0.450000 0.450000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 20.997500 5.768000 0.450000 0.450000 0 360 ellipse cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 3.414537 5.281802 m 6.321672 3.628187 l s
+[] 0 sd
+0 slj
+0 slc
+n 6.647630 3.442778 m 6.336625 3.907295 l 6.321672 3.628187 l 6.089413 3.472685 l ef
+n 6.647630 3.442778 m 6.336625 3.907295 l 6.321672 3.628187 l 6.089413 3.472685 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 3.414537 5.918198 m 6.093929 7.401701 l s
+[] 0 sd
+0 slj
+0 slc
+n 6.422000 7.583344 m 5.863476 7.559867 l 6.093929 7.401701 l 6.105667 7.122439 l ef
+n 6.422000 7.583344 m 5.863476 7.559867 l 6.093929 7.401701 l 6.105667 7.122439 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 3.550000 5.600000 m 6.375918 5.685311 l s
+[] 0 sd
+0 slj
+0 slc
+n 6.750748 5.696626 m 6.243431 5.931425 l 6.375918 5.685311 l 6.258519 5.431653 l ef
+n 6.750748 5.696626 m 6.243431 5.931425 l 6.375918 5.685311 l 6.258519 5.431653 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 7.534251 3.119060 m 10.172509 7.690865 l s
+[] 0 sd
+0 slj
+0 slc
+n 10.359941 8.015664 m 9.893499 7.707553 l 10.172509 7.690865 l 10.326564 7.457644 l ef
+n 10.359941 8.015664 m 9.893499 7.707553 l 10.172509 7.690865 l 10.326564 7.457644 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 7.812500 5.700000 m 9.895478 3.630595 l s
+[] 0 sd
+0 slj
+0 slc
+n 10.161508 3.366298 m 9.982999 3.896048 l 9.895478 3.630595 l 9.630603 3.541340 l ef
+n 10.161508 3.366298 m 9.982999 3.896048 l 9.895478 3.630595 l 9.630603 3.541340 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 7.515823 8.237500 m 10.061063 5.845852 l s
+[] 0 sd
+0 slj
+0 slc
+n 10.334346 5.589060 m 10.141163 6.113637 l 10.061063 5.845852 l 9.798775 5.749260 l ef
+n 10.334346 5.589060 m 10.141163 6.113637 l 10.061063 5.845852 l 9.798775 5.749260 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 11.198251 3.119060 m 13.566239 5.562896 l s
+[] 0 sd
+0 slj
+0 slc
+n 13.827192 5.832207 m 13.299714 5.647094 l 13.566239 5.562896 l 13.658796 5.299157 l ef
+n 13.827192 5.832207 m 13.299714 5.647094 l 13.566239 5.562896 l 13.658796 5.299157 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 11.198251 8.280940 m 13.310798 8.286271 l s
+[] 0 sd
+0 slj
+0 slc
+n 13.685797 8.287218 m 13.185168 8.535955 l 13.310798 8.286271 l 13.186429 8.035957 l ef
+n 13.685797 8.287218 m 13.185168 8.535955 l 13.310798 8.286271 l 13.186429 8.035957 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 11.476500 5.700000 m 13.484600 3.705546 l s
+[] 0 sd
+0 slj
+0 slc
+n 13.750667 3.441287 m 13.572084 3.971011 l 13.484600 3.705546 l 13.219738 3.616255 l ef
+n 13.750667 3.441287 m 13.572084 3.971011 l 13.484600 3.705546 l 13.219738 3.616255 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 14.534251 3.219060 m 17.185798 3.213518 l s
+[] 0 sd
+0 slj
+0 slc
+n 17.560797 3.212734 m 17.061321 3.463778 l 17.185798 3.213518 l 17.060275 2.963779 l ef
+n 17.560797 3.212734 m 17.061321 3.463778 l 17.185798 3.213518 l 17.060275 2.963779 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 14.812500 5.800000 m 17.010844 5.830702 l s
+[] 0 sd
+0 slj
+0 slc
+n 17.385808 5.835939 m 16.882365 6.078932 l 17.010844 5.830702 l 16.889347 5.578981 l ef
+n 17.385808 5.835939 m 16.882365 6.078932 l 17.010844 5.830702 l 16.889347 5.578981 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 14.534251 8.380940 m 17.385804 8.365189 l s
+[] 0 sd
+0 slj
+0 slc
+n 17.760798 8.363118 m 17.262187 8.615876 l 17.385804 8.365189 l 17.259425 8.115883 l ef
+n 17.760798 8.363118 m 17.262187 8.615876 l 17.385804 8.365189 l 17.259425 8.115883 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 18.444251 3.187060 m 20.337206 5.103467 l s
+[] 0 sd
+0 slj
+0 slc
+n 20.600733 5.370260 m 20.071502 5.190221 l 20.337206 5.103467 l 20.427225 4.838851 l ef
+n 20.600733 5.370260 m 20.071502 5.190221 l 20.337206 5.103467 l 20.427225 4.838851 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 18.722500 5.768000 m 20.060697 5.768000 l s
+[] 0 sd
+0 slj
+0 slc
+n 20.435697 5.768000 m 19.935697 6.018000 l 20.060697 5.768000 l 19.935697 5.518000 l ef
+n 20.435697 5.768000 m 19.935697 6.018000 l 20.060697 5.768000 l 19.935697 5.518000 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 18.444251 8.348940 m 20.337206 6.432533 l s
+[] 0 sd
+0 slj
+0 slc
+n 20.600733 6.165740 m 20.427225 6.697149 l 20.337206 6.432533 l 20.071502 6.345779 l ef
+n 20.600733 6.165740 m 20.427225 6.697149 l 20.337206 6.432533 l 20.071502 6.345779 l cp s
+gsave 2.500000 7.762500 translate 0.035278 -0.035278 scale
+start_ol
+5729 6016 moveto
+5533 5056 lineto
+5124 5280 4670 5392 conicto
+4216 5504 3734 5504 conicto
+2921 5504 2452 5229 conicto
+1984 4954 1984 4482 conicto
+1984 3933 3088 3639 conicto
+3172 3617 3213 3606 conicto
+3548 3506 lineto
+4567 3221 4907 2908 conicto
+5248 2595 5248 2053 conicto
+5248 1059 4456 433 conicto
+3665 -192 2384 -192 conicto
+1886 -192 1338 -98 conicto
+790 -5 130 192 conicto
+331 1280 lineto
+896 997 1444 850 conicto
+1992 704 2496 704 conicto
+3263 704 3743 1023 conicto
+4224 1343 4224 1833 conicto
+4224 2361 2963 2686 conicto
+2854 2714 lineto
+2496 2802 lineto
+1700 3010 1330 3349 conicto
+960 3689 960 4217 conicto
+960 5221 1716 5810 conicto
+2472 6400 3771 6400 conicto
+4283 6400 4769 6304 conicto
+5256 6208 5729 6016 conicto
+end_ol grestore 
+gsave 20.940000 8.027500 translate 0.035278 -0.035278 scale
+start_ol
+4867 6272 moveto
+4711 5440 lineto
+2658 5440 lineto
+1992 2036 lineto
+1958 1846 1941 1717 conicto
+1925 1589 1925 1516 conicto
+1925 1157 2140 994 conicto
+2356 832 2831 832 conicto
+3872 832 lineto
+3698 0 lineto
+2714 0 lineto
+1796 0 1346 353 conicto
+896 706 896 1423 conicto
+896 1551 912 1702 conicto
+929 1854 963 2036 conicto
+1628 5440 lineto
+752 5440 lineto
+918 6272 lineto
+1774 6272 lineto
+2121 8064 lineto
+3150 8064 lineto
+2809 6272 lineto
+4867 6272 lineto
+end_ol grestore 
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 14.534251 8.380940 m 17.084091 6.455823 l s
+[] 0 sd
+0 slj
+0 slc
+n 17.383372 6.229867 m 17.134968 6.730662 l 17.084091 6.455823 l 16.833693 6.331621 l ef
+n 17.383372 6.229867 m 17.134968 6.730662 l 17.084091 6.455823 l 16.833693 6.331621 l cp s
+showpage
diff --git a/2-dinic/dinic-neprocistenasit.eps b/2-dinic/dinic-neprocistenasit.eps
new file mode 100644 (file)
index 0000000..0ef4bca
--- /dev/null
@@ -0,0 +1,489 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: Diagram1.dia
+%%Creator: Dia v0.94
+%%CreationDate: Sun Mar 26 18:43:17 2006
+%%For: bernard
+%%Orientation: Portrait
+%%Magnification: 1.0000
+%%BoundingBox: 0 0 645 410
+%%BeginSetup
+%%EndSetup
+%%EndComments
+%%BeginProlog
+[ /.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 /hyphen /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 /periodcentered /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] /isolatin1encoding exch def
+/cp {closepath} bind def
+/c {curveto} bind def
+/f {fill} bind def
+/a {arc} bind def
+/ef {eofill} bind def
+/ex {exch} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/sa {save} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/rm {rmoveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/sh {show} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/rot {rotate} bind def
+/sc {scale} bind def
+/sd {setdash} bind def
+/ff {findfont} bind def
+/sf {setfont} bind def
+/scf {scalefont} bind def
+/sw {stringwidth pop} bind def
+/tr {translate} bind def
+
+/ellipsedict 8 dict def
+ellipsedict /mtrx matrix put
+/ellipse
+{ ellipsedict begin
+   /endangle exch def
+   /startangle exch def
+   /yrad exch def
+   /xrad exch def
+   /y exch def
+   /x exch def   /savematrix mtrx currentmatrix def
+   x y tr xrad yrad sc
+   0 0 1 startangle endangle arc
+   savematrix setmatrix
+   end
+} def
+
+/mergeprocs {
+dup length
+3 -1 roll
+dup
+length
+dup
+5 1 roll
+3 -1 roll
+add
+array cvx
+dup
+3 -1 roll
+0 exch
+putinterval
+dup
+4 2 roll
+putinterval
+} bind def
+/dpi_x 300 def
+/dpi_y 300 def
+/conicto {
+    /to_y exch def
+    /to_x exch def
+    /conic_cntrl_y exch def
+    /conic_cntrl_x exch def
+    currentpoint
+    /p0_y exch def
+    /p0_x exch def
+    /p1_x p0_x conic_cntrl_x p0_x sub 2 3 div mul add def
+    /p1_y p0_y conic_cntrl_y p0_y sub 2 3 div mul add def
+    /p2_x p1_x to_x p0_x sub 1 3 div mul add def
+    /p2_y p1_y to_y p0_y sub 1 3 div mul add def
+    p1_x p1_y p2_x p2_y to_x to_y curveto
+} bind def
+/start_ol { gsave 1.1 dpi_x div dup scale} bind def
+/end_ol { closepath fill grestore } bind def
+28.346000 -28.346000 scale
+-2.500000 -16.434513 translate
+%%EndProlog
+
+
+1.000000 1.000000 1.000000 srgb
+n 6.862500 7.272280 0.950000 3.650000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 6.862500 7.272280 0.950000 3.650000 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 10.462500 7.272280 0.950000 3.650000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 10.462500 7.272280 0.950000 3.650000 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 13.862500 7.372280 0.950000 3.650000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 13.862500 7.372280 0.950000 3.650000 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 17.708500 7.468280 0.950000 3.650000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 17.708500 7.468280 0.950000 3.650000 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 3.087500 7.172280 0.462500 0.450000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 3.087500 7.172280 0.462500 0.450000 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 20.997500 7.468280 0.450000 0.450000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 20.997500 7.468280 0.450000 0.450000 0 360 ellipse cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 3.414537 6.854082 m 6.321672 5.200467 l s
+[] 0 sd
+0 slj
+0 slc
+n 6.647630 5.015059 m 6.336625 5.479576 l 6.321672 5.200467 l 6.089413 5.044965 l ef
+n 6.647630 5.015059 m 6.336625 5.479576 l 6.321672 5.200467 l 6.089413 5.044965 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 3.414537 7.490478 m 6.093929 8.973981 l s
+[] 0 sd
+0 slj
+0 slc
+n 6.422000 9.155625 m 5.863476 9.132147 l 6.093929 8.973981 l 6.105667 8.694719 l ef
+n 6.422000 9.155625 m 5.863476 9.132147 l 6.093929 8.973981 l 6.105667 8.694719 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 3.550000 7.172280 m 6.375918 7.257591 l s
+[] 0 sd
+0 slj
+0 slc
+n 6.750748 7.268907 m 6.243431 7.503705 l 6.375918 7.257591 l 6.258519 7.003933 l ef
+n 6.750748 7.268907 m 6.243431 7.503705 l 6.375918 7.257591 l 6.258519 7.003933 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 7.534251 4.691341 m 10.172509 9.263145 l s
+[] 0 sd
+0 slj
+0 slc
+n 10.359941 9.587944 m 9.893499 9.279834 l 10.172509 9.263145 l 10.326564 9.029924 l ef
+n 10.359941 9.587944 m 9.893499 9.279834 l 10.172509 9.263145 l 10.326564 9.029924 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 7.812500 7.272280 m 9.895478 5.202875 l s
+[] 0 sd
+0 slj
+0 slc
+n 10.161508 4.938578 m 9.982999 5.468328 l 9.895478 5.202875 l 9.630603 5.113621 l ef
+n 10.161508 4.938578 m 9.982999 5.468328 l 9.895478 5.202875 l 9.630603 5.113621 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 7.534251 9.853220 m 10.064779 7.422042 l s
+[] 0 sd
+0 slj
+0 slc
+n 10.335199 7.162239 m 10.147841 7.688924 l 10.064779 7.422042 l 9.801436 7.328363 l ef
+n 10.335199 7.162239 m 10.147841 7.688924 l 10.064779 7.422042 l 9.801436 7.328363 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 11.134251 4.691341 m 13.515281 7.031082 l s
+[] 0 sd
+0 slj
+0 slc
+n 13.782755 7.293918 m 13.250899 7.121786 l 13.515281 7.031082 l 13.601347 6.765154 l ef
+n 13.782755 7.293918 m 13.250899 7.121786 l 13.515281 7.031082 l 13.601347 6.765154 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 11.134251 9.853220 m 13.310798 9.858581 l s
+[] 0 sd
+0 slj
+0 slc
+n 13.685797 9.859505 m 13.185183 10.108273 l 13.310798 9.858581 l 13.186414 9.608274 l ef
+n 13.685797 9.859505 m 13.185183 10.108273 l 13.310798 9.858581 l 13.186414 9.608274 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 11.412500 7.272280 m 13.480030 5.273164 l s
+[] 0 sd
+0 slj
+0 slc
+n 13.749618 5.012496 m 13.563946 5.539778 l 13.480030 5.273164 l 13.216389 5.180327 l ef
+n 13.749618 5.012496 m 13.563946 5.539778 l 13.480030 5.273164 l 13.216389 5.180327 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 14.534251 4.791341 m 17.185798 4.785798 l s
+[] 0 sd
+0 slj
+0 slc
+n 17.560797 4.785014 m 17.061321 5.036059 l 17.185798 4.785798 l 17.060275 4.536060 l ef
+n 17.560797 4.785014 m 17.061321 5.036059 l 17.185798 4.785798 l 17.060275 4.536060 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 14.812500 7.372280 m 17.010844 7.402982 l s
+[] 0 sd
+0 slj
+0 slc
+n 17.385808 7.408219 m 16.882365 7.651212 l 17.010844 7.402982 l 16.889347 7.151261 l ef
+n 17.385808 7.408219 m 16.882365 7.651212 l 17.010844 7.402982 l 16.889347 7.151261 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 14.534251 9.953220 m 17.385804 9.937469 l s
+[] 0 sd
+0 slj
+0 slc
+n 17.760798 9.935398 m 17.262187 10.188156 l 17.385804 9.937469 l 17.259425 9.688163 l ef
+n 17.760798 9.935398 m 17.262187 10.188156 l 17.385804 9.937469 l 17.259425 9.688163 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 18.380251 4.887341 m 20.332351 6.808611 l s
+[] 0 sd
+0 slj
+0 slc
+n 20.599618 7.071657 m 20.067898 6.899107 l 20.332351 6.808611 l 20.418626 6.542751 l ef
+n 20.599618 7.071657 m 20.067898 6.899107 l 20.332351 6.808611 l 20.418626 6.542751 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 18.658500 7.468280 m 20.060697 7.468280 l s
+[] 0 sd
+0 slj
+0 slc
+n 20.435697 7.468280 m 19.935697 7.718280 l 20.060697 7.468280 l 19.935697 7.218280 l ef
+n 20.435697 7.468280 m 19.935697 7.718280 l 20.060697 7.468280 l 19.935697 7.218280 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 18.380251 10.049220 m 20.332351 8.127950 l s
+[] 0 sd
+0 slj
+0 slc
+n 20.599618 7.864904 m 20.418626 8.393810 l 20.332351 8.127950 l 20.067898 8.037454 l ef
+n 20.599618 7.864904 m 20.418626 8.393810 l 20.332351 8.127950 l 20.067898 8.037454 l cp s
+gsave 2.500000 9.334780 translate 0.035278 -0.035278 scale
+start_ol
+5729 6016 moveto
+5533 5056 lineto
+5124 5280 4670 5392 conicto
+4216 5504 3734 5504 conicto
+2921 5504 2452 5229 conicto
+1984 4954 1984 4482 conicto
+1984 3933 3088 3639 conicto
+3172 3617 3213 3606 conicto
+3548 3506 lineto
+4567 3221 4907 2908 conicto
+5248 2595 5248 2053 conicto
+5248 1059 4456 433 conicto
+3665 -192 2384 -192 conicto
+1886 -192 1338 -98 conicto
+790 -5 130 192 conicto
+331 1280 lineto
+896 997 1444 850 conicto
+1992 704 2496 704 conicto
+3263 704 3743 1023 conicto
+4224 1343 4224 1833 conicto
+4224 2361 2963 2686 conicto
+2854 2714 lineto
+2496 2802 lineto
+1700 3010 1330 3349 conicto
+960 3689 960 4217 conicto
+960 5221 1716 5810 conicto
+2472 6400 3771 6400 conicto
+4283 6400 4769 6304 conicto
+5256 6208 5729 6016 conicto
+end_ol grestore 
+gsave 20.940000 9.599780 translate 0.035278 -0.035278 scale
+start_ol
+4867 6272 moveto
+4711 5440 lineto
+2658 5440 lineto
+1992 2036 lineto
+1958 1846 1941 1717 conicto
+1925 1589 1925 1516 conicto
+1925 1157 2140 994 conicto
+2356 832 2831 832 conicto
+3872 832 lineto
+3698 0 lineto
+2714 0 lineto
+1796 0 1346 353 conicto
+896 706 896 1423 conicto
+896 1551 912 1702 conicto
+929 1854 963 2036 conicto
+1628 5440 lineto
+752 5440 lineto
+918 6272 lineto
+1774 6272 lineto
+2121 8064 lineto
+3150 8064 lineto
+2809 6272 lineto
+4867 6272 lineto
+end_ol grestore 
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 14.534251 9.953220 m 17.084091 8.028103 l s
+[] 0 sd
+0 slj
+0 slc
+n 17.383372 7.802147 m 17.134968 8.302942 l 17.084091 8.028103 l 16.833693 7.903901 l ef
+n 17.383372 7.802147 m 17.134968 8.302942 l 17.084091 8.028103 l 16.833693 7.903901 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+1.000000 0.000000 0.000000 srgb
+n 8.863225 5.441066 2.421913 2.421913 219.588577 311.325462 ellipse s
+[] 0 sd
+0 slj
+0 slc
+n 6.834543 4.235732 m 6.825501 3.676788 l 6.996801 3.897653 l 7.276273 3.893132 l ef
+n 6.834543 4.235732 m 6.825501 3.676788 l 6.996801 3.897653 l 7.276273 3.893132 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+0.975875 0.112764 0.032090 srgb
+n 14.340216 6.146671 4.094721 4.094721 208.352852 325.345101 ellipse s
+[] 0 sd
+0 slj
+0 slc
+n 10.602251 4.552157 m 10.548134 3.995765 l 10.736698 4.202087 l 11.014894 4.175028 l ef
+n 10.602251 4.552157 m 10.548134 3.995765 l 10.736698 4.202087 l 11.014894 4.175028 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 10.592609 8.092906 4.390150 4.390150 41.855976 148.145915 ellipse s
+[] 0 sd
+0 slj
+0 slc
+n 6.705357 10.069883 m 7.143037 10.417642 l 6.863637 10.409843 l 6.689758 10.628683 l ef
+n 6.705357 10.069883 m 7.143037 10.417642 l 6.863637 10.409843 l 6.689758 10.628683 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+0.000000 0.000000 1.000000 srgb
+n 8.903416 7.318665 5.568561 5.568561 344.301874 23.291516 ellipse s
+[] 0 sd
+0 slj
+0 slc
+n 14.123991 5.464213 m 14.542882 5.834389 l 14.264273 5.811986 l 14.079185 6.021431 l ef
+n 14.123991 5.464213 m 14.542882 5.834389 l 14.264273 5.811986 l 14.079185 6.021431 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 10.210327 7.033875 7.903347 7.903347 345.391335 13.883456 ellipse s
+[] 0 sd
+0 slj
+0 slc
+n 17.765218 9.286360 m 17.684576 8.733190 l 17.882784 8.930266 l 18.159369 8.889945 l ef
+n 17.765218 9.286360 m 17.684576 8.733190 l 17.882784 8.930266 l 18.159369 8.889945 l cp s
+0.100000 slw
+[0.200000] 0 sd
+[0.200000] 0 sd
+0 slc
+1.000000 0.000000 0.000000 srgb
+n 18.098907 7.940924 5.095559 5.095559 76.123301 143.210625 ellipse s
+[] 0 sd
+0 slj
+0 slc
+n 19.673168 12.758936 m 19.289485 13.165491 l 19.320991 12.887764 l 19.117714 12.695923 l ef
+n 19.673168 12.758936 m 19.289485 13.165491 l 19.320991 12.887764 l 19.117714 12.695923 l cp s
+0.100000 slw
+[0.200000] 0 sd
+[0.200000] 0 sd
+0 slc
+n 20.523276 17.455177 4.647800 4.647800 262.370045 335.408063 ellipse s
+[] 0 sd
+0 slj
+0 slc
+n 24.864022 15.878065 m 24.473265 15.478304 l 24.749496 15.520981 l 24.949377 15.325603 l ef
+n 24.864022 15.878065 m 24.473265 15.478304 l 24.749496 15.520981 l 24.949377 15.325603 l cp s
+0.100000 slw
+[0.200000] 0 sd
+[0.200000] 0 sd
+0 slc
+n 22.877863 13.726900 3.137477 3.137477 198.708808 306.782461 ellipse s
+[] 0 sd
+0 slj
+0 slc
+n 25.013538 11.487115 m 24.488799 11.294373 l 24.756517 11.214048 l 24.852887 10.951679 l ef
+n 25.013538 11.487115 m 24.488799 11.294373 l 24.756517 11.214048 l 24.852887 10.951679 l cp s
+0.100000 slw
+[0.200000] 0 sd
+[0.200000] 0 sd
+0 slc
+n 20.651986 8.352373 5.405747 5.405747 237.008785 291.992378 ellipse s
+[] 0 sd
+0 slj
+0 slc
+n 23.007451 3.516038 m 22.448609 3.502032 l 22.676347 3.339982 l 22.683350 3.060561 l ef
+n 23.007451 3.516038 m 22.448609 3.502032 l 22.676347 3.339982 l 22.683350 3.060561 l cp s
+0.100000 slw
+[0.200000] 0 sd
+[0.200000] 0 sd
+0 slc
+n 20.212569 -19.590058 24.545884 24.545884 83.309864 94.281036 ellipse s
+[] 0 sd
+0 slj
+0 slc
+n 23.443465 4.736181 m 22.983393 5.053725 l 23.072158 4.788686 l 22.913386 4.558651 l ef
+n 23.443465 4.736181 m 22.983393 5.053725 l 23.072158 4.788686 l 22.913386 4.558651 l cp s
+showpage
diff --git a/2-dinic/dinic-scaling-g.eps b/2-dinic/dinic-scaling-g.eps
new file mode 100644 (file)
index 0000000..250a58a
--- /dev/null
@@ -0,0 +1,654 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: Diagram5.dia
+%%Creator: Dia v0.94
+%%CreationDate: Thu Apr 27 16:18:04 2006
+%%For: bernard
+%%Orientation: Portrait
+%%Magnification: 1.0000
+%%BoundingBox: 0 0 1029 155
+%%BeginSetup
+%%EndSetup
+%%EndComments
+%%BeginProlog
+[ /.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 /hyphen /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 /periodcentered /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] /isolatin1encoding exch def
+/cp {closepath} bind def
+/c {curveto} bind def
+/f {fill} bind def
+/a {arc} bind def
+/ef {eofill} bind def
+/ex {exch} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/sa {save} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/rm {rmoveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/sh {show} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/rot {rotate} bind def
+/sc {scale} bind def
+/sd {setdash} bind def
+/ff {findfont} bind def
+/sf {setfont} bind def
+/scf {scalefont} bind def
+/sw {stringwidth pop} bind def
+/tr {translate} bind def
+
+/ellipsedict 8 dict def
+ellipsedict /mtrx matrix put
+/ellipse
+{ ellipsedict begin
+   /endangle exch def
+   /startangle exch def
+   /yrad exch def
+   /xrad exch def
+   /y exch def
+   /x exch def   /savematrix mtrx currentmatrix def
+   x y tr xrad yrad sc
+   0 0 1 startangle endangle arc
+   savematrix setmatrix
+   end
+} def
+
+/mergeprocs {
+dup length
+3 -1 roll
+dup
+length
+dup
+5 1 roll
+3 -1 roll
+add
+array cvx
+dup
+3 -1 roll
+0 exch
+putinterval
+dup
+4 2 roll
+putinterval
+} bind def
+/Times-Roman-latin1
+    /Times-Roman findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Times-Italic-latin1
+    /Times-Italic findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Times-Bold-latin1
+    /Times-Bold findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Times-BoldItalic-latin1
+    /Times-BoldItalic findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/AvantGarde-Book-latin1
+    /AvantGarde-Book findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/AvantGarde-BookOblique-latin1
+    /AvantGarde-BookOblique findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/AvantGarde-Demi-latin1
+    /AvantGarde-Demi findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/AvantGarde-DemiOblique-latin1
+    /AvantGarde-DemiOblique findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Bookman-Light-latin1
+    /Bookman-Light findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Bookman-LightItalic-latin1
+    /Bookman-LightItalic findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Bookman-Demi-latin1
+    /Bookman-Demi findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Bookman-DemiItalic-latin1
+    /Bookman-DemiItalic findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Courier-latin1
+    /Courier findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Courier-Oblique-latin1
+    /Courier-Oblique findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Courier-Bold-latin1
+    /Courier-Bold findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Courier-BoldOblique-latin1
+    /Courier-BoldOblique findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Helvetica-latin1
+    /Helvetica findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Helvetica-Oblique-latin1
+    /Helvetica-Oblique findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Helvetica-Bold-latin1
+    /Helvetica-Bold findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Helvetica-BoldOblique-latin1
+    /Helvetica-BoldOblique findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Helvetica-Narrow-latin1
+    /Helvetica-Narrow findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Helvetica-Narrow-Oblique-latin1
+    /Helvetica-Narrow-Oblique findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Helvetica-Narrow-Bold-latin1
+    /Helvetica-Narrow-Bold findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Helvetica-Narrow-BoldOblique-latin1
+    /Helvetica-Narrow-BoldOblique findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/NewCenturySchoolbook-Roman-latin1
+    /NewCenturySchoolbook-Roman findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/NewCenturySchoolbook-Italic-latin1
+    /NewCenturySchoolbook-Italic findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/NewCenturySchoolbook-Bold-latin1
+    /NewCenturySchoolbook-Bold findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/NewCenturySchoolbook-BoldItalic-latin1
+    /NewCenturySchoolbook-BoldItalic findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Palatino-Roman-latin1
+    /Palatino-Roman findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Palatino-Italic-latin1
+    /Palatino-Italic findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Palatino-Bold-latin1
+    /Palatino-Bold findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Palatino-BoldItalic-latin1
+    /Palatino-BoldItalic findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Symbol-latin1
+    /Symbol findfont
+definefont pop
+/ZapfChancery-MediumItalic-latin1
+    /ZapfChancery-MediumItalic findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/ZapfDingbats-latin1
+    /ZapfDingbats findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+28.346000 -28.346000 scale
+-2.500000 -7.467816 translate
+%%EndProlog
+
+
+1.000000 1.000000 1.000000 srgb
+n 3.012500 4.697072 0.462500 0.450000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 3.012500 4.697072 0.462500 0.450000 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 13.000000 4.697072 0.450000 0.450000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 13.000000 4.697072 0.450000 0.450000 0 360 ellipse cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 3.339537 4.378874 m 6.074626 2.961014 l s
+[] 0 sd
+0 slj
+0 slc
+n 6.407551 2.788427 m 6.078709 3.240493 l 6.074626 2.961014 l 5.848594 2.796593 l ef
+n 6.407551 2.788427 m 6.078709 3.240493 l 6.074626 2.961014 l 5.848594 2.796593 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 3.475000 4.697072 m 6.070801 5.161361 l s
+[] 0 sd
+0 slj
+0 slc
+n 6.439943 5.227387 m 5.903737 5.385447 l 6.070801 5.161361 l 5.991771 4.893258 l ef
+n 6.439943 5.227387 m 5.903737 5.385447 l 6.070801 5.161361 l 5.991771 4.893258 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 3.339537 5.015270 m 6.199782 6.761352 l s
+[] 0 sd
+0 slj
+0 slc
+n 6.519855 6.956745 m 5.962829 6.909602 l 6.199782 6.761352 l 6.223354 6.482839 l ef
+n 6.519855 6.956745 m 5.962829 6.909602 l 6.199782 6.761352 l 6.223354 6.482839 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 6.656000 2.858072 m 9.573797 2.858843 l s
+[] 0 sd
+0 slj
+0 slc
+n 9.948797 2.858942 m 9.448731 3.108810 l 9.573797 2.858843 l 9.448863 2.608810 l ef
+n 9.948797 2.858942 m 9.448731 3.108810 l 9.573797 2.858843 l 9.448863 2.608810 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 10.326000 2.911072 m 12.268633 4.121446 l s
+[] 0 sd
+0 slj
+0 slc
+n 12.586910 4.319751 m 12.030338 4.267528 l 12.268633 4.121446 l 12.294744 3.843159 l ef
+n 12.586910 4.319751 m 12.030338 4.267528 l 12.268633 4.121446 l 12.294744 3.843159 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 6.550000 5.247072 m 12.065229 4.741509 l s
+[] 0 sd
+0 slj
+0 slc
+n 12.438663 4.707278 m 11.963572 5.001876 l 12.065229 4.741509 l 11.917930 4.503963 l ef
+n 12.438663 4.707278 m 11.963572 5.001876 l 12.065229 4.741509 l 11.917930 4.503963 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 6.815282 6.965000 m 12.219843 5.168801 l s
+[] 0 sd
+0 slj
+0 slc
+n 12.575705 5.050531 m 12.180070 5.445465 l 12.219843 5.168801 l 12.022376 4.970984 l ef
+n 12.575705 5.050531 m 12.180070 5.445465 l 12.219843 5.168801 l 12.022376 4.970984 l cp s
+/Helvetica-latin1 ff 1.050000 scf sf
+(s) 2.550000 6.247072 m gs 1 -1 sc sh gr
+/Helvetica-latin1 ff 1.050000 scf sf
+(t) 12.700000 6.247072 m gs 1 -1 sc sh gr
+/Helvetica-latin1 ff 0.560000 scf sf
+(0) 3.515282 3.665000 m gs 1 -1 sc sh gr
+/Helvetica-latin1 ff 0.560000 scf sf
+(0) 7.540282 2.590000 m gs 1 -1 sc sh gr
+/Helvetica-latin1 ff 0.560000 scf sf
+(1) 8.440282 4.840000 m gs 1 -1 sc sh gr
+/Helvetica-latin1 ff 0.560000 scf sf
+(1) 11.515282 3.240000 m gs 1 -1 sc sh gr
+/Helvetica-latin1 ff 0.560000 scf sf
+(0) 9.215282 6.840000 m gs 1 -1 sc sh gr
+/Helvetica-latin1 ff 0.560000 scf sf
+(1) 4.977409 6.015135 m gs 1 -1 sc sh gr
+/Helvetica-latin1 ff 0.560000 scf sf
+(1) 4.690282 4.790000 m gs 1 -1 sc sh gr
+1.000000 1.000000 1.000000 srgb
+n 15.737500 4.697072 0.462500 0.450000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 15.737500 4.697072 0.462500 0.450000 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 25.725000 4.697072 0.450000 0.450000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 25.725000 4.697072 0.450000 0.450000 0 360 ellipse cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 16.064537 4.378874 m 18.799627 2.961014 l s
+[] 0 sd
+0 slj
+0 slc
+n 19.132551 2.788427 m 18.803710 3.240493 l 18.799627 2.961014 l 18.573594 2.796593 l ef
+n 19.132551 2.788427 m 18.803710 3.240493 l 18.799627 2.961014 l 18.573594 2.796593 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 16.200000 4.697072 m 18.795801 5.161361 l s
+[] 0 sd
+0 slj
+0 slc
+n 19.164943 5.227387 m 18.628737 5.385447 l 18.795801 5.161361 l 18.716771 4.893258 l ef
+n 19.164943 5.227387 m 18.628737 5.385447 l 18.795801 5.161361 l 18.716771 4.893258 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 16.064537 5.015270 m 18.924782 6.761352 l s
+[] 0 sd
+0 slj
+0 slc
+n 19.244855 6.956745 m 18.687829 6.909602 l 18.924782 6.761352 l 18.948354 6.482839 l ef
+n 19.244855 6.956745 m 18.687829 6.909602 l 18.924782 6.761352 l 18.948354 6.482839 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 19.381000 2.858072 m 22.298797 2.858843 l s
+[] 0 sd
+0 slj
+0 slc
+n 22.673797 2.858942 m 22.173731 3.108810 l 22.298797 2.858843 l 22.173863 2.608810 l ef
+n 22.673797 2.858942 m 22.173731 3.108810 l 22.298797 2.858843 l 22.173863 2.608810 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 23.051000 2.911072 m 24.993633 4.121446 l s
+[] 0 sd
+0 slj
+0 slc
+n 25.311910 4.319751 m 24.755338 4.267528 l 24.993633 4.121446 l 25.019744 3.843159 l ef
+n 25.311910 4.319751 m 24.755338 4.267528 l 24.993633 4.121446 l 25.019744 3.843159 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 19.275000 5.247072 m 24.790229 4.741509 l s
+[] 0 sd
+0 slj
+0 slc
+n 25.163663 4.707278 m 24.688572 5.001876 l 24.790229 4.741509 l 24.642930 4.503963 l ef
+n 25.163663 4.707278 m 24.688572 5.001876 l 24.790229 4.741509 l 24.642930 4.503963 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 19.540282 6.965000 m 24.944843 5.168801 l s
+[] 0 sd
+0 slj
+0 slc
+n 25.300705 5.050531 m 24.905070 5.445465 l 24.944843 5.168801 l 24.747376 4.970984 l ef
+n 25.300705 5.050531 m 24.905070 5.445465 l 24.944843 5.168801 l 24.747376 4.970984 l cp s
+/Helvetica-latin1 ff 1.050000 scf sf
+(s) 15.275000 6.247072 m gs 1 -1 sc sh gr
+/Helvetica-latin1 ff 1.050000 scf sf
+(t) 25.575000 6.297072 m gs 1 -1 sc sh gr
+/Helvetica-latin1 ff 0.560000 scf sf
+(00) 16.240282 3.665000 m gs 1 -1 sc sh gr
+/Helvetica-latin1 ff 0.560000 scf sf
+(01) 20.265282 2.590000 m gs 1 -1 sc sh gr
+/Helvetica-latin1 ff 0.560000 scf sf
+(11) 21.165282 4.840000 m gs 1 -1 sc sh gr
+/Helvetica-latin1 ff 0.560000 scf sf
+(10) 24.240282 3.240000 m gs 1 -1 sc sh gr
+/Helvetica-latin1 ff 0.560000 scf sf
+(01) 21.940282 6.840000 m gs 1 -1 sc sh gr
+/Helvetica-latin1 ff 0.560000 scf sf
+(10) 17.702409 6.015135 m gs 1 -1 sc sh gr
+/Helvetica-latin1 ff 0.560000 scf sf
+(11) 17.415282 4.790000 m gs 1 -1 sc sh gr
+1.000000 1.000000 1.000000 srgb
+n 28.290871 4.657072 0.462500 0.450000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 28.290871 4.657072 0.462500 0.450000 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 38.278371 4.657072 0.450000 0.450000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 38.278371 4.657072 0.450000 0.450000 0 360 ellipse cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 28.617908 4.338874 m 31.352997 2.921014 l s
+[] 0 sd
+0 slj
+0 slc
+n 31.685922 2.748427 m 31.357080 3.200493 l 31.352997 2.921014 l 31.126965 2.756593 l ef
+n 31.685922 2.748427 m 31.357080 3.200493 l 31.352997 2.921014 l 31.126965 2.756593 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 28.753371 4.657072 m 31.349172 5.121361 l s
+[] 0 sd
+0 slj
+0 slc
+n 31.718314 5.187387 m 31.182108 5.345447 l 31.349172 5.121361 l 31.270142 4.853258 l ef
+n 31.718314 5.187387 m 31.182108 5.345447 l 31.349172 5.121361 l 31.270142 4.853258 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 28.617908 4.975270 m 31.478153 6.721352 l s
+[] 0 sd
+0 slj
+0 slc
+n 31.798226 6.916745 m 31.241200 6.869602 l 31.478153 6.721352 l 31.501724 6.442839 l ef
+n 31.798226 6.916745 m 31.241200 6.869602 l 31.478153 6.721352 l 31.501724 6.442839 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 31.934371 2.818072 m 34.852167 2.818843 l s
+[] 0 sd
+0 slj
+0 slc
+n 35.227167 2.818942 m 34.727101 3.068810 l 34.852167 2.818843 l 34.727234 2.568810 l ef
+n 35.227167 2.818942 m 34.727101 3.068810 l 34.852167 2.818843 l 34.727234 2.568810 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 35.604371 2.871072 m 37.547004 4.081446 l s
+[] 0 sd
+0 slj
+0 slc
+n 37.865281 4.279751 m 37.308709 4.227528 l 37.547004 4.081446 l 37.573115 3.803159 l ef
+n 37.865281 4.279751 m 37.308709 4.227528 l 37.547004 4.081446 l 37.573115 3.803159 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 31.828371 5.207072 m 37.343600 4.701509 l s
+[] 0 sd
+0 slj
+0 slc
+n 37.717034 4.667278 m 37.241943 4.961876 l 37.343600 4.701509 l 37.196301 4.463963 l ef
+n 37.717034 4.667278 m 37.241943 4.961876 l 37.343600 4.701509 l 37.196301 4.463963 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 32.093653 6.925000 m 37.498214 5.128801 l s
+[] 0 sd
+0 slj
+0 slc
+n 37.854075 5.010531 m 37.458441 5.405465 l 37.498214 5.128801 l 37.300747 4.930984 l ef
+n 37.854075 5.010531 m 37.458441 5.405465 l 37.498214 5.128801 l 37.300747 4.930984 l cp s
+/Helvetica-latin1 ff 1.050000 scf sf
+(s) 27.828371 6.207072 m gs 1 -1 sc sh gr
+/Helvetica-latin1 ff 1.050000 scf sf
+(t) 38.128371 6.207072 m gs 1 -1 sc sh gr
+/Helvetica-latin1 ff 0.560000 scf sf
+(001) 28.793653 3.625000 m gs 1 -1 sc sh gr
+/Helvetica-latin1 ff 0.560000 scf sf
+(010) 32.818653 2.550000 m gs 1 -1 sc sh gr
+/Helvetica-latin1 ff 0.560000 scf sf
+(111) 33.718653 4.800000 m gs 1 -1 sc sh gr
+/Helvetica-latin1 ff 0.560000 scf sf
+(100) 36.793653 3.200000 m gs 1 -1 sc sh gr
+/Helvetica-latin1 ff 0.560000 scf sf
+(011) 34.493653 6.800000 m gs 1 -1 sc sh gr
+/Helvetica-latin1 ff 0.560000 scf sf
+(101) 30.255780 5.975135 m gs 1 -1 sc sh gr
+/Helvetica-latin1 ff 0.560000 scf sf
+(110) 29.968653 4.750000 m gs 1 -1 sc sh gr
+showpage
diff --git a/2-dinic/dinic-scaling-original.eps b/2-dinic/dinic-scaling-original.eps
new file mode 100644 (file)
index 0000000..3cd2ae9
--- /dev/null
@@ -0,0 +1,451 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: Diagram5.dia
+%%Creator: Dia v0.94
+%%CreationDate: Thu Apr 27 16:14:01 2006
+%%For: bernard
+%%Orientation: Portrait
+%%Magnification: 1.0000
+%%BoundingBox: 0 0 312 170
+%%BeginSetup
+%%EndSetup
+%%EndComments
+%%BeginProlog
+[ /.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 /hyphen /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 /periodcentered /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] /isolatin1encoding exch def
+/cp {closepath} bind def
+/c {curveto} bind def
+/f {fill} bind def
+/a {arc} bind def
+/ef {eofill} bind def
+/ex {exch} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/sa {save} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/rm {rmoveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/sh {show} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/rot {rotate} bind def
+/sc {scale} bind def
+/sd {setdash} bind def
+/ff {findfont} bind def
+/sf {setfont} bind def
+/scf {scalefont} bind def
+/sw {stringwidth pop} bind def
+/tr {translate} bind def
+
+/ellipsedict 8 dict def
+ellipsedict /mtrx matrix put
+/ellipse
+{ ellipsedict begin
+   /endangle exch def
+   /startangle exch def
+   /yrad exch def
+   /xrad exch def
+   /y exch def
+   /x exch def   /savematrix mtrx currentmatrix def
+   x y tr xrad yrad sc
+   0 0 1 startangle endangle arc
+   savematrix setmatrix
+   end
+} def
+
+/mergeprocs {
+dup length
+3 -1 roll
+dup
+length
+dup
+5 1 roll
+3 -1 roll
+add
+array cvx
+dup
+3 -1 roll
+0 exch
+putinterval
+dup
+4 2 roll
+putinterval
+} bind def
+/Times-Roman-latin1
+    /Times-Roman findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Times-Italic-latin1
+    /Times-Italic findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Times-Bold-latin1
+    /Times-Bold findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Times-BoldItalic-latin1
+    /Times-BoldItalic findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/AvantGarde-Book-latin1
+    /AvantGarde-Book findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/AvantGarde-BookOblique-latin1
+    /AvantGarde-BookOblique findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/AvantGarde-Demi-latin1
+    /AvantGarde-Demi findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/AvantGarde-DemiOblique-latin1
+    /AvantGarde-DemiOblique findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Bookman-Light-latin1
+    /Bookman-Light findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Bookman-LightItalic-latin1
+    /Bookman-LightItalic findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Bookman-Demi-latin1
+    /Bookman-Demi findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Bookman-DemiItalic-latin1
+    /Bookman-DemiItalic findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Courier-latin1
+    /Courier findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Courier-Oblique-latin1
+    /Courier-Oblique findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Courier-Bold-latin1
+    /Courier-Bold findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Courier-BoldOblique-latin1
+    /Courier-BoldOblique findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Helvetica-latin1
+    /Helvetica findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Helvetica-Oblique-latin1
+    /Helvetica-Oblique findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Helvetica-Bold-latin1
+    /Helvetica-Bold findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Helvetica-BoldOblique-latin1
+    /Helvetica-BoldOblique findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Helvetica-Narrow-latin1
+    /Helvetica-Narrow findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Helvetica-Narrow-Oblique-latin1
+    /Helvetica-Narrow-Oblique findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Helvetica-Narrow-Bold-latin1
+    /Helvetica-Narrow-Bold findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Helvetica-Narrow-BoldOblique-latin1
+    /Helvetica-Narrow-BoldOblique findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/NewCenturySchoolbook-Roman-latin1
+    /NewCenturySchoolbook-Roman findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/NewCenturySchoolbook-Italic-latin1
+    /NewCenturySchoolbook-Italic findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/NewCenturySchoolbook-Bold-latin1
+    /NewCenturySchoolbook-Bold findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/NewCenturySchoolbook-BoldItalic-latin1
+    /NewCenturySchoolbook-BoldItalic findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Palatino-Roman-latin1
+    /Palatino-Roman findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Palatino-Italic-latin1
+    /Palatino-Italic findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Palatino-Bold-latin1
+    /Palatino-Bold findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Palatino-BoldItalic-latin1
+    /Palatino-BoldItalic findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Symbol-latin1
+    /Symbol findfont
+definefont pop
+/ZapfChancery-MediumItalic-latin1
+    /ZapfChancery-MediumItalic findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/ZapfDingbats-latin1
+    /ZapfDingbats findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+28.346000 -28.346000 scale
+-2.500000 -7.977816 translate
+%%EndProlog
+
+
+1.000000 1.000000 1.000000 srgb
+n 3.012500 5.207072 0.462500 0.450000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 3.012500 5.207072 0.462500 0.450000 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 13.000000 5.207072 0.450000 0.450000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 13.000000 5.207072 0.450000 0.450000 0 360 ellipse cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 3.339537 4.888874 m 6.074626 3.471014 l s
+[] 0 sd
+0 slj
+0 slc
+n 6.407551 3.298427 m 6.078709 3.750493 l 6.074626 3.471014 l 5.848594 3.306593 l ef
+n 6.407551 3.298427 m 6.078709 3.750493 l 6.074626 3.471014 l 5.848594 3.306593 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 3.475000 5.207072 m 6.070801 5.671361 l s
+[] 0 sd
+0 slj
+0 slc
+n 6.439943 5.737387 m 5.903737 5.895447 l 6.070801 5.671361 l 5.991771 5.403258 l ef
+n 6.439943 5.737387 m 5.903737 5.895447 l 6.070801 5.671361 l 5.991771 5.403258 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 3.339537 5.525270 m 6.199782 7.271352 l s
+[] 0 sd
+0 slj
+0 slc
+n 6.519855 7.466745 m 5.962829 7.419602 l 6.199782 7.271352 l 6.223354 6.992839 l ef
+n 6.519855 7.466745 m 5.962829 7.419602 l 6.199782 7.271352 l 6.223354 6.992839 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 6.656000 3.368072 m 9.573797 3.368843 l s
+[] 0 sd
+0 slj
+0 slc
+n 9.948797 3.368942 m 9.448731 3.618810 l 9.573797 3.368843 l 9.448863 3.118810 l ef
+n 9.948797 3.368942 m 9.448731 3.618810 l 9.573797 3.368843 l 9.448863 3.118810 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 10.326000 3.421072 m 12.268633 4.631446 l s
+[] 0 sd
+0 slj
+0 slc
+n 12.586910 4.829751 m 12.030338 4.777528 l 12.268633 4.631446 l 12.294744 4.353159 l ef
+n 12.586910 4.829751 m 12.030338 4.777528 l 12.268633 4.631446 l 12.294744 4.353159 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 6.550000 5.757072 m 12.065229 5.251509 l s
+[] 0 sd
+0 slj
+0 slc
+n 12.438663 5.217278 m 11.963572 5.511876 l 12.065229 5.251509 l 11.917930 5.013963 l ef
+n 12.438663 5.217278 m 11.963572 5.511876 l 12.065229 5.251509 l 11.917930 5.013963 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 6.815282 7.475000 m 12.219843 5.678801 l s
+[] 0 sd
+0 slj
+0 slc
+n 12.575705 5.560531 m 12.180070 5.955465 l 12.219843 5.678801 l 12.022376 5.480984 l ef
+n 12.575705 5.560531 m 12.180070 5.955465 l 12.219843 5.678801 l 12.022376 5.480984 l cp s
+/Helvetica-latin1 ff 1.050000 scf sf
+(s) 2.550000 6.757072 m gs 1 -1 sc sh gr
+/Helvetica-latin1 ff 1.050000 scf sf
+(t) 12.700000 6.807072 m gs 1 -1 sc sh gr
+/Helvetica-latin1 ff 0.560000 scf sf
+/Helvetica-latin1 ff 0.560000 scf sf
+(001) 3.515282 4.175000 m gs 1 -1 sc sh gr
+/Helvetica-latin1 ff 0.560000 scf sf
+(010) 7.540282 3.100000 m gs 1 -1 sc sh gr
+/Helvetica-latin1 ff 0.560000 scf sf
+(111) 8.440282 5.350000 m gs 1 -1 sc sh gr
+/Helvetica-latin1 ff 0.560000 scf sf
+(100) 11.515282 3.750000 m gs 1 -1 sc sh gr
+/Helvetica-latin1 ff 0.560000 scf sf
+(011) 9.215282 7.350000 m gs 1 -1 sc sh gr
+/Helvetica-latin1 ff 0.560000 scf sf
+(101) 5.115282 6.475000 m gs 1 -1 sc sh gr
+/Helvetica-latin1 ff 0.560000 scf sf
+(110) 4.690282 5.300000 m gs 1 -1 sc sh gr
+showpage
diff --git a/2-dinic/dinic-sort.eps b/2-dinic/dinic-sort.eps
new file mode 100644 (file)
index 0000000..28d4d04
--- /dev/null
@@ -0,0 +1,427 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: Diagram4.dia
+%%Creator: Dia v0.94
+%%CreationDate: Thu Apr 27 15:56:34 2006
+%%For: bernard
+%%Orientation: Portrait
+%%Magnification: 1.0000
+%%BoundingBox: 0 0 383 127
+%%BeginSetup
+%%EndSetup
+%%EndComments
+%%BeginProlog
+[ /.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 /hyphen /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 /periodcentered /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] /isolatin1encoding exch def
+/cp {closepath} bind def
+/c {curveto} bind def
+/f {fill} bind def
+/a {arc} bind def
+/ef {eofill} bind def
+/ex {exch} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/sa {save} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/rm {rmoveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/sh {show} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/rot {rotate} bind def
+/sc {scale} bind def
+/sd {setdash} bind def
+/ff {findfont} bind def
+/sf {setfont} bind def
+/scf {scalefont} bind def
+/sw {stringwidth pop} bind def
+/tr {translate} bind def
+
+/ellipsedict 8 dict def
+ellipsedict /mtrx matrix put
+/ellipse
+{ ellipsedict begin
+   /endangle exch def
+   /startangle exch def
+   /yrad exch def
+   /xrad exch def
+   /y exch def
+   /x exch def   /savematrix mtrx currentmatrix def
+   x y tr xrad yrad sc
+   0 0 1 startangle endangle arc
+   savematrix setmatrix
+   end
+} def
+
+/mergeprocs {
+dup length
+3 -1 roll
+dup
+length
+dup
+5 1 roll
+3 -1 roll
+add
+array cvx
+dup
+3 -1 roll
+0 exch
+putinterval
+dup
+4 2 roll
+putinterval
+} bind def
+/Times-Roman-latin1
+    /Times-Roman findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Times-Italic-latin1
+    /Times-Italic findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Times-Bold-latin1
+    /Times-Bold findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Times-BoldItalic-latin1
+    /Times-BoldItalic findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/AvantGarde-Book-latin1
+    /AvantGarde-Book findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/AvantGarde-BookOblique-latin1
+    /AvantGarde-BookOblique findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/AvantGarde-Demi-latin1
+    /AvantGarde-Demi findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/AvantGarde-DemiOblique-latin1
+    /AvantGarde-DemiOblique findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Bookman-Light-latin1
+    /Bookman-Light findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Bookman-LightItalic-latin1
+    /Bookman-LightItalic findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Bookman-Demi-latin1
+    /Bookman-Demi findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Bookman-DemiItalic-latin1
+    /Bookman-DemiItalic findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Courier-latin1
+    /Courier findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Courier-Oblique-latin1
+    /Courier-Oblique findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Courier-Bold-latin1
+    /Courier-Bold findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Courier-BoldOblique-latin1
+    /Courier-BoldOblique findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Helvetica-latin1
+    /Helvetica findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Helvetica-Oblique-latin1
+    /Helvetica-Oblique findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Helvetica-Bold-latin1
+    /Helvetica-Bold findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Helvetica-BoldOblique-latin1
+    /Helvetica-BoldOblique findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Helvetica-Narrow-latin1
+    /Helvetica-Narrow findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Helvetica-Narrow-Oblique-latin1
+    /Helvetica-Narrow-Oblique findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Helvetica-Narrow-Bold-latin1
+    /Helvetica-Narrow-Bold findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Helvetica-Narrow-BoldOblique-latin1
+    /Helvetica-Narrow-BoldOblique findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/NewCenturySchoolbook-Roman-latin1
+    /NewCenturySchoolbook-Roman findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/NewCenturySchoolbook-Italic-latin1
+    /NewCenturySchoolbook-Italic findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/NewCenturySchoolbook-Bold-latin1
+    /NewCenturySchoolbook-Bold findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/NewCenturySchoolbook-BoldItalic-latin1
+    /NewCenturySchoolbook-BoldItalic findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Palatino-Roman-latin1
+    /Palatino-Roman findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Palatino-Italic-latin1
+    /Palatino-Italic findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Palatino-Bold-latin1
+    /Palatino-Bold findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Palatino-BoldItalic-latin1
+    /Palatino-BoldItalic findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Symbol-latin1
+    /Symbol findfont
+definefont pop
+/ZapfChancery-MediumItalic-latin1
+    /ZapfChancery-MediumItalic findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/ZapfDingbats-latin1
+    /ZapfDingbats findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+28.346000 -28.346000 scale
+-2.500000 -6.450000 translate
+%%EndProlog
+
+
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0.000000 1.000000 0.000000 srgb
+n 10.505954 2.098390 m 10.505954 5.875539 l 10.968454 5.875539 l 10.968454 2.098390 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+n 6.979994 2.098390 m 6.979994 5.875539 l 7.442494 5.875539 l 7.442494 2.098390 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+n 3.469994 2.098390 m 3.469994 5.910890 l 3.932494 5.910890 l 3.932494 2.098390 l cp s
+/Courier-latin1 ff 0.840000 scf sf
+0.000000 0.000000 0.000000 srgb
+(267) 2.500000 2.800000 m gs 1 -1 sc sh gr
+/Courier-latin1 ff 0.840000 scf sf
+(311) 2.500000 5.800000 m gs 1 -1 sc sh gr
+/Courier-latin1 ff 0.840000 scf sf
+(229) 2.500000 4.800000 m gs 1 -1 sc sh gr
+/Courier-latin1 ff 0.840000 scf sf
+(264) 2.500000 3.800000 m gs 1 -1 sc sh gr
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 4.783000 3.876610 m 5.596197 3.876610 l s
+[] 0 sd
+0 slj
+0 slc
+n 5.971197 3.876610 m 5.471197 4.126610 l 5.596197 3.876610 l 5.471197 3.626610 l ef
+n 5.971197 3.876610 m 5.471197 4.126610 l 5.596197 3.876610 l 5.471197 3.626610 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 8.473000 3.921610 m 9.286197 3.921610 l s
+[] 0 sd
+0 slj
+0 slc
+n 9.661197 3.921610 m 9.161197 4.171610 l 9.286197 3.921610 l 9.161197 3.671610 l ef
+n 9.661197 3.921610 m 9.161197 4.171610 l 9.286197 3.921610 l 9.161197 3.671610 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 12.573000 3.921610 m 13.386197 3.921610 l s
+[] 0 sd
+0 slj
+0 slc
+n 13.761197 3.921610 m 13.261197 4.171610 l 13.386197 3.921610 l 13.261197 3.671610 l ef
+n 13.761197 3.921610 m 13.261197 4.171610 l 13.386197 3.921610 l 13.261197 3.671610 l cp s
+/Courier-latin1 ff 0.840000 scf sf
+(267) 6.500000 4.800000 m gs 1 -1 sc sh gr
+/Courier-latin1 ff 0.840000 scf sf
+(311) 6.500000 2.800000 m gs 1 -1 sc sh gr
+/Courier-latin1 ff 0.840000 scf sf
+(229) 6.500000 5.800000 m gs 1 -1 sc sh gr
+/Courier-latin1 ff 0.840000 scf sf
+(264) 6.500000 3.800000 m gs 1 -1 sc sh gr
+/Courier-latin1 ff 0.840000 scf sf
+(267) 10.500000 5.800000 m gs 1 -1 sc sh gr
+/Courier-latin1 ff 0.840000 scf sf
+(311) 10.500000 2.800000 m gs 1 -1 sc sh gr
+/Courier-latin1 ff 0.840000 scf sf
+(229) 10.500000 3.800000 m gs 1 -1 sc sh gr
+/Courier-latin1 ff 0.840000 scf sf
+(264) 10.500000 4.800000 m gs 1 -1 sc sh gr
+/Courier-latin1 ff 0.840000 scf sf
+(267) 14.500000 4.800000 m gs 1 -1 sc sh gr
+/Courier-latin1 ff 0.840000 scf sf
+(311) 14.500000 5.800000 m gs 1 -1 sc sh gr
+/Courier-latin1 ff 0.840000 scf sf
+(229) 14.500000 2.800000 m gs 1 -1 sc sh gr
+/Courier-latin1 ff 0.840000 scf sf
+(264) 14.500000 3.800000 m gs 1 -1 sc sh gr
+showpage
diff --git a/2-dinic/dinic-vrcholrez.eps b/2-dinic/dinic-vrcholrez.eps
new file mode 100644 (file)
index 0000000..4458215
--- /dev/null
@@ -0,0 +1,226 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: Diagram1.dia
+%%Creator: Dia v0.94
+%%CreationDate: Sun Mar 26 18:47:25 2006
+%%For: bernard
+%%Orientation: Portrait
+%%Magnification: 1.0000
+%%BoundingBox: 0 0 195 210
+%%BeginSetup
+%%EndSetup
+%%EndComments
+%%BeginProlog
+[ /.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 /hyphen /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 /periodcentered /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] /isolatin1encoding exch def
+/cp {closepath} bind def
+/c {curveto} bind def
+/f {fill} bind def
+/a {arc} bind def
+/ef {eofill} bind def
+/ex {exch} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/sa {save} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/rm {rmoveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/sh {show} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/rot {rotate} bind def
+/sc {scale} bind def
+/sd {setdash} bind def
+/ff {findfont} bind def
+/sf {setfont} bind def
+/scf {scalefont} bind def
+/sw {stringwidth pop} bind def
+/tr {translate} bind def
+
+/ellipsedict 8 dict def
+ellipsedict /mtrx matrix put
+/ellipse
+{ ellipsedict begin
+   /endangle exch def
+   /startangle exch def
+   /yrad exch def
+   /xrad exch def
+   /y exch def
+   /x exch def   /savematrix mtrx currentmatrix def
+   x y tr xrad yrad sc
+   0 0 1 startangle endangle arc
+   savematrix setmatrix
+   end
+} def
+
+/mergeprocs {
+dup length
+3 -1 roll
+dup
+length
+dup
+5 1 roll
+3 -1 roll
+add
+array cvx
+dup
+3 -1 roll
+0 exch
+putinterval
+dup
+4 2 roll
+putinterval
+} bind def
+/dpi_x 300 def
+/dpi_y 300 def
+/conicto {
+    /to_y exch def
+    /to_x exch def
+    /conic_cntrl_y exch def
+    /conic_cntrl_x exch def
+    currentpoint
+    /p0_y exch def
+    /p0_x exch def
+    /p1_x p0_x conic_cntrl_x p0_x sub 2 3 div mul add def
+    /p1_y p0_y conic_cntrl_y p0_y sub 2 3 div mul add def
+    /p2_x p1_x to_x p0_x sub 1 3 div mul add def
+    /p2_y p1_y to_y p0_y sub 1 3 div mul add def
+    p1_x p1_y p2_x p2_y to_x to_y curveto
+} bind def
+/start_ol { gsave 1.1 dpi_x div dup scale} bind def
+/end_ol { closepath fill grestore } bind def
+28.346000 -28.346000 scale
+-5.000000 -8.200000 translate
+%%EndProlog
+
+
+1.000000 1.000000 1.000000 srgb
+n 7.862959 4.500000 0.950000 3.650000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 7.862959 4.500000 0.950000 3.650000 0 360 ellipse cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 5.070710 1.819060 m 7.498637 4.266877 l s
+[] 0 sd
+0 slj
+0 slc
+n 7.762718 4.533121 m 7.233114 4.354183 l 7.498637 4.266877 l 7.588106 4.002074 l ef
+n 7.762718 4.533121 m 7.233114 4.354183 l 7.498637 4.266877 l 7.588106 4.002074 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+1.000000 0.000000 0.000000 srgb
+n 5.070710 6.980940 m 7.247257 6.986301 l s
+[] 0 sd
+0 slj
+0 slc
+n 7.622256 6.987225 m 7.121641 7.235992 l 7.247257 6.986301 l 7.122873 6.735994 l ef
+n 7.622256 6.987225 m 7.121641 7.235992 l 7.247257 6.986301 l 7.122873 6.735994 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 5.348959 4.400000 m 7.416489 2.400883 l s
+[] 0 sd
+0 slj
+0 slc
+n 7.686076 2.140216 m 7.500404 2.667498 l 7.416489 2.400883 l 7.152848 2.308047 l ef
+n 7.686076 2.140216 m 7.500404 2.667498 l 7.416489 2.400883 l 7.152848 2.308047 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+0.000000 0.000000 0.000000 srgb
+n 7.905600 2.233600 m 11.130797 2.233600 l s
+[] 0 sd
+0 slj
+0 slc
+n 11.505797 2.233600 m 11.005797 2.483600 l 11.130797 2.233600 l 11.005797 1.983600 l ef
+n 11.505797 2.233600 m 11.005797 2.483600 l 11.130797 2.233600 l 11.005797 1.983600 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+1.000000 0.000000 0.000000 srgb
+n 8.033600 4.601600 m 10.947342 4.546675 l s
+[] 0 sd
+0 slj
+0 slc
+n 11.322275 4.539607 m 10.827076 4.798986 l 10.947342 4.546675 l 10.817652 4.299075 l ef
+n 11.322275 4.539607 m 10.827076 4.798986 l 10.947342 4.546675 l 10.817652 4.299075 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+0.000000 0.000000 0.000000 srgb
+n 8.097600 7.033600 m 11.322270 7.058710 l s
+[] 0 sd
+0 slj
+0 slc
+n 11.697259 7.061629 m 11.195327 7.307729 l 11.322270 7.058710 l 11.199220 6.807744 l ef
+n 11.697259 7.061629 m 11.195327 7.307729 l 11.322270 7.058710 l 11.199220 6.807744 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 8.033600 7.033600 m 10.999634 5.125842 l s
+[] 0 sd
+0 slj
+0 slc
+n 11.315027 4.922981 m 11.029744 5.403724 l 10.999634 5.125842 l 10.759263 4.983201 l ef
+n 11.315027 4.922981 m 11.029744 5.403724 l 10.999634 5.125842 l 10.759263 4.983201 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 7.905600 2.553600 m 8.001218 3.987875 l s
+[] 0 sd
+0 slj
+0 slc
+n 8.026163 4.362044 m 7.743457 3.879781 l 8.001218 3.987875 l 8.242350 3.846522 l ef
+n 8.026163 4.362044 m 7.743457 3.879781 l 8.001218 3.987875 l 8.242350 3.846522 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 5.281600 6.777600 m 7.401265 5.038387 l s
+[] 0 sd
+0 slj
+0 slc
+n 7.691168 4.800519 m 7.463210 5.310945 l 7.401265 5.038387 l 7.146052 4.924409 l ef
+n 7.691168 4.800519 m 7.463210 5.310945 l 7.401265 5.038387 l 7.146052 4.924409 l cp s
+showpage
diff --git a/2-dinic/dinic-zpetnahrana.eps b/2-dinic/dinic-zpetnahrana.eps
new file mode 100644 (file)
index 0000000..7c34ed3
--- /dev/null
@@ -0,0 +1,426 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: Diagram1.dia
+%%Creator: Dia v0.94
+%%CreationDate: Sun Mar 26 18:44:33 2006
+%%For: bernard
+%%Orientation: Portrait
+%%Magnification: 1.0000
+%%BoundingBox: 0 0 539 452
+%%BeginSetup
+%%EndSetup
+%%EndComments
+%%BeginProlog
+[ /.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 /hyphen /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 /periodcentered /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] /isolatin1encoding exch def
+/cp {closepath} bind def
+/c {curveto} bind def
+/f {fill} bind def
+/a {arc} bind def
+/ef {eofill} bind def
+/ex {exch} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/sa {save} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/rm {rmoveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/sh {show} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/rot {rotate} bind def
+/sc {scale} bind def
+/sd {setdash} bind def
+/ff {findfont} bind def
+/sf {setfont} bind def
+/scf {scalefont} bind def
+/sw {stringwidth pop} bind def
+/tr {translate} bind def
+
+/ellipsedict 8 dict def
+ellipsedict /mtrx matrix put
+/ellipse
+{ ellipsedict begin
+   /endangle exch def
+   /startangle exch def
+   /yrad exch def
+   /xrad exch def
+   /y exch def
+   /x exch def   /savematrix mtrx currentmatrix def
+   x y tr xrad yrad sc
+   0 0 1 startangle endangle arc
+   savematrix setmatrix
+   end
+} def
+
+/mergeprocs {
+dup length
+3 -1 roll
+dup
+length
+dup
+5 1 roll
+3 -1 roll
+add
+array cvx
+dup
+3 -1 roll
+0 exch
+putinterval
+dup
+4 2 roll
+putinterval
+} bind def
+/dpi_x 300 def
+/dpi_y 300 def
+/conicto {
+    /to_y exch def
+    /to_x exch def
+    /conic_cntrl_y exch def
+    /conic_cntrl_x exch def
+    currentpoint
+    /p0_y exch def
+    /p0_x exch def
+    /p1_x p0_x conic_cntrl_x p0_x sub 2 3 div mul add def
+    /p1_y p0_y conic_cntrl_y p0_y sub 2 3 div mul add def
+    /p2_x p1_x to_x p0_x sub 1 3 div mul add def
+    /p2_y p1_y to_y p0_y sub 1 3 div mul add def
+    p1_x p1_y p2_x p2_y to_x to_y curveto
+} bind def
+/start_ol { gsave 1.1 dpi_x div dup scale} bind def
+/end_ol { closepath fill grestore } bind def
+28.346000 -28.346000 scale
+-5.000000 -16.723001 translate
+%%EndProlog
+
+
+1.000000 1.000000 1.000000 srgb
+n 9.362500 4.500000 0.950000 3.650000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 9.362500 4.500000 0.950000 3.650000 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 12.962500 4.500000 0.950000 3.650000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 12.962500 4.500000 0.950000 3.650000 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 16.362500 4.600000 0.950000 3.650000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 16.362500 4.600000 0.950000 3.650000 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 20.016500 4.568000 0.950000 3.650000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 20.016500 4.568000 0.950000 3.650000 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 5.587500 4.400000 0.462500 0.450000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 5.587500 4.400000 0.462500 0.450000 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 23.497500 4.760000 0.450000 0.450000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 23.497500 4.760000 0.450000 0.450000 0 360 ellipse cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 6.050000 4.400000 m 8.875918 4.485311 l s
+[] 0 sd
+0 slj
+0 slc
+n 9.250748 4.496626 m 8.743431 4.731425 l 8.875918 4.485311 l 8.758519 4.231653 l ef
+n 9.250748 4.496626 m 8.743431 4.731425 l 8.875918 4.485311 l 8.758519 4.231653 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 9.697600 4.601600 m 12.365524 2.397546 l s
+[] 0 sd
+0 slj
+0 slc
+n 12.654628 2.158708 m 12.428381 2.669895 l 12.365524 2.397546 l 12.109931 2.284422 l ef
+n 12.654628 2.158708 m 12.428381 2.669895 l 12.365524 2.397546 l 12.109931 2.284422 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 12.833600 2.233600 m 16.005083 4.434923 l s
+[] 0 sd
+0 slj
+0 slc
+n 16.313146 4.648749 m 15.759844 4.569023 l 16.005083 4.434923 l 16.044946 4.158271 l ef
+n 16.313146 4.648749 m 15.759844 4.569023 l 16.005083 4.434923 l 16.044946 4.158271 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 16.673600 4.665600 m 19.706797 4.665600 l s
+[] 0 sd
+0 slj
+0 slc
+n 20.081797 4.665600 m 19.581797 4.915600 l 19.706797 4.665600 l 19.581797 4.415600 l ef
+n 20.081797 4.665600 m 19.581797 4.915600 l 19.706797 4.665600 l 19.581797 4.415600 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 20.513600 4.729600 m 22.560732 4.754160 l s
+[] 0 sd
+0 slj
+0 slc
+n 22.935705 4.758659 m 22.432742 5.002643 l 22.560732 4.754160 l 22.438740 4.502679 l ef
+n 22.935705 4.758659 m 22.432742 5.002643 l 22.560732 4.754160 l 22.438740 4.502679 l cp s
+gsave 5.000000 6.562500 translate 0.035278 -0.035278 scale
+start_ol
+5729 6016 moveto
+5533 5056 lineto
+5124 5280 4670 5392 conicto
+4216 5504 3734 5504 conicto
+2921 5504 2452 5229 conicto
+1984 4954 1984 4482 conicto
+1984 3933 3088 3639 conicto
+3172 3617 3213 3606 conicto
+3548 3506 lineto
+4567 3221 4907 2908 conicto
+5248 2595 5248 2053 conicto
+5248 1059 4456 433 conicto
+3665 -192 2384 -192 conicto
+1886 -192 1338 -98 conicto
+790 -5 130 192 conicto
+331 1280 lineto
+896 997 1444 850 conicto
+1992 704 2496 704 conicto
+3263 704 3743 1023 conicto
+4224 1343 4224 1833 conicto
+4224 2361 2963 2686 conicto
+2854 2714 lineto
+2496 2802 lineto
+1700 3010 1330 3349 conicto
+960 3689 960 4217 conicto
+960 5221 1716 5810 conicto
+2472 6400 3771 6400 conicto
+4283 6400 4769 6304 conicto
+5256 6208 5729 6016 conicto
+end_ol grestore 
+gsave 23.440000 6.827500 translate 0.035278 -0.035278 scale
+start_ol
+4867 6272 moveto
+4711 5440 lineto
+2658 5440 lineto
+1992 2036 lineto
+1958 1846 1941 1717 conicto
+1925 1589 1925 1516 conicto
+1925 1157 2140 994 conicto
+2356 832 2831 832 conicto
+3872 832 lineto
+3698 0 lineto
+2714 0 lineto
+1796 0 1346 353 conicto
+896 706 896 1423 conicto
+896 1551 912 1702 conicto
+929 1854 963 2036 conicto
+1628 5440 lineto
+752 5440 lineto
+918 6272 lineto
+1774 6272 lineto
+2121 8064 lineto
+3150 8064 lineto
+2809 6272 lineto
+4867 6272 lineto
+end_ol grestore 
+1.000000 1.000000 1.000000 srgb
+n 9.362500 12.891001 0.950000 3.650000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 9.362500 12.891001 0.950000 3.650000 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 12.962500 12.891001 0.950000 3.650000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 12.962500 12.891001 0.950000 3.650000 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 16.362500 12.991001 0.950000 3.650000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 16.362500 12.991001 0.950000 3.650000 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 20.080500 13.023001 0.950000 3.650000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 20.080500 13.023001 0.950000 3.650000 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 5.587500 12.791001 0.462500 0.450000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 5.587500 12.791001 0.462500 0.450000 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 23.497500 13.151001 0.450000 0.450000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 23.497500 13.151001 0.450000 0.450000 0 360 ellipse cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 6.050000 12.791001 m 8.875918 12.876311 l s
+[] 0 sd
+0 slj
+0 slc
+n 9.250748 12.887627 m 8.743431 13.122426 l 8.875918 12.876311 l 8.758519 12.622653 l ef
+n 9.250748 12.887627 m 8.743431 13.122426 l 8.875918 12.876311 l 8.758519 12.622653 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 9.697600 12.992601 m 12.365524 10.788547 l s
+[] 0 sd
+0 slj
+0 slc
+n 12.654628 10.549708 m 12.428381 11.060896 l 12.365524 10.788547 l 12.109931 10.675423 l ef
+n 12.654628 10.549708 m 12.428381 11.060896 l 12.365524 10.788547 l 12.109931 10.675423 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 16.545600 13.056601 m 19.593719 13.027628 l s
+[] 0 sd
+0 slj
+0 slc
+n 19.968702 13.024063 m 19.471100 13.278804 l 19.593719 13.027628 l 19.466348 12.778827 l ef
+n 19.968702 13.024063 m 19.471100 13.278804 l 19.593719 13.027628 l 19.466348 12.778827 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 20.513600 13.120601 m 22.560732 13.145161 l s
+[] 0 sd
+0 slj
+0 slc
+n 22.935705 13.149659 m 22.432742 13.393643 l 22.560732 13.145161 l 22.438740 12.893679 l ef
+n 22.935705 13.149659 m 22.432742 13.393643 l 22.560732 13.145161 l 22.438740 12.893679 l cp s
+gsave 5.000000 14.953501 translate 0.035278 -0.035278 scale
+start_ol
+5729 6016 moveto
+5533 5056 lineto
+5124 5280 4670 5392 conicto
+4216 5504 3734 5504 conicto
+2921 5504 2452 5229 conicto
+1984 4954 1984 4482 conicto
+1984 3933 3088 3639 conicto
+3172 3617 3213 3606 conicto
+3548 3506 lineto
+4567 3221 4907 2908 conicto
+5248 2595 5248 2053 conicto
+5248 1059 4456 433 conicto
+3665 -192 2384 -192 conicto
+1886 -192 1338 -98 conicto
+790 -5 130 192 conicto
+331 1280 lineto
+896 997 1444 850 conicto
+1992 704 2496 704 conicto
+3263 704 3743 1023 conicto
+4224 1343 4224 1833 conicto
+4224 2361 2963 2686 conicto
+2854 2714 lineto
+2496 2802 lineto
+1700 3010 1330 3349 conicto
+960 3689 960 4217 conicto
+960 5221 1716 5810 conicto
+2472 6400 3771 6400 conicto
+4283 6400 4769 6304 conicto
+5256 6208 5729 6016 conicto
+end_ol grestore 
+gsave 23.440000 15.218501 translate 0.035278 -0.035278 scale
+start_ol
+4867 6272 moveto
+4711 5440 lineto
+2658 5440 lineto
+1992 2036 lineto
+1958 1846 1941 1717 conicto
+1925 1589 1925 1516 conicto
+1925 1157 2140 994 conicto
+2356 832 2831 832 conicto
+3872 832 lineto
+3698 0 lineto
+2714 0 lineto
+1796 0 1346 353 conicto
+896 706 896 1423 conicto
+896 1551 912 1702 conicto
+929 1854 963 2036 conicto
+1628 5440 lineto
+752 5440 lineto
+918 6272 lineto
+1774 6272 lineto
+2121 8064 lineto
+3150 8064 lineto
+2809 6272 lineto
+4867 6272 lineto
+end_ol grestore 
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+0.975875 0.112764 0.032090 srgb
+n 16.163919 9.649882 3.439993 3.439993 87.657866 147.036577 ellipse s
+[] 0 sd
+0 slj
+0 slc
+n 13.132801 11.175720 m 13.556586 11.540284 l 13.277703 11.521594 l 13.095421 11.733486 l ef
+n 13.132801 11.175720 m 13.556586 11.540284 l 13.277703 11.521594 l 13.095421 11.733486 l cp s
+showpage
diff --git a/2-dinic/dinic.dia b/2-dinic/dinic.dia
new file mode 100644 (file)
index 0000000..2e5ec44
Binary files /dev/null and b/2-dinic/dinic.dia differ
diff --git a/3-bipcon/3-bipcon.tex b/3-bipcon/3-bipcon.tex
new file mode 100644 (file)
index 0000000..99595a1
--- /dev/null
@@ -0,0 +1,116 @@
+%%%%%%%%%%%%
+% Zápisek tøetího semináre z grafových agoritmù - ze dne 20.3.2006
+% Zapsal Jiøí Peinlich - peinlich@seznam.cz a Michal Kùrka - michal.kurka@gmail.com
+%%%%%%%%%%%
+
+\input ../sgr.tex
+
+\prednaska{3}{Bipartitní párování a globální k-souvislost}{zapsali Jiøí Peinlich, Michal Kùrka}
+
+\h{Maximální párování v $k$-regulárním bipartitním grafu}
+
+\s{Operace Degree Split} provádí rozdìlení sudì-regulárního grafu na dva
+podgrafy s polovièní regularitou. Operaci Degree Split definujme na
+sudì-regulárním grafu takto: V grafu najdeme eulerovský tah. Sestrojíme dva
+grafy, které budou mít oba stejnou mno¾inu vrcholù jako graf pùvodní a ka¾dý
+bude mít polovinu jeho hran. Mno¾inu hran prvního grafu budou tvoøit sudé hrany
+z nalezeného eulerovského tahu, mno¾inu hran druhého grafu pak hrany liché. Tuto
+operaci lze jistì provést v lineárním èase (v lineárním èase najdeme eulerovský
+tah i rozklad na sudé a liché hrany).
+
+Dále budeme pracovat s $2^d$-regulárními grafy. Operací Degree Split tedy získáme dva grafy, které budou $2^{d-1}$-regulární.
+
+Provedeme-li operaci Degree Split $\log k = d$ krát (polovinu hran v¾dy
+zahodíme), získáme 1-regulární podgraf a tedy párování pro zadaný graf (ve
+skuteènosti mù¾eme graf rozkládat na párování a vyrobit si 1-faktorizaci
+grafu). Slo¾itost nalezení párování bude tedy pro $2^d$ regulární grafy $\O(2^d n
+d)$.
+
+Pokud zadaný graf nebude $2^d$-regulární budeme muset pøidat hrany tak, aby nový
+graf tuto vlastnost mìl. Operaci Degree Split pak budeme provádìt tak, abychom
+se k párování blí¾ili.
+
+Místo toho, abychom do grafu hrany jen pøidávali, budeme v pøípadech, kdy je to
+mo¾né, pouze zvìt¹ovat násobnost hrany. U ka¾dé hrany si tedy budeme pamatovat
+její násobnost.
+
+\s{Degree Split s~násobnostmi:} Pro sudì-regulární grafy s násobnostmi zavedeme operaci Degree Split takto:
+Graf $G=(V,E)$ rozdìlíme na dva grafy $G_1$ a $G_2$, bude platit $V(G_1) = V(G_2) = V$. Hrany nyní pøidìlíme následujícím zpùsobem:
+\algo
+\:Pokud $e\in E$ v $G$ má sudou násobnost (znaèíme $n(e)$), umístíme ji do $E_1$ i do $E_2$ s násobností ${n(e) \over 2}$, v opaèném pøípadì pøidáme do obou grafù hranu s násobností $\lfloor {n(e) \over 2} \rfloor$. 
+\:Graf se zbylých hran má v¹echny stupnì sudé a je bez multiplicit. Provedeme na nìj pùvodní operaci Degree Split a rozdìlené mno¾iny hran pøidáme do $G_1$ a $G_2$.
+\endalgo
+
+Celý proces lze stihnout v èase $\O(m)$ ($m$ je poèet hran $G$), nebo» v první èásti u ka¾dé hrany pouze zjistíme, zda má sudou násobnost, pøidáme nové hrany v konstantním èase (upravíme násobnosti), a v druhé èásti se provede Split, který má té¾ lineární slo¾itost. Operace Degree Split má tedy slo¾itost $\O(m)$ i v grafu s násobnostmi.
+
+Mìjme nyní $k$-regulární bipartitní graf. Zvolme $t$ tak aby $2^t\geq kn$. 
+Zvolme dále 
+$\alpha := \lfloor {2^t \over k} \rfloor$ a
+$\beta := 2^t \bmod k$.
+Do grafu pøidáme hrany a upravíme násobnosti hran tak, aby byl $2^t$ regulární. Dále pøidáme triviální párování ($i$-tý vrchol vlevo se spojí s $i$-tým vrcholem vpravo) s násobností $\beta$. Tuto mno¾inu hran oznaème $F$. Platí $\beta < k \Rightarrow \vert F \vert < 2^t$.
+
+Takto získáme $2^t$-regulární graf. Na tento graf budeme aplikovat operaci Degree Split a vybereme si v¾dy tu polovinu, kde bude ménì hran z $F$. Tímto zpùsobem budem graf dìlit dokud budou stupnì vrcholù vìt¹í ne¾ jedna. Tedy $t$-krát. Poslední takto získaný graf bude 1-regulární (párování). V ka¾dém kroku se zbavíme alespoò poloviny hran z $F$. Provedeme to ceklem $t$-krát a tedy výsledné párování bude perfektní párování zadaného grafu.
+
+Slo¾itost algoritmu je $\O(kn \log n)$, proto¾e inicializace algoritmu se dá provést v lineárním èase, provede se $\log (kn)$ iterací po $\O(m)$. 
+
+\h{Algoritmy na hledání globální k-souvislosti}
+\s{Hranová k-souvislost}
+Problém zji¹tìní stupnì souvislosti grafu lze pøevést na problém hledání minimálního øezu v~grafu. Algoritmus pro hledání minimálního øezu lze zkonstruovat napøíklad tak, ¾e pro ka¾dé dva vrcholy $s$, $t$ zjistíme minimální $st$-øez. Algoritmus mù¾eme zrychlit, pokud si uvìdomíme, ¾e jeden z vrcholù $s$ nebo $t$ lze zvolit pevnì. Pokud pracujeme s orientovanými grafy, musíme projít jak $s \rightarrow t$ øezy tak i $t \rightarrow s$ øezy. Algoritmus bude mít slo¾itost $\O(n^{{5/3}}m)$.
+
+U vrcholové $k$-souvislosti to ov¹em tak snadno nepùjde. Pokud by toti¾ fixovaný vrchol byl souèástí nìjakého minimálního separátoru, algoritmus mù¾e selhat. Pøesto ale nemusíme procházet v¹echny dvojice vrcholù. Staèí si pamatovat, kolik vrcholù $s$ jsme u¾ pro v¹echny $t$ zkontrolovali a nejmen¹í zatím nalezený separátor. Kdy¾ bude poèet vrcholù vìt¹í ne¾ nejmen¹í separátor, tak u¾ jsme jistì na¹li jeden z minimálních øezù. Slo¾itost takového algoritmu pak bude $\O(\kappa (G) n^{3/2} m)$, kde $\kappa(G)$ je stupeò souvislosti $G$, který hledáme.
+
+Bez tokù se dá ov¹em najít hranová k-souvislost efektivnìji (i v ohodnocených grafech). Uka¾me si, jak na to.
+
+\h{Algoritmus pro nalezení minimálního globálního øezu v neorientovaných grafech (Namagochi, Ibaraki)}
+
+\noindent Zavedeme znaèení:
+
+\itemize\ibull
+\:{$r(u,v)$ buï kapacita minimálního $uv$-øezu}
+\:{$d(v)$ buï celková kapacita hran vedoucích z $v$}
+\:{$d(U)$ buï kapacita hran vedoucích z mno¾iny $U \subseteq V$, speciálnì $d(U)=d(\overline{U})$}
+\:{$d(P,Q)$ buï kapacita hran vedoucích mezi mno¾inami $P,Q$}
+\endlist
+
+\s{Definice} 
+{\it Legálním uspoøádáním vrcholù} (LU) budeme nazývat lineární uspoøádání vrcholù $v_1, v_2,... ,v_n$ takové, ¾e platí
+$d(\{v_1 \ldots v_{i-1}\},v_i) \geq d(\{v_1 \ldots v_{i-1}\},v_j)$ pro $1 \leq i<j\leq n$.
+
+\s{Lemma} Je-li $v_1 ... v_n$ LU na $G$, pak $r(v_{n-1},v_n)=d(v_n)$.
+
+\s{Dùkaz} Buï $C$ nìjaký øez oddìlující $v_{n-1}$ a $v_n$. Utvoøme posloupnost vrcholù $u_i$ takto:
+
+\algo
+\:$u_0 := v_1$
+\:$u_i := v_j$ tak, ¾e $j>i$, $v_i$ a $v_j$ jsou oddìleny øezem $C$ a $j$ je minimální takové.
+\endalgo
+
+Ka¾dé $u_{i-1}$ je tedy buï $u_i$, pokud jsou $v_i$ a $v_{i-1}$ na stejné stranì øezu, nebo $u_{i-1}$ je $v_i$ pokud jsou $v_i$ a $v_{i-1}$ na opaèné stranì øezu.
+Dostáváme tedy, ¾e $d(\{v_1...v_{i-1}\},u_i)\leq d(\{v_1...v_{i-1}\},u_{i-1})$, proto¾e buïto  $u_i=u_{i-1}$ a pak je nerovnost splnìna jako rovnost, nebo je $u_i=v_j$, $j>i$ a nerovnost plyne z LU vrcholù $v_i$.
+
+Chceme ukázat, ¾e velikost libovolného øezu je alespoò taková jako velikost øezu kolem vrcholu $v_n$.
+Platí, ¾e $ \vert C \vert \geq \sum_{i=1}^{n-1} d(v_i,u_i)$. Uká¾eme, ¾e pravá strana je alespoò $d(v_n)$.
+
+$$\sum_{i=1}^{n-1} d(v_i,u_i) = \sum_{i=1}^{n-1} d(\{v_1..v_i\},u_i) - d(\{v_1 \ldots v_{i-1}\},u_i) \geq \sum_{i=1}^{n-1} d(\{v_1 \ldots v_i\},u_i) - d(\{v_1 .. v_{i-1}\},u_{i-1}) = $$
+$$ = d(\{v_1 \ldots v_{n-1}\},u_{n-1}) - d(\{v_1 \ldots v_0\},u_0) = d(\{v_1 \ldots v_{n-1}\},v_n) - 0.$$
+\qed
+
+Dokázali jsme, ¾e libovolný øez separující $v_{n-1}$ a $v_n$ je vìt¹í ne¾ jednoduchý øez skládající se jen z hran kolem~$v_n$. Kdy¾ tedy sestavíme nìjakou LU posloupnost vrcholù, budeme mít k dispozici jednoduchý minimální øez $v_{n-1}$ a~$v_n$. Následnì vytvoøíme graf $G'$, v nìm¾ $v_{n-1}$ a $v_n$ skontrahujeme. Rekurzivnì najdeme minimální øez v $G'$. Hledaný minimální øez poté buïto oddìluje vrcholy $v_n$ a $v_{n-1}$ a potom je øez kolem vrcholu $v_n$ minimální, nebo vrcholy $v_n$ a $v_{n-1}$ neoddìluje, a v takovém pøípadì jej najdeme rekurzivnì. Hledaný øez je tedy men¹í z rekurzivnì nalezeného øezu a øezu kolem $v_n$.
+
+Zbývá ukázat, jak konstruovat LU. Postaèí hladovì: Pamatujeme si $\forall v\neq v_1 \ldots v_{i-1}$ hodnotu $d(\{v_1 \ldots v_{i-1},v)$, oznaème ji $z_v$. V ka¾dém kroku vybereme vrchol $v$ s maximální hodnotou $z_v$ a prohlásíme ho za $v_i$ a pøepoèítáme~$z_v$.
+
+Zde se hodí datová struktura, která doká¾e rychle hledat maxima a zvy¹ovat hodnoty prvkù,
+napøíklad Fibonacciho halda. Ta zvládne \<DeleteMax> v~èase $(\log n)$ a \<Increase> v~$\O(1)$
+amortizovanì. Celkem pak ná¹ algoritmus bude mít slo¾itost $\O(n(m+n\log n))$ pro obecné kapacity.
+
+Pokud jsou kapacity malá celá èísla, mù¾eme vyu¾ít balíèkové struktury. Budeme
+si udr¾ovat obousmìrný seznam zatím pou¾itých hodnot $z_v$, ka¾dý prvek takového
+seznamu bude obsahovat v¹echny vrcholy se spoleènou hodnotou $z_v$. Kdy¾ budeme
+mít seznam seøazený, vybrání minimálního prvku znamená pouze podívat se na
+první prvek seznamu a z nìj odebrat jeden vrchol, pøípadnì celý prvek ze seznamu
+odstranit. Operace \<Increase> poté bude reprezentovat pouze pøesunutí vrcholu o
+malý poèet pøihrádek, pøípadnì zalo¾ení nové pøihrádky na správném místì.
+\<DeleteMax> i \<Increase> pak budou mít slo¾itost $\O(1)$ amortizovanì a celý algoritmus $\O(mn)$.
+
+\bye
diff --git a/3-bipcon/Makefile b/3-bipcon/Makefile
new file mode 100644 (file)
index 0000000..431d8df
--- /dev/null
@@ -0,0 +1,3 @@
+P=3-bipcon
+
+include ../Makerules
diff --git a/4-ght/4-ght-g1g2.eps b/4-ght/4-ght-g1g2.eps
new file mode 100644 (file)
index 0000000..726a0a0
--- /dev/null
@@ -0,0 +1,743 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: Ipelib 60023 (Ipe 6.0 preview 23)
+%%CreationDate: D:20060422113939
+%%LanguageLevel: 2
+%%BoundingBox: 48 274 523 331
+%%HiResBoundingBox: 48.2757 274.484 522.945 330.54
+%%DocumentSuppliedResources: font CQTWIJ+CMR7
+%%+ font CDOQAH+CMR10
+%%+ font XECCSK+CMMI10
+%%EndComments
+%%BeginProlog
+%%BeginResource: procset ipe 6.0 60023
+/ipe 40 dict def ipe begin
+/np { newpath } def
+/m { moveto } def
+/l { lineto } def
+/c { curveto } def
+/h { closepath } def
+/re { 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+      neg 0 rlineto closepath } def
+/d { setdash } def
+/w { setlinewidth } def
+/J { setlinecap } def
+/j { setlinejoin } def
+/cm { [ 7 1 roll ] concat } def
+/q { gsave } def
+/Q { grestore } def
+/g { setgray } def
+/rg { setrgbcolor } def
+/G { setgray } def
+/RG { setrgbcolor } def
+/S { stroke } def
+/f* { eofill } def
+/f { fill } def
+/ipeMakeFont {
+  exch findfont
+  dup length dict begin
+    { 1 index /FID ne { def } { pop pop } ifelse } forall
+    /Encoding exch def
+    currentdict
+  end
+  definefont pop
+} def
+/ipeFontSize 0 def
+/Tf { dup /ipeFontSize exch store selectfont } def
+/Td { translate } def
+/BT { gsave } def
+/ET { grestore } def
+/TJ { 0 0 moveto { dup type /stringtype eq
+ { show } { ipeFontSize mul -0.001 mul 0 rmoveto } ifelse
+} forall } def
+end
+%%EndResource
+%%EndProlog
+%%BeginSetup
+ipe begin
+%%BeginResource: font CQTWIJ+CMR7
+%!PS-AdobeFont-1.1: CMR7 1.0
+%%CreationDate: 1991 Aug 20 16:39:21
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.0) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMR7) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CQTWIJ+CMR7 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 49 /one put
+dup 50 /two put
+readonly def
+/FontBBox{-27 -250 1122 750}readonly def
+/UniqueID 5000790 def
+currentdict end
+currentfile eexec
+d9d66f633b846a97b686a97e45a3d0aa052a014267b7904eb3c0d3bd0b83d891
+016ca6ca4b712adeb258faab9a130ee605e61f77fc1b738abc7c51cd46ef8171
+9098d5fee67660e69a7ab91b58f29a4d79e57022f783eb0fbbb6d4f4ec35014f
+d2decba99459a4c59df0c6eba150284454e707dc2100c15b76b4c19b84363758
+469a6c558785b226332152109871a9883487dd7710949204ddcf837e6a8708b8
+2bdbf16fbc7512faa308a093fe5cf5b8cabb9ffc6cc3f1e9ae32f234eb60fe7d
+e34995b1acff52428ea20c8ed4fd73e3935cebd40e0ead70c0887a451e1b1ac8
+47aede4191ccdb8b61345fd070fd30c4f375d8418ddd454729a251b3f61dae7c
+8882384282fdd6102ae8eefede6447576afa181f27a48216a9cad730561469e4
+78b286f22328f2ae84ef183de4119c402771a249aac1fa5435690a28d1b47486
+1060c8000d3fe1bf45133cf847a24b4f8464a63cea01ec84aa22fd005e74847e
+01426b6890951a7dd1f50a5f3285e1f958f11fc7f00ee26fee7c63998ea1328b
+c9841c57c80946d2c2fc81346249a664ecfb08a2ce075036cea7359fca1e90c0
+f686c3bb27eefa45d548f7bd074ce60e626a4f83c69fe93a5324133a78362f30
+8e8dcc80dd0c49e137cdc9ac08bae39282e26a7a4d8c159b95f227bda2a281af
+a9daebf31f504380b20812a211cf9feb112ec29a3fb3bd3e81809fc6293487a7
+455eb3b879d2b4bd46942bb1243896264722cb59146c3f65bd59b96a74b12bb2
+9a1354af174932210c6e19fe584b1b14c00e746089cbb17e68845d7b3ea05105
+eee461e3697fcf835cbe6d46c75523478e766832751cf6d96ec338bdad57d53b
+52f5340fac9fe0456ad13101824234b262ac0caba43b62ebda39795bae6cfe97
+563a50aae1f195888739f2676086a9811e5c9a4a7e0bf34f3e25568930adf80f
+0bddac3b634ad4ba6a59720ea4749236cf0f79aba4716c340f98517f6f06d9ab
+7ed8f46fc1868b5f3d3678df71aa772cf1f7dd222c6bf19d8ef0cfb7a76fc6d1
+0ad323c176134907ab375f20cfcd667ab094e2c7cb2179c4283329c9e435e7a4
+1e042ad0baa059b3f862236180b34d3fced833472577bacd472a4cd5c7347d2e
+1d0d6630f446f3708fcb29a85f40b4dab4d60aa8f5b2dbd67f2e45d80c7a7e86
+144669f75f8fa14609f8e4246fec475ed262e03d30393c78c7828206842b565a
+dbe20ea52ee9c4c3862b2f5f12cf89d935b89b84a45cefceaee8ec8806339364
+56ff1fe2e5112803e3e40162d5188d2210a54816aa9960611721c23a292ae80a
+8f8c0fb114d71c111700b0fea8804f37c5d31ecd7006603c53f4bdf7208286af
+3a25cee58e88bf81a4800b68c2a19ebdadf9b1074702e779a7dd915efe09d35e
+bd176d7346d859d0944520171c4e97696ae0502c43c391fce5e8fb1789065e18
+be3af62200d57912360411ce848b4550d1b0a3ba576f9b41ced3a23e753631a7
+25375abe8a4b55bc65ae2eafae452766961965093084d218637fb447795cc991
+eb1ef26bf82b7a81fa847abd3b559d35828ad7ddc5fc7b43c6c14e6adedd7663
+f272aa9a121630c5263d58773bcb1437ec2fc54c4af90e677a8e7d1738d003d4
+18998c03cc9ae182e7758767feb5e1b03c6cc32ad30d0abae6552290771e2cb1
+a23f469a8447c1868c6dec2c3c2bcfc691867e
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndResource
+/F7 /CQTWIJ+CMR7
+[ /.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/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+  /.notdef/one/two/.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/.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/.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/.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/.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
+  /.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/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef ]
+ipeMakeFont
+%%BeginResource: font CDOQAH+CMR10
+%!PS-AdobeFont-1.1: CMR10 1.00B
+%%CreationDate: 1992 Feb 19 19:54:52
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.00B) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMR10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CDOQAH+CMR10 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 40 /parenleft put
+dup 41 /parenright put
+readonly def
+/FontBBox{-251 -250 1009 969}readonly def
+/UniqueID 5000793 def
+currentdict end
+currentfile eexec
+d9d66f633b846a97b686a97e45a3d0aa052a014267b7904eb3c0d3bd0b83d891
+016ca6ca4b712adeb258faab9a130ee605e61f77fc1b738abc7c51cd46ef8171
+9098d5fee67660e69a7ab91b58f29a4d79e57022f783eb0fbbb6d4f4ec35014f
+d2decba99459a4c59df0c6eba150284454e707dc2100c15b76b4c19b84363758
+469a6c558785b226332152109871a9883487dd7710949204ddcf837e6a8708b8
+2bdbf16fbc7512faa308a093fe5cf7158f1163bc1f3352e22a1452e73feca8a4
+87100fb1ffc4c8af409b2067537220e605da0852ca49839e1386af9d7a1a455f
+d1f017ce45884d76ef2cb9bc5821fd25365ddea6e45f332b5f68a44ad8a530f0
+92a36fac8d27f9087afeea2096f839a2bc4b937f24e080ef7c0f9374a18d565c
+295a05210db96a23175ac59a9bd0147a310ef49c551a417e0a22703f94ff7b75
+409a5d417da6730a69e310fa6a4229fc7e4f620b0fc4c63c50e99e179eb51e4c
+4bc45217722f1e8e40f1e1428e792eafe05c5a50d38c52114dfcd24d54027cbf
+2512dd116f0463de4052a7ad53b641a27e81e481947884ce35661b49153fa19e
+0a2a860c7b61558671303de6ae06a80e4e450e17067676e6bbb42a9a24acbc3e
+b0ca7b7a3bfea84fed39ccfb6d545bb2bcc49e5e16976407ab9d94556cd4f008
+24ef579b6800b6dc3aaf840b3fc6822872368e3b4274dd06ca36af8f6346c11b
+43c772cc242f3b212c4bd7018d71a1a74c9a94ed0093a5fb6557f4e0751047af
+d72098eca301b8ae68110f983796e581f106144951df5b750432a230fda3b575
+5a38b5e7972aabc12306a01a99fcf8189d71b8dbf49550baea9cf1b97cbfc7cc
+96498ecc938b1a1710b670657de923a659db8757147b140a48067328e7e3f9c3
+7d1888b284904301450ce0bc15eeea00e48ccd6388f3fc3c8578ef9a20a0e06e
+4f7addaf0e7d1e182d115bf1ad931977325ad391e72e2b13cc108e3726c11099
+e2000623188aaac9f3e233eb253bdd8b0a4759a66a113e066238b0086ac1b634
+5abff90e4b5ed3fa69c22541981b2bfc9710aef6b50a8bb53431c7b4d380d721
+639e005d6b4688ee16bff48443e7c9e5fb5bc5883e271cb034289232a0694cce
+12a5a2637485fb47bc281a2129edc23d8091fb4f93a6b82e666703e6a2816bba
+ea4d74e605325f713552a653349310ea0929fa02d1f9ed57de58e1928e0ca31d
+070a4c7036ed071ac3f6429c76912fcb605a98a3307024a00afe54d463628836
+e6098757cd50e1d40fa54d41bc2fdc30f5cc9042e5d704d1712fc0a4b907a61a
+3fbc6271bea1021043e2c35e830d2c44e1a54aba687535a0e1cb727bb7c902d2
+5df97d44fb85c8397f1c1e14c11dbfd563a205f1e248f250549cd4689f361c71
+948ebfd988b5b8b8fb1d7051f234e4ea5c9cb798d99c17715d0799f60feac8a8
+8589452e8932a9e7844e816b3d0f18f1d542d05600cad430e88f8298961d8fda
+a630894c90d2505f9ad25f555f8c56518921ad52b39beb69f9ad1ed552b3cf16
+13ccadbc2933a59af6cf80f892efdb0d4e5cd766094aef332323ccffafa32fa0
+07bfeb8985c120d623c4e2323f6e4a3fe0086795c3043b988701add821404586
+0cd3e21e107a25d661bcb329db6a7083217b438f19710ca275e336ad37e90d10
+4cf8e8410e0311297d1e1dceb8c8a662c6735da66e9cd443
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndResource
+/F8 /CDOQAH+CMR10
+[ /.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/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+  /parenleft/parenright/.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/.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/.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/.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/.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/.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
+  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef ]
+ipeMakeFont
+%%BeginResource: font XECCSK+CMMI10
+%!PS-AdobeFont-1.1: CMMI10 1.100
+%%CreationDate: 1996 Jul 23 07:53:57
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.100) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMMI10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+end readonly def
+/FontName /XECCSK+CMMI10 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 14 /delta put
+dup 71 /G put
+dup 87 /W put
+dup 115 /s put
+dup 116 /t put
+dup 118 /v put
+readonly def
+/FontBBox{-32 -250 1048 750}readonly def
+/UniqueID 5087385 def
+currentdict end
+currentfile eexec
+d9d66f633b846a97b686a97e45a3d0aa0529731c99a784ccbe85b4993b2eebde
+3b12d472b7cf54651ef21185116a69ab1096ed4bad2f646635e019b6417cc77b
+532f85d811c70d1429a19a5307ef63eb5c5e02c89fc6c20f6d9d89e7d91fe470
+b72befda23f5df76be05af4ce93137a219ed8a04a9d7d6fdf37e6b7fcde0d90b
+986423e5960a5d9fbb4c956556e8df90cbfaec476fa36fd9a5c8175c9af513fe
+d919c2ddd26bdc0d99398b9f4d03d5993dfc0930297866e1cd0a319b6b1fd958
+9e394a533a081c36d456a09920001a3d2199583eb9b84b4dee08e3d12939e321
+990cd249827d9648574955f61baaa11263a91b6c3d47a5190165b0c25abf6d3e
+6ec187e4b05182126bb0d0323d943170b795255260f9fd25f2248d04f45dfbfb
+def7ff8b19bfef637b210018ae02572b389b3f76282beb29cc301905d388c721
+59616893e774413f48de0b408bc66dce3fe17cb9f84d205839d58014d6a88823
+d9320ae93af96d97a02c4d5a2bb2b8c7925c4578003959c46e3ce1a2f0eac4bf
+8b9b325e46435bde60bc54d72bc8acb5c0a34413ac87045dc7b84646a324b808
+6fd8e34217213e131c3b1510415ce45420688ed9c1d27890ec68bd7c1235faf9
+1dab3a369dd2fc3be5cf9655c7b7eda7361d7e05e5831b6b8e2eec542a7b38ee
+03be4bac6079d038acb3c7c916279764547c2d51976baba94ba9866d79f13909
+95aa39b0f03103a07cbdf441b8c5669f729020af284b7ff52a29c6255fcaacf1
+74109050fba2602e72593fbcbfc26e726ee4aef97b7632bc4f5f353b5c67fed2
+3ea752a4a57b8f7feff1d7341d895f0a3a0be1d8e3391970457a967eff84f6d8
+47750b1145b8cc5bd96ee7aa99ddc9e06939e383bda41175233d58ad263ebf19
+afc0e2f840512d321166547b306c592b8a01e1fa2564b9a26dac14256414e4c8
+42616728d918c74d13c349f4186ec7b9708b86467425a6fdb3a396562f7ee4d8
+40b43621744cf8a23a6e532649b66c2a0002dd04f8f39618e4f572819dd34837
+b5a08e643fdca1505af6a1fa3ddfd1fa758013caed8acddbbb334d664dff5b53
+95601766730045c2d9f29dc2bfebde5e7720cc7d82523c3853add5d6fd7c325b
+8947236ef618d55bcb5596851df9f1923eff6b5b4d8e7dcba59e3b06ba4e8cc3
+b25a2177c42d39e27f561dc464a0c69ed7e86d83e0b12514d94b1c5a0af0ff73
+4cc1fc83cd5fa1f2095f539be136d9274e2a7a40a4e3da5181d0965c47ee6330
+37bddc2a015987660a86c2e37a560e2972c38396f2fd7f28cbd53a24fe77de2d
+6a029d87e5cdea6f05b48279e6d46ebf539da629dfbe3c8f1c982236491ec7d4
+b449fd6d92830764c081092cd5ab9fcbe066d7341820d314db142afc1bd2c0fb
+762d26e1a4ffb06878eb8bb68104aba6465ac5f53d54af34b8097edc5b2b1172
+f5ebd6067c9f386578c9c35b92b087e33c21a29764b4535a6ed44f5c03dbd6be
+b22690a8e0b73571ded7a0a7de58111140c70852d8977324499bd6fc3c7fc99b
+e34b34d0b3fcff35f56da09112b915f073d5a6942482059a67d976db02cf4bb6
+97e815e5d16610c784f631bacf21123d0efa734e7bfe5334d2e228a0a81a0e68
+7c722345b8760ff03f262e24e93ce372792db968e54a9d14e1e899b029dbdb66
+eda7fe20ef2cb3ecc9cc2904ff6b57f5f6c572f39e2d17d038b99bc108db1aff
+75c4411e788881a9c95f132cd00e77767cbc0f3f9f2ee7422d4e121c1f9b31e3
+225806f57eb39dd449386c8c739386da2e652617881f20ce44bdb2e5245e4603
+43398b1d03587b89696f7d250cdfc76cd90c387d4ab497054d76d5af7699c97b
+d9a6af504f98f4597d4691f080a4da5913744ea538e991c5411ecaca6bbe07e8
+2fd4edc7fd749a095324eed92dd4f024242b6e5843ff63026f78206542c8cefa
+432fb1b91fb535cdcf66f61c3faaa0d72eae387417d1eebf3204310de07bd9cc
+114b6ba5853402acd2c6cc189ef0b557b069a45e245f2f50b5907407d6f8d444
+0b2206b929fe085a685b0bb24f902c822ecb034bc3f49b589f420d683fb1460a
+b3db7f9b74b6518e2b655ea35917e92d118012d80e79ce2ce8e1273595055da2
+3d0856a1d6c433b3773eda483390a412a5a0e0e7d1ec583bf83b3059d2d1e372
+2263cc5da00aa4a5b3912a07c63cfebcc4506baab9a13dad39724e5773606ac8
+306c5bef5ef5e4773a07e2a7189f3cea177f5b4d041035e715a908199c19a47b
+a8dbf610a3665ae5320cd46e86631c01905d44e44b1b76463d8089c31fdca5fa
+985cc464df29cb62f60a808d232462046894bef829981874bef5c84dc4b5ec19
+0ed285742099eb40ce1bbefa04ff5794df8a5ed80ca49a2c213443ca2b9056c1
+40253bf618f4c601eaf7bf1c2b3f1358d7cdbb84ec50af1726e3b295515142c0
+93183057c8206195532258e8870583fa754eeb07a8b0286282dfa8c28abef7f5
+c1597d600d79ad079c49852087a7ed9624d423edc2237fcc7092fe8e244437ce
+034b9e5b1f9bea12930bfab7d477f3eafc15406ac7f120782699cfb1d1832a99
+de5a7b009edbbd8ecbe1295841511b4864cd58dcd3c65c75230e3465d022e5a4
+0fa253d089e946b80f5d7261f1271c6730fa938e51cbb4891e1c19848c8fb851
+ba8a5e43ba7b72dc3c6b8e2b1ce2b5d20624ce40221308505851415f5a0cb7fc
+1825598c69893386d63655aec8867bb0fd47d32aa6b16b4568dc1995d3b8663a
+0c20bc233fa2538d73dd85427ae0057d8bb40b1c34e51d29f90af6db144aa4da
+de4244e0bd100f13c6a4185831e5910fd669d0f863aea9e788865879645c3d86
+30aab2a97dec398310eddf2501d3be3e2111b05b62bc7180159e662beee4327a
+53f27f07d01432307f2b29a0c9a14e11bcf37a1484cbd13e0a14b93f2a1e1f22
+b57c0b4f552dc01183d0f48dfbdd8a
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndResource
+/F11 /XECCSK+CMMI10
+[ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/delta/.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
+  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/G
+  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/W
+  /.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/s/t/.notdef/v/.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
+  /.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/.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/.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/.notdef/.notdef/.notdef/.notdef/.notdef ]
+ipeMakeFont
+%%EndSetup
+q 1 0 0 1 387.484 297.497 cm 1 0 0 1 0 0 cm 1 0 0 1 0 1.494 cm
+0 0 0 rg 0 0 0 RG
+1 0 0 1 0 -787.71 cm
+BT
+/F11 9.963 Tf 0 787.71 Td[(v)]TJ/F7 6.974 Tf 4.829 -1.494 Td[(2)]TJ
+ET
+Q
+q np
+402.69 299.947 m
+402.69 300.775 402.018 301.447 401.19 301.447 c
+400.362 301.447 399.69 300.775 399.69 299.947 c
+399.69 299.118 400.362 298.447 401.19 298.447 c
+402.018 298.447 402.69 299.118 402.69 299.947 c
+h q f* Q 0.6 w S
+Q
+q np
+449.071 295.336 m
+449.071 295.336 449.071 295.336 444.405 295.372 c
+439.738 295.407 430.405 295.478 422.411 296.206 c
+414.416 296.934 407.759 298.318 404.431 299.01 c
+401.103 299.702 401.103 299.702 401.103 299.702 c
+0.4 w S
+Q
+q np
+449.132 303.336 m
+449.132 303.336 449.132 303.336 445.132 303.367 c
+441.132 303.397 433.133 303.458 425.128 302.852 c
+417.123 302.246 409.113 300.974 405.108 300.338 c
+401.103 299.702 401.103 299.702 401.103 299.702 c
+0.4 w S
+Q
+q np
+457.041 291.276 m
+457.041 291.276 457.041 291.276 451.702 290.649 c
+446.364 290.023 435.688 288.771 426.365 290.176 c
+417.042 291.58 409.072 295.641 405.088 297.671 c
+401.103 299.702 401.103 299.702 401.103 299.702 c
+0.4 w S
+Q
+q np
+457.162 307.275 m
+457.162 307.275 457.162 307.275 451.834 307.982 c
+446.506 308.69 435.85 310.104 426.507 308.842 c
+417.164 307.58 409.133 303.641 405.118 301.671 c
+401.103 299.702 401.103 299.702 401.103 299.702 c
+0.4 w S
+Q
+q np
+465.01 287.215 m
+465.01 287.215 465.01 287.215 458.333 285.932 c
+451.657 284.65 438.303 282.085 427.652 284.166 c
+417.001 286.247 409.052 292.974 405.078 296.338 c
+401.103 299.702 401.103 299.702 401.103 299.702 c
+0.4 w S
+Q
+q np
+465.193 311.214 m
+465.193 311.214 465.193 311.214 458.536 312.598 c
+451.88 313.982 438.567 316.75 427.886 314.831 c
+417.204 312.913 409.154 306.307 405.128 303.004 c
+401.103 299.702 401.103 299.702 401.103 299.702 c
+0.4 w S
+Q
+q np
+472.979 283.154 m
+472.979 283.154 472.979 283.154 464.969 281.882 c
+456.959 280.609 440.94 278.064 428.96 280.822 c
+416.981 283.58 409.042 291.641 405.073 295.671 c
+401.103 299.702 401.103 299.702 401.103 299.702 c
+0.4 w S
+Q
+q np
+473.223 315.153 m
+473.223 315.153 473.223 315.153 465.233 316.547 c
+457.244 317.941 441.264 320.73 429.244 318.155 c
+417.224 315.579 409.164 307.64 405.134 303.671 c
+401.103 299.702 401.103 299.702 401.103 299.702 c
+0.4 w S
+Q
+q 1 0 0 1 454.334 321.016 cm 1 0 0 1 0 0 cm 1 0 0 1 0 1.494 cm
+0 0 0 rg 0 0 0 RG
+1 0 0 1 0 -785.192 cm
+BT
+/F11 9.963 Tf 0 785.192 Td[(G)]TJ/F7 6.974 Tf 7.833 -1.494 Td[(2)]TJ
+ET
+Q
+q 1 0 0 1 353.278 297.497 cm 1 0 0 1 0 0 cm 1 0 0 1 0 1.494 cm
+0 0 0 rg 0 0 0 RG
+1 0 0 1 0 -787.71 cm
+BT
+/F11 9.963 Tf 0 787.71 Td[(v)]TJ/F7 6.974 Tf 4.829 -1.494 Td[(1)]TJ
+ET
+Q
+q np
+349.415 299.754 m
+349.415 300.583 348.744 301.254 347.915 301.254 c
+347.087 301.254 346.415 300.583 346.415 299.754 c
+346.415 298.926 347.087 298.254 347.915 298.254 c
+348.744 298.254 349.415 298.926 349.415 299.754 c
+h q f* Q 0.6 w S
+Q
+q 1 0 0 1 274.824 321.016 cm 1 0 0 1 0 0 cm 1 0 0 1 0 1.494 cm
+0 0 0 rg 0 0 0 RG
+1 0 0 1 0 -785.192 cm
+BT
+/F11 9.963 Tf 0 785.192 Td[(G)]TJ/F7 6.974 Tf 7.833 -1.494 Td[(1)]TJ
+ET
+Q
+q np
+300 304 m
+300 304 300 304 304.667 304 c
+309.333 304 318.667 304 326.667 303.333 c
+334.667 302.667 341.333 301.333 344.667 300.667 c
+348 300 348 300 348 300 c
+0.4 w S
+Q
+q np
+300 296 m
+300 296 300 296 304 296 c
+308 296 316 296 324 296.667 c
+332 297.333 340 298.667 344 299.333 c
+348 300 348 300 348 300 c
+0.4 w S
+Q
+q np
+292 308 m
+292 308 292 308 297.333 308.667 c
+302.667 309.333 313.333 310.667 322.667 309.333 c
+332 308 340 304 344 302 c
+348 300 348 300 348 300 c
+0.4 w S
+Q
+q np
+292 292 m
+292 292 292 292 297.333 291.333 c
+302.667 290.667 313.333 289.333 322.667 290.667 c
+332 292 340 296 344 298 c
+348 300 348 300 348 300 c
+0.4 w S
+Q
+q np
+284 312 m
+284 312 284 312 290.667 313.333 c
+297.333 314.667 310.667 317.333 321.333 315.333 c
+332 313.333 340 306.667 344 303.333 c
+348 300 348 300 348 300 c
+0.4 w S
+Q
+q np
+284 288 m
+284 288 284 288 290.667 286.667 c
+297.333 285.333 310.667 282.667 321.333 284.667 c
+332 286.667 340 293.333 344 296.667 c
+348 300 348 300 348 300 c
+0.4 w S
+Q
+q np
+276 316 m
+276 316 276 316 284 317.333 c
+292 318.667 308 321.333 320 318.667 c
+332 316 340 308 344 304 c
+348 300 348 300 348 300 c
+0.4 w S
+Q
+q np
+276 284 m
+276 284 276 284 284 282.667 c
+292 281.333 308 278.667 320 281.333 c
+332 284 340 292 344 296 c
+348 300 348 300 348 300 c
+0.4 w S
+Q
+q np
+113.987 308.993 m
+106.685 312.645 99.3818 316.296 92.0791 318.122 c
+84.7764 319.947 77.4737 319.947 70.171 318.122 c
+62.8683 316.296 55.5656 312.645 51.9142 307.168 c
+48.2629 301.691 48.2629 294.388 51.9142 288.911 c
+55.5656 283.434 62.8683 279.782 70.171 277.957 c
+77.4737 276.131 84.7764 276.131 92.0791 277.957 c
+99.3818 279.782 106.685 283.434 113.987 287.085 c
+121.29 290.736 128.593 294.388 128.593 298.039 c
+128.593 301.691 121.29 305.342 113.987 308.993 c
+h 1 g q f* Q 0.4 w 0 g S
+Q
+q np
+135.895 308.993 m
+143.198 312.645 150.501 316.296 157.804 318.122 c
+165.106 319.947 172.409 319.947 179.712 318.122 c
+187.014 316.296 194.317 312.645 197.968 307.168 c
+201.62 301.691 201.62 294.388 197.968 288.911 c
+194.317 283.434 187.014 279.782 179.712 277.957 c
+172.409 276.131 165.106 276.131 157.804 277.957 c
+150.501 279.782 143.198 283.434 135.895 287.085 c
+128.593 290.736 121.29 294.388 121.29 298.039 c
+121.29 301.691 128.593 305.342 135.895 308.993 c
+h 1 g q f* Q 0.4 w 0 g S
+Q
+q np
+137.191 310.714 m
+139.547 303.648 139.547 294.227 137.191 287.161 c
+134.836 280.095 130.126 275.384 125.415 275.384 c
+120.704 275.384 115.994 280.095 113.638 287.161 c
+111.283 294.227 111.283 303.648 113.638 310.714 c
+115.994 317.78 120.704 322.49 125.415 322.49 c
+130.126 322.49 134.836 317.78 137.191 310.714 c
+h 1 g q f* Q 0.4 w 0 g S
+Q
+q 1 0 0 1 114.108 294.026 cm 1 0 0 1 0 0 cm 1 0 0 1 0 2.491 cm
+0 0 0 rg 0 0 0 RG
+1 0 0 1 0 -784.528 cm
+BT
+/F11 9.963 Tf 0 784.528 Td[(\016)]TJ/F8 9.963 Tf 4.805 0 Td[(\050)]TJ/F11 9.963 Tf 3.874 0 Td[(W)]TJ/F8 9.963 Tf 10.793 0 Td[(\051)]TJ
+ET
+Q
+q 1 0 0 1 68.0627 296.435 cm 1 0 0 1 0 0 cm 0 0 0 rg 0 0 0 RG
+1 0 0 1 0 -787.711 cm
+BT
+/F11 9.963 Tf 0 787.711 Td[(s)]TJ
+ET
+Q
+q 1 0 0 1 175.391 296.591 cm 1 0 0 1 0 0 cm 0 0 0 rg 0 0 0 RG
+1 0 0 1 0 -785.872 cm
+BT
+/F11 9.963 Tf 0 785.872 Td[(t)]TJ
+ET
+Q
+q np
+79.2825 297.608 m
+79.2825 298.437 78.6109 299.108 77.7825 299.108 c
+76.9541 299.108 76.2825 298.437 76.2825 297.608 c
+76.2825 296.78 76.9541 296.108 77.7825 296.108 c
+78.6109 296.108 79.2825 296.78 79.2825 297.608 c
+h q f* Q 0.6 w S
+Q
+q np
+169.717 299 m
+169.717 299.828 169.046 300.5 168.217 300.5 c
+167.389 300.5 166.717 299.828 166.717 299 c
+166.717 298.171 167.389 297.5 168.217 297.5 c
+169.046 297.5 169.717 298.171 169.717 299 c
+h q f* Q 0.6 w S
+Q
+q 1 0 0 1 164.258 323.732 cm 1 0 0 1 0 0 cm 0 0 0 rg 0 0 0 RG
+1 0 0 1 0 -785.192 cm
+BT
+/F11 9.963 Tf 0 785.192 Td[(W)]TJ
+ET
+Q
+q np
+291.874 309.899 m
+284.571 313.55 277.269 317.202 269.966 319.027 c
+262.663 320.853 255.361 320.853 248.058 319.027 c
+240.755 317.202 233.452 313.55 229.801 308.073 c
+226.15 302.596 226.15 295.293 229.801 289.816 c
+233.452 284.339 240.755 280.688 248.058 278.862 c
+255.361 277.037 262.663 277.037 269.966 278.862 c
+277.269 280.688 284.571 284.339 291.874 287.991 c
+299.177 291.642 306.479 295.293 306.479 298.945 c
+306.479 302.596 299.177 306.248 291.874 309.899 c
+h 1 g q f* Q 0.4 w 0 g S
+Q
+q 1 0 0 1 245.949 297.34 cm 1 0 0 1 0 0 cm 0 0 0 rg 0 0 0 RG
+1 0 0 1 0 -787.711 cm
+BT
+/F11 9.963 Tf 0 787.711 Td[(s)]TJ
+ET
+Q
+q np
+257.169 298.514 m
+257.169 299.342 256.498 300.014 255.669 300.014 c
+254.841 300.014 254.169 299.342 254.169 298.514 c
+254.169 297.686 254.841 297.014 255.669 297.014 c
+256.498 297.014 257.169 297.686 257.169 298.514 c
+h q f* Q 0.6 w S
+Q
+q np
+457.152 289.375 m
+464.427 285.669 471.702 281.962 478.99 280.081 c
+486.279 278.199 493.581 278.144 500.898 279.914 c
+508.214 281.684 515.544 285.279 519.237 290.729 c
+522.93 296.178 522.986 303.48 519.376 308.985 c
+515.767 314.489 508.492 318.196 501.203 320.078 c
+493.915 321.959 486.612 322.014 479.296 320.244 c
+471.98 318.474 464.649 314.879 457.319 311.283 c
+449.989 307.687 442.658 304.092 442.631 300.44 c
+442.603 296.789 449.878 293.082 457.152 289.375 c
+h 1 g q f* Q 0.4 w 0 g S
+Q
+q 1 0 0 1 501.081 298.101 cm 1 0 0 1 0 0 cm 0 0 0 rg 0 0 0 RG
+1 0 0 1 0 -785.872 cm
+BT
+/F11 9.963 Tf 0 785.872 Td[(t)]TJ
+ET
+Q
+q np
+494.943 300.485 m
+494.943 301.313 494.271 301.985 493.443 301.985 c
+492.614 301.985 491.943 301.313 491.943 300.485 c
+491.943 299.656 492.614 298.985 493.443 298.985 c
+494.271 298.985 494.943 299.656 494.943 300.485 c
+h q f* Q 0.6 w S
+Q
+showpage
+%%BeginIpeXml: /FlateDecode
+%GhUDE9lK&M&A@sB&AfLBK,J]#%`opO;h:[X?nVZj3EBT4Z=V+WZg"[^U\k^NS$h@#C=bXG,,sOj
+%)=kJ'm`S$B<^j>GlhMr=V9!3,TdfQ@DFW=J(hBVaU+',SnKQE>XI,7J-rWG=(S(htZHn1#ErK1E
+%T.;7`m+5T8.99KU-8Hq-WHqH+QMY/[>+:o!`oHp].!oXm"YR)B=Bji^Km7@Tag1iV(hGV-;!"lL
+%,Nee1*I5&[k2"5k<]@D@G)Q9l/QW1`g>Zn[T!b&pCn(8=PK$W%n-j\igQXrX<&3Ir[89aM&,aS-
+%iSjHA!]*L<Kk2Wkk=dFA5Th/%p*paClN5Y<HsBX=GUY$-FHf3c0k=`sPY]aDDW0/Y@T"c*TU$@u
+%=QNQYKM7?j[]O1mf`bbi2m^0>5(?c78Y>G>Our/JQ8d,3i.h\@C*/R4$\.0U&KR,.-45V]8UDSJ
+%k/ekE#1GV=mIUL2"D\Q?$Qq![7:[1Qr6=teM'NKNQjkUGF>^9\[7VtTpNHq]<M:Nh$&[keF[IRn
+%@c=PB@PlmV$6_0oW.]+W.)(VY2CbM?$O*ff7HKh33$9]`Mi,2"'FK"&('!\.l=g&V:]LNG/V]qU
+%Ql7NWoS1!u.7k9[K*&:IqeW?*)F\RdbVEim6-!i+c^0^7M/`]OYJp'>'`HcM7JH>f3sjHa6BfHY
+%r`VX_q[(@[V.L7'^oigFGXF]g&q+6JUaBSC$kWg[BIcQj;0o(NHs10dSBnl>*BP7Q*=3'P+"gkI
+%X^@koa/r\u0dj)1U`.:U?Rc1+X^B$6a/r]@f-d\mADgtKQ/l>@@^jGHB'>I9AA$8]ahZika0M^7
+%fupa=Mf1>3V_7"?f4T]>b>O?]U.K4]E:g%DF1ZmAgs,.g4I9m^FZmZW`IulfkBW07F@'`d)KD+M
+%e=WHC`2PsE:%LEaal@FRLOd>?%H>XW0Hk"tGAF$bd`2s326ngn%>(a408A4$lm(hm^Wsq4Z%MP;
+%8?B;k"mJX!HCq/CV1J;X9F\<%B#iEN8&,%j'NLY&o]>9-[!%g)2Bpa?.#MNDdkM!Sn953C/(l##
+%D2:9Xl6Og>\HipA<Y=En9,D`CEWDQ@?OebX1n9-$4g,L^&4VHH,#-SL#:b:RX,qEW,Y7bsr#aH.
+%nARt7N>U[2QaG.Q'cb"%bsB1>NlJb&[IL)#XmnT=V9SD[JB0S(jQYCJgF(o;b%RQfq$W?kFB:VT
+%IJ05@i!3htmBFVTJ,Io[PUdaBo[8EkX])KOGeKN\?qH'CC"&62s%ga!k9F,gcr:Y%ZmMd$l+RXs
+%S`>?8]T).I\PnqUKf`d;gnbOMW@\p"rW,LcYeU~>
+%%EndIpeXml
+%%Trailer
+end
+%%EOF
diff --git a/4-ght/4-ght-htl-a.eps b/4-ght/4-ght-htl-a.eps
new file mode 100644 (file)
index 0000000..20ed0a1
--- /dev/null
@@ -0,0 +1,300 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: Ipelib 60023 (Ipe 6.0 preview 23)
+%%CreationDate: D:20060416132451
+%%LanguageLevel: 2
+%%BoundingBox: 215 217 317 281
+%%HiResBoundingBox: 215.536 217.34 316.284 280.756
+%%DocumentSuppliedResources: font IVTBSA+CMMI10
+%%EndComments
+%%BeginProlog
+%%BeginResource: procset ipe 6.0 60023
+/ipe 40 dict def ipe begin
+/np { newpath } def
+/m { moveto } def
+/l { lineto } def
+/c { curveto } def
+/h { closepath } def
+/re { 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+      neg 0 rlineto closepath } def
+/d { setdash } def
+/w { setlinewidth } def
+/J { setlinecap } def
+/j { setlinejoin } def
+/cm { [ 7 1 roll ] concat } def
+/q { gsave } def
+/Q { grestore } def
+/g { setgray } def
+/rg { setrgbcolor } def
+/G { setgray } def
+/RG { setrgbcolor } def
+/S { stroke } def
+/f* { eofill } def
+/f { fill } def
+/ipeMakeFont {
+  exch findfont
+  dup length dict begin
+    { 1 index /FID ne { def } { pop pop } ifelse } forall
+    /Encoding exch def
+    currentdict
+  end
+  definefont pop
+} def
+/ipeFontSize 0 def
+/Tf { dup /ipeFontSize exch store selectfont } def
+/Td { translate } def
+/BT { gsave } def
+/ET { grestore } def
+/TJ { 0 0 moveto { dup type /stringtype eq
+ { show } { ipeFontSize mul -0.001 mul 0 rmoveto } ifelse
+} forall } def
+end
+%%EndResource
+%%EndProlog
+%%BeginSetup
+ipe begin
+%%BeginResource: font IVTBSA+CMMI10
+%!PS-AdobeFont-1.1: CMMI10 1.100
+%%CreationDate: 1996 Jul 23 07:53:57
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.100) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMMI10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+end readonly def
+/FontName /IVTBSA+CMMI10 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 85 /U put
+dup 88 /X put
+dup 115 /s put
+dup 116 /t put
+dup 117 /u put
+dup 118 /v put
+readonly def
+/FontBBox{-32 -250 1048 750}readonly def
+/UniqueID 5087385 def
+currentdict end
+currentfile eexec
+d9d66f633b846a97b686a97e45a3d0aa0529731c99a784ccbe85b4993b2eebde
+3b12d472b7cf54651ef21185116a69ab1096ed4bad2f646635e019b6417cc77b
+532f85d811c70d1429a19a5307ef63eb5c5e02c89fc6c20f6d9d89e7d91fe470
+b72befda23f5df76be05af4ce93137a219ed8a04a9d7d6fdf37e6b7fcde0d90b
+986423e5960a5d9fbb4c956556e8df90cbfaec476fa36fd9a5c8175c9af513fe
+d919c2ddd26bdc0d99398b9f4d03d5993dfc0930297866e1cd0a319b6b1fd958
+9e394a533a081c36d456a09920001a3d2199583eb9b84b4dee08e3d12939e321
+990cd249827d9648574955f61baaa11263a91b6c3d47a5190165b0c25abf6d3e
+6ec187e4b05182126bb0d0323d943170b795255260f9fd25f2248d04f45dfbfb
+def7ff8b19bfef637b210018ae02572b389b3f76282beb29cc301905d388c721
+59616893e774413f48de0b408bc66dce3fe17cb9f84d205839d58014d6a88823
+d9320ae93af96d97a02c4d5a2bb2b8c7925c4578003959c46e3ce1a2f0eac4bf
+8b9b325e46435bde60bc54d72bc8acb5c0a34413ac87045dc7b84646a324b808
+6fd8e34217213e131c3b1510415ce45420688ed9c1d27890ec68bd7c1235faf9
+1dab3a369dd2fc3be5cf9655c7b7eda7361d7e05e5831b6b8e2eec542a7b38ee
+03be4bac6079d038acb3c7c916279764547c2d51976baba94ba9866d79f13909
+95aa39b0f03103a07cbdf441b8c5669f729020af284b7ff52a29c6255fcaacf1
+74109050fba2602e72593fbcbfc26e726ee4aef97b7632bc4f5f353b5c67fed2
+3ea752a4a57b8f7feff1d7341d895f0a3a0be1d8e3391970457a967eff84f6d8
+47750b1145b8cc5bd96ee7aa99ddc9e06939e383bda41175233d58ad263ebf19
+afc0e2f840512d321166547b306c592b8a01e1fa2564b9a26dac14256414e4c8
+42616728d918c74d13c349f4186ec7b9708b86467425a6fdb3a396562f7ee4d8
+40b43621744cf8a23a6e532649b66c2a0002dd04f8f39618e4f572819dd34837
+b5a08e643fdca1505af6a1fa3ddfd1fa758013caed8acddbbb334d664dff5b53
+95601766730045c2d9f29dc2bfebde5e7720cc7d82520d57d7e67ca1d16bb0e0
+1598fdc79fb53825f274e188ee0ad0e1799f30415e80b3301ba4aa951abdb2a3
+5c0f36bd680e2cfd0d1b95ed75896e09024f83ce9c5d378d44172fe31d9db764
+8bca59da64a36cbdf16524d8e5bb779a41bc56a5c2b87c03894cc391afba6560
+e6409cb9c51432a20e699d7183e36cac37518da229aec38e417fa4e78ce77fd7
+1a05dee16820f505bb33f72df93a0d8df1328453bffb3a099a36dffe9a2fbeb6
+442d9396a46c4ac8c75e2f3c53c66ca6cde61e2d9c093cd44ecbf982a8e84a10
+0454b426c9c9213416f6fc09b862debc21b430252909f05b9d714e23c8af2510
+45b7ec0f52b7ee6d571774fdbc50c57ebb8a1781e1695a7ffe3221661bd0c9a3
+6ddd3ad04516e26cc274b96ae1c43dd170099a24cbf4efb195051eaff8b603b2
+cef01ffb72416e87ef71ab2e535b51ea535b966f963200e005f735cf65796174
+1b57d21da3ad55a614cbf2c254c4e485a25aa2a3380305b6da2cdeedf322566a
+7eb9e4b90c1ad9f6f40d2d1c50d0accecce489fde2b79367249730edbd18578e
+e808fdd04bb89f554667e69a6541403cd5f094e6c9603ad017be5d9d87bc9a92
+202b771959ac31bcfed0928dfb121b406633c1d6a5be4e1016ed65d6e971883d
+a9b1170ef01ec45987c77a2e0a6646423c6cc7ba0619674ca33924a06b3e5620
+9b78a39eacce44bd10a9983bc6ff21454410122bc55261e813c6ac26700be50e
+ab02dbbc743325325dc72663c9a10864d9c2cb145dd98df9359151865c0bd12f
+f06d236ba43f3bb06a8eef419e1b773e4c4eb828e732cd8bca6ad17d69bf7ea2
+7a6c24830b9a10c9c47b546ba1ab9b3e6371b5e9460b2ce94f113e1a4c3c75aa
+13205382451860506ed4c3c344c7f0f265df215aebc711cef76669cc6c83dd8a
+6ed48f9c2f049bdf59cb8a1c39394c813a0a16445382792e7ba0552f46963d0a
+6fa779d447bd11efa2dbb92058480b1b885b7c13904fd72d19f6034eddd79d27
+6628291faa4511f5d66da3c89458e62dcfb815bd91bf985af54a862ccb3b3b9d
+01d0038fcea011468aae83cc6229520ce316bb9519703be6a49f39021e675b0f
+b6da844d719c22428a61273509b25e5b210429864e905fc2d2929a53c16aebb1
+0196a4b562018a88da25e5ec027cca4701f39807eef5b859aada8d253bd245da
+a3fda24b8a812c0065e7a2b1f8af21fa1dd131e4b96e3a3fad82aaa7b494daf0
+2d398be5035ff58eeaf46218d2d284ac6d4aae77bea4b86471df05e4e578315b
+24aa132debd94e5ccaa2a21a670b1651317034605b72c63444390f9a1a3614cf
+b6fbff5cff6b2bf934a40361d2bf9cdc7b3285f6ce2e501c8d639f01ca675eb8
+9944e426c6ca327b3749866ca651fefa10ab41d1d59f0b72ff4ab2e8f29b4bb9
+095c91e76be65c4bfafe6dbedc8121c9e02ba2041836fe9b0d45074b6deb0f24
+6a3580d7a118f1726159783370dec583429e4c506993e8e44770e3ba54bd60e8
+e5699d926579c0a3a08e2dd4dfa587f27a3e52b898edf38fe0176d3f4ac8c5ad
+1a3b53c7567344c932b41b4b6232c9d0634a66e3c4ac372c07ebf0485e91c9a0
+f12792f5939eb4ff44eb40efbe0d72a7ea2a9b18c5d38ae8265f01b986f9686e
+9cb43d78fbfa562082416aafc8d5c971c9831ff6723a8290445e825957a411eb
+e677126aef0b761df5343c4ac77921c44f80f042d9babc2a6c91faa6f70fe2e5
+dbc197168a2f83de49994d7cc9ef74df01deecde3234ba8bf143465a8658d14a
+dc1b2ff2f17e6a67a7a1e955acb712a6cc2c010a12bb18787c472b8f004f5bb8
+b228b875ba4c401ac6f82274c048dfdee21895d803301eb63a3e98df079a2a77
+15964c81488a8f0bababbc214c7c368ca9111eb2c08a3fbb4ac270dd1ede653a
+6d5413ad84aa83ff54eec82a2d1c05e8b95d6087f867a34d54edda787038e4a6
+092c7eee09576817333f
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndResource
+/F11 /IVTBSA+CMMI10
+[ /.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/.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/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+  /.notdef/.notdef/.notdef/.notdef/.notdef/U/.notdef/.notdef
+  /X/.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/s/t/u/v/.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
+  /.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/.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/.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/.notdef/.notdef/.notdef/.notdef/.notdef ]
+ipeMakeFont
+%%EndSetup
+q np
+262.89 257.459 m
+285.066 257.459 307.243 247.654 307.243 237.849 c
+307.243 228.044 285.066 218.24 262.89 218.24 c
+240.714 218.24 218.537 228.044 218.537 237.849 c
+218.537 247.654 240.714 257.459 262.89 257.459 c
+h 0.4 w S
+Q
+q np
+262.585 251.467 m
+262.585 265.662 252.654 279.856 242.724 279.856 c
+232.794 279.856 222.864 265.662 222.864 251.467 c
+222.864 237.273 232.794 223.079 242.724 223.079 c
+252.654 223.079 262.585 237.273 262.585 251.467 c
+h 0.4 w S
+Q
+q 1 0 0 1 308.396 246.532 cm 1 0 0 1 0 0 cm 0 0 0 rg 0 0 0 RG
+1 0 0 1 0 -785.192 cm
+BT
+/F11 9.963 Tf 0 785.192 Td[(U)]TJ
+ET
+Q
+q 1 0 0 1 215.536 271.49 cm 1 0 0 1 0 0 cm 0 0 0 rg 0 0 0 RG
+1 0 0 1 0 -785.192 cm
+BT
+/F11 9.963 Tf 0 785.192 Td[(X)]TJ
+ET
+Q
+q np
+248.146 232.718 m
+248.146 233.546 247.475 234.218 246.646 234.218 c
+245.818 234.218 245.146 233.546 245.146 232.718 c
+245.146 231.89 245.818 231.218 246.646 231.218 c
+247.475 231.218 248.146 231.89 248.146 232.718 c
+h q f* Q 0.6 w S
+Q
+q 1 0 0 1 235.988 230.453 cm 1 0 0 1 0 0 cm 0 0 0 rg 0 0 0 RG
+1 0 0 1 0 -787.711 cm
+BT
+/F11 9.963 Tf 0 787.711 Td[(s)]TJ
+ET
+Q
+q np
+290.672 236.201 m
+290.672 237.03 290 237.701 289.172 237.701 c
+288.344 237.701 287.672 237.03 287.672 236.201 c
+287.672 235.373 288.344 234.701 289.172 234.701 c
+290 234.701 290.672 235.373 290.672 236.201 c
+h q f* Q 0.6 w S
+Q
+q 1 0 0 1 278.513 233.937 cm 1 0 0 1 0 0 cm 0 0 0 rg 0 0 0 RG
+1 0 0 1 0 -787.711 cm
+BT
+/F11 9.963 Tf 0 787.711 Td[(v)]TJ
+ET
+Q
+q np
+255.832 246.662 m
+255.832 247.491 255.16 248.162 254.332 248.162 c
+253.503 248.162 252.832 247.491 252.832 246.662 c
+252.832 245.834 253.503 245.162 254.332 245.162 c
+255.16 245.162 255.832 245.834 255.832 246.662 c
+h q f* Q 0.6 w S
+Q
+q 1 0 0 1 243.673 244.398 cm 1 0 0 1 0 0 cm 0 0 0 rg 0 0 0 RG
+1 0 0 1 0 -787.711 cm
+BT
+/F11 9.963 Tf 0 787.711 Td[(u)]TJ
+ET
+Q
+q np
+280.909 266.868 m
+280.909 267.696 280.237 268.368 279.409 268.368 c
+278.58 268.368 277.909 267.696 277.909 266.868 c
+277.909 266.039 278.58 265.368 279.409 265.368 c
+280.237 265.368 280.909 266.039 280.909 266.868 c
+h q f* Q 0.6 w S
+Q
+q 1 0 0 1 268.75 264.603 cm 1 0 0 1 0 0 cm 0 0 0 rg 0 0 0 RG
+1 0 0 1 0 -785.872 cm
+BT
+/F11 9.963 Tf 0 785.872 Td[(t)]TJ
+ET
+Q
+showpage
+%%BeginIpeXml: /FlateDecode
+%GhTQj9lCq)&;KZOMNO/SK4k*f5u,,c#?:!=J.&CX]37*<l*'QCPb^ki'iO/#[V+1[lY$,MD7Te(
+%ddNZK2cF$u2@:4Ja[=h/e/&F;eBmmMd$-Vj_/3=5H)<E3E61DQXKG(BB(ruer3%YalLQCSg1s?Q
+%%(#Kp=1`:_2h/cI,6d[aHTtGe^?q_i-8Jel<s;WQZeRK(b"Rr$&tAeqHJ%>]N9!^BcH"G0Y@D6q
+%)MYmAR_t&b/e@9gXJ_lmd'krs1uIB5N>Tl,hhV`$4rI'!l2meL*&U**BL@_D>,."WTIYV0fCmt3
+%&T?_f0\[1$%ifh)*'a*FGdnbg-e6)UakPON]h'Sgmu.XKBeX4P84^asf@lr$P^"Ib+F;)B@6LX%
+%<W>#FU"g/sC"#qD?l[R>QPd^nQ$5^_e$XeYON6Fm/l)a4"iE\TZY]3FC_YY^b@*P4!Fq&qetlNO
+%#MDih[<.b3X$NlGO>kEVbg5$PBX^ll@sLjC\b^V0SQ([5=sZmVfh2EiE].3425.2Mo"A)=4^6b)
+%roW*;*<r5<A+=*I'3)k_>QgfB;AB0.Ffnd@Q/:Rq+qucM+=^o`SW1BpQi[U)>PD"m3t@044O^OU
+%e]lc(p(u-g-PWCp5%5/>+%4![)DVN:#t#j$c_jY5rr^=#66%/CB%aCu-\mbrru`A'TPZA^DjHdO
+%OC,jLB_-Zo[hnUSN6*CS@h[6Dfam*$#j'K*^`$^ojKKJCl,>M-O2M2]L1_KiqU3ot4N#dGT=N&a
+%;?~>
+%%EndIpeXml
+%%Trailer
+end
+%%EOF
diff --git a/4-ght/4-ght-htl-b.eps b/4-ght/4-ght-htl-b.eps
new file mode 100644 (file)
index 0000000..3a1607a
--- /dev/null
@@ -0,0 +1,300 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: Ipelib 60023 (Ipe 6.0 preview 23)
+%%CreationDate: D:20060416132502
+%%LanguageLevel: 2
+%%BoundingBox: 215 217 317 281
+%%HiResBoundingBox: 215.536 217.34 316.284 280.756
+%%DocumentSuppliedResources: font IVTBSA+CMMI10
+%%EndComments
+%%BeginProlog
+%%BeginResource: procset ipe 6.0 60023
+/ipe 40 dict def ipe begin
+/np { newpath } def
+/m { moveto } def
+/l { lineto } def
+/c { curveto } def
+/h { closepath } def
+/re { 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+      neg 0 rlineto closepath } def
+/d { setdash } def
+/w { setlinewidth } def
+/J { setlinecap } def
+/j { setlinejoin } def
+/cm { [ 7 1 roll ] concat } def
+/q { gsave } def
+/Q { grestore } def
+/g { setgray } def
+/rg { setrgbcolor } def
+/G { setgray } def
+/RG { setrgbcolor } def
+/S { stroke } def
+/f* { eofill } def
+/f { fill } def
+/ipeMakeFont {
+  exch findfont
+  dup length dict begin
+    { 1 index /FID ne { def } { pop pop } ifelse } forall
+    /Encoding exch def
+    currentdict
+  end
+  definefont pop
+} def
+/ipeFontSize 0 def
+/Tf { dup /ipeFontSize exch store selectfont } def
+/Td { translate } def
+/BT { gsave } def
+/ET { grestore } def
+/TJ { 0 0 moveto { dup type /stringtype eq
+ { show } { ipeFontSize mul -0.001 mul 0 rmoveto } ifelse
+} forall } def
+end
+%%EndResource
+%%EndProlog
+%%BeginSetup
+ipe begin
+%%BeginResource: font IVTBSA+CMMI10
+%!PS-AdobeFont-1.1: CMMI10 1.100
+%%CreationDate: 1996 Jul 23 07:53:57
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.100) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMMI10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+end readonly def
+/FontName /IVTBSA+CMMI10 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 85 /U put
+dup 88 /X put
+dup 115 /s put
+dup 116 /t put
+dup 117 /u put
+dup 118 /v put
+readonly def
+/FontBBox{-32 -250 1048 750}readonly def
+/UniqueID 5087385 def
+currentdict end
+currentfile eexec
+d9d66f633b846a97b686a97e45a3d0aa0529731c99a784ccbe85b4993b2eebde
+3b12d472b7cf54651ef21185116a69ab1096ed4bad2f646635e019b6417cc77b
+532f85d811c70d1429a19a5307ef63eb5c5e02c89fc6c20f6d9d89e7d91fe470
+b72befda23f5df76be05af4ce93137a219ed8a04a9d7d6fdf37e6b7fcde0d90b
+986423e5960a5d9fbb4c956556e8df90cbfaec476fa36fd9a5c8175c9af513fe
+d919c2ddd26bdc0d99398b9f4d03d5993dfc0930297866e1cd0a319b6b1fd958
+9e394a533a081c36d456a09920001a3d2199583eb9b84b4dee08e3d12939e321
+990cd249827d9648574955f61baaa11263a91b6c3d47a5190165b0c25abf6d3e
+6ec187e4b05182126bb0d0323d943170b795255260f9fd25f2248d04f45dfbfb
+def7ff8b19bfef637b210018ae02572b389b3f76282beb29cc301905d388c721
+59616893e774413f48de0b408bc66dce3fe17cb9f84d205839d58014d6a88823
+d9320ae93af96d97a02c4d5a2bb2b8c7925c4578003959c46e3ce1a2f0eac4bf
+8b9b325e46435bde60bc54d72bc8acb5c0a34413ac87045dc7b84646a324b808
+6fd8e34217213e131c3b1510415ce45420688ed9c1d27890ec68bd7c1235faf9
+1dab3a369dd2fc3be5cf9655c7b7eda7361d7e05e5831b6b8e2eec542a7b38ee
+03be4bac6079d038acb3c7c916279764547c2d51976baba94ba9866d79f13909
+95aa39b0f03103a07cbdf441b8c5669f729020af284b7ff52a29c6255fcaacf1
+74109050fba2602e72593fbcbfc26e726ee4aef97b7632bc4f5f353b5c67fed2
+3ea752a4a57b8f7feff1d7341d895f0a3a0be1d8e3391970457a967eff84f6d8
+47750b1145b8cc5bd96ee7aa99ddc9e06939e383bda41175233d58ad263ebf19
+afc0e2f840512d321166547b306c592b8a01e1fa2564b9a26dac14256414e4c8
+42616728d918c74d13c349f4186ec7b9708b86467425a6fdb3a396562f7ee4d8
+40b43621744cf8a23a6e532649b66c2a0002dd04f8f39618e4f572819dd34837
+b5a08e643fdca1505af6a1fa3ddfd1fa758013caed8acddbbb334d664dff5b53
+95601766730045c2d9f29dc2bfebde5e7720cc7d82520d57d7e67ca1d16bb0e0
+1598fdc79fb53825f274e188ee0ad0e1799f30415e80b3301ba4aa951abdb2a3
+5c0f36bd680e2cfd0d1b95ed75896e09024f83ce9c5d378d44172fe31d9db764
+8bca59da64a36cbdf16524d8e5bb779a41bc56a5c2b87c03894cc391afba6560
+e6409cb9c51432a20e699d7183e36cac37518da229aec38e417fa4e78ce77fd7
+1a05dee16820f505bb33f72df93a0d8df1328453bffb3a099a36dffe9a2fbeb6
+442d9396a46c4ac8c75e2f3c53c66ca6cde61e2d9c093cd44ecbf982a8e84a10
+0454b426c9c9213416f6fc09b862debc21b430252909f05b9d714e23c8af2510
+45b7ec0f52b7ee6d571774fdbc50c57ebb8a1781e1695a7ffe3221661bd0c9a3
+6ddd3ad04516e26cc274b96ae1c43dd170099a24cbf4efb195051eaff8b603b2
+cef01ffb72416e87ef71ab2e535b51ea535b966f963200e005f735cf65796174
+1b57d21da3ad55a614cbf2c254c4e485a25aa2a3380305b6da2cdeedf322566a
+7eb9e4b90c1ad9f6f40d2d1c50d0accecce489fde2b79367249730edbd18578e
+e808fdd04bb89f554667e69a6541403cd5f094e6c9603ad017be5d9d87bc9a92
+202b771959ac31bcfed0928dfb121b406633c1d6a5be4e1016ed65d6e971883d
+a9b1170ef01ec45987c77a2e0a6646423c6cc7ba0619674ca33924a06b3e5620
+9b78a39eacce44bd10a9983bc6ff21454410122bc55261e813c6ac26700be50e
+ab02dbbc743325325dc72663c9a10864d9c2cb145dd98df9359151865c0bd12f
+f06d236ba43f3bb06a8eef419e1b773e4c4eb828e732cd8bca6ad17d69bf7ea2
+7a6c24830b9a10c9c47b546ba1ab9b3e6371b5e9460b2ce94f113e1a4c3c75aa
+13205382451860506ed4c3c344c7f0f265df215aebc711cef76669cc6c83dd8a
+6ed48f9c2f049bdf59cb8a1c39394c813a0a16445382792e7ba0552f46963d0a
+6fa779d447bd11efa2dbb92058480b1b885b7c13904fd72d19f6034eddd79d27
+6628291faa4511f5d66da3c89458e62dcfb815bd91bf985af54a862ccb3b3b9d
+01d0038fcea011468aae83cc6229520ce316bb9519703be6a49f39021e675b0f
+b6da844d719c22428a61273509b25e5b210429864e905fc2d2929a53c16aebb1
+0196a4b562018a88da25e5ec027cca4701f39807eef5b859aada8d253bd245da
+a3fda24b8a812c0065e7a2b1f8af21fa1dd131e4b96e3a3fad82aaa7b494daf0
+2d398be5035ff58eeaf46218d2d284ac6d4aae77bea4b86471df05e4e578315b
+24aa132debd94e5ccaa2a21a670b1651317034605b72c63444390f9a1a3614cf
+b6fbff5cff6b2bf934a40361d2bf9cdc7b3285f6ce2e501c8d639f01ca675eb8
+9944e426c6ca327b3749866ca651fefa10ab41d1d59f0b72ff4ab2e8f29b4bb9
+095c91e76be65c4bfafe6dbedc8121c9e02ba2041836fe9b0d45074b6deb0f24
+6a3580d7a118f1726159783370dec583429e4c506993e8e44770e3ba54bd60e8
+e5699d926579c0a3a08e2dd4dfa587f27a3e52b898edf38fe0176d3f4ac8c5ad
+1a3b53c7567344c932b41b4b6232c9d0634a66e3c4ac372c07ebf0485e91c9a0
+f12792f5939eb4ff44eb40efbe0d72a7ea2a9b18c5d38ae8265f01b986f9686e
+9cb43d78fbfa562082416aafc8d5c971c9831ff6723a8290445e825957a411eb
+e677126aef0b761df5343c4ac77921c44f80f042d9babc2a6c91faa6f70fe2e5
+dbc197168a2f83de49994d7cc9ef74df01deecde3234ba8bf143465a8658d14a
+dc1b2ff2f17e6a67a7a1e955acb712a6cc2c010a12bb18787c472b8f004f5bb8
+b228b875ba4c401ac6f82274c048dfdee21895d803301eb63a3e98df079a2a77
+15964c81488a8f0bababbc214c7c368ca9111eb2c08a3fbb4ac270dd1ede653a
+6d5413ad84aa83ff54eec82a2d1c05e8b95d6087f867a34d54edda787038e4a6
+092c7eee09576817333f
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndResource
+/F11 /IVTBSA+CMMI10
+[ /.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/.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/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+  /.notdef/.notdef/.notdef/.notdef/.notdef/U/.notdef/.notdef
+  /X/.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/s/t/u/v/.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
+  /.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/.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/.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/.notdef/.notdef/.notdef/.notdef/.notdef ]
+ipeMakeFont
+%%EndSetup
+q np
+262.89 257.459 m
+285.066 257.459 307.243 247.654 307.243 237.849 c
+307.243 228.044 285.066 218.24 262.89 218.24 c
+240.714 218.24 218.537 228.044 218.537 237.849 c
+218.537 247.654 240.714 257.459 262.89 257.459 c
+h 0.4 w S
+Q
+q np
+262.585 251.467 m
+262.585 265.662 252.654 279.856 242.724 279.856 c
+232.794 279.856 222.864 265.662 222.864 251.467 c
+222.864 237.273 232.794 223.079 242.724 223.079 c
+252.654 223.079 262.585 237.273 262.585 251.467 c
+h 0.4 w S
+Q
+q 1 0 0 1 308.396 246.532 cm 1 0 0 1 0 0 cm 0 0 0 rg 0 0 0 RG
+1 0 0 1 0 -785.192 cm
+BT
+/F11 9.963 Tf 0 785.192 Td[(U)]TJ
+ET
+Q
+q 1 0 0 1 215.536 271.49 cm 1 0 0 1 0 0 cm 0 0 0 rg 0 0 0 RG
+1 0 0 1 0 -785.192 cm
+BT
+/F11 9.963 Tf 0 785.192 Td[(X)]TJ
+ET
+Q
+q np
+248.146 232.718 m
+248.146 233.546 247.475 234.218 246.646 234.218 c
+245.818 234.218 245.146 233.546 245.146 232.718 c
+245.146 231.89 245.818 231.218 246.646 231.218 c
+247.475 231.218 248.146 231.89 248.146 232.718 c
+h q f* Q 0.6 w S
+Q
+q 1 0 0 1 235.988 230.453 cm 1 0 0 1 0 0 cm 0 0 0 rg 0 0 0 RG
+1 0 0 1 0 -787.711 cm
+BT
+/F11 9.963 Tf 0 787.711 Td[(s)]TJ
+ET
+Q
+q np
+290.672 236.201 m
+290.672 237.03 290 237.701 289.172 237.701 c
+288.344 237.701 287.672 237.03 287.672 236.201 c
+287.672 235.373 288.344 234.701 289.172 234.701 c
+290 234.701 290.672 235.373 290.672 236.201 c
+h q f* Q 0.6 w S
+Q
+q 1 0 0 1 278.513 233.937 cm 1 0 0 1 0 0 cm 0 0 0 rg 0 0 0 RG
+1 0 0 1 0 -787.711 cm
+BT
+/F11 9.963 Tf 0 787.711 Td[(v)]TJ
+ET
+Q
+q np
+255.832 246.662 m
+255.832 247.491 255.16 248.162 254.332 248.162 c
+253.503 248.162 252.832 247.491 252.832 246.662 c
+252.832 245.834 253.503 245.162 254.332 245.162 c
+255.16 245.162 255.832 245.834 255.832 246.662 c
+h q f* Q 0.6 w S
+Q
+q 1 0 0 1 243.673 244.398 cm 1 0 0 1 0 0 cm 0 0 0 rg 0 0 0 RG
+1 0 0 1 0 -787.711 cm
+BT
+/F11 9.963 Tf 0 787.711 Td[(u)]TJ
+ET
+Q
+q np
+247.517 264.781 m
+247.517 265.609 246.846 266.281 246.017 266.281 c
+245.189 266.281 244.517 265.609 244.517 264.781 c
+244.517 263.952 245.189 263.281 246.017 263.281 c
+246.846 263.281 247.517 263.952 247.517 264.781 c
+h q f* Q 0.6 w S
+Q
+q 1 0 0 1 235.359 262.516 cm 1 0 0 1 0 0 cm 0 0 0 rg 0 0 0 RG
+1 0 0 1 0 -785.872 cm
+BT
+/F11 9.963 Tf 0 785.872 Td[(t)]TJ
+ET
+Q
+showpage
+%%BeginIpeXml: /FlateDecode
+%GhTQjcYhJk%*%ab$:<r6$E=%Higt>H!t<g^8[Lma',ut$[X7jJl-c`jMT$T^P%@Pj55dlQMqf[>
+%VW!WKI3T`+dK3H:MISS%iX6!^7-KDJbioU0E0o-92?EoqeeWj7ijr=SrV,`"?!92Ho-]7Ud#]KS
+%P]j^>>NbJNO-i?^@(GXl)mL<mSfbn@^XgG"K$BD/L\rASJm=FOj$O_m+*[W0[f&+U;GY#%Tu6[`
+%`7:690=(F6DBH3VOq-O!h/LfJNN4!V(rmf+%@"$H8/fVTGsX!RJmbGF+TNZX)q]5((tZJ@G-PUs
+%j:IP2Q*Lma=-^5ZBhmO$D7,`I$YLi*CFaM<5&36\X_1?[4V@m\Ui$'6Rrs6r<O"0\hJ',-<^jL]
+%s/%rVqsc7T3f+KnK!`hS$>,/khJ-N5NmVT^Z?E6aNsSnhj$V."C#^tV!q,W*gc!$m&;#FLb+%e>
+%jWjs!FIi7@6ik?\jpdeeG2q6Bp^Bp<Heuoqf;lm'GeDNU+\AFK5=hlXWM`k#-'l,iYLRR;<d/Pn
+%q);;(4ctL;HSYR,W`E$P!#hu8_#=l!=KJN(HLhN$:lmkc<Zs&[2;sm\+tjgh.<Q@(Nl+ENT4o.A
+%MOTN<*%'*A-PZ@2>`^i?r?*#=UaE3P<_Mo'\BAS#rVsZQS;>&fM2D[aB"@`%F!&>Q)qoO2jj+QS
+%DXo5=4R2\4\=M>):25Dd`Wi9U?p:_taDr0h(sl&l(+jD%i]"oE_uq(?1QHakl,q*!n9+C;SQHn%
+%~>
+%%EndIpeXml
+%%Trailer
+end
+%%EOF
diff --git a/4-ght/4-ght-htl.eps b/4-ght/4-ght-htl.eps
new file mode 100644 (file)
index 0000000..e8fadbf
--- /dev/null
@@ -0,0 +1,554 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: Ipelib 60023 (Ipe 6.0 preview 23)
+%%CreationDate: D:20060416125142
+%%LanguageLevel: 2
+%%BoundingBox: 146 273 354 347
+%%HiResBoundingBox: 146.311 273.148 353.58 346.548
+%%DocumentSuppliedResources: font OKGJHK+CMR10
+%%+ font EWAIFU+CMMI10
+%%+ font KYJAJC+CMSY10
+%%EndComments
+%%BeginProlog
+%%BeginResource: procset ipe 6.0 60023
+/ipe 40 dict def ipe begin
+/np { newpath } def
+/m { moveto } def
+/l { lineto } def
+/c { curveto } def
+/h { closepath } def
+/re { 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+      neg 0 rlineto closepath } def
+/d { setdash } def
+/w { setlinewidth } def
+/J { setlinecap } def
+/j { setlinejoin } def
+/cm { [ 7 1 roll ] concat } def
+/q { gsave } def
+/Q { grestore } def
+/g { setgray } def
+/rg { setrgbcolor } def
+/G { setgray } def
+/RG { setrgbcolor } def
+/S { stroke } def
+/f* { eofill } def
+/f { fill } def
+/ipeMakeFont {
+  exch findfont
+  dup length dict begin
+    { 1 index /FID ne { def } { pop pop } ifelse } forall
+    /Encoding exch def
+    currentdict
+  end
+  definefont pop
+} def
+/ipeFontSize 0 def
+/Tf { dup /ipeFontSize exch store selectfont } def
+/Td { translate } def
+/BT { gsave } def
+/ET { grestore } def
+/TJ { 0 0 moveto { dup type /stringtype eq
+ { show } { ipeFontSize mul -0.001 mul 0 rmoveto } ifelse
+} forall } def
+end
+%%EndResource
+%%EndProlog
+%%BeginSetup
+ipe begin
+%%BeginResource: font OKGJHK+CMR10
+%!PS-AdobeFont-1.1: CMR10 1.00B
+%%CreationDate: 1992 Feb 19 19:54:52
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.00B) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMR10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /OKGJHK+CMR10 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 40 /parenleft put
+dup 41 /parenright put
+readonly def
+/FontBBox{-251 -250 1009 969}readonly def
+/UniqueID 5000793 def
+currentdict end
+currentfile eexec
+d9d66f633b846a97b686a97e45a3d0aa052a014267b7904eb3c0d3bd0b83d891
+016ca6ca4b712adeb258faab9a130ee605e61f77fc1b738abc7c51cd46ef8171
+9098d5fee67660e69a7ab91b58f29a4d79e57022f783eb0fbbb6d4f4ec35014f
+d2decba99459a4c59df0c6eba150284454e707dc2100c15b76b4c19b84363758
+469a6c558785b226332152109871a9883487dd7710949204ddcf837e6a8708b8
+2bdbf16fbc7512faa308a093fe5cf7158f1163bc1f3352e22a1452e73feca8a4
+87100fb1ffc4c8af409b2067537220e605da0852ca49839e1386af9d7a1a455f
+d1f017ce45884d76ef2cb9bc5821fd25365ddea6e45f332b5f68a44ad8a530f0
+92a36fac8d27f9087afeea2096f839a2bc4b937f24e080ef7c0f9374a18d565c
+295a05210db96a23175ac59a9bd0147a310ef49c551a417e0a22703f94ff7b75
+409a5d417da6730a69e310fa6a4229fc7e4f620b0fc4c63c50e99e179eb51e4c
+4bc45217722f1e8e40f1e1428e792eafe05c5a50d38c52114dfcd24d54027cbf
+2512dd116f0463de4052a7ad53b641a27e81e481947884ce35661b49153fa19e
+0a2a860c7b61558671303de6ae06a80e4e450e17067676e6bbb42a9a24acbc3e
+b0ca7b7a3bfea84fed39ccfb6d545bb2bcc49e5e16976407ab9d94556cd4f008
+24ef579b6800b6dc3aaf840b3fc6822872368e3b4274dd06ca36af8f6346c11b
+43c772cc242f3b212c4bd7018d71a1a74c9a94ed0093a5fb6557f4e0751047af
+d72098eca301b8ae68110f983796e581f106144951df5b750432a230fda3b575
+5a38b5e7972aabc12306a01a99fcf8189d71b8dbf49550baea9cf1b97cbfc7cc
+96498ecc938b1a1710b670657de923a659db8757147b140a48067328e7e3f9c3
+7d1888b284904301450ce0bc15eeea00e48ccd6388f3fc3c8578ef9a20a0e06e
+4f7addaf0e7d1e182d115bf1ad931977325ad391e72e2b13cc108e3726c11099
+e2000623188aaac9f3e233eb253bdd8b0a4759a66a113e066238b0086ac1b634
+5abff90e4b5ed3fa69c22541981b2bfc9710aef6b50a8bb53431c7b4d380d721
+639e005d6b4688ee16bff48443e7c9e5fb5bc5883e271cb034289232a0694cce
+12a5a2637485fb47bc281a2129edc23d8091fb4f93a6b82e666703e6a2816bba
+ea4d74e605325f713552a653349310ea0929fa02d1f9ed57de58e1928e0ca31d
+070a4c7036ed071ac3f6429c76912fcb605a98a3307024a00afe54d463628836
+e6098757cd50e1d40fa54d41bc2fdc30f5cc9042e5d704d1712fc0a4b907a61a
+3fbc6271bea1021043e2c35e830d2c44e1a54aba687535a0e1cb727bb7c902d2
+5df97d44fb85c8397f1c1e14c11dbfd563a205f1e248f250549cd4689f361c71
+948ebfd988b5b8b8fb1d7051f234e4ea5c9cb798d99c17715d0799f60feac8a8
+8589452e8932a9e7844e816b3d0f18f1d542d05600cad430e88f8298961d8fda
+a630894c90d2505f9ad25f555f8c56518921ad52b39beb69f9ad1ed552b3cf16
+13ccadbc2933a59af6cf80f892efdb0d4e5cd766094aef332323ccffafa32fa0
+07bfeb8985c120d623c4e2323f6e4a3fe0086795c3043b988701add821404586
+0cd3e21e107a25d661bcb329db6a7083217b438f19710ca275e336ad37e90d10
+4cf8e8410e0311297d1e1dceb8c8a662c6735da66e9cd443
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndResource
+/F8 /OKGJHK+CMR10
+[ /.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/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+  /parenleft/parenright/.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/.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/.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/.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/.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/.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
+  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef ]
+ipeMakeFont
+%%BeginResource: font EWAIFU+CMMI10
+%!PS-AdobeFont-1.1: CMMI10 1.100
+%%CreationDate: 1996 Jul 23 07:53:57
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.100) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMMI10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+end readonly def
+/FontName /EWAIFU+CMMI10 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 14 /delta put
+dup 85 /U put
+dup 86 /V put
+dup 87 /W put
+dup 115 /s put
+dup 116 /t put
+dup 117 /u put
+dup 118 /v put
+readonly def
+/FontBBox{-32 -250 1048 750}readonly def
+/UniqueID 5087385 def
+currentdict end
+currentfile eexec
+d9d66f633b846a97b686a97e45a3d0aa0529731c99a784ccbe85b4993b2eebde
+3b12d472b7cf54651ef21185116a69ab1096ed4bad2f646635e019b6417cc77b
+532f85d811c70d1429a19a5307ef63eb5c5e02c89fc6c20f6d9d89e7d91fe470
+b72befda23f5df76be05af4ce93137a219ed8a04a9d7d6fdf37e6b7fcde0d90b
+986423e5960a5d9fbb4c956556e8df90cbfaec476fa36fd9a5c8175c9af513fe
+d919c2ddd26bdc0d99398b9f4d03d5993dfc0930297866e1cd0a319b6b1fd958
+9e394a533a081c36d456a09920001a3d2199583eb9b84b4dee08e3d12939e321
+990cd249827d9648574955f61baaa11263a91b6c3d47a5190165b0c25abf6d3e
+6ec187e4b05182126bb0d0323d943170b795255260f9fd25f2248d04f45dfbfb
+def7ff8b19bfef637b210018ae02572b389b3f76282beb29cc301905d388c721
+59616893e774413f48de0b408bc66dce3fe17cb9f84d205839d58014d6a88823
+d9320ae93af96d97a02c4d5a2bb2b8c7925c4578003959c46e3ce1a2f0eac4bf
+8b9b325e46435bde60bc54d72bc8acb5c0a34413ac87045dc7b84646a324b808
+6fd8e34217213e131c3b1510415ce45420688ed9c1d27890ec68bd7c1235faf9
+1dab3a369dd2fc3be5cf9655c7b7eda7361d7e05e5831b6b8e2eec542a7b38ee
+03be4bac6079d038acb3c7c916279764547c2d51976baba94ba9866d79f13909
+95aa39b0f03103a07cbdf441b8c5669f729020af284b7ff52a29c6255fcaacf1
+74109050fba2602e72593fbcbfc26e726ee4aef97b7632bc4f5f353b5c67fed2
+3ea752a4a57b8f7feff1d7341d895f0a3a0be1d8e3391970457a967eff84f6d8
+47750b1145b8cc5bd96ee7aa99ddc9e06939e383bda41175233d58ad263ebf19
+afc0e2f840512d321166547b306c592b8a01e1fa2564b9a26dac14256414e4c8
+42616728d918c74d13c349f4186ec7b9708b86467425a6fdb3a396562f7ee4d8
+40b43621744cf8a23a6e532649b66c2a0002dd04f8f39618e4f572819dd34837
+b5a08e643fdca1505af6a1fa3ddfd1fa758013caed8acddbbb334d664dff5b53
+956017667d1074fe5415f315cfc941447d57558e64b9dc9ad50cbaa94f0faa68
+d4872639380366f40ebc7c737a6a6a4898116eaba307ee04667b75540cf65c8e
+39f3e927e746b46aa74f2e3e5f8a90a73a64c6cc0fcdf82556552e57b98740da
+8f6c3c3d8f20d98e80bf0819cd8d2fc7086437c221f5dca0f16ac69cbdae79a3
+58249a65ce9fa739a44530636b6cb4723673cf19dd001b1f21a3f5a14651ffbc
+ee5ac8658f123a6f14f7b4c37f38bc873485c35db451085de95859adf21d70eb
+768e2182bd7f1e41aee9f3c9ca5cb50ce78e1cf0e97b73cb7b1f5deaecc205e3
+0b95d92c5023401833bab5c3a5c2312393491dd099257a08e7b56f64c78a65db
+451a820e7b831d7bd63e1f2cf935f0f71e4dfe9d7ad8600f4b0a46a5059b65a0
+7eb0c543200d644a14966343122a4ad43fa7dd7cf1e3e6bd006972fec9b150fe
+278f2a502669c4ff4820a1886175b53e94d2e8d239ab1dc935ad1c04f9978695
+5339fe8cfc6697e7ecc0c1222ab43ac3fde05204c5eea4ee194176ef6a99f9ea
+496a16b7969cdbdc2ea16765ff041b18aaad544268dcb21de9643cac6f9a3bf4
+ab79e5d7d71cf1a3e2a907d522dd7fb5a2271059a123d5840286ab2b8ba50f56
+49bd305f4880db2edf41ddb3917e95d1d058df1fc8769006cbe8f1ac6029a242
+2adebc9a04ed9599709bd532736a21f7f6ee77d8ec6acc69c9b25bd8cfa2636f
+d01ec9d41af23233b24373b8c2499f6b35fb2507542f95f538ae2fe7a0aac6c4
+e552dcccfd4e0bb62cc41e76a2959fb230247cb60a0402b5b6f49e734f72c38e
+33ee916efe78d06f303d3ed9e56a59185214fe3837d9a0e2a3861283af14811e
+a52ec0b103eaa8ba37ecc6e288856a96771adb84ea4d6c74c4d19fa1d8972c4f
+eb3bc64bb2d76cfd8c407cf5c455d4ce2e494a998bddab5d0cef48c91372d9e3
+48f909a44847d517ba299d1abed62527b3d78273e95eaef3ff88d942d8979094
+f6bba10b96f546830ca33651b9ad0c4b7213da38c6e710621d75af29ab978de2
+1760526aefc435669ab92e2d394a9b76a0cc2774df7410a2ea3da90198172bce
+5aa30bc498c872c753da9cee403b59af5fce567bbbd5ae92d15d5c3bcd27d6c2
+9e06a1453a8d9c74cec80f00e4c67fcc88f9865100a45af52bfffb01c4d414c6
+b2f356eba15caf721cebd2f0a4efdbef4d3e441d20012c78bfba8205d22702fb
+37a201b6f8fad751fc415849fb10cbd936c71609505e4f98a5270491c9e5f8be
+d8d5863689e09a1247d8992acf25f84ccb9f92923369863bd9410196a75af962
+e072801bde96512e5574c52f963b9cc6229dffaaa8e428617ce2b2650db83ff6
+0775e09cc76a62911c198110a34beaf23f1a470ca138e8a05a274f1b3aa177b0
+3a6fee009e9d08912ac9cdefc8124735ed4bce2440b8b63e413458d9cc9e5692
+af57c58dc3d2b90be03b13e9078e4a505c334d9d3773ec1419955756a28755fe
+11d32d1375e4863c1bf51ac0bc357dd5627fa9c2590ac8c7669a818e2b050e60
+3ca05139084a68be41c7cc71f152c8a7fb98a5da7a79d97bbc7f94bc0a2e6643
+7c8966f4efa41a51017f5581647427f9140092acc845432428f3352c1deea72a
+7b730886316748004d3df6b93aee96fe8bed7674496c96756ed1c319883f35ea
+a39cae133e08e4e87fa35dcfca352f63e279ca15a7dfb1d96596885f07141d94
+b742104215f1d9bdf7d1ca24c78f91e56b216e018f5c43657a214f612b2e4d22
+29a151d7209d2e955d259c83744b554de802f67998ba2a372f2779a48a0845c7
+41227aee6478596cb59a260336ee9db5fcb59efbbc1aa2a34101ceb43c82931a
+466e202f2021d66d977d3b8b3f467de3aabcb8fbae23ec24faf15c39e5c8d476
+c9e4640803f7f39fe764c51413bada3870f3c6b2f55f4d0ea380a286e1bcbc2d
+6f22db43ded53fb088c2db0a2cc9d54e8fa1e99b6abc9734c971451e0c8a4702
+52c16bb33e74498f8b8193088a52d827de016a1e1714718fe7bf05152d5dbc01
+4b369f6621e4ec2af31d66c093afade5385a994125c5a2835bb00eb5a372c94e
+08f315971507ae0ab0fd5e6e2a690c2ce8b09fa78f59709c7252bb48578302a0
+4ecc782aeed5176784d814a2ca2c829dfbb634867928e2a58d8157c7bed8c3a1
+c2417786f364f5b43629449d7623a403175c7f37315b4673dbd9ded4ce4c9c33
+478d654247307a5f8e361e1da6e17232d8e68068176f03c9f508de01a0ac6cee
+473f05d86361d5289570201a37c54c62779441b34ffae354e6e8cf62eb02b234
+335fad5b76d4c3fe088f2ce8692df7b711657735b9afeb6d38ea4996009768f2
+da6dace57649c17a7ebc09edc828be1e8fca3d24145a9e9df384e8c20db1717a
+f6cc7b11ceb22c66eae812392c
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndResource
+/F11 /EWAIFU+CMMI10
+[ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/delta/.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
+  /.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/.notdef/.notdef/.notdef/.notdef/U/V/W
+  /.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/s/t/u/v/.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
+  /.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/.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/.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/.notdef/.notdef/.notdef/.notdef/.notdef ]
+ipeMakeFont
+%%BeginResource: font KYJAJC+CMSY10
+%!PS-AdobeFont-1.1: CMSY10 1.0
+%%CreationDate: 1991 Aug 15 07:20:57
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.0) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMSY10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.035 def
+/isFixedPitch false def
+end readonly def
+/FontName /KYJAJC+CMSY10 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 110 /backslash put
+readonly def
+/FontBBox{-29 -960 1116 775}readonly def
+/UniqueID 5000820 def
+currentdict end
+currentfile eexec
+d9d66f633b846a97b686a97e45a3d0aa052f09f9c8ade9d907c058b87e9b6964
+7d53359e51216774a4eaa1e2b58ec3176bd1184a633b951372b4198d4e8c5ef4
+a213acb58aa0a658908035bf2ed8531779838a960dfe2b27ea49c37156989c85
+e21b3abf72e39a89232cd9f4237fc80c9e64e8425aa3bef7ded60b122a52922a
+221a37d9a807dd01161779dde7d31ff2b87f97c73d63eecdda4c49501773468a
+27d1663e0b62f461f6e40a5d6676d1d12b51e641c1d4e8e2771864fc104f8cbf
+5b78ec1d88228725f1c453a678f58a7e1b7bd7ca700717d288eb8da1f57c4f09
+0abf1d42c5ddd0c384c7e22f8f8047be1d4c1cc8e33368fb1ac82b4e96146730
+de3302b2e6b819cb6ae455b1af3187ffe8071aa57ef8a6616b9cb7941d44ec7a
+71a7bb3df755178d7d2e4bb69859efa4bbc30bd6bb1531133fd4d9438ff99f09
+4ecc068a324d75b5f696b8688eeb2f17e5ed34ccd6d047a4e3806d000c199d7c
+515db70a8d4f6146fe068dc1e5de8bc5703711da090312ba3fc00a08c453c609
+c627a8bed9d34a46d95f127e027208800126fc7c055dbecbfbbe2d555f32f25c
+e5128da02d79b817e501eb8dc842e38a17e95d35eb15b9ecf95575c642b038cb
+00a3eaf58ab814dbe2b79d5a9eb3e27874245882face414782bfc02ec917ce65
+889bbb376bf5083d427da3d909d4af1dd741671f10071912b7e0000c5b686e18
+c66bd02300ae5a2f391ffb363ce84b93477835d6043c603875d9786fba620097
+bfe03d1c839a4d359ab4c44de3db2ac2f050b50c0e497123ff1c2dc73abe58d8
+d1952c95ac0d659b31b5b4131c34a99a523f795c8db37eaf88
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndResource
+/F14 /KYJAJC+CMSY10
+[ /.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/.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/.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/.notdef/.notdef/.notdef/.notdef/.notdef
+  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/backslash/.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
+  /.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/.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/.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/.notdef/.notdef/.notdef/.notdef/.notdef
+  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef ]
+ipeMakeFont
+%%EndSetup
+q np
+235.092 317.989 m
+225.19 322.94 215.288 327.891 205.386 330.367 c
+195.483 332.842 185.581 332.842 175.679 330.367 c
+165.777 327.891 155.875 322.94 150.924 315.514 c
+145.973 308.087 145.973 298.185 150.924 290.758 c
+155.875 283.332 165.777 278.381 175.679 275.905 c
+185.581 273.43 195.483 273.43 205.386 275.905 c
+215.288 278.381 225.19 283.332 235.092 288.283 c
+244.994 293.234 254.896 298.185 254.896 303.136 c
+254.896 308.087 244.994 313.038 235.092 317.989 c
+h 1 g q f* Q 0.4 w 0 g S
+Q
+q np
+264.798 317.989 m
+274.701 322.94 284.603 327.891 294.505 330.367 c
+304.407 332.842 314.309 332.842 324.211 330.367 c
+334.113 327.891 344.016 322.94 348.967 315.514 c
+353.918 308.087 353.918 298.185 348.967 290.758 c
+344.016 283.332 334.113 278.381 324.211 275.905 c
+314.309 273.43 304.407 273.43 294.505 275.905 c
+284.603 278.381 274.701 283.332 264.798 288.283 c
+254.896 293.234 244.994 298.185 244.994 303.136 c
+244.994 308.087 254.896 313.038 264.798 317.989 c
+h 1 g q f* Q 0.4 w 0 g S
+Q
+q np
+262.323 315.514 m
+264.798 308.087 264.798 298.185 262.323 290.758 c
+259.847 283.332 254.896 278.381 249.945 278.381 c
+244.994 278.381 240.043 283.332 237.568 290.758 c
+235.092 298.185 235.092 308.087 237.568 315.514 c
+240.043 322.94 244.994 327.891 249.945 327.891 c
+254.896 327.891 259.847 322.94 262.323 315.514 c
+h 1 g q f* Q 0.4 w 0 g S
+Q
+q 1 0 0 1 239.09 298.102 cm 1 0 0 1 0 0 cm 1 0 0 1 0 2.491 cm
+0 0 0 rg 0 0 0 RG
+1 0 0 1 0 -784.528 cm
+BT
+/F11 9.963 Tf 0 784.528 Td[(\016)]TJ/F8 9.963 Tf 4.805 0 Td[(\050)]TJ/F11 9.963 Tf 3.874 0 Td[(U)]TJ/F8 9.963 Tf 7.889 0 Td[(\051)]TJ
+ET
+Q
+q 1 0 0 1 156.899 302.322 cm 1 0 0 1 0 0 cm 0 0 0 rg 0 0 0 RG
+1 0 0 1 0 -787.711 cm
+BT
+/F11 9.963 Tf 0 787.711 Td[(s)]TJ
+ET
+Q
+q 1 0 0 1 322.108 302.478 cm 1 0 0 1 0 0 cm 0 0 0 rg 0 0 0 RG
+1 0 0 1 0 -785.872 cm
+BT
+/F11 9.963 Tf 0 785.872 Td[(t)]TJ
+ET
+Q
+q np
+167.132 303.948 m
+167.132 304.776 166.46 305.448 165.632 305.448 c
+164.803 305.448 164.132 304.776 164.132 303.948 c
+164.132 303.119 164.803 302.448 165.632 302.448 c
+166.46 302.448 167.132 303.119 167.132 303.948 c
+h q f* Q 0.6 w S
+Q
+q np
+319.151 305.339 m
+319.151 306.168 318.48 306.839 317.651 306.839 c
+316.823 306.839 316.151 306.168 316.151 305.339 c
+316.151 304.511 316.823 303.839 317.651 303.839 c
+318.48 303.839 319.151 304.511 319.151 305.339 c
+h q f* Q 0.6 w S
+Q
+q 1 0 0 1 187 337.491 cm 1 0 0 1 0 0 cm 0 0 0 rg 0 0 0 RG
+1 0 0 1 0 -785.192 cm
+BT
+/F11 9.963 Tf 0 785.192 Td[(U)]TJ
+ET
+Q
+q 1 0 0 1 297.491 336.585 cm 1 0 0 1 0 0 cm 1 0 0 1 0 2.491 cm
+0 0 0 rg 0 0 0 RG
+1 0 0 1 0 -784.528 cm
+BT
+/F11 9.963 Tf 0 784.528 Td[(V)]TJ/F14 9.963 Tf 10.239 0 Td[(n)]TJ/F11 9.963 Tf 7.196 0 Td[(U)]TJ
+ET
+Q
+q 1 0 0 1 187.692 319.529 cm 1 0 0 1 0 0 cm 0 0 0 rg 0 0 0 RG
+1 0 0 1 0 -787.711 cm
+BT
+/F11 9.963 Tf 0 787.711 Td[(u)]TJ
+ET
+Q
+q np
+197.924 321.155 m
+197.924 321.984 197.252 322.655 196.424 322.655 c
+195.596 322.655 194.924 321.984 194.924 321.155 c
+194.924 320.327 195.596 319.655 196.424 319.655 c
+197.252 319.655 197.924 320.327 197.924 321.155 c
+h q f* Q 0.6 w S
+Q
+q 1 0 0 1 186.786 284.208 cm 1 0 0 1 0 0 cm 0 0 0 rg 0 0 0 RG
+1 0 0 1 0 -787.711 cm
+BT
+/F11 9.963 Tf 0 787.711 Td[(v)]TJ
+ET
+Q
+q np
+197.018 285.835 m
+197.018 286.663 196.347 287.335 195.518 287.335 c
+194.69 287.335 194.018 286.663 194.018 285.835 c
+194.018 285.006 194.69 284.335 195.518 284.335 c
+196.347 284.335 197.018 285.006 197.018 285.835 c
+h q f* Q 0.6 w S
+Q
+q np
+159.83 283.151 m
+168.168 298.801 187.614 304.729 203.264 296.391 c
+209.803 292.908 214.936 287.27 217.792 280.434 c
+0.4 w S
+Q
+q 1 0 0 1 167.075 283.151 cm 1 0 0 1 0 0 cm 0 0 0 rg 0 0 0 RG
+1 0 0 1 0 -785.192 cm
+BT
+/F11 9.963 Tf 0 785.192 Td[(W)]TJ
+ET
+Q
+showpage
+%%BeginIpeXml: /FlateDecode
+%GhTisbu3:M&BF6bMB*4_p(0[M+!&S)QTbE:Ko;*"U;;[L[Kt6Xn&iHLBF6IGbtLU8[$#n8f<3]&
+%YmIWDD&;M4=_LF<-t(F,TB`j9^>Y_3'UgprA%74T\.6^GbCTd!jV1h=MmLN>gg&FBH!shk?b^PP
+%23gikc@p3sX'Wfhpi9%_S.5(8I9.2B[VkT.R,Me>^C"r1`aos9L9b2JDc-?-d)*f+Z,]qjb4hbr
+%=$P1Dh;B(uDP(&h5-9!/O%*DilYA>G=+5.KJ3L@Q0dq%s$EbO6q"V]ciD*JdMATicq(buN=kp/h
+%$3`6e[G03ug/eR&%0pe<KM)Z(apFt*O4+CkHIkdBpZE</qgP\iDqDHX0<]@O3LsaL!WV21o7e,"
+%2pGb*mm2Z[!=NagrRb`?gn-m=>n<GGria+P#;uQH!;-4c'HBm+.9Hq$ktb]g-Xr_hU"1A"-&c="
+%5uV901"31&5e:lQDWU&T.c<3;e#FrY,r18H.`AAf.LSV>_-C,tVB7)s;deplG_L%Zl]gZl#%/P-
+%K2X-6b>9Mbl2:.pkq#aS#s/k3.B.s!(.9)l#@)@9BRL_!U?*Fs&oQMM/:E_h)b2;&!a5UuTFSt*
+%n8Vq=,sBI"LiRYLW!VL-"CTpcY'kZqVM%VdTi#3R&_->:5tgb(!I'uOL3dtmT2GEBrFSQ;_h9@s
+%EPV2*pj:%6a/I6>&X6]`0GMps\/V0/BU@2+&Tm]Mm"SX>9Qj'9Ps)O(dp6S"H%h14L[MXH3$/qe
+%(sL'kO$mI&clr.n1.4e73^$P4j8q1c#ESB4qaD=L3c8gr)!T8oi_`gW?n+%>:j5TJiq5g\qfD@@
+%>j,\YCTDtYJp4EpTTG[)>Xl"M#U@@N'p$anftY%l[NfpV=EU.L\>)IE*(?Wf3)oI?QS#'g\cii]
+%6'u,cT&><YpQ"JUVS`eJQ8!0+CJ1VC$HqpBEqtn#CQ+A5`tbrIOk%I&6<Em/)ag,`Q@(%fH2%Ya
+%->N*imt2_ZF.)-n]\MKokh5#5"9S"N~>
+%%EndIpeXml
+%%Trailer
+end
+%%EOF
diff --git a/4-ght/4-ght-rez.eps b/4-ght/4-ght-rez.eps
new file mode 100644 (file)
index 0000000..6448692
--- /dev/null
@@ -0,0 +1,382 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: Ipelib 60023 (Ipe 6.0 preview 23)
+%%CreationDate: D:20060422112910
+%%LanguageLevel: 2
+%%BoundingBox: 144 274 298 324
+%%HiResBoundingBox: 144.276 274.484 297.607 323.39
+%%DocumentSuppliedResources: font NLBCTM+CMR10
+%%+ font DRECHV+CMMI10
+%%EndComments
+%%BeginProlog
+%%BeginResource: procset ipe 6.0 60023
+/ipe 40 dict def ipe begin
+/np { newpath } def
+/m { moveto } def
+/l { lineto } def
+/c { curveto } def
+/h { closepath } def
+/re { 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+      neg 0 rlineto closepath } def
+/d { setdash } def
+/w { setlinewidth } def
+/J { setlinecap } def
+/j { setlinejoin } def
+/cm { [ 7 1 roll ] concat } def
+/q { gsave } def
+/Q { grestore } def
+/g { setgray } def
+/rg { setrgbcolor } def
+/G { setgray } def
+/RG { setrgbcolor } def
+/S { stroke } def
+/f* { eofill } def
+/f { fill } def
+/ipeMakeFont {
+  exch findfont
+  dup length dict begin
+    { 1 index /FID ne { def } { pop pop } ifelse } forall
+    /Encoding exch def
+    currentdict
+  end
+  definefont pop
+} def
+/ipeFontSize 0 def
+/Tf { dup /ipeFontSize exch store selectfont } def
+/Td { translate } def
+/BT { gsave } def
+/ET { grestore } def
+/TJ { 0 0 moveto { dup type /stringtype eq
+ { show } { ipeFontSize mul -0.001 mul 0 rmoveto } ifelse
+} forall } def
+end
+%%EndResource
+%%EndProlog
+%%BeginSetup
+ipe begin
+%%BeginResource: font NLBCTM+CMR10
+%!PS-AdobeFont-1.1: CMR10 1.00B
+%%CreationDate: 1992 Feb 19 19:54:52
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.00B) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMR10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /NLBCTM+CMR10 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 40 /parenleft put
+dup 41 /parenright put
+readonly def
+/FontBBox{-251 -250 1009 969}readonly def
+/UniqueID 5000793 def
+currentdict end
+currentfile eexec
+d9d66f633b846a97b686a97e45a3d0aa052a014267b7904eb3c0d3bd0b83d891
+016ca6ca4b712adeb258faab9a130ee605e61f77fc1b738abc7c51cd46ef8171
+9098d5fee67660e69a7ab91b58f29a4d79e57022f783eb0fbbb6d4f4ec35014f
+d2decba99459a4c59df0c6eba150284454e707dc2100c15b76b4c19b84363758
+469a6c558785b226332152109871a9883487dd7710949204ddcf837e6a8708b8
+2bdbf16fbc7512faa308a093fe5cf7158f1163bc1f3352e22a1452e73feca8a4
+87100fb1ffc4c8af409b2067537220e605da0852ca49839e1386af9d7a1a455f
+d1f017ce45884d76ef2cb9bc5821fd25365ddea6e45f332b5f68a44ad8a530f0
+92a36fac8d27f9087afeea2096f839a2bc4b937f24e080ef7c0f9374a18d565c
+295a05210db96a23175ac59a9bd0147a310ef49c551a417e0a22703f94ff7b75
+409a5d417da6730a69e310fa6a4229fc7e4f620b0fc4c63c50e99e179eb51e4c
+4bc45217722f1e8e40f1e1428e792eafe05c5a50d38c52114dfcd24d54027cbf
+2512dd116f0463de4052a7ad53b641a27e81e481947884ce35661b49153fa19e
+0a2a860c7b61558671303de6ae06a80e4e450e17067676e6bbb42a9a24acbc3e
+b0ca7b7a3bfea84fed39ccfb6d545bb2bcc49e5e16976407ab9d94556cd4f008
+24ef579b6800b6dc3aaf840b3fc6822872368e3b4274dd06ca36af8f6346c11b
+43c772cc242f3b212c4bd7018d71a1a74c9a94ed0093a5fb6557f4e0751047af
+d72098eca301b8ae68110f983796e581f106144951df5b750432a230fda3b575
+5a38b5e7972aabc12306a01a99fcf8189d71b8dbf49550baea9cf1b97cbfc7cc
+96498ecc938b1a1710b670657de923a659db8757147b140a48067328e7e3f9c3
+7d1888b284904301450ce0bc15eeea00e48ccd6388f3fc3c8578ef9a20a0e06e
+4f7addaf0e7d1e182d115bf1ad931977325ad391e72e2b13cc108e3726c11099
+e2000623188aaac9f3e233eb253bdd8b0a4759a66a113e066238b0086ac1b634
+5abff90e4b5ed3fa69c22541981b2bfc9710aef6b50a8bb53431c7b4d380d721
+639e005d6b4688ee16bff48443e7c9e5fb5bc5883e271cb034289232a0694cce
+12a5a2637485fb47bc281a2129edc23d8091fb4f93a6b82e666703e6a2816bba
+ea4d74e605325f713552a653349310ea0929fa02d1f9ed57de58e1928e0ca31d
+070a4c7036ed071ac3f6429c76912fcb605a98a3307024a00afe54d463628836
+e6098757cd50e1d40fa54d41bc2fdc30f5cc9042e5d704d1712fc0a4b907a61a
+3fbc6271bea1021043e2c35e830d2c44e1a54aba687535a0e1cb727bb7c902d2
+5df97d44fb85c8397f1c1e14c11dbfd563a205f1e248f250549cd4689f361c71
+948ebfd988b5b8b8fb1d7051f234e4ea5c9cb798d99c17715d0799f60feac8a8
+8589452e8932a9e7844e816b3d0f18f1d542d05600cad430e88f8298961d8fda
+a630894c90d2505f9ad25f555f8c56518921ad52b39beb69f9ad1ed552b3cf16
+13ccadbc2933a59af6cf80f892efdb0d4e5cd766094aef332323ccffafa32fa0
+07bfeb8985c120d623c4e2323f6e4a3fe0086795c3043b988701add821404586
+0cd3e21e107a25d661bcb329db6a7083217b438f19710ca275e336ad37e90d10
+4cf8e8410e0311297d1e1dceb8c8a662c6735da66e9cd443
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndResource
+/F8 /NLBCTM+CMR10
+[ /.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/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+  /parenleft/parenright/.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/.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/.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/.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/.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/.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
+  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef ]
+ipeMakeFont
+%%BeginResource: font DRECHV+CMMI10
+%!PS-AdobeFont-1.1: CMMI10 1.100
+%%CreationDate: 1996 Jul 23 07:53:57
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.100) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMMI10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+end readonly def
+/FontName /DRECHV+CMMI10 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 14 /delta put
+dup 87 /W put
+dup 120 /x put
+dup 122 /z put
+readonly def
+/FontBBox{-32 -250 1048 750}readonly def
+/UniqueID 5087385 def
+currentdict end
+currentfile eexec
+d9d66f633b846a97b686a97e45a3d0aa0529731c99a784ccbe85b4993b2eebde
+3b12d472b7cf54651ef21185116a69ab1096ed4bad2f646635e019b6417cc77b
+532f85d811c70d1429a19a5307ef63eb5c5e02c89fc6c20f6d9d89e7d91fe470
+b72befda23f5df76be05af4ce93137a219ed8a04a9d7d6fdf37e6b7fcde0d90b
+986423e5960a5d9fbb4c956556e8df90cbfaec476fa36fd9a5c8175c9af513fe
+d919c2ddd26bdc0d99398b9f4d03d5993dfc0930297866e1cd0a319b6b1fd958
+9e394a533a081c36d456a09920001a3d2199583eb9b84b4dee08e3d12939e321
+990cd249827d9648574955f61baaa11263a91b6c3d47a5190165b0c25abf6d3e
+6ec187e4b05182126bb0d0323d943170b795255260f9fd25f2248d04f45dfbfb
+def7ff8b19bfef637b210018ae02572b389b3f76282beb29cc301905d388c721
+59616893e774413f48de0b408bc66dce3fe17cb9f84d205839d58014d6a88823
+d9320ae93af96d97a02c4d5a2bb2b8c7925c4578003959c46e3ce1a2f0eac4bf
+8b9b325e46435bde60bc54d72bc8acb5c0a34413ac87045dc7b84646a324b808
+6fd8e34217213e131c3b1510415ce45420688ed9c1d27890ec68bd7c1235faf9
+1dab3a369dd2fc3be5cf9655c7b7eda7361d7e05e5831b6b8e2eec542a7b38ee
+03be4bac6079d038acb3c7c916279764547c2d51976baba94ba9866d79f13909
+95aa39b0f03103a07cbdf441b8c5669f729020af284b7ff52a29c6255fcaacf1
+74109050fba2602e72593fbcbfc26e726ee4aef97b7632bc4f5f353b5c67fed2
+3ea752a4a57b8f7feff1d7341d895f0a3a0be1d8e3391970457a967eff84f6d8
+47750b1145b8cc5bd96ee7aa99ddc9e06939e383bda41175233d58ad263ebf19
+afc0e2f840512d321166547b306c592b8a01e1fa2564b9a26dac14256414e4c8
+42616728d918c74d13c349f4186ec7b9708b86467425a6fdb3a396562f7ee4d8
+40b43621744cf8a23a6e532649b66c2a0002dd04f8f39618e4f572819dd34837
+b5a08e643fdca1505af6a1fa3ddfd1fa758013caed8acddbbb334d664dff5b53
+9560176671a33fc55340cd04c2de46fd812fc2711a85f27b177a8a2cd86ce84b
+d5d79c949049eee98f15937c0b281e1be7055482e990965c1d41d297814c29ba
+d54a202cc557f1c870a2258a95a1714c05a9b3cc3bc6415fb364975dc52f13aa
+266ee88b76058f6206d0479063e1e109555c62be0380e7cb35e4a434b576ca99
+a45e351df4bb0359c9602df281e033999171f2bc9e3d55646bc3fe129cf8431b
+a0b038fc67dbec3a2d24091a404604edc5d5d7d8c0c0db3811a2e98338570b86
+5a909acb992495e4675663a006fb5186663b3366e2e9d515a056f23f7c77d046
+6732bc002de707a4236cd54bf511edda6edf9d25a6d9eb9e7a63d9b183fea2a4
+ecc0ff5b7e897feb55aaac2d037f26975ddac3f6b86d04050ca813c9ef11bc21
+a7e37099f86f1efc9d6b0bd804d86176e8f3632aecfd8990d631eaaac927d043
+2e6655d4eeae313d3b468305542b2f46d3e7c0c062c80720f2990cba52bf421c
+2fd6971c2169e2421e5116dbf2fbf4eb4347acf5dcea073d7c6c03b5dd779b87
+9acedaafa774424871561658d7890dc7d9beaf2341d8bcdf3f1940d77a985478
+424b535d6a89e5496e9f484c91a5aba02837bcf233f572e29d13a547a6b2e3b5
+17db632c154ffb5c1c2d565c68424438f601d15d1e9bc740a462395c64cd6fb1
+b95fcce90b748365d47c3055610d56a905443775f87ddd342732f1ca164fa034
+25ec8bceb94c9f5e076852c97d7d536f1a8cde8dc23d40f43c3c405678ad1e72
+06e555739fba63ec1d95806998fdf09093588418c654be333760b02ff8bdf6b0
+7fefea669143cdaab47a3a7bafd2d8607e3df61638f15ce8a6b454d7d03bedf7
+32a9b0b3e5b0ced9b155e6b051edd5b184c92a79efd1bc711c9c832b9cd1ff7a
+11ec2ed630b32a129fd9db7d84120252c86d1e309ceb7ecf93a2f5471ce08a8a
+a7209477b6ff8c5085e77e109a3790f9fbc8c3be7de4449c3d23de8b2b87ee11
+d93420a7ec7cec689545cfdc5303e38fbfb6c74620812c6322e06250f8a514ae
+9d82bf367cf5fe907911f022a52a6580efb6a589a2711e4a8f0084abbddfb11e
+8d84b2aaa458084ce2ee0bc8605bd66a385368b28abd76f4268a7bf8df834d31
+82518a370b961a040660e615a0fa4fe0e9ebea0b006664768284fc840d49ee2d
+661a464b480e78c8aa19e35133a42c2262b976d4eba63efbf8cdeed370ed915e
+c8b80d2bbc862e7b2e068701bbd1b04d33269dbaa3147c42b4fdfb3dd9d53a13
+2f2b407f2ec524559111de76a8a6ddb7bc94f9fc6b9c924f68a1868b4b81fb02
+36f03d031f92e1e55d6283a90194dd3ea7b7840a1b5d589844a211abb7fc4e46
+ebe094ebe8b1aef652212d7a253f37579e41e767287f8e5fe30d7080e27d3708
+dd9c41436e53f8012e7c821252a23e88af1133f8c8a2d6d13198e264016087cd
+daf59421031a8c13763883ae8b9e47bd0d987c7ab505a9d4211a8c503d2e5bf3
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndResource
+/F11 /DRECHV+CMMI10
+[ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/delta/.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
+  /.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/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/W
+  /.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
+  /x/.notdef/z/.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/.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/.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/.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/.notdef ]
+ipeMakeFont
+%%EndSetup
+q np
+209.987 308.993 m
+202.685 312.645 195.382 316.296 188.079 318.122 c
+180.776 319.947 173.474 319.947 166.171 318.122 c
+158.868 316.296 151.566 312.645 147.914 307.168 c
+144.263 301.691 144.263 294.388 147.914 288.911 c
+151.566 283.434 158.868 279.782 166.171 277.957 c
+173.474 276.131 180.776 276.131 188.079 277.957 c
+195.382 279.782 202.685 283.434 209.987 287.085 c
+217.29 290.736 224.593 294.388 224.593 298.039 c
+224.593 301.691 217.29 305.342 209.987 308.993 c
+h 1 g q f* Q 0.4 w 0 g S
+Q
+q np
+231.895 308.993 m
+239.198 312.645 246.501 316.296 253.804 318.122 c
+261.106 319.947 268.409 319.947 275.712 318.122 c
+283.014 316.296 290.317 312.645 293.968 307.168 c
+297.62 301.691 297.62 294.388 293.968 288.911 c
+290.317 283.434 283.014 279.782 275.712 277.957 c
+268.409 276.131 261.106 276.131 253.804 277.957 c
+246.501 279.782 239.198 283.434 231.895 287.085 c
+224.593 290.736 217.29 294.388 217.29 298.039 c
+217.29 301.691 224.593 305.342 231.895 308.993 c
+h 1 g q f* Q 0.4 w 0 g S
+Q
+q np
+233.192 310.714 m
+235.547 303.648 235.547 294.227 233.192 287.161 c
+230.836 280.095 226.126 275.384 221.415 275.384 c
+216.704 275.384 211.994 280.095 209.638 287.161 c
+207.283 294.227 207.283 303.648 209.638 310.714 c
+211.994 317.78 216.704 322.49 221.415 322.49 c
+226.126 322.49 230.836 317.78 233.192 310.714 c
+h 1 g q f* Q 0.4 w 0 g S
+Q
+q 1 0 0 1 210.108 294.026 cm 1 0 0 1 0 0 cm 1 0 0 1 0 2.491 cm
+0 0 0 rg 0 0 0 RG
+1 0 0 1 0 -784.528 cm
+BT
+/F11 9.963 Tf 0 784.528 Td[(\016)]TJ/F8 9.963 Tf 4.805 0 Td[(\050)]TJ/F11 9.963 Tf 3.874 0 Td[(W)]TJ/F8 9.963 Tf 10.793 0 Td[(\051)]TJ
+ET
+Q
+q 1 0 0 1 160.522 296.435 cm 1 0 0 1 0 0 cm 0 0 0 rg 0 0 0 RG
+1 0 0 1 0 -787.711 cm
+BT
+/F11 9.963 Tf 0 787.711 Td[(x)]TJ
+ET
+Q
+q 1 0 0 1 271.391 296.591 cm 1 0 0 1 0 0 cm 0 0 0 rg 0 0 0 RG
+1 0 0 1 0 -787.711 cm
+BT
+/F11 9.963 Tf 0 787.711 Td[(z)]TJ
+ET
+Q
+q np
+175.282 297.608 m
+175.282 298.437 174.611 299.108 173.782 299.108 c
+172.954 299.108 172.282 298.437 172.282 297.608 c
+172.282 296.78 172.954 296.108 173.782 296.108 c
+174.611 296.108 175.282 296.78 175.282 297.608 c
+h q f* Q 0.6 w S
+Q
+q np
+265.717 299 m
+265.717 299.828 265.046 300.5 264.217 300.5 c
+263.389 300.5 262.717 299.828 262.717 299 c
+262.717 298.171 263.389 297.5 264.217 297.5 c
+265.046 297.5 265.717 298.171 265.717 299 c
+h q f* Q 0.6 w S
+Q
+showpage
+%%BeginIpeXml: /FlateDecode
+%GhTQic#VP]&BF6g$AQZr4TrZSpukg?p!P5OV&*q[Mhu7aA842OqC]i]dSA4;RH[#D@eUE1@p)pQ
+%+cp1N&$b$D<-&P4P0FhklGo?B_k:V3$tD9:E$@<P$Vg7Njb/i?<Q$A[2iC\khtGO3d+%^R(Z8P>
+%-+!Z6dc%:AM7<##$pY);JlAs]pZIu_`dY]F]#<,'^C=^8`o[gS6;<0Z.6;r#7^DbMo_<<;I?>;J
+%&j"6Si\r;-Io?e?[?KlQF@]nkLSAqS2g5Pkdhi[L1MrB]8+Hj+#HD7eBLr?ib\BkoD="j&T%]P5
+%,t#K%mJCnd3s5]h"KYmZi^@gp!,dVr^(<b0<iP*)(:D*lPqKXWEF)u3k@1jCgb\s0"3q3/0IG%P
+%p_?US-X`q@j@>\jZTj(S>li4iILiZj&sTp,?O#,>Br@dN9!M!@pcEIQOj1f\K&V8\_YFJ/PGN4n
+%YE=Zn,`(GRE3"$FK,+ZtpXi`fPVQ+!mK]9:q/tmL3Q3>Q2$M*t6=h+q[S8V:9GtJo9c-Ke.D,aQ
+%ho.0bA)4'4n#umeF3g>eqU'sKq+om4?`fW^nr9m*ZGKjIP&'HhEYZg.%Vq;)rZth9%]>n3'a*bC
+%C&'tjcgO9O9QP!*!6lu@/q@=\_4&(BaGosSi565dcB!0f!-Gbn6nmkYS1A851XZkSRR(hD6gHNW
+%r/kmm`[k.c#6i=RclYfabjT#Lph8P9IKB9SNnF~>
+%%EndIpeXml
+%%Trailer
+end
+%%EOF
diff --git a/4-ght/4-ght-rezx.eps b/4-ght/4-ght-rezx.eps
new file mode 100644 (file)
index 0000000..7e31cb2
--- /dev/null
@@ -0,0 +1,708 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: Ipelib 60023 (Ipe 6.0 preview 23)
+%%CreationDate: D:20060422125537
+%%LanguageLevel: 2
+%%BoundingBox: 74 269 419 319
+%%HiResBoundingBox: 74.5399 269.05 418.06 318.862
+%%DocumentSuppliedResources: font DENHXP+CMR7
+%%+ font EKGRPX+CMR10
+%%+ font HPEVCS+CMMI10
+%%EndComments
+%%BeginProlog
+%%BeginResource: procset ipe 6.0 60023
+/ipe 40 dict def ipe begin
+/np { newpath } def
+/m { moveto } def
+/l { lineto } def
+/c { curveto } def
+/h { closepath } def
+/re { 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+      neg 0 rlineto closepath } def
+/d { setdash } def
+/w { setlinewidth } def
+/J { setlinecap } def
+/j { setlinejoin } def
+/cm { [ 7 1 roll ] concat } def
+/q { gsave } def
+/Q { grestore } def
+/g { setgray } def
+/rg { setrgbcolor } def
+/G { setgray } def
+/RG { setrgbcolor } def
+/S { stroke } def
+/f* { eofill } def
+/f { fill } def
+/ipeMakeFont {
+  exch findfont
+  dup length dict begin
+    { 1 index /FID ne { def } { pop pop } ifelse } forall
+    /Encoding exch def
+    currentdict
+  end
+  definefont pop
+} def
+/ipeFontSize 0 def
+/Tf { dup /ipeFontSize exch store selectfont } def
+/Td { translate } def
+/BT { gsave } def
+/ET { grestore } def
+/TJ { 0 0 moveto { dup type /stringtype eq
+ { show } { ipeFontSize mul -0.001 mul 0 rmoveto } ifelse
+} forall } def
+end
+%%EndResource
+%%EndProlog
+%%BeginSetup
+ipe begin
+%%BeginResource: font DENHXP+CMR7
+%!PS-AdobeFont-1.1: CMR7 1.0
+%%CreationDate: 1991 Aug 20 16:39:21
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.0) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMR7) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /DENHXP+CMR7 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 49 /one put
+dup 50 /two put
+readonly def
+/FontBBox{-27 -250 1122 750}readonly def
+/UniqueID 5000790 def
+currentdict end
+currentfile eexec
+d9d66f633b846a97b686a97e45a3d0aa052a014267b7904eb3c0d3bd0b83d891
+016ca6ca4b712adeb258faab9a130ee605e61f77fc1b738abc7c51cd46ef8171
+9098d5fee67660e69a7ab91b58f29a4d79e57022f783eb0fbbb6d4f4ec35014f
+d2decba99459a4c59df0c6eba150284454e707dc2100c15b76b4c19b84363758
+469a6c558785b226332152109871a9883487dd7710949204ddcf837e6a8708b8
+2bdbf16fbc7512faa308a093fe5cf5b8cabb9ffc6cc3f1e9ae32f234eb60fe7d
+e34995b1acff52428ea20c8ed4fd73e3935cebd40e0ead70c0887a451e1b1ac8
+47aede4191ccdb8b61345fd070fd30c4f375d8418ddd454729a251b3f61dae7c
+8882384282fdd6102ae8eefede6447576afa181f27a48216a9cad730561469e4
+78b286f22328f2ae84ef183de4119c402771a249aac1fa5435690a28d1b47486
+1060c8000d3fe1bf45133cf847a24b4f8464a63cea01ec84aa22fd005e74847e
+01426b6890951a7dd1f50a5f3285e1f958f11fc7f00ee26fee7c63998ea1328b
+c9841c57c80946d2c2fc81346249a664ecfb08a2ce075036cea7359fca1e90c0
+f686c3bb27eefa45d548f7bd074ce60e626a4f83c69fe93a5324133a78362f30
+8e8dcc80dd0c49e137cdc9ac08bae39282e26a7a4d8c159b95f227bda2a281af
+a9daebf31f504380b20812a211cf9feb112ec29a3fb3bd3e81809fc6293487a7
+455eb3b879d2b4bd46942bb1243896264722cb59146c3f65bd59b96a74b12bb2
+9a1354af174932210c6e19fe584b1b14c00e746089cbb17e68845d7b3ea05105
+eee461e3697fcf835cbe6d46c75523478e766832751cf6d96ec338bdad57d53b
+52f5340fac9fe0456ad13101824234b262ac0caba43b62ebda39795bae6cfe97
+563a50aae1f195888739f2676086a9811e5c9a4a7e0bf34f3e25568930adf80f
+0bddac3b634ad4ba6a59720ea4749236cf0f79aba4716c340f98517f6f06d9ab
+7ed8f46fc1868b5f3d3678df71aa772cf1f7dd222c6bf19d8ef0cfb7a76fc6d1
+0ad323c176134907ab375f20cfcd667ab094e2c7cb2179c4283329c9e435e7a4
+1e042ad0baa059b3f862236180b34d3fced833472577bacd472a4cd5c7347d2e
+1d0d6630f446f3708fcb29a85f40b4dab4d60aa8f5b2dbd67f2e45d80c7a7e86
+144669f75f8fa14609f8e4246fec475ed262e03d30393c78c7828206842b565a
+dbe20ea52ee9c4c3862b2f5f12cf89d935b89b84a45cefceaee8ec8806339364
+56ff1fe2e5112803e3e40162d5188d2210a54816aa9960611721c23a292ae80a
+8f8c0fb114d71c111700b0fea8804f37c5d31ecd7006603c53f4bdf7208286af
+3a25cee58e88bf81a4800b68c2a19ebdadf9b1074702e779a7dd915efe09d35e
+bd176d7346d859d0944520171c4e97696ae0502c43c391fce5e8fb1789065e18
+be3af62200d57912360411ce848b4550d1b0a3ba576f9b41ced3a23e753631a7
+25375abe8a4b55bc65ae2eafae452766961965093084d218637fb447795cc991
+eb1ef26bf82b7a81fa847abd3b559d35828ad7ddc5fc7b43c6c14e6adedd7663
+f272aa9a121630c5263d58773bcb1437ec2fc54c4af90e677a8e7d1738d003d4
+18998c03cc9ae182e7758767feb5e1b03c6cc32ad30d0abae6552290771e2cb1
+a23f469a8447c1868c6dec2c3c2bcfc691867e
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndResource
+/F7 /DENHXP+CMR7
+[ /.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/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+  /.notdef/one/two/.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/.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/.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/.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/.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
+  /.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/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef ]
+ipeMakeFont
+%%BeginResource: font EKGRPX+CMR10
+%!PS-AdobeFont-1.1: CMR10 1.00B
+%%CreationDate: 1992 Feb 19 19:54:52
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.00B) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMR10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /EKGRPX+CMR10 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 40 /parenleft put
+dup 41 /parenright put
+readonly def
+/FontBBox{-251 -250 1009 969}readonly def
+/UniqueID 5000793 def
+currentdict end
+currentfile eexec
+d9d66f633b846a97b686a97e45a3d0aa052a014267b7904eb3c0d3bd0b83d891
+016ca6ca4b712adeb258faab9a130ee605e61f77fc1b738abc7c51cd46ef8171
+9098d5fee67660e69a7ab91b58f29a4d79e57022f783eb0fbbb6d4f4ec35014f
+d2decba99459a4c59df0c6eba150284454e707dc2100c15b76b4c19b84363758
+469a6c558785b226332152109871a9883487dd7710949204ddcf837e6a8708b8
+2bdbf16fbc7512faa308a093fe5cf7158f1163bc1f3352e22a1452e73feca8a4
+87100fb1ffc4c8af409b2067537220e605da0852ca49839e1386af9d7a1a455f
+d1f017ce45884d76ef2cb9bc5821fd25365ddea6e45f332b5f68a44ad8a530f0
+92a36fac8d27f9087afeea2096f839a2bc4b937f24e080ef7c0f9374a18d565c
+295a05210db96a23175ac59a9bd0147a310ef49c551a417e0a22703f94ff7b75
+409a5d417da6730a69e310fa6a4229fc7e4f620b0fc4c63c50e99e179eb51e4c
+4bc45217722f1e8e40f1e1428e792eafe05c5a50d38c52114dfcd24d54027cbf
+2512dd116f0463de4052a7ad53b641a27e81e481947884ce35661b49153fa19e
+0a2a860c7b61558671303de6ae06a80e4e450e17067676e6bbb42a9a24acbc3e
+b0ca7b7a3bfea84fed39ccfb6d545bb2bcc49e5e16976407ab9d94556cd4f008
+24ef579b6800b6dc3aaf840b3fc6822872368e3b4274dd06ca36af8f6346c11b
+43c772cc242f3b212c4bd7018d71a1a74c9a94ed0093a5fb6557f4e0751047af
+d72098eca301b8ae68110f983796e581f106144951df5b750432a230fda3b575
+5a38b5e7972aabc12306a01a99fcf8189d71b8dbf49550baea9cf1b97cbfc7cc
+96498ecc938b1a1710b670657de923a659db8757147b140a48067328e7e3f9c3
+7d1888b284904301450ce0bc15eeea00e48ccd6388f3fc3c8578ef9a20a0e06e
+4f7addaf0e7d1e182d115bf1ad931977325ad391e72e2b13cc108e3726c11099
+e2000623188aaac9f3e233eb253bdd8b0a4759a66a113e066238b0086ac1b634
+5abff90e4b5ed3fa69c22541981b2bfc9710aef6b50a8bb53431c7b4d380d721
+639e005d6b4688ee16bff48443e7c9e5fb5bc5883e271cb034289232a0694cce
+12a5a2637485fb47bc281a2129edc23d8091fb4f93a6b82e666703e6a2816bba
+ea4d74e605325f713552a653349310ea0929fa02d1f9ed57de58e1928e0ca31d
+070a4c7036ed071ac3f6429c76912fcb605a98a3307024a00afe54d463628836
+e6098757cd50e1d40fa54d41bc2fdc30f5cc9042e5d704d1712fc0a4b907a61a
+3fbc6271bea1021043e2c35e830d2c44e1a54aba687535a0e1cb727bb7c902d2
+5df97d44fb85c8397f1c1e14c11dbfd563a205f1e248f250549cd4689f361c71
+948ebfd988b5b8b8fb1d7051f234e4ea5c9cb798d99c17715d0799f60feac8a8
+8589452e8932a9e7844e816b3d0f18f1d542d05600cad430e88f8298961d8fda
+a630894c90d2505f9ad25f555f8c56518921ad52b39beb69f9ad1ed552b3cf16
+13ccadbc2933a59af6cf80f892efdb0d4e5cd766094aef332323ccffafa32fa0
+07bfeb8985c120d623c4e2323f6e4a3fe0086795c3043b988701add821404586
+0cd3e21e107a25d661bcb329db6a7083217b438f19710ca275e336ad37e90d10
+4cf8e8410e0311297d1e1dceb8c8a662c6735da66e9cd443
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndResource
+/F8 /EKGRPX+CMR10
+[ /.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/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+  /parenleft/parenright/.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/.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/.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/.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/.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/.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
+  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef ]
+ipeMakeFont
+%%BeginResource: font HPEVCS+CMMI10
+%!PS-AdobeFont-1.1: CMMI10 1.100
+%%CreationDate: 1996 Jul 23 07:53:57
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.100) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMMI10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+end readonly def
+/FontName /HPEVCS+CMMI10 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 14 /delta put
+dup 85 /U put
+dup 87 /W put
+dup 88 /X put
+dup 101 /e put
+dup 114 /r put
+dup 115 /s put
+dup 116 /t put
+readonly def
+/FontBBox{-32 -250 1048 750}readonly def
+/UniqueID 5087385 def
+currentdict end
+currentfile eexec
+d9d66f633b846a97b686a97e45a3d0aa0529731c99a784ccbe85b4993b2eebde
+3b12d472b7cf54651ef21185116a69ab1096ed4bad2f646635e019b6417cc77b
+532f85d811c70d1429a19a5307ef63eb5c5e02c89fc6c20f6d9d89e7d91fe470
+b72befda23f5df76be05af4ce93137a219ed8a04a9d7d6fdf37e6b7fcde0d90b
+986423e5960a5d9fbb4c956556e8df90cbfaec476fa36fd9a5c8175c9af513fe
+d919c2ddd26bdc0d99398b9f4d03d5993dfc0930297866e1cd0a319b6b1fd958
+9e394a533a081c36d456a09920001a3d2199583eb9b84b4dee08e3d12939e321
+990cd249827d9648574955f61baaa11263a91b6c3d47a5190165b0c25abf6d3e
+6ec187e4b05182126bb0d0323d943170b795255260f9fd25f2248d04f45dfbfb
+def7ff8b19bfef637b210018ae02572b389b3f76282beb29cc301905d388c721
+59616893e774413f48de0b408bc66dce3fe17cb9f84d205839d58014d6a88823
+d9320ae93af96d97a02c4d5a2bb2b8c7925c4578003959c46e3ce1a2f0eac4bf
+8b9b325e46435bde60bc54d72bc8acb5c0a34413ac87045dc7b84646a324b808
+6fd8e34217213e131c3b1510415ce45420688ed9c1d27890ec68bd7c1235faf9
+1dab3a369dd2fc3be5cf9655c7b7eda7361d7e05e5831b6b8e2eec542a7b38ee
+03be4bac6079d038acb3c7c916279764547c2d51976baba94ba9866d79f13909
+95aa39b0f03103a07cbdf441b8c5669f729020af284b7ff52a29c6255fcaacf1
+74109050fba2602e72593fbcbfc26e726ee4aef97b7632bc4f5f353b5c67fed2
+3ea752a4a57b8f7feff1d7341d895f0a3a0be1d8e3391970457a967eff84f6d8
+47750b1145b8cc5bd96ee7aa99ddc9e06939e383bda41175233d58ad263ebf19
+afc0e2f840512d321166547b306c592b8a01e1fa2564b9a26dac14256414e4c8
+42616728d918c74d13c349f4186ec7b9708b86467425a6fdb3a396562f7ee4d8
+40b43621744cf8a23a6e532649b66c2a0002dd04f8f39618e4f572819dd34837
+b5a08e643fdca1505af6a1fa3ddfd1fa758013caed8acddbbb334d664dff5b53
+956017667d1074fe5415f315cfc941447d57558e64b9dc9ad50cbaa94f0faa68
+d4872639380366f40ebc7c737a6a6a4898116eaba307ee04667b75540cf65c8e
+39f3e927e746b46aa74f2e3e5f8a90a73a64c6cc0fcdf82556552e57b98740da
+8f6c3c3d8f20d98e80bf0819cd8d2fc7086437c221f5dca0f16ac69cbdae79a3
+58249a65ce9fa739a44530636b6cb4723673cf19dd001b1f21a3f5a14651ffbc
+ee5ac8658f123a6f14f7b4c37f38bc873485c35db451085de95859adf21d70eb
+768e2182bd7f1e41aee9f3c9ca5cb50ce78e1cf0e97b73cb7b1f5deaecc205e3
+0b95d92c5023401833bab5c3a5c2312393491dd099257a08e7b56f64c78a65db
+451a820e7b831d7bd63e1f2cf935f0f71e4dfe9d7ad8600f4b0a46a5059b65a0
+7eb0c543200d644a14966343122a4ad43fa7dd7cf1e3e6bd006972fec9b150fe
+278f2a502669c4ff4820a1886175b53e94d2e8d239ab1dc935ad1c04f9978695
+5339fe8cfc6697e7ecc0c1222ab43ac3fde05204c5eea4ee194176ef6a99f9ea
+496a16b7969cdbdc2ea16765ff041b18aaad544268dcb21de9643cac6f9a3bf4
+ab79e5d7d71cf1a2d3d734ed0f76faf020af8262dc9b329186430d1edbe317f3
+f9ff254e1ce1f55fdafdff0b1d1086afe8742ed22059439d7b4519695e4c914a
+ea19e015db8f7eb17fd0ce8c300dbf6c4940681f37bae30ec9a4e127b01772df
+a4caf5136a0df8e81971a3e00050e54c80683b26d86753c7abb3dca0280bdfe4
+612054d7b016b3ca01cb1f5de6970e838904105abe00835b3471f322e7866724
+834fbd9576501a9e239452a5385b81271908c37f2760c5754ce039523596a442
+0d1262c21793fd5c1fa4ee1db7d74217f5562e29c47a0bb91b3577a28fd1e0cb
+e82f2df377b39a55d958306e4630afa566a6ce903c9c0d2d5f375b5ae6bfacd4
+1fb4ec5851bbd9bbb29d68c61437e4f3a6fe184efeb02695fefcc4b6079ad832
+671008fdae1338cdd13d2cc45b62c064e38914a9551ddc0dea038b30cf19072a
+3098e45de563d907b0fa1dfa9393c0133e96998379036a58ae8a1fbc67612183
+82e1ac5249cec35285603ed339677fa8bb37bac950f053cc782ec937c376e40b
+5b12b946bca6c6e7c11bf5b2b003a333ac1e50f18bb614063463aca53bf8f32b
+05f135cfc47a5965cc4b25a3937e2912ea0062b0bde90e8c9707899ac8b2e1dc
+aea8be588d41713926bdef30a17285d9522c43732c0d13b9d578b6d7e1687caa
+b0a2d26772a43e4497d4b26b9cf57c3c3a12bf32f4d5e1c77d89affa579e5737
+2ea55abe187cefc5604c1ad70df7b3450644cd5c2d4285adb6d5d299204c6ac9
+6874764ff066b1dd75f0dae9b01ca676236e9cf72d7414322d4865fced9a2de1
+90944a3718ed896bd30f9c1aa689ba7f0a3d4f5fe05d02039164fec7478916d0
+36e8a3c16cbc134472990c51e8eed81825c9c27f988640811966683d6c66c71c
+fbe4d841db35699880477c1a0bfe8eb3944142d10c1f633b86e8510d542b67eb
+804feb99364e10669a2971039f51cc389e7693840a08e22e6abe366665bc6ac7
+868ef09323d2b37c82b98fb669c421722d23f8248205d06fa02acd9dcbf3d9e1
+c04579ada896fdf15566ac7d65e9ada871286030433f736d6764dbafad2a1acf
+67c94d7df151c4c84370c1487ff7ea3b3c0e39d145f1281ad1db079660ab8bcd
+dd9c66fb1db1c08c094f2aadd09425c5e7f2ed56a2631d6f9a154e453c908b8f
+e03f02f3aedbc2e523b12c0af3371d3d3bf2eb1e9b6c114dd4c4b0c5a198b07d
+fb11622dc21308e9b3ee78f9c4680a347e24ce55a0520ed558f4e26ec3b35993
+d527144963738433c3139bba3f4062d41f7cfa3b26650015deedb2a70eadaaed
+dc541aae43295cc959299bca6c7af375a1d3968225c00bba25848b9234c314eb
+f12bf43b0cef1cddd8c11f6a945ba269889171385d3081b16551c6cbab2dbdca
+db6889eac238f25d9ba16d7485ddd2203c42ed534e06b4a70c2e383408a45308
+69fc4a0aed2fafac42a4cc1801771d0452b2fe5dc9d00bfea742eb17643af305
+8ddc78e47f3e14947c6cd364539914ef5a7a09e93821c38b208762346ad2c578
+03d7480ea54e582f3bdf1ac530016968932a5c2b09f6240fe603d424f55de6f2
+175ffd941e55c6bee23db70bb418a6ecda6b4f08f42c354bc9595ab740672da6
+bb3294cab70951d240a362e84f9d2c490fcd19635e0cecd8f9a42d2ba05f1531
+f1945fec306b16a38e1f923fe68f2d0b54191ff679ea3c51b3d5d311f9abcf59
+1137aa5addffac2fea7747ed808409012532696e73b347696b6ad72e6445b659
+0734e20501a05e056982512abd74095cab449b7f2a9fc83ac4397d5f924f3c97
+cb63b04a63ef2a0713e2556648245c3ecd50cc1e6853329a56029e18dfed5a1c
+5b0f38b144b662b5929af5e0248435490afd2a3d0ff19d8692b48ccf5328257c
+49d84ac295b9432046308c2bab88922b56f079d24db25f820f5458330848
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndResource
+/F11 /HPEVCS+CMMI10
+[ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/delta/.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
+  /.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/.notdef/.notdef/.notdef/.notdef/U/.notdef/W
+  /X/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+  /.notdef/.notdef/.notdef/.notdef/.notdef/e/.notdef/.notdef
+  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+  /.notdef/.notdef/r/s/t/.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/.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/.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
+  /.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/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef ]
+ipeMakeFont
+%%EndSetup
+q np
+140.251 304.465 m
+132.949 308.116 125.646 311.768 118.343 313.593 c
+111.041 315.419 103.738 315.419 96.4352 313.593 c
+89.1324 311.768 81.8297 308.116 78.1784 302.639 c
+74.527 297.162 74.527 289.859 78.1784 284.382 c
+81.8297 278.905 89.1324 275.254 96.4352 273.428 c
+103.738 271.603 111.041 271.603 118.343 273.428 c
+125.646 275.254 132.949 278.905 140.251 282.557 c
+147.554 286.208 154.857 289.859 154.857 293.511 c
+154.857 297.162 147.554 300.814 140.251 304.465 c
+h 1 g q f* Q 0.4 w 0 g S
+Q
+q np
+162.16 304.465 m
+169.462 308.116 176.765 311.768 184.068 313.593 c
+191.37 315.419 198.673 315.419 205.976 313.593 c
+213.279 311.768 220.581 308.116 224.233 302.639 c
+227.884 297.162 227.884 289.859 224.233 284.382 c
+220.581 278.905 213.279 275.254 205.976 273.428 c
+198.673 271.603 191.37 271.603 184.068 273.428 c
+176.765 275.254 169.462 278.905 162.16 282.557 c
+154.857 286.208 147.554 289.859 147.554 293.511 c
+147.554 297.162 154.857 300.814 162.16 304.465 c
+h 1 g q f* Q 0.4 w 0 g S
+Q
+q np
+163.456 306.186 m
+165.811 299.12 165.811 289.698 163.456 282.632 c
+161.1 275.566 156.39 270.856 151.679 270.856 c
+146.968 270.856 142.258 275.566 139.902 282.632 c
+137.547 289.698 137.547 299.12 139.902 306.186 c
+142.258 313.252 146.968 317.962 151.679 317.962 c
+156.39 317.962 161.1 313.252 163.456 306.186 c
+h 1 g q f* Q 0.4 w 0 g S
+Q
+q 1 0 0 1 141.278 288.592 cm 1 0 0 1 0 0 cm 1 0 0 1 0 2.491 cm
+0 0 0 rg 0 0 0 RG
+1 0 0 1 0 -784.528 cm
+BT
+/F11 9.963 Tf 0 784.528 Td[(\016)]TJ/F8 9.963 Tf 4.805 0 Td[(\050)]TJ/F11 9.963 Tf 3.874 0 Td[(X)]TJ/F8 9.963 Tf 9.036 0 Td[(\051)]TJ
+ET
+Q
+q 1 0 0 1 90.7859 291.906 cm 1 0 0 1 0 0 cm 1 0 0 1 0 1.494 cm
+0 0 0 rg 0 0 0 RG
+1 0 0 1 0 -787.71 cm
+BT
+/F11 9.963 Tf 0 787.71 Td[(r)]TJ/F7 6.974 Tf 4.495 -1.494 Td[(2)]TJ
+ET
+Q
+q 1 0 0 1 201.655 292.063 cm 1 0 0 1 0 0 cm 1 0 0 1 0 1.494 cm
+0 0 0 rg 0 0 0 RG
+1 0 0 1 0 -787.71 cm
+BT
+/F11 9.963 Tf 0 787.71 Td[(r)]TJ/F7 6.974 Tf 4.495 -1.494 Td[(1)]TJ
+ET
+Q
+q np
+105.547 293.08 m
+105.547 293.908 104.875 294.58 104.047 294.58 c
+103.218 294.58 102.547 293.908 102.547 293.08 c
+102.547 292.252 103.218 291.58 104.047 291.58 c
+104.875 291.58 105.547 292.252 105.547 293.08 c
+h q f* Q 0.6 w S
+Q
+q np
+195.981 294.471 m
+195.981 295.3 195.31 295.971 194.481 295.971 c
+193.653 295.971 192.981 295.3 192.981 294.471 c
+192.981 293.643 193.653 292.971 194.481 292.971 c
+195.31 292.971 195.981 293.643 195.981 294.471 c
+h q f* Q 0.6 w S
+Q
+q 1 0 0 1 98.0311 301.869 cm 1 0 0 1 0 0 cm 0 0 0 rg 0 0 0 RG
+1 0 0 1 0 -787.711 cm
+BT
+/F11 9.963 Tf 0 787.711 Td[(s)]TJ
+ET
+Q
+q np
+112.792 303.042 m
+112.792 303.871 112.12 304.542 111.292 304.542 c
+110.463 304.542 109.792 303.871 109.792 303.042 c
+109.792 302.214 110.463 301.542 111.292 301.542 c
+112.12 301.542 112.792 302.214 112.792 303.042 c
+h q f* Q 0.6 w S
+Q
+q 1 0 0 1 98.0311 281.944 cm 1 0 0 1 0 0 cm 0 0 0 rg 0 0 0 RG
+1 0 0 1 0 -785.872 cm
+BT
+/F11 9.963 Tf 0 785.872 Td[(t)]TJ
+ET
+Q
+q np
+112.792 283.118 m
+112.792 283.946 112.12 284.618 111.292 284.618 c
+110.463 284.618 109.792 283.946 109.792 283.118 c
+109.792 282.289 110.463 281.618 111.292 281.618 c
+112.12 281.618 112.792 282.289 112.792 283.118 c
+h q f* Q 0.6 w S
+Q
+q np
+330.44 303.559 m
+323.137 307.211 315.835 310.862 308.532 312.688 c
+301.229 314.513 293.927 314.513 286.624 312.688 c
+279.321 310.862 272.018 307.211 268.367 301.734 c
+264.716 296.257 264.716 288.954 268.367 283.477 c
+272.018 278 279.321 274.348 286.624 272.523 c
+293.927 270.697 301.229 270.697 308.532 272.523 c
+315.835 274.348 323.137 278 330.44 281.651 c
+337.743 285.302 345.046 288.954 345.046 292.605 c
+345.046 296.257 337.743 299.908 330.44 303.559 c
+h 1 g q f* Q 0.4 w 0 g S
+Q
+q np
+352.348 303.559 m
+359.651 307.211 366.954 310.862 374.256 312.688 c
+381.559 314.513 388.862 314.513 396.165 312.688 c
+403.467 310.862 410.77 307.211 414.421 301.734 c
+418.073 296.257 418.073 288.954 414.421 283.477 c
+410.77 278 403.467 274.348 396.165 272.523 c
+388.862 270.697 381.559 270.697 374.256 272.523 c
+366.954 274.348 359.651 278 352.348 281.651 c
+345.046 285.302 337.743 288.954 337.743 292.605 c
+337.743 296.257 345.046 299.908 352.348 303.559 c
+h 1 g q f* Q 0.4 w 0 g S
+Q
+q np
+353.644 305.28 m
+356 298.214 356 288.793 353.644 281.727 c
+351.289 274.661 346.578 269.95 341.868 269.95 c
+337.157 269.95 332.446 274.661 330.091 281.727 c
+327.736 288.793 327.736 298.214 330.091 305.28 c
+332.446 312.346 337.157 317.057 341.868 317.057 c
+346.578 317.057 351.289 312.346 353.644 305.28 c
+h 1 g q f* Q 0.4 w 0 g S
+Q
+q 1 0 0 1 331.467 287.687 cm 1 0 0 1 0 0 cm 1 0 0 1 0 2.491 cm
+0 0 0 rg 0 0 0 RG
+1 0 0 1 0 -784.528 cm
+BT
+/F11 9.963 Tf 0 784.528 Td[(\016)]TJ/F8 9.963 Tf 4.805 0 Td[(\050)]TJ/F11 9.963 Tf 3.874 0 Td[(W)]TJ/F8 9.963 Tf 10.793 0 Td[(\051)]TJ
+ET
+Q
+q 1 0 0 1 291.083 273.41 cm 1 0 0 1 0 0 cm 1 0 0 1 0 1.494 cm
+0 0 0 rg 0 0 0 RG
+1 0 0 1 0 -787.71 cm
+BT
+/F11 9.963 Tf 0 787.71 Td[(r)]TJ/F7 6.974 Tf 4.495 -1.494 Td[(1)]TJ
+ET
+Q
+q 1 0 0 1 383.693 281.195 cm 1 0 0 1 0 0 cm 1 0 0 1 0 1.494 cm
+0 0 0 rg 0 0 0 RG
+1 0 0 1 0 -787.71 cm
+BT
+/F11 9.963 Tf 0 787.71 Td[(r)]TJ/F7 6.974 Tf 4.495 -1.494 Td[(2)]TJ
+ET
+Q
+q np
+289.763 279.7 m
+289.763 280.529 289.091 281.2 288.263 281.2 c
+287.434 281.2 286.763 280.529 286.763 279.7 c
+286.763 278.872 287.434 278.2 288.263 278.2 c
+289.091 278.2 289.763 278.872 289.763 279.7 c
+h q f* Q 0.6 w S
+Q
+q np
+378.019 283.603 m
+378.019 284.432 377.348 285.103 376.519 285.103 c
+375.691 285.103 375.019 284.432 375.019 283.603 c
+375.019 282.775 375.691 282.103 376.519 282.103 c
+377.348 282.103 378.019 282.775 378.019 283.603 c
+h q f* Q 0.6 w S
+Q
+q 1 0 0 1 308.477 305.349 cm 1 0 0 1 0 0 cm 0 0 0 rg 0 0 0 RG
+1 0 0 1 0 -787.711 cm
+BT
+/F11 9.963 Tf 0 787.711 Td[(s)]TJ
+ET
+Q
+q np
+314.222 302.137 m
+314.222 302.965 313.551 303.637 312.722 303.637 c
+311.894 303.637 311.222 302.965 311.222 302.137 c
+311.222 301.308 311.894 300.637 312.722 300.637 c
+313.551 300.637 314.222 301.308 314.222 302.137 c
+h q f* Q 0.6 w S
+Q
+q 1 0 0 1 383.693 299.308 cm 1 0 0 1 0 0 cm 0 0 0 rg 0 0 0 RG
+1 0 0 1 0 -785.872 cm
+BT
+/F11 9.963 Tf 0 785.872 Td[(t)]TJ
+ET
+Q
+q np
+378.019 301.717 m
+378.019 302.545 377.347 303.217 376.519 303.217 c
+375.691 303.217 375.019 302.545 375.019 301.717 c
+375.019 300.888 375.691 300.217 376.519 300.217 c
+377.347 300.217 378.019 300.888 378.019 301.717 c
+h q f* Q 0.6 w S
+Q
+q np
+324.476 306.165 m
+313.565 294.151 294.981 293.257 282.968 304.167 c
+281.259 305.72 279.738 307.468 278.438 309.376 c
+0.4 w S
+Q
+q 1 0 0 1 285.397 304.023 cm 1 0 0 1 0 0 cm 0 0 0 rg 0 0 0 RG
+1 0 0 1 0 -785.192 cm
+BT
+/F11 9.963 Tf 0 785.192 Td[(U)]TJ
+ET
+Q
+q np
+291.286 289.57 m
+294.498 299.741 l
+1.2 w S
+Q
+q 1 0 0 1 296.104 290.64 cm 1 0 0 1 0 0 cm 0 0 0 rg 0 0 0 RG
+1 0 0 1 0 -787.711 cm
+BT
+/F11 9.963 Tf 0 787.711 Td[(e)]TJ
+ET
+Q
+q np
+291.821 289.57 m
+292.357 288.499 l
+289.68 287.964 l
+291.821 286.358 l
+288.609 285.823 l
+290.751 284.217 l
+287.539 283.681 l
+290.215 282.075 l
+288.609 279.934 l
+0.4 w S
+Q
+q np
+294.498 299.205 m
+297.71 300.811 l
+298.78 298.135 l
+300.922 300.811 l
+302.528 298.135 l
+304.134 300.811 l
+306.275 298.135 l
+307.881 302.417 l
+310.022 299.205 l
+310.557 302.953 l
+312.699 301.882 l
+0.4 w S
+Q
+showpage
+%%BeginIpeXml: /FlateDecode
+%GhUDE9lK&M&A@sB&AfLB6Q",<]81h!V*CVd%g<:d<am4mCrg@sgL&hsZlRogAo"7/C^pItE_*oi
+%1RpttWa.LIZ0Bm-nmP]*A(XiIVJka.fh\Z@0c78pX1ijqRjTM7Me:Pke&j)6I.f$MY'umG[1Bai
+%c+IXHXa^+tN=!U%+D,CFAh@Z_D0n7^9^KHPQ+F\9I[jFtrGmT6eKn7#eT["aleC+(rMu>e'P*-)
+%rm^T*TjFCimT/qjQkiq<BYE_4p!(iI*a,W1@D9!m2HgXinfC9P?%$c)JG%9uJ73Oj/oXkNi:Ftm
+%4)Mpl*43*cTPrSfRoW>VG%`A5C-^XnZ<u*%OE+mN.8AG4AW<1`8]n?,:^iiE\^E,_CeI"i;!^f4
+%H*YG^PH.=W^;GFi`3Q-\`ian%Ig)gZ)oOY19g;fI/H(0"lj@4lGRWSr/A&D\]`#?r:-6Y#SC,@1
+%oOYsiK5?<fMkK\aE4ChB+gRg;34sp'$7#\"8OoW\F?VJ^KDh--0T(R_8e%CnR,-<E9in<lFuIRB
+%'pJ=t\NXrc]D4._U37+RB%F'+W-0#)XLn09Na+5m@C\W=Q3?*Up#5XJdgbto^O?.@l;DSm$C?_'
+%9Wi>JZLp;h)(^L2H+6H/i:^iTk3S\edOAl,5BnI!Lh(VQ/!L3SK&+<)QkYoN+&(D+>h&`N.54,$
+%ctP@/L"_WVN/feH`ee.kms8:J>lMcuQRD2f<_(1O_*dNqZcbq)k6M,&$:8]NLA7"_E&to^asF1!
+%Pah^6HTdPZOL9.lTJVKgLU.YVUb_dg$5"&o5OFjERQ-:7@X'14(W[&LZ[Dulj->4J\<U(f;L[N<
+%ZAl]t*d!C_lR6e=-%"i[ar9\Xg'($Ld?^m*I$1R6eElrfAF8!2ZA&XSA5S(;MmB4h;Df?t;oCV*
+%Ma3K'm,(FbG[,53'=AWNUS'aRIkF_gd,=^'Ymt<j<Qkcm]8/ib-juX'SYe\dF\Yt_SH8"\,jb)^
+%ZaS1]e1]t?gZmHM(Jq#NhWsS/'XQhOM$f//5hHNn$!o2163\L-"iA7H_]$OChP.G&,#V;PZpSRm
+%`\G(Hq)XW(@;k8mB&^Wi2J$/."a*J`oB.;/+U^dP87kNuIb@6L7<3;36)5b>:dR&?b/ZgWW6,[_
+%S8mL5eW"\),$^B4jYKrDKPdr!,^T"Ig&1]af::dk?:"Z<0cg,8g>WnO:(e.fDr\c-DM1bGT',$[
+%i_qR'3Z)CAneeXN#'oOR`_##&)cTeYjCGM8D/GY&HLSS(rc"EqFgg_"oM]#J7uY\>\Kb3GL>d;A
+%RiR\40kn_OL,+Dul[aoR^?8uFGm_&+)]V<I5.$GGV/gT]ERti[j]He`B%,eVXOq'%9+T0/349$E
+%-9cPG;Z<X?D7`.+2e!'cY5~>
+%%EndIpeXml
+%%Trailer
+end
+%%EOF
diff --git a/4-ght/4-ght.tex b/4-ght/4-ght.tex
new file mode 100644 (file)
index 0000000..a95846f
--- /dev/null
@@ -0,0 +1,250 @@
+% Written by Milan Straka, 2006
+
+\def\li{\discretionary{-}{-}{-}li}
+\def\d{\delta}
+\def\st{$st$}
+\def\rr{$r_1r_2$}
+\def\GHT{GHT}
+\def\PGHT{ÈGHT}
+\def\th#1{\s{#1}}
+\def\proof{\noindent{\it Dùkaz:} }
+
+\input ../sgr.tex
+
+\prednaska{4}{Gomory-Hu Trees}{zapsal Milan Straka}
+
+\h{Gomory-Hu Trees}
+
+Cílem této pøedná¹ky bylo vytvoøit datovou strukturu, která po urèitém
+pøedzpracování doká¾e rychle konstruovat minimální øezy pro libovolnou
+dvojici vrcholù v~grafu.
+
+Zatím umíme nalézt minimální \st-øez pro zadanou dvojici vrcholù v~èase
+$\tau=\O(n^{2/3}m)$. Nalézt minimální \st-øez pro ka¾dou dvojici vrcholù
+bychom tedy dokázali v~èase $\O(n^2\tau)$. Tento výsledek budeme
+chtít zlep¹it.
+
+\s{Znaèení:} Máme\li{} graf $(V,E)$ a $U\subseteq V$, $\d(U)$ znaèí hrany vedoucí
+mezi $U$ a $V\setminus U$. Formálnì tedy $\d(U)=E \cap (U \times (V \setminus U))$.
+Kapacitu øezu $W$ budeme znaèit $c(W)$ a $r(s,t)$ budeme znaèit kapacitu nejmen¹ího \st-øezu.
+
+\s{Pozorování:} Minimální øez rozdìluje graf jen na~dvì komponenty (v¹imnìte si, ¾e pro
+separátory nic takového neplatí) a ka¾dý minimální øez je tím pádem v¾dy mo¾né zapsat jako $\d(W)$
+pro nìjakou mno¾inu $W\subset V$.
+
+\s{Definice:} {\I Gomory-Hu Tree} (dále jen \GHT) pro neorientovaný ohodnocený graf $G=(V,E)$
+je strom $T=(V,F)$ takový,\nobreak{}\ \nobreak{}¾e $$\forall st \in F: \d(K_1)=\d(K_2)\hbox{ je minimální \st-øez, kde
+$K_1$ a $K_2$ jsou komponenty $T\setminus st$}.$$
+Pozor, $F$ nemusí být podmno¾ina pùvodních hran $E$.
+
+\s{Dal¹í znaèení:} Pro $e\in F$ budeme øezem $\d(e)$ oznaèovat øez $\d(K_1)=\d(K_2)$ a $r(e)$ bude jeho kapacita.
+
+K~èemu takový \GHT{} je (existuje-li)? To nám poví následující
+
+\th{Vìta (o~vyu¾ití \GHT):} Buï $T=(V,F)$ \GHT{} pro graf $G=(V,E)$ a mìjme dva vrcholy $s$ a $t$. Dále
+nech» $P$ je cesta v~$T$ mezi vrcholy $s$ a $t$ a $e$ je hrana na cestì $P$ s~minimálním $r(e)$.
+Pak $\d(e)$ je minimální \st-øez.
+
+\proof Nejprve si doká¾eme jedno drobné 
+
+{\advance\leftskip by 2em
+\th{Lemmátko:} Pro ka¾dou trojici vrcholù $x,y,z$ platí, ¾e $r(x,z) \ge \min(r(x,y),r(y,z))$.
+
+\proof Buï $W$ minimální $xz$-øez.
+
+\centerline{\epsfysize=1.5cm\epsfbox{4-ght-rez.eps}}
+
+\noindent Vrchol $y$ musí být v~jedné z~komponent, BÚNO v~komponentì s~$x$. Pak ale $r(y,z) \le c(W)$,
+proto¾e $W$ je také $yz$-øez. Tedy $\min(r(x,y),r(y,z)) \le r(x,z)$.\qed
+}
+
+\noindent Zpìt k~dùkazu vìty:
+Chceme dokázat, ¾e $\d(e)$ je minimální \st-øez. To, ¾e je to nìjaký øez, plyne z~definice \GHT.
+Minimalitu doká¾eme indukcí podle délky cesty $P$.\itemize\ibull
+\:$\vert\,P\,\vert = 1$: Hrana $e$ je v~tomto pøípadì pøímo $st$, tak¾e i minimalita plyne z~definice \GHT.
+\:$\vert\,P\,\vert > 1$: Cesta $P$ spojuje vrcholy $s$ a $t$, její první hrana je $sx$.
+Na¹e právì dokázané lemmátko øíká, ¾e $r(s,t) \ge \min (r(s,x),r(x,t))$.
+Urèitì je pravda, ¾e $r(s,x) \ge r(e)$, proto¾e $e$ byla hrana cesty $P$ s~nejmen¹ím $r(e)$.
+To, ¾e $r(x,t) \ge r(e)$, plyne z~indukèního pøedpokladu, proto¾e cesta mezi $x$ a $t$
+je krat¹í ne¾ cesta $P$. Dostáváme tak, ¾e $r(s,t) \ge \min(r(s,x),r(x,t)) \ge r(e)$.
+\endlist
+\qed
+Pokud doká¾eme \GHT{} sestrojit, nalézt minimální \st-øez pro libovolnou dvojici vrcholù
+doká¾eme stejnì rychle jako nalézt hranu s~nejmen¹í kapacitou na cestì mezi $s$ a $t$ v~\GHT.
+K~tomu mù¾eme pou¾ít napøíklad Sleator-Tarjanovy stromy, které tuto operaci
+doká¾ou provést v~amortizovaném èase $\O(\log n)$, nebo mù¾eme vyu¾ít toho,
+¾e máme spoustu èasu na~pøedvýpoèet, a minimální hrany si pro ka¾dou dvojici
+prostì pøichystat pøedem. Také lze vymyslet redukci na problém nalezení spoleèného
+pøedchùdce vrcholù ve stromì (nebude to \GHT) a pou¾ít jedno z~øe¹ení tohoto problému.
+
+\h{Konstrukce GHT}
+
+Nyní se nauèíme \GHT{} konstruovat, èím¾ také rozptýlíme obavy o~jejich existenci.
+Nejprve v¹ak budeme potøebovat jedno u¾iteèné lemma s~hnusnì technickým dùkazem:
+
+\vbox to 0pt{\vskip-\baselineskip\rightline{\epsfysize=2cm\epsfbox{4-ght-htl.eps}}\vss}\vskip-\baselineskip
+{
+\advance\rightskip by 17em
+\th{Hnusnì technické lemma (HTL):} Buïte¾ $s,t$ vrcholy grafu $(V,E)$, $\d(U)$ minimální \st-øez a $u\ne v$ dva rùzné
+vrcholy z~$U$. Pak existuje mno¾ina vrcholù $W \subseteq U$ taková, ¾e $\d(W)$ je minimální  $uv$-øez.
+[To dùle¾ité a netriviální je, ¾e celá $W$ le¾í v~$U$.]
+
+\proof Nech» je $\d(X)$ minimální $uv$-øez.
+BÚNO mù¾eme pøedpokládat, ¾e $s$ je v~$U$ a $t$ není v~$U$, $u$ je v~$X$ a $v$ není v~$X$ a $s$ je v~$X$.
+Pokud by tomu tak nebylo, mù¾eme vrcholy pøeznaèit.
+
+}
+
+Nyní mohou nastat dva pøípady:\numlist\nalpha
+\vbox to 0pt{\vskip -1cm\rightline{\epsfysize=2.5cm\epsfbox{4-ght-htl-a.eps}}\vss}\vskip-\baselineskip
+{\advance\hsize by -14em
+\:$t$ není prvek $X$.\par
+Doká¾eme dvì nerovnosti. Nerovnost $$\eqalignno{c(\d(U \cup X)) &\ge c(\d(U))&(1)}$$
+platí proto, ¾e $U \cup X$ je nìjaký \st-øez, zatímco $U$ je minimální \st-øez. Dal¹í
+$$\eqalignno{c(\d(U \cap X)) + c(\d(U \cup X)) &\le c(\d(U)) + c(\d(X))&(2)}$$
+doká¾eme \uv{rozborem pøípadù}.
+
+}
+
+Mno¾inu vrcholù si disjunktnì rozdìlíme na $X\setminus U$, $X \cap U$, $U \setminus X$ a $\<ostatní>$.
+Ka¾dý z~øezù v~nerovnosti $(2)$ se skládá z~hran mezi tìmito skupinami vrcholù. 
+Vytvoøíme tedy tabulku hran mezi ètyømi oznaèenými skupinami vrcholù a ka¾dému
+øezu z~$(2)$ oznaèíme jemu odpovídající hrany. Proto¾e je graf neorientovaný,
+staèí nám jen horní trojúhelník tabulky.
+Pro pøehlednosti si oznaèíme $L_1=\d(U \cap X), L_2=\d(U \cup X), P_1=\d(U)$ a $P_2=\d(X)$.
+$$\matrix{&X\setminus U&X \cap U&U \setminus X&\<ostatní>\cr\noalign{\smallskip}
+X\setminus U&\hbox{---}&L_1,P_1&P_1,P_2&L_2,P_2\cr
+X \cap U&&\hbox{---}&L_1,P_2&L_1,L_2,P_1,P_2\cr
+U \setminus X&&&\hbox{---}&L_2,P_1\cr
+\<ostatní>&&&&\hbox{---}\cr
+}$$
+
+Vidíme, ¾e ke ka¾dé hranì øezu na levé stranì nerovnosti máme vpravo její protìj¹ek
+a navíc hrany mezi $U\setminus X$ a $X \setminus U$ poèítáme jenom vpravo. Nerovnost
+$(2)$ tedy platí.
+
+Nyní staèí nerovnosti $(2)$ a $(1)$ odeèíst, èím¾ získáme $$c(\d(U \cap X)) \le c(\d(X)),$$
+co¾ spolu s~obrázkem dokazuje, ¾e $\d(U \cap X)$ je také minimální $uv$-øez.
+
+\vbox to 0pt{\rightline{\epsfysize=2.5cm\epsfbox{4-ght-htl-b.eps}}\vss}\vskip-\baselineskip
+{\advance\hsize by -14em\itemcount=1
+\:$t$ je prvek $X$.\par
+Postupovat budeme obdobnì jako v~pøedchozím pøípadì. Nerovnost $$\eqalignno{c(\d(X \setminus U)) &\ge c(\d(U))&(3)}$$
+platí proto, ¾e $X \setminus U$ je nìjaký \st-øez, zatímco $U$ je minimální \st-øez. Dal¹í
+$$\eqalignno{c(\d(U \setminus X)) + c(\d(X \setminus U)) &\le c(\d(U)) + c(\d(X))&(4)}$$
+doká¾eme opìt \uv{rozborem pøípadù}.
+
+}
+
+Oznaème $L_1=\d(U \setminus X), L_2=\d(X \setminus U), P_1=\d(U)$ a $P_2=\d(X)$ a vytvoøme tabulku:
+$$\matrix{&X\setminus U&X \cap U&U \setminus X&\<ostatní>\cr\noalign{\smallskip}
+X\setminus U&\hbox{---}&L_2,P_1&L_1,L_2,P_1,P_2&L_2,P_2\cr
+X \cap U&&\hbox{---}&L_1,P_2&P_1,P_2\cr
+U \setminus X&&&\hbox{---}&L_1,P_1\cr
+\<ostatní>&&&&\hbox{---}\cr
+}$$
+
+Stejnì jako v~pøedchozím pøípadì nerovnost $(4)$ platí. Odeètením $(4)$ a $(3)$ získáme 
+$$c(\d(U \setminus X)) \le c(\d(X)),$$
+z~èeho¾ opìt dostaneme, ¾e $\d(U \setminus X)$ je také minimální $uv$-øez.
+\endlist
+\qed
+
+\bigskip
+Nyní se koneènì dostáváme ke konstrukci \GHT{}. Abychom mohli pou¾ívat
+indukci, zavedeme si trochu obecnìj¹í \GHT{}.
+
+\s{Definice:} Mìjme neorientovaný graf $(V,E)$. {\I Èásteèný Gomory-Hu Tree} (alias \PGHT{}) pro $R \subseteq V$ je $((R,F),C)$,
+kde $(R,F)$ je strom a mno¾ina $C=\{C(r) \;\vert\; r\in R\}$ je rozklad vrcholù $V$. Tento rozklad
+nám øíká, k~jakým vrcholùm \PGHT{} máme pøilepit které vrcholy pùvodního grafu.
+Navíc musí platit, ¾e:\numlist\ndotted
+\:$\forall r: r\in C(r)$, neboli ka¾dý vrchol \PGHT{} je pøilepen sám k~sobì,
+\:$\forall st \in F: \d\left(\bigcup_{r\in K_1} C(r)\right)=\d\left(\bigcup_{r\in K_2} C(r)\right)
+\hbox{ je minimální \st-øez, kde $K_1$ a $K_2$ jsou komponenty $(R,F) \setminus st$}.$
+\endlist
+
+
+\th{Vìta (o~existenci \PGHT{}):} Buï $(V,E)$ neorientovaný ohodnocený graf. Pro ka¾dou podmno¾inu vrcholù $R$ 
+existuje \PGHT{}.
+
+\proof Doká¾eme indukcí podle velikosti mno¾iny $R$.\itemize\ibull
+\:$\vert R \vert = 1$: \PGHT{} má jediný vrchol $r\in R$ a $C(r)=V$.
+\:$\vert R \vert > 1$: Najdeme dvojici vrcholù $s,t\in R$ takové, ¾e jejich minimální \st-øez $\d(W)$
+je ze v¹ech mo¾ných minimálních \st-øezù nejmen¹í. Nyní vytvoøíme graf $G_1$ z~grafu $G$ zkontrahováním
+v¹ech vrcholù $w\in W$ do jednoho vrcholu, který oznaèíme $v_1$, a vytvoøíme graf $G_2$ z~$G$ zkontrahováním
+v¹ech vrcholù $w\in V\setminus W$ do jednoho vrcholu $v_2$. 
+
+\medskip
+\centerline{\epsfysize=2cm\epsfbox{4-ght-g1g2.eps}}
+
+[Proè to dìláme \uv{tak slo¾itì} a pøidáváme do $G_1$ vrchol $v_1$? Mì osobnì to dlouho pøi¹lo zbyteèné.
+Problém je v~tom, ¾e i kdy¾ dle HTL le¾í v¹echny minimální øezy oddìlující vrcholy z~$W$ v~mno¾inì vrcholù
+$W$, \<hrany> tìchto øezù celé ve $W$ le¾et nemusí. K~tìmto øezùm toti¾ patøí i hrany, které
+mají ve $W$ jenom jeden konec. Proto jsme do $G_1$ pøidali $v_1$, vedou do nìj v¹echny zajímavé
+hrany, které mají ve $W$ jeden konec. Tím {\I zajímavé} myslíme to, ¾e z~ka¾dého vrcholu $w\in W$ vede
+do $v_1$ \<nejlevnìj¹í> hrana, která z~nìj vedla do mno¾iny $V\setminus W$, pøípadnì ¾ádná, pokud 
+do této mno¾iny ¾ádná hrana nevedla.]
+
+Dále vytvoøíme mno¾iny vrcholù $R_1=R \cap (V\setminus W)$ a $R_2=R \cap W$. Dle indukèního
+pøedpokladu ($R_1$ i $R_2$ jsou men¹í ne¾ $R$) existuje \PGHT{} $T_1=((R_1,F_1),C_1)$ 
+pro $R_1$ na $G_1$ a $T_2=((R_2,F_2),C_2)$ pro $R_2$ na $G_2$. 
+
+Nyní vytvoøíme \PGHT{} pro pùvodní graf. Oznaème $r_1$ vrchol $R_1$, pro který je $v_1 \in C(r_1)$,
+obdobnì $r_2$. Oba \PGHT{} $T_1$ a $T_2$ spojíme hranou $r_1r_2$, tak¾e \PGHT{} pro $G$
+je $T=((R_1 \cup R_2,F_1 \cup F_2 \cup {r_1r_2}),C)$, pøièem¾ pro $r\in R_1$ je $C(r)=C_1(r)\setminus\{v_1\}$
+a pro $r\in R_2$ je $C(r)=C_2(r)\setminus\{v_2\}$ [odebrali jsme vrcholy $v_1$ a $v_2$ z~rozkladu $C$].
+
+Chceme ukázat, ¾e tento $T$ je opravdu \PGHT. $C$ je urèitì rozklad v¹ech vrcholù a ka¾dé
+$r\in C(r)$ z~indukèního pøedpokladu, tak¾e podmínka $1.$ je splnìna. Co se týèe podmínky $2.$, tak\itemize\ibull
+\:pro hranu $r1r2$ je $\d(W)$ urèitì minimální $r_2r_2$-øez, proto¾e øez mezi \rr\ to
+je a byl ze v¹ech mo¾ných minimálních øezù na $R$ nejmen¹í,
+\:pro hranu $e\ne r_1r_2$ je $\d(e)$ z~indukce minimální øez na jednom z~grafù $G_1$, $G_2$.
+Tento øez také pøesnì odpovídá øezu v~grafu $G$, proto¾e v~$G_1$ i v~$G_2$ jsme poèítali
+s~hranami vedoucími do $v_1$, $v_2$ a proto¾e jsme \PGHT{} napojili pøes vrcholy,
+k~nim¾ byly $v_1$ a $v_2$ pøilepeny.
+
+HTL nám navíc øíká, ¾e existuje minimální øez, který ¾ije pouze v~pøíslu¹ném z~grafù $G_1$, $G_2$,
+tak¾e nalezený øez je minimální pro celý graf $G$.
+\endlist
+\endlist
+\qed
+
+Nyní víme, ¾e \GHT{} existují, a také víme, jak by se daly konstruovat. Nicménì nalezení 
+vrcholù $s,t$ tak, aby byl minimální \st-øez nejmen¹í mo¾ný, je èasovì nároèné.
+Proto si poslední vìtu je¹tì o~nìco vylep¹íme.
+
+\th{Vylep¹ení vìty o~existenci \PGHT{}:} Na zaèátku dùkazu není nutné hledat vrcholy $s$ a $t$
+takové, aby byl minimální \st-øez nejmen¹í mo¾ný. Staèí zvolit \<libovolné> vrcholy $s,t\in R$
+a nalézt minimální øez $\d(W)$.
+
+\proof Nejprve si uvìdomme, proè jsme v~pøedchozím dùkazu potøebovali, aby byl $W$ nejmen¹í ze v¹ech
+mo¾ných \st-øezù. Bylo to jenom proto, ¾e jsme jím v~\PGHT{} nakonec separovali vrcholy $r_1$ a $r_2$
+a potøebovali jsme záruku, aby byl $\d(W)$ opravdu minimální \rr-øez. Nyní musíme ukázat,
+¾e námi nalezený \st-øez $\d(W)$ je také minimálním \rr-øezem.
+
+Pro spor tedy pøedpokládejme, ¾e minimální \rr-øez $\d(X)$ má men¹í kapacitu ne¾ $\d(W)$.
+Navíc vezmìme ten pøípad, kdy se to stalo \uv{poprvé}, tak¾e pro ka¾dé men¹í $R$ je
+v¹echno v~poøádku (to mù¾eme, proto¾e pro $\vert R \vert=1$ v¹echno v~poøádku bylo).
+
+Proto¾e byl $\d(W)$ minimální \st-øez a $\d(X)$ má men¹í kapacitu, $\d(X)$ nemù¾e separovat
+$s$ a $t$. Pøitom ale separuje $r_1$ a $r_2$, tak¾e musí separovat buï $s$ a $r_1$, nebo $t$ a $r_2$.
+BÚNO nech» $X$ separuje $s$ a $r_1$.
+
+\medskip
+\centerline{\epsfysize=2.2cm\epsfbox{4-ght-rezx.eps}}
+\smallskip
+
+Podívejme se nyní na \PGHT{} $T_1$ a naleznìme v~nìm nejlevnìj¹í hranu $e$ na cestì spojující $s$ a $r_1$.
+Tato hrana definuje øez $\d(U)$, co¾ je minimální $sr_1$-øez. Proto¾e $\d(X)$ je $sr_1$-øez,
+$c(\d(U)) \le c(\d(X)) < c(\d(W))$. Teï si staèí uvìdomit, ¾e $v_1\in C(r_1)$, tak¾e $\d(U)$
+separuje nejenom $s$ a $r_1$, ale také $s$ a $v_1$. Tím pádem ale separuje také $s$ a $t$.
+To je spor, proto¾e $c(\d(U)) < c(\d(W))$ a pøitom $\d(W)$ mìl být minimální.
+\qed
+
+Teï u¾ doká¾eme \GHT{} konstruovat efektivnì -- v~ka¾dém kroku vybereme dva vrcholy $s$ a $t$,
+nalezneme v~èase $\O(\tau)$ minimální \st-øez, a výsledné komponenty s~pøidanými $v_1,v_2$ 
+zpracujeme rekurzivnì. Celou výstavbu tedy zvládneme v~èase $\O(n\tau)=\O(n^{5/3}m)$. 
+Nalézt minimální \st-øezy pro v¹echny dvojice pak doká¾eme v~èase $\O(n^2)$, pøípadnì
+v~èase $\O(n^2\log n)$ (zále¾í na zpùsobu hledání nejlevnìj¹í hrany v~\GHT).
+
+\bye
diff --git a/4-ght/Makefile b/4-ght/Makefile
new file mode 100644 (file)
index 0000000..94be523
--- /dev/null
@@ -0,0 +1,3 @@
+P=4-ght
+
+include ../Makerules
diff --git a/5-mst/01.eps b/5-mst/01.eps
new file mode 100644 (file)
index 0000000..4a2999c
--- /dev/null
@@ -0,0 +1,458 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: /win_d/project/mff/Grafove algoritmy/01 - lehka hrana.dia
+%%Creator: Dia v0.94
+%%CreationDate: Sun Apr 16 22:36:22 2006
+%%For: beaver
+%%Orientation: Portrait
+%%Magnification: 1.0000
+%%BoundingBox: 0 0 485 373
+%%BeginSetup
+%%EndSetup
+%%EndComments
+%%BeginProlog
+[ /.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 /hyphen /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 /periodcentered /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] /isolatin1encoding exch def
+/cp {closepath} bind def
+/c {curveto} bind def
+/f {fill} bind def
+/a {arc} bind def
+/ef {eofill} bind def
+/ex {exch} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/sa {save} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/rm {rmoveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/sh {show} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/rot {rotate} bind def
+/sc {scale} bind def
+/sd {setdash} bind def
+/ff {findfont} bind def
+/sf {setfont} bind def
+/scf {scalefont} bind def
+/sw {stringwidth pop} bind def
+/tr {translate} bind def
+
+/ellipsedict 8 dict def
+ellipsedict /mtrx matrix put
+/ellipse
+{ ellipsedict begin
+   /endangle exch def
+   /startangle exch def
+   /yrad exch def
+   /xrad exch def
+   /y exch def
+   /x exch def   /savematrix mtrx currentmatrix def
+   x y tr xrad yrad sc
+   0 0 1 startangle endangle arc
+   savematrix setmatrix
+   end
+} def
+
+/mergeprocs {
+dup length
+3 -1 roll
+dup
+length
+dup
+5 1 roll
+3 -1 roll
+add
+array cvx
+dup
+3 -1 roll
+0 exch
+putinterval
+dup
+4 2 roll
+putinterval
+} bind def
+/Times-Roman-latin1
+    /Times-Roman findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Times-Italic-latin1
+    /Times-Italic findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Times-Bold-latin1
+    /Times-Bold findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Times-BoldItalic-latin1
+    /Times-BoldItalic findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/AvantGarde-Book-latin1
+    /AvantGarde-Book findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/AvantGarde-BookOblique-latin1
+    /AvantGarde-BookOblique findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/AvantGarde-Demi-latin1
+    /AvantGarde-Demi findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/AvantGarde-DemiOblique-latin1
+    /AvantGarde-DemiOblique findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Bookman-Light-latin1
+    /Bookman-Light findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Bookman-LightItalic-latin1
+    /Bookman-LightItalic findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Bookman-Demi-latin1
+    /Bookman-Demi findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Bookman-DemiItalic-latin1
+    /Bookman-DemiItalic findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Courier-latin1
+    /Courier findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Courier-Oblique-latin1
+    /Courier-Oblique findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Courier-Bold-latin1
+    /Courier-Bold findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Courier-BoldOblique-latin1
+    /Courier-BoldOblique findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Helvetica-latin1
+    /Helvetica findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Helvetica-Oblique-latin1
+    /Helvetica-Oblique findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Helvetica-Bold-latin1
+    /Helvetica-Bold findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Helvetica-BoldOblique-latin1
+    /Helvetica-BoldOblique findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Helvetica-Narrow-latin1
+    /Helvetica-Narrow findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Helvetica-Narrow-Oblique-latin1
+    /Helvetica-Narrow-Oblique findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Helvetica-Narrow-Bold-latin1
+    /Helvetica-Narrow-Bold findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Helvetica-Narrow-BoldOblique-latin1
+    /Helvetica-Narrow-BoldOblique findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/NewCenturySchoolbook-Roman-latin1
+    /NewCenturySchoolbook-Roman findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/NewCenturySchoolbook-Italic-latin1
+    /NewCenturySchoolbook-Italic findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/NewCenturySchoolbook-Bold-latin1
+    /NewCenturySchoolbook-Bold findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/NewCenturySchoolbook-BoldItalic-latin1
+    /NewCenturySchoolbook-BoldItalic findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Palatino-Roman-latin1
+    /Palatino-Roman findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Palatino-Italic-latin1
+    /Palatino-Italic findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Palatino-Bold-latin1
+    /Palatino-Bold findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Palatino-BoldItalic-latin1
+    /Palatino-BoldItalic findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/Symbol-latin1
+    /Symbol findfont
+definefont pop
+/ZapfChancery-MediumItalic-latin1
+    /ZapfChancery-MediumItalic findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+/ZapfDingbats-latin1
+    /ZapfDingbats findfont
+    dup length dict begin
+       {1 index /FID ne {def} {pop pop} ifelse} forall
+       /Encoding isolatin1encoding def
+    currentdict end
+definefont pop
+28.346000 -28.346000 scale
+-14.950000 -18.069338 translate
+%%EndProlog
+
+
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+0.000000 0.000000 0.000000 srgb
+n 25.000000 8.000000 m 27.000000 5.000000 l s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 20.000000 8.000000 m 17.000000 6.000000 l s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 19.000000 12.000000 m 15.000000 12.000000 l s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 28.000000 11.000000 m 32.000000 11.000000 l s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 26.000000 15.000000 m 28.000000 18.000000 l s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 21.000000 15.000000 m 19.000000 18.000000 l s
+0.250000 slw
+[1.000000] 0 sd
+[0.300000] 0 sd
+0 slj
+0 slc
+n 21.000000 15.000000 m 23.000000 13.000000 24.000000 17.000000 26.000000 15.000000 c s
+0.200000 slw
+[0.060000] 0 sd
+[0.200000] 0 sd
+0 slc
+n 19.000000 12.000000 m 21.000000 15.000000 l s
+0.200000 slw
+[0.200000] 0 sd
+[0.200000] 0 sd
+0 slc
+n 20.000000 8.000000 m 19.000000 12.000000 l s
+0.200000 slw
+[0.200000] 0 sd
+[0.200000] 0 sd
+0 slc
+n 20.000000 8.000000 m 25.000000 8.000000 l s
+0.200000 slw
+[0.200000] 0 sd
+[0.200000] 0 sd
+0 slc
+n 25.000000 8.000000 m 28.000000 11.000000 l s
+1.000000 1.000000 1.000000 srgb
+n 20.000000 8.000000 0.500000 0.500000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 20.000000 8.000000 0.500000 0.500000 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 25.000000 8.000000 0.500000 0.500000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 25.000000 8.000000 0.500000 0.500000 0 360 ellipse cp s
+0.200000 slw
+[0.200000] 0 sd
+[0.200000] 0 sd
+0 slc
+n 28.000000 11.000000 m 26.000000 15.000000 l s
+1.000000 1.000000 1.000000 srgb
+n 28.000000 11.000000 0.500000 0.500000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 28.000000 11.000000 0.500000 0.500000 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 26.000000 15.000000 0.500000 0.500000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 26.000000 15.000000 0.500000 0.500000 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 19.000000 12.000000 0.500000 0.500000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 19.000000 12.000000 0.500000 0.500000 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 21.000000 15.000000 0.500000 0.500000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 21.000000 15.000000 0.500000 0.500000 0 360 ellipse cp s
+/Helvetica-latin1 ff 0.840000 scf sf
+(e) 23.325000 14.600000 m gs 1 -1 sc sh gr
+/Helvetica-latin1 ff 0.700000 scf sf
+(x) 20.800000 16.250000 m gs 1 -1 sc sh gr
+/Helvetica-latin1 ff 0.700000 scf sf
+(y) 25.875000 16.200000 m gs 1 -1 sc sh gr
+showpage
diff --git a/5-mst/02.eps b/5-mst/02.eps
new file mode 100644 (file)
index 0000000..9cf5671
--- /dev/null
@@ -0,0 +1,429 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: /win_d/project/mff/Grafove algoritmy/02 - modra hrana.dia
+%%Creator: Dia v0.94
+%%CreationDate: Mon Apr 17 10:11:39 2006
+%%For: beaver
+%%Orientation: Portrait
+%%Magnification: 1.0000
+%%BoundingBox: 0 0 372 298
+%%BeginSetup
+%%EndSetup
+%%EndComments
+%%BeginProlog
+[ /.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 /hyphen /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 /periodcentered /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] /isolatin1encoding exch def
+/cp {closepath} bind def
+/c {curveto} bind def
+/f {fill} bind def
+/a {arc} bind def
+/ef {eofill} bind def
+/ex {exch} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/sa {save} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/rm {rmoveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/sh {show} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/rot {rotate} bind def
+/sc {scale} bind def
+/sd {setdash} bind def
+/ff {findfont} bind def
+/sf {setfont} bind def
+/scf {scalefont} bind def
+/sw {stringwidth pop} bind def
+/tr {translate} bind def
+
+/ellipsedict 8 dict def
+ellipsedict /mtrx matrix put
+/ellipse
+{ ellipsedict begin
+   /endangle exch def
+   /startangle exch def
+   /yrad exch def
+   /xrad exch def
+   /y exch def
+   /x exch def   /savematrix mtrx currentmatrix def
+   x y tr xrad yrad sc
+   0 0 1 startangle endangle arc
+   savematrix setmatrix
+   end
+} def
+
+/mergeprocs {
+dup length
+3 -1 roll
+dup
+length
+dup
+5 1 roll
+3 -1 roll
+add
+array cvx
+dup
+3 -1 roll
+0 exch
+putinterval
+dup
+4 2 roll
+putinterval
+} bind def
+/dpi_x 300 def
+/dpi_y 300 def
+/conicto {
+    /to_y exch def
+    /to_x exch def
+    /conic_cntrl_y exch def
+    /conic_cntrl_x exch def
+    currentpoint
+    /p0_y exch def
+    /p0_x exch def
+    /p1_x p0_x conic_cntrl_x p0_x sub 2 3 div mul add def
+    /p1_y p0_y conic_cntrl_y p0_y sub 2 3 div mul add def
+    /p2_x p1_x to_x p0_x sub 1 3 div mul add def
+    /p2_y p1_y to_y p0_y sub 1 3 div mul add def
+    p1_x p1_y p2_x p2_y to_x to_y curveto
+} bind def
+/start_ol { gsave 1.1 dpi_x div dup scale} bind def
+/end_ol { closepath fill grestore } bind def
+28.346000 -28.346000 scale
+-15.950000 -14.460000 translate
+%%EndProlog
+
+
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0 slc
+0.000000 0.000000 0.000000 srgb
+n 16.000000 7.000000 m 16.000000 6.000000 17.000000 4.000000 19.000000 4.000000 c s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0 slc
+n 19.000000 4.000000 m 21.000000 4.000000 22.000000 6.000000 21.000000 7.000000 c s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0 slc
+n 21.000000 7.000000 m 20.000000 8.000000 20.000000 9.000000 21.000000 10.000000 c s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0 slc
+n 21.000000 10.000000 m 22.000000 11.000000 21.000000 13.000000 19.000000 13.000000 c s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0 slc
+n 16.000000 7.000000 m 16.000000 8.000000 16.000000 9.000000 16.000000 10.000000 c s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0 slc
+n 16.000000 10.000000 m 16.000000 11.000000 17.000000 13.000000 19.000000 13.000000 c s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0 slc
+n 24.000000 7.000000 m 23.000000 6.000000 24.000000 4.000000 26.000000 4.000000 c s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0 slc
+n 26.000000 4.000000 m 28.000000 4.000000 29.000000 6.000000 29.000000 7.000000 c s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0 slc
+n 29.000000 7.000000 m 29.000000 8.000000 29.000000 9.000000 29.000000 10.000000 c s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0 slc
+n 29.000000 10.000000 m 29.000000 11.000000 28.000000 13.000000 26.000000 13.000000 c s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0 slc
+n 24.000000 7.000000 m 25.000000 8.000000 25.000000 9.000000 24.000000 10.000000 c s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0 slc
+n 24.000000 10.000000 m 23.000000 11.000000 24.000000 13.000000 26.000000 13.000000 c s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 20.550000 6.000000 m 24.450000 6.000000 l s
+0.100000 slw
+[] 0 sd
+0 slj
+0 slc
+1.000000 1.000000 1.000000 srgb
+n 20.050000 6.000000 m 20.050000 5.875000 20.175000 5.750000 20.300000 5.750000 c 20.425000 5.750000 20.550000 5.875000 20.550000 6.000000 c 20.550000 6.125000 20.425000 6.250000 20.300000 6.250000 c 20.175000 6.250000 20.050000 6.125000 20.050000 6.000000 c ef
+0.000000 0.000000 0.000000 srgb
+n 20.050000 6.000000 m 20.050000 5.875000 20.175000 5.750000 20.300000 5.750000 c 20.425000 5.750000 20.550000 5.875000 20.550000 6.000000 c 20.550000 6.125000 20.425000 6.250000 20.300000 6.250000 c 20.175000 6.250000 20.050000 6.125000 20.050000 6.000000 c s
+0.100000 slw
+[] 0 sd
+0 slj
+0 slc
+1.000000 1.000000 1.000000 srgb
+n 24.950000 6.000000 m 24.950000 6.125000 24.825000 6.250000 24.700000 6.250000 c 24.575000 6.250000 24.450000 6.125000 24.450000 6.000000 c 24.450000 5.875000 24.575000 5.750000 24.700000 5.750000 c 24.825000 5.750000 24.950000 5.875000 24.950000 6.000000 c ef
+0.000000 0.000000 0.000000 srgb
+n 24.950000 6.000000 m 24.950000 6.125000 24.825000 6.250000 24.700000 6.250000 c 24.575000 6.250000 24.450000 6.125000 24.450000 6.000000 c 24.450000 5.875000 24.575000 5.750000 24.700000 5.750000 c 24.825000 5.750000 24.950000 5.875000 24.950000 6.000000 c s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 20.542517 11.909581 m 25.457483 11.090419 l s
+0.100000 slw
+[] 0 sd
+0 slj
+0 slc
+1.000000 1.000000 1.000000 srgb
+n 20.049320 11.991780 m 20.028770 11.868481 20.131519 11.724632 20.254818 11.704082 c 20.378118 11.683532 20.521967 11.786281 20.542517 11.909581 c 20.563067 12.032880 20.460317 12.176729 20.337018 12.197279 c 20.213719 12.217829 20.069870 12.115079 20.049320 11.991780 c ef
+0.000000 0.000000 0.000000 srgb
+n 20.049320 11.991780 m 20.028770 11.868481 20.131519 11.724632 20.254818 11.704082 c 20.378118 11.683532 20.521967 11.786281 20.542517 11.909581 c 20.563067 12.032880 20.460317 12.176729 20.337018 12.197279 c 20.213719 12.217829 20.069870 12.115079 20.049320 11.991780 c s
+0.100000 slw
+[] 0 sd
+0 slj
+0 slc
+1.000000 1.000000 1.000000 srgb
+n 25.950680 11.008220 m 25.971230 11.131519 25.868481 11.275368 25.745182 11.295918 c 25.621882 11.316468 25.478033 11.213719 25.457483 11.090419 c 25.436933 10.967120 25.539683 10.823271 25.662982 10.802721 c 25.786281 10.782171 25.930130 10.884921 25.950680 11.008220 c ef
+0.000000 0.000000 0.000000 srgb
+n 25.950680 11.008220 m 25.971230 11.131519 25.868481 11.275368 25.745182 11.295918 c 25.621882 11.316468 25.478033 11.213719 25.457483 11.090419 c 25.436933 10.967120 25.539683 10.823271 25.662982 10.802721 c 25.786281 10.782171 25.930130 10.884921 25.950680 11.008220 c s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 19.544472 7.077782 m 25.455528 7.922218 l s
+0.100000 slw
+[] 0 sd
+0 slj
+0 slc
+1.000000 1.000000 1.000000 srgb
+n 19.049497 7.007071 m 19.067175 6.883327 19.208597 6.777261 19.332340 6.794939 c 19.456084 6.812617 19.562150 6.954038 19.544472 7.077782 c 19.526795 7.201525 19.385373 7.307591 19.261630 7.289914 c 19.137886 7.272236 19.031820 7.130815 19.049497 7.007071 c ef
+0.000000 0.000000 0.000000 srgb
+n 19.049497 7.007071 m 19.067175 6.883327 19.208597 6.777261 19.332340 6.794939 c 19.456084 6.812617 19.562150 6.954038 19.544472 7.077782 c 19.526795 7.201525 19.385373 7.307591 19.261630 7.289914 c 19.137886 7.272236 19.031820 7.130815 19.049497 7.007071 c s
+0.100000 slw
+[] 0 sd
+0 slj
+0 slc
+1.000000 1.000000 1.000000 srgb
+n 25.950503 7.992929 m 25.932825 8.116673 25.791403 8.222739 25.667660 8.205061 c 25.543916 8.187383 25.437850 8.045962 25.455528 7.922218 c 25.473205 7.798475 25.614627 7.692409 25.738370 7.710086 c 25.862114 7.727764 25.968180 7.869185 25.950503 7.992929 c ef
+0.000000 0.000000 0.000000 srgb
+n 25.950503 7.992929 m 25.932825 8.116673 25.791403 8.222739 25.667660 8.205061 c 25.543916 8.187383 25.437850 8.045962 25.455528 7.922218 c 25.473205 7.798475 25.614627 7.692409 25.738370 7.710086 c 25.862114 7.727764 25.968180 7.869185 25.950503 7.992929 c s
+0.300000 slw
+[0.200000] 0 sd
+[0.300000] 0 sd
+0 slc
+0.000000 0.000000 0.600000 srgb
+n 19.643467 9.908076 m 25.356533 9.091924 l s
+0.300000 slw
+[] 0 sd
+0 slj
+0 slc
+1.000000 1.000000 1.000000 srgb
+n 19.148492 9.978787 m 19.130815 9.855043 19.236881 9.713622 19.360624 9.695944 c 19.484368 9.678266 19.625790 9.784332 19.643467 9.908076 c 19.661145 10.031820 19.555079 10.173241 19.431335 10.190919 c 19.307591 10.208597 19.166170 10.102530 19.148492 9.978787 c ef
+0.000000 0.000000 0.600000 srgb
+n 19.148492 9.978787 m 19.130815 9.855043 19.236881 9.713622 19.360624 9.695944 c 19.484368 9.678266 19.625790 9.784332 19.643467 9.908076 c 19.661145 10.031820 19.555079 10.173241 19.431335 10.190919 c 19.307591 10.208597 19.166170 10.102530 19.148492 9.978787 c s
+0.300000 slw
+[] 0 sd
+0 slj
+0 slc
+1.000000 1.000000 1.000000 srgb
+n 25.851508 9.021213 m 25.869185 9.144957 25.763119 9.286378 25.639376 9.304056 c 25.515632 9.321734 25.374210 9.215668 25.356533 9.091924 c 25.338855 8.968180 25.444921 8.826759 25.568665 8.809081 c 25.692409 8.791403 25.833830 8.897470 25.851508 9.021213 c ef
+0.000000 0.000000 0.600000 srgb
+n 25.851508 9.021213 m 25.869185 9.144957 25.763119 9.286378 25.639376 9.304056 c 25.515632 9.321734 25.374210 9.215668 25.356533 9.091924 c 25.338855 8.968180 25.444921 8.826759 25.568665 8.809081 c 25.692409 8.791403 25.833830 8.897470 25.851508 9.021213 c s
+0.000000 0.000000 0.000000 srgb
+gsave 18.400000 10.250000 translate 0.035278 -0.035278 scale
+start_ol
+3200 3136 moveto
+2065 1610 lineto
+3264 0 lineto
+2654 0 lineto
+1738 1232 lineto
+810 0 lineto
+192 0 lineto
+1435 1641 lineto
+320 3136 lineto
+927 3136 lineto
+1760 2019 lineto
+2592 3136 lineto
+3200 3136 lineto
+end_ol grestore 
+gsave 26.300000 9.250000 translate 0.035278 -0.035278 scale
+start_ol
+1863 -297 moveto
+1641 -868 1430 -1042 conicto
+1220 -1216 866 -1216 conicto
+448 -1216 lineto
+448 -768 lineto
+755 -768 lineto
+972 -768 1091 -666 conicto
+1210 -565 1356 -187 conicto
+1450 49 lineto
+192 3136 lineto
+715 3136 lineto
+1712 683 lineto
+2709 3136 lineto
+3264 3136 lineto
+1863 -297 lineto
+end_ol grestore 
+gsave 22.100000 9.250000 translate 0.035278 -0.035278 scale
+start_ol
+3904 2111 moveto
+3904 1792 lineto
+1024 1792 lineto
+1066 1104 1417 744 conicto
+1768 384 2394 384 conicto
+2758 384 3099 464 conicto
+3440 544 3776 704 conicto
+3776 128 lineto
+3438 4 3083 -62 conicto
+2729 -128 2364 -128 conicto
+1451 -128 917 407 conicto
+384 942 384 1854 conicto
+384 2797 888 3350 conicto
+1392 3904 2245 3904 conicto
+3012 3904 3458 3422 conicto
+3904 2940 3904 2111 conicto
+3264 2304 moveto
+3257 2800 2978 3096 conicto
+2699 3392 2239 3392 conicto
+1718 3392 1405 3105 conicto
+1092 2819 1045 2300 conicto
+3264 2304 lineto
+end_ol grestore 
+gsave 21.450000 13.800000 translate 0.035278 -0.035278 scale
+start_ol
+448 3648 moveto
+448 0 lineto
+1024 0 lineto
+1024 1834 lineto
+1024 2340 1155 2671 1432 2866 curveto
+1611 2995 1784 3035 2185 3035 curveto
+2185 3648 lineto
+2087 3648 2038 3648 1961 3648 curveto
+1583 3648 1296 3428 960 2893 curveto
+960 3648 lineto
+448 3648 lineto
+1618 4010 moveto
+2282 5056 lineto
+1840 5056 lineto
+1294 4387 lineto
+727 5056 lineto
+303 5056 lineto
+947 4010 lineto
+1618 4010 lineto
+end_ol grestore 
+gsave 21.754800 13.800000 translate 0.035278 -0.035278 scale
+start_ol
+3904 2111 moveto
+3904 1792 lineto
+1024 1792 lineto
+1066 1104 1417 744 conicto
+1768 384 2394 384 conicto
+2758 384 3099 464 conicto
+3440 544 3776 704 conicto
+3776 128 lineto
+3438 4 3083 -62 conicto
+2729 -128 2364 -128 conicto
+1451 -128 917 407 conicto
+384 942 384 1854 conicto
+384 2797 888 3350 conicto
+1392 3904 2245 3904 conicto
+3012 3904 3458 3422 conicto
+3904 2940 3904 2111 conicto
+3264 2304 moveto
+3257 2800 2978 3096 conicto
+2699 3392 2239 3392 conicto
+1718 3392 1405 3105 conicto
+1092 2819 1045 2300 conicto
+3264 2304 lineto
+end_ol grestore 
+gsave 22.313600 13.800000 translate 0.035278 -0.035278 scale
+start_ol
+384 3776 moveto
+3328 3776 lineto
+3328 3212 lineto
+998 512 lineto
+3328 512 lineto
+3328 0 lineto
+320 0 lineto
+320 564 lineto
+2631 3264 lineto
+384 3264 lineto
+384 3776 lineto
+end_ol grestore 
+gsave 22.796200 13.800000 translate 0.035278 -0.035278 scale
+start_ol
+end_ol grestore 
+gsave 23.084067 13.800000 translate 0.035278 -0.035278 scale
+start_ol
+4480 4736 moveto
+4480 4032 lineto
+4130 4322 3735 4465 conicto
+3340 4608 2895 4608 conicto
+2019 4608 1553 4073 conicto
+1088 3538 1088 2526 conicto
+1088 1518 1553 983 conicto
+2019 448 2895 448 conicto
+3340 448 3735 607 conicto
+4130 767 4480 1088 conicto
+4480 384 lineto
+4119 128 3716 0 conicto
+3313 -128 2864 -128 conicto
+1710 -128 1047 584 conicto
+384 1296 384 2526 conicto
+384 3760 1047 4472 conicto
+1710 5184 2864 5184 conicto
+3320 5184 3723 5072 conicto
+4126 4960 4480 4736 conicto
+end_ol grestore 
+showpage
diff --git a/5-mst/03.eps b/5-mst/03.eps
new file mode 100644 (file)
index 0000000..c4124bc
--- /dev/null
@@ -0,0 +1,520 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: /win_d/project/mff/Grafove algoritmy/03 - cervena hrana.dia
+%%Creator: Dia v0.94
+%%CreationDate: Mon Apr 17 10:31:09 2006
+%%For: beaver
+%%Orientation: Portrait
+%%Magnification: 1.0000
+%%BoundingBox: 0 0 372 444
+%%BeginSetup
+%%EndSetup
+%%EndComments
+%%BeginProlog
+[ /.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 /hyphen /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 /periodcentered /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] /isolatin1encoding exch def
+/cp {closepath} bind def
+/c {curveto} bind def
+/f {fill} bind def
+/a {arc} bind def
+/ef {eofill} bind def
+/ex {exch} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/sa {save} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/rm {rmoveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/sh {show} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/rot {rotate} bind def
+/sc {scale} bind def
+/sd {setdash} bind def
+/ff {findfont} bind def
+/sf {setfont} bind def
+/scf {scalefont} bind def
+/sw {stringwidth pop} bind def
+/tr {translate} bind def
+
+/ellipsedict 8 dict def
+ellipsedict /mtrx matrix put
+/ellipse
+{ ellipsedict begin
+   /endangle exch def
+   /startangle exch def
+   /yrad exch def
+   /xrad exch def
+   /y exch def
+   /x exch def   /savematrix mtrx currentmatrix def
+   x y tr xrad yrad sc
+   0 0 1 startangle endangle arc
+   savematrix setmatrix
+   end
+} def
+
+/mergeprocs {
+dup length
+3 -1 roll
+dup
+length
+dup
+5 1 roll
+3 -1 roll
+add
+array cvx
+dup
+3 -1 roll
+0 exch
+putinterval
+dup
+4 2 roll
+putinterval
+} bind def
+/dpi_x 300 def
+/dpi_y 300 def
+/conicto {
+    /to_y exch def
+    /to_x exch def
+    /conic_cntrl_y exch def
+    /conic_cntrl_x exch def
+    currentpoint
+    /p0_y exch def
+    /p0_x exch def
+    /p1_x p0_x conic_cntrl_x p0_x sub 2 3 div mul add def
+    /p1_y p0_y conic_cntrl_y p0_y sub 2 3 div mul add def
+    /p2_x p1_x to_x p0_x sub 1 3 div mul add def
+    /p2_y p1_y to_y p0_y sub 1 3 div mul add def
+    p1_x p1_y p2_x p2_y to_x to_y curveto
+} bind def
+/start_ol { gsave 1.1 dpi_x div dup scale} bind def
+/end_ol { closepath fill grestore } bind def
+28.346000 -28.346000 scale
+-14.327500 -20.322542 translate
+%%EndProlog
+
+
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0 slc
+0.000000 0.000000 0.000000 srgb
+n 25.000000 12.000000 m 24.000000 12.000000 23.000000 11.000000 22.000000 12.000000 c s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0 slc
+n 22.000000 13.000000 m 23.000000 13.000000 23.000000 14.000000 25.000000 13.000000 c s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 23.500000 14.500000 m 21.500000 16.500000 l s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 17.500000 16.500000 m 21.500000 16.500000 l s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 17.500000 16.500000 m 15.500000 14.500000 l s
+0.200000 slw
+[0.200000] 0 sd
+[0.200000] 0 sd
+0 slc
+n 15.500000 14.500000 m 15.500000 10.500000 l s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 15.500000 10.500000 m 17.500000 8.500000 l s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 17.500000 8.500000 m 21.500000 8.500000 l s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 21.500000 8.500000 m 23.500000 10.500000 l s
+0.300000 slw
+[1.000000] 0 sd
+[0.300000] 0 sd
+0 slc
+0.600000 0.000000 0.000000 srgb
+n 23.500000 10.500000 m 23.500000 14.500000 l s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0 slc
+0.000000 0.000000 0.000000 srgb
+n 22.000000 5.000000 m 23.000000 5.000000 23.000000 6.000000 25.000000 5.000000 c s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0 slc
+n 25.000000 5.000000 m 27.000000 4.000000 28.000000 6.000000 27.000000 7.000000 c s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0 slc
+n 22.000000 12.000000 m 21.000000 13.000000 19.000000 11.000000 20.000000 10.000000 c s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0 slc
+n 27.000000 10.000000 m 28.000000 11.000000 26.000000 12.000000 25.000000 12.000000 c s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0 slc
+n 20.000000 7.000000 m 20.000000 6.000000 21.000000 5.000000 22.000000 5.000000 c s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0 slc
+n 20.000000 7.000000 m 20.000000 8.000000 21.000000 9.000000 20.000000 10.000000 c s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0 slc
+n 27.000000 7.000000 m 26.000000 8.000000 26.000000 9.000000 27.000000 10.000000 c s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0 slc
+n 25.000000 13.000000 m 27.000000 12.000000 28.000000 14.000000 27.000000 15.000000 c s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0 slc
+n 22.000000 20.000000 m 21.000000 21.000000 19.000000 19.000000 20.000000 18.000000 c s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0 slc
+n 27.000000 18.000000 m 28.000000 19.000000 26.000000 20.000000 25.000000 20.000000 c s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0 slc
+n 25.000000 20.000000 m 24.000000 20.000000 23.000000 19.000000 22.000000 20.000000 c s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0 slc
+n 20.000000 15.000000 m 20.000000 14.000000 21.000000 13.000000 22.000000 13.000000 c s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0 slc
+n 20.000000 15.000000 m 20.000000 16.000000 21.000000 17.000000 20.000000 18.000000 c s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0 slc
+n 27.000000 15.000000 m 26.000000 16.000000 26.000000 17.000000 27.000000 18.000000 c s
+1.000000 1.000000 1.000000 srgb
+n 23.500000 10.500000 0.500000 0.500000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.600000 0.000000 0.000000 srgb
+n 23.500000 10.500000 0.500000 0.500000 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 23.500000 14.500000 0.500000 0.500000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.600000 0.000000 0.000000 srgb
+n 23.500000 14.500000 0.500000 0.500000 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 21.500000 16.500000 0.500000 0.500000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 21.500000 16.500000 0.500000 0.500000 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 21.500000 8.500000 0.500000 0.500000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 21.500000 8.500000 0.500000 0.500000 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 17.500000 8.500000 0.500000 0.500000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 17.500000 8.500000 0.500000 0.500000 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 17.500000 16.500000 0.500000 0.500000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 17.500000 16.500000 0.500000 0.500000 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 15.500000 14.500000 0.500000 0.500000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 15.500000 14.500000 0.500000 0.500000 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 15.500000 10.500000 0.500000 0.500000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 15.500000 10.500000 0.500000 0.500000 0 360 ellipse cp s
+gsave 23.300000 9.750000 translate 0.035278 -0.035278 scale
+start_ol
+3200 3136 moveto
+2065 1610 lineto
+3264 0 lineto
+2654 0 lineto
+1738 1232 lineto
+810 0 lineto
+192 0 lineto
+1435 1641 lineto
+320 3136 lineto
+927 3136 lineto
+1760 2019 lineto
+2592 3136 lineto
+3200 3136 lineto
+end_ol grestore 
+gsave 15.300000 9.650000 translate 0.035278 -0.035278 scale
+start_ol
+3200 3136 moveto
+2065 1610 lineto
+3264 0 lineto
+2654 0 lineto
+1738 1232 lineto
+810 0 lineto
+192 0 lineto
+1435 1641 lineto
+320 3136 lineto
+927 3136 lineto
+1760 2019 lineto
+2592 3136 lineto
+3200 3136 lineto
+end_ol grestore 
+gsave 15.748733 9.650000 translate 0.035278 -0.035278 scale
+start_ol
+960 4224 moveto
+960 2688 lineto
+512 2688 lineto
+512 4224 lineto
+960 4224 lineto
+end_ol grestore 
+gsave 23.300000 15.800000 translate 0.035278 -0.035278 scale
+start_ol
+1863 -297 moveto
+1641 -868 1430 -1042 conicto
+1220 -1216 866 -1216 conicto
+448 -1216 lineto
+448 -768 lineto
+755 -768 lineto
+972 -768 1091 -666 conicto
+1210 -565 1356 -187 conicto
+1450 49 lineto
+192 3136 lineto
+715 3136 lineto
+1712 683 lineto
+2709 3136 lineto
+3264 3136 lineto
+1863 -297 lineto
+end_ol grestore 
+gsave 15.405000 15.910000 translate 0.035278 -0.035278 scale
+start_ol
+1863 -297 moveto
+1641 -868 1430 -1042 conicto
+1220 -1216 866 -1216 conicto
+448 -1216 lineto
+448 -768 lineto
+755 -768 lineto
+972 -768 1091 -666 conicto
+1210 -565 1356 -187 conicto
+1450 49 lineto
+192 3136 lineto
+715 3136 lineto
+1712 683 lineto
+2709 3136 lineto
+3264 3136 lineto
+1863 -297 lineto
+end_ol grestore 
+gsave 15.853733 15.910000 translate 0.035278 -0.035278 scale
+start_ol
+960 4224 moveto
+960 2688 lineto
+512 2688 lineto
+512 4224 lineto
+960 4224 lineto
+end_ol grestore 
+gsave 23.850000 12.800000 translate 0.035278 -0.035278 scale
+start_ol
+3904 2111 moveto
+3904 1792 lineto
+1024 1792 lineto
+1066 1104 1417 744 conicto
+1768 384 2394 384 conicto
+2758 384 3099 464 conicto
+3440 544 3776 704 conicto
+3776 128 lineto
+3438 4 3083 -62 conicto
+2729 -128 2364 -128 conicto
+1451 -128 917 407 conicto
+384 942 384 1854 conicto
+384 2797 888 3350 conicto
+1392 3904 2245 3904 conicto
+3012 3904 3458 3422 conicto
+3904 2940 3904 2111 conicto
+3264 2304 moveto
+3257 2800 2978 3096 conicto
+2699 3392 2239 3392 conicto
+1718 3392 1405 3105 conicto
+1092 2819 1045 2300 conicto
+3264 2304 lineto
+end_ol grestore 
+gsave 14.355000 12.910000 translate 0.035278 -0.035278 scale
+start_ol
+3904 2111 moveto
+3904 1792 lineto
+1024 1792 lineto
+1066 1104 1417 744 conicto
+1768 384 2394 384 conicto
+2758 384 3099 464 conicto
+3440 544 3776 704 conicto
+3776 128 lineto
+3438 4 3083 -62 conicto
+2729 -128 2364 -128 conicto
+1451 -128 917 407 conicto
+384 942 384 1854 conicto
+384 2797 888 3350 conicto
+1392 3904 2245 3904 conicto
+3012 3904 3458 3422 conicto
+3904 2940 3904 2111 conicto
+3264 2304 moveto
+3257 2800 2978 3096 conicto
+2699 3392 2239 3392 conicto
+1718 3392 1405 3105 conicto
+1092 2819 1045 2300 conicto
+3264 2304 lineto
+end_ol grestore 
+gsave 14.913800 12.910000 translate 0.035278 -0.035278 scale
+start_ol
+1216 5056 moveto
+1216 3200 lineto
+640 3200 lineto
+640 5056 lineto
+1216 5056 lineto
+end_ol grestore 
+gsave 25.300000 6.300000 translate 0.035278 -0.035278 scale
+start_ol
+0 5056 moveto
+4288 5056 lineto
+4288 4480 lineto
+2496 4480 lineto
+2496 0 lineto
+1792 0 lineto
+1792 4480 lineto
+0 4480 lineto
+0 5056 lineto
+end_ol grestore 
+gsave 25.105000 19.110000 translate 0.035278 -0.035278 scale
+start_ol
+0 5056 moveto
+4288 5056 lineto
+4288 4480 lineto
+2496 4480 lineto
+2496 0 lineto
+1792 0 lineto
+1792 4480 lineto
+0 4480 lineto
+0 5056 lineto
+end_ol grestore 
+gsave 25.775000 6.450000 translate 0.035278 -0.035278 scale
+start_ol
+2496 2496 moveto
+1589 1282 lineto
+2560 0 lineto
+2067 0 lineto
+1327 981 lineto
+607 0 lineto
+128 0 lineto
+1085 1306 lineto
+192 2496 lineto
+678 2496 lineto
+1344 1607 lineto
+2010 2496 lineto
+2496 2496 lineto
+end_ol grestore 
+gsave 25.575000 19.212500 translate 0.035278 -0.035278 scale
+start_ol
+1477 -262 moveto
+1305 -695 1142 -827 conicto
+980 -960 707 -960 conicto
+384 -960 lineto
+384 -640 lineto
+622 -640 lineto
+789 -640 881 -555 conicto
+974 -471 1085 -156 conicto
+1159 33 lineto
+128 2496 lineto
+590 2496 lineto
+1361 544 lineto
+2131 2496 lineto
+2560 2496 lineto
+1477 -262 lineto
+end_ol grestore 
+showpage
diff --git a/5-mst/04.eps b/5-mst/04.eps
new file mode 100644 (file)
index 0000000..dc21d81
--- /dev/null
@@ -0,0 +1,272 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: /win_d/project/mff/Grafove algoritmy/04 - modra cesta.dia
+%%Creator: Dia v0.94
+%%CreationDate: Mon Apr 17 16:30:52 2006
+%%For: beaver
+%%Orientation: Portrait
+%%Magnification: 1.0000
+%%BoundingBox: 0 0 400 260
+%%BeginSetup
+%%EndSetup
+%%EndComments
+%%BeginProlog
+[ /.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 /hyphen /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 /periodcentered /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] /isolatin1encoding exch def
+/cp {closepath} bind def
+/c {curveto} bind def
+/f {fill} bind def
+/a {arc} bind def
+/ef {eofill} bind def
+/ex {exch} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/sa {save} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/rm {rmoveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/sh {show} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/rot {rotate} bind def
+/sc {scale} bind def
+/sd {setdash} bind def
+/ff {findfont} bind def
+/sf {setfont} bind def
+/scf {scalefont} bind def
+/sw {stringwidth pop} bind def
+/tr {translate} bind def
+
+/ellipsedict 8 dict def
+ellipsedict /mtrx matrix put
+/ellipse
+{ ellipsedict begin
+   /endangle exch def
+   /startangle exch def
+   /yrad exch def
+   /xrad exch def
+   /y exch def
+   /x exch def   /savematrix mtrx currentmatrix def
+   x y tr xrad yrad sc
+   0 0 1 startangle endangle arc
+   savematrix setmatrix
+   end
+} def
+
+/mergeprocs {
+dup length
+3 -1 roll
+dup
+length
+dup
+5 1 roll
+3 -1 roll
+add
+array cvx
+dup
+3 -1 roll
+0 exch
+putinterval
+dup
+4 2 roll
+putinterval
+} bind def
+/dpi_x 300 def
+/dpi_y 300 def
+/conicto {
+    /to_y exch def
+    /to_x exch def
+    /conic_cntrl_y exch def
+    /conic_cntrl_x exch def
+    currentpoint
+    /p0_y exch def
+    /p0_x exch def
+    /p1_x p0_x conic_cntrl_x p0_x sub 2 3 div mul add def
+    /p1_y p0_y conic_cntrl_y p0_y sub 2 3 div mul add def
+    /p2_x p1_x to_x p0_x sub 1 3 div mul add def
+    /p2_y p1_y to_y p0_y sub 1 3 div mul add def
+    p1_x p1_y p2_x p2_y to_x to_y curveto
+} bind def
+/start_ol { gsave 1.1 dpi_x div dup scale} bind def
+/end_ol { closepath fill grestore } bind def
+28.346000 -28.346000 scale
+-16.450000 -11.620000 translate
+%%EndProlog
+
+
+0.250000 slw
+[0.200000] 0 sd
+[0.400000] 0 sd
+0 slc
+0.000000 0.000000 0.000000 srgb
+n 20.000000 10.000000 m 28.500000 8.500000 l s
+0.150000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+0.000000 0.000000 0.600000 srgb
+n 20.000000 10.000000 m 17.000000 6.000000 l s
+0.150000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0 slc
+n 17.000000 6.000000 m 21.000000 3.000000 l s
+0.150000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0 slc
+n 21.000000 3.000000 m 23.000000 7.000000 l s
+0.150000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 23.000000 7.000000 m 26.000000 3.000000 l s
+0.150000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 26.000000 3.000000 m 30.000000 5.000000 l s
+0.150000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 30.000000 5.000000 m 28.500000 8.500000 l s
+1.000000 1.000000 1.000000 srgb
+n 20.000000 10.000000 0.500000 0.450000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 20.000000 10.000000 0.500000 0.450000 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 28.500000 8.500000 0.500000 0.500000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 28.500000 8.500000 0.500000 0.500000 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 17.000000 6.000000 0.500000 0.500000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 17.000000 6.000000 0.500000 0.500000 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 26.000000 3.000000 0.500000 0.500000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 26.000000 3.000000 0.500000 0.500000 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 21.000000 3.000000 0.500000 0.500000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 21.000000 3.000000 0.500000 0.500000 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 30.000000 5.000000 0.500000 0.500000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 30.000000 5.000000 0.500000 0.500000 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 23.000000 7.000000 0.500000 0.500000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 23.000000 7.000000 0.500000 0.500000 0 360 ellipse cp s
+gsave 19.775000 11.075000 translate 0.035278 -0.035278 scale
+start_ol
+3200 3136 moveto
+2065 1610 lineto
+3264 0 lineto
+2654 0 lineto
+1738 1232 lineto
+810 0 lineto
+192 0 lineto
+1435 1641 lineto
+320 3136 lineto
+927 3136 lineto
+1760 2019 lineto
+2592 3136 lineto
+3200 3136 lineto
+end_ol grestore 
+gsave 28.300000 9.650000 translate 0.035278 -0.035278 scale
+start_ol
+1863 -297 moveto
+1641 -868 1430 -1042 conicto
+1220 -1216 866 -1216 conicto
+448 -1216 lineto
+448 -768 lineto
+755 -768 lineto
+972 -768 1091 -666 conicto
+1210 -565 1356 -187 conicto
+1450 49 lineto
+192 3136 lineto
+715 3136 lineto
+1712 683 lineto
+2709 3136 lineto
+3264 3136 lineto
+1863 -297 lineto
+end_ol grestore 
+gsave 24.225000 10.025000 translate 0.035278 -0.035278 scale
+start_ol
+3904 2111 moveto
+3904 1792 lineto
+1024 1792 lineto
+1066 1104 1417 744 conicto
+1768 384 2394 384 conicto
+2758 384 3099 464 conicto
+3440 544 3776 704 conicto
+3776 128 lineto
+3438 4 3083 -62 conicto
+2729 -128 2364 -128 conicto
+1451 -128 917 407 conicto
+384 942 384 1854 conicto
+384 2797 888 3350 conicto
+1392 3904 2245 3904 conicto
+3012 3904 3458 3422 conicto
+3904 2940 3904 2111 conicto
+3264 2304 moveto
+3257 2800 2978 3096 conicto
+2699 3392 2239 3392 conicto
+1718 3392 1405 3105 conicto
+1092 2819 1045 2300 conicto
+3264 2304 lineto
+end_ol grestore 
+showpage
diff --git a/5-mst/05.eps b/5-mst/05.eps
new file mode 100644 (file)
index 0000000..67feadf
--- /dev/null
@@ -0,0 +1,364 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: /win_d/project/mff/Grafove algoritmy/05 - rez.dia
+%%Creator: Dia v0.94
+%%CreationDate: Mon Apr 17 18:53:19 2006
+%%For: beaver
+%%Orientation: Portrait
+%%Magnification: 1.0000
+%%BoundingBox: 0 0 343 330
+%%BeginSetup
+%%EndSetup
+%%EndComments
+%%BeginProlog
+[ /.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 /hyphen /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 /periodcentered /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] /isolatin1encoding exch def
+/cp {closepath} bind def
+/c {curveto} bind def
+/f {fill} bind def
+/a {arc} bind def
+/ef {eofill} bind def
+/ex {exch} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/sa {save} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/rm {rmoveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/sh {show} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/rot {rotate} bind def
+/sc {scale} bind def
+/sd {setdash} bind def
+/ff {findfont} bind def
+/sf {setfont} bind def
+/scf {scalefont} bind def
+/sw {stringwidth pop} bind def
+/tr {translate} bind def
+
+/ellipsedict 8 dict def
+ellipsedict /mtrx matrix put
+/ellipse
+{ ellipsedict begin
+   /endangle exch def
+   /startangle exch def
+   /yrad exch def
+   /xrad exch def
+   /y exch def
+   /x exch def   /savematrix mtrx currentmatrix def
+   x y tr xrad yrad sc
+   0 0 1 startangle endangle arc
+   savematrix setmatrix
+   end
+} def
+
+/mergeprocs {
+dup length
+3 -1 roll
+dup
+length
+dup
+5 1 roll
+3 -1 roll
+add
+array cvx
+dup
+3 -1 roll
+0 exch
+putinterval
+dup
+4 2 roll
+putinterval
+} bind def
+/dpi_x 300 def
+/dpi_y 300 def
+/conicto {
+    /to_y exch def
+    /to_x exch def
+    /conic_cntrl_y exch def
+    /conic_cntrl_x exch def
+    currentpoint
+    /p0_y exch def
+    /p0_x exch def
+    /p1_x p0_x conic_cntrl_x p0_x sub 2 3 div mul add def
+    /p1_y p0_y conic_cntrl_y p0_y sub 2 3 div mul add def
+    /p2_x p1_x to_x p0_x sub 1 3 div mul add def
+    /p2_y p1_y to_y p0_y sub 1 3 div mul add def
+    p1_x p1_y p2_x p2_y to_x to_y curveto
+} bind def
+/start_ol { gsave 1.1 dpi_x div dup scale} bind def
+/end_ol { closepath fill grestore } bind def
+28.346000 -28.346000 scale
+-15.950000 -14.025000 translate
+%%EndProlog
+
+
+0.150000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+0.000000 0.000000 0.600000 srgb
+n 18.500000 11.500000 m 19.000000 9.000000 l s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0 slc
+0.000000 0.000000 0.000000 srgb
+n 16.000000 7.000000 m 16.000000 6.000000 17.000000 4.000000 19.000000 4.000000 c s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0 slc
+n 19.000000 4.000000 m 21.000000 4.000000 22.000000 6.000000 21.000000 7.000000 c s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0 slc
+n 21.000000 7.000000 m 20.000000 8.000000 20.000000 9.000000 21.000000 10.000000 c s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0 slc
+n 21.000000 10.000000 m 22.000000 11.000000 21.000000 13.000000 19.000000 13.000000 c s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0 slc
+n 16.000000 7.000000 m 16.000000 8.000000 16.000000 9.000000 16.000000 10.000000 c s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0 slc
+n 16.000000 10.000000 m 16.000000 11.000000 17.000000 13.000000 19.000000 13.000000 c s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0 slc
+n 23.000000 7.000000 m 22.000000 6.000000 23.000000 4.000000 25.000000 4.000000 c s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0 slc
+n 25.000000 4.000000 m 27.000000 4.000000 28.000000 6.000000 28.000000 7.000000 c s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0 slc
+n 28.000000 7.000000 m 28.000000 8.000000 28.000000 9.000000 28.000000 10.000000 c s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0 slc
+n 28.000000 10.000000 m 28.000000 11.000000 27.000000 13.000000 25.000000 13.000000 c s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0 slc
+n 23.000000 7.000000 m 24.000000 8.000000 24.000000 9.000000 23.000000 10.000000 c s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0 slc
+n 23.000000 10.000000 m 22.000000 11.000000 23.000000 13.000000 25.000000 13.000000 c s
+0.250000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 18.500000 11.500000 m 26.000000 11.000000 l s
+gsave 18.350000 12.650000 translate 0.035278 -0.035278 scale
+start_ol
+3200 3136 moveto
+2065 1610 lineto
+3264 0 lineto
+2654 0 lineto
+1738 1232 lineto
+810 0 lineto
+192 0 lineto
+1435 1641 lineto
+320 3136 lineto
+927 3136 lineto
+1760 2019 lineto
+2592 3136 lineto
+3200 3136 lineto
+end_ol grestore 
+gsave 25.900000 12.125000 translate 0.035278 -0.035278 scale
+start_ol
+1863 -297 moveto
+1641 -868 1430 -1042 conicto
+1220 -1216 866 -1216 conicto
+448 -1216 lineto
+448 -768 lineto
+755 -768 lineto
+972 -768 1091 -666 conicto
+1210 -565 1356 -187 conicto
+1450 49 lineto
+192 3136 lineto
+715 3136 lineto
+1712 683 lineto
+2709 3136 lineto
+3264 3136 lineto
+1863 -297 lineto
+end_ol grestore 
+gsave 21.775000 10.925000 translate 0.035278 -0.035278 scale
+start_ol
+3904 2111 moveto
+3904 1792 lineto
+1024 1792 lineto
+1066 1104 1417 744 conicto
+1768 384 2394 384 conicto
+2758 384 3099 464 conicto
+3440 544 3776 704 conicto
+3776 128 lineto
+3438 4 3083 -62 conicto
+2729 -128 2364 -128 conicto
+1451 -128 917 407 conicto
+384 942 384 1854 conicto
+384 2797 888 3350 conicto
+1392 3904 2245 3904 conicto
+3012 3904 3458 3422 conicto
+3904 2940 3904 2111 conicto
+3264 2304 moveto
+3257 2800 2978 3096 conicto
+2699 3392 2239 3392 conicto
+1718 3392 1405 3105 conicto
+1092 2819 1045 2300 conicto
+3264 2304 lineto
+end_ol grestore 
+gsave 22.300000 3.325000 translate 0.035278 -0.035278 scale
+start_ol
+448 3648 moveto
+448 0 lineto
+1024 0 lineto
+1024 1834 lineto
+1024 2340 1155 2671 1432 2866 curveto
+1611 2995 1784 3035 2185 3035 curveto
+2185 3648 lineto
+2087 3648 2038 3648 1961 3648 curveto
+1583 3648 1296 3428 960 2893 curveto
+960 3648 lineto
+448 3648 lineto
+1618 4010 moveto
+2282 5056 lineto
+1840 5056 lineto
+1294 4387 lineto
+727 5056 lineto
+303 5056 lineto
+947 4010 lineto
+1618 4010 lineto
+end_ol grestore 
+gsave 22.604800 3.325000 translate 0.035278 -0.035278 scale
+start_ol
+3904 2111 moveto
+3904 1792 lineto
+1024 1792 lineto
+1066 1104 1417 744 conicto
+1768 384 2394 384 conicto
+2758 384 3099 464 conicto
+3440 544 3776 704 conicto
+3776 128 lineto
+3438 4 3083 -62 conicto
+2729 -128 2364 -128 conicto
+1451 -128 917 407 conicto
+384 942 384 1854 conicto
+384 2797 888 3350 conicto
+1392 3904 2245 3904 conicto
+3012 3904 3458 3422 conicto
+3904 2940 3904 2111 conicto
+3264 2304 moveto
+3257 2800 2978 3096 conicto
+2699 3392 2239 3392 conicto
+1718 3392 1405 3105 conicto
+1092 2819 1045 2300 conicto
+3264 2304 lineto
+end_ol grestore 
+gsave 23.163600 3.325000 translate 0.035278 -0.035278 scale
+start_ol
+384 3776 moveto
+3328 3776 lineto
+3328 3212 lineto
+998 512 lineto
+3328 512 lineto
+3328 0 lineto
+320 0 lineto
+320 564 lineto
+2631 3264 lineto
+384 3264 lineto
+384 3776 lineto
+end_ol grestore 
+1.000000 1.000000 1.000000 srgb
+n 18.500000 11.500000 0.500000 0.500000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 18.500000 11.500000 0.500000 0.500000 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 26.000000 11.000000 0.500000 0.500000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 26.000000 11.000000 0.500000 0.500000 0 360 ellipse cp s
+0.050000 slw
+[1.000000] 0 sd
+[1.000000] 0 sd
+0 slc
+n 22.000000 3.000000 m 22.000000 14.000000 l s
+0.150000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+0.000000 0.000000 0.600000 srgb
+n 19.000000 9.000000 m 17.000000 7.000000 l s
+0.150000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 17.000000 7.000000 m 18.000000 5.000000 l s
+0.150000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 18.000000 5.000000 m 21.000000 5.000000 l s
+showpage
diff --git a/5-mst/5-mst.tex b/5-mst/5-mst.tex
new file mode 100644 (file)
index 0000000..dcec7db
--- /dev/null
@@ -0,0 +1,241 @@
+%%%%%%%%%%%%%%%%%%%%%%
+% lecture 04-04-2006 %
+%%%%%%%%%%%%%%%%%%%%%%
+
+\input ../sgr.tex
+\prednaska{5}{Minimální kostry}{zapsali Martin Kruli¹ \& Petr Su¹il }
+
+\h{Minimální kostry a základní vìty okolo nich}
+
+\s{Definice:}
+Kostru pro nesouvislý graf definujeme jako sjednocení koster komponent grafu.
+
+\s{Definice:}
+Nech» $G$ je neorientovaný graf. Váhy (ohodnocení) hran budi¾ zobrazení $w : E \to R$. Pro podgraf $H \subseteq G$ definujeme váhu $w(H)=\sum_{e \in E} {w(e)}$.
+
+\s{Poznámka:}
+V dal¹ím textu nebudeme rozli¹ovat mezi podgrafy a podmno¾inami hran. Pro na¹e úèely jde o toté¾. Kostry jednovrcholových komponent nám slo¾itost nepokazí.
+
+\s{Definice:}
+Minimální kostra (alias MST) je taková kostra $T$, která má $w(T)$ minimální.
+
+\s{Poznámka:}
+Taková definice MST je ne¹ikovná. Vy¾aduje toti¾ existenci sèítání, pøesto¾e postaèuje pouze lineární uspoøádání.
+
+\s{Definice:}
+Buï $T \subseteq G$ nìjaká kostra grafu~$G$. Pak 
+\itemize\ibull
+\:$T[x,y] := $ cesta mezi $x,y$, její¾ hrany le¾í v $T$
+\:Hrana $e=(x,y) \in E \setminus T$ je {\I lehká} vzhledem ke~kostøe $ \equiv \exists e' \in T[x,y]:w(e)<w(e')$.
+
+\centerline{\epsfysize=3cm\epsfbox{01.eps}}
+
+\:Hrana je {\I tì¾ká} $\equiv$ není lehká.
+\endlist
+
+\s{Definice:} operace {\sl swap(e,e')}
+Nech» $T$ je kostra grafu, $e'=(x,y) \in E \setminus T$ a $T[x,y]$ je cesta mezi $x$ a $y$.
+Pro libovolnou hranu $e = (a,b) \in T[x,y]$ dostaneme provedením operace $swap(e,e')$ na $T$ kostru $T' = T \cup \{e'\} \setminus \{e\}$,
+pro kterou bude zároveò platit, ¾e $e' = (x,y) \in T'[a,b]$.
+
+\s{Pozorování:}
+Mno¾ina hran $T'$, kterou jsme dostali z $T$ operací $swap(e,e')$, je opravdu kostra. $T'$ dostaneme tak, ¾e z $T$ sebereme hranu $e = (a,b)$
+a následnì pøidáme hranu $e' = (x,y)$. Sebráním $(a,b)$ se nám kostra rozpadne právì na dvì komponenty. Proto¾e ale hrana $(a,b)$ le¾ela na cestì
+mezi $x$ a $y$, budou tyto vrcholy le¾et v rùzných komponentách. Hrana $(x,y)$ pak tyto komponenty opìt spojí a výsledkem bude opìt kostra.
+
+\s{Lemma:}
+Máme-li libovolné kostry $T$ a $T'$, pak lze z $T$ dostat $T'$ koneèným poètem operací $swap$.
+
+\s{Dùkaz:}
+Oznaème si $D$ mno¾inu hran, které jsou v $T$ a nejsou v $T'$ ($D = T \setminus T'$) a $D'$ mno¾inu hran,
+které naopak jsou v $T'$ a nejsou v $T$ ($D' = T' \setminus T$). Lze jednodu¹e nahlédnout, ¾e $\vert D \vert = \vert D' \vert$,
+proto¾e i $\vert T \vert = \vert T' \vert$.
+Postupnì budeme generovat kostry $T_1$, $T_2$, ... a¾ vygenerujeme $T_n = T'$
+V ka¾ém kroku (swapu) odebereme z kostry $T_i$ nìjakou hranu z mno¾iny $D$ a nahradíme ji vhodnou hranou z $D'$ tak, aby $T_{i+1}$ byla opìt kostra.
+Pou¾ité hrany z $D$ a $D'$ samozøejmì vylouèíme. Mno¾iny $D$ a $D'$ jsou koneèné, tak¾e budeme potøebovat koneèný poèet swapù.
+Zbývá ukázat, ¾e pro libovolnou hranu z $D$ umíme najít hranu v $D'$.
+Vezmìme libovolnou hranu $e = (a,b) \in D$. $e$ nele¾í v $T'$, tak¾e $T'[a,b] \cup {e}$ tvoøí cyklus. Celý cyklus nemù¾e le¾et v kostøe a $e \in T$,
+tak¾e musí $\exists e' \in T[a,b]$, která zároveò $e' \notin T$ a tedy i $e' \in D'$. Tím jsem na¹el korespondující pár hran $e,e'$ z mno¾in $D,D'$,
+které zároveò splòují potøebné pøedpoklady pro swap ($e' \in T[a,b]$).
+\qed
+
+\s{Vìta:}
+Kostra $T$ je minimální 
+$\Leftrightarrow$ $\forall e \in E \setminus T$ je $e$ tì¾ká vzhledem k $T$.
+
+\s{Dùkaz:}
+%%% proof start
+\itemize\ibull
+\:$\Rightarrow$ Sna¾íme se dokázat, ¾e $\exists$ lehká hrana $\Rightarrow$ není minimální.
+
+Nech» $\exists e = (x,y)$ lehká. Najdeme $e' \in T[x,y] : w(e) < w(e')$ (ta musí existovat z def. lehké hrany).
+Na kostru $T$ provedeme operaci $swap(e,e')$ a dostanu novou kostru $T'$. Proto¾e $w(e) < w(e')$, 
+musí být i $w(T') < w(T)$ a kostra $T$ tedy nebyla minimální.
+
+\bigskip
+\:$\Leftarrow$
+
+Mìjme kostru $T$ bez lehkých hran a minimální kostru $T_{min}$. Doká¾eme, ¾e lze z $T$ dostat $T_{min}$ opakovaným pou¾itím operace $swap$.
+Z dùsledku definice operace $swap$ víme, ¾e kostry lze mezi sebou libovolnì pøeswapovat. Zbývá nám dokázat, ¾e $w(T) = w(T_{min})$.
+Postupným swapováním budu dostávat vzájemnì rùzné kostry $T$, $T_1$, $T_2$, ... $T_{min}$ tak,
+¾e ka¾dá následující kostra je výsledkem operace $swap$ na pøedchozí. Podíváme se nejprve na $T$ a $T_1$.
+
+Nech» $T_1 = swap(e,e') T$ tj. $e = (a,b) \in T$ a $e' = (x,y) \in T_1$. Hrana $e'$ musí z definice swapu le¾et na $T[a,b]$.
+Ke kostøe $T$ neexistují ¾adné lehké hrany, tak¾e $\forall f \in T[a,b]$ je $w(f) \ge w(e)$ tedy i $w(e') \ge w(e)$ a $w(T) \le w(T_1)$.
+
+Analogicky lze postupovat, a¾ dostaneme nerovnost $w(T) \le w(T_1) \le w(T_2) \le ... \le w(T_{min})$.
+$T_{min}$ je minimální kostra, tak¾e $w(T) = w(T_{min})$ a $T$ je tedy také minimální.
+
+\endlist
+\qed
+
+\s{Poznámka:}
+Ji¾ víme, ¾e pro definici minimální kostry nám staèí lineární uspoøádání.
+Pokud bude $\forall e,e':e \neq e' \Rightarrow w(e) \neq w(e')$, pak pro $T_1, T_2$ minimální kostry, $T_1$ mù¾u pøeswapovat na $T_2$, proto¾e jsou ale váhy rùzné $\#swapù = 0$.
+
+\s{Poznámka:}
+Pokud dostaneme kvaziuspoøádání, mù¾eme douspoøádat ekvivalentní váhy napø. lexikograficky.
+
+\s{Dùsledek:}
+Jsou-li v¹echny váhy rùzné, pak je MST urèen jednoznaènì. Tj.
+$\forall e_1,e_2 \in E(G)$ $w(e_1) \neq w(e_2)$ $\Rightarrow$ $\exists ! MST(G)$
+\vfill\eject
+\s{Dùkaz:}
+mám MST $T_1$ a $T_2$ a zkusím mezi nimi pøeswapovat. Pøi pøeswapovávání se ale zmìní váhy, nebo» v¹echny váhy jsou rùzné. Tedy jedna z koster nemù¾e být minimální. 
+
+
+\h{Èervenomodrý meta-algoritmus}
+
+\s{Meta-algoritmus:} (pøedpokládáme, ¾e v¹echny váhy jsou rùzné)
+
+\algo
+\:na poèátku v¹echny hrany bezbarvé
+\:dokud lze opakujeme: zvol modré nebo èervené pravidlo, proveï pravidlo
+\endalgo
+\itemize\ibull %%% pravidla
+\:Modré pravidlo
+
+vezmìme øez v G takový, ¾e jeho nejlehèí hrana není modrá (prevence zacyklení) a obarvíme ji modøe
+
+\:Èervené pravidlo
+
+vezmìme kru¾nici v G takovou, ¾e její nejtì¾¹í hrana není èervená (prevence zacyklení) a obarvíme ji èervenì
+
+\endlist %%%pravidla
+
+\s{Vìta:}
+Pro Èervenomodrý meta-algoritmus platí:
+\algo
+\:zastaví se
+\:po zastavení jsou v¹echny hrany obarvené
+\:modøe obarvené hrany tvoøí kostru
+\endalgo
+
+
+\s{Lemma 1:} Modrá hrana $\in$ MST.
+
+\s{Dùkaz:} Minimální kostra $T_{min}$ je urèena jednoznaènì (váhy jsou rùzné).
+Mìjme øez $C$ a minimální kostru $T_{min}$. Podle modrého pravidla je hrana $e = (x,y)$ nejlehèí v øezu $C$.
+Pokud $\exists e' \ne e \in C \cap T_{min}[x,y]$ (tj. jiná hrana z øezu $C$ patøí do min. kostry) mù¾eme provést $swap(e',e)$.
+Hrana $e$ byla nejlehèí, tak¾e $w(e) < w(e')$. Tím jsme si sní¾ili váhu kostry a $T_{min}$ nemohla být minimální $\Rightarrow$ spor.
+\qed
+
+\centerline{\epsfysize=3cm\epsfbox{02.eps}}
+
+
+\s{Lemma 2:} Èervená hrana $\notin$ MST.
+
+\s{Dùkaz:} Sporem: Pøedpokládejme, ¾e máme kru¾nici a na ní èervenou hranu $e = (x,y) \in T_{min}$. 
+Odebráním èervené hrany se nam $T_min$ rozpadne na dvì komponenty $T_x$ a $T_y$.
+Nìkteré vrcholy z kru¾nice pøipadnou do komponenty $T_x$ a ostatní do $T_y$.
+Lze jednodu¹e nahlédnout, ¾e musí existovat hrana $e' = (x',y')$ taková,
+¾e $x' \in T_x$ a $y' \in T_y$. Hrana $e$ byla nejtì¾¹í na kruønici, tak¾e $w(e') < w(e)$.
+Z toho vyplývá, ¾e provedením $swap(e,e')$ na $T_{min}$ dostaneme lehèí kostru a $T_{min}$ tedy není minimální $\Rightarrow$ spor.
+\qed
+
+\centerline{\epsfysize=4cm\epsfbox{03.eps}}
+
+\s{Lemma 3:} Po zastavení jsou v¹echny hrany obarvené.
+
+\s{Dùkaz:} Opìt sporem: Nech» existuje hrana $e = (x,y)$, která je stále bezbarvá. Oznaèíme si mno¾inu vrcholù 
+$M_x := \{v \in V \vert \exists$ modrá cesta x $\to$ v $\}$. Nyní mohou nastat dvì mo¾nosti:
+
+\itemize\ibull
+\:$y \in M_x$ (tj. modrá cesta vede z $x$ a¾ do $y$)
+
+Modrá cesta je v minimální kostøe a minimální kostra nemá ¾ádné lehké hrany $\Rightarrow$ hrana $e$ je tì¾ká a mù¾u na ní pou¾ít èervené pravidlo.
+
+\centerline{\epsfysize=3cm\epsfbox{04.eps}}
+
+\:$y \notin M_x$
+
+V tom pøípadì existuje øez $\delta(M_x)$, takový, ¾e hrana $e$ patøí do øezu a zároveò $\delta(M_x)$ neobsahuje modré hrany
+$\Rightarrow$ mù¾u pou¾ít modré pravidlo.
+
+\centerline{\epsfysize=3cm\epsfbox{05.eps}}
+
+\endlist
+
+\algo
+
+\s{Dùkaz vìty:}
+\:zastaví se
+
+V algoritmu nikdy nepøebarvujeme a v ka¾dém kroku obarvíme právì jednu hranu (a» u¾ èerveným, nebo modrým pravidlem).
+Máme koneèný poèet hran $\Rightarrow$ koneèný poèet krokù.
+
+\:po zastavení jsou v¹echny hrany obarvené
+viz. lemma 3
+
+\:modøe obarvené hrany tvoøí kostru
+
+Lemma 1 a 2 øíká, ¾e modré hrany le¾í na kostøe a èervené naopak le¾í mimo kostru. Dále pak z lemmatu 3 víme, ¾e v¹echny hrany jsou obarvené.
+Právì v¹echny modré hrany tvoøí kostru.
+
+\endalgo
+
+\qed
+
+\s{Poznámka:}
+Dualita èerveného a modrého pravidla.
+
+Mezi èervenými a modrými hranami existuje dualita obdobnì jako u rovinných grafù existuje stìnovì-vrcholová dualita nebo jako existuje dualita u grafových matroidù.
+Pro ka¾dý grafový matroid $\exists$ duální matroid. Kostry $\leftrightarrow$ cykly, kostra $\leftrightarrow$ komplement kostry duálního grafu.
+
+\h{Klasické algoritmy na hledání MST}
+
+\s{Kruskalùv:} (hladový algoritmus).
+
+\itemize\ibull
+\:setøídíme hrany podle vah (i zde nám staèí uspoøádání na hranách), kostra je na zaèátku prázdná (ka¾dý vrchol je v samostatné komponentì souvislosti)
+\:bereme hrany ve vzestupném poøadí
+\:pro ka¾dou hranu $e$ se podíváme jaké komponenty spojuje - spojuje-li rùzné komponenty, zaøadím hranu do stromu a obì komponenty slouèíme, jinak hranu zahodíme
+\endlist
+
+Z hlediska na¹eho Èervenomodrého meta-algoritmu se lze na Kruskala dívat tak, ¾e si pìstujeme modrý les, a pokud hrana spojuje dva stromeèky, omodøím ji a
+nechám stromeèky srùst. Naopak spojuje-li hrana $e = (x,y)$ stejné komponenty, znamená to, ¾e mezi $x$ a $y$ vede modrá cesta $T[x,y]$ a $e$ tedy uzavírá cyklus
+na kterém jsou v¹echny hrany modré. Díky pøedchozímu uspoøádání víme, ¾e $e$ bude urèitì tì¾¹í, ne¾ v¹echny hrany na modré cestì a tak ji mù¾eme s klidným svìdomím
+obarvit na èerveno (tj. zahodit).
+
+Tì¾i¹tì implementace Kruskala spoèívá v efektivním sluèování komponent (tzv. Union-find problem). Pøi efektivní implementaci lze dosáhnou èasové slo¾itosti
+$\O(m \log{n} + m \alpha(n))$
+
+\s{Borùvkùv:}
+
+Opìt si budeme pìstovat modrý les, av¹ak tentokrát jej budeme roz¹iøovat ve fázích. V jedné fázi nalezneme ke ka¾dému stromeèku nejlevnìj¹í incidentní hranu
+a v¹echny tyto nalezené hrany naráz pøidáme (aplikujeme nìkolik modrých pravidel najednou).
+
+Poèet stromeèku klesá exponenciálnì $\Rightarrow$ ka¾dou komponentu (resp. její incidentní hrany) si mohu dovolit prohledávat lineárnì.
+Pokud na udr¾ování incidentních hran pou¾ijeme binomiální haldy, dostaneme èasouvou slo¾itost $\O(m \log{n})$. Vzhledem k povaze algoritmu pùjde ka¾dá
+fáze dobøe paralelizovat.
+
+\s{Jarníkùv:}
+
+Jarníkùv algoritmus je podobný Borùvkovi, ale s tím rozdílem, ¾e nenecháme rùst celý les, ale jen jeden modrý strom. To co se v Borùvkovi nazývalo celou fází,
+bude zde obyèejný krok. V ka¾dém kroku vyhledáme nejlevnìj¹í incidentní hranu a pøidáme ji do stromu. Kroky opakujeme, dokud se strom nerozroste pøes v¹echny vrcholy.
+Jarník se sice nedá rozumnì paralelizovat, av¹ak pøi ¹ikovné implementaci slibuje stejnou èasovou slo¾itost jako Borùvka ($\O(m \log{n})$).
+
+\s{Poznámka:}
+pro celoèíselné váhy hran z rozsahu $\{1,\ldots k\}$, se umí algoritmus se slo¾itostí $\O(m k)$.
+
+\bye
diff --git a/5-mst/Makefile b/5-mst/Makefile
new file mode 100644 (file)
index 0000000..8f1df9c
--- /dev/null
@@ -0,0 +1,3 @@
+P=5-mst
+
+include ../Makerules
diff --git a/6-borjar/6-borjar.tex b/6-borjar/6-borjar.tex
new file mode 100644 (file)
index 0000000..3662e65
--- /dev/null
@@ -0,0 +1,194 @@
+\input ../sgr.tex
+
+\prednaska{6}{Vylep¹ení Borùvkova a Jarníkova algoritmu}{zapsali Petr ©koda a Tomá¹ Gavenèiak}
+
+\h{Upravená verze Borùvkova algoritmu pro rovinné grafy}
+
+Vyjdeme z my¹lenky, ¾e mù¾eme po ka¾dém kroku pùvodního Borùvkova algoritmu vzniklé komponenty
+souvislosti grafu zkontrahovat do jednoho vrcholu a tím získat men¹í graf, který mù¾eme
+znovu rekurzivnì zmen¹ovat. To funguje obecnì, ale uká¾eme, ¾e pro rovinné grafy tak dosáhneme
+lineární èasové slo¾itosti.
+
+\s{Pozorování:}
+Pokud $F \subseteq {\rm MST}(G)$ (kde ${\rm MST}(G)$ je minimální kostra grafu~$G$), $G'$~je graf vzniklý
+z~$G$ kontrakcí podél hran z~$F$, pak kostra grafu~$G$, která vznikne z~${\rm MST}(G')$ zpìtným
+expandováním kontrahovaných vrcholù, je ${\rm MST}(G)$.
+To nás vede k následujícímu algoritmu:
+
+\s{Algoritmus: MST v rovinných grafech}
+\algo
+\:Ke ka¾dému vrcholu najdeme nejlevnìj¹í incidentní hranu -- dostaneme mno¾inu hran $F \subseteq E$.
+\:Graf zkontrahujeme podle $F$ následovnì:
+\::Prohledáme do ¹íøky graf $(V(G), F)$ a pøiøadíme vrcholùm èíslo komponenty, ve které jsou.
+\::Pøeèíslujeme hrany v~$G$ podle èísel komponent.
+\:Odstraníme násobné hrany:
+\::Setøídíme hrany lexikograficky pomocí pøihrádkového tøídìní (násobné hrany jsou nyní pospolu).
+\::Projdeme posloupnost hran a z~ka¾dého úseku multihran odstraníme v¹echny a¾ na nejlevnìj¹í hranu.
+\:Pokud stále máme netriviální graf, opakujeme pøedchozí kroky.
+\endalgo
+
+\s{Èasová slo¾itost:}
+Oznaème si $n_i$ a $m_i$ poèet vrcholù a hran na~poèátku $i$-té iterace.
+Ka¾dý z~krokù 1--7 trvá $\O(m_i)$, proto i celý cyklus algoritmu trvá $\O(m_i)$.
+Poèet vrcholù grafu klesá s~ka¾dým cyklem exponenciálnì: $n_i \leq n / 2^i$.
+Na~zaèátku ka¾dého cyklu je graf rovinný (kontrakcí hrany v~rovinném grafu se rovinnost
+zachovává) a poèet hran rovinného grafu je lineární v poètu vrcholù, tak¾e
+platí $m_i < 3n_i$. Celkovou èasovou slo¾itost dostaneme jako souèet doby trvání
+v¹ech cyklù: $\O(\sum_i m_i) = \O(\sum_i n_i) = \O(n)$.
+
+\h{Minorovì uzavøené tøídy}
+
+Pøedchozí algoritmus ve~skuteènosti funguje v~lineárním èase i pro obecnìj¹í tøídy grafù,
+ne¾ jsou grafy rovinné. Tím správným universem jsou minorovì uzavøené tøídy:
+
+\s{Definice:}
+Graf $H$ je {\I minorem} grafu $G$ $\equiv$ $H$ lze z $G$ získat
+mazáním vrcholù èi hran a kontrahováním hran. Znaèíme $H \preceq G$.
+
+\s{Pozorování:}
+$H \subseteq G \Rightarrow H \preceq G$.
+
+\s{Definice:}
+Tøída grafù $\cal C$ je {\I minorovì uzavøená} $\equiv \forall G,H: G \in {\cal C}, H \preceq G \Rightarrow H \in {\cal C}$.
+
+\s{Vìta:} (Robertson, Seymour)
+Pokud je $\cal C$ minorovì uzavøená tøída grafù, existuje koneèná mno¾ina grafù $Z$ taková,
+¾e pro ka¾dý graf $G$ platí:
+$$G \not\in {\cal C} \iff \exists H \in Z: H \preceq G.$$
+(Èili ka¾dou minorovì uzavøenou tøídu lze charakterizovat {\I koneèným} poètem zakázaných minorù.
+To není samo sebou, dokazuje se to dosti pracnì, ale plyne z~toho spousta zajímavých dùsledkù.)
+
+\s{Pozorování:} Napøíklad pro rovinné grafy jsou tìmi zakázanými minory právì
+$K_{3,3}$ a $K_5$. To plyne z~Kuratowského vìty: jedna implikace je triviální,
+druhá dá trochu práce: pokud je $K_{3,3} \preceq G$, najde se v~$G$ podgraf
+isomorfní nìjakému dìlení~$K_{3,3}$; pokud je $K_5 \preceq G$, podgraf isomorfní
+dìlení~$K_5$ se v~$G$ najít nemusí, ale pokud se nenajde, najde se tam podgraf isomorfní
+dìlení $K_{3,3}$. (Zkuste si sami.)
+
+\s{Vìta:} (Robertson, Seymour)
+Pokud je tøída grafù $\cal C$ minorovì uzavøená a netriviální (alespoò jeden graf v~ní le¾í
+a alespoò jeden nele¾í), pak $\exists c > 0: \forall G \in {\cal C}:
+\vert E(G) \vert \leq c\cdot  \vert V(G) \vert$.
+
+\s{Dùsledek:}
+Jeliko¾ v¹echny grafy vygenerované pøedchozím algoritmem jsou minory grafu ze~vstupu,
+mù¾eme pro odhad jejich hustoty pou¾ít pøedchozí vìtu a dostaneme tak, ¾e pøedchozí
+algoritmus má lineární èasovou slo¾itost dokonce pro ka¾dou netriviální minorovì uzavøenou
+tøídu grafù.
+
+%%%Tomas Gavenciak
+
+\h{Jarníkùv algoritmus s Fibonacciho haldou}
+
+Pùvodní Jarníkùv algoritmus s~haldou má díky ní slo¾itost $\O(m\log n)$, to zlep¹íme pou¾itím
+Fibonacciho haldy $H$, do~které si budeme ukládat trojice $(v,w,w(vw))$ vrcholù $v$ sousedících 
+s~dosavadní podkostrou $T$ pøes hranu $vw$, $w\in T$, která bude navíc nejlevnìj¹í mo¾ná. 
+
+\newcount\algcnt
+\s{Algoritmus: Jarníkùv algoritmus~\#2 (Fredman, Tarjan)}
+\algo
+\:Zaèneme libovolným vrcholem $v_0$: $T=\{v_0\}$.
+\:Do~haldy $H$ umístíme v¹echny sousedy $v_0$ spolu s pøíslu¹nými hranami.
+\:Opakuji dokud $H\neq\emptyset$:
+\::$(v,w,w(vw))=\<DeleteMin>(H)$
+\::$T:=T\cup\{vw\}$
+\::Pro v¹echny sousedy $u\in E\backslash T$ vrcholu $v$ upravím haldu:
+\:::Pokud je $u$ v~$H$ nový, pøidáme jej spolu s~nejlevnìj¹í hranou vedoucí z~$u$ do~$T$.
+\:::Pokud u¾ $u$ v~$H$ je a $uv$ je levnìj¹í ne¾ pùvodní nejlevnìj¹í hrana z~$u$ 
+do~$T$, nahradím jeho záznam v~$H$ za~$(u,v,w(uv))$ a provedu $\<DecreaseKey>(u,w(uv))$.
+\global\algcnt=\itemcount
+\endalgo 
+
+Správnost algoritmu pøímo plyne ze~správnosti Jarníkova algoritmu.
+
+\s{Èasová slo¾itost:}
+Slo¾itost tohoto algoritmu bude $\O(m+n\log n)$, nebo» vnitøní cyklus se provede 
+nanejvý¹ $n$-krát, za~\<DeleteMin> v~nìm tedy zaplatíme $\O(n\log n)$, za~pøidávání
+vrcholù do~$H$ a~nalezání nejlevnìj¹ích hran zaplatíme $\O(m)$ (na~ka¾dou hranu takto
+sáhneme nanejvý¹ dvakrát), za~sni¾ování vah vrcholù v~haldì rovnì¾ pouze $\O(m)$ 
+(nanejvý¹ $m$-krát provedu porovnání vah a \<DecreaseKey> v~$\the\algcnt.$ za~$\O(1)$).
+
+Toto zlep¹ení je dùle¾itìj¹í, ne¾ by se mohlo zdát, proto¾e nám pro grafy s~mnoha hranami
+(konkrétnì pro grafy s~$m=\Omega(n\log n)$) dává lineární algoritmus.
+
+\h{Kombinace Jarníkova a Borùvkova algoritmu}
+
+K~dal¹ímu zlep¹ení dojde, kdy¾ nejprve spustíme $\log\log n$ cyklù Borùvkova algoritmu
+s~kontrahováním vrcholù, tímto dojde k~velkému sní¾ení poètu vrcholù.
+
+\s{Algoritmus: Jarníkùv algoritmus~\#3 (pùvod neznámý)}
+\algo
+\:Provedeme $\log\log n$ cyklù upraveného Borùvkova algoritmu s~kontrahováním hran popsaného vý¹e.
+\:Pokraèujeme Jarníkovým algoritmem~\#2.
+\endalgo
+
+\s{Èasová slo¾itost:}
+Slo¾itost první èásti je $\O(m\log\log n)$.
+Poèet vrcholù se po~první èásti algoritmu sní¾í na~$n'\leq n/\log n$ a slo¾itost druhé èásti bude
+tedy nanejvý¹ $\O(m+n\log n'/\log n)=\O(m)$. Nyní ji¾ máme lineární algoritmus i~pro grafy 
+s~$m\geq n\log\log n$.
+
+\h{Jarníkùv algoritmus s~omezením velikosti haldy}
+
+Je¹tì vìt¹ího zrychlení dosáhneme, omezíme-li Jarníkovu algoritmu \#2 vhodnì 
+velikost haldy a takto budeme bìhem jednoho Jarníkova algoritmu skládat pouze
+jednotlivé podkostøièky zastavené v rùstu pøeteèením haldy, podle kterých 
+graf následnì skontrahujeme a budeme pokraèovat s mnohem men¹ím grafem.
+
+\s{Algoritmus: Jarníkùv algoritmus~\#4 (Fredman, Tarjan)}
+\algo
+\:Opakuji, dokud mám netriviální $G$ (s alespoò jedou hranou).
+\::$t=\vert V_G\vert$.
+\::Zvolím $k=2^{2m/t}$ podle aktuálního $t$.
+\::$T=\emptyset$
+\::Opakuji, dokud existují vrcholy mimo $T$:
+\:::Najdu vrchol $v_0$ mimo $T$.
+\:::Spustím Jarníkùv alg. \#2 pro celý graf od $v_0$, zastavím ho, pokud:
+\global\algcnt=\itemcount
+\::::$\vert H\vert\geq k$ (pøekroèena vel. haldy) nebo
+\::::$H=\emptyset$ (do¹li sousedé) nebo
+\::::do $T$ jsem pøidal hranu oboustrannì incidentní s~hranami v~$T$ (pøipojil 
+jsem novou podkostru k~nìjaké u¾ nalezené).
+\::Skontrahuji $G$ podle podkoster nalezených v~$T$.
+\endalgo
+
+\s{Pozorování:}
+Ka¾dá z~nalezených podkoster v~$T$ je incidentní s~alespoò $k$ hranami (a~nebo 
+algoritmus u¾ konèí).
+Jak to vypadá pro jednotlivá ukonèení:
+\numlist\ndotted
+\itemcount=\algcnt
+\:$\vert H\vert\geq k$ -- bylo u¾ pøidáno dost vrcholù.
+\:$H=\emptyset$ -- nalezena celá kostra, konèím.
+\:Pøipojím se k~u¾ existující podkostøe -- jen ji zvìt¹ím.
+\endlist
+
+\s{Èasová slo¾itost:}
+Dùsledkem pozorování je, ¾e poèet podkoster v~jednom prùchodu je nanejvý¹
+$2m/k$. Pro $t'$ a $k'$ v následujícím kroku potom platí $t'\leq 2m/k$ a $k'=2^{2m/t'}\geq 2^k$,
+prùchodù bude tedy nanejvý¹ $\log^* n$\foot{$\log^* n$ je inverzní funkce k~\uv{vì¾i
+z~mocnin}, èili $\min\{i:\log^{(i)} n<1 \}$, kde $\log^{(i)} n$ je $i$-krát iterovaný
+logaritmus.}, proto¾e prùchod s~$k>n$ bude u¾ urèitì poslední.
+Jeden vnìj¹í prùchod trvá $\O(m+t\log k)$, zvolím-li tedy $k=2^{2m/t}$, potom bude mít
+jeden prùchod slo¾itost $\O(m)$. Celková slo¾itost bude $\O(m\log^{*}n)$.
+Podrobnìj¹í analýza pak dá je¹tì o~nìco lep¹í výsledek, a~to $\O(m\beta(m,n))$, kde 
+$\beta(m,n)=\min\{i:\log^{(i)}n<m/n\}$, co¾ opìt dává lineární algoritmus pro 
+grafy s~$m\geq n\log^{(k)}n$ pro libovolnou konstantu $k$ ($\beta(m,n)$ tehdy vyjde konstantní).
+
+
+%\newbox\tombox\newdimen\tomwd
+%\setbox\tombox=\hbox{$\log\log\log\dots\log$} 
+%\tomwd=\wd\tombox 
+%\raise 7pt\hbox{$\underbrace{\box\tombox}\kern-\tomwd
+%\lower 16pt\hbox to\tomwd{$\hfill\log^{*}n$\hfill} n<1$},
+%\message{dim: \the\tomwd, \the\tombox}
+
+\h{Dal¹í výsledky}
+
+Chazelle popisuje algoritmus se slo¾itostí $\O(m\alpha(m,n))$. Podle Pettieho je mo¾né dosáhnout 
+a¾ optima, tedy slo¾itosti $\O(T(m,n))$, kde $T$ je hloubka optimálního rozhodovacího stromu 
+pro grafy na~$n$ vrcholech s $m$ hranami (není ale známo, jak ho sestrojit, ani jak je hluboký);
+zajímavé je, ¾e tento algoritmus funguje i na Pointer Machine, tak¾e pokud existuje lineární
+algoritmus na~MST, nepotøebuje sílu RAMu.\foot{O výpoèetních modelech viz pøí¹tí pøedná¹ka.}
+
+\bye
diff --git a/6-borjar/Makefile b/6-borjar/Makefile
new file mode 100644 (file)
index 0000000..b316311
--- /dev/null
@@ -0,0 +1,3 @@
+P=6-borjar
+
+include ../Makerules
diff --git a/7-ram/7-ram.tex b/7-ram/7-ram.tex
new file mode 100644 (file)
index 0000000..adbae2c
--- /dev/null
@@ -0,0 +1,351 @@
+\input ../sgr.tex
+
+\long\def\onecol#1{\hbox to 0.5\hsize{\vtop{\hsize=0.45\hsize #1}\hss}}
+\long\def\twocol#1#2{\par\line{\onecol{#1}\hss\onecol{#2}}}
+\def\austere{\parskip=0pt\parindent=0pt}
+\def\lines{\obeylines\austere}
+\def\\{\hfil\break}
+\def\rack#1#2{\setbox0=\hbox{#1}\hbox to \wd0{#2}}
+
+% Alik
+% ----
+\def\0{{\bf 0}}
+\def\1{{\bf 1}}
+\def\9{\rack{\0}{\hss$\cdot$\hss}}
+\def\opnot{\mathop{\lnot}}
+\def\shl{\mathop{<\!<}}
+\def\shr{\mathop{>\!>}}
+\def\opdiv{\mathop{/}}
+\def\opmod{\mathop{\%}}
+\def\ALIK{{\sc Alik}}
+
+\def\alik#1{%
+\medskip
+\halign{\qquad $ ##$&\hbox to 0.4\hsize{${}##$\hfil}&\hfil $ ##$&\hbox to 0.4\hsize{${}##$ \hss}\cr
+#1}
+\medskip
+}
+
+\prednaska{7}{Výpoèetní modely}{zapsal Zdenìk Vilu¹ínský }
+
+\h{Druhy výpoèetních modelù}
+
+\s{Poznámka:} V dostateènì silném výpoèetním modelu lze v¹e (a¾ na
+vyjímky) spoèítat v konstantním èase.
+
+\s{Church - Turingova teze:} V¹echny výpoèetní modely které nejsou
+absurdní jsou ekvivalentní.
+
+ Toto tvrzení ale neplatí a¾ do tìch nejmen¹ích detailù, které by nás zajímaly. Spoèítáme to samé,
+ale pøi zkoumání jemnìj¹ích slo¾itostí ne¾ polynomiálních nejsou
+modely stejnì silné.
+
+Následující modely se li¹í v tom, zda vìøíme, ¾e lze pole
+indexovat v konstantním èase nebo ne.
+
+\s{Pointer Machine:} Uznává 2 typy dat:
+
+\algo
+\: Èísla - jsou omezená parametry modelu
+\: Pointry -
+ukazují na "krabièky"
+\endalgo
+
+Pamì» tohoto modelu je slo¾ená z pevného poètu registrù na èísla a
+na pointry a neomezeného poètu krabièek. Ka¾dá krabièka má pevný
+poèet polo¾ek na èísla a pointry a na krabièku se lze odkázat
+pointrem. Aritmetika není a¾ na triviální pøípady v konstantním
+èase.
+
+\s{Random Access Machine:} Je rodinka modelù, které se li¹í v
+rùzných detailech. Ov¹em dost podstatných. V¹echny mají spoleèné
+to, ¾e existuje pouze jeden datový typ - {\bf èísla}, mají pevný
+poèet registrù (do jednoho registru se vejde jedno èíslo) a pamì»,
+co¾ je pole indexované èísly, jeho¾ polo¾ky jsou èísla. Instrukce
+jsou operace s èísly.
+
+Tento model má dvì nejasnosti:
+
+\algo
+\: Velikost èísel
+\: Cena operací
+\endalgo
+
+\h {Typy Random Access Machine (RAM)}
+
+\s{1) Logaritmická cena instrukcí}
+
+Èasová slo¾itost instrukce roste s poètem bitù èísel, na kterých
+instrukce pracuje. Dojde tím k odstranìní absurdit, ale ¹patnì se
+poèítá $\O(x)$.
+
+\s{2) Omezení velikosti slova; Operace v $\O(1)$}
+
+$W$ - ¹íøka slova. Mám li vstup délky $n$, pak $W$ je alespoò
+$\log n$. Mù¾eme BÚNO pøedpokládat, ¾e $W = \O(\log n)$. Není to
+zcela ekvivalentní prvnímu RAM, ale dovedeme na nìj pøevést se
+zpomalením $\O(\log n)$. Máme k dispozici nìkolik modelù operací:
+
+\algo
+\:WordRAM - +, -, *, /, \%, <<, >>, \&,\^{}
+
+\:AC$^0$ RAM - Jsou funkce spoèitatelné hradlovou sítí, která má
+polynomiální poèet hradel, libovolný poèet vstupù a konstantní
+hloubku.
+
+\:AC$^k$ - Jsou funkce spoèitatelné hradlovou sítí, která má
+polynomiální poèet hradel, libovolný poèet vstupù a hloubku $
+\O(\log^k n)$.
+
+\:MC$^k$ - Jsou funkce spoèitatelné hradlovou sítí, která má
+polynomiální poèet hradel a má nejvý¹e 2 vrstvy.
+
+\: Word $\cap$ AC$^0$ - Mù¾eme v¹e, kromì *, /, \%. Nejedná se ale
+o pøíli¹ zajímavý model .
+\endalgo
+
+Zamìøíme se pøevá¾nì na WordRAM, ale ve¹keré operace lze vyrobit i
+v AC$^0$RAM.
+
+\s{Poznámka:} Ve¹keré Pointer-Machine polynomiání algoritmy,  jsem
+schopen na RAM spoèíst v asymptoticky stejném èase.
+
+\h {Van Emde-Boas Trees}
+
+Struktura, která si pamatuje mno¾inu uzlù $X$ z nìjakého omezeného
+universa $U$, $X \subseteq \{0..U-1\}$ a podporují "stromové
+operace" v èase $\O(\log\log U)$. Stromovými operacemi jsou
+my¹leny základní mno¾inové operace a operace pracující s
+uspoøádáním. V takovéto struktuøe pak mají operace slo¾itost:
+
+\settabs 5 \columns \+ & VEBT & Best Known\cr \+ Tøídìní &
+$\O(n\log\log U)$ & $\O(n\log\log n)$ \cr \+ MST & $\O(m\log\log
+U)$ & $\O(m)$ - pro integerovì ohodnocené\cr \+ Dijkstra &
+$\O(m\log\log U)$ & $\O(m+n\log\log U)$, neorientovanì $\O(m)$\cr
+
+
+VEBT pro universum velikosti $U$ (WLOG $U=2^{2^K}$) obsahuje:
+\algo
+
+\:min, max - alespoò jedno nesmí být ulo¾eno rekurzivnì v
+podstromech
+
+\:pøihrádky $P_0$ -- $P_{\sqrt{U}}$, pøièem¾ $x$ padne do
+$P_{\lfloor x/\sqrt{U} \rfloor}$ a pøihrádky jsou ulo¾ené jako
+VEBT($\sqrt{U}$)
+
+\:"sumární" VEBT($\sqrt{U}$) obsahující èísla neprázdných
+pøihrádek
+\endalgo
+
+\s{Find:} - pøímoèaøe v $\O(\log\log U)$
+
+\s{Insert:} Slo¾itost $\O(\log\log U)$
+\algo
+
+\:o¹etøení triviálních stromù
+
+\: je-li tøeba, swap s min/max
+
+\: padne do pøihrádky $P_i$, která je buï
+
+\:: prázdná $\Rightarrow$ update sumárního stromu + zalo¾ení
+triviálního stromu pro pøihrádku
+
+\:: nìco v ní je $\Rightarrow$ zanoøím do podstromu
+\endalgo
+
+\s{Delete:} - analogicky
+
+\s{FindMin:} - Slo¾itost $\O(1)$
+
+\s{Succ:} - Slo¾itost $\O(\log\log U)$
+\algo
+
+\: porovnání $x$ s min a max
+
+\:: $x$ = min $\Rightarrow$ i=FindMin(sumarni strom); Succ =
+FindMin($P_i$) \:: $x$ = max $\Rightarrow$ Succ = 0
+
+\: $x \in P_i$
+
+\:: $x \not =$ max $P_i$ $\Rightarrow$ vnoøím do $P_i$
+
+\:: $x =$ max $P_i$ $\Rightarrow$ j=Succ(i) v sumárním stromu;
+Succ = FindMin($P_j$)
+\endalgo
+
+Na operace mám hezké slo¾itosti, ale s inicializací to tak pìkné
+není. Nicménì z následujícího vyplyne, ¾e není tøeba inicializaci
+psát.
+
+\h{Modely inicializace}
+
+\s{1) "Pøi odchodu zhasni":} Pøidáme axióm, ¾e na zaèátku je celá
+pamì» vynulovaná. Za sebou pak pamì» uklidíme.
+
+\s{2) Neinicializovano:} V pamìti je cokoliv, musím se postarat
+sám
+
+\s{Vìta:} Buï $P$ program pro WordRAM s nulami inicializované
+pamìti bì¾ící v èase $T(n)$. Pak existuje program $P$' pro WordRAM
+s {\bf neinicializovanou} pamìtí poèítající toté¾ v
+èase$\O(T(n))$.
+
+\s{Dùkaz:} Bìhem výpoètu si budeme pamatovat, k terých pamì»ových
+buòkách u¾ nìco máme. Prokládaòe ulo¾íme do pamìti 2 pole:
+\itemize\ibull \:M - pamì» $P$  \:L - seznam pou¾itých bunìk v M a
+L[0] = délka L
+\endlist
+
+Redukci vylep¹íme tím, ¾e zalo¾íme dal¹í prolo¾ené pole R, ve
+kterém $i$-tá polo¾ka je buï neinicializovaná nebo øíká, na které
+pozici v L je $i$-tá pamì»ová buòka pùvodního stroje.R[$i$] = $j$:
+L[$j$] = $i$ $\vee$ neinicializováno pokud $\not \exists$ takové $j$.
+
+Tak¾e jsem schopen v konstantním èase rozhodnout,
+jestli u¾ do buòky bylo psáno a ve stejném èase teké buòku pøidat.
+
+\qed
+
+\s{3) Zákaz dìr:} $\Rightarrow$ randomizované
+
+\s{Dùsledek:}Ani v jednom z pøedchozích pøípadù nemusíme psát
+inicializaci
+
+\h{Operace s RAM}
+
+Dá se s jistými omezeními pou¾ívat jako vektorový poèítaè.
+ \itemize\ibull
+
+\:Nejpravìj¹í jednièka:
+\alik{
+  &      & x&=\0\1\9\9\9\0\1\1\0\0\9\9\9\0 \cr
+  & & x - 1&=\0\1\9\9\9\0\1\0\1\1\9\9\9\1 \cr
+  & & x \land (x - 1)&=\0\1\9\9\9\0\1\0\0\0\9\9\9\0 \cr
+  & & x \oplus (x \land (x - 1))&=\0\0\9\9\9\0\0\1\0\0\9\9\9\0 \cr}
+\endlist
+
+Pro následující sadu vektorových operací vezmeme vektor, a
+prolo¾íme jeho jednotlivé prvky zleva nulami. \itemize\ibull
+
+ \alik{ & & \0 x_{n-1} \0 x_{n-2} \9\9\9 \0 x_1\0 x_0  \cr}
+
+\: Replikace:
+
+Replikace $x$ vytvoøí vektor samých $x$
+ \alik{ & & x*(\0\0\9\9\9\0\0\1)^n \cr}
+
+\: Seètení v¹ech slo¾ek $(Sum)$:
+
+a) sèítáním modulo $1^{n+1}$
+
+b) násobením vhodnou konstantou
+\def\.{\hbox to 3pt{\hfil}}
+\def\z{\rack{$x_1$}{\hss\1\hss}}
+\def\y{\rack{$x_{n-1}$}{\hss\1\hss}}
+\def\xa{\rack{$x_1$}{\hss\.\hss}}
+\def\xb{\rack{$x_{n-1}$}{\hss.\hss}}
+\def\|{\hbox to 3pt{\hfil \vrule height 8pt depth 2pt \hfil}}
+
+\alik{ & & x_{n-1} x_{n-2} \9\9\9\9 x_1 x_0  \cr
+ &  & * \y\y \9\9\9\9 \z\z \cr
+ &  & x_{n-1} x_{n-2} \9\9\9\9 x_1 x_0 \cr
+ &  & x_{n-1} x_{n-2} \xb\9\9 x_1 x_0 \xa \cr
+ &  & \| \xa\xa\xa\xa\xa\xa\xa \cr
+ &  & \| \xa\xa\xa\xa\xa\xa\xa \cr
+ &  & \9\9\9 x_1x_0\xa\xa\xa\xa\xa\xa\xa  \cr
+ }
+Výsledkem je vektor v¹ech èásteèných souètù.
+
+\: Paralelní porovnání $(Cmp)$:
+
+Compare x $\leq$ y $\equiv z_i = 1 \Leftrightarrow x_i \leq y_i$
+\alik{ & & \1 y_{n-1} \1 y_{n-2} \9\9\9 \1 y_1\1 y_0  \cr & & - \0
+x_{n-1} \0 x_{n-2} \9\9\9 \0 x_1\0 x_0  \cr   \cr}
+
+U vektoru y nahradíme prolo¾ené nuly jednièkami a odeèteme vektor
+x. Ve výsledku pak bude na místì prolo¾eného bitu jednièka právì
+tehdy, kdy¾ $x_i \leq y_i$
+
+\: Rank ($x$,y):
+
+Mám nìjaké èíslo $x$ a vektor y, Rank je poèet slo¾ek vektoru,
+které jsou men¹í nebo rovny $x$. \alik{ & &
+Sum(Cmp((xx\9\9\9xx),y)) \cr}
+
+Nareplikuji vektor samých $x$ a ten porovnám s vektorem y.
+Výsledný vektor seètu.
+
+\: Zatøídìní:
+
+Zatøídit novou hodnotu do setøídìného vektoru èísel lze také v
+konstantním èase. Nejprve pomocí Rank najdu místo, kam má pøijít,
+pak nìjakým konstantním poètem operací vektor "roz¹oupnu" o ¹íøku
+slo¾ky doleva a vlo¾ím novou hodnotu.
+
+\: Unpack:
+
+Dostane $k$-bitové èíslo a vyrobí $k$-slo¾kový vektor, jeho¾
+slo¾ky jsou bity pùvodního èísla. Zreplikuji $x$ na vektor \alik{
+& & \0x\0x\9\9\9\0x \cr} a provedu AND s vhodnou bitovou maskou,
+konkrétnì \alik{ & &
+\1\0\9\9\9\0\|\9\9\9\|\0\9\9\9\0\1\0\|\0\9\9\9\0\1 \cr} Tím
+vytvoøím vektor, který má v ka¾dé slo¾ce nulu nebo nenulu, podle
+toho, jestli bit odpovídající této slo¾ce je nulový nebo nenulový,
+ale je na ¹patné pozici. Vektor teï prolo¾ím jednièkami místo nul
+a odeètu jednièku v ka¾dé slo¾ce. Tam kde byla ve slo¾ce nula, tak
+si vypùjèila z jednièky od prostrkání, kde byla nenula tam se
+nevypùjèilo. Prokládací bity jsou teï negace tìch, které tam
+potøebuji mít. Pak staèí znegovat, provést Shift na správné místo
+a AND k odstranìní nepoøádku.
+
+\: Pack:
+
+Dìlá opak ne¾ unpack, dostane vektor jednièek a nul, ze kterého
+vytvoøí $k$-bitové èíslo. Pøerozdìlím slo¾ky vektoru tak, jako by
+byli o bit krat¹í a provedu $Sum$ - Tím se jednotlivé bity posunou
+a posèítá se to, jak potøebuju.
+
+\endlist
+
+Pro dal¹í operace pøedpokládáme, ¾e pro $W$-bitová èísla máme
+slova dlouhá alespoò $b^2$.
+
+\itemize\ibull
+
+\: Poèet jednièek:
+
+Zjistí poèet jednièkových bitù. Provedu Unpack, èím¾ dostanu
+vektor, jeho¾ slo¾ky jsou bity pùvodního èísla a provedu $Sum$.
+
+\: Zrcadlení:
+
+Chci dostat zrcadlovì symetrické èíslo ke vstupnímu. Nejprve
+provedu Replicate. V nejni¾¹í kopii si nechám nejvýznamìj¹í bit, v
+dal¹í druhý, a¾ v poslední nejni¾¹í bit. Poté posèítám s o jedna
+men¹í velikostí bloku.
+
+\: LSB (Least Significant Bit):
+
+Poøadové èíslo první jednièky zprava. Izoluji tento bit pomocí
+nalezení nejpravìj¹í jednièky,  \alik{& & \0\9\9\9\0\1\0\9\9\9\0
+\cr} odeètu 1 a seètu jednièky. \alik{& & \0\9\9\9\0\0\1\9\9\9\1
+\cr}
+
+\: MSB (Most Significant Bit):
+
+Provede se pøes zrcadlení.
+
+\: MSB pro normální délu slova:
+
+Rozdìlím èíslo na bloky velikosti $\lfloor\sqrt{w}\rfloor$,
+nejdøíve v ka¾dém bloku zjistím, zda v nìm nìco je nebo ne -
+$Cmp(x,0)$, provedu Pack, èím¾ dostanu jedno slovo $y$ odmocninové
+délky, které øíká, které bloky jsou prázdné a které ne. Dále
+pustím MSB kvadratické na $y$, èím¾ dostanu blok $B_i$, ve kterém
+je nejpravìj¹í jednièka a nakonec pustím MSB kvadratické na blok
+$B_i$. Tím ji najdu uvnitø bloku.
+
+\endlist
+\bye
diff --git a/7-ram/Makefile b/7-ram/Makefile
new file mode 100644 (file)
index 0000000..30dae5a
--- /dev/null
@@ -0,0 +1,3 @@
+P=7-ram
+
+include ../Makerules
diff --git a/8-qheapuf/8-qheapuf.tex b/8-qheapuf/8-qheapuf.tex
new file mode 100644 (file)
index 0000000..e44d00e
--- /dev/null
@@ -0,0 +1,291 @@
+\def\X{{\cal X}}
+\def\B{{\cal B}}
+\def\and{\ \&\ }
+\def\msb{{\rm MSB}}
+\def\rank{{\rm Rank}}
+
+\def\pnromanp{(\nroman)}
+\def\pnromanap{(\nroman ')}
+
+% Vlozeni obrazku {obrazek}{popisek}
+\def\nosizefigure#1#2{\bigskip\vbox{\centerline{\epsfbox{#1}}\smallskip\centerline{#2}}\bigskip}
+
+\input ../sgr.tex
+
+\prednaska{8}{Q-Heaps \& Union-Find problem}{zapsali Cyril Strejc a Ale¹
+©nupárek}
+
+Na minulém semináøi jsme si mimo jiné ukázali výpoèetní model RAM a nahlédli
+jsme, ¾e pomocí RAMu mù¾eme celkem snadno (v konstatním èase) simulovat 
+vektorový poèítaè. A kdy¾ u¾ máme vektorový poèítaè, pojïme si ukázat, jaké
+datové struktury bychom s ním mohli vytváøet. Vektor ukládáme v $\O(w)$ slovech.  
+V dal¹ím budeme BÚNO
+pøedpokládat, ¾e hodnoty, které do stuktur ukládáme, jsou rùzné. Svým sna¾ením 
+smìrujeme ke strukturám, které zvládnou operace {\it Insert} a {\it Delete} v 
+kostantním èase s rozumnou konstantou.
+
+\s{Znaèení:}
+\itemize\ibull
+\: $w$, ¹íøka slova daného stroje (RAMu)
+\: $n$, velikost vstupu
+\endlist
+Abychom mohli indexovat vstup, dále pøedpokládejme, ¾e $w = \O(\log n)$.
+
+\h{Word-Encoded B-Tree}
+V podstatì pùjde o obyèejný B-strom s daty v listech. Faktor stromu oznaème $B$.  
+Ukládáme $k$-bitové hodnoty a chceme aby $Bk=\O(w)$ -- tehdy se nám uzel stromu 
+vejde do vektoru a my budeme dostateènì rychle umìt operace s uzly, které do 
+B-stromu potøebujeme, t.j. dìlení, spojování, vyhledávání. Té¾ ukládáme pointry 
+na syny. Je tøeba si trochu rozmyslet, ¾e v ka¾dém uzlu se pointry na syny také 
+povede ``scucnout'' do vektoru. Jen¾e poèet prvkù ($\vert T\vert$), které se do 
+stromu vejdou je øádovì $B^h$, kde $h$ je hloubka stromu, a tudí¾ $\log\vert 
+T\vert = \O(h)$. Proto se pointry do vektoru pìknì vejdou.
+
+\h{Q-Heaps}
+
+Q-Heap je teoreticky zajímavá datová struktura, v praxi neimplementovatelná.
+Narozdíl od Word-Encoded B-Tree není takové omezení na velikost ukládaného èísla
+-- maximální velikost èísla odpovídá velikost slova. 
+
+\s{Znaèení:}
+\itemize\ibull
+\: $k = \O(w^{1/4})$
+\: $r\le k$, poèet prvkù v Q-haldì
+\: $x_1 < \ldots < x_r$, prvky (o $w$ bitech) v Q-haldì
+\: $\X = (x_1,\ldots,x_r)$
+\: $c_i = \msb(x_i \oplus x_{i+1})$, nejvy¹¹í bit, na kterém se li¹í $x_i$ a
+$x_{i+1}$
+\: $\rank_\X(x)$, poèet prvkù mno¾iny $\X$, které jsou men¹í ne¾ $x$.
+Samotné $x$ ov¹em nemusí být prvek mno¾iny $\X$.
+\endlist
+
+Haldové operace budeme umìt v $\O(1)$, nicménì bude nutný preprocesing v èase
+$\O(2^{k^4})$, co¾ ov¹em není tak hrozné, jak na prní pohled vypadá, jeliko¾
+$k = \O(\root 4 \of {\log n})$, èili nakonec ho stihneme v lineárním èase.
+
+A jak to tedy vypadá? Prvky $x_1,\ldots,x_r$ budeme ukládat do tzv. trie. 
+{\it Trie} je binární strom s prvky (daty) v listech, v na¹em pøípadì s 
+hodnotami $x_1,\ldots,x_r$. Popí¹u konstrukci trie. Oznaèím $c = \max(c_i)$. 
+Mno¾inu $\X$ rozdìlíme na dvì mno¾iny, podle hodnot prvkù na $c$-tém bitu v
+binárním zápisu: $$ \X_0 = \{ x_i \vert x_i \in \X\and x_i[c]=0 \}$$ 
+$$ \X_1 = \{x_i \vert x_i \in \X\and x_i[c]=1\}$$ 
+
+Tedy $$\forall x \in \X_1, \forall y \in \X_2: x < y$$ 
+
+Èíslo $c$ -- øíkejme mu znaèka -- vlo¾íme do koøene právì budovaného (pod)stromu 
+a jako levý podstrom pøipojím strom, který vznikne stejnou oparací na mno¾inì  
+$\X_ 0$, prièem¾ $c$ vybíráme jen pøes prvky $\X_0$.  Pravý podstrom vznikne 
+stejnì z mno¾iny $\X_1$.  Pokud je ji¾ mno¾ina pouze jednoprvková, dále  
+nepokraèujeme v dìlení a zbývající prvek vlo¾íme jako list.  Hodnoty (data) jsou 
+tak ulo¾eny v listech a ve vnitøích uzlech jsou znaèky. 
+
+\s{Pøíklad:}
+
+\nosizefigure{trie.eps}{Trie. Ohodnocení hran je pouze pro názornost -- není 
+souèástí trie.}
+
+\>Pozorování: 
+\itemize\ibull
+\: Tvar stromu (oznaème ho $T$) je jednozaène urèen vektrorem 
+$\vec c=(c_1,\ldots,c_r)$.
+\: Prvky jsou v trii umístìny vzestupnì zleva doprava.
+\endlist
+
+To je sice v¹echno moc pìkné, ale pro aplikaci v Q-Heapech budeme muset umìt 
+poèítat $\rank_\X(x)$ v konstatním èase. Jak tedy na to?
+
+\s{Lemma 1:} $\rank_\X(x)$ je urèen jednoznaènì:
+\numlist\pnromanp
+\: stromem $T$
+\: èíslem $i$: x vede v $T$ do $x_i$
+\: vztahem mezi $x$ a $x_i$ -- my¹leno vzhledem k relacím $<,>,=$
+\: $\msb(x \oplus x_i)$
+\endlist
+
+\s{Zdùvodnìní.} Pokud $x=x_i$, tak zjevnì $\rank_\X(x) = i$. Nech» tedy $x\neq 
+x_i$. Hodnoty znaèek klesají ve smìru od koøene k
+listùm a na cestì od koøene k $x_i$ se v¹echny bity v $x_i$ na pozicích urèených 
+znaèkami shodují s bity v $x$ -- tak jsme k danému $x$ ve (ii) vybrali $x_i$.  
+Vezmeme do ruky $x$ a vydáme se na cestu od koøene do místa, kde bychom 
+oèekávali $x$, kdyby v trii bylo. Jeliko¾ $\msb(x \oplus x_i)$ urèitì není 
+znaèka na cestì z koøene do $x_i$ (v tom pøípadì by cesta podle znaèek nevedla 
+do $x_i$ -- $x$ se na této pozici od $x_i$, vydali bychom se tedy do opaèné 
+(shodující) vìtve), tak na této cestì je $\msb(x \oplus x_i)$ ostøe mezi 
+nìjakými znaèkami, co¾ mi urèí hranu -- breakpoint, pod kterou u¾ jsou v¹echny 
+hodnoty v listech buï men¹í (pokud $x>x_i$), nebo vìt¹í (pokud $x<x_i$), proto¾e 
+na bitech vy¹¹ích, ne¾ je znaèka následující po breakpointu, mají v¹echny prvky 
+v podstromì stejnou èíslici.
+
+\s{Pøíklad:} Vezmìme mno¾inu $\X=\{x_1,x_2,\ldots,x_6\}$ z pøedchozího pøíkladu
+a poèítejme $\rank_\X(011001)$. Bod zlomu -- breakpoint -- je oznaèen puntíkem.  
+A $x>x_i$, tedy celý podstrom je men¹í ne¾ $x$ a tudí¾ $\rank_\X(011001)=4$. 
+
+\s{Znaèení:}
+\itemize\ibull
+\: $\B = \{c_1,\ldots,c_k\}$
+\: $\varphi: \{1,\ldots,k\} \to \B, \varphi(i):=c_i$
+\endlist
+
+\s{Lemma 1':} $\rank_\X(x)$ lze spoèítat v konstatním èase z:
+\numlist\pnromanap
+\: $\B,\varphi$ -- tyto objekty urèují strom $T$
+\: $\equiv$ (ii), tj.  èísla $i$: x vede v $T$ do $x_i$
+\: $\equiv$ (iii), tj. vztahu mezi $x$ a $x_i$ -- my¹leno vzhledem k relacím 
+$<,>,=$
+\: $\rank_\B(\msb(x \oplus x_i))$
+\endlist
+a v¹echny vý¹e uvedené body lze té¾ spoèítat v konstatním èase.
+
+\s{Zdùvodnìní.}
+
+\numlist\pnromanap
+\: Nic se nepoèítá, tak je strom ulo¾en.
+\: 
+\endlist
+
+\>A teï konkrétnì, jak bude Q-Heap realizována:
+
+\>Pamatujeme si:
+\itemize\ibull
+\: $\check x_1,\ldots,\check x_2$, hodnoty v libovolném poøadí
+\: $\rho:$ permutace na $\{1,\ldots,k\}$ urèující $x_i = \check x_{\rho(i)}$ pro 
+$1 \le i \le r$, platí $x_1 < \ldots < x_r$
+\: $r$, poèet prvkù
+\: $B$, mno¾ina ``zajímavých'' bitových pozic, reprezentovaná jako vektor
+\: $R$, vektor popisující funkci $\varphi: \{1,\ldots,k\} \to \{1,\ldots,k\}$, t.¾.  
+$B[\varphi(i)] = c_i$
+\endlist
+
+\> A teï si ji¾ uká¾eme dvì základní operace -- {\it insert} a {\it delete}.
+
+\s{Insert(x)}
+
+\algo
+\: $i = \rank_\X(x)$
+\: porovnáme $x,x_i$
+\: zaøadíme $x$ do $x_1,\ldots,x_r, r++$
+\: spoèítáme $c_i',c_{i+1}'$
+\: update $B,R$
+\endalgo
+
+\s{Delete(x)}
+
+\algo
+\: $i = \rank_\X(x)$, pøedpokládáme $x=x_i$, tedy ¾e prvek v haldì je
+\: sma¾eme $x_i$ (uvolnìní $\check x_{\rho(i)}$, se¹oupnutí $\rho$); $r--$
+\: rozhodneme, jestli zmizí $c_i$, nebo $c_{i+1}$
+\: update $B$ (dle výsledku pøedchozího kroku), update $R$ (se¹oupnutí)
+\endalgo
+
+
+
+\h{Union-Find problem}
+Na Uion-Find problem (UF) mù¾eme nahlí¾et ze více stran (udr¾ování ekvivalencí, 
+inkrementální souvislost grafu). K èemu je to dobré? 
+Napøíklad v Kruskalovì algoritmu pro hledání minimálních koster v grafu.
+\h{Udr¾ování tøíd ekvivalence }
+Mìjme nìjakou mno¾inu M, která se dá rozlo¾it na k ekvivalentních podmon¾in (tøídy ekvivalence). Na mno¾iòe M chceme provádìt 
+dvì operace: jsou p,q z M ekvivalentní (ve stejné tøídì ekvivalence)? (find(p,q)) Dále chceme umìt spojit dvì tøídy ekvivalence do jedné (union(p,q)).
+\h{Inkrementální idr¾ování komponent souvislosti grafu}
+Jedná se o pøipad podobný udr¾ování tøíd ekvivalence. Tentokrát mnou¾inou M bude mno¾ina vrcholù V grafu G (V,E). 
+Za »øídy ekvivalence budou jednotlivé komponenty souvislosti grafu G. Operace find nám øekne o dvou vrcholech nachází-li
+se ve stejné komponen»e, èi nikoliv. Operace union nám spojí dvì komponenty do jedné pøidáním hrany. Pokud pøipustíme mazání hran, 
+øe©ení problému je výraznì te¾¹í.
+
+\h{Bì¾ná implementace }
+Ka¾dé tøídì ekvivalence pøiøadíme unikátní barvu, kterou obarvíme její prvky. Pro operaci find staèí porovnat barvy prvkù. 
+Pro operaci union dvou komponent je nutné pøebarvit obì na stejnou barvu. Budeme pøebarvovat 
+v¾dy tu men¹í pak celková operace union bude trvat $\O(n\log(n) + m)$. (Ka¾dé pøebarvení minimálnì zdvojnásobí velikost nové komponenty.)
+\h {Chytøej¹í implementace }
+Budeme-li prvky za stejné tøídy reprezentovat ve jednom stromì (synové mají ukazatel svého otce), operaci find
+provedeme prùchodem ze zadaných prvkù do koøene. Prvky jsou ve stejné komponentì souvislosti, pokud mají stejného otce.
+Operace union bude spojení dvou stromù do jednoho (otec jednoho stromu se zavìsí pod listy druhého). 
+Takto definovaný union nemusí garantovat logaritmickou slo¾itost pro find, 
+v extrémním pøipadì mù¾e strom mít lineární hloubku vzhledem k poètu vrcholù.
+
+Degeneraci stromu lze zabránit pøidánim podmínky urèující, jaký strom bude dole.
+První mmo¾nost (union by size) je povìsit dolu vìtsí strom.
+Druhá mo¾nost (union by rank) je ka¾dému vrcholu nastavit na zaèátku nìjaký rank (tøeba 1). Pokud je $r1<r2$ pak strom s r1 povìsíme dolu.
+Pokud $r1=r2$ pak ve slouèeném stromù zvý¹íme v koøeni rank o 1. Informace o ranku nám zabere ménì pamìti ne¾ o velikosti stromu.
+
+Dal¹i mo¾nost pro zkrácení vý¹ky stromu je path compression. Pøi operaci find si pamatujeme pro¹lé vrcholy a pøesmìrujeme 
+jejich ukazatele na otce na koøen.
+
+\s{Vìta: } UF s Union by size nebo Union by rank s path compression mají amortizovanì 
+slo¾itost $\O(n\alpha(n))$, kde $\alpha(n)$ je inverzní funkce k Ackermanovì funkci. ($\alpha(poèet atomù ve vesmíru)=5$)
+
+\h {Microtree/Macrotree decomposition}
+
+\s{Otázka: } Je mo¾né provádìt UF v lep¹ím èase kdy¾ bude pøedem znám výsledný strom?
+
+Cíl: UF lze za pomoci preprocesingu v èase $\O(n)$  zvládnout amortizovanì v èase $\O(1)$ na U,F.
+
+\h{Clusterizace}
+\s {Definice: } Nech» G je je graf kde $\forall v \in V(G): deg(v)<=3$ a $c \in N$ pak c-clusterizací grafu G je rozklad
+G na podgrafy na podgrafy G1,G2 ... Gk s následujícimi vlastnostmi:
+\itemize\ibull
+\: $\forall v  \in V \exists !\ i: v \in C_i$
+\: $\forall i\  C_i\leq C$
+\: $\forall i$ vnìj¹i stupeò $C\leq3$, pokud $C_i=3$ pak $\|C_i\|=1$
+\: ¾ádné dva sousední clustery nelze spojit
+\endlist
+
+Co udìlat se stromem, ve kterém existuje vrchol se stupnìm vìt¹im ne¾ 3? Pou¾ijeme French trick.
+V¹echny vrcholy s vy¹¹im stupnìm jak 3, rozdìlíme na více vrcholù se stupnìm 3 spojených cestou. 
+Tato ùprava nám asymptoticky nezmìní èasovou slo¾itost UF o proti pùvodnímu stromu.
+
+
+\s{Lemma: } Pro ka¾dou C-clusterizaci n-vrcholového stromu je  $\O(n/C)$ clusterù.
+
+\s{Vìta: } Pro ka¾dé C lze C-clusterizaci (splòujíci pøedchozí lemma) najít v èase $\O(n)$.
+
+\s{Dùkaz: } za pomoci DFS ...
+\h{Jednodu¹¹í clusterizace}
+Pøedpokládejme, ¾e máme zakoøeòené stromy
+\s{Definice: } Koøeny makrostromù jsou nejvy¹¹i vrcholy, pod kterými je maximálnì $\log(n)$ listù.
+Celá clusterizace se nám rozpadne na následujíci pøipady: 
+\itemize\ibull
+\:N-strom: (má stupeò 1)
+\:M-strom: (má stupeò 2)
+\:cestu: ka¾dá cesta se popí¹e bitovým polem, jednotlivé úseky se poí¹í jednotlivými slovy
+\endlist
+poèet listù v makrostromu je maximálnì $n/\log(n)$ z toho vyplývá, ¾e vý¹ka makrostromu $\O(n/log(n))$
+
+\s{Co si potøebujeme pamatovat}
+\itemize\ibull
+\: $\log(n)$ na clusterizaci
+\: makrostrom  G s $C_i$ zkontrahovanými pro deg 1,3 do vrcholu a deg 2 do hrany, jeho velikost je $\O(n/\log(n))$
+\:mikrostromy, bitovì popsány
+\endlist
+
+\h{Makrostromy}
+V makrostromu jsou takové hrany, které vedly v pùvodním stromu mezi clustery, vrcholy budou hranièní
+vrcholy pøislu¹ných clusterù, cluster stupnì 1 je v novém stromì list, cluster stupnì 2 nahradíme 
+hranou mezi hranièními vrcholy a cluster stupòe 3 má jeden vnìj¹í vrchol, který je také v novém stromì.
+
+\s{find(x,y)}
+\algo
+nech» $i,j: x \in C_i, y \in C_j$
+\:pokud $i=j$, ptáme se v $C_i$ (mikro-find(i,j))
+\:pokud $i\not = j$, najdeme hranièní vrcholy pøíslu¹ných clusterù, tj. $h_i \in C_i, h_j \in C_j$ a provedeme makro-find($h_i$,$h_j$)
+       find($i$,$j$):=makro-find($h_i$,$h_j$) and mikro-find($i$,$h_i$) and mikro-find($j$,$h_j$);
+\endalgo
+
+\s{delete(x,y)}
+\algo
+\: pokud $x,y$ je makro-hrana, sma¾eme ji
+\: pokud $x,y \in C_i$  pak mikro-delete v $C_i$, pokud je $deg(C_i)=2$ a find($h_1$,$h_2$)==FALSE ($h_1, h_2$hranièní vrcholy), 
+pak makro-delete hrany odpovýdajíci $C_i$. ($C_i$ je neprùchodná)
+\endalgo
+\h{Mikrostromy}
+\itemize\ibull
+\: strom zakoøením a oèísluji mu hrany $0..h <  \log(n)$
+\: pamatujeme si: \itemize\ibull  
+  \:$\forall v \in C_i$ mno¾inu hran $P_v$ na cestì do koøene v (bitový vektor)
+  \:mon¾inu smazaných hran, operace delete pøidá hranu do mno¾iny
+  \:hranièní vrcholy
+  \endlist
+\: $P_x \oplus  P_y$ je cesta z x do y
+\endlist
+\bye
+
diff --git a/8-qheapuf/Makefile b/8-qheapuf/Makefile
new file mode 100644 (file)
index 0000000..6dd91ee
--- /dev/null
@@ -0,0 +1,3 @@
+P=8-qheapuf
+
+include ../Makerules
diff --git a/8-qheapuf/trie.eps b/8-qheapuf/trie.eps
new file mode 100644 (file)
index 0000000..9594dff
--- /dev/null
@@ -0,0 +1,4274 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Title: Page 1
+%%Creator: VRR  (http://vrr.ucw.cz/)
+%%CreationDate: Wed May 24 01:20:27 2006
+%%Pages: 1
+%%BoundingBox: 0 0 377 113
+%%DocumentData: Clean7Bit
+%%PageOrder: Ascend
+%%DocumentSuppliedResources: (atend)
+%%EndComments
+%%BeginProlog
+save
+%%BeginProcSet: VrrEPSProcSet
+/VrrEPSProcSetDict dup 40 dict def load begin
+/np {newpath} bind def
+/lt {lineto} bind def
+/mt {moveto} bind def
+/fi {fill} bind def
+/gs {gsave} bind def
+/gr {grestore} bind def
+/sc {scale} bind def
+/st {stroke} bind def
+/ct {curveto} bind def
+/cp {closepath} bind def
+/a {arc} bind def
+/an {arcn} bind def
+/fsd {findfont exch scalefont} bind def
+/sms {setfont moveto show} bind def
+/mkf {makefont} bind def
+/tr {translate} bind def
+/rot {rotate} bind def
+/slw {setlinewidth} bind def
+/sclr {setrgbcolor} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+end
+%%EndProcSet
+%%EndProlog
+%%BeginSetup
+%%BeginResource: font CMSY10
+%!PS-AdobeFont-1.1: CMSY10 1.0
+%%CreationDate: 1991 Aug 15 07:20:57
+
+% Copyright (C) 1997 American Mathematical Society.  All Rights Reserved.
+
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.0) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMSY10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.035 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMSY10 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 161 /minus put
+dup 162 /periodcentered put
+dup 163 /multiply put
+dup 164 /asteriskmath put
+dup 165 /divide put
+dup 166 /diamondmath put
+dup 167 /plusminus put
+dup 168 /minusplus put
+dup 169 /circleplus put
+dup 170 /circleminus put
+dup 173 /circlemultiply put
+dup 174 /circledivide put
+dup 175 /circledot put
+dup 176 /circlecopyrt put
+dup 177 /openbullet put
+dup 178 /bullet put
+dup 179 /equivasymptotic put
+dup 180 /equivalence put
+dup 181 /reflexsubset put
+dup 182 /reflexsuperset put
+dup 183 /lessequal put
+dup 184 /greaterequal put
+dup 185 /precedesequal put
+dup 186 /followsequal put
+dup 187 /similar put
+dup 188 /approxequal put
+dup 189 /propersubset put
+dup 190 /propersuperset put
+dup 191 /lessmuch put
+dup 192 /greatermuch put
+dup 193 /precedes put
+dup 194 /follows put
+dup 195 /arrowleft put
+dup 196 /spade put
+dup 0 /minus put
+dup 1 /periodcentered put
+dup 2 /multiply put
+dup 3 /asteriskmath put
+dup 4 /divide put
+dup 5 /diamondmath put
+dup 6 /plusminus put
+dup 7 /minusplus put
+dup 8 /circleplus put
+dup 9 /circleminus put
+dup 10 /circlemultiply put
+dup 11 /circledivide put
+dup 12 /circledot put
+dup 13 /circlecopyrt put
+dup 14 /openbullet put
+dup 15 /bullet put
+dup 16 /equivasymptotic put
+dup 17 /equivalence put
+dup 18 /reflexsubset put
+dup 19 /reflexsuperset put
+dup 20 /lessequal put
+dup 21 /greaterequal put
+dup 22 /precedesequal put
+dup 23 /followsequal put
+dup 24 /similar put
+dup 25 /approxequal put
+dup 26 /propersubset put
+dup 27 /propersuperset put
+dup 28 /lessmuch put
+dup 29 /greatermuch put
+dup 30 /precedes put
+dup 31 /follows put
+dup 32 /arrowleft put
+dup 33 /arrowright put
+dup 34 /arrowup put
+dup 35 /arrowdown put
+dup 36 /arrowboth put
+dup 37 /arrownortheast put
+dup 38 /arrowsoutheast put
+dup 39 /similarequal put
+dup 40 /arrowdblleft put
+dup 41 /arrowdblright put
+dup 42 /arrowdblup put
+dup 43 /arrowdbldown put
+dup 44 /arrowdblboth put
+dup 45 /arrownorthwest put
+dup 46 /arrowsouthwest put
+dup 47 /proportional put
+dup 48 /prime put
+dup 49 /infinity put
+dup 50 /element put
+dup 51 /owner put
+dup 52 /triangle put
+dup 53 /triangleinv put
+dup 54 /negationslash put
+dup 55 /mapsto put
+dup 56 /universal put
+dup 57 /existential put
+dup 58 /logicalnot put
+dup 59 /emptyset put
+dup 60 /Rfractur put
+dup 61 /Ifractur put
+dup 62 /latticetop put
+dup 63 /perpendicular put
+dup 64 /aleph put
+dup 65 /A put
+dup 66 /B put
+dup 67 /C put
+dup 68 /D put
+dup 69 /E put
+dup 70 /F put
+dup 71 /G put
+dup 72 /H put
+dup 73 /I put
+dup 74 /J put
+dup 75 /K put
+dup 76 /L put
+dup 77 /M put
+dup 78 /N put
+dup 79 /O put
+dup 80 /P put
+dup 81 /Q put
+dup 82 /R put
+dup 83 /S put
+dup 84 /T put
+dup 85 /U put
+dup 86 /V put
+dup 87 /W put
+dup 88 /X put
+dup 89 /Y put
+dup 90 /Z put
+dup 91 /union put
+dup 92 /intersection put
+dup 93 /unionmulti put
+dup 94 /logicaland put
+dup 95 /logicalor put
+dup 96 /turnstileleft put
+dup 97 /turnstileright put
+dup 98 /floorleft put
+dup 99 /floorright put
+dup 100 /ceilingleft put
+dup 101 /ceilingright put
+dup 102 /braceleft put
+dup 103 /braceright put
+dup 104 /angbracketleft put
+dup 105 /angbracketright put
+dup 106 /bar put
+dup 107 /bardbl put
+dup 108 /arrowbothv put
+dup 109 /arrowdblbothv put
+dup 110 /backslash put
+dup 111 /wreathproduct put
+dup 112 /radical put
+dup 113 /coproduct put
+dup 114 /nabla put
+dup 115 /integral put
+dup 116 /unionsq put
+dup 117 /intersectionsq put
+dup 118 /subsetsqequal put
+dup 119 /supersetsqequal put
+dup 120 /section put
+dup 121 /dagger put
+dup 122 /daggerdbl put
+dup 123 /paragraph put
+dup 124 /club put
+dup 125 /diamond put
+dup 126 /heart put
+dup 127 /spade put
+dup 128 /arrowleft put
+readonly def
+/FontBBox{-29 -960 1116 775}readonly def
+/UniqueID 5000820 def
+currentdict end
+currentfile eexec
+9b9c1569015f2c1d2bf560f4c0d52257bac8ced9b09a275ab231194ecf829352
+05826f4e975dcecec72b2cf3a18899ccde1fd935d09d813b096cc6b83cdf4f23
+b9a60db41f9976ac333263c908dcefcdbd4c8402ed00a36e7487634d089fd45a
+f4a38a56a4412c3b0baffaeb717bf0de9ffb7a8460bf475a6718b0c73c571145
+d026957276530530a2fbefc6c8f67052788e6703bb5ee49533870bca1f113ad8
+3750d597b842d8d96c423ba1273ddd32f3a54a912a443fcd44f7c3a6fe3956b0
+aa1e784aaec6fce08dae0c76da9d0a3eba57b98a6233d9e9f0c3f00fcc6b2c6a
+9ba23af389e6dfff4efec3de05d6276c6be417703ce508377f25960ef4ed83b4
+9b01b873f3a639ce00f356229b6477a081933fef3bb80e2b9dffa7f75567b1fa
+4d739b772f8d674e567534c6c5bbf1cf615372be20b18472f7aa58be8c216dbd
+df81cc0a86b6d8318ca68fe22c8af13b54d7576fe4ca5a7af9005ea5cc4edb79
+c0ab668e4fec4b7f5a9eb5f0e4c088cd818ecc4feb4b40ec8bd2981bf2336074
+b64c4302807fa25afe29d1edff68fbd0141698da0a0fd3fe352aef6618408eba
+80630fbcf58909b21ca4b9514eb27f9fc7b78ff460d374798dabab857f6dd422
+bc7983c7ca2138701652b6c3901b98b43b641f905f54afbe00822dd60e2bceb9
+57bce7cabfc51f153f3de409539528e20dee4b8c15e2aeaea9a46ffade11a3eb
+fa3456633b298dec6dda6d6ca41dae03f5c6b56f68e58c0706d3a97e34fd845f
+8f2c6126bb6ffb72ff4005a1385a1ef92f2bc0fe7441c157b1e4affa17a5d205
+7dc2ba87a77c45f8442a36bb895c4fc24fc83be3831d0588e9d66dc2e71d11e8
+8e9f110493314ae48233d708568062829ecb94af0441975cd8f1fdf4f626e6b0
+db35683b790befd89b94894c3ccc5ae9a57ede5b4c5f71ce1a7c5f34108ef589
+711e2e4572d90cb501068859e2e333876fc9251e6a574543e1c2e7a55e186cc9
+a194dbda51724fffe506b0b754666c59f4493d069431cdf764dd7e62720625b3
+e02c1403427a93362205a4ba5aa6727e3d486795d7ea749daa5a46a7c3ff9ebe
+73de35ed38de2a0e9ba7fd370b5b702e21ddd6a69a6b2e2916a5a93849d924b8
+44c3a0334a0d2c95e089bf141df55e25620bb31da68962dd3c51a9336eb11fcb
+737e6906eaba756bf7b55eeade38994c5fe146fdf725ac74ccacd70bbb292daa
+5b1c60cd39ac60239b1233579444e8846826d3983b0d6a8c5be07dfe43961897
+355ed8e72cc4a4257620eb7e113ee988d0e8f7947cc822d8563b7bd56d69f144
+159293e3e2cded7068f6e3046f14ad559d712d7fed96740c962cd9eba9cbdb0b
+45d5dd9a05c0ce28dd27d2fe6b7169b409bd1e080b32d6d9f2061bd1b9292d05
+06d482354f59db8bd14f8d975b8a30b212f524c8664e5bd9c170bb0488cabfb0
+bdfdd18bd44d443b08fb2781840addc9bd22376ab814b0429d7b0664b96e183a
+2675a28b68f1fb6f88132c796ce2aab0b9409396552d7c16f6abf5b85e93b397
+a9e1cb74f610e81319ccdeeb6d31ea13f95f792841402245230868ff37bc5799
+5aca98fca2df474817bf96b0ecdd4f42de20a00749a91297cb25ef1c7ad56c5d
+87256ab41195624f1977ecf9246d7b1db6cdbfcc654ad428932e5c0dee8cbae5
+d2cda5f56c16d62bcb93b05bc6cb5e13247f59f321b3b824a73d4261c6a85609
+abcb95c4b14fb51fa0b8826a05696617a2db092d909ffed178ba62599012d08e
+e433e800b54c77c15dcf02086b1f04935f7b79ef163384fd4137391f5e4936ec
+38677bfba1b4204f5f80505f68caa8f538eb157e9708306a9745d2e2855ef014
+50e3d2f8bd3c4c5b4f3697a51038011d41f16e4c7781b4eecccfb86ee892ad6e
+9a2c69c1ab0b11de2bf88964e5dae8a3389f18df163b375d17895f0d91d4d52c
+3a5be455196251ef12b8742cb54d14611bf5227ee52bf8f464ef8860579fb8bb
+6191e9ae46f27be34d732c2dec814d00fb9763848f847aa9faa73ce9053719c7
+81c3b3a5f27e614187d3f00a330c2f76496bf32e924e27ecfb6c459353845d44
+6f642061864356ccaaa2bf7443515645b51f4dff4e244f8b7a556ee38389ee3b
+bf9e69bd72d6bc0d134e134d6ff4360875eb8838a885dc681004ef4383cafeed
+c688fe4735f5aaa4a11b1be4d956ae9cbf8d8fddbc29a600215c189bc812a1f4
+41ff1ca1fd6c5f3c4013528961e676fe3c9aca3d44b913f51defd42dd4f67be4
+10c4152b675731f18315030fc2ca4bcfaf5c5bcadbbcba4664fce78984d5c899
+7b40088f68f31c8d54d44575ed23533ba3a504c1bc90794ab111f1c011be5769
+6786ae25551ed73c35f6a343579de01675dcfe26abde7a3cf73c121b7c33cd3d
+42bbcfced99ccfec4ae08ebf2af4fadeab53f6a2076f8189503dd57f84ae53ca
+d55d97d3734e706d9442fb175b5cc032ec64977600a369007a47b17569e32c5b
+cf5722ab7ce03edc4db3c1b3d31a73d3bd274c53359c6be06bb93d0026080b9d
+76f51dc69af96c8f73b83bc8ceb5d788e69571edc574e71c06b3504141d47179
+24efc2cdd8d0cb9645a06922cde8ef7b297bcfdc0c9d8c65a0d0ce542bad98b0
+8bf75d814caac3c51877584edd5412caf5c69599666db2e5571e5662b3da5103
+58234d553a54025c8dce413acd0b4ffb252baee591382c0c0a293011f3649508
+a2c7dac8f153b869c77d148a0a81aae057b8d32cfda1750180c98f70a8d0fc62
+a976f785b6f67e9665d1a54c2f591e4b9bc1b8cd0b23e6b53ce5ee85995417a8
+199f68df12c88173f69d45d8e6208df7e1315cd08c9f0945fa751b9400a4f44f
+1977355c5fae4ea84342f04ae3e785dec832de82b9c6d57835734080df60c2aa
+44702fc5bea1af1455da321341f3613442d63f6b547fed5707ef114b654e0da6
+ed340a9372da4a99a987cbe785342fa9d2e98789417b87bfaaccd46c16d11b5c
+6adbd5619770810a39d74be2620cd99e49a9dc91e7e6d0b6aabe9afdfa8d532f
+ff1310e0fcc91c0b103340e0f1371fe7801b9eec0f67a7c7a26d18fddadbef95
+1fce20ef0558b9f32c560e41a87ad4a94dd0e0f1dc333f6667c22c65d995b27d
+25371579458748e078d5eda6ed9f84adb3d35547fed29be03adb683ba50a9e1c
+f955cda99f95ec45b6b23f43a05d0607cafdfb9e1d830613c22f1c583a65381c
+a5c8a736a8b34dbe70c116699e3144aad48cfc32405f67614feafdaf0106b39e
+e47b8902b1511665be23981abc5c4e148f6685ecd9575c66dd36a22e41198227
+e7d7433ed856151154e478d51f5b093ab0a7a923197864f4fd6afa7282da5153
+4b0f9bd0ff070795bf954e02204bcc3b0907ccca5f3c478f7ea5402556883eda
+2211c394c0d6e921f502368ba96df89c39b9a36805bc76fa3c3fd390b0b75262
+7d8774f66d18a074bbd255b9fb2a2fe94bb30a928243b9f308bb789fa83e6ba7
+b94946da5b70a5047b8d9bd59eec2de5a21a7ab0a826cf02cb675cb5c2ea3b77
+4647962cf7deb01554cab8a7b949723eb847a544e8c839f36c10e9bab10c3e4b
+05cf6cc46cc6a567d9bac1dda8825c72645068690ec820633567bb2275bd1271
+e284193c4402d5ae384669294af99467162e790b3ce41f0bbadeee07ee77bc47
+cfbaa76f28df5f7b870f95b04a8dbd85454405dfca87b6b4dc65b3d5f12565ba
+d0d22082001d0061f10991f3e1682527efbc3ee8f072f4bf29f3eb210e403b14
+2b82b97d6ab9a5ca512e448efa90f8043495c2fc11730f67949e0f5454409459
+2989d7a1ceb43afd0bf50ef49c81c996469f52451ca818176ed2aa6ff8276030
+ec931a9ca6ba331a4b463cfe77161410c4e8efaf9395f51d13d1bcb2841df7db
+65fa51ece17b5a321b37af3215a69e72a74c4fded6767930cea4517df9a7148a
+0041f4745e4e594b0219c9afc5ee8059ba9bbf415302a9cdc48d0460516a270e
+bda3a6997ec4335edc0f20ff994c69a486316aeeb8584d0ddaff255f7ffb07c7
+7e29d58d32beb7f337e28da97b8c7c44f8452d9c629c38e03f402824b24cbcbc
+6b4980559921d69aa48f593c4791b32ff0c6db1546e37f831a82e3ec73377331
+0157f50db7af0684981345e7e23a7284029cb27bbc36d2d41edd1cf0c3e30895
+d9de0a2319a746127c37b6f08bb7f9a414fc9fcd2c17998f7e6ce30c395e2bfc
+589cc0fedfe92c659e4078dc7f83e9418b340bbeb23b52d4598324238ea02c94
+591014a4d7c12451f7bf20f3f9dd26c515877d6c33a2166a4e433a1748aa192b
+c0d33f1c4fa89397e39ab886ac737440c31faa635676a62e6d3f194a668fd0f8
+fe5b6a8ba3f4b4ba2198c837e4b9ca708754cd0804ac78c9218a770ab3ef5765
+e14a69d14c3367f842b723523ab69e5e4fde7893f99c88273df486b4080089a0
+da5136c59e1ddc48fc71c1e9c8c591e8be5d3c9426a657e65ff430eb154e2dfd
+f4333fcafc588b61f8071f65cc8d1cb15e27a425abbb0d78bc366bfc4f88122c
+66db571555b5d6e028912bfd89cf3e0e56c464392a4d505a4f7e23cbc169ceea
+ad218c7553668f549af2cbf9a297805b3453b7c61112bf8e6325b7569e38f635
+b2e13b28aa8f7188e4c94e3e047b6a6ecc050ed9f3a43b131193d84b32c0ff14
+06b9b66e3627719a781b676ddacc16915ed237d6b1342f3a9d981d9e96a1a8d5
+827bf165bb901800d6c900a53271c906d3d106d26636438e1b5a0c9c97cef25f
+0c8b4b5c037c10a9295da210cdd608ed6e0b77cf2eeac5dc2fcb7b5fd0122a3c
+3a03dcff782e3c877f210425f9ff99235a969eca67aa7aa290130d3a64d6165c
+ce3ac29c5ee3b4b86ea3ab78373c664dbf6b99949ee56b0bf0f94838701d554b
+26bc45c4df406d9015cd0b2147d338d1c71f7738e3b922291c96dab5d9230190
+fe3299551698d8b14ef02f5948bf5b5e4be42849c001ccdbfc06dee4ff6b1283
+2575d1e5863f1190bce902a650c1bf869ce7082c9388a1dac4ca0e02967e3937
+ba91cde0e931bdc07dbd87bf028f46cd00e7a7c2d26362e0fc0bf267d6dd23e1
+db2cf41c3bdcc785f2a8d12067ccf81e1f113da147cae6b729ade0f85369ad28
+239f35c7c5cac87cdeba07ab233b9321055b972a98cef27c1b41ec063015e8d1
+a2db01affbf0be01c43da54a86f199e68432106d252837759ae1618d7008d615
+aa436341dd35583df423eacc1b48d568ff5985145ccc285b2803f03b5b046e75
+14a8024fd786d3033af609620004cbc2609766039ea8b28086019e4bda30113c
+c40e854a159d86ac49e50d894595349e8b3797239da96f55b565d5185e630df0
+bdd44612dc4e83d31bd8a4372afd5420f6b379eb8d7373af3c91c999cdbf3ad4
+18db84ae6629d44eb28aa5ee9583686ee4f9435df0971a3059beaf8651e74e33
+e7b712174bf952795561be53b5926cdde509665488354d5c3e288ca7b679b9b9
+69c9c6b044ad882905663d1f5ae476951a637d4125e26575b2caf43dfe5c6181
+238d78e0f41f7f798f03fbe9390561cfad3f29e9dbbe20ee524344a7e3a730c5
+29a2bd8506fef7d571ab99a36e136c67897f7c38582782bd04dc799f8f66432e
+0d5afcd239185e95c8b6842cff16f2cc128b8fefeed695c85e4fd702a60553a2
+54e9ee2af1a0313a5d2ab5eb559064480b13412085120cb6c90b1aa08ae1fbec
+261077b9fe65e3facf4df582e89b68a4422d0460de7a8523b51928f1416a9ae0
+25f9541fb5fd5a9ab5508acf97ea891bc25ea5fb8c7c58310720cc40b8366a80
+6de9e4ded30426b1e7e9d9c145969b2b6d27cfd7f7bb7b2265e79b4bb865b064
+5209728891a88c68b20e681b4472cd3105c2238931fd048b43400a9819425a20
+71367b962c69374a22a06990ea59d0fde438d5522432c1bda7a54e52b594b662
+740fe6923cd04dc2e7b05748a8bec182dd5079dd44c0fde807b6bf4025992bc6
+b6f24c2ccff8385ccd37167bfac7934e521bb7327d8e88b018877d690f959245
+fb26551a75a06e6ad8e5b1c2363d2493fd947431050608ab63f15d1966d6bfe4
+f1a5afde5bce8b08e91cf0514b4ce56e1c62bff778159b77a5919da5f4619f7a
+580d6053126afbd8363082dc12a405201442ba72742e26c7c8d3430263c9a0ef
+34e0205065977e7952cbe0fdefb3902d77167f088103cb7d4a508c867077ceea
+5d1fcbbc1aee5f26aa7a85fad4fa3c0d9207af49b373f70d0fcba87aeafc7298
+793693865c156fc0e0e8e7b31afa7c473275cd08b7bec07beeee402ac272c666
+c61f5ba5c1c513de5909d2998ef7c439ecf9926db57e82772263979befb72dcc
+b5842bfbba0eb1586cfddfef3a63f1b4fcce3894e981d6268a62d1d39f918d4f
+296381d5ab356450fb31cae01fd7f36718c7a54d503ebcb479ca191d5dbbbc08
+723b8279f2491931d2bf54ba9a93c214549f66c3c314ee37b5a9951d62a6776e
+6c7b4989bca05acdead7deec09ba97a0dfdad7429e3f480806eb9c7a3865b5a0
+648530247ccb71aa31e1f8971d9649d6a430bd8753ffd295f30e4e7eccaeb12f
+4a5d9b7902ff57b08b3ecb4593c988758ced4a394e412fd5a132cac5dd3da61c
+a3a13e91703702388eaad89443e70f7d037c9fa28be7c8261eacbb7af473eedb
+0645baf01c5f506ba85813fd1d5164f541e0e85d228e92e60d9bf5c108674c62
+1d38e726d2e219411759e8063c2d2e64120c66bb2a8f6f00289c3bfadddfafad
+c3285cd6ae1e624a59d7621276362382d2156a49319a5b1e2b6b6d9b9346a59e
+1a4e9214c66e17c3eb5a31b394ee2f030c88febff5c659e29fd05f57c35b8c98
+6ed1b6fe33abac7334fa0653de6a935cd0cfb4f785f80dee2d651be3418cc83b
+18b5b4c176de3263ed6b4f64d4395a48c2c5cf13b8d21d63d85e2228f6373bb7
+66d288ce9d05aaf98d0848d1aaa42ca0629165c7417e47906af4acb4353cfe39
+6b82bee33efcfa2531db72379e81f0389a72e0a1d423e1df66772732ebcff12d
+3f83ddf18c46a00297345166f3c3e7b11974d70ab02ec9629d4af1f2857fe14d
+86c9b47b79ad89044cce0ac09ffa4621608f7aabc07c0c7660b96c4ee1456b99
+8f509f7d77c9c194a148c48b48738a6a0ac12e50137764914bf6696b7049c8f1
+3763949f04d6a5302b9e266eb035a11ff5eafd296f209a3fddbeb62f1c7064ce
+0c449a70a29012e041edfb71c9f93beef2a564ff2d8b248579769a81617ed8de
+4f232577e0cd2cd650c2dd3329069017b0b427651e532cb6d7602a81be2626ea
+6ab6d0c85d69bfd8772d62df7f6c86ef67c8fbd17f2d2df34dc52256c7218109
+3e4c876d86c9a66c91a8ab1e01285763ea93ea6b7a4e6131497bfc536f69b7c0
+2d28e4645cc6fe5d061495512429a1d3752bc565f769a4475e2c415e8ca4985c
+bb329d49b8afd45498ca630c3ce56e7e26cc0c4fa9446d3a402d66e39e3e3210
+644fc9a9e0e4445180c672c32734872703910dae90d102252eb56864f1cb6d1f
+b8e4a5133513698908c42b718ddfc4008264791d325e6633cac13611b10672c2
+63bacf0820f84b7134edc9e2373a61c9c8665b25ab7a583a4983d30386ad84ea
+9c7e021f64c9e54f3f9b3a3d3267ede3787dc949bfb2aaff21b6cecb88129de3
+200ad2693b8b454b18cab17134a471540c009ee8deffd2c70af0a98320edfd69
+09b0b17c3f4b857d1fe5d963edeedd8cd3077a2980fd1ab6dd9af5b151bbf7cd
+6b645ffc9c103e45552f43cb401bd5f084116d21c958e1c1450973c0c393f4ba
+75a9eb1c54389cf6c840feb5bfff673e058d8738ce2bb8c07cf0b2b5a837948f
+ed64fd7244d5b5c53303c50f1187fd6b085a9bb6e5ded081b78f4e486e0e1781
+1a552aafc50a69cdacf0838029d3da87bfaa13d89de7960e332650e5986f940c
+4493102de366d8d574776e019205b25f16b6ffed5aea7c87bb558497fd216d29
+37452b62d8a63d5ec72af5b83e91bb72bd04cb724b4083c60d2ca9d125a69db5
+d2f4212bd48bab37fcc933c471245ab99284671f9e3e7e6a9076117f5ccc8d46
+9b929bd7c4b677de5bd0272d78bc0434b4a1b4bff267c4fb588631b1bc3de1dc
+c912e3902d96f16b2a350775bed06beb2f1b7b530ce45337f744fe08822331e4
+d2913849a0890434088063b0307db4efa561810f9c2073b890c67108a95ca581
+632553f76dfce780aa175675b186d24379074dbae02189dcdfe396a8fc790699
+c3ed4b7799b30f119d60ea3754549a3ca44cc2f17744da59e11550d2b0604ab4
+5a2ffe69ade126ff2f92cc75eb1d8fa6cf2c2fa2dfb49c1d16f8074a7d711533
+9e93c09265b38789a6816b12c803178a72c7c51cf78557d3beb2d3d5f0a4c535
+11158145efd256e789df517bae8da9b9b4c494ae42712efecab7a7d5bf4668f1
+fcc23edac598cc414bee707c4c331f02821c296725bd4f14f5bc97a15b8aced9
+cf5eea5baaa216ec582692f7a210be4f6a41e96ce3a8c65afddbe800e035bf05
+95c7ac0d12b87b4d409dd6772d125249f273108abba0973a7cef4f1eca5c9a17
+fe3071e54e68507dfd8ec6b787dbc547a90c43ad42856c26324178f2e6d2ca3e
+9043188372819d3f02a9125a3bfe766e7d19027cfe5980f5e1e1a7033a5bf236
+169fdbbfd2f73ec6d56375b09fa750eb4741e101241ca191b49de9c681e42849
+e23e17b81973e903f52b9aaeb07855ad04c30df51c9d9b54f718c7a11038f8df
+63dcfe6c2728e69e33ad933a517cb08d3dcc7681f673b2e17fc38def47e2a2f7
+fe7173c3b6922eb57cd9d7988f6d3a768e56b46ab8c7eb9caddacefc45e1e245
+563c0a52f719fcc81c635f159013effd5432c697c105cddcde49cb5c56963cfc
+c2bc4506bb906910876395c8239c8e5c161471b3a85a353eca17fc9bc12b805b
+05d53ab5bee2625109ed742c14ed2b08c5d19e7b4d9700d6d3191358d481d2c0
+c74ee8bdb1b7c40c36fbb823e5502f9ed6367af146bc4e07b428f90b1e42e6d4
+70958fffb5c863e73b1904ce37b9a8e590196bf43079dc61fa5baca8f312e8e8
+a9b707dbf255bc5b3dc1df58d374702ddb45265644a7be315fca2665192e5dab
+08a6bef085ac370fb81f2267d4d1e05bd8d69bd3d01a1498020a03cbbb8bb7a0
+95f10c9d88da27301fba0afba4d3b056d38ee6a6bbc532b464630bddbd4ccba5
+0c2db04e49ab8e596923ba3495e7566268b226353e7dca7b11f28e795cc39f97
+4f426149e0c625a7ef0b4cef3e3a5c0a964beddc2ab981e564817b963022bbbe
+c1be0fae2e05b6f5f41648fc17f79a65162e31a88d0adb71557142d8545cf2f2
+ea1a0362e2fde496923a87c8578d5482c51c52be0852326de3d75f2c6c3ef302
+4ebea779dd63f39bb8e2726a7b49a901e3bddf9586de02082b1386fb777d9f09
+de377682e14afdddac3e81f485b21cb2537130eb6f69a77b87a702e24bbc2070
+6467e82621211300687f18fc809e976fd8ef3932e5213eebdb9d184d31433b35
+3cac68bde9c96da802facdd168e79491070754e5de227fe2dba96c51c16d8c8f
+0ea9b302a398b2f9491562df08aa4c97324b6ff2fac68a5d079aac79cf77f024
+9a0d1c42f441ba372744951077f8dcf83a26575ec5a87ad6dd4f95eaa1b7f939
+3c27acd5f79ce6031e808e13a55c3829d158d1e59e177fe50e87f3cb39a81f14
+f35645fcaf56eb49f5ec78edb848b396c72f5d928e3561240e2dedacb37a9941
+54940f412456119657381b52eaebd728b026e87feb8d7ea1ee49067c5d6bdbc5
+6c578728820d583cac747f243f6f4a59dcd5b91cff0232f18183e8e25c76a2c7
+d53e6823899d43fdac504221799c56ea08f26bd03501fabfdcf4cafb9e7e2ecf
+335d8c25f99d40d91b8c93bcec6b11ed9671985b8bfcdacfd77cbbdea246417f
+fce021de54fd0ae4ca7aa19a9458426161513a0f5d7d4be2a6dfbb4d6d060e5e
+fb596f76083b53ebdfbba1eeb78137466aec283ffd78bdb6dfff9748e47a2461
+4104cea06d88693ef2203d8792ea5333a697e7b7cb488c01fd76ae792af0b8f8
+8f027cd4bc3ee5d4a09b968de6b56dc55419a716dbddb733f1b86a27cdfb8b3a
+c29da7613e6d9042ce9f648a058e2321ddbc10e3374366d6bc4cd910dff41037
+cc909580f4650338c9cdf3eb01cae0d33dd1e1b41524e0f27a77337bebb6e915
+42f599c9c7a1a4551d90537f985ca14db562dc34a07f072202e86fced29d1181
+a2b1d57cbb62bf6e5e7702a00592f8b018a12c826e569b7103b78124d887f03a
+935b54255dca6a01f433308a55a71b305ef69ed070cd7cda1aed6bab529bb506
+970b92df62de28c05f21c5fab79ae4bf3a8b2865c408553cf4cc12e3dc69a0e3
+a683a637d2ba187cc5c615056b1853b349a1b88eedcd9748fcbddae70100551e
+cf0b897a0cec97a456fcb78749f74b25168181b75ad5f523f4408bbccb011d55
+b83a63a0d96052fe523dd891664a613652ae3a979af585c69fc4c34ce353ab52
+c5df99d6908e1cc86d89cb6a138f42fa4d472c48e334f3349b2c47dbd9b6b6a9
+2004b7d3c994edf5b17f1fddcac72f8ef393838bf5280cef41b8035136053816
+37e38638004ff04bbe10c46a8135e0b5db123c0f2f6453c0b648124cd0c7e379
+742950e4b7cf205bed93ff6c0439bb3ba0da7b9c2c9fec48b5e49e10f944d2f4
+99c6ffd3250f8f7ac82c93ee7c6b63056d1278871fed6bdde70b1530118d5566
+96ccd90fa33010b35ac56176d0baf342aa846bf7b1a95d98fb7c05d56b4ffce9
+22f6df7a09bd8802cb536ecc23c89445544f922de501700910ab28c892bfb154
+8c48fd3d9b0ba4b5f5ca44dfe67a8e2d42fda79f9473fc6ea646483ecefffc02
+54e3f930c4732c8aa392e4ab4e26064cb1a185be4cf0677cf1706c4dc8badf32
+285d6d02d2c4806b6e0e2c5c2884f30ebf9bfa16bd7bc9e2b779173208c15692
+7d2848de30a5b3e8622528d9daa63e06d14e2e368ff5331279680849f8d9b5fe
+b448633d444ce06ba1f3c8831018fe7bb9adb9a896aa75f9e489e9b88342e424
+dffe90976e4700e6c6eedae9bf6280ab78cc580593347841bf10eecedb86af0c
+d461336515ce50989396665ce975d1f1cb0bdc36b619f67cbdb7b090b04f4474
+63f62927fcd0e1efa73ba22063732cb8557e27969d5945d8e82f4a5ade094068
+6ac760ea8ffd127653f954f0287c74109997f1b26328fa9556c42c7b01f0a810
+194a9cf0d716d252504bfe2c2707456a4422e84ad233f4b32de1a825f72c4508
+3c7d7742b6168565d48ac1d52f9192abb0d491a9a0a9416420474d9eaf1e146b
+2ef1f703b2b33838c4163dfcf8242ca6578f37cdfd4144efc3dbce88d3754af1
+765e677d670adeb2fd2df7882a4bba95fdbafcb9e09b7177cef80b03de222cb6
+070d7d7e09fa2297ec831d561a2069f6e95e9eea70e41b126893acb834b1778b
+f4cf338a63f53e4828d75acc76e29ec822866ab6c5756baddce0e3181837e1f7
+dbab1405daa2231b88e176444594000f12c8351354f3a5722e9e4c376b983cd4
+41d6d465f3865c8111e47604c61a04cc59d185cdc89933b13b3a9a15360aaafb
+18008fb204800062290564187465969357164fd31abae5ffd1c7210275ef0198
+c74bd7f04bc02f9012a6bf7a8b9ccd76d4f449dfb3ce7caa4fdb6e04db109986
+1b53fe6a8497ae454438a0099c7f14ab799b9e8337128abf5c523f7949e9931d
+233e8466029dd3b7ce86298700771876032656034991e213cfb22ffc1dcbd88e
+b6cf20eed29b983befc5889a4589428151a249bf85a7f38e5f70cb6f87a706a7
+a057f63cf366afd6aa4a481fcf7f848b650cb9442edc33673cd98f8f895f4d82
+ddec9ab457cf21ebd339769292e1d17ca465997dce5a6829c57392e08c8be708
+eced1a9ae4786eda0095a05014d4aeb167c1d1e783f9ebaea78816bcd4afe2e5
+d356a30828e11a5641344b3d46a3e8aadcaf22db74ff57ebea7b779b7c5db027
+d6fdecbe1b0da2edf3219cec627e64cb3142d303027f74e694a983b16b33ff62
+d1b0e114ca59b30d2261ac4337dffd0273abc09b955e740e6acb4f20969da278
+83b3c162810f194a9537f13e58865f2b4611d8b9a9c4a59586e583f9bca6e868
+4c982fbb42aafeb00f6a242875a8d5246830e5d9fa8b479c36225d60c7939009
+4c3820d9d20483bd8b28c5979dc27905528ff829c14e346511befccb0cc2ddfa
+affc69fa01f2dd592b0a554c8bb1d3ddeb53d871de3048fb9a816a40a5ebdc1e
+ef6725b59f6eff26e4da46360d4bfe49bf623955485875028f78dace31a4b8f4
+771090b36b82e0e91c9f6b63defca85e751f3a1e6d47fd674b6b75d34cf5d230
+012a2a02ea49017e9ae4e22440c836923450a7cbfe44ff5e90d9273fce99a56c
+b0b4ae070410144dea9c75282ac74c8d426c20b54d48bf5e893d9aed7ccd4ede
+4b3ebbf29320e9f98e36571e545c09df06b72ed2dfdf058446fe62d7f591326f
+7a0405718b97692cac9b02d77a37662f0bb150102d5e820309d5e1d4dbd95606
+111a4c5d0e606f890732383b96d58065880c679c4fcc3f4fdeb870e0022eaa40
+d367a1cee2e43c31b0ece28481217a77201b361541d40c4c7ecbe26ee0263fa7
+0942a9c4f90b986284113943e170f7c6283447e8862701e31bb28a72deaa7669
+688bee293908637899339ad8c2c1bf9558b06446864db50526ff514ebe3122a3
+059bf27307f10ba5b44ade0edb6e2693d7dc2b80e1a84f635126960fdd3b6110
+e84922d484261c92c8055314e5a2e8fb6db0a904e291714b4b1d28e2f8873434
+3e42c06ed7dff193b1871b028e7a0ad51249b36258c0ef6a5165f5b7aa3061f0
+abd6be779d7e845d6606c9576314c04e98902dfc7cd027934bfe804b12f01e9b
+5438301e280ae84371cc2becaa06aac7a65bb6b3f7b642207d730aeffd55abb3
+3b8ffe0fe0c7b16356e092bb0360fb94f1e8a2fe7fa999ca66b6675025ca605a
+65540f6d5619887d7e1a68692b76ef901aabc5a15d529f5bfd446e04e95a1be2
+13eadb545806854ed5e346813acc82c927e9dd5b45daa1c1d57a2b451fe91ccc
+ddacede657b9e37d605cd4d6001faaa843b9ea84917602a67519b99dfcd39da8
+dc60a1df52a0a0c8cd35bf9069c1b8a534b4efaaa4b42e932bc61ff11a846190
+e9bb2111d13f08570dd9c9934d0c1db1ec459a3bacc8f10bccac2bc8270b7774
+bd3065c4d146548d1959395266f420ea71c05ef4d37ed0ec391890bad4d686d3
+d0994b98b9a2629c2b6688e453167fc651bc70dcc608b453fea208329e9b93bc
+ac1a7c9c5575b43d32708079ad2fea25db03a13440388f8a4bf9c5d9ce422812
+84c0a1febe6b7bf94b58257da32011484398db2c285623803d4e578f30bae73a
+57d039a2cdf56bc2a625cbadaf7fddc7744e8586d8cae909162d2a561faf9109
+9df981c72617f43f1e8dbc986a1944b370ddeea5cedea04c704bb45227680ee2
+a7a91d5f71c8b429d5a1e22c557932a19b669a6f7d60be8b5a1a08538d539649
+2500e8a30d8f085b9f1613e18ff8511d8f4acebc9dbd742c6f27af4b62026bfc
+e268e3239acf3cd0c54176f1839c9ce2618f5680353a0d234181172db3a14523
+d69a204cc7a5ea4a9cf1d78275804d60d41c364a8725cb1b72759a30dc5e2920
+b76e1b486795ccff14fe6615700ed97a1bd4cb16090ccd43064036fc003368b1
+e949d23be8e7ccd7f4fc6f54bf25174b56b42b505e99bad37a9868a92c29ddc3
+29f1d5a84806b9382870b3908ca87c3f840341e45731e5b7ef5b066ab120db45
+d72b0e444baaaf4e948b34d354c244263505ef3fa995e2dc1177b8ebc01a6e2c
+7aa5766cee90d3ae7273d56987bb665a43b4697a0eb98c120efab3c61684520e
+148fb5227939d6208e30ca72fe0d661b9792c8656b44986ecdf77159f0ed52f6
+95dce64595a243b635a3b4d328f73d248e1f8d8244b2285cb5f6374e32b2fa7f
+2e29828e177f81938e2aa1c70ec9226dc45840f8f7ce4a377d32fe6c65506138
+9b70c4a5ac6d62fc03bdc16b1c15a79dbc46623501d263a948bcb2747e85ec1d
+0daac606206398a2fc008f369b673fe9c12a1d4d06d80d625f2412fd8912d625
+f182307fa2731435cdf20c944c2acd5094a89530a6cf54ba8d347b3819b31ed5
+6c55ab6cffa8c8c3c0d3c6034fba9fbb373f08c76e79f50400fcf3d1f65ceec1
+1c3623706eec7acfe84b89510867c0b2fa6f25996733e4cc394872726138d745
+6cb398052f4c03705e27bd85ee755f1992d1c6d330a95b6d208adc76d4cae80a
+78c75af6ae4976e564f859429adc4de87d26a9a6277e14016491d69c6b9368a6
+dbf72c68ee9b4b32cdbb6a186728b354b347df5d5f33db9cc2f757b113efc0fb
+491acdbcbcd70d0e8e22322e6bd3336e642c6c48d6dd0dec32c39d6e786a9970
+2b83f644e3039db0bc3bf91918e241a1d20af0ced35fbbcf8892858762ffdf4d
+855dc043cf348f64b9f0ec40b0d58f1a267c65678609a29e8508f0f5367e0528
+845f666d3deed15a880691675c9977278fe5a0c75c97f10e201e97d255c40be2
+df023f3842eccc0f474782716cc0697d2305d2894b2149c94acbd4db97a8cc49
+317773662d6533d2e3ba293ff6ec3bf29b897723b200da0875803b40fad899e9
+53168bdedec975d3461618652733f9f1ae97fa05454da0c39b27308f81d6624e
+7add0e909a721b0b5b87c735a0f81402e1bdd37437951bae5735bd2d9c5a201d
+cfc832893aa343a6e4c8f879bf7aba330f71ad22aa121c49015a6e1b4de63337
+c3c9b4bfc3e8456d25309afb76665af8d3558841d95e157787426288f3a108cc
+0388a47fc77672f9f837aab1bb03395208bc7800f59d883023de8de4984d3550
+ac1e435a4a9ebfb9024febb3997847ffb5ac94efac7e480b15f49edc4e1ea47c
+a691af89e372fa1d51a68d417df4d7011d8b129191f8ce9bfe2d80fc9391e515
+39a8ef2facf34c91bcf3c5c81bb7a3050e0ec13e3cc2d03387335b307d3cdec0
+d43a6c2f348c3820cde916070cdcb485d1ed73b708bd083e4653ef4f4d1beb10
+4167e5c53243c72b5da52cc360602297b86b012dafa7bb0d762d78d7ac49d84d
+b797d4bc25a89309e3715bac2970bb31c959221ee2656bdd93b51d430644e3ee
+633eeda51e1aff403faaf247b15df007eee990b21ed684d260ad6b76028f80d6
+58844d4e8bbe91db43df55819fc456b9402805df67958afd45dbe94e54968abd
+3afd2c456b7850927353fb25a936d9d554a21262a3cae1692f978f58ba5db38a
+55548529695bc0a455afb4be3128fe733c7234154f4ba0f00ce4abc7c240c928
+3831e9a7e0beca118792aff6cadf3fa74a572f1db4789fa83e7e9881e4856881
+4e40e4235a2ed72e8fbde71ed0fd40d348f66d08e56256b0ea0b46f54720df7e
+39654b4b7b23cb4863ab341cb2045ef7a71a9ab550e1c14282fda3b60d306906
+09b9a2f535670c9f7c6062684e1062bf1b1675288e002412ae17fb3d63125c4a
+577d3bb97c12f4cd925282737ce2da3c2e11733ba9b5dceae115a0edb3acb8bd
+b1ac0f687c829eda0022d654dc3d051bb7325cfb66f96c7acd1a8baef2bf65c1
+67df291df762720d39904ae50708552d754f8f43fc2d5b91b632d2baf70c67d3
+aea5ce731c380333e66a149e46b32412163c743d128f52c124cadfb65399355b
+4bbd4c0a3fa7c02de323911051da20124b77ab931989a74d584c0f6126e431c6
+dcce725fe72f83ccd0cb35f2ac901501411270fe902bba4e6a4c1dfdf12e2e85
+7221702ff0749c495e170f01578bab3827abad809bfed83f6ffb243f40dbed47
+f896dbd37cdb7d63fd08673e13dc24f4052e1551bcc080685ace8d3184af5a18
+18b4d48811f32df210c8f36fb6a20c9e239fa888cf0ee5bd1a87f15c3c6a3e45
+9bd006a69d2c027a09e83541d4addbe98fd665aecc35c311871a4a67fd59efc0
+6b2cdae51f00659b4c4f9f79dd824485bc073cea94dbd45cde541355f7244f5b
+5bcc6c76d82fcd1cad3e2d08175a375098dd8157b3e30184658eb500e224782a
+bba1297432cc25fb54abc54c8cd85667dd42bfabfde7fb7a4e83107af3aa508f
+9b20650ab6d01ccdad374c67f31a666bc1f505a6d94c0c94e4e73eff7d57ff69
+f4f145504f60a032109ad829ea90ec25b66869ed39434ebd3154e4ce7e044f01
+ab126454339b41193fa9618ad7b49ca2a9b2b595684a35a5534cc19a989d5f09
+dbe09830284f895a4876fc5f7920061b06ccdccf168d5022cd6eafee4d796be4
+b9ba38c0aeabb4b195b81b621843db7df74790fb46f5c07426c8a4fd0d9f99b6
+c0a26aeca5f89e36fa8db06884ac9a3abb1aff9c6889baeaf13cadee3f0ce80e
+00eea152bb6485bfa7b5aa02bee1905ec4f666449cadc026ba91b9abfcc5c200
+2950d35ed46575004d56622582500274e2abd691d0013343966037685138b76c
+4218ba60855dd1a35e4505273c2cea443018db1cdbae7dbbd948c96f5db10bca
+8127cccab09705eec19399f31f3f8aa774bd4ef950abd0c91975b346e7cee612
+b6a4fab61e6cdccda47b51d499337b98b0b6ee8973317dec69e6f1564868a50e
+fdc5086c806759ea40ba0f036e86c8e76a6346609a7d87c6fb2fd5fcbd9b1744
+fed5f412e3dc55e519a941c4193f66e6e4656d04bdbfae608110803f9c72ba22
+dbeb7af2068a1425ec76e6574311e3e1200dfdfcb4a0830affac7809ffe3404a
+c5ee8ed43be8425c1a13904b1f9d220c9a9a6b9295ad0b13bbd63e1af6aedfe6
+f54da8ac585b2fd53aa94b2cb65377d10ee13460f6b308bb6b3476dda5fdc5ee
+7da695ef118d79051184bbac35ee74d6f046f17166e0f12604157979399734f1
+6985182ff1becd19131570b97a817c7467520eb148c3e2887020f8c09cede0a5
+4a254e0311a504a411407ea89c2e916f60f32c4bf8456ec370abf03d1b2d95c9
+91464ec9633684411664cb33186bf6f897706f7c500a9d0aaadab811985d1b74
+1aebb6593fba0e07e004e86d87cea653b87cab70900d1915ce3d19be1969312e
+dba894c541f1227586721dc33555fb28e81307ecf93f164399a58988fbeceff7
+cb8d1a751b4fee0ad6d2638b97016b2dbb034ebd0528bf06c08de822804eeccd
+4c943abab45490fe47de7584c569f9789e8c1f213c1924d196c63b3d57df4385
+fdb9bb4d584f6c4b736d32f0d533c3699e90d1e54c3f4ed914a788a0c364f7d5
+571ee6f61d85e5cdf8315fdec93df38bc0c7e5ba9daf885f99dfc9262f77bcd3
+137289b43d2c433111e8937b5cbf3941aed5fdf09ecd0971144e020fc64656c8
+8a01f9b749770da845d7f690d1c12141c7dc8724fefbae909d2e5383083402bf
+005598fa8b67301934e98feed22625cc852af51e7c647385a14b49ead19c2bba
+f578d35943a3b8cc943a863187aa79836cb71dd8dbde642e1813ff3c21c090f3
+a7bc39aaa1f5242e8bf68692a567578a4795ecf926cea68cf77cd6b6520367ba
+3c98cf22d618a2764323297d1f2e210637fb6cc84674f01c04cbab1295558a14
+8f7f94f64900596f834ee0f333df86c59200992c77dc32eb5091b7f5e1061f75
+ee9ac11d4f7c18d975fb2af04245638f02fc7475556cc1bac14f33d0f36cd94c
+a20cd24ab4b587b03d968175388ada63ffc99e11b340afc6c97381612c825a4e
+f6201b13c813bf36f5897e6fe3d95bae2bce401caf0f9d7f1d0729d50d6496cc
+99dba29e2300a5307420db31875196a26dce6b59453a810b704fa8ed0e654b02
+c36d7d3d870de8ce82532009c4e9f93921a7b088ee995060ac598e84f5e12488
+64269a2358ff4463a50134f113431776066909c2b52ce0114d3391142f298974
+219ecf3506ba1830359d186760ddc7e42e376a41b17ed88e6c429768c73f5209
+5f491784661d89815ed8b71abeee1922dfaac7dcfb2e427c480a235f533f523c
+7b4ccdf7d3e3e7c73bbe89ca8b04f89bf496310792b445122235f55ac0660cad
+4476ecab30d3fc774ecb381abff4bf4e50bd0954e240aa7ddf07924d53beec0f
+f8dc680a30f8cbe921f5bcdb02ba1cab4c15143898c5c6e9db4b88818299c4ce
+29f78e88052aa3d4f68dfd93bfdd1cd6328ab1d2c2888faee513e922320ff0c0
+84e617bd1eee5442dae79108b34835214a330742ae9f99ece561d29b09f611ee
+b154b1498929a4a6b3f09d63461489ad6ef315af77054026de9f8120fde0ba80
+12710c75266b9c310d06a842451c5a2b1aac9433e08ceb23a872593f49c0397a
+1ae1a6443e4bb99c1e24af85dff91c97d4f400b3572bdf28174c5c358427ed6c
+f1645bdc283910c47c8c5b112802e549f1d60e96c7fb2cd6f0648f2189b7fc0f
+a2652152cdcfcb1b20367a2033ad1188576017e0f1272e701a5fc7bdef08bc41
+04d728074573e40c87f1a2520b3d02eb8cb23cbae6449ee78bb857e3ee7fa228
+f91e8007b848e309b38873ef3fe1212c1635404db7a0bb06e21ec03e9bb35864
+3f9e9972015362c58bb56bafb7fad31c60d0dda2a30c5b5fa028896faaf05a73
+ab8610bc521df0226a922da532fed3e6619e58d9f76f3693269506f9cac08a56
+b7ebe8f9c8759d617bf44b03c2510c6235ae30109df7db6a7a391342aabe9d15
+336669f98d88dfb213f19140a52bd39e2e66be39befe92b98d7271917610bcc2
+40aa5eb2406570da33cd0b66fb032241bb148a0f200e3937abbacc878c934bb6
+5a41d01805285754e9a3fd0dfae22c434d1d86783ee2693d3ffddd895f8fa00f
+83417bddd173e11f9e1e4119af293f58b5deca41b5d6f4ad983f668ec561ebd5
+f446b84fdca10865202528f60bc54003413afe4fe3e89fa6609f2f21de8d5ae7
+d701fd349dfae556d6edbb906dcbd5b67eb59b2b22aa1c26726a069f08ae407b
+6aa179e313a4856f5878007837d6771da41afdc5f9c341f5505661dcf8d7e14a
+16e9ad3606857f67d8e9c62e41e5a505895fd0386da34679735dec0e3f713850
+09c45c1d2b9fc124ff7844abcb056798cbdd336ac5462bfa9c012966fc34d962
+8f962285857c14fcd4ff243aa312f61779373915880bb730e4f075dc14634c01
+317641c7e1c3994b40bb1beb74dd2bed0d9d43db000833a2acc8a6f297db5e79
+62430cc727c03462e63c2dbab60f6221bf5dd3ffb0dde89ef98bc1a5c6c5c59e
+6da88a4dfa99f5db8bae29f26e34b421e7e74c2c05a8457f605fdb727dc1135a
+b363e3b39ca32b2385ba24c78a1e0c83d42c513e3383b28d9554d2f5dd6f4ba1
+ffaedffb8923c183e35f75c57cf48893e4cca18087ccf8c84795f8a31839ef6f
+6ca25cc154f6ca3970f60126b252465a76b1eae8b240fd387ab315e1e710a25b
+339dc2c0706da7b1c47ad15d5b6837f7dbf5a95e98d0eaec6c121598076c6ba6
+6e471c87f9947929e01b386be55efa5e6067cede9f54b0b278acc43e56987848
+acd559621b05c67228622540eabe7183dbc1305fca26654d9bbb734355abc4af
+90ad7a7406d123a73695f77fb049b0cdd25170d8cf8f9a892d3636fb15268815
+3f58e333849be3e045f8e18a4eef42f191fea6f2fb54206c981ffcf827757a22
+e75a7fcf21459e7c42fd5194da16d0a33b32318ff5122eef24c81d4c3b9391dc
+8d209eff13fcb43fabf1fc67a712a53756ea65e81aed88c0bae56ce5db00f2f3
+bbd89ab87b9d4c12f35ff1c95d8f3dbb7aab138e3c387c135a32f00fed1c25b0
+f96895792b4f0276c3e2d702816d4a686db2662e06451a3e1c3a5f6ae239b240
+505acd4dce12bfffe205016956c6d6b986d2163ab20ef7b02f27f9e0f3518e5e
+51d7b8a81b6c6c0ce8a32956c435d20cc226d0f16c91662a32d05ed7f66b995f
+3753d05b91b030cde048d7c82885174a896f22fcbe7625412362c5d6a664d9ba
+41504df972b79c442b5232b8eb90de4c29cfba9ebbdfe5b37f91a630559f797c
+22149af8852c5ec4ab945c8a042e5de43080684f4908bad969f290a1ca1fa0e9
+16b6fb802c7b15d2a54c8ae8e4edb91d926dc622dd5e42362b4bd92662222160
+7eb032181d92a5a0666424921456f2198580910938ebec7902b759ec3b66a10c
+946e53ee98dd1d28970d44818c30c76fe735f2bede5526e47c64ef7d0d74c756
+4dbc64298d270b2646586835dd7e6255ea99c66ab9817f4093fd2e219fd9e67b
+bacbac0a9d3e678111bc985151d46e06cb7b326e767512dce309a0b40aebdc85
+4ee7a3060cf8418dcdec028ce80577fcdce3cdab46caf8a84a66e8860a034a39
+0b444552d669c1c1be764711367cc71152101faf804c36e90d4e1bcad8939292
+9f998314ffefaac52ff96439f19c20d2eb9148bc6cd80c8b5624cba39d84accd
+552523a42a4301c7de9aa5637f717c46d0e57350bdbd4f0ecf575f19fe94d69c
+213777fb5add543d485b47f3a76851e8c57ab9574a00e9a99641279642105707
+d75d97fd49e4fc53b79eeb0a8689e88097ccb46cf8497977406081c7ef28a2e7
+169589f595997348991ffbbbdd8dee44accb0c98968a5814783927350d73dbfd
+9ac11a9f571af46363e6709987c46ea207622fb319fd5519e7fca3dfb9f784c1
+ecad5472236cc2790015d4cf9f410004ec03aa9c247483f9134e742aff8e3d7f
+62778dc6e9cc87469d083e9849490b66fba43769044fdad7f59ebafd5b07a7fe
+75f064cbc81ef7023aeb4162a787f1c4d4005998d969de4c7ecb3a67861cc5e1
+3f56f1ea7a4eb7521cf0e282f513803658cff5fa93ef5b15098fc2941ff4e0d6
+e2dd9cc056beef2c4e15dc0790291d385e091d2cc377ff252ebb7214c2cdc948
+a9fcbac418a93cedc58375e3dc347f872df735d0127274de42f4e3709cd11cbb
+6a0320647cb97ae4531fdc8ce56eca5cfe4dbb83b3c71bef715ed3e0e001f497
+042d7d9859a0fcffa87d37ff66bbd4c420913cf0600fa055c3cdd6379c8daf78
+c8a03267eb381b64796cdc066833eaa949f74b0adbe615f62c0517ce582a1db0
+47288c316a2b501d45a362b46cc674c913b8980ded11d1462b8c03eb3d93bfd4
+7d33661c4fc89e49acdc09ddf08b32e14f876ba1f0ce782f79df52f10671bae1
+36a9b6d5120a011594f22864bc61600575d5d958678b94d71991d55e26263141
+a80c091a2e356b9dfc5e718d0833309431dd80f5dc39ae470e1120e30a862464
+c96c1957c2caa9ddb5fc3d1873c08a7726decb5d73711461508d4f0ee3b3d9de
+4bd424d60787721a2ab50abf2f02ad9fb20e483025afe53cca0a54331ade5d58
+59d3621820ca0e2e3e7591bf4bc2004d0b5f7ec9a1141a36b0f1f9e32e46ea6c
+6730de24d911748f83710f8a4f02a7f5cd663967dafaa7bcac3e29d900677eb2
+351cfaf46a773d363cb7d48943e1e245068b8f4b9434ee8f820b79832a8dce28
+e3e36dba17ecd3dc93f38f6bb4505ba7580b186c818a251e38cd7dc03fa7ea1a
+b8d290514909f1ab56e1b2c6584e86ef32741b58c79eaebdd62f7864c19554a1
+9ffa1e73cf2c75d00c903baba7e117e56b5ef27f53c94ae007de0fa5726174d6
+91f0ca7218bee50892c6cebed4cce891efa7714804ae54761d8f0379b063b8f8
+037a0b488a487fa3bd0d4b16b34fd4b3e52646ac3509c5d4c7c191189fcef1d1
+131b4dd9799df6e8a556049e28c5abd4216b6ce52a1ecd99432d8316093235be
+3d91885dbf346e18fa2bafae67b650467d23196fceaef4148a2d9ba1f44b3b43
+563450f006d5767d86d942710a820eef0bf57028b1f1291c69118901b5cc9990
+7c205c919c81e80eceb1bebde1a67cb21d3d7aa431e0d1edbc1f4dee88e91fda
+97dc4c2d49215dd18458b42106b452362956d407c064e29048513a2cd4a53406
+2eb007216961ed4566d8cc190f990662f6c60703f35f0d8d643578e8205d1fcb
+0119c20d43bfd046842d88588512765365e7a007e770ce8e8f5b20faf8b602e8
+291d93a7b56f8b2e5a952bd803c196ae98c27272bec79f806903eb3d36957829
+40138ccdbecfcc06b8a46907159095ccf0e792eafc60435d33bc41c8a28617bd
+5a5228172ca784690311898bfcb7a7b22cda56a53467e6421c413689cd41d59a
+3fd7fefe1a8420695909716b8ed59ac6c3c83f5c0207463a369c369bcdbe4a9c
+35a49301c952664baef8ba31541df5c1400b708eb3653ab8f8a7dfcba52db26a
+43cbafaac4960e4048ea7d164ba6abe831276534750d13251d9421bfbddac7e3
+a6c61948333060390fdb5dd7ab5a42cbe7b003675aadf5b52d8f709e45f66593
+b51519a4b37f8d0408554dd87783c103c31186e170788e8e4d5c2d1368d35c90
+bfc155335aa4585f371ba0d2d36c12f70ccb54dd316df4a5b928cd36921bdcd2
+80996ff337e7ae9c4c0da2acb795614acca8bf9c5f5a270198a99b0ba923c041
+e65d34d346b2acfabc9a68b059fb4edb2aa741a93d768e5ff077c0cabecb3218
+66513057b12b25613f5b1b3478334fc0fb18085e27a7361092f84f475bf19fc8
+8cb9d9ba18aadc63ac383cb8266e01374f9ea36aadc06168e4772d6ef439fb8f
+ff2efddbaedd8149168f8525eb7d8260a1e9165511ab194a91cf9358f1df2649
+9505f3f2dfe1fbdc2e28c0e5cb48bbce6d03eac7a02aad6deec7fe18703e6de7
+7a677e9c2d6d56ee24769908189e8ace09c55979830c1deb6d7d00f931888c24
+50addfc415c25df4787597d0e6499d3adb097738bd599479cc4e3488524983db
+e2bf7ca9da2df888c2a24a92b597fb8cb9b285a8201aa1bd6e3073c6b4828984
+e3eaaa4123a0c9053813fc43cd724bca03cad9e401ecd7febc2c9d28363bc8f0
+58afe54e479d1b518061eab166eda2b3a0bfcb5dc88eba7ad44ab66a74099007
+fbea682e45dfe3e6f36ed2f18527ac2a3443897f6e1ce8dbee7e03a1c2d78d2b
+e6a6e7c6f43b828af56bd8a86edf9bffff971e1a9d56eb626aa2f112324a53ad
+874e1b3166ee3aeceb372893205d3f147209c9de0ba3aada432773e150617a6b
+7e4ea8e636f99be760b74902fee6ecffcfb1e039bfa7c15e9416cd2b5f0ee6ec
+50b42351b95b18bc1451f468092d4f08477516a287d8020c67c29d0cddfc4883
+8c99b8166c20202d3f5b8555ad9ad5dc2cb946b6b97fb0072ec9165ec95acbeb
+8603d7db6760b9011a68000687abef5966c357ea1e0f94767e2f601dbd9f9fc0
+1699bb0743b4c369b7d2b009caf12354d81f73f1b1fba08623b38e106cb11ffd
+6e7a2b88f1f5c5c9380ea7159ff41591eb7e67fa45e4c4315b4708a5842a75b1
+b9c1cb4ac492c26178cb5da50f0e9571f9dddc6e223b34006ebef59549cc3454
+8f815bed1b123b012bd2a6ef67d97fd477b31c7f626fe9826107aa9adef80c1a
+36187e2453562217478157e3b0144158a69c658517d4cb79600c700a2509ef75
+a45ad060d0294ab4bd9a5d2cd590340b79d4d8408e856958d0f403f696b54319
+5888a2dc7cf4cec3a102814bad5c169c3c911cf7af7858ecc33716870d2eccba
+716b87b796159490f25c027d3f04717f355dafd0da4737b7f72dab5d1ce95d11
+b4a8832ae3563f41be06ada6f45b38ec1bbf9fe0525fd46f0112b5cb0e947a70
+1daee6664fd426271bb2b63e4aba8fc1037f8bbdbf97d3f1ec8c98db89b3aafc
+6d597ead9ef2347cd5b3874138bebeaebb2690b8539dbd000922a141a7a6a2a7
+4befd03bc165cf3c7c3b3f49552193a9b453a37d4f4d0d9b8db8896b27951ea7
+103ef7fcd483097a7997aaac483762fdbed0fa53fcbfc245d32740b1759947c7
+4e3b19cf333f30b131a65784863f93f8dfe7b7309bd5d5887e943804c3b3b8c3
+c4a894bc3145ab7bda6f33a0c72d5f70bd538eb8bdfa06ffdd053e6152b10a2c
+a929e9572783b01d307b50e86a189f747e690db2d0b3aa5590fef074a2515f9d
+a7635ea85771b45edd4a5cae324d81877e0b6e5c2157c03188725bd5924364e0
+a12350855e3b39c414127a33361daa5baddd1d505f386ed72e80cdac8b0d9cd6
+a92c687f913d617a9295f75dc3c4eb08ae11047ab7041de8edafe7de24796ccb
+9d44640ada774fcdeb8244c6672a4ae9b282997c5606423e149c4553b9e3e23a
+2e03501a5a8be7aebc3c16b079c38d2a0690adb258c414a44c2e080fef819810
+7fe7b2a75d89b4b097e42aa237f789ea7727b2b4be0378d5dec71e7062b088a7
+6e92ab2ea36cca35e39d836470b3fb7a7a1c07f37a9f37558c058582ae3f8eb4
+8a11f9df0a89796785d238393580ed4d425db670687973e30ea79c5f778b42ba
+d782152cfc55e0d4e9b5f8f57e7627eefbd9078a576a57b95e676b0cbcbeacc8
+c685716e7a925bb69072c9c9f94724e389d723efea841dac245b613a3aa0c6ca
+dee8cdc90c7881ce3d7657b16594740cc202d4e809f38f2ca4b219b928c335b5
+1705b9572459489e1c176fa365d867a723b699be25ce1b51dadbd150a5cfc7af
+8f6fa901b7f32bd2758da52601332edd0e1c2d334b5ba3b85cce0f17d8ed535a
+8e4a9e6db4f279f081f2bd2bcb319ddf5e4a649ea13f6702a431e9c6509ae16f
+361e702bd804fee570bd4fa7205b3b2531382ff34e8ef8c254253584cffc2e95
+5ca1bec100a9a0a42d3f1cd1dad265f9364d1ca695df664856d6240a46cc6473
+f64bf2608e21a184a475aa145bd925b00ed5cf2d4e845b3764797f3baec5fae7
+0c5baa6721a0c0571f5864c8b2b2b782a4ee2da6a91be91f0a90c6d906103b07
+ce270fe326711a37f52d3971c7b23effa647a2131980d6825b3dc2e2cda81d69
+6f9f84793ffa99c6b732939b09d811da361b87ff76cd0f93c965e5292b703387
+0c44a584b2d2d5725f3c3caa3713beb980741da3dd6bbb035f2b998d8cb26ff8
+1e3fd3be87df7501730b30ed40a1328b8608e0f0c50733edcc10affc4960b25b
+a762068bc7f64f878e2641d6077ea532761de0dc35195df0f32e410c6bd0227f
+737e9167fca17314baf216b1a8fba2dcea54a863c384722376e8818d723f2ee9
+bf382652ce2f635a30498688a711dbd62e9e6e40899a848bf8c35f9d5d564651
+0113ab8630014d640eb1937d94654050b59dd22bf74b0c8a116ec54a108e6a6c
+c82e9874b0be04191e9fa3e7f2072eb17f723fac1bc71006597b99794ad61a99
+3c36d1e5250c996d380090366f1ae783704041fe9be381951c34150be82dafc8
+05d10f73b6d0cf5103fc051ddcfc5aa91f5d7e8ce73c39ef9b7b0699cfb40943
+bf950b5e6750c0db54b476cee4719ae515e40a8ebadd57f80a6df09edea191b0
+0dff801b2bab79c5657588abb23584cedb768da618bd0b5d295a128de877606d
+49a12fa73bc9dea323100f2960c76e6e8b30401572527611119c3ee06d3b34cc
+a355b4b202682277464c8b6b197becff0864feb01bc53792ad1df825a73e5f92
+b84af103934a985d9c65a24fbdfa960325c7a73d2989ecac24cb3f8ef1c57ef4
+3da81d0b64a5306837f4361d8bdd4cffd94d6dbf7a5f5342464205f1b5eb6d72
+4d9409ecc3166f3518b501750e89a9b7110fd7efd43af3c32e7b93be8416b7a5
+40daee25d1497dafbe6d30995c0643431041d5b1272bbd2ce5feea317b42ba7e
+5910f75a91525c80dbdd061d053815c0b251f1beebedfb1567632c46d647a745
+a2de0aa08ee35fcbf4d3710c8f5aa6a9e0db9bb0962cbb7e4177ef3fa776dcef
+b988833b0cfc39c8c6b7c89a713dd018a5d351264df859ae5903a5757d5f039b
+3d65614f2597650baaa3188d1ac6a8bb1dde7ddbad1ef9c4c9803a3148f3f4ae
+ef706a7094175ddfdaa29b5f8a012fb8cb301450b4e78b58259de6503679955f
+5509f5025e4c799c55f0cf271717a296b096f03105e61dcebf5d24698a96bb36
+4af38ba20d117d59e86030c17a30aeb4b1794a6d72e2b62da0df92047d6985df
+1bc950bdfb38ae13e612e1836dcfefe4003a0f3cbc1a7c3398c0ec71a8ac8db3
+2bf58969635e46788a3dfd65ee12523b8fc670a727016094b8381403f7762d6e
+4329319927dc1534cdb25f620d3fde4383943d9942f75523ccad080f5b1ca861
+59b6956ce56b5fb8a07b33451badd7fb9ababb37a10f04b58559bce193dfaad6
+a9f7763b11167e0b899b5b6e4591608e6b540a81ce22ae3c151a215f316e89d2
+d4f0fd87d0e803ef412ded542c369615852466961517b5c77db3c39abbde32e1
+f503476a8326fbb08a4bc9f04c202cf5a1896bd05ea8bea583b10e5b5ad45963
+fc490bb9a9636381dfa47b42132d80ce66f4bb1bf889df9600b08038c1fc334e
+69a76d7ff65144b9e48d939e5497dc67d5374c4453bfb1a9fa6c6685f43b7bf9
+ac97298a3320dc74bbcd9a432b5d8f8f1cdca9dca04380a2d7b024a9b0e2b4ee
+3e1325b3c0c4eb2b8a20c97d5dbb73ab15166de381f7f83283f69479eee7cd09
+1f8e4d6dd13c2e78e12fc59042701e7a3bee3fbec32693fa48eac541b85465b9
+c62d21e71e4636541395d0ec9846f16d599b28e53bc109c34f17c2a85faffaea
+fd20dd89d53cf5638f9978618b610902e38a9e5a5d6c5b00264d30b4cbbaa2d5
+11646b2caea65e716f31b1ef4f8ce618d9e61ded2be5d247d4e5fd9c51819f2f
+fbf3c6702210ee5509c942e781db52adb4a65f2db3688f4194470f33aa11384b
+b47ea644e48bc508f8c4f561fde0b5879fc642a7a9e89f94b273892ddbc44e59
+dc35eed991b4f4ebf0c9cbc525c572cce29f3c7eb313d067885368c2ee54760a
+151982fdef76b90f50e763271b1fb242038148631dc2ba1a3204ef1206d0afa7
+b78378ab031f9069b8639fc740d165ebf123f69a5f0dbec5d7ee2016e262fa4b
+611c383e2bdac77812774de0591248c23038b9ccd681fcb91da754279fe274de
+f1f3810617559f2eb5eb47fedfde4b5e6dcd68951e685ab506efeabb70343c61
+9507c4b78ce07d198413323bd6a4a33517eef599d6f71bbef63ff166d35e9d2d
+bdef74ebb3cc0a316d11167ce2f226f9f1ffdebd612a2452934cdbc9ad1fe8fe
+d8406fc8dff39820d6f74ffe9b4b70dac1fbb22f5ecefbd7591dd4365ccfd300
+ad9544c492a899173611cbaef46ffaf6f94367ba0fe02e198290be926b80d9b6
+26d15a0ac90d5c0b2a28d55d1323e0e7fb203ab131d783f6e3f878d1ad7fad7f
+ace0a9a91566a636e6fc041986fc25e6d59fd6d535fa42c1952e7c0ab503a57d
+fbca3adcacf5ac748583f112f3ee9de553112ad7addd4c15db76f3a910058aec
+9dfd32c233d5b9498c33e7bd33611ee3dcce65712deecf4670b51ae23c42e251
+2b62a38d37201ad34ea9abe5f0b99b223daf1f96c3c1d4b2ef67fb0ce63b4e1c
+6ede64a5d30dd3e10a6d4b92ce81c7dc1eeaf96f1f1da540f94d6c4fdfcb72d4
+08647a4877b54bcfa2626d4e110de46938ddd15b14a4ad6f8044b7aa6371ce2f
+2ea1ca4a13ed372ce415ed370f5c6b2ef218102c1a338c8c4d6004f4962065a0
+28e68439ab20120b5846ee1b66b4396c8f3c73b9a65754d7cdc6a5aa7e5b4b7a
+179ac0ac55346e084a7beb4e344b817e1131c2ae566ad6115aeb56c3169dee98
+c52ee0ad6f4ddf4b05fb7a6b4d672d1328b539dade8945e8e39873ac6331727d
+144ab149bede92d7cda9ffedc8821a61726acd8326ae6ebe5fc4fdc885bc16b1
+d1c22c757b8b594b29affd48981db54370fda73fcfaa30de3ed760b144404f38
+a4ac17817e52b0856abe4459aa3721bdff5d2751cc876c1bb1fb64c380db6181
+e2f3729f4aeb99c49b3d128d2661b2050db77992e189dc355bcb9d15a819d60e
+831038ffd66708f50b2cd66b62bb8092a13d012fc70c815923e08297c7ccfaac
+8edeb41a52f041777881d67b19867c4b766c5ba0d18551cd1471d53489d80728
+6a6bfafa46271735b699e48807bda0c057cb88aab5279f5e6f7adfe5f34bdf3c
+81a1c5c83df44d07cbf5464a1e0a8f0cafabfda5992b64bdb9c13e743f44c2f4
+af0c9a69503b14d0bb12d467f62ef24f8ec8bca1a1d2e4fbddc856104a67946d
+4a87c08f38aecaa481d401a98c488e622cf8cc0b32051af70dddb4e73888fdce
+173d8f5fa75062b974794e9fbd6c3499a3333dca75c681c38345cbf075f6b8f4
+9788db4c4dc96b93f7a166d33bbcf7bd27778ed38290a439c1974ab944d04fb6
+151fddae7c736f1b0a21dded2dad0aedddfeead170e750f81b750adda463b2da
+2693ba21197c96251ca59938e82e5be892c6c659605c1558a6fef114e30f0fdb
+712bf1dc93f2f3d876cf694c9fb31622fed5c30cfecae5a637013c3036cde5cb
+296a8710ea0141c47635b6758756cafab2a04b9205564c82bfe89649b1db5d5f
+255f925c754a4c3e81d0d040f6a5cd9b28d071687377437a47bd692ae6867c94
+0bb2cbd3e93ec8bae25406dccc2ed43d1f3906e39fb01e1057a837f70fe104af
+10e6af578b8f557b4522d7ba0cf1c553438b7621921d297fabbba97103e7f6bc
+35e48f745af5a1383f71cd46ee88a33f3989795f802f0cadd26839df33c84903
+2d7adf508880b4c1252bf9d23f025344bebebaf35333e02db37fd3f64ca9f17b
+789d55c7ce6df7512660d4033c85c44b714446d9eef2839e3d953f81bbb8ccbf
+7f4496e197786f43cd1cdc39602c40b402b7698e2080fb9b217433d390bef7a1
+b637ee1902d810b11bd1ca27dd4fbe2c58640a91b0229fa8f4c45d5660f472f1
+0704e9b9970cb77cb14036c4d8603098b893dd139735cb18945be26755506995
+dcc27e9f94d1b63659b8399e9edc933de2e3df9d113c1410898e2e7a2e40736a
+7fb7e9979fb0b5ffdcdb2bf0c4d699eec0b3d55b26a3faa6c9e9d06adb9f4cc1
+f14b0708986dd9f86601cc4cbd392b366f8b650b855919c8fa8becc44e5b1de3
+de2453ff62e0eec0f0cf86d2e165f1145d5e8c2efbc09d96f537505eb861be6d
+21e9c054c39627c804f05966ec1dcc8fb8558696ee825c11ba95ce2a7eb40507
+ea5fa7dab4dc07bb973b935df8ecbe10dce441b82e982ff92264975d92c6a4c7
+705e90585a308cdbebac9b467522015d492b0a705c10f6c195196ae3c532913e
+cf9bdf3389a957a1d6f552bfee7b1f9648915ac3542fbb1a528cec05370b2bdd
+7542685a8e4ed35bf2b8772ebc5da1fb2e09782ea61a2b8772939f1353114027
+7ac633bb0ab6f2d237399c78ca8de0e2e271ba8ddea24b3ecdb0f551107b3220
+e2c842f8082a75dfff85da55aa2d40518d7401179e6bc7e033c092e5f71d8a48
+f571f7c7ca5b6d0f5e4a109f39aa559cd30ef032766f692e47bf0ea5723c7758
+a1392999a28f042005b7e667e62a09cd60f807bdadf794076f23211196024a47
+580dd9739fd10e53d04ee4efddf89ffd6e07f107ccd9634874e156849cccf624
+fdb9c85145ca2057fde5ce448e4510ef1b3fef2a57e0125b37df08cf935ee8fa
+0bab7ce745c8ccfdad35ca730a284c1db31ef26ed4b5c397ddbb2a741049a120
+ac4d8fa9a2b91d3eea75d61b28b19fa8789dc945588f17c14a81babd6e0e5487
+e2ba1aab46994d69f7e5a928ceec73db5317b3d58033895595a1a2188e457c1c
+8845cd7312029093574cfe59d8c25dfb577c949a5e4e56624bf9942ae6f8970a
+1baed98f135ca7565393e6c4f80f1a81930fc3f90342efcc0819dd02cf88343d
+4955670df65b59ab5f554bafbf5a9404241a3274a7d2c90a1e49accfae2ff5d9
+624e708a99a4c8104b76f8efba7a475305bf47661ffb2fbe93858cc5039b3279
+626a7f7b9a1e210662ef101252fa4f38df01407f143c007dfce4fd95ca4ff799
+3feb03b7ca5a6c1b6c770d684037ab195ad689100484e7d0448345197d16231c
+3c129a3372574b1d261b458247a6604a8c3842ec7c6fea54ae1eb01b6e7e922f
+28d56566ca27879bd0ec14c7df9562bf8f934321335c26c8ad8477db8cf0e267
+cf8be322758ca3337f010d2cf9c2c9bf88b51ed703e036b0bdbbfc3f92d7e0b4
+601573a0218552c5215532e9dccad95bdd11a0a9adae050c87364075b8072f81
+9f49464e1bfd5eaf51ea922287ee507223f017c9e898df5e29f57af38dd390f9
+3f425bdfca14492295773b5aab849002c613a2b8baf474c7fb1dbbf6b1599efe
+3ec5a49f72a3b69f1f9073a5cc06e2b29fffa1b689bd8fddba766254f68b1d85
+c822ec842b897cbbe246ce8ce8bd44e718b10e0535423de475643472152c4c60
+7486aaf92a52574bf6465dd6231305cc359045d3641076dbe7d55ad508d7383e
+5fae63a768ac188de72f7f294211e87a36f2f18015a3def4cc333a25926989ad
+4cbfe49fb9cf9fd2d9bd167117882f707842dc72b1932492bcb7062d86ee5143
+7b696bb597f657d482ca902e779b52c727f02010a21c3d17f1750d4669743288
+daf186cf289c59bb4e0ae268fc305ed2cd69eac3047c1ab6a6751dc634f37184
+1623b74efc893094eaebf841ac1f5a160427f3d810623098c1f36e0f553e51a1
+1b0248e32e1e9b3b092fe2a6b785bffe8bec4f8bcfc164b5d7623c123c8c2087
+f256e2f9d71c363cfda9d097d8ca2a02e48fbcc9bfd5de8aca3d8461d78fc95c
+f53ac18ebd48e959e44b1039e84c7426576cad6fd4f07a9a328e86061e8dabec
+d9d87328ac532096dcdfa647de1c049fa27ee5bc771722195aaa84338e6d6350
+7bb45b560220fb24f93dece0ff3b043d1912b28d4d913888e424e6a1e139fe7a
+7de79df5de84e31075a132179adbee07f794b129de7bf93e2b45bf0100949b35
+9cc2edf8b9701b4067da2afb6ae00eb03b79f2c0ef420b42d9fd22af9fa5dc68
+baf29dd90bc138262563bbecb07781b9a9fc1a98a53f9036b10c49123cdad4ef
+342c5c
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+
+
+%%EndResource
+%%BeginResource: font CMR10
+%!PS-AdobeFont-1.1: CMR10 1.00B
+%%CreationDate: 1992 Feb 19 19:54:52
+
+% Copyright (C) 1997 American Mathematical Society.  All Rights Reserved.
+
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.00B) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMR10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMR10 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 161 /Gamma put
+dup 162 /Delta put
+dup 163 /Theta put
+dup 164 /Lambda put
+dup 165 /Xi put
+dup 166 /Pi put
+dup 167 /Sigma put
+dup 168 /Upsilon put
+dup 169 /Phi put
+dup 170 /Psi put
+dup 173 /Omega put
+dup 174 /ff put
+dup 175 /fi put
+dup 176 /fl put
+dup 177 /ffi put
+dup 178 /ffl put
+dup 179 /dotlessi put
+dup 180 /dotlessj put
+dup 181 /grave put
+dup 182 /acute put
+dup 183 /caron put
+dup 184 /breve put
+dup 185 /macron put
+dup 186 /ring put
+dup 187 /cedilla put
+dup 188 /germandbls put
+dup 189 /ae put
+dup 190 /oe put
+dup 191 /oslash put
+dup 192 /AE put
+dup 193 /OE put
+dup 194 /Oslash put
+dup 195 /suppress put
+dup 196 /dieresis put
+dup 0 /Gamma put
+dup 1 /Delta put
+dup 2 /Theta put
+dup 3 /Lambda put
+dup 4 /Xi put
+dup 5 /Pi put
+dup 6 /Sigma put
+dup 7 /Upsilon put
+dup 8 /Phi put
+dup 9 /Psi put
+dup 10 /Omega put
+dup 11 /ff put
+dup 12 /fi put
+dup 13 /fl put
+dup 14 /ffi put
+dup 15 /ffl put
+dup 16 /dotlessi put
+dup 17 /dotlessj put
+dup 18 /grave put
+dup 19 /acute put
+dup 20 /caron put
+dup 21 /breve put
+dup 22 /macron put
+dup 23 /ring put
+dup 24 /cedilla put
+dup 25 /germandbls put
+dup 26 /ae put
+dup 27 /oe put
+dup 28 /oslash put
+dup 29 /AE put
+dup 30 /OE put
+dup 31 /Oslash put
+dup 32 /suppress put
+dup 33 /exclam put
+dup 34 /quotedblright put
+dup 35 /numbersign put
+dup 36 /dollar put
+dup 37 /percent put
+dup 38 /ampersand put
+dup 39 /quoteright put
+dup 40 /parenleft put
+dup 41 /parenright put
+dup 42 /asterisk put
+dup 43 /plus put
+dup 44 /comma put
+dup 45 /hyphen put
+dup 46 /period put
+dup 47 /slash put
+dup 48 /zero put
+dup 49 /one put
+dup 50 /two put
+dup 51 /three put
+dup 52 /four put
+dup 53 /five put
+dup 54 /six put
+dup 55 /seven put
+dup 56 /eight put
+dup 57 /nine put
+dup 58 /colon put
+dup 59 /semicolon put
+dup 60 /exclamdown put
+dup 61 /equal put
+dup 62 /questiondown put
+dup 63 /question put
+dup 64 /at put
+dup 65 /A put
+dup 66 /B put
+dup 67 /C put
+dup 68 /D put
+dup 69 /E put
+dup 70 /F put
+dup 71 /G put
+dup 72 /H put
+dup 73 /I put
+dup 74 /J put
+dup 75 /K put
+dup 76 /L put
+dup 77 /M put
+dup 78 /N put
+dup 79 /O put
+dup 80 /P put
+dup 81 /Q put
+dup 82 /R put
+dup 83 /S put
+dup 84 /T put
+dup 85 /U put
+dup 86 /V put
+dup 87 /W put
+dup 88 /X put
+dup 89 /Y put
+dup 90 /Z put
+dup 91 /bracketleft put
+dup 92 /quotedblleft put
+dup 93 /bracketright put
+dup 94 /circumflex put
+dup 95 /dotaccent put
+dup 96 /quoteleft put
+dup 97 /a put
+dup 98 /b put
+dup 99 /c put
+dup 100 /d put
+dup 101 /e put
+dup 102 /f put
+dup 103 /g put
+dup 104 /h put
+dup 105 /i put
+dup 106 /j put
+dup 107 /k put
+dup 108 /l put
+dup 109 /m put
+dup 110 /n put
+dup 111 /o put
+dup 112 /p put
+dup 113 /q put
+dup 114 /r put
+dup 115 /s put
+dup 116 /t put
+dup 117 /u put
+dup 118 /v put
+dup 119 /w put
+dup 120 /x put
+dup 121 /y put
+dup 122 /z put
+dup 123 /endash put
+dup 124 /emdash put
+dup 125 /hungarumlaut put
+dup 126 /tilde put
+dup 127 /dieresis put
+dup 128 /suppress put
+dup 160 /space put
+readonly def
+/FontBBox{-251 -250 1009 969}readonly def
+/UniqueID 5000793 def
+currentdict end
+currentfile eexec
+8053514d28ec28da1630165fab262882d3fca78881823c5537fe6c3dda8ee5b8
+97e17cb027f5c73fdbb56b0a7c25fc3512b55fe8f3acfbffcc7f4a382d8299cc
+8fd37d3cea49dabdca92847af0560b404ef71134b0f3d99934fc9d0b4e602011
+b9cfb856c23f958f3c5a2fbe0ef8587d1f5774879c324e51fcb22888b74f2415
+50d7401eb990d4f3a7af635198422283cac1b6cd446ddbcbd915db9bff88844e
+784c6bf7389803d9450b0c21756a017306457c7e62c1d269f306bd3402e266de
+fc3b5e7d8a8d2f5bf0fe6ddd40d07391df4fad4a6018dce29a2b8f692b29f202
+3a7c0e66de8ed85c14f1f8492167357f51a7e84cc5d92e0fee4d81cf7fbc8de5
+2d2e7bb57142033993f9c08c315abade8dbc4a732e84e142d3bee51557910e12
+cd8aa37c459a5e6b7f5269f59078aba3be4641a11ac48d0b625c8325b38ec08e
+4c9e5e7fed976a5650d99d82114f449b9ca14c4ec957702295a39a93ef93f618
+99b8ea06b092c3c1e503e6e436e0a9fa22576c8930ab3dc8c20f5d82b69cddf8
+ff4dacfa9c54bed5a3aa3ea5b129fe96be632843b9b6bc91b615581a985db56b
+1e01ca60ee69ca92cf5c0882ece62edad3e106d835348822400f0b66af658f2a
+e56ed08f8b0010571807009b73ab12a8cf14ca6c71f03c2a48c500f9d62266af
+154a6375ff600d9bac3f05ce34142d6867a79581c533176bb2f3117336671e2e
+44638a97167e2ea9644e31ea16c2ad2990ea33c54001e0c8156e6de8ab6a4d40
+a7137ba275f39589fea2e2db8256adc103d6f9cc038037a47e8fd469c5f98a5e
+3c15bd4ace40d340018b1cff7d1ed8abb0ac57b5b5a2c20a51957b96c453edb7
+dae5affd91a46d938fe0a13363001d844ded4323f1ee6d30012aea19b024a552
+315505535c85dc26bad31e09c50e6512802976d298c4e90d0044c362e6bf3ab3
+62a454ee93de25ce54411090c29e9d75c80ce26a84404bd9de3aee0e3f921ac5
+87f907572b8354a5c3165eea7e8b2ba4e333802132f760b41a900c698eb3d273
+8bea0aaf7aae96a558f08b61aec7c7d65b2889bb7b99800cffee5ba19ac90fce
+11437be1ddfcf0bca5670b543b9644a71c8726d0c1005abdb96f6e0cf7caaa31
+95017ca81519151c2c0b04f81e717c0691b63a76e9b25329ce2625b711cb7bf9
+9d23ec2bb5ec8aefb8c1a3b422ad617b3da4d49685fd44cc21a1fe5e1541163a
+b3e1594601d63c7e98801d7746474377ce93f81404f3570afbd5dbfe77578605
+917ab96963987e6efc2d3f99fa56ecae6422579852567f90cc90e4ef6d6f71d1
+858270205477e221018a375ca83c572b3f972c5181d18643cecb04909d84cf76
+7174b3c0c8ec69bf1e9fdfbc0fc7ed97ec67d878ea4ddac8caa522fdc6932df7
+21b81af837ab56b547d4799241310d6692918fcf8a46189a78d6638aad7cb446
+2d8774ec73d184076595c94c0b4a8233cd34f2d92f6ff94f941dfd589def2ce7
+90d5cb2159b953338c7384cb68c11779120a68bfa20b993d8c0313987eb96a2e
+aa2c11cfd838e6aa48a89e6ddef3fae1a1b078be9787140270556a96e2725a8c
+f1ad46fb52938900730154aec60f544c3d49f1763861f54b46a3b70315b46ebe
+51c42fabea87a5339ece2b64270749188d73a07e0e3866ef9aaea996fa92ab44
+3c08fb8a840ded26ba68e94cc23cc1f6968b0f3c7e8f4fc0c5cad0f7a332e7f9
+55287acf2485539c7b652f7a29d9e4aec20a8e023aede26bd4c761bd3561269f
+aac6fd5a651ffff9211f8df220994dad6d105a92d5794cf2aa526b2143c7150b
+a584a2b597f6982403d93073cb066b569bacf95da04b4202bd24059a8dbdd3ed
+8aa9e89b2788f3b078a81a557bc743c12a1e00fdeffd030c032e81de3142a106
+c0ede1bc9d566440bcec4260295ceacdd54bd0e25f6b9dd8fac41f453bcc7317
+77e1e6acaf37a8178d11be1bedd6681815f3d5ee8d240b7ce9b14fcfafd50421
+6f26dc2827fb0f6158416eb24f8bd7616ebbfe9378718824cc6e51135f8f489e
+9a55a0f840608a99a32eade4251f27ff86ec7f324dc9b534d7135e30f2ec1b6d
+93d7db919651e03f30a882f2dfa457d307f17751532ad70e632a04a63ca1a507
+fc6af4073126be0127d86974b426f489ff62a53c1986fd048ad76454d42be16a
+6060101239b138bb638765c46eb006f7f8dd312337be08d4381272fcefbd74b7
+b2ec098b436365586a832721a0113b2bf1d853fa8b062beea25cabc60998cf4d
+38b49a3f4bcb372198a196c9eb6df2cbe59a59858ae212031c9ad7fbb9c3e8e9
+e6de45dcca521f3af361282f7b3ec507c8b3afcf18b9678ebb2f11c01c9dc3c4
+fd3134c5a3df6b6f4c75ec985466c4f505847f1475c91e5d83a6bf754837da02
+f9e868eb0dd76ec4d31c8b1ed935acca73e1cb9b4192bb0a853f947228c3064e
+8f923a9133eec9c52c626e29689dd54fa433b9702636fbd87c5d81c4f2781687
+83509d5f4256c77a855c97a48d18de6ee1d47c7c33e9ad227ed702f120303731
+bea6f3055d764046eed36a06c75855a928084c5773168ab985dea7cd767c780a
+91e740e6e088cb93d43a489145030221de0e1b2dbe954ef414b9568f3b1c5329
+f5fcbee927aa23309ad22e10f9349b6cade7a090d19b9460405cdeb89bf1617b
+2c297af5629458235f1b8c95f5bc442debb34da5d20b11e96660ce9e5cd19a84
+aa54f42b106fc87c7c0405b0cbbc249950d3a7c353d691d77ba031c840c8f43a
+220cfc749ce34c2791dd627ca074753963d2e59794496d55aec96ffd48eafdb2
+9f8abc8d91932dd5b01f65ebda034bef3c7219e097670621058662c5bbfaa939
+debf999e9f68e5c4e64cbb0774a9a186e741346103865fefb088af547545cf77
+63da066496986377b587efca5c9edf22ec13d1aa6f483c4a0addfe395f83534d
+7be5285e6a207d53a8a960ed89e9bd27afcbbda23b2d9876a8d8cfcc299990d5
+21e076cf8387d514570871376c21509b95ea15ccfc7278851f14de8308b72e11
+1893f0338488bcedd0f2f8eaf07326bf97c3727459ec89f8121c96a45e3db1c6
+3d478d0a6da5f5e6834938ef1ca41b910f25a82f2774e3cae9f1909dbe21ee8e
+003e27b84c43b39fe247b8e19538648f246d325357a246365b9b2b13dc68cdd7
+e44d99d86c642565b1fc376d2e530048b27a7c44b6811719054d3ac99cbbf566
+5ae76f11e2781b8c040f73454bc794b1432e6c3a58bbb8cbef345d3178c8d01d
+6b26bf7f485a5c3bd36dd01f39b034e536abdc6632eb4038fccae0453e85b3be
+d8c3d4620a2aa2dabd0cd93090e9b8e964c491c3aee45b592e4eb12970647e2a
+5e68bda429f53074257c02975268f8c28f06350c26646d658008fab0562f4064
+4edb0fbab79826b16cffef1302c8a13173cc9cf7c8fc906693e486ff096b2d18
+e96841a5fa8a34a5b4b68462bffa48102464dc22eb50f1f80a26e929d4cdc4b9
+0589266915e8433d46d433ed8920543777360d25546794cd9a3a1eace8af188c
+c18ddb9dd1659f9fa462a5ace6a6ad068140356e8c1e48defd171947f78f086c
+6e267fef13d16ee68d0fb0aae589f7e090f088fe80bd6cf8ec0edd28c735748f
+c6e7fd421e33b16ea6319937d2d63a94ad76f95b61813db181a113274d5f3b4d
+f5ee90e69fafcafbe4466f5d5f48eea62a7cdcd4f9418437707f706b290b86c3
+0feed99522875ef5e2d491920983bf4e9f1c71f20f1b9645e30521ebf2f1c901
+0103c60a9a6db7e6297f7c3e29cb150307fb7a1a1a94710eddc6ae88742cc704
+4492dd7a217583c99a6be7b720246fdaa00683a3b82ef6bfa87f2fcd741ad8bb
+a68b751740435dc6afb1bb88d1593db152ce92c19e1ab29c8e8fe89477cddbbe
+29b8dcf1ea6f70990be9a0425000404f2f5dfbafa35e70bb87066464c992343e
+8bec66ef483dce474f3ed7953dc1f6bbc14eb3495704d1765d0b3285a05ae494
+342f6b70d9a4241291b3147c77a8ac0e08e5bfe60c8b6e2048876a6cbfad8efe
+486095da764f4ab9e4d8153f89bfa2d9bf2759826ec18f64f1ab083949f4bc12
+7411a477d4c24d7e0fb0c96a96a31386cc5892b398d48750fd09638ba6d62cc6
+85688e79af31f13b744f395984b20aa483fda558c6a91cb9aae9053e7a5b5b86
+59bf0631c543f4c370ffb006290353908786bb5db373233c12f3506e2c4db0d5
+9c1ea8ea75a7662b90c4ac1561303f4fb8536c1534feae4ed772dcb49734f528
+5fafc99fbb081abc3dbe87180d9bde2a844b054d8bbbbef5ceb39f5cade252ec
+6164a74e75625050ceab8fd8d8513550d4420fdfe6fddcbb816e204115614fe8
+2cef36db23a7dd31ce6fc923b575eaabebb5820bb2739ccbb41be2a4a95cffec
+9332dacf05936a3194ab4f7739e5b4a868a7cad3b1d940056f84b41e81b072c0
+2c0d0bde7c64def54b1097f68368ac0b39e0df5e5733feacf02ef12a1cd0abb0
+805c2f7e7fd7c824d9b348e893d68f3f31b807829015c54b8d2aa7e8daa14a36
+4428f3e706fc649e274e47914452704b1bc56a41caac736c8826b7baca1d4fae
+bfeddd0ee8fe3bcb53ee291356b7a4b699c33cd7eaac34e3b92e7f3abc328524
+5325990874e34513647d521ada13f83584cef20dc503eb352bf881aad4c00894
+cc581a819ca7cde96a9f8dbfc22767b215141c8677bfe6f1f0dee4254986ae87
+1f87bccdcc10e2298bbd90a6253379363ffb2b093c2f54001070e655e9c4cd38
+9266de373971bb763279f9efc4e5a223990153618c6654b5740049a3de2a80d6
+13cd5ac5bacd34315c43996d1a420dddfe7365060eac81af060b83443fa8176c
+be3f4c2ea819b493fb5b4a2e4a0039f028cab0b47fc70f178df04c7cd4da22bf
+bbe5344c9e9cdf1020ac1a43c8e5b9d19b621565a6dab2b1cb6cde2524b33fb1
+da6b5988f5be4e7308a17c73e406dbcb51feb3d79b84ff8b0284f7ea92beb9cb
+a6cd5999ca7dd20ec02e000fb48cdca51b8e747c0e25b28431543d9095482657
+364acc1c647b2140c502623f7b9e3f335c2e44db33db82c01ae27af66bc22849
+71a5249911d897263210de4a9a65232738d83d10aea8c5d3c687128b64eae94d
+6fb30b7ba9105ba8e01bc9925c312ccd8bd273e904d8ff13f4df7edd21c23d0c
+09a32a4c90b0577abe7aaa53e836ca60b1697621049bb36f8013026d77910193
+742725574222ddd3adf4e872e6d57c1ded571a1636893dd7f49d8280233cff43
+39b075628ab591783783548f17134e69ec5ec25b3b8036039da276ba1507649e
+7df1ef9e29f0af07beeea346d470b4f1df925040602539bd1d8218384b53bdf1
+6c74a1a6ba2a7871b67e06ccc015becf2f020295e27cfad62d3eb7831922fab2
+4780fb158c21e769875373606e1ba9bda9f15352eb5413ffe162eb2ac1944bd7
+d980d232a2f3db3cd38390e0dce3241113ceaac83ee29b2980ea6dddd4ef5727
+024e4343aff44318aa1382662a78a41bfd6ed98264a6b0bc629cf924ea0a635b
+0885d682c26819043e39ed44241d4e8b50ab92256f9431a8123117d77891affe
+4e2833bc0517de287a747e88409cc30d7d098a4fc80c6d91534304e7fda873fe
+ff704ec1f7450226f09d5e89e245622973d9a789736c71e6651182babe81aca9
+69c62e1458fa67a3b9d38cf364f383e719f7066d2839d95f262f8a5af87def90
+3ec3269466519e68e857088d318839fd0b0e51a6d358a93a543e2401f57ff7e9
+70f8bb7beb37beacaa000ec58df62d2064eb45a81144c146b744b10406eac2c1
+e350e2dc328b6a839df820b289a84167b404ba1fc63e453de7b58a9ef959d7e2
+fc1daeb5ce90a1dd935e8c5d7de7e2684ff0502901bb451faf9acb439f548657
+e3be938e7a2b5924dda2e7010cd26a181d84a5d75294f6e56dff88f3c207c9d4
+57cddbf2d3037ac9a93ce9d53fa0caa4f21057762954580f0f2d47af43d5d767
+9a9d44d45d682ee73493a2b8c390e24ef27c84e701c879bbb1fad6bc8b89bb27
+959ee86be486786d1c81612d9546ab59d5216367c027b5b0f51a41c9ae2778a0
+4965a846990d1727f3f3e09ad0b913c9742371ab5669a2cf4863833a19ce69ff
+161b1d6bb0cd61272cf945264584ecdcd290e2767f087a836f12aacbecac49c3
+fb28a605c6220e8233ea2c9aefda87ea2cf9d3d52fd6d16612ad07279ddfc4f2
+0b59c905a146b1f4a51547db82758886e9d3609b495bd941616057e460b94856
+191791a2d16b90a7c33534a9dbae17c96d68e009219857fbc92ebe189875efab
+a56704cc9305de0d32c4ca5293b306a4ee9dcbb131c128626c4171ebcb2dee83
+0b9bcb98b4fe23bc63c9186c21eb7d9cdfe2e685399d57d6d1a857c11ffe47f6
+d0bb79839b6c88702eaf6a59befdc8b35a03768af411ea16c277f7efbada0066
+19b31cd2eab657bbc8cd4a44340f4d9fd34007adddf2dcac3058d22267490e90
+657808cc716b7ec3444638215495a7bf077956f16ee3053864ebd2eae7b210ea
+370d71414952f2076d689abd98e76030d92e4d49a79734fea3f057198f8de62f
+64468d06d0e6443eee3f2677049b08e8a09907a2785d91c009f8faf6f1df1cc3
+9d0ae11e8f1c939a0c13e49a448e89b0eda7ccef06166a8449b358b0c661e40a
+7935a6e4f866ece423ce4c978cf749f3b2b8aab56aeeedd498db77143f77b4fe
+df5c6502a3d2ab4d0bdb8ee456d7da3b9cc800da8d0ccaad981da5193a528c7b
+5628f065b7fd1ddb0fbc4a74c32751e8b47472068a3a6f380ce2258d33fc4978
+0ef2570fd279bbb54d4246f40cfa9f13aa9e13c6cc030dc19960115c2daecf52
+027f917d3d9d44c60b0b2d1030edc6bb055926ccc512ac2bafae7c12d8ed487d
+d3901fc2842d3a7a69117a8b82292fea44fbd40bf6c27686eab94a520f63b77b
+82d5425478d74b5e4e81a8439f560b1ce7c626e51cc3efb877a9af37bfcc1a72
+d40855995df53b3f4451cc29a5600cea6b2fd2bd9ddf106fb7b6b6e194774262
+12f3b5c25dcb1b777b643a318046e02abbeb67201dd98d892d6e13b0853cc206
+b62ac7e7d386a77c6c9a3817ffd5009d515eb5f770dca0bc4d9de562efdaaace
+de34096ef6dcee08c735da36893c41592443e0b69446b93ee9f758eb75c24fcc
+4e8193a1f77999f2d4395e1bd24909cb805ce3a26a47ecf376a79f480c9402dc
+f3a86bfa971db7c977f813c21ac8c071b6f210b251695a40b735d7f8e27f9da4
+7af7fde2a6e7321488dbe7555ba82e23fa2de3092227e1a21c5e6df4ec83a057
+8b4e99ff377c9e655d7d6de412cf0f67d3eca45624bd1ad4ee76aaa5f99c73a1
+fb470c8c7ea472890e1436bb51fe764f95810da0c3ffd1c3136223f6610f3b22
+6978b8f9e35c9b09dc863c05df439717251910a64e4afaf2323ce1d2a168dc57
+cb1f4f2f9d24071f49444b1a5c6956f236734816fa3147656fd7c5f547748af9
+83e5529fa4787e540bdc4023377a7b7e248a37550cb0fd519f30f1ba3a323d17
+1612f802068ae4feff8d067185f9e5211b1218656effb8762824e05edbd304b7
+1678b3c4808f7819af193b247d3d7a3ee51986157e6d101c07a521379a097751
+cc6c53fc6aa6519e2d0093ad0ccc5145f4d788f046eabe997100deffc6b7d79b
+ee09a92e34bcc15124d2405bb614b4e265378126544d041c4a1671e65832930d
+6f15e11387f39862f9bcd513cc611a9f9ecdfa53175dadf03baaf5c32fccaeff
+3446e67a62d3b15294e426310f64b6509e88d3225df909be2c73a9cc8cc64364
+5b394cc3f5c61feb91f1522ce9882a60504c14c69ce7089f3ee5b3202d3e5c2c
+2a98b8a4c8655a911ee03dbe72e474efe0a0b1fb9062e474ddae008b0ace5016
+aefbb40f157b9bf07acbca319380105afd615da19c9f932bc8d14480f6ac4e60
+7fd4a7c34aac43cd26301eaacab8a4dc8584efeb56a2e5695e84030f39501223
+df87fd3f16d3950713c483d8164fe2a180afd985c11d55a9e22a61f0c5fd3a00
+36dc51904a84b07d409388b897fc92c1c91a971b2482e668a27386b33494f751
+b5b9ec4c5ed765a88f5a675960aa7f644e77696bee684e098c69a8119bca2706
+7e52e1fa95c3e54cfa568feb54b92c3a8a2da2cb44c9da1da7bae1b05087d025
+f767658d885e89d654620c2827013eccb38c7021f83863313bf35116aeb2669f
+fabd5f1f035c23bf0244099a32d2fd13ee00c09e30ea3bfe334227c6a143cb71
+6a3c584b6add52c6370f7ba917855f2295b9dff2bca64a0504d0e557861efb85
+6a19ce99b64eb7ead11c2474e79d5ec30de5ddd094ac37d8ee50c4f4d39e32e2
+84b2f347848acaccf519272aa1fee3000ac3a495b54385cb50373ab7b790b473
+d0449b7622ad526a1bac985945964d6d2b05089adcf9db30f1032639205877d7
+e78db7f9b136055c1451663ce4d39fe864e02b1339006a1065fb76c6e438eb13
+2629af5e1fcf6022e608674e3546cb02a893b558f3b2c76bd0a897b4ede61a21
+b8f6c34ffe820d66f3b89edea86e13ef5cf0e33e82bac2b4ce6cdddb572ed1c9
+ad69ff853abc58c0cacffc0d86d80d7c8d10139ed4c9dda73c4b56e375ca70fc
+e18eb1e322f046a4a44ad7f2731bc2059e391688c03b86b305e9bd9bab8f3d1b
+6ee52789d559a5200ac84183fee544db210122c74bb2ca648599db3cd1af2615
+67b84aeb332f0647288f8f8b01d5068d74d7e89472d8df3e901f6b523fe04c51
+9843e0b730f403bb99cad493201f950e943db95fc52b13a3ad8ccc6478d5cbe5
+dd019bed1ace4d02e09353e6e31b9a9ea9c76d89d9490d713ca451693d235a0c
+8b0a3ded5cf2a846ece5caf52627acdbe76cf57a09cf6768d0a53906b15afc51
+83b9de1029d19e64b64bc2e075b536663c524bfe35c9e412a7c0d23d316e0645
+baa41df9aba61284f801f7cb852f49b24a96cd4c743f9b1d1a69f3e30808282c
+32c2c4655715d8f3ad53f3fde97823989864479eabab5876c77cc134eb66c688
+be3777c74b3a87ef1616dde5a8a46185997df2faff5518ea7aec3379730bc509
+d09c5c378b47da67f9f5740b641dc790766896352d0be0ee84d686496066469c
+995583eda0bfa51178091918d2b9ee8ced4163e45fa312885a64f177f03e6d77
+dd649c7d71b47fe885d72887927ac070cc64e825917776264e722aa6157c22a4
+29bc0d38b56e5a0d6473fccafcc17b4bd8860addb9bc33e2fded66ef95205fff
+084578c37913e2059cb3c1ecfa4142c0a2ad1781c373cb6fe9819f4cf8e5b577
+4d7a6babb1faa71d0c96175b9dfc08a3154c2f1ad566e0d03e6a01d3848f0c6c
+06755a0511948d51fe8626a32ae97cee9c01e15ea61a556170e7e4d3697783bd
+42d586535c38cca8d543a9aaa828c4813e89bc30b686049910a6c01d7fdcc558
+95a3f7019b0cc78c23925d8cc1207c51fa19e6b8992a289edd5669c33186a7e8
+38d5a0a3c101c82558785010f877b05d943c5f874d0524622d43eee25ca87c2a
+a4553804cb6ad1508b9406bb1cdf868dcffd19483bf1d8ee2844e62a2e1cd098
+07983b7742a841ba2a03d8a92568624ef3c504f9b2f4389e23e323d1fa1f4f06
+70711da7d827400f36c9fc870ea2553c7e2545e2a5086fed5bf966114d5fb487
+21af70e04393326bde080d3082c292c9c251e2d82c0c3f0304e9a46203e0e5e7
+6829e21a3b961f02afaea15397f0060e5059a5fc66a2b622af1d62fcac516ec3
+327c95a0c2810eb42a7209d12e90d1d41ef442d0f3de55493615d4135b4f44bd
+0975965758b16a8df9d39e78a73df41c2efbacc2c91abf75c849e2bbcbad263f
+8577e16d60bb6bd463df3a4bac62f28b44ce08bf52a268ac27779e3a317b965a
+44321615891b627541c53768f33694d6ee76903bbed8acc45fa00eefd20224e0
+9d95e93605987839d92c4e0e1853d8c3f25fdf0a8268b38a6b8d9286535a49b2
+5631bf31451f81b5abcba66a07056ee34ec320367dce6cfa9711329132e11555
+35f8094570639f9fc72e1adbb4ea99ef7c7cfcee8d74c2ac70927ca9973c4e1c
+4db113613466eab58c0037ba93230a3d6ef41739122912a15319374c6a6d7fed
+a8b1dc15edd2f28612edd846d8aa051f24523bf92c6920c2ae3ceed5868bda6e
+cd483ed181ab69cce78668a087de0a00a960810675f75412a8eb6018c638583d
+fb07b4b4ca48c2d3a7cd407f552ddd7a915560042b173d2dfe64eaa41500fdb6
+4fe572e09d06bee892aaf0cd711f3d6752302ea4f69aea675a48ee69c2416805
+e7e6ead9889fe072f1c2f5d3a89d277a90dc9ea38271da1a455ccb3598fa99c5
+5a788073dc12b2265d409de2de24fb4399e911ca80169ad5812bcab83bd0692c
+37a1b8053585bd7303c20b6a06bde9873823de9e9edd9f403e78e7c386341919
+035561cb94379210a5e14cb743687cd843fb306b6946d8bb1c290d802ee3f096
+f54d70743b22e661f81c89f190971f27ff9b0e6c273ce3b35e6f5a586b411f6c
+f55c2909ad70d348c6f6322ef1dd08ea36f1b99ed590d0123db978bcff31e5ee
+9ec3fb969e71c0864757aeef1750acd6a6f08a086ccf15e65a712ed37564b73d
+cf2a5e86e05c7725de9f13df59ed3e92438d9017754365735e5731853520d977
+1223de2252388c4c6f7ff44614112780b14180c0ce01c50f94bde65f4692cff4
+b52f6d9d1fb562475bf9e94120a510389e9b3574c62fe0cd45e19615971becb8
+c2388b4d5d095b914e6f887f3f708d7a65b516758cf5eeee4dd127315fc3ef04
+cd5915978141b2cefb3d2c0fb5dd64e25eefc85cb2f880cc6ad20b9c9f0c1256
+a9c4e8ceb2b400c8d50079e6f58f7a064cca9fc3eeaa7f7c34bc51d6799520c5
+534eec1a1efcc52b9ed43e7695acaf3ec4590d9c0bc16915769deef8f39bf799
+24494888d4dca2484053a29598dec70c2bf94bc2494be4841f9676de13196af9
+b9a329da016f17f62ed26a75ca3089750be5de919429b989eeb4c10c20ab764b
+a2c4035f14264b055771b6ab98e0d673580fdebadd2719c80e9b8322112c9aaa
+9ad2329b045effa948af1ef7b0038b4d3c068cde62e5f808213f4a04d4979bfd
+fffac94483c546b35e965d4d0625fc01856623e146ef193a553809c0d1e182e8
+d7759cd2b467a84254a2eabceaf9e764a05bbb84522353b2505c56115f489e4a
+906064c9c5266f823741a1bd1695796bcdad01b38003522eef9ffb7fb7f79f8d
+6c43b6685c17f72f06060993c9a30f8e31ae8cae4f3bad51d8262688a6443ce6
+a07c1cf676cc4f755849e2f9da19b14130fc72e31bc6e4e062c041eac5eac486
+032535fedc0da2f8bdfee2b72c1bf0be510dba08e0a5700faf1686eaa93420f2
+0f92c0516609adac4f7eafb5fb2ccda18bb3fee2702a462f8ae39a733b0699d2
+9fda1e821fb03964f477a2ff5580fa4874f60d6f3505a4287e17ac2bf5659e42
+fd41f257ef45798ce2d8e09c0593fe7c41e67d79316e8d61cdeeeeeec60efc9b
+f26e803f5c3ee7404d05ed2018f8c9dd0ebec3bd39e20affb51582bd5049de9a
+d7437849330674fd17ce6b9b6f646f9cb66cb5de5457bd512beccaed183fd5c5
+d834846e6f8be301fb267a4a677585903ce45864294feacc65b46d604d84d846
+098339d20fe034b77a49ddf85718cf9de18d10028b3715994c5f2571ea3dc7e9
+8f66601c647c80839e3f3477d78584870837f653243bef6ff49c347c5fe9c7f4
+5a28f7bac5ad9929d508628cdbbd4eed3295f06ceb89d378632c34d514a0b22b
+efa7e090afbe45ea64c03bd1367b63763f4570d25f59e83d344e8ddcd26ca66c
+1787ff09efb314e4cdaa3bcaf8c94372828623e973768b6fab1327c6cf5bedcd
+37972cc2505b12d2a26f7d5ac9e3f623024a9370a44bc95fb17c035f71bb4385
+3dc7ca66bba610cc29fae5636b21c2366f88675ec0eb2be3c127bfd579cf818e
+d98d657779430f5c75a0cb97a52f3547907bfe2ad55a59b0b5a0df0d25000907
+fdb6d5781ea549fa89078516665cbef095d9411a2dd1cf6a355bc77e2447abdd
+21da230aa18d5e130dfec1b75e5c1f6cb9d3c860a95e9fd960eb8d73eed1e168
+e357cf305786a8f01b63ea2d9301a6a3f886cbe4f678bf1ba1cad67f3924b640
+8561a435e0720dcdd29c53aa53c1747ba074e6588b3ab7b66b5686aa58ec9bfe
+7dc107d97b8ee627c9e79601b95791704fce469944bc90ec77ae5a9a5f2a73a4
+894712899def4ba334db850a7187988bfc315a5e207aa6d576741b3068f18c7a
+d741b6a4b6debf5a3c3e178d10e25fdde0a01afd5eef225849e3b5bf184628ee
+473a34303c2524d78b8e7b8d9308f1a90852c8463ac1997c91dd233ccb7e4a16
+e95ccaa0e4ad48e2c499397a4f558c23360ede957d872238a446c39024a36942
+9b2ce348aa5fab425897ee02b71f085de26264002ad168130598150c4f560e05
+10a135014e55a74f65b4ce7e1a96146c609280b49f0af1830c3c8a6045bc7774
+d3895348962a7aee947ac962547aa28b02608ce2f91fec34848ec86c4bf8507a
+9c0ae9a0697699531e11ed9e85ccf52231672f0879b801860b0131815ccfc490
+12f03305d6d382e4e4565bd1d2f860ea8bd636d8582fd332972f1cbe62844355
+c933786be37490a7ee43217854df7797eb8680b93d9220f643dd70b2993a7a0a
+194159a9be04441f478a77b3d2cc38302701166dea70d72224c9481be0e68bb6
+802bc6e9d131c3b3fed6427791395cb3393d4817aaaedd39afd6508c9cb4fd67
+fd3bc18c65f27203ae022a522c1b750960b7a7450eeb8718dc911d645198227b
+2e729b6ca4149eb9d21369500208d94593a087c76205d1046b914c31fb5f5d6f
+a1efc908532b27afbf73c27e2fc9228abf72920ce48c03e3381a952a0b1f25a9
+9edcd216b154ae6279b33315e822eacf095c00d7359ea834885db0e6d07baa90
+91fb364cfd43e378ed0c06b9a1f7c3a7922c85daf6cac5fc111a51292d4c7d43
+e9773f262aa032782252cebf2274842ea390b0056c3e0bbaf1dfe11d91679f63
+13316735ff6820166d4fddd7e76a724695291e224466ed210c82ae79c44a828e
+7b625f872c5a3723ff9a09e7d77d0555c9984f7efcbf3b9a1b156e5047e312c8
+cb86d26b0e6345fce3bcf8d0196c95c5aeded0403733eb6bde2f6a65cd1a0fe1
+3de66a2ddb3f912abbfe0cd59d4a6d9299e1309cf7494c93896fe76c132ffb98
+e3315b28950e21caca613da51ea612678fe24db3b04ba25ead7e2a020318d2c7
+9619b78baeb21aee2e6069d8470392695edfbfe2dfbc2274d8bc8bb3551ca84e
+341419c7e718187260497edcafb7f588d1c7663ccbf8ddf1fe23c48d1a9b211b
+b0c75871cf8de53c45a00e601f87bd65b9471ccc46d4481c5e83ba65153ce608
+d5ff6595fced940cc0999fafb2f44e0055e57e59c73bf3ad6ff70cc5a0f32a97
+d61cdcbeddd34a295a3a7a9df1edd9169616d1f8d4c5e20a86dd2fa590b46a97
+4d1145fe89d1f0664c3e0fef70df6d393ae7cf0b662e285c02e9c447672f73e9
+0138e68f216c0072f5bbab3943b40d24fb09841e142889a4b927e4a7f762e0ab
+de430d6c4d8026f76a62b3b35bf953b1ec19932e8e24ef20d2a50bd0ec86d6c0
+a61d1b206afdb625353e1fdc15f96f3a48303dc6cdb7e4131fb3b6e7d80b1b33
+2673f6d1dda6bcd90f359014d59eb5445fb90e31e51d9e1962d820792c2ac64e
+60125b0ee5cbbe02ac8bb9ca43a2961a5012e0bafb42da92dcc8948b043f0f98
+c522149e57fe699c9bca6df84d5feb2f55c49407aa52345af0f2b39c360876d5
+a6fd1c3c6d4282f070b8ae2dd3bb78dd78c7801a235eef4a700128a9cfc7cc3b
+122ce69dbf577f6531b7898ba31a1b915ccacc4b3b1226104877ef805795a93a
+2f2eb41ccb759441a17e6b7b033094d0861a5a55f80d94b203fec9582926a9cb
+5f8cb395c110ece72754485d674df6cc0bb84882ba26fc1701e3b2530a2d44db
+5e8702df2cdc597a8bd9cc12e95b7d274a51136b61e49c7f920be8e6e17f1b20
+efd1f6f84ecf575b2ccb40ad7876e8b8c7b083e2cf8253d06cc4f6cc2a5fdbbd
+8ce6986e18f759abb35f7e77aef16d5bb2dfbb457da2abdb2148eebd4f88de2b
+9b3244ff78bcef9f98d93afef587269d7952b9557d0ec61fb268980730ef3b6c
+5cf569ea19dedd3aafec29d8fb9dbc8043e7c702920c678defe3017bd9791d74
+a6ce7a6ba312ec7407d2771a6f22e3e81ea35351c3cbbda7a7a5256c67ab65c8
+4f0193d75209307da141dc60d87b33684bcaaeac9047a0f3861ec185132a14f5
+f48f19e38e132fee76b5d7c70afd29fe30411c5b7d624bd75fbf27d89844b184
+5f027b866433344af2dbf37587f2144e40358096a2f6cb884595e57c3a21a1b5
+fd1a9e007c530fbb2fa384169531124511c0e643d093478aafd5cbdec5eb0ef4
+7546a893ef0d04e30a89bc3d4516351662f937f26c80ca874e471eaba85ab541
+f51fe6f94e01ba628a0ea320ff000a2c3b93162b40e33f49c81f759b0cdfc167
+b5e06a6b2592d78794a4a91a03f9f95aab96850f726de1782b03f66cf1c64787
+2fe423ab0dad21098c19a267859ab150d8cee49ea83c0984c348d06e99edb60d
+797683b4b5255e3c521619da2c26038beea2c6c013383a30d6155c3c6fecb3fe
+bf3205d291b3e26cb6f76ab6e222fae350ef49b9c15ab1dbcae734e377610a27
+b1013f0ac3b11e9235e952f6c65daeb43581fe06e04bd94dbdd42aade4cd6b47
+5da642910a0240bcfbb2848039b614f11b5c0de8b157ba49ec715748f2857009
+bbb3a0b550b4eb88631b53a69f025f61e4f0a1bf13265e2078c6291c114b8ed6
+3a7f3a2d3fa6ea7bda7445ce3dfa913fab9fc964d6a5599175ce8ede602c7f17
+cc5e9390af0d3148fbe8e7d5c8780df83d34e4c1cfc0ba9db11975a171928147
+d4053086bb7a29b4cb6620278e5d7d42b5778db639d37d3149b525fa9a2b972d
+3f33a2e6735130446448eabc73ad3e00e0b2f5e774adc1aa4e9eca4c0e5dc2ae
+f0f7daa42d37cafbcf8fe67cdd3e7c02413e617562850e2ee2e68744895071d1
+92b4505470d228c8ce86ff4b650f07e454f8df8f53768226231441dc5a026fb2
+68e920c71680bb1426e4ffb38b27a019398c3cbbbeba91c4988e10e3d873d3a7
+c8fc4faa207b94a23e653bd646505b8688530d3dd734eb22aedeaee8274fb964
+378e744e82c76a1e65e40a60da47189adb7fef7006f180c2aede96672b55e127
+00d795951bfe14dff7eafcf483e8036c07226d1259883ec8380404ba3523d786
+e55685878ea1cc6f9d2b32dd91ae126becfdc77b9825d602e3f18ea08021413b
+c95e5f64a120d41c719cd786bf2ef3e1a9b5cf28d80f65b01191653515be6b53
+e59834541465f45839682f587530b63a3ba92d74062042aaa11912b071ec81bf
+6667d22dc7302f0a5299f3f3432fd03820e43bce1007bbf0620163a0ae9c1a62
+b6ff44204ffa819f9d85849d450abeff5f3ee19b3fca8eeb405adb8a05c4809b
+ca050f846975c56b5079ae720299a7ecc8d846776048693005704658e43640cd
+89e6149093b4778ab677b3797de560aeb7e09dbe57d723a4aa62ee8c42a83c10
+418133d262e5e9cbd39532f3881662fb84c38f33ed685443965795c725956506
+fb106fe0960832a2c292560d3a43eeb72f4355b836cf5044767477aad5346469
+f8e4e90f712df820a0b7183c0ff090444a994d81e2941ea3c373282bf57b9952
+fee56b1b0b7ad89aec79a85dc03fd2a35f5b87e061d15b65a48398f836788f6b
+41c749dbf425391d99f0b31420deb5c800ee281a427db0c1ff7e03105c434f95
+907bd74775c980b4ab46a88652c8d59be6cdb3531123cb25e9af5cdadc324aae
+fb9f8dc7e1ef4d288c6da52487b922a9c9526875cb3e528ab79122f9886517e8
+92115104a20a8eb4ca7628083b24c0b0f0dd2bb0d35e3e1d3bd0d50135f7b7f1
+f5fa5349c9953c4f61f00ef5f11e662ad12e8d9f156e32b845fb8e121297658d
+bfcd943f1aaa74f38d43ebd080c41ddc92101722d829dfd3ea37dd5120803eb0
+67346b636815a8738403dbc18bb8d8164a8e450a7273f8164031290b465a44a2
+68caa510e9efbb71114e603718bbe415f2426ed24ba413b286c42902d8c5e483
+070d3a3c57058e6d6403697973835c78166a00c235f8b4a4d155e723010f7500
+a7179625d248f2dcd8a368aa5fc85600143ae81ebe8d901ef42702d30aa62859
+5ad111abf0e1e06a7939420d648f03fc840a51919c588be0f7b3bf71b51ec7de
+d081d0e2facc72d65c77fd6864a2a30748803d0558ed2bec1fc3a91710cc9f6b
+2c8a66f8c4eb43635926cb75b89af438f224dcc5a542c653790e2cb2831e6ac5
+590ba51eff5140c5f620102ada7e964d21ed4e7aa39b2735e67e1862227c6e1d
+a2210ea7080000e90162f5f52677f188d75022b9a6173aa3f4e45449348efa7a
+4d119a8c4682a1e205dd922bd9d65a5620a8d9d103b853d56b872122f3b64956
+5c904e6284d66979793b16c853beccf478864eb043cfb09642f0675d88e62aaa
+8088291e844f34ae84ce4a93721b4f262e0bfe50bc17184d4a2a469ffa948671
+a565c708a79a8da61041c5f60b1d82a50c52a6e145febdbc69cd0f32d81382ea
+b87fe7ea2ebab016e169e5092c277d28a0c1197b760ae2ee5e307fe6b23d1206
+05e03374afa65de773c9b543d6b6321732a158873823aacedac38b2ae5dc0dd9
+ec0bc159c6861c99b18722b6c84ce81907ea32f1d8434b6cd6c68523720859f1
+c1663a921b7da0de2a9775b181aff992ab12e1a1f3e454e7342b9947d893557d
+ea500f36598d00064657c8b952e299d679ba20d0583fd6869f1314956cf2d1d8
+e81a0c20556f28f8729adc075535cf1006d8f1750e479ac6066823b31e969acd
+c75f62ef2704db581a7b4fbcd22ed0a794b52494a69f4d57816e604bedb0c1ce
+eccd3f80b6b50c76065503f13c1dd3834d7db2bf297b0c8b4875985310ddf076
+f0d6721fc205c9c0957e43e07ee2cfe21647a2bfbab8136866c9c4ec51706d04
+e2408e72b6106f02085e5213c5d88ba0b90e0078fcd4a4214120820f0809736f
+4e3c06c6e0e6b4468a4089236565ad25a85730bfc3e476e5f0a4de180be7a504
+ed02596543df24359b7eab8e5cb1af98528d4f0fa8df2edf90c2c6d75600bc94
+61924029635fa8e2bf07be105288333a93a0a70a6c4a7f6d8d5f3ee677a01747
+8747cac65a57a0fae14371cb16fd6c39baafec9aea1ceed0e66f30e5f4b5d0e8
+d9d56dac6d552163270cedda49e5272bc389831bf07fce638f7299f5c0fe332b
+7e29089d77b0140604b8ac0377c10c0020468f250b3f03bbb37dc29f5b1cb218
+9063b8bb0f278aff414a86a2f8a18ff13ebeff00b4d723e490b2947195648367
+e0a7dfbced6efaa53ef849c79dee21e5665409a44422c3a36ffb74fdfd1017d3
+1c32f9e269640ac36c3a519db5f76198f1af12f71abbdf8ce85e7e6c2adabe4b
+47897cf24a1c7b5934494f07790965c18296b977e332bd853232f2e2be755f36
+ab8b1773964a689e1ba848f9f7f01bc585e125f00b90576ff82bb1bf90557d06
+4d38079520d19dae87a298514baf1ed00b89467f5fd445762b80f1ee8e67febe
+8b5b2558b32ce738201712612a56d824983eb5403a706383d135ba5f1edce983
+3b81465b34244901802b7684ab914548c88c32fe91dfb0917751d8435058acbf
+0bb78d11118f14a0b9411baa1a6e04088543e99b70130884ba971f4dd03f1aa3
+f9de4b1935663aac294c9597ae21eb145db431fffdbf163b23f3c2675662c37c
+a63569a818d47b853b59983c8b6ee24560b2c7d426283995d86a7dfec4b6558b
+cded8a74d214bb6c86cfb902ceadf6c5feffcd06777dd761f9f9eef09e9a510e
+0da31c3b847130961459642db3e533407a19ae3600973e4f70ef0912c462769a
+e399ec9861ae5d2a243ca6538943520dcdb2a86633f3d95f1f14e6d63126ff36
+1fd287539c686ca9a6e4b46154467ce9cf10eaa3de0efefdd09bf305a5584c29
+dac82df9418734b01cccb57666e0eb5e5617effa3059fbec27d3dff8daad45ee
+bdadbd272ae79909a4cd3476f9e1275298429dda620c15b1e229135a472b013f
+5457269b9682a3d41e20c66eeb7b874f26fa9ce0b2c8658937711366bd4bec4f
+30a14bb1feca238ce9476d66d1bf4259941f61a7de0feba45e5002a9ac44a758
+7fb206277c01f479d7cfce8809687aaed92f7d148432ce8bac0ad62dff764055
+4d59e88cd83022a8a42d2cad6ec197befb73669db969d468e7519943f53dd324
+f2e9795526537393c3e5298b9f4e9961a182a324de0d8109539fd483e1c6b058
+8584a30cb5052487ba59b78e2959b3a2bf30db1374d585bdda52e088aa672af4
+0a933c94ce9b9f63fc83ed72b19ab818cbf269fc03f38dd982a48b8206307a10
+e6833b3cd33869526f10fe1c92f7d0dd56c163ce8f04442cb0df0e496f2a1dcc
+ba88d0bf260c0eb856e081eed167c6ec1d8105b2d3f173d367cc27d0f26fd899
+95a2edc6d1a215f57847f7236753fbeab4954510ca68688e51034121f2cd0d46
+c7b8e89e138fc4ee229245d537f8f5009b76d6117403e10db46109c7b58a67e0
+c14e6347dde8242030734d02a5c3986148528bf20973df3d17da67e53334b678
+643f09b7f887cd9087a6f635fa5fad0a2ee43668a8b1973a42866a399b280787
+809820d0ab51787df2a3907a564d10faca4d9b6349c60852c06444fa49f8e256
+3adbb0efe7b8250142bb06fc4c93c81bd8b51f8586afce9678d4373ecf051908
+e3435470c360935180b80b2c03b5033e2ae1b256b426e09fec5f902f7a8878b3
+ade833ea39ef3d0aac1160e1ac3fc15170dc3faf6d17664e6292c51b268666da
+db416e5738176d6cef2152b529c6dbea6e563b5f7debda3e49ee6efcb88677ea
+2aad003cf5286b21e648ec332f0f0579ee648925b05d50261fcec1bd57a22e58
+595cf326b5fdb2ffd9b8dc794c5e7854ef9ea34411546d28c5112b9de1c25b86
+1233341b2cc117c9c310160f612ac6f13f534dfaaec92d6b2cbd9c3f3c0ced06
+b910260f7a2dd09b1b9d44346cc5a7d10b4d637275d505d1301078ec936b96bc
+cd9a2b783a93019c5b769c15636cd94e9d4a24bea9521a41703fd6f4ee8e362f
+e33e21eaff8ae02debbe9d9b379b7aa0aa0fe94c3320ca64f41fe488fb58ccc5
+f13314a9f8a8428dd1d713c07489bb76a462e9c0e237fa5fcdfd3a0349b6b770
+67f055b7fb0f28953384537535177d190465c354dfa1280fb3e804d3fc0d6e2f
+a88a5f2829e9ae07e9f7844463ab695da17806c271e20c58939a04b5f8df4396
+59990d8d8f885f3a7a43a4be49c7abd03daf5dc78ce66acde634ad08c33363eb
+642aba7d9c34c71c74cccbf7f4adf9a201e203f6540bc467db2006469fca0ed2
+234ab1a31e73fc05e8d8d906e40b3055b3696d72c48080934cc62e8e850350e7
+0cb9558cebae7eddf38dfe79fb501a6ee6676f9b7697fb4a90b84ce04808434d
+244ed68ae441f19ffcb2e0e62db832c31f7ee26d90cb6fea5daa44c297e51e6f
+9952c794562bf286be8727262e515df58d26bd9b97a5ecb5641d517de3594114
+3757645d511409808347297fd5d84e4bc15951589c4e272c6db003b51628d375
+3dce430c6154f4a7c5009cf5aa61d9cd61cfe3398701b65cafc9372339e6642d
+01c461ec04840a4f37e8289a232b1c06d659ab081c25cc56dcb1b914edf4c7f2
+3ca7598b264309a0ca15f079aca4f69630c6ab6192edd8a2350d3d1f239fce30
+cec5c75979716e22a6b3917e8f0a05d75f8d1efe57e71836ef46d41e4cd87f11
+cd8857a3821e6a7e4d596c39739424e37535699b423a22cb07cc47041d7b9726
+0181794435f38cfab11a7f571a725d08410107fe3e53b16caff56f14b35ceb13
+63ef20271620260552b0b9ff5acc9e8c508a0f07a4768ad177975f80d7eb3fb9
+2b04a9ac5fcdd9738982dfe4b8dbd646d0f1035589116e961e1000b677df7b59
+8ef17fb7442e07f625cc07e7b7bd4fdfed5cba26ef286db92f99ced631ada9b6
+e4ab3654c549d5539a2c6b2bef7d9685f6c5ba2ae5273d15ca66efc6fc14b3dc
+2fd47b50e6fe3678531fe11b861da29708943d8914ec5b164edbd2b04da63431
+4aa7ef8158c3f4311ce9ffd5973da94022c33e3a69931930572fd8da9dcf8ab9
+15cff613e7628c5773652d55c64e1dceae37c879fc17a35028f33b8d14731dc8
+32193b35d6eae7b2b5bbeae7daf05b3b34ca3235d81fa537eadc80ddc32567e1
+5f80bb2a484ca51aa8f3c853696a740c271e1fb34d3dfa72394b88ecabc1f4e9
+2cde907a139a5b57406daa97aea576412937ffe4e2689853c7b86fd869270b2f
+ed848bdb95ab3e04c77836021ae12bbdfb0bc68c09aa4f5b607d8b724c24cf6d
+cf4f54222cee4ec643f1d4024c398abd99169de91191911aefa67675c21d539d
+b7c39462fe640c5f9c9eb684c6037315b548dd49f0c35252f2e9d5d4571880e6
+6cde49fa9653949d2f28ad44426978a2127122cd77b607e9d03c74d9dd7d11e4
+a9ac2e3457fa9c79db76ad398ad5743f6e077c36423e0dafadd1d391ee4451d3
+f94ec65470bc74fe2d2252f0540bed609f760145914e9437d9caac61be91f76c
+5f1979c9c6a6f73e690ddade3b1295251f0e9dc3100cacbc3ec17689a8ce1aa3
+089a387b2727035514f69e27048aac20a38ee49abc7928d0109d3b230b37f609
+2388ab62ca5b382db76922cbbda2d61b57456880763654b4d83478db9c0f6379
+0ea68f5c154ea4853d02b9a849ffd65684c368e68c6cedcd85bf1f041eba86e9
+bdb490cd8cef298dba42ed4fafd561c2cba47869505575220b8e3390ba7d411c
+2bb7b16578a834bb1504cfe2644713bb30f2c76d9db397f45967b8f146e7c478
+2b203a97be20412d4b2b6d53511525292e48896bc91d3891300e48db9b7a650d
+b26fdf8992063729a8fe4e8c6f786ff4f4bca2018c2861de6002a8d4954bd7ec
+80ceab7dae6cd07586e733b1e862da8b1d4d2b0381058a810522c303c06ae34d
+5ea6f05c97b4fdb3fb1dee799511f2ea9750d53e2a1ecb6058c9988b55be1e6f
+1b682c689c996749691b6057dbceef6ab5efcd604df7420eb44763fc30b48128
+91fb2b67402a24dec15ba326bc89e6c574597178ec7cc644fbdab6493e545d89
+cc86bdf8826284e8697d2417fbc5630cfff686e9f8f6c5f7788e975fa9f201ff
+d1e99b75e69c2395f2eb3cd74e2e61b44049df0b65f91195233228490ea9b938
+0800c1b43905b862770dd378c920cc3eea51351ddd3ef6c68302f96dcbe3d740
+f4a3e359419599817fe10e5ee241b516a7ab852d01b570ca085d306c75ba899a
+5be0f5bd883b1a6edfa8ea72e5f66878bfe1208151032ade48042f2c7dd0d662
+20f5ef66f4d3bea1014ee7327242f8a8d948750934d22b7c36b2cbc01971d5ca
+b439bb320d7831fef3c9785645d9996615db538084c5072f2d20f6a8909c248a
+a6d34dee11c91e5c41c931dd5076c9ce87398a58ab06a1aa7a07ddac01b73095
+7dfa34fcd86188dbcc7c8a94101f09209e7b123fa9d671222bb65eab845f7787
+ebf82a0f59a7eac3ccd936f54a048aa9e36c983fa1376e1f825fe112d4fac62b
+ce3dcb285c5138215eeadc3ff9504496aeb0c443dc9eb28c1c3f27bd1c449fb7
+ecc661697186f9c31ccb922f2b9c9cd4afd63ba3cd71a95a52cccd50c9c9be17
+a47d3123db4898a75275d93d74eadfe72b7be3679fdd9dad4c885196194dba0d
+297f80331b1471ef61a839dfb26fff95487496b4280d02cbd88c1dfabb04f982
+07acb5e5ad8b4d4d26fc232fe653e9b30bd50930833e2b9d72a7a3c57c9744a0
+992131cf0ae770788fc6376fb187eb6f1605cad55b40d0b9132b1799170ba18e
+bb01a6b92d5ce2580e5d5bc15b14113cc32643c7480517ac33e95fa1b3183286
+13709d3b05296982772b4784b762103e906eabc30a8c542598b970be13d8f79e
+c2d4229118b8a71e708f049b728205008b75cc96661b1f19cb27320e6231644c
+abb8e8a3c07add08a88f5bd1448faece9c2e9e959ff42ab856c9f0c45b170d4b
+d63743867ff08d0bc568d473801e2b40f9e99da8df577732784b52faad058930
+33ed069cc2996540e9bae9916e139276031e66e1ed34cac0228b8c7b8e0e0a8c
+9cbdedfb20e406d5c2698733f1912be83fc517c9268d3287c66d5059d84f5260
+4387e0684850da394d1f2b4bbfbfdecd45bf88738074512a190570057e2275ba
+2803036a91f9a32e64cd7429aaae7dd6d28c3159694901450896d483717e9ecc
+4820349ed3e5fdea88b1f9ae1a7e9a9090dadb0dec035ea6ea90399f3a942e34
+01ebe5b483cf0779eca7685e8d278cdf6ea2fbd2a7cbf18314f5257756cd3e34
+2479e3ab75a6dfd4f9d7c3b35ae5042a2b7fd3cf5c93acbc3167bdc9a7f0d25d
+0cec8f73d79a98ee89a769e5a41aafe97d55688f39c661b575a6601adb6399b4
+3dc5064d54f07e8299627a114254b11f1e8ddd1e7783cc7cadb44a96e8e54cb7
+2a448cd387facc2be66a5d9a4583ea6b1c0e4e7685739e22f50e52488ee8d389
+03e9bdf9ced151ffbab79c1e159a06c11c70d91e114add520627460caf3e57f7
+7063fcade73f05c563fb50cbf0f2913b6899926a6bfd891e986fc06001c9d807
+3a781f0981fe9d4c4d17e49d1793608913238cbe6b973f9493df8c7123702646
+446944399ee25b1e5a40d3ae74728879203e2d5f005c3955382fa450b86a58c6
+8bdad3fe1793d8e184ce250070cc6f8c21e277dd506d4c8064374cdb89d4c5ef
+1859ff45bca98bb91fff5e52bc1458991e9c296ce2f8be62b7a34d2ade95004d
+86abb1925b24296c39130971b68a2b1228eba1575447feff25f6d887ef14b66f
+eb4a377f60681a4b44f63b6a067e367e379628cd7342d80b79913f4797fea650
+6a56d47ddd7e0ae0b06d1e9d52359ec8d1fff0502d3d7898ed4642974da2483f
+6d5f4f48fba2862b9684dad5f1fe7434786f28446523fa121e0445942ea29694
+e03f2ce367b6ef118288033b36f87cd456f566a4767d31794a827595ea4e03e8
+05a5d0255463ffa40893b34ee0107fbc6cc1d25215a70fe0f9b5526e65c3e503
+76d9555bcc9f60bdd3ddbafaecefe4659abce230efcc3bf8bd7f7ac3f5cfee3e
+ad7e09c9f2027dd12f7d85837c9a693a330281d730982a1a2b854d5bb19879dc
+69a0fdd1033a7a858bf14c949b17d26b491b123f3dc89e67100412dd9dc767ec
+66fb690ea83850b80dcfae83eb437f5a5f4d22517da8a21075d6a0cb1fca9444
+6c8138fe3f28b8bdbeeb3dcd67e4d6c9ab249f3bcaabf7effcf8162c37f3ddb6
+dbea59d74d515bf19507880f19f99ec7af622fd9ace7bc075d853517b494438a
+d1b7ba2f0c696e77543ea59f951d5b8c2d364da095f4b174c878fab8ce90b031
+2fc2d3c62b4a9f02166fa0eabc1fdfa7839a250bf3627d3ad5add5bdbcf75b27
+1157e012f723a51a76eccacccd693f81590d99fff80b21c7febaafb921c0a91a
+e44e8c3a870fdb69b2e77a65d13626a3113b069a1382aea90c6076d4d4b55315
+3b3ce24d1382117307e0d1195e39ab8058e44ddb927058a8d71ae41b86add469
+2af0e852f0c1c92a6b5cd4e7c49c7774bce30e0f52564437e6553b1e6486fe7f
+8dc97451c934c3939eb137a8ec09486f10f2a7fc4bd3acff77f03b1d92f19a01
+5ff6f515e9963c870db70977f9b697e07ceb75b9ae87b03fd70ce2008b941924
+def627de71f750ef0f378cb2648ea07174e62fca3fcbd6c6f1f91c9ba4eab493
+e28751fbc57d68978f553dbd6759fa9cca70ae9a7372a70cc6ce35137cbe4c28
+9575555d92083e92daa3845fb214dac0fdcb355a5c08a1f3647c85e3b747f1fe
+a12cf8aa1d2162e03221bdcdfdcaf4b74dc3ece1657cd9819bc34eca91fe1e79
+87fd75d3e434307b208f2077457e99134e108e38b99b6d1d8dbb530d3ac7cc58
+11a7fa92bb080d8e2a3a09cf3f6452941d063d275e2ac849e0b35b39c63551c1
+90a43f3c3564ad6f153c44f67e6d50e311ed225861b94cd108d278a4785632cf
+7e47e89c8ff43114044ca9d48bc15c5eb1e9d1dd3965b84a20522340f81fd0ea
+60d7b763bde818b5f95226347a5220f043b89dbc6a41df825ddbbbb05736f770
+9b752b42a1fc78b1dc61ef6dfde867c1ebbe0e7f332c0bdcf86b706c2089efcb
+1896b62adbacd8e2358c75060046a54784a41f66b5dde67806625477fca24396
+747db263092f82314e7440fea9ce8630fcc10d7f4ba6821613f64a16d00e4bd9
+bcbb0ebf087c2a88720504cac249d2b2e67a823c4f34260a7672e8d6e7ad1688
+06779b39ed0847e82037af28416ad3b5c5c6823ed9d1912a6b45874e5c67b258
+dacddf6bacf5d735899ea6c62de3bcf40145859a58c0d744588d070ab252a26e
+87fbbf2ce51e95e5af46af3eedeb147f75ea1f698b2d3f582b76381780e2ba8f
+6f2aa75a0df480a0b5bce7c3ef61755a4d9bfd0e9ac85cf716407021cc32cb84
+c16a90c37e83eb5f0d6b7beb221fdce3f9a6701f6ba690748f767aacd6f886f1
+b2a54037ae8d8b8546e9dd0ed71c2e03b1148bc4763f95ce2a92f2e29e3820f8
+bc5e610200fbca96221ac7ce0e8de251618eba754542fb8ede1632d48c0d20e8
+82f915be1f742eca7ffee8f323b05eacf81846f87cf833e6fd877e01172686bf
+92b875fc6977b3d524e8d8bf0215c3d72182bf368c7f89506b058a2a6042cf86
+d8de16bb8210321b5cb1cf42cc5dd52e29d82d9e84c957e52bae129068a6417f
+ac32427f8c1af08e2cb44f7cbf3e8b1451deb7b2cbc772227117736d41ff4a67
+72569a4b2c2c48908a1e36fe12d950521f269a0dcc4449db961e101d3203e88f
+7910663b7c672eb85f26562a35a26871947b14d69f7e09153f1cc980f0663644
+c9ebe030ea871399577ece5cffd2b7490ac8cbc565359683207e92d072854e09
+4e718ce9d4df1117a46c223a5f095dff3c1721b52502f7366170444898620985
+add2cd198b292433c88acf33c022ac15e910e56eb3b821341bf3adc6fbcf1cb7
+ba72a2318d1c6d36810768674c325cec8b2f86e19a0ceb0664aec6e1f57ba295
+2de44c1dc85fa8afba808459222c7608842d4dade3c8d21210f366bcc222ba7b
+a907328af3304f9ae2a542fe84dce9b4b3e13c23e687bc3360e578f660f31f94
+8694ecb1766365c13beabac7b589d2ecba799491735b417532e392d56c9de2b5
+03c2a49cada4280c863ed36cdf747d1badf31aa0f4c6ab910bfb708f2b3d763c
+041836c9c4792c8cccf39519f3b80bb20c7767314cfe03c5be8fc81aedf28ada
+7c576135618bce77ed1ed0ed1f8804d4dafc126b4e9483e61917775578aebc58
+ee5823cce006610ff2108e5ec5e9f6ee0b7b09bcd064a2efcdf71cabdba10d0f
+e3df95a68f85965cf756b19a9664a167263b2751a9b7ca9cd76905a9a16d0709
+12c5fd49959c93601de4998fd65f6b506b9f54a16c92bb88c6ca8751cefe6073
+1952b2b9550251d0612901121cca0d3a8a51d7f1f5d9c771eb86bdce40acc8f3
+5831c9e5ed6f5d5332275d01748f88428e97ddd24a036cf030a8d04e3eeb7e86
+e6b6e6f01bba6ecda8b4806db2db9d053ca1299f5c6d43a64ade6a7a6f19ac60
+8cec86fd93407d6bd802ea487d7c46e5190b6b34266184235859250e09c49583
+f8b856ec06e4c120a0e12e4e305540ac662e171dfe00f687eecb571d2de79473
+e7d22fe4bdb30b9a526f8d68b4129d71fb1620cb3182fae6b55625f9c2664aaa
+3ffbf9b799e2fc92ee7a19c5e37f0ef4b3a6a902cbed35e34e86d9b7e5e41e5e
+cae9876a83b2f2bfb7038ea90a232af9f300bfb6a45f55d73bcc6b9e5852395d
+5cd5c77819c568741a7fdba3a2ffc81fb1b1ea0d4d9b450199617ffa0ba8ce26
+feaa16f62cbd663798fbb3cd164d6ee6e4f505067c0ec75c1c5f81c699df4165
+633e0708f8cd2be2280350c902890fade818e5b31a6fdb45f7a6f8e5f924b4d6
+70b9e3d4efe00d2b04d6f433753454b3d3efa16276577de3f28d146907cb6c05
+570a6d4edc284093a4b2588162be6bc867a00ca1a9254234766503fcd3a0e29d
+9c5676eeabbb3e26ff091e21ca21feb29365a56b6960e1e76796c097d8045426
+1fb63d5f941b66d9dedff932793f156975004f36e2d91d2203049e5d9de711d8
+32e78cfa18e2b5348b74aa8605e6425d8099c6b10ef3e4a299fb76f028bdcaf8
+adea2e908e3535bba4b42a905f30d13129209df390139e3c548087bbbb46621e
+71cde60f450a8c61b247cebef47b5f311b3cdc843790ca79dd6c72ae76a679af
+24d36d0b1b5388485f880096057cb6287845ee438ce1e6404c5be7371eb6c060
+092acc76ae3368351d481984240e51e33061f1d9fce34a4c65c441f5b4e4d078
+1103ae0b0cf637ca2ff26182b855b696605fe114ab2f7de5f016e396b5a4fec7
+9f05ed451eb3ea7cf718936e0cfd2f9ce7781162825fd98be70c3b16123f8d9b
+0c970dcb545a7cf6a8ca6b4fcaa319c6c4256b10d6d7aad9893140122431f2b0
+068c10d0398f55fb91daf2c624a716726513eaadc369bb29fbd1b2b7dc5324d4
+08b0b02e46acca565d1413d1f65f545603b06e28637c326053ddd2b78da99bf3
+20da2a565258cc9f548b2f87511c628610aa00a6c8f5cc5ba2ccb13bb9ec7f12
+3ea7fc49efbeaf5d7244eacad013a08d3fe370767128687a488302ad3d95067a
+f108b76886ed16b59e7345dfd143a24cbd75e828ae300ca7d24437d4a5f0038d
+d5265d82cbf39a4f8f542d491486f5bc356693166590998641510ac914312d22
+803f242311dfba932bbbca9df24b56eb52209a5a9cc8af2688b59f348e7b8fb0
+8281143b2c849bda4fbde9d8819e97589ec110fa9f31ff85d07b6d58d58ce5da
+c7f22d0f97468fc790d913622007dc8045e2d05dccaf592a540870fb4ebbce3b
+5ab9818d49b4e40fc919fb8fd87617733360fce02fdba5e57b33461d5e085569
+129b5b7b657db36d29e3f87e17e9c7b38f6f1fefd369d314e329440bd0ac2669
+7b34d4e87048ec54f7c381e66c908a658ba83a811285e93e32bbc6c641bf0f24
+12c276b85cb18fed61f22aca7ffdbd37b994314ce4b711b82402dd26632b7dc3
+76afd3c4d66be5e40e282b74fb120f6e4e144d90404c7a4513f2ab180e00fd41
+0ab9c10ce9b1c2a8ee695e4ceb0f1472a959e70899b1a07dccb20546431fe6b5
+41a05291d5dda490991bd3560490cac148a2d623903b630de49f10dda865a74a
+f0866c2fcc595f6fd0a0cdc0a1465398818c46554c37a4cb1e543c4760e804b3
+9564bb853400d0e1e9daac58d0577ae177726d1b9075bbc70b2aecc2f7f44d34
+f4c691485bbae03e43e8bc5535ccdfb1cad1d66f38a49001c4cecbd71202fcc4
+7bbd3b224812c677f4f9e4fd523d44efcfb05a57e45ae2078e3e16dc785125d9
+55d3b941f4fd72ff547b069eab30bfd33e3eff0686fc7e582cf73eef9866d6e6
+2c19aa005f734cd8fcc0a012f41f38107e135ce4c0ad8a8b81101fe4ef8f3206
+5b2c279a435cf5a032ddcd529628509fb6773b475dc13517625705b5d3a9d9ef
+6995a37dd3f0d6ce5451845cf9151c40f99060ed58e0f2cf5d6dd71944731cc4
+ed0fc72641e287e295cbb53aeefc3ff3ec0a5dbab8c3ad31e5f6b339c1748a9e
+58851f6cdd6bf091227b2835761b7d9a10df0242a7b61b39aec0a0697f43794f
+bd2a51a66f860fea136a9d7dd82b42b61710909104e0fababe3f5485cf1474d4
+94b97508dff80a698bfa58ecb590d8c38873724bfba60fb1150b04282ac1022a
+1214e9513d27c5d45dfbc47631bb27cfa2806c2cbb130dda940b65e75f956846
+f4e6438773c94e8eaed71eba5e87a886da7a846ee29a43cfc2d130a3feb47620
+91b6ac357c973487573a230dff74a29e203bd78b89e1729b747ff9b58bf1fe5f
+ae6dd70e9da091a330078845363681ac2ba501286dda2038a0fe2235c1065614
+3783d50129a728b4ec2c64405b7c97ae562afa240d35fd9e3a6e034683c60f32
+ac09968a76c775d5547d85d7a3168d6f19f12fe132deef497e90951a56cb17e5
+43a76f8a526b1b7c481ceea4f5ffc637da5ce954a742bf39837f08dfd7156a4f
+4e4805494c1957b2577adacc0d3bf9b0effa5860f454ec947625e70d7e4e652a
+cf276f57f2137f451540adc35d501cfc1f7597a1502a198ea502d67e7886790a
+84dd9d225e83d9ecaa18ff9effa77aac3ae57d034e67cba014c5fe1e3403ae42
+77d864856fefadd2eddb1161e8595db1b2ca6ccadc4253b95300aceffbf9c3b3
+32e1ffd71b91898cd0ef1b9f64c3969ffba7929bafbdcccb943373efdba05700
+3069c4accbbd82df6ed1624fb8d0d4b3e561a05b13550a7eee9ab35e47e9a96f
+e49ec2716aa68224e3a65ae1e96d530fee45054dddcf949e7f3977334e3a9ae4
+59085f366393d232b2caa244b029f2bc602d05b421e14c08563c4296d3e9ad32
+8dc324ea5685e2fed03dfa3d3aff2482ebb368484ff8d01553cb8d5686067f99
+c5617fa2a7f6f183f4bea8c1ac39af726341501ac8875104d11dbf241b9dc992
+9a8b70ed71bd62afab7981e452086163da2de543e52d57afd080afe373e8e321
+670f8a474e9dff36441f6c1a4d2ac6da6e5c9ffc0c4ec9cdd8614c2d65d55019
+378d678cf46f483fa9ea0152d9d3a12175774b56b11be03362d2a36ba1394597
+9c64163a696b0a6cc760bb6111ec47d0a5260dfa7fd147ff35ab84da889dcf4b
+a4146647d5bf8773096fad1ec8001a6085c4f4721428f4d4b85f1c03c71576f4
+97d3a5a99392c647dd42f8804da5d33ccdce19df1a16c143c449f1f937f6f75b
+05abd0ce90e4ef696e1bcefcd950634e414dc724b0084bcb515cd4acd71a6cd3
+784a402c3cf3adaaffb763c5f7e17bbbe19172e4455923ba48869b4d9d0c1eaa
+623d9c728d887c15bb8377ac74239efef6389ea10c7c8820aaf857bf8ef2b64e
+aacf096b742adb9b666d96715364cf18d88ad8da6a0cd303557f04908cd28d11
+acb9a730aa3a37b6028914674816e6ac076c4559a84880e82d433a5f5722531b
+0287f11b24ab4cecc2264bab4e6601c990e32e1c5f9aea52ca222d2698507a4b
+235531c3fb7e9fdf6fda186888a74b902a0ef3457537233376e8667035c092cc
+c3797ad2fdfe1cc8bd71c49b91e4520091922ce87856f1dc60a209a9bc9d97b0
+141d8820e1f3b86bff25cd1ba07e5664d32c09cdaf569ec7815f41e0e8731e2f
+ce769bafb3a751b3eb7082c4992a4fd8ba363d0888ff39ff986b80d5568cdfe1
+deeff98cc54f05b842694be023e0e0507de47ac1b53be427d31e0dc9cd5963bc
+3a5183c54d8c9046068bd6f300f4c0cdb8cb779e6828271dbb9ee44b70bdd1c1
+b5a345af01e5e9a74260781aa473199cefb232ee9c60d14da8c5d3d22291a33e
+592bb7fbe5e9b28f18ef70dd0877dbeb43ebcd12f9ac95b7d46a2e0dc88e3b7d
+34c6fb321593e7fd7c070d44037b2eb5c5e7f40c2bfa3a282d85932c19d3c3d0
+7f5bd37c5cab34816e9b008bb5988a1703dd971ac36a0f1c61de0828a6108a14
+54a17e63f68fc5604101184faf38061c515c0439010551a933ce9701ea75a59d
+88310c564ca3c4d9bab34668c6ada1792c550d08b0295e6a2ac490b06a3ba911
+8aca61a951bdc06eb5ea612992bad973ad703f5b25d1007f47cd92e74d824140
+ce1a827616df813898fbfe32c87e692fd324fe78fe9101b1789c8c094207bf77
+c29016ecc3734e103ade9fc7717ed2e6979be347f72a514b943a7f1101ed25b0
+afdcd6c8374182ede624911f458a5ea76fa982c3ceda0195275dd50be2ab3fa6
+2f5545f802ce3784159e281a810b87dacb95d4d75ae2eed997dad39ba7346083
+a046660f0d63d4416ec1afbcdbfe18966b4c4c109d5c9e9dd7b1202d6aa73afa
+fbc169e752db200656fa28a29a9aebfa1d4eaed03478778afe82e0aa2db79ed3
+7af8c5b940ecc6a5fbf38762505235415b285c72da21f4ff986376e407c04843
+24b3a2acfc6d796ff53b5412a1a73dbdad921f402308041c18c5d7fd9705959a
+8c0f5eea851b5ab726748a6f0bae196f879a3a1a5a87f7fc723b7a6e85189914
+ea451e2be92b908afcd4be5d3d2c6c1c40984d10483a9f85648ca31977a4cd0f
+9781cea0ebfb97b8b07da6fe5694c32f0b5d23d58cb259e54c46ddabeaec138e
+c1c5922337b8cb2741341e3de7d141e7316b2f0dc75c1a62ecd7106141548c31
+f7b90c0f70106e4e788fce549dacf492225530f427a6bdff5acbae8913c0bbd9
+e3dea41ee41fc7c13796a4a7d32aa56305f2420aa9ba5c0a0425861f97fc2b0d
+586678b95f28a395fc340e5cb4d0de633e406347bb83e56126872b389cbd57c3
+59807e3ae6ce23c5f1ef746be92625e161bac1584cb79940db009844ea870326
+a7bb6cc8fe67084726e36eaccdd1a5e187d49e1cad01037e58eea820171b2996
+8a2e4a08352959052ef9ca920e736c7337d85a44a3db0da96fb9bfc14177afe1
+7aaa27b79e1c92b4d53f4cb9c277bab838c640efaf3ef4d95cf7bc614f3eecee
+d6a657e1fb361302500e5dea28e5b5ee4f3886c23f670090fca5d2eba7a5e4b3
+ed0faeea8a7e6dc041f9988d43f645bb388fbe848ee495b391fba4c0c3939f3b
+5b3203a5527f397ed758bee1e0f0ffe9a379de0fd8ca3db83b767c3baa6214be
+3fb012708f1327e1c96b8fe26597a0b8403de77750565067f42f1587b5eeb69d
+5024a807e98a3beaf5fe5f88decef57f2fad58e520d282adebd2051f086b3b87
+1f0839c71379e6a0f800c7022978c84ef6363b7a79b10386e38e8c7ddf0606ed
+85b780145fa4428da212ae5386205ba129ad33d28bcc36a0b6cdee13c37a6c2b
+7456f0c3402fd5b3e3dce43b479ef0f81dc571fd102be21029c721e414872975
+5f19cff14b1e0e30cefcc09d175af0811be99498f4a8632b85879af0e005495f
+ef5548f2a1f8c989140726d54ba1fb448e54549a2434a1fbd152e7df166ea709
+53c6595cf824cc77984dcb8f8807b7347131cb727a589b651697c32e0d52bfc2
+b36b4c050cf9a1ce072746992ea2ed9b052de1b2b9a21a89682b2be4a1328c76
+9dbc40bd71202d0287d1f8b909ad0e95e5d80bf8314b457a042f304ca33014d4
+578d50158eecde6821d1b672b1973393fcfcd432eeb0eb4fb362dcd9b4b280eb
+5ee2091fa3853d779edac21a120fa7e03b339ced20115f404c3a086eed187281
+ec31f25a664811e2b712351528c4f0abce55d29bdbc1e067c01cb44f8a3e094f
+104097c5a36dcd1cc621e3274717664318d99f5f5d1ea11959cc751ff9f3739f
+735a12612629bd3346a840dadf0a61567d880597edc22c70dd8ee5da9171ae46
+a8d1d78a64dd2e0f01042ca59ff7f83ec74e1cc0e786dc17a112a0627640b89d
+5f3ea4a57daa15e9965a81021cf737e0108267c404abed66d9cffa22e05c3511
+94a41913a0d12931f26477a06773829d8aefb25184755da27f5df42b23f493d0
+24cf38c5442578301ee65ae593127de8b9e0f19287015892dd881bbf034df3c7
+89470b567b7ae5130e821870e504f893cf1844fe400752c5ca00371433a36de4
+c96938f6b7fc81d26dedcbb7ad4f2519857a81d4f06f6a23a74825477c912968
+fc03b13de8517be24831c0e223a601ad7834a3ce0c7059822d1b663094aa1d7d
+e8c524d1e0e5558c664655454a3aa0a5034b50429c5a2af0c3c862c6d63c415d
+92b2b720cefcea0d0c6cdeb5cd89eb701cb49cd568e39059e7b7da7a85b44213
+f1060598caa58d8830df46c628b18f908de0c7360b9175f698ff66c5e4eecbcc
+0010f43c251001f06c45aaa3174c8841237e204ad5d7e1c403dfc40f9fd5f469
+c65625eba0bc5df2344228399846c285d9a96e21eebcd9ea38f25584c5d4b789
+3e64af5261656e3ffa0cb1fc10cb512328e87ae3c83ca38e9ccf96aed112b93e
+f8e4d5ce7bf47e8a800e00c4a0ab624dc3c03089bd5c415e8ba33db289f08e15
+1e5e45865e9ce2ee9e160cf3646726dd25d5eabc96b72a7d2c89178fb92f
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+
+
+%%EndResource
+%%BeginResource: font CMMI10
+%!PS-AdobeFont-1.1: CMMI10 1.100
+%%CreationDate: 1996 Jul 23 07:53:57
+
+% Copyright (C) 1997 American Mathematical Society.  All Rights Reserved.
+
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.100) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMMI10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMMI10 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 161 /Gamma put
+dup 162 /Delta put
+dup 163 /Theta put
+dup 164 /Lambda put
+dup 165 /Xi put
+dup 166 /Pi put
+dup 167 /Sigma put
+dup 168 /Upsilon put
+dup 169 /Phi put
+dup 170 /Psi put
+dup 173 /Omega put
+dup 174 /alpha put
+dup 175 /beta put
+dup 176 /gamma put
+dup 177 /delta put
+dup 178 /epsilon1 put
+dup 179 /zeta put
+dup 180 /eta put
+dup 181 /theta put
+dup 182 /iota put
+dup 183 /kappa put
+dup 184 /lambda put
+dup 185 /mu put
+dup 186 /nu put
+dup 187 /xi put
+dup 188 /pi put
+dup 189 /rho put
+dup 190 /sigma put
+dup 191 /tau put
+dup 192 /upsilon put
+dup 193 /phi put
+dup 194 /chi put
+dup 195 /psi put
+dup 196 /tie put
+dup 0 /Gamma put
+dup 1 /Delta put
+dup 2 /Theta put
+dup 3 /Lambda put
+dup 4 /Xi put
+dup 5 /Pi put
+dup 6 /Sigma put
+dup 7 /Upsilon put
+dup 8 /Phi put
+dup 9 /Psi put
+dup 10 /Omega put
+dup 11 /alpha put
+dup 12 /beta put
+dup 13 /gamma put
+dup 14 /delta put
+dup 15 /epsilon1 put
+dup 16 /zeta put
+dup 17 /eta put
+dup 18 /theta put
+dup 19 /iota put
+dup 20 /kappa put
+dup 21 /lambda put
+dup 22 /mu put
+dup 23 /nu put
+dup 24 /xi put
+dup 25 /pi put
+dup 26 /rho put
+dup 27 /sigma put
+dup 28 /tau put
+dup 29 /upsilon put
+dup 30 /phi put
+dup 31 /chi put
+dup 32 /psi put
+dup 33 /omega put
+dup 34 /epsilon put
+dup 35 /theta1 put
+dup 36 /pi1 put
+dup 37 /rho1 put
+dup 38 /sigma1 put
+dup 39 /phi1 put
+dup 40 /arrowlefttophalf put
+dup 41 /arrowleftbothalf put
+dup 42 /arrowrighttophalf put
+dup 43 /arrowrightbothalf put
+dup 44 /arrowhookleft put
+dup 45 /arrowhookright put
+dup 46 /triangleright put
+dup 47 /triangleleft put
+dup 48 /zerooldstyle put
+dup 49 /oneoldstyle put
+dup 50 /twooldstyle put
+dup 51 /threeoldstyle put
+dup 52 /fouroldstyle put
+dup 53 /fiveoldstyle put
+dup 54 /sixoldstyle put
+dup 55 /sevenoldstyle put
+dup 56 /eightoldstyle put
+dup 57 /nineoldstyle put
+dup 58 /period put
+dup 59 /comma put
+dup 60 /less put
+dup 61 /slash put
+dup 62 /greater put
+dup 63 /star put
+dup 64 /partialdiff put
+dup 65 /A put
+dup 66 /B put
+dup 67 /C put
+dup 68 /D put
+dup 69 /E put
+dup 70 /F put
+dup 71 /G put
+dup 72 /H put
+dup 73 /I put
+dup 74 /J put
+dup 75 /K put
+dup 76 /L put
+dup 77 /M put
+dup 78 /N put
+dup 79 /O put
+dup 80 /P put
+dup 81 /Q put
+dup 82 /R put
+dup 83 /S put
+dup 84 /T put
+dup 85 /U put
+dup 86 /V put
+dup 87 /W put
+dup 88 /X put
+dup 89 /Y put
+dup 90 /Z put
+dup 91 /flat put
+dup 92 /natural put
+dup 93 /sharp put
+dup 94 /slurbelow put
+dup 95 /slurabove put
+dup 96 /lscript put
+dup 97 /a put
+dup 98 /b put
+dup 99 /c put
+dup 100 /d put
+dup 101 /e put
+dup 102 /f put
+dup 103 /g put
+dup 104 /h put
+dup 105 /i put
+dup 106 /j put
+dup 107 /k put
+dup 108 /l put
+dup 109 /m put
+dup 110 /n put
+dup 111 /o put
+dup 112 /p put
+dup 113 /q put
+dup 114 /r put
+dup 115 /s put
+dup 116 /t put
+dup 117 /u put
+dup 118 /v put
+dup 119 /w put
+dup 120 /x put
+dup 121 /y put
+dup 122 /z put
+dup 123 /dotlessi put
+dup 124 /dotlessj put
+dup 125 /weierstrass put
+dup 126 /vector put
+dup 127 /tie put
+dup 128 /psi put
+dup 160 /space put
+readonly def
+/FontBBox{-32 -250 1048 750}readonly def
+/UniqueID 5087385 def
+currentdict end
+currentfile eexec
+80347982ab3942d930e069a70d0d48311d725e830d1c76fba12e12486e989c98
+74c2b527f0925722787027f44470d484262c360cdfdddf3657533a57bb16f730
+48bfbbfcb73a650484015441fdc837add94ac8fbd2022e3ec8f115d4b4bb7b7f
+15388f22cc6198efe768bd9fceb3446ee4a8dc27d6cd152485384ef5f59381ff
+da43f2d20c8fb08aa27ab2015b774db10dacfdcd33e60f178c461553146ab427
+bdd7da12534ba078ad3d780414930da4f8d58abefd45db119b10eb409dd89792
+3c6e705479464a4b310b58348c4b42393988fef4925cf984423aaf65fea9f0e6
+4629953bcf50b919d968d99bd185f83112b2759cc411764e9bde677f57c5ee5a
+c555448d5f81a16259ded1e11bf4119d53e8ab07a802df900d3a2d5ccc1c6876
+d29c5e9effb7af3ef83400b0910c07873a8c56fa7b1eb1ba426043b00cc95dbe
+dc6e136cbbbcb3f67509964f9f281ebf81fe5b018122eaf66c4a838487e82e18
+6e006093042848a903efb3469ab6b4049767aadb95c30408dfd58d8a10f4cb22
+168decd9f3ee100f07b49aa44c92139b669cc312ba20192454eb2375be6284b0
+26659d964b96ae82d4942e758027fcf23c25ed01115af27ce7f20efe2a822bb6
+84004f20243a49c9e93301fc21b80815c033c3e2ba58ef53da2157d524b395f2
+b37abca13bc6a2f42e824ab7e47106176b0d6db267fbb795ac7425582df2e3dc
+55863468a9200742bd7b552c48f8cf58bc21343bd3b95abfa140f33f37c6f3f7
+8b0d8a5154eb7c1f62ec598267f13e841a3e64172663935ac8b665d86540d316
+ddece329c008049c5e74b27d59022c5515059bc3b89370b1bc6a169c888bb325
+e0b74282d6f053a50da4024ed1e433271a32ab8c17d41c632b41cf9f3ecd5fe1
+24daf7aea7ce8a63047b245822930d517df7baaafa69d2d17f7d93cebd47deb8
+5405d720de0bb4dcae731a8e27bdbb6e6be38d168b7daff815acfc32ce367374
+bf9fd98c0ae5ba1bccdb84d94b5c173abc92f7d18e19a68f64a2241a0a163910
+8dc46b8a04ead17662b7bbff3d3d9a95d5937698573bfac64973dc8d8b8d9f68
+c52d0c133119eca4fae72f7553d276c817003234a98337d7c037c0f1bce8a804
+57113bcd97515c002d20f836fa086a3277727873ec2b64a92bedb01193491134
+b6692a08de4a201a3f11dbe070d797f7629ad487d2b8dbf89a0631956c93864a
+4460aa3bcc8ec6b98db75209aa1b4a2e2b1b9866cc7f3bee4e0eb0dd68627a97
+a3fe6141faf10a2ce00391796c5438dbad93fbd065d1ed7e8b7879e0d1be9ac1
+45b9aa91756eb6eb81146048072303229cb8dceb133e572ec8e2bc954badce75
+356ec8ea0c7f76ca08533e874bbaeaadb89d86ceb974a52de0f9a43480e50762
+65aa6ee49ecc896182e6091eb30b7da8cd0e3a26ae7fc03ba5c0d56526ecc6f2
+d6f691d84dc9e7df306863fe0b6dab3cbc588c28292df3f7a47d9c4e3652c72f
+6bbfb3f4983caf59c7d877103de7ad73f95a100ae860b4e55814f00a7026c306
+e85b8a48f8f69ca48ae710950a2a1f2892f31a3849cf917002086dca5f66b84e
+feecadaaceb33a0932e394a5e17628d52e725fc0c69e8b00c9df81dfa32b2970
+756d947a9f56831b19fa3a2f2795017381c05919032fc19a6b8ed2d0188dc359
+23f486a62c8ae61e0a5bc681a57dc20223629c0339f67d689b63d842909188e2
+cb82a4e0471b9f17cb8fdc6a6d2c3aa6fea17a756b4d4860fb72b50cc39cc7e5
+329dc202a5d90160dcecb7ed07b9cfaeb7e766887c9b93727e5df348fd2f5158
+a2424f443a8c72811cfc9cd9e2ce8219667d7364e85bb01d8cbd63cc11533cb0
+d14b793d5e1da99278e636cfe6a34ab61d4644dfb5939746f67c71ea1632a43f
+457583d3478d159400e04cb7bfd0011048ecfe912ea5b72f6c01f941c78ce1fd
+fe23370848d6db1c88d27c9118b3c8c8cf0bbf33ff12b509d3594e187f5205b9
+e96f9854002e8944b8126a8b2b41bd572e7fe727b10441f3b4b303fb57608400
+8df04128f28a3ba5bf987bdd3ad278f316615d70634c47e6c924a9cc634a249d
+1d57df395affd6b0c52468061b62ccb46ec8cf95ae99efa5deaadc48f433ace2
+1b45cb502f37f06ef95b4d8880fce2eae511e2f7130a96097066127391923616
+b95eb7e3d70caed613bae4f2d65e6ab1f81d63745fcfa57a9bc5788bd1288607
+539a0eb5d7c139fcac70436abe12b7d57c1d915c3ae1575cc7eedc26297231b8
+a510ceecd3f0b291782bb1c342bd44219f004ac2f1a869f1448354be54dd59cc
+8cc8deb38e3b8f4899845da13ccb707cc10d715b01cf3d7d3bd1246a449f90e9
+6d40bc79f879b7af43b7a09d9dd4884f7563910e4cda099284cf094d1d024658
+3b01f1e687f0a365b463e7c7b4f370e924900712b02b20792d0db404e08ed5ab
+bca0f1f447292857a96f3f73cccbc73f223c7ffbbc96e095e349cc72d2a37dc4
+0d196fb55782050e83c7097617fe0d2c663d32a7f03460ebf9e1904a12877ee0
+d4a4053bd5b673b3b65bdbaf76d7be76e4f49a0c0912a87bf7bfee30bc1e91a9
+55729d55b0691d2e573b7ca693ada3e865e87f4c48122ab163919cedeeab29e8
+3020e4391d5900ae2ff0f086ab51fea2fbe72549c4cd3a674c8eec28af24ee31
+4876f4ecb7f161cb9f55a2fd8611c48f3e8396df873d8efd9141474a86b8906c
+c01736588436a3636933ed22c8b8d97611d626ba7667b33bbb0ddd4ee1fda2e8
+9a3f03a18516456c029b96ab181f945c6c81990e19a732e9ade2dc846d19386e
+874ecf08f33c48c812bd31e6056fb1ecb4049e6c66a5fc814a77709745e69a64
+5627d45362e798f3336bd9996c42b37134ccbd6a4bbe9d938daf6ec6240a4c4f
+4dbd4e681c77127b4d3dcbc7d770af6fe20529f19fb6b332d0b6cc01b4e4b2ec
+fa05f2f768775b311574f662c4487683a979d3a65e824e55eecbf4789664ee97
+1b374f62f34918524bf9671a57c8a7bea7518a1d5fd3b27a5d116a6b0f9e3a9e
+4ce276a5d103fe6a4fa0e28b6f68f5a4d89c032b298cb03ecbb2e1d94a4199c6
+255d93bb029afaa00b7d6e658713faf433f2777fa3a0af6f898d88a4d32fc6c3
+e0d8bfc67ca1ad7b9d6fec4a2a99325d83cbf1f6165842fa8d033d7682ee635a
+5dc1185de824bdb8ea5bc7f3bc046e83527228f17459ba440f783d08f1dd156d
+c0bee9e8eab6f8b9950c39dc03000f0488ea4071047ed99c550fb8ab843aa639
+b6289b7284ea8e69ac785aa88066d9f3d4090d01878d960deae07c2a13b80155
+56ab50aef2bb8fa969764d3cb40ad44d5a9e548de2bd511fb8e38ad40181ed28
+8c8ff88b04120295677dc6228939dfc33b7764ba80c32d4664b661d7407309cd
+dc605428a7f4ced1f86708466e0ba2f05d4dd7244a803341d0b0d86e48decc59
+25a75dc331472bbf13e3d024b85ecf438073303abca65b8309bc57e64aa97c24
+4f6b89e82b17f68d520e28182f101116f48a34e349107dcc6add53f2084cd427
+20e35946f520e56669bd5eafbb02185d6eadf788d2aaf54d2e2c2ecacdfc7c91
+765baf663be838114b333687a1b7dbcd498c8a28876426b354e6b5556ea862de
+3c0305645b75235a32a2ad5da5c9b9ca573d6c88a3cb4ca8847f60f731454f26
+4150de6efdb9be02e6f5b868dedc1e7c55f2c46f99f80afe84260b4d94fc5947
+754f7d98e96d932dd3d13e78adf22b9a06360b38e7395b7e2339c07fea445f16
+c2022c0eb8cea6ef469aefba3a398fbf747f271c26e1870a86732e4d23b9bd9a
+564cab079620105583fae5eeda2b5395e39daa46fe5865d29ecdbcab4d5fff23
+6ca8834777b0d1cd347deea5efa2f387006125e46af358867e7cca258ad4a522
+2373749041225381d44bdb3bfb3661fc5cb3ef365444b2d19559411e3861c346
+8ad08a3330d842f16439e1c7cc62f639eace059bad656b292c9d8c3ff72fb53c
+bfc7f942a57c78a9b4ee3c531413d57c2ebaabf4f32956626afce2ba1f7fecf1
+d36bb77bfa4dec303c0f3b0b011bf3a079a32de973d5198f82771abe8017f9d0
+d40473b996cfad73a36d4dc52bb211880e1924cf30e191c1bba6fe59f54e0f0d
+c2471bf45830ecd99893a96e136b1a45ec4ea86e357a5a8bb49b2161ac9a7472
+454d5bf9748f34177036d448d14be4171f0b81dae7008f0c3ed828feb647f0d0
+6661ecd3997b3d87648ca02d3b6bc5af94cbcfa12ea2b41dde42b61da7c83cd9
+7b66c7c0ee10ef0a4ec5e063a24b5ae434c55753e6a8245a0f745669801755de
+324ce91d1cee35e5b44ca4d6ce8dc88e15057a20b14035db0b84b4e9d938f682
+36992c1a5f3f7620d04972807f8c4fbb3a610b5e3c5295e2a34c14504e2dd400
+019a770a8f28344b981dc493976b115228e575b89406eaeb7fae63933fd79fd2
+9a1a489dc4b5c516f09830cf7df23889ed502457176f21d1d3d192ec42a5c39e
+7d301d4bd47cd9b56191c5cb0d1923ae941b336451ec95b9519326ac3014798a
+56c22a9cb24fddc6c46184f14b6068854d0fda7192f97f7b783b7f51053b3dcf
+f411f4c965649f7e61880b194037c6c69cb15907e7989f4188b1b1fa92ccb2ec
+1f43dd096b3b1d991de5882f43af1e023f2a4437f684757eafaa011ee65f1d95
+07e79c44873366253eb784cde128401bcffcccfc56dc8900376552f45397ef8f
+5d40d5d1bee737c6c307a475819a5d337f4b02bf28461ea571cdd79f39f9491b
+37108525ec550e9d8a90ae63d56a1a733cca38407505c1a7690c67529ef6e51e
+117ed62274135f8744241cf456f827e15d512e78dff679a117fcd7eb45d7818b
+fe675607f002e8902b6a179b4210296eb19a6b5bc646371784ff5137220b6fb8
+1de45fcd8901a4a0fcebfced40f456f6f09d59c66b0bde0edff2070d64b1eeea
+b48c1885a939463c4ed7e10d194a31f9859d58f160c881c7e7679052ef3d0bd0
+037088c5be74cf9cd8b441655ac4c21c063d5cf157e63d154e2a3c0fa0a1b796
+b7ee86207252eab2a8f6bced4901cfd178ef5b0cbf5ee7cd9270ad1b1055025c
+14aaa045a9c2d6f01a9aa133870efe0a7fc63104ec2b4afbc0277013e787e82b
+9581b38e70f585f4f2e01e4e7804abe534f97d8f92c460a609492abae7d236e2
+70ca04c2e5adaec2bff1f219208b2f8bf5cfb5f13ee94d3b9a601dcc6d9ab03e
+f624ddf287a3a950856f44b3a31e54d64468bf8bf92f4432937de368fd31d7a2
+e0710caab3d479b52105e910787a4c6a97c11496550971442cd159755924c31a
+bdcea68a874a9c6529db2563be8880576c077c4c5a20262c89ff4391abb2dfcf
+24500708d191bde0fe49ff456af3d8355e56b0729bfdec11884eccc7cc061b44
+f48766d6c2f31793a5898a8f5900587995a2a19ff4619131f5e665c98c191c2d
+6f9511da129c471823e78138c038b17314b37fed7ad3190c938f040ba89e65ea
+6df474606138937eb395affd6ccb55fc0371f8ba2650cf2846015a912d67a848
+d29b06563a76a65b5cddef34d1b76dddb801b3cc0b910b8487be26dac3695ddd
+efded0347228d046ae30b64637c3db6635e697493a0e72ae1c2cfc611bb42f91
+38f608db7de51cde8520caebbeb05a29f7578395cbba7b01dcf6ae7664eea3dc
+1554a62028dbb478a18f6eb6ec084917427cf6d40689468406c923be93e0a8df
+c250de798b7211e91855ff7cd3dfdc9d0f67e52df1ac3c2020b593c77e8a5e6f
+c3d57af2957b4f876a90a9493941f316ac9c1cd05f73c1301537574a7ef78d73
+d23c31c1d4689387a2d4396185442858a745b98d81f2580586c88d6cf54aee15
+17549241b59292c8da1f6fafc3f61f2e82315ecf37e5e8306f4fd0fb4b4d0bbd
+edd2ba55aca3ea3eb02705571dbcdf339f3268420da8a59ddbf5cf721d9bac5a
+1be8cb3c0b4ff98d6b15a2df24215ef121cc06f4700f2609c817c7c4a0659aef
+7c646ddf125e9ace18348da6770d3dfa3b9486d9971834a7ea6881368a9612f5
+293601fae200974434d1c24354ac8e9335d5dcfc27d447ccae4b0923cf151784
+84b24c944fbd847a64b146d0f77deb7665247e855c600237b1e311faaab4e80a
+2b8058f6f26054d111e941421a2a143f3c4106a506f844dcb8eeee5abb05c2d0
+b4563c1d1080b42ec330d3debe87b65d9fe0a684fb5d125f7ec7add81fa8d82e
+938bd2ad25e1df6e473bfd81659317c91bd2256fb416488873dd9d67ca6d52bd
+2c5524903c68989c3f5132f029ef0a078b8c2db830186a2dc9cc47b9e6ad6aac
+42fc7a12bf5fb5386c558a73dd4ad02d7dd4fdab2152b138326d968ef837b79a
+3ba3c0fca3a629d8143dd8b974f8326851afe08baec65344751a2b076d71ef4f
+49148e6fc9f3cd520645604726239fcb202117ee1caa906e37ad6cadb6ab92b1
+d31d277fa27f6930acb68d128cd0ad7060c4960c4b409664c8580f1c5f3b93e6
+73a74b8094284837117a644f0ca9398fdae7cbb29db6aad38ce5cdf855e84b37
+94deb9362e1dafff74ed1e87561a4d33a7b6c93d18f231ed180b0d112d789c9e
+7b35b31eef4d5fe50329d6ae3e9324dcd038edf01f1b10e249ce33e8bc8e77e8
+448396fb9b74b316ee1a78f2463af742cc468215923bfc5477a74a353a3cb728
+6af8d782111b09cc436ed7e7126e5c70122e81142da5f1056694f2ce5d5706c6
+c3dd6384cc42563e5bea094392d2876486f313b8409a2a03ce6718b7f5a58a6b
+dc7d7e3967d6f7d2f2a1652d578c0c43438b67f2e67afcefe2f1a031330a1337
+d7442aa8d15a4b1b0ddf56ae3477599a1c04370bb06c5075a9cdd5d9a6bd26b3
+901f46d90b45098e5940b44bd1485840cb585b8b8ba7cd45625803fc1420c850
+f434e84df2cdb1c6e2b48716dc287bdbde64cf54c9ef6c3df4bc3452798a72df
+4c2aea80415c9521648ebe5b65ed763b5a393aaaac1227c1e017df5ff4f24284
+23373bd6d5fd39d90599d30f8d39740d6255fb22adeca70c5ec3a8f87a59ef93
+ebe91bfd0c9aa2bee6b3748b3914752f0e5a34d2624faabcd7eae3d4051b088c
+9ae1105b541dc62eebfb0161d05818a73de9606a3be82b2a37d1f7f22ca33f57
+aa00a40f3189fb57bb46658710e278833c08f3c5d428bca99ed499e1b3ae1689
+2c9abaaf45e29c7036d1b0ef9f17fc51399ee7e7bd85ec424ec4ac17275d980f
+fd2eb1bb92e78b2b38868ae908740e0cc26f414334cef4e8cf5222f46e1aa40e
+0032e59ffcbb395b4eca2573730d1965b2d4939f24a154b6e44334bc0c465360
+bc2827b14e03e0f428df065e9f36d256e9a76f41c0f81747de63134efc9cee6d
+dff528fd0fe979237fdda7782127b2a44b2f97a2611efb1b03bc3846cc19c863
+30f9d2b4b557d47b5367d597e4964257c0109a26deb44cca07186df2d26769bb
+cd6bc499b3717d6dec05675016943c69ef60be9e2a004340202288d22d6476a0
+5a27ffb9a4c7a2ab606619adf733c05c38c80b1e2300cf34a1e32213b83735ef
+20991d4c487472b0571af8f33eac2b12e0f302c63371a42f1f27df2027211d6e
+d6ef86766e35151b67aaabba4b469f5f2164cecb46fb0866eea5480b615d6f9b
+ec31cfc9a898148363c039ba8dd87fe65f1f9c8f754a1d38b643bded590d7e4b
+45da77b64fdc835cb412c5cba906dc46a7c9d3584b4ea5f7701f257df04b1227
+4b3833957d2869d52433ebd119e69278d93d7423c0ac9af9de81b6cb125c02e5
+723c495492060d6cc6b4bcba6033601a6bb3131a474bb29ff433a1f3fa9edada
+b29f591f029fecbfc5cbd578bf738d57f8ac962c6c4196fecd4cce3b8679a2b8
+05e736ed48f01e027151421d1ac18d5473f299fd612542df45df5e8cde582d23
+6ba5a3a7554c7111bd2d9ae4bfd5d53c025bbb737716686c68645c01327f7e91
+aaac5fb9b31ec344cd1be4427c612f3e397c8c9756c7b30cd4a31ffc6ea5c0bb
+b2453d2fc5af8cecc5bf27f3d22e919e9b4c70bde1e55a39461821b30266b8dd
+029b63683997ce276a28eb79e52db38e3e00fc6c9f0c98a2ade2a3fccf651329
+f33e754aa2637ee13d8f0275bd9e3670e9b6df5e5c7b60ff2e9bc284895179a6
+b54a6501b09c90ce1f537b181db63cfa3502b27699c0fa32bfaef33560eaf170
+35a22b24ad1a92204835506f9ab0636c7e1c4b9bde7b1e3c85a6746574082d5a
+66dd35bf0925b91bc10f973b607d990ea83afe2b43d0d12b61d5246a4b2e6399
+c626a2215c6b477b33355db9977d26f0f4e0e750efd66855852780e470dae19b
+e56ccad5da484e8a1405860f582219bd238f18084a13dba3bb6673190846660f
+d16f243a0188b6626fbe383f47c9d115ac75810b9fc34f56f4b223d6ecec3cc0
+4a64d56cc48029dbad5cb5723f037904aa357a377635b0693f08be60f7ae5e48
+25c939a53d481553c1e5a5d57df6073d9e94e402aec39387b6534b10d27e16a8
+5f20f20d17627ee9cfbf60ce0b42c6472c7a21ed5fb251748d454c7b7fc51c44
+7c6aee85e84fd3112eafb348ec75d99d8fe3f1942c261d1d8fe21cf2d4a7350f
+05b983594e1f47be21e1ba9a263273ed14b9161b494d50b9b9eb5ffbdfb088cc
+1cfe9a639a8e405bed650531a96d1c3313617fe5e0dab14a2e3e95cd4a0b018a
+08afff8c5e0b9728642b9bb9905689cc6febd1072cc9881db5bd7f102bd4ceac
+2d861f3aef8f1e24deb48a0de5c10011828bf7f0efda8992f6ec5c053f050790
+739d0d9d04272fe9fac41b86562075ab2030c9329a89224de27fa74f61fd49d8
+cf7f13f0a5e69600e075a6090aecb2db740a6507aa28a7f157b20558ffa64a4d
+e9dec8f877eb9df61ece54e3281ae89c207005ea3c9f5e64f2966bae9db22136
+5367b95ad4107a842fa8aeda660fe530d0b37e5b8e46a2956e7daf0a5231e33f
+b6d96395cfc427b7f6866c1730bd33bf55a4c43a769585d54699b5b956751b6e
+441add82a2e5abd2b9d33608e9333f408b931e77d48258415a789435eafb9a16
+4e651162f587565cc912731a5f840d039cb7ea0d281a34bbab93238a449d8e8d
+dcf9b36df3d8dd2dfdc5278b98f0bc3e070e3c354a3a39f9a97a92397d6d0f61
+8f522a600035529518d6d90420a8d79aa2aa712cadafbf5dcab8e183d4ab8423
+2717d60da8c9711dd697f2f46a2223dc3e48008dcfc18618c35d237fc2d7a84f
+709fd570bad4ba6d5bb74835e3540746b0535f04eac2ef06a74134742ac32e0c
+4d2a726eb4155c233275c7348bba01064f695adfc933b502006d654c2b212139
+18e177d3e4751908a3a6feb3e612268dbf27a6c253738d34396f50ee834f075a
+a4aef14ff3a3bd5cb25df06253212f75abfc9bdf7f480d66719c3a5619dabbe3
+ead77f6ad80a6b7a6d83af722bacc170293f9a5e51bf9b4152e64da40806af44
+17e4fd9308a4d8ea2645efaa35b30a6214dcaa83e2f531dbb02aff7015ea1149
+a333cd619b7b614ba3b5069acfd80c2d4dd5d19bad17c3ac5fcda1818719a9ca
+d9913e1870277b6383290e27702bd87e10ab54b531b0a7662398585f7b67cfa1
+eb1e252e5c477025d77ad4d9d7d943c3b5f6127ef5bf7f422ca9af4a648e4213
+e1d6a9b6f02ae5119f91385b93f00c438a27aba9d0d1e52af1cac6a56c9e2fe7
+d5d37b9efc4bac853c23d07531f8f7879313247f9a9784685048db25af1cc606
+02089dba16f25e9ab0855d83ba874c00e28ed5633eb234ea457467bfc88727a1
+7c570ffb595ed41aa2ead4d68703d0d70ef899e43e3abfaf95447349dc61ee1f
+070e8f5f580d691d80913a1de2eed591859d684670e5cb9e3cd6354dbb51f66b
+5db8469364e709033d02c5f13179e5400c71a9a82fd4fdcb5dc94e53b116506b
+41eba9b34741d3b5bac7468fc68527a1e51c12a45dc6a61c55b21cd9f8c3fcdb
+cd037044833bef5b8efeae27a1c406df2df775bdba2b055c86bdd754577c8363
+2a70d63023d3a80acfcf501d3407cd7b880d7bf5c9a6ef55f643aefc6306bd90
+80505ab7395f809ba5bdc8cf5bf56bff4d2f2da56425fe88211ca111426425d4
+bd5d1d606c1377c2eb7014a6ec0392d74a059e5ca21bb6c505df776aac070448
+8dadc008dc89843f73806262ecb38180595ceafc29311113c41e8fec8a6bc75a
+4cd616a02607b1b0c3f4c2423c98f45b76abb69ca4e43f37e2f3cbe32a0947b8
+fabb8664c0070d72b4a464381dcbaf741319e6597d5e648ba2a11f5b7ce3a45a
+83e094a1537e7e7de0150210a675ea77f9b563423f71b2221ad3fff529649172
+cce6f6493afa7d2fbcc812c269309c426e8570c6992255bb8ca8157c9f2958e4
+c63fc2cdcca1a3ec1af935cc9c35b71cf779e87b51a16dc602bfdb4c9ca1653e
+1bd1aa6dacb8c038276107ad61d6e33d65b6b98e28091d4568b49dedb9e9023f
+2977b4fe952feccb1ade607e3c60d74de8662c1a08c6c4f6a8e50f91c62d104a
+7812dfc67eaadb90e674686585680a0f2eb98cc92a793f13df552e6c695623cd
+5f161a15807fb396de2c4b32e0e168d765ec0ac448089a245b65fee72eb77e15
+93ef910b1750bd29bd0dcf35890311254be990d9e4b558753b34600c67f26b24
+e701287462cf8a7ccbda97cfe5060a8c36f8cffc8a50555c576b443d6556e145
+41f7c5ef1b6e11ce520946f91918e10e90ba750faeb158a82317039ab53abfbe
+65b0d3989fe4128fcc22124e162d559f03ab07e2ff289087b48582428cb9b124
+baef00a16d4678c0708bb70f692f8ecd4d417b8da0371716d3b5939d56d8aec0
+84cc07d0ff21a5f69c1efcce09fee5466d7944b1598a8152ea86fd11f3fd1ffc
+2d0be04ec6c36cfc39cd29df6f32e4a030548333ec9c9ed69471a98936848836
+4fa7c8d83992d35e01868114852b9bc5e66b43bda19f82102261426ffa730c32
+7c16a92c2d840bc951183a666c4761b2383ea8698b5740671142e07b5161b798
+8d39239aa04934a1928ee775d311c59f12d3beef3ce7ec9bf6dbc9dbbffa124a
+d23568747dee4afe3310d19fd2f031d782e4fc8980d315fed5be69715ae90f45
+a26d5def008316db5237b6254ec881f5f42b22a770a9998430dfc54e223e1cb1
+f2c3cc21cc968c3a9cad2f935699129a0b05e76d7850fa8f630a6a76b6b428f0
+22c17f7e72a0ad107f044ce76574ecde1f674deb9dfcfa5c860f199490958b06
+18f599cfdac6b2fc5040c32d1632428d250f97a5e5c686c2767808c71a3d6e86
+f619d651ee5fbee3f6ebb220cf2e34e3d0b7b9ec38f2b0fc78085867579d98df
+f2dee6ed400b19e34237fcd75bcb901f2e6a3de5d721a239bfb003cb4f5c58de
+63e8f7f8a6647c06275236acb4c1199ef950ee7cc5fa7b0cbd4852b3062c1cb3
+9137c29289a42cbad2befb0116f948efa5637f75c032584886f85008300c3b12
+e01d9b15e5eff2d44fbb3c6ff28694298fd8f8dfa6817138dd586fa00d0ad7eb
+f5cd8a63949b54ac4d90fc8863490561eaca5207259a76e3ef1890a2b59099c1
+4bd58f42cf224c34f1305f4e30e9f12e7af0519e80938035a2728d433d75211c
+73b9740eba4926b9676d874e41953c4e59a48579d3acc872952a65ade2abedd6
+128ce9c40b058d126c68ea0d40b0a081ce1604cdd5eea12ac901cc12af8771e3
+9b66487a9c94b35d882d46c5f3c43be6af8654cb09ea74a24a58cbff5a25ebf7
+d98e08db4cae7d71f112503fe689a27d75de94b94d7f0a8f6f4f9cc829c1a441
+ebf4a22a85ff6479afbb1a4252afd7faba9b1caf518f1a2c67392b44ff9e173a
+66218c1da8ced86b17861052e3f9b758d06cf8864b7b8b7b55322a5e50629229
+fb515754697c026941f7aaa8c6d0ad6682440a4908bdff03c4d413c3a7353f6c
+9275788610f8c8340ea671506f174ec79eb0ebec7be8e62470601b32abac9aa3
+e2678367063a57cd950349635726db14de55b4888e481de009cce2676ebc510c
+d94a12acda187d096ed6417aa1e8b781299ced175c4243ee8d51e1ac2382ffcb
+a41f49d19f60761052e59b75a2d0d4cd2ea45b1859cf449b7db95fa7311f52ec
+28a8d028d2343a958dd54500756d2cc13ba81e72b69f01dbfb636c9299a2f0d3
+a147740aed1fd12c59b2d7d8f0761a86b140d3545f38a21a8d6205a57cb7160f
+d7c5971266fb21a518cfc33139afb70da7485350ee8fb0134762604617af0ed2
+55f06616de76569f48a2474d7f56a1829df30034f290b30e3f2b34c433c11c1d
+ba265059490ad1704da42526125eb03298f86c56495ff67e63b06416a7b4fa2c
+2d086fb7e9a7ec218de891051219e566566fc1b9c16ede9fd2293183cd2916e3
+572b0d770356eb2bdd7fd92794c270d364d12d14db02c65a6e6d636c8dc01503
+72faa09e488e28525048ee8a866fe1ecc868f6059597225bb1c588a12349996b
+fad2f6d0131f04185e1efd125a2b4c4b8f2c32b6a307874b0d94daa68ccbbf71
+d8427fbe1acc6b3b279a52aa66cd6f5a5b1e3de70523aba543f44074a6491ace
+fbc6dac617f805f99cfdc01bb5dd8500265878feb2d4e75bc616d30f63d11eba
+ab94ea65a4bf64a484210a08c0604bf0bc0275899f5af6d217b914f6ac9aa108
+f921309f9580701530ca11e8b5af77d22767151fc64be8aa6e4ea7b595e7ad72
+6adfa2872d007ebbc41edb3380ced9743a88424a665e37b941de405db5bdfcf8
+9d4f8bfa6a636c973254709c81bc54570266ee5fc66fe4717ccbca5cc309755e
+8aa8915e16e4c3d032e2d295a2e39f81aa5e712a29df3d6f1da12b51d414e60f
+fda3499cbb74847210196c06fdc32a42e34173198ed7a9eee1cb52e97c221c79
+d0be506c6c8b493eada00e172112b0b525e9ebe24a081518432af7be557ef7f3
+7d1cc2df1e86af4ef353e8dfd731eea986e5c203b343320bc3d35f4fa4423fbf
+cbeeb1bc75f27a40f4d9f5f5282828e9545ef54f5bded9915385e400ba937594
+32597306907071e72887d2c648989b7a4183fa3e750fecf13b04fdb5ffada6da
+c6defdf7cbeea85eb154ebacf8758a185b3ede6f3bcc0ccf0a878dec6d112119
+8361febe57819539e575a6e0cd675a3535a1a245cce669b1c31d3e87998a956e
+e116369cab04ef8506acf9e8bd2e4e43bebdc9a067c4f1ada019503e9725e1c4
+4bdcc4be132f5ba29b56b7e281400019a9122d02d49c768346d1b7e30bde6e18
+4e0107507c10c132939a052e6084b66b3a30b6f4e855d489f12c9afce7714e68
+869683a5c74a5697cf1b4d4b9bff4e9098e98fbba712e4e717ebfe6ba439cecd
+1a99f6c372d264a4a255c3b99a41a2f04dff796c9eeccc20ad43b5002e8e3cfd
+9f09831f4f02f9327e23f291c755d3a6e57d012f519fa46a63b32ff9a98c3640
+517d077ee1a472cd000a80467b28027affbc9904d19ceba6fac4f1ea359af2f3
+142fcbd6c28c1f2b2ddfb1d6799888daadffaa52edfeeeda38f3f94a79c79507
+bdb7782c779374a9bf2b0cb7fc5a216cce50b8446fe894e9419e3ec6f37817cf
+a6ad52434f2415369128209778a9bb1a81ee08e4f0842bc8ce8890636d6144e9
+bbb416344d9dea5e65719b332f66f9cfeda829fc0aef7919253ed138c92c0ff7
+ba23ba9ee1841a4491ecc983b1c1162b30b75f8db608cd41fb8fa402ac96ce57
+d6e27060cb88bcb47fff9132b63814964e162edcf06a2f9452eee25e1dd7340f
+bb273f1759bf9faa1b2d252563a97adfb26412c605c2c87f5725753497293a53
+fe3b708d2394e19bc998aae5580a62ba5924a00c90eef883a69c3310c64e52bb
+c41b70b89dfeef80b73556fad1d947a079e8d0be5bbdbbcc689e6c379f5f6430
+e44d937696cf99c6f3a226e27e567d945bab4997ba2a7c04fe4d9c2ca4691b68
+7b2eabe5188e302493326fabc6b5876541c4666a26b3b65c228aadcac6bc9876
+0f3d3735b89b2a2e3d43fc4cf6acd11c96fc6c3610abdaaeb5fd4c7fec50474b
+eaf06684a49b6b245956fc2936a68551df931353c293932636fdf56f0da797ec
+113dccff2e3409557028151eef5ac29077bb032800f10e47f79cca5c6f5dd75f
+a56638fa4e59a085532c7d830808b122dca20d9fe537a04f5279e6f96af0f0d1
+80ec52430438e8cd1a7c79ca9340c0639367fb2af768f36637d67f7dc6c71b14
+db7a35c567a66e460ec70b91357d13ac281d18617a861ac04a6b73608467999b
+1db7d06a52832482fb4153d95e6ad9a9885137c837bcb0d9f2af4bbad66c9ad0
+4265a9bfd47df89d6e2e990da21caa3883b815f541a59fccd6dc47830e5e32ac
+631eb16e1784d94f5a31523d31509b4fda3f13cb6d0535c7b9d5fc50eae72b74
+c5596e271cfdfacccbb66735c67c32560667a2af34ec48f09c574b30d4510e8b
+ef41e6ec0df52c2b26344b9eb25501bc1207c24b8844db1852366a48a991c345
+a8b1484a19e7ac52bf541d2f95efc749aaeb3859e9030fb12ea35ece6739ffdf
+f7a6809848fe1c04a6046cadb0a12f541366b97451bb8d3ae48e96b7e97b5bbe
+5aba1b460820b24115a03dc01721f7a423650dac1e6c305fa5178fcab9238668
+7b1d1ed0b07abe6e80a7a46143c05d8a9c8976fe3d1761c0576612cb9aacb370
+abb8352694514954d538ca0f19197ebb5a93a2bb940fc8b5256b183c769d382f
+61b0af9c9a98fde7ba8bf56c4f4882e0209fe14108bbbecbb8338a768692ce24
+99f2b612b6de3d617d16b5aa3bf42ed95a2b2bbc438461ff8136420417e2cd2b
+1a8ff07f1ffe31a9dc926d59b968cda1e6946260224cb22e598b1452ad408c56
+e8d085f90404dee4fc07062c72bb1256416233385eeb99f2b67c5a0d6b1044d2
+9d972567ab47fc55bc918a704ddc2f30f12a148e660cb7240a412c6fcda1a34b
+7b8ac1025f384c41cbd2773fa11a868349db8eb97ab311220261493a57e2d48a
+2492a23f0dd6de1f1a3d84f4f665eed8a7163c7a339d669abe07a854e4b614c1
+26cfb10ae94e76e20c0b855af9e96c46be1dcedad02ca27692f792ad423135e4
+bb034395c71c6a87bb23a549d63823fa513320aa22c24cb1eb499f150be27919
+9bdbe09fa0e5d2b0394fed0cd68e13abb329304424d14d1bf7c2db7d5d78f7a8
+57ff6fe7a9e121d3bc71d3e178779fedb2f966a92eeb6ceae29a21461da66535
+e418972da8337358ac715e50562508cd7330ffb465fcb613bf5afeaa2d2e13ce
+f53dccfec3d7029ce1088e73174a9d226e174ac7a80eaf60cfadd4bc51f934f7
+94bf24aeed2fda5486d883bd597ec42d4201b49ba0f89401129b0094188b698d
+09b1e82e2898e1e13fafde14f40e3f7b8e5cc25fbc45f123f48fa0d0a7846d4f
+94c27cd4635c8eb988c92c03f824fc4c0e7df36f0e01d36b4349feaf75eb5d8c
+23e513e65f247f0cb86709944007b62313f4bfd4e3499b67cd55a3de0a1e030b
+74bc3a97b7d9af2edfa06a41bf4bbba292bfb5002552470268124b13ef6135e4
+5e213c46ab4bc40ec5f57fdffc62233a1d294ef1a0984f4399c925b42a2f597a
+64044943d0dc84247e98d231c2d35986c58a0c62006c1e4c0d6fdc531bdf7fff
+5183df316d61185bf17326e745c5b533e0b7a51433ff5691d84df17afebf8030
+3f9d5f05c797b3e767d788a3bdd1191d7a6d576fe079784263e782cc6b284ae0
+d59ea5d60842bf0a7f55ce3306707659757860ab8f0609e46e9b4036ddd034f5
+ab39d1b0a639bc8bd55fd4c800cf360014d16bfd3828ecbf97409af47ea32b61
+f162bfb3c58dce3039692c566bf70b2a8b6f2ced7479db7c0fe286eae554b601
+025d57aa3f26f1f6e85d17fa279899fb61be82b59f6c70e0acc2e600652304ff
+ef3e6771c348e2c088f7837a7cf37cd1c74cf0b78299d26b5ec1ae192471fbd9
+96fa3ffe6169087957c950b70c7bd174722fa2ebb27f6542f526d3d0842f1744
+9389f3e6ce0b5712cdc5b1ceae6c77760b8b41e8444fb992928844b224f4ffbe
+0a4eb44027e0a75e74dfadfaaf1566f957c1999f768cac8a735f17df653f58bb
+9ba4af0985a0cb32fabbe787b9a133b8ae7d68c1b41fd3e138dd26ac083dfe79
+a8c879256e5bbbd14e7b31478e3de8aba60893ed06f2c6479445644e795f46a9
+c95f308867afe83d0cb1dda4c68e8634da9e30694ace6ea93af1d1e9670616a7
+ad444f9b6ce89978062b81346d81dc0c058f3740fbd591408a8a4f6eebafb5d7
+772fee8f467b83713448dbddb5d090e6481bbd8636ba2fd30b79e9aae4a98e67
+3094fa6a597a8f0df0b74c9bb69af42f5fd4db7a0468409a39ea5cf8d4882b96
+06e881a59a729eecf60339d5225090157843a69cee675aa567858b49faa306d8
+a8d6bd630d7e38c54e88ccd548f96b22e93f780ccc6fbad75976aa2d966fd300
+429b03f166e241c575a0469c17e427ed8502ce6a49a8ce1afa36d2bb914a2e0f
+2be4b2794d3ae15c8e5914b36bf9880b575d65b86c1d620b3bd6f9587eeb090c
+cf1ac48c73930d76614bdb37be7ff457ad7e07d812d10c2e425334e0e66f83f0
+24f2fbc764f7e9c9d07a35eb9297bc7aa51914baa5055d2034ddc15aec3eac93
+11d99a0b9da9df9642fc4d5ce51accff41402b227b0528a34b6fbbb1f9afdce1
+706beacc566f054b3bfef75d735d5c92656aa780e9f78d3d67933c74bb7b7e1a
+3ba96bc716befb31099771d1348611184bf76e78e0b75655c18c42dfd2b39f33
+77633ff4cbe887574ec8af654e91294504a59d04417f01e8c6c0ec71802d74f5
+5020b6d15ad0333f5f504eaee5c47bda9e373c09581b8de96b4e6fdc76a8dd8f
+7b4fdf62dc852973b828f2f4fcd97c9017edc5e0a6bdf87511a896327e39267e
+86c851c08317e13b413c7fa7c4b180244d1a26524368621142189d70f26dce33
+ce009efcc33bc35b211c67c9ffd68de3afde61bf54a485312d6d66e16ba9022b
+97c73d77ed530e606f54abe858f2210821328018168bc89b5d1f0efa0c02e4c2
+ca7cc4b2bb366131ddc427504ad454f6e8a314d9a5a4994f21607a2991083331
+f559b29930ddf0e7cc86a2da421ab5e26341f26b5c9b9f1772f0b244b62c4686
+a2813de622267588c0e5db3cb458d2c490768fd6a0ad83df55504c3e791554fa
+56a474c44a26256ba539416ed3bdb54edc8a3ac861ce565a334abc80b8db7349
+0595e01986b45b0d82693c41da5bfaf12b9efee509f25ec7678cc1e4ef735ffe
+f5158e0ab72dc3939e4f361eca40da40368d5516a55444957866029259bc233f
+c3f000f54ca33e2b82c999674b22725990a9ba8ddda889f8dca18a64ee31c4c8
+2db2bd653e555b147536e03c8d550ccdae2e891d81772e10a1fc43df9a600e02
+5e028704d40aaf27750c81d3f0a8e2ba60faa0f3f4f5bd7f66c690944ea6254a
+33df2a503715510772f9d8822eb0dcd03ff92500374920e0ab941100569ecc2c
+26c393dd56ee48bc914794696a4211212e8a77b1a653ee24a02bfc350e7e8577
+ffa1ff9f11b587e61c08eae8d88b073b780f5fc2fa97f6b5dc9f7439d84d3ecc
+2c67b8100eab30d6cd8f07f2f2426749a47c7ee77541fb716463f8703b6bcb80
+f5bd066e94ca265473cf95d4acee36d05cb22c83dcc8b27c7b6bcdab943c8999
+37c29fe456d9d71b748f1b57625597d7ef30813823df79b8e368d864ffbb7225
+1df04f862ab1d808e25b5068044439593bc6a7dabe86e0793c0186d7df54bbc6
+012fde7e30c4fe5dc9fac9171d62ce801c5b77540930f5604850aeb85a13e066
+20150aa55137f66e6dfc97eb36a16a9311a97039effbf3e5080760cceb073475
+c1e9b07e1e23fe1f65add9f68eae159984dc1be07365ea94a90e2305a90d33c4
+62456cb031bb031f0d34b570f42507560ab26ae4b64772cdff3034681b7e3cc6
+b610fcaa6518743600cd4889ac7551f101b927f16188792aa47ea95bb05e2ebe
+5c96e92cbd487106fbf63cc9df2dd0e0c2339402875887cbf2dfb17c3e32e1da
+3eabeea3ee9cb461a7898a1afe29609e67ad6dd57c91964296fbc5f09f4db2c8
+315b1f7d9d324a8f745bdfe3ec7903279d78de6e129d81cffc2e674714666791
+c5a6da8484577531bed634a6f7ea50448e68d959f743279b9a80c8885cfee79f
+47df6b9196f79fa4383b8681ed4754f901bd36c5a63fb1582857254df71516f5
+3d04f86178981f3e9d10558c4c7e613754d3cf26957e0aee795f9dee25efa913
+d3623d98c1f96e0af34f67b4306bf5f593a96ed074700673dbecdc9b2bb27558
+525ba7544029dd9db5828c6d8e563b5be8013e96131b9e2b11d67daf49a1adfa
+e1fc536f4dec7c75dcbe0d6741697fcfb8ec8d2d3dc85fbe8225a86eab86652e
+0d32a00e59985e495d975eff48812495efd19dd9ccd93141d361b0d1dee48adc
+0611d1de2e8eecd62fe9a162542bcad738167ac417a156212a8229ef17605ee9
+a3e2af8b5795784cb576c5d2c8688a849e2f04b7a2310958cef0380ab87e39f1
+d0270e002a11b97f866e77c1cf7aafae209a57ad12db90db20026d92f123f329
+3eca4ab07b86ce5a9ee650d3d1491156a6199132b271607782e30f03e4a333e5
+e0960f798eaa25418313df13c5d4bb186c37dfbd0392459885cac59fe71d22b1
+ba70083cc6d81f800f1033fe0a250daf09e03cde1865fba52d2af2d1fd4072ae
+40706c969c1bb778cc4eeb3fcf993dadca323ba2c6b72fc9b2c4679b9868b19a
+7e5840041baa7629877b130a05d1594c855b4853e70c8a1d1f58a20438c39c1e
+3800fdbea47ec323831783457fb0baf72c02f0ef8becc7d5940cfdb008cd258c
+094980c358471a2c6102c83eaa605523c535edf3a96e699ac6627c5dabbbedc9
+d06fa6906a3e524c2103cae0e2db5f926a1fb5a9adedf9aa8663b026115791b8
+10fe0ef2cc1e1be6e7fff7dddbd27cda85a34b3548b2129a5dcd9071bcf917d9
+c6bfae79f41df7ffd4303525fcee0f8d47179acf13ff109e748b83584ae2c8c5
+7fe3392653de7ec742918f68f86e4694a8c9c3115a9e459dc45557a492daebbc
+306b73dfbe5d27de382e17ab54a77475a79e38bbc97fa60c738c9b017bfa6ab8
+5960f34632c6010e321668ef6647698d00da3407de9599736e3106d8c30a13c6
+3d8b447506768a6771a3c18c7028c1e289831dbadbddc8babf7f5d2fe992594c
+e0f01ed186a4226f8b312329d30431148743e29a1c4e81b8dc2290cccb1b1781
+a397d4510dd2d08c81862c66353cb95dc06c67f2d783f0826ce879ce8bb76c93
+f57a64ca5ef9a563470b1143db3abef694645337284c1eed1b94a8eb67f62af9
+9ccf1263ee69f09109aa7aaf5f39a9488c7f0a1b3b59cccf641b0789305b3e27
+b6dbc105c385b06eeab8cf7bb5a6a514bd597a401590dd3d8da4e0c291621d9f
+2d9964a408ff77025134020215a605d777d1e509789ddbb548dd22a7c5a0c9fc
+6f2b84f9b94067afd956afca3df219f51671692a7eb48b0e91741ba2d2f3f533
+aa458f7c373ed76a155c18094e372f8c4766c93c33b142c87068e00f9cb93aba
+e9291f33d1af2560892c50a3ee480bc84c46dbaed662a4bd34774e36310d91bf
+c3edb9bff3d0061c5fb6207042680713ca4c272126a4d40352320cf87aa4c0aa
+b5b77e2b53792f626048bdb646480c5fdc25725fb6a11424d3f521d72730490a
+cd0db15b91e94b11cdb8350be7141209fafe5222129ca80113d1caafc9e5f842
+69080ad8add155ba2307f82d8da59af65a328a81eeaba59183f6f12b9ad4ec9a
+10ef0732ed2f05a3bee8c396b3663e993b02d145a5ee5f66e30ecead5a7febc3
+9bf46ec8f6c4cf2b31129084a58664c4a4b413f99b831807561415a15e5eec49
+585ce724128f53c19786921430dd793960103153bc86f58c760132356e51bb62
+f093b97a4ecc7dedd70427f00b45c644c523efe1597912c4d9f53fa7e8fc6c36
+08338baa4637d6ef1eee30d1cfe8df2545a07388d8376499566aeea76cb191e8
+db5fe05c9d91622f262bf5564adc064a5b3caa5569ec5233de0a488cb544533f
+baaf602ce67e0b09f9bbe7e0bada637d26a7085e80bf5df2e06690306186f13a
+400b726a9bc0021a34ba050079520cba61cc3d3c61db0e5909c2fcc82e314dae
+dd2228d3d4173163faabfcce8c4ed96829b0289799755c4484cba8fec61c3f53
+d231901062677888699bdb42672629733d4fb910c73b307e8dcb837f53346759
+455702f04a42cc42325c29d16f4adec550ca0cf5c9b7ec60038d7f444883fee1
+a93ee0673f67798aaa71ab3b1edf95ba0dff0f45dc9d6e0588089553a091962b
+db39b2d19b9395380de4d8615f054ae7a1d8b26a16b3a0611469ada90c9a3818
+d08c89a7ca26b0cf98def23c8c123977f2087107a1550ac33c50f076a30b8451
+9eb46669eda19728c6f4455d41de791cac6deda07a108670972c428438719f84
+7bd6fba1ce8e7101e972a7d5924e749a2916fbed44bcdb2954510ba71142d770
+8b38db6df559823cad34881594717be8d205679137747af78a8afb389175b582
+6903cd5819726980a7981098b02b2f4b47dcdfd89653538327e431b843b4fbe0
+f0703bc3e211ba7bbd965b0407e31946757d1009bb2eff7e611654857fc11756
+351c0e2732bc8b99b20ec5e520ac9cc638010215cd5d7aac58c8bc907b6010f6
+cb74396b7486c0906f9b879b67814a23fa9e89c79f2019a935125ebcfbc931bb
+9eeae79ed464065d458e49aa025660b1543b0588b97c0d755430efb05154814f
+5fcf0e58f03d3dcf0c01197a4d4b1d94b0357cfcc6b6d9bed2f84c084ac953b3
+b247b46706c71e8bd717b93d602241b21096c3e6b271b758cc50f2657481abfb
+0a80b54b0d2f0ac2b14d0f552815885b2ee6399ed0a9a2d3c133305339d97e44
+ca08d52c9071b8f34d06b2dead4549c591719bef6194debf8e7064c18b15df49
+a73fbd1b32c1f16413f462857a76345a462419b74da65ffcfda65075cf3c6201
+c6710becb92696653c0b927000b26f5289ca6fdee0ec2c39945adfeaafe39790
+7a92d266ec4568635ec21fb10c18bb9ff8b975ecc778c77b7e8e66c9d508e23e
+136f7b1c2e6e03aaff8ce77008005b13217b9293ce534416fba358f1cd5cf263
+14e4e6880641d8b987dc504cd4f3e38406e63b8ec62cdf13d0c739f60799ae26
+9706761bdc78a9f80f726739db2c211949bf1cb2f9477e17227e18d43a875fe5
+ace8446a887a14c77d01b5c9ff11c3afccd91c2411072632375c3f998343651b
+c7f583abe03439cebd67bbb3335b94193cb3cf36210c431a202b12ebd03d1af9
+c6dbb1f255d8c101bc17e301b4d37c8ec7da0f797767c6ea0166c74411f7a5d5
+4b7e7aa4cd62c85699f314e11014cec46fd5bb0c0b69a397a60d4dfeda87b095
+341df659ce1bc3a151376c2e7be11a548d84f0f5777fa0c07df33068c2edb144
+719cee27d1f6db1fd83f254be273bba9cc1fb51db3aca31d8bbe5aea00f61c23
+ba566415e9a0e1abc230f46e40065c0d9f2f7245c138149be9fe0fb69c0b945d
+c165176edffcabf56b9fab33dfbe78966064da91db7706bb6c6f04ad34e042f4
+c6fa48b0b9f96bf5cf68253f9af738cf671ab6b553e23f34b6771e4bf150e6b6
+b0b170dd494a8d1acb6786cef859f934cc7736a170bba986ec19430d19b9f090
+abadf9ac0943f366859661139c7645141e8a7a2dfe554f8397fb100649967833
+10500165171d8420d1ed8bce593c42805a2f9efcb4b88d09ac7e6a4b23c21a84
+b94f823cb3afe754e79b9c77d2c3e29d5d4bb0f29569875d71d142362e1fad2a
+d2186258d1df52692311f53a608a276f70aafab6e301fc586b0f4c6d364bc2f1
+815fdee94eee51bb72236f3d4b64dcece6c7b21176cc09e6904dcc1fbdab5926
+0507d4885f24270fe2a6f133d47cc2af2ab27637ecf40ef51d8cc1352eba3ef2
+7c745663350c4ee97b0cd24ed09a5bb618024436fad4bc458a6b259bae107da6
+fdd814b646e95b1f39ca2c7e9ea5b156a44fcf514ef96c5865da6d96fa887632
+5a9f83b75c5d156acda42a69acdaa7bb306a5807b01338297f76d0ca3ca851f9
+178168cc5b1ed97e4723201da85d59fa9e3ec837297ab2759b02f921ca650725
+73a35a942da915675de04a02e5221b62d9ef635444a37e1686a816bc71f49667
+83780a328f17d3f8d3754ad2606524c0fabd57f1d02676154bce181f8b97ce2b
+0c0e0f06988f5aeb5aa15e7b3a5f2080f7347d950d3b005e462336aaff150437
+8def84aa51aa528c2cd232ef238263bfd3388d0fd290dc4558eaf24f56b0f74a
+674a3cb2e61a88f5f4e97cb9997b380b685720434cfc4362ba7b23c804c22793
+341388502f4aa4adabe34de967fcb82e12616a22067947f4cd26ab2762ace460
+46e73fae30959005eb576a10feac6f307233bac38de2d70d037f56c0b0eca2f3
+a48d4c0cf69cae3ce44b08e5b10d3f938131f5f5e6f4a9e211312b04709e73b2
+46639938cdacfe24396907b7c5677335988e9d6ea7be4d7f6850ad924e44d85d
+494023ef0af57918ea99a77934f389a5ebcc42e26b85e47ef7bcc2375df221bb
+5e0294e3ffa8a51838d9ed322fb0979feb0d26d4e36244f5b0557ef0101b5c3d
+6241a1efab943fd5ade870af75e24f25772bb65b26ca14a7034c1f69ccd38de4
+ac79a8d0311978a8134810437e5a04b3363f16d4ee6d23853bc1298853aafd9c
+619279ab747475bd433d2186040a934a0f05b294d28fe45801a802dbd20af088
+7b9b00ba5c4d885643b7a645e990a49a8111e6abddbff944070678e003591249
+551c1fd79b40795c8ce61f8fcf78d1be0a44a2d32c199e46df4a734206bd97a0
+954bb778c0bca6ec76162fc4222afef04db282a73412ffc5ef9bab16cffa50a8
+a259ba0fa1babda8bbde95a321ab4196d58c12d8af9189eede485b3c951afe32
+30189badaf0652535cfef04777f0c183489d90cadf9a6553473a18a9a36eae70
+acd5e815c03e9964703bddc7706fd7d14b668ea1176e438e49350dc8807a6e4e
+e52833c6d110475ae6f96b6318a989b6bdc1d88d28c26606e3d71380cf186c29
+97e8194513d3f43f9f570bf9c3cbf688060a12885355038e9754f89dbbd90c25
+fcc2922f11ff1934aafb0ea11f8bdb6c3257d7ba0f8e2ac7365a9fc76d302932
+5506ae25d8de203d295617f85ebfa351fbcd795611d6fda7f3bf6e34df41b131
+38adaf0f570bef6784ffb896388ecc95087e0b7f425b6758d8a598d41a87b3f0
+075508b708675c56726022f450d6daa8b60134bad5328a36424c609e99b31480
+01dbc05881fd423b95ec9772b9ad22a992062736432c390f55d692c90ac64a12
+72f3414c537dfdeaf1bdbf157726c59083dd303a6e1ded50c6f5b94c61e81f9f
+138fd8ac67b673ab38e5ca166611c6726decc1c0647d6188085056cb939e2b1d
+66e25bebeaece4b97dd342078bab4867b7e3cdbd2c68b9e7d88be56d90573085
+c9df10e10b19ebe83c8a1c41f58be78b93040c928fed3b1e98f354823619ecf7
+c5764f2d98e958a375a5f0ca5d884389de854f91a766295b01ff8cdd420bd2a5
+2a41a0759eced87deae73d27a1dacb0d0f7e4658fb724bccefa08b0c3d5bdc9c
+dd6a94636f8b7b4eb66971e8c599d5f15bafeb89258185e3e935c15ce57aa6cf
+4f2cf79bacd605747ac4eb081fc98bbf61d2623350375b860155b90ee6a159de
+dcf7a33604d7e83c50ae7804e9a434622239c5a7d891859d31cf7a37df61bab4
+89d857e93d5c2c8caee4c61e7f4e3316dc35ff6161897d5529eb2656abc3367a
+dac4ea3342c2ef308da183c6f40402e231586a37198970612951b383fba8e8c3
+75123429cec97a52b455ca8b384913e1527e77ec48ae423b6be28f3f8e0fe77f
+8d197bc6fe350d817c8858ce5babb5a6bc1276f905ba942a1601784ce8e8ed96
+ddeee65d9ede4fc7d5bc5bff2fc3a966fd25961a430a063df3d8766631774c96
+25f1cac03c135b6b122d4b5f68c0659b1b2cb634d067218e127a589f87fd1ec9
+715443a08284837ed2bbdde3325b7ec288992f1b5166ea175efa6fda164e8391
+de99e4a88f43199c3dbd617667d6fcc2561a1642f45d76564ea5b0e925bc960c
+fca1194f67743b854899ef834404c8596279150cc61909f367eb17924ca9fcef
+e89fcb940710e470a5e7c9cfebbb8b8ebb2ca8cabd973ec4d8f32df8a39e6ed4
+c520bf932fd67ba02eada63cf55f33ec75216f75e29e2d6937379d61efa2c7f8
+3a187ff93e4f17a66ca3eceb26b9199e1915922667cd1793fd0842e6648ff801
+50d7a0a447f5ffa2b8c36507f7decde7eb992fee6e9c8e32d9bd971771ed9d0b
+3e95190550058ff0e6f80576ecce287ad895ad56dc8f78d19fd04ed854529719
+471333b1c313a002d8166bb91b2983e99a09812e9beb52f5eda7391da5a2fece
+694761350b089de41343f04dc45e1b4231f265844cbcd770ef5be05b2f97434c
+af711d616613108312d08a9b4d3a55b2dedaf47cd5bbc2718da7d18a7079fac6
+a7d4f7cb4f09d4b027e05629c14ee77663d8b29ec009924b41f873e4024e092d
+f7343a1864c80b6eb8e4fabfaa90f5d39154fc4d14438a502e60b5af432a90c7
+a48c523b4267534f171fdc02e57b9ef3867758a97bbf9cdb99dc41758bad49a7
+d780fa0bf66851b52d46bfa8b96e60be89e4a5e78baab8736abbe338c1283cc1
+d2bc3a07f982122a3289e35cb097be9c27274bdf3ed19ee8628bdb48fd587159
+e7e484f6f5005f22e636719f9327173693810f978816f739574db0382222b9b7
+17e394da21a4f80d5a95c552264dfa0727fed213eef886c149d392e900dc4ddd
+0ccec84c5de5dfa3dd5f903b93fc649fd661bf20618bcdaaefbf9c71cfc11b8c
+68143068b78fcb3354ff5555a9774faae88328bed4c4996679e9285a00c12b32
+757c74e8fef1ed1eeaccea315d56df2e814f2c8d75e80d3836db71c5d1cf0055
+a01c1ef725ab4858d73cd089b3a66968c2604f97c861a7484be84bf95dbba43e
+a6ea2c455574b715825dbca643bb023b77d3cec870fd30899e7788986813915f
+cd3f909e3d596281b4d858a29465dbfa76eba156b0761180bebe2a6c218a51a6
+7d400dce29a3f19538dc28f29971a8b01b4c27a42fd9ad8a89b7fa5f188d3135
+b5567c8e0b87912eef813fb15c63bc9260ec3d7a6909d2295c0c31dc77b0a468
+ca4b7f801bb06a0486470201437ed678afec280dbf80c771823fb23a5af549cf
+f74620ab2ee1efc50ee09f4a0bb4ab05579670940d20f01c61c7461f08dd8560
+f5c1e0c73e0dbfc8532155a5f92162f05d19e6634446eeffb764b9bf4b5e695e
+9b4d80378ec8406c588c3eb7c919bf154bda4a878b45479f6111798dd6fae11a
+29ea1e44934c82e6a68b0025491a69037808d3fcbdcc7c80ed848ebec3f7ca95
+4cec873f4e404a699a7a980bd66e9e812bf39c85c55a010d95b9aa147e5826d0
+dc8effac979ed602f7414dd64cbf2518a5b71af4b6ff0f59657d2412b4739192
+1252d0a723dcf2eee67ab89f8c12d3ec1089da75f364e4e6e10410072144cb14
+352c56f9d8d180e45861fdd26b68a02b5a86560f3eadf5367d8b06876ed8f79b
+c79c3602569aeced48be6423888d86c3dcd811cc26c29239210eaf574ce87300
+16a3aabf2baa31f48ce3bcc43ddc31df81883ca92f2cd4a7b1e136af70037ad2
+2207f8f5e5ec06eca4c9ee9b199e15590e9f59d11688d22cf11060e87423f3e0
+1ef613fc230fddf599d1277cb7fe6aae4312282c4ba8a28d794628136fa0c5ee
+e83cc6acfd043ae7fd985d226ae4d91d00218964c161c4a0b147e58a4d143917
+a592a8fbba3215d1e3af1cb952bf418c9b07a5eca3457b591a0e9c49234db043
+99efcf129aea7a96694bed7073ae4502979f2f0286085b799669dc8ec22adca5
+1e92eb0e2633651e822f4910b716de01cf09b631187a6b9935d43dcd1c68111b
+850b7f21ee142a7a48836d8de7f4e63d72b515728d9afa7b11118dae383adf97
+cdb92c17075f437fa0bdf5250c251013b612c593d93e8f9addeb8c03e1d38f56
+e6ec42c7fde744866d4b873b725074754cdc10cb0262403b9740596a661a2dbf
+057144991f0a1a4fe3e316095978a88cf38bb1b5dd0ff4e8bccf1c7d56369cad
+0c2ec29d56a6cd2535ef610026ad120b4bbd5151eddc7f385b229e79b2212141
+6e74463c4d5246501c7b6632add04f8c460c7d5a505f29bb3f45343ed5d57630
+2ff9d8ec1f400b190922bbe646cd809a6bf2e0eb9e7ac66422eacffa93876695
+b8e88eca149ce738586a0caf105ca5878572e58acf6d523f2bf3d410a8e79507
+a0e480af8c618fbb459ac768cfd240f32b0b6926533220552d8325d058c2d30b
+5a437aac867cb5bb6c007717ff089c65ffa92c5c8d159e0833c54c53040d448b
+93fb48b5ff2395e4774ba3764b6edfa7eeecdb2b9736e5d7e427ce883c67aab0
+5b0826cd91af342e32f2179cb109f2228138978abb9c8eb9b555c1269fbd1297
+5929e91aeecf0915d6b2068c7b2df726fec9da54acbd64aa808fce20a34ee784
+63c4a831e33f94a268c5454a1cd2e05a662786e7392b24ef94b7edcf28428b52
+fd85dd03f7b38000f38c4c80bdbda46f62b9a964fd0b5b33f3b8fabe28538632
+f1b229418e1afd6fe9263cc220bad30170816aae06d54541f854b68cf72e08df
+d272021dce628962a7bd962564c054c0e6ab2742846899f9d0dc9424d820fb28
+9ec582bf3b56c48d32db2768406491c837b125b62aef198e85d6d579899ee59b
+53271ec329b283dd4c498294a27df14a783c517288e3b6b4cdefd2489398b71a
+712ab154e55499e016d7862a14bfbcee308d95509ccffced78ff3c55510cf91d
+a90f10d3203706f0592400847639f47c8a70d98f48339a3d7017a8c8462d6316
+bac13df9e12a49805e695a1c632c63e223a2799c84dad656da6ed692520db379
+c727b8375df9d548f693bfd9509b3028b1ea529aa6eb737380a4fde879a6cc62
+3ae8f5f992523e167791f3d33bfdde0a516c6901a202a5c154a0e69cc5fecc0b
+75e61b9ed91834b659805e8b7bf32fbdc4daf5520a27d508689f692f1d69d4e0
+b00dd7aa134c1357de1bf8804fd534600ada4790738325759f35d9dc3b077fe4
+8817aa57caf862713e617bf7bf09344a74bd13f118d26d30c1511b20327c460d
+270e5475371aa26beffef03b66564e0e669724e3895973d98c7150f035fb52d8
+d328eedb5c85e7ea7be5373e514bcf881c4147da0c1656523a95b63f86b3017b
+93af76536dc19979b9f617cc855dc3b8faf171780d352f93aa78c3f25a0af51f
+ae91878fda9da3b094876526bf6d68a650008dc13d0f17f8445236fdce4f725a
+82aa5403b568f65a087169993a3e81684234620f58568d2801f344f5667140f9
+daf63ded0ae4ae391f717aae8b566347257987d49186c82b911a98f94df8292d
+f7ecd76ff09eac1400b6c34658b9025ac42b7dbcefa9173258680d929ecbfad9
+9ce071c35dd8d34126a036dab27b3f2a0f4b79a509433784d3177324a8dbd271
+401ac904e072ed118331dacc31cf4ee21d1a9d805971dbe8d17ad377fab5450d
+1c0448c6c65fe4e8ec9b4bc1ffa74d7d0cdc6d0cbf0c1f905db3f02b944281cc
+c10165cdd7302f4ddf57865d32d47c8c26fbd0d410e4dec820b5d6ea0dd6b176
+9ac0550f15ae88c0efedbee84b75949453669dcf1b447821480acfe750d13f8a
+3e574f7687949b525b278db75c3102fd47066afc56c4588a258813c3c53df147
+fa5f225e901a297e5e322920f131093304bb9b2895e46dbb1d020ee684b08c64
+e1a159a6829de9510e5e985f53454ec367507d4b84b80e28133254b7b60ac194
+c776f734d6e8837ce23edc94531ad2e46dc6bdc1e921cab4ff785dcae7b55670
+6fded6ab4763153ec5f4b2e10491e5e427dc327c21b26db2ac272588fc41fc54
+90a102ed1c2ad82b0811c34cc8db42ce97b4b24e194caf230e58a04943934351
+805a9a0c5975e98c0f11cb0ae28c5ed98e52cf035f823fd449436b20cc0a913b
+7606a6fb2ccf4c7a12714c99b60940ccfe9ce26b22d5dc1fffa01c8e4a04af28
+c9ca3f2a7cb2b33a725c456eff23bb62b69878f8fb185f653f41c596c9bb7c7a
+17cd9b5a07fc405ae7e182567621fa75ffbcfef42e7373b2b15cae76d7c07be1
+6a23086500a789cce988cab9b321cf969a79132544b7d9503c7d30a4c86d8601
+743449d619a5ca87879afceda5d16fe6b31e17529d17a95c027d481b6c11fe94
+77412ded852c15a026e36735239bf5063b7fda776c1282b9f50f602526f355ac
+3516e5df327c227edd44e453b27d7074e0f9d9c19faa49d3de5138498b0569b4
+fcff2041977f69484ccb916856df1f07e40b450c250be68ffcf4d159fb8f1208
+ea8904567bd552116a28a95425cda95d4fdc06e59449065b65dd2b7047bdacdc
+29a66c8fac9bf2efd6886fd859bb0f256b21ef2aa03e6efa6a614b222b84b7e6
+bbf2824713cfd214da92f04543ae0011d51a50fd08c4fe4bdfdb9e184eb32c39
+9d3a2fa71059cfb9f6ae1cccdb4caadbae20ae4f65bc58334164f127de5c476e
+a5bba3644f2f24f0dbadd3d1e80da16a648364c1bf86d0a76523317c7d4f46c4
+19fa31bf86d5b700cfa640273bbb9d6c8af13e7caf3a251001f06dc2d4c8f57a
+ae5a8b4e4379163d732756d3a7b97c778dc8637d06ec36a951dac426c14a58df
+97d2777e7b45ef2c3f9d35202015e420c5e35301af195403f3ace5fd4040ecae
+467282c51e7a6afc69936f6d81216fb0b2e3b3dd942db10d9bbce24e186ad3d4
+6b49414ce148afab9c958e7339664510e2cc5624db80a708a040c0eb2e48e8cc
+67eaee7856dd36ba948c8a8aeb120bc328bca0a629feaec6419d70cb8469d829
+31c1b08b8ef46865819f4d6e3d2a9ba5ea2ed7e7221aadb2660b474e576da104
+ae298abad60f6607d9d03c9af768707d5f2f299927d14be80e258469066ad3c2
+bd0ece20975a061977cd4a1246e6b545e7e9788bd51e04dfd285f9636c663d7c
+6af364addfd0336c6cd6a46a43eb252d2b72df3b52050d4c2b20da4f6cccb1c1
+ca85ee1c9a5501fb22eb7fdfbfd0838f0359e295d3176ec8f0a2a7a262155dd2
+f20cd2632ffc30e4f274af92657085147a75942d1611d5b0407504708cf78239
+8c366a02ad6a8b103df8e615126b33da380bc2aa1160fa63665b883a5a4a7ce7
+514dddaf8e65508b2b6fc341a00de2e976c07a499bc758adda72b65780dd0613
+3027e1d7fafbd4cf7085091ed9dd98d91e4eb4bc0bd4dfbebc947544a96f47c6
+4e1ca2bea3e739a65becde6b2cf0713743b881f403aa40aee5a726a8b5465985
+2ea518675cae5089758c77c82efba56df329ab46166154f0780319347a050002
+319438096d4ef7f851876ce407d436299f7d3a0fb6e8816c37a028d62426bc61
+5fd635060f1c69e3e7ff6d9262e06679e415088687b4e65813c86d481c41b5d7
+4e0c208882b13ef4eeae0c60850dc1bf54075f41763705e3cff0b9ffacb9e292
+2b40aa7209970fa5f3563d7e6e4d3d2249e7e946e97b5fa40291742ef9bfa2dc
+7d4e5ee1a25f6d0d930a50262f17f38744d7a07fa9b6db3c4d7cc96dda023ae2
+f3ddc571ff48135434e354979eafdf625460cbea8b65b63bc612e44d05cc3c3f
+b186403f994fd1919a6244e728857a54df535ae149d405ce6c83c96a6dc117bf
+178e088556e12d3fd88017fd2c0310591a89077e0d6455e76a3c8ae37b8df495
+083b9edafac2e3322c07209a21b5c33ac6af3dbb527dc1ae916cba52e68c2a85
+1eb073d09cdecf8c3aec94f5728f202bef1083215895fb76b791ca266b925512
+ad89ebdb53ac81dca3ef1796d1e91ae23e5c60df72549d625ad1ba68d4b7b5c3
+38b21496653f61f735a9d60c437a6397899304b3ea36ba2ae138a700681eabb1
+77d32cd0dcc8b226982ec3bb7ec84a831569bb9a3bf30fb4a56d947464b1f7b4
+9dda4621907f605a238d6c5a1f21439fb67080a3aa1864cdaced6a37d1fda3e9
+5eb8e70cb3b78d2ca77bab36d6fbff8ce6ab6ea978c1c8fca06c3112fa831e69
+3be7562b859aae3aafdbbd0b119392037f1658d9ff7473b2d4ecd67b80f2ec39
+cb32391e41e2f8466b9bdbe8e134186312f0c97f2acd4eb52f835d00880928ee
+1dca94dc6a6e25ecc61b5e549d1b8a2c130d61ea7a42465f0ef3e3ab242799d2
+639ae4b2cd236f195d3ee06665dc3674c8cd681e0b49c7e5b95e4ddfba0fc01d
+fec2e17a77f16116ad14296c0825e9859ce22241efc60ecdc3f4c56d22ee448f
+8263394ca1848f95ae78d46da9fe033284768058cc5a4ce269ebd36b01d04b77
+2864e136fb076154a52c165a9a0ed6a9415474890e85738fc1e112b733b2cb78
+d73a294367c4a6b33d15ccaf851135beabda0ae764091a3ea5b65d0bfb323676
+0ab084f8c9c16f1e93a7531eaf2130cdb62a8db7b42040d0a92f2b20da2fa00a
+73738bf8aa9db2581b00857bd6d781a2c78d83792012c83d4908012347ed651a
+2fdf54c70d53910d6dc6d2d278872c6e7d58019e8d04407a1a720fefddd6ebd7
+9b98b77a4faee6eee00f2985f8b674c6a27d04c992b7e8b53a1e621f9d3c66de
+e950e1f705d02ddb78a081cfb94006aac8105f5d3e465796d2c10018f65869ff
+73d7a9adb035fb37edffeb469d7670a13a43df3ce14d277aeaba383383d36460
+880d924138c8a8374af1031afa2654d5a118a82149072bcc38f87096d240b556
+79d8221041f2f7934c27d3f1b543b6761cd2d2d42bc27d7c16317d651c2e041a
+bfc027d3472514ed04642e58c1e729945761de2758a438569ddb555052840451
+53837a29d3bfa889c6aabb26c108f27571d832cd930d39cfe96814370b2ea5a3
+9376975e378b752e6e14ff1322942114e4119a307cef2711af296ae3f88d5501
+63ead08b2b515364854990f25aabb23d975fc84da81cf63a416b32af608508dd
+ff86cc694a6b668b3f382e3e3af223623a65aab3eb16d000d86d663ec6031d2c
+de50d54a55edf6c7e47b4903c9922baa00d2c00798cd367613f7549d9873ac4e
+dd3c2e8a044bae53643aae392dac91f6d335112c2dd4b188c5f1ef1e5e42457e
+4c2f2d2a282ea3d2e9bcbccc6dda43161df8f8985745e86461108e080f647c09
+b183ed67257381c512947ce954fd786f0b86a62e40327aaf77c3f5265a47bfee
+2f3919a7073e84c49db01295c730ad18f45364e2f19bee938b7c92235d9e3275
+4139e8c2f64c738a5716ee5bf2c68d09da48166fb2490ec874c723d6e72fab7c
+597ccd0ed2398bb9d99159e2d4a3fe605acf6f7a5d4a00bb9156fabad02d7274
+37448b75e6f08f1c5f17b251412c2e698ca1fd7d8d7a80ac6c7343cc7cea2324
+5812247f35f0f4480e10a1d8f9d8446ee41e435166dba0ca3b29155146c96c05
+ff1fd2661dbfd9ad2a7341362bf8c2a6c10b91541d2e4cb6f8aa01f1c90e118e
+0db81fc03048f54677cf96075eda05b928e200e1620defcacfc777bc76e3c911
+229c64699560d630badffb00206e4de61e3d06959b2c4486ff5dc7bbb22c634d
+8b136077e5062096d3c99b142e2d1aa6c26e58afecdc55a8b90441c045914036
+3ffe8928c20bf64c8bce4dd15ec806a2ac7cb1dd58e67b69a34b28c4164bb026
+2ff9267544a6a905ac3290dda8f97ccafc12083485af20b6875b355d98cb5e45
+dfbafd80fd63dd590a2ebe0b04292a1d37c906ff3042e608b3d983de1d829faa
+8b658584600e5eeee90fb0cb13ec9633b148b69630b8a4617527b0049e107f4f
+7e14bf421df26b08bf193ef2650e7930f567bf3a05cf55f3be9e651c2273f5db
+3c4d08d9100cbf5f5672c702696d823a43082a79b159dfd315278deda56458d0
+b8208c7fe90808e0d0566cc2a176131afca80dc312c9f7e4c25a0e949aa384ce
+254b885cfd9fe74e88b40862238868c3f7d1b435daa876b5875563c3c5bb3b96
+2bae3f9909bbb96997a7653395c7cbb41d74347b78547085368a5b2d18cfc3ac
+56dcd1d9d5a53ea63f4241f1b35c15913f4f773a48f42b4d04b594f33ff14c0b
+16989c4354c2db18efb3132ac64d02c86ea8198461f700b98be371a968c0865b
+ee44e8df5a7ae98b738c034ccf07e1cae4fbfb8a50c9c31362845bfb67e00732
+fc33378066d3b8f1d69224e627103cb706aa5b6f3e4dec74445625cb052f5ac4
+8681cd3b204574a1041cedb74a51d4d21b37d465593a7e8f7ac1184c5ec7ab98
+75852d88e15aa1c5203bbd9da15c25bf2e908c97678de40d9a8226be09a73515
+6d1aa028955abff46da51c07e8e1234c9fd06f9b54c0e8abb2ac28721f5ce547
+3077bc6a4afd0ec98f4fc29bcfb29bdfe99d931ba28e200f5d58136f63c5d18b
+4917f79f9650343873c44f8f9f699a0f5495237e2e748b3e5c3dccc59ddaf98e
+1c4f5252f0c52d2bc4399510496e4844a6392f984204282ed84398e7c8862d94
+62fbad609a8c85945b758b88e37a2a412380b6dc884bce142ddea569227fe306
+c6b4274c07cdcab4b48ec1806e45a27109d0b142fb3c84019f4c1c275e830969
+6f966705b06292c8f8622fe8de526c591659d7780d424e8ed1d83f59a0289dc5
+9556a84b5ee4bb34dad12a92974cef690151728542e222b0c32b05b2c3d819a4
+0c4bfad0e080e60aa633d91adeb117434c58a7bbb334503fb9d685166da7425f
+35097878325385c28c2f1b10ce6af452ae0fe66c89a9426d1b25196d06cb9271
+c6e973f2fd6722b1ec18162175a9c00cd155ff3ee679ffece6889b2ef40d682f
+a2972ea0362224a1c43282a08753a5205d3baec16df17ab6f6162f9a61292f32
+f2d9da34a45f3dff377848b6e5caadf938bbc92d8553556817316f4f8f8d5498
+3d8d72c2145d4d83682ca5d528867e8ce66c050fe52b0269fdc98e5b48a185b9
+79b45cca3d99c870b1049461007ca15f4dbce8a306d460d8f6b44a2506fd7217
+f11b69a0077d3b7c2f016ed954ba5e58c9b51750e4fbe8e88e4b0ad59b1b9969
+bb9494cc19c030ddf9f586d80cdd03fda4d655d90afcd4cfc93ed8b70c13feb1
+b3f052deff4eac734e8c1fa2b4ae1423e78e529443074f58e3f5d84dc1e8af60
+866e49ac96210fb526f1b4dd10aa19c53b92973ca6e13b60d319fad574a46301
+a80d69737b9f60b4466b94f4ac8df5080c92a7359ecf6883d87d1bd45037f84c
+dfc93f9cf0b7d8d8795ea37b8a0cfddb837d8f9a232742995ff55e0c38e2cc9e
+57e10c5c5d6e9ec93650dc90a82f545e54c66133f9381262e21cbc52cd865192
+a781bedb71af318dc25239d64cf458839fc2c809eaf85af1ad027e0ba8bc70ae
+b1648f345e7b6043bf59fe71c0b20f8bd21cc93c9a426e80d62ad487a60654eb
+f0e364d99b90574f072c52775b239a0df62f256f44870302d077d114dbf83715
+e4a07069104876317fbaa1f7adf9f99ddfeacedadb48b397b7eb2a37e190729f
+6d31474f4f6e2644c697e0fd8836de337e05a8b1b8cbb7a5a6be292fda3fee75
+4c5f9fccd6e4528349392fac86f7e6bfc953ed5378b7c5ea0d8b2afa34df6360
+198e5fc5adfeb120d9fc498d8dac8644e9643af39da434bdc546fd2bcac23511
+ab1687b7943f299285d071115b4cbd650f356e75f478c5505a7ff036bebe3682
+c3a00d0476261791cf08eaaefa6f9333c66ccf5c9e59c14829b853a660f3fe3c
+ca0f1f869e3a31d089e373dda04d765d25fb0b6bf205a9fd881f00e99113c5db
+fd2fbd7ed608c32e9d51fdf6454557dc52d72eecdef0ac2d8e89706809648515
+bd4037379c6057bb89ac4b6768dbbbfb672329d3c21036a4804682c6cfaaddac
+7723c715842b25b03fa1f12a2291125f34ef7dedf897ef4a7506f804e3370814
+f4b62612b35acd43a33a3adc76815d29178ef7b6d2c170fcc1af75a9157239dd
+c78a5fad4b7b759755f63031b1a7a6f6c9fad4ca3b4f36e065e3bc3ece67c990
+411940787058aa52a00c51e29250b624eaf70c9e236898b1e2491256e9c4399e
+d8ed5b19f5941e76f51b8f16eb0a96a29fb928e35ecfdca1bed3b12d5b5ca1d5
+5bb2e4ad69fa1bcec3876142b7a194388538f5bfb028402e52505302f482bfa1
+d6c2492fff4c7c882b6260215b52279e25e8d797222a2e4473cb30a4489a6f2c
+566a79e9fd940ba0e15c52c8044b4c725358c667522e784194f87c543d9f7734
+27572cef02f46aacbb4edeecc15c3e813c67e68ec8485112a1e19054ae9b877b
+857d9466e69e81f6c24ba540a3d716f2e92659d252692c1d5def79bba8c6a7bb
+e9eaa7cfb7721810fec93f176e8b9dba3beeeaefdb577c14d52d2676566f0d04
+de6931dc8adccb09022d30b84e9703ce378459665946ca535d26b3094d1b493a
+5695da6dcf79527b841194790af65ea24fab98ec08f519743248fc600029f246
+9c8fccb2b27182928be3f1aa4405e14c7ab842a370e45d48ab1eeec9168825e9
+88147928854fcf974821b19b65d9ffd57333d3ec10b21588f04f652a218d8e5c
+ec3ed25bb6cd5eb1789e3cfaaacd95b72455c5be8ffaee0636c0788a587c992e
+6d1fa1e2d5ec8eea82b6f75f413707da0ec878352e92fbb1608506cc3a4d1f67
+6d364524c8b72c3ad5867e03b7642f335b4e0dd6b59957caa5c0131c8a58e0f9
+5ec0dc6d75837291a7c1dadbe3f92642d2cd4c0eab79cc237bcb33e4631bb90b
+0ce4d63a936348b7cc37aa207bca6410f010890f23f6b3f6da3c7a0643a444d2
+e3d226c754c1598d72ad25c25bf5fdc1895e6d23b9632646ef4f314bdffa9497
+1bf6fccf20ec37b31520221be10025c386a8a1b3280bb47fce113bb4a5f29ab7
+0059611eeab412c0a9693e30993fc944b38b11211594b5ad84b0d622255a372f
+56a150bda57451fcf52f3dba2df25bc416759e32b7b19309c1fa25ae1c33d668
+145f2e645107ccac86e741342ca4301685936e12234c8d612f9314090d5c9209
+f5d154e678bfa3985b03ce6635ab80b8ed2630b41d7d223e6ed1625bfcc417bb
+c3c9e5bca6256260a06923ec1b9d2da78c8b55b05cadb5785c838cff582fe167
+cfff88167d7fb3b90b276f5d6f78e919febe8f9b58915129cd7ae5cca6ca9885
+d22cf7084994d101b81a675d0314c93041b5da1899b36da5db30676b5f1fc0f3
+a98a33916b47e0496e3ddb7710989aab7642a1f77e5cf5ea22f75432dcb7dd2a
+ea6fc7bf8c9fa07c7f28f7d37cc13d3586d4eb49cf579a95dd3ade1de0686968
+7639267085352daa0a19e8f95e4a7e31ff0d17cc87373690d2634852d465ce0f
+ec652fb6d710163c738cfb030bd4935eff80f7de7d7f06f0fdb1f4c10b07938a
+c60c74e442e1f3a6bcc8bbdc7814b6e710c41ae1e157538871afe3518ca8834a
+4b4dbc59cccb6da74715ecfa03e98289479c36d00dd0d125b12f63b45e112c7a
+a1c5e60b986e74e56cf95c80198381207af0cf5f17a6635e2aa89293e67d2c54
+9d110a2a57c02c581166747ba758de5d5f10686029d7f0a82e7e4889ba716076
+2431e00091524ea5b12c9d4493f0cdce0b4dd38ec792b4a92b0dc4539a51ff1d
+613e75d981bbb9c20b3d53400aeac4970ff843efce5eb250c1283aeb831573ae
+15427928cc2a9c0c3b04b7cef0dbae549ae82ad2fab68f5d7463420eac2cbdf4
+21bdc88f2a6b10521913c6bfc6258598ee979570e9e555f475b1b26721f94a54
+62135e9705fa27259bb9564253d058772483b35a487acd624b8d9fa02ee6babd
+73d308ec29a30cc32bf271cf95b3b070160e31b8649192444a80dbeb812d1d4f
+4be00ffee6bf7e4cea75a1142acdc28ee252228dad937a69b3580830ca904cd6
+f5cd01977f6fba3a13e89667ddfc777f48db2736d78856baeefc2e41c82c8246
+6d361aa2d02fe20568f584088f4038b72e10695253d8e095de4288a48605ff43
+18098801cd4fca473f8c3316e8ff9ceb463d3ac98efd0e30eb743e250b974e75
+8e86df712e13453ae6882333f16696a670d28aa612fb9a03d46c4a866155d21a
+e216e7017f06c6459708efaa13dc465bf43ec202c8f556945fda8f0e06a527a3
+68c577bd0e5857f35c0ae8d0401ec43d1ff17760a7d9893dbbcffc86be0747e7
+e6e07736ef0146bff75de5715e45f8ee823070433000bf015dd944265cee7ba9
+bdd434a1d78e419608a4b19c0f74cbba354bbccbc13d0bbe4bf95072c69762d2
+318d2e637a918aca900ed1d59011198197e8dcd7d1ccc1f43890453af9f70f82
+1234c94e6f355e494c38e279e28c60bcc6c4132405b8cd1523a1bd77a4cbfa12
+c6009f5669ae3363a405eea28e7a28044ec8b461b342654b2c24d50f43cbf088
+7c60c225409a289ea660b77f2286acaff8c4656d4a369d39875d0f1043685703
+3d2c5ad5e2619557b4f2c88a753249c2da0552baf19916f46f7f3a1f1356ad2f
+047b55f002d0509e266c184a77c6fd56071a28089b1082c0e80985242c8e3169
+e754e5cae6ab2ec06b5d8f1189e325485950ada8a30f12be6872d8393ba32c1e
+cd6a80db0fdf54919e9a7d9da15c1bb823881033aca8c21f3b806722f5277aac
+ab4a4e80222b3536e50a2e5bee34484310cea6573b48f992d2b361b13f3bbd14
+a1e65c58b6d71ce393c3f340ff9806b54d82c04076aa5a4343e53785b3bed4c8
+a78593988bf3432a217ab637583e2898257be5eaa11b84231f6c9761f74dc75f
+fcd351f3c4101a69c98877ee17ad11541d7f57f6f5293cb956a7633f541eaf25
+3262699fc79e4a396c5d3289c3cad0c31ac6cd59e794c80617e102b306ead89e
+a03685508781c79645abf8be697710d4d5821d1512467b66db602a2da5e46f64
+6d685e09e0528c479c6e9d6a5503b99104e0a5535e0a62683e520063bf269870
+1896b39d26fe9d2ff2ba0baaca77a75ff905b3caf7c7c8a5243c54469eba42d0
+ecb15aff53770c93a32b18205d2fd601f88a36f53b93cdb0a247c4e575
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+
+
+%%EndResource
+%%BeginResource: font CMR7
+%!PS-AdobeFont-1.1: CMR7 1.0
+%%CreationDate: 1991 Aug 20 16:39:21
+
+% Copyright (C) 1997 American Mathematical Society.  All Rights Reserved.
+
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.0) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMR7) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMR7 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 161 /Gamma put
+dup 162 /Delta put
+dup 163 /Theta put
+dup 164 /Lambda put
+dup 165 /Xi put
+dup 166 /Pi put
+dup 167 /Sigma put
+dup 168 /Upsilon put
+dup 169 /Phi put
+dup 170 /Psi put
+dup 173 /Omega put
+dup 174 /ff put
+dup 175 /fi put
+dup 176 /fl put
+dup 177 /ffi put
+dup 178 /ffl put
+dup 179 /dotlessi put
+dup 180 /dotlessj put
+dup 181 /grave put
+dup 182 /acute put
+dup 183 /caron put
+dup 184 /breve put
+dup 185 /macron put
+dup 186 /ring put
+dup 187 /cedilla put
+dup 188 /germandbls put
+dup 189 /ae put
+dup 190 /oe put
+dup 191 /oslash put
+dup 192 /AE put
+dup 193 /OE put
+dup 194 /Oslash put
+dup 195 /suppress put
+dup 196 /dieresis put
+dup 0 /Gamma put
+dup 1 /Delta put
+dup 2 /Theta put
+dup 3 /Lambda put
+dup 4 /Xi put
+dup 5 /Pi put
+dup 6 /Sigma put
+dup 7 /Upsilon put
+dup 8 /Phi put
+dup 9 /Psi put
+dup 10 /Omega put
+dup 11 /ff put
+dup 12 /fi put
+dup 13 /fl put
+dup 14 /ffi put
+dup 15 /ffl put
+dup 16 /dotlessi put
+dup 17 /dotlessj put
+dup 18 /grave put
+dup 19 /acute put
+dup 20 /caron put
+dup 21 /breve put
+dup 22 /macron put
+dup 23 /ring put
+dup 24 /cedilla put
+dup 25 /germandbls put
+dup 26 /ae put
+dup 27 /oe put
+dup 28 /oslash put
+dup 29 /AE put
+dup 30 /OE put
+dup 31 /Oslash put
+dup 32 /suppress put
+dup 33 /exclam put
+dup 34 /quotedblright put
+dup 35 /numbersign put
+dup 36 /dollar put
+dup 37 /percent put
+dup 38 /ampersand put
+dup 39 /quoteright put
+dup 40 /parenleft put
+dup 41 /parenright put
+dup 42 /asterisk put
+dup 43 /plus put
+dup 44 /comma put
+dup 45 /hyphen put
+dup 46 /period put
+dup 47 /slash put
+dup 48 /zero put
+dup 49 /one put
+dup 50 /two put
+dup 51 /three put
+dup 52 /four put
+dup 53 /five put
+dup 54 /six put
+dup 55 /seven put
+dup 56 /eight put
+dup 57 /nine put
+dup 58 /colon put
+dup 59 /semicolon put
+dup 60 /exclamdown put
+dup 61 /equal put
+dup 62 /questiondown put
+dup 63 /question put
+dup 64 /at put
+dup 65 /A put
+dup 66 /B put
+dup 67 /C put
+dup 68 /D put
+dup 69 /E put
+dup 70 /F put
+dup 71 /G put
+dup 72 /H put
+dup 73 /I put
+dup 74 /J put
+dup 75 /K put
+dup 76 /L put
+dup 77 /M put
+dup 78 /N put
+dup 79 /O put
+dup 80 /P put
+dup 81 /Q put
+dup 82 /R put
+dup 83 /S put
+dup 84 /T put
+dup 85 /U put
+dup 86 /V put
+dup 87 /W put
+dup 88 /X put
+dup 89 /Y put
+dup 90 /Z put
+dup 91 /bracketleft put
+dup 92 /quotedblleft put
+dup 93 /bracketright put
+dup 94 /circumflex put
+dup 95 /dotaccent put
+dup 96 /quoteleft put
+dup 97 /a put
+dup 98 /b put
+dup 99 /c put
+dup 100 /d put
+dup 101 /e put
+dup 102 /f put
+dup 103 /g put
+dup 104 /h put
+dup 105 /i put
+dup 106 /j put
+dup 107 /k put
+dup 108 /l put
+dup 109 /m put
+dup 110 /n put
+dup 111 /o put
+dup 112 /p put
+dup 113 /q put
+dup 114 /r put
+dup 115 /s put
+dup 116 /t put
+dup 117 /u put
+dup 118 /v put
+dup 119 /w put
+dup 120 /x put
+dup 121 /y put
+dup 122 /z put
+dup 123 /endash put
+dup 124 /emdash put
+dup 125 /hungarumlaut put
+dup 126 /tilde put
+dup 127 /dieresis put
+dup 128 /suppress put
+dup 160 /space put
+readonly def
+/FontBBox{-27 -250 1122 750}readonly def
+/UniqueID 5000790 def
+currentdict end
+currentfile eexec
+9b9c1569015f2c1d2bf560f4c0d52257bacdd6500abda5ed9835f6a016cfc8f0
+0b6c052ed76a87856b50f4d80dfaeb508c97f8281f3f88b17e4d3b90c0f65ec3
+79791aacdc162a66cbbc5be2f53aad8de72dd113b55a022fbfee658cb95f5bb3
+2ba0357b5e050fddf264a07470bef1c52119b6fbd5c77ebed964ac5a2bbec9d8
+b3e48ae5bb003a63d545774b922b9d5ff6b0066ece43645a131879b032137d6d
+823385fe55f3402d557fd3b448685940729e6e22f4be0e08c6505cba868f7950
+93f556b64b808dd710eb936d3ac83e5783b5f7e56d363a59a026a5619a357d21
+c4e77bea121eb24b09027d1aad93158edf912940e91cd2f17922b35885894644
+7773730bb19af9e70453e1b78d5edc123b273a979891d6d5e624f4a388f3897e
+13b045e34b4ee2f5e4fc5e996d3549640010c671de14d18b0b3cd300e57dac03
+22e59bfbf7b29422230870f5897fcfaad4b50c7c1c58edcd119218163d6f6e56
+25ccb882db7b6d09a1586508e8cb642a11c29a46915e4a96e282079cb21922c1
+c2e360b487a45302fd22ec8c5fab63e54b5e844d4b17ca2fff37c69c366dd72a
+d02922c14c0932f65ed03e4219c117962edbad2dcdeaa9c10ce8af38a4ae52e2
+b377245b0be19a77d6c936e7530cc4d0b78d0cc4a92698fa2870fa54f2d8503e
+2d17b3d52fb2febb09f2b2af0c2a1892039ebe19a690098799a858e3d39631bd
+6925a154d161df3918074ada6bd52baddd0adc3f07e2d9f15e27cbf7fe8b98c4
+07205c811121fa91e059f2f99322fed63f359ac9da97aec383f067f23e5de331
+51e80f0a88ab50fe8fdae4a5de93c1ae2fdca06150b37246140c0e87cb2325a6
+0d2349162ae3ac93144eee1e665a1289105318fdfe86b6e76251cb25adc967d3
+d0b97fe5e279e1161736ab22b4ca510b964342383a840defd38f96a7280e6ac1
+34e48d740607ff2e7804164a16d47735864db8456cbe4233242eb3b447f7ad44
+4dc16cfb69ab1e515b3c3579f0e84748810799d7f2833db6e76f6ad8c924532f
+8f5afbcfd939544bb7da501d8511e37090f3a56d06fbc17a49c373426bc6d94e
+829a8cbfff9a2502c915e2823aeae70e39f00ba99f8e6094a024e3c485032a06
+1769d653cdb17a06d8ec2f407c4b9217671851529647d0b9f261e39564c79fa0
+d79aa7caf3d08556c66f08edabc27870cafc00f0f1828e93929116dea5f038fb
+f92837e804dc9caa7ec9d967715c97c6d5770b5913c4513dd239f55edb3d6e27
+0e8d826f6b4d0e7192bf8a1200475ac8e1a30a8f6b7428c8d321f93421f8a2f7
+07548cb12c6963a2ca8c47fd7fcc6c4fe8cbb31985a89a0d0617119a892a6127
+2ed8e264418418f2dfe0f5ce71fdf732f0dbe1ddcbce2a7b6c2068d1eb733ffe
+db0ef64f9bad513d3267870e0e90147c6b4bb9f60f99074ce5675f7c4fe9a473
+5be7e6d1081203dee5a7df96d68b2aac736df07bdd5bf994ec28ebe13d2ed5ff
+9ea89fc822339aa45dfe008523f617daa3db055ec593372fc2752be8ff2fd825
+b13bf7a2fe7a0fba28212c389c62b64e9d156842356743272461b4b56b9fd5bb
+19af45607e6e3424455a2abbf21ece6e2eac58499533299f5a70391c4b7e9e95
+ac00a7593334ff183b9515f642ea934dae6fb630eded6b80389f70ed5b3b96ec
+7c116b1124d4b6c90fe571e0a1339c714126128dba4caf5fc2c035579774d403
+ab3bfdc134145ad2fc303f8c1fd5ecbbe201b8c93dc26497335822455921dd3b
+07853ce5b85936f54745b3cf0ad0523d83b16c132e600fd7dc81b585e769207a
+4949ed024372d59254eb97adf5990992ce479506fbe4a8baf5b46c8fc13c7c0c
+c5270d37ed08fcadae4af27b0e64080facf0558c85048a599d567054dfb29068
+3577296cf1613299e7354b90c2eb4512e05b3350f681bf6412c688bb05c11011
+0932935913b5f888c20546bd51e414dc04255fb51ec37cd47e975f97267ff785
+98952239f401e8704a903d9c8d7b3e72426ff13cda6d912a4baebf04e9c21862
+90bd83d1040cf238d04cce1a1d177529eb8a27731c81393bb96d0858277ad5d0
+ae1935f89638d528b1b9493532d7c81ea6020d0aaedc98cc93f644ea5b5d134b
+8cd94a5e46b883e1f54a7a098f230c437b71049c0b2ca37b72915638f7088666
+438db22aaaafb84590bd7ebe4aa544506e19e547f3cae50348674b3ca185b542
+fbfb2594a687814f0c330bed938d482f6d55db7746af7d052beaa9782e812369
+ab4ae39f0a9890dd75b6159731898692b986063985afafd8ca08714bd415180e
+d6afdde8d5719734c74a055fe635db9b8908488ef1481d72a90c9e99614f973b
+243ae426dc24c4e8a9a12d6d5e73fba4eae1ba66cc5b5b54357095a72c84c4e5
+acc4d90038beeeeb23e058079b3205c0c4e0afc015c650c4f4eb4578bf6dadc0
+4e9228f5c304b2433f8d92fccafede671f2f19218d070e622f0f5a6f3bd95bce
+78ddf81fac393757517fe2e9c02b025b151541060b87c1844b3bc754bbd0c9f9
+255a9feb28b14afd3b71bd0a916ca17957e3b78539480868375ea6ed93bda275
+d793344bde7e59dda118414ad315bc177937e056ee85e41c94c370c5f5b8cc34
+d334a6085544a3a2c0ac9245a3ad03c278b39abe17f945e0afabea8f9551460c
+19b7e667dbf2bbde697ae8802196ea5205142720e966449d85fb59b9f711ecae
+aec9103d383f58ebd19e77837c42bc90e44f0397e073656282f8359362ffd450
+fa089c6911577705efcf9537dcb916b7efb30b4055a6ddb503e2983d1bd53482
+600907d9160fad04128f4dc6343242e0f33c22286e6c91819f2e760a17886917
+a12e6346794ab66bfcf02043371e13d3f355a20c583e484c94bd407dc2266529
+cc993243d7708c22c4ee4eb9dc2ae1228961e6605299201ce90b1b0547b103c4
+854e186492f99623b8b25264c6feb01c3d9e86b2bf8df607a5cb944fcfb174c2
+33d843793e87801aafd289b7fba2e2d70e3e08b121a872333fd4064a3befa3fc
+9db8382f0286852e322ce17d6fb4b31858aaead12cbaff2be948cf19c1bb1401
+14ae65d26101457b1cd95d1c9347528b09cef9229913d349b5ff5f51869a7e7d
+929b82f9736797f4c49df52b2bb98bd87bc5483adf1c1f620f70bbaea51d554a
+1664376c9feac4470e145c1138f27d16cf6c325a0a44c53a0adeacb28cafef2a
+5a09fdb2968bb22916f47193ab3504e23f103a993d67d48f2eff36c306face68
+70c0216091a42531fb07605c0dfb554e46660eb27a8503442812ea6aae3d326a
+4f9ec58b6c732cce096dd512a8bb8a8fa7ce09ded476b24edecd9e39f24e0a30
+be0c7f0de109cd0e66196f3d55ba8298c569c9fc1d36fed89e1dacdcdd6a5e3e
+92d5201584982451c378f34efa407b65f27235cdc570bb7965375902cc5e02c2
+354145ff97ac9278bfc4191a286bc58cf9351220c57fc9c4cb450ae57d46c216
+9999973ec04053f53fcbab1681b17d6049f0f0786aebb41b00c8cc615eb6a5ff
+5929283a93d22e28050d0d02bcd0bd18818ed6836cdda8dca69093e03658d26e
+f757319cb1e738d7ac4be9eb6d1356d9b34b777e4ff4f2459288500e8564ea13
+633ead85e614dd9cca149cade40f8d1de3eac49b16f9d954953c19c66334b456
+260cb46c84cdd7d098d39e90920daec6d7a4523e54f6229231f5b5935b4bbe67
+a3ab87c2c8c2e539376665fda5e14ae5f6ec57d1340527026c7b73b99f13e7dd
+22faa6cea155b79cbe80733a40e24b62a1fb88fdb4154283b8c5c377ed6ff43c
+975a01366be13b9a1ecea1954c62ebf209d4a0761c6d7ff6f1bcd1196e408003
+0eb2a8c4daf3c941f3cd5fdb6ee95fc90824f9048296c56b3f787218f3d546bc
+2afb2b2483e1addd112b7c892fd4ba8b158b579098ebb44befb1b312e0f42f08
+bf77b43b438a231c1110a56f89bb1e36ce90f5a5a69138b7a8d840efabbd0c63
+e459021227f62539c056e90c377c9563d1baa4168ea5aabcda5ded1bd8e58dae
+c21e20e651e0b783bf605ddf8f786928f7ddb085af660ec41c26eb4bb70b6071
+f5f63d7427e3d54a05f28178ea6a1c00ef8868d1fa78093a91d3e4bdcb4a40c8
+14501456216d7d164c7a82b4bb5a16220f7bbf07b9d11afbde09caab3fdbb620
+3c667ef450b644b7e536b1c80bafb4b5e5295b747a08c4e843dffe087dc105c9
+bdd9052bc2d86bec218f9d49e2cb9618d9d4a3422f6849ccd5b241c0d0115da9
+8661acfe49e8a8cebe1abd00e6662a2d8a9c0ff1a6808bb04d5e46467904c168
+c65b7dbdd1a0b5456aeea445cb22c77bf3f7350b13b4e2423cd11a84ab6834c1
+613b09bd798423f2249b32ec8290d679d14d3e0935ab5cb188d4f845acff621e
+e3e0206e6ccf2ae120114496636f297929ea214d6416e639b5ff5b188f38c62f
+f67c969e3fc492237bc7d5d6bf16604c0c94f2469c67a225f6cfe49eb45db942
+3874be7ac48a009d68d028245bf895c1d00c40592b68ffb7642386887f137353
+293f9d506dbe742b322a5af5677197b8da6dba4829f20a02e0f8a8cd140c76f9
+bd9c730097e0e140ee2ea2f3c71c714c669dceb650e87c98edebbcea6a5966d8
+965ac0f8dbbb858b77bfac279ae094995ce9e7d78e387036652b0fb576ef90a7
+77c664c80fd7c2c7b9ffeb52ffad59629217f293f54552ecbcbd6f05b326afed
+b82b079d68104ca2660b9b43eeacfba620efe2b1cffc84ad5f98ae71d4ce2819
+7a7ab40ede026a9986f73dd0213c1523112f64ff23c40a474fbc44e3266ee0ae
+cae9a823bf787861f3f9ae1bc0726a47d8f74b70d7899a5a2e40a2d0b5f8e229
+023ecc4e5b30f914f3effd4481fcbab37d8abf4ad3759d2357bf5b7416cf9ae7
+2a9d0d9a10892a70fc0fa2f2c20cb2fd8d80ca9c7530cc1465d9115306ea5dd4
+f7d7ff60979628fd78b6f0d429b642e44ce21929ae076ba999b78dfbaebd38b0
+c261bc566c5161119cafe5c3d0cd02f149f5d24b241a9cec58e9e2e9f72a2862
+e2103d86ce4d93e612cdb82ab33215c2aebb8d30e34eda53222fe67843fd747f
+9cb1d7c2b4e87d71498a1d5ba282ea5bfb3fa18719124fd46a98acce4bf97e48
+0a13d5ab27689ceed619a8595e613201056c5e137f618e4f4b41b3b5f247d0a9
+e786904dcb1e2af7ae330c11e4ce29b6c75ca748584e83b5621f2321b730221a
+0a6ae75ff5644fdf0fbdd7af0627d4ca801d0ef9ad04c55c238013994b493b6e
+0caa0c9efb6a8fe46e8f120d1cf4f60453a6858d2f49fbeb90d21cc6a67d2616
+a506795ad9bedc96532336bf65679adee6672e8ff95da69f013d64d7121307b9
+32bf2ca4ff2623dcfa5d8ade618868d6fdf74fa9eb4b1d812c0f8596c9c14b80
+7345eff6534001fb3bfa4b5cf929767ade5c5b1628a1ea2d0805e85042f1e310
+99efecf5a542beadd11b41f1428fb471dead028b55bee01f9429dfac0a6bd372
+2c7edf43d73a222b883d305847a200043dcab3cce0ed7a22a16210700d98ec41
+6164f8c5a8b13150308f253797903f8515f065034ee7b5c42fa83cffc6ffba08
+bab2969617c3d94213762c611e8dcd1aa82f90ffb2e2c0e570295ec8f3635258
+3cc4c9de7d1df3e8774ea47ec79fb35fb6eb954e573332f582f2679b13e21852
+6451ae5b5c7f0154b8769119e88a6e93bde1655287cfa8663eafdf09c332666e
+2a14f562c146c9f5cb18bd22b70f98d3d0917aadc376463742bf897d7b1868ef
+b80273cd69f079790dc6ea395987786a1ee6d649d725026d34f8a15fb57eabe1
+2757e49f30d2b7dafa80aae0723f905cb1d4fa4c21aa68025986a45a6fcb4812
+b7b2698910e5fb950f2280e3a60a0a7930270a93ef4f7929f2add145ca87872b
+8b713faa428b10a1f419e985e740d2649a29a3a5e0d691ec7eed9a5251a0d76d
+6a6d1f455d308bb7324b29a92cd01006eceb1128dcdf5730dba600b5881b7c37
+22c09074a51c45aa8c26a3d960944fb062a7bee0b7fb1d06b5c3f0ce9f283625
+2201e0b3121dc1813d955a3d11a3b41b1b1e74a2ee1e84364d05fa9a68405cba
+bde0009b221abea1146608a26b66fa93d382da5adf94ba248f14035ab0c03ec4
+9458c7af3d9867682d1b0dd066136543ead160500d49912c5eac3b24cb12ab65
+04c837199186aad6459b320d69265f230af239890f5bcd0720fe71d3cc952959
+82ede49a9d4fef248f7fc3566796769a2a4b205e93dbc03454162cd50442b119
+54667199f1c43fbbca8c354f43db19c1d096f9186a1b200da03f81e08dde8dcb
+88b2fb1886d246933b5497ef4782dd56f5a54ba4d8a5227e4e5de31b2231a26c
+44103f7d556054a2d4ccb8f57d7f56df346467cfab794ee825f86f3c5e42339c
+a4415e8100715745c770705f3156f7c4adc9aa98d5b72909815eb12b55dec847
+24575bd716f0607de90dadcf41abed55cca9ce2c075a851c9155523b109b6ba6
+6a5dbbfe5159fdaa892beb9be909fa491b29a7395bc3ad8be8605aa7b57d10bc
+5f96a02080f39b111cb1d23300d3b6269c3a696363156d3d0e99bdac071bc920
+da194859865f6aaff48ae35e558b99e0e88d62f21b7c7a3640df076eabb7b670
+25fbf9926e8c469bc5494d501de9aa1565b428349511b5a2d3d9ddd67cc6e6f0
+6d83b28857f462445f32af11d71946359a66c9d7e6f1edccc0a295688e239d18
+e6fbec696c21f5b2fbf01afda3ec39f0a76e4b530528e302a73a75509a1035b4
+d55035475c984b66d0aeb7f423e4edaf3f78bd9735fe8ff17ccaea7d245c0257
+650246c90bb99e1433a867237bc222ba0b96d4e332bcf48b8565d9f00eafd940
+c10f1ec44f4babc9e4b74919039703beeb805991f1cc3d9d7cc4cdad755444a8
+cfa2aa908d66b88b63551b7196413ad3614cdf428ef48cea5396b5777c39cd7c
+d285e9a75ecc5e028dd5c291e063326be2421977de683ecd670361645b6f4495
+ed0ada49e2c3a341d1973b7ec21ab13bb4f8bbdad0b31ec43b0f6a3268b1e667
+298d95b3bda5dad45d2241d851543fd03f1b26b6172b88ed6b3a1641d4125af7
+0cc3a4d425d7226cb034b2bc7476ef5e08a1a33626ec8b676a9ed37cb0543443
+705ba5748bfd99ebafe17085d1c20a85371481b1fe5f239986b5ed471b215f82
+1bebbfb2febd4af60b53a1aba5fbba118c0f121a1183e8d1297da1882dfa5140
+469b25225cde835d18462ba08dac0673a4fcc6172bede2fa38373debb9bbab9c
+e158fba3d831499928c4059c086b4cb70dc0f2e48ee03fb4887cbb0b45f8fa04
+d7ef316c864055d55ffa990419d9a83bc08af43efc14870bb40840d12cec9330
+6a2355188f9367c512b4d0fc1e039af8a85e29bd8bf1bfa9476a3fa2876c5893
+3f713f0b58ccdfc6914d7134e347f2816eef956c6171b313ba58c7de279178b9
+bffb30972d6b8d963202e4dfc92e9de0baf43878fbfa9a13f30ebe1c9efa118a
+cf87edca5e6de8ad4f41c09f03465e20be82ce8226395ead99a8bb871d49e989
+e486626d73cf15bfa569f3ce25391f477047c402493a23b55f70462870eba3a6
+81a8f8d99cf7c2c81c70d705c392abb88587eb849662b365f85c241dd765b3c2
+95f0b7e7ef57c7cad259577d8ba18df21e664888eef38dd5d9f984f9df4b51e2
+8563b787c8ba7a96bcc3ea9e3a26e9b0a9946e642cb59170a89d526fd1096b7c
+09108806eebcf387fb03959d54b418e76a6a638407acb5ae8fa4a7a5185f905d
+c9a61ff94929d3c2bf0d92717d81b575ffe8d17e5ed3e5197cee88521ad4f87c
+d5f57e87bc33f077c90cd13297e91c49f226ac5a085b73254d5dd3871c97f873
+360fa05f8f7216c867c8411adeb944b47bb5305c6e7b51a9e41916aacee05797
+6cf4ba417a67e68c4245e92953c609af2b8f658dcde16d328defe4cf9eb05de0
+aba6f076122cae1110ea641d1d886775b5c5908d4c32deb6f8537a35f6dc6a4f
+0e0216e93bbf3ac1ebb21ef00bd2d7cd787c17915788d0cb4062a07665931a30
+c43b483fa325f9f92f45ce6cb060300b818637507fc323eb5c1958ff94c73727
+26a7b68c9f83b07036ef06fd57c4d174480feeb0a6441fe2de8243f4621b553f
+daed2254e9ef5b848f632cea1a6b9f3d2e1ef7f770f5404ae0f4f3c912ee3281
+f9596b42e01325e8923923703cf60f7603b7fd89888fad0acaaaf1b1a6463a3e
+73525840e5616d5c8e7f66683f2135f3e4d0ee18fa8432aefd05c3569a4cf8ef
+a471f0a1490b4a55093a64659b9d112ec90f42fa874f3f8188100ea2f157bb4f
+9f52a1b60c8ecea96e222ee4ad0c6b70b2b43f367d4c933f425d49eee4c7030e
+e050dfa7cc6d044cb9e20acca84a80b9f1571927e2a312e5a9991244fdb6ebae
+1bfca4820c193703951baccf931b654d6bc3851324d3394a3be41de2523309d5
+fae513f18cb65c9d135c5f8efb7b2622b991d8aceb91880b22944d26909b3544
+578c19c1de4a16cb7ce5fd26edabe394ac53b2f466e27ed9fd7528b6f7cbe0c4
+eedb4024c76efa6eee427598a18caaabd3daf43f462c138504aad4517fe9a93e
+25d49314266cbe18585671ec97d8016dc14774cc105c2807e8d79e76613585ea
+738b346c49534442bd3e36abed00e8a6ff0c7bdc021b721e2ddc00b6c3e6f42a
+2f3c98dcf7daa873fade66d8ee0a21a958c725026f4a439be96a9405c808649e
+54177bf01d6026a6b759bae9689995de878da4ec878a69baf3c387cedbd62092
+debe87a063e21d01f632c247ef3f07574282ec0e245dfeacfdc38aa46171d826
+16e121ba73b684f869908e65af1c63a2eb7e812eefe3c3f4954e10463359cc95
+7eaef32a49e1d341702f2dcbbf1522eddf1df96f8c679f752c130546594a5759
+e7944ca62474d30f5373801f323747f58a04a8fa115ac67309fafac362d6af95
+4819938920277628e3771a03d50a13cf80031e63cd4834d0d47c5ac75b7b2218
+2eb95d8dbf64e531e595a1dc9b5d7d093698cef3614bee91f73e5625f425ccc3
+c4a364bab995cafe438d8961a14e67d0c03d8cbddc4cc8c34d7f9c2a815cceab
+4b398d21cd45423650d0a19a0ac8654175c7e9a43fd6599d2875518a43151772
+6948bd9fa0c7fbd59d0a62e979fd9254af03d216fd75734bda875f66a31aaa8f
+131b49188ad3aebf2dfcbadec488dee91589b08297a960e21b4c472b21bcf55e
+1430e313e1bb32ea42921a240917ea08c90af9cd982444b563c1b823104d34f6
+4df37742f42d75c6d6b9214325cb6beb0280f79723e9a975a499784c59f44fe5
+c8fbfc9ff7f5643a5bf9e6e0566d5c3134ce761811a725d9be99cf34dc682243
+774e6a13b21459c2242ed68dea64e24e8da19f0899072c0cdb2a807283d5378c
+b7d087d1b01f92e47d1d96db42b57fab36cdbb73e1ebaa81d22c521a573c1806
+7fc8ea38713c959046c985593aed0df31989deb783aaa57ecf01606c675e5adf
+81d845a542d50afd29c98ce67a38b210ee23c9a14d23043f91fbe77ed190b43e
+fbeea41382ff8ddca4abee4665b67816531f07eb8043decb836794615f3c334b
+8734a579fa0bfbeddfe32a95389c6110d09de30091ef2f29a29206047e8378a8
+70d9831de115685b34066b9b507e8dcfd6f5a23b5cfe5e74527b30705d010cdc
+71bd90db9a9a53053f6b24e65dc4aa0f7da29d4d66d9de8c11354821b14ee965
+f16597edbc5bee7d4683e20c06337ce21fd1a2a5d78ff1e945ed13acb556c70f
+89a08202663f2622cbcf480336b8ce580275514b24430c139284eebf9fe81cbd
+e98c00b2ab9f85ba64e2cff0888df49c600ebacadeec43fc0a6e92c499416902
+cdf94b318aff4f6f4923044eb2ef3a88d0d94cd274f40488309e2a08c10ebaef
+eb2759d9dc7dbe2c0e647f36c21220f11d88299117ac699ec7241ebb828a03d1
+8a58f8c7ac0839e929f6f58ccb8613d8ddef8fd6525e069613d644653f6702b0
+b097a177a31fced5f7131f8a3e5a420d6c7684f2bbef5aa88fd912438f7f6d22
+263373cc04446a640953812419a21793a204146a1296565e9103c1daa633dbc7
+9ba9e5504ee0743946c1fffaa5357eccd3a269b6a63cba0c0a9c76babdfb28b0
+cebb607cffbaa692360697c69e1edda67e12874f3f1260753249307c4572f363
+033b902fa48fe237a4f65736bc9da310ce406ab83059f02f94c8c9384f6811bf
+649506cad6554912561acea6c1f4f1f2193643e75457e7207c55d0160bf19474
+3ba207d4431fc2159a4d593ede6b1aa19f96ed07ca67505ea417c85a3ad0f87e
+aba0716c41bbbaf003881ee12cb4892184828bd1cddc94aae05c19999a6f1d2e
+1dce2a94c4c2902522e44b22131192ced3d42a3584c98c2d9301db14eae74740
+14c04aa8d2dea1755e5f9037d3e3821042366455ae23cac2be67e0a595a033e9
+8462e1008294a00e463212a26b4b941255523a3c9f39197151e388edf193d510
+a23f3310e18fcd55019de861208f9985bedd65ae125204a6df7e8233a25af7aa
+151c3f8bae7f6864386fd22ec8a3f5a179d7c70ff9e71237ebb2217d09ddcc06
+1d57445e8b9665e22dddfba4cc18b5a9dfe15224697ecbf4e797e3042ae2754e
+f1bb9d4652da69a07f57ec6162ea26d4650feaa52f9b39aee8767c125bd7782d
+3605e19dfd2266e7a37b58146615d5bae6b16633d5280d2cf0234b0114a91dd8
+7ab6987ff0bf4d8014a524ae04e18813f88d00bece288012e8a285214c8aceb7
+a5ef665682d463462f04e4ba0852cdc98d6982de873d1ec644f44b7fce18778b
+9d8f130584cc3f3a8d7a51035f10167b8e572be50997eb738381421a763e96d7
+85ae567981c1430cc18a79b8f57557588d3842795f2312c4d3e3dc3d55d54a35
+8a9c0b031e91185dfa97e0f5474cc93cc71ba796b4a842c8340360bc584a1477
+608bd95481dea6db57d819a8f36bc70c09889e2614a2bff7c74d0d1d09e1454c
+58f7ca672adf64d0acbd1f9d3ac9203d7d011658e361b499818b4bdab372524a
+385e65d4882a442bf53def1fb2c7460db0f59eca306c74aed3e29a94796f525e
+2d5df9be7a97ce6f0013c0f39476a7bcf610f4bb5e83d2cf1a1d515f899c81bb
+b60646125408922b45689bdbd82f14a2b9bbe1f27254a5d1baf13b2128846e4d
+d8468cdab44b9f847d31dee079dfe5fe51870ffe9f18caa25a2fcb978a46d747
+544f2fe51496d04ea5478b209fbe843025bc64b1cbb0dbd43db01744c471327a
+cb3c77e4cb6fadd41b9d4d1c0bd8ceb11aa2a239942c97d1f1594f6e4d9cc342
+85e4dc6f61e80ce1febaad7f9bff9c00e0f06091ee76794f0b859b46447cd627
+db60142a462a7a3e4403e839dc6d4f08bc6b50e8300a76de811edd85431ccb89
+5af3045425f4099b1aecdeb7312e84dfdbb373309c9b1ff572adc905a41421a7
+7699c8885879f4939e7ee8888e7cf88ea12401c1154525807f96c6f192dc5981
+abbf512ec4b4092b515a14262519a630f20dc7ceb32af0a2a10443ef54ac3768
+51a23f6aaac95dfc30d0e4cb5e14b5cc323ce4d95d3612d6b19a877973b42f32
+cc03ec67497e3d9aab54573b36b1dd5d096618a4add3a1fd077c1b00c7e6bae8
+a90c606c979a2523d5afb67730416fdb1f28eb72e6f7079b84a903c68942c9a1
+7b1d71c30ccd288ed9781e50212cd06e5eac59d4503436e3df8acf1f63a8b9a4
+4c8d159c1981168e5c4bf7cd5c5069efa0fee41bac93b1c0e0bd9f12abdbf5c8
+404b53c102dcd215889a49f23c435a962cab0c48f763245f0ba1e3b61c6a6e30
+5d8ed49fc181bb4e6df8483102f70da144937c8b5205d240d6616f1281e92c4c
+f018b5e26e74ca729a09d355f97bd76563a4d62a3d643d5c7ba4931b5a3e3a80
+79286d4365da4e4f63236e4c5e61f6743472b1af5a5fc97bad3d576865e55b3e
+4f214796c674c902691cf7fffb9adf45b6bfde90964e83faacf3c1fa70c53f3d
+6ef18a8e13ff85eb35843e983393c292d1c4890f83a33dce96d83c4d38b4aeb6
+b75b50e7effffccbeba8ea3bda064bde07dc7726113c716ffa47a00d33f49115
+4228b6a20737895e365b3ead997f7d2f9999ee6f4713dd02af593e6c105a27b9
+001e1fc7c57ac408db6309a6ab2c3c6fc6bbe62588aabc4ec9420a72c6de5c05
+54547069e15962a141c4e2dc4b38bead55f8e08f14b9a455b81a5ca9191b588a
+5e587a1471e9f1b30a7a866b19bbadaf5afd8674423d799f515d2b59e289843b
+98e57f6d5105cf14929de24dcd833bbd7fc14cd0af34a8f07284049aed310b36
+d0c8559504248ba11b4c6697d5b74353375163290f23f63b2c611031295b2a51
+83036a4dfaf1dabfb1669e534a8bb28adb16ea52eb238a242757b8baaf53e90c
+258af04f9dd1b00b100cc6a32390e6fe91f13f675a3b78f5e23646f1448f7d64
+21c38a58dab20ef56170be71aa9cfc5eecbe809138a9fe8b46b8b30538174c23
+e6b5dc725f3a0507f944963d9fb47c8258c4ef8f5d4aea6a5860a95e0b969434
+52529441c4c6e8e299db6cea80cdf2db74ac3a89911b55e225b3f20d3d605979
+045c72b672df80ff1f78cf4992816e27d225a66ccde49f357e2447abc6a57000
+3aabf2f770e2da3f0fa89e9a01af0ba430c925e8f764c77b59ff767851a7d657
+0106fb852f3047cb0aa041110529072160ad8ec569c8c1c5eac5ba56ea030d10
+4da9c6d530c089df3e37148f4b8b0a005616f946c83a391dd7e7e776fb9dd3d5
+2f06bdbb5caf1227c4ba74861bc3aa9a85055efdbd275508db8f68bc3cdf69db
+4d1f825eed993b84fd63b237a38a4cbd9071d0ccdad295f3947bcd1ab385becc
+35725f4f287450a49f652347c9b836a8c46a58e044853760ab10fa647fa98627
+05641b5c411a2eb69086b3488f4319068c959e5d369ff0fec606665b6c19a567
+9a96138a966afc86f64f803f55829c8cfc184d20d97f1b625adf7e260ee89f20
+987ff29da9e05a4c12ad48b56404d0b2bfc398d5991c8ce5f81e67d71f31cc8a
+4a6d1eae0dd4834eaf3f7ddd6493de2d1d31606241185a05ea75a6036af2a4c6
+0079a9e21a5f28502560feba1820361a4b0c2d313742a2e6cad252169103fbdf
+7590b38a60c227446e944ed13d91d5b3dcc6bc8a4737d4ebac8bcfbc78e24329
+6a76639d2726d968463e03e3bbaef4cace746ba11de8de942e1aa4aa29e39932
+12fd27d3a23e55c731617ad58a98615df3113a6537ccd5e4ca5ee7715f446c00
+9f423622caf9293d9c25ea96cdea869c00821ccf8e0e146a6977af4fd1d6cb46
+d3a96ce4559d7ef177e19797615c95c51b2ac6da1a3e700d4aaa84603e9e9b4b
+0f2c084ce4a17bb119b6c998045032c04aa21b8b4d5a0262387f884d5b21aacc
+93f1fb74ebbaac13e092a860f9875b83a4f2bd56ece6b63ca3575ef0601f3d0f
+c09c5fe9d7b2523a88c37c3360ff2e8a3a0d6c6c9e448ca93728991ef2be037d
+e5fb059a72adb03b1fc85c49a84b2077d6ed25dded1d0f9df4f137e4556a9d06
+6927217488d7ed62e22313109634ec5b291842369e376f2d2302a3d9db199f0a
+c48b228c8218abe6be8503502672f984c8a7a97b8b6af3ee1c15230c5df8fbbd
+04d78b28c3ca61f568e0eec6212c3dd622884af4740bae327f89485685c94503
+d1d86aaa538110d7c9e520fa19c129bb994e37658b6f0d301c8899cb735bed20
+e929ba4e7b6f3592d5b945203639979c6a459bacd0b84b3998283f3f8cee039a
+3e78c76dbb58ec4311bacb39e1ab2b8c1e65ad657cba210cee930cbcce737216
+414a7cd90abb953f27fdb0991d76a23b8122fe3a2cb26843a4da6681ecf996e4
+ad7a1102f4b244ac4f6e431ba1e9f0eddde9db9399aa8484917776f256803ba5
+983a2575d9371a08f2330cc344b89cbdffc5004e00097a757c390984fdfdffdc
+459eecb46a2a1c8aa6a1618c2b1b49224e760ab2eaf6893219edb7e107208d95
+d4d3f49e221994647667dbb63634e327c4db6585abb58d3eb338f272ae572e92
+17d63cfa8f10c87cab078b68f124e0537050b7dc1a0d1094b9ac9fc21f5bb177
+56d65c05801d59e58aa02c509cca118cefd2c91d6735c1dfd01dbf1b36f267c4
+db0c3651cc9f1b325915e23aa43ea1da505179dc098a3dcb76df83be080b733d
+c252e0a00bd702bf57f1923a978fac404f82bf4ddad59b16883ce7c6a0f84e4a
+4e58a38ff675335e5ca5d59ea3df82c93bf0cdb775b533bfce6237659d0b9747
+6d2c14120a35bc6970ea9554fadad6aa7ea674529b87603342faea220b9a0ffd
+c1236fea243892289258940c2de850fa7f4a14b6039eb93abe2d6b60e78d92b6
+6e53c40066138e63a10a3f5d8600a3974652d7eb79c12e16d5d83761aaee32fb
+a99b762b564374b60f3074040d30343159efbcbc67fd1b621181ddda4eae32e3
+8003e45b1a21a04ec69a3c05ec4a7a91e5cba3fdb856d8127d9ed6c8e23ec888
+7d79abd2fc139b5cb04d181e14a743aa5d5ce886607534117a5832df964084fc
+e620a465ce886d1a23ff1cb0fb812117eda344365ab72ac5128fa0fbdc426672
+391c4b61d3e60af0815da6d908bc6201f800c705a18a2343ff3d485473fca8de
+b44d821066fe148d3ca23956c99d0ba4998a3e126a685b19585d7380354e8091
+edfc4e684ad032cb0defc5cb076a5ad1e9581e68b3826d09a96156e144733907
+a23fe62ae7239871b1d7b790d74d7820f9a096399d9120d5a78e2ead9d6bacc3
+df32888e072021af81166f6feff32ebaf11a8decf4cee3c07e9a30f175aa22c7
+c615ada194480eeff72fff2e97bb0dcf5dc485428b08f173549a0132b396e7ff
+53b578ae0939dc0cef80a537b1d713b4d6bffc987b34943eed13e4b723c85252
+f9561031f3e2144c7b8c8b5f3794435e1293e4106e8c0114a14af6b37c7b28f7
+ebe6d321c4bab2dd04d08ff1d2eb4967092d52e8e5f1d04875fc7e00fff8c3e9
+c7336ccc8d709ea09deef006e5e809cfd7f377fc4bb8992da3df88159f1241f9
+27e4701daaee33394645b361be7a137454a2150394309f69f41b8eaa3274d6e4
+ac2e9a94770ba1463a5b774aad448f2bfca1d220449d1d3d09bde0f582e4c09e
+954ed577f7f9ecdc5023dde9313d7e0ac83c496472bc35ff3367b62f1fba6ebb
+e44892f0ca9f48fb4df1c2e6d95f030305694c91e5d2a49cecfa8a8961877441
+513e02fe7700cc536bc6fd9622093892353f0a83ae630d5effaf0338924e2ac5
+75af4e644413c29ead6c123fea2ecb5b4b49cfa4042c31f3d6ff535d3f881aa9
+935e2b5ae265207f94254c9daa2e7f8bc6fdb6662722cb19e35e4e10810c43b0
+a46450e0ff05236c08298e02667a7e2f4f1777ddeacb198d3e65fe34c78a3c71
+a542a0223828bd7b57a49337852a7e38be96c8d68b27947476892a6325597af1
+607104a3af0bd539a433b1cc09d23790dce90812df84bdbdd0f456be6404f2e5
+9eb8882779554667d48c007c2b6e31fd3691e97f76c06c659fb96a417d2088fa
+984981311ec3217a9bf784e579ca42b4478f6530b3e9f0fa1d701d4d8f040b41
+73c8e1e0ce76006a644daa1611446ffab2b218867985ed06ddf3053684f60b91
+2ab11ce7b3425ff3891078590a78768d85e21bbc09e3b315cf56f6f3532f3a6b
+1ca10034b80caef1e62c2d91fa0799adbee3240bac2a24f35015700d938dc703
+6245230bc3dacab9520aa950d153aa79a0570baac57452f2c958554992b0a965
+ccd7bd9c0971b6ee8357e3dd18cf5e6bef5c74da84cee08e597a5df7a21c17be
+d630cb74f2f21eec8b3c2c6df46e0ff5d571befa8398d3ee38e905222c8e94ac
+e86121701195d40fcaaa271874a8e6af62ac4d60558a485505f4301959417d3f
+996526a494a201c4caf84bca877da39e1338bfe9ee163e28993545b5b989d5e8
+a0ba1e1439ef7c6ac1747e272716a30ccce34112b67ca53ed3d2379c99e4264c
+37bc4bcb70118298d281b8056d809b82fea6994952cb5356bf3e41d19a2645a0
+139f44c7179b87174f4b5979b9b6e0ed55c00f4cf2299c6fb6c98010e0160817
+6d6bff74674124669ec3d9ec262be00b9f265c1bedaeb13895cb58ce214f2d7f
+e619762f2f1713a0829d3eb4e7fe6449a73c7c2ef52856226952b9ea375d9fe3
+e0fb79741adacd2c056be97b93f09be46c97e2b15b2a3c067172b90f41a8ff19
+52787eb93adfb5d139b6e68ece12291b23aaf9ea86585ac48c85bf29259f01c2
+e158750e4fb1ed1f611669ebefedafa8f1e8c285a1068d065953207897f63c14
+2234b79230fd7daec8cf3c178ff691f2d22bc2e17fd20d527954b08837f88baa
+a2878580e49a7d3d4b3bc91a228ea3b176020a049791f50f96266faa79aa8551
+a4db3913346113ecbb742944417ddf2529568492d96f06360d20d644bbbb0f71
+36a38b813e208de581e70648686c5c5c6e92fa752d8606b56143e6784e400411
+e2ead4933f168c633812b2e8208b964791de0951eb3ff55bf687ec958399b4b3
+4f70a80971d269ab955d8413b68e69821086c71f87c1e60d5e78e721afde3538
+0b930c41b72f4e8717393a013723c81497836a6d204368e02c8bbe44521c82ca
+5f8e3120e7ed232779c0544183865cc259a047ecc3ee5e139880fc96f6cfecca
+c3ede4858f312bda343b23e19703a3c624d99361c6900dc9bd1134001f17295b
+0c2eb7544939e8572d50f04c0eb75eb20a88c91cfb5cd971a05876179fe794d4
+072d929423ea9cd398a8d31b3cb32262800cb5ee1266111e0504c14c1fc08e60
+441e89e4df7c91cc5ffb4eacf83d065af32ab2366b0c0a844d28c803e33f1679
+ebda804afc0ef4bf320e21919959be7b060e914f49cf8a2ca28547dfb771dd7f
+78535ff95934cc749b5c7897ea9cb067f6d861064caa233c3538f3e4d5eab1e7
+56efae9f305b03e70e6ac14e0355aa871df0001fc80620160df7d218b64aa8c1
+2802cdc0cfd2e16e45feb91d2a74e12031082e21a6ce76593e3c17a251e9b2ee
+e18a0e922dceb758dc42de114893c36afd4a6e3f1370e3d66b0cf40df7b05473
+da0b2c446385870327c847a5a05281baa0080c36ec65a10056619005b39d3bb1
+7315ebe5187d1d69dbaef5f89f280fb9f41f53c2ee00a400ca8eed8e74337fd7
+37acd8efd0d361e4c516b11dbae751b408cc54d49feaeaa645236fea20cd8c32
+6231e9131d003e74f1f8711c883e6ac50798c98758a226ca85949ce153d4f1f5
+002e5edb1c5afdb33a3d5e6a4ffe73fdc25aed83c1c83533a5464b5ec8c0dbf3
+9c3785bcf147a4bc11648aae5f2abd1942b0412f5ed98a4b3a5be1b679f66e0d
+0c43806a89a349f259de095b8538c45a1a14b320ed0c662129c881c6c70487d7
+ee3eadbde833c415b992f25ab94e1f6fbb8afde188fbdae860368558c1049bce
+0e400368bd094c1ea808230998645b88163f77c1ddfb63b2092fd1b772c7ac73
+b095ab8749e65c3dd040ae17206ca88b7507ab3321231ccf8b2144ea51efcbda
+013a011e1d18ecd5780a80c262be5d6920178d2c129f87632a39289b032fa01f
+d6699ed2e79eb18b0990b86f00c440b4a6cccd109288a177e366d21cb16a569d
+ea5d20a732b10576182f0eb68bf666b1004dc444960e579aa3fb762e529b6fe6
+d98e582b90ec73140bc67696dc49ed4764615760c58e9329c02fca556e23b11c
+ab4f516e609f6044fbe97289d4269ae5f78399432a575198596b1e19b201078c
+93d27bd18c8929f145415fe188c35df3fd3a59a34afa3c22cdc2757f29aea7b1
+d0d983f4d029e4071896437c8ad90459daf4fd1fd173925a007a845844c6666c
+cd14a9b4dab72975e36b8c0ce9a63fa38ac0d0697f46180a06efe2618b27fae1
+7f16a148792346ad9c2c55e9836845b2a33e0f03caef4850c440ba483230cb07
+8a72da8482fc959b4edb01fe8488b7c5d7502f922abf8a2195f17c2d3e974d2e
+5ad09e1e61fe5b723d5a4bd6336a259ea088e3e44fca4da49e017acba3c0d58f
+16a3a00e21d44f1f26693449d5d382a12c70c7959965479ccb125565da244264
+1ea18b8ddd83d43f8177fd32298c0b3da44d436c5ad9b85e47df64bca6898c1a
+0ee73195f323d8b4b2442f15c7a73da62009a31a45339de6c491a04b5e4c383e
+f66a3749f6fe7f53059f0a08c8de4981d6a686b3503d0563a710d91b3d4587c3
+d12062abc1210cadabc6f0bd9c6f46c87c5b4f0445e7253145ee26ba9d839bf4
+5e9dbf635644f412dd4b1738030cdccc82cd370587f4cba6796a2727d3d4871b
+f0d8ccd867f2a0f32a3109f049ac032601bb5cca0e6ba80750f88f1bbf77557c
+cafe6fa24b5b5d8fc4941c4113c4042fac0d2fdd50b304bf290c26accf793e99
+0b1a10520413679408f42399684d4ada9cbd5c6660768db2ce468ddf698d5ba1
+a73d3bba49e96320d04b006b5f6b0387db59f2e20250e5dfea9160bcbf855801
+bf6998d481612d82f7d8d6af0b2034c9afd9bf26e8202d9e8db1633167d0f073
+a013eebf466a4faa74b6a5055a74932e64aa1b75a8708c9c6825141e85714c48
+fae391d02a0cc9e537a7e11d1e1e3cd08dc6933559577df07821f6d6aa36154b
+d16e3d158de669351a48ca71603c4ca0f364286d4a4eb1cb90cf20a9dd2bcd0b
+e17c8c04098d9720f7f7acb02ee63ea496e690af57b02643ae9301f23d42ab02
+d4145afea48d26118066ff99ef12c0eefb4babdccda95eb52ad64583c7ea5e54
+417c2805179f18f57a0cdc2c3cb502d4a01e5149c072c732bdce5ccfe8ec465b
+d66691e1841956d79bd027535412031a9603b1c24d3d16b0a3aa3f5e00fc84a3
+0e28c617138828cfc30bc40aa24b94159ac5336ef47064572b18678738240635
+fd1df47722dea61933008b1022f9a258f47fa2ae762646ebd5c86b0c7f1983e3
+06e0f42508dfd5b463e91147b198e31d30bc4a84d45c0631886d42204c196c98
+01cd982abc5387e9288cf00f0e5810c712db51962982e3a91cab88110c57fef5
+8d16621b3d6b34c7e3fd7fde1177869be84fabb95d8f054a96375cb59c4711e5
+830d5fd13a7f4c14e4f2912a2a4e8e3072776abe39d3def4a62bb11a3a600624
+2437bf307de502bf95eb193ce32ba6bb13a1f219ca0f7ee76257b74c4da5f0d7
+985bba1a8750808d741c6080c024e78fc0f3bcd2e0dc8396d434ec98bcc467f7
+39aac2e9bb78129ca55b53e08b20e35fc13b9ae4762bc784d49fde8725aaef34
+feb464e3833f232f5d7b02beb2d95b17949fb3624836cb344e64890d3bdcf5f4
+59b1a1d97e41798a7f5efd69f9c5abeada042f4f42d3c5ed8d50123f7b92cca9
+d2c5806a4486032e827a12f6f8d21a54cbbff57088495fd86a7956d6c56c3d5b
+546f69abac67f386357e1c524679e62baa462ae42b19754f8548c8f7bf74fa01
+92f53d408dc9c41aede772e28bc2d1fc39f5208257cc05dabec5f019d5eb9b22
+aa825d57d1ba2480ef6f1de82c18106c6047a4e2342a460ee99856dddc84d76a
+3d081b2c31a7820cdf58ba8c1ca26fc6d607fa9eb0ee5d328362971eb10aed06
+b8fa23f49c996a1ff7d2a2224b4bb0f7e1e7297c4b330efadc80a590c3f0c090
+f5326787383809207df928c685c48af18ad3a9ce962f6f0a0723c6a84d318cbb
+abc8f763b47cb66e1b349e7864a7a0be27796467c403f9568070bf1d1a57ec7e
+97f22ff181fca31c8fbbdfe1e4ea643fb5066d174381be4131107072b59a83af
+99bef336b8f72b8658738a84f71c4d7ead13d28b4e49ff90a96d43b21a689791
+32ceadb2459b1107781a64073404d0f81a65eac799e8e723e3c49cca370f2a74
+572c4b755e1c4f92cb37143954ba6c748fcfd2bc5f780c745b1f0f965e63cf53
+400b78f84be10acd20809ddd376d1a9b3c515d8f1781793ce9f8a4e769bb5ae2
+5b36914932b1b0922212e4c241dfe0e7c24233af5bfdc3eca9c81ffe34931643
+515273378d2190de75a4ae5c1b8cbc4a5c7630008840dda0e02e050cdfdb2bc5
+ed535a8e7698b4ab489313f7926ac1def01ed849acef2859870c7ee12db2b050
+8f4e58268306e709842eab264edaf84c93c15fbe45cc0350571c6368de76edc3
+07261c153b88d7605ea8f64ee7b1caafb5e6aa8606291d3198c1d3ec1725d7a8
+e97656ab5113198cf6fc2b2515bcad112592fb7a4be9a281326f045a70bf0218
+8837bd474da9bc46d19519267990a6db0673901158567ce1d87c4fe76823076d
+e5b2a5c0225b7db7ba7ed41f0aaeb5355d6f0ab463ca0c2e8fd24adc4db9c32c
+5a0e3698fed1af65afb0183cc582897ecc050d288c9e15ec7da6c3eb200cdc25
+37da19918d251d52f76e45075b02513a2dda4548cd65ab129811eb12c2e08611
+23cae229993e9e43346907a4c60dd7e4b73f8b0a5eddb30cb3d9d5d63c153ca3
+24519843f9e9f22953c0916db5e8d81de8bc056030740772df56f0e314d223c3
+b2836d34d61f77a105c32b57f7f1791b119b1d98d5710d4c44977c7877da90d3
+7d82dd9669f81e913b8aef9ae22efadc30d27fb913b94f8540022ec0554d6da7
+d0c510398e1185c2441ad678acc49485a48e69231139ce1d2626a2824fc04fcd
+35b8e52d9d3d9305c680b9ba341646fb2fcbcca2b7787fa5ddc5cc8713d43162
+1deacc951ed554572ab8020d7cd4a9c946bdcd2f58fe9ab0305c670e92c7e80a
+079388c3fb1e85261bf22208a17e3e396d99324d215e85e282a47aec771841bd
+13178fb8946bd6ce634a00d8be0567c8735556194ebcd2d6b6ac3d5416597840
+a9fe2e231c8d92e044194c6ab8b4ca0301788fd2ee4747f48811341463dcd86f
+4b52f0ab5543fe931ced6d336d6de4a2e1f91878ed8d2c238296752a29201b9c
+b8c063454d959c8d5aec04ad76570e9cf59650e2b44b7e482b06c150c379ee27
+2b7af205f30ca1c2b6e30cb0d2e438da4363a312bb1318c90edee938db9f0359
+b90fd6284681fd3ce99bc434616edb354a62ce2bd42d784b742911003f05ba8b
+e03d1f52fa8f0ac9f5879bc63b7829ccc64be921e5cf2f6240fd6ad7a69d94b6
+340b818ee64a68ff894d0af596da0debe47f306f764548a450a418a1c88875b8
+964fa725b65c77ccb6bc5939fe0e762574166cef1839cdf76866b449ae2cfbd3
+93e210edd05d0526e454348059bf88b5aeed05841a10c894a0c49026e064e385
+baf440d7b975aea6bf1267d360308829bd81de6db3d5bd47b66742d556560778
+7cdb514f2c4b69fa22f053b22527b91fe4a3ebedda1352dbc0b4144db5dc15ae
+b3c78ccf0ce264c76682fc1b7d3aa2566c8dd47787092ad80185d867db7891e0
+ce12a52c954efd3b0ce23dc59c9b073685d14fc24a666df88fcf20d0a93b4b28
+f8724f46d5368f2c195dc0eab00a03ed7a0531408d90884792e82a8b0ffc7cc6
+d1c2e1ab00e466744407fb81f6b9b20b0eaf2b50a35ef6f78a9e9ec9d322515d
+dc6bf058b58cc6c036222f7434a1f27811cc551d36ed5169cf6f0aa6d58563c8
+792d5b74f08bff06189566f1d0c9e497cd116393eeea1b853b5852f9221967ec
+1dcfe14394c5a5c026093982fb19f166dc9f52053f1bc7f449e0285c1b9684d8
+853f587d408f1c97bd1d082abf41ab80f47d189da6caad9f0a416cf040553dce
+2a9c853a71151ec50ccc71a7f6e0a0a9eff458ccdcfb0d760ac0cb9b0bce3d09
+79e898e42d43a78e17fae3c33bac5b4056fad86567dbcef75eec322572144fc2
+6d7f81dc9ea718d91b0892e5621bbae940619ee3693e87fba6bdbcd601fcad97
+2556df2e1b0587a7bc8cbede01b02e19268f2d31c34712e4f4f29636e3a50601
+3a7fda0eb8c78fe7c2a561cd4f09d162c17bb69a13aa242b8e5b189010058a30
+05c16be5de8975dc24d778eb03c2a59948c9bf3bb333ae0650e5df0613c77a15
+f510acb08c5c74519b79c527b36bce33bf023c9caa159995f2992cc9731b6ab1
+00604195dc5a79ac4a02d803a18683d39d25eba9e584b3f3f64df241e43b038c
+0d3111347cf2b421fb78ffcc03d3ed2a0c94d228af07c5feccbc460541802660
+c19c05a52cd6c1cff8cc805d43af3d23fc9ec8408e73a49c1dff48b86cd9b310
+4ca1515e98e41ab6496f4cf4218996692106bf443c933db8a8cc275f5f160288
+1b68b787738070a1b547d6ea0520cf599b4e674fe930596c8ddc4d1454b1df79
+f092608ffad0ac3825a8a3edb0c97c265b35eaa4a6d80c538ba24d209884a0ba
+b03847600e2623508da7d8da777a168150698a63f5ea4ecd54309b4989ed2c7d
+ff8a3940384e5fe0295840c33a078c2860b65be8aa2b278185aa977110eb7b9a
+95bb0b52f1e124975d620e897febe57540103c873fda64b37aa8f82c56b1aa23
+3adc9b8864b820a76092e2b17ebda1876d27b49fb5a1619881935fa499ef75ea
+ab18e4496bf7493420750b13d06bfbe1326406c72112f6a497459952c412535c
+a38d41900180f41a47ff6859b2b8cc20c4243511bf0386261d45bded1f8c15e0
+1cebb891a07128473972de3c0eaf60856001e6c966fc1822c5613a8d2d3704af
+91c363898be178366fb56673b9600e2f7f2a7caa391181d36880a86b5ed389c7
+fd49d231e3e82999932075696c52ba761ea299359837e712bdb5761e8d5fc3e8
+c5051e8bc673bc050cc0172b9676943426c646ec18c222514d9f21bb37d42cf6
+6168b74e6a4ee3cddfa12a183697a121938ba5d51ad4c57a4bd603092dc42f6e
+8e15e986d1a0153977bc89aac6aa7c5576b3905131d1889c33e313bc29d642f8
+4d5b5db5d301813407d8ece2de61207f07ee2f018e7cbf6c5c3b504c37400436
+b711756ea09327237f743d8111c9d78ca1186bf54b5487bed5f445857ef956c6
+63f032eb59dff3c4315f960e0f787f6553e11b34baf3b0fb6215866c80f47f52
+f9b67e878024f4c3adc4c9018428bd04c6824bb1457cd59bb16fefe2ae1388fa
+be7b9c1c8ada3491e64b6faba0eb8ea80acda137cdeb8bcb39b5d1d038e7e664
+051b76e86e4ec718d8b8eed85e5ab8cf85b6872d4e94a76d78c4358e5744023b
+705fe01d0b1848c92235ad874b45c4646e5c393157cbbbb6f08bce4c6ea80a9a
+1276d9bd58e30015e20120ce473cae89ad929a9ad4e6aa02f3090377853ff119
+0152e4d285b66b4cd78f29b18f856f460748a2f6d2b1454d4bb1ee72c4d90fbe
+896ac81690d77bdc2a0fb9655683131b97c44ad1baf39a3d8e3016d847411668
+b1a56b8f34b40f48de144330f7711ef447457d7fdc409d56e100d55a28cf188b
+d2dd182d29d5ce0050d6cd9ef549c9feb628e20859c7e7c8d1d0a62d90e1ac04
+42b0b1ae7093da6797bb069d6fa94270f60d63e0cc361e9d95168dbd7f8314d5
+a6eb083ab1b6b4972a2e32b6512aa3f8f4fbf5ebbc8ee7ecd5667f0de7307c36
+42955fc083119bcc959ba8ff46d7608679f6cca0616825ad959761f6e1b8b77c
+134c33d20b98ddcc20e5a98e49ccb4eb395e6f299a411814606ae676871914be
+a847228f323852181ec68c2be40a19f07b0617db7e29dfbef4de984cc9375581
+acb67cb727a2fd95ad7954c77282ef61e432353555ba81f4b9e55e4e2a6e1da1
+d3265856769de6ab519dcf2bb108d5d7a88c6aca9b613134ea47198bcc2746a3
+5e35281395a8d7e4503651ef887f28c9fa6981bde859b5ad042e6fcd25caf056
+22b269b9ddc55832267e3276d8a605ab8d0e690534cb1f5ddc8b22f05c2cd60d
+1020333cce9f03e778e0c7f47a94db9d692e80d19407e4f287a1fe21c5a50749
+7c2589080836b31e9d0c92e29fffc0cb3b936b9ec41f3789f900d591a8a70572
+84a64f16f5e280af642a5257728f9667e9d977c7a9d2a4b5f0aa3da9b8bf44d1
+f8cc5faa51234ea419d31144b7daa62d51899a57b5f625657809065d99856644
+04356f107cdc6e6ac2aaadad1eaa1491b5196059d0826c85fc2f0cd9320abf52
+960aef7509cdbbaf288d348b84d627ad28e4697d8888d5a8ddd5c3b6ae1de6f2
+4af231265767089985766aca72f5bdb495cfa7673a183bf5ee172ab5e6cb6230
+74e036a315db038f7f4fd1021c6dd6ba078ad3a374b898f90914e1e082c38ef6
+69c2beda91f4262b350721d6aa0f6ad384acc92a588fcb79941461fe8c336d85
+5e77ce41575cf1e7e233eb10f86a9b1666d5d2379222c5873ab2112a78f7fa5d
+5788017c94f544152e703815c091213cb2dfb73b6d3107e708398b0b7e99e393
+da14a2c5d7fbdc76b6dbb6f9355d1ebc6e8c27c58e0a5a0ebedce34b80f02768
+33b836c142fc8bf803331a9b442f346a3e600a2bf964c6cc7acea399b2817dd6
+3a886b62c7134d6725cb8d657b1f7628b013bf2bbeb523b4d8cd01a6d4dcacc8
+7ad88d0fbf8565031728d473c1f56b920334f9be3297d5d9d13babef159d95d0
+44a594b0f9a5808319c56ce0d271f3655dcbea72aafb6275bb036864e9f5eb12
+9acde00dbfce57356f9c7348e6461043901a12664a19176214e442546ca0e2ad
+92b4a76f1d4fa8ee2e782806429efd99f730d0a0fc0b3d94146e3b8100a202d2
+0b43ef01d2a7352b6c0d72f57fa0f9f2c80a84933c3233fb134e545f08f5203a
+d4e9a86ab08b80a78ac2e622507b6b2b7b3ed0432d6a515757b02d6e1f3c1508
+f00aadc3d2ee15b5cddae5a3e1e45d7dc3935cf05596147bff56a1807f8f6a9c
+4a1a4780b9ebe18711bd28fe3afcc7107368ae8f59ecc160ab493d58ca2a2ba7
+f17e8665bc548e998bf7666ac6f41d9308a60169ffcb69d4a35bec6f95dd8322
+f5772b97a145094744bcfbdff1aa8c9900db342e575abc306cb00cf58ad5fc16
+40948a9659c9806ddd807331015cf9f35b8f662969b4043c3b2803c8fbf663dc
+427cc5ec8a3b5d19dc6248576274745b1315179abb1a22bd3cd63baa4c721f3d
+9e0b0851c71cd890a00b758fdce1ba07ba757af53a8afc5de21d0bb65f1fcaa5
+06ce41ad64933fc3dc0105ba561469a752b393354ebe44b6285b262626f0cfd3
+89ef8bf3fbc27ddfcfe529f9a158d3de78a900a9c075b1fba4a9463279a06e45
+a9b54d9217c36eff1260e6e4ba1b7fd4ce0b06e60254d5b9112d17408245988e
+9814b4da07c828bbe90f846d6926ae4133bbb22fa7a709b24a760182a3f13518
+6ad6eea89fc4e8e4cdd22328818c33f7b51d3872bc59958e2d8e9fb881259703
+1b800416981ea2bc3d906edacac2c3f7db135dea0c089e1df29d3058649ef749
+f0615371ec5c33b236edbcbfdc2703fbabf8ab149307ca265ea2f31020c7ab90
+fde03717d7f9141806eb0f51d8044608abb461363eda2c51e2a03e4438164a1e
+d38bda6a0963d5c58b5b8160e70ef06f5bbdfa56362902d8825b7d9909267f00
+cbca118d06fcfa297f96bd2a217741a12c15a38e2c22a6c4075dd242807ec7c8
+833f0fe3d2cc1d192dd6def423bd89d94d220be67ebdc5e051e015e89bb4975b
+559ec47ab22734bba890504d2a182c565258dcd6d9aff99726742d7d4dcd54c8
+451288744684d3deb5c16cae4a3d5e712e64ef5462b09c2faf1ee71e9a9e7d59
+a36ffbb2f3810cb5f57af19b803dc7dd74c232a8c16e6cc952298cb0ec833519
+d90050a2ef37221dd3c2ef17ba91d449f5585cd67a61ba5e50924b7284eb313f
+a38e722e40ff8c22b85614d35eacfe3802e09fdeae6bd67a8c9f258944c0274e
+7132188cab333da084fc83b01fea6960c8523eeeaca46f8a81d5cd76018f26b2
+9959d4586df9f1d37b10d33c54d8993b64943300d58c20810d420a2fb777f989
+e9af40f73f1a2fe89269ba0f8cf7028363548e20a0f09163aac3110ec78996c2
+988bc20912bd04fe1bb3cd8516e4d1bbcdd2c258b03980c399914d9ab61e67fa
+273caa1003d22a00b732dffb659f634e236667085830535b9fa3a6fb09da331e
+8ec879e5365a180911204568524f45e0d6777d38bed818968e664fcb5d9298bb
+69009edf7d417aff14ddbee007f23201a728b3e350825f7d30d82601908b4797
+3995152e920e0fc4eb9c6c7f23fcc243d8493bba1cc6c48c34f2bba180d46aac
+7ca557d8a470503891a08332f22ce1878aa462d32d0d5f869fa4cec032e385a3
+11475fe853bdfa237d80a3765edeea4955c8ab844dbb144684eb1938b7b937b6
+bbdb35c6a240399596ab1da8b1f8b76e1a65a59aa53e7fe5d99eb4f53eb86b82
+8007ae491cbaae32239ed78ec190cd7cdc81a0ec4b09e9c04df92733decf8984
+a0860d04effa220cd882d27b6e3999690179c4b102458f78f61ab29a339a79d8
+063f547a588c8fee8d391a660ec06631fff44042c125e6f2f2047022d78cdd3c
+2722b1cf366971b03cc722698d3342a6f92d39423d7b73c60acb78b3846b419e
+ef24ef6f14f6de77db07460d74c31b6673682884bf269fcbe690016bc966e9a7
+a16da643565e7ed417b0dfafc844282ee2fc8eed142923b4ab007d7fb72a8cde
+a682cf96051aa111b16579e0c9444486525f9cf12359a6bae88e2ce869a75ebf
+aa6c35f5dfecc810b8508b7c4709ee0e8cde730e984c199a673ba85f51acba75
+08920d5fae52fce5089c5439bceef79eb48d8d6701333acd8fdd10e156fb7c2f
+fbe0a104f7128f868b16149c7a280c2f53cbe2bf22e3c342f11f49d2bbe5f751
+2bef84fd218e97b1c0b7859f412155279bc80f1f6f1a54581496b77c2c713fbd
+5b20785c57a0f4641fc0df448d5e79f7125ebb17918c60385b79ef4345cdd44a
+4af266ac009be62a9a6cd0752e266a9454fc1ac6f004704bc53d6414161f40cc
+b4f4cc2f2da50d860e9ee2274026b0e84e110be5d7198db7a3330f02b913e11c
+a291b73cd0f9ba34b8272143c96d13138f99c05a24d0f6a75c71d94a10adbb1a
+47813307a5edf32102ad9d25b89a64ab3a1e6c4b87ec7416573b5ab977d672d9
+f6ddb48f710d4a4c9cec91997c655276f25a00a5707287092a79b33c5b79a43e
+44e5b175f576791abce72e9fcfdfd126649f8e59ec3248b15f262a00db6ea332
+7fea2f1f9f12dd23ebd73953f8593d303518f8e37e427c122e43a87803eb749c
+7c9899d399e98c44eb1bab1c0d0a334ec3f5659014f2693119ca3d0ff7e78d1f
+263e8737175ef80596f87aba98ebba1ba57615d71c738df9c2059916cab7f291
+6ade2cef7f5962d1a2973e83dc17b8033666cb270942caa780d57a8ed1255c13
+f2ebc68f41a850a20f69fa7598e3d978c700daaec71b45542712f6bce8e043e9
+4680bae51345c254978aa287707499c7784eef7212c2b6455f2c30ec1b0637d6
+af1eb17e185d2b0c756cdf6c3fdf6eb8f734012971b13a0cd95f38dfc84c965a
+f61ec31cb1830445f84a252423547ecfda493a2a9c0f75ff5b7844764864a2fa
+724ae3ddb141a94614d8b83c64f08dd9327357d58c3fb4b5ad4671866daeaa36
+64514a1322d62ab645d4192112b3738ed3a84281447597a84e0e0d377f881e5e
+02445ea5652713b4326a29b99f3fd64756f4c25bce52a6015538bb7fc519725b
+e94885a5fb18359ef03d764a04f1b67abc3567da01fdaf7c7ece65a10b249ba5
+0ea113d5b32c9b0044b01d74ccfb2638ba533e9bb53e257949fe1f29d7112a14
+0e0b766a2f3968f35cd0a6f497b2a4585e1a49d6ef91464b8a01412f4dc4d170
+3ccf5a9b03e10b528fee23fbae3d419d11956b65d8e9d73298817c207981940c
+029c67246bd743ab4fc15ea96bd451e6c1e599c554ab55ba921ea5ff370eef85
+c70b5e877873b376b2734b8e5a855bf00d19f9b37d882840394ceb15ad2c7d8e
+e6f50e1df3682bf863b7cda4b491464e46e73bec1bd2410ccfced868896e83e2
+30d69ed8e27673e5cf7628597be47d05139db3cec1083ac21347c57d27cb8b40
+85ccd54d50e4e7b6f0cb07a26dbcdb7522b5197adc31e908079961d9b2d5d3cc
+0ee8055ad31df8546e4e417f1488b6477833a5a86ab95f495665b34ae46cf8cc
+4c33367f462f426662d499be68d634f025d8f712fba6a4145e8fb090ff5b61cd
+70e5550209c92530afe1bab70b715893bc3532b9edd957279fd92142798ba005
+e3d6c0bc95eb6e451b078fc6b1abae3fe77855bd7354f02eaac338dba1968982
+3399bbff119850cb442e5b7323b356341a4ad204e8e05489cdd464e7fef19c5b
+bf5b495d91f70525675e5591fdb276576d6df322a1085391f89941ae1216724d
+6c42704b2c920aab2fd78bfb5481098939a0b2c7d1d5cb8aa7aa31507a117e2e
+9aae05ce84baf15791df6d594d62c3857dbe27335aa79c909e4c2c571e0c3e1e
+6df11b4996b8bc9eaf76575bebeea7c51b2eb327ca1bc7684ffd06919facd345
+d01bc3e1fdbf8db5cdfecf107f7f5d5be5e7a108e189a0ac6dda11749ff6eb37
+73df65287e68c6f1fa8ffdba58b9488186234e9d2b0f8a2ea96e3c521ac75640
+5853000fcdfceea528aedd5e15fc8598f416456f52ef917da951a0ebe9e6e863
+f6cb778e0a5be95d26a5d47c1ef7f07c10f2376d1869e05be6db2553126acbcf
+4870385a1b1e2fc1625b311752431edbeac958beefc8576c0ff32a26ea29d228
+e4e8d3d2b926150d736f13c91faba41a9c3818775a536c2fe073d5830617559f
+2eaf8eaaeb3929ad970089443f934e1c937ffaf9cc5ef69da9e747baf74d1279
+c82d37cee291aca600dea23514a55a54e5acf8805d52dc78c7e4d0ddc1a3d027
+72d731bee16f452d9398043275a551a097670645a2a4cf093ec252192fd559a7
+80f79ef21472a10ecad1542577c352b54256e11b93f267d11515056267dccda2
+c5ac2134c32798f5706223409005eec21998752034a3cbc845885933bfdee7d1
+cb32fa84797fed2095902e36bb359e0e79e78e9162e8f8dfbc9796423bb4b98f
+9a9fbbcea1dd5db31d431706d80c5c2964532ed8af6510441be3757f5d9b53b8
+d9ff2dc6cb4e1f8d1b47f553c8d6d1962e9df2a97fba979fbfb52f4d4cba08a5
+a268cdc5a9a6cc40738577ec1836bd04b3acf76e899655ca496a1b9f5c9472a9
+0f59dded0d4c368306f5e3824cf013a7391efc56986e179c79343b763da88de7
+f1b51e2756031154f752f7bc2a858eaa35c549cc24c932ddf0459f4ca70925ac
+f39065440c6b2fe48018d07a0f5f1975cc52ce85f8c7511ae1043b4cb421f509
+5aa0e1e588412dfa0d86ca55bffdf223efc18d56dc7197aa1e8e08d4bacd3887
+19afda2915579868b6b756a929b928efda008691458fca9fc5086d0fdfa6edf1
+22606c9eca9c6d0163de9f05f97e904bc6b1e0f538bdd9e1e5a363969eb55b4c
+af47b2a55f27e9deb5007942d2cb6a61af76f7e3128b918d8c561c9a0510d5dc
+8a8676deea7b0e5605f72bbba35a6a24d6ea143cc8900d9a6f7755501969f25c
+3cc0f7928aa60e70fbb364cfd14531bd0b6b327a3aeae1fb48c708cefb4e3691
+95acb18a9f21177f868965e2ca10074feffb10269e43c95b3bc7eede5dfa6099
+8e7fec6c568433f06eb48ae53d26c262e7c5b349c64b493ffe2ee11d3d8ca4ff
+6b9ce4d37f4ad6765d37b3559106e3e80f2946e2075233495048f3425505466f
+32fd35255978ea5467fc8fe4f6c147084e7a46c493876f647bd882cee3590d5b
+3eadeb5a72689dd0db1c3a8b89771cfdf77d9637cb915df7e0f8b1356477b35e
+ee547362e97b58190ef9b3d4f442fae6e7305de0356cf604516912f4787ec315
+071578ac3da58ad383d04840891cb3fa113ec89a2fa43e7ce250176a5dbcb516
+147cd09f5c11b2fa2c2b2d00d69fbf266d9b2e258aba75883d48d100e04650f1
+7deff97bf4c406dfeae8a6202f56c18310bba393553f9bbfb054f5939fcdb910
+acc0fb10ed21d7cf7a7430ccf97be7fc77714dc4a287544df41db14db5fbf780
+cf8754fa7422c3f57e62cceead9aa347
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+
+
+%%EndResource
+/F1 /CMR10 def
+/F2 /CMMI10 def
+/F3 /CMR7 def
+/F4 /CMSY10 def
+%%EndSetup
+
+%%Page: Page_1 1
+%%BeginPageSetup
+VrrEPSProcSetDict begin
+0.2 slw
+283.600403 38.963593 tr 2.834646 2.834646 sc 0.000000 0.000000 tr
+%%EndPageSetup
+gs
+0.000000 0.000000 0.000000 sclr
+[0.993641 0.000000 0.000000 0.993641 -0.455267 18.741392] concat
+<35> -0.187500 0.078125 3.514598 F1 fsd sms
+gr
+gs
+0.000000 slw
+0 slc
+0 slj
+0.000000 0.000000 0.000000 sclr
+np
+1.466381 17.802404 mt 2.345893 18.331207 2.776549 19.108648 2.758349 20.134729 ct
+2.740149 21.160810 2.282193 21.922491 1.384481 22.419769 ct
+0.486769 22.917048 -0.401843 22.901287 -1.281355 22.372484 ct
+-2.160867 21.843681 -2.591523 21.066240 -2.573323 20.040159 ct
+-2.555124 19.014078 -2.097167 18.252398 -1.199455 17.755119 ct
+-0.301743 17.257841 0.586869 17.273602 1.466381 17.802404 ct
+cp
+st
+gr
+gs
+0.000000 slw
+0 slc
+0 slj
+0.000000 0.000000 0.000000 sclr
+np
+-18.456327 7.733937 mt -17.576815 8.262739 -17.146158 9.040180 -17.164358 10.066261 ct
+-17.182558 11.092341 -17.640514 11.854021 -18.538227 12.351300 ct
+-19.435938 12.848579 -20.324551 12.832818 -21.204063 12.304016 ct
+-22.083574 11.775214 -22.514231 10.997772 -22.496031 9.971691 ct
+-22.477831 8.945610 -22.019875 8.183930 -21.122162 7.686651 ct
+-20.224451 7.189373 -19.335838 7.205134 -18.456326 7.733937 ct
+st
+gr
+gs
+0.000000 slw
+0 slc
+0 slj
+0.000000 0.000000 0.000000 sclr
+np
+21.761526 7.591147 mt 22.641037 8.119949 23.071693 8.897390 23.053493 9.923470 ct
+23.035294 10.949551 22.577337 11.711230 21.679626 12.208509 ct
+20.781916 12.705789 19.893303 12.690026 19.013792 12.161224 ct
+18.134281 11.632422 17.703625 10.854981 17.721825 9.828901 ct
+17.740025 8.802821 18.197981 8.041142 19.095692 7.543863 ct
+19.993402 7.046584 20.882015 7.062346 21.761526 7.591148 ct
+cp
+st
+gr
+gs
+0.000000 0.000000 0.000000 sclr
+[1.000000 0.000000 0.000000 1.000000 -20.611444 8.823664] concat
+<34> -0.093750 0.000000 3.514598 F1 fsd sms
+gr
+gs
+0.000000 0.000000 0.000000 sclr
+[1.000000 0.000000 0.000000 1.000000 19.653284 8.665249] concat
+<30> -0.140625 0.078125 3.514598 F1 fsd sms
+gr
+gs
+0.000000 0.000000 0.000000 sclr
+[0.708072 0.000000 0.000000 0.708072 -14.049660 16.302305] concat
+<30> -0.140625 0.078125 3.514598 F1 fsd sms
+gr
+gs
+0.000000 0.000000 0.000000 sclr
+[1.000000 0.000000 0.000000 1.000000 -5.202597 6.234410] concat
+gr
+gs
+0.000000 slw
+0 slc
+0 slj
+0.000000 0.000000 0.000000 sclr
+np
+-32.450947 1.378704 mt -31.571434 1.907506 -31.140778 2.684948 -31.158978 3.711029 ct
+-31.177177 4.737109 -31.635134 5.498789 -32.532845 5.996068 ct
+-33.430557 6.493347 -34.319172 6.477585 -35.198685 5.948783 ct
+-36.078197 5.419981 -36.508850 4.642540 -36.490650 3.616459 ct
+-36.472450 2.590378 -36.014492 1.828698 -35.116783 1.331419 ct
+-34.219070 0.834141 -33.330460 0.849902 -32.450947 1.378704 ct
+cp
+st
+gr
+gs
+np -10.068375 -0.049444 0 0 360 a fi
+gr
+gs
+np -6.633695 5.234682 0 0 360 a fi
+gr
+gs
+0.000000 0.000000 0.000000 sclr
+0.000000 slw
+0 slc
+0 slj
+np -2.573743 20.087435 mt -19.938143 12.683045 lt st
+gr
+gs
+0.000000 0.000000 0.000000 sclr
+0.000000 slw
+0 slc
+0 slj
+np 2.758769 20.087435 mt 20.263569 12.539552 lt st
+gr
+gs
+0.000000 slw
+0 slc
+0 slj
+0.000000 0.000000 0.000000 sclr
+np
+-4.973590 1.521519 mt -4.094078 2.050321 -3.663422 2.827762 -3.681622 3.853843 ct
+-3.699821 4.879923 -4.157777 5.641603 -5.055490 6.138882 ct
+-5.953202 6.636161 -6.841814 6.620399 -7.721326 6.091598 ct
+-8.600838 5.562796 -9.031494 4.785354 -9.013294 3.759273 ct
+-8.995094 2.733192 -8.537138 1.971513 -7.639426 1.474234 ct
+-6.741714 0.976955 -5.853102 0.992717 -4.973590 1.521519 ct
+cp
+st
+gr
+gs
+0.000000 0.000000 0.000000 sclr
+0.000000 slw
+0 slc
+0 slj
+np -22.487061 10.242557 mt -33.691406 6.326659 lt st
+gr
+gs
+0.000000 0.000000 0.000000 sclr
+0.000000 slw
+0 slc
+0 slj
+np -17.164839 10.088207 mt -6.207046 6.469114 lt st
+gr
+gs
+0.000000 0.000000 0.000000 sclr
+[1.000000 0.000000 0.000000 1.000000 -34.559189 2.452806] concat
+<33> -0.140625 0.078125 3.514598 F1 fsd sms
+gr
+gs
+0.000000 0.000000 0.000000 sclr
+[1.000000 0.000000 0.000000 1.000000 -7.042770 2.634683] concat
+<32> -0.171875 0.000000 3.514598 F1 fsd sms
+gr
+gs
+0.000000 slw
+0 slc
+0 slj
+0.000000 0.000000 0.000000 sclr
+np
+-39.923939 -5.181332 mt -46.307327 -5.196621 lt
+-46.330128 -0.915765 lt
+-39.946732 -0.900477 lt
+-39.923939 -5.181332 lt
+cp
+st
+gr
+gs
+0.000000 slw
+0 slc
+0 slj
+0.000000 0.000000 0.000000 sclr
+np
+-23.667276 -5.142708 mt -29.935055 -5.157720 lt
+-29.957441 -0.954395 lt
+-23.689655 -0.939383 lt
+-23.667276 -5.142708 lt
+cp
+st
+gr
+gs
+0.000000 slw
+0 slc
+0 slj
+0.000000 0.000000 0.000000 sclr
+np
+-10.162128 -4.987214 mt -15.964506 -5.001111 lt
+-15.985232 -1.109894 lt
+-10.182846 -1.095996 lt
+-10.162128 -4.987214 lt
+cp
+st
+gr
+gs
+0.000000 slw
+0 slc
+0 slj
+0.000000 0.000000 0.000000 sclr
+np
+6.367862 -5.225865 mt -0.148809 -5.241473 lt
+-0.172086 -0.871234 lt
+6.344593 -0.855626 lt
+6.367862 -5.225865 lt
+cp
+st
+gr
+gs
+0.000000 slw
+0 slc
+0 slj
+0.000000 0.000000 0.000000 sclr
+np
+16.236979 -0.014201 mt 9.930801 -0.029305 lt
+9.908276 4.199772 lt
+16.214462 4.214876 lt
+16.236979 -0.014201 lt
+cp
+st
+gr
+gs
+0.000000 slw
+0 slc
+0 slj
+0.000000 0.000000 0.000000 sclr
+np
+30.183531 -0.057328 mt 23.748274 -0.072741 lt
+23.725286 4.242900 lt
+30.160553 4.258314 lt
+30.183531 -0.057328 lt
+cp
+st
+gr
+gs
+0.000000 0.000000 0.000000 sclr
+0.000000 slw
+0 slc
+0 slj
+np -36.487514 3.526047 mt -42.875984 -0.907493 lt st
+gr
+gs
+0.000000 0.000000 0.000000 sclr
+0.000000 slw
+0 slc
+0 slj
+np -31.158558 3.663718 mt -26.421215 -0.945925 lt st
+gr
+gs
+0.000000 0.000000 0.000000 sclr
+0.000000 slw
+0 slc
+0 slj
+np -9.009760 3.951705 mt -13.113919 -1.103017 lt st
+gr
+gs
+0.000000 0.000000 0.000000 sclr
+0.000000 slw
+0 slc
+0 slj
+np -3.681202 3.806533 mt 2.901950 -0.863872 lt st
+gr
+gs
+0.000000 0.000000 0.000000 sclr
+0.000000 slw
+0 slc
+0 slj
+np 17.728758 10.074040 mt 12.781023 4.206653 lt st
+gr
+gs
+0.000000 0.000000 0.000000 sclr
+0.000000 slw
+0 slc
+0 slj
+np 23.045580 10.086838 mt 26.805702 4.250278 lt st
+gr
+gs
+0.000000 0.000000 0.000000 sclr
+[1.000000 0.000000 0.000000 1.000000 13.358829 9.376315] concat
+gr
+gs
+0.000000 0.000000 0.000000 sclr
+[1.000000 0.000000 0.000000 1.000000 13.501940 8.519425] concat
+gr
+gs
+0.000000 0.000000 0.000000 sclr
+[0.708072 0.000000 0.000000 0.708072 13.267751 15.802456] concat
+<31> -0.296875 0.078125 3.514598 F1 fsd sms
+<30> 1.460429 0.078125 3.514598 F1 fsd sms
+<30> 3.217734 0.078125 3.514598 F1 fsd sms
+<30> 4.975039 0.078125 3.514598 F1 fsd sms
+<30> 6.732343 0.078125 3.514598 F1 fsd sms
+gr
+gs
+0.000000 0.000000 0.000000 sclr
+[0.708072 0.000000 0.000000 0.708072 -30.380739 9.232978] concat
+<30> -0.140625 0.078125 3.514598 F1 fsd sms
+gr
+gs
+0.000000 0.000000 0.000000 sclr
+[0.708072 0.000000 0.000000 0.708072 -10.912022 9.232979] concat
+<31> -0.296875 0.078125 3.514598 F1 fsd sms
+<30> 1.460429 0.078125 3.514598 F1 fsd sms
+gr
+gs
+0.000000 0.000000 0.000000 sclr
+[0.708072 0.000000 0.000000 0.708072 -44.075626 1.520980] concat
+<30> -0.140625 0.078125 3.514598 F1 fsd sms
+<30> 1.616679 0.078125 3.514598 F1 fsd sms
+<31> 3.373984 0.078125 3.514598 F1 fsd sms
+<31> 5.131289 0.078125 3.514598 F1 fsd sms
+gr
+gs
+0.000000 0.000000 0.000000 sclr
+[0.708072 0.000000 0.000000 0.708072 -28.327871 1.378164] concat
+<31> -0.296875 0.078125 3.514598 F1 fsd sms
+<30> 1.460429 0.078125 3.514598 F1 fsd sms
+<31> 3.217734 0.078125 3.514598 F1 fsd sms
+<30> 4.975039 0.078125 3.514598 F1 fsd sms
+gr
+gs
+0.000000 0.000000 0.000000 sclr
+[0.708072 0.000000 0.000000 0.708072 -14.974368 1.663794] concat
+<30> -0.140625 0.078125 3.514598 F1 fsd sms
+<30> 1.616679 0.078125 3.514598 F1 fsd sms
+<31> 3.373984 0.078125 3.514598 F1 fsd sms
+gr
+gs
+0.000000 0.000000 0.000000 sclr
+[0.708072 0.000000 0.000000 0.708072 -0.464829 1.663794] concat
+<31> -0.296875 0.078125 3.514598 F1 fsd sms
+<30> 1.460429 0.078125 3.514598 F1 fsd sms
+<31> 3.217734 0.078125 3.514598 F1 fsd sms
+gr
+gs
+0.000000 0.000000 0.000000 sclr
+[0.708072 0.000000 0.000000 0.708072 13.411276 6.805118] concat
+<30> -0.140625 0.078125 3.514598 F1 fsd sms
+gr
+gs
+0.000000 0.000000 0.000000 sclr
+[0.708072 0.000000 0.000000 0.708072 26.110130 6.404341] concat
+<31> -0.296875 0.000000 3.514598 F1 fsd sms
+gr
+gs
+0.000000 0.000000 0.000000 sclr
+[1.000000 0.000000 0.000000 1.000000 -44.697861 -4.379025] concat
+<78> -0.109375 0.527184 3.514598 F2 fsd sms
+<31> 1.899313 0.000000 2.460219 F3 fsd sms
+gr
+gs
+0.000000 0.000000 0.000000 sclr
+[1.000000 0.000000 0.000000 1.000000 -44.887436 -2.191694] concat
+gr
+gs
+0.000000 0.000000 0.000000 sclr
+[1.000000 0.000000 0.000000 1.000000 -27.992928 -4.379025] concat
+<78> -0.109375 0.527184 3.514598 F2 fsd sms
+<32> 1.899313 0.000000 2.460219 F3 fsd sms
+gr
+gs
+0.000000 0.000000 0.000000 sclr
+[1.000000 0.000000 0.000000 1.000000 -14.412974 -4.402461] concat
+<78> -0.109375 0.574059 3.514598 F2 fsd sms
+<33> 1.899313 0.046875 2.460219 F3 fsd sms
+gr
+gs
+0.000000 0.000000 0.000000 sclr
+[1.000000 0.000000 0.000000 1.000000 2.029149 -4.379024] concat
+<78> -0.109375 0.527184 3.514598 F2 fsd sms
+<34> 1.899313 0.000000 2.460219 F3 fsd sms
+gr
+gs
+0.000000 0.000000 0.000000 sclr
+[1.000000 0.000000 0.000000 1.000000 12.221286 0.596057] concat
+<78> -0.109375 0.574059 3.514598 F2 fsd sms
+<35> 1.899313 0.046875 2.460219 F3 fsd sms
+gr
+gs
+0.000000 0.000000 0.000000 sclr
+[1.000000 0.000000 0.000000 1.000000 25.515060 0.596062] concat
+<78> -0.109375 0.574059 3.514598 F2 fsd sms
+<36> 1.899313 0.046875 2.460219 F3 fsd sms
+gr
+gs
+0.000000 0.000000 0.000000 sclr
+[1.000000 0.000000 0.000000 1.000000 -87.695099 -0.026288] concat
+<78> -0.109375 21.661648 3.514598 F2 fsd sms
+<31> 1.899313 21.134462 2.460219 F3 fsd sms
+<3d> 4.452261 21.661648 3.514598 F1 fsd sms
+<30> 8.162099 21.661648 3.514598 F1 fsd sms
+<30> 9.919403 21.661648 3.514598 F1 fsd sms
+<30> 11.676708 21.661648 3.514598 F1 fsd sms
+<30> 13.434011 21.661648 3.514598 F1 fsd sms
+<31> 15.191317 21.661648 3.514598 F1 fsd sms
+<31> 16.948620 21.661648 3.514598 F1 fsd sms
+<63> 25.735132 21.661648 3.514598 F2 fsd sms
+<31> 27.256094 21.134462 2.460219 F3 fsd sms
+<3d> 29.809042 21.661648 3.514598 F1 fsd sms
+<33> 33.518883 21.661648 3.514598 F1 fsd sms
+<78> -0.109375 17.444130 3.514598 F2 fsd sms
+<32> 1.899313 16.916946 2.460219 F3 fsd sms
+<3d> 4.452261 17.444130 3.514598 F1 fsd sms
+<30> 8.162099 17.444130 3.514598 F1 fsd sms
+<30> 9.919403 17.444130 3.514598 F1 fsd sms
+<31> 11.676708 17.444130 3.514598 F1 fsd sms
+<30> 13.434011 17.444130 3.514598 F1 fsd sms
+<31> 15.191317 17.444130 3.514598 F1 fsd sms
+<30> 16.948620 17.444130 3.514598 F1 fsd sms
+<63> 25.735132 17.444130 3.514598 F2 fsd sms
+<32> 27.256094 16.916946 2.460219 F3 fsd sms
+<3d> 29.809042 17.444130 3.514598 F1 fsd sms
+<34> 33.518883 17.444130 3.514598 F1 fsd sms
+<78> -0.109375 13.226612 3.514598 F2 fsd sms
+<33> 1.899313 12.699428 2.460219 F3 fsd sms
+<3d> 4.452261 13.226612 3.514598 F1 fsd sms
+<30> 8.162099 13.226612 3.514598 F1 fsd sms
+<31> 9.919403 13.226612 3.514598 F1 fsd sms
+<30> 11.676708 13.226612 3.514598 F1 fsd sms
+<30> 13.434011 13.226612 3.514598 F1 fsd sms
+<30> 15.191317 13.226612 3.514598 F1 fsd sms
+<31> 16.948620 13.226612 3.514598 F1 fsd sms
+<63> 25.735132 13.226612 3.514598 F2 fsd sms
+<33> 27.256094 12.699428 2.460219 F3 fsd sms
+<3d> 29.809042 13.226612 3.514598 F1 fsd sms
+<32> 33.518883 13.226612 3.514598 F1 fsd sms
+<78> -0.109375 9.009094 3.514598 F2 fsd sms
+<34> 1.899313 8.481911 2.460219 F3 fsd sms
+<3d> 4.452261 9.009094 3.514598 F1 fsd sms
+<30> 8.162099 9.009094 3.514598 F1 fsd sms
+<31> 9.919403 9.009094 3.514598 F1 fsd sms
+<30> 11.676708 9.009094 3.514598 F1 fsd sms
+<31> 13.434011 9.009094 3.514598 F1 fsd sms
+<30> 15.191317 9.009094 3.514598 F1 fsd sms
+<31> 16.948620 9.009094 3.514598 F1 fsd sms
+<63> 25.735132 9.009094 3.514598 F2 fsd sms
+<34> 27.256094 8.481911 2.460219 F3 fsd sms
+<3d> 29.809042 9.009094 3.514598 F1 fsd sms
+<35> 33.518883 9.009094 3.514598 F1 fsd sms
+<78> -0.109375 4.791576 3.514598 F2 fsd sms
+<35> 1.899313 4.264393 2.460219 F3 fsd sms
+<3d> 4.452261 4.791576 3.514598 F1 fsd sms
+<31> 8.162099 4.791576 3.514598 F1 fsd sms
+<30> 9.919403 4.791576 3.514598 F1 fsd sms
+<30> 11.676708 4.791576 3.514598 F1 fsd sms
+<30> 13.434011 4.791576 3.514598 F1 fsd sms
+<30> 15.191317 4.791576 3.514598 F1 fsd sms
+<30> 16.948620 4.791576 3.514598 F1 fsd sms
+<63> 25.735132 4.791576 3.514598 F2 fsd sms
+<35> 27.256094 4.264393 2.460219 F3 fsd sms
+<3d> 29.809042 4.791576 3.514598 F1 fsd sms
+<30> 33.518883 4.791576 3.514598 F1 fsd sms
+<78> -0.109375 0.574059 3.514598 F2 fsd sms
+<36> 1.899313 0.046875 2.460219 F3 fsd sms
+<3d> 4.452261 0.574059 3.514598 F1 fsd sms
+<31> 8.162099 0.574059 3.514598 F1 fsd sms
+<30> 9.919403 0.574059 3.514598 F1 fsd sms
+<30> 11.676708 0.574059 3.514598 F1 fsd sms
+<30> 13.434011 0.574059 3.514598 F1 fsd sms
+<30> 15.191317 0.574059 3.514598 F1 fsd sms
+<31> 16.948620 0.574059 3.514598 F1 fsd sms
+gr
+gs
+0.000000 0.000000 0.000000 sclr
+0.000000 slw
+0 slc
+0 slj
+np -78.755089 -2.123083 mt -78.790428 -6.778875 lt st
+gr
+gs
+0.000000 0.000000 0.000000 sclr
+0.000000 slw
+0 slc
+0 slj
+np -78.755089 -2.123083 mt -80.027412 -3.824239 lt st
+gr
+gs
+0.000000 0.000000 0.000000 sclr
+0.000000 slw
+0 slc
+0 slj
+np -78.755089 -2.123083 mt -77.666359 -3.869009 lt st
+gr
+gs
+0.000000 0.000000 0.000000 sclr
+0.000000 slw
+0 slc
+0 slj
+np -69.639580 -2.134195 mt -69.674919 -6.789989 lt st
+gr
+gs
+0.000000 0.000000 0.000000 sclr
+0.000000 slw
+0 slc
+0 slj
+np -69.639580 -2.134195 mt -70.911903 -3.835351 lt st
+gr
+gs
+0.000000 0.000000 0.000000 sclr
+0.000000 slw
+0 slc
+0 slj
+np -69.639580 -2.134195 mt -68.550850 -3.880121 lt st
+gr
+gs
+0.000000 0.000000 0.000000 sclr
+[1.000000 0.000000 0.000000 1.000000 -79.035385 -9.478876] concat
+<35> -0.187500 0.078125 3.514598 F1 fsd sms
+<34> 1.569804 0.078125 3.514598 F1 fsd sms
+<33> 3.327109 0.078125 3.514598 F1 fsd sms
+<32> 5.084414 0.078125 3.514598 F1 fsd sms
+<31> 6.841718 0.078125 3.514598 F1 fsd sms
+<30> 8.599022 0.078125 3.514598 F1 fsd sms
+gr
+gs
+0.000000 0.000000 0.000000 sclr
+[1.000000 0.000000 0.000000 1.000000 -99.847923 -13.545489] concat
+gr
+gs
+0.000000 0.000000 0.000000 sclr
+0.000000 slw
+0 slc
+0 slj
+np -79.583458 26.178902 mt -79.583458 -1.714646 lt st
+gr
+gs
+0.000000 0.000000 0.000000 sclr
+0.000000 slw
+0 slc
+0 slj
+np -77.825142 26.156439 mt -77.825142 -1.737108 lt st
+gr
+gs
+0.000000 0.000000 0.000000 sclr
+0.000000 slw
+0 slc
+0 slj
+np -70.790810 26.100727 mt -70.790810 -1.792821 lt st
+gr
+gs
+0.000000 0.000000 0.000000 sclr
+0.000000 slw
+0 slc
+0 slj
+np -69.032494 26.078264 mt -69.032494 -1.815282 lt st
+gr
+gs
+np 32.858963 2.257412 0 0 360 a fi
+gr
+gs
+0.000000 0.000000 0.000000 sclr
+[1.000000 0.000000 0.000000 1.000000 -13.082013 7.682764] concat
+<0f> -0.203125 -0.203125 3.514598 F4 fsd sms
+gr
+showpage
+
+%%Trailer
+%%DocumentSuppliedResources: procset VrrEPSProcSet
+%%+ font CMR10 CMMI10 CMR7 CMSY10
+end restore
+%%EOF
diff --git a/8-qheapuf/trie.vrr b/8-qheapuf/trie.vrr
new file mode 100644 (file)
index 0000000..e03389f
--- /dev/null
@@ -0,0 +1,125 @@
+
+ (document 0.6 ( (filename "/home/cs/school/semgraf/trie.vrr") (name "Untitled 1")) (
+ (page ( (tex_footer "\\bye
+") (tex_header "\\nopagenumbers\\vglue0pt
+") (name "Page 1")) (
+ (segment (coords -69.6395797729492 -2.13419485092163) (coords -69.674919128418 -6.78998899459839) ( (id 137262032) (stroke-cap (cap-style butt)) (stroke-join (join-style miter)) (stroke-width 0.0) (stroke-color (rgb 0 0 0)) (fill-color (rgba 0 0 0 0)) (invisible #f) (name "noname")))
+ (segment (coords -78.7550888061523 -2.12308263778687) (coords -78.7904281616211 -6.77887487411499) ( (id 137141008) (stroke-cap (cap-style butt)) (stroke-join (join-style miter)) (stroke-width 0.0) (stroke-color (rgb 0 0 0)) (fill-color (rgba 0 0 0 0)) (invisible #f) (name "noname")))
+ (segment (coords 30.1835308074951 -0.0573275834321976) (coords 23.7482738494873 -0.0727405324578285) ( (id 137141368) (stroke-cap (cap-style butt)) (stroke-join (join-style miter)) (stroke-width 0.0) (stroke-color (rgb 0 0 0)) (fill-color (rgba 0 0 0 0)) (invisible #f) (name "noname")))
+ (segment (coords 16.2369785308838 -0.0142008448019624) (coords 9.93080139160156 -0.029304638504982) ( (id 137190760) (stroke-cap (cap-style butt)) (stroke-join (join-style miter)) (stroke-width 0.0) (stroke-color (rgb 0 0 0)) (fill-color (rgba 0 0 0 0)) (invisible #f) (name "noname")))
+ (segment (coords 6.3678617477417 -5.22586536407471) (coords -0.148809269070625 -5.24147319793701) ( (id 137190160) (stroke-cap (cap-style butt)) (stroke-join (join-style miter)) (stroke-width 0.0) (stroke-color (rgb 0 0 0)) (fill-color (rgba 0 0 0 0)) (invisible #f) (name "noname")))
+ (segment (coords -10.1621284484863 -4.98721361160278) (coords -15.964506149292 -5.00111055374146) ( (id 137142536) (stroke-cap (cap-style butt)) (stroke-join (join-style miter)) (stroke-width 0.0) (stroke-color (rgb 0 0 0)) (fill-color (rgba 0 0 0 0)) (invisible #f) (name "noname")))
+ (segment (coords -23.6672763824463 -5.14270782470703) (coords -29.9350547790527 -5.15772008895874) ( (id 137190384) (stroke-cap (cap-style butt)) (stroke-join (join-style miter)) (stroke-width 0.0) (stroke-color (rgb 0 0 0)) (fill-color (rgba 0 0 0 0)) (invisible #f) (name "noname")))
+ (segment (coords -39.9239387512207 -5.18133211135864) (coords -46.3073272705078 -5.19662094116211) ( (id 137190984) (stroke-cap (cap-style butt)) (stroke-join (join-style miter)) (stroke-width 0.0) (stroke-color (rgb 0 0 0)) (fill-color (rgba 0 0 0 0)) (invisible #f) (name "noname")))
+ (ellipse-by-center-point-rotation-eccentricity (coords -6.34745788574219 3.80655813217163) (coords -4.97359085083008 1.52151823043823) 0.0 0.0 ( (id 137209384) (conic (point-entire)) (stroke-cap (cap-style butt)) (stroke-join (join-style miter)) (stroke-width 0.0) (stroke-color (rgb 0 0 0)) (fill-color (rgba 0 0 0 0)) (invisible #f) (name "noname")))
+ (ellipse-by-center-point-rotation-eccentricity (coords -33.8248138427734 3.66374373435974) (coords -32.4509468078613 1.37870383262634) 0.0 0.0 ( (id 137143464) (conic (point-entire)) (stroke-cap (cap-style butt)) (stroke-join (join-style miter)) (stroke-width 0.0) (stroke-color (rgb 0 0 0)) (fill-color (rgba 0 0 0 0)) (invisible #f) (name "noname")))
+ (ellipse-by-center-point-rotation-eccentricity (coords 20.387659072876 9.87618637084961) (coords 21.7615261077881 7.59114742279053) 0.0 0.0 ( (id 137215608) (conic (point-entire)) (stroke-cap (cap-style butt)) (stroke-join (join-style miter)) (stroke-width 0.0) (stroke-color (rgb 0 0 0)) (fill-color (rgba 0 0 0 0)) (invisible #f) (name "noname")))
+ (ellipse-by-center-point-rotation-eccentricity (coords -19.8301944732666 10.0189762115479) (coords -18.4563274383545 7.73393630981445) 0.0 0.0 ( (id 137141632) (conic (point-entire)) (stroke-cap (cap-style butt)) (stroke-join (join-style miter)) (stroke-width 0.0) (stroke-color (rgb 0 0 0)) (fill-color (rgba 0 0 0 0)) (invisible #f) (name "noname")))
+ (ellipse-by-center-point-rotation-eccentricity (coords 0.0925129652023315 20.0874443054199) (coords 1.46638071537018 17.8024044036865) 0.0 0.0 ( (id 137211072) (conic (point-entire)) (stroke-cap (cap-style butt)) (stroke-join (join-style miter)) (stroke-width 0.0) (stroke-color (rgb 0 0 0)) (fill-color (rgba 0 0 0 0)) (invisible #f) (name "noname")))
+ (segment (start 137262032) (coords -70.9119033813477 -3.83535146713257) ( (id 137143944) (stroke-cap (cap-style butt)) (stroke-join (join-style miter)) (stroke-width 0.0) (stroke-color (rgb 0 0 0)) (fill-color (rgba 0 0 0 0)) (invisible #f) (name "noname")))
+ (segment (start 137141008) (coords -80.0274124145508 -3.8242392539978) ( (id 137191720) (stroke-cap (cap-style butt)) (stroke-join (join-style miter)) (stroke-width 0.0) (stroke-color (rgb 0 0 0)) (fill-color (rgba 0 0 0 0)) (invisible #f) (name "noname")))
+ (segment (end 137141368) (coords 23.7252864837646 4.24289989471436) ( (id 137192200) (stroke-cap (cap-style butt)) (stroke-join (join-style miter)) (stroke-width 0.0) (stroke-color (rgb 0 0 0)) (fill-color (rgba 0 0 0 0)) (invisible #f) (name "noname")))
+ (segment (end 137190760) (coords 9.90827560424805 4.19977235794067) ( (id 137188648) (stroke-cap (cap-style butt)) (stroke-join (join-style miter)) (stroke-width 0.0) (stroke-color (rgb 0 0 0)) (fill-color (rgba 0 0 0 0)) (invisible #f) (name "noname")))
+ (segment (end 137190160) (coords -0.17208631336689 -0.871234357357025) ( (id 137189416) (stroke-cap (cap-style butt)) (stroke-join (join-style miter)) (stroke-width 0.0) (stroke-color (rgb 0 0 0)) (fill-color (rgba 0 0 0 0)) (invisible #f) (name "noname")))
+ (segment (end 137142536) (coords -15.9852323532105 -1.10989367961884) ( (id 137189896) (stroke-cap (cap-style butt)) (stroke-join (join-style miter)) (stroke-width 0.0) (stroke-color (rgb 0 0 0)) (fill-color (rgba 0 0 0 0)) (invisible #f) (name "noname")))
+ (segment (end 137190384) (coords -29.9574413299561 -0.954394519329071) ( (id 137211568) (stroke-cap (cap-style butt)) (stroke-join (join-style miter)) (stroke-width 0.0) (stroke-color (rgb 0 0 0)) (fill-color (rgba 0 0 0 0)) (invisible #f) (name "noname")))
+ (segment (end 137190984) (coords -46.3301277160645 -0.915765464305878) ( (id 137191432) (stroke-cap (cap-style butt)) (stroke-join (join-style miter)) (stroke-width 0.0) (stroke-color (rgb 0 0 0)) (fill-color (rgba 0 0 0 0)) (invisible #f) (name "noname")))
+ (parametric-point 137209384 0.405458569526672 ( (id 137265192) (name "noname")))
+ (parametric-point 137209384 0.655175507068634 ( (id 137265064) (name "noname")))
+ (parametric-point 137209384 0.163842514157295 ( (id 137264936) (name "noname")))
+ (parametric-point 137143464 0.405877113342285 ( (id 137264808) (name "noname")))
+ (parametric-point 137143464 0.672067046165466 ( (id 137264680) (name "noname")))
+ (parametric-point 137143464 0.16384245455265 ( (id 137264552) (name "noname")))
+ (parametric-point 137215608 0.421253889799118 ( (id 137222184) (name "noname")))
+ (parametric-point 137215608 0.65202271938324 ( (id 137210952) (name "noname")))
+ (parametric-point 137215608 0.176431387662888 ( (id 137209904) (name "noname")))
+ (parametric-point 137141632 0.420289427042007 ( (id 137140160) (name "noname")))
+ (parametric-point 137141632 0.65048223733902 ( (id 137210648) (name "noname")))
+ (parametric-point 137141632 0.16797699034214 ( (id 137183584) (name "noname")))
+ (parametric-point 137211072 0.663844585418701 ( (id 137208592) (name "noname")))
+ (parametric-point 137211072 0.163843438029289 ( (id 137138784) (name "noname")))
+ (segment (end 137192200) (coords 30.1605529785156 4.25831365585327) ( (id 137215112) (stroke-cap (cap-style butt)) (stroke-join (join-style miter)) (stroke-width 0.0) (stroke-color (rgb 0 0 0)) (fill-color (rgba 0 0 0 0)) (invisible #f) (name "noname")))
+ (segment (end 137188648) (coords 16.2144622802734 4.21487617492676) ( (id 137212328) (stroke-cap (cap-style butt)) (stroke-join (join-style miter)) (stroke-width 0.0) (stroke-color (rgb 0 0 0)) (fill-color (rgba 0 0 0 0)) (invisible #f) (name "noname")))
+ (segment (end 137189416) (coords 6.3445930480957 -0.855626404285431) ( (id 137213096) (stroke-cap (cap-style butt)) (stroke-join (join-style miter)) (stroke-width 0.0) (stroke-color (rgb 0 0 0)) (fill-color (rgba 0 0 0 0)) (invisible #f) (name "noname")))
+ (segment (end 137189896) (coords -10.1828460693359 -1.09599649906158) ( (id 137213864) (stroke-cap (cap-style butt)) (stroke-join (join-style miter)) (stroke-width 0.0) (stroke-color (rgb 0 0 0)) (fill-color (rgba 0 0 0 0)) (invisible #f) (name "noname")))
+ (segment (end 137211568) (coords -23.6896553039551 -0.939382672309875) ( (id 137214632) (stroke-cap (cap-style butt)) (stroke-join (join-style miter)) (stroke-width 0.0) (stroke-color (rgb 0 0 0)) (fill-color (rgba 0 0 0 0)) (invisible #f) (name "noname")))
+ (segment (end 137191432) (coords -39.9467315673828 -0.9004767537117) ( (id 137210320) (stroke-cap (cap-style butt)) (stroke-join (join-style miter)) (stroke-width 0.0) (stroke-color (rgb 0 0 0)) (fill-color (rgba 0 0 0 0)) (invisible #f) (name "noname")))
+ (parametric-point 137215112 0.478677123785019 ( (id 137183272) (name "noname")))
+ (parametric-point 137212328 0.455544263124466 ( (id 137183408) (name "noname")))
+ (parametric-point 137213096 0.471718221902847 ( (id 137184176) (name "noname")))
+ (parametric-point 137213864 0.494850397109985 ( (id 137138936) (name "noname")))
+ (parametric-point 137214632 0.56419050693512 ( (id 137217024) (name "noname")))
+ (parametric-point 137210320 0.541113555431366 ( (id 137209272) (name "noname")))
+ (top-level-group ( (name "top-level-group")) (
+ (point (coords 32.8589630126953 2.25741171836853) ( (invisible #f) (name "noname")))
+ (segment (coords -69.0324935913086 26.0782642364502) (coords -69.0324935913086 -1.8152824640274) ( (stroke-cap (cap-style butt)) (stroke-join (join-style miter)) (stroke-width 0.0) (stroke-color (rgb 0 0 0)) (fill-color (rgba 0 0 0 0)) (invisible #f) (name "noname")))
+ (segment (coords -70.7908096313477 26.1007270812988) (coords -70.7908096313477 -1.79282057285309) ( (stroke-cap (cap-style butt)) (stroke-join (join-style miter)) (stroke-width 0.0) (stroke-color (rgb 0 0 0)) (fill-color (rgba 0 0 0 0)) (invisible #f) (name "noname")))
+ (segment (coords -77.8251419067383 26.1564388275146) (coords -77.8251419067383 -1.73710787296295) ( (stroke-cap (cap-style butt)) (stroke-join (join-style miter)) (stroke-width 0.0) (stroke-color (rgb 0 0 0)) (fill-color (rgba 0 0 0 0)) (invisible #f) (name "noname")))
+ (segment (coords -79.5834579467773 26.1789016723633) (coords -79.5834579467773 -1.71464598178864) ( (stroke-cap (cap-style butt)) (stroke-join (join-style miter)) (stroke-width 0.0) (stroke-color (rgb 0 0 0)) (fill-color (rgba 0 0 0 0)) (invisible #f) (name "noname")))
+ (tex-text (coords -99.8479232788086 -13.5454893112183) "" ( (relative-position-x 0.5) (relative-position-y 0.5) (absolute-shift-x 0.0) (absolute-shift-y 0.0) (alignment-x (alignment-x ref-relative)) (alignment-y (alignment-y bbox-relative)) (transform (transform 1.0 0.0 0.0 1.0)) (fill-color (rgb 0 0 0)) (invisible #f) (name "noname")))
+ (group ( (name "noname")) (
+ (tex-text (coords -73.9311904907227 -8.2445011138916) "543210" ( (relative-position-x 0.5) (relative-position-y 0.5) (absolute-shift-x 0.0) (absolute-shift-y 0.0) (alignment-x (alignment-x ref-relative)) (alignment-y (alignment-y bbox-relative)) (transform (transform 1.0 0.0 0.0 1.0)) (fill-color (rgb 0 0 0)) (invisible #f) (name "noname")))
+ (group ( (name "noname")) (
+ (segment (start 137143944) (coords -68.5508499145508 -3.88012075424194) ( (stroke-cap (cap-style butt)) (stroke-join (join-style miter)) (stroke-width 0.0) (stroke-color (rgb 0 0 0)) (fill-color (rgba 0 0 0 0)) (invisible #f) (name "noname"))) 137143944 137262032))
+ (group ( (name "noname")) (
+ (segment (start 137191720) (coords -77.6663589477539 -3.86900854110718) ( (stroke-cap (cap-style butt)) (stroke-join (join-style miter)) (stroke-width 0.0) (stroke-color (rgb 0 0 0)) (fill-color (rgba 0 0 0 0)) (invisible #f) (name "noname"))) 137191720 137141008))))
+ (tex-text (coords -70.1075286865234 11.9764108657837) "\\halign{\\indent$#$\\quad\\quad&$#$\\cr
+x_1=000011 & c_1=3\\cr
+x_2=001010 & c_2=4\\cr
+x_3=010001 & c_3=2\\cr
+x_4=010101 & c_4=5\\cr
+x_5=100000 & c_5=0\\cr
+x_6=100001 & \\cr
+}
+" ( (relative-position-x 0.5) (relative-position-y 0.5) (absolute-shift-x 0.0) (absolute-shift-y 0.0) (alignment-x (alignment-x ref-relative)) (alignment-y (alignment-y bbox-relative)) (transform (transform 1.0 0.0 0.0 1.0)) (fill-color (rgb 0 0 0)) (invisible #f) (name "noname")))
+ (tex-text (coords 27.0975303649902 1.66434144973755) "$x_6$" ( (relative-position-x 0.5) (relative-position-y 0.5) (absolute-shift-x 0.0) (absolute-shift-y 0.0) (alignment-x (alignment-x ref-relative)) (alignment-y (alignment-y bbox-relative)) (transform (transform 1.0 0.0 0.0 1.0)) (fill-color (rgb 0 0 0)) (invisible #f) (name "noname")))
+ (tex-text (coords 13.7881298065186 1.66433656215668) "$x_5$" ( (relative-position-x 0.5) (relative-position-y 0.5) (absolute-shift-x 0.0) (absolute-shift-y 0.0) (alignment-x (alignment-x ref-relative)) (alignment-y (alignment-y bbox-relative)) (transform (transform 1.0 0.0 0.0 1.0)) (fill-color (rgb 0 0 0)) (invisible #f) (name "noname")))
+ (tex-text (coords 3.62724280357361 -3.3341817855835) "$x_4$" ( (relative-position-x 0.5) (relative-position-y 0.5) (absolute-shift-x 0.0) (absolute-shift-y 0.0) (alignment-x (alignment-x ref-relative)) (alignment-y (alignment-y bbox-relative)) (transform (transform 1.0 0.0 0.0 1.0)) (fill-color (rgb 0 0 0)) (invisible #f) (name "noname")))
+ (tex-text (coords -12.8305053710938 -3.33418154716492) "$x_3$" ( (relative-position-x 0.5) (relative-position-y 0.5) (absolute-shift-x 0.0) (absolute-shift-y 0.0) (alignment-x (alignment-x ref-relative)) (alignment-y (alignment-y bbox-relative)) (transform (transform 1.0 0.0 0.0 1.0)) (fill-color (rgb 0 0 0)) (invisible #f) (name "noname")))
+ (tex-text (coords -26.4260845184326 -3.33418273925781) "$x_2$" ( (relative-position-x 0.5) (relative-position-y 0.5) (absolute-shift-x 0.0) (absolute-shift-y 0.0) (alignment-x (alignment-x ref-relative)) (alignment-y (alignment-y bbox-relative)) (transform (transform 1.0 0.0 0.0 1.0)) (fill-color (rgb 0 0 0)) (invisible #f) (name "noname")))
+ (tex-text (coords -44.8874359130859 -2.1916937828064) "" ( (relative-position-x 0.5) (relative-position-y 0.5) (absolute-shift-x 0.0) (absolute-shift-y 0.0) (alignment-x (alignment-x ref-relative)) (alignment-y (alignment-y bbox-relative)) (transform (transform 1.0 0.0 0.0 1.0)) (fill-color (rgb 0 0 0)) (invisible #f) (name "noname")))
+ (tex-text (coords -43.1700782775879 -3.33418273925781) "$x_1$" ( (relative-position-x 0.5) (relative-position-y 0.5) (absolute-shift-x 0.0) (absolute-shift-y 0.0) (alignment-x (alignment-x ref-relative)) (alignment-y (alignment-y bbox-relative)) (transform (transform 1.0 0.0 0.0 1.0)) (fill-color (rgb 0 0 0)) (invisible #f) (name "noname")))
+ (tex-text (coords 26.525016784668 7.23411321640015) "1" ( (relative-position-x 0.5) (relative-position-y 0.5) (absolute-shift-x 0.0) (absolute-shift-y 0.0) (alignment-x (alignment-x ref-relative)) (alignment-y (alignment-y bbox-relative)) (transform (transform 0.708072125911713 0.0 0.0 0.708072125911713)) (fill-color (rgb 0 0 0)) (invisible #f) (name "noname")))
+ (tex-text (coords 13.931266784668 7.66254901885986) "0" ( (relative-position-x 0.5) (relative-position-y 0.5) (absolute-shift-x 0.0) (absolute-shift-y 0.0) (alignment-x (alignment-x ref-relative)) (alignment-y (alignment-y bbox-relative)) (transform (transform 0.708072125911713 0.0 0.0 0.708072125911713)) (fill-color (rgb 0 0 0)) (invisible #f) (name "noname")))
+ (tex-text (coords 1.19435501098633 2.52122473716736) "101" ( (relative-position-x 0.5) (relative-position-y 0.5) (absolute-shift-x 0.0) (absolute-shift-y 0.0) (alignment-x (alignment-x ref-relative)) (alignment-y (alignment-y bbox-relative)) (transform (transform 0.708072125911713 0.0 0.0 0.708072125911713)) (fill-color (rgb 0 0 0)) (invisible #f) (name "noname")))
+ (tex-text (coords -13.2598657608032 2.52122473716736) "001" ( (relative-position-x 0.5) (relative-position-y 0.5) (absolute-shift-x 0.0) (absolute-shift-y 0.0) (alignment-x (alignment-x ref-relative)) (alignment-y (alignment-y bbox-relative)) (transform (transform 0.708072125911713 0.0 0.0 0.708072125911713)) (fill-color (rgb 0 0 0)) (invisible #f) (name "noname")))
+ (tex-text (coords -25.9967517852783 2.23559522628784) "1010" ( (relative-position-x 0.5) (relative-position-y 0.5) (absolute-shift-x 0.0) (absolute-shift-y 0.0) (alignment-x (alignment-x ref-relative)) (alignment-y (alignment-y bbox-relative)) (transform (transform 0.708072125911713 0.0 0.0 0.708072125911713)) (fill-color (rgb 0 0 0)) (invisible #f) (name "noname")))
+ (tex-text (coords -41.7389755249023 2.37841057777405) "0011" ( (relative-position-x 0.5) (relative-position-y 0.5) (absolute-shift-x 0.0) (absolute-shift-y 0.0) (alignment-x (alignment-x ref-relative)) (alignment-y (alignment-y bbox-relative)) (transform (transform 0.708072125911713 0.0 0.0 0.708072125911713)) (fill-color (rgb 0 0 0)) (invisible #f) (name "noname")))
+ (tex-text (coords -9.82520008087158 10.0904102325439) "10
+" ( (relative-position-x 0.5) (relative-position-y 0.5) (absolute-shift-x 0.0) (absolute-shift-y 0.0) (alignment-x (alignment-x ref-relative)) (alignment-y (alignment-y bbox-relative)) (transform (transform 0.708072125911713 0.0 0.0 0.708072125911713)) (fill-color (rgb 0 0 0)) (invisible #f) (name "noname")))
+ (tex-text (coords -29.8607482910156 10.0904092788696) "0" ( (relative-position-x 0.5) (relative-position-y 0.5) (absolute-shift-x 0.0) (absolute-shift-y 0.0) (alignment-x (alignment-x ref-relative)) (alignment-y (alignment-y bbox-relative)) (transform (transform 0.708072125911713 0.0 0.0 0.708072125911713)) (fill-color (rgb 0 0 0)) (invisible #f) (name "noname")))
+ (tex-text (coords 16.221019744873 16.6598873138428) "10000" ( (relative-position-x 0.5) (relative-position-y 0.5) (absolute-shift-x 0.0) (absolute-shift-y 0.0) (alignment-x (alignment-x ref-relative)) (alignment-y (alignment-y bbox-relative)) (transform (transform 0.708072125911713 0.0 0.0 0.708072125911713)) (fill-color (rgb 0 0 0)) (invisible #f) (name "noname")))
+ (tex-text (coords 13.5019397735596 8.51942539215088) "" ( (relative-position-x 0.5) (relative-position-y 0.5) (absolute-shift-x 0.0) (absolute-shift-y 0.0) (alignment-x (alignment-x ref-relative)) (alignment-y (alignment-y bbox-relative)) (transform (transform 1.0 0.0 0.0 1.0)) (fill-color (rgb 0 0 0)) (invisible #f) (name "noname")))
+ (tex-text (coords 13.3588285446167 9.37631511688232) "" ( (relative-position-x 0.5) (relative-position-y 0.5) (absolute-shift-x 0.0) (absolute-shift-y 0.0) (alignment-x (alignment-x ref-relative)) (alignment-y (alignment-y bbox-relative)) (transform (transform 1.0 0.0 0.0 1.0)) (fill-color (rgb 0 0 0)) (invisible #f) (name "noname"))) 137183272
+ (segment (center 137209904) (center 137183272) ( (stroke-cap (cap-style butt)) (stroke-join (join-style miter)) (stroke-width 0.0) (stroke-color (rgb 0 0 0)) (fill-color (rgba 0 0 0 0)) (invisible #f) (name "noname"))) 137209904 137183408
+ (segment (center 137210952) (center 137183408) ( (stroke-cap (cap-style butt)) (stroke-join (join-style miter)) (stroke-width 0.0) (stroke-color (rgb 0 0 0)) (fill-color (rgba 0 0 0 0)) (invisible #f) (name "noname"))) 137210952 137184176
+ (segment (center 137264936) (center 137184176) ( (stroke-cap (cap-style butt)) (stroke-join (join-style miter)) (stroke-width 0.0) (stroke-color (rgb 0 0 0)) (fill-color (rgba 0 0 0 0)) (invisible #f) (name "noname"))) 137264936 137138936
+ (segment (center 137265064) (center 137138936) ( (stroke-cap (cap-style butt)) (stroke-join (join-style miter)) (stroke-width 0.0) (stroke-color (rgb 0 0 0)) (fill-color (rgba 0 0 0 0)) (invisible #f) (name "noname"))) 137265064 137217024
+ (segment (center 137264552) (center 137217024) ( (stroke-cap (cap-style butt)) (stroke-join (join-style miter)) (stroke-width 0.0) (stroke-color (rgb 0 0 0)) (fill-color (rgba 0 0 0 0)) (invisible #f) (name "noname"))) 137264552 137209272
+ (segment (center 137264680) (center 137209272) ( (stroke-cap (cap-style butt)) (stroke-join (join-style miter)) (stroke-width 0.0) (stroke-color (rgb 0 0 0)) (fill-color (rgba 0 0 0 0)) (invisible #f) (name "noname"))) 137264680
+ (path ( (stroke-cap (cap-style butt)) (stroke-join (join-style miter)) (stroke-width 0.0) (stroke-color (rgb 0 0 0)) (fill-color (rgba 0 0 0 0)) (invisible #f) (name "noname")) ( 137141368 137192200 137215112
+ (segment (end 137215112) (coords 30.1835308074951 -0.0573275834321976) ( (stroke-cap (cap-style butt)) (stroke-join (join-style miter)) (stroke-width 0.0) (stroke-color (rgb 0 0 0)) (fill-color (rgba 0 0 0 0)) (invisible #f) (name "noname")))))
+ (path ( (stroke-cap (cap-style butt)) (stroke-join (join-style miter)) (stroke-width 0.0) (stroke-color (rgb 0 0 0)) (fill-color (rgba 0 0 0 0)) (invisible #f) (name "noname")) ( 137190760 137188648 137212328
+ (segment (end 137212328) (coords 16.2369785308838 -0.0142008448019624) ( (stroke-cap (cap-style butt)) (stroke-join (join-style miter)) (stroke-width 0.0) (stroke-color (rgb 0 0 0)) (fill-color (rgba 0 0 0 0)) (invisible #f) (name "noname")))))
+ (path ( (stroke-cap (cap-style butt)) (stroke-join (join-style miter)) (stroke-width 0.0) (stroke-color (rgb 0 0 0)) (fill-color (rgba 0 0 0 0)) (invisible #f) (name "noname")) ( 137190160 137189416 137213096
+ (segment (end 137213096) (coords 6.3678617477417 -5.22586536407471) ( (stroke-cap (cap-style butt)) (stroke-join (join-style miter)) (stroke-width 0.0) (stroke-color (rgb 0 0 0)) (fill-color (rgba 0 0 0 0)) (invisible #f) (name "noname")))))
+ (path ( (stroke-cap (cap-style butt)) (stroke-join (join-style miter)) (stroke-width 0.0) (stroke-color (rgb 0 0 0)) (fill-color (rgba 0 0 0 0)) (invisible #f) (name "noname")) ( 137142536 137189896 137213864
+ (segment (end 137213864) (coords -10.1621284484863 -4.98721361160278) ( (stroke-cap (cap-style butt)) (stroke-join (join-style miter)) (stroke-width 0.0) (stroke-color (rgb 0 0 0)) (fill-color (rgba 0 0 0 0)) (invisible #f) (name "noname")))))
+ (path ( (stroke-cap (cap-style butt)) (stroke-join (join-style miter)) (stroke-width 0.0) (stroke-color (rgb 0 0 0)) (fill-color (rgba 0 0 0 0)) (invisible #f) (name "noname")) ( 137190384 137211568 137214632
+ (segment (end 137214632) (coords -23.6672763824463 -5.14270782470703) ( (stroke-cap (cap-style butt)) (stroke-join (join-style miter)) (stroke-width 0.0) (stroke-color (rgb 0 0 0)) (fill-color (rgba 0 0 0 0)) (invisible #f) (name "noname")))))
+ (path ( (stroke-cap (cap-style butt)) (stroke-join (join-style miter)) (stroke-width 0.0) (stroke-color (rgb 0 0 0)) (fill-color (rgba 0 0 0 0)) (invisible #f) (name "noname")) ( 137190984 137191432 137210320
+ (segment (end 137210320) (coords -39.9239387512207 -5.18133211135864) ( (stroke-cap (cap-style butt)) (stroke-join (join-style miter)) (stroke-width 0.0) (stroke-color (rgb 0 0 0)) (fill-color (rgba 0 0 0 0)) (invisible #f) (name "noname")))))
+ (tex-text (center 137209384) "2" ( (relative-position-x 0.5) (relative-position-y 0.5) (absolute-shift-x 0.0) (absolute-shift-y 0.0) (alignment-x (alignment-x ref-relative)) (alignment-y (alignment-y bbox-relative)) (transform (transform 1.0 0.0 0.0 1.0)) (fill-color (rgb 0 0 0)) (invisible #f) (name "noname")))
+ (tex-text (center 137143464) "3" ( (relative-position-x 0.5) (relative-position-y 0.5) (absolute-shift-x 0.0) (absolute-shift-y 0.0) (alignment-x (alignment-x ref-relative)) (alignment-y (alignment-y bbox-relative)) (transform (transform 1.0 0.0 0.0 1.0)) (fill-color (rgb 0 0 0)) (invisible #f) (name "noname"))) 137265192
+ (segment (center 137183584) (center 137265192) ( (stroke-cap (cap-style butt)) (stroke-join (join-style miter)) (stroke-width 0.0) (stroke-color (rgb 0 0 0)) (fill-color (rgba 0 0 0 0)) (invisible #f) (name "noname"))) 137183584 137264808
+ (segment (center 137210648) (center 137264808) ( (stroke-cap (cap-style butt)) (stroke-join (join-style miter)) (stroke-width 0.0) (stroke-color (rgb 0 0 0)) (fill-color (rgba 0 0 0 0)) (invisible #f) (name "noname"))) 137210648 137209384
+ (parametric-point 137143464 0.329653769731522 ( (name "noname"))) 137222184
+ (segment (center 137138784) (center 137222184) ( (stroke-cap (cap-style butt)) (stroke-join (join-style miter)) (stroke-width 0.0) (stroke-color (rgb 0 0 0)) (fill-color (rgba 0 0 0 0)) (invisible #f) (name "noname"))) 137138784 137140160
+ (segment (center 137208592) (center 137140160) ( (stroke-cap (cap-style butt)) (stroke-join (join-style miter)) (stroke-width 0.0) (stroke-color (rgb 0 0 0)) (fill-color (rgba 0 0 0 0)) (invisible #f) (name "noname"))) 137208592
+ (point (coords -6.63369464874268 5.23468208312988) ( (invisible #f) (name "noname")))
+ (point (coords -10.0683746337891 -0.0494439601898193) ( (invisible #f) (name "noname"))) 137143464
+ (tex-text (coords -5.20259666442871 6.23440980911255) "" ( (relative-position-x 0.5) (relative-position-y 0.5) (absolute-shift-x 0.0) (absolute-shift-y 0.0) (alignment-x (alignment-x ref-relative)) (alignment-y (alignment-y bbox-relative)) (transform (transform 1.0 0.0 0.0 1.0)) (fill-color (rgb 0 0 0)) (invisible #f) (name "noname")))
+ (tex-text (coords -13.5296688079834 17.1597366333008) "0" ( (relative-position-x 0.5) (relative-position-y 0.5) (absolute-shift-x 0.0) (absolute-shift-y 0.0) (alignment-x (alignment-x ref-relative)) (alignment-y (alignment-y bbox-relative)) (transform (transform 0.708072125911713 0.0 0.0 0.708072125911713)) (fill-color (rgb 0 0 0)) (invisible #f) (name "noname")))
+ (tex-text (center 137215608) "0" ( (relative-position-x 0.5) (relative-position-y 0.5) (absolute-shift-x 0.0) (absolute-shift-y 0.0) (alignment-x (alignment-x ref-relative)) (alignment-y (alignment-y bbox-relative)) (transform (transform 1.0 0.0 0.0 1.0)) (fill-color (rgb 0 0 0)) (invisible #f) (name "noname")))
+ (tex-text (center 137141632) "4" ( (relative-position-x 0.5) (relative-position-y 0.5) (absolute-shift-x 0.0) (absolute-shift-y 0.0) (alignment-x (alignment-x ref-relative)) (alignment-y (alignment-y bbox-relative)) (transform (transform 1.0 0.0 0.0 1.0)) (fill-color (rgb 0 0 0)) (invisible #f) (name "noname"))) 137215608 137141632 137211072
+ (tex-text (coords 0.235624194145203 19.9446296691895) "5" ( (relative-position-x 0.5) (relative-position-y 0.5) (absolute-shift-x 0.0) (absolute-shift-y 0.0) (alignment-x (alignment-x ref-relative)) (alignment-y (alignment-y bbox-relative)) (transform (transform 0.993641078472137 0.0 0.0 0.993641078472137)) (fill-color (rgb 0 0 0)) (invisible #f) (name "noname")))))))))
\ No newline at end of file
diff --git a/9-suffix/9-suffix.tex b/9-suffix/9-suffix.tex
new file mode 100644 (file)
index 0000000..1d0d024
--- /dev/null
@@ -0,0 +1,229 @@
+\input ../sgr.tex
+
+\def\leaderfill{\leaders\hbox to .5em{\hss.\hss}\hfill}
+\def\itemitemitem{\par\indent\indent \hangindent3\parindent \textindent}
+\dimen0 = \hsize
+\divide \dimen0 by 6
+\def\vs#1#2{#1~{\rm vs.}~#2}
+
+\prednaska{9}{Suffixové stromy} {Tomá¹ Mikula \& Jan Král}
+
+\s {Definícia:}
+\+\indent&\hbox to \dimen0 {$\Sigma$\leaderfill}&koneèná abeceda (mno¾ina znakov)\cr
+\+&$\Sigma^*$\leaderfill&mno¾ina v¹etkých slov nad $\Sigma$\cr
+\+&$\epsilon$\leaderfill&prázdne slovo\cr
+\+&$\alpha\beta$\leaderfill&zre»azenie slov $\alpha,\beta\in\Sigma^*$\cr
+\+&$\alpha^n$\leaderfill&$n=0: \alpha^0=\epsilon$\cr
+\+&&$n>0: \alpha^n=\alpha\alpha^{n-1}$\cr
+\+&$\alpha^{\rm R}$\leaderfill&slovo $\alpha$ odzadu\cr
+\settabs\+\indent&$\alpha$ je {\it (vlastným) podslovom} $\beta$ &\cr
+\+&$\alpha$ je {\it (vlastným) prefixom} $\beta$ &$\equiv  \exists\gamma(\not=\epsilon):\beta=\alpha\gamma$\cr
+\+&$\alpha$ je {\it (vlastným) sufixom} $\beta$ &$\equiv  \exists\gamma(\not=\epsilon):\beta=\gamma\alpha$\cr
+\+&$\alpha$ je {\it (vlastným) podslovom} $\beta$ &$\equiv  \alpha$ je prefixom nejakého sufixu $\beta$ (a $\alpha\not=\beta$)\cr
+
+\h{Trie}
+\s{Definícia:} {\it Trie ($\Sigma$-strom)} pre $X\subset\Sigma^*, \vert X\vert<\infty$ je orientovaný graf $G(V,E)$:\par
+$V = \lbrace\alpha\vert\alpha\hbox{ je prefixom nejakého }\beta\in X\rbrace$\par
+$(\alpha,\beta)\in E \equiv \exists x\in\Sigma:\beta=\alpha x$\par
+
+\s{Pozorovanie:} Trie je strom s koreòom $\epsilon$. Listy sú slová z $X$, ktoré nie sú vlastným prefixom iných slov z $X$.
+
+\s{Definícia:} {\it Komprimovaná trie ($\Sigma^+$-strom)} vznikne z trie nahradením nevetviacich sa ciest hranami (oznaèenými zre»azením znakov príslu¹nej cesty).
+
+Vrcholom, ktoré padli za obe» kompresii budeme hovori» {\it skryté vrcholy}.\par
+Mô¾e sa sta», ¾e nejakému slovu z $X$ odpovedá skrytý vrchol. Aby sme sa tomuto vyhli, pridáme na koniec ka¾dého slova ¹peciálny znak $\$\notin\Sigma$. Teraz platí\par
+\s{Pozorovanie:} Listy (komprimovanej) trie sú práve slová z $X$.
+
+\tabskip=0pt plus 1fil
+\halign to\hsize{
+\hfil#\hfil&\hfil#\hfil&\hfil#\hfil\cr
+\epsfbox{trie.eps}&\epsfbox{trie-c.eps}&\epsfbox{trie-cd.eps}\cr
+Trie pre $\{\hbox{AULA, AUTO, AUTOBUS, BUS}\}$ & \dots komprimovaná & \dots odolarovaná\cr
+}
+\smallskip
+
+\h{Sufixové stromy}
+\s{Definícia:} {\it Sufixový strom} pre slovo $\sigma\in\Sigma^*$ je komprimovaná trie pre $X=\lbrace {\rm sufixy~}\sigma\rbrace$.
+
+\s{Pozorovanie:} Listy sú sufixy $\sigma$, ktoré nie sú prefixom iného sufixu. Po pridaní znaku \$ na koniec ka¾dého sufixu sú listy práve v¹etky sufixy. Vnútorné vrcholy sú {\it vetviace podslová} $\sigma$ (tj. $\alpha$ podslová $\sigma$, ktoré sú prefixom aspoò dvoch sufixov a $\alpha x$ je prefixom men¹ieho poètu sufixov pre ka¾dé $x\in\Sigma$).
+
+V listoch si budeme znaèi» index do $\sigma$, kde daný sufix zaèína.
+
+\figure{st-barbara.eps}{Sufixový strom pre slovo BARBARA}{0pt}
+
+\s{Lemma:} Sufixový strom pre slovo $\sigma$ då¾ky $n$ je reprezentovateµný v priestore $\O(n)$.\par
+\s{Dôkaz:} Strom má $\O(n)$ listov a ka¾dý vnútorný vrchol má výstupný stupeò aspoò $2$ a teda v¹etkých vrcholov je $\O(n)$. Keï¾e sa jedná o strom, hrán je tie¾ len $\O(n)$. Nálepky na hranách budú reprezentované ako 2 indexy do $\sigma$ oznaèujúce zaèiatok a koniec nejakého úseku odpovedajúceho písmenkám na hrane.\qed
+
+\s{Veta:} Sufixový strom pre slovo då¾ky $n$ sa dá zostroji» v èase $\O(n)$.\par
+\s{Dôkaz:} Budú uvedené 2 kon¹trukcie v lineárnom èase.\qed
+
+\s{Aplikácie} (alebo èo doká¾eme v èase $\O(n)$):\par
+\item{1.} inverzné vyhµadávanie (tj. vyhµadávanie µubovoµného výrazu v predspracovanom texte (nie predspracovaného výrazu (napr. koneèný automat) v µubovoµnom texte))
+\itemitem{-}v¹etky výskyty; ak u¾ máme strom postavený, doká¾eme nájs» v¹etkých $k$ výskytov podslova då¾ky $m$ v èase $\O(m+k)$ (vo vnútorných vrcholoch si budeme naviac udr¾iava» pointre na lexikograficky najmen¹í a najväè¹í list podstromu a v listoch pointer na ïal¹í list v lex. poradí)
+\itemitem{-}poèet výskytov (v ka¾dom vnútornom vrchole budeme ma» predpoèítaný poèet listov, ktoré sa pod ním nachádzajú)
+\item{2.} najdlh¹ie opakujúce sa podslovo
+\itemitem{$\cong$} najhlb¹ie vetvenie (písmenkovo najhlb¹í vnútorný vrchol)
+\item{3.} histogram $k$-podslov (èetnos» slov då¾ky $k$)
+\itemitem{-} odre¾eme strom v písmenkovej håbke $k$ a spoèítame odrezané vetvièky
+\item{4.}najdlh¹í spoloèný podre»azec slov $\alpha$ a $\beta$ ($LCS(\alpha, \beta)$)
+\itemitem{-}postavíme strom pre slovo $\alpha\$_1\beta\$_2$; najhlb¹í vrchol, pod ktorým je $\alpha$-ový i $\beta$-ový sufix ($\$_1$ i $\$_2$) odpovedá $LCS(\alpha,\beta)$
+\item{5.}najdlh¹ie palindromické podslovo ($\beta$ je palindromické $\equiv \beta = \beta^{\rm R}$)
+\itemitem{-} Postavíme sufixový strom pre $\alpha\$_1\alpha^R\$_2$. Postupne prechádzame cez v¹etky potenciálne stredy palindromu (je ich $2n-1$) a poèítame:
+\itemitemitem{$\bullet$}$LCP(\alpha[i:], \alpha^{\rm R}[n-(i+1):])$, keï uva¾ujeme ako stred palindromu $i$-té písmenko (èíslované od 0) (tj. palindrom nepárnej då¾ky)
+\itemitemitem{$\bullet$}$LCP(\alpha[i+1:], \alpha^{\rm R}[n-(i+1)])$, keï uva¾ujeme stred palindromu medzi $i$-tým a $(i+1)$-vým písmenkom (tj. palindrom párnej då¾ky).
+\itemitem{}$LCP(\alpha,\beta)$ je najdlh¹í spoloèný prefix $\alpha$ a $\beta$ a v strome je to najhlb¹í spoloèný predchodca ($LCA$) listov odpovedajúcich $\alpha$ a $\beta$.
+\itemitem{}Pritom treba ¹ikovne liez» po strome, aby nájdenie ïal¹ej odpovedajúcej si dvojice listov bolo kon¹tantné.
+\itemitem{}Na nájdenie $LCA$ pou¾ijeme nejakú ¹truktúru, ktorá to po lineárnom predvýpoète zvládne v kon¹tantnom èase.
+\item{6.}Burrows-Wheeler transform (BWT)
+
+\h{Rekurzívna kon¹trukcia sufixového stromu v lineárnom èase}
+\s{Definícia:} {\it Suffix Array} $A$ pre slovo $\sigma$ je permutácia na sufixoch slova $\sigma$, ktorá ich zotriedi lexikograficky:\hfil\break
+$\sigma[A[i]:]<_{lex}\sigma[A[i+1]:]$, kde $\sigma[j:]$ znaèí podslovo $\sigma$ poènúc $j$-tým písmenkom a¾ do konca.
+
+\s{Definícia:} {\it LCP Array} $L$ pre slovo $\sigma$:\hfil\break
+$L[i]=\vert LCP(\sigma[A[i]:], \sigma[A[i+1]:])\vert$, kde $LCP(\alpha, \beta)$ je najdlh¹í spoloèný prefix $\alpha$ a $\beta$.
+
+\s{Definícia:} {\it Kartézsky strom} pre postupnos» kµúèov $x_1\ldots x_n$ je strom, ktorý je haldou podµa hodnôt kµúèov a vyhµadávacím stromom podµa poradia kµúèov v postupnosti. Pritom vrcholy s rovnakou hodnotou, ktoré by spolu susedili, zlúèime do jedného.
+
+Niektoré vrcholy majú voµné miesta, kde by mohol by» pripojený podstrom. Týmto voµným miestam budeme hovori» {\it voµné sloty}.
+
+\tabskip=0pt plus 1fil
+\halign to\hsize{
+\hfil#\hfil&\hfil#\hfil\cr
+\epsfbox{ct-35120024224.eps}&\epsfbox{ct-35120024224-fs.eps}\cr
+Kartézsky strom pre $(3,5,1,2,0,0,2,4,2,2,4)$ & \dots s vyznaèenými voµnými slotmi\cr
+}
+\smallskip
+
+\s{Lemma:} Kartézsky strom pre $x_1\ldots x_n$ sa dá postavi» v èase $\O(n)$.\qed
+\s{Lemma:} Sufixový strom (ST) pre $\sigma$ a $(A,L)$ pre $\sigma$ sú lineárne izomorfné.\par
+\s{Dôkaz:}\par
+${\rm ST}\longrightarrow(A,L)$:
+\itemitem{}Prechádzame strom zµava doprava (tj. lexikograficky). V¾dy, keï sme v liste, opí¹eme do $A[i]$ index do $\sigma$, ktorý sme v liste na¹li; $i$ inicializujeme na $-1$ a pri ka¾dej náv¹teve listu zväè¹ujeme o $1$ (e¹te pred zápisom do $A[i]$).
+\itemitem{}Medzi náv¹tevou 2 susedných listov v¾dy najskôr stúpame a potom sa znova ponoríme. Najvy¹¹í vrchol, po ktorý sme vystúpili medzi náv¹tevou listov $\alpha$ a $\beta$, odpovedá $LCP(\alpha,\beta)$, jeho håbka odpovedá $\vert LCP(\alpha, \beta)\vert$. Do $L[i]$ teda zapí¹eme håbku tohto najhlb¹ieho spoloèného predka, ktorú si poèítame v rekurzii.
+
+$(A,L)\longrightarrow{\rm ST}$:
+\itemitem{}Staviame kartézsky strom pre $L$ a do voµných slotov privesujeme listy. Tento strom má tvar sufixového stromu pre $\sigma$. Indexy v listoch urèujeme podµa $A$. Nálepky na hranách urèujeme podµa indexov v listoch podstromu a (písmenkovej) håbky vrcholov (ktorú pre vnútorné vrcholy máme v $L$ a pre listy vypoèítame ako $\vert\sigma\vert - A[i]$).\qed
+
+\medskip
+Ná¹ algoritmus bude kon¹truova» $(A,L)$, ktoré u¾ teraz vieme v lineárnom èase previes» na sufixový strom.
+
+\algo
+\:(Z abecedy vyhodíme nepou¾ité znaky.)
+\itemitem{}Pou¾ité znaky zotriedime priehradkovým triedením v èase $\O(n)$ a premenujeme na $1,\ldots,n'$, $n'\le n$.
+
+\:Definujeme slová $\sigma_0$, $\sigma_1$, $\sigma_2$ nasledujúcim spôsobom:
+%\settabs\+\itemitemitem{}&$\sigma_2[i] := (\sigma[3i+2],$ &$\sigma[3i+3],$ &$\sigma[3i+4])$\cr
+$$\eqalign{
+\sigma_0[i] &:= (\sigma[3i],\sigma[3i+1],\sigma[3i+2])\cr
+\sigma_1[i] &:= (\sigma[3i+1],\sigma[3i+2],\sigma[3i+3])\cr
+\sigma_2[i] &:= (\sigma[3i+2],\sigma[3i+3],\sigma[3i+4])\cr
+}$$
+\itemitem{}$\sigma_0$, $\sigma_1$, $\sigma_2$ sú slová då¾ky $\approx{n\over3}$ nad abecedou $[n']^3$. (Opä» ale z nej pou¾ijeme najviac $n$ znakov.)
+
+\:Zavoláme sa rekurzívne na $\sigma_0\sigma_1$, získame $(A_{01},L_{01})$. Z $A_{01}$ doká¾eme jedným priechodom vyrobi» $A_0$, $A_1$, $A_{01}^{-1}$. ($A_{01}^{-1}$ je inverzná permutácia k $A_{01}$)
+
+\:Dopoèítame $A_2$.\par
+\itemitem{}Vyu¾ijeme, ¾e $\sigma_2[i:]\approx\sigma[3i+2:]=\sigma[3i+2]\sigma[3i+3:]\approx\sigma[3i+2]\sigma_0[i+1:]$.
+\itemitem{}Pre slová $\sigma_2[i:]\approx\sigma[3i+2]\sigma_0[i+1:]$ máme usporiadanie podµa druhej èasti (tj. podµa $\sigma_0[i+1:]$) v $A_0$. V tomto poradí ich nahád¾eme do priehradok podµa prvého znaku prvého znaku (tj. podµa $\sigma[3i+2]$) a vysypeme do $A_2$.
+
+\:$A_0,A_1,A_2\buildrel merge\over\longrightarrow A$
+\itemitem{}Nech $a$, $b$, $c$, sú aktuálne pozície v $A_0$, $A_1$, $A_2$ (v tomto poradí) pri zlievaní. Nech $i=A_0[a]$, $j=A_1[b]$, $k=A_2[c]$. Potrebujeme porovna» slová $\sigma_0[i:]$, $\sigma_1[j:]$, $\sigma_2[k:]$ v kon¹tantnom èase.
+$$\eqalign{
+\sigma_0[i:] < \sigma_1[j:] &\equiv A_{01}^{-1}[i] < A_{01}^{-1}[\vert\sigma_0\vert+j]\cr
+\sigma_0[i:] < \sigma_2[k:] &\equiv \sigma[3i]\,\sigma_1[i:] < \sigma[3k+2]\,\sigma_0[k+1:]\cr
+&\Leftrightarrow (\sigma[3i] < \sigma[3k+2]) \vee (\sigma[3i] = \sigma[3k+2] \wedge \sigma_1[i:] < \sigma_0[k+1:])\cr
+\sigma_1[j:]<\sigma_2[k:] &\equiv \sigma[3j+1]\,\sigma[3j+2]\,\sigma_0[j+1:] < \sigma[3k+2]\,\sigma[3k+3]\,\sigma_1[k+1:]
+}$$
+
+\:Dopoèítame $L$.
+\itemitem{} Pripomeòme definíciu $L[i]=\vert LCP(\sigma[A[i]:], \sigma[A[i+1]:])\vert$.
+\itemitem{} Nech
+\tabskip=3\parindent
+\halign{\hfil#\tabskip=0pt&#\hfil&#\hfil\cr
+$\sigma[A[i]:]$ &$\approx \sigma_0[j:]$,\quad&tj. $A[i]=3j$ pre nejaké $j$,\cr
+$\sigma[A[i+1]:]$ &$\approx \sigma_0[k:]$,&tj. $A[i+1]=3k$ pre nejaké $k$.\cr
+}
+\itemitem{} Oznaème tento prípad $\vs{\sigma_0}{\sigma_0}$. Potom $L[i]=L_{01}[A_{01}^{-1}[A[i] \div 3]]$.
+\itemitem{} Prípad $\vs{\sigma_0}{\sigma_1}$ vyrie¹ime rovnako.
+\itemitem{} Prípady $\vs{\sigma_1}{\sigma_0}$ a $\vs{\sigma_1}{\sigma_1}$: $L[i]=L_{01}[A_{01}^{-1}[A[i] \div 3 + \vert\sigma_0\vert]]$
+\+\cleartabs\itemitem{} &$\vs{\sigma_2}{\sigma_2}$: &a$)$ lí¹ia sa prvým znakom $\Rightarrow L[i]=0$\cr
+\+&&b$)$ $L[i]=1+(\vs{\sigma_0}{\sigma_0})$\cr
+\+&$\vs{\sigma_2}{\sigma_0}$: &a$)$ lí¹ia sa prvým znakom $\Rightarrow L[i]=0$\cr
+\+&&b$)$ $L[i]=1+(\vs{\sigma_0}{\sigma_1})$\cr
+\+&$\vs{\sigma_2}{\sigma_1}$: &a$)$ lí¹ia sa prvým znakom $\Rightarrow L[i]=0$\cr
+\+&&b$)$ lí¹ia sa druhým znakom $\Rightarrow L[i]=1$\cr
+\+&&c$)$ $L[i]=2+(\vs{\sigma_1}{\sigma_0})$\cr
+
+\endalgo
+
+\s{Odhad èasovej zlo¾itosti}\par
+$T(n) = T({2\over3}n) + \O(n) = \O(n)$
+
+\h{Ukkonenova inkrementální konstrukce}
+
+Pomocí Ukkonnenovy konstrukce doká¾eme sestrojit suffixový strom v lineárním èase. Algoritmus je navíc inkrementální, v ka¾dém kroku tak ze stávajícího suffixového stromu ($ST$ pro $\sigma$) vyrobí strom odpovídající roz¹íøenému slovu ($\sigma a$). Vychází pøitom ze stromu pro prázdné slovo (prázdný strom), který postupnì roz¹iøuje.
+
+Roz¹íøení suffixového stromu doká¾e algoritmus provést v amortizovanì konstantním èase.
+
+\s{Pozorování:}Následující pozorování platí pro roz¹iøování suffixového stromu pro $\sigma$ na suffixový strom pro $\sigma a$:
+\numlist\ndotted
+\:Pokud bylo slovo vìtvící v $\sigma$, pak bude stale vìtvící
+\:Pokud byl uzel nevnoøený, bude stále nevnoøený
+\:listy zùstávají jako listy (musím na hranu, ktera do nìj vede pøipsat $a$) -- øe¹íme otevøenými hranami (ne nálepka odsud sem, ale odsud dokonce) - slo¾itost - $O(0)$
+\:vnitøní vrcholy $\to$ vnitøní vrcholy
+\:Mohou vznikat nové vrcholy (listy i vnitøní), slovo nevìtvící se tak mù¾e stát vìtvícím
+\endlist
+
+\s{Definice:Aktivni suffix ($\alpha(\sigma)$)} nazýváme nejdel¹í vnoøený suffix $\sigma$
+
+\s{Lemma:} Pro ka¾dé $\sigma$, $a$ platí: $\alpha(\sigma a)$ je suffixem $\alpha(\sigma)a$
+
+\s{Dùkaz:} $\alpha(\sigma a)$, $\alpha(\sigma)a$ jsou suffixy $\sigma a$, z toho plyne, ¾e staèí porovnat délky abychom lemma ovìøili.
+Platí: $ \vert\alpha(\sigma a)\vert \le \vert\alpha(\sigma)a\vert$ (pøidáním písmene nemù¾u prodlou¾it prefix o více ne¾ jeden znak).
+
+\s{Definice:Zralé suffixy} jsou ty prefixy $\alpha$, pro ktere platí:
+$\forall \sigma, a,\beta: \beta a$ suffix $\sigma a$ je {\it zralý} právì kdy¾ $ \vert\alpha(\sigma)a\vert \ge \vert\beta a\vert > \vert\alpha(\sigma a)\vert$
+
+Update je $O(1)$ amortizovanì na $1$ roz¹íøení $\sigma$
+
+$\alpha(\sigma)$ reprezentuji jako kanonický (neexistuje jiný referenèní pár s krat¹ím $\alpha$) referenèní pár $(v, \alpha)$ kde $v$ je vrchol $ST$ a $\alpha$ ke cesta kudy dál.
+
+\s{Definice: $back[v]$} je nejdel¹í vlastní suffix $v$, ke kterému existuje vrchol.
+
+\algo
+\:Vstup: $\sigma, a, (v, \alpha)$
+
+// 1. Zalo¾ení listù/Podrozdìlení hran
+\:if $\alpha = \epsilon$:
+\::if $\exists (v, a* )$
+\:::konec
+\::else:
+\:::zalo¾ím list
+\:else if $\alpha \ne \epsilon$:
+\::if $\exists (v, \alpha a*)$:
+\:::konec
+\::else:
+\:::podrozdìlím hranu na které le¾í $\alpha$ // za $\alpha$ vlo¾ím odboèku na $a$, kam dám list a pokraèuju
+
+// 2. Pøechod na dal¹í vrchol
+\:zkrátim $\alpha$ zleva o znak
+\:if $v = \epsilon$:
+\::pøejdu do $( \epsilon, \alpha bez 1. znaku)$
+\:else:
+\::pøejdu do $( back[v], \alpha )$
+
+// 3.
+\:kanonikalizuji // "jdu z $v$ pøes alpha do co nejdal"
+\endalgo
+
+
+\s{Èasová slo¾itost:}
+\numlist\ndotted
+\:Zalo¾ení listu/Podrozdìlení hrany -- $O(1)$
+\:Pøechod na dal¹í vrchol -- $O(1)$ za pøedpokladu existence $back(v)$
+\:Kanonikalizace -- amortizovanì za $O(1)$
+\:Update $back[v]$ -- jen pro vnitøní vrcholy, které vznikly v 1. podrozdìlením hrany. Ta hrana vede do vrcholu, který nav¹tíví pøí¹tí update v kroku 2. a buï tam ten vrchol je, nebo ho v tom kroku zakláda, tedy -- $O(1)$.
+\endlist
+
+\bye
diff --git a/9-suffix/CT-35120024224-FS.eps b/9-suffix/CT-35120024224-FS.eps
new file mode 100644 (file)
index 0000000..deea204
--- /dev/null
@@ -0,0 +1,593 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: GIMP PostScript file plugin V 1.17 by Peter Kirchgessner
+%%Title: CT-35120024224-FS.eps
+%%CreationDate: Fri Jun  9 19:35:34 2006
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 2
+%%Pages: 1
+%%BoundingBox: 14 14 242 176
+%%EndComments
+%%BeginProlog
+% Use own dictionary to avoid conflicts
+10 dict begin
+%%EndProlog
+%%Page: 1 1
+% Translate for offset
+14.173228346456687 14.173228346456687 translate
+% Translate to begin of first scanline
+0 160.99888306913181 translate
+226.99842519685041 -160.99888306913181 scale
+% Image geometry
+227 161 8
+% Transformation matrix
+[ 227 0 0 161 0 0 ]
+% Strings to hold RGB-samples per scanline
+/rstr 227 string def
+/gstr 227 string def
+/bstr 227 string def
+{currentfile /ASCII85Decode filter /RunLengthDecode filter rstr readstring pop}
+{currentfile /ASCII85Decode filter /RunLengthDecode filter gstr readstring pop}
+{currentfile /ASCII85Decode filter /RunLengthDecode filter bstr readstring pop}
+true 3
+%%BeginData:        21536 ASCII Bytes
+colorimage
+JcD>AJ,~>
+JcD>AJ,~>
+JcD>AJ,~>
+JcD>AJ,~>
+JcD>AJ,~>
+JcD>AJ,~>
+U&WdGVZ2/~>
+U&WdGVZ2/~>
+U&WdGVZ2/~>
+U&WdGVZ2/~>
+U&WdGVZ2/~>
+U&WdGVZ2/~>
+U&WdGVZ2/~>
+U&WdGVZ2/~>
+U&WdGVZ2/~>
+U&Y)lhuEZUVZ2/~>
+U&Y)lhuEZUVZ2/~>
+U&Y)lhuEZUVZ2/~>
+U&Y)lhuEZUVZ2/~>
+U&Y)lhuEZUVZ2/~>
+U&Y)lhuEZUVZ2/~>
+U&Y)lhuEZUVZ2/~>
+U&Y)lhuEZUVZ2/~>
+U&Y)lhuEZUVZ2/~>
+U&Y)lhuEZUVZ2/~>
+U&Y)lhuEZUVZ2/~>
+U&Y)lhuEZUVZ2/~>
+U&Y)lhuEZUVZ2/~>
+U&Y)lhuEZUVZ2/~>
+U&Y)lhuEZUVZ2/~>
+U&Y)lo`#-=<>YlU<6Xt6rW&hqJ,~>
+U&Y)lo`#-=<>YlU<6Xt6rW&hqJ,~>
+U&Y)lo`#-=<>YlU<6Xt6rW&hqJ,~>
+U&Y)lp&>&g"8i-""K1nlrW&hqJ,~>
+U&Y)lp&>&g"8i-""K1nlrW&hqJ,~>
+U&Y)lp&>&g"8i-""K1nlrW&hqJ,~>
+U&Y)lpAYKV#ll!dpr=<R$K1UWrW&hqJ,~>
+U&Y)lpAYKV#ll!dpr=<R$K1UWrW&hqJ,~>
+U&Y)lpAYKV#ll!dpr=<R$K1UWrW&hqJ,~>
+U&Y)lpAY5;!!&Yjrr\bk!-e,9rW&hqJ,~>
+U&Y)lpAY5;!!&Yjrr\bk!-e,9rW&hqJ,~>
+U&Y)lpAY5;!!&Yjrr\bk!-e,9rW&hqJ,~>
+U&Y)lpAY4L!!(jSrr_!U!&O<JrW&hqJ,~>
+U&Y)lpAY4L!!(jSrr_!U!&O<JrW&hqJ,~>
+U&Y)lpAY4L!!(jSrr_!U!&O<JrW&hqJ,~>
+U&Y)lpAY4)!!)cmrr_oo!"\c&rW&hqJ,~>
+U&Y)lpAY4)!!)cmrr_oo!"\c&rW&hqJ,~>
+U&Y)lpAY4)!!)cmrr_oo!"\c&rW&hqJ,~>
+U&Y)lpAY3s!!*#trr`3"!!DoorW&hqJ,~>
+U&Y)lpAY3s!!*#trr`3"!!DoorW&hqJ,~>
+U&Y)lpAY3s!!*#trr`3"!!DoorW&hqJ,~>
+U&Y)lpAY4)!!)`lrr_oo!"\c&rW&hqJ,~>
+U&Y)lpAY4)!!)`lrr_oo!"\c&rW&hqJ,~>
+U&Y)lpAY4)!!)`lrr_oo!"\c&rW&hqJ,~>
+U&Y)lpAY4L!!(gRrr^sT!&O<JrW&hqJ,~>
+U&Y)lpAY4L!!(gRrr^sT!&O<JrW&hqJ,~>
+U&Y)lpAY4L!!(gRrr^sT!&O<JrW&hqJ,~>
+U&Y)lpAY5:!!&Yjrr\_j!-\&8rW&hqJ,~>
+U&Y)lpAY5:!!&Yjrr\_j!-\&8rW&hqJ,~>
+U&Y)lpAY5:!!&Yjrr\_j!-\&8rW&hqJ,~>
+U&Y)lpAYKT#QPmdq8O?R$/bFUrW&hqJ,~>
+U&Y)lpAYKT#QPmdq8O?R$/bFUrW&hqJ,~>
+U&Y)lpAYKT#QPmdq8O?R$/bFUrW&hqJ,~>
+U&Y)lp&>&d"8i-""/PShrW&hqJ,~>
+U&Y)lp&>&d"8i-""/PShrW&hqJ,~>
+U&Y)lp&>&d"8i-""/PShrW&hqJ,~>
+U&Y)lo`#-;;\oTQ;p+_3rW&hqJ,~>
+U&Y)lo`#-;;\oTQ;p+_3rW&hqJ,~>
+U&Y)lo`#-;;\oTQ;p+_3rW&hqJ,~>
+U&Y)lhuEZUVZ2/~>
+U&Y)lhuEZUVZ2/~>
+U&Y)lhuEZUVZ2/~>
+U&Y)lhuEZUVZ2/~>
+U&Y)lhuEZUVZ2/~>
+U&Y)lhuEZUVZ2/~>
+U&WaFVuM8~>
+U&WaFVuM8~>
+U&WaFVuM8~>
+UAr^CWrIS~>
+UAr^CWrIS~>
+UAr^CWrIS~>
+VZ4m@XoEn~>
+VZ4m@XoEn~>
+VZ4m@XoEn~>
+WW2YlnGiIfnc/7^Z2]=~>
+WW2YlnGiIfnc/7^Z2]=~>
+WW2YlnGiIfnc/7^Z2]=~>
+XT.qnmf37dmf2q[[/YX~>
+XT.qnmf37dmf2q[[/YX~>
+XT.qnmf37dmf2q[[/YX~>
+YlF@rlMph`li6VX\,Us~>
+YlF@rlMph`li6VX\,Us~>
+YlF@rlMph`li6VX\,Us~>
+ZiB[ukPtM]kPt5U])R9~>
+ZiB[ukPtM]kPt5U])R9~>
+ZiB[ukPtM]kPt5U])R9~>
+\,Z(#jT#2ZjT"oR^&NT~>
+\,Z(#jT#2ZjT"oR^&NT~>
+\,Z(#jT#2ZjT"oR^&NT~>
+])VF'i;`cViW&TO_#Jo~>
+])VF'i;`cViW&TO_#Jo~>
+])VF'i;`cViW&TO_#Jo~>
+^&Ra*h>dHShZ*6K`;b>~>
+^&Ra*h>dHShZ*6K`;b>~>
+^&Ra*h>dHShZ*6K`;b>~>
+_>j0.g&M$Og]-pHa8^Y~>
+_>j0.g&M$Og]-pHa8^Y~>
+_>j0.g&M$Og]-pHa8^Y~>
+_uKE1f`(up?iC$*b1Zgf!6Y=l~>
+_uKE1f`(up?iC$*b1Zgf!6Y=l~>
+_uKE1f`(up?iC$*b1Zgf!6Y=l~>
+ci</.h>[NQ@J^$*@Je[VpAiG;J,~>
+ci</.h>[NQ@J^$*@Je[VpAiG;J,~>
+ci</.h>[NQ@J^$*@Je[VpAiG;J,~>
+ci</.h>[di!!%,`b&dU`@H.=?!8mg,~>
+ci</.h>[di!!%,`b&dU`@H.=?!8mg,~>
+ci</.h>[di!!%,`b&dU`@H.=?!8mg,~>
+ci</.hZ!]#!!(.>rr^@C!6X@%f`9q0J,~>
+ci</.hZ!]#!!(.>rr^@C!6X@%f`9q0J,~>
+ci</.hZ!]#!!(.>rr^@C!6X@%f`9q0J,~>
+ci<tEmJm.chZ!Xa!-J,<!d"ELj8[d4huA3~>
+ci<tEmJm.chZ!Xa!-J,<!d"ELj8[d4huA3~>
+ci<tEmJm.chZ!Xa!-J,<!d"ELj8[d4huA3~>
+ci<tEmJm.chZ!Wk!6Y3=!m1KWj8])YhuEZUhuA3~>
+ci<tEmJm.chZ!Wk!6Y3=!m1KWj8])YhuEZUhuA3~>
+ci<tEmJm.chZ!Wk!6Y3=!m1KWj8])YhuEZUhuA3~>
+ci<tEmJm.chZ!Wk!6Y3=!m1KWj8])YhuEZUhuA3~>
+ci<tEmJm.chZ!Wk!6Y3=!m1KWj8])YhuEZUhuA3~>
+ci<tEmJm.chZ!Wk!6Y3=!m1KWj8])YhuEZUhuA3~>
+ci<tEmJm.chZ!Xa!-J,<!d"ELj8])YhuEZUhuA3~>
+ci<tEmJm.chZ!Xa!-J,<!d"ELj8])YhuEZUhuA3~>
+ci<tEmJm.chZ!Xa!-J,<!d"ELj8])YhuEZUhuA3~>
+ci<tEqu6`JJ1CNuq>^EohZ!]#!!(.>rr^@C!6X@%rW(jUrW(jUJ,~>
+ci<tEqu6`JJ1CNuq>^EohZ!]#!!(.>rr^@C!6X@%rW(jUrW(jUJ,~>
+ci<tEqu6`JJ1CNuq>^EohZ!]#!!(.>rr^@C!6X@%rW(jUrW(jUJ,~>
+ci<tEqu?Nnq>^Eoh>[di!!%,`b&dU`@H.=d!;-9sdt'e#":Hi,m.LDX!8mg,~>
+ci<tEqu?Nnq>^Eoh>[di!!%,`b&dU`@H.=d!;-9sdt'e#":Hi,m.LDX!8mg,~>
+ci<tEqu?Nnq>^Eoh>[di!!%,`b&dU`@H.=d!;-9sdt'e#":Hi,m.LDX!8mg,~>
+ci<tEqu6^IJ(4Gtq>^Eoh>[NQ@J^$*@Jf'arW)Tjq#CF6h"LdI!8mg,~>
+ci<tEqu6^IJ(4Gtq>^Eoh>[NQ@J^$*@Jf'arW)Tjq#CF6h"LdI!8mg,~>
+ci<tEqu6^IJ(4Gtq>^Eoh>[NQ@J^$*@Jf'arW)Tjq#CF6h"LdI!8mg,~>
+ci<tEq#C<nq>^Eog]%H"?PF2]b2E=!!;-9t!#^gVqT:Jl!)N=grW(jUJ,~>
+ci<tEq#C<nq>^Eog]%H"?PF2]b2E=!!;-9t!#^gVqT:Jl!)N=grW(jUJ,~>
+ci<tEq#C<nq>^Eog]%H"?PF2]b2E=!!;-9t!#^gVqT:Jl!)N=grW(jUJ,~>
+ci<tEq#C<nq>^Eo[/^+*o`"r"o)8RjeGoRZpAb*lhuA3~>
+ci<tEq#C<nq>^Eo[/^+*o`"r"o)8RjeGoRZpAb*lhuA3~>
+ci<tEq#C<nq>^Eo[/^+*o`"r"o)8RjeGoRZpAb*lhuA3~>
+ci<tEq#C<nq>^Eo[/^+*mf*C_!!!?!s8E#Us*t~>
+ci<tEq#C<nq>^Eo[/^+*mf*C_!!!?!s8E#Us*t~>
+ci<tEq#C<nq>^Eo[/^+*mf*C_!!!?!s8E#Us*t~>
+ci<tEq#C<nq>^Eo[/^+*mf*Bh!!"PCs8E#Us*t~>
+ci<tEq#C<nq>^Eo[/^+*mf*Bh!!"PCs8E#Us*t~>
+ci<tEq#C<nq>^Eo[/^+*mf*Bh!!"PCs8E#Us*t~>
+ci<tEq#C<nq>^Eo[/^+*n,EOA('">QpAb*lhuA3~>
+ci<tEq#C<nq>^Eo[/^+*n,EOA('">QpAb*lhuA3~>
+ci<tEq#C<nq>^Eo[/^+*n,EOA('">QpAb*lhuA3~>
+ci<tEq#C<nq>^Eo[/^+*nG`Zl%fcSCk4\iS!8mg,~>
+ci<tEq#C<nq>^Eo[/^+*nG`Zl%fcSCk4\iS!8mg,~>
+ci<tEq#C<nq>^Eo[/^+*nG`Zl%fcSCk4\iS!8mg,~>
+ci<tEq#C<nq>^Eo[/^+*o)AabBDql3$,Q<7rW(jUJ,~>
+ci<tEq#C<nq>^Eo[/^+*o)AabBDql3$,Q<7rW(jUJ,~>
+ci<tEq#C<nq>^Eo[/^+*o)AabBDql3$,Q<7rW(jUJ,~>
+ci<tEq#C<nq>^Eo[/^+*oD\jC0)bhO,L#f[rW(jUJ,~>
+ci<tEq#C<nq>^Eo[/^+*oD\jC0)bhO,L#f[rW(jUJ,~>
+ci<tEq#C<nq>^Eo[/^+*oD\jC0)bhO,L#f[rW(jUJ,~>
+ci<tEqu?Ekr;Z`r[/^+*o`"rc$iU,,<q5e]rW(jUJ,~>
+ci<tEqu?Ekr;Z`r[/^+*o`"rc$iU,,<q5e]rW(jUJ,~>
+ci<tEqu?Ekr;Z`r[/^+*o`"rc$iU,,<q5e]rW(jUJ,~>
+ci<tEqu?Ekr;Z`r[/^+*o`+XcpAb*lhuA3~>
+ci<tEqu?Ekr;Z`r[/^+*o`+XcpAb*lhuA3~>
+ci<tEqu?Ekr;Z`r[/^+*o`+XcpAb*lhuA3~>
+ci<tEmJm.c[/^+*o`+XcpAb*lhuA3~>
+ci<tEmJm.c[/^+*o`+XcpAb*lhuA3~>
+ci<tEmJm.c[/^+*o`+XcpAb*lhuA3~>
+ci<tEmJm.c[/^+*huEZUhuA3~>
+ci<tEmJm.c[/^+*huEZUhuA3~>
+ci<tEmJm.c[/^+*huEZUhuA3~>
+ci<tEmJm.c[/^+*huEZUhuA3~>
+ci<tEmJm.c[/^+*huEZUhuA3~>
+ci<tEmJm.c[/^+*huEZUhuA3~>
+d/W5.[/^+*huEZUhuA3~>
+d/W5.[/^+*huEZUhuA3~>
+d/W5.[/^+*huEZUhuA3~>
+df8;,[f>"\huA3~>
+df8;,[f>"\huA3~>
+df8;,[f>"\huA3~>
+eGnA*])U=]i;\<~>
+eGnA*])U=]i;\<~>
+eGnA*])U=]i;\<~>
+f)POGlMpY[^Al[_i;\<~>
+f)POGlMpY[^Al[_i;\<~>
+f)POGlMpY[^Al[_i;\<~>
+f`1aIk5Y8X_>jB4p](0lpAb*lp](0liW"E~>
+f`1aIk5Y8X_>jB4p](0lpAb*lp](0liW"E~>
+f`1aIk5Y8X_>jB4p](0lpAb*lp](0liW"E~>
+gAgsKirAiT`rGl8p&FsjpAb*lp](-kir=N~>
+gAgsKirAiT`rGl8p&FsjpAb*lp](-kir=N~>
+gAgsKirAiT`rGl8p&FsjpAb*lp](-kir=N~>
+h#I0MhZ*EPb5_;<o`+jip&G!kpAb'kir=N~>
+h#I0MhZ*EPb5_;<o`+jip&G!kpAb'kir=N~>
+h#I0MhZ*EPb5_;<o`+jip&G!kpAb'kir=N~>
+huEHOg].'LcN!_@oDe^gp&G!kp&Fsjj8XW~>
+huEHOg].'LcN!_@oDe^gp&G!kp&Fsjj8XW~>
+huEHOg].'LcN!_@oDe^gp&G!kp&Fsjj8XW~>
+iW&ZQfDk[If`)/u?PF2]b5_>=nGiFeo`+mjp&FpijSs`~>
+iW&ZQfDk[If`)/u?PF2]b5_>=nGiFeo`+mjp&FpijSs`~>
+iW&ZQfDk[If`)/u?PF2]b5_>=nGiFeo`+mjp&FpijSs`~>
+j8\lSe,T7Eh#@EP@J0]is8;rhs8E#js8;rYs*t~>
+j8\lSe,T7Eh#@EP@J0]is8;rhs8E#js8;rYs*t~>
+j8\lSe,T7Eh#@EP@J0]is8;rhs8E#js8;rYs*t~>
+jo>,VcN!_@hZ!dg!!%,`b&mR^mf31boDedioDeahjo9i~>
+jo>,VcN!_@hZ!dg!!%,`b&mR^mf31boDedioDeahjo9i~>
+jo>,VcN!_@hZ!dg!!%,`b&mR^mf31boDedioDeahjo9i~>
+kPt>XbQ%A<iVs#&!!(.>rr^@C!6Xa0r;cEgrW)Qir;bsZJ,~>
+kPt>XbQ%A<iVs#&!!(.>rr^@C!6Xa0r;cEgrW)Qir;bsZJ,~>
+kPt>XbQ%A<iVs#&!!(.>rr^@C!6Xa0r;cEgrW)Qir;bsZJ,~>
+l2UPZci</.mJd5p!-J,<!d"ELn,N=dnc/Rgo)JXgk5Tr~>
+l2UPZci</.mJd5p!-J,<!d"ELn,N=dnc/Rgo)JXgk5Tr~>
+l2UPZci</.mJd5p!-J,<!d"ELn,N=dnc/Rgo)JXgk5Tr~>
+p]'CVe,SS2mJd5%!6Y3=!m1KWn,N=dnc/Rgo)JUfkPp&~>
+p]'CVe,SS2mJd5%!6Y3=!m1KWn,N=dnc/Rgo)JUfkPp&~>
+p]'CVe,SS2mJd5%!6Y3=!m1KWn,N=dnc/Rgo)JUfkPp&~>
+p]'CVe,SS2mJd5%!6Y3=!m1KWnGiFenGiIfnc/OfkPp&~>
+p]'CVe,SS2mJd5%!6Y3=!m1KWnGiFenGiIfnc/OfkPp&~>
+p]'CVe,SS2mJd5%!6Y3=!m1KWnGiFenGiIfnc/OfkPp&~>
+p]'CVe,TCImJm.cmJd5p!-J,<!d"ELnc/Leo)Aa5?iC$*b45N1!9jH5~>
+p]'CVe,TCImJm.cmJd5p!-J,<!d"ELnc/Leo)Aa5?iC$*b45N1!9jH5~>
+p]'CVe,TCImJm.cmJd5p!-J,<!d"ELnc/Leo)Aa5?iC$*b45N1!9jH5~>
+p](3mmJm.ce,TCImJm.cmJd:2!!(.>rr^@C!6Xj3r;cHh!W-=&!!-O*oDe^gl2Q8~>
+p](3mmJm.ce,TCImJm.cmJd:2!!(.>rr^@C!6Xj3r;cHh!W-=&!!-O*oDe^gl2Q8~>
+p](3mmJm.ce,TCImJm.cmJd:2!!(.>rr^@C!6Xj3r;cHh!W-=&!!-O*oDe^gl2Q8~>
+p](3mmJm.ce,TCImJm.cm/IB#!!%,`b&dU`@IaBr!:p-r@/p:Lb0"f+!+GHur;c*^J,~>
+p](3mmJm.ce,TCImJm.cm/IB#!!%,`b&dU`@IaBr!:p-r@/p:Lb0"f+!+GHur;c*^J,~>
+p](3mmJm.ce,TCImJm.cm/IB#!!%,`b&dU`@IaBr!:p-r@/p:Lb0"f+!+GHur;c*^J,~>
+p](3mmJm.ce,TCImJm.cm/I+`@J^$*@Jg$'k5bJ\"3LTDao25AaT)=`o)JXglMlA~>
+p](3mmJm.ce,TCImJm.cm/I+`@J^$*@Jg$'k5bJ\"3LTDao25AaT)=`o)JXglMlA~>
+p](3mmJm.ce,TCImJm.cm/I+`@J^$*@Jg$'k5bJ\"3LTDao25AaT)=`o)JXglMlA~>
+p](3mmJm.ce,TCIr;R&OJO(%S$SH\jqu?WqlMh%1?PF2]b5;5%!<)p!?N>3FrrR9B?iC#f!;6AB~>
+p](3mmJm.ce,TCIr;R&OJO(%S$SH\jqu?WqlMh%1?PF2]b5;5%!<)p!?N>3FrrR9B?iC#f!;6AB~>
+p](3mmJm.ce,TCIr;R&OJO(%S$SH\jqu?WqlMh%1?PF2]b5;5%!<)p!?N>3FrrR9B?iC#f!;6AB~>
+p](3mr;R&IF#+:.$n#;pqu?Wqe,TCIr;ZQm!?0bks8E#Ts5sC\rrNl7b5;2?aoE.Ss5sCTs*t~>
+p](3mr;R&IF#+:.$n#;pqu?Wqe,TCIr;ZQm!?0bks8E#Ts5sC\rrNl7b5;2?aoE.Ss5sCTs*t~>
+p](3mr;R&IF#+:.$n#;pqu?Wqe,TCIr;ZQm!?0bks8E#Ts5sC\rrNl7b5;2?aoE.Ss5sCTs*t~>
+p](3mr;ZNl!07!WrW(FIrW)lr#lkj'iqgeO!!#gms8E#Ts8E#cs8E#srrNl7b5;2?aoE.Ss5sCT
+s*t~>
+p](3mr;ZNl!07!WrW(FIrW)lr#lkj'iqgeO!!#gms8E#Ts8E#cs8E#srrNl7b5;2?aoE.Ss5sCT
+s*t~>
+p](3mr;ZNl!07!WrW(FIrW)lr#lkj'iqgeO!!#gms8E#Ts8E#cs8E#srrNl7b5;2?aoE.Ss5sCT
+s*t~>
+p](3mr;R'[OO<atfjb!^(&\+2!7UuI!;uit@.O9r"4[AO%fHA+!8dbT!:Bgc!<)p!?N>3FrrR9B
+?iC$(!:Bgc!;6AB~>
+p](3mr;R'[OO<atfjb!^(&\+2!7UuI!;uit@.O9r"4[AO%fHA+!8dbT!:Bgc!<)p!?N>3FrrR9B
+?iC$(!:Bgc!;6AB~>
+p](3mr;R'[OO<atfjb!^(&\+2!7UuI!;uit@.O9r"4[AO%fHA+!8dbT!:Bgc!<)p!?N>3FrrR9B
+?iC$(!:Bgc!;6AB~>
+p](3mpAY6e!!!K+s8E#Is8E#lrr_rp!"&T'rW(gTrW)?crW)os"3LTDao25AaT)=`rVuismJm.c
+p&BO~>
+p](3mpAY6e!!!K+s8E#Is8E#lrr_rp!"&T'rW(gTrW)?crW)os"3LTDao25AaT)=`rVuismJm.c
+p&BO~>
+p](3mpAY6e!!!K+s8E#Is8E#lrr_rp!"&T'rW(gTrW)?crW)os"3LTDao25AaT)=`rVuismJm.c
+p&BO~>
+p](3mq#:Nmeme[[DZ'P6!7UuI!;?EpWW3#Lr;Z`rhZ*QTmJm.cr;R(3!!%,`b&dU`@Jp0)!:Bgc
+!;6AB~>
+p](3mq#:Nmeme[[DZ'P6!7UuI!;?EpWW3#Lr;Z`rhZ*QTmJm.cr;R(3!!%,`b&dU`@Jp0)!:Bgc
+!;6AB~>
+p](3mq#:Nmeme[[DZ'P6!7UuI!;?EpWW3#Lr;Z`rhZ*QTmJm.cr;R(3!!%,`b&dU`@Jp0)!:Bgc
+!;6AB~>
+p](3mqZ$Hn!XXqdr;Z`re,TCIp\tBI('">Qr;Z`rhZ*QTq>UKH$2sr$s8E#rrrN"*qZ$Y*qu$Kn
+!:Bgc!;6AB~>
+p](3mqZ$Hn!XXqdr;Z`re,TCIp\tBI('">Qr;Z`rhZ*QTq>UKH$2sr$s8E#rrrN"*qZ$Y*qu$Kn
+!:Bgc!;6AB~>
+p](3mqZ$Hn!XXqdr;Z`re,TCIp\tBI('">Qr;Z`rhZ*QTq>UKH$2sr$s8E#rrrN"*qZ$Y*qu$Kn
+!:Bgc!;6AB~>
+p](3mqZ$Em!?g.ps8E#Is8E#nrroD5!!!\pr;Z`rhZ*QTqYpTk0DtnIs8E#prrpPP'GOosqZ$Np
+q>UKH$2sr$s8E#ks*t~>
+p](3mqZ$Em!?g.ps8E#Is8E#nrroD5!!!\pr;Z`rhZ*QTqYpTk0DtnIs8E#prrpPP'GOosqZ$Np
+q>UKH$2sr$s8E#ks*t~>
+p](3mqZ$Em!?g.ps8E#Is8E#nrroD5!!!\pr;Z`rhZ*QTqYpTk0DtnIs8E#prrpPP'GOosqZ$Np
+q>UKH$2sr$s8E#ks*t~>
+p](3mq#:Ng^c;Ap9)S_g!7UuI!;c]rpLjI*!=?U>s8E#Ts8E#prrR->-2mo@s8E#cs8E#prrMmJ
+r;c]orW)WkJ,~>
+p](3mq#:Ng^c;Ap9)S_g!7UuI!;c]rpLjI*!=?U>s8E#Ts8E#prrR->-2mo@s8E#cs8E#prrMmJ
+r;c]orW)WkJ,~>
+p](3mq#:Ng^c;Ap9)S_g!7UuI!;c]rpLjI*!=?U>s8E#Ts8E#prrR->-2mo@s8E#cs8E#prrMmJ
+r;c]orW)WkJ,~>
+p](3mpAY6V!!!E)s8E#Is8E#qrrL_(rVusDbkhA=!8dbT!;lcu\,ccWrW)fprW)?crW)fp!cS,c
+rW)fprW)WkJ,~>
+p](3mpAY6V!!!E)s8E#Is8E#qrrL_(rVusDbkhA=!8dbT!;lcu\,ccWrW)fprW)?crW)fp!cS,c
+rW)fprW)WkJ,~>
+p](3mpAY6V!!!E)s8E#Is8E#qrrL_(rVusDbkhA=!8dbT!;lcu\,ccWrW)fprW)?crW)fp!cS,c
+rW)fprW)WkJ,~>
+p](3mpAY6Y!!!H*s8E#Is8E#rrrJf$rVut"nbN4a!8dbT!;uj"kna>Vs8E#ps8E#cs8E#qrr]b3
+"jHrGqZ$Npp&BO~>
+p](3mpAY6Y!!!H*s8E#Is8E#rrrJf$rVut"nbN4a!8dbT!;uj"kna>Vs8E#ps8E#cs8E#qrr]b3
+"jHrGqZ$Npp&BO~>
+p](3mpAY6Y!!!H*s8E#Is8E#rrrJf$rVut"nbN4a!8dbT!;uj"kna>Vs8E#ps8E#cs8E#qrr]b3
+"jHrGqZ$Npp&BO~>
+p](3mr;R'\Q.G^*bWu4/:&P%j!7UuI!;ulk!;ulr!8dbT!;uj"8cV3Vs8E#ps8E#cs8E#rrrhR&
+!/^aT!;c`p!;6AB~>
+p](3mr;R'\Q.G^*bWu4/:&P%j!7UuI!;ulk!;ulr!8dbT!;uj"8cV3Vs8E#ps8E#cs8E#rrrhR&
+!/^aT!;c`p!;6AB~>
+p](3mr;R'\Q.G^*bWu4/:&P%j!7UuI!;ulk!;ulr!8dbT!;uj"8cV3Vs8E#ps8E#cs8E#rrrhR&
+!/^aT!;c`p!;6AB~>
+p](3mr;ZQm!?Ktns8E#Is8E#rs7ZNks8E#Ts8E#srrnMb'BT8orW)fprW)?crW)lr"A/Y\rVuis
+qZ$Npp&BO~>
+p](3mr;ZQm!?Ktns8E#Is8E#rs7ZNks8E#Ts8E#srrnMb'BT8orW)fprW)?crW)lr"A/Y\rVuis
+qZ$Npp&BO~>
+p](3mr;ZQm!?Ktns8E#Is8E#rs7ZNks8E#Ts8E#srrnMb'BT8orW)fprW)?crW)lr"A/Y\rVuis
+qZ$Npp&BO~>
+p](3mr;R&EC+0Dk'Kq6@qu?Wqe,TCImJm.chZ*QTrVlp)!3cD%rW)fprW)?crW)os"d&cujo>A[
+!;c`p!;6AB~>
+p](3mr;R&EC+0Dk'Kq6@qu?Wqe,TCImJm.chZ*QTrVlp)!3cD%rW)fprW)?crW)os"d&cujo>A[
+!;c`p!;6AB~>
+p](3mr;R&EC+0Dk'Kq6@qu?Wqe,TCImJm.chZ*QTrVlp)!3cD%rW)fprW)?crW)os"d&cujo>A[
+!;c`p!;6AB~>
+p](3mmJm.ce,TCImJm.chZ*QTrVuQkr;Z`rmJm.crVlp)!3cD%rW)fprW)WkJ,~>
+p](3mmJm.ce,TCImJm.chZ*QTrVuQkr;Z`rmJm.crVlp)!3cD%rW)fprW)WkJ,~>
+p](3mmJm.ce,TCImJm.chZ*QTrVuQkr;Z`rmJm.crVlp)!3cD%rW)fprW)WkJ,~>
+p](3mmJm.ce,TCImJm.chZ*QTrVuQkr;Z`rmJm.crVuQkr;Z`rp&BO~>
+p](3mmJm.ce,TCImJm.chZ*QTrVuQkr;Z`rmJm.crVuQkr;Z`rp&BO~>
+p](3mmJm.ce,TCImJm.chZ*QTrVuQkr;Z`rmJm.crVuQkr;Z`rp&BO~>
+p](3mmJm.ce,SS2hZ*QTp](3mqZ$NpmJm.crVuQkr;Z`rp&BO~>
+p](3mmJm.ce,SS2hZ*QTp](3mqZ$NpmJm.crVuQkr;Z`rp&BO~>
+p](3mmJm.ce,SS2hZ*QTp](3mqZ$NpmJm.crVuQkr;Z`rp&BO~>
+p]'CVe,SS2hZ*QTp](3mqZ$NpmJm.cp](3mqZ$Npp&BO~>
+p]'CVe,SS2hZ*QTp](3mqZ$NpmJm.cp](3mqZ$Npp&BO~>
+p]'CVe,SS2hZ*QTp](3mqZ$NpmJm.cp](3mqZ$Npp&BO~>
+p]'@UeGnY2huEZUp](3mqZ$NpmJm.cp](3mqZ$Npp&BO~>
+p]'@UeGnY2huEZUp](3mqZ$NpmJm.cp](3mqZ$Npp&BO~>
+p]'@UeGnY2huEZUp](3mqZ$NpmJm.cp](3mqZ$Npp&BO~>
+p]'=Tf)P^Lli6qahuEZUmJm.cmJm.cp](3mqZ$Npp&BO~>
+p]'=Tf)P^Lli6qahuEZUmJm.cmJm.cp](3mqZ$Npp&BO~>
+p]'=Tf)P^Lli6qahuEZUmJm.cmJm.cp](3mqZ$Npp&BO~>
+q#C<nli6k_fDkgMlMph`i;`cVmJm.cmJm.cmJm.cp&BO~>
+q#C<nli6k_fDkgMlMph`i;`cVmJm.cmJm.cmJm.cp&BO~>
+q#C<nli6k_fDkgMlMph`i;`cVmJm.cmJm.cmJm.cp&BO~>
+q#C<nlMpb^g&M$Ol2U__i;`cVmJm.cmJm.cmJm.cp&BO~>
+q#C<nlMpb^g&M$Ol2U__i;`cVmJm.cmJm.cmJm.cp&BO~>
+q#C<nlMpb^g&M$Ol2U__i;`cVmJm.cmJm.cmJm.cp&BO~>
+q#C<nl2UY]gAh-Pkl:V^iW&'@mJm.cmJm.cp&BO~>
+q#C<nl2UY]gAh-Pkl:V^iW&'@mJm.cmJm.cp&BO~>
+q#C<nl2UY]gAh-Pkl:V^iW&'@mJm.cmJm.cp&BO~>
+q>^EokPtG[h#I?RkPtM]iW&'@mJl>Lp&BO~>
+q>^EokPtG[h#I?RkPtM]iW&'@mJl>Lp&BO~>
+q>^EokPtG[h#I?RkPtM]iW&'@mJl>Lp&BO~>
+q>^Eok5Y>Zh>dHSk5YD\j8\6AmJl>Lp&BO~>
+q>^Eok5Y>Zh>dHSk5YD\j8\6AmJl>Lp&BO~>
+q>^Eok5Y>Zh>dHSk5YD\j8\6AmJl>Lp&BO~>
+qZ$NpjT#,XhuEZUjo>;[j8])Ym/R%bmJl;KpA]X~>
+qZ$NpjT#,XhuEZUjo>;[j8])Ym/R%bmJl;KpA]X~>
+qZ$NpjT#,XhuEZUjo>;[j8])Ym/R%bmJl;KpA]X~>
+qZ$Npj8\uViW&lWjT#2Zjo>;[lMph`mf37dm/R%bpA]X~>
+qZ$Npj8\uViW&lWjT#2Zjo>;[lMph`mf37dm/R%bpA]X~>
+qZ$Npj8\uViW&lWjT#2Zjo>;[lMph`mf37dm/R%bpA]X~>
+qZ$NpirAlUj8])Yj8])Yjo>;[lMph`n,N@elMph`p]#a~>
+qZ$NpirAlUj8])Yj8])Yjo>;[lMph`n,N@elMph`p]#a~>
+qZ$NpirAlUj8])Yj8])Yjo>;[lMph`n,N@elMph`p]#a~>
+qu?Wqi;`ZSjo5>'rVut+b3&^-b$P,_?cqU4rW)3_rW)EerW)6`rW)]mJ,~>
+qu?Wqi;`ZSjo5>'rVut+b3&^-b$P,_?cqU4rW)3_rW)EerW)6`rW)]mJ,~>
+qu?Wqi;`ZSjo5>'rVut+b3&^-b$P,_?cqU4rW)3_rW)EerW)6`rW)]mJ,~>
+qu?WqhZ*KRkl1\\@J^$*@Jf?i!W-=&!!-O*li6qakl:V^n,N@el2U__q#>j~>
+qu?WqhZ*KRkl1\\@J^$*@Jf?i!W-=&!!-O*li6qakl:V^n,N@el2U__q#>j~>
+qu?WqhZ*KRkl1\\@J^$*@Jf?i!W-=&!!-O*li6qakl:V^n,N@el2U__q#>j~>
+r;QrC?N:dIb2<6s!9sLi@/p:Lb0"f+!+G0m$"3f6FNVaJ!!$Hns8E#]s8E#fs8E#_s8E#ns*t~>
+r;QrC?N:dIb2<6s!9sLi@/p:Lb0"f+!+G0m$"3f6FNVaJ!!$Hns8E#]s8E#fs8E#_s8E#ns*t~>
+r;QrC?N:dIb2<6s!9sLi@/p:Lb0"f+!+G0m$"3f6FNVaJ!!$Hns8E#]s8E#fs8E#_s8E#ns*t~>
+rr3#r@J^$*@Jf!_quH'_"3LTDao25AaT)=`m/I11!!(.>rr^@C!6X^/rW)*\rW)KgrW)-]rW)co
+J,~>
+rr3#r@J^$*@Jf!_quH'_"3LTDao25AaT)=`m/I11!!(.>rr^@C!6X^/rW)*\rW)KgrW)-]rW)co
+J,~>
+rr3#r@J^$*@Jf!_quH'_"3LTDao25AaT)=`m/I11!!(.>rr^@C!6X^/rW)*\rW)KgrW)-]rW)co
+J,~>
+rr3:5!!%,`b&dU`@Gh+_!:9^e?N>3FrrR9B?gRdo?N>3FrrR9B?gn!ub$Ph_?cqR3rW)KgrW)-]
+rW)coJ,~>
+rr3:5!!%,`b&dU`@Gh+_!:9^e?N>3FrrR9B?gRdo?N>3FrrR9B?gn!ub$Ph_?cqR3rW)KgrW)-]
+rW)coJ,~>
+rr3:5!!%,`b&dU`@Gh+_!:9^e?N>3FrrR9B?gRdo?N>3FrrR9B?gn!ub$Ph_?cqR3rW)KgrW)-]
+rW)coJ,~>
+s8N2D!!(.>rr^@C!6X4!quH-a!YbXWqu6`?!#4f"!YbXWqu6`?!#4u'!W-=&!!-O*li..2?PEKI
+b4P];b$Ph_?cqR3rW)fpJ,~>
+s8N2D!!(.>rr^@C!6X4!quH-a!YbXWqu6`?!#4f"!YbXWqu6`?!#4u'!W-=&!!-O*li..2?PEKI
+b4P];b$Ph_?cqR3rW)fpJ,~>
+s8N2D!!(.>rr^@C!6X4!quH-a!YbXWqu6`?!#4f"!YbXWqu6`?!#4u'!W-=&!!-O*li..2?PEKI
+b4P];b$Ph_?cqR3rW)fpJ,~>
+s8N.-!-J,<!d"ELhZ*KRmf*>&!6Y3=!m1KWm/I,$!6Y3=!m1KWnc&o(!!%,`b&dU`@I='qqdK@%
+!Fbm#rrN"*qZ$Y*qs47cb$Ph_?cr9GJ,~>
+s8N.-!-J,<!d"ELhZ*KRmf*>&!6Y3=!m1KWm/I,$!6Y3=!m1KWnc&o(!!%,`b&dU`@I='qqdK@%
+!Fbm#rrN"*qZ$Y*qs47cb$Ph_?cr9GJ,~>
+s8N.-!-J,<!d"ELhZ*KRmf*>&!6Y3=!m1KWm/I,$!6Y3=!m1KWnc&o(!!%,`b&dU`@I='qqdK@%
+!Fbm#rrN"*qZ$Y*qs47cb$Ph_?cr9GJ,~>
+s8N-7!6Y3=!m1KWkl9fGq>UM'!-J,<!d"ELm/I,o!-J,<!d"ELo)Ag7!!(.>rr^@C!6Xa0$"3f6
+FNVaJ!!$I&rs<*6!-HB+F8u;LmJd4a@J^$*@Jg$'J,~>
+s8N-7!6Y3=!m1KWkl9fGq>UM'!-J,<!d"ELm/I,o!-J,<!d"ELo)Ag7!!(.>rr^@C!6Xa0$"3f6
+FNVaJ!!$I&rs<*6!-HB+F8u;LmJd4a@J^$*@Jg$'J,~>
+s8N-7!6Y3=!m1KWkl9fGq>UM'!-J,<!d"ELm/I,o!-J,<!d"ELo)Ag7!!(.>rr^@C!6Xa0$"3f6
+FNVaJ!!$I&rs<*6!-HB+F8u;LmJd4a@J^$*@Jg$'J,~>
+s8N-7!6Y3=!m1KWkl9fGq>UQ>!!(.>rr^@C!6X[."3LTDao25AaT)=`o)Abu!-J,<!d"ELn,EL4
+!!(.>rr^@C!6Y0<"3LTDao25AaT)=`mf*T%!!%,`b&dU`@K$4V~>
+s8N-7!6Y3=!m1KWkl9fGq>UQ>!!(.>rr^@C!6X[."3LTDao25AaT)=`o)Abu!-J,<!d"ELn,EL4
+!!(.>rr^@C!6Y0<"3LTDao25AaT)=`mf*T%!!%,`b&dU`@K$4V~>
+s8N-7!6Y3=!m1KWkl9fGq>UQ>!!(.>rr^@C!6X[."3LTDao25AaT)=`o)Abu!-J,<!d"ELn,EL4
+!!(.>rr^@C!6Y0<"3LTDao25AaT)=`mf*T%!!%,`b&dU`@K$4V~>
+s8N.-!-J,<!d"ELkl9fGq#:Y/!!%,`b&dU`@I!k!@/p:Lb0"f+!+GEt!YbXWqu6`?!#4o%!abqL
+qu6_>!+5U&!abqLqu6_>!+53p"3LTDao25AaT)=`rr7K~>
+s8N.-!-J,<!d"ELkl9fGq#:Y/!!%,`b&dU`@I!k!@/p:Lb0"f+!+GEt!YbXWqu6`?!#4o%!abqL
+qu6_>!+5U&!abqLqu6_>!+53p"3LTDao25AaT)=`rr7K~>
+s8N.-!-J,<!d"ELkl9fGq#:Y/!!%,`b&dU`@I!k!@/p:Lb0"f+!+GEt!YbXWqu6`?!#4o%!abqL
+qu6_>!+5U&!abqLqu6_>!+53p"3LTDao25AaT)=`rr7K~>
+s8N2D!!(.>rr^@C!6XO*rW)?crW)`n!W-=&!!-O*lMgn^@J^$*@JfTp!YbXWqu6`?!#4o%!YbXW
+qu6`?!#5;0!YbXWqu6`?!#4o%!abqLqu6_>!+5a*J,~>
+s8N2D!!(.>rr^@C!6XO*rW)?crW)`n!W-=&!!-O*lMgn^@J^$*@JfTp!YbXWqu6`?!#4o%!YbXW
+qu6`?!#5;0!YbXWqu6`?!#4o%!abqLqu6_>!+5a*J,~>
+s8N2D!!(.>rr^@C!6XO*rW)?crW)`n!W-=&!!-O*lMgn^@J^$*@JfTp!YbXWqu6`?!#4o%!YbXW
+qu6`?!#5;0!YbXWqu6`?!#4o%!abqLqu6_>!+5a*J,~>
+rr3:5!!%,`b&dU`@H[[i!:Bgc!;?Erb$Phs?cqO2"j10d'OT#OrrQO-FSl(>F9#\:rrNl7b5;2?
+aoE.PrrNl7b5;2?aoE.ErrNl7b5;2?aoE.Ts*t~>
+rr3:5!!%,`b&dU`@H[[i!:Bgc!;?Erb$Phs?cqO2"j10d'OT#OrrQO-FSl(>F9#\:rrNl7b5;2?
+aoE.PrrNl7b5;2?aoE.ErrNl7b5;2?aoE.Ts*t~>
+rr3:5!!%,`b&dU`@H[[i!:Bgc!;?Erb$Phs?cqO2"j10d'OT#OrrQO-FSl(>F9#\:rrNl7b5;2?
+aoE.PrrNl7b5;2?aoE.ErrNl7b5;2?aoE.Ts*t~>
+rr3#r@J^$*@Jf6frW)?crW'Y3"3LTDao25AaT)=`n,EGr!-J,<!d"ELqYpV(!-J,<!d"ELn,EG'
+!6Y3=!m1KWrr7K~>
+rr3#r@J^$*@Jf6frW)?crW'Y3"3LTDao25AaT)=`n,EGr!-J,<!d"ELqYpV(!-J,<!d"ELn,EG'
+!6Y3=!m1KWrr7K~>
+rr3#r@J^$*@Jf6frW)?crW'Y3"3LTDao25AaT)=`n,EGr!-J,<!d"ELqYpV(!-J,<!d"ELn,EG'
+!6Y3=!m1KWrr7K~>
+r;QrC?PF2]b2r[&!:Bgc!5/=<@/p:Lb0"f+!+G<q"3LTDao25AaT)=`qYpZ?!!(.>rr^@C!6Xd1
+!abqLqu6_>!+5a*J,~>
+r;QrC?PF2]b2r[&!:Bgc!5/=<@/p:Lb0"f+!+G<q"3LTDao25AaT)=`qYpZ?!!(.>rr^@C!6Xd1
+!abqLqu6_>!+5a*J,~>
+r;QrC?PF2]b2r[&!:Bgc!5/=<@/p:Lb0"f+!+G<q"3LTDao25AaT)=`qYpZ?!!(.>rr^@C!6Xd1
+!abqLqu6_>!+5a*J,~>
+gAh-Pqu?Hlqu?Wq]`/$0@J^$*@JfHl$"3f6FNVaJ!!$I&rs<*6!-HB+F8u;Lmf*C3!!(.>rr^@C
+!6Y<@J,~>
+gAh-Pqu?Hlqu?Wq]`/$0@J^$*@JfHl$"3f6FNVaJ!!$I&rs<*6!-HB+F8u;Lmf*C3!!(.>rr^@C
+!6Y<@J,~>
+gAh-Pqu?Hlqu?Wq]`/$0@J^$*@JfHl$"3f6FNVaJ!!$I&rs<*6!-HB+F8u;Lmf*C3!!(.>rr^@C
+!6Y<@J,~>
+gAh-Pqu?Hlqu?Wq])MrV?PF2]b3T'.qdK@%!Fbm#rrN"*qZ$Y*qsFCi@/p:Lb0"f+!+Gj+J,~>
+gAh-Pqu?Hlqu?Wq])MrV?PF2]b3T'.qdK@%!Fbm#rrN"*qZ$Y*qsFCi@/p:Lb0"f+!+Gj+J,~>
+gAh-Pqu?Hlqu?Wq])MrV?PF2]b3T'.qdK@%!Fbm#rrN"*qZ$Y*qsFCi@/p:Lb0"f+!+Gj+J,~>
+gAh-Pqu?WqpAb*lSGrc8?PF2]b4P];b$Phs?cq^7!W-=&!!-O*rVqB~>
+gAh-Pqu?WqpAb*lSGrc8?PF2]b4P];b$Phs?cq^7!W-=&!!-O*rVqB~>
+gAh-Pqu?WqpAb*lSGrc8?PF2]b4P];b$Phs?cq^7!W-=&!!-O*rVqB~>
+gAh-Pqu?WqpAb*lJcG'9"j10d'OT#[s*t~>
+gAh-Pqu?WqpAb*lJcG'9"j10d'OT#[s*t~>
+gAh-Pqu?WqpAb*lJcG'9"j10d'OT#[s*t~>
+gAh-Pqu?Wq";q=]A)mIdrW%NLhuA3~>
+gAh-Pqu?Wq";q=]A)mIdrW%NLhuA3~>
+gAh-Pqu?Wq";q=]A)mIdrW%NLhuA3~>
+gAh-Pqu?Km!>jbns8E"Ls53j,~>
+gAh-Pqu?Km!>jbns8E"Ls53j,~>
+gAh-Pqu?Km!>jbns8E"Ls53j,~>
+gAh-Pqu6pbV<@]r.KBHVr;Z`rJcFX-J,~>
+gAh-Pqu6pbV<@]r.KBHVr;Z`rJcFX-J,~>
+gAh-Pqu6pbV<@]r.KBHVr;Z`rJcFX-J,~>
+gAh-PpAY6>!!!r8s8E"Ls53j,~>
+gAh-PpAY6>!!!r8s8E"Ls53j,~>
+gAh-PpAY6>!!!r8s8E"Ls53j,~>
+gAh-PpAY6k!!!3#s8E"Ls53j,~>
+gAh-PpAY6k!!!3#s8E"Ls53j,~>
+gAh-PpAY6k!!!3#s8E"Ls53j,~>
+gAh-PpAY6:!!")<s8E"Ls53j,~>
+gAh-PpAY6:!!")<s8E"Ls53j,~>
+gAh-PpAY6:!!")<s8E"Ls53j,~>
+gAh-Pr;R'XN6_(j^*NaZFo;:=!.k1-s*t~>
+gAh-Pr;R'XN6_(j^*NaZFo;:=!.k1-s*t~>
+gAh-Pr;R'XN6_(j^*NaZFo;:=!.k1-s*t~>
+gAh-Pr;ZQm!BTiMs8E"Ls53j,~>
+gAh-Pr;ZQm!BTiMs8E"Ls53j,~>
+gAh-Pr;ZQm!BTiMs8E"Ls53j,~>
+gAh-Pr;R&GD_MV&&O)NXqu?WqJcFX-J,~>
+gAh-Pr;R&GD_MV&&O)NXqu?WqJcFX-J,~>
+gAh-Pr;R&GD_MV&&O)NXqu?WqJcFX-J,~>
+gAh-PmJm.cJcFX-J,~>
+gAh-PmJm.cJcFX-J,~>
+gAh-PmJm.cJcFX-J,~>
+gAh-PmJm.cJcFX-J,~>
+gAh-PmJm.cJcFX-J,~>
+gAh-PmJm.cJcFX-J,~>
+gAh-PmJm.cJcFX-J,~>
+gAh-PmJm.cJcFX-J,~>
+gAh-PmJm.cJcFX-J,~>
+gAg=9JcFX-J,~>
+gAg=9JcFX-J,~>
+gAg=9JcFX-J,~>
+gAg=9JcFX-J,~>
+gAg=9JcFX-J,~>
+gAg=9JcFX-J,~>
+g]-@8JcF[.J,~>
+g]-@8JcF[.J,~>
+g]-@8JcF[.J,~>
+g].6Qli6qaJcF[.J,~>
+g].6Qli6qaJcF[.J,~>
+g].6Qli6qaJcF[.J,~>
+h#I?Rl2U__JcF^/J,~>
+h#I?Rl2U__JcF^/J,~>
+h#I?Rl2U__JcF^/J,~>
+h#I?Rl2U__JcF^/J,~>
+h#I?Rl2U__JcF^/J,~>
+h#I?Rl2U__JcF^/J,~>
+h>dHSkPtM]JcFa0J,~>
+h>dHSkPtM]JcFa0J,~>
+h>dHSkPtM]JcFa0J,~>
+h>dHSk5YD\JcFd1J,~>
+h>dHSk5YD\JcFd1J,~>
+h>dHSk5YD\JcFd1J,~>
+hZ*QTjo>;[JcFd1J,~>
+hZ*QTjo>;[JcFd1J,~>
+hZ*QTjo>;[JcFd1J,~>
+hZ*QTjT#2ZJcFg2J,~>
+hZ*QTjT#2ZJcFg2J,~>
+hZ*QTjT#2ZJcFg2J,~>
+huEZUj8])YJcFg2J,~>
+huEZUj8])YJcFg2J,~>
+huEZUj8])YJcFg2J,~>
+iVs)(?PEKIb2iR&b5MAA?cms"kPp&~>
+iVs)(?PEKIb2iR&b5MAA?cms"kPp&~>
+iVs)(?PEKIb2iR&b5MAA?cms"kPp&~>
+j8T/W@J^$*@Jf9g!W-=&!!-O*JcG!7J,~>
+j8T/W@J^$*@Jf9g!W-=&!!-O*JcG!7J,~>
+j8T/W@J^$*@Jf9g!W-=&!!-O*JcG!7J,~>
+j8TEo!!%,`b&dU`@Hd^t@/p:Lb0"f+!+CHYl2Q8~>
+j8TEo!!%,`b&dU`@Hd^t@/p:Lb0"f+!+CHYl2Q8~>
+j8TEo!!%,`b&dU`@Hd^t@/p:Lb0"f+!+CHYl2Q8~>
+jSo>)!!(.>rr^@C!6XU,"3LTDao25AaT)=`JcG$8J,~>
+jSo>)!!(.>rr^@C!6XU,"3LTDao25AaT)=`JcG$8J,~>
+jSo>)!!(.>rr^@C!6XU,"3LTDao25AaT)=`JcG$8J,~>
+jSo9g!-J,<!d"ELlMgom!-J,<!d"ELJcG$8J,~>
+jSo9g!-J,<!d"ELlMgom!-J,<!d"ELJcG$8J,~>
+jSo9g!-J,<!d"ELlMgom!-J,<!d"ELJcG$8J,~>
+jSo8q!6Y3=!m1KWlMgo"!6Y3=!m1KWJcG$8J,~>
+jSo8q!6Y3=!m1KWlMgo"!6Y3=!m1KWJcG$8J,~>
+jSo8q!6Y3=!m1KWlMgo"!6Y3=!m1KWJcG$8J,~>
+jSo8q!6Y3=!m1KWlMgo"!6Y3=!m1KWJcG$8J,~>
+jSo8q!6Y3=!m1KWlMgo"!6Y3=!m1KWJcG$8J,~>
+jSo8q!6Y3=!m1KWlMgo"!6Y3=!m1KWJcG$8J,~>
+jSo9g!-J,<!d"ELlMgom!-J,<!d"ELJcG$8J,~>
+jSo9g!-J,<!d"ELlMgom!-J,<!d"ELJcG$8J,~>
+jSo9g!-J,<!d"ELlMgom!-J,<!d"ELJcG$8J,~>
+jSo>)!!(.>rr^@C!6XU,"3LTDao25AaT)=`JcG$8J,~>
+jSo>)!!(.>rr^@C!6XU,"3LTDao25AaT)=`JcG$8J,~>
+jSo>)!!(.>rr^@C!6XU,"3LTDao25AaT)=`JcG$8J,~>
+j8TEo!!%,`b&dU`@Hd^t@/p:Lb0"f+!+CHYl2Q8~>
+j8TEo!!%,`b&dU`@Hd^t@/p:Lb0"f+!+CHYl2Q8~>
+j8TEo!!%,`b&dU`@Hd^t@/p:Lb0"f+!+CHYl2Q8~>
+j8T/W@J^$*@Jf9g!W-=&!!-O*JcG!7J,~>
+j8T/W@J^$*@Jf9g!W-=&!!-O*JcG!7J,~>
+j8T/W@J^$*@Jf9g!W-=&!!-O*JcG!7J,~>
+iVs)(?PF2]b2iR+b$Phs?cms"kPp&~>
+iVs)(?PF2]b2iR+b$Phs?cms"kPp&~>
+iVs)(?PF2]b2iR+b$Phs?cms"kPp&~>
+JcD>AJ,~>
+JcD>AJ,~>
+JcD>AJ,~>
+%%EndData
+showpage
+%%Trailer
+end
+%%EOF
diff --git a/9-suffix/Makefile b/9-suffix/Makefile
new file mode 100644 (file)
index 0000000..73d0a9b
--- /dev/null
@@ -0,0 +1,3 @@
+P=9-suffix
+
+include ../Makerules
diff --git a/9-suffix/ST-BARBARA.eps b/9-suffix/ST-BARBARA.eps
new file mode 100644 (file)
index 0000000..fb200d5
--- /dev/null
@@ -0,0 +1,404 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: GIMP PostScript file plugin V 1.17 by Peter Kirchgessner
+%%Title: ST.eps
+%%CreationDate: Fri Jun  9 21:22:13 2006
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 2
+%%Pages: 1
+%%BoundingBox: 14 14 200 137
+%%EndComments
+%%BeginProlog
+% Use own dictionary to avoid conflicts
+10 dict begin
+%%EndProlog
+%%Page: 1 1
+% Translate for offset
+14.173228346456687 14.173228346456687 translate
+% Translate to begin of first scanline
+0 121.99273036816345 translate
+184.98897637795278 -121.99273036816345 scale
+% Image geometry
+185 122 8
+% Transformation matrix
+[ 185 0 0 122 0 0 ]
+% Strings to hold RGB-samples per scanline
+/rstr 185 string def
+/gstr 185 string def
+/bstr 185 string def
+{currentfile /ASCII85Decode filter /RunLengthDecode filter rstr readstring pop}
+{currentfile /ASCII85Decode filter /RunLengthDecode filter gstr readstring pop}
+{currentfile /ASCII85Decode filter /RunLengthDecode filter bstr readstring pop}
+true 3
+%%BeginData:        15749 ASCII Bytes
+colorimage
+JcEgkJ,~>
+JcEgkJ,~>
+JcEgkJ,~>
+JcEgkJ,~>
+JcEgkJ,~>
+JcEgkJ,~>
+JcEgkJ,~>
+JcEgkJ,~>
+JcEgkJ,~>
+WW*5$[T!eL<4;_'s*t~>
+WW*5$[T!eL<4;_'s*t~>
+WW*5$[T!eL<4;_'s*t~>
+WrE+P')MY0'%j2`J,~>
+WrE+P')MY0'%j2`J,~>
+WrE+P')MY0'%j2`J,~>
+X8`1PpAb3Gp&G!k!X:Et]`3K~>
+X8`1PpAb3Gp&G!k!X:Et]`3K~>
+X8`1PpAb3Gp&G!k!X:Et]`3K~>
+XT&>!'))A,')_J'rr<0$\H!kes*t~>
+XT&>!'))A,')_J'rr<0$\H!kes*t~>
+XT&>!'))A,')_J'rr<0$\H!kes*t~>
+_uBh2!!&\[rrBM#!!'J$s8N'$s7lX#]`3K~>
+_uBh2!!&\[rrBM#!!'J$s8N'$s7lX#]`3K~>
+_uBh2!!&\[rrBM#!!'J$s8N'$s7lX#]`3K~>
+_uBfu!!#%Irr?$k!!$!ls8N'$s0r&(]`3K~>
+_uBfu!!#%Irr?$k!!$!ls8N'$s0r&(]`3K~>
+_uBfu!!#%Irr?$k!!$!ls8N'$s0r&(]`3K~>
+`;^"g!&6#)dI7)8&G6#'&GH/&!!*nj]`3K~>
+`;^"g!&6#)dI7)8&G6#'&GH/&!!*nj]`3K~>
+`;^"g!&6#)dI7)8&G6#'&GH/&!!*nj]`3K~>
+`;^!T(?*gOC@D0&&G6#'&GH/(!!N>R&1@(_s*t~>
+`;^!T(?*gOC@D0&&G6#'&GH/(!!N>R&1@(_s*t~>
+`;^!T(?*gOC@D0&&G6#'&GH/(!!N>R&1@(_s*t~>
+`W#u1%fHA.%eT8j!*&RjpAb-ms8N/#!+!;<J,~>
+`W#u1%fHA.%eT8j!*&RjpAb-ms8N/#!+!;<J,~>
+`W#u1%fHA.%eT8j!*&RjpAb-ms8N/#!+!;<J,~>
+`W$13!'^G_4oh)Ds6K`hs*t~>
+`W$13!'^G_4oh)Ds6K`hs*t~>
+`W$13!'^G_4oh)Ds6K`hs*t~>
+`W$0!!2TYpU]<4Fs5O+Krrq%r(`7>HbQ!(~>
+`W$0!!2TYpU]<4Fs5O+Krrq%r(`7>HbQ!(~>
+`W$0!!2TYpU]<4Fs5O+Krrq%r(`7>HbQ!(~>
+\,Z+$!8.#G!SIGE!;?Enn/D0(!?1IPs*t~>
+\,Z+$!8.#G!SIGE!;?Enn/D0(!?1IPs*t~>
+\,Z+$!8.#G!SIGE!;?Enn/D0(!?1IPs*t~>
+]DqO(r;QfM')MY0'%m*]o)S^g!:]^_!:\;6J,~>
+]DqO(r;QfM')MY0'%m*]o)S^g!:]^_!:\;6J,~>
+]DqO(r;QfM')MY0'%m*]o)S^g!:]^_!:\;6J,~>
+^]3s,p\t9l[f-7.<4;_ts7?9lru1V3!#j/_J,~>
+^]3s,p\t9l[f-7.<4;_ts7?9lru1V3!#j/_J,~>
+^]3s,p\t9l[f-7.<4;_ts7?9lru1V3!#j/_J,~>
+f)Gp+Eu5a8f_#4:!:g*g!:KmQ!!([Ms8E!""tQn1s*t~>
+f)Gp+Eu5a8f_#4:!:g*g!:KmQ!!([Ms8E!""tQn1s*t~>
+f)Gp+Eu5a8f_#4:!:g*g!:KmQ!!([Ms8E!""tQn1s*t~>
+f`)!A)Z'L8)Y!V'o`4CZrW)3_n,NH0rVult"96aK'&!;8~>
+f`)!A)Z'L8)Y!V'o`4CZrW)3_n,NH0rVult"96aK'&!;8~>
+f`)!A)Z'L8)Y!V'o`4CZrW)3_n,NH0rVult"96aK'&!;8~>
+l2L_`o)A^ZpAb9as8V`ll2U__jo=rQ!#Y\7rr<0$df:`Js*t~>
+l2L_`o)A^ZpAb9as8V`ll2U__jo=rQ!#Y\7rr<0$df:`Js*t~>
+l2L_`o)A^ZpAb9as8V`ll2U__jo=rQ!#Y\7rr<0$df:`Js*t~>
+li.!Z)?'X.rr<u(!9O7[!<3#t!!3?TYO;Dj)"dk/)#aL5!!*;8g&HR~>
+li.!Z)?'X.rr<u(!9O7[!<3#t!!3?TYO;Dj)"dk/)#aL5!!*;8g&HR~>
+li.!Z)?'X.rr<u(!9O7[!<3#t!!3?TYO;Dj)"dk/)#aL5!!*;8g&HR~>
+li."rblIA8!8-`?iW&lWrr;uu"96aK'(5c"F7fM5F8c.=!!E8P!$g1sJ,~>
+li."rblIA8!8-`?iW&lWrr;uu"96aK'(5c"F7fM5F8c.=!!E8P!$g1sJ,~>
+li."rblIA8!8-`?iW&lWrr;uu"96aK'(5c"F7fM5F8c.=!!E8P!$g1sJ,~>
+li.),!WYs6p&>#5o)RVHrW)rtrr<0$df:`_rrC^D!<)rt!!E8P!"di`J,~>
+li.),!WYs6p&>#5o)RVHrW)rtrr<0$df:`_rrC^D!<)rt!!E8P!"di`J,~>
+li.),!WYs6p&>#5o)RVHrW)rtrr<0$df:`_rrC^D!<)rt!!E8P!"di`J,~>
+li.+%4TGI'p&>"/o`+t/h#I?Rrr;os!=$.&rr<u0!<3#t!!33IW7h3$~>
+li.+%4TGI'p&>"/o`+t/h#I?Rrr;os!=$.&rr<u0!<3#t!!33IW7h3$~>
+li.+%4TGI'p&>"/o`+t/h#I?Rrr;os!=$.&rr<u0!<3#t!!33IW7h3$~>
+l2Leb_[Q5<!#YA/!#XMkrW)rtrr<0$ec6r^rrDQ_!!)Nf!;HKqT)\kahuA3~>
+l2Leb_[Q5<!#YA/!#XMkrW)rtrr<0$ec6r^rrDQ_!!)Nf!;HKqT)\kahuA3~>
+l2Leb_[Q5<!#YA/!#XMkrW)rtrr<0$ec6r^rrDQ_!!)Nf!;HKqT)\kahuA3~>
+li.(j$31d,pAa^a!-?rqrW)rtrr<0$ec69JrrMU-qZ$^:nGiOf!;QQr2uiq=huA3~>
+li.(j$31d,pAa^a!-?rqrW)rtrr<0$ec69JrrMU-qZ$^:nGiOf!;QQr2uiq=huA3~>
+li.(j$31d,pAa^a!-?rqrW)rtrr<0$ec69JrrMU-qZ$^:nGiOf!;QQr2uiq=huA3~>
+l2L_`pAaX_!8-*,rW)rtrW!!$,cL#.!8.8N!HZoks8E#prrpdM0e<=Pi;\<~>
+l2L_`pAaX_!8-*,rW)rtrW!!$,cL#.!8.8N!HZoks8E#prrpdM0e<=Pi;\<~>
+l2L_`pAaX_!8-*,rW)rtrW!!$,cL#.!8.8N!HZoks8E#prrpdM0e<=Pi;\<~>
+i;`WR!#kS3!#jVlrW(mVrW)corW)iq"_eb2ed?0Ms*t~>
+i;`WR!#kS3!#jVlrW(mVrW)corW)iq"_eb2ed?0Ms*t~>
+i;`WR!#kS3!#jVlrW(mVrW)corW)iq"_eb2ed?0Ms*t~>
+j8\oTs8N)gpAb3_g].6Qi;`cVq#C<nrVloi%fHA.%eS`[J,~>
+j8\oTs8N)gpAb3_g].6Qi;`cVq#C<nrVloi%fHA.%eS`[J,~>
+j8\oTs8N)gpAb3_g].6Qi;`cVq#C<nrVloi%fHA.%eS`[J,~>
+jo>,Vr;Qfe)Z'L8)XuJ\rW)lr".oPnT]uLU!;HNm!<3!'RK,POs#pFPiW"E~>
+jo>,Vr;Qfe)Z'L8)XuJ\rW)lr".oPnT]uLU!;HNm!<3!'RK,POs#pFPiW"E~>
+jo>,Vr;Qfe)Z'L8)XuJ\rW)lr".oPnT]uLU!;HNm!<3!'RK,POs#pFPiW"E~>
+kl:GYp\t9HF8c.>f\$6'!;uj!2uiq=l2U__pAb*ls8N<[!2TYpU]<40s*t~>
+kl:GYp\t9HF8c.>f\$6'!;uj!2uiq=l2U__pAb*ls8N<[!2TYpU]<40s*t~>
+kl:GYp\t9HF8c.>f\$6'!;uj!2uiq=l2U__pAb*ls8N<[!2TYpU]<40s*t~>
+lMp\\o)J[hfDkgMrVm&K!&6#)dH^c2!;uj!T)\karr;rtp](3m!X:Etkl6/~>
+lMp\\o)J[hfDkgMrVm&K!&6#)dH^c2!;uj!T)\karr;rtp](3m!X:Etkl6/~>
+lMp\\o)J[hfDkgMrVm&K!&6#)dH^c2!;uj!T)\karr;rtp](3m!X:Etkl6/~>
+mJlt^nGiIffDkgMrVm%8(?*gOC?kiu!;uj!2uiq=rVuisq#C?o"95n3,O#/X~>
+mJlt^nGiIffDkgMrVm%8(?*gOC?kiu!;uj!2uiq=rVuisq#C?o"95n3,O#/X~>
+mJlt^nGiIffDkgMrVm%8(?*gOC?kiu!;uj!2uiq=rVuisq#C?o"95n3,O#/X~>
+nGi:amJm.cfDkgMrr3#j%fHA.%eT)erW)os"jm<)/-+)rs8E#os8N'$s7lX#kl6/~>
+nGi:amJm.cfDkgMrr3#j%fHA.%eT)erW)os"jm<)/-+)rs8E#os8N'$s7lX#kl6/~>
+nGi:amJm.cfDkgMrr3#j%fHA.%eT)erW)os"jm<)/-+)rs8E#os8N'$s7lX#kl6/~>
+o)JLcli6qarr;rt!X:Eti;`cVrr34l!'^G_4oh)<s8E#srrm*PiRS?Nr;Z`rqZ$Qq"95k2:?__.~>
+o)JLcli6qarr;rt!X:Eti;`cVrr34l!'^G_4oh)<s8E#srrm*PiRS?Nr;Z`rqZ$Qq"95k2:?__.~>
+o)JLcli6qarr;rt!X:Eti;`cVrr34l!'^G_4oh)<s8E#srrm*PiRS?Nr;Z`rqZ$Qq"95k2:?__.~>
+rr;Hfkl:V^rr;uu"95n3,N/V$!<3!'1B=6Ns.fWNli6qarr3#j%fHA.%eT]!rW)iqr;Zj7gZ\Zf~>
+rr;Hfkl:V^rr;uu"95n3,N/V$!<3!'1B=6Ns.fWNli6qarr3#j%fHA.%eT]!rW)iqr;Zj7gZ\Zf~>
+rr;Hfkl:V^rr;uu"95n3,N/V$!<3!'1B=6Ns.fWNli6qarr3#j%fHA.%eT]!rW)iqr;Zj7gZ\Zf~>
+rr;Qijo>;[rr;uu"98/s#iPa^!9!nV!<3!'RK,POs#pFPqu?Wqr;Zcs"TR'b-hHU&J,~>
+rr;Qijo>;[rr;uu"98/s#iPa^!9!nV!<3!'RK,POs#pFPqu?Wqr;Zcs"TR'b-hHU&J,~>
+rr;Qijo>;[rr;uu"98/s#iPa^!9!nV!<3!'RK,POs#pFPqu?Wqr;Zcs"TR'b-hHU&J,~>
+rr;Wkj8])Yrr;uu"95k2:>l0O!9!nV!<3!'1B=6Ns.fWNqZ$NprVults8N/#!+"jhJ,~>
+rr;Wkj8])Yrr;uu"95k2:>l0O!9!nV!<3!'1B=6Ns.fWNqZ$NprVults8N/#!+"jhJ,~>
+rr;Wkj8])Yrr;uu"95k2:>l0O!9!nV!<3!'1B=6Ns.fWNqZ$NprVults8N/#!+"jhJ,~>
+rr;Wkj8])Yrr;os!>jMKs8E#ts8E!""u=*\s8E#ds8E#lrr\kn!2/c[J,~>
+rr;Wkj8])Yrr;os!>jMKs8E#ts8E!""u=*\s8E#ds8E#lrr\kn!2/c[J,~>
+rr;Wkj8])Yrr;os!>jMKs8E#ts8E!""u=*\s8E#ds8E#lrr\kn!2/c[J,~>
+rr;Wkj8])Yrr;uu"TR'b-hH<srW)rtrr<0$\H!l=s8E#cs8E#mrrY4\!'0KIJ,~>
+rr;Wkj8])Yrr;uu"TR'b-hH<srW)rtrr<0$\H!l=s8E#cs8E#mrrY4\!'0KIJ,~>
+rr;Wkj8])Yrr;uu"TR'b-hH<srW)rtrr<0$\H!l=s8E#cs8E#mrrY4\!'0KIJ,~>
+rr;Wkj8])Yrr;uus8N/#!+"R`rW)rtrr<0$q#C]bs8E#rrr<&is8E#orrpdM0e<=Pn,In~>
+rr;Wkj8])Yrr;uus8N/#!+"R`rW)rtrr<0$q#C]bs8E#rrr<&is8E#orrpdM0e<=Pn,In~>
+rr;Wkj8])Yrr;uus8N/#!+"R`rW)rtrr<0$q#C]bs8E#rrr<&is8E#orrpdM0e<=Pn,In~>
+rr;Wkj8])YfDkgMrr;uu"95k2:?hfX!<3!!Tc*h0oDediqYp_5(?*gOC@D1Q~>
+rr;Wkj8])YfDkgMrr;uu"95k2:?hfX!<3!!Tc*h0oDediqYp_5(?*gOC@D1Q~>
+rr;Wkj8])YfDkgMrr;uu"95k2:?hfX!<3!!Tc*h0oDediqYp_5(?*gOC@D1Q~>
+rr;Wkj8])YfDkgMrr;os!>jMTs8E#trrN\T!:^$f!;uito+(^!!=nbks*t~>
+rr;Wkj8])YfDkgMrr;os!>jMTs8E#trrN\T!:^$f!;uito+(^!!=nbks*t~>
+rr;Wkj8])YfDkgMrr;os!>jMTs8E#trrN\T!:^$f!;uito+(^!!=nbks*t~>
+rr;Wkj8])YfDkgMrr;uu"TR'b-hHX'rW)rt"<.CB9uZZ&rW)os#FYWVs8P7_S+-H.~>
+rr;Wkj8])YfDkgMrr;uu"TR'b-hHX'rW)rt"<.CB9uZZ&rW)os#FYWVs8P7_S+-H.~>
+rr;Wkj8])YfDkgMrr;uu"TR'b-hHX'rW)rt"<.CB9uZZ&rW)os#FYWVs8P7_S+-H.~>
+rr;Wkj8])YfDkgMrr;uus8N/#!+"mirW)rt"MR#!!$:Y0rW)rt#;Z@Us8Skp1[tEp~>
+rr;Wkj8])YfDkgMrr;uus8N/#!+"mirW)rt"MR#!!$:Y0rW)rt#;Z@Us8Skp1[tEp~>
+rr;Wkj8])YfDkgMrr;uus8N/#!+"mirW)rt"MR#!!$:Y0rW)rt#;Z@Us8Skp1[tEp~>
+rr;Wkjo5M:Eu4muf\$6'!9!nV!;uiu!5f66s8E#jrr<&ks*t~>
+rr;Wkjo5M:Eu4muf\$6'!9!nV!;uiu!5f66s8E#jrr<&ks*t~>
+rr;Wkjo5M:Eu4muf\$6'!9!nV!;uiu!5f66s8E#jrr<&ks*t~>
+rr;WkkPkSP)Z'L8)XuJ\rW(mVrW)rt"9]&3'US7frW)]m!MLD1!;?GC~>
+rr;WkkPkSP)Z'L8)XuJ\rW(mVrW)rt"9]&3'US7frW)]m!MLD1!;?GC~>
+rr;WkkPkSP)Z'L8)XuJ\rW(mVrW)rt"9]&3'US7frW)]m!MLD1!;?GC~>
+g&D'ApAb3_h#@B,rVut?f])r1!;uis!:0[a!;QQq%a>"Gs*t~>
+g&D'ApAb3_h#@B,rVut?f])r1!;uis!:0[a!;QQq%a>"Gs*t~>
+g&D'ApAb3_h#@B,rVut?f])r1!;uis!:0[a!;QQq%a>"Gs*t~>
+kPkXV!!&\drr<u3!!!qorrMU-qZ$X8nDsWK!9F1Z!;ZWt)Zg"6`V0=^~>
+kPkXV!!&\drr<u3!!!qorrMU-qZ$X8nDsWK!9F1Z!;ZWt)Zg"6`V0=^~>
+kPkXV!!&\drr<u3!!!qorrMU-qZ$X8nDsWK!9F1Z!;ZWt)Zg"6`V0=^~>
+kPkWD!!#%SrrC^E!!([0rrDQ_!!)NMs8E#Ys8E#prrg&!!!")6s*t~>
+kPkWD!!#%SrrC^E!!([0rrDQ_!!)NMs8E#Ys8E#prrg&!!!")6s*t~>
+kPkWD!!#%SrrC^E!!([0rrDQ_!!)NMs8E#Ys8E#prrg&!!!")6s*t~>
+kl1h6!&6#)dJ<eBF7fM5F5[&u)YX43)X7:p!9aC]!;ZWr!5f6=s*t~>
+kl1h6!&6#)dJ<eBF7fM5F5[&u)YX43)X7:p!9aC]!;ZWr!5f6=s*t~>
+kl1h6!&6#)dJ<eBF7fM5F5[&u)YX43)X7:p!9aC]!;ZWr!5f6=s*t~>
+kl1g#(?*gOCAIl0)"dk/(ubJpf_#4Ef]rM0!9X=\!;uj"":>,CQhLH0~>
+kl1g#(?*gOCAIl0)"dk/(ubJpf_#4Ef]rM0!9X=\!;uj"":>,CQhLH0~>
+kl1g#(?*gOCAIl0)"dk/(ubJpf_#4Ef]rM0!9X=\!;uj"":>,CQhLH0~>
+l2LeU%fHA.%eTVt!#YA/!#X\p!-@f5!-@H*o`4+RrW)iq!!)ZkJ,~>
+l2LeU%fHA.%eTVt!#YA/!#X\p!-@f5!-@H*o`4+RrW)iq!!)ZkJ,~>
+l2LeU%fHA.%eTVt!#YA/!#X\p!-@f5!-@H*o`4+RrW)iq!!)ZkJ,~>
+l2M!W!'^G_4oh)Krr@-5!!%*!rr<o/!!!l$s7HBQs8E#ds*t~>
+l2M!W!'^G_4oh)Krr@-5!!%*!rr<o/!!!l$s7HBQs8E#ds*t~>
+l2M!W!'^G_4oh)Krr@-5!!%*!rr<o/!!!l$s7HBQs8E#ds*t~>
+nG`Igqu6mW!2TYpU]<4Is7?9kf\ui1)"dk/)!_.o!9=+Y!:Tr<~>
+nG`Igqu6mW!2TYpU]<4Is7?9kf\ui1)"dk/)!_.o!9=+Y!:Tr<~>
+nG`Igqu6mW!2TYpU]<4Is7?9kf\ui1)"dk/)!_.o!9=+Y!:Tr<~>
+o)A`a)?'X*s763j)W:VqF7fM5F6`eu!94%X!:^#=~>
+o)A`a)?'X*s763j)W:VqF7fM5F6`eu!94%X!:^#=~>
+o)A`a)?'X*s763j)W:VqF7fM5F6`eu!94%X!:^#=~>
+o)Ab$blI85nGiRYi;Wf0o`,!Er;Z`r!X:0Yp&F[biW&lWnc++~>
+o)Ab$blI85nGiRYi;Wf0o`,!Er;Z`r!X:0Yp&F[biW&lWnc++~>
+o)Ab$blI85nGiRYi;Wf0o`,!Er;Z`r!X:0Yp&F[biW&lWnc++~>
+o)Ah3!WYs6o`+dgs8N,h)Z'L8)XuV`!#kS3!#kb7rr<0$d/XgPs7HBMs8E#hs*t~>
+o)Ah3!WYs6o`+dgs8N,h)Z'L8)XuV`!#kS3!#kb7rr<0$d/XgPs7HBMs8E#hs*t~>
+o)Ah3!WYs6o`+dgs8N,h)Z'L8)XuV`!#kS3!#kb7rr<0$d/XgPs7HBMs8E#hs*t~>
+o)Aj,4TGI'pAb!iqu6]LF8c.>f\HK,nFln_nGE7c!!E8M!%.C=o`4%Po`4deJ,~>
+o)Aj,4TGI'pAb!iqu6]LF8c.>f\HK,nFln_nGE7c!!E8M!%.C=o`4%Po`4deJ,~>
+o)Aj,4TGI'pAb!iqu6]LF8c.>f\HK,nFln_nGE7c!!E8M!%.C=o`4%Po`4deJ,~>
+nG`Oi_[Q>?qZ-BjrW)$Z".oPnT_n`hnFlq[s8;ou#.jL-o`4%Po`4deJ,~>
+nG`Oi_[Q>?qZ-BjrW)$Z".oPnT_n`hnFlq[s8;ou#.jL-o`4%Po`4deJ,~>
+nG`Oi_[Q>?qZ-BjrW)$Z".oPnT_n`hnFlq[s8;ou#.jL-o`4%Po`4deJ,~>
+o)Agq$31d,qZ$Emp&G!kjSo<A!!#%Vs8E!$Eu5a8f_tmJs8N'$s4./pp&F[bj8\cPq#>j~>
+o)Agq$31d,qZ$Emp&G!kjSo<A!!#%Vs8E!$Eu5a8f_tmJs8N'$s4./pp&F[bj8\cPq#>j~>
+o)Agq$31d,qZ$Emp&G!kjSo<A!!#%Vs8E!$Eu5a8f_tmJs8N'$s4./pp&F[bj8\cPq#>j~>
+nG`IgqZ$EmoDedijo5M3!&6#)dJX%D!;lfq!;uls!!E8P!"ei'o`4%Po`4deJ,~>
+nG`IgqZ$EmoDedijo5M3!&6#)dJX%D!;lfq!;uls!!E8P!"ei'o`4%Po`4deJ,~>
+nG`IgqZ$EmoDedijo5M3!&6#)dJX%D!;lfq!;uls!!E8P!"ei'o`4%Po`4deJ,~>
+lMp_]nc/Rgs8W&u!X:0YmJd?((?*gOCAn23!;c`p!;ulr!!33IW6>56!;QSE~>
+lMp_]nc/Rgs8W&u!X:0YmJd?((?*gOCAn23!;c`p!;ulr!!33IW6>56!;QSE~>
+lMp_]nc/Rgs8W&u!X:0YmJd?((?*gOCAn23!;c`p!;ulr!!33IW6>56!;QSE~>
+m/Qq_n,N@es8W*!"96aK'(5c#o+(^!!=nc$s8E#os8E#7s7HBes*t~>
+m/Qq_n,N@es8W*!"96aK'(5c#o+(^!!=nc$s8E#os8E#7s7HBes*t~>
+m/Qq_n,N@es8W*!"96aK'(5c#o+(^!!=nc$s8E#os8E#7s7HBes*t~>
+mf3.amJm.cs8W*!"96gM-LUm?RK,POs#pFPs8W&up](3mq>UPh!!&\;s7HBes*t~>
+mf3.amJm.cs8W*!"96gM-LUm?RK,POs#pFPs8W&up](3mq>UPh!!&\;s7HBes*t~>
+mf3.amJm.cs8W*!"96gM-LUm?RK,POs#pFPs8W&up](3mq>UPh!!&\;s7HBes*t~>
+nGi@cli6qas8W#t!=$.'rs:I]V#UIj!&OZTrW)]mrW)co"#p8\3R7Zt!;QSE~>
+nGi@cli6qas8W#t!=$.'rs:I]V#UIj!&OZTrW)]mrW)co"#p8\3R7Zt!;QSE~>
+nGi@cli6qas8W#t!=$.'rs:I]V#UIj!&OZTrW)]mrW)co"#p8\3R7Zt!;QSE~>
+o)JRel2U__s8W*!"96pP,N\t)!;6Bk!;ld"d/YmP!7B-mo`4deJ,~>
+o)JRel2U__s8W*!"96pP,N\t)!;6Bk!;ld"d/YmP!7B-mo`4deJ,~>
+o)JRel2U__s8W*!"96pP,N\t)!;6Bk!;ld"d/YmP!7B-mo`4deJ,~>
+rr;KgkPtM]s8W*!"96pP&F]W!!;QTn!;6Bk!;ld"Bbo[Y$>Roeo`4deJ,~>
+rr;KgkPtM]s8W*!"96pP&F]W!!;QTn!;6Bk!;ld"Bbo[Y$>Roeo`4deJ,~>
+rr;KgkPtM]s8W*!"96pP&F]W!!;QTn!;6Bk!;ld"Bbo[Y$>Roeo`4deJ,~>
+rr;Qijo>;[s8W&u!WjXGnc&W`)?'X5s8E#is8E#srrM^$r;Zj.o[*X2!;QSE~>
+rr;Qijo>;[s8W&u!WjXGnc&W`)?'X5s8E#is8E#srrM^$r;Zj.o[*X2!;QSE~>
+rr;Qijo>;[s8W&u!WjXGnc&W`)?'X5s8E#is8E#srrM^$r;Zj.o[*X2!;QSE~>
+rr;Wkj8])Yl2LepblIS>rW)NhrW)rt#FYWVs8P7_S'_3.!;QSE~>
+rr;Wkj8])Yl2LepblIS>rW)NhrW)rt#FYWVs8P7_S'_3.!;QSE~>
+rr;Wkj8])Yl2LepblIS>rW)NhrW)rt#FYWVs8P7_S'_3.!;QSE~>
+rr;Wkj8])YrVltl!!&\^rra8B!):H1s8E#gs8E#trs(=[V#UIj!&M7eJ,~>
+rr;Wkj8])YrVltl!!&\^rra8B!):H1s8E#gs8E#trs(=[V#UIj!&M7eJ,~>
+rr;Wkj8])YrVltl!!&\^rra8B!):H1s8E#gs8E#trs(=[V#UIj!&M7eJ,~>
+rr;Wkj8])YrVlsZ!!#%Lrrg&!!!")<s8E#fs8E#'s*t~>
+rr;Wkj8])YrVlsZ!!#%Lrrg&!!!")<s8E#fs8E#'s*t~>
+rr;Wkj8])YrVlsZ!!#%Lrrg&!!!")<s8E#fs8E#'s*t~>
+rr;Wkj8])Yrr3/L!&6#)dI@/;!5f6Ds8E#ds8E#ps8E!""u=*2s*t~>
+rr;Wkj8])Yrr3/L!&6#)dI@/;!5f6Ds8E#ds8E#ps8E!""u=*2s*t~>
+rr;Wkj8])Yrr3/L!&6#)dI@/;!5f6Ds8E#ds8E#ps8E!""u=*2s*t~>
+rr;Wkj8])Yrr3.9(?*gOC@_B-":>,CQi6s`!:Kmd!;c`q!!E83!$f8YJ,~>
+rr;Wkj8])Yrr3.9(?*gOC@_B-":>,CQi6s`!:Kmd!;c`q!!E83!$f8YJ,~>
+rr;Wkj8])Yrr3.9(?*gOC@_B-":>,CQi6s`!:Kmd!;c`q!!E83!$f8YJ,~>
+rr;Wkj8])Ys8N,k%fHA.%eT;k!!)rsrW)<brW)iqrr<0$q#C]8s*t~>
+rr;Wkj8])Ys8N,k%fHA.%eT;k!!)rsrW)<brW)iqrr<0$q#C]8s*t~>
+rr;Wkj8])Ys8N,k%fHA.%eT;k!!)rsrW)<brW)iqrr<0$q#C]8s*t~>
+rr;Wkj8])Ys8N=m!'^G_4oh)<s8E#bs8E#qs8N'$s0r&(^]/f~>
+rr;Wkj8])Ys8N=m!'^G_4oh)<s8E#bs8E#qs8N'$s0r&(^]/f~>
+rr;Wkj8])Ys8N=m!'^G_4oh)<s8E#bs8E#qs8N'$s0r&(^]/f~>
+rr;Wkj8])Ys8N<[!2TYpU]<4;s8E#`s8E#rs8;ou(Yc_)J,~>
+rr;Wkj8])Ys8N<[!2TYpU]<4;s8E#`s8E#rs8;ou(Yc_)J,~>
+rr;Wkj8])Ys8N<[!2TYpU]<4;s8E#`s8E#rs8;ou(Yc_)J,~>
+rr;Wkj8])YirAuXl2U__rVult"TR'b-hG.RJ,~>
+rr;Wkj8])YirAuXl2U__rVult"TR'b-hG.RJ,~>
+rr;Wkj8])YirAuXl2U__rVult"TR'b-hG.RJ,~>
+rr;Wkj8])Ys8W&u!X:EtnGi.]m/R%brVults8N/#!+!D?J,~>
+rr;Wkj8])Ys8W&u!X:EtnGi.]m/R%brVults8N/#!+!D?J,~>
+rr;Wkj8])Ys8W&u!X:EtnGi.]m/R%brVults8N/#!+!D?J,~>
+eGoLJs8W*!"95n3,Oka+!:0[a!4MoX~>
+eGoLJs8W*!"95n3,Oka+!:0[a!4MoX~>
+eGoLJs8W*!"95n3,Oka+!:0[a!4MoX~>
+eGoLJs8W*!"98/s#k7le!:0[a!;ZWsT)\ka_Z,,~>
+eGoLJs8W*!"98/s#k7le!:0[a!;ZWsT)\ka_Z,,~>
+eGoLJs8W*!"98/s#k7le!:0[a!;ZWsT)\ka_Z,,~>
+eGoLJs8W*!"95k2:@S;V!:'U`!;c]t2uiq=_Z,,~>
+eGoLJs8W*!"95k2:@S;V!:'U`!;c]t2uiq=_Z,,~>
+eGoLJs8W*!"95k2:@S;V!:'U`!;c]t2uiq=_Z,,~>
+eGoLJs8W#t!>jM[s7HBVs8E#rrrpdM0e<=P_uG5~>
+eGoLJs8W#t!>jM[s7HBVs8E#rrrpdM0e<=P_uG5~>
+eGoLJs8W#t!>jM[s7HBVs8E#rrrpdM0e<=P_uG5~>
+eGoLJs8W*!"TR'b-hHm.o`47VrW)lr"_eb2ed?00s*t~>
+eGoLJs8W*!"TR'b-hHm.o`47VrW)lr"_eb2ed?00s*t~>
+eGoLJs8W*!"TR'b-hHm.o`47VrW)lr"_eb2ed?00s*t~>
+eGoLJs8W*!s8N/#!+#-po`44UrW)rt!V6g"!!*T%`;b>~>
+eGoLJs8W*!s8N/#!+#-po`44UrW)rt!V6g"!!*T%`;b>~>
+eGoLJs8W*!s8N/#!+#-po`44UrW)rt!V6g"!!*T%`;b>~>
+eGoLJkl:;Ukl:V^rr34l!'^G_4oh(js*t~>
+eGoLJkl:;Ukl:V^rr34l!'^G_4oh(js*t~>
+eGoLJkl:;Ukl:V^rr34l!'^G_4oh(js*t~>
+eGoLJrVltl!!&\]s7HBTs8E#urs(=[V#UIj!&MRnJ,~>
+eGoLJrVltl!!&\]s7HBTs8E#urs(=[V#UIj!&MRnJ,~>
+eGoLJrVltl!!&\]s7HBTs8E#urs(=[V#UIj!&MRnJ,~>
+eGoLJrVlsZ!!#%Ks7HBSs8E#1s*t~>
+eGoLJrVlsZ!!#%Ks7HBSs8E#1s*t~>
+eGoLJrVlsZ!!#%Ks7HBSs8E#1s*t~>
+eGoLJrr3/L!&6#)dII80!9X=\!;QQo!6+tg~>
+eGoLJrr3/L!&6#)dII80!9X=\!;QQo!6+tg~>
+eGoLJrr3/L!&6#)dII80!9X=\!;QQo!6+tg~>
+eGoLJrr3.9(?*gOC@V>s!9O7[!;lcsTc*h0a8^Y~>
+eGoLJrr3.9(?*gOC@V>s!9O7[!;lcsTc*h0a8^Y~>
+eGoLJrr3.9(?*gOC@V>s!9O7[!;lcsTc*h0a8^Y~>
+eGoLJs8N,k%fHA.%eRmCrW)lr!Y3HT`W(G~>
+eGoLJs8N,k%fHA.%eRmCrW)lr!Y3HT`W(G~>
+eGoLJs8N,k%fHA.%eRmCrW)lr!Y3HT`W(G~>
+eGoLJs8N=m!'^G_4oh(os8E#rrra8B!):GQs*t~>
+eGoLJs8N=m!'^G_4oh(os8E#rrra8B!):GQs*t~>
+eGoLJs8N=m!'^G_4oh(os8E#rrra8B!):GQs*t~>
+eGoLJs8N<[!2TYpU]<3ls8E#srrg&!!!"(\s*t~>
+eGoLJs8N<[!2TYpU]<3ls8E#srrg&!!!"(\s*t~>
+eGoLJs8N<[!2TYpU]<3ls8E#srrg&!!!"(\s*t~>
+eGoLJ^An04qu6]t_[OTcJ,~>
+eGoLJ^An04qu6]t_[OTcJ,~>
+eGoLJ^An04qu6]t_[OTcJ,~>
+eGoLJrVlit_Z0T8rr3*($31d,a8^Y~>
+eGoLJrVlit_Z0T8rr3*($31d,a8^Y~>
+eGoLJrVlit_Z0T8rr3*($31d,a8^Y~>
+eGoLJs8N+n)?'WRs8E#srr<&<s*t~>
+eGoLJs8N+n)?'WRs8E#srr<&<s*t~>
+eGoLJs8N+n)?'WRs8E#srr<&<s*t~>
+eGoLJs8N-1blGT[rW'b6J,~>
+eGoLJs8N-1blGT[rW'b6J,~>
+eGoLJs8N-1blGT[rW'b6J,~>
+eGoLJs8N3@!WYs6_Z0T8_>f#~>
+eGoLJs8N3@!WYs6_Z0T8_>f#~>
+eGoLJs8N3@!WYs6_Z0T8_>f#~>
+eGoLJs8N594TGI'_Z0T8_>f#~>
+eGoLJs8N594TGI'_Z0T8_>f#~>
+eGoLJs8N594TGI'_Z0T8_>f#~>
+eGoLJrVlp!_[OQbo`3#3J,~>
+eGoLJrVlp!_[OQbo`3#3J,~>
+eGoLJrVlp!_[OQbo`3#3J,~>
+eGoLJs8N3)$31d,`rG]3`rCP~>
+eGoLJs8N3)$31d,`rG]3`rCP~>
+eGoLJs8N3)$31d,`rG]3`rCP~>
+eGoLJrVlit`;fK1`rCP~>
+eGoLJrVlit`;fK1`rCP~>
+eGoLJrVlit`;fK1`rCP~>
+eGoLJ^]3s,`rCP~>
+eGoLJ^]3s,`rCP~>
+eGoLJ^]3s,`rCP~>
+eGoLJ^]3s,`rCP~>
+eGoLJ^]3s,`rCP~>
+eGoLJ^]3s,`rCP~>
+g&L^F_uKB0`rCP~>
+g&L^F_uKB0`rCP~>
+g&L^F_uKB0`rCP~>
+g&L^F_uKB0`rCP~>
+g&L^F_uKB0`rCP~>
+g&L^F_uKB0`rCP~>
+g&L^F_uKB0`rCP~>
+g&L^F_uKB0`rCP~>
+g&L^F_uKB0`rCP~>
+g&L^F_uKB0`rCP~>
+g&L^F_uKB0`rCP~>
+g&L^F_uKB0`rCP~>
+g&L^F_uKB0`rCP~>
+g&L^F_uKB0`rCP~>
+g&L^F_uKB0`rCP~>
+g&L^F_uKB0`rCP~>
+g&L^F_uKB0`rCP~>
+g&L^F_uKB0`rCP~>
+g&L^F_uKB0`rCP~>
+g&L^F_uKB0`rCP~>
+g&L^F_uKB0`rCP~>
+g&L^FJcGZJJ,~>
+g&L^FJcGZJJ,~>
+g&L^FJcGZJJ,~>
+g&L^FJcGZJJ,~>
+g&L^FJcGZJJ,~>
+g&L^FJcGZJJ,~>
+g&L^FJcGZJJ,~>
+g&L^FJcGZJJ,~>
+g&L^FJcGZJJ,~>
+g&L^FJcGZJJ,~>
+g&L^FJcGZJJ,~>
+g&L^FJcGZJJ,~>
+g&L^FJcGZJJ,~>
+g&L^FJcGZJJ,~>
+g&L^FJcGZJJ,~>
+JcEgkJ,~>
+JcEgkJ,~>
+JcEgkJ,~>
+JcEgkJ,~>
+JcEgkJ,~>
+JcEgkJ,~>
+JcEgkJ,~>
+JcEgkJ,~>
+JcEgkJ,~>
+JcEgkJ,~>
+JcEgkJ,~>
+JcEgkJ,~>
+JcEgkJ,~>
+JcEgkJ,~>
+JcEgkJ,~>
+JcEgkJ,~>
+JcEgkJ,~>
+JcEgkJ,~>
+%%EndData
+showpage
+%%Trailer
+end
+%%EOF
diff --git a/9-suffix/ct-35120024224-fs.eps b/9-suffix/ct-35120024224-fs.eps
new file mode 100644 (file)
index 0000000..9b49ee0
--- /dev/null
@@ -0,0 +1,775 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: inkscape 0.43
+%%Pages: 1
+%%Orientation: Portrait
+%%BoundingBox: 3 2 168 119
+%%HiResBoundingBox: 3.2 2.3181145 167.52 118.31812
+%%EndComments
+%%Page: 1 1
+0 122 translate
+0.8 -0.8 scale
+gsave [1 0 0 1 0 0] concat
+gsave
+1 1 1 setrgbcolor
+newpath
+84.478137 5.4645691 moveto
+114.52186 5.4645691 lineto
+118.11075 5.4645691 121 8.3538186 121 11.942707 curveto
+121 20.986431 lineto
+121 24.57532 118.11075 27.464569 114.52186 27.464569 curveto
+84.478137 27.464569 lineto
+80.889249 27.464569 78 24.57532 78 20.986431 curveto
+78 11.942707 lineto
+78 8.3538186 80.889249 5.4645691 84.478137 5.4645691 curveto
+closepath
+fill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+1.9999996 setlinewidth
+1 setlinejoin
+0 setlinecap
+newpath
+84.478137 5.4645691 moveto
+114.52186 5.4645691 lineto
+118.11075 5.4645691 121 8.3538186 121 11.942707 curveto
+121 20.986431 lineto
+121 24.57532 118.11075 27.464569 114.52186 27.464569 curveto
+84.478137 27.464569 lineto
+80.889249 27.464569 78 24.57532 78 20.986431 curveto
+78 11.942707 lineto
+78 8.3538186 80.889249 5.4645691 84.478137 5.4645691 curveto
+closepath
+stroke
+gsave [1 0 0 1 60 35] concat
+gsave
+1 1 1 setrgbcolor
+newpath
+84.478137 5.4645691 moveto
+114.52186 5.4645691 lineto
+118.11075 5.4645691 121 8.3538186 121 11.942707 curveto
+121 20.986431 lineto
+121 24.57532 118.11075 27.464569 114.52186 27.464569 curveto
+84.478137 27.464569 lineto
+80.889249 27.464569 78 24.57532 78 20.986431 curveto
+78 11.942707 lineto
+78 8.3538186 80.889249 5.4645691 84.478137 5.4645691 curveto
+closepath
+fill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+1.9999996 setlinewidth
+1 setlinejoin
+0 setlinecap
+newpath
+84.478137 5.4645691 moveto
+114.52186 5.4645691 lineto
+118.11075 5.4645691 121 8.3538186 121 11.942707 curveto
+121 20.986431 lineto
+121 24.57532 118.11075 27.464569 114.52186 27.464569 curveto
+84.478137 27.464569 lineto
+80.889249 27.464569 78 24.57532 78 20.986431 curveto
+78 11.942707 lineto
+78 8.3538186 80.889249 5.4645691 84.478137 5.4645691 curveto
+closepath
+stroke
+grestore
+gsave [1 0 0 1 135 39] concat
+gsave
+1 1 1 setrgbcolor
+newpath
+49.478138 38.464569 moveto
+64.521862 38.464569 lineto
+68.11075 38.464569 71 41.353819 71 44.942707 curveto
+71 53.986431 lineto
+71 57.57532 68.11075 60.464569 64.521862 60.464569 curveto
+49.478138 60.464569 lineto
+45.88925 60.464569 43 57.57532 43 53.986431 curveto
+43 44.942707 lineto
+43 41.353819 45.88925 38.464569 49.478138 38.464569 curveto
+closepath
+fill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+2 setlinewidth
+1 setlinejoin
+0 setlinecap
+newpath
+49.478138 38.464569 moveto
+64.521862 38.464569 lineto
+68.11075 38.464569 71 41.353819 71 44.942707 curveto
+71 53.986431 lineto
+71 57.57532 68.11075 60.464569 64.521862 60.464569 curveto
+49.478138 60.464569 lineto
+45.88925 60.464569 43 57.57532 43 53.986431 curveto
+43 44.942707 lineto
+43 41.353819 45.88925 38.464569 49.478138 38.464569 curveto
+closepath
+stroke
+grestore
+gsave [1 0 0 1 88 40] concat
+gsave
+1 1 1 setrgbcolor
+newpath
+49.478138 38.464569 moveto
+64.521862 38.464569 lineto
+68.11075 38.464569 71 41.353819 71 44.942707 curveto
+71 53.986431 lineto
+71 57.57532 68.11075 60.464569 64.521862 60.464569 curveto
+49.478138 60.464569 lineto
+45.88925 60.464569 43 57.57532 43 53.986431 curveto
+43 44.942707 lineto
+43 41.353819 45.88925 38.464569 49.478138 38.464569 curveto
+closepath
+fill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+2 setlinewidth
+1 setlinejoin
+0 setlinecap
+newpath
+49.478138 38.464569 moveto
+64.521862 38.464569 lineto
+68.11075 38.464569 71 41.353819 71 44.942707 curveto
+71 53.986431 lineto
+71 57.57532 68.11075 60.464569 64.521862 60.464569 curveto
+49.478138 60.464569 lineto
+45.88925 60.464569 43 57.57532 43 53.986431 curveto
+43 44.942707 lineto
+43 41.353819 45.88925 38.464569 49.478138 38.464569 curveto
+closepath
+stroke
+grestore
+gsave [1 0 0 1 28 32] concat
+gsave
+1 1 1 setrgbcolor
+newpath
+49.478138 38.464569 moveto
+64.521862 38.464569 lineto
+68.11075 38.464569 71 41.353819 71 44.942707 curveto
+71 53.986431 lineto
+71 57.57532 68.11075 60.464569 64.521862 60.464569 curveto
+49.478138 60.464569 lineto
+45.88925 60.464569 43 57.57532 43 53.986431 curveto
+43 44.942707 lineto
+43 41.353819 45.88925 38.464569 49.478138 38.464569 curveto
+closepath
+fill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+2 setlinewidth
+1 setlinejoin
+0 setlinecap
+newpath
+49.478138 38.464569 moveto
+64.521862 38.464569 lineto
+68.11075 38.464569 71 41.353819 71 44.942707 curveto
+71 53.986431 lineto
+71 57.57532 68.11075 60.464569 64.521862 60.464569 curveto
+49.478138 60.464569 lineto
+45.88925 60.464569 43 57.57532 43 53.986431 curveto
+43 44.942707 lineto
+43 41.353819 45.88925 38.464569 49.478138 38.464569 curveto
+closepath
+stroke
+grestore
+gsave
+1 1 1 setrgbcolor
+newpath
+49.478138 38.464569 moveto
+64.521862 38.464569 lineto
+68.11075 38.464569 71 41.353819 71 44.942707 curveto
+71 53.986431 lineto
+71 57.57532 68.11075 60.464569 64.521862 60.464569 curveto
+49.478138 60.464569 lineto
+45.88925 60.464569 43 57.57532 43 53.986431 curveto
+43 44.942707 lineto
+43 41.353819 45.88925 38.464569 49.478138 38.464569 curveto
+closepath
+fill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+2 setlinewidth
+1 setlinejoin
+0 setlinecap
+newpath
+49.478138 38.464569 moveto
+64.521862 38.464569 lineto
+68.11075 38.464569 71 41.353819 71 44.942707 curveto
+71 53.986431 lineto
+71 57.57532 68.11075 60.464569 64.521862 60.464569 curveto
+49.478138 60.464569 lineto
+45.88925 60.464569 43 57.57532 43 53.986431 curveto
+43 44.942707 lineto
+43 41.353819 45.88925 38.464569 49.478138 38.464569 curveto
+closepath
+stroke
+gsave
+1 1 1 setrgbcolor
+newpath
+84.478137 5.4645691 moveto
+114.52186 5.4645691 lineto
+118.11075 5.4645691 121 8.3538186 121 11.942707 curveto
+121 20.986431 lineto
+121 24.57532 118.11075 27.464569 114.52186 27.464569 curveto
+84.478137 27.464569 lineto
+80.889249 27.464569 78 24.57532 78 20.986431 curveto
+78 11.942707 lineto
+78 8.3538186 80.889249 5.4645691 84.478137 5.4645691 curveto
+closepath
+fill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+1.9999996 setlinewidth
+1 setlinejoin
+0 setlinecap
+newpath
+84.478137 5.4645691 moveto
+114.52186 5.4645691 lineto
+118.11075 5.4645691 121 8.3538186 121 11.942707 curveto
+121 20.986431 lineto
+121 24.57532 118.11075 27.464569 114.52186 27.464569 curveto
+84.478137 27.464569 lineto
+80.889249 27.464569 78 24.57532 78 20.986431 curveto
+78 11.942707 lineto
+78 8.3538186 80.889249 5.4645691 84.478137 5.4645691 curveto
+closepath
+stroke
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+84.04545 28.464569 moveto
+72 37.81751 lineto
+stroke
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+36 70.464569 moveto
+45 61.464569 lineto
+stroke
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+67.5 61.464569 moveto
+74.5 69.464569 lineto
+stroke
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+30.769231 94.464569 moveto
+39.230769 109.46457 lineto
+stroke
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+144.10526 77.464569 moveto
+152.39474 63.464569 lineto
+stroke
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+170.04054 63.464569 moveto
+181.45946 76.464569 lineto
+stroke
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+138.92857 39.464569 moveto
+120.07143 28.464569 lineto
+stroke
+gsave [1 0 0 -1 95.208977 21.764647] concat
+gsave
+/newlatin1font {findfont dup length dict copy dup /Encoding ISOLatin1Encoding put definefont} def
+/BitstreamVeraSans-Roman-ISOLatin1 /BitstreamVeraSans-Roman newlatin1font
+12 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(0) show
+grestore
+grestore
+gsave [1 0 0 -1 52.681641 54.464569] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+12 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(1) show
+grestore
+grestore
+gsave [1 0 0 1 -33 33] concat
+gsave
+1 1 1 setrgbcolor
+newpath
+49.478138 38.464569 moveto
+64.521862 38.464569 lineto
+68.11075 38.464569 71 41.353819 71 44.942707 curveto
+71 53.986431 lineto
+71 57.57532 68.11075 60.464569 64.521862 60.464569 curveto
+49.478138 60.464569 lineto
+45.88925 60.464569 43 57.57532 43 53.986431 curveto
+43 44.942707 lineto
+43 41.353819 45.88925 38.464569 49.478138 38.464569 curveto
+closepath
+fill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+2 setlinewidth
+1 setlinejoin
+0 setlinecap
+newpath
+49.478138 38.464569 moveto
+64.521862 38.464569 lineto
+68.11075 38.464569 71 41.353819 71 44.942707 curveto
+71 53.986431 lineto
+71 57.57532 68.11075 60.464569 64.521862 60.464569 curveto
+49.478138 60.464569 lineto
+45.88925 60.464569 43 57.57532 43 53.986431 curveto
+43 44.942707 lineto
+43 41.353819 45.88925 38.464569 49.478138 38.464569 curveto
+closepath
+stroke
+grestore
+gsave [1 0 0 -1 20.085938 87.464569] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+12 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(3) show
+grestore
+grestore
+gsave [1 0 0 1 -11 72] concat
+gsave
+1 1 1 setrgbcolor
+newpath
+49.478138 38.464569 moveto
+64.521862 38.464569 lineto
+68.11075 38.464569 71 41.353819 71 44.942707 curveto
+71 53.986431 lineto
+71 57.57532 68.11075 60.464569 64.521862 60.464569 curveto
+49.478138 60.464569 lineto
+45.88925 60.464569 43 57.57532 43 53.986431 curveto
+43 44.942707 lineto
+43 41.353819 45.88925 38.464569 49.478138 38.464569 curveto
+closepath
+fill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+2 setlinewidth
+1 setlinejoin
+0 setlinecap
+newpath
+49.478138 38.464569 moveto
+64.521862 38.464569 lineto
+68.11075 38.464569 71 41.353819 71 44.942707 curveto
+71 53.986431 lineto
+71 57.57532 68.11075 60.464569 64.521862 60.464569 curveto
+49.478138 60.464569 lineto
+45.88925 60.464569 43 57.57532 43 53.986431 curveto
+43 44.942707 lineto
+43 41.353819 45.88925 38.464569 49.478138 38.464569 curveto
+closepath
+stroke
+grestore
+gsave [1 0 0 -1 42.074219 125.66463] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+12 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(5) show
+grestore
+grestore
+gsave [1 0 0 -1 81.121094 86.664597] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+12 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(2) show
+grestore
+grestore
+gsave [1 0 0 -1 155.12109 55.664558] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+12 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(2) show
+grestore
+grestore
+gsave [1 0 0 -1 141.41406 93.464569] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+12 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(4) show
+grestore
+grestore
+gsave [1 0 0 -1 188.41406 93.464592] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+12 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(4) show
+grestore
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+38.033613 133.46457 moveto
+32.988235 141.06457 lineto
+stroke
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+92.15966 93.464569 moveto
+96.69412 101.06457 lineto
+stroke
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+77.033613 93.464569 moveto
+71.988235 101.06457 lineto
+stroke
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+53.159664 133.46457 moveto
+57.694118 141.06457 lineto
+stroke
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+16.033613 94.464569 moveto
+10.988235 102.06457 lineto
+stroke
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+138.32258 101.46457 moveto
+133.5371 110.06457 lineto
+stroke
+gsave [1 0 0 1 2.7 -88.7] concat
+0 0 0 setrgbcolor
+[] 0 setdash
+1.4 setlinewidth
+1 setlinejoin
+0 setlinecap
+newpath
+100 128.96457 moveto
+100 130.89757 98.432997 132.46457 96.5 132.46457 curveto
+94.567003 132.46457 93 130.89757 93 128.96457 curveto
+93 127.03157 94.567003 125.46457 96.5 125.46457 curveto
+98.432997 125.46457 100 127.03157 100 128.96457 curveto
+closepath
+stroke
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+99.34874 28.464569 moveto
+99.25294 36.064569 lineto
+stroke
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+161.77419 63.464569 moveto
+163.40403 72.064569 lineto
+stroke
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+140.69328 63.464569 moveto
+126.4 72.584676 lineto
+stroke
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+198.13953 100.46457 moveto
+203.05116 110.06457 lineto
+stroke
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+185.32258 100.46457 moveto
+180.5371 109.06457 lineto
+stroke
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+151.3871 101.46457 moveto
+155.96452 110.06457 lineto
+stroke
+gsave [1 0 0 1 -91 66] concat
+gsave [1 0 0 1 2.7 -88.7] concat
+0 0 0 setrgbcolor
+[] 0 setdash
+1.4 setlinewidth
+1 setlinejoin
+0 setlinecap
+newpath
+100 128.96457 moveto
+100 130.89757 98.432997 132.46457 96.5 132.46457 curveto
+94.567003 132.46457 93 130.89757 93 128.96457 curveto
+93 127.03157 94.567003 125.46457 96.5 125.46457 curveto
+98.432997 125.46457 100 127.03157 100 128.96457 curveto
+closepath
+stroke
+grestore
+grestore
+gsave [1 0 0 1 -69 105] concat
+gsave [1 0 0 1 2.7 -88.7] concat
+0 0 0 setrgbcolor
+[] 0 setdash
+1.4 setlinewidth
+1 setlinejoin
+0 setlinecap
+newpath
+100 128.96457 moveto
+100 130.89757 98.432997 132.46457 96.5 132.46457 curveto
+94.567003 132.46457 93 130.89757 93 128.96457 curveto
+93 127.03157 94.567003 125.46457 96.5 125.46457 curveto
+98.432997 125.46457 100 127.03157 100 128.96457 curveto
+closepath
+stroke
+grestore
+grestore
+gsave [1 0 0 1 -39 105] concat
+gsave [1 0 0 1 2.7 -88.7] concat
+0 0 0 setrgbcolor
+[] 0 setdash
+1.4 setlinewidth
+1 setlinejoin
+0 setlinecap
+newpath
+100 128.96457 moveto
+100 130.89757 98.432997 132.46457 96.5 132.46457 curveto
+94.567003 132.46457 93 130.89757 93 128.96457 curveto
+93 127.03157 94.567003 125.46457 96.5 125.46457 curveto
+98.432997 125.46457 100 127.03157 100 128.96457 curveto
+closepath
+stroke
+grestore
+grestore
+gsave [1 0 0 1 -30 65] concat
+gsave [1 0 0 1 2.7 -88.7] concat
+0 0 0 setrgbcolor
+[] 0 setdash
+1.4 setlinewidth
+1 setlinejoin
+0 setlinecap
+newpath
+100 128.96457 moveto
+100 130.89757 98.432997 132.46457 96.5 132.46457 curveto
+94.567003 132.46457 93 130.89757 93 128.96457 curveto
+93 127.03157 94.567003 125.46457 96.5 125.46457 curveto
+98.432997 125.46457 100 127.03157 100 128.96457 curveto
+closepath
+stroke
+grestore
+grestore
+gsave [1 0 0 1 0 65] concat
+gsave [1 0 0 1 2.7 -88.7] concat
+0 0 0 setrgbcolor
+[] 0 setdash
+1.4 setlinewidth
+1 setlinejoin
+0 setlinecap
+newpath
+100 128.96457 moveto
+100 130.89757 98.432997 132.46457 96.5 132.46457 curveto
+94.567003 132.46457 93 130.89757 93 128.96457 curveto
+93 127.03157 94.567003 125.46457 96.5 125.46457 curveto
+98.432997 125.46457 100 127.03157 100 128.96457 curveto
+closepath
+stroke
+grestore
+grestore
+gsave [1 0 0 1 23 35] concat
+gsave [1 0 0 1 2.7 -88.7] concat
+0 0 0 setrgbcolor
+[] 0 setdash
+1.4 setlinewidth
+1 setlinejoin
+0 setlinecap
+newpath
+100 128.96457 moveto
+100 130.89757 98.432997 132.46457 96.5 132.46457 curveto
+94.567003 132.46457 93 130.89757 93 128.96457 curveto
+93 127.03157 94.567003 125.46457 96.5 125.46457 curveto
+98.432997 125.46457 100 127.03157 100 128.96457 curveto
+closepath
+stroke
+grestore
+grestore
+gsave [1 0 0 1 32 74] concat
+gsave [1 0 0 1 2.7 -88.7] concat
+0 0 0 setrgbcolor
+[] 0 setdash
+1.4 setlinewidth
+1 setlinejoin
+0 setlinecap
+newpath
+100 128.96457 moveto
+100 130.89757 98.432997 132.46457 96.5 132.46457 curveto
+94.567003 132.46457 93 130.89757 93 128.96457 curveto
+93 127.03157 94.567003 125.46457 96.5 125.46457 curveto
+98.432997 125.46457 100 127.03157 100 128.96457 curveto
+closepath
+stroke
+grestore
+grestore
+gsave [1 0 0 1 59 74] concat
+gsave [1 0 0 1 2.7 -88.7] concat
+0 0 0 setrgbcolor
+[] 0 setdash
+1.4 setlinewidth
+1 setlinejoin
+0 setlinecap
+newpath
+100 128.96457 moveto
+100 130.89757 98.432997 132.46457 96.5 132.46457 curveto
+94.567003 132.46457 93 130.89757 93 128.96457 curveto
+93 127.03157 94.567003 125.46457 96.5 125.46457 curveto
+98.432997 125.46457 100 127.03157 100 128.96457 curveto
+closepath
+stroke
+grestore
+grestore
+gsave [1 0 0 1 65 36] concat
+gsave [1 0 0 1 2.7 -88.7] concat
+0 0 0 setrgbcolor
+[] 0 setdash
+1.4 setlinewidth
+1 setlinejoin
+0 setlinecap
+newpath
+100 128.96457 moveto
+100 130.89757 98.432997 132.46457 96.5 132.46457 curveto
+94.567003 132.46457 93 130.89757 93 128.96457 curveto
+93 127.03157 94.567003 125.46457 96.5 125.46457 curveto
+98.432997 125.46457 100 127.03157 100 128.96457 curveto
+closepath
+stroke
+grestore
+grestore
+gsave [1 0 0 1 79 73] concat
+gsave [1 0 0 1 2.7 -88.7] concat
+0 0 0 setrgbcolor
+[] 0 setdash
+1.4 setlinewidth
+1 setlinejoin
+0 setlinecap
+newpath
+100 128.96457 moveto
+100 130.89757 98.432997 132.46457 96.5 132.46457 curveto
+94.567003 132.46457 93 130.89757 93 128.96457 curveto
+93 127.03157 94.567003 125.46457 96.5 125.46457 curveto
+98.432997 125.46457 100 127.03157 100 128.96457 curveto
+closepath
+stroke
+grestore
+grestore
+gsave [1 0 0 1 106 74] concat
+gsave [1 0 0 1 2.7 -88.7] concat
+0 0 0 setrgbcolor
+[] 0 setdash
+1.4 setlinewidth
+1 setlinejoin
+0 setlinecap
+newpath
+100 128.96457 moveto
+100 130.89757 98.432997 132.46457 96.5 132.46457 curveto
+94.567003 132.46457 93 130.89757 93 128.96457 curveto
+93 127.03157 94.567003 125.46457 96.5 125.46457 curveto
+98.432997 125.46457 100 127.03157 100 128.96457 curveto
+closepath
+stroke
+grestore
+grestore
+grestore
+showpage
diff --git a/9-suffix/ct-35120024224.eps b/9-suffix/ct-35120024224.eps
new file mode 100644 (file)
index 0000000..9948b7c
--- /dev/null
@@ -0,0 +1,465 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: inkscape 0.43
+%%Pages: 1
+%%Orientation: Portrait
+%%BoundingBox: 3 2 168 119
+%%HiResBoundingBox: 3.2 2.3181145 167.52 118.31812
+%%EndComments
+%%Page: 1 1
+0 122 translate
+0.8 -0.8 scale
+gsave [1 0 0 1 0 0] concat
+gsave
+1 1 1 setrgbcolor
+newpath
+84.478137 5.4645691 moveto
+114.52186 5.4645691 lineto
+118.11075 5.4645691 121 8.3538186 121 11.942707 curveto
+121 20.986431 lineto
+121 24.57532 118.11075 27.464569 114.52186 27.464569 curveto
+84.478137 27.464569 lineto
+80.889249 27.464569 78 24.57532 78 20.986431 curveto
+78 11.942707 lineto
+78 8.3538186 80.889249 5.4645691 84.478137 5.4645691 curveto
+closepath
+fill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+1.9999996 setlinewidth
+1 setlinejoin
+0 setlinecap
+newpath
+84.478137 5.4645691 moveto
+114.52186 5.4645691 lineto
+118.11075 5.4645691 121 8.3538186 121 11.942707 curveto
+121 20.986431 lineto
+121 24.57532 118.11075 27.464569 114.52186 27.464569 curveto
+84.478137 27.464569 lineto
+80.889249 27.464569 78 24.57532 78 20.986431 curveto
+78 11.942707 lineto
+78 8.3538186 80.889249 5.4645691 84.478137 5.4645691 curveto
+closepath
+stroke
+gsave [1 0 0 1 60 35] concat
+gsave
+1 1 1 setrgbcolor
+newpath
+84.478137 5.4645691 moveto
+114.52186 5.4645691 lineto
+118.11075 5.4645691 121 8.3538186 121 11.942707 curveto
+121 20.986431 lineto
+121 24.57532 118.11075 27.464569 114.52186 27.464569 curveto
+84.478137 27.464569 lineto
+80.889249 27.464569 78 24.57532 78 20.986431 curveto
+78 11.942707 lineto
+78 8.3538186 80.889249 5.4645691 84.478137 5.4645691 curveto
+closepath
+fill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+1.9999996 setlinewidth
+1 setlinejoin
+0 setlinecap
+newpath
+84.478137 5.4645691 moveto
+114.52186 5.4645691 lineto
+118.11075 5.4645691 121 8.3538186 121 11.942707 curveto
+121 20.986431 lineto
+121 24.57532 118.11075 27.464569 114.52186 27.464569 curveto
+84.478137 27.464569 lineto
+80.889249 27.464569 78 24.57532 78 20.986431 curveto
+78 11.942707 lineto
+78 8.3538186 80.889249 5.4645691 84.478137 5.4645691 curveto
+closepath
+stroke
+grestore
+gsave [1 0 0 1 135 39] concat
+gsave
+1 1 1 setrgbcolor
+newpath
+49.478138 38.464569 moveto
+64.521862 38.464569 lineto
+68.11075 38.464569 71 41.353819 71 44.942707 curveto
+71 53.986431 lineto
+71 57.57532 68.11075 60.464569 64.521862 60.464569 curveto
+49.478138 60.464569 lineto
+45.88925 60.464569 43 57.57532 43 53.986431 curveto
+43 44.942707 lineto
+43 41.353819 45.88925 38.464569 49.478138 38.464569 curveto
+closepath
+fill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+2 setlinewidth
+1 setlinejoin
+0 setlinecap
+newpath
+49.478138 38.464569 moveto
+64.521862 38.464569 lineto
+68.11075 38.464569 71 41.353819 71 44.942707 curveto
+71 53.986431 lineto
+71 57.57532 68.11075 60.464569 64.521862 60.464569 curveto
+49.478138 60.464569 lineto
+45.88925 60.464569 43 57.57532 43 53.986431 curveto
+43 44.942707 lineto
+43 41.353819 45.88925 38.464569 49.478138 38.464569 curveto
+closepath
+stroke
+grestore
+gsave [1 0 0 1 88 40] concat
+gsave
+1 1 1 setrgbcolor
+newpath
+49.478138 38.464569 moveto
+64.521862 38.464569 lineto
+68.11075 38.464569 71 41.353819 71 44.942707 curveto
+71 53.986431 lineto
+71 57.57532 68.11075 60.464569 64.521862 60.464569 curveto
+49.478138 60.464569 lineto
+45.88925 60.464569 43 57.57532 43 53.986431 curveto
+43 44.942707 lineto
+43 41.353819 45.88925 38.464569 49.478138 38.464569 curveto
+closepath
+fill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+2 setlinewidth
+1 setlinejoin
+0 setlinecap
+newpath
+49.478138 38.464569 moveto
+64.521862 38.464569 lineto
+68.11075 38.464569 71 41.353819 71 44.942707 curveto
+71 53.986431 lineto
+71 57.57532 68.11075 60.464569 64.521862 60.464569 curveto
+49.478138 60.464569 lineto
+45.88925 60.464569 43 57.57532 43 53.986431 curveto
+43 44.942707 lineto
+43 41.353819 45.88925 38.464569 49.478138 38.464569 curveto
+closepath
+stroke
+grestore
+gsave [1 0 0 1 28 32] concat
+gsave
+1 1 1 setrgbcolor
+newpath
+49.478138 38.464569 moveto
+64.521862 38.464569 lineto
+68.11075 38.464569 71 41.353819 71 44.942707 curveto
+71 53.986431 lineto
+71 57.57532 68.11075 60.464569 64.521862 60.464569 curveto
+49.478138 60.464569 lineto
+45.88925 60.464569 43 57.57532 43 53.986431 curveto
+43 44.942707 lineto
+43 41.353819 45.88925 38.464569 49.478138 38.464569 curveto
+closepath
+fill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+2 setlinewidth
+1 setlinejoin
+0 setlinecap
+newpath
+49.478138 38.464569 moveto
+64.521862 38.464569 lineto
+68.11075 38.464569 71 41.353819 71 44.942707 curveto
+71 53.986431 lineto
+71 57.57532 68.11075 60.464569 64.521862 60.464569 curveto
+49.478138 60.464569 lineto
+45.88925 60.464569 43 57.57532 43 53.986431 curveto
+43 44.942707 lineto
+43 41.353819 45.88925 38.464569 49.478138 38.464569 curveto
+closepath
+stroke
+grestore
+gsave
+1 1 1 setrgbcolor
+newpath
+49.478138 38.464569 moveto
+64.521862 38.464569 lineto
+68.11075 38.464569 71 41.353819 71 44.942707 curveto
+71 53.986431 lineto
+71 57.57532 68.11075 60.464569 64.521862 60.464569 curveto
+49.478138 60.464569 lineto
+45.88925 60.464569 43 57.57532 43 53.986431 curveto
+43 44.942707 lineto
+43 41.353819 45.88925 38.464569 49.478138 38.464569 curveto
+closepath
+fill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+2 setlinewidth
+1 setlinejoin
+0 setlinecap
+newpath
+49.478138 38.464569 moveto
+64.521862 38.464569 lineto
+68.11075 38.464569 71 41.353819 71 44.942707 curveto
+71 53.986431 lineto
+71 57.57532 68.11075 60.464569 64.521862 60.464569 curveto
+49.478138 60.464569 lineto
+45.88925 60.464569 43 57.57532 43 53.986431 curveto
+43 44.942707 lineto
+43 41.353819 45.88925 38.464569 49.478138 38.464569 curveto
+closepath
+stroke
+gsave
+1 1 1 setrgbcolor
+newpath
+84.478137 5.4645691 moveto
+114.52186 5.4645691 lineto
+118.11075 5.4645691 121 8.3538186 121 11.942707 curveto
+121 20.986431 lineto
+121 24.57532 118.11075 27.464569 114.52186 27.464569 curveto
+84.478137 27.464569 lineto
+80.889249 27.464569 78 24.57532 78 20.986431 curveto
+78 11.942707 lineto
+78 8.3538186 80.889249 5.4645691 84.478137 5.4645691 curveto
+closepath
+fill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+1.9999996 setlinewidth
+1 setlinejoin
+0 setlinecap
+newpath
+84.478137 5.4645691 moveto
+114.52186 5.4645691 lineto
+118.11075 5.4645691 121 8.3538186 121 11.942707 curveto
+121 20.986431 lineto
+121 24.57532 118.11075 27.464569 114.52186 27.464569 curveto
+84.478137 27.464569 lineto
+80.889249 27.464569 78 24.57532 78 20.986431 curveto
+78 11.942707 lineto
+78 8.3538186 80.889249 5.4645691 84.478137 5.4645691 curveto
+closepath
+stroke
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+84.04545 28.464569 moveto
+72 37.81751 lineto
+stroke
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+36 70.464569 moveto
+45 61.464569 lineto
+stroke
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+67.5 61.464569 moveto
+74.5 69.464569 lineto
+stroke
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+30.769231 94.464569 moveto
+39.230769 109.46457 lineto
+stroke
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+144.10526 77.464569 moveto
+152.39474 63.464569 lineto
+stroke
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+170.04054 63.464569 moveto
+181.45946 76.464569 lineto
+stroke
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+138.92857 39.464569 moveto
+120.07143 28.464569 lineto
+stroke
+gsave [1 0 0 -1 95.208977 21.764647] concat
+gsave
+/newlatin1font {findfont dup length dict copy dup /Encoding ISOLatin1Encoding put definefont} def
+/BitstreamVeraSans-Roman-ISOLatin1 /BitstreamVeraSans-Roman newlatin1font
+12 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(0) show
+grestore
+grestore
+gsave [1 0 0 -1 52.681641 54.464569] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+12 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(1) show
+grestore
+grestore
+gsave [1 0 0 1 -33 33] concat
+gsave
+1 1 1 setrgbcolor
+newpath
+49.478138 38.464569 moveto
+64.521862 38.464569 lineto
+68.11075 38.464569 71 41.353819 71 44.942707 curveto
+71 53.986431 lineto
+71 57.57532 68.11075 60.464569 64.521862 60.464569 curveto
+49.478138 60.464569 lineto
+45.88925 60.464569 43 57.57532 43 53.986431 curveto
+43 44.942707 lineto
+43 41.353819 45.88925 38.464569 49.478138 38.464569 curveto
+closepath
+fill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+2 setlinewidth
+1 setlinejoin
+0 setlinecap
+newpath
+49.478138 38.464569 moveto
+64.521862 38.464569 lineto
+68.11075 38.464569 71 41.353819 71 44.942707 curveto
+71 53.986431 lineto
+71 57.57532 68.11075 60.464569 64.521862 60.464569 curveto
+49.478138 60.464569 lineto
+45.88925 60.464569 43 57.57532 43 53.986431 curveto
+43 44.942707 lineto
+43 41.353819 45.88925 38.464569 49.478138 38.464569 curveto
+closepath
+stroke
+grestore
+gsave [1 0 0 -1 20.085938 87.464569] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+12 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(3) show
+grestore
+grestore
+gsave [1 0 0 1 -11 72] concat
+gsave
+1 1 1 setrgbcolor
+newpath
+49.478138 38.464569 moveto
+64.521862 38.464569 lineto
+68.11075 38.464569 71 41.353819 71 44.942707 curveto
+71 53.986431 lineto
+71 57.57532 68.11075 60.464569 64.521862 60.464569 curveto
+49.478138 60.464569 lineto
+45.88925 60.464569 43 57.57532 43 53.986431 curveto
+43 44.942707 lineto
+43 41.353819 45.88925 38.464569 49.478138 38.464569 curveto
+closepath
+fill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+2 setlinewidth
+1 setlinejoin
+0 setlinecap
+newpath
+49.478138 38.464569 moveto
+64.521862 38.464569 lineto
+68.11075 38.464569 71 41.353819 71 44.942707 curveto
+71 53.986431 lineto
+71 57.57532 68.11075 60.464569 64.521862 60.464569 curveto
+49.478138 60.464569 lineto
+45.88925 60.464569 43 57.57532 43 53.986431 curveto
+43 44.942707 lineto
+43 41.353819 45.88925 38.464569 49.478138 38.464569 curveto
+closepath
+stroke
+grestore
+gsave [1 0 0 -1 42.074219 125.66463] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+12 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(5) show
+grestore
+grestore
+gsave [1 0 0 -1 81.121094 86.664597] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+12 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(2) show
+grestore
+grestore
+gsave [1 0 0 -1 155.12109 55.664558] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+12 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(2) show
+grestore
+grestore
+gsave [1 0 0 -1 141.41406 93.464569] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+12 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(4) show
+grestore
+grestore
+gsave [1 0 0 -1 188.41406 93.464592] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+12 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(4) show
+grestore
+grestore
+grestore
+showpage
diff --git a/9-suffix/st-barbara.eps b/9-suffix/st-barbara.eps
new file mode 100644 (file)
index 0000000..ffd7f61
--- /dev/null
@@ -0,0 +1,771 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: inkscape 0.43
+%%Pages: 1
+%%Orientation: Portrait
+%%BoundingBox: 3 4 126 109
+%%HiResBoundingBox: 3.0666686 4.586402 125.31147 108.53179
+%%EndComments
+%%Page: 1 1
+0 114 translate
+0.8 -0.8 scale
+gsave [1 0 0 1 0 0] concat
+gsave [1 0 0 1 -53.602 25.98132] concat
+gsave [1.451273 0 0 1.451273 -23.10934 -3.890785] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+70.79388 9.0777454 moveto
+70.79388 10.300952 69.801133 11.293699 68.577927 11.293699 curveto
+67.35472 11.293699 66.361973 10.300952 66.361973 9.0777454 curveto
+66.361973 7.8545392 67.35472 6.8617921 68.577927 6.8617921 curveto
+69.801133 6.8617921 70.79388 7.8545392 70.79388 9.0777454 curveto
+closepath
+fill
+grestore
+grestore
+grestore
+gsave [-1 0 0 1 0 0] concat
+gsave
+1 1 1 setrgbcolor
+newpath
+-15.166672 47.533226 moveto
+-4.3333359 47.533226 lineto
+-4.3333359 58.366562 lineto
+-15.166672 58.366562 lineto
+-15.166672 47.533226 lineto
+closepath
+fill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+1.0000002 setlinewidth
+1 setlinejoin
+0 setlinecap
+newpath
+-15.166672 47.533226 moveto
+-4.3333359 47.533226 lineto
+-4.3333359 58.366562 lineto
+-15.166672 58.366562 lineto
+-15.166672 47.533226 lineto
+closepath
+stroke
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+74.429003 9.9121137 moveto
+25.258916 34.171521 lineto
+stroke
+gsave [1.451273 0 0 1.451273 -23.10934 -3.890785] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+70.79388 9.0777454 moveto
+70.79388 10.300952 69.801133 11.293699 68.577927 11.293699 curveto
+67.35472 11.293699 66.361973 10.300952 66.361973 9.0777454 curveto
+66.361973 7.8545392 67.35472 6.8617921 68.577927 6.8617921 curveto
+69.801133 6.8617921 70.79388 7.8545392 70.79388 9.0777454 curveto
+closepath
+fill
+grestore
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+76.415517 12.499456 moveto
+76.409055 59.414949 lineto
+stroke
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+127.07932 35.948308 moveto
+78.960914 9.8623096 lineto
+stroke
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+21.023085 37.480779 moveto
+14.061762 47.033226 lineto
+stroke
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+28.851043 58.414949 moveto
+24.251102 37.480779 lineto
+stroke
+gsave [1 0 0 -1 39.038086 21.072239] concat
+gsave
+/newlatin1font {findfont dup length dict copy dup /Encoding ISOLatin1Encoding put definefont} def
+/BitstreamVeraSans-Roman-ISOLatin1 /BitstreamVeraSans-Roman newlatin1font
+11 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(A) show
+grestore
+grestore
+gsave [1 0 0 -1 77.955757 29.641281] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+12 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(B) show
+grestore
+grestore
+gsave [1 0 0 -1 77.955757 41.641281] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+12 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(A) show
+grestore
+grestore
+gsave [1 0 0 -1 77.955757 53.641281] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+12 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(R) show
+grestore
+grestore
+gsave [1 0 0 -1 105.3923 23.214533] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+11 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(R) show
+grestore
+grestore
+gsave [1 0 0 -1 9.6766567 42.852325] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+11 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+($) show
+grestore
+grestore
+gsave [1 0 0 1 -76.92313 25.52281] concat
+gsave [1 0 0 -1 105.3923 23.214533] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+11 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(R) show
+grestore
+grestore
+grestore
+gsave [1 0 0 1 -47.307 51.3474] concat
+gsave [1.451273 0 0 1.451273 -23.10934 -3.890785] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+70.79388 9.0777454 moveto
+70.79388 10.300952 69.801133 11.293699 68.577927 11.293699 curveto
+67.35472 11.293699 66.361973 10.300952 66.361973 9.0777454 curveto
+66.361973 7.8545392 67.35472 6.8617921 68.577927 6.8617921 curveto
+69.801133 6.8617921 70.79388 7.8545392 70.79388 9.0777454 curveto
+closepath
+fill
+grestore
+grestore
+grestore
+gsave [1 0 0 1 8.23799 37.26238] concat
+gsave [-1 0 0 1 0 0] concat
+gsave
+1 1 1 setrgbcolor
+newpath
+-15.166672 47.533226 moveto
+-4.3333359 47.533226 lineto
+-4.3333359 58.366562 lineto
+-15.166672 58.366562 lineto
+-15.166672 47.533226 lineto
+closepath
+fill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+1.0000002 setlinewidth
+1 setlinejoin
+0 setlinecap
+newpath
+-15.166672 47.533226 moveto
+-4.3333359 47.533226 lineto
+-4.3333359 58.366562 lineto
+-15.166672 58.366562 lineto
+-15.166672 47.533226 lineto
+closepath
+stroke
+grestore
+grestore
+gsave [1 0 0 1 41.47266 76.63272] concat
+gsave [-1 0 0 1 0 0] concat
+gsave
+1 1 1 setrgbcolor
+newpath
+-15.166672 47.533226 moveto
+-4.3333359 47.533226 lineto
+-4.3333359 58.366562 lineto
+-15.166672 58.366562 lineto
+-15.166672 47.533226 lineto
+closepath
+fill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+1.0000002 setlinewidth
+1 setlinejoin
+0 setlinecap
+newpath
+-15.166672 47.533226 moveto
+-4.3333359 47.533226 lineto
+-4.3333359 58.366562 lineto
+-15.166672 58.366562 lineto
+-15.166672 47.533226 lineto
+closepath
+stroke
+grestore
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+20.212334 84.295606 moveto
+27.899933 63.846855 lineto
+stroke
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+49.325112 123.66595 moveto
+30.140351 63.846855 lineto
+stroke
+gsave [1 0 0 -1 12.774208 71.317413] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+11 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+( A) show
+grestore
+grestore
+gsave [1 0 0 -1 12.774208 80.117413] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+11 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+($) show
+grestore
+grestore
+gsave [1 0 0 -1 35.200005 75.494278] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+11 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(B) show
+grestore
+grestore
+gsave [1 0 0 -1 35.200005 86.494278] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+11 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+( A) show
+grestore
+grestore
+gsave [1 0 0 -1 35.200005 97.494278] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+11 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(  R) show
+grestore
+grestore
+gsave [1 0 0 -1 35.200005 108.49428] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+11 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(   A) show
+grestore
+grestore
+gsave [1 0 0 -1 35.200005 119.49428] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+11 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(    $) show
+grestore
+grestore
+gsave [1 0 0 -1 7.1004062 55.732277] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+8 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(6) show
+grestore
+grestore
+gsave [1 0 0 1 47.09967 0.5] concat
+gsave [1 0 0 1 -47.307 51.3474] concat
+gsave [1.451273 0 0 1.451273 -23.10934 -3.890785] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+70.79388 9.0777454 moveto
+70.79388 10.300952 69.801133 11.293699 68.577927 11.293699 curveto
+67.35472 11.293699 66.361973 10.300952 66.361973 9.0777454 curveto
+66.361973 7.8545392 67.35472 6.8617921 68.577927 6.8617921 curveto
+69.801133 6.8617921 70.79388 7.8545392 70.79388 9.0777454 curveto
+closepath
+fill
+grestore
+grestore
+grestore
+gsave [1 0 0 1 8.23799 37.26238] concat
+gsave [-1 0 0 1 0 0] concat
+gsave
+1 1 1 setrgbcolor
+newpath
+-15.166672 47.533226 moveto
+-4.3333359 47.533226 lineto
+-4.3333359 58.366562 lineto
+-15.166672 58.366562 lineto
+-15.166672 47.533226 lineto
+closepath
+fill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+1.0000002 setlinewidth
+1 setlinejoin
+0 setlinecap
+newpath
+-15.166672 47.533226 moveto
+-4.3333359 47.533226 lineto
+-4.3333359 58.366562 lineto
+-15.166672 58.366562 lineto
+-15.166672 47.533226 lineto
+closepath
+stroke
+grestore
+grestore
+gsave [1 0 0 1 41.47266 76.63272] concat
+gsave [-1 0 0 1 0 0] concat
+gsave
+1 1 1 setrgbcolor
+newpath
+-15.166672 47.533226 moveto
+-4.3333359 47.533226 lineto
+-4.3333359 58.366562 lineto
+-15.166672 58.366562 lineto
+-15.166672 47.533226 lineto
+closepath
+fill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+1.0000002 setlinewidth
+1 setlinejoin
+0 setlinecap
+newpath
+-15.166672 47.533226 moveto
+-4.3333359 47.533226 lineto
+-4.3333359 58.366562 lineto
+-15.166672 58.366562 lineto
+-15.166672 47.533226 lineto
+closepath
+stroke
+grestore
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+20.212334 84.295606 moveto
+27.899933 63.846855 lineto
+stroke
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+49.325112 123.66595 moveto
+30.140351 63.846855 lineto
+stroke
+gsave [1 0 0 -1 12.774208 71.317413] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+11 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+( A) show
+grestore
+grestore
+gsave [1 0 0 -1 12.774208 80.117413] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+11 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+($) show
+grestore
+grestore
+gsave [1 0 0 -1 35.200005 75.494278] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+11 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(B) show
+grestore
+grestore
+gsave [1 0 0 -1 35.200005 86.494278] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+11 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+( A) show
+grestore
+grestore
+gsave [1 0 0 -1 35.200005 97.494278] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+11 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(  R) show
+grestore
+grestore
+gsave [1 0 0 -1 35.200005 108.49428] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+11 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(   A) show
+grestore
+grestore
+gsave [1 0 0 -1 35.200005 119.49428] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+11 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(    $) show
+grestore
+grestore
+grestore
+gsave [1 0 0 1 99.5 -23] concat
+gsave [1 0 0 1 -47.307 51.3474] concat
+gsave [1.451273 0 0 1.451273 -23.10934 -3.890785] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+70.79388 9.0777454 moveto
+70.79388 10.300952 69.801133 11.293699 68.577927 11.293699 curveto
+67.35472 11.293699 66.361973 10.300952 66.361973 9.0777454 curveto
+66.361973 7.8545392 67.35472 6.8617921 68.577927 6.8617921 curveto
+69.801133 6.8617921 70.79388 7.8545392 70.79388 9.0777454 curveto
+closepath
+fill
+grestore
+grestore
+grestore
+gsave [1 0 0 1 8.23799 37.26238] concat
+gsave [-1 0 0 1 0 0] concat
+gsave
+1 1 1 setrgbcolor
+newpath
+-15.166672 47.533226 moveto
+-4.3333359 47.533226 lineto
+-4.3333359 58.366562 lineto
+-15.166672 58.366562 lineto
+-15.166672 47.533226 lineto
+closepath
+fill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+1.0000002 setlinewidth
+1 setlinejoin
+0 setlinecap
+newpath
+-15.166672 47.533226 moveto
+-4.3333359 47.533226 lineto
+-4.3333359 58.366562 lineto
+-15.166672 58.366562 lineto
+-15.166672 47.533226 lineto
+closepath
+stroke
+grestore
+grestore
+gsave [1 0 0 1 41.47266 76.63272] concat
+gsave [-1 0 0 1 0 0] concat
+gsave
+1 1 1 setrgbcolor
+newpath
+-15.166672 47.533226 moveto
+-4.3333359 47.533226 lineto
+-4.3333359 58.366562 lineto
+-15.166672 58.366562 lineto
+-15.166672 47.533226 lineto
+closepath
+fill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+1.0000002 setlinewidth
+1 setlinejoin
+0 setlinecap
+newpath
+-15.166672 47.533226 moveto
+-4.3333359 47.533226 lineto
+-4.3333359 58.366562 lineto
+-15.166672 58.366562 lineto
+-15.166672 47.533226 lineto
+closepath
+stroke
+grestore
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+20.212334 84.295606 moveto
+27.899933 63.846855 lineto
+stroke
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+49.325112 123.66595 moveto
+30.140351 63.846855 lineto
+stroke
+gsave [1 0 0 -1 12.774208 71.317413] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+11 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+( A) show
+grestore
+grestore
+gsave [1 0 0 -1 12.774208 80.117413] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+11 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+($) show
+grestore
+grestore
+gsave [1 0 0 -1 35.200005 75.494278] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+11 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(B) show
+grestore
+grestore
+gsave [1 0 0 -1 35.200005 86.494278] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+11 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+( A) show
+grestore
+grestore
+gsave [1 0 0 -1 35.200005 97.494278] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+11 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(  R) show
+grestore
+grestore
+gsave [1 0 0 -1 35.200005 108.49428] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+11 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(   A) show
+grestore
+grestore
+gsave [1 0 0 -1 35.200005 119.49428] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+11 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(    $) show
+grestore
+grestore
+grestore
+gsave [1 0 0 -1 15.400375 92.732277] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+8 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(4) show
+grestore
+grestore
+gsave [1 0 0 -1 48.400375 132.23228] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+8 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(1) show
+grestore
+grestore
+gsave [1 0 0 -1 62.500626 93.732277] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+8 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(3) show
+grestore
+grestore
+gsave [1 0 0 -1 95.800659 132.832] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+8 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(0) show
+grestore
+grestore
+gsave [1 0 0 -1 115.1004 70.232277] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+8 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(5) show
+grestore
+grestore
+gsave [1 0 0 -1 148.20006 109.23228] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+8 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(2) show
+grestore
+grestore
+grestore
+showpage
diff --git a/9-suffix/trie-c.eps b/9-suffix/trie-c.eps
new file mode 100644 (file)
index 0000000..66de36b
--- /dev/null
@@ -0,0 +1,266 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: inkscape 0.43
+%%Pages: 1
+%%Orientation: Portrait
+%%BoundingBox: 13 14 66 103
+%%HiResBoundingBox: 13.735313 14.324902 65.569958 102.30457
+%%EndComments
+%%Page: 1 1
+0 114 translate
+0.8 -0.8 scale
+gsave [1 0 0 1 0 0] concat
+gsave [1 0 0 -1 59.355213 23.722954] concat
+gsave
+/newlatin1font {findfont dup length dict copy dup /Encoding ISOLatin1Encoding put definefont} def
+/BitstreamVeraSans-Roman-ISOLatin1 /BitstreamVeraSans-Roman newlatin1font
+12 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(B) show
+grestore
+grestore
+gsave [1 0 0 -1 59.355213 38.722954] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+12 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(  U) show
+grestore
+grestore
+gsave [1 0 0 -1 59.355213 53.72295] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+12 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(    S) show
+grestore
+grestore
+gsave [1 0 0 1 -14.42006 6.989778] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+70.79388 9.0777454 moveto
+70.79388 10.300952 69.801133 11.293699 68.577927 11.293699 curveto
+67.35472 11.293699 66.361973 10.300952 66.361973 9.0777454 curveto
+66.361973 7.8545392 67.35472 6.8617921 68.577927 6.8617921 curveto
+69.801133 6.8617921 70.79388 7.8545392 70.79388 9.0777454 curveto
+closepath
+fill
+grestore
+grestore
+gsave [-1 0 0 1 0 0] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+-80.529716 117.32616 moveto
+-74.029716 117.32616 lineto
+-74.029716 123.82616 lineto
+-80.529716 123.82616 lineto
+-80.529716 117.32616 lineto
+closepath
+fill
+grestore
+grestore
+gsave [-1 0 0 1 0 0] concat
+gsave
+0.76862746 0.76862746 0.76862746 setrgbcolor
+newpath
+-58.130096 72.57988 moveto
+-51.630096 72.57988 lineto
+-51.630096 79.07988 lineto
+-58.130096 79.07988 lineto
+-58.130096 72.57988 lineto
+closepath
+fill
+grestore
+grestore
+gsave [1 0 0 1 -52.55295 -44.74628] concat
+gsave [-1 0 0 1 0 0] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+-80.529716 117.32616 moveto
+-74.029716 117.32616 lineto
+-74.029716 123.82616 lineto
+-80.529716 123.82616 lineto
+-80.529716 117.32616 lineto
+closepath
+fill
+grestore
+grestore
+grestore
+gsave [1 0 0 1 -1.43587 -61.16818] concat
+gsave [-1 0 0 1 0 0] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+-80.529716 117.32616 moveto
+-74.029716 117.32616 lineto
+-74.029716 123.82616 lineto
+-80.529716 123.82616 lineto
+-80.529716 117.32616 lineto
+closepath
+fill
+grestore
+grestore
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+0.99999911 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+54.575111 15.488046 moveto
+40.069806 44.578793 lineto
+stroke
+gsave [-1 0 0 1 93.86568 29.3914] concat
+gsave [1 0 0 1 -14.42006 6.989778] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+70.79388 9.0777454 moveto
+70.79388 10.300952 69.801133 11.293699 68.577927 11.293699 curveto
+67.35472 11.293699 66.361973 10.300952 66.361973 9.0777454 curveto
+66.361973 7.8545392 67.35472 6.8617921 68.577927 6.8617921 curveto
+69.801133 6.8617921 70.79388 7.8545392 70.79388 9.0777454 curveto
+closepath
+fill
+grestore
+grestore
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+1.0000011 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+54.414939 16.533136 moveto
+75.926943 59.675996 lineto
+stroke
+0 0 0 setrgbcolor
+[] 0 setdash
+1.0000015 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+39.513359 45.675325 moveto
+24.438951 75.907425 lineto
+stroke
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+39.897162 45.947163 moveto
+77.224554 120.80818 lineto
+stroke
+gsave [1 0 0 -1 17.169142 23.889404] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+12 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(      A) show
+grestore
+grestore
+gsave [1 0 0 -1 17.169142 38.889404] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+12 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(    U) show
+grestore
+grestore
+gsave [1 0 0 -1 17.169142 53.889404] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+12 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(  L) show
+grestore
+grestore
+gsave [1 0 0 -1 17.169142 68.889404] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+12 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(A) show
+grestore
+grestore
+gsave [1 0 0 -1 44.450729 54.32991] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+12 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(T) show
+grestore
+grestore
+gsave [1 0 0 -1 44.450729 69.32991] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+12 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(  O) show
+grestore
+grestore
+gsave [1 0 0 -1 44.450729 84.32991] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+12 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(    B) show
+grestore
+grestore
+gsave [1 0 0 -1 44.450729 99.32991] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+12 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(      U) show
+grestore
+grestore
+gsave [1 0 0 -1 44.450729 114.32991] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+12 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(        S) show
+grestore
+grestore
+grestore
+showpage
diff --git a/9-suffix/trie-cd.eps b/9-suffix/trie-cd.eps
new file mode 100644 (file)
index 0000000..3ea7d1a
--- /dev/null
@@ -0,0 +1,336 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: inkscape 0.43
+%%Pages: 1
+%%Orientation: Portrait
+%%BoundingBox: 7 6 72 108
+%%HiResBoundingBox: 7.1353134 6.9249023 71.434021 107.90457
+%%EndComments
+%%Page: 1 1
+0 114 translate
+0.8 -0.8 scale
+gsave [1 0 0 1 0 0] concat
+gsave [1 0 0 1 -14.42006 -0.010222] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+70.79388 9.0777454 moveto
+70.79388 10.300952 69.801133 11.293699 68.577927 11.293699 curveto
+67.35472 11.293699 66.361973 10.300952 66.361973 9.0777454 curveto
+66.361973 7.8545392 67.35472 6.8617921 68.577927 6.8617921 curveto
+69.801133 6.8617921 70.79388 7.8545392 70.79388 9.0777454 curveto
+closepath
+fill
+grestore
+grestore
+gsave [-1 0 0 1 0 0] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+-88.529716 126.57616 moveto
+-82.029716 126.57616 lineto
+-82.029716 133.07616 lineto
+-88.529716 133.07616 lineto
+-88.529716 126.57616 lineto
+closepath
+fill
+grestore
+grestore
+gsave [1 0 0 1 -38.64972 -44.49387] concat
+gsave [-1 0 0 1 0 0] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+-88.529716 126.57616 moveto
+-82.029716 126.57616 lineto
+-82.029716 133.07616 lineto
+-88.529716 133.07616 lineto
+-88.529716 126.57616 lineto
+closepath
+fill
+grestore
+grestore
+grestore
+gsave [1 0 0 1 -69.55295 -44.49628] concat
+gsave [-1 0 0 1 0 0] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+-88.529716 126.57616 moveto
+-82.029716 126.57616 lineto
+-82.029716 133.07616 lineto
+-88.529716 133.07616 lineto
+-88.529716 126.57616 lineto
+closepath
+fill
+grestore
+grestore
+grestore
+gsave [1 0 0 1 -0.43587 -59.16818] concat
+gsave [-1 0 0 1 0 0] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+-88.529716 126.57616 moveto
+-82.029716 126.57616 lineto
+-82.029716 133.07616 lineto
+-88.529716 133.07616 lineto
+-88.529716 126.57616 lineto
+closepath
+fill
+grestore
+grestore
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+0.99999911 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+54.575111 8.488046 moveto
+40.069806 37.578793 lineto
+stroke
+gsave [-1 0 0 1 93.86568 29.3914] concat
+gsave [1 0 0 1 -14.42006 -0.010222] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+70.79388 9.0777454 moveto
+70.79388 10.300952 69.801133 11.293699 68.577927 11.293699 curveto
+67.35472 11.293699 66.361973 10.300952 66.361973 9.0777454 curveto
+66.361973 7.8545392 67.35472 6.8617921 68.577927 6.8617921 curveto
+69.801133 6.8617921 70.79388 7.8545392 70.79388 9.0777454 curveto
+closepath
+fill
+grestore
+grestore
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+1.000001 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+54.613157 9.731354 moveto
+84.65338 69.97777 lineto
+stroke
+0 0 0 setrgbcolor
+[] 0 setdash
+1.0000019 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+39.230219 38.958502 moveto
+16.542592 84.459102 lineto
+stroke
+0 0 0 setrgbcolor
+[] 0 setdash
+1.0000004 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+39.994399 39.044403 moveto
+84.579542 128.46102 lineto
+stroke
+gsave [1 0 0 -1 8.9191418 16.889404] concat
+gsave
+/newlatin1font {findfont dup length dict copy dup /Encoding ISOLatin1Encoding put definefont} def
+/BitstreamVeraSans-Roman-ISOLatin1 /BitstreamVeraSans-Roman newlatin1font
+12 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(        A) show
+grestore
+grestore
+gsave [1 0 0 -1 8.9191418 31.889404] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+12 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(      U) show
+grestore
+grestore
+gsave [1 0 0 -1 8.9191418 46.889404] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+12 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(    L) show
+grestore
+grestore
+gsave [1 0 0 -1 8.9191418 61.889404] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+12 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(  A) show
+grestore
+grestore
+gsave [1 0 0 -1 8.9191418 76.889404] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+12 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+($) show
+grestore
+grestore
+gsave [1 0 0 -1 44.450729 47.32991] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+12 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(T) show
+grestore
+grestore
+gsave [1 0 0 -1 44.450729 62.32991] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+12 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(  O) show
+grestore
+grestore
+gsave [1 0 0 -1 44.450729 77.32991] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+12 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(    B) show
+grestore
+grestore
+gsave [1 0 0 -1 44.450729 92.32991] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+12 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(      U) show
+grestore
+grestore
+gsave [1 0 0 -1 44.450729 107.32991] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+12 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(        S) show
+grestore
+grestore
+gsave [1 0 0 -1 44.450729 122.32991] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+12 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(          $) show
+grestore
+grestore
+gsave [1 0 0 -1 59.25 16.732285] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+12 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(B) show
+grestore
+grestore
+gsave [1 0 0 -1 59.25 31.732285] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+12 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(  U) show
+grestore
+grestore
+gsave [1 0 0 -1 59.25 46.732285] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+12 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(    S) show
+grestore
+grestore
+gsave [1 0 0 -1 59.25 61.732285] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+12 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(      $) show
+grestore
+grestore
+gsave [1 0 0 1 0.700087 59.69981] concat
+gsave [1 0 0 1 -14.42006 -0.010222] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+70.79388 9.0777454 moveto
+70.79388 10.300952 69.801133 11.293699 68.577927 11.293699 curveto
+67.35472 11.293699 66.361973 10.300952 66.361973 9.0777454 curveto
+66.361973 7.8545392 67.35472 6.8617921 68.577927 6.8617921 curveto
+69.801133 6.8617921 70.79388 7.8545392 70.79388 9.0777454 curveto
+closepath
+fill
+grestore
+grestore
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+1.0000023 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+54.363165 69.442732 moveto
+47.363162 84.227805 lineto
+stroke
+gsave [1 0 0 -1 41.25 77.232285] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+12 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+($) show
+grestore
+grestore
+grestore
+showpage
diff --git a/9-suffix/trie.eps b/9-suffix/trie.eps
new file mode 100644 (file)
index 0000000..d4b9125
--- /dev/null
@@ -0,0 +1,681 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: inkscape 0.43
+%%Pages: 1
+%%Orientation: Portrait
+%%BoundingBox: 10 13 64 101
+%%HiResBoundingBox: 10.913587 13.024534 63.386462 100.77446
+%%EndComments
+%%Page: 1 1
+0 114 translate
+0.8 -0.8 scale
+gsave [1 0 0 1 0 0] concat
+gsave [1 0 0 -1 56.257626 25.635588] concat
+gsave
+/newlatin1font {findfont dup length dict copy dup /Encoding ISOLatin1Encoding put definefont} def
+/BitstreamVeraSans-Roman-ISOLatin1 /BitstreamVeraSans-Roman newlatin1font
+12 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(B) show
+grestore
+grestore
+gsave [1 0 0 -1 56.257626 40.63559] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+12 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(  U) show
+grestore
+grestore
+gsave [1 0 0 -1 56.257626 55.635586] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+12 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(    S) show
+grestore
+grestore
+gsave [1 0 0 1 -10.01765 -6.097589] concat
+gsave [1 0 0 1 7.5 -15] concat
+gsave [1 0 0 1 7.5 -15] concat
+gsave [1 0 0 1 7.5 -15] concat
+gsave [1 0 0 1 7.5 -15] concat
+0 0 0 setrgbcolor
+[] 0 setdash
+0.99999976 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+23.499999 99.09842 moveto
+16.5 113.09842 lineto
+stroke
+gsave [-0.17888538 0.3577708 -0.3577708 -0.17888538 14.867583 115.46883] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+-2.5 -1 moveto
+-2.5 1.76 -4.74 4 -7.5 4 curveto
+-10.26 4 -12.5 1.76 -12.5 -1 curveto
+-12.5 -3.76 -10.26 -6 -7.5 -6 curveto
+-4.74 -6 -2.5 -3.76 -2.5 -1 curveto
+closepath
+eofill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+1.25 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+-2.5 -1 moveto
+-2.5 1.76 -4.74 4 -7.5 4 curveto
+-10.26 4 -12.5 1.76 -12.5 -1 curveto
+-12.5 -3.76 -10.26 -6 -7.5 -6 curveto
+-4.74 -6 -2.5 -3.76 -2.5 -1 curveto
+closepath
+stroke
+grestore
+grestore
+grestore
+grestore
+grestore
+grestore
+gsave [1 0 0 1 7.41789 -15.01879] concat
+gsave [1 0 0 1 -10.01765 -6.097589] concat
+gsave [1 0 0 1 7.5 -15] concat
+gsave [1 0 0 1 7.5 -15] concat
+gsave [1 0 0 1 7.5 -15] concat
+gsave [1 0 0 1 7.5 -15] concat
+0 0 0 setrgbcolor
+[] 0 setdash
+0.99999976 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+23.499999 99.09842 moveto
+16.5 113.09842 lineto
+stroke
+gsave [-0.17888538 0.3577708 -0.3577708 -0.17888538 14.867583 115.46883] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+-2.5 -1 moveto
+-2.5 1.76 -4.74 4 -7.5 4 curveto
+-10.26 4 -12.5 1.76 -12.5 -1 curveto
+-12.5 -3.76 -10.26 -6 -7.5 -6 curveto
+-4.74 -6 -2.5 -3.76 -2.5 -1 curveto
+closepath
+eofill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+1.25 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+-2.5 -1 moveto
+-2.5 1.76 -4.74 4 -7.5 4 curveto
+-10.26 4 -12.5 1.76 -12.5 -1 curveto
+-12.5 -3.76 -10.26 -6 -7.5 -6 curveto
+-4.74 -6 -2.5 -3.76 -2.5 -1 curveto
+closepath
+stroke
+grestore
+grestore
+grestore
+grestore
+grestore
+grestore
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+0.99999976 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+66.182951 47.982522 moveto
+73.18295 61.982522 lineto
+stroke
+gsave [0.17888538 0.3577708 -0.3577708 0.17888538 74.099826 64.710701] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+-2.5 -1 moveto
+-2.5 1.76 -4.74 4 -7.5 4 curveto
+-10.26 4 -12.5 1.76 -12.5 -1 curveto
+-12.5 -3.76 -10.26 -6 -7.5 -6 curveto
+-4.74 -6 -2.5 -3.76 -2.5 -1 curveto
+closepath
+eofill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+1.25 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+-2.5 -1 moveto
+-2.5 1.76 -4.74 4 -7.5 4 curveto
+-10.26 4 -12.5 1.76 -12.5 -1 curveto
+-12.5 -3.76 -10.26 -6 -7.5 -6 curveto
+-4.74 -6 -2.5 -3.76 -2.5 -1 curveto
+closepath
+stroke
+grestore
+gsave [-1 0 0 1 82.18295 -66.1159] concat
+0 0 0 setrgbcolor
+[] 0 setdash
+0.99999976 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+23.499999 99.09842 moveto
+16.5 113.09842 lineto
+stroke
+gsave [-0.17888538 0.3577708 -0.3577708 -0.17888538 14.867583 115.46883] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+-2.5 -1 moveto
+-2.5 1.76 -4.74 4 -7.5 4 curveto
+-10.26 4 -12.5 1.76 -12.5 -1 curveto
+-12.5 -3.76 -10.26 -6 -7.5 -6 curveto
+-4.74 -6 -2.5 -3.76 -2.5 -1 curveto
+closepath
+eofill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+1.25 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+-2.5 -1 moveto
+-2.5 1.76 -4.74 4 -7.5 4 curveto
+-10.26 4 -12.5 1.76 -12.5 -1 curveto
+-12.5 -3.76 -10.26 -6 -7.5 -6 curveto
+-4.74 -6 -2.5 -3.76 -2.5 -1 curveto
+closepath
+stroke
+grestore
+grestore
+gsave [-1 0 0 1 82.18295 -66.1159] concat
+gsave [1 0 0 1 7.5 -15] concat
+0 0 0 setrgbcolor
+[] 0 setdash
+0.99999976 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+23.499999 99.09842 moveto
+16.5 113.09842 lineto
+stroke
+gsave [-0.17888538 0.3577708 -0.3577708 -0.17888538 14.867583 115.46883] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+-2.5 -1 moveto
+-2.5 1.76 -4.74 4 -7.5 4 curveto
+-10.26 4 -12.5 1.76 -12.5 -1 curveto
+-12.5 -3.76 -10.26 -6 -7.5 -6 curveto
+-4.74 -6 -2.5 -3.76 -2.5 -1 curveto
+closepath
+eofill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+1.25 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+-2.5 -1 moveto
+-2.5 1.76 -4.74 4 -7.5 4 curveto
+-10.26 4 -12.5 1.76 -12.5 -1 curveto
+-12.5 -3.76 -10.26 -6 -7.5 -6 curveto
+-4.74 -6 -2.5 -3.76 -2.5 -1 curveto
+closepath
+stroke
+grestore
+grestore
+grestore
+gsave [1 0 0 1 -17.51765 8.902412] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+70.79388 9.0777454 moveto
+70.79388 10.300952 69.801133 11.293699 68.577927 11.293699 curveto
+67.35472 11.293699 66.361973 10.300952 66.361973 9.0777454 curveto
+66.361973 7.8545392 67.35472 6.8617921 68.577927 6.8617921 curveto
+69.801133 6.8617921 70.79388 7.8545392 70.79388 9.0777454 curveto
+closepath
+fill
+grestore
+grestore
+gsave [-1 0 0 1 90.55535 9.189586] concat
+0 0 0 setrgbcolor
+[] 0 setdash
+0.99999976 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+23.499999 99.09842 moveto
+16.5 113.09842 lineto
+stroke
+gsave [-0.17888538 0.3577708 -0.3577708 -0.17888538 14.867583 115.46883] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+-2.5 -1 moveto
+-2.5 1.76 -4.74 4 -7.5 4 curveto
+-10.26 4 -12.5 1.76 -12.5 -1 curveto
+-12.5 -3.76 -10.26 -6 -7.5 -6 curveto
+-4.74 -6 -2.5 -3.76 -2.5 -1 curveto
+closepath
+eofill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+1.25 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+-2.5 -1 moveto
+-2.5 1.76 -4.74 4 -7.5 4 curveto
+-10.26 4 -12.5 1.76 -12.5 -1 curveto
+-12.5 -3.76 -10.26 -6 -7.5 -6 curveto
+-4.74 -6 -2.5 -3.76 -2.5 -1 curveto
+closepath
+stroke
+grestore
+gsave [1 0 0 1 7.5 -15] concat
+0 0 0 setrgbcolor
+[] 0 setdash
+0.99999976 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+23.499999 99.09842 moveto
+16.5 113.09842 lineto
+stroke
+gsave [-0.17888538 0.3577708 -0.3577708 -0.17888538 14.867583 115.46883] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+-2.5 -1 moveto
+-2.5 1.76 -4.74 4 -7.5 4 curveto
+-10.26 4 -12.5 1.76 -12.5 -1 curveto
+-12.5 -3.76 -10.26 -6 -7.5 -6 curveto
+-4.74 -6 -2.5 -3.76 -2.5 -1 curveto
+closepath
+eofill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+1.25 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+-2.5 -1 moveto
+-2.5 1.76 -4.74 4 -7.5 4 curveto
+-10.26 4 -12.5 1.76 -12.5 -1 curveto
+-12.5 -3.76 -10.26 -6 -7.5 -6 curveto
+-4.74 -6 -2.5 -3.76 -2.5 -1 curveto
+closepath
+stroke
+grestore
+grestore
+gsave [1 0 0 1 7.5 -15] concat
+gsave [1 0 0 1 7.5 -15] concat
+0 0 0 setrgbcolor
+[] 0 setdash
+0.99999976 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+23.499999 99.09842 moveto
+16.5 113.09842 lineto
+stroke
+gsave [-0.17888538 0.3577708 -0.3577708 -0.17888538 14.867583 115.46883] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+-2.5 -1 moveto
+-2.5 1.76 -4.74 4 -7.5 4 curveto
+-10.26 4 -12.5 1.76 -12.5 -1 curveto
+-12.5 -3.76 -10.26 -6 -7.5 -6 curveto
+-4.74 -6 -2.5 -3.76 -2.5 -1 curveto
+closepath
+eofill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+1.25 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+-2.5 -1 moveto
+-2.5 1.76 -4.74 4 -7.5 4 curveto
+-10.26 4 -12.5 1.76 -12.5 -1 curveto
+-12.5 -3.76 -10.26 -6 -7.5 -6 curveto
+-4.74 -6 -2.5 -3.76 -2.5 -1 curveto
+closepath
+stroke
+grestore
+grestore
+grestore
+gsave [1 0 0 1 7.5 -15] concat
+gsave [1 0 0 1 7.5 -15] concat
+gsave [1 0 0 1 7.5 -15] concat
+0 0 0 setrgbcolor
+[] 0 setdash
+0.99999976 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+23.499999 99.09842 moveto
+16.5 113.09842 lineto
+stroke
+gsave [-0.17888538 0.3577708 -0.3577708 -0.17888538 14.867583 115.46883] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+-2.5 -1 moveto
+-2.5 1.76 -4.74 4 -7.5 4 curveto
+-10.26 4 -12.5 1.76 -12.5 -1 curveto
+-12.5 -3.76 -10.26 -6 -7.5 -6 curveto
+-4.74 -6 -2.5 -3.76 -2.5 -1 curveto
+closepath
+eofill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+1.25 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+-2.5 -1 moveto
+-2.5 1.76 -4.74 4 -7.5 4 curveto
+-10.26 4 -12.5 1.76 -12.5 -1 curveto
+-12.5 -3.76 -10.26 -6 -7.5 -6 curveto
+-4.74 -6 -2.5 -3.76 -2.5 -1 curveto
+closepath
+stroke
+grestore
+grestore
+grestore
+grestore
+gsave [1 0 0 1 7.5 -15] concat
+gsave [1 0 0 1 7.5 -15] concat
+gsave [1 0 0 1 7.5 -15] concat
+gsave [1 0 0 1 7.5 -15] concat
+0 0 0 setrgbcolor
+[] 0 setdash
+0.99999976 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+23.499999 99.09842 moveto
+16.5 113.09842 lineto
+stroke
+gsave [-0.17888538 0.3577708 -0.3577708 -0.17888538 14.867583 115.46883] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+-2.5 -1 moveto
+-2.5 1.76 -4.74 4 -7.5 4 curveto
+-10.26 4 -12.5 1.76 -12.5 -1 curveto
+-12.5 -3.76 -10.26 -6 -7.5 -6 curveto
+-4.74 -6 -2.5 -3.76 -2.5 -1 curveto
+closepath
+eofill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+1.25 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+-2.5 -1 moveto
+-2.5 1.76 -4.74 4 -7.5 4 curveto
+-10.26 4 -12.5 1.76 -12.5 -1 curveto
+-12.5 -3.76 -10.26 -6 -7.5 -6 curveto
+-4.74 -6 -2.5 -3.76 -2.5 -1 curveto
+closepath
+stroke
+grestore
+grestore
+grestore
+grestore
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+0.99999976 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+62.144001 54.0985 moveto
+69.144 68.0985 lineto
+stroke
+gsave [0.17888538 0.3577708 -0.3577708 0.17888538 70.060876 70.826679] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+-2.5 -1 moveto
+-2.5 1.76 -4.74 4 -7.5 4 curveto
+-10.26 4 -12.5 1.76 -12.5 -1 curveto
+-12.5 -3.76 -10.26 -6 -7.5 -6 curveto
+-4.74 -6 -2.5 -3.76 -2.5 -1 curveto
+closepath
+eofill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+1.25 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+-2.5 -1 moveto
+-2.5 1.76 -4.74 4 -7.5 4 curveto
+-10.26 4 -12.5 1.76 -12.5 -1 curveto
+-12.5 -3.76 -10.26 -6 -7.5 -6 curveto
+-4.74 -6 -2.5 -3.76 -2.5 -1 curveto
+closepath
+stroke
+grestore
+gsave [-1 0 0 1 78.144 -59.99992] concat
+0 0 0 setrgbcolor
+[] 0 setdash
+0.99999976 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+23.499999 99.09842 moveto
+16.5 113.09842 lineto
+stroke
+gsave [-0.17888538 0.3577708 -0.3577708 -0.17888538 14.867583 115.46883] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+-2.5 -1 moveto
+-2.5 1.76 -4.74 4 -7.5 4 curveto
+-10.26 4 -12.5 1.76 -12.5 -1 curveto
+-12.5 -3.76 -10.26 -6 -7.5 -6 curveto
+-4.74 -6 -2.5 -3.76 -2.5 -1 curveto
+closepath
+eofill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+1.25 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+-2.5 -1 moveto
+-2.5 1.76 -4.74 4 -7.5 4 curveto
+-10.26 4 -12.5 1.76 -12.5 -1 curveto
+-12.5 -3.76 -10.26 -6 -7.5 -6 curveto
+-4.74 -6 -2.5 -3.76 -2.5 -1 curveto
+closepath
+stroke
+grestore
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+13.210032 109.76203 moveto
+19.710032 109.76203 lineto
+19.710032 116.26203 lineto
+13.210032 116.26203 lineto
+13.210032 109.76203 lineto
+closepath
+fill
+grestore
+gsave [1 0 0 1 22.39962 -44.74628] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+13.210032 109.76203 moveto
+19.710032 109.76203 lineto
+19.710032 116.26203 lineto
+13.210032 116.26203 lineto
+13.210032 109.76203 lineto
+closepath
+fill
+grestore
+grestore
+gsave [1 0 0 1 52.55295 -44.74628] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+13.210032 109.76203 moveto
+19.710032 109.76203 lineto
+19.710032 116.26203 lineto
+13.210032 116.26203 lineto
+13.210032 109.76203 lineto
+closepath
+fill
+grestore
+grestore
+grestore
+gsave [1 0 0 1 56.28622 -51.11707] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+13.210032 109.76203 moveto
+19.710032 109.76203 lineto
+19.710032 116.26203 lineto
+13.210032 116.26203 lineto
+13.210032 109.76203 lineto
+closepath
+fill
+grestore
+grestore
+gsave [1 0 0 -1 13.641984 25.994835] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+12 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(      A) show
+grestore
+grestore
+gsave [1 0 0 -1 13.641984 40.994835] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+12 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(    U) show
+grestore
+grestore
+gsave [1 0 0 -1 13.641984 55.994835] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+12 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(  L) show
+grestore
+grestore
+gsave [1 0 0 -1 13.641984 70.994835] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+12 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(A) show
+grestore
+grestore
+gsave [1 0 0 -1 41.721359 56.029743] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+12 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(T) show
+grestore
+grestore
+gsave [1 0 0 -1 41.721359 71.029743] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+12 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(  O) show
+grestore
+grestore
+gsave [1 0 0 -1 41.721359 86.029743] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+12 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(    B) show
+grestore
+grestore
+gsave [1 0 0 -1 41.721359 101.02974] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+12 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(      U) show
+grestore
+grestore
+gsave [1 0 0 -1 41.721359 116.02974] concat
+gsave
+/BitstreamVeraSans-Roman-ISOLatin1 findfont
+12 scalefont
+setfont
+0 0 0 setrgbcolor
+newpath
+0 0 moveto
+(        S) show
+grestore
+grestore
+grestore
+showpage
diff --git a/Makefile b/Makefile
new file mode 100644 (file)
index 0000000..c645585
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,6 @@
+all:
+
+upload:
+       tar czvvf - Makerules sgr.tex ~/texmf/tex/mj/mjmac.tex | ssh atrey 'cat >WWW/vyuka/sgr-2005/macros.tar.gz'
+
+.SECONDARY:
diff --git a/Makerules b/Makerules
new file mode 100644 (file)
index 0000000..65c4aed
--- /dev/null
+++ b/Makerules
@@ -0,0 +1,37 @@
+all: $P.ps
+
+%.dvi: %.tex ../sgr.tex
+       csplain $<
+
+%.pdf: %.tex ../sgr.tex
+       pdfcsplain $<
+
+%-700.tex: %.tex
+       ( echo '\magnification=700' ; cat $< ) >$@
+
+%.ps: %.dvi
+       dvips -D600 -o $@ -O-0.5in,-0.5in -t a4 $<
+
+%-a5.ps: %-700.dvi
+       dvips -D600 -o $@ -O-1in,-1in -T148mm,210mm $<
+
+%-booklet.ps: %-a5.ps
+       psbook <$< | pstops '2:0L(210mm,0)+1L(210mm,148mm)' | sed 's/^%%BoundingBox: .*/%%BoundingBox: 0 0 595 842/' >$@
+
+%-2in1.ps: %-a5.ps
+       pstops '2:0L(212mm,0mm)+1L(212mm,150mm)' <$< | sed 's/^%%BoundingBox: .*/%%BoundingBox: 0 0 595 842/' >$@
+
+mostlyclean:
+       rm -f *.dvi *.log *~ core *.o *-700.tex *-a5.ps
+
+clean:: mostlyclean
+       rm -f *.ps *.pdf
+
+upload:
+       make clean
+       ( cd .. && tar czvvf - $P ) | ssh atrey "cat >WWW/vyuka/sgr-2005/$P.tar.gz"
+       make $P.ps
+       scp -C $P.ps atrey:WWW/vyuka/sgr-2005/$P.ps
+       make clean
+
+.SECONDARY:
diff --git a/all/Makefile b/all/Makefile
new file mode 100644 (file)
index 0000000..1e34494
--- /dev/null
@@ -0,0 +1,10 @@
+P=all
+X=$(shell for a in 1 2 3 4 5 6 7 8 9 ; do echo ../$$a-*/$$a-*.tex ; done)
+
+include ../Makerules
+
+all.tex: $(X) preprocess
+       ./preprocess $(X) >$@
+
+clean::
+       rm -f all.tex
diff --git a/all/preprocess b/all/preprocess
new file mode 100755 (executable)
index 0000000..b459f13
--- /dev/null
@@ -0,0 +1,24 @@
+#!/usr/bin/perl
+
+use warnings;
+use strict;
+
+print <<EOF ;
+\\input ../sgr.tex
+EOF
+foreach my $f (@ARGV) {
+       my $d = $f;
+       $d =~ s@/[^/]*$@/@;
+       open X, $f or die;
+       while (<X>) {
+               /^\\input .*sgr\.tex/ && next;
+               /^\\bye/ && last;
+               s@\\(figure|epsfbox){([^}]+)}@\\$1\{$d$2}@g;
+               print;
+       }
+       close X;
+       print "\\bigbreak\\bigbreak\n";
+}
+print <<EOF ;
+\\bye
+EOF
diff --git a/sgr.tex b/sgr.tex
new file mode 100644 (file)
index 0000000..042aec1
--- /dev/null
+++ b/sgr.tex
@@ -0,0 +1,74 @@
+% Makra pro sazbu poznamek ze Seminare z grafovych algoritmu
+
+\input mjmac.tex
+\input epsf.tex
+
+\language=\czech
+\chyph
+
+% A4 s 0.5in okraji
+\hsize=184.6mm
+\vsize=271.6mm
+
+\parindent=0.25in
+
+% Zacatek prednasky {cislo prednasky}{jmeno prednasky}{jmeno zapisovatele}
+\def\prednaska#1#2#3{%
+\line{{\Large\bf #1. #2} \hfil {\it (#3)}}
+\medskip
+\hrule
+\medskip
+}
+
+% Nadpis {text}
+\def\h#1{\bigbreak\leftline{\bf #1}\smallskip}
+
+% Zvyrazneny zacatek odstavce coby podnadpis (napr. vety apod.)
+\def\s#1{\noindent {\bo #1}}
+
+% Ctverecek na konci dukazu
+%\def\qed{{\parfillskip=0pt\quad\hfil\hbox{\I QED} \par}}
+\def\qed{\hfill\allowbreak\hfill\nobreak $\heartsuit$\par}
+
+% Poznamky pod carou
+\newcount\footcnt
+\footcnt=0
+\def\foot#1{\global\advance\footcnt by 1{\parindent=0.25in\parskip=0pt\footnote{$^{[\the\footcnt]}$}{#1}}}
+
+% \noindent se casto hodi, tak na nej mame zkratku
+\let\>=\noindent
+
+% Sazba algoritmu:
+%      \algo
+%      \:krok
+%      \:krok
+%      \::vnoreny krok
+%      \endalgo
+
+\def\algo{
+\interlistskip
+\begingroup
+\let\:=\algoitem
+\let\*=\algohang
+\parskip=1pt plus 1pt minus 0.3pt
+\itemcount=0
+}
+\def\endalgo{\interlistskip\endgroup}
+\def\algoitem{\par
+\parindent=2em
+\hangindent=4em
+\hangafter=1
+\advance\itemcount by 1
+\leavevmode\hbox to 2em{\hss \the\itemcount. }%
+\futurelet\next\algoitemh}
+\def\algoitemh{\ifx\next:\let\next=\algohang\else\let\next=\relax\fi\next}
+\def\algohang:{\advance\hangindent by 2em \hskip 2em\futurelet\next\algoitemh}
+
+% Nekolikapismenkova promenna (mozno pouzit v textovem i math modu)
+\def\<#1>{\hbox{\it #1}}
+
+% Asymptoticke O-cko
+\def\O{{\cal O}}
+
+% Vlozeni obrazku {obrazek}{popisek}{sirka}
+\def\figure#1#2#3{\bigskip\vbox{\centerline{\epsfxsize=#3\epsfbox{#1}}\smallskip\centerline{#2}}\bigskip}