From 8606454ddc9d2bf1eb61d0d3cbe689d7c10c57db Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Wed, 13 Aug 2008 23:44:50 +0000 Subject: update --- LaTeX/chapters/implementierung.tex | 87 +- LaTeX/diplomarbeit.pdf | 1558 ++++++++++++++++++------------------ 2 files changed, 817 insertions(+), 828 deletions(-) diff --git a/LaTeX/chapters/implementierung.tex b/LaTeX/chapters/implementierung.tex index 90fd713..29e451b 100644 --- a/LaTeX/chapters/implementierung.tex +++ b/LaTeX/chapters/implementierung.tex @@ -229,6 +229,8 @@ Die Kapselung eines \textit{VSAbstractEvent}-Objektes in einem \textit{VSTask}-O Jede Simulation besitzt genau eine Instanz von \textit{VSTaskManager}. Eine Instanz dieser Klasse stellt den Task-Manager dar. Er verwaltet alle \textit{VSTask}-Instanzen und berprft periodisch, ob es auszufhrende Ereignisse gibt. Der Task-Manager unterscheidet zwischen globalen und lokalen Ereignissen. Hierbei werden alle globalen Ereignisse (gekapselt in einem \textit{VSTask}-Objekt) in einer Prioritts-Warteschlange (vgl. \cite{Algorithms}, \cite{AlgorithmsC}) abgelegt. Die Prioritts-Warteschlange stellt hierbei die korrekte Ereigniseintrittsreihenfolge sicher. Da sich die lokalen Zeiten aller beteiligten Prozesse voneinander unterscheiden knnen, muss fr jeden Prozess eine separate lokale Prioritts-Warteschlange verwendet werden, auf die jedes Prozessobjekt seine eigene Referenz hat. In den lokalen Warteschlangen sind die geplanten lokalen Ereignisse (auch gekapselt in einem \textit{VSTask}-Objekt) abgelegt. Der Task-Manager greift ber eine \textit{java.util.ArrayList} auf alle Prozessobjekte zu und kann somit auch auf alle lokalen Warteschlangen zugreifen und diese verwalten. +Eine Instanz von \textit{VSMessage} stellt eine Nachricht dar, die von einem Prozess verschickt wird. Da \textit{VSMessage} von \textit{VSPrefs} erbt, knnen zwischen zwei Prozessen beliebige Datentypen (s. Tabelle \ref{tb:VariablenDatentypen}.) ber eine Nachricht verschickt werden. Anschlieend wird fr jeden Empfngerprozess ein neues Ereignisobjekt der Klasse \textit{VSMessageReceiveEvent} angelegt, welches eine Referenz der verschickten Nachricht besitzt (s. Abb. \ref{fig:Wrapping}.). Danach wird ein \textit{VSTask}-Objekt instantiiert, in dem die Referenz auf das Ereignisobjekt und das dazugehrige Prozessobjekt sowie die Ereigniseintrittszeit als Attribute gespeichert werden. Das \textit{VSTask}-Objekt wird dann dem Task-Manager bergeben, der das dazugehrige Ereignis ausfhrt, wenn die Ereigniseintrittszeit eingetroffen ist. Via Java-Polymorphie wird hier das \textit{VSMessageReceiveEvent}-Objekt in ein \textit{VSAbstractEvent} umgewandelt und so in \textit{VSTask} abgelegt. + \begin{figure}[h] \centering \includegraphics[width=10.0cm]{images/core} @@ -236,7 +238,9 @@ Jede Simulation besitzt genau eine Instanz von \textit{VSTaskManager}. Eine Inst \label{fig:PackageCore} \end{figure} -Eine Instanz von \textit{VSMessage} stellt eine Nachricht dar, die von einem Prozess verschickt wird. Da \textit{VSMessage} von \textit{VSPrefs} erbt, knnen zwischen zwei Prozessen beliebige Datentypen (s. Tabelle \ref{tb:VariablenDatentypen}.) ber eine Nachricht verschickt werden. Anschlieend wird fr jeden Empfngerprozess ein neues Ereignisobjekt der Klasse \textit{VSMessageReceiveEvent} angelegt, welches eine Referenz der verschickten Nachricht besitzt (s. Abb. \ref{fig:Wrapping}.). Danach wird ein \textit{VSTask}-Objekt instantiiert, in dem die Referenz auf das Ereignisobjekt und das dazugehrige Prozessobjekt sowie die Ereigniseintrittszeit als Attribute gespeichert werden. Das \textit{VSTask}-Objekt wird dann dem Task-Manager bergeben, der das dazugehrige Ereignis ausfhrt, wenn die Ereigniseintrittszeit eingetroffen ist. Via Java-Polymorphie wird hier das \textit{VSMessageReceiveEvent}-Objekt in ein \textit{VSAbstractEvent} umgewandelt und so in \textit{VSTask} abgelegt. +Erwhnenswert ist auch die Klasse \textit{VSMessageStub}, welche ein \textit{VSMessage} kapselt. Ihr Zweck ist das Verstecken einiger Methoden vor dem Protokoll-API, welches fr die Erstellung eigener Protokolle dient. Der Protokoll-Entwickler soll mglichst nichts falsch machen knnen und deswegen soll dem Protokoll-API ein eingeschrnkter Funktionsumfang zur Verfgung gestellt werden. Da sich \textit{VSMessageStub} im selben Paket wie \textit{VSMessage} befindet, kann \textit{VSMessageStub} auf paket-private Methoden von \textit{VSMessage} zugreifen. Protokolle hingegen werden in einem anderen Paket implementiert und haben somit keinen Zugriff auf diese paket-privaten Methoden. Zwar kann der Protokollentwickler ein eigenes \textit{VSMessageStub}-Objekt anlegen, jedoch kann er auf diese Weise besser unterscheiden, auf welche Methoden er zugreifen sollte, und auf welche nicht. + +Der Task-Manager speichert anschlieend die Nachrichtenempfangsereignisse in seiner globalen Warteschlange. Die Nachricht kommt bei einem Empfngerprozess an, sobald das Ereignis fr den Empfang eintritt. Fr die korrekte Implementierung der Lamport- und Vektor-Zeitstempel wird jeder Nachricht automatisch eine Referenz auf die Lamport- sowie auf die Vektor-Zeitstempel des sendenden Prozesses als Attribut beigefgt. Fr die berprfung des Protokolls wird in jeder Nachricht auch der Klassenname des jeweiligen Protokolls abgespeichert. \begin{figure}[h] \centering @@ -245,10 +249,6 @@ Eine Instanz von \textit{VSMessage} stellt eine Nachricht dar, die von einem Pro \label{fig:Wrapping} \end{figure} -Erwhnenswert ist auch die Klasse \textit{VSMessageStub}, welche ein \textit{VSMessage} kapselt. Ihr Zweck ist das Verstecken einiger Methoden vor dem Protokoll-API, welches fr die Erstellung eigener Protokolle dient. Der Protokoll-Entwickler soll mglichst nichts falsch machen knnen und deswegen soll dem Protokoll-API ein eingeschrnkter Funktionsumfang zur Verfgung gestellt werden. Da sich \textit{VSMessageStub} im selben Paket wie \textit{VSMessage} befindet, kann \textit{VSMessageStub} auf paket-private Methoden von \textit{VSMessage} zugreifen. Protokolle hingegen werden in einem anderen Paket implementiert und haben somit keinen Zugriff auf diese paket-privaten Methoden. Zwar kann der Protokollentwickler ein eigenes \textit{VSMessageStub}-Objekt anlegen, jedoch kann er auf diese Weise besser unterscheiden, auf welche Methoden er zugreifen sollte, und auf welche nicht. - -Der Task-Manager speichert anschlieend die Nachrichtenempfangsereignisse in seiner globalen Warteschlange. Die Nachricht kommt bei einem Empfngerprozess an, sobald das Ereignis fr den Empfang eintritt. Fr die korrekte Implementierung der Lamport- und Vektor-Zeitstempel wird jeder Nachricht automatisch eine Referenz auf die Lamport- sowie auf die Vektor-Zeitstempel des sendenden Prozesses als Attribut beigefgt. Fr die berprfung des Protokolls wird in jeder Nachricht auch der Klassenname des jeweiligen Protokolls abgespeichert. - Eine Instanz von \textit{VSInternalProcess} reprsentiert einen simulierten Prozess. Ein \textit{VSInternalProcess} stellt alle vom Simulator intern verwendeten Methoden zur Verfgung, whrend ein \textit{VSAbstractProcess} lediglich Methoden hat, die der Protokollentwickler fr die Erstellung eigener Protokolle verwenden darf. Da \textit{VSAbstractProcess} abstrakt ist und hiervon keine Instanz gebildet werden darf, muss fr einen neuen Prozesses stets ein \textit{VSInternalProcess}-Objekt erstellt werden. Via Polymorphie wird dieses Objekt nach \textit{VSAbstractProcess} umgewandelt und so dem Protokoll-API zur Verfgung gestellt. Beispielsweise darf mit \textit{getTasks()} nur vom Simulator intern auf die Prioritts-Warteschlangen zugegriffen werden, whrend man im Protokoll-API selbiges vermeiden sollte und dies auch gar nicht direkt mglich ist. Hier wre auch ein Stub-Objekt \textit{VSProcessStub} denkbar gewesen. Da aber fast jede Millisekunde auf die Methoden von \textit{VSInternalProcess} zugegriffen wird, wurde hier aus Performance-Grnden der Weg ber eine Vererbungsstufe preferiert. Alle einstellbaren Prozessvariablen werden von der Klasse \textit{VSPrefs} geerbt. Damit bei Neuberechnungen die Variablen nicht dauernd ber eine \textit{HashMap} von \textit{VSPrefs} zugegriffen werden muss, speichert \textit{VSInternalProcess} aus Performance-Grnden einige Variablen als lokale Kopie ab. Zum Beispiel wird fr die lokale Prozesszeit nicht auf das \textit{HashMap}-Objekt von \textit{VSPrefs}, sondern auf das Klassenattribut \textit{private long localTime} zugegriffen. Vor und nach dem Editieren ber den Prozesseditor werden die \textit{VSPrefs}, bzw. die lokalen Kopien, auf den neuesten Stand gebracht. Selbiges gilt fr weitere Variablen, wie z.B. der Uhrabweichung eines Prozesses. @@ -277,6 +277,8 @@ In diesem Beispiel wurden zwei Ereignisse (Absturz- und Wiederbelebung eines geg In diesem Abschnitt wird auf die Implementierung der Protokolle und das Protokoll-API eingegangen. Im Protokoll-API wird in der Regel nicht direkt auf den Task-Manager und auf die explizite Instantiierung von Ereignisobjekten zurckgegriffen, da dies vom API automatisch durchgef\"{u}hrt wird. +In Abbildung \ref{fig:PackageProtocols}. sind die Pakete \textit{protocols} und \textit{protocols.implementations} dargestellt, welche fr die Protokollimplementierungen zustndig sind. \textit{VSAbstractProtocol} stellt lediglich gemeinsame Methoden und Attribute zur Verfgung, die von allen Protokollen verwendet werden knnen. Jedes Protokoll hat im Paket \textit{protocols.implementations} seine eigene Klasse, die von \textit{VSAbstractProtocol} erbt. Im Prinzip besitzt jedes Prozessobjekt von jedem Protokoll seine eigene Instanz. Bei \textit{10} Protokollen und \textit{3} beteiligten Prozessen werden also \textit{30} Protokollobjekte verwendet. Jedes Protokollobjekt verwaltet sowohl die Server- als auch die Clientseite eines Protokolls auf einmal. Dabei merkt sich \textit{VSAbstractProtocol} anhand einer Flagge, ob der aktuelle Kontext server- oder clientbezogen ist, und fhrt dementsprechend beim Eintreffen von Ereignissen die Server- bzw. Clientmethoden des Protokolls auf. \textit{VSAbstractProtocol} berprft auch, ob ein Client oder ein Server berhaupt aktiviert ist. + \begin{figure}[h] \centering \includegraphics[width=12cm]{images/protocols} @@ -284,8 +286,6 @@ In diesem Abschnitt wird auf die Implementierung der Protokolle und das Protokol \label{fig:PackageProtocols} \end{figure} -In Abbildung \ref{fig:PackageProtocols}. sind die Pakete \textit{protocols} und \textit{protocols.implementations} dargestellt, welche fr die Protokollimplementierungen zustndig sind. \textit{VSAbstractProtocol} stellt lediglich gemeinsame Methoden und Attribute zur Verfgung, die von allen Protokollen verwendet werden knnen. Jedes Protokoll hat im Paket \textit{protocols.implementations} seine eigene Klasse, die von \textit{VSAbstractProtocol} erbt. Im Prinzip besitzt jedes Prozessobjekt von jedem Protokoll seine eigene Instanz. Bei \textit{10} Protokollen und \textit{3} beteiligten Prozessen werden also \textit{30} Protokollobjekte verwendet. Jedes Protokollobjekt verwaltet sowohl die Server- als auch die Clientseite eines Protokolls auf einmal. Dabei merkt sich \textit{VSAbstractProtocol} anhand einer Flagge, ob der aktuelle Kontext server- oder clientbezogen ist, und fhrt dementsprechend beim Eintreffen von Ereignissen die Server- bzw. Clientmethoden des Protokolls auf. \textit{VSAbstractProtocol} berprft auch, ob ein Client oder ein Server berhaupt aktiviert ist. - \begin{figure}[h] \centering \includegraphics[width=10cm]{images/ss-protokollvariablen} @@ -534,9 +534,9 @@ Wenn eine Simulatorversion versucht eine abgespeicherte Simulation eines nicht i \section{GUI sowie Simulationsvisualisierung} -Das Paket \textit{simulator} (s. Abb. \ref{fig:PackageProtocols}.) implementiert die graphische Benutzeroberflche des Simulators. Ausnahmen stellen die Editorklassen in \textit{prefs.editors} sowie die Klasse \textit{utils.VSFrame} dar. +Das Paket \textit{simulator} (s. Abb. \ref{fig:PackageProtocols}.) enthlt die Implementierung der graphischen Benutzeroberflche des Simulators. Einzigste Ausnahmen sind die Editorklassen in \textit{prefs.editors} sowie die Klasse \textit{utils.VSFrame} dar. -Beim Starten des Simulators wird auf \textit{main}-Methode, welche sich in \textit{VSMain} befindet, aufgerufen. Sie instantiiert ein \textit{VSDefaultPrefs}-Objekt, worin alle Standardeinstellungen des Simulators abgelegt sind. Anschlieend wird ein \textit{VSSimulatorFrame} erzeugt, welches ein Simulatorfenster (s. Abb. \ref{fig:NeuesFenster}.) implementiert. Das Simulatorfenster erstellt fr jede neue Simulation jeweils ein Objekt der Klasse \textit{VSSimulator}, wobei jede Simulation im Simulationsfenster einen eigenen Tab besitzt (s. Abb. \ref{fig:NeuErstellteSimulation}., unten links). Jede Simulation besitzt dabei eine eigene Simulationsnummer. Jedes \textit{VSSimulator}-Objekt greift auf die Klasse \textit{VSSimulatorVisualization} zurck, welche die Simulationsvisualisierung (s. Abb. \ref{fig:Visualisierung}.) implementiert. +Beim Starten des Simulators wird die \textit{main}-Methode, welche sich in \textit{VSMain} befindet, aufgerufen. Sie instantiiert ein \textit{VSDefaultPrefs}-Objekt, in welchem alle Standardeinstellungen des Simulators definiert sind. Anschlieend wird ein \textit{VSSimulatorFrame} erzeugt, welches ein Simulatorfenster (s. Abb. \ref{fig:NeuesFenster}.) implementiert. Das Simulatorfenster erstellt fr jede neue Simulation jeweils ein Objekt der Klasse \textit{VSSimulator}, wobei jede Simulation im Simulationsfenster einen eigenen Tab besitzt (s. Abb. \ref{fig:NeuErstellteSimulation}., unten links). Jede Simulation besitzt dabei eine eigene Simulationsnummer. Jedes \textit{VSSimulator}-Objekt greift auf die Klasse \textit{VSSimulatorVisualization} zurck, welche die Visualisierung der Simulation realisiert (s. Abb. \ref{fig:Visualisierung}.) . \begin{figure}[h] \centering @@ -545,27 +545,27 @@ Beim Starten des Simulators wird auf \textit{main}-Methode, welche sich in \text \label{fig:PackageProtocols} \end{figure} -\textit{VSSimulatorVisualization} greift auf Java's Grafikbibliothek Java2D (siehe \cite{Java2d}, \cite{Java2DAPI}, \cite{Games}) zurck und ist aus Performance-Grnden mit dem Simulationsverlauf stark verzahnt. Klassenattribute, die von Simulationseinstellungen und den Fenstergr\"{o}en abhngigig sind, werden nur wenn es ntig ist neu berechnet. +\textit{VSSimulatorVisualization} greift auf Java's Grafikbibliothek Java2D (siehe \cite{Java2d}, \cite{Java2DAPI}, \cite{Games}) zu und ist zur Optimierung der Performance mit dem Simulationsverlauf stark verzahnt. Klassenattribute, die von Simulationseinstellungen und den Fenstergr\"{o}en abhngigig sind, werden so nur dann neu neu berechnet wenn dies erforderlich ist. -Die Klasse \textit{VSMenuItemStates} wird fr die Synchronisierung des Simulationsstatusses verwendet. Abhngig davon kann der Benutzer bestimmte Aktionen durchfhren oder nicht. Zum Beispiel kann eine Simulation nur pausiert werden, wenn sie aktuell abgespielt wird. Alle hier mglichen Aktionen sind bereits aus Kapitel 2.1. bekannt. +Die Klasse \textit{VSMenuItemStates} wird fr die Synchronisierung der graphischen Elemente des GUI's mit dem Status der Simulation verwendet. Abhngig vom Simulationsstatus kann der Benutzer bestimmte Aktionen entweder durchfhren oder nicht. Zum Beispiel kann eine Simulation nur pausiert werden, wrend sie abgespielt wird. Alle hier mglichen Aktionen sind bereits aus Kapitel 2.1. bekannt. -Die Klasse \textit{VSCreateTask} wird vom Ereigniseditor verwendet. Der Ereigniseditor (s. Abb. \ref{fig:SidebarMitEreignissen}.) wird in der Klasse \textit{VSSimulator} implementiert. Hinter jeder Ereignisauswahl verbirgt sich ein \textit{VSCreateTask}-Objekt, welches angibt wie das ein Ereignis anzulegen ist. +Die Klasse \textit{VSCreateTask} wird vom Ereigniseditor verwendet. Der Ereigniseditor (s. Abb. \ref{fig:SidebarMitEreignissen}.) wird in der Klasse \textit{VSSimulator} implementiert. Hinter jeder Ereignisauswahl verbirgt sich ein \textit{VSCreateTask}-Objekt, welches vorgibt wie das ein Ereignis anzulegen ist. -Die Klasse \textit{VSLogging} kapselt f\"{u}r das Loggen von Nachrichten ein \textit{JTextArea}-Objekt ein. In dieser Klasse werden alle Logfunktionen implementiert. Die \textit{JTextArea} wird f\"{u}r die Darstellung dem Simulationsobjekt \textit{VSSimulator} \"{u}bergeben. Fr den Logfilter wird auf das Java-Standardpaket \textit{java.util.regex} (s. \cite{Regexp}) zugegriffen, womit anhand von regulren Ausdrcken in Java-Syntax die Logs gefiltert werden knnen (s. Kap. 2.2.2. im Abschnitt Logfilter). +Die Klasse \textit{VSLogging} kapselt f\"{u}r das Loggen von Nachrichten die Attribute eines \textit{JTextArea}-Objektes. In dieser Klasse werden alle Logfunktionen implementiert. Die \textit{JTextArea} wird f\"{u}r die Darstellung dem Simulationsobjekt \textit{VSSimulator} \"{u}bergeben. Fr den Logfilter wird auf das Java-Standardpaket \textit{java.util.regex} (s. \cite{Regexp}) zugegriffen. Dadurch knnen anhand von regulren Ausdrcken in Java-Syntax die Logs gefiltert werden (s. Kap. 2.2.2.). \subsubsection{Threads und Zeitsynchronisierung} -Der Simulator soll auf jede Millisekunde genau simulieren k\"{o}nnen und jede simulierte Sekunde soll dabei relativ zur echten Zeit fortschreiten. Die Simulationsabspielgeschwindigkeit lsst sich bei den Simulationseinstellungen unter ``Abspielgeschwindigkeit der Simulation'' (Float: \textit{sim.clock.speed}) einstellen (s. Kap. 2.4.2.). Hierf\"{u}r muss folgendes bercksichtigt werden: +Der Simulator soll auf die Millisekunde genau simulieren k\"{o}nnen und dabei soll jede simulierte Sekunde relativ zur echten Zeit fortschreiten. Die Simulationsabspielgeschwindigkeit lsst sich bei den Simulationseinstellungen unter ``Abspielgeschwindigkeit der Simulation'' (Float: \textit{sim.clock.speed}) einstellen (s. Kap. 2.4.2.). Hierf\"{u}r muss folgendes bercksichtigt werden: \begin{itemize} - \item Das Zeichnen der Visualisierung bentigt pro Aktualisierung einige Millisekunden. Hier werden stndig mathematische Berechnungen (z.B. die Berechnung einer Nachrichtenlinie, die automatische Skalierung des Diagramms, u.s.w.) durchgef\"{u}hrt. - \item Das Neuberechnen der Simulation bentigt pro Aktualisierung einige Millisekunden. Hier wird insbesondere der Task-Manager beansprucht, welcher berprft, ob Ereignisse auszufhren sind. - \item Jeder simulierte Prozess sollte mit der selben Geschwindigkeit fortschreiten, und dies auf jedem Betriebssystem und auf jeder Architektur. Da Java-Threads nicht komplett plattformunabhngig sind (Threads sind im Betriebssystem implementiert), k\"{o}nnte das Verhalten auf verschiedenen Betriebssystemen oder Architekturen variieren. Auerdem bernimmt das Betriebssystem die Entscheidung, wann welcher Thread arbeiten darf. Auer man synchronisiert Threads manuell so, dass sie den eigenen Ansprchen entsprechen. Letzteres bedeutet aber auch mehr Programmieraufwand. - \item Die Simulationszeit ist stets in Millisekunden angegeben und sie wird intern in einer \textit{long}-Variable abgespeichert. Somit kann eine Simulationszeit immer nur den Wert einer ganze Zahl betragen. Berechnungsrundungsfehler wegen \textit{sim.clock.speed} (s. Kap. 2.4.2.) mssen bercksichtigt werden. - \item Der Simulator soll nicht stndig die komplette CPU des Anwender-Computers voll auslasten. + \item Das Zeichnen der Visualisierung bentigt pro Aktualisierung einige Millisekunden. Hier werden stndig mathematische Berechnungen wie z.B. die Berechnung einer Nachrichtenlinie oder die automatische Skalierung des Diagramms durchgef\"{u}hrt. + \item Das Neuberechnen der Simulation bentigt pro Aktualisierung einige Millisekunden. Hier arbeitet insbesondere der Task-Manager, welcher berprft, ob Ereignisse auszufhren sind. + \item Jeder simulierte Prozess sollte mit der selben Geschwindigkeit fortschreiten, und dies auf jedem Betriebssystem und auf jeder Architektur. Da Threads auf Betriebssystemebene implementiert sind sind Java-Threads nicht komplett plattformunabhngig. Dadurch kann das Verhalten auf je nach Betriebssystem und Architekturen variieren. Insbesondere bernimmt das Betriebssystem die Entscheidung, wann welcher Thread arbeiten darf. + \item Die Simulationszeit wird stets in Millisekunden angegeben und sie wird intern in einer \textit{long}-Variable abgespeichert. Somit kann eine Simulationszeit immer nur den Wert einer ganze Zahl betragen. Berechnungsrundungsfehler durch \textit{sim.clock.speed} (s. Kap. 2.4.2.) mssen bercksichtigt werden. + \item Der Simulator soll die komplette CPU des Anwender-Computers nicht konstant auslasten. \end{itemize} -Es wurde eine Lsung gewhlt, bei der lediglich ein einziger Thread fr die Visualisierung und die Berechnung der Simulation zustndig ist. Der Algorithmus verluft in leicht vereinfachter Form wie folgt ab: +Es wurde eine Lsung gewhlt, bei der lediglich ein einziger Thread fr die Visualisierung und die Berechnung der Simulation zustndig ist. Der Algorithmus verluft in vereinfachter Form wie folgt ab: \begin{enumerate} \item Die aktuelle simulierte globale Zeit sei $t$ und die globale Zeit wo die Simulation endet sei $e$. @@ -581,13 +581,13 @@ for (i = t; i < t + v + p && i < e; i++) \item Bei Punkt 2 mit neuer Startzeit $t := t + v + p$ weitermachen. \end{enumerate} -Zus\"{a}tzlich muss noch die Simulationsvariable \textit{sim.clock.speed} ber\"{u}cksichtigt werden. Sie wurde wegen der bersicht im obigen Algorithmus nicht ber\"{u}cksichtigt. Intern hat der Simulator jeweils die echte Zeit und die Simulationszeit abgespeichert. Es werden stndig die verstrichenen echten Zeiten gemessen und anschlieend anhand von \textit{sim.clock.speed} die neuen tatschlichen Simulationszeiten berechnet. Die Rundungsfehler werden pro Durchgang in eine \textit{double}-Variable (Fliekommazahl doppelter Genauigkeit) abgespeichert. Wenn der Betrag der Rundungsfehler $>= 1$ ist, dann wird davon der ganze Werteanteil in der Simulationszeit bercksichtigt. F\"{u}r jede lokale Prozesszeit sowie der dazugeh\"{o}rigen lokalen Uhrabweichung wird \"{a}hnlich verfahren. +Zus\"{a}tzlich muss noch die Simulationsvariable \textit{sim.clock.speed} ber\"{u}cksichtigt werden. Sie wurde zur verbesserten bersicht im obigen Algorithmus nicht extra angegeben. Intern speichert der Simulator jeweils die echte Zeit und die Simulationszeit. Die verstrichenen echten Zeiten werden dabei stndig gemessen und anschlieend mit \textit{sim.clock.speed} die neuen tatschlichen Simulationszeiten berechnet. Die Rundungsfehler werden pro Durchgang in einer \textit{double}-Variable (Fliekommazahl doppelter Genauigkeit) abgespeichert. Wenn der Betrag der Rundungsfehler $>= 1$ ist, dann wird davon der gesamte Werteanteil in der Simulationszeit bercksichtigt. F\"{u}r jede lokale Prozesszeit sowie der dazugeh\"{o}rigen lokalen Uhrabweichung wird \"{a}hnlich verfahren. -Jede Simulation besitzt somit seinen eigenen Simulationsthread. Des Weiteren gibt es noch den Java Swing-Thread (s. \cite{Swing}), der fr die GUI und somit auch f\"{u}r die Anwenderinteraktion zustndig ist. Der Anwender kann zu jedem Zeitpunkt in die Simulation eingreifen, weshalb alle Anwendereingriffe synchronisiert werden. +Jede Simulation besitzt somit seinen eigenen Simulationsthread. Des Weiteren gibt es noch den Java Swing-Thread (s. \cite{Swing}), der fr das GUI und f\"{u}r die Anwenderinteraktion zustndig ist. Der Anwender kann zu jedem Zeitpunkt in die Simulation eingreifen, weswegen die Behandlund derAnwendereingriffe synchronisiert wurde. \section{Serialisierung und Deserialisierung von Simulationen} -Der Anwender kann eine erstellte Simulation im Datei-Men speichern oder eine bereits abgespeicherte Simulation laden. Hierbei wird von der aus Java angebotenen Mglichkeit Objekte zu Serialisieren Gebrauch gemacht. Im Paket \textit{serialize} (s. Abb. \ref{fig:PackageSerialize}.) befinden sich Helfer, die bei der Serialisierung einer Simulation unterst\"{u}tzend sind. +Der Anwender kann eine erstellte Simulation im Datei-Men speichern oder eine bereits abgespeicherte Simulation laden. Hierbei wird von der aus Java angebotenen Mglichkeit Objekte zu Serialisieren Gebrauch gemacht. Im Paket \textit{serialize} (s. Abb. \ref{fig:PackageSerialize}.) befinden sich Hilfsklassen, die die Serialisierung einer Simulation unterst\"{u}tzen. Da nicht alle Daten f\"{u}r die Speicherung einer Simulation relevant sind, wird nur eine Auswahl von Klassenattributen serialisiert. Zum Beispiel werden alle Simulationseinstellungen serialisiert, nicht jedoch GUI-Objekte. Alle serialisierbaren Klassen implementieren das Interface \textit{VSSerializable} mit folgenden zwei Methoden: @@ -596,7 +596,7 @@ Da nicht alle Daten f\"{u}r die Speicherung einer Simulation relevant sind, wird \item \textit{public void deserialize(VSSerialize serialize, ObjectInputStream ois)}: Diese Methode wird bei jedem Deserialisierungsvorgang aufgerufen (Laden einer Simulation). \end{itemize} -Die Methoden \textit{serialize} und \textit{deserialize} erhalten neben einem Dateistream auch ein \textit{VSSerialize}-Objekt als \"{U}bergabeparameter. Fr jeden Serialisierungsvorgang wird zuerst ein Objekt der Klasse \textit{VSSerialize} erstellt. Eine zu serialisierende Simulation besteht aus vielen voneinander abhngigen Objekten. Jedes Objekt kann dabei Referenzen auf andere Objekte besitzen. Wrde jedes Objekt komplett serialisiert werden, so wrden Objekte, auf denen mehrere Referenzen existierten, in mehrfacher Ausfhrung behandelt werden. Bei Kreisverweisen (Objekt A hat eine Referenz auf Objekt B und Objekt B hat eine Referenz auf Objekt A als Attribut gespeichert) wrde die Serialisierung sogar in einer Endlosschleife enden. \textit{VSSerialize} hilft hierbei dies zu vermeiden und merkt sich Informationen von allen bereits serialisierten Objekten, so dass jedes Objekt genau einmal serialisiert wird. Bei der Deserialisierung hilft eine Instanz von \textit{VSSerialize} dabei, alle Objekte wieder mit den richtigen Referenzen auszustatten. +Die Methoden \textit{serialize} und \textit{deserialize} erhalten neben einem Dateistream auch ein \textit{VSSerialize}-Objekt als \"{U}bergabeparameter. Fr jeden Serialisierungsvorgang wird zuerst ein Objekt der Klasse \textit{VSSerialize} erstellt. Eine zu serialisierende Simulation besteht aus einer Vielzahl von einander abhngigen Objekten. Jedes Objekt kann dabei Referenzen auf andere Objekte besitzen. Wrde jedes Objekt komplett serialisiert werden, so wrden Objekte, auf denen mehrere Referenzen existierten, in mehrfacher Ausfhrung behandelt werden. Bei Kreisverweisen (Objekt A referenziert Objekt B welches ebenfalls eine Referenz auf Objetkt A besitzt) wrde die Serialisierung sogar in einer Endlosschleife enden. \textit{VSSerialize} hilft hierbei dies zu vermeiden und merkt sich Informationen von allen bereits serialisierten Objekten, so dass jedes Objekt genau einmal serialisiert wird. Bei der Deserialisierung hilft eine die Klasse \textit{VSSerialize} dabei, alle Objekte wieder mit den richtigen Referenzen auszustatten. \begin{figure}[h] \centering @@ -607,7 +607,7 @@ Die Methoden \textit{serialize} und \textit{deserialize} erhalten neben einem Da Alle Klassen, die \textit{VSSerializePrefs} erweitern, knnen komfortabel smtliche Einstellungen serialisieren. Beispielsweise speichert der Simulator alle seine globalen Simulationseinstellungen bei einer Serialisierung automatisch ab. Bei den Prozessen und den Ereignissen (und somit auch Protokollen) gilt selbiges analog. -Abgespeicherte Simulationen sollen auch mit zuknftigen Versionen des Simulators kompatibel bleiben. Deshalb werden alle Objekte aller Klassen, die \textit{VSSerializable} implementieren, nicht komplett serialisiert. Bei der Serialisierung werden nur relevante Klassenattribute, die der Simulationsprogrammierung, und nicht beispielsweise GUI-Komponenten angehren, serialisiert. Eine Erweiterung des GUIs muss somit nicht bei den Serialisierungen ber\"{u}cksichtigt werden. +Abgespeicherte Simulationen sollen auch mit zuknftigen Versionen des Simulators kompatibel bleiben. Deshalb werden alle Objekte aller Klassen, die \textit{VSSerializable} implementieren, nicht komplett serialisiert. Bei der Serialisierung werden nur relevante Klassenattribute, die der Simulationsprogrammierung, und nicht z.B. der GUI-Komponenten angehren, serialisiert. Eine Erweiterung des GUIs muss somit nicht bei den Serialisierungen ber\"{u}cksichtigt werden. \subsubsection{Beispielimplementierung einer \textit{serialize}-Methode} @@ -627,13 +627,12 @@ Der folgende Quelltext-Ausschnitt zeigt eine Beispielimplementierung von \textit } \end{code} -Vor und nach der eigentlichen Objektserialisierung wird jeweils eine boolesche Flagge mit dem Standardwert \textit{false} serialisiert. Sobald in einer sp\"{a}teren Simulator-Versionen weitere zu serialisierenden Klassenattribute hinzukommen, dann kann bei der Deserialisierung diese Flagge abgefragt und separat behandelt werden. Somit bleiben ltere bereits abgespeicherte Simulationen stets zur neusten Version des Simulators kompatibel. Wenn eine Flagge auf \textit{true} gesetzt wird, dann kann unter den neuen Attributserialisierungen eine weitere Flagge gesetzt werden, wodurch beliebig viele Erweiterungen in die Serialisierung sukzessiv einbaubar sind. +Vor und nach der eigentlichen Objektserialisierung wird jeweils eine boolesche Flagge mit dem Standardwert \textit{false} serialisiert. Sobald in einer sp\"{a}teren Simulator-Versionen weitere zu serialisierenden Klassenattribute hinzukommen, dann kann bei der Deserialisierung diese Flagge abgefragt und separat behandelt werden. Somit bleiben ltere bereits abgespeicherte Simulationen stets zu neueren Version des Simulators kompatibel. Wenn eine Flagge auf \textit{true} gesetzt wird, dann kann unter den neuen Attributserialisierungen eine weitere Flagge gesetzt werden, wodurch beliebig viele Erweiterungen in die Serialisierung sukzessiv einbaubar sind. -Das zu serialisierende Objekt besitzt hier lediglich zwei zu serialisierende Attribute. Mit \textit{serialize.setObject} speichert \textit{serialize} eine Referenz auf das aktuelle Objekt ab, worauf folgende Objektserialisierungen zurckgreifen knnen. Danach wird ein \textit{process} und \textit{someOtherSerializableObject} serialisiert. Die Deserialisierung folgt genau in der umgekehrten Reihenfolge, wobei ein Objekt von \textit{VSSerialize} hierbei hilft die Referenzen auf andere Objekte korrekt zu setzen. +Das zu serialisierende Objekt besitzt hier lediglich zwei zu serialisierende Attribute. Mit \textit{serialize.setObject} speichert \textit{serialize} eine Referenz auf das aktuelle Objekt ab, worauf folgende Objektserialisierungen zurckgreifen knnen. Danach wird ein \textit{process} und \textit{someOtherSerializableObject} serialisiert. Die Deserialisierung erfolgt genau in umgekehrter Reihenfolge, wobei ein Objekt von \textit{VSSerialize} hilft die Referenzen auf andere Objekte korrekt zu setzen. In Abbildung \ref{fig:SequenceSerialize} ist die komplette Sequenz f\"{u}r die Serialisierung (das Abspeichern) einer Simulation angegeben. Zuerst wird \textit{serialize} auf die globalen Simulationseinstellungen (\textit{VSPrefs}) und dem Simulatorobjekt (\textit{VSSimulator}) ausgefhrt. Das Simulator-Objekt fhrt \textit{serialize} wiederum auf das \textit{VSSimulatorVisualization}-Objekt aus. Dort wird jeder Prozess inklusive alle Protokollobjekte serialisiert. Anschlieend folgt der Task-Manager mit allen programmierten Ereignissen. - \section{Helferklassen und Klassen fr Ausnahmebehandlungen} Es wurden noch nicht die Klassen der Pakete \textit{utils} (s. Abb. \ref{fig:PackageUtils}.) sowie \textit{exceptions} (s. Abb. \ref{fig:PackageExceptions}.) vorgestellt. \textit{utils} fasst lediglich einige Helferklassen zusammen, die vom restlichen Quelltext verwendet werden. @@ -646,14 +645,14 @@ Es wurden noch nicht die Klassen der Pakete \textit{utils} (s. Abb. \ref{fig:Pac \end{figure} \begin{itemize} - \item \textit{VSFrame}: Alle Objekte, die ein eigenes Swing-Fenster besitzen, erben von der Klasse \textit{VSFrame}. Sie stellt sicher, dass neue Fenster an der richtigen Position der Bildflche platziert werden und dass Unterfenster (Fenster, die aus einem anderen Fenster heraus geffnet wurden) automatisch mit geschlossen werden, sobald eines ihrer ``Erzeugerfenster'' geschlossen wird. + \item \textit{VSFrame}: Alle Objekte, die ein eigenes Swing-Fenster besitzen, erben von der Klasse \textit{VSFrame}. Sie stellt sicher, dass neue Fenster an der richtigen Position der Bildflche platziert werden und dass Unterfenster (Fenster, die aus einem anderen Fenster heraus geffnet wurden) automatisch mit geschlossen werden, sobald ihr jeweiliges ``Erzeugerfenster'' geschlossen wird. \item \textit{VSAboutFrame}: Dieses Fenster implementiert die ``About-Anzeige'' die im Simulator ber das Datei-Men aufgerufen werden kann. \item \textit{VSInfoArea}: Ist fr die Textanzeige in \textit{VSAboutFrame} zustndig. - \item \textit{VSClassLoader}: Diese Klasse wird fr die automatische Instantiierung von Ereignisobjekten bentigt, wenn dem Simulator lediglich die Klassennamen (aus \textit{events.VSRegisteredEvents}) bekannt sind. - \item \textit{VSHelper}: In dieser Klasse befinden sich statische Helfermethoden, die in keine andere Klasse passen. + \item \textit{VSClassLoader}: Diese Klasse wird fr die automatische Instanzierung von Ereignisobjekten bentigt, wenn dem Simulator lediglich die Klassennamen (aus \textit{events.VSRegisteredEvents}) bekannt sind. + \item \textit{VSHelper}: In dieser Klasse befinden sich statische Helfermethoden, die in keine andere Klasse gehren. \item \textit{VSPriorityQueue}: Diese Klasse wird fr das Verwalten von \textit{core.VSTask}-Objekte im Task-Manager bentigt. \textit{VSPriorityQueue} passt die Prioritts-Warteschlange aus der Java-Standardbibliothek den Anforderungen des Simulators an. \item \textit{VSRandom}: Wird fr Zufallsereignisse bentigt. Jedes Prozessobjekt besitzt einen solchen eigenen Pseudozufallsgenerator. Diese Klasse setzt gleichzeitig einen eigenen Seed basierend auf der lokalen Systemzeit und anderer Berechnungen fest. - \item \textit{VSTupel}: Diese Klasse ist eine Implementierung eines sehr einfach aufgebauten 3-Tupel Datentyps. Alle 3 Elemente knnen von einem anderen Typ sein, was mit Hilfe der Java-Generics verwirklicht wurde. \textit{VSTupel} wird von den Editorklassen fr die Generierung von GUI-Elementen bentigt. + \item \textit{VSTupel}: Diese Klasse ist eine Implementierung eines einfach aufgebauten 3-Tupel Datentyps. Alle 3 Elemente knnen von einem anderen Typ sein, was mit Hilfe der Java-Generics verwirklicht wurde. \textit{VSTupel} wird von den Editorklassen fr die Generierung von GUI-Elementen bentigt. \end{itemize} \begin{figure}[h] @@ -663,7 +662,7 @@ Es wurden noch nicht die Klassen der Pakete \textit{utils} (s. Abb. \ref{fig:Pac \label{fig:PackageExceptions} \end{figure} -Im Paket \textit{exceptions} befinden sich lediglich einige Klassen, die fr Ausnahmebehandlungen verwendet werden. \textit{VSNotCopyableException} wird whrend eines Kopierversuch eines nicht-kopierbaren Ereignisses geworfen. \textit{VSNegatieNumberException} wird geworfen, wenn negative Zahlen dort auftreten, wo sie es nicht sollten. Wenn ein Editorobjekt die Benutzereingabe einer Integer-Vektor-Variable nicht parsen kann, so greifen es auf \textit{VSParseIntegerVectorException} zurck. +Im Paket \textit{exceptions} befinden sich Klassen, die fr Ausnahmebehandlungen verwendet werden. \textit{VSNotCopyableException} wird whrend eines Kopierversuch eines nicht-kopierbaren Ereignisses geworfen. \textit{VSNegatieNumberException} wird geworfen, wenn negative Zahlen dort auftreten, wo sie es nicht sollten. Wenn ein Editorobjekt die Benutzereingabe einer Integer-Vektor-Variable nicht parsen kann, so greift es auf \textit{VSParseIntegerVectorException} zurck. \begin{figure} \centering @@ -676,37 +675,37 @@ Im Paket \textit{exceptions} befinden sich lediglich einige Klassen, die f \section{Programmierrichtlinien} -Die Programmierrichtlinien entsprechen in den meisten Fllen denen aus \cite{OOS} (siehe auch \cite{Richtlinien}). +Die Programmierrichtlinien entsprechen idr. denen aus \cite{OOS} (vgl. auch \cite{Richtlinien}). Die \textit{main}-Methode befindet sich in der Klasse \textit{simulator.VSMain}. \begin{itemize} \item Es wird kein Gebrauch vom Java-Standardpaket gemacht. Alle Klassen befinden sich somit in explizit angegebenen Paketen (z.B. \textit{events.implementations}). - \item Alle Klassen- und Interfacenamen beginnen mit groen Buchstaben, whrend alle Variablen-, Methoden- und Attributnamen mit kleinen Buchstaben beginnen. Namen finaler Variablen und Attribute sind komplett in Grobuchstaben gehalten. + \item Alle Namen von Klassen und Interfaces beginnen mit groen Buchstaben, whrend alle Variablen-, Methoden- und Attributnamen mit kleinen Buchstaben beginnen. Namen finaler Variablen und Attribute bzw. Konstanten sind komplett in Grobuchstaben gehalten. \item Alle Quelltext-Dateien besitzen einen Header, der Informationen der verwendeten Lizenz angibt. - \item Alle Quelltext-Dateien werden vollstndig mit Javadoc dokumentiert. + \item Alle Quelltext-Dateien sind vollstndig mit Javadoc dokumentiert. \item Der komplette Quelltext inklusive Dokumentation wird in englischer Sprache verfasst. - \item Eine Quelltext-Datei hat eine maximale Zeilenlnge von 80 Zeichen, was der Standardbreite eines UNIX-Terminals entspricht. Eine Ausnahme stellt die Klasse \textit{prefs.VSDefaultPrefs} dar, denn hier befinden sich auch lngere Texte die in Strings abgespeichert werden und wo manuelle Zeilenumbrche wenig Sinn ergeben. + \item Eine Quelltext-Datei hat eine maximale Zeilenlnge von 80 Zeichen, was der Standardbreite eines UNIX-Terminals entspricht. Eine Ausnahme stellt die Klasse \textit{prefs.VSDefaultPrefs} dar, denn hier befinden sich auch lngere Texte die in Strings abgespeichert werden mssen. \item Es werden zuerst Klassen aus der Java-Standardbibliothek importiert, bevor Klassen aus dem VS-Simulator selbst importiert werden. \item Fr die Einrckung des Quelltextes wird das Tool \textit{astyle} mit den Aufrufparametern \textit{--style=java --mode=java} verwendet. Hierbei wird eine Einrckungslnge von 4 Zeichen verwendet. - \item Namen aller Klassen und Interfaces tragen als Prfix stets \textit{VS}, was fr Verteilte Systeme steht. + \item Namen aller Klassen und Interfaces tragen als Prfix stets \textit{VS}. Die Abkrzung VS steht hierbei fr Verteilte Systeme. \item Namen abstrakter Klassen tragen als Prfix stets \textit{VSAbstract}. \item Namen aller Protokollklassen tragen als Postfix \textit{Protocol} (z.B. \textit{VSPingPongProtocol}). \item Namen aller Ereignisklassen die keine Protokolle implementieren, tragen als Postfix \textit{Event} (z.B. \textit{VSProcessCrashEvent}). \item Namen aller dejenigen Klassen die ein Fenster implementieren, tragen als Postfix \textit{Frame} (z.B. \textit{VSSimulatorFrame}). - \item berall wo es Sinn ergibt werden Java-Generic-Datentypen verwendet (z.B. \textit{java.util.Vector} anstelle von \textit{java.util.Vector}). + \item berall wo es erforderlich ist werden Java-Generic-Datentypen verwendet (z.B. \textit{java.util.Vector} anstelle von \textit{java.util.Vector}). \end{itemize} \section{Entwicklungsumgebung} -In diesem Teilkapitel soll ein kleiner Einblick in die Umgebung, in der der Simulator entwickelt wurde, gewhrt werden. Fr diese Diplomarbeit wurde ausschlielich Open Source Software verwendet. Die einzige Ausnahme stellt Microsoft Windows XP dar, worauf der Simulator zustzlich getestet wurde. Der Simulator wurde jedoch hauptschlich unter dem Betriebssystem FreeBSD 7.0, was ein Open Source Unix-Derivat ist, programmiert. +In diesem Teilkapitel soll ein kleiner Einblick in die Umgebung, in der der Simulator entwickelt wurde, gewhrt werden. Fr diese Diplomarbeit wurde ausschlielich Open Source Software verwendet. Die einzige Ausnahme stellt das Betriebssystem Microsoft Windows XP dar, auf welchem der Simulator zustzlich getestet wurde. Der Simulator wurde jedoch hauptschlich unter dem Betriebssystem FreeBSD 7.0, einem Open Source Unix-Derivat, programmiert. -Wie bereits bekannt ist, wurde Sun's Java, was mittlerweile auch Open Source Software ist, in der Version 6 (1.6) als die Implementierungssprache gewhlt und fr die Quelltextdokumentation kam Javadoc, fr die automatische Quelltexteinrckung astyle und als Java-Referenz kam \cite{Javadoc} zum Einsatz. Als Built-Tool wurde hier auf Apache Ant (s. \cite{AntManual} und \cite{AntIntro}) zur\"{u}ckgegriffen. +Wie bereits bekannt ist, wurde die Programmiersprache Java von Sun Microsystems in der Version 6 (1.6) als Implementierungssprache fr den Simulator gewhlt. Fr die Quelltextdokumentation wurde Javadoc, fr die automatische Quelltexteinrckung astyle und als Java-Referenz kam \cite{Javadoc} zum Einsatz. Als Built-Tool wurde hier auf Apache Ant (s. \cite{AntManual} und \cite{AntIntro}) zur\"{u}ckgegriffen. -Als Versionierungssystem wurde SVN (Subversion) verwendet. Fr den Zugriff auf das SVN-Repository mittels HTTPS (Hypertext Transfer Protocol Secure) wurde der Apache-Webserver mit WebDAV-Plugin verwendet. Zudem kam WebSVN als Webschnittstelle des SVN-Repository zum Einsatz. Mozilla Firefox diente fr das Betrachten der Javadocs und der WebSVN-Oberflche. +Als Versionierungssystem wurde SVN (Subversion) verwendet. Fr den Zugriff auf das SVN-Repository mittels HTTPS (Hypertext Transfer Protocol Secure) wurde der Apache-Webserver mit WebDAV-Plugin verwendet. Zudem kam WebSVN als Webschnittstelle des SVN-Repository zum Einsatz. Mozilla Firefox diente dabei dem Betrachten der Javadocs und dem Bedienen der WebSVN-Oberflche. -Fr das Schreiben von Java-Quelltext wurde GVim (Graphical Vi IMproved) sowie Eclipse verwendet. Eclipse untersttzt bessere Code-Refactoring-Methoden, whrend GVim mit seiner Flexibilitt und schnelleren Editiermglichkeiten und mit Vim-Script, der eigenen Script-Engine, glnzt. Es wurden auerdem das JAutoDoc- (fr die Erstellung von Javadoc-Kommentare) und das Subversion-Eclipse-Plugin verwendet. Je nach Zweck wurde zwischen diesen beiden Umgebungen gewechselt. Fr das Verfassen des LaTeX-Dokumentes wurde GVim verwendet. +Fr das Schreiben des Java-Quelltextes wurde Graphical Vi IMproved (GVim) sowie die Entwickungsumgebung Eclipse verwendet. Eclipse bietete bessere Code-Refactoring-Methoden, whrend GVim mit seiner Flexibilitt und schnelleren Editiermglichkeiten in Verbindung mit seiner Script Engine Vim-Script besonders effektiv ist. Es wurden auerdem das JAutoDoc zur Erstellung von Javadoc-Kommentaren und fr die Konnektivitt mit dem SVN Server das Subversion-Eclipse-Plugin verwendet. Je nach Anforderung wurde zwischen diesen beiden Umgebungen gewechselt. Fr das Verfassen des LaTeX-Dokumentes wurde ebenfalls GVim verwendet. -Fr die Erstellung dieses PDF-Dokumentes wurde LaTeX in Verbindung mit dem Built-Tool GNU Make und Rubber verwendet. Eine Rechtschreibberprfung wurde mit aspell sowie OpenOffice.org durchgefhrt. xPDF diente als PDF-Anzeigeprogramm. +Fr die Erstellung dieses PDF-Dokumentes wurde LaTeX in Verbindung mit dem Built-Tool GNU Make und Rubber verwendet. Eine Rechtschreibberprfung wurde mit aspell sowie OpenOffice.org durchgefhrt. xPDF diente dabei als PDF-Anzeigeprogramm. Smtliche UML-Diagramme wurden mit ArgoUML angefertigt und die Screenshots mit The GIMP (GNU Image Manipulation Program) sowie ImageMagick nachbearbeitet. Mit dem zip-Programm wurden alle VS-Simulator Distributionen verpackt. diff --git a/LaTeX/diplomarbeit.pdf b/LaTeX/diplomarbeit.pdf index 41687b9..52996ce 100644 --- a/LaTeX/diplomarbeit.pdf +++ b/LaTeX/diplomarbeit.pdf @@ -1482,8 +1482,8 @@ endobj 404 0 obj << /Producer (GPL Ghostscript 8.61) -/CreationDate (D:20080814002410Z00'00') -/ModDate (D:20080814002410Z00'00') +/CreationDate (D:20080814014212Z00'00') +/ModDate (D:20080814014212Z00'00') >> endobj 405 0 obj @@ -1576,8 +1576,8 @@ endobj 414 0 obj << /Producer (GPL Ghostscript 8.61) -/CreationDate (D:20080814002409Z00'00') -/ModDate (D:20080814002409Z00'00') +/CreationDate (D:20080814014211Z00'00') +/ModDate (D:20080814014211Z00'00') >> endobj 415 0 obj @@ -6413,8 +6413,8 @@ endobj 748 0 obj << /Producer (GPL Ghostscript 8.61) -/CreationDate (D:20080814002409Z00'00') -/ModDate (D:20080814002409Z00'00') +/CreationDate (D:20080814014211Z00'00') +/ModDate (D:20080814014211Z00'00') >> endobj 749 0 obj @@ -6600,8 +6600,8 @@ endobj 773 0 obj << /Producer (GPL Ghostscript 8.61) -/CreationDate (D:20080814002408Z00'00') -/ModDate (D:20080814002408Z00'00') +/CreationDate (D:20080814014210Z00'00') +/ModDate (D:20080814014210Z00'00') >> endobj 774 0 obj @@ -6719,8 +6719,8 @@ endobj 787 0 obj << /Producer (GPL Ghostscript 8.61) -/CreationDate (D:20080814002410Z00'00') -/ModDate (D:20080814002410Z00'00') +/CreationDate (D:20080814014212Z00'00') +/ModDate (D:20080814014212Z00'00') >> endobj 788 0 obj @@ -6871,7 +6871,7 @@ endobj /Font << /F63 220 0 R /F88 719 0 R /F28 173 0 R >> /ProcSet [ /PDF /Text ] >> endobj -811 0 obj << +810 0 obj << /Length 2539 /Filter /FlateDecode >> @@ -6885,13 +6885,13 @@ mC ƥ7fKCJi+)ŠD"3r kxG9{-|-o sȫ?U;, ,е%RW.hZktl*9U#&K3-LK 6tp@MY8*CژqV)4$8yyR%@fI{}8*|ՎOcR'񱮰:$XHbChv,X^rQA3C[\>U?n .mTo/_j@{TV[jxVR`=MAdH K-gB;0EM3P8 Y(agcؕ=!G+̓'q}K2'|WN;>آm'W0*drǧf4c^(`<$ϋV9KҖ'.iW<$ɃVŲYU:c۽[C,7 *LTGƶR0ܣZ Ԇ:&8-HTQ("ph5jhi~NUr @rQ~ilsJXl?DܦIIF9TJ >Pocց2jg[xX#j;5/#R [(~3[i`c?7$vn|$_2i 39сqϑL5P]j%TpzX`D[)qjvّw'Yv,B7H$rxv_95\aGӣPNlVL={΁Pjiٕa.l!X౿' sz.XE2%铿?sՌendstream endobj -810 0 obj << +809 0 obj << /Type /Page -/Contents 811 0 R -/Resources 809 0 R +/Contents 810 0 R +/Resources 808 0 R /MediaBox [0 0 595.2757 841.8898] -/Parent 817 0 R -/Annots [ 813 0 R 814 0 R 815 0 R 816 0 R ] +/Parent 816 0 R +/Annots [ 812 0 R 813 0 R 814 0 R 815 0 R ] >> endobj 807 0 obj << /Type /XObject @@ -6899,123 +6899,126 @@ endobj /FormType 1 /PTEX.FileName (/usr/home/buetow/svn/vs/trunk/LaTeX/images/core-time.pdf) /PTEX.PageNumber 1 -/PTEX.InfoDict 818 0 R +/PTEX.InfoDict 817 0 R /Matrix [1.00000000 0.00000000 0.00000000 1.00000000 0.00000000 0.00000000] /BBox [0.00000000 0.00000000 283.00000000 176.00000000] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << -/R7 819 0 R ->>/Font << /R8 820 0 R >> +/R7 818 0 R +>>/Font << /R8 819 0 R >> >> -/Length 821 0 R +/Length 820 0 R /Filter /FlateDecode >> stream xO0+zTWڵM p!a"smlڱb\Yp:5SKI'!xY=Om챧r:%+CNts[;&ەmS6i418 y``NRgL,,F@_ 45FGe-! qm k,?Lp!SȾ͂>rED$*"]Rq<ܕURkyjge[:\(v<@RUzuܸ 7endstream endobj -818 0 obj +817 0 obj << /Producer (GPL Ghostscript 8.61) -/CreationDate (D:20080814002410Z00'00') -/ModDate (D:20080814002410Z00'00') +/CreationDate (D:20080814014212Z00'00') +/ModDate (D:20080814014212Z00'00') >> endobj -819 0 obj +818 0 obj << /Type /ExtGState /OPM 1 >> endobj -820 0 obj +819 0 obj << /BaseFont /Helvetica /Type /Font /Subtype /Type1 >> endobj -821 0 obj +820 0 obj 417 endobj -813 0 obj << +812 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [213.5029 720.8502 227.9585 731.4325] /Subtype /Link /A << /S /GoTo /D (figure.4.4) >> >> endobj -814 0 obj << +813 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [126.1158 490.6786 140.5714 501.2609] /Subtype /Link /A << /S /GoTo /D (figure.4.5) >> >> endobj -815 0 obj << +814 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 0] /Rect [413.7311 244.9899 440.1388 253.761] /Subtype /Link /A << /S /GoTo /D (cite.Algorithms) >> >> endobj -816 0 obj << +815 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 0] /Rect [448.6037 244.9899 476.5177 253.761] /Subtype /Link /A << /S /GoTo /D (cite.AlgorithmsC) >> >> endobj -812 0 obj << -/D [810 0 R /XYZ 74.4095 793.4011 null] +811 0 obj << +/D [809 0 R /XYZ 74.4095 793.4011 null] >> endobj 122 0 obj << -/D [810 0 R /XYZ 74.4095 771.7323 null] +/D [809 0 R /XYZ 74.4095 771.7323 null] >> endobj 335 0 obj << -/D [810 0 R /XYZ 288.6243 539.3332 null] +/D [809 0 R /XYZ 288.6243 539.3332 null] >> endobj -809 0 obj << +808 0 obj << /Font << /F63 220 0 R /F26 170 0 R /F28 173 0 R >> /XObject << /Im35 807 0 R >> /ProcSet [ /PDF /Text ] >> endobj -827 0 obj << -/Length 2100 +826 0 obj << +/Length 2186 /Filter /FlateDecode >> stream -xڥXo6_GY~Sbmz{rjd9 f8-Kʮ3o3iyafPb5q+""1/Gf9+ճԊIIkz.4/ [tdf=OWwGFr[+/Qk˴nY>wӅn -X4sƙu֨_Vꗫ/'ɜ ] })[G6Ke7F'Jɣcewl;coseUyѽmGYL:9gPr[ayV%|f C :n*S0)4vltY.8x]0;$\,i'O{W5~PFeMە;~si]3qAǙZ ~orL$-drE RwG2gꨞ6*sóUs߽AAӦz8Do~hy[NL:U₫-$pt#{ s'=s;!@6 ^Wem>* WGbXjzM0\J8UWb3m4N)f_sҙE8ADz ɑJXCL\S;jxED(蜔b`#əz*/ -_A Dp>4*2BEi'(Z7`'^ϪczD|ܻjTnGQu 4q0Iۯ]HWTPDw&iS56oqX +GCZG!e>xl۪{_6I Qp pAa3 FhfGFaa$I;FtmـcbpPI-+}GVŬEUh^]UQԳȪ+<>-ϑli1:4ת|?:fSZ=AqcŹNJ\M/vQK׵$g˺Mx. -YC'' m3)"ʦ!Btp(3 #s!dᜲ ~k"S.wCW*mM/T6 )c@ y.JڎKpYZ+`]v!~ØSM([MQH -uBx:$ϋQ`Aa/`tCkIͲ[˧ 0&C4+_G*Q;Ofla(TVV* -Ü2O e.)RפAIR\2KdLz)_[#]`;i;P2I],sIu$EǪw*h$ .Ϧ HV8J whPMR&O6\N2.RS{C~cpl]#5 4L-mKz+ @ ,Vĝ4}5rit@>0lϯGHծi[n"O >$2NH1\Hw] M%, -*Xr- _ ;Xq/"=s` Hc8W% )@f6[Knek.^cF շҲܨ\84p6F)`1WV, @Eqe`>b]`J#j,y!b(q"wK:[/W2I#͖+ytvkJؔ<|uس54e2S!e:X$xW5vRFEM~Ki]pfb-5g۶yi ,Τ-hLeiCj6KãkUsz +[8ޖ@ CiS=-%^^+k)8+[Tۼk߸-aǥpcl&x`2rMafq(aeAQ ɉJ1nXQ\XPC "~T VTN]1]¤,z/ vX!S>4TbGׅ4e3 +sO Z7GG*-ʄs_B3x'+~:>d+iORD{9\%WW @TK a*qcm#a`MKag1dǐ 2c. pf5<4ڨ?oHq`Nr7Co{X2ٞӘ n0W$?T%iQJ$HC8#=B: h+n/2|\AK!xjK, qr`ST4E%q,lРGs _3ΐ6[KInboᚫoq-G*2fQD:u#Ɠ23֝.ef|MCd ,Q9X?u.! %xѴM^ +n[y0_4rHk޷' IO!Vף.}Y0 p5 GED'S8hHT}ˠ2Z"{AzW]xX Yy`iѭF2'[YWSqzP#w&jQ5mҰ ;DRŠ\4{|O+;G +:E ϵגw;p~endstream endobj -826 0 obj << +825 0 obj << /Type /Page -/Contents 827 0 R -/Resources 825 0 R +/Contents 826 0 R +/Resources 824 0 R /MediaBox [0 0 595.2757 841.8898] -/Parent 817 0 R -/Annots [ 829 0 R 830 0 R ] +/Parent 816 0 R +/Annots [ 828 0 R 829 0 R ] >> endobj -808 0 obj << +823 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/usr/home/buetow/svn/vs/trunk/LaTeX/images/core.pdf) /PTEX.PageNumber 1 -/PTEX.InfoDict 831 0 R +/PTEX.InfoDict 830 0 R /Matrix [1.00000000 0.00000000 0.00000000 1.00000000 0.00000000 0.00000000] /BBox [0.00000000 0.00000000 419.00000000 354.00000000] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << -/R7 832 0 R ->>/Font << /R8 833 0 R /R9 834 0 R >> +/R7 831 0 R +>>/Font << /R8 832 0 R /R9 833 0 R >> >> -/Length 835 0 R +/Length 834 0 R /Filter /FlateDecode >> stream @@ -7024,88 +7027,85 @@ x ' Sob26˯D$Ň!|J ip %|/Oqho vCn]ż}˧揕!zLG\ dA}\-ՠ4QRc׏W_G9Ü?CO'ȟC18y]ş˦6wEE.,Ou脁D0OR+iEIpNɘC?<B1eT`9LL\EY8a }_O:6:яujOE%>L58ii;GԊ|wsΚ3Rƌl Qa?`xE_\靌ؙh1Q}™T1.;Sfr3^*|zњ wRX\!qZ)# vqb))g2WWЩ$Xj4!j4wj_,1;P,.zpKw-5vA{]qTEZPyػBȩ e-nar.ʊsިg@OzYT˿]Uňz9n A &i,M@0ֱз,CmXwc(Pendstream endobj -831 0 obj +830 0 obj << /Producer (GPL Ghostscript 8.61) -/CreationDate (D:20080814002409Z00'00') -/ModDate (D:20080814002409Z00'00') +/CreationDate (D:20080814014211Z00'00') +/ModDate (D:20080814014211Z00'00') >> endobj -832 0 obj +831 0 obj << /Type /ExtGState /OPM 1 >> endobj -833 0 obj +832 0 obj << /BaseFont /Helvetica /Type /Font /Subtype /Type1 >> endobj -834 0 obj +833 0 obj << /BaseFont /Helvetica-Oblique /Type /Font /Subtype /Type1 >> endobj -835 0 obj +834 0 obj 1031 endobj -829 0 obj << +828 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [419.5946 451.0827 434.0502 461.6649] +/Rect [419.5946 738.8587 434.0502 749.441] /Subtype /Link /A << /S /GoTo /D (table.2.2) >> >> endobj -830 0 obj << +829 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [464.8944 415.2282 479.3499 425.8105] +/Rect [464.8944 703.0042 479.3499 713.5865] /Subtype /Link /A << /S /GoTo /D (figure.4.6) >> >> endobj -828 0 obj << -/D [826 0 R /XYZ 74.4095 793.4011 null] +827 0 obj << +/D [825 0 R /XYZ 74.4095 793.4011 null] >> endobj 336 0 obj << -/D [826 0 R /XYZ 298.272 522.2791 null] +/D [825 0 R /XYZ 298.272 352.2293 null] >> endobj -825 0 obj << +824 0 obj << /Font << /F63 220 0 R /F28 173 0 R >> -/XObject << /Im36 808 0 R >> +/XObject << /Im36 823 0 R >> /ProcSet [ /PDF /Text ] >> endobj 838 0 obj << -/Length 2328 +/Length 2247 /Filter /FlateDecode >> stream -xڥYm۶~B[{|q'wufR$(TozX"%^l8]>WD1ųhdaW|U7t/JXRűZ?LD2 ~*aPx.l(d\IfaȲHٙk~aa+yUlsgLbfX1}(cJ/֋E])au?Av@PoJ w{ʛrhq-xֵnMIlLMc7iS`I/niUnu`{LY4988b ;kI08;W /m$6a2dMR-CQׇڊÆMN[m~7> *Sg3nvcǡP= sim:?4S{^k'Fa ܰ5fn6:\@+4@+*7v{NЯl#^mUl]<Oee0I*θtҷM?hy۱6 zBԏu V(ht0/ @&7hYgбJ>P?:㱡f Qf4[6LIi qZUNE]Uf&P#!Ismf8Dx>?hѽBȓ 6cGB65?G9͢;4WT^m{H8ZBpUˢ*mzv8TN5; yBH<;# ԭc{`1g})ǀwejbWG$Ǝu>2o -ek-ig<)TooTؼp WNq'4 -úQ)Ciȱx2Ru9,C&Xp30:ut;_{cԩqv!VC, A]mWT[O=E30m[ZH')P)7{?L45I5.] e[ȘzpfM{XG -2M -h5DRaUgC^q8Ⓦc8`Ũ+1Z@0m ga|\D gQ$O .D -p8# x}3(LǮIcUv5*SBкlZlK&yEX=C_b͞rg\Cgo6 :!^>%"-W ~%iݎ IN$n6[XPR*XN<,Z`Hbd"+9nO0Hc*}Ps Wq {m >룏FN;2b){}XBrph'(ɗAeϩ?3i1G% old!}]`t8gĸjuêJׅ%ʒ]~;F h8L~?})j2ΎÈpTO|x6ܝ)?occN%,\|9Kԇ5m۷M>%q>9{닏K %(@rدjak6e9+lBm$U"2M;wp7^ -5$4}#'gtlK (@/Ã:Qn5*SuJya)=p =zz dF[G<[ CwY҅ r_JR5θ(a{a 47cn^|?Lg^P/z5^W?9J3 + Ht:L4MӦδH)yοvEJT܍]`8qfbg,$ h^Y{oax9~uwZRif3$ߚ}jI:Wl9+uWf.pu{_ RC)=qƒ$Dž].RiaGs\@vnIK:EpڮYaˮv2O?'Ezњ9tv[֖0 74~F Q22x4KqJ- qXDsRI [ovxmanγB:_ٲew8kMDQ4bXf9Y: b<8E ]_r\4r6䌖ZOCZ^Gomn? z*aRp B~{Fo +8:;B{r;qV,gj׶BCҧ&ΏbG_{*/sy6)3D(gJ}nP aWɌօ3A@$s㮞H@zSwym*p5lB2أ5Rmot3ך-( P # ?L)4LIQ q!p~8PQ1>N\M9fBj2rE1;~ qHT8QC2cb02öK<7`*p:"LE< e +˛o@*Zjȉ-}iZ}EբɌAmnJ2a_D@iۏ<MA3POrnrbiVW* TYٵ޺"b옿/𨐋%LMEe*@-u~hpi45wJm 5Ъ,hiG5֖y4p|!@IM/5݊kj+W|Z؏{iZo%1*]wX-b8cyt 48a)P褷xRA :UkVDrıPpN-QSxx,- BpN$21 + +i= zCa# Bc[Eu)anrZ9jMct%o7OEr45O^_ ֗i>X5-IЃ}y(%P<-!]R)'Dvo1kr.N8li;ͨB%y8xz2t.R p0M)avB10"w +ڝwǘ3fOvW]9s i0k:虓9⟧٣۔CA%Qp^ GkSݗ[;izqvA),J%*`UnۻKlܭ/4>g#%D,2(Q Y*' W.h8SAyҷ:DAmPKMP'(؀WW7ҝ+\х{C;+!XZvk¤bzfp_Dvm?v^ۊdܿ7 i=?N '^2.Rſ9aendstream endobj 837 0 obj << /Type /Page /Contents 838 0 R /Resources 836 0 R /MediaBox [0 0 595.2757 841.8898] -/Parent 817 0 R +/Parent 816 0 R >> endobj -824 0 obj << +835 0 obj << /Type /XObject /Subtype /Form /FormType 1 @@ -7131,8 +7131,8 @@ endobj 840 0 obj << /Producer (GPL Ghostscript 8.61) -/CreationDate (D:20080814002410Z00'00') -/ModDate (D:20080814002410Z00'00') +/CreationDate (D:20080814014212Z00'00') +/ModDate (D:20080814014212Z00'00') >> endobj 841 0 obj @@ -7155,14 +7155,14 @@ endobj /D [837 0 R /XYZ 74.4095 793.4011 null] >> endobj 337 0 obj << -/D [837 0 R /XYZ 206.8833 575.8724 null] +/D [837 0 R /XYZ 206.8833 498.7269 null] >> endobj 836 0 obj << /Font << /F63 220 0 R /F28 173 0 R >> -/XObject << /Im37 824 0 R >> +/XObject << /Im37 835 0 R >> /ProcSet [ /PDF /Text ] >> endobj -847 0 obj << +846 0 obj << /Length 2211 /Filter /FlateDecode >> @@ -7181,62 +7181,53 @@ T* eg,\Sz.3CTƢ3;ۇ=t?19ec +HygmGt8qM5x)!E֨qqc' XEDF 1D||7[ ;> endobj -850 0 obj << +849 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [128.9946 243.1787 143.4501 253.761] /Subtype /Link /A << /S /GoTo /D (figure.4.9) >> >> endobj -848 0 obj << -/D [846 0 R /XYZ 74.4095 793.4011 null] +847 0 obj << +/D [845 0 R /XYZ 74.4095 793.4011 null] >> endobj -849 0 obj << -/D [846 0 R /XYZ 74.4095 750.7482 null] +848 0 obj << +/D [845 0 R /XYZ 74.4095 750.7482 null] >> endobj 126 0 obj << -/D [846 0 R /XYZ 74.4095 375.5382 null] +/D [845 0 R /XYZ 74.4095 375.5382 null] >> endobj -845 0 obj << +844 0 obj << /Font << /F63 220 0 R /F26 170 0 R /F28 173 0 R /F88 719 0 R >> /ProcSet [ /PDF /Text ] >> endobj 854 0 obj << -/Length 1938 +/Length 1945 /Filter /FlateDecode >> stream -xڭXAs6W(<$EJTlҝәty׃36Yr-ɯ_ eɖw |q\1 =ˋB̞W|ٿ".b}tOY:325{zI2Sqir:[27b<*u~:9O?_=fd>ʘY>[HC~˔ Ud#3Z-g8% -5~q~ms^Xhf1TFOz沔)KFZJqfר׫a\sVݜxFi4EφF}Zrr[\|K=9 $Ze}5M`0٤'(rL#BO2bK!2fPMI+]wtYۚ]}Q"W4~j+!0)<>o,diݖFweB% -w{ֵk(]9K~~gw!nu#܄ee8n_/]4B5K.L BJP| 6aVW&4BP%s( \;&G92H/$ KZ5VeGQdoҾr]irsUW.q -3ʛr,k[3-'2(02IZj\JP@h e0lQnb(\*[MB?]ֳˮqޕG[%z5? -;+{ayC0[(uVt\ ->^b52^T"Y넌}P } -pU}a)74 .D䵂c'$ j9Q4S`,k[u89a .n* -W<¥=kR8, -iklY#0Al2Z-gB,4ܻ4L!oݚwD!%]Y*`" Y-<-bjY;"ĭ(WZ\bɺI[h -~(0*]-;z„/H&5Lu~T|} |\I ,4wxCcB7'?[SGB}66:eaxd0_p`/⡖gũ -eFۧW/Sč&ըtnu|yʲ\UȔ"A"r`' -L5tUIY.uLncuzac0]KʓZ dmIrU$c7l?8c^l,J/T{mWcO"OpxOcC>EGV;zZ-4 B-B)w+65Ev숢f& DO[7v{Omu˛# =88e qҬ_m7pgzGZ&\fۯh48X@9BU]ņ_--:}^s2lbOAsMM;7~M{ߑx<\ -⤡dw1_T<]\srjZB3azbNJ3p?.XجЍTrҾfmkvm GEr^[ Tg͒ >႐.l(>MK +˗Q/ <TxKsv=|)f )3ZgYᕆcկ ?oS3m~ ͌0/:aT:)D>҆z5 vg}> 4"gC#D|9 }-[nFRE([LhS\0Sl9S`E'Oٓ8yHIɤMAlЅ٥})iVeGli!My"'+5{1BJL%nV!U\˷4֌oˉ s"ژ.Ie32?e0E1i&pYB鞛Çήb5a›0.y1ĕ{aLDqPY" +!k4ߐ(O-"ׇK6R$FȰPf2 K2FB)(BE|Є'Nr +NI9Q4Sx,k[uoX} ӗF[7O! ¦!dJ\fLY4v7MSٲF`|l2`-gB *޽-!><1H֔um"02"Q4xzUW#X`E=mQi䈲#kG$2uU*0IT쾅&aς+ٖk=Xa5 iLw?xhO_Y/wr}NZ`gECPLHCPd:+S +U=X:GR> ~=$zet@27x! DAJ4#~SAT; DO;5B\t1riq~gX?`rp vfX.?^Ȓ'tH ,/طass|<!nϗ\=RPw:g2QjD"? +ݕP޵έ,˕[d`/b8/;A09D(T\􄊼K&εN/?^o %i=2sגVkġ Y[gizefgq:I陸ave{%YcC^TyY="9"oht%oܭHu#&4,}y_C`>Z,/i`ނ |"#Q`[u+v}=(3'` +eBɅa9_~EqmGʆ]l@LKN@~SV˰PŞ皚vnHؘ~c +ƓJ⚓S7;Z^3aq ZG9ԡz)>@q(H.hPuMP|H0n Ak7}r,6OTqXW:K=tfS> endobj -844 0 obj << +850 0 obj << /Type /XObject /Subtype /Form /FormType 1 @@ -7262,8 +7253,8 @@ endobj 856 0 obj << /Producer (GPL Ghostscript 8.61) -/CreationDate (D:20080814002409Z00'00') -/ModDate (D:20080814002409Z00'00') +/CreationDate (D:20080814014211Z00'00') +/ModDate (D:20080814014211Z00'00') >> endobj 857 0 obj @@ -7293,11 +7284,11 @@ endobj /D [853 0 R /XYZ 74.4095 793.4011 null] >> endobj 338 0 obj << -/D [853 0 R /XYZ 285.5937 536.9157 null] +/D [853 0 R /XYZ 285.5937 472.754 null] >> endobj 852 0 obj << /Font << /F63 220 0 R /F28 173 0 R /F35 193 0 R >> -/XObject << /Im38 844 0 R >> +/XObject << /Im38 850 0 R >> /ProcSet [ /PDF /Text ] >> endobj 863 0 obj << @@ -7321,7 +7312,7 @@ endobj /Contents 863 0 R /Resources 861 0 R /MediaBox [0 0 595.2757 841.8898] -/Parent 817 0 R +/Parent 816 0 R >> endobj 851 0 obj << /Type /XObject @@ -7653,17 +7644,16 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 908 0 obj << -/Length 2296 +/Length 2333 /Filter /FlateDecode >> stream -xڝYs6_fL$-7i{3@Ś\l.%˽Lo? ?5<58U0buX/mGC7}jZ_I4J0[=+7fp*UM᎛Hu[=l~|M/HktJddp8kWUHto_e@O k#nLgW?n|p[Mê#<@7e6>"2rW] _R}C (抇`!W?o`ͽGnW"1Q1rhu`/:yp= +׺P5ul;r3:gFrT,)p%:cS=+f3pDžPPڕ,ڄiWZ3>>pv[18۬,jpzaECaceʔL ͑/n5$3@b0 LV,GTʒD-7Fz[83H!  ̬nhi7,*!S%&TgιXc!h>>dOdD! u[խҺ']0(F j*ہ>#!ZoY@G;>/|\2뎠Hܐ\I dK םé/zAM11NXpc˲\eOxgЭUH=RFpɪU2b-`i]Y[6?yOo$q{$-!\h.QV/rC`@v(.t uQ RU*vUNx1ydbcHrᯅݴ[DGTthZĊU2R8L2FPɲ.j_./=EӃ,Si"Qzb2.͞k8A]1$*;WC)JJ +{"RkL- \BG[=bJ$%j*Q - 1&zjWBpҦ $ ݞhiAg).L )VS%qQ;6lr^ NtT(1Tp& -՟ нa~s^bS 'F-eJ-Dj:@=:E27ynܼl^4T TKisco蘡=1 - Q Zz!jf97 I5Nn#CF $ml)3"?-ښ>R9"QY{xW^>H -;m^F*& -ed 7-SxwKTpY'=93n(P@K}~U'Px4b~3náӿG*3y|ϊ.mі\:'| btT[gE݄nX :UK}K-ށލYu碏7X;r|*ƙi@NMkJ]"BG(?2t,բP9FKöSɿ:u3^J|ZCvqCA:[5}Sz.VaɅkB M [wtwQՀ>S]!"ڈeknz%<3~j@wklWJL$Vw㡚Ԇ%CQgy uBw$زK^!WG -y}fh wB=wn \m~*'&@z*xˉ/Go]p@If ԩB?"Gendstream +xڝYKs6ϯm* Lyfʓdxq[)#S_hKrƇ~BbO,b4OE*߿GX} +O>w?|2jyXH82){˫salr["Z/>tb#Yb|TI,ctJ-Zti:߯_E@O k%D{k۳ͣm~Sjl|;FawPVJ(ƗA@"f+-/"fxJ%mZ@8ݖQ5?)@"Y%7]DɈe֞>{^h5+-֍mj? gpfΌ"˞wy q$0+jϫVw+TMMl.v2e0mD[/cx~eۻhƟ[m|΍Su wGA}98D믶{Ÿ8Z8[5eޔ$:/ViSn,,B!/Rlw!a%tAȩVCFLʼnt>Ȝ0ExA6&<8wOj'PI>t()c'lh +{ s|K`@m\m,8~M~f |ҕ`)'S ىcuտa^5vd{Lxc %tR_]u(%'XoȳOlk1!;suBA漢 UYIhZ k:stpKOpDrVǯŴ O_?!+f„*k#dx3PJӱD~W$mjendstream endobj 907 0 obj << /Type /Page @@ -7700,8 +7690,8 @@ endobj 917 0 obj << /Producer (GPL Ghostscript 8.61) -/CreationDate (D:20080814002408Z00'00') -/ModDate (D:20080814002408Z00'00') +/CreationDate (D:20080814014210Z00'00') +/ModDate (D:20080814014210Z00'00') >> endobj 918 0 obj @@ -7723,49 +7713,49 @@ endobj 910 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [189.8144 626.3371 204.27 636.9194] +/Rect [190.4703 634.3041 204.9259 644.8863] /Subtype /Link /A << /S /GoTo /D (figure.4.9) >> >> endobj 911 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [378.0215 544.5903 392.4771 555.1726] +/Rect [378.0215 555.3722 392.4771 565.9545] /Subtype /Link /A << /S /GoTo /D (figure.2.1) >> >> endobj 912 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [285.0414 508.7358 299.497 519.3181] +/Rect [285.0414 519.5178 299.497 530.1] /Subtype /Link /A << /S /GoTo /D (figure.2.3) >> >> endobj 913 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [209.4045 472.8814 223.8601 483.4636] +/Rect [261.0857 483.6633 275.5413 494.2455] /Subtype /Link /A << /S /GoTo /D (figure.2.5) >> >> endobj 914 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 0] -/Rect [372.1582 219.1733 392.2269 227.7381] +/Rect [363.4645 234.2856 383.5332 242.8504] /Subtype /Link /A << /S /GoTo /D (cite.Java2d) >> >> endobj 915 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 0] -/Rect [401.086 219.1733 421.4326 227.7381] +/Rect [391.1498 234.2856 411.4964 242.8504] /Subtype /Link /A << /S /GoTo /D (cite.Java2DAPI) >> >> endobj 916 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 0] -/Rect [430.2917 219.1733 456.1165 227.7381] +/Rect [419.1129 234.2856 444.9378 242.8504] /Subtype /Link /A << /S /GoTo /D (cite.Games) >> >> endobj @@ -7773,10 +7763,10 @@ endobj /D [907 0 R /XYZ 74.4095 793.4011 null] >> endobj 130 0 obj << -/D [907 0 R /XYZ 74.4095 703.6873 null] +/D [907 0 R /XYZ 74.4095 705.6589 null] >> endobj 340 0 obj << -/D [907 0 R /XYZ 288.445 268.2272 null] +/D [907 0 R /XYZ 288.445 281.1743 null] >> endobj 906 0 obj << /Font << /F63 220 0 R /F28 173 0 R /F26 170 0 R >> @@ -7784,19 +7774,21 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 926 0 obj << -/Length 2736 +/Length 2771 /Filter /FlateDecode >> stream -xڕYr8}W葪 ͉dVkj0ŘT9 PDI*>} bJ&y/<(ap+/K{IX$rqe8E?}z -,l9~kMWvq7Oo j㐳,Io }0mr8x4MCǽ݉A\EB_-tshqV]zպf_ss`ԼkMB Qun5nu7;{C&^-.+ed*inf;RH୾~luCר7EzD܄ʉkөHFJ uLq3lM2FCJW7?sںݯ㦩nQ|5N"YyD -)}T;24KUא4>ñ4z7- g \ݍzJŰ*&Õn+ZWl5sKoO_`tt89}'wAqrMDy|Ң*)nаQfSAOBuO^CFח62ꁩ-Qީ9 x/]{w.@Z94ٓ;Í%xѐIw\;@1$T @1x08K#$ׂq;.^=Pl - Cz\ Zc)QD)1|Z3(;,Ff2ZЩ։SXJ9zc+4!THۭq*-(`,>ԥX6<6C6}Q K] /j@|ub)_u&ZgKdy~480t -`J0t; KX}@|k@ -\j/nm^UVٻ] -ԅs%p,zj6NKg P!(.Aɋ -KZP:zJcIr& ^01NMбzm ?80\ e32l`ѷ#|-n)h#h^Du.$OJQ80 ?Rs~zpZo⛲*I^l=Q`*ssQ{kg+RTv§-q2hjJ sg74P T읻bֳBX=*ͪ P E)ޗ[&5v #ĠA .zCl9a]t1wծ-}Z##V9I,6+`/(Ҿ20;|"Q8+((xz(I[mz][PWHfNR=3>Bk7(erQr&?!C~Rx{/jD<Og."ʵU V]5wXRϾ'U 82t>lR"xZ"EQƒ8Odn0#!2C05d΍{8a<ˎH|E/Ca*OSԉ;vlMT+R{ ه!nNZFFA.DIm3T>B1 }9gyƓV tjR:Ԥ.+ j<ēWޡR"y{-/j"D|$Ox-ټ>` -ik<[Q.' Ω;m=z7q[H:aAsBdO4oA>|endstream +xڝr۶=_Gj&!@9q4mΉOL>@L1(/M?XMrz36]`{ߥ*J$aVI竻Ëp/wbyqJYrus2bBEtgX\oD7* 9-LptU77=Y%BƱ>{9"0_\e,Iayu6J6CDƃ۷V?wzxe汰]m mX< RA+Rˣ{--}Ew^HJ`kG67wH_Aqh6[G* u@R(1a RDq(#"amP#Jo(Em@\遌`ў4&7[]t{j.$dT&̿ -JV'Z ,]*awty +*,lldZ[a('Lzi.h${+_&X˺ֶPEQ@k_κUexBR]Pd>ƺsVo}t:7'tEb2"IaHk:"3fU*12E/*+ +n7PN띻Leo^B9H bB :$C 󥿂) $@F2 >%m4%ukQP> c鎀? .e5 4p}jŭ rF>'`\Z*x1#9jV dWظh @I[{@ r +BCG8TC:](D퓈Ʒ!ꨨR +]]bpvyLJws&ĽP#y8k-%`hq$Nq%5{sGG(PdLϻ@io" YOf)H^"!,tXJ?(%P>ga$&Lf K8EiNuF,NSeݞ3s .*NE3SXT$<\xpX%Іaw'<ҴPxXt7?D"y +\ʚ xn& +^`i >q ^­N758#p7K(Giu]z_pp6Mo|||mXƕlC ۣ=g;l#dJL%QsMX +c^`TLg dT[ dy[kߵT7o~ՕaYv(+RW1ܴ`'363d3YDd3SglfHBqBy{}|daBiB08`jwZYKeKRqGaLKԁ49=X6F R,`Kj,|GმI(; l`^kB+vG^YD [LCy;N4K?:JT>v +MVĜGpA{LU^<0N1uI8ܵ¨NJ,3:.Sl" G#vQWpXB3K7H).P୶*8IT,r$b]$=s">̨.GU&bZS~3@Ї:ID Ыk##|Wmbe^GQx}i^Ǖn|: { vX:VOeq0>BPP #Є{LG W>1 {N=їn'Gn-"hidQhkf.'h +6sE ~"mUN.hᛧ{Wwj1O%S.q_^{mMf 43|j~3֯*qԛ׀݁:OeYR7m?1Eʄ^)]MʶP u_bq8nd@+ ,%)o'ܧ"',|[qrc!y_{ ud-xnA/B>u~%Z%̏.p{7/ 4vVݷaXcߎ* r9xunҔ2YLXDsendstream endobj 925 0 obj << /Type /Page @@ -7809,14 +7801,14 @@ endobj 928 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [428.4717 712.6134 442.9273 723.1957] +/Rect [428.4717 713.638 442.9273 724.2202] /Subtype /Link /A << /S /GoTo /D (figure.2.8) >> >> endobj 929 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 0] -/Rect [401.729 616.4705 423.8776 625.0353] +/Rect [445.348 618.5196 467.4967 627.0843] /Subtype /Link /A << /S /GoTo /D (cite.Regexp) >> >> endobj @@ -7824,26 +7816,25 @@ endobj /D [925 0 R /XYZ 74.4095 793.4011 null] >> endobj 930 0 obj << -/D [925 0 R /XYZ 74.4095 530.4281 null] +/D [925 0 R /XYZ 74.4095 552.2272 null] >> endobj 924 0 obj << /Font << /F63 220 0 R /F28 173 0 R /F26 170 0 R /F35 193 0 R >> /ProcSet [ /PDF /Text ] >> endobj 933 0 obj << -/Length 2824 +/Length 2841 /Filter /FlateDecode >> stream -xڭ]6=OĬHJػHM iHy͵ KNᐔdKmqHj 1"KXti WO޽O`WxՇ~ɷ\L+,>\/D"H%-+[S-W"ˣ-WiGon*sk4劧ѱ.T,WJ<}N{DO5˲LXh+$acpF -Y* ,E} vU`֦*)Uyu8.{_n *>{S:XTe瓅8n[}ijW/y Yi>b,o-XU徦cG@7Mht7{"lwtFCo,|uq*h륌^xpaVW﫭;Xw7A\0$6#*݃:3H՝lX.x2=ǒ,I8/7T5^V?8j݋m_)SW_pt -3ETR%Y)*)}E'cgyF-\:)q gpzч֋Ť^̢ z12L]qL?$ -5 eZh(acɺ H$;c 2q8V1ܖuFq+hBrZafu2S㚢qv,z"hpqݱiU0fiǒ0. FKƻMa#k/d4?W;S?ڿ,JeJt2eJܼfC!dZPv0Ӆ>ο:I:&`1X3-K5#!ԥCIhe'>W.#!m47Gd7X7%#.I S2cV^w#RY^j!#\^⚴Q;)4j^}ii(ZMJs d{FJ}Kqjs% ӣ=*=`vGohqO.nk+ɰBxa3Km]6oLCC+fEm٪tq!>Ԍ=~K6-9LgQv"|뽍v(qcTmk SRK4(k -M*QO!18} #i*Og,OU0ϸ@bX 4PqJӱ -]$"rlCz` -Њ56*]sr!Pj73f3VlA%)i.m 4ї6-Z耶Y6೔ rJHu"tܯK{#UwGgMV®hhI}ԃ!Wk`7(3đsWf$G!\%(ր0|9eBtysm1o4qWeiV&:j;M\i~b;.ݶUMQ*ͩwGY@WY|,,J n/vQݙI6uq,dM|:ҀmCkaX;!eIڿsjF2(}Mk  -pxaאQ^KWNFSʊvPSbJg j.68SgVO{f r=NCo4T5;l\;z{sڹҫ]=vk(dgj"kl']ggeMS蚵7hx ~rV9]`&!~۶\= vm<[U(Qu.4X۠Ӝs Y^H9JKe~˪g$==iy<3gt$q"O9I~CNC俣;zFqk h5}Co+N pXM}QRms㛶`i-On4`h“7< _ݸ%IC ~Z` 7h.BJgj:ߧ5'\!-Yyt׮sq'n ۞P j7=LŮMrPbp9 = "ty2oCM_T2K*P 3wk뙪jL#`ͶOyQ@Y35*?vJluX0[*ۆ&&__p< - ޑ\'àUV|]oz: 0RRms^59AȘreolA}܎9hp"mA)\S4#ߋ5ҸFg6sɄV1Y78&y|Jc%TOziN+2dm>DZf&wmMu4e{+8oݵ3ߙkk(%%vAZT<'qi1dR<7z2X9?wh5-vj7z5B@KohC>!q*z'J[]9X΁ТUΑT'MKS6w%]9;Sah+0k3"m!-Yϱ٫̩):'֎C.% q+9OT/*~_LWAeR>Oer;-*ʼnPx1hT -yBJs1Gfhendstream +xڭk6{~?6fER#w)`4t9 ~\[YY2,)i ˒v8F3/<|/V0p=<;{<];ur8B %y{1tZ0ZlV|w8f*է՚eV\uCV EA ƣWAXK!.MT0MDԹI1``E8r,_t;#!=`;>TYf޲Ό|oYٍ]VlY)/8gRTž(V"P[:o+tRENk:Gx1=£bҋE8SRcR 5c )i#,.4/y~WjuQ"?@_Ou2R8,jȒS {FA2)o1^=AXRW+=:O1l5c3 ii#,f4>}5 YbPASZI m6C: cSr&@6klb6@L0וEʊnu(ʙ)[~,a(獡5m R'adc $c /d2[l4iw g2 uf4䰐;59fI|s#C:NtgCKENOeƟ&\EȐ8p=h l(֚ۈpuϒ;'68#`ha!6GHNVv,@F]& +GAOOJ{;>ρǻ/DĂXb+S_"',V4-XR4zA?v9 Rpj 2ψU- ZǦЃF}HpChb\Sn841--٬l<L('mV"=+Zozj6"tWStIKV V;њ n}Z[)[gۋ˶ۏy*KBs\NH[ŭBͷwZ6\&y 6ՠPӢgB͹!z} ?cnQhbE*/!xgBv]bd ~~AQRόპx*voM1ۻ.1-Dr{. prtۢ9uO,bdiz*7!yHmoQg['u3 .6w,o cۺ'u5{fdlaw ?2x*F١e_5m+ Cvso{2'!"^)#vvc +R*h* I3qx֯z@A^ZL+0ڻĒR!&|.ؓQW<^շ4߭rAKEqJ`cG%B+by)*3S+qh}O2SrCPLPCW;Jz1c1oMЦT5?#եfE/@Pj+vtdϔ##(ߐw;r5,>*w"x_uϓ T o?_Zendstream endobj 932 0 obj << /Type /Page @@ -7856,14 +7847,14 @@ endobj 942 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 0] -/Rect [118.6528 357.4791 144.8005 367.7475] +/Rect [119.1793 393.1827 145.327 403.4511] /Subtype /Link /A << /S /GoTo /D (cite.Swing) >> >> endobj 943 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [182.3002 215.1482 201.741 225.7304] +/Rect [166.6668 247.1144 186.1077 257.6967] /Subtype /Link /A << /S /GoTo /D (figure.4.10) >> >> endobj @@ -7871,49 +7862,47 @@ endobj /D [932 0 R /XYZ 74.4095 793.4011 null] >> endobj 935 0 obj << -/D [932 0 R /XYZ 74.4095 736.7004 null] +/D [932 0 R /XYZ 74.4095 771.7323 null] >> endobj 936 0 obj << -/D [932 0 R /XYZ 74.4095 710.9492 null] +/D [932 0 R /XYZ 74.4095 757.7822 null] >> endobj 937 0 obj << -/D [932 0 R /XYZ 74.4095 685.8661 null] +/D [932 0 R /XYZ 74.4095 731.3543 null] >> endobj 938 0 obj << -/D [932 0 R /XYZ 74.4095 659.447 null] +/D [932 0 R /XYZ 74.4095 703.5903 null] >> endobj 939 0 obj << -/D [932 0 R /XYZ 74.4095 634.3638 null] +/D [932 0 R /XYZ 74.4095 677.1624 null] >> endobj 940 0 obj << -/D [932 0 R /XYZ 74.4095 607.501 null] +/D [932 0 R /XYZ 74.4095 648.9547 null] >> endobj 941 0 obj << -/D [932 0 R /XYZ 74.4095 564.4203 null] +/D [932 0 R /XYZ 74.4095 604.5293 null] >> endobj 134 0 obj << -/D [932 0 R /XYZ 74.4095 323.6375 null] +/D [932 0 R /XYZ 74.4095 358.468 null] >> endobj 931 0 obj << -/Font << /F63 220 0 R /F28 173 0 R /F71 555 0 R /F70 564 0 R /F65 561 0 R /F75 558 0 R /F88 719 0 R /F26 170 0 R >> +/Font << /F63 220 0 R /F28 173 0 R /F71 555 0 R /F70 564 0 R /F65 561 0 R /F75 558 0 R /F88 719 0 R /F26 170 0 R /F35 193 0 R >> /ProcSet [ /PDF /Text ] >> endobj 947 0 obj << -/Length 1895 +/Length 2035 /Filter /FlateDecode >> stream -xڥXKs6W(X@[ڗ?2Av`0({12ޣQ( F#Ɗ~)] -L rP0N7%SLH~{t/f*td.'H#E䙊 -.u0- Qߕ.ݚkR+ -Q$&2LKbq$VJUmr:8,@WnњϠInfneF~3BVvv* Bh1}GkAjeKַRvUz>rm} 1pZ?m_T@pSF0< -y\PK(>3Ht,#×[o3JɯK w_PX{Qq`\8AmzlÊ=u2Y;(T:='.c˅7sz?ʮѫ{ňF@WƵ7JNgau`gPa1D oUszG.څyIʺaALJ p&>[hu28}ҳ霻[7&|.OQ*G/F,ޓ -kP"$``>20ml!&*t؆MuWmWL}ѢlޝCn0׮8L;FP!D!ٲ'#FlM,֝ -ǐ`@U|0nF.Ȇ>A8`$IwZKjs6FXDwk߷ⓂGЀhַ}[A͸%ؗ}F?ӻ0',KkÑjz.~H~߿aj 7z:!D$c)' \Q0>T4 4*ɤ036*AqTeFiVk 6ڈb'^:O?=S)z |fFTUmP*u=ŸM8̤},Rn!#[J棡cQЮÁplD5LF- х=^U,9La -#M -^Sx2LX*cPGc2@~\5 |F;arMe qgӶxa?0njkw0 GmXlSAqy c[6݊&BEVC G )C9B@%mT{;>sl -ntKhGB~R_X,MչƑ+>D,Rf4$]υ^[?+endstream +xڕXs6_GiBO}KIMo.=ùK)%v EIT..ē$SLNB‚qw&ڗwr%|rtq{5}ž,VƈQ)Ô6Y!'`YY@W +r%dCORYd,\%δBZSW~ۚ(jq/Hf=r j6Ek \rhl([z|qT /lt}pQ+1{_Q@~F(ny=qQ ,JŸ:8-u5$7F8 &NMX# OD6r + 93?GEJ> .p 6uO,v$ =XbRͺn֮"k܄hϠ0Wy)3tmU? S'2Lī ՐDA+o.j &[6nC \5WQLd&-":)p0pIPH^T*<22.gg멲G9B9 Pn" H70SX>!pqagB*0Z ^y +VگzvUq +}D8}=ZqeFl ^d)39M_I2 R5p7G›۝M{Ufzr6 qx?@c'rX~h)42BBzpm3cFciaֵL~&'#;j4Gi|oNnlc> endobj 950 0 obj @@ -7980,66 +7969,67 @@ endobj /D [946 0 R /XYZ 74.4095 793.4011 null] >> endobj 341 0 obj << -/D [946 0 R /XYZ 237.9156 250.2206 null] +/D [946 0 R /XYZ 237.9156 316.0648 null] >> endobj 945 0 obj << /Font << /F63 220 0 R /F35 193 0 R /F28 173 0 R >> /XObject << /Im41 944 0 R >> /ProcSet [ /PDF /Text ] >> endobj -956 0 obj << -/Length 2381 +957 0 obj << +/Length 2234 /Filter /FlateDecode >> stream -xڭY_۶O5c`dOɸL<NB"/K],H:J,*?|I&E5*抮:= /ԧ#v<`cLSۇw3D_hKmѕEwc@^ ߆鵩A($ȱׇOq)pꢶEoLMoZĕD Z"atD I=sg5> ZS-fQΣrT)01XLb1MI9^{#MޫJjBm1<>(69NIuwhv)?uBu9櫓`2KIoF(zdSvf~uUu.~W =ԦFz€ѣʹ4) -ɦ^Y" R<)} -uAE\ϿDh󇛈ŹJVy.V)S&Вn67?'#(y0a~8n|gq&PcLJx(I -5lClO}KZ`vMi0sCwb4tR]CN|.L8(%`1db>/EWZt4N,5IJV_~u2w{CHܘr¥!P&B2jv}`Jмѥ XE;YVmO(Zyeї;6XW$L*j,]*\LDAJm .C8]cgz in/ް`J2YJб3)q #^Y 4oDo1cG"Up8R4,XGKқoJ+''tw}p. ygu~-x -ҩ;mSʎguڥW*jrN^qEFʃ%UJ}Ƙˠ񖣵'8Eƈ;ϋ8JBļVՐpHGX2g*LcRq{R> Ɠ|Phr{5ɄWb.Y3wbi4& )9'z.7: ^LXOC]al[ z&!-+yD-rؑ+p18ϳU_ yN<NF$Tg,ȘXsΚ.2<]jlG M_[5moK^~Y=t6[.!k׮;y3TE2`0ИErT9 -v)w@$R_#dP_ b|:zUՀ ղKk]~r,8=VF \Dtg,p;2rC3H[JIs0hLc{rdϳ4o$<HaNpF%Fϴޕ# U(J;I΄Ey bOWp/F*kB z`己\hƱZ/LD!;@$z*pp,5*Ѳ+_ozs3\8_R1SQ,Yd=cIY",Ȓ;Qʒ$ΐW6Gk +;v[%`DNRPqThLm>f1ͣȳL65'h!?c눋lsrxȕ5_pY[SnEkp6Ϯivm[x\A@ݶ'5!JD˪􎜀+,ՠH'I3Ǧ_%߮~5\l_L:Z<43R\~N }a *| p'aE 9a( K8'T!@aÔQz兽[1nWW}4ZTYO5a~Xg/ !R!*G"7 FMȑyrusQO=;Fnp͸ԞbǖN7I!{O)aJ +~z9kCbΑj0AʆfyvUm7)0'*žt"֗ 6ݞЦ7ϺK{ %WL PyA¦bqH+q1Õ}㐗; +Tļ$edu cWDa|[<iJ Y8.KʮB@J)Z?T +"9W**d?pa9,a:MS2/BC&ipRÝx⹢cҒ7Q$L0BM2Ma1% [RƵV `BS5d9>Qjz,!TdOn&BI5gZ 4kAFaZ[:psE}&L-6\C<K7; &mg&$0PMQ_$xڀz.ch$_ӡ3HddǷ{j5j@gBA'X}GL薹t`Xtz?澙1~ 2D:$+x\־}^P3)ϘvT4ֆJ.3 i˺{n4\t]> endobj -959 0 obj << +960 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [124.9883 171.4698 144.4292 182.052] +/Rect [124.9883 207.3242 144.4292 217.9065] /Subtype /Link /A << /S /GoTo /D (figure.4.13) >> >> endobj -957 0 obj << -/D [955 0 R /XYZ 74.4095 793.4011 null] ->> endobj 958 0 obj << -/D [955 0 R /XYZ 74.4095 655.9716 null] +/D [956 0 R /XYZ 74.4095 793.4011 null] >> endobj -954 0 obj << -/Font << /F63 220 0 R /F28 173 0 R /F26 170 0 R /F68 548 0 R /F88 719 0 R >> +959 0 obj << +/D [956 0 R /XYZ 74.4095 748.8529 null] +>> endobj +955 0 obj << +/Font << /F63 220 0 R /F26 170 0 R /F68 548 0 R /F28 173 0 R /F88 719 0 R >> /ProcSet [ /PDF /Text ] >> endobj 963 0 obj << -/Length 2093 +/Length 2209 /Filter /FlateDecode >> stream -xڝYs_Gj$|%.r݇ ˌ)!\{}X"Et5L_cWf04yUi\y]8j_{GӹyUv"zn*#牮 }4A5us^{fѡO865RPφ&$c Fkuˮ597BPWxdPՊ2QW)'i!H|oz6rʍ0(? gy"Z:9~21g՗.ҘdYʗ/4K -?43~#˱-07*^dƹOkQn}KS5@dؗUd#!iJ$Q=2r3*^Xt?+!rW~@safi N`$B3),fP EtΗrN㜑4MS6n'֗M=y! U\@Sg4\ly6BR2*5vyM'3`8|2>i=Fr_60Su8H Yc sO K`>͍anXī -4Z@cѓZ3I)PpWyh;JĹNa}sf;% Zj'۝`ˇ_Lj{aYhpP | _f;60#oS3659.:|fw&Z ڿs!k\\4L)qh2$Ψؕ=6_4K̡'.E;mOW֗3g+:ZrUOvWor}B6^pfAx1RP]3 yrQp/ sKendstream +xڝYs_Gj$Z_/r}LXfLI)Rҥt]$8$㰠t񴻊[x:ڕ'^ _}QEJ2y'Lrz5!+{]-W,I#A+;]n+*}]}`+YLRط("Bdb(&CMJDЄe$TUydF$aVA'?tq*:]vGKG_vz_򺨌+sW}ld4PF7.) +t L/ºn^ܪ|z2RA1x(n)(]2ТFȠiL22e!HHIA6ze-!6ro /rl*+2"v? ,άލ@D +I";cm/P4H|),ID:Sjv}o}sPayħ Lvg)$$}FyK|'Y%QnuVdí#LVsHl#jT(UiuY[kD }w@>b'^>7az~Wms[,)S e9Lc(`bwf wn$ȇwJx8#D* +$8 $8&T&#21"eUXL&B An1Ti ¼@〉ጋJIoK|9T_7@ˠOf>()vӐLKzk hq}Xh6L'ZN/M1bK_p]>bt44/&3*& bHu΃q=x >\/ܸ0g9!ဒ "RL |/k|/ؔ_׮9@8 bZ|:L7jB $kXT;f9iCPfn%S*~UH h~V7*O,6lP~ |hvX޵ m+x~ cˮ>!G{q/('ADs=Sel}̐3`( lo+ :MP @p +Zɻ̿1aj^*GjnV܏m|zmH!ڱ4uɰN̄ḃƌ% +WSydg8$endstream endobj 962 0 obj << /Type /Page @@ -8049,7 +8039,7 @@ endobj /Parent 967 0 R /Annots [ 965 0 R 966 0 R ] >> endobj -960 0 obj << +954 0 obj << /Type /XObject /Subtype /Form /FormType 1 @@ -8077,8 +8067,8 @@ endobj 968 0 obj << /Producer (GPL Ghostscript 8.61) -/CreationDate (D:20080814002409Z00'00') -/ModDate (D:20080814002409Z00'00') +/CreationDate (D:20080814014210Z00'00') +/ModDate (D:20080814014210Z00'00') >> endobj 969 0 obj @@ -8100,14 +8090,14 @@ endobj 965 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [305.2996 640.0505 324.7404 650.6327] +/Rect [305.2996 714.5531 324.7404 725.1353] /Subtype /Link /A << /S /GoTo /D (figure.4.11) >> >> endobj 966 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [433.2469 640.0505 452.6877 650.6327] +/Rect [433.2469 714.5531 452.6877 725.1353] /Subtype /Link /A << /S /GoTo /D (figure.4.12) >> >> endobj @@ -8115,28 +8105,35 @@ endobj /D [962 0 R /XYZ 74.4095 793.4011 null] >> endobj 138 0 obj << -/D [962 0 R /XYZ 74.4095 720.6301 null] +/D [962 0 R /XYZ 74.4095 771.7323 null] >> endobj 342 0 obj << -/D [962 0 R /XYZ 301.4797 464.398 null] +/D [962 0 R /XYZ 301.4797 538.2152 null] >> endobj 961 0 obj << -/Font << /F63 220 0 R /F28 173 0 R /F26 170 0 R /F35 193 0 R >> -/XObject << /Im42 960 0 R >> +/Font << /F63 220 0 R /F26 170 0 R /F28 173 0 R /F35 193 0 R >> +/XObject << /Im42 954 0 R >> /ProcSet [ /PDF /Text ] >> endobj 976 0 obj << -/Length 2231 +/Length 2143 /Filter /FlateDecode >> stream -xڕYKs8W(U H-8';dTxH\SF)Rlƣ~nBX1,N% 8=m߄5t nu@d}>Tg#gv=:w .;@qKX\r@r.Φ#Qe4DޘM-R>mh `mپE zZl?v 0^AED:& ͞ -60HYh^niH1I;5@/(LQ[ D\9/(hj#pJ,,Q9j%.;e7N#Xt9.y\H' aY3NV\r C#|H%7 s"O]MX' e2Mef!c-*9Pf)<(FMѕYSH%J|AdIYd}~̋Ug>Ÿ`?F$ Q>*M3: Q"|](gbND!&k=ٵyU6ǂC0)x<)X4e)4:*7䄎LEH%V[ĽL y LI&R AK!Ж06aĤz6l;UOhM[0dpmˆ_h -TY l5M@FhPpʊfſ_ȏZO>"9awQ KPDjc&4l4GlҲ&#Q LE9@Gu4d'1B汐%Ӭ}2yPHJ4A=. #*`哉#eQ{~1Z_5uTT C鮑AA;j{xeZ2}xL'ɅOu.ugvQvBqD%c^, P뫶45w-mYu[-`׮mNU%)rmi8Qź+׼zUɠnn/"+\*8&AL `_sb|#ݬ)6g\>ՙ.Y]hNր+yf,>jblK: Q]AT6-_Fa%렓a*Ēʣ7:҅dN}ۺ3-$¿ -NĤ% d9ؙHb,!&BSO -C NI [khȨ>SP_>չdCs=}.Ao{6GփO۶[a&ÜQCsP?q59z|/|y)IX{O<@#=Z+'#s٧lendstream +xڕY[8~ϯW +@%۝줒Mojj{Oo9:J#'A x%,4 + ΃M]?wȃ!Û rV(OH$K˝t5D Ei]7nfO}ۇl*b+%~$Q,IUDR2%d1DOH,2K"ӀsV@Q +DACIc,2 Nz)#8ϒ귯3.p%D>8$g-gPsZ7Fy*[Zi;Ԧv[1-`4qX.]ZytM ^vw .ezWU+IP&0#+2VQ*UHOYLᶦwz9n<#` ȟ U1-~1Th:_gpK?p,Ky1]o` xduK{8 ^1wÝ=Tafavig ?=,ihZ ;rwn{}s]:8T'LLM + +*P:T%6?e9\ٟvo7 no /EOS$rܖ{dBA(4ɻT^{ <֋s44N+BNnϑYnF?݄+B\yO ]]gu;I)O/ +Vp!(˩9Mb&Դ|˳C ŝx%g%KRs&1EMA56eJ[p wHkF3$ +}@@C ɣcIgOon)6bcoSe*cd×G$ϐdݳ+6 eN/WGMY(瀮1GF\̼t6ڀZvf5m(KOjE +RA+zUByuur|Esy +\xuMrAϕ?`ja~u%ktGHк [r5ݶ:Ԍ8rUOwzNYE⇵Nf4aeŭ\_0??  >NQ̫=)(qtTñtacKY;y?]'kҵR*|c.]uKT5zƵT݇ .O*Yz_\`CѸO#)^POpAUq(e߽Gm;hlþ˞69ػa!fS:w=j'kLesًἍInfюLQ#W@Q"%C5 +B#|';V0Q|y,W!knj'Ts{^`U;s]brӨ'íu8whbu<X*fy> endobj 981 0 obj @@ -8196,14 +8193,14 @@ endobj 978 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 0] -/Rect [367.8739 291.8088 394.3354 300.3736] +/Rect [294.6644 347.646 321.1259 356.2107] /Subtype /Link /A << /S /GoTo /D (cite.OOS) >> >> endobj 979 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 0] -/Rect [448.6598 291.8088 475.1214 300.3736] +/Rect [367.9724 347.646 394.4339 356.2107] /Subtype /Link /A << /S /GoTo /D (cite.Richtlinien) >> >> endobj @@ -8211,10 +8208,10 @@ endobj /D [975 0 R /XYZ 74.4095 793.4011 null] >> endobj 343 0 obj << -/D [975 0 R /XYZ 288.1558 497.1893 null] +/D [975 0 R /XYZ 288.1558 556.7008 null] >> endobj 142 0 obj << -/D [975 0 R /XYZ 74.4095 361.3525 null] +/D [975 0 R /XYZ 74.4095 421.047 null] >> endobj 974 0 obj << /Font << /F63 220 0 R /F35 193 0 R /F28 173 0 R /F26 170 0 R >> @@ -8263,8 +8260,8 @@ endobj 990 0 obj << /Producer (GPL Ghostscript 8.61) -/CreationDate (D:20080814002408Z00'00') -/ModDate (D:20080814002408Z00'00') +/CreationDate (D:20080814014210Z00'00') +/ModDate (D:20080814014210Z00'00') >> endobj 991 0 obj @@ -8295,19 +8292,18 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 996 0 obj << -/Length 2655 +/Length 2534 /Filter /FlateDecode >> stream -xڥZm۸~j1+Jt7y;>kW,$;!nib"r1|_ 'WaA;gu_nhxۥ~{ݟ*bqs}~_\R% `8K&2W,7[(Q ?W[c]ꉓ1 mN+Y.%,^j$C\델Z1W7ȏ;P>כ,$2˔x&J2/eyٸȲJ=xBHTQ㇍G&ũnZ^ hN̆jQ3,[!X^q-BJM Ugn|循tJ侤|9S鰴.~ _apV,x)#xsI >V ^ m)scn#.lO0tvB{8+Z -n[f/%{*;қcغUb챧u -z: SEE :AYfy -d&ªcoUTfݸ_R<_Nə;+'='sݔ3ǵOOå3v4d*>i0|!}øqq Vw[1?6xfζ;isk;w{ebkWCH^j#p]U^uXLm" m$\ bjHΝAs}DկE.߾B. %^fa,l}xͶ0C-v&㻿| ,bq̗Jˤ??%b\RyTKU]㻻Z=6 TA8[ +_MJT05JHhVp%OJ!|.gzR/ՏhJٖz+e^o\&Nqo!4Lٓ2Zszz_ z +1eofu؋`˧DKgÜp~"J̗H5B6EQ5EzR)Ғ(bNuB]-: =O*.!%nPSOʸO18ؤOƤ^|ҕz'MMmk|,{ ,ۿ/x=%yfQ8xHX$RT<彲  e^'eD/2U8foF<^æ<>*xO[RDžؼ 6OIwh*P=l_ڸEKv6B ;[|hC%HΤ/l92E n}TPƔ䉉D&4&§+|jJu$ +pTtF.L…^ڞ s.(HMj#I6y6;y~\H5w'!FE5KP)V>LSj@ z)O N5PcrINIp+ +ZR+M22{xh4t<7tauAx߳k|ݙйvS'{x-~ÚVi谸[}덙:w +b(ߢĀl ['0<ȐM q#(L<[˗e˪'1P[)>Ȉ}B'dHc4+*m[#K+4H̋0}LpZ %a|֫iblAȀF1v}_h2)ZBKuޘ0'+ x0aX6mB ޛJ! TwYaӇv_pk%U϶gO2- nVvdUWr}`vUM* +sq#|,@%#*R4Ьb1s|ܺFת@wDTj![)ًg{j|kͯzs4`TEQ-Bc@8@)N4gȼB[[ߖ.2S*ov:&Ku94dtAfbe?B$ `}_"~20˝w $|xrd WPj!D BLY:T4\E[iO̟n{.!v̮ZlU.7}j$%^ lta =?pʴ )kBjX ](~5xB}%>9n:+1}~{15;ogk#;,/Sn4@CUOgQ쩎6XfCI^+krER2zzOVUUKt:F|ɢB\d)`Ǡ'binD|+<_pށRl4p͍ +n=wAw踣FMf݁) X);S*润HZE"㦨QrSPD+V86LW)'m[PΕCQt?!H<Lendstream endobj 995 0 obj << /Type /Page @@ -8320,21 +8316,21 @@ endobj 998 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 0] -/Rect [295.8756 155.3538 316.4464 163.9186] +/Rect [343.3159 155.3538 363.8868 163.9186] /Subtype /Link /A << /S /GoTo /D (cite.Javadoc) >> >> endobj 999 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 0] -/Rect [104.1763 137.5073 124.6124 145.9913] +/Rect [152.0291 137.5073 172.4652 145.9913] /Subtype /Link /A << /S /GoTo /D (cite.AntManual) >> >> endobj 1000 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 0] -/Rect [147.5458 137.5073 167.9819 145.9913] +/Rect [195.3986 137.5073 215.8347 145.9913] /Subtype /Link /A << /S /GoTo /D (cite.AntIntro) >> >> endobj @@ -8342,28 +8338,31 @@ endobj /D [995 0 R /XYZ 74.4095 793.4011 null] >> endobj 146 0 obj << -/D [995 0 R /XYZ 74.4095 341.3283 null] +/D [995 0 R /XYZ 74.4095 368.1184 null] >> endobj 994 0 obj << /Font << /F63 220 0 R /F35 193 0 R /F28 173 0 R /F26 170 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1006 0 obj << -/Length 2617 +/Length 2674 /Filter /FlateDecode >> stream -xڍZ[sۺ~ϯ#5s}sj;'9I9i'uCIX"5'~o.xd2v It?:|{I0JgowNu[aה~.䳘$a63sN_>Z.b's7<י(. &l<! I ƃDQ$}5wy9爲ʊ|N\UjqPRM8 ŷ?ܣxf9gsfԓs -򵨉Zw#Tȕfrz٨iQש /XTY]$Y >ХF$az?<|^$qb -w!_.\u*i!VM)FaaxV+s}LW;Sj.+j())P]#O~7,W|\nzԱ0pR9W,BJ1 -PHۯVBY -yThKY^ QOKߧ.+h!=3HmfBLɷVtvn5F&t;>`4LŪRo|m=>-Ey>6$A@^#ծࣴ[<vуe58}~etecY JkϙxgJЬ2z<AeUՄ;KQA0c'b- ,$JF&puE+0}F ToTT%\&O2g5t*pH-eu7!< l{BBD&GL단3]^ojV%7ȉl+v!搮2|q/2YR%Җ6G+ZJ5:b:_z([gP{m)|L|I>T@V -8ݲ z-Y7pPFzVIMsKz1R3[_[!q [Ԯ{ O*N:|Lա!O zvԾmP'!j:j0Ɍg$0|sw~5ћ^fVfT -̼m}* 8ϯJ>UIU"T>V…%+(/8TE,z,i''ziu_Q(Q=R'@Qj]\BN_d5:fhnDHuʱ@ Má֏Ce C)ݛ,=[)_QЅU9%嶀e!d857l[+y\-SL&D^튺RZk<޽Ftۛi}Zg!W~qXB9>fm@ڃH%ty=ā X\]ˎ~cOeンj7YU - nmJ^;=T!VmmwP?̖{1Tt>H c?h2ZbS?CJڋA2'A|΃$ JbdzV -?z4$gVcbD=NLCεq fv0OK:8tMG5oWWgMRZV,  QܟBA)&[I* }#\V4*_?e~!mgLb|9 2zc1w %R$pVl2CeL+e@ j izMM 5x38mY'X%d7šmu5.n Y &kllsw -[oy&aK.7F:\+6ɜo9sUճcFu܂2_⯣o7UCiUxGũG_H$KBq"ObSDX'̪cs}2>N^҅b1gze x4IFRD~MqՊMreʶ:is-I%dvME\G\񩿱#/cAD<螦l&40h[`д/L|zM} ?SR59Ybr\FЖ$%p0y¦l&4pi[ҴU?5IO?G5zMr+5 -0ڽ=@6zpu[!KTRA0Ee+6IoJOR1¡iЌSخ邳(((T@7J א%bS,YB/dg7u8Mhfc3$5PB^ϕ[TU&)MZ9*|GN %^xZ(&^4uo&|6¦erL'p83yKp;xt1Iƣap]ڨ -$6Io;yՇP!͐AcftQ7C[}37p 1ZOyLB/LVl8CqL=(78Dc8 9[GWk+FC]?ɮ>;4n)  `_/%~뢥p?q2K.CmDendstream +xڍZr8}УT }sv&x֬( {@oT>@˦3YύYsP:[?Fi_>Ha;c'Mߒa0{d;"Y%Ep??}8K `a'釃"QAa6oeV&+*Wy8$zNB3W6%Bc&Y X4 JW9`81R٦M@o.r>D{0$ CFy +)3A +z_R͸"?juTN0|O{urSߥVXJFb|.S0S*i4nmV5bydӝPlʒAK˸B+)*Q %$YGM*$ +(Ll܋jߴ :\-x2J!3L'Jd{+r;3289W?rB'L舅kPWMֳSPUATYky9a!S1&i +H-YxWL'Xzk,>#wcTgQ?GfP|:UشtbR/LpR`Xnoo[wM RC]q2ASY@jYϫROA=R7(~&;}c}H*|6;dsO ؃nrJ}3wIk){DUˎYQ!iD=pYB B{$7pG #p7/8aC7LD +O1وMR7¥mu̶S̋!-],a_ [Ȳ1.q0`a|)eO( +(k&)k̶:@Y[OP0Acf+oB#4 ciZ4,$k-}#VXk[[@g/w˛A"B)e ̞.&9[ܝ֛o.lwwјN1׈M27œmuUvZo^ #q=]dFJJJSG>xz[$ޅDBC6NIlȶa";V;l-$ )댬+A6!> endobj -822 0 obj << +821 0 obj << /D [1063 0 R /XYZ 74.4095 497.7737 null] >> endobj 984 0 obj << @@ -8723,7 +8722,7 @@ endobj 577 0 obj << /D [1063 0 R /XYZ 74.4095 235.5679 null] >> endobj -823 0 obj << +822 0 obj << /D [1063 0 R /XYZ 74.4095 192.4905 null] >> endobj 393 0 obj << @@ -8746,7 +8745,7 @@ endobj >> stream xڬct-vضm۶mNcvm۶tu_}?t'_0L3ru|Vz#fo`Ϭٛ~26qsvV_'נy-;Zgeb O296* v H0| olZ:s8>ŰI3*#+D"9 +5303`"^VJ5e *0.V?fvfUfs+[3RB^ afold Pt32ZٻQ^LM)ͅK`pq43fibhlg`p6wvsrtv}):8[9*?]HSJjdep5t';7տhX[Z77?:[F^֜;wn +{Eo9A 7 #S{[/9 wJ}"7H"OC<'|0Y?w+?5MGB߂03h"nifhjb 07ԿjfζVfߊ:&FZZzMHΠ,,'Dw꿢wUr&?Js0_0<>t'_0L3ru|Vz#fo`Ϭٛ~26qsvV_'נy-;Zgeb O296* v H0| olZ:s8>ŰI3*#+D"9 f/8׈^fgT?ڛTR/y`q~ $q/ D#}tD7YމR[tvNbpldx&7 <&)W@[' " PG?4NUѢ`ݾ]=<]7EYRf~:W(ek.kÍL o*nֆ4d& `䆲%ҧ֮!oadFޣ␌n$ʭAх[wEXwN}E c9sY<=,,ES&"[с)ᐦm Is%~\Ҥ2OGMت j- OmmK9b\)p$ :_g'(Aާn0 EfW ԘBv:4Yj҈jF#y0b;^atmtm^@D-`x;3`cݬpFįkHbfPA]OB΋N2R9%S$୾ۛ#I">"S{ ތ ԰#DAs. ٛ3~a%Y=M^E0B,R넰x'C>f{E1 m[y&3Y1L6>|M7ǜUZ)<7{<I[elwr҄+\_Ydr-]\|F'/޹uӞ60 ^!Z;Ŧ§)G|:7yLq[ϪX:ՀB5j0 9'5$?7( W6(endstream +bŧTOu:LHafNj7QCΑ9]K,W:#00QR-3¥LF߾6,b>x'C>f{E1 m[y&3Y1L6>|M7ǜUZ)<7{<I[elwr҄+\_Ydr-]\|F'/޹uӞ60 ^!Z;Ŧ§)G|:7yLq[ϪX:ՀB5j0 9'5$?7( 큮endstream endobj 719 0 obj << /Type /Font @@ -8822,14 +8821,14 @@ endobj /FirstChar 33 /LastChar 252 /Widths 1067 0 R -/BaseFont /MUTGPV+NimbusMonL-Regu +/BaseFont /RBMFRQ+NimbusMonL-Regu /FontDescriptor 717 0 R >> endobj 717 0 obj << /Ascent 625 /CapHeight 557 /Descent -147 -/FontName /MUTGPV+NimbusMonL-Regu +/FontName /RBMFRQ+NimbusMonL-Regu /ItalicAngle 0 /StemV 41 /XHeight 426 @@ -8849,18 +8848,13 @@ endobj /Filter /FlateDecode >> stream -xT{Tgo46ZCy%ZDcP!L 3LJQT\*jAxĵ("v9p.*,j]%hi==s~z̔)TT -H[# - -#URuKHt<pbNRA V˕q`` S5ZあRs1zLَ_K!qQ1@"! 2} -+R\ I -b1"%EpsҬ -cX*q 6 β?Ya0*Q'^eNըAf(C6&XU28U&ɓb96#3SE):HrAVIpc@Y(6ܒIh^DY lswF?ihyMY~XH}xb?585@X4W4X$x6BHTP8^UGKRud%dj3D "!jC -E`b:0w<IO5zcƚ8 FjPE>%FR cǑ*8 o?1X-\G;0bjlKrD&QxZ\dg.HձR$$ҽoPhEG,,HQy1$EbKϾҚ10H%2ycC4\ZCRzh=a)y͍e:弛m_+ rPǞ˖ŀ28睢bsgů5n+?=XyXXqEMpb{ٵvmK7ɹjC;mtTVuJ ^:șW ;>Lr;AU8M9b7st]ܢ -ۚӋa哆;e8?S;lu`҇677Rwf B;?mV57)4Tp[wRمK$kMi?W(^`C.5΅;]uy|]Q?!W*ژֲא;\o2Vs2${RL;7:GvkÓ=__XثxCq= H(e]4ME,j`q9~_@ݦN8<>z]Cm;oz p쑍8(4c_]X[y%9 n,\;8?>y=G]W6,<Ԑ+׈7 \r -&CxAruMmpcu{NSߛ_25]n1$W.&w)luR'DnmzlSOzml"endstream +xT{XSoWW|rDn D-*F0C%99' 8* BH'>,E7VЍNJ+sЪ0V-:lgy{~\3XI0<^" 0R1JADH'Zss e )84:R1@(E\@|lS*n@bf0ّy!N@R&2&cA8$!@K#pX+ B!PQ H%nJBX,KCA&!Y8 FrP 8 +ं)M +5 <Ȇd˱ +9ʤacyr3fqd +y*)N IlC0a89S48KF`4б80P! "mxGc4M̯)9 Ob"Ӡ'yަ$UJ–sBIx1KH}B_ ?̉^_mD0A`ZD틻aH,7_LNcBHCjhLa*e8FƘ2NBDwo-N+֓NKMTNqb{UbDTTOEx 4y+( $҃LO;"/Z'?C43x\^q ɨd\︴v2RA)Mp3P<$-b4J7x{ZevgpSYVk>&' +àA3_Աy1 CF{;>@s49Uf7դnk=mK_<7[8T"lrޙUK>ȼױE"]wxmg|{ ]2*v}LlT=sYۺצ?xw`އqƘSصjA?5!ˇ9#7JaG)'*ɼ·8^j~nkKaI1}Gcv +rڨpLp>g>d?K&}\~~VQqyrIA ݲ#叶ߘ;]fHT&eٌłܵIFޡw71cpQ|mOOKnyGX%Kjo??܊yoyMYg6p}:]}YU;߮W.ڔ޶O?Z:Vw*0wrL7;:/vpCͭ!MO~Q~ 1BQ=h8tԮ)6qxTDP$L^ԾDzdLGnmq2lĝ?:<=GɉJiQq-b*յ{KRܱ%9 ,z}ԸmANAݡ_IzS2+qo~g޲iX_/iU~u kJ/&8?8Db]#˔8zPHK?_"}}&I,+m^CUw"rhy_[D ۮJ446zX;!Vٕ쮼1Vb׆}}i}"2xdjxIkv3\ݸpSw †|*\w/V %:ɍ2[%u]MUY;Iv3t_`XpM"f^YR#4Ht뿺raANDs>i}_6yÓE inN.2s@A@(-Ƭ ^l-endstream endobj 635 0 obj << /Type /Font @@ -8869,14 +8863,14 @@ endobj /FirstChar 229 /LastChar 229 /Widths 1069 0 R -/BaseFont /RBBPBS+StandardSymL +/BaseFont /QXHJJA+StandardSymL /FontDescriptor 633 0 R >> endobj 633 0 obj << /Ascent 504 /CapHeight 687 /Descent -228 -/FontName /RBBPBS+StandardSymL +/FontName /QXHJJA+StandardSymL /ItalicAngle 0 /StemV 0 /XHeight 400 @@ -8896,21 +8890,22 @@ endobj /Length1 808 /Length2 1320 /Length3 532 -/Length 1904 +/Length 1905 /Filter /FlateDecode >> stream -xRiXSuVTpx dcd&7pKroIh( -2D T瀅*:" -"Q -{{?g>묽&>6.|l;쁡R*864g -@$0$E0t=$eB@[(5t{a 7I=p8ƒPHS ?C`i o$ -O -J Ojb ؿ2T4K4ŔLKPa yy hȚ^C&nD姜S!˜?H,8`|GSq`>"MϲṠBPmI8"@0"J)FӕhAmZکRn쩘1֘#rD!Q(T Q?B=0>F@84C -,(&PL4&Jwd51D; - a#@X<s+{Ҳ}^R!sCL~[hnuo~TM0U\E  6ۯ5mҌx&3(+U=&P^ ˳S9:;vwv-c:rWsY`|#GtmwaҎB=܂:s۬^R7(߭X4{\3XpK "U?3^D^ӧ.?hweэ͍/'h?fiT:*^17O76/ZD,*M 0d1*. \+q -1 $(7kike q! 4B\_ ^]G#3jCs-LBbRA5(JH2v ԁ&XC4;4;gv3sS})4ۑUMv=!k,[on )V6>OXnxx%˴u%7bAl.u};0(5lU :n?X[w{@~U~N|%үe?\oEcGs Oes{se9"LY[y֮$NהOJ%{/KEÑ>%Z܇o=B`tHv+O}IQd[@Л.BVcu`Kaw6Z3jwz9e޻AAe =p+Ўϖg4Uy Kk_z$櫫swDp)&(endstream +xRiXSWvVT\ƃdl ` iYnI7 eEAYD(RAY UuEbD!@6`?g~39;yhkvî*vvRLDg$n$2`ThƎюnC gL#a`l6CBG +ؐ$jp!Ÿ,"GX 0DRJn8 A M(6aT! b(`:+ D0Tx0@S7d-*>3gK"?P$8`c<GRwűa"ͺK uD0Z(VqD`">$ó8*Q7ۉcgkg^J8Q"P>gcXe@DPUDp + xhtk8EP *h*@P,LLB1 +P9 N+E`=d.&BB), fTe ;9ahˍ4`IPl oDaT2;c*?|De< `.Aсq̫I.s)ULZ^xRY=yN;^{v饹g<>AcLs/9KyYaC Z +6.?XZ 3덼)զ`0Ucu\D +#x*Qh[wtt.`(#ʇ?n?VMb禑\uymNuȰU )˦v5NdgJ6pf="HZ_uκ0^Oȧ^W#^8҃_W56n:=#׽J.:#̜-2ҀrZgngelMNhٰa˫z눉xeG +~E>}^OnAk. O +``B endstream endobj 564 0 obj << /Type /Font @@ -8919,14 +8914,14 @@ endobj /FirstChar 58 /LastChar 62 /Widths 1071 0 R -/BaseFont /MCNHKT+CMMI10 +/BaseFont /XJAQBT+CMMI10 /FontDescriptor 562 0 R >> endobj 562 0 obj << /Ascent 694 /CapHeight 683 /Descent -194 -/FontName /MCNHKT+CMMI10 +/FontName /XJAQBT+CMMI10 /ItalicAngle -14.04 /StemV 72 /XHeight 431 @@ -8953,27 +8948,30 @@ stream xteT6 "!0tw RJ03P ݥtHw]C /Y{Ηsw֬7Cm=^y5H A H4֮]&TRWd -ӋⳲ*AVH0dI A6% $g(Bap=k/o?,wvrœA8P A[mLSPA@p+'PA` @(5<`@@@]6` 3;y7$\m~p)y8$ÐJՉB΍ߙP;O(wKlw0wV A߹A0dy )dgq!w0wؿ>{+O4?k# '[>|A@]n;0N+3#0(/Tك$oCd ?u}J{B+}BZ`UYlPXiՖ1S90댪~d蛅XALJQ9DjVc%Ck:P{IsI$`M ֏j=Ҟ% f:H(}ϕ n- ##ߖ'Tkɽى.}T.+(w{"X^x˞ƹA:XR/揗7MK"/?2 z=i[A?}m4I=<8}rZu~)θzpcFu+"^]@O-UUݸuX?@ƴl͊~Œ=_R:Aw1_5U{xsp\dç,ׂU}11'[I6ߟP]12TW'Bĺm <}5AM& :16{+~PnGҽEe~dHm|]H.Q.'[bF 2zknAX JH-;ĉ9fGW832d4 ⨡E+z YjJPZ=vmYvho\(SzIVG*gUrs8F2E0ksOsjPEFlaI'ch5o5r̥)', |bNKBBw/"(%i0sju&1oy]ʭmDšL8O&"8Vv~B>ާJcK,׍Y+oQoq]E>vQuL^/[˖n؊L:`Ufl^}6pROK%B_^Mj|A5 :)CSfp'u:I W3kao:YR*Y@9K _e?]8tԢv Tu$Zy HcGt,#TB͹uR ^KL:'刞!.EgݺFl>%]fh!ѵa>v/ FҾZ@ck11!k)-k1mt+WAWÊ)Z`hF޸@$뷡KŝbgpBY)kw˝3m0ȄM1*@C6QYju{j82A޲9.F$&j $Y$!_\6,7Pp|TY|uadGcVf2}cM_ }mѡiUVAf‡dQuO&e !ƉC9_{ V)#~pD`ʶyzZr]Aq#Z\+{cv%+tfpvO\6ViDt9=am E1e!X|rkЪ^2ԇ\"` DmXk7ZWopՑV";:.@t\}g׮4oj@Kyj/ *l_< #,Nv t7ջiY|" ')1H?M`BgV]#U<]1e+w4mv \4J!Fv-ޠB u$HV%kafa?xqֻ *z̫+YudcI#~B7Dh3r6ۀ8)A=1G%ICq6!>_!J#^iܤ<ڼV[hNuw_Vivwq"veYKքqhC\ZunZ[۟9XĚ-JPD“ШUTdu\fr' :G}%nܥL{ wIY.W俽w8vBQ`8܋J ΍uړ{fpǠQqJnR"t9 !Z9=[@*7@YwK w=[2TGζTi6wsx$Fc7!yom7+&XGIȥʠdΎ2n568|l ٓꠎn(ef)L/JMiiL̐v.`fv'`NgJ.kydUʢBCH82V3&qWA\fu!?͇7Yyܵ9ʷyM:xBʃkV~r#m~RKVC1#M5lDF)&8(=H|. ٠7G+3 E){ Hʓ4MX利I>jj`TK= 1 vt ե%(,81siy [o\_b[ߴO 6YKhf%vУD>'Yly4٣MSI,]5"wO.jnWUS3V~\n+];p2s+dX$`OI00X *DD04#cjY˃Ve?.[ GgUHc*<{P -a?_ |nAOÝE& )'6 :v^f&^Bsq*Xդi Əz%*?'ɩR8MsJJä~`"Q<]i,jHkb͈ -xV1%.GZ"҇Nf8|ٜ|ɉ6FqߘJH,0$0fQqj'[}eQ$fc*Eb9ck~;yjٰ`>=h4`DlQs_,0KEԺfb$IL._ -Jgy:ŧ1n"5IW< ^,)ޘD7=!k*6470_|L;g΂l th !_Frd9%FQCae]e\qHXdYY}c[ ,1f3>L(q 1Ҷ?[n xF76G/A-\#.cCeqq0g-jS)!7ifD^˭1gz0\DbG%/ؤ~ELݦ.Do~Նf&e፯)cnGȡ8\4dtK)bVU#!c:5H$vg= -څ?hv*.Ôge?x8{~~k3~~R١`4#G^.s(7IE>CYF(Bj? g/lb=ng%w[R͒fk Nj].^9nDR泌ahWXtԓq}G_kI.FOW⣲cshQZxŴ>L݋j~nCkT֦$9&JCYd~dJMHe&l|~`N 5¹,ISNI )aU>j4/5^:34畱?*D];q@O%k|c) /ɴڙWrZ (UlwM᭞w^8T^O|6Ki lg&NRjQV9GNQgm=]#c IQj/`af5\3eg=^D{[G)6 }t+42|;seE56nNdz?qZ&D_aM׍x3{z[ڠtiBt[q|5ЛbE)jϮBbY1ɫdT^tźt)ZFw&&q y{0GjhG~M-7+$ Xd (Goe *߀[D۶F{7̰Z٘z爈dfjW,kٟvlʼn435ܸO(3>Hڱ\ 5Z&.g"ֿɗ]3a$b~>;u)Ҭ`Mhͳ3-SU,. (gRCƙ >UC 'm9$t68*+b⤴}!Y,iS%# ߌƑOS&W=0FXӷݶz0ȫwd'ڕK.`w7Y};¦T{Ht~l9ER/ӣ*Zux,ܴzd[@au jucݲہJQJCZ7WfzHSU!^JBh+^6rS| #\? dGBJendstream +ӋⳲ*AVH0dI A6% $g(Bap=k/o?,wvrœA8P A[mLSPA@p+'PA` @(5<`@@@]6` 3;y7$\m~p)y8$ÐJՉB΍ߙP;O(wKlw0wV A߹A0dy )dgq!w0wؿ>{+O4?k# '[>|A@]n;04)<-Ic"r aUȕ'Ȓ7 `<0r.jɿլJ$6 E t ^"_-ITMz**=K̦u"2pQ)Z+ +i0[h9FF-Oē{-]\VQX3FE=s/u~^/]%vo›$>D_ :9Se{Ҷ4:>\y .F}$ճ*};ev^YtrX'63ћYq{;jv{6^7ښs7Cc'rn_eX*Jy>HCŒQD^)U`qT?=_qvMҪtgC%iYqc1 %_.v˖R"=aH ٵKEPs'/szjq`Fd*0WyT/ۆaӈ EqLWtI0Wpz Q lgr/Mg̅ ky 73_W>*ތ^5JZ+'}h[tb@jI\5#! Y4ȆOX8cbN)?%dy~zv n)X#;YC囂 =:xc봣;umѴg4ƀТL-ʧ/u{oR`fgg̓)b]BI-1 :e1[bf~,iXɨesBVrށf&NeHɯTh-Yj`$Zse6ۉzl +d'P ]L᫯b3" {Ozع~=k²tEra \~ 5|p3v+R%\$\O 8d߱9$)&  5 +`v[wsui˧ȥF;QCuWp5Xu/RՔ8 z'(ڲ ʹPу qç=滛$mҏ4U>bpQmema׶X +ժ<3uNt?*Jc'Ѧkj崓;KS7O0X*!W^|EPJҨ1`@U)Lb9[:Cp":LEq埅|OGM7(XGV +ߜŻ|j3V#51*^ W#.E-g!رAuPJ&^?Bm '@.9nz#Jn= D#<"+ktRRNuxH[ʙ79StڀZ"}]Vچn%g{mkAf 5 {y2>8uSeS0%W$,O׶ vwzt5~(&_=ywu_Ҧ i|@wg׶7!pu3J'ֳUr>חп$ˢ(ϟp&7٭EV8 0IcJ~GǎLYF;܍sЏ*uN=Cp]`mu,غ}$WK~PCqB&k|*^ȥ}XcbB*4RZK+WW$Ɣxg?GoJ)&>Jg&m#pR{bJ0,ze[elBʛ}B֕FҶ#›]W"R@<9tO%cP(Ej. %yXSҽ1n%{CUmi[eoaJvΜסBȪs Kٍ ڇʺr˸ +Z&ƶYcYg|ޙPPcm=U,r,nl_0[G]J`2Ϣ[Ԧ&SBxoLƽҟ[caXŎK^I8"SwM]"m& =2|7M6_SCqhȢ閊S8 ŬFB Yu@MkHmEBY 'z *Tҭ]))~pr ;Spê}h^pkVOunMg ei+c!T&Ev&KJ6Z" RA5^,iϵ3r+#sQ/*[=5? яqz11,m~# ;MJ2բrd {ֻFأ46^>< hFjgvȻB{0(?S? +m*)yhh,:xʯ宒hMТe֙};Vi(7qe6v~$ˊjlܜ>gg)~Mzö/|i>g6&Ai&Ӷ5l(y4~y[rS({c_oF;XKGFp>qљڞ۬ +]&8 A}daWZak7 R՞]ŲLcWu5Ȩ(I9uag<6EqSMLl6`6ю\ZOmoduWI"72F'MQ5$ߨyүKL$sT ;K2aejNāh;!Qrn\",eF׫G=DU.}xeCAc+XqR:UISgzih,"EA;݁(v2eΦ2#0jW$ ׷y)yx)3+sw6k+_ pUK|N_OUmna'1>AݹԮ +Y ):n?ش%rai$*Qg4kVq!QNc%g|:coCkjLW] %Dحu/񩥻fxصL?Nn.2ma.+K')"T͈ VB`Uu<T|H"|(wRYКggZ +hXҙ].Ql'3|44!NtsIl3:qTlWv5IiBXӢ5 JG #c>?Mz`\omz3aWN+\~owM67 r>t7^ GU^3&Xti p%ȶ `U]AꆹnefꇴnB0ّN-`BNN뭅0^Wl':ܧ@G29 +/  +:[gendstream endobj 561 0 obj << /Type /Font @@ -8982,14 +8980,14 @@ endobj /FirstChar 48 /LastChar 58 /Widths 1072 0 R -/BaseFont /SMSDXM+NimbusRomNo9L-Regu +/BaseFont /CQJPYV+NimbusRomNo9L-Regu /FontDescriptor 559 0 R >> endobj 559 0 obj << /Ascent 678 /CapHeight 651 /Descent -216 -/FontName /SMSDXM+NimbusRomNo9L-Regu +/FontName /CQJPYV+NimbusRomNo9L-Regu /ItalicAngle 0 /StemV 85 /XHeight 450 @@ -9005,16 +9003,18 @@ endobj /Length1 807 /Length2 1423 /Length3 532 -/Length 2003 +/Length 2004 /Filter /FlateDecode >> stream -xR{8Tf4NSj& rƠA a1f13k]Q.ȥDH"ݱ"]vuPB.j®s:Yk=~}gpatsxKFqsE@94>"HG@q XL7σ""ۆ9 iH0`؀̀@~%fqyBi&t0⠰s<9,[!y$&Baa4߰X(`i1ssAM2y@pdB]O> 1\8l-@PL_ψX4v8bHrADJƅ|i:Gtx!"~Y.:˃À'"4BnRD<qEa%#[$dPsX.r ?Z@ -[#0[Ex`\]aQ ?g'!!'嗚!Ƀd 3ӣM5)*+F4kӞ*H AIte2ý5q[v%-z<+$ -kICu^k\mz4NMTGfK(ۊm킈v@ fQlMMf^͂%}R2U/o|> -?VwDjhMyiKvzS}*SSRb ȔJL+ɐ${LydZZ0؆W Yo z* Z[ṉ3m69)#k6fG0ϴ-v=ua|}GTiejrPgYsUpX ׯ-nGSgy7^);7Ÿe[r` N5?"$c<'Ż>mW(ESm1uܔ53ǧYL=4hFhqJ笩Ba؝B -鰖&mG勇L/% bb0|FuWz4v2UEo_za9}gA2rZ>%fKSAxꋠ{ҎIyAlЩsDG[+6ꝑ𭃨e|/!vm9ƩNnZ ޯIn=X@)sG_O.Tn֖N)1 -ZqcNщ(sr)uO͍^[]5S Qǹ:Cx=Q̺}tqϨI$1}rPˁl">gs'rotSe'־lZ}Ǿ*tjXP[]1Mec:zPg6CMUשj jA/C{WxV,ߴB)a0S )%|> 5~P(wF'l14^4]endstream +xR{8Tf4KSYKŘkܧ-ic沰ƘƵƮ((I;vt.NbJhE^ucy_9kg=LK70oI"8$ +xw!IN d|NvNv(S&(>`nł 18l/@P<,2gFtv<8bHrp[d2iL{d:&pΑk¿j$$hx$^BD/Egyq0 Dvǣ'ۃTv@8,P"0Ί-I +Ps8.r`DA` +`829!â$Kk;[x#hoLğcH_IE g-n̬NxtNB=ߥ\_4O]g_DGC,3#7?В>q<-HѓYpLlNBJZZ7v K&n.'{/J6g;%젬ll۬=ZKFg^Y|nhP-+A0bdCyiKvySu:KK;Rb 2ȔJN/ɔ${wM`xeڇW۬:D~\vF5qv86xŧ`d~yΎBƘvI#Dԉ }TK$$-2NXvkySzק s]'_&XIv{Q$y7)}hx ߕrB@۩ԴBQo=REZ=(3YVR祁Q +e,$&5-[:g;?[Jw/) b?P5.RhI~s};O^zIl549c7*ĕ)O J{7WjКEdž&Ut&Xb} +{eAb*e+K<:J:zb9c޹1Z\0eĸ<+X7IJ𫙛)+3x(z Uz>B?j_FlKг,U!f]qc*c'Z{l ci[]v}}WTiEZ1eMEpc@ C= s7 l8r p`m\a;{_opzO\]P϶^=C:_\QhzKb޴0Jqgi=0Zmzu +Y3G3Х3qۅ:J<Ûew/t>;|,Iy ׮idl]|i)ѽS/'cEΕD3}K̗>n!3z;]2lnIsGkFFDNdh[&-grӃ׃J{uTr\(m7}vcS][ɭj_gbK CBnNZ5:mH)mRwu໙J1nz㵕hl;@Z"j +5UE^]1>mF dT0dY<25r|Z2x jJ9ݴa]Hydt#WH y|8΋Aendstream endobj 558 0 obj << /Type /Font @@ -9023,14 +9023,14 @@ endobj /FirstChar 40 /LastChar 61 /Widths 1074 0 R -/BaseFont /DXIFRU+CMR10 +/BaseFont /TGPPPM+CMR10 /FontDescriptor 556 0 R >> endobj 556 0 obj << /Ascent 694 /CapHeight 683 /Descent -194 -/FontName /DXIFRU+CMR10 +/FontName /TGPPPM+CMR10 /ItalicAngle 0 /StemV 69 /XHeight 431 @@ -9057,7 +9057,7 @@ stream xwePݲ. < |Afap44'Kp wާ{ϟs[wީwꪗFU]b\e:^"Ȯr1~,zz)ߘ ¢HAn05&3 +0hG[ ; @JEUONY$"T@E9dXB`s4GG. G) 4=]́ ك G <89YNq'!( ha=B0xF<֦߱A0bhi1w]8;`rڙ=~$@pr2YiοMP;?ސ?VwYr`q<4?ƶ8k s@L{1 S  `TCg*sD7Ho"Nܿk_.>ZN3Ac -<"3~jjsn+;W գBme@@ U`ijxx@ |>:qq Ӵۂ[GT%/%L?ƪ]tIG bo*II+[@#x%"L0+_wC,~lz ;`c@ssDxIz6n@h~fNo'!xE7 "܊;1 (|̱PO{Ώ wT,w`'BƘx+_ p=evy VDNͅDWx͐צw R ֋b(Ȃ@R{&a֪ +<"3~jjsn+;W գBme@@ U`ijxx@ |>:qq Ӵۂ[GT*!L?ƪ]tIG bo*II+[@#x%"L0+_wC,~lz ;`c@ssDxIz6n@h~fNo'!xE7 "܊;1 (|̱PO{Ώ wT,w`'BƘx+_ p=evy VDNͅDWx͐צw R ֋b(Ȃ@R{&a֪ X8Pr샂`&I~AN,h?U >k!2D1Fjl>7 ;2E бSh|grg>+3~:~ikU2;*]k54I rmgm7@3Oe) A%7o7Ѧjt_+{B")Ih$D27\՝Ăf[쾁ԍW DˮIm}7L>I!@ymj;TsRc!ܤ Ji|[Fo5Qg_43=@OIϚy[ԕzTzoLQqnCZJn2R84=4(|R!Vo=/;*%Bx9v.nPOv/ѳ=:$N tTVזjY"uoS*f2()]aWb[\'g}$^Mg R9*ov?yGYluA?~s_|*dGP߁,vf,WdJ8,33 تCU7;KA{Tmc8[Jux> 8I$,:NXms-_gk P)q @@ -9078,7 +9078,7 @@ X mjއ!S_"[}we)BıN7kK/v^3iVVE+UDKp?^k|/7'ɤr)fKnli\ڝ,v6R!D׎ohhMJ*l tp$o ^&cmsi ד}ȺiIh6XC #vP6m8MQHǹfAjɽnvTFMau |?Ô\D]h&,.XkVd:;- ,9cx DocޠK/n [Z)4Eq8v=kkwTUd 4 46OK0MI4DFJEfﯳz+X`*ě+4wÙٌ"= T=(=3;: 퍧[O%> endobj 553 0 obj << /Ascent 668 /CapHeight 668 /Descent -193 -/FontName /UJFUBY+NimbusRomNo9L-ReguItal +/FontName /OZPABW+NimbusRomNo9L-ReguItal /ItalicAngle -15.5 /StemV 78 /XHeight 441 @@ -9110,47 +9110,36 @@ endobj /Length1 1625 /Length2 7793 /Length3 532 -/Length 8650 +/Length 8651 /Filter /FlateDecode >> stream xveP\m.4x<4tC$ hCݙ9uujww=k=KUZMUfAX98`;sgTUPp2L::)G6s tAiHVNFm ]&WVyfo:=R 5A 5` RoTr99 ( (9 @;58#`ۃG3dz9ځwr4:= Cg<-aw=j=bdj0wqbvpqppd7(f{h4̠sOo?W1L<b~lRSjƤ z8 -`)awlsv u=0t&Nr)_2uҷ| `7.N=ԍ~꒡oxprh :!l?,r1}rFƟdSnW`O)y-CHN~e<>ȕ4]eg!1N<- @uk{bΤgQ#9,h%/da10<1 |J>6dp͒;Z2ҞwF^<ى߆@^Sl|:=[l+zN+CE}<\`l<ոCdDj+$"Vje pQs1(Se܇Rb29~q& -aqSƿ$f/ -EhV՝52zADg%"I=LjL0KQμк5<3ug6G t'7"Q0I ;jO\boo-nEPY\5و PzqdT^>0^,&.T#iAoh0j`_>+[۝0A )9 nN,\8WeT^CX3XGfᡥ__ -ҲsE:s~[a/7n kRwc?Ft^>F -Y␩ 3赿Z%|^8qq%՗+#x0l"m`0׶0ih&"huZp,`G=:+1`>ATuXj3@/MlgUw+өGk:f Mu>D~v"b T2V'Vzs尥qsP^Ug !#zd[0*k`f%S.wz1Y /Hub0-M7_vObvv2? ma3'e·H5d#Xr*c#BB9>`VڧϻO[YP*T?=e3ʨ}3rAZpsY։X U^%CB$c$)Od&0V3C]SS qȀ6T83tleZ:*CSt~:HDD':aG*Zt=,d8<)B0]\ ~Z#f= $P kiG.B2!MbhX -ͲS瞇a߄;>]H w^-^&pzּ"ZHiMc#Dbx=}/m~seDa{5npW -ek6A\ƒrJYiu\d@#9]FHE-2"X݌5B^m若E>kBx'VJ2qXv8HŤ̎h}ĐO/*FbᇑB,"TaTչauJ$F_;p~fv?@,(Φ^y -XrU1[Ee(60ԩ 6nBy9 ڨ43i-)JDL=J(x]ꆑTZKm%S~& ]ZEȉx&y1qA|lU[0756[^.täQZAb=ӑ^8+u@f|"~{kd-cjUαOk|.n=$(YWۖ\Z/Є1R<$#N[Rܔo< -m˩y2 -<ۑTe4ZXe -N^:I-Z}NxwI[ubk,A#unBVe7>ᑢĿ?d=XvOjN1u43˵r޼]B}ҋ[7#tuBAmQv]mQLQ]ѶtD9KT}ݔQ1)m'MPWG?߆&;b'Wʋo./fS7a@h%&12YdUm}GqA$椱P(-S -yBUG:s{Z#2NXrp۷`cJeP@)ɧVBaΘ<#+ -s Bc]5"EKQeAha{5]rEUՈp[\1 =j\gO3ٔFW4.o]jy|r[|,2v*u%3 8aB"UO:]_6 ktV&]yr[|\ەup! C/r#(X2ݯ9h7a=y!jU >/{M9M_9V@{bjUk`h߬n/SF /"?ѭ*d:6߯KOڗf24>Yﲆ}űlTB<f2*ВT2&~ F∴Rb~/XC C9gR?q!z^^.0}y1h:<)~gTM1C,FJt̟βSUY8.%D=@B0|M/4q-͊N# UE#`J"4:{;%"ŚB;!^Kᰍl@ 41S3ƦafOm:{S#!#a1\W#)$J mU~PV|vIy%pP4YyQfWû U)mxQWlDȇ T"C ԯ^]cj&$K&΃8ߖyLZL|0|Z,šv{e['ةV%1{Dc(D}.fi?n]ꆗQ)RCP--?GHmi_߂wZ)[saJda/-s0NRwgUh cQ˟D^n&iF C-Zװʭf-Huj !+5ނp/&?l^-,Wp̈c*ZToϧ$=RS˜iNUh-pNh_HL׷43Y"PGO9;ױ;$tXP|"[$m~'ROeOoҎa2h&{ʞ=J$A:qslrsz -$,hF}<?qíf1n7j3Gy IH FK{+b6DU() 5\ ద7~ql,"X- Mzх^?[TVul6KLiȍ%ʰ=/`r;)kpI9Ly9 odYt$ -asjQ g_1PZBCǏwPOWJA&k4wڝ~]58vI}tћO`"+lش@q IE䢲-}@mKEד u_Rlo+[*9$,zGގ61]66Clڏb& -G([D3"l3hqx/wEJҧY}K%=[#a:_ǡL/!D;VZ)XEXh7Œ@60 ;})Zr} ] rEzlCކ gyzkF>xƲᜐ(u$7:wˠjŷ蠡ܣ&"r OJ d&7\vgRW?YXA4|]gt=R/껭4(V{{<[L2D n3$V*mIޅL.xs;[R"i˺{h6 P;<t)x-#2tuIC!R$  9f% YF0݊f -Y{#p>X0D,~~F}2u -nrs*qQk'xm\/݌wL%8)09Q X#(`9ȾݺϺ:Ϫ+C4[J]9 u*5O -]MM%'Rk*sjzlSioTⷘz-л -<|hrkÅۼn xuP\q ߈c'R$H41$x`±Cdm\pDUO)(0}zd}4*{@A*@ %?>O:vD*ˠ\piЁ\Y~?hӫbё5Q$o¾]=atkR$(K]v@Q-ҼMɅNJڑ)rmfDi3$(vėf <|9k6hdH:M-MO*-D1O[bD{> 3>J%3\Pp~vLDxAtF~;:qriUgd2jMܾrt(aZ"ʙmRlhlg2K+4!k{o/7H -9tUy>U x?\lMs|Wv `6X [v./NZUNŻ? 3X]{̈x3RM]|kcB1F9l`fm[vƻd7bJ=gѤ|me)' -bW6²bBߣ/^ͫ I) hoO7Iyov+赺WׄbE}(Q|zS0SfGMY7+@Ju'Pt%c״/#b>~v gɒvW#f?I0Ղʇ]@*uKmlLFuWӯԡ Kh 姉#oӸ tP-OqQ?ѥ:*,[u,- -ȼ]=|ҬpbO/'΃SmoZ~w%DR^ -ѧ ?O5JA}^ rӆsu/t(}*@sPljZjU6}mF6q/~ZӾ W҉6|kk&s/]KWp9]ˆ&^0;~fwx>"5bX) -zVJ:&/wT9t& j[^}k,0E_Л.f|O_4xz_"M)J1-Qh$TX#fzX7g(r9"n<BqDJ*)#}B&hywAkw˕S(Q.\NweF%h/'fc] Bj3їriǾ`2Pm;/aeCnR4C&3{Y)H\=Ӈqer`1ϔ( ;u}ld~3 t5upxC=ۥ;Εlؒ::SIӭ2DVו9_gv1$͑70W[~P5}9Lj-Ρ b59\ixl~Ʒ9|b~;B:I)՘hp,2Y75E0kWH;n9i.jn;)>Ufn:e)|#3P jxQs8E$Gą/ :۽J:_ {gsdݩ–ʗ,F\ N#QpurmLX)rc-)ړnedUx-4KIiDwM(}ZGELՠ-5Q? 柔RqD_CJB#&F -iR-&, R$Qѕ1tόNݝ؊ 5x)F ɑ-~-曈o&$%mKeq@:Mr~`s/  d3s/ɯendstream +@Pا?뼑UzVMprOh*0~HJ||Vn''@C# ` xhd@t2Zh6zCKOwY1\P#=#u:[T~tM_e?d!M:qI "W wH8U*4R׭iA9yzGd@pڗ0s#+)ԎxrW?Hگ Lo,5K:d^pb s 6k[[0J{.N{d'.zNl9mƯ41:_"O_T,r)f V?  Cbx|:X1^R5-F1&ƠLqJyINƙ\+8Mc$(vMh[QVwx˄ɖ$q2="1,"G:B @-Н &F|'=sY1h}AeqZkԔf#.XBiőBj*Sy4xH3HRl:Cbè}~˯lmwdფ.4޻95ZsE^!-wSy a9ϜL&cNP}(KKWffMQjmuE@-GG$I_Iry4.*b&fQC3П$RkNDrzqƅǕT_ðoW\¤)FL!Xhe(gvĀCScYOw%M46aVկ,wOF_>31d6MJq]붋2PQ?[{vXeϕÖbgRǹZAyUS1izkҒMsl97;솮񎯧G *b_OLK?d5d8#;|I,vô4T|?% U\:'"`&FPz̜eۿ;"-\`QYt>{P AF[i>F?bneCR <qT C+4AJiR d['b1VN{|| @EkO?x<?lX[ u%CfNM%!P ҵҲIk UOSڦ +# 4Ug0Qh){g@ҳ̒3#etq7iL6D28@1ܯ֦ +YʄC7]b)x6NOe&G{~n:d|d4w#yXxhYnh"ק5I|9VΕ7ո]*? 6+KpKZ)eqK䐷t"$ʈXbw3yQjB&~ +Į Qh[9*9 ơnzb^p؏R$Z"2;!C*?](GjUFV 4P*WkPVKCMJ׍*->'~uEd:z+`^V\oƗUWبO0zP2ڐq 4k̤eǷ覈c(}0w̚FzRǿ+=uFPii.Ls~ .tj 'Qd.Gr UBl]H\GrܦklY{"DZf#GkrjOGz4K8սÓU9Ǟ>e6{Q?4db\/#Wo[rqjCrƀKAp&8͟[זoIsS^UP+-(lGR h5b0|*8yb_['dj9Ev I/nV@[ 1+DuEBeD3Eu=FZJ]g<.QʫvSFD7wKq4B9f_q4Jl|RGC3PTuLMdHy9fJ #Ius|rw]xshU1;1B*ҡW0Gn>A;!1>OY\ltzmV/]Zo;FCǺLQk)zO4Jg8٪WhAlPbvFrJ&'_K@Rξ^2oEYgS׽5FT81E^c)%fX?D?JONRsN"q"xg6lUӛc\)/eBM@v3 |gѦVu +Q^ƑZBNY(<-O UG$ϵk9%w ;cy?m*^+%Aq8&nZ z;c؏PWSףc($- + d;)] m7CyB1lА 9+I*e/Y^i U6OٙBQ-ǏjZa\D)upp&/ DYA]tyWUT#fmrq`0n~(s۳ ?u*dS^twVmhiՖ̴&$ + oW=v}\Yt!IJ1{R=kJB8(1:NVeTQh09 i,f !6v{I.6A$XO,cv= 0M]pN\UŽ7$(\i4N8NW?GhNc,& &-e埬@VVߑ  :{03"J៳K)(E,1(*av(Ef3 !Ut,4*Ü;GD-{s"xt1ݺ^EG[>3hhV#td́ǃ/pjW1jhڪCY%啴A@gaEuC_ ?4(W!ED_E!Of/P *SNzwkg.8 ~[^%2i![>3XOix}N_l쭖maZh$^QV3aZy\[گ$ua^"Gi{H yC Dn!}O7ˋ~N'_ vC:i%ʇsl΅)|8IUQHqF-W{Ԣ5h[ :haP h^2w(J QT;U$H{ Jý\y"^+~dU2#aoh"nhRQ>wHM coY;U`߷;ͣ}!2jT^P̈f⯊C=-\p/@a=Blch?aԟH==I;Jɠ(&M({Hw#(dƭo`}}*,8kUe^":$ӻ +ި-v&9"%-u[وwYW$֌R_p#G.46ÚݳP`FF/7G"z5 (rhnQŞvXUԱ|/1"72dh+Ÿ'F*Ez%0/@1)gYR^ґh *S&ΩEa,E|g*Ck e{Fj?1fB-?]u+$;]&&T~jwYtolk%iEo>]`tAt`>dA#kk&܂&1BO@}>q,]O&)~JSJdo%N營fjz;~t\9κi?O+wlijZ(l}̠[hLM*If-Ol-[^ |N3 uPHZi t@`mc{.RK٘J4<ܪ8k5ta& zѯ?GjjsB>U-mfbfr^%DO<}(-ȓɓp=۝WJ];n'kd!/[c[wuGdK\NRjBРdWZyl1"<!7 u̔XL%A{F3)w\oI.uRxـBxSPOs۷ӥ}HXd"c& JH-pK.,=Z`$dMWt+)8gu͏bdkugSЧ)QB˽>_DU=iVrϣ{t31 xw[DU3cL?(PLl*&bv0htXWԉ7c<(t5N04HeBWL̩{gjnpQtO]PQ-b군#H@+|[v< EySnb4^1 Bs}_|#NeRtH/ Đ`vł Ǯ/s GU>ɧJARbdhg&H<;Lu_,~x@Yz,9G+;Adq4π%A`l1+K?Ղ&mTҕ^ L[|wfTt FҘrJdvA%ڲ}FOԇUF2cPA(U@,?xv0ޠTC@FIFyt#(x3L{=A.U,`g)Ayc;*9z'pdn/r%2F\BrQdENEGnpGy0 vѭJᓠ`\/9wEKk7i8'zK8:R*iG68euϨoh_1LِWW#bn#4<7=X8>ms+}DF,h(p%Cu0r{ͦW]ɥ]^Wג?ʨe4qS?-ӡTiH(g~Ii^#,tҨJdE8w#v (1KTn|T.7Vp6E]Y{ͳ6x,coٹ8jU;/cv91#ϘJ96jvU,Q Q:封Q^AQnUxlb[(E>_7KO*^[ + +kB }rxy6.$0\c9ۿA?&"/f ޳OD(VOK .IE= +QCx/c: "Yzw')"SQȚdSaX_OϺ̈ +E++rj^r:آ7NwN!mAX)"2!cDc'Eѧ^LMIxv/w!HJ2N?, K\mg"M#B,f]s1.M&>U#7` "}qM <1u7U劈NEkwK Yk8I摧@^r]>fS5M{!'FY @+:&u/-:_LR|p+XhJt +*>s\( 5)2 V8cƁhO[WX#BDz^(rUlj,)$T BL+tq]/#/ Df-'3~2.]MڲSZ$,%4WǗ&?TM.dIB+Ajy].YNε׽СaZC_AiU1ĩR=hM;/_ K'ڨ{G-2* vot-]jt #*{z{&Iy9 a)Z?+LOOQ]>DWS0]lAz +L}e4Coֺ-f>M~ zb}4h+%FHĴ,GPIce$!ΊaޜaV~싸M]X +(]hfv=lJXS +循bIB߹^{.WNDp5;5ޕeТC +XeZ:uv,T +]vowD_ErnΒ@i^py? K io$g1sr"qj42NƕUlXň?S~x'=k3 ;$ﳑ)̀4Н۲[EM5Xl6D&:WJbKN%MLYZ]WLjG~Ő7GrL\vnnUX'CP:#R T:s}n,C $RTc±>dDA\!\礡zl޶;T[YF7OhHhBվr&S>qG=vkϷ#<(2tnl*M_|5Αut +[2+_&Lr589PLFaա˭1ci pjOb'?Uᵀ?Ҥz','u@ 6 FiIy_2U$D0RʛKU MO+5 +)Idi!6E'Q+} 'O&W +3Ã8CCHWJGtn#ݽ~1]y!SA$ \e 1 yY9y]]~E>]mvs6xrĪgWQϏ7f@{EfǮpDz/0KGHFQnGWӭ>3:vw#b+J{H&`@_5$G0Mo"l {cV@w˷Q2/4كa'oɳendstream endobj 548 0 obj << /Type /Font @@ -9159,14 +9148,14 @@ endobj /FirstChar 40 /LastChar 122 /Widths 1076 0 R -/BaseFont /DGMNUN+NimbusSanL-BoldItal +/BaseFont /VOHFKO+NimbusSanL-BoldItal /FontDescriptor 546 0 R >> endobj 546 0 obj << /Ascent 722 /CapHeight 722 /Descent -217 -/FontName /DGMNUN+NimbusSanL-BoldItal +/FontName /VOHFKO+NimbusSanL-BoldItal /ItalicAngle -12 /StemV 145 /XHeight 532 @@ -9188,7 +9177,7 @@ endobj stream x{UX]ݲ%!%8l`cٸwwOw瞾[k=9kT㢡Pb[eNVvA*MIEh1wxQhhAtJ! 9䏏;@`dff#U rԁ$ tw:Aܝ@@+M&S ;{ll!zM=&&Y8D@7v+ -9OV[X  @؜́ln֬N@ßbe4h1o?B '۳rwfq+ _6 .^lv re6wu;܀ kquܡpp@ϑh9`õ;9x]`TTeO$- ?Ogo=Vus/J'k0@-my]*fO~U0d kyLП!+CI4q(RKerqDž/.dppryAK?nômAN@7?7t2N`+ @ gD]lGOO?֠?%^@KEP]Ch}' ;97JOVUrb7iy5`U`e<$Yð`䣈NXUΑg.b 2 +9OV[X  @؜́ln֬N@ßbe4h1o?B '۳rwfq+ _6 .^lv re6wu;܀ kquܡpp@ϑh9`õ;9x]`S5TgO$- ?Ogo=Vus/J'k0@-my]*fO~U0d kyLП!+CI4q(RKerqDž/.dppryAK?nômAN@7?7t2N`+ @ gD]lGOO?֠?%^@KEP]Ch}' ;97JOVUrb7iy5`U`e<$Yð`䣈NXUΑg.b 2 STЈJ} !UU#.2=;h"̏HGd*>)aWwc-,I C4[ ||~s.Q2v^cnԣ#ɔS~pBTI9P_Q|W[3 -S_D;>x?@O0~//#,(ʩQ[bTBCvQB&nG7);0J֦ תetF)6Ĝ;KT@ ёp 2\dBebmN\Nņ7u1!DCSVh%Aw+*b/wF:!aQ^OxEX:Yk0lQ ٺ-{sDRѳ6Bp @@ -9232,7 +9221,7 @@ H ;.؉{&* <d Z+qؒY[%N{c&(ChKeΩ?%g4 qɗ" F傩/dvȇ6;qʻD;c^]̻,WCss׬zBTKNR;#,45Wĥ'q(Ń8BKꝹ:`{&~&8saU:oc"}E( @|wyMcM P+;O,>a3En{v?u\ɢpaqhGi4C,GED "}ũ{&mBk %2X0akmK&K7"!'_ q*'̑*,悤+`αt5蹢B NS=ʾigݫV -Q]R8S{?$^cdrEGzCɊ?Qg7}&BbvD#bA%Mpo(2$*Ws> endobj 218 0 obj << /Ascent 712 /CapHeight 712 /Descent -213 -/FontName /RKQROF+NimbusSanL-ReguItal +/FontName /NZNWUX+NimbusSanL-ReguItal /ItalicAngle -12 /StemV 88 /XHeight 523 @@ -9269,11 +9258,12 @@ endobj >> stream xRXuO{(D -cn (6Nu JJi !"gdh)%4MD@'{?}}ޗaH R W! @CPbH` 3,X IEbP:3M0'`I dZ&Prǵl8cF* 2@ #RB( ~ cӔ(091Ԙ8pJ Q#4pD;~إgИ0(4SN#+8F#! !P @> BDp,`xB4z|Il־a!YHT瓽'#du8b_1MjHA0Kdߧ_q#(xBӈ^@2 M7bZTZ+Z4au {tB%BvxOayl=M??<닿?eJ/X,J54N2çǺ4VFp܄ :?c- {VclXB?]XuVn&4N EDj ߶ʬJbrE5\欼񃞳Ծ;_З{/Uw;.c4q\+M3o\enT-9q*ccgTXĩ؀cĶզ_2gmWR_Nn9s˼n)1S6d0'}Qu}L sVC>u\_o_~Sx룫>LW$פ>^xw9ג"XZު߬յ.TO^on ȹ_86,o?u%^r-wc@Xuudu%6lĭ]I٤vk(/;򏝏Ѹj6uZ~_(+Lyۻq -2=ȸ|MQ5f0EoxMi8筇ż 3ft?ꑺ9#+NgSǤsӳi>X_'jވUW=d{WVV&c_q4p X>ݡ8ҫF']n݊f/c[ڙf7f_mK -uqGm:IϟXYW2' p˼4EF-1}uGJA&gO_pҥ2ۋ;%t_8~Kdl*bfZ-j\yQwz]<;v=RG -N݄nkzm="Ve/h&B]Ks^!HKy+{M멁eeE(&M .MѣY]H"Ø]w - ^Qn~[Kg~~e)5t Zt;"->_/y%TI`(uu_Yl=EG%k|m(ÇDT#4Ci:N?cendstream +cn *dvw'ݺC%%p?TE!h3J24APB& +j"vYtϽ>wWx0JQ$ `)+`89ap)% j$zCRLX9@ !abq-E4@AΘ@р +=8m1F Pj-$U?1YʈzV XEjUa(Y%̓ M(h? yDKhOVg`p) ɡqr# ڡم !P @>' BDp,`XB4z|Il־A!eQ m3ԓzbi| KAϺ*7uiڅY LpRghj~ZC_sq"$.N%I{˸$⊏~VVX9vz9 A3#2[BnM3Xj_z5oݒ#K?r-Χi+n$f%"$b}ycTm=~!Rǫrmc^*ң$?!}9*\0R\aZ-Tםu6rKWw7+EN(hWsafvp lB~Vy5! (.RlmaԝWk/|T^\W1M,f9ĺ%oDA>eWws.R}KK6 +RWG=3:%D1h*얳R+ 3Oݹ~eiuQ_N`Y%}:[]pjR[a.Ukjغ +IVvV43Gh"tO0c'endstream endobj 193 0 obj << /Type /Font @@ -9282,14 +9272,14 @@ endobj /FirstChar 0 /LastChar 48 /Widths 1079 0 R -/BaseFont /JXAIQQ+CMSY10 +/BaseFont /PZUNYG+CMSY10 /FontDescriptor 191 0 R >> endobj 191 0 obj << /Ascent 750 /CapHeight 683 /Descent -194 -/FontName /JXAIQQ+CMSY10 +/FontName /PZUNYG+CMSY10 /ItalicAngle -14.035 /StemV 85 /XHeight 431 @@ -9316,7 +9306,7 @@ stream x{Ex]Y%f&K̒E%fbffdh1{wf5&sƉ<qE-LII(aobbcf(X81]\FTTj Q'NWp9Yl|Y9hPr(A@'K?-`c 4U:ۻ8f:ϪQ{'Ks V]E_6^^^?@g w IOӦ*Z@k98Ę͘ ?ۙEfbN@?Cynvnv^63H.,v.@iJBWp_%< -ٙx9;̌l>f?/g#W ߁C`cZ@?/?aF 'Kw.+3+++?jjogt#[ EQECL\ggJ&6N'?N:-dd_}Rq\N _di:z\\?ZT?z8)bcF6 < #Ka;sd,a4UX.Po!P/oY ڙ[Iq;{SK;s*+L 6qqr#ϻ؛Yit ؛[5w= 1p r?v!DgP ,#4i!P ) O(f+ !ApYv AB4^ZމLjYՃ64j=ѱ" !IUQ +ٙx9;̌l>f?/g#W ߁C`cZ@?/?aF 'Kw.+3+++?jjogt#[ EZBNZJggJ&6N'?N:-dd_}Rq\N _di:z\\?ZT?z8)bcF6 < #Ka;sd,a4UX.Po!P/oY ڙ[Iq;{SK;s*+L 6qqr#ϻ؛Yit ؛[5w= 1p r?v!DgP ,#4i!P ) O(f+ !ApYv AB4^ZމLjYՃ64j=ѱ" !IUQ /Kॢ2xU`XLo3b#fM7ʐ2R$ژPgŢ~ܡKCaqպjq`4\c6VwmQX]fyɠ+GNz_isWy;vse]5ζGM*Q->ݟ_,k Y4aKMXJ*uQ9?;&?[\j ڟ3<X:`gkce@TU] giM4ZHo30o X]8@^ۚ\IjݬF)3ñ%*֒Z-e?[a~Ɯ6͌@Dݡ,y\t~&3d|6 sʹs+'K\/hV^kHĄ 7kt ={C@e駲jlfB6u_^}NO !ՖNzܥ-gı+3BI oR#/ ˆ(EOmrJSkTx~Rt˸᪄ t`#Փ;uXBN>jMgRqo Ip9C[{ -\9.`^V}1|'h5rFr:t"endstream +\9.`^V}1|'h5rFr: endstream endobj 173 0 obj << /Type /Font @@ -9382,14 +9372,14 @@ endobj /FirstChar 2 /LastChar 252 /Widths 1080 0 R -/BaseFont /ORVDEP+NimbusSanL-Regu +/BaseFont /IFLIHY+NimbusSanL-Regu /FontDescriptor 171 0 R >> endobj 171 0 obj << /Ascent 712 /CapHeight 712 /Descent -213 -/FontName /ORVDEP+NimbusSanL-Regu +/FontName /IFLIHY+NimbusSanL-Regu /ItalicAngle 0 /StemV 85 /XHeight 523 @@ -9410,7 +9400,7 @@ endobj >> stream xweP]-!!@pwp!Hpww~3M}w~̯[z{^wCA&D/`dmgf`Ȃ, JVFw#;Pdm%o@C  dml21P(}{wA&VG%⿽Q ؛ @HN^CBV @-&Z- C4hX @fx`!}h hg ߿ 0N_~|[v {{Vya7շ+7XGY:U߾ww> - :0m,s؁YDüc՝ OX8-Ysڿ6Y!15(Vf؍lA ; }#k+ gQ=%2 "L?yWhQ Y}xai_wo p/5P {Lޥ`b`9Ac}mW2YZF=3;MAV5+.ѿ2oތҊj*"tz%;C?a + :0m,s؁YDüc՝ OX8-Ysڿ6Y!15(Vf؍lA ; }#k+ gQ=%2 "L?yWhQ Y}xai_wo p/5P {Lޥ`b`9Ac}mW2YZF=3;MAV5+.ѿ2oތR*tz%;C?a Z;\9XL_k}{;@h&K+26kNG?  뿇t"-Zr%$Wf kuw2C(f{[wx$s=W1Ԏs699yٖıftecPpx3|H:R u=^ʤ1 G1|(e_=vtG4l1+0(_ʷ1vb]f͓sX26c=4 d7^טWU_DJJbJ:z@=LeZ=o8nKg^V&vTL1{v !nnM"Fͬi.5&s̽D5gY<#m @@ -9459,7 +9449,7 @@ X 1ue}JڗYS/؉¡Eоc2xړ#_6v!gXrB"ǎԺD{i'~n#AbmkpD[aR#$ B=p {-.M 5,cmHX;#f0 ӜzN;Uw$ᅂnt6Mu~@aq27''&JAwWf/Ʃ^_;1ޙ$XG3UudTx q:9]?qH`|j+]I;zgPr{/Vз (i1Q~)M#-|bP8q$5 Of~mAX&ZnRǽyw:%kXWmNg.`N0 -+a>ֶ=>*o]J*S$꬟vinXĕs~/nE"> endobj 168 0 obj << /Ascent 722 /CapHeight 722 /Descent -217 -/FontName /LRBWUE+NimbusSanL-Bold +/FontName /FIVLKU+NimbusSanL-Bold /ItalicAngle 0 /StemV 141 /XHeight 532 @@ -9553,11 +9543,11 @@ endobj /Parent 1083 0 R /Kids [759 0 R 767 0 R 781 0 R 793 0 R 799 0 R 804 0 R] >> endobj -817 0 obj << +816 0 obj << /Type /Pages /Count 6 /Parent 1083 0 R -/Kids [810 0 R 826 0 R 837 0 R 846 0 R 853 0 R 862 0 R] +/Kids [809 0 R 825 0 R 837 0 R 845 0 R 853 0 R 862 0 R] >> endobj 869 0 obj << /Type /Pages @@ -9569,7 +9559,7 @@ endobj /Type /Pages /Count 6 /Parent 1084 0 R -/Kids [893 0 R 907 0 R 925 0 R 932 0 R 946 0 R 955 0 R] +/Kids [893 0 R 907 0 R 925 0 R 932 0 R 946 0 R 956 0 R] >> endobj 967 0 obj << /Type /Pages @@ -9593,7 +9583,7 @@ endobj /Type /Pages /Count 36 /Parent 1085 0 R -/Kids [593 0 R 638 0 R 677 0 R 720 0 R 764 0 R 817 0 R] +/Kids [593 0 R 638 0 R 677 0 R 720 0 R 764 0 R 816 0 R] >> endobj 1084 0 obj << /Type /Pages @@ -9890,7 +9880,7 @@ endobj /Count -2 >> endobj 1087 0 obj << -/Names [(API) 1047 0 R (BSD) 1048 0 R (Doc-Start) 167 0 R (GIMP) 1049 0 R (GNU) 1050 0 R (GUI) 1051 0 R (GVim) 1052 0 R (HTTPS) 1053 0 R (Item.1) 691 0 R (Item.10) 898 0 R (Item.11) 899 0 R (Item.12) 900 0 R (Item.13) 901 0 R (Item.14) 902 0 R (Item.15) 903 0 R (Item.16) 935 0 R (Item.17) 936 0 R (Item.18) 937 0 R (Item.19) 938 0 R (Item.2) 692 0 R (Item.20) 939 0 R (Item.21) 940 0 R (Item.22) 941 0 R (Item.3) 693 0 R (Item.4) 694 0 R (Item.5) 695 0 R (Item.6) 785 0 R (Item.7) 786 0 R (Item.8) 796 0 R (Item.9) 897 0 R (JRE) 1054 0 R (NID) 1055 0 R (PDF) 1056 0 R (PID) 1057 0 R (RTT) 1058 0 R (SDK) 1059 0 R (SVN) 1060 0 R (VS) 1061 0 R (appendix.A) 154 0 R (appendix.B) 158 0 R (chapter*.1) 202 0 R (chapter*.2) 254 0 R (chapter*.3) 349 0 R (chapter.1) 6 0 R (chapter.2) 18 0 R (chapter.3) 54 0 R (chapter.4) 110 0 R (chapter.5) 150 0 R (cite.Algorithms) 822 0 R (cite.AlgorithmsC) 823 0 R (cite.AntIntro) 1003 0 R (cite.AntManual) 1002 0 R (cite.Games) 923 0 R (cite.Java2DAPI) 922 0 R (cite.Java2d) 921 0 R (cite.Javadoc) 1001 0 R (cite.M32) 1042 0 R (cite.OOS) 984 0 R (cite.Regexp) 506 0 R (cite.Richtlinien) 985 0 R (cite.Swing) 778 0 R (cite.Tanenbaum) 393 0 R (cite.Vorlesung) 577 0 R (figure.1.1) 281 0 R (figure.1.2) 282 0 R (figure.2.1) 283 0 R (figure.2.10) 292 0 R (figure.2.11) 293 0 R (figure.2.12) 294 0 R (figure.2.13) 295 0 R (figure.2.14) 296 0 R (figure.2.15) 297 0 R (figure.2.2) 284 0 R (figure.2.3) 285 0 R (figure.2.4) 286 0 R (figure.2.5) 287 0 R (figure.2.6) 288 0 R (figure.2.7) 289 0 R (figure.2.8) 290 0 R (figure.2.9) 291 0 R (figure.3.1) 298 0 R (figure.3.10) 328 0 R (figure.3.11) 329 0 R (figure.3.12) 330 0 R (figure.3.13) 331 0 R (figure.3.2) 299 0 R (figure.3.3) 300 0 R (figure.3.4) 301 0 R (figure.3.5) 302 0 R (figure.3.6) 303 0 R (figure.3.7) 304 0 R (figure.3.8) 305 0 R (figure.3.9) 306 0 R (figure.4.1) 332 0 R (figure.4.10) 341 0 R (figure.4.11) 342 0 R (figure.4.12) 343 0 R (figure.4.13) 344 0 R (figure.4.2) 333 0 R (figure.4.3) 334 0 R (figure.4.4) 335 0 R (figure.4.5) 336 0 R (figure.4.6) 337 0 R (figure.4.7) 338 0 R (figure.4.8) 339 0 R (figure.4.9) 340 0 R (page.1) 166 0 R (page.10) 310 0 R (page.11) 348 0 R (page.12) 391 0 R (page.13) 398 0 R (page.14) 412 0 R (page.15) 421 0 R (page.16) 429 0 R (page.17) 437 0 R (page.18) 445 0 R (page.19) 453 0 R (page.2) 178 0 R (page.20) 460 0 R (page.21) 469 0 R (page.22) 476 0 R (page.23) 486 0 R (page.24) 495 0 R (page.25) 502 0 R (page.26) 511 0 R (page.27) 516 0 R (page.28) 523 0 R (page.29) 530 0 R (page.3) 182 0 R (page.30) 536 0 R (page.31) 540 0 R (page.32) 545 0 R (page.33) 552 0 R (page.34) 568 0 R (page.35) 574 0 R (page.36) 583 0 R (page.37) 589 0 R (page.38) 598 0 R (page.39) 603 0 R (page.4) 186 0 R (page.40) 610 0 R (page.41) 618 0 R (page.42) 627 0 R (page.43) 632 0 R (page.44) 643 0 R (page.45) 651 0 R (page.46) 656 0 R (page.47) 666 0 R (page.48) 672 0 R (page.49) 676 0 R (page.5) 190 0 R (page.50) 682 0 R (page.51) 686 0 R (page.52) 699 0 R (page.53) 704 0 R (page.54) 710 0 R (page.55) 715 0 R (page.56) 725 0 R (page.57) 733 0 R (page.58) 739 0 R (page.59) 747 0 R (page.6) 197 0 R (page.60) 755 0 R (page.61) 761 0 R (page.62) 769 0 R (page.63) 783 0 R (page.64) 795 0 R (page.65) 801 0 R (page.66) 806 0 R (page.67) 812 0 R (page.68) 828 0 R (page.69) 839 0 R (page.7) 201 0 R (page.70) 848 0 R (page.71) 855 0 R (page.72) 864 0 R (page.73) 868 0 R (page.74) 873 0 R (page.75) 877 0 R (page.76) 882 0 R (page.77) 887 0 R (page.78) 891 0 R (page.79) 895 0 R (page.8) 236 0 R (page.80) 909 0 R (page.81) 927 0 R (page.82) 934 0 R (page.83) 948 0 R (page.84) 957 0 R (page.85) 964 0 R (page.86) 977 0 R (page.87) 989 0 R (page.88) 997 0 R (page.89) 1007 0 R (page.9) 253 0 R (page.90) 1026 0 R (page.91) 1035 0 R (page.92) 1040 0 R (page.93) 1046 0 R (page.94) 1065 0 R (section*.10) 439 0 R (section*.11) 446 0 R (section*.12) 454 0 R (section*.13) 462 0 R (section*.14) 470 0 R (section*.15) 487 0 R (section*.16) 496 0 R (section*.17) 498 0 R (section*.18) 503 0 R (section*.19) 512 0 R (section*.20) 517 0 R (section*.21) 518 0 R (section*.22) 524 0 R (section*.23) 525 0 R (section*.24) 613 0 R (section*.25) 644 0 R (section*.26) 652 0 R (section*.27) 661 0 R (section*.28) 700 0 R (section*.29) 741 0 R (section*.30) 762 0 R (section*.31) 802 0 R (section*.32) 849 0 R (section*.33) 878 0 R (section*.34) 896 0 R (section*.35) 930 0 R (section*.36) 958 0 R (section*.37) 1008 0 R (section*.4) 399 0 R (section*.5) 401 0 R (section*.6) 402 0 R (section*.7) 413 0 R (section*.8) 422 0 R (section*.9) 423 0 R (section.1.1) 10 0 R (section.1.2) 14 0 R (section.2.1) 22 0 R (section.2.2) 26 0 R (section.2.3) 30 0 R (section.2.4) 34 0 R (section.3.1) 58 0 R (section.3.10) 94 0 R (section.3.11) 98 0 R (section.3.2) 62 0 R (section.3.3) 66 0 R (section.3.4) 70 0 R (section.3.5) 74 0 R (section.3.6) 78 0 R (section.3.7) 82 0 R (section.3.8) 86 0 R (section.3.9) 90 0 R (section.4.1) 114 0 R (section.4.2) 118 0 R (section.4.3) 122 0 R (section.4.4) 126 0 R (section.4.5) 130 0 R (section.4.6) 134 0 R (section.4.7) 138 0 R (section.4.8) 142 0 R (section.4.9) 146 0 R (subsection.2.4.1) 38 0 R (subsection.2.4.2) 42 0 R (subsection.2.4.3) 46 0 R (subsection.2.4.4) 50 0 R (subsection.3.11.1) 102 0 R (subsection.3.11.2) 106 0 R (table.2.1) 369 0 R (table.2.2) 370 0 R (table.2.3) 371 0 R (table.3.1) 372 0 R (table.3.10) 381 0 R (table.3.11) 382 0 R (table.3.12) 383 0 R (table.3.13) 384 0 R (table.3.14) 385 0 R (table.3.2) 373 0 R (table.3.3) 374 0 R (table.3.4) 375 0 R (table.3.5) 376 0 R (table.3.6) 377 0 R (table.3.7) 378 0 R (table.3.8) 379 0 R (table.3.9) 380 0 R (table.4.1) 386 0 R (table.4.2) 387 0 R] +/Names [(API) 1047 0 R (BSD) 1048 0 R (Doc-Start) 167 0 R (GIMP) 1049 0 R (GNU) 1050 0 R (GUI) 1051 0 R (GVim) 1052 0 R (HTTPS) 1053 0 R (Item.1) 691 0 R (Item.10) 898 0 R (Item.11) 899 0 R (Item.12) 900 0 R (Item.13) 901 0 R (Item.14) 902 0 R (Item.15) 903 0 R (Item.16) 935 0 R (Item.17) 936 0 R (Item.18) 937 0 R (Item.19) 938 0 R (Item.2) 692 0 R (Item.20) 939 0 R (Item.21) 940 0 R (Item.22) 941 0 R (Item.3) 693 0 R (Item.4) 694 0 R (Item.5) 695 0 R (Item.6) 785 0 R (Item.7) 786 0 R (Item.8) 796 0 R (Item.9) 897 0 R (JRE) 1054 0 R (NID) 1055 0 R (PDF) 1056 0 R (PID) 1057 0 R (RTT) 1058 0 R (SDK) 1059 0 R (SVN) 1060 0 R (VS) 1061 0 R (appendix.A) 154 0 R (appendix.B) 158 0 R (chapter*.1) 202 0 R (chapter*.2) 254 0 R (chapter*.3) 349 0 R (chapter.1) 6 0 R (chapter.2) 18 0 R (chapter.3) 54 0 R (chapter.4) 110 0 R (chapter.5) 150 0 R (cite.Algorithms) 821 0 R (cite.AlgorithmsC) 822 0 R (cite.AntIntro) 1003 0 R (cite.AntManual) 1002 0 R (cite.Games) 923 0 R (cite.Java2DAPI) 922 0 R (cite.Java2d) 921 0 R (cite.Javadoc) 1001 0 R (cite.M32) 1042 0 R (cite.OOS) 984 0 R (cite.Regexp) 506 0 R (cite.Richtlinien) 985 0 R (cite.Swing) 778 0 R (cite.Tanenbaum) 393 0 R (cite.Vorlesung) 577 0 R (figure.1.1) 281 0 R (figure.1.2) 282 0 R (figure.2.1) 283 0 R (figure.2.10) 292 0 R (figure.2.11) 293 0 R (figure.2.12) 294 0 R (figure.2.13) 295 0 R (figure.2.14) 296 0 R (figure.2.15) 297 0 R (figure.2.2) 284 0 R (figure.2.3) 285 0 R (figure.2.4) 286 0 R (figure.2.5) 287 0 R (figure.2.6) 288 0 R (figure.2.7) 289 0 R (figure.2.8) 290 0 R (figure.2.9) 291 0 R (figure.3.1) 298 0 R (figure.3.10) 328 0 R (figure.3.11) 329 0 R (figure.3.12) 330 0 R (figure.3.13) 331 0 R (figure.3.2) 299 0 R (figure.3.3) 300 0 R (figure.3.4) 301 0 R (figure.3.5) 302 0 R (figure.3.6) 303 0 R (figure.3.7) 304 0 R (figure.3.8) 305 0 R (figure.3.9) 306 0 R (figure.4.1) 332 0 R (figure.4.10) 341 0 R (figure.4.11) 342 0 R (figure.4.12) 343 0 R (figure.4.13) 344 0 R (figure.4.2) 333 0 R (figure.4.3) 334 0 R (figure.4.4) 335 0 R (figure.4.5) 336 0 R (figure.4.6) 337 0 R (figure.4.7) 338 0 R (figure.4.8) 339 0 R (figure.4.9) 340 0 R (page.1) 166 0 R (page.10) 310 0 R (page.11) 348 0 R (page.12) 391 0 R (page.13) 398 0 R (page.14) 412 0 R (page.15) 421 0 R (page.16) 429 0 R (page.17) 437 0 R (page.18) 445 0 R (page.19) 453 0 R (page.2) 178 0 R (page.20) 460 0 R (page.21) 469 0 R (page.22) 476 0 R (page.23) 486 0 R (page.24) 495 0 R (page.25) 502 0 R (page.26) 511 0 R (page.27) 516 0 R (page.28) 523 0 R (page.29) 530 0 R (page.3) 182 0 R (page.30) 536 0 R (page.31) 540 0 R (page.32) 545 0 R (page.33) 552 0 R (page.34) 568 0 R (page.35) 574 0 R (page.36) 583 0 R (page.37) 589 0 R (page.38) 598 0 R (page.39) 603 0 R (page.4) 186 0 R (page.40) 610 0 R (page.41) 618 0 R (page.42) 627 0 R (page.43) 632 0 R (page.44) 643 0 R (page.45) 651 0 R (page.46) 656 0 R (page.47) 666 0 R (page.48) 672 0 R (page.49) 676 0 R (page.5) 190 0 R (page.50) 682 0 R (page.51) 686 0 R (page.52) 699 0 R (page.53) 704 0 R (page.54) 710 0 R (page.55) 715 0 R (page.56) 725 0 R (page.57) 733 0 R (page.58) 739 0 R (page.59) 747 0 R (page.6) 197 0 R (page.60) 755 0 R (page.61) 761 0 R (page.62) 769 0 R (page.63) 783 0 R (page.64) 795 0 R (page.65) 801 0 R (page.66) 806 0 R (page.67) 811 0 R (page.68) 827 0 R (page.69) 839 0 R (page.7) 201 0 R (page.70) 847 0 R (page.71) 855 0 R (page.72) 864 0 R (page.73) 868 0 R (page.74) 873 0 R (page.75) 877 0 R (page.76) 882 0 R (page.77) 887 0 R (page.78) 891 0 R (page.79) 895 0 R (page.8) 236 0 R (page.80) 909 0 R (page.81) 927 0 R (page.82) 934 0 R (page.83) 948 0 R (page.84) 958 0 R (page.85) 964 0 R (page.86) 977 0 R (page.87) 989 0 R (page.88) 997 0 R (page.89) 1007 0 R (page.9) 253 0 R (page.90) 1026 0 R (page.91) 1035 0 R (page.92) 1040 0 R (page.93) 1046 0 R (page.94) 1065 0 R (section*.10) 439 0 R (section*.11) 446 0 R (section*.12) 454 0 R (section*.13) 462 0 R (section*.14) 470 0 R (section*.15) 487 0 R (section*.16) 496 0 R (section*.17) 498 0 R (section*.18) 503 0 R (section*.19) 512 0 R (section*.20) 517 0 R (section*.21) 518 0 R (section*.22) 524 0 R (section*.23) 525 0 R (section*.24) 613 0 R (section*.25) 644 0 R (section*.26) 652 0 R (section*.27) 661 0 R (section*.28) 700 0 R (section*.29) 741 0 R (section*.30) 762 0 R (section*.31) 802 0 R (section*.32) 848 0 R (section*.33) 878 0 R (section*.34) 896 0 R (section*.35) 930 0 R (section*.36) 959 0 R (section*.37) 1008 0 R (section*.4) 399 0 R (section*.5) 401 0 R (section*.6) 402 0 R (section*.7) 413 0 R (section*.8) 422 0 R (section*.9) 423 0 R (section.1.1) 10 0 R (section.1.2) 14 0 R (section.2.1) 22 0 R (section.2.2) 26 0 R (section.2.3) 30 0 R (section.2.4) 34 0 R (section.3.1) 58 0 R (section.3.10) 94 0 R (section.3.11) 98 0 R (section.3.2) 62 0 R (section.3.3) 66 0 R (section.3.4) 70 0 R (section.3.5) 74 0 R (section.3.6) 78 0 R (section.3.7) 82 0 R (section.3.8) 86 0 R (section.3.9) 90 0 R (section.4.1) 114 0 R (section.4.2) 118 0 R (section.4.3) 122 0 R (section.4.4) 126 0 R (section.4.5) 130 0 R (section.4.6) 134 0 R (section.4.7) 138 0 R (section.4.8) 142 0 R (section.4.9) 146 0 R (subsection.2.4.1) 38 0 R (subsection.2.4.2) 42 0 R (subsection.2.4.3) 46 0 R (subsection.2.4.4) 50 0 R (subsection.3.11.1) 102 0 R (subsection.3.11.2) 106 0 R (table.2.1) 369 0 R (table.2.2) 370 0 R (table.2.3) 371 0 R (table.3.1) 372 0 R (table.3.10) 381 0 R (table.3.11) 382 0 R (table.3.12) 383 0 R (table.3.13) 384 0 R (table.3.14) 385 0 R (table.3.2) 373 0 R (table.3.3) 374 0 R (table.3.4) 375 0 R (table.3.5) 376 0 R (table.3.6) 377 0 R (table.3.7) 378 0 R (table.3.8) 379 0 R (table.3.9) 380 0 R (table.4.1) 386 0 R (table.4.2) 387 0 R] /Limits [(API) (table.4.2)] >> endobj 1088 0 obj << @@ -9909,7 +9899,7 @@ endobj >> endobj 1091 0 obj << /Author(Paul Btow)/Title()/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfeTeX-1.21a)/Keywords() -/CreationDate (D:20080814004320Z) +/CreationDate (D:20080814014234Z) /PTEX.Fullbanner (This is pdfeTeX, Version 3.141592-1.21a-2.2 (Web2C 7.5.4) kpathsea version 3.5.4) >> endobj xref @@ -9921,159 +9911,159 @@ xref 0000000000 00000 f 0000000009 00000 n 0000088156 00000 n -0001098243 00000 n +0001098314 00000 n 0000000054 00000 n 0000000143 00000 n 0000088217 00000 n -0001098171 00000 n +0001098242 00000 n 0000000190 00000 n 0000000290 00000 n 0000091785 00000 n -0001098098 00000 n +0001098169 00000 n 0000000338 00000 n 0000000438 00000 n 0000109814 00000 n -0001097973 00000 n +0001098044 00000 n 0000000484 00000 n 0000000709 00000 n 0000109876 00000 n -0001097899 00000 n +0001097970 00000 n 0000000757 00000 n 0000000885 00000 n 0000191038 00000 n -0001097812 00000 n +0001097883 00000 n 0000000933 00000 n 0000001048 00000 n 0000273603 00000 n -0001097725 00000 n +0001097796 00000 n 0000001096 00000 n 0000001196 00000 n 0000278969 00000 n -0001097614 00000 n +0001097685 00000 n 0000001244 00000 n 0000001359 00000 n 0000282591 00000 n -0001097540 00000 n +0001097611 00000 n 0000001412 00000 n 0000001567 00000 n 0000282653 00000 n -0001097453 00000 n +0001097524 00000 n 0000001620 00000 n 0000001800 00000 n 0000319928 00000 n -0001097366 00000 n +0001097437 00000 n 0000001853 00000 n 0000002094 00000 n 0000325277 00000 n -0001097292 00000 n +0001097363 00000 n 0000002147 00000 n 0000002363 00000 n 0000327579 00000 n -0001097164 00000 n +0001097235 00000 n 0000002409 00000 n 0000002575 00000 n 0000327641 00000 n -0001097090 00000 n +0001097161 00000 n 0000002623 00000 n 0000002815 00000 n 0000492234 00000 n -0001097003 00000 n +0001097074 00000 n 0000002863 00000 n 0000003231 00000 n 0000563290 00000 n -0001096916 00000 n +0001096987 00000 n 0000003279 00000 n 0000003539 00000 n 0000584715 00000 n -0001096829 00000 n +0001096900 00000 n 0000003587 00000 n 0000004095 00000 n 0000613645 00000 n -0001096742 00000 n +0001096813 00000 n 0000004143 00000 n 0000004564 00000 n 0000641222 00000 n -0001096655 00000 n +0001096726 00000 n 0000004612 00000 n 0000005031 00000 n 0000667708 00000 n -0001096568 00000 n +0001096639 00000 n 0000005079 00000 n 0000005417 00000 n 0000671021 00000 n -0001096481 00000 n +0001096552 00000 n 0000005465 00000 n 0000005808 00000 n 0000721778 00000 n -0001096394 00000 n +0001096465 00000 n 0000005856 00000 n 0000006208 00000 n 0000750660 00000 n -0001096307 00000 n +0001096378 00000 n 0000006257 00000 n 0000006702 00000 n 0000789241 00000 n -0001096193 00000 n +0001096264 00000 n 0000006751 00000 n 0000006895 00000 n 0000789303 00000 n -0001096115 00000 n +0001096186 00000 n 0000006950 00000 n 0000007258 00000 n 0000846671 00000 n -0001096037 00000 n +0001096108 00000 n 0000007313 00000 n 0000007669 00000 n 0000851524 00000 n -0001095905 00000 n +0001095976 00000 n 0000007716 00000 n 0000007832 00000 n 0000851587 00000 n -0001095826 00000 n +0001095897 00000 n 0000007881 00000 n 0000008068 00000 n 0000867313 00000 n -0001095733 00000 n +0001095804 00000 n 0000008117 00000 n 0000008218 00000 n 0000884543 00000 n -0001095640 00000 n +0001095711 00000 n 0000008267 00000 n 0000008595 00000 n -0000896328 00000 n -0001095547 00000 n +0000896332 00000 n +0001095618 00000 n 0000008644 00000 n 0000008760 00000 n -0000943647 00000 n -0001095454 00000 n +0000943694 00000 n +0001095525 00000 n 0000008809 00000 n 0000009041 00000 n -0000951287 00000 n -0001095361 00000 n +0000951387 00000 n +0001095432 00000 n 0000009090 00000 n 0000009413 00000 n -0000963036 00000 n -0001095268 00000 n +0000963258 00000 n +0001095339 00000 n 0000009462 00000 n 0000009778 00000 n -0000967388 00000 n -0001095175 00000 n +0000967521 00000 n +0001095246 00000 n 0000009827 00000 n 0000009988 00000 n -0000973592 00000 n -0001095096 00000 n +0000973603 00000 n +0001095167 00000 n 0000010037 00000 n 0000010188 00000 n -0000983668 00000 n -0001095002 00000 n +0000983736 00000 n +0001095073 00000 n 0000010235 00000 n 0000010316 00000 n -0000987731 00000 n -0001094908 00000 n +0000987799 00000 n +0001094979 00000 n 0000010364 00000 n 0000010445 00000 n -0000991029 00000 n -0001094828 00000 n +0000991097 00000 n +0001094899 00000 n 0000010493 00000 n 0000010634 00000 n 0000011593 00000 n @@ -10082,13 +10072,13 @@ xref 0000010686 00000 n 0000053994 00000 n 0000054057 00000 n -0001091338 00000 n -0001078350 00000 n -0001091166 00000 n -0001077056 00000 n -0001063196 00000 n -0001076884 00000 n -0001092446 00000 n +0001091409 00000 n +0001078421 00000 n +0001091237 00000 n +0001077127 00000 n +0001063267 00000 n +0001076955 00000 n +0001092517 00000 n 0000054575 00000 n 0000054390 00000 n 0000054241 00000 n @@ -10105,9 +10095,9 @@ xref 0000057191 00000 n 0000056239 00000 n 0000057313 00000 n -0001062661 00000 n -0001060796 00000 n -0001062499 00000 n +0001062732 00000 n +0001060867 00000 n +0001062570 00000 n 0000057808 00000 n 0000057623 00000 n 0000057474 00000 n @@ -10132,9 +10122,9 @@ xref 0000062670 00000 n 0000062825 00000 n 0000062982 00000 n -0001059599 00000 n -0001047282 00000 n -0001059423 00000 n +0001059670 00000 n +0001047353 00000 n +0001059494 00000 n 0000063139 00000 n 0000063295 00000 n 0000063451 00000 n @@ -10146,7 +10136,7 @@ xref 0000064390 00000 n 0000064548 00000 n 0000064711 00000 n -0001092564 00000 n +0001092635 00000 n 0000068813 00000 n 0000066483 00000 n 0000065097 00000 n @@ -10250,15 +10240,15 @@ xref 0000867249 00000 n 0000871725 00000 n 0000884606 00000 n -0000889354 00000 n -0000893435 00000 n -0000900504 00000 n -0000920774 00000 n -0000943710 00000 n -0000955544 00000 n -0000963099 00000 n -0000967324 00000 n -0000969976 00000 n +0000889439 00000 n +0000893439 00000 n +0000900515 00000 n +0000920784 00000 n +0000943757 00000 n +0000955796 00000 n +0000963321 00000 n +0000967457 00000 n +0000970108 00000 n 0000085916 00000 n 0000082559 00000 n 0000080648 00000 n @@ -10307,7 +10297,7 @@ xref 0000086001 00000 n 0000088093 00000 n 0000087933 00000 n -0000991992 00000 n +0000992060 00000 n 0000090369 00000 n 0000092098 00000 n 0000090227 00000 n @@ -10317,7 +10307,7 @@ xref 0000091565 00000 n 0000091972 00000 n 0000092035 00000 n -0001092682 00000 n +0001092753 00000 n 0000091294 00000 n 0000091425 00000 n 0000091472 00000 n @@ -10370,7 +10360,7 @@ xref 0000164275 00000 n 0000164338 00000 n 0000164118 00000 n -0001092800 00000 n +0001092871 00000 n 0000167710 00000 n 0000167058 00000 n 0000164676 00000 n @@ -10419,8 +10409,8 @@ xref 0000226500 00000 n 0000226627 00000 n 0000226342 00000 n -0001092918 00000 n -0000991479 00000 n +0001092989 00000 n +0000991547 00000 n 0000228454 00000 n 0000273728 00000 n 0000228332 00000 n @@ -10455,30 +10445,30 @@ xref 0000304985 00000 n 0000303182 00000 n 0000316597 00000 n -0001093036 00000 n +0001093107 00000 n 0000319990 00000 n 0000319680 00000 n 0000316871 00000 n 0000319802 00000 n -0001046735 00000 n -0001037787 00000 n -0001046558 00000 n +0001046806 00000 n +0001037857 00000 n +0001046629 00000 n 0000323237 00000 n 0000323052 00000 n 0000320114 00000 n 0000323174 00000 n -0001037425 00000 n -0001028204 00000 n -0001037245 00000 n -0001027762 00000 n -0001025477 00000 n -0001027600 00000 n -0001025183 00000 n -0001017365 00000 n -0001025008 00000 n -0001016978 00000 n -0001014791 00000 n -0001016815 00000 n +0001037495 00000 n +0001028274 00000 n +0001037315 00000 n +0001027832 00000 n +0001025546 00000 n +0001027670 00000 n +0001025252 00000 n +0001017434 00000 n +0001025077 00000 n +0001017047 00000 n +0001014859 00000 n +0001016884 00000 n 0000325339 00000 n 0000324753 00000 n 0000323400 00000 n @@ -10491,7 +10481,7 @@ xref 0000327516 00000 n 0000327198 00000 n 0000327358 00000 n -0000991864 00000 n +0000991932 00000 n 0000329383 00000 n 0000360582 00000 n 0000492424 00000 n @@ -10507,7 +10497,7 @@ xref 0000494937 00000 n 0000495092 00000 n 0000495248 00000 n -0001093154 00000 n +0001093225 00000 n 0000497676 00000 n 0000563416 00000 n 0000497554 00000 n @@ -10547,12 +10537,12 @@ xref 0000644834 00000 n 0000641506 00000 n 0000645297 00000 n -0001014460 00000 n -0001012350 00000 n -0001014289 00000 n +0001014528 00000 n +0001012418 00000 n +0001014357 00000 n 0000644984 00000 n 0000645141 00000 n -0001093272 00000 n +0001093343 00000 n 0000647927 00000 n 0000667834 00000 n 0000647777 00000 n @@ -10591,7 +10581,7 @@ xref 0000726768 00000 n 0000725001 00000 n 0000726890 00000 n -0001093390 00000 n +0001093461 00000 n 0000729257 00000 n 0000750786 00000 n 0000729135 00000 n @@ -10631,10 +10621,10 @@ xref 0000789616 00000 n 0000820658 00000 n 0000820500 00000 n -0001011254 00000 n -0000994044 00000 n -0001011081 00000 n -0001093508 00000 n +0001011322 00000 n +0000994112 00000 n +0001011149 00000 n +0001093579 00000 n 0000823455 00000 n 0000846798 00000 n 0000823289 00000 n @@ -10678,7 +10668,7 @@ xref 0000862388 00000 n 0000862515 00000 n 0000862231 00000 n -0001093626 00000 n +0001093697 00000 n 0000865133 00000 n 0000867376 00000 n 0000864975 00000 n @@ -10692,7 +10682,7 @@ xref 0000866542 00000 n 0000866614 00000 n 0000866694 00000 n -0000991736 00000 n +0000991804 00000 n 0000869476 00000 n 0000871914 00000 n 0000869334 00000 n @@ -10722,7 +10712,6 @@ xref 0000878240 00000 n 0000879748 00000 n 0000882694 00000 n -0000887127 00000 n 0000884670 00000 n 0000882528 00000 n 0000879909 00000 n @@ -10731,288 +10720,289 @@ xref 0000884000 00000 n 0000884157 00000 n 0000884318 00000 n -0001093744 00000 n +0001093815 00000 n 0000883572 00000 n 0000883703 00000 n 0000883750 00000 n 0000883822 00000 n -0000991287 00000 n -0000991928 00000 n -0000892061 00000 n -0000889417 00000 n -0000886977 00000 n +0000991355 00000 n +0000991996 00000 n +0000887213 00000 n +0000889502 00000 n +0000887063 00000 n 0000884797 00000 n -0000889291 00000 n -0000888978 00000 n -0000889134 00000 n -0000888626 00000 n -0000888757 00000 n -0000888804 00000 n -0000888876 00000 n -0000888956 00000 n -0000893499 00000 n -0000891939 00000 n -0000889531 00000 n -0000893372 00000 n -0000893101 00000 n -0000893232 00000 n -0000893279 00000 n -0000893351 00000 n -0000898642 00000 n -0000896391 00000 n -0000895904 00000 n -0000893613 00000 n -0000896202 00000 n -0000896265 00000 n -0000896046 00000 n -0000902565 00000 n -0000900568 00000 n -0000898520 00000 n -0000896502 00000 n -0000900441 00000 n -0000900090 00000 n -0000900221 00000 n -0000900268 00000 n -0000900340 00000 n -0000900420 00000 n -0000920838 00000 n -0000902443 00000 n -0000900695 00000 n -0000920711 00000 n -0000923781 00000 n -0000923596 00000 n -0000920986 00000 n -0000923718 00000 n -0001093862 00000 n -0000926632 00000 n -0000926447 00000 n -0000923892 00000 n -0000926569 00000 n -0000929028 00000 n -0000928781 00000 n -0000926730 00000 n -0000928903 00000 n -0000928966 00000 n -0000931472 00000 n -0000931111 00000 n -0000929152 00000 n -0000931409 00000 n -0000931253 00000 n -0000933272 00000 n -0000933087 00000 n -0000931570 00000 n -0000933209 00000 n -0000935162 00000 n -0000934977 00000 n -0000933370 00000 n -0000935099 00000 n -0000938173 00000 n -0000937486 00000 n -0000935273 00000 n -0000937608 00000 n -0000937671 00000 n -0000937734 00000 n -0000937797 00000 n -0000937860 00000 n -0000937923 00000 n -0000937986 00000 n -0000938048 00000 n -0000938111 00000 n -0001093980 00000 n -0000940863 00000 n -0000943773 00000 n -0000940673 00000 n -0000938297 00000 n -0000943584 00000 n -0000942484 00000 n -0000942639 00000 n -0000942796 00000 n -0000942952 00000 n -0000943109 00000 n -0000943267 00000 n -0000943427 00000 n -0000942213 00000 n -0000942344 00000 n +0000889376 00000 n +0000889064 00000 n +0000889219 00000 n +0000888712 00000 n +0000888843 00000 n +0000888890 00000 n +0000888962 00000 n +0000889042 00000 n +0000892065 00000 n +0000893503 00000 n +0000891943 00000 n +0000889616 00000 n +0000893376 00000 n +0000893105 00000 n +0000893236 00000 n +0000893283 00000 n +0000893355 00000 n +0000896395 00000 n +0000895908 00000 n +0000893617 00000 n +0000896206 00000 n +0000896269 00000 n +0000896050 00000 n +0000898653 00000 n +0000902575 00000 n +0000900578 00000 n +0000898531 00000 n +0000896506 00000 n +0000900452 00000 n +0000900101 00000 n +0000900232 00000 n +0000900279 00000 n +0000900351 00000 n +0000900431 00000 n +0000920848 00000 n +0000902453 00000 n +0000900705 00000 n +0000920721 00000 n +0000923791 00000 n +0000923606 00000 n +0000920996 00000 n +0000923728 00000 n +0001093933 00000 n +0000926642 00000 n +0000926457 00000 n +0000923902 00000 n +0000926579 00000 n +0000929038 00000 n +0000928791 00000 n +0000926740 00000 n +0000928913 00000 n +0000928976 00000 n +0000931482 00000 n +0000931121 00000 n +0000929162 00000 n +0000931419 00000 n +0000931263 00000 n +0000933282 00000 n +0000933097 00000 n +0000931580 00000 n +0000933219 00000 n +0000935172 00000 n +0000934987 00000 n +0000933380 00000 n +0000935109 00000 n +0000938183 00000 n +0000937496 00000 n +0000935283 00000 n +0000937618 00000 n +0000937681 00000 n +0000937744 00000 n +0000937807 00000 n +0000937870 00000 n +0000937933 00000 n +0000937996 00000 n +0000938058 00000 n +0000938121 00000 n +0001094051 00000 n +0000940910 00000 n +0000943820 00000 n +0000940720 00000 n +0000938307 00000 n +0000943631 00000 n +0000942531 00000 n +0000942688 00000 n +0000942845 00000 n +0000942998 00000 n +0000943155 00000 n +0000943313 00000 n +0000943474 00000 n +0000942260 00000 n 0000942391 00000 n -0000942463 00000 n -0000991672 00000 n -0000991543 00000 n -0000991223 00000 n -0000947306 00000 n -0000946716 00000 n -0000943900 00000 n -0000947180 00000 n -0000946866 00000 n -0000947023 00000 n -0000947243 00000 n -0000951350 00000 n -0000950321 00000 n -0000947417 00000 n -0000950785 00000 n -0000950848 00000 n -0000950911 00000 n -0000950974 00000 n -0000951037 00000 n -0000951099 00000 n -0000951162 00000 n -0000951224 00000 n -0000950471 00000 n -0000950628 00000 n -0000953610 00000 n -0000955608 00000 n -0000953488 00000 n -0000951513 00000 n -0000955481 00000 n -0000955129 00000 n -0000955260 00000 n -0000955307 00000 n -0000955379 00000 n -0000955459 00000 n -0000958621 00000 n -0000958196 00000 n -0000955735 00000 n -0000958495 00000 n -0000958558 00000 n -0000958338 00000 n -0000961068 00000 n -0000963162 00000 n -0000960918 00000 n -0000958745 00000 n -0000962973 00000 n -0000962657 00000 n -0000962815 00000 n -0001094098 00000 n -0000962386 00000 n -0000962517 00000 n -0000962564 00000 n -0000962636 00000 n -0000965763 00000 n -0000968144 00000 n -0000967451 00000 n -0000965613 00000 n -0000963302 00000 n -0000967261 00000 n -0000966943 00000 n -0000967098 00000 n -0000966672 00000 n -0000966803 00000 n -0000966850 00000 n -0000966922 00000 n -0000991351 00000 n -0000991415 00000 n -0000970040 00000 n -0000968022 00000 n -0000967591 00000 n -0000969913 00000 n -0000969641 00000 n -0000969772 00000 n -0000969819 00000 n -0000969891 00000 n -0000973655 00000 n -0000972889 00000 n -0000970154 00000 n -0000973529 00000 n -0000973048 00000 n -0000973207 00000 n -0000973368 00000 n -0000991607 00000 n -0000991158 00000 n -0000991093 00000 n -0000979372 00000 n -0000976464 00000 n -0000973766 00000 n -0000979244 00000 n -0000979309 00000 n -0000976727 00000 n -0000976903 00000 n -0000977080 00000 n -0000977255 00000 n -0000977429 00000 n -0000977614 00000 n -0000977784 00000 n -0000977963 00000 n -0000978148 00000 n -0000978323 00000 n -0000978500 00000 n -0000978699 00000 n -0000978871 00000 n -0000979042 00000 n -0000981348 00000 n -0000980200 00000 n -0000979497 00000 n -0000981283 00000 n -0000980382 00000 n -0000980559 00000 n -0000980740 00000 n -0000980920 00000 n -0000981099 00000 n -0000983732 00000 n -0000983477 00000 n -0000981460 00000 n -0000983603 00000 n -0001094218 00000 n -0000986225 00000 n -0000985857 00000 n -0000983818 00000 n -0000986160 00000 n -0000986004 00000 n -0000991800 00000 n -0000988769 00000 n -0000987540 00000 n -0000986324 00000 n -0000987666 00000 n -0000987795 00000 n -0000987860 00000 n -0000987925 00000 n -0000987990 00000 n -0000988055 00000 n -0000988120 00000 n -0000988185 00000 n -0000988250 00000 n -0000988315 00000 n -0000988380 00000 n -0000988445 00000 n -0000988510 00000 n -0000988575 00000 n -0000988640 00000 n -0000988705 00000 n -0000992056 00000 n -0000990838 00000 n -0000988855 00000 n -0000990964 00000 n -0000992155 00000 n -0001011747 00000 n -0001014698 00000 n -0001014673 00000 n -0001017244 00000 n -0001017205 00000 n -0001025422 00000 n -0001028063 00000 n -0001027990 00000 n -0001037680 00000 n -0001047037 00000 n -0001060157 00000 n -0001063033 00000 n -0001062903 00000 n -0001077651 00000 n -0001091783 00000 n -0001094325 00000 n -0001094445 00000 n -0001094565 00000 n -0001094670 00000 n -0001094752 00000 n -0001098353 00000 n -0001104056 00000 n -0001104097 00000 n -0001104137 00000 n -0001104293 00000 n +0000942438 00000 n +0000942510 00000 n +0000991740 00000 n +0000991611 00000 n +0000991291 00000 n +0000947387 00000 n +0000946798 00000 n +0000943947 00000 n +0000947261 00000 n +0000946948 00000 n +0000947104 00000 n +0000947324 00000 n +0000951449 00000 n +0000950419 00000 n +0000947498 00000 n +0000950883 00000 n +0000950946 00000 n +0000951009 00000 n +0000951072 00000 n +0000951135 00000 n +0000951198 00000 n +0000951261 00000 n +0000951324 00000 n +0000950569 00000 n +0000950725 00000 n +0000953862 00000 n +0000955860 00000 n +0000953740 00000 n +0000951625 00000 n +0000955733 00000 n +0000955381 00000 n +0000955512 00000 n +0000955559 00000 n +0000955631 00000 n +0000955711 00000 n +0000961290 00000 n +0000958727 00000 n +0000958301 00000 n +0000955987 00000 n +0000958601 00000 n +0000958664 00000 n +0000958443 00000 n +0000963385 00000 n +0000961140 00000 n +0000958851 00000 n +0000963195 00000 n +0000962879 00000 n +0000963037 00000 n +0001094169 00000 n +0000962608 00000 n +0000962739 00000 n +0000962786 00000 n +0000962858 00000 n +0000965898 00000 n +0000968276 00000 n +0000967583 00000 n +0000965748 00000 n +0000963525 00000 n +0000967394 00000 n +0000967078 00000 n +0000967232 00000 n +0000966807 00000 n +0000966938 00000 n +0000966985 00000 n +0000967057 00000 n +0000991419 00000 n +0000991483 00000 n +0000970172 00000 n +0000968154 00000 n +0000967723 00000 n +0000970045 00000 n +0000969773 00000 n +0000969904 00000 n +0000969951 00000 n +0000970023 00000 n +0000973666 00000 n +0000972900 00000 n +0000970286 00000 n +0000973540 00000 n +0000973059 00000 n +0000973218 00000 n +0000973379 00000 n +0000991675 00000 n +0000991226 00000 n +0000991161 00000 n +0000979440 00000 n +0000976532 00000 n +0000973777 00000 n +0000979312 00000 n +0000979377 00000 n +0000976795 00000 n +0000976971 00000 n +0000977148 00000 n +0000977323 00000 n +0000977497 00000 n +0000977682 00000 n +0000977852 00000 n +0000978031 00000 n +0000978216 00000 n +0000978391 00000 n +0000978568 00000 n +0000978767 00000 n +0000978939 00000 n +0000979110 00000 n +0000981416 00000 n +0000980268 00000 n +0000979565 00000 n +0000981351 00000 n +0000980450 00000 n +0000980627 00000 n +0000980808 00000 n +0000980988 00000 n +0000981167 00000 n +0000983800 00000 n +0000983545 00000 n +0000981528 00000 n +0000983671 00000 n +0001094289 00000 n +0000986293 00000 n +0000985925 00000 n +0000983886 00000 n +0000986228 00000 n +0000986072 00000 n +0000991868 00000 n +0000988837 00000 n +0000987608 00000 n +0000986392 00000 n +0000987734 00000 n +0000987863 00000 n +0000987928 00000 n +0000987993 00000 n +0000988058 00000 n +0000988123 00000 n +0000988188 00000 n +0000988253 00000 n +0000988318 00000 n +0000988383 00000 n +0000988448 00000 n +0000988513 00000 n +0000988578 00000 n +0000988643 00000 n +0000988708 00000 n +0000988773 00000 n +0000992124 00000 n +0000990906 00000 n +0000988923 00000 n +0000991032 00000 n +0000992223 00000 n +0001011815 00000 n +0001014766 00000 n +0001014741 00000 n +0001017313 00000 n +0001017274 00000 n +0001025491 00000 n +0001028133 00000 n +0001028060 00000 n +0001037750 00000 n +0001047108 00000 n +0001060228 00000 n +0001063104 00000 n +0001062974 00000 n +0001077722 00000 n +0001091854 00000 n +0001094396 00000 n +0001094516 00000 n +0001094636 00000 n +0001094741 00000 n +0001094823 00000 n +0001098424 00000 n +0001104127 00000 n +0001104168 00000 n +0001104208 00000 n +0001104364 00000 n trailer << /Size 1092 /Root 1090 0 R /Info 1091 0 R -/ID [<590043B7007B45470F9AFE2479DC36D7> <590043B7007B45470F9AFE2479DC36D7>] +/ID [ ] >> startxref -1104561 +1104632 %%EOF -- cgit v1.2.3