From e4438cf4f469b693e2f9c468104ca5d0a9f5149e Mon Sep 17 00:00:00 2001 From: Thomas resiX Date: Sat, 15 Feb 2025 15:39:11 +0100 Subject: [PATCH] v0.1.52 --- .gitignore | 1 + Makefile | 46 + anhang/anhang.tex | 7 + anhang/glossar.tex | 106 + linux.dvi | Bin 0 -> 557064 bytes linux.html | 16 + linux.pdf | Bin 0 -> 484740 bytes linux.ps | 26074 ++++++++++++++++ linux.tex | 51 + linux.txt | 4814 +++ .../anhalten_des_systems_und_booten.tex | 24 + linux/befehle/anmelden_und_abmelden.tex | 16 + .../befehle/arbeiten_im_und_am_Filesystem.tex | 13 + linux/befehle/auflisten.tex | 20 + linux/befehle/ausgeben.tex | 33 + linux/befehle/befehle.tex | 42 + linux/befehle/dateiendungen.tex | 15 + linux/befehle/dateinamen.tex | 17 + linux/befehle/datum_und_uhrzeit.tex | 17 + linux/befehle/der_texteditor_vi_vim.tex | 15 + linux/befehle/die_runlevel.tex | 22 + linux/befehle/disketten_festplatten.tex | 58 + linux/befehle/drucken.tex | 17 + linux/befehle/file_inhalt_bearbeiten.tex | 19 + linux/befehle/gnupg.tex | 117 + linux/befehle/im_netz.tex | 38 + linux/befehle/infos_ueber_files.tex | 13 + linux/befehle/kopieren_und_verschieben.tex | 23 + linux/befehle/loeschen.tex | 14 + linux/befehle/prozessbefehle.tex | 37 + .../befehle/re_install_grub_with_live_cd.tex | 33 + linux/befehle/software_installieren.tex | 138 + linux/befehle/ssh.tex | 57 + linux/befehle/standartein_aus_gabe.tex | 21 + linux/befehle/suchen_in_dateien.tex | 22 + linux/befehle/suchen_nach_dateien.tex | 24 + linux/befehle/suse_linux.tex | 18 + linux/befehle/tar_verwaltet_dateiarchive.tex | 88 + linux/befehle/upstart.tex | 26 + linux/befehle/vergleichen_von_dateien.tex | 13 + linux/befehle/x11_grafik.tex | 61 + .../zugriffsrechte_eigentuemer_gruppe.tex | 93 + ...ur_orientierung_auf_einem_unix-rechner.tex | 46 + linux/dateien/dateibaum.tex | 320 + linux/dateien/dateien.tex | 18 + .../dateien/dateisystemtypen_unter_linux.tex | 46 + linux/dateien/dev.tex | 33 + linux/dateien/fstab.tex | 22 + linux/dateien/group.tex | 27 + linux/dateien/hosts.tex | 19 + linux/dateien/inittab.tex | 163 + linux/dateien/passwd.tex | 22 + linux/linux.tex | 10 + linux/linux/kernel_und_module.tex | 88 + linux/linux/linux.tex | 12 + linux/linux/was_ist_linux.tex | 9 + linux/shells/bash_rechnen.tex | 16 + linux/shells/die_c-shell.tex | 34 + linux/shells/die_shells.tex | 28 + linux/shells/die_start-scripts.tex | 11 + linux/shells/shells.tex | 15 + linux/shells/tastenkombinationen.tex | 42 + linux_ind.html | 171 + linuxs.html | 8467 +++++ netzwerk/apache/access_control_list_file.tex | 27 + netzwerk/apache/anforderungen.tex | 28 + .../apache/anhang_syntax_ueberpruefen.tex | 12 + netzwerk/apache/apache.tex | 50 + netzwerk/apache/apache1.3.tex | 84 + netzwerk/apache/apache2.tex | 43 + netzwerk/apache/apache_starten.tex | 13 + .../automatisch_starten_und_beenden.tex | 28 + netzwerk/apache/beenden.tex | 27 + .../beenden_und_neustarten_einleitung.tex | 21 + netzwerk/apache/einleitung.tex | 13 + .../erstellen_eines_ssl-zertifikats.tex | 18 + netzwerk/apache/favicon.tex | 107 + .../fehler_waehrend_des_hochfahrens.tex | 16 + netzwerk/apache/gruppendatei.tex | 12 + netzwerk/apache/httpd_conf.tex | 152 + netzwerk/apache/neustarten.tex | 31 + netzwerk/apache/openssl.tex | 25 + netzwerk/apache/passwort-datei.tex | 13 + netzwerk/apache/pureftpd.tex | 67 + netzwerk/apache/testen.tex | 16 + .../apache/unterbrechungsfreier_neustart.tex | 32 + netzwerk/apache/upgrade.tex | 12 + netzwerk/apache/vorbereitungen.tex | 18 + netzwerk/apache/weitere_informationen.tex | 14 + netzwerk/apache/wie_der_apache_startet.tex | 29 + netzwerk/apache/zu_den_dateien.tex | 26 + netzwerk/mysql/anforderungen.tex | 19 + netzwerk/mysql/einleitung.tex | 9 + .../mysql/kompilieren_und_installieren.tex | 47 + netzwerk/mysql/mysql.tex | 17 + netzwerk/mysql/phpmyadmin.tex | 58 + netzwerk/mysql/testen.tex | 29 + netzwerk/mysql/vorbereitungen.tex | 16 + netzwerk/netzwerk.tex | 59 + netzwerk/php/anforderungen.tex | 23 + netzwerk/php/einleitung.tex | 23 + netzwerk/php/funktionen.tex | 15 + netzwerk/php/grundlagen.tex | 40 + netzwerk/php/installieren_php.tex | 43 + .../php/libraries_fuer_zusatzfunktionen.tex | 63 + netzwerk/php/php.tex | 21 + netzwerk/php/vorbereitungen.tex | 16 + netzwerk/squid/aufgaben.tex | 14 + .../squid/automatische_starten_von_squit.tex | 15 + netzwerk/squid/client_kommunikation.tex | 15 + netzwerk/squid/eigenschaften.tex | 18 + netzwerk/squid/einfacher_cache.tex | 14 + ...unikation_zwischen_proxy_cache_servern.tex | 16 + netzwerk/squid/proxy.tex | 9 + netzwerk/squid/proxy_cache.tex | 21 + netzwerk/squid/squid.tex | 51 + netzwerk/squid/squid_conf.tex | 103 + netzwerk/squid/squiddateien.tex | 15 + netzwerk/squid/suse_linux.tex | 14 + netzwerk/squid/systemvoraussetzungen.tex | 14 + programme/latex.tex | 7 + programme/latex/latex.tex | 8 + programme/programme.tex | 8 + programme/vim/aufruf.tex | 16 + programme/vim/befehlsmodus/aufheben.tex | 10 + programme/vim/befehlsmodus/befehlsmodus.tex | 22 + programme/vim/befehlsmodus/bewegen.tex | 61 + programme/vim/befehlsmodus/einfuegen.tex | 10 + programme/vim/befehlsmodus/eingeben.tex | 16 + programme/vim/befehlsmodus/kopieren.tex | 13 + programme/vim/befehlsmodus/loeschen.tex | 15 + .../befehlsmodus/loeschen_und_eingeben.tex | 19 + programme/vim/befehlsmodus/markieren.tex | 11 + .../vim/befehlsmodus/sonstige_kommandos.tex | 11 + programme/vim/befehlsmodus/suchen.tex | 12 + programme/vim/befehlsmodus/ueberschreiben.tex | 14 + programme/vim/befehlsmodus/verschieben.tex | 14 + programme/vim/befehlsmodus/wiederholen.tex | 16 + programme/vim/befehlsmodus/zusammenfuegen.tex | 9 + programme/vim/eingabemodus.tex | 13 + programme/vim/kommandomodus.tex | 32 + programme/vim/vim.tex | 16 + programmieren/bash/bash.tex | 12 + programmieren/bash/einleitung.tex | 16 + programmieren/bash/referenz.tex | 34 + .../steuer_und_sonderzeichen_der_bash.tex | 21 + programmieren/c/ascii.tex | 107 + programmieren/c/befehle_und_grundelemente.tex | 39 + programmieren/c/c.tex | 22 + programmieren/c/ctype.h.tex | 12 + .../c/inkrementieren_und_dekrementieren.tex | 18 + programmieren/c/konstanten.tex | 38 + programmieren/c/kontrollstrukturen.tex | 48 + programmieren/c/operatoren_und_ausdruecke.tex | 109 + programmieren/c/stdio.h.tex | 35 + programmieren/c/steuersequenzen.tex | 44 + programmieren/c/string.h.tex | 32 + programmieren/c/variableninitialisierung.tex | 17 + ...und_genauigkeit_elementarer_datentypen.tex | 23 + programmieren/cgi_perl/array_funktionen.tex | 20 + programmieren/cgi_perl/arrays.tex | 16 + programmieren/cgi_perl/cgi_perl.tex | 27 + programmieren/cgi_perl/einleitung.tex | 16 + programmieren/cgi_perl/if_bedingung.tex | 14 + programmieren/cgi_perl/if_else_bedingung.tex | 18 + .../cgi_perl/if_elseif_bedingung.tex | 18 + programmieren/cgi_perl/rechen_funktionen.tex | 15 + programmieren/cgi_perl/rechenoperationen.tex | 19 + programmieren/cgi_perl/string_funktionen.tex | 12 + ...string_und_zahlenvergleichsoperratoren.tex | 17 + programmieren/cgi_perl/texte_und_strings.tex | 27 + ...ung_an_einer_datei_rueckgaengig_machen.tex | 10 + programmieren/git/branch.tex | 26 + programmieren/git/commit.tex | 17 + programmieren/git/dateien_entfernen.tex | 14 + programmieren/git/dateien_ignorieren.tex | 20 + programmieren/git/dateien_verschieben.tex | 10 + programmieren/git/der_index.tex | 38 + programmieren/git/dokumentation.tex | 12 + programmieren/git/git.tex | 26 + programmieren/git/git_aliase.tex | 13 + .../git/git_auf_dem_ssh-server_einrichten.tex | 66 + .../git/git_auf_einen_server_bekommen.tex | 19 + programmieren/git/grundbegriffe.tex | 53 + programmieren/git/konfiguration.tex | 44 + ...nfigurationen_ueber_umgebungsvariablen.tex | 18 + .../git/mit_externen_repositorys_arbeiten.tex | 39 + .../git/oeffentlicher_webserver-zugang.tex | 41 + programmieren/git/repository.tex | 14 + programmieren/git/tags.tex | 23 + programmieren/java/action_events.tex | 20 + .../applets_in_eine_webseite_einbinden.tex | 21 + programmieren/java/arbeiten_mit_threads.tex | 38 + .../arithmetische_zuweisungsoperatoren.tex | 17 + programmieren/java/arrays.tex | 19 + programmieren/java/ausnahmen.tex | 23 + .../java/bedingungen_und_entscheidungen.tex | 22 + programmieren/java/das_erste_java_applet.tex | 17 + programmieren/java/das_paket_java_util.tex | 11 + programmieren/java/datentypen.tex | 19 + programmieren/java/dekrement_operator.tex | 11 + programmieren/java/die_anweisung_import.tex | 15 + programmieren/java/die_do_while_schleife.tex | 14 + programmieren/java/die_for_schleife.tex | 15 + programmieren/java/die_klasse_button.tex | 14 + programmieren/java/die_klasse_color.tex | 28 + programmieren/java/die_klasse_date.tex | 20 + programmieren/java/die_klasse_font.tex | 22 + programmieren/java/die_klasse_graphics.tex | 22 + programmieren/java/die_klasse_image.tex | 13 + programmieren/java/die_klasse_math.tex | 15 + programmieren/java/die_klasse_object.tex | 12 + programmieren/java/die_klasse_random.tex | 21 + programmieren/java/die_klasse_runtime.tex | 17 + programmieren/java/die_klasse_stack.tex | 15 + programmieren/java/die_klasse_string.tex | 15 + .../java/die_klasse_stringbuffer.tex | 17 + programmieren/java/die_klasse_system.tex | 15 + .../java/die_methoden_eines_applets.tex | 17 + programmieren/java/die_while_schleife.tex | 14 + .../java/eigene_ausnahme_erzeugen.tex | 17 + .../java/ein_applet_im_ueberblick.tex | 30 + programmieren/java/eventhandling.tex | 11 + .../fallunterscheidung_mit_switch_case.tex | 18 + programmieren/java/funktion_von_java.tex | 20 + programmieren/java/if_else_bedingungen.tex | 15 + programmieren/java/inkrement_operator.tex | 11 + programmieren/java/java.tex | 115 + programmieren/java/klassen.tex | 28 + programmieren/java/kommentrare.tex | 15 + .../java/konstruktoren_und_destruktoren.tex | 22 + programmieren/java/methoden_ueberladen.tex | 21 + programmieren/java/mouse_events.tex | 32 + programmieren/java/objekte.tex | 12 + programmieren/java/operratoren.tex | 12 + programmieren/java/pakete.tex | 14 + .../java/parameter_an_ein_applet.tex | 18 + .../schleife_mit_continue_wiederholen.tex | 14 + .../java/schleifen_mit_break_verlassen.tex | 14 + programmieren/java/schnittstellen.tex | 21 + ...ugriffsrechte_von_klassen_und_methoden.tex | 28 + programmieren/java/variablen.tex | 22 + programmieren/java/vererbung.tex | 13 + .../java/verknuepfungsoperatoren.tex | 17 + .../java/verschachtelte_bedingungen.tex | 17 + .../java/weitere_wichtige_pakete.tex | 16 + programmieren/javascript/arrays.tex | 12 + .../ausfuehren_bei_bestimmten_aktionen.tex | 18 + .../javascript/bedingte_ausfuehrung.tex | 14 + programmieren/javascript/eigene_objekte.tex | 22 + .../javascript/einbindung_in_den_body.tex | 20 + .../javascript/einbindung_in_den_head.tex | 23 + programmieren/javascript/event_handler.tex | 21 + programmieren/javascript/funktionen.tex | 27 + programmieren/javascript/javascript.tex | 47 + .../javascript/mathematische_operationen.tex | 17 + .../javascript/reservierte_woerter.tex | 67 + programmieren/javascript/schleifen.tex | 20 + programmieren/javascript/standardobjekte.tex | 71 + programmieren/javascript/string_objekt.tex | 14 + programmieren/javascript/variablen.tex | 20 + programmieren/perl/perl.tex | 13 + programmieren/programmieren.tex | 13 + programmieren/tcltk/tcltk.tex | 42 + vorwort/vorwort.tex | 9 + 265 files changed, 46953 insertions(+) create mode 100644 .gitignore create mode 100644 Makefile create mode 100644 anhang/anhang.tex create mode 100644 anhang/glossar.tex create mode 100644 linux.dvi create mode 100644 linux.html create mode 100644 linux.pdf create mode 100644 linux.ps create mode 100644 linux.tex create mode 100644 linux.txt create mode 100644 linux/befehle/anhalten_des_systems_und_booten.tex create mode 100644 linux/befehle/anmelden_und_abmelden.tex create mode 100644 linux/befehle/arbeiten_im_und_am_Filesystem.tex create mode 100644 linux/befehle/auflisten.tex create mode 100644 linux/befehle/ausgeben.tex create mode 100644 linux/befehle/befehle.tex create mode 100644 linux/befehle/dateiendungen.tex create mode 100644 linux/befehle/dateinamen.tex create mode 100644 linux/befehle/datum_und_uhrzeit.tex create mode 100644 linux/befehle/der_texteditor_vi_vim.tex create mode 100644 linux/befehle/die_runlevel.tex create mode 100644 linux/befehle/disketten_festplatten.tex create mode 100644 linux/befehle/drucken.tex create mode 100644 linux/befehle/file_inhalt_bearbeiten.tex create mode 100644 linux/befehle/gnupg.tex create mode 100644 linux/befehle/im_netz.tex create mode 100644 linux/befehle/infos_ueber_files.tex create mode 100644 linux/befehle/kopieren_und_verschieben.tex create mode 100644 linux/befehle/loeschen.tex create mode 100644 linux/befehle/prozessbefehle.tex create mode 100644 linux/befehle/re_install_grub_with_live_cd.tex create mode 100644 linux/befehle/software_installieren.tex create mode 100644 linux/befehle/ssh.tex create mode 100644 linux/befehle/standartein_aus_gabe.tex create mode 100644 linux/befehle/suchen_in_dateien.tex create mode 100644 linux/befehle/suchen_nach_dateien.tex create mode 100644 linux/befehle/suse_linux.tex create mode 100644 linux/befehle/tar_verwaltet_dateiarchive.tex create mode 100644 linux/befehle/upstart.tex create mode 100644 linux/befehle/vergleichen_von_dateien.tex create mode 100644 linux/befehle/x11_grafik.tex create mode 100644 linux/befehle/zugriffsrechte_eigentuemer_gruppe.tex create mode 100644 linux/befehle/zur_orientierung_auf_einem_unix-rechner.tex create mode 100644 linux/dateien/dateibaum.tex create mode 100644 linux/dateien/dateien.tex create mode 100644 linux/dateien/dateisystemtypen_unter_linux.tex create mode 100644 linux/dateien/dev.tex create mode 100644 linux/dateien/fstab.tex create mode 100644 linux/dateien/group.tex create mode 100644 linux/dateien/hosts.tex create mode 100644 linux/dateien/inittab.tex create mode 100644 linux/dateien/passwd.tex create mode 100644 linux/linux.tex create mode 100644 linux/linux/kernel_und_module.tex create mode 100644 linux/linux/linux.tex create mode 100644 linux/linux/was_ist_linux.tex create mode 100644 linux/shells/bash_rechnen.tex create mode 100644 linux/shells/die_c-shell.tex create mode 100644 linux/shells/die_shells.tex create mode 100644 linux/shells/die_start-scripts.tex create mode 100644 linux/shells/shells.tex create mode 100644 linux/shells/tastenkombinationen.tex create mode 100644 linux_ind.html create mode 100644 linuxs.html create mode 100644 netzwerk/apache/access_control_list_file.tex create mode 100644 netzwerk/apache/anforderungen.tex create mode 100644 netzwerk/apache/anhang_syntax_ueberpruefen.tex create mode 100644 netzwerk/apache/apache.tex create mode 100644 netzwerk/apache/apache1.3.tex create mode 100644 netzwerk/apache/apache2.tex create mode 100644 netzwerk/apache/apache_starten.tex create mode 100644 netzwerk/apache/automatisch_starten_und_beenden.tex create mode 100644 netzwerk/apache/beenden.tex create mode 100644 netzwerk/apache/beenden_und_neustarten_einleitung.tex create mode 100644 netzwerk/apache/einleitung.tex create mode 100644 netzwerk/apache/erstellen_eines_ssl-zertifikats.tex create mode 100644 netzwerk/apache/favicon.tex create mode 100644 netzwerk/apache/fehler_waehrend_des_hochfahrens.tex create mode 100644 netzwerk/apache/gruppendatei.tex create mode 100644 netzwerk/apache/httpd_conf.tex create mode 100644 netzwerk/apache/neustarten.tex create mode 100644 netzwerk/apache/openssl.tex create mode 100644 netzwerk/apache/passwort-datei.tex create mode 100644 netzwerk/apache/pureftpd.tex create mode 100644 netzwerk/apache/testen.tex create mode 100644 netzwerk/apache/unterbrechungsfreier_neustart.tex create mode 100644 netzwerk/apache/upgrade.tex create mode 100644 netzwerk/apache/vorbereitungen.tex create mode 100644 netzwerk/apache/weitere_informationen.tex create mode 100644 netzwerk/apache/wie_der_apache_startet.tex create mode 100644 netzwerk/apache/zu_den_dateien.tex create mode 100644 netzwerk/mysql/anforderungen.tex create mode 100644 netzwerk/mysql/einleitung.tex create mode 100644 netzwerk/mysql/kompilieren_und_installieren.tex create mode 100644 netzwerk/mysql/mysql.tex create mode 100644 netzwerk/mysql/phpmyadmin.tex create mode 100644 netzwerk/mysql/testen.tex create mode 100644 netzwerk/mysql/vorbereitungen.tex create mode 100644 netzwerk/netzwerk.tex create mode 100644 netzwerk/php/anforderungen.tex create mode 100644 netzwerk/php/einleitung.tex create mode 100644 netzwerk/php/funktionen.tex create mode 100644 netzwerk/php/grundlagen.tex create mode 100644 netzwerk/php/installieren_php.tex create mode 100644 netzwerk/php/libraries_fuer_zusatzfunktionen.tex create mode 100644 netzwerk/php/php.tex create mode 100644 netzwerk/php/vorbereitungen.tex create mode 100644 netzwerk/squid/aufgaben.tex create mode 100644 netzwerk/squid/automatische_starten_von_squit.tex create mode 100644 netzwerk/squid/client_kommunikation.tex create mode 100644 netzwerk/squid/eigenschaften.tex create mode 100644 netzwerk/squid/einfacher_cache.tex create mode 100644 netzwerk/squid/kommunikation_zwischen_proxy_cache_servern.tex create mode 100644 netzwerk/squid/proxy.tex create mode 100644 netzwerk/squid/proxy_cache.tex create mode 100644 netzwerk/squid/squid.tex create mode 100644 netzwerk/squid/squid_conf.tex create mode 100644 netzwerk/squid/squiddateien.tex create mode 100644 netzwerk/squid/suse_linux.tex create mode 100644 netzwerk/squid/systemvoraussetzungen.tex create mode 100644 programme/latex.tex create mode 100644 programme/latex/latex.tex create mode 100644 programme/programme.tex create mode 100644 programme/vim/aufruf.tex create mode 100644 programme/vim/befehlsmodus/aufheben.tex create mode 100644 programme/vim/befehlsmodus/befehlsmodus.tex create mode 100644 programme/vim/befehlsmodus/bewegen.tex create mode 100644 programme/vim/befehlsmodus/einfuegen.tex create mode 100644 programme/vim/befehlsmodus/eingeben.tex create mode 100644 programme/vim/befehlsmodus/kopieren.tex create mode 100644 programme/vim/befehlsmodus/loeschen.tex create mode 100644 programme/vim/befehlsmodus/loeschen_und_eingeben.tex create mode 100644 programme/vim/befehlsmodus/markieren.tex create mode 100644 programme/vim/befehlsmodus/sonstige_kommandos.tex create mode 100644 programme/vim/befehlsmodus/suchen.tex create mode 100644 programme/vim/befehlsmodus/ueberschreiben.tex create mode 100644 programme/vim/befehlsmodus/verschieben.tex create mode 100644 programme/vim/befehlsmodus/wiederholen.tex create mode 100644 programme/vim/befehlsmodus/zusammenfuegen.tex create mode 100644 programme/vim/eingabemodus.tex create mode 100644 programme/vim/kommandomodus.tex create mode 100644 programme/vim/vim.tex create mode 100644 programmieren/bash/bash.tex create mode 100644 programmieren/bash/einleitung.tex create mode 100644 programmieren/bash/referenz.tex create mode 100644 programmieren/bash/steuer_und_sonderzeichen_der_bash.tex create mode 100644 programmieren/c/ascii.tex create mode 100644 programmieren/c/befehle_und_grundelemente.tex create mode 100644 programmieren/c/c.tex create mode 100644 programmieren/c/ctype.h.tex create mode 100644 programmieren/c/inkrementieren_und_dekrementieren.tex create mode 100644 programmieren/c/konstanten.tex create mode 100644 programmieren/c/kontrollstrukturen.tex create mode 100644 programmieren/c/operatoren_und_ausdruecke.tex create mode 100644 programmieren/c/stdio.h.tex create mode 100644 programmieren/c/steuersequenzen.tex create mode 100644 programmieren/c/string.h.tex create mode 100644 programmieren/c/variableninitialisierung.tex create mode 100644 programmieren/c/wertebereich_und_genauigkeit_elementarer_datentypen.tex create mode 100644 programmieren/cgi_perl/array_funktionen.tex create mode 100644 programmieren/cgi_perl/arrays.tex create mode 100644 programmieren/cgi_perl/cgi_perl.tex create mode 100644 programmieren/cgi_perl/einleitung.tex create mode 100644 programmieren/cgi_perl/if_bedingung.tex create mode 100644 programmieren/cgi_perl/if_else_bedingung.tex create mode 100644 programmieren/cgi_perl/if_elseif_bedingung.tex create mode 100644 programmieren/cgi_perl/rechen_funktionen.tex create mode 100644 programmieren/cgi_perl/rechenoperationen.tex create mode 100644 programmieren/cgi_perl/string_funktionen.tex create mode 100644 programmieren/cgi_perl/string_und_zahlenvergleichsoperratoren.tex create mode 100644 programmieren/cgi_perl/texte_und_strings.tex create mode 100644 programmieren/git/aenderung_an_einer_datei_rueckgaengig_machen.tex create mode 100644 programmieren/git/branch.tex create mode 100644 programmieren/git/commit.tex create mode 100644 programmieren/git/dateien_entfernen.tex create mode 100644 programmieren/git/dateien_ignorieren.tex create mode 100644 programmieren/git/dateien_verschieben.tex create mode 100644 programmieren/git/der_index.tex create mode 100644 programmieren/git/dokumentation.tex create mode 100644 programmieren/git/git.tex create mode 100644 programmieren/git/git_aliase.tex create mode 100644 programmieren/git/git_auf_dem_ssh-server_einrichten.tex create mode 100644 programmieren/git/git_auf_einen_server_bekommen.tex create mode 100644 programmieren/git/grundbegriffe.tex create mode 100644 programmieren/git/konfiguration.tex create mode 100644 programmieren/git/konfigurationen_ueber_umgebungsvariablen.tex create mode 100644 programmieren/git/mit_externen_repositorys_arbeiten.tex create mode 100644 programmieren/git/oeffentlicher_webserver-zugang.tex create mode 100644 programmieren/git/repository.tex create mode 100644 programmieren/git/tags.tex create mode 100644 programmieren/java/action_events.tex create mode 100644 programmieren/java/applets_in_eine_webseite_einbinden.tex create mode 100644 programmieren/java/arbeiten_mit_threads.tex create mode 100644 programmieren/java/arithmetische_zuweisungsoperatoren.tex create mode 100644 programmieren/java/arrays.tex create mode 100644 programmieren/java/ausnahmen.tex create mode 100644 programmieren/java/bedingungen_und_entscheidungen.tex create mode 100644 programmieren/java/das_erste_java_applet.tex create mode 100644 programmieren/java/das_paket_java_util.tex create mode 100644 programmieren/java/datentypen.tex create mode 100644 programmieren/java/dekrement_operator.tex create mode 100644 programmieren/java/die_anweisung_import.tex create mode 100644 programmieren/java/die_do_while_schleife.tex create mode 100644 programmieren/java/die_for_schleife.tex create mode 100644 programmieren/java/die_klasse_button.tex create mode 100644 programmieren/java/die_klasse_color.tex create mode 100644 programmieren/java/die_klasse_date.tex create mode 100644 programmieren/java/die_klasse_font.tex create mode 100644 programmieren/java/die_klasse_graphics.tex create mode 100644 programmieren/java/die_klasse_image.tex create mode 100644 programmieren/java/die_klasse_math.tex create mode 100644 programmieren/java/die_klasse_object.tex create mode 100644 programmieren/java/die_klasse_random.tex create mode 100644 programmieren/java/die_klasse_runtime.tex create mode 100644 programmieren/java/die_klasse_stack.tex create mode 100644 programmieren/java/die_klasse_string.tex create mode 100644 programmieren/java/die_klasse_stringbuffer.tex create mode 100644 programmieren/java/die_klasse_system.tex create mode 100644 programmieren/java/die_methoden_eines_applets.tex create mode 100644 programmieren/java/die_while_schleife.tex create mode 100644 programmieren/java/eigene_ausnahme_erzeugen.tex create mode 100644 programmieren/java/ein_applet_im_ueberblick.tex create mode 100644 programmieren/java/eventhandling.tex create mode 100644 programmieren/java/fallunterscheidung_mit_switch_case.tex create mode 100644 programmieren/java/funktion_von_java.tex create mode 100644 programmieren/java/if_else_bedingungen.tex create mode 100644 programmieren/java/inkrement_operator.tex create mode 100644 programmieren/java/java.tex create mode 100644 programmieren/java/klassen.tex create mode 100644 programmieren/java/kommentrare.tex create mode 100644 programmieren/java/konstruktoren_und_destruktoren.tex create mode 100644 programmieren/java/methoden_ueberladen.tex create mode 100644 programmieren/java/mouse_events.tex create mode 100644 programmieren/java/objekte.tex create mode 100644 programmieren/java/operratoren.tex create mode 100644 programmieren/java/pakete.tex create mode 100644 programmieren/java/parameter_an_ein_applet.tex create mode 100644 programmieren/java/schleife_mit_continue_wiederholen.tex create mode 100644 programmieren/java/schleifen_mit_break_verlassen.tex create mode 100644 programmieren/java/schnittstellen.tex create mode 100644 programmieren/java/sichtbarkeit_und_Zugriffsrechte_von_klassen_und_methoden.tex create mode 100644 programmieren/java/variablen.tex create mode 100644 programmieren/java/vererbung.tex create mode 100644 programmieren/java/verknuepfungsoperatoren.tex create mode 100644 programmieren/java/verschachtelte_bedingungen.tex create mode 100644 programmieren/java/weitere_wichtige_pakete.tex create mode 100644 programmieren/javascript/arrays.tex create mode 100644 programmieren/javascript/ausfuehren_bei_bestimmten_aktionen.tex create mode 100644 programmieren/javascript/bedingte_ausfuehrung.tex create mode 100644 programmieren/javascript/eigene_objekte.tex create mode 100644 programmieren/javascript/einbindung_in_den_body.tex create mode 100644 programmieren/javascript/einbindung_in_den_head.tex create mode 100644 programmieren/javascript/event_handler.tex create mode 100644 programmieren/javascript/funktionen.tex create mode 100644 programmieren/javascript/javascript.tex create mode 100644 programmieren/javascript/mathematische_operationen.tex create mode 100644 programmieren/javascript/reservierte_woerter.tex create mode 100644 programmieren/javascript/schleifen.tex create mode 100644 programmieren/javascript/standardobjekte.tex create mode 100644 programmieren/javascript/string_objekt.tex create mode 100644 programmieren/javascript/variablen.tex create mode 100644 programmieren/perl/perl.tex create mode 100644 programmieren/programmieren.tex create mode 100644 programmieren/tcltk/tcltk.tex create mode 100644 vorwort/vorwort.tex diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..30404ce --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +TODO \ No newline at end of file diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..7871c65 --- /dev/null +++ b/Makefile @@ -0,0 +1,46 @@ +# master: Makefile +# Makefile linux v0.19 +# 2025-02-15 (Rx) + +CLEAN = *.aux *.log *.toc *.4ct *.4tc *.idv *.lg *.tmp *.xref *.idx *.ilg *.ind *.out *.out.ps +CLEANUP = *.dvi *.pdf *.ps *.html *.css *.png *.txt +FILE_TEX = linux.tex +FILE_PDF = linux.pdf +FILE_DVI = linux.dvi +FILE_PS = linux.ps +FILE_TXT = linux.txt +PDF = pdflatex +DVI = latex +PS = dvips +#HTML = htlatex +#HTML = mk4ht.pl htlatex +HTML = pdftohtml +#TXT = catdvi -e 0 +TXT = ps2ascii +RM = rm + +all : pdf html dvi ps txt clean + +pdf : + ${PDF} ${FILE_TEX} + ${PDF} ${FILE_TEX} + +dvi : + ${DVI} ${FILE_TEX} + ${DVI} ${FILE_TEX} + +ps : dvi + ${PS} ${FILE_DVI} + +html : + # make faulty dvi, run first than dvi + ${HTML} ${FILE_PDF} + +txt : + ${TXT} ${FILE_PS} > ${FILE_TXT} + +cleanup : + ${RM} ${CLEANUP} ${CLEAN} + +clean : + ${RM} ${CLEAN} diff --git a/anhang/anhang.tex b/anhang/anhang.tex new file mode 100644 index 0000000..3b2ee5f --- /dev/null +++ b/anhang/anhang.tex @@ -0,0 +1,7 @@ +% master: anhang.tex +% Befehle v0.2 +% 2011-05-31 (Rx) + +\part{Anhang} +\input{anhang/glossar} + diff --git a/anhang/glossar.tex b/anhang/glossar.tex new file mode 100644 index 0000000..5f16475 --- /dev/null +++ b/anhang/glossar.tex @@ -0,0 +1,106 @@ +% master: glossar.tex +% Glossar v0.4 +% 2011-05-31 (Rx) + +\chapter{Glossar} + +\begin{description} + +\item[Abhängigkeiten] { + Ein von rpm verwendetes System, um die Verwaltung installierter Software + zu vereinfachen. Jedes Paket enthält ein Skript, das dem lokalen rpm + mitteilt, welche anderen Pakete es zur Ausführung benötigt. Sind die + erforderlichen Pakete nicht installiert, wird die Installation + abgebrochen. Gleiches gilt für die Deinstallation. +} +\item[Andere, others] { + In UNIX die Gruppe der Benutzer, die weder Eigetümer einer Datei sind, + noch zur Besitzergruppe gehören. Es ist generell eine gute Idee, die + Rechte dieser Gruppe so restriktiv wie möglich zu handhaben. + Siehe auch Besitzergruppe. +} +\item[alias] { + Ein Shell-Mechanismus, um eine Zeichenkette durch einen anderen zu + ersetzen, bevor ein Kommando ausgeführt wird. Einen Überblick über alle + definierten Aliasse erhalten Sie mit dem Kommando alias. +} +\item[Anzeigehilfe] { + Programm zum Anzeigen einer (Text-) Datei. Es bietet die Möglichkeit + einfach vorwärts und rückwärts durch das Dokument zu navigieren sowie + Zeichenketten zu suchen. Wir empfehlen Ihnen das Programm less zu + verwenden (u.a. da es die selben Tastaturkürzel wie vim verwendet). +} +\item[APM] { + Advanced Power Management (''Fortgeschrittenes Energiemanagement''). Wird + von einigen BIOSsen dazu benutzt, die Maschine nach einer Periode von + Inaktivität in einen energiesparenden Ruhezustand zu bringen. Auf + Laptops ist APM auch dafür zuständig, Informationen über den + Batteriestatus bzw. die verbleibende Arbeitszeit bereit zu stellen. +} +\item[Arbeitsfläche] { + Wenn Sie das X-Windows-System verwenden, ist die Arbeitsfläche der teil + des Bildschirmes, auf dem Sie arbeiten und auf dem Ihre Symbole und + Fenster dargestellt werden. Manschmal wird auch lachs vom ''Hitergrund'' + gesprochen. Siehe auch: virtuelle Arbeitsfläche. +} +\item[ARP] { + Address Resolution Protocol. (''Protokoll zur Adress-Auflösungs''). Das + Protokoll um IP-Adressen dynamisch in physikalische (Hardware-)Adressen + umzuwandeln. Nur möglich auf direkt verbundenen Netzwerken im Hardware- + Broadcasting. +} +\item[ASCII] { + Abkürzung für American Standart Code for Information Interchange. Es + handelt sich um den meistvervwendeten 7-Bit-Kode zur Darstellung von + Ziffern, Buchstaben und Sonderzeichen. Der ASCII-Code ist mittlerweile + per ''normativer Kraft des Faktischen'' durch den ISO Standart 8859-1 + abgelöst (Siehe ISO 8859). +} +\item[Assembler] { + Maschinensprache. Vorstufe des Objekt-Kodes. Programme werden meist in + sogenannten Hochsprachen (wie C) geschrieben, die dann per Kompilation + in Assembler umgewandelt werden. +} +\item[ATAPI] { + eine Familie von CD-ROM-Laufwerken, die an den IDE-Controller + angeschlossen werden. Es gibt auch SCSI-Laufwerke, die am SCSI-Controler + betrieben werden, sowie proprietäre Laufwerke, die ihren eigenen + Controller benutzen oder an die Soundkarte angeschlossen werden. +} +\item[atomar] { + Eine Gruppe von Operationen, die nicht weiter aufgeteilt werden kann. +} +\item[ausführlicher Modus] { + Befehle produzieren im ausführlichen Modus Zusatzinformationen, die auf + die Standardausgabe oder Standart-Fehlerausgabe ausgegeben werden. + Einige Programme bieten die Möglichkeit einzustellen wie ''redselig'' sie + sein sollen. +} +\item[HTTP] { + HyperText Transfer Protokoll(Hypertext-Übertragungsprotokoll). Ist ein + Protokoll zur Übertragung von Daten über ein Netzwerk. Es wird + hauptsächlich eingesetzt, um Webseiten aus dem World Wide Web (WWW) + in einen Webbrowser zu laden. +} +\item[URL] { + Uniform Resource Locator (Einheitlicher Quellenanzeiger). Bezeichnet man + eine Unterart von Uniform Resource Identifiern (URIs). URLs + identifizieren und lokalisieren eine Ressource über die zu verwendende + Zugriffsmethode (z. B. das verwendete Netzwerkprotokoll wie HTTP oder + FTP) und den Ort (engl. location) der Ressource in Computernetzwerken. + Im allgemeinen Sprachgebrauch werden sie auch als Internetadresse + bezeichnet, wobei damit (der umgangssprachlich häufigen Gleichsetzung + von Internet und WWW folgend) meist speziell URLs von Webseiten gemeint + sind. +} +\item[USV] { + Unterbrechungsfreie Stromversorgung. Sehr großer Akku (aufladbare + Baterie) der bei einem Stromausfall den Rechner mit Strom versorgt. +} +\item[WWW] { + World Wide Web(Weltweites Netz). Ist ein über das Internet abrufbares + Hypertext-System, bestehend aus elektronischen Dokumenten, die durch + Hyperlinks miteinander verknüpft sind. +} + +\end{description} diff --git a/linux.dvi b/linux.dvi new file mode 100644 index 0000000000000000000000000000000000000000..685129448b0b7b82bc71b452ffc724df014eb686 GIT binary patch literal 557064 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
Gi?QF>S%R&Iw23>6cwPmf>{Kx zOV$MJLs!iyfYVW(FBbybbj#u2%Tp16sZb0$M!>j_`x1dz$W5A+?W!Q3hMo^MbPEtM zWJ#eNg2{!dfC}TUQc&a@+iEmj|9qoNw@dPL6#EKPo~~UaO**9xCPKTNt}q=Zr=${SfMY!<2E7^NKk6QcjyX zqR->KVrMoTF|J zBE_64DDc;ox3m6HcA2+BkxV8{a|)+E%XOXB;9=UQDg&fx3W3o_)xQtO(Why3vj9(3 zm7-;jpy0f!)sa&O1aJ!PN7Fhmrpb;CJ9xfpIa5$MKfx?5P0EKPF=3WP0kphZqAkz$ zU5H*v;FClz$tws{^ioqpZwM#Yg^>Cx1|k#W=r96w2|*Q2Knojh|0 zmyV^<0@Y%S{pHUP9X$4S4*#J;3YN;;_?75HvgfQj0a-3~B6v8=gJ9#6U2y6P&OlK} z=3th?E2abs7%dfST1H9*Y&9P5p}<`*JuAidS%%MsQk4Uzr$NNP(MS(Da5~yUi(4)T z?NFKQ$htZqIdOEAa!j|LnKL3yK&PHELjwxQ1(wbzTz?-~F{Y5gQ)zU4g-S&cWz$ij zcpO*GbY$rg6Qs>EpK-WY=YmKT$eqY{SJ;wnXOz5#W~KnHnz8MftUSEkR=#un!`m_k zK@#5H1zZIxyuC|4B#wkg73bT_%}IR?lBz0jsAbBQvBqO_Cgq6J*B+@V+&4W-9vN}A zqZ|RDF?3MZ5c$$1nU0Ahq0p>J+s-SXOQP>SfbNZ=`<^J%GU!lsv!Oa3Mb8o}0pTPY zTpb(O!;#H63%wJ~W#PO}B zjd%0rXk@c9CYG?u1~8YD(g>F?wX zm8#RxlBSV51Yk!V&h3GQV=!w@R(%krj`%}W9pkSIPko{@Jp~3ZZRVWL9E;?0pjopf z6`riFBiBg4K*C6m?R!s^pN$qtw-UPS9av(y@?4R;29oEFluca!sz>+A3mr7fRY> zK@(rO)fAddN7#I>o3kCGteiX6miS+P?8(GG&weGbIcFIMmit z>5fXQ1k)8ywBd?7wTjV^ZG%vGUlf7aS_j8u$MV*^fpNX^@-PkiLzYv>H=WD9Rx6vG z+Fs|)lx841wa4xfz}hscr%37 zI^R{FpMvn>SpdC8$TpdF6OCjg1#1zb4UJk~b=*RWK?Ir(h@}WWkiCQvbn|HD@|A z)wgP{G4;j92l~CS#*e-A`Ntn!_|ZpBq;rLmaSxhLYO}qlYVEDs7a#hst_^oQdDHJ+ z`ug^LH266DTFCgdiJQLp&|=qyt|#7zhtB05>iPg~(9Z^Aa$+{#*Vp$(-!psv^^uk9 z&ZJf5>oMcgpZ(3%*Byti_dams=B1VEDB%#-qqqM2OD}YNIG5ueyx*RU_xJa`v2*h3 zEuZY#`u!39;p>V1J$v5x#OQO0-|6}}tc8AX-75F(#(M7h{eQdvyQ|-Cm-xFqU7-iJ zbZx}5^dsJ%!1KR+XXJyQS^ZtCpT7G`|C#vb4|RR?>I3{EzT3CE|Ba7-b?(k5uY14P ahsehG55Kbdy4Z&wcWwBsE1`c9|NJ+Zt4&-0 literal 0 HcmV?d00001 diff --git a/linux.html b/linux.html new file mode 100644 index 0000000..d6fc5ef --- /dev/null +++ b/linux.html @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/linux.pdf b/linux.pdf new file mode 100644 index 0000000000000000000000000000000000000000..6ac64ac9aff5923d84abcbffad237841f3cc417a GIT binary patch literal 484740 zcmcG#bF8pWvn{x7+qP{R@3w8*wr$(CZQHiJ_q*-+ojYgloXq!S?wQO?r~jx_@^qfA zPOq$9RYfW(s>goz!(-h6!7wr(tTrn`^z8(e^`6oYtwAt@j=V+sCHBoN5mm-y1HofO1K ztM1Sud9Lnxtjz;{DKp3eFoQ)Ob8)OWcJYw(8BHO-Eq6mhl-}CwoK!ur+O~SaKEzW{rbMP`PO;y zt<@h8!^?GA@Y_R~*c$)mR{pX6BMgkp{~8aD|BMC!!T&lQzySXYz<;wY`@gQs#Lo8L zj-B>#g^uJ3QF6l*Ikc6s6>-u2>iCFYhDfPm zStLSLuEzuQ>tfKtVH%^|~?ldjx(pg<|Jd?VW{bVlKV- z;)hK%4~VHyV6(?AwLTVD!(CiRHB?KlJA$;$3_ z7Zw$Y)P@*Ln$RKAn1#xLkaVI|XUZVcoA1a;d2H3l_^?yjnYCUi_WR@OkifHGi-w4x zPJ&s&X~HzT&ocvJbZ#UC-Ta4A?0IdbUWPd`ge-h8hafdRTfXPj15+WAVt6PBQXCYVsL zWe1)6!{oMd3G5gR{a}A{TYpVPmjBWpt1mqXWIN9>*QJT_Y1Ab-E%=z4v+3;&%w+zN zWzyj1S62K^3%)cPi!zg)%t=#|HRIP4SZ6tqWGq2i5A|n(=XseR&K79qJS^-=@>YyU zS-X!Vtg9fSY5Q5{Bxdu{h~e~1G7`UcwWUna$Knk|=hi3EhNs7r#jtqFD`p>+jQ9~z zvollB?l3Vy4!p8rzB)g}>m?+AiyBfjcp0t0mBc@BYc?VbjW#Uxw+H)It?N3yv)!Od z5Yssbm*bNrY4U|(r%r0%Lf@Kdqh8CcOfF`3LmQ1@MrqVd?u7)=nPD4 z0N2x*Sm_i$HB{>}3bk2c8?I5fQy#2A&!Fv2WMU%_JmDdl(xPrU^0%v`y0j?#V0bY3 zB47%OTBt`*z1jd0+E>J3py;=qw+4)^mzzQC@QQfQXxIt^9DxqDcc}|nI!Y6T3$?;t z9!fIXlT7ELqz;#ufioyGGVKC`36_REBb)6Wv-$qsyDt=CHD#h6+G)SN0abm z?@V{Fzc}j7e%-jTQDZcEKx?%4I1;>DN5kJ)1>vZXm)w>>)WFq#z3lZ7!`#-C!_zC- z0p}6!8!jjC>fPl+YCHC*z(-Dg0X+Og>S)L|=OfPMjjT#lx}wiiSE5jx!71+piuywp z;t@lp=jL#x}#9Je2K00_jTl6eBf*SM1gXhD;8QwaDWt#7^3zot8SX z%HnvcU4ouI89vGs(BgmaI@)nwnePpr8umDp=W5ON4#HcvwFWrmnrtcjs3s=l%_a`; z3L^0{7!c0e#Vc+gler@jJ-l@w_Hrl`;^I3eGGwKpC|hu%^Z$jG^z_*PXPdhXX@znR|h^z)h(!fb+ zv2|hD?v3+TBy3h-_<|3V!U2{PFY)@^68V_~X$`5B?zGL?n40>BoTsR$2B{Ooro|M- zh5`kEzG=E=;ytq2YketE+Pq*G=pD_iDwFX?)GZ8j?9f=&IuqXBNoiNl_8=S>Rh(XW zxhNYXAxXO!Cp zcN!NZJzYww051`8X{XpkA3x8r3kADwfaXs>78z!!%uF_Ph!>pHSjKSALTwt0NQB1U ztK)N%cGqvNDo9$)t99=@7>(3BH$l^e5OM)p9 zKa?a(7M?((ETu>Cp`jHg!7IcJ)<~Tq@r}%qg~b*H0n^dc4~-dXJQYL$e^Q{DwZ-am`a|S0QX{UAWkk#(HSdE zW`u|QVvaU{bWf7Fo3bd(73-T+`+PidwDo(OZarH6EHzeSucrJ%ZEXA7pnOr99V9c~ z8;b$;yOh@l{mTYEvO0))tXAU{IAt+m}{X~11oCJFJ@$VYhVs7t`M$sR$7t{nDW0B~+lmCAqcsXoqjS2VC^!^CQXIfCPkd&5Kch25ofOVTq`I{Um* z>gL*=|i*h3oUJ)6UzAz2=Ufls@aLdWI0d(*47=2!gXu1RL4&n*{NOn?d6)@l z9#i_8B^RA5SBM0D4mNl7OV-*=ZGbt6fAo|OVqPQ82-5BhaYHGCTLc7KA7MqWfI|PJ zIU~ZOWCyFNEX}QwDq{+LodlV@A9Z0i#avD*iibL8gM;9VtOU;e9FJ$JdY)`YG&(!O zzc61%z#1Meg~~>lkrVrn!+3L2)W2-Kcpf1)|%SS0oz z98Y~P5be8DW^PuNr(%MmLRllFm~1vMK@-gcQk&;`!rRAo$v-|Chqkf)UQD2><2;w| zbpc#whTaq(^p$0yzdx&v2QD)_+)E0I$OuQ%)9*d6(WS9svdn*^m$Em@8Ij?nuBjR3 zC-;}Nk)Vphz@e~gP>Jgu8f`YSb zSh{F$F&YH@U!h5f;`Ldxh4-)bSn7avn?QL8pHSZ)z3_3kgsDR-1WmCL6%EzrNn>-t z3dnXj_?CwC)FAjWoe=R-dtGd7tR!3jlhbG$eukVg`L!FhU~{@drYrh7m!C zgSkH~>AYkn@7=@JfZmJS7=uGwolta)mfw}TjXvyl2PQbARU4-`a)#g4{VXiPsqVyV~C5po@5>XB^G{*7$F z_$00nj}&g!L(8XzF10r?z%xJ1vP;n@Rl&=Dcm1Nw;VoG=V<=!S4#-uf(^sRTyHZi8 zyLTYiQ%G@_^u@5b(pO`yUApG8;Qqd;KO3=ck1|d+jdMAn>#Bo|Rhk0hz|I{qAA;}F zbTCmh?V%h)aF?3m+E}+bAdu$;K|0IDL>~3jiUPjr^p=KLLL&NPh~eG4a2U`rRwuZ% zAJD>ybTse^b1_&1WQx3$3}6V4)P?S3nrkJ>{2V<>9{`CWs5jC+KPkxKhLi6+?SBDd zV_)7_%)t?hR{cv$&&7XQgY$~Ud#IE$tP5U@9#o&D4zH%pz&OIOKei}H5BP1{rtHJ@ z=T*J#8ASnOp72)wO);(Yc}7*0#We#FgjdaPgwfBXE`)4E*b=I3S}E~M_c2#&)#uV# z?&K^E7byQ3r752S?JL<;K)(Q6UKf(l2PZUG9~Z9eIiHQHf=nAbu4sUp5#`F; z=sGH(LS)>}o!*n~SVN=ab@T?FAAUDI6&C3U#xWnq<7R=}UsnX@gRNCg_c)6O+d9cj zD!{#Iq(Q^veR5R&nr$>D+j^uj!0@npPs@d6^5BN<@!$%(R)XfKSGG(u=awu3Ttfe` z4AmozqYa0dK31^4fGJDXpnx zKsEI#2yYI-&loM)mRIpxUp&ZJZ&tEo< zlqn>V6dpvj6=Z*NSr`%d$ZJz2l9XlI^HKE3RlL^{EjShARyh(#&7`L%ydHai6eUmN^q@!B`?TtBP^{Xr3&eI5gY&+<@HxHMFiRapz1RK9pc01 z2zI6c5Zln?fRK!zQAj}MQAw6z*Be;-nOi+&ppbCO=GT$LN72BHN6;z~?1l@WF_t?IpN$L2m0Quaj9>~ z0h|CCtR}D_+_vYl$nUF>WLLZ@w+F5i6;=96getIlO9v}di;z(zThQ&1qAfs&%hfHX z_bJtvibqqRJS4Vv6(8x|%F0&l@d^_?2TTI1xdrV(P|t-Ni4vDvM)72Jgw^9c>R>?z zmUn^W%*81I!`b9HxJ2;u?U8K=Xe9in1Q1y`VwW^|5v6%_jr7W~($>*gMhx}j8}sM3 zfC=;Vd2^BXtj)RH{}k}xWRpaEvbzd`EzDpY3uFi>hAQ)qJ7Gq)zRze^>ui7yknuY>%3i^xYg-;`+ggB zQnc&uFbThAD%yU(Ln_HN57?e6~WGAC{Gv#fto zmW7h+=7u((irw+Q@>X+GTyay}EXjW;9DEs`)uqCHnY^Ps+;blu$RWemA;c~DB(M4b zPd=KdsjU&XAv#dW|J~paQ=KS;ZaoRPN7325x_4U3a9ycpD zx0n5!dj4?qm^bUk=jVVpM>`kvOHbG^Z-j z@8ywn@mf$yO{g%_XhM}~C0Y*3*7U(B@24I&sX2kTOe212l*8nh^J@5UFfwxkyx)+z z(ngWDmD;_0{a1m`L>H{G1*c(cxk>DgU22QCC#cfxkFI>3!%@{$)ikt+3%K-t;=xk8 zxmY90hMs#muKHDbNHJ}bINKxys=iuXht>YD%O^lB``!=CrciDVsM`Lk*D@-rc!a^S zlM**jtQvKnP)O1FDigA^OJ2OG}nK?IX#N-9IPY_RJ_jlF=ADg#Kx zuw9q|2qaN}HARH}SN)ZfddskTc|$GnaWvz8+QlDSbsJ8axOoWmd(DDZpss2kcvU^P zse6RufP`}hXK5bC6<&4a)FUC&CFu2#IZ#2ZXs4YO56xSmV6RkL^?)j1bW84qo%MDe zC`ikgSj~h4!c@Szzj&1=f)qTe!jzH{dD1Mh2l`idR5~$Gx`b`3$ed<^9W>*mK5D^J zJ3Q>=NQs`I6ttT2{u8}bf2Y2Ah_P1D+Wq0NLO&K<;8z^k=j`tml*)D$3M38f%6~23 z*BtrhEFst<6!fs!`$aO9Tn%VnA8E>8ixOaY7<=VsR$ufV{`o38I$xv$(3Nn+z@WOT zJ+;e&4p*qcUR~ZbSll!ad_Ab8cOK5>b^aq1g#JwhYdQL*$*fn+!Y_la8^;Ff_n%8+ z3#H|l^Gi+I_N&&E{i%3HW_;adC$ftS?-hjV%Cmn=8b9Qw`nGJ7^B@n^-+3J5nMbh z<$Epo>T^F;|6aV4L~nooj(LFGCw`G8FaY9zdnIP(_^@Qxrzr@B$VHiU9HG z6rkv1N~CKT93$Wl=jjXS{U;B+F%Q#X@i+xFmBg84TMihXRtC z2U~1W13ZqRx2>2GpB@&_)OlXXI9ruJItGw8;kD1;_e6~3)e=8OR0QELU=5mAVe`EH z=n<<}Qiv7FQG>FOsq^m$ozJ==3J$ErHi|~Rx&dgd^UwddIJ1FFR@}qjctko1alsZ| z|2j}!ZGaiHBGFe5>M8uuH9+|GpA=+W!w%+}cFA%U<6aJE^=@x-f#2~Ak`L*?QV$EH z3pE~R>p3U1hu4P>oY$Y{5LUK9s20n26X;&wR%Q&SPvOc7u75Lg+a)T|2Smg@fBHM13HF5H+NWu)P76j^Z&g5{@?CE3z>=;6Ap%nC$@Hj#(!${M-;BLng=#$S%g#R`yf+fGHSo=`SC6zLv z@rfn{CcU#rs|!Ol8i%rpdtz)yW!P}FuaRRpTmg8M=v6qi*cUOB=yHM1=k?!;OG|8f z5nnF;zMp34f9Oe|ycpO^`eK2MN%MN%$vB%kE9`q8V>-#vn~KKVU3e#t+Q#-@{0f11 z?s9?q{lNKo=KQ*HdRsfYubVsA!^v69&RN9C{rmrBqCn3bQ2v*BL6-3gs6MZ^^{*V3 znUU?ku-N}2$;in5pIOHL_2c?RbI&b{4Z~+n??Bw$zYrh7!tMgAZf9|Z+jY&U^Evb!L?=Hrpn5dpSd17Wj>3CDCG~ExdgIKk7F}#S;L`x1JD48_ zoYo*wTQtr99NX15VH4%mq;+bMY9_!;D90yvoE-$DI?LS*Kje7Z{-3vx08b5UbyX1K zsrG4Bq0}POq_9vl1Fu=nLi_GI!OzgiFlD9Ino^UZ9Bc$H$x`KW?)I?%Z_RT3c0IK!inYxLB>of_<8cehQ-*stK3!Ad=;ZOC(6%gDwMk6EekVSzwysCgBAZ^$0k~`bNuR)iux%aacbF z0~lObZ=>;f@T+i@urf|7#I4-GPlC0Fwh$#-lPZVAW5%H*HP2aXAyAr`@iN^ZpddU4 zBp$2+z>Z+Lv|!zvk>W8LeQb&pDIcisR-J7~iwJoZQ-=c$v~DEoYPWYT2(o19dzwUn zM^g2()>Z+9`kgVJ*$`J-_>LF7F-+zc%WbDIolC8D?g5S!>?)a)6Upzokr{{*b`i zkf`Y!1ViY~v)Sg6ef{Br@8Y|+usck*4EZ>e+3v?l>m6SwF~_JyTQvbX@%ucr(iGew zY5UB*@xXbI)EIF}8R(pp58Y$&#AbO|6YUMS)Hm!*BIPh05(|-@81<}Kt#|2id~cYy zX`*ud7DvD0X12$GQE@>3 zeVqkw`wqa{UQ*`w=2Oq+*}3D?d$vyt4lF78knaeH#RU#eUd79nUgm`~8^#8X>TcNI zwu(gfLIms2cOdARmNHer32nl`bq5*%F)BsCGCyVW{_~&+)_2S|Rpx+3XM%p7<&)a% zeJ*xEvrA`814ZdH+~#XwD*m%)jJok5&aNwsDBABhRm-K`*{-Sc1#H;yMES2E$HMUM zvcyab?El@T_>Ja-*>E-bXs2Ougd2(q})k$;-)j|3U(*QEzLD9%H`%`P@ z)S8YLzCwg^)5?jB2(ze+dY$Df{e z4sC zT3`~794Gc!#!HkKMp7n<=w8q~jdVXMwMB*Ux6dI6Xi|F8)8R`-2;z1#mw>ItS`!3&F5GLe`CAyUlp6dl!p4ZJQr@d`{Vcd`{N8(F3MW2WS9Vst zbg53D=QLOweVG8}=jL`QyV(2cBiSb*}l6 zS#$DPhfiNwBC_d#wG1r~XAy@j9`3)9D=#KJ#4#t8``4N>7!t`SRs&GGVc}a{Wv>=C1C>fu#RqF$<*D4NAqR;Eyn8&&3Ic zHzWxYbD4x|vSPEb5|i=saKTE&3Z$66o*hWe{zHsxT-oCdQ>gzt7g)u}dN$@$3LgN| z*gY6$>vXu)J}%t8J`ryFg;2H}r({gkXt9q32Dk?EIQdOD%$mc~h-~OoK1EgE7BYv+ zR!Y0kFi_cUnyn_P(axOZEl!T~px0W^zyLng*YtyvBC5i^+d`R%w-SlW118Gw!M}wV ztFae0+Z3qL(*w8MDff8am$3*JigGX~?HL;;?bEJiTE|UKkQ+TdVLQz?5bfS13|L}~ z7L=2a&3SB1n3JuS^94y)zy5CuotT(e{tMarzmY6Cnb`kN$&!Pa`M-;kJz82;xD$xJ z{C$P^NojmLE*H=cL!L270zjrW@lgvwYt%?dqM9U_Y`=VaYh|Qk1|=CZPk>pNGZ_`{ zrJc7cDYPLdj$?jx9H;pk_R0FJN96?&bz0>yYrM`bIMU-5+Wm2bJQjpjkHWXO#myj+ z`5KxdkPxgk9EiJS918>*pyY4DSU*yD!=tD?7e`RJ)dJ*@a;>`XiJtSv?nGtziB9`| zD}m&VATEfCu$q=*5ui4~3B2Za-Ug7VxFAljrNxrWjBm6zw&ymX z|3tbSXTF2%CSdPd79NwzpDLPS7D7W7u(SpVi8ONDs>%ZyoE6?jh#eG!2a%&is|Q2Z zAQZqD9Qp|4!yU-)Pqc$jkt%gJXllp61Wba{w$C*RQUx$#_en#?XL9BNC{mMq4F5xn zpy&>KBTWlZNw$kpD#aC)sj?sKLZXesc<|}y;Ktm3e=ewS`Z{`hJNR+-e1Cp?zrM%h z)_%Eg^mey@>|H*6&+ktjPPU?=j<$~S;`|`rN1~4I;`}&#KlzT@oIN;v-JT!#y1~1O z0Hjc3Rw!riqNt0f3$@04_JX6L?7gvL`?@^bkYnox?QZ$}{KCTcceKT$STF5{qR_#= zw7}`CXy)6t9fMDSt3|3@;5oG5=}yl1qUC5Z^p%>Az53rB?dypV!ARJdszVmFlv{Y$ zCq1oEr-YlbSWL0{RNZ~x+dE;jfrIqHr4rU*u(W7P|5Ur%_zB_S1+(HPs}23N9ST2LGzzMspPwL)Stq8^g0otuZ6Dn{ zj{#sF^1T3~(W?oyRp%LnAqA8bT|Sea`iiRe{jm4yldr}@kR1GAw2j+9D4=>%-E49# zpwZ*u7~~_$29p6PhuKIxgB8}W!>C3NXA@Eg>SRtGTj>R~?9iw;b)KH~Fcb<}x32Q%@fx&beGOtY2?1Q zNah4%DL}UKs;_}BqlJ7Mj+DfGfu&>~yle#5)`63?IAfwF(%zbd`ZH~jR@wTzkDz0` z8jjR$=Hy?)ctNLfb2WfkeqP=_0vDq~Lez7t1IAGUKK2z9f|Ji|79fJbcPrGk%U^DC z549ONyl4=)f}FiU=Q4AJ8w@pAFpFe@#U_eska)AW*1aoC@i%d_vFe#)vQl1~WT0!F zRt_3vBcfhiG|$q;A9Os%+@j|UshAv93@)O+J{dgfx>H!q#-N@B8KmL~j3$~%SU-b( zWI1;ZAyrLd7#c-6p3uFzT0QNf*&%DY(riCPV%o%+#?WXBa6`H3!`ZW}3elu}YOt|^ zh>JwXn0DrPW94(wt{3V~luN=7J=X7gYY+IM6wgw0v;5%WF^*rCZ~Nop^urgy$EMos z^P*slW}__337(;<%xS8CXIr>K5!26q{bA;2W~@!^Ez;im@zRB(x9j7bPuq8EL8$&ftEI+qpM&KAP3Q{%|Ht zD;@xVcZW}PACBH^E+l^45p#^{vHa2e@%)kFt`7dS&4Y(AJ|}gFaqg&ijjV_5qD8V! z#?xleDoHo%>7#g!yoc}NS+Y*f(`WH2NjL95TyjtAZXCFeJd-?^JexcpJgFYlkL#xn zi&IIud<$LLM#2e!EDK{|BDb`e%M0P|M2NoePa%RBhZ&jxP++@Mw1RO6-3$Klf4vzS z>Zbk4YX=!Rn?ynBZRXFGjqJ4A(MH*35J`^}ChszC_>M^sh624SY|~%?Y)F^z`U!*S zu0e>+O@Q0>xg2MC_hng1FjPH3kW2an(e{96SA&+g zpuPixCk!g1TF!0IIrQLVF2<2L!RIZUx!& zJh)Vou~SsIKMjK^2NhiXgJ+(+Azhb;#Q5UYcm3*Cd-6-n_tEz4zXgpNW4@TGm2Eb; z8<@+>7#%4|?5xD=IHY$#ZMrfspjts>^*=`g`e9wGyz8r06{yFI+j9`KtY+Xf!-rk{ zHRzl{K2ECb8;PQxcFylD|J-R^8A4N|-*5@+5jgA-lfC(+=Y}lG&vlPu=xqyg2_UUq zMD-6$CV?q^RqVypapqe`k4Z`%AT4|)O(s|FFdJc*v6xl`@31B+vwEBGnEe&6`BbAo z;TDmac;5ZhEw&o_$Zg@u`(i5K>f4C8NzCZ1!FJN{EUe*a7k`;X=xxuVQe9#z*ULXS zW3gN5F6iygVj{2>ra&A63+tRkf!71A@)~9nF)PHjcBUyB?TlDp@V&nqnOl>mhb%Uk z^|>D<=cNoTlDYJ@C(dA5(&F>q(krmC(7VmHfLeCk#RHqG^d@Zy0I4(ULF=>nt|g5N z7jZ7^0q-+4*FtV!y91WT(}UR8v}UC7Krc7AP{2E$LsK)B*=+lfQn)U~M4$aN?A?Xi zZX>xw*N|hpFbX9bbk4oooep}w_+I-1%%M_=hL305P#!&q2WW+p4mlP(>x)hvy{{9v zyuV8;N5%_AYIfd^KfjxvzbliUi-(^nJKWqZ*}a#$Ihl%myWg6wou# zm|dGBe`9zXwB;N77!5u5&BR#jh0e(~F@_iw*5B^BvM?^c zG0Mp`Glj?;@5rWM!iu5#R5!Z{3tg8u-oK`(t)HVC4$`SS>)jnfRYBo>C4*cN1R zwmzhz{xpFDiuY{fis96tv!4pDVjo=YL@i|MeTTChV?k`sF$944N$PwsZYw$lpm2e$ zNOmU$hjDQZ+h%Qh5kzj$QlcI?p?NLl8jkzfmGM z{!Om|BMZZSwlVy#<<=9;4cj9&6ra4h`=V%p*mlWd9+YvmiY!6wWn1Xtiy)*WHbf0e zN(-);wO7Z4?%_#iLGINz(o_`1Q%*PT?x**snG0?yFhdeU9Qe{lz(Vig1PqesSd1|7 zrh&Nu4!u$h6<-WPJc)0bl_Lc50VcJR`?L%8vb*sYY_UK%q3q~(eOo>rA!8O8%94Q& zStoYfTVj-cBQ(*mS3!Fef?$|{AaevFo=6bAB~f0TwaUPTU@)@`DQQj^qtVz%(x<=@ z;~Ata6Uv&i(?Af#6DGGbygL(pwS(GPT^m ziM0bd*#3C7fN4Uc1342836Klu%i*G4a*p0Oh=7wIm8xlBM+(XNrT8Fbo@Cm$`&!-N zcS8&)$MqL79oac-uPd%ROfxWb=o%Wx(U=EBV~|T|_$>+^10|1piqV*|bQnT&dk0Sk zN1&vl^z`N|=d~JIej{SzGvSRyr;h1jXx#lBk2KbR>0(I&worm#PsJsixQX3+L*i=# zIVufloyk4R4F0ZQsi1dW$?~|mCOh(@du@}Z#gUvvYB|Mou;@o^%XoPB+f^}x13ea8 z$8lkNo67;nZ*pnbO;Y5(V$DqDP=Yd_OS7GwUHUe6{Du4Tze%#rN^+Dr=oT-dzYWRrTuwiTo zZJfw5PGf_xllIrPJ8!-<3zc(I{3eZZ)6Hdl=!IK@eo>G!-bjwWnZS=NzGcB<-sT8WBGjuN%1sz67Ez zC#i3mt+qE+Dnpj(Z6pns)egR(u8RYFD)=yvvv>=bPh>PFL<>@;RCq09Z3lO1N3815 zdePz@$#2-+2#S-pX~#&~lV<>I!7xtDz#&~3Bs9Vd6pp?Z3s+(^|fYI~NSnEKVplw)3%We{wKBK?sfkHzqSJQ}~RT)H*7aGb@m$%}|d9 z$hZ5Z`ZsM5UtqS^m9x|8c`ZJ>vPs34!1^DokdSR-s)pkiYnQ&>H$-fpD*PW+!}$XLQ@N?{z9w zPG6tJwZ(O1j7?DY&<$yAQPt}(J7v}vX^^$!|AzPj?z$rOrpf#?ZXx=$ z*2r)&_lS9cUqnGIs~z1%p*Pwh0xB0VN}Jg&75dakNojy%CZrQ`w35sHyNdYZF8vV5vlh1Qp49YU}mh=liyT%`r&8CG*0hyNj##|`r&tS;9EO*9jNU3~a zPl;*nehbh23DFoqG!?YjrLb@X%prvt4Pb^EfaW}v6WY@Ipv>^Vh=cDXC^r2^W4UWt ztsVN*DjE9qfUbiao!C^@H-8+gf91RQ4p#{Tb`=L|Xi4%S%LctU=OTW%ZZq%zN^k;V z{o8FaYHK)%ZsZ;9roU&p$~eg)ez>FiE#9GSQ!v|ROx8Pml}B<6^ht5>yDTr%JAEsr zpG)5m)r%yh4+yP-10L)bt{Ot)_Z!sEE=-AW04wD)v4h7!NC0C=1c|`{k8;st0OgWK z8Sejb=%r(nS;bLi$olyweIr`G$r%xZB#zivP~>N(Qj#G!5*0rnEdDSAQml$$7b4EW z1e&OqZZ^+ZZ`NVAXt8sfqzgaE2;(z^a(KV1M7M-&3Dw+Oim`#S{gECf&#;Rx)T+WNm>kp{MTjjAcdid_5BU}a zUd}k`QqOWF@|V$A9%3Q@Z<3@au)VnjIMz>WihyN8bd|2%f-Nnrz*b0={aGT?H|HSc z&!(4Zc<87}4-$Eo*h@MNTjjSWv6@Uz3FwGDM4 z9XaY@i}Bn_TyhNBy+$*_Uv7sUto~K6Q85n*q2+&ukU=p_qOcwZIy(f>93BrB!^5wp z-Mx#PFl|AMsg_}heWA;T+dbWB(#an0B(}8)*WFA1nFRVf02E4z_wu?$fi83r;&i)d z=RaBUOB#D#rA8i#gsaH`0{!}%1q}0=)MpQXO3V|AhJ!|Wv7jgvwvp~wo(K>w;|9z_-XG#=QHiCJMp)E!-tGMgiOf^a|XD<1O6!7a953V?xJi+&hMK>WQlxLjZV05tRD7G{5!JUkD9AOw+GD#e4T|K#9%C( zAO)cjyPN&w_QdY?tN1)YMNG(0gd88jI3^OzbKt`+c+#ut&)h9dKAfP0ZMI>n)GOr7 zUyFK2YozH%M7G5G9SNoby~}dySU9eAloh6VscLd^PAVMQyeLzXmFm@a=Mb?!?LV&@McR(Tlgkc8$&hWJV2pN$OWIWDf|NdHWsMy)$um}Tp z0MyF4ILl&{HDk&eb)+aQQJ@TKh*}du^rppI{&cRYD8Fmu;v+X#a9FYjNk=L3(WPZT=7SON4T8_$Hj@3&? zKw)jM6c~l25C6L_iF`D}t1kIAuE@a3M>W86fcIp!f*b>S6}bD*Kptk&w6EbF2Tq^z z+Fz1tQ3mQZSdZ5Ym_8Wn=B?ubsWKnu3D;5&Oc;GN1L2P(#9SUp+ep}sbIocptEg@(;Fw$NK zD(oHZUa<8K)dm`bx;8j|=jKT;09PADaOR78o22rrS9CDBk3R5{s0~yICY^xw!Rn3B zr(jf%ddG8oNBW8{W$3wN-@FciHH!21vBn*I0N9W{1OTW@b0 zH@1%7&yU^r=P~T+7bkYk&epHJ(zuJ>V-fT<8iC~^GQ3^C_Ht5a-6nRe5Ijf z)=y$H4hBw2Mo{mv(IGeQDhRG&3Kd$`M;*}T+wBY8rK1RB zcs&S286O(2XqM)?ipbsX_wCWnicNB(CxD=(A$qaBcrpCqf|1P66F_Q+$1|RqO@pBz z&_a~TM2Dqw60PL@PVB3t-9=`RwB~e4KOluk%romwUl#9#55Kh>BSaIS`gC5K_hs>&vnLOW&D6B0F zWP@G+I;1Eb(}{~^J~v*}Jv%dy*MrxGYbU5dw@LRGU6l?QdkmTltF4}A614#{K@m@F z;e8Sv^+DLNHeB5eKHUAjne8uTd6vI5mSfiP|GpiaeAm$1)!v03q>+r3JC6#}3t~8S z_O<#?o;k-fJT39M|GZtkoPJ+X`@@f^(d&jDWmV6wCh|Xi|!bA zu`K&P9BO4fTsJEgb+TSAn^jA?IWL#Z|HIW{Q77YNvuQ={m1gyVkK@9{zR9$TfzTV> z$|ge0F5PS=_QExL?+??R<|QQo(m(`8CB?L(3yR*j2yQHSxb82ydkm+UGTi8goIxvo zS~J#wT`e|>&>d91=?e7xJT8BZa@%Nz5}h6qJ5AMMLsWH@5Rhydj5)44nCzl#x@FZ| zO$;x@mJ|SOB~xhXZ*DZ|B0TU5!R2(O59e79ytW}GGS3P)Za2FAd158Li)CXST`oC-0W`9ORv+5Q zYG|$Wu&CTW{w69(1qSr|!KPiW9J{}j$!NQXnrT~2p5D`Td89DopUefHjl8u(nOKfd zS^=72=ErJ&>$9zJh7G}psLORsR`XcV4Rl)zGYl0gI_aFm0wZa(mLXkN|H<>drr<~p zI9D`tf1-Da&iSOLbIKoJ#4*qSa9}Kquq`_0e=1*H<_EZv6;-n)t*<`^XIG1Wt)zKw z14Ngp<#_x@R&@5gc{xyAdK~yMl+#coCwBhQIbT7xn}QyU5D5lq)kmUs+9xTzJon45 zIdDfF=8-gO6t2uX`yTLZ@HPg9w`jJfi z#}>?K<9_46V(Mz>QlTkB60(T%G5iTEVCGRw=3N}`#zh?koB0KaIxqQ`cdg(Sq{sUY ze(q>wo#R@crDB{A$Z;VzU^$@#=Jpk3KTs=nkV-tGYdz+010BtEec4NSh78SIX;LOS>__S(iglXc8Yg_|T{>BJ!?|kaM6mj9BxFTQ{=_4$ z-ysiLlc;zrhBhT*Icc5H=f0K_=f3o^G->f@F==^uS+n-}J0oY)LbetT<|TL4RJxEW z>!sw{ct)AkkR`J=RdQ+i_lcroEqTj&+?LgZ?SH#`EdT%Vo(?Tfu9j28()wzoa`a%* z{i<62^#mN8+8*fgs1C+}WXPoT4!5>1c@SZSn>}7B@2(JWV|C+zlp9CMLMMS2!KwSX zKoNAzb@m>2n_8X}H&gg1FAs~tb(x`hwfdNa~H9*TZcn*a+ z)fg*a`K=p564mC)Lbc3kSnm7a@16xFUIwbAbq z3V(3z$dzEzt?Qil#41!(d(`w|XO*Y8kEO<;uu?~GRi3JIy4*31DJLEOo1#J=2k>{r zm0;^9H2JcPzY)U_VKGdCTk-(vHtIC|Qm?>a{-kp{4e!=3BxfTYx7nY!TH1Ui=oZS&7P%;|7+HPc zUMjoMU8nW?SaP6f*AHCZLRv?L+e6JY-)q$A2dIMlTjGCaF?n#K zKw~IUP?=!;ez<<$LRtR_PCn28v>0c1xB=q^!H+?Tc6iiHbqIuy_0@=MX^vBHuEf;f z8-_3-p06d+aHaNx2Sx}N2+q&9Or1iU0zR=8gZ^Y?c)0Qjm0vscik8WSk^>H=m}xT$ zdS0U!9DDfuc->9z(x}q_V_g&4h~mMF`I4#}SIMrU81YU|zI3^D$P;Rcjh!jk4=2-d zOEx-+qF0+?AV?5zm85Ofgy)!dWGKSo&Lz1CnU8ayCZj@NR;F=)9Ety-JU6U%3N@n7 zPYe%50*p};s;6JOEz%P@Gv)%sq)QxB3wf~7in3H$jt&2aHcs=S8IMW4XkSvpm&F%C zO8caTAUL2qGScv30G71}jv*ggil)GgIoBC=>cPY|A0t^VcneFWqfA06N^^In0rL#0QhK(ZyKufp#&+0&5(Gl>} z_UDj6#p4h-M;|NsWr19q!oCbElb87g8FF+J3J;!BJ-ocmRF8(6IGWW8Xj5&w19pKk z0kEE0svcU{E^MsS@7HfTIi{m8@^8z)$6zH$)%To?uux629MYjj?-HbWt;<~Nrt!Go zmcmn9*I*nx1FgJSy;*Lv8EUG)4-5T{cVL;s?6`I} ze)>VaPucZk6Njy)`iUt^9@1>kHoU5QY^9 zlQgt^l_qbDL{+5Ww+{V-XpD3=nW{T7*+;}86`Bw9i!aVX-;`q30U@y*ys{LonA{mn z$Qm%d5hy?G2jWTunvl=8=akFtdGt`LOo890+Xn9%VMqlDKlG?T=(<*uM2$*Ixqo@@ zbF2y1DTV0sK!613K7=>Tk7-GPS#dJ$n9Gr0*2bVLMRM2wSG?I-5-iC1u1r+s! zobw;a&>1-zEggwYmGz9M67?GdF^p{X`%4wVd>s?#o&s@C!#TU-Q*psKP$%Fk&4Fv^ zsRn+*!@Fde7919ET;yNZnZgU|D-ZLTSHzqFp8jDo=`1X(X){>)6^x%!*@RjR%YaoQI{m^rQZn>0~3c9jz`W6&!)31i4j2WOoM~pq}$1 zz9$A>V{1oSYkViH^Zox*KiL@n!OVb>^}lS){?84-rG$Ff0ebk*7w!--uiK|-Gp^^q zvvu@>z(CGrlK2S~%8~{6caPec&?4thb*m=}XN_N9tt$0vo~js*&I&5OBaJ}gs>XK- zh%J1|*uG|2J`UKWhe>o^_*}f`YZhfzU`^F{Y+Jk~>Szh{^(iF9IjF(I;`>%FyL>Cc z+JCRN<5?MHbou(6pdT$_VL>!UgM9vAaV;Y68;&Ls24V+tQ4zvvXr>a`i$~?7rT56a ziyFJ>4RhipA_?l^gh7pvJA#N=@hZ+(K7HLWLwgOBiI5<@D=HOP(e?JY@x@)`zp+Zc zGt+&s(=hxdYJue-C3vHP-E}(>X1qz2sg(VD}MEL|wI~~*Pq?<|pqs495{%(<8`AfyRE2Vh?rToDT+Uw2j z36P5l3tI59K+L!AD4 zB>h`}G(}Y_u8QbR^<%T-m!qVPFiNd*{tKlE3>DU!(79nUap z0CdI@uYvbl_l>r<_qN@(2VS7Lh&Qqbv9^tCWjf(`X(f0!yR2%K;ZvH>>^e-+tjDp7 zpYBiB+tLSrAxa5(9)d#HX9^ZEd0)a-+)_k3r(X@wzOf<9M8H7EVi3Ry84NOTC2}!B z1T-wcC|SU;hanC&IN%A}@=}$jJl~>0r>W<=R5xivW9^@0!G;P$&w*=_@Ny0f`;OK% ziRO3t$AJg5?sJiwi+GUY1)D*|{K67}Om$Cpwdl zppzU~GH3K&`GpkRJfuwMsB5D+27>fVNU?{-HvOkMJLP;*Fcix?vaOkn$rovIf=EoG z!U#E|owpztv|%T4^LzkV>K!Q6B`Np~D7y$zhbV10 z_hdw-+bU!n$^)%%u#ijl78gVnO$L6&jpyWkj8rblW zBXUif#}FfYhy%EXUKg+e@%Pwqmi_1ZUr&$h3XAlXH#Fa}ll`acwpDw}Xu!HSu+k3Y~a@ghxDOEbf!3^GSzaQ02npVkLtZNA! zJ@CsiA%tCWQ33vAW+odXgGb6q9d339nZBXEcF`^rAB&>1T=4)3=jIp*i-7^LuaZdU z=I)=|MQ&GlZ!Hpb86!upo5uP)Ooa-<>6@6K{QW5+7lr~PQQ}TT) zF#%MrNO3sb&sjf1ts2_&_tMc7AW%7Y>U}m$xGD}|J?7zC)pnA`6*%J7ifDmnGWdv@ zU7oYRuknp1)=Ib)veC``BTqN5-&Ccr6dYGL+Dq=IhyYF~JIfw$Xz0(8voxz}3nc-m zvRe^*H_V2yGQcjn_WWp?_xORbECFQEhRN~^_512q-Y*ZwTR-2Oy72!Xip>8YiVTc@ zyAS`@@Bh3rH>*j-ZLq?3-_+hx#KRRmH5h}O638@?w_DWp(R!YNMo`Z&Qbiz=&u_E5 zA8>h#r*_@DA~lgIEKah)O?wM{dHXfD!3JprCXL3KzGP*f)!dFtncguDPM}yHHS*!$ z&CJcajX&(qvP$FD4vKgr!H*p&C_ zTEBYp(ng$}0Lj*=-sIR-MxGQ0)%a&sfRl%eF>7=L;o0ZXAi=Sd_jNrJZHOJ5+iD@V zf7ezM@~F-OCI<_~O33oL%5uJQW{YC>=bHQ4ypNQyF4Rf#{eWXM&{_q&Zn*G2#zg8A)vRRkMY%^|C z`Dn{X^0y7H=Za-{lc!Jq;U|Q{o1j`3P~1YKYbYa3I)}HADbfkvS8J}W^Ofm&ouo*^ z3GNLHkz{4Lz69L{U~NjehB5cU1D)_bL1;qV=t67F>Ps?Bnh*HEsI@K(;)>u4bi&{_6RBtgC$JL8bt8&FHz9J;Ox#wbY?DN77qX{E&&UsPsxj>ItM;?fijyg23MjV<^xr4DSR00Hm2yW zyqlr}nKKRB*;-8jm)dH~S=5p{XH{A2zk^8`Y^g?JllYvulIs@+n5%8wnQnC~)&w&{ zHBmcRH_YlH^j<4;n;`E*roypfswst6vnOhO5=DM-eI<^JkSuYZcyR?ibI}FzCwV7} zaH4ZI#qzCqNB|A=RcjX?PW#@3yE*6RwpPl^Cq|CKPG9~=z>x;zulf;c3DvC(4#oBf z&uJ2u*8H6doA$=nJmn2Gc+0Dz0?0{axYxBB$j;Rie7zB7jVej7u%l32tBt={${oid zw+Cx(G9tr+PVL&|R#k49;bY~V8KDVGn0 zc_0RmY;4+*EFJ5zQGpHA zmO`p(62;`E);62j>wI!nSb6+0frjB0_y|VvitG0kx6mTP5eHUX{eZ4jWWMdrH_t=<%`&ZGx@)f6T=vKrXrKrzr00$~>onW5AW+=xa=gp|UB-13M-^4I>n zLNJ(YOsJb*PbYlL`+W<{V?gnV-_csewjy?=1l3nq<_Tpw?G~D|zq!vYi_6*LfTeOM zY|cdyEev^LfTXmS#4+Fc!L%jj`JXGOwB)(WncK=SUs!!R$(t#r@ zeLC$8`hv`V5#7fE$UiI7+pTNTvBjKk_ktB~54x#Wf~7hf4YMUnF9~SDIl|lrflOhf z2HuYL6X;E!5ohc%VGd<*HC?p0M3iIA?%ta^9h%xW;-$kY20B*?wT7Y|Ce1uem*6oG z&5)r~W=sv|`7@jr65*)YQ2fTe!7z+~wrcMqkD=YQqw5O;I|$t|vC6&btat_PIxrd{ z>)x*=30ZWU(V*AIyxeWSUpV1VnnHuExLS$%JQSZ4fHj4aOvSk$G>^a@+c@rD`kLji zgJsomJgi)>jRaGkmgm4MMR{~9f2vVC9%RMben)X8ku?(tRHCCODn*v``IT=fm<1Z-V7D1Cc5I&r=_*vcL7gULB9LJ*6t>;3t?T=sN8_wqy(I7s1G_RAP1 z*Yj!}$HWjwd6M~sUdpU^3H!YP3iD(?N-~V+uN^6y7K7}Yz5Ry@*6E{!z?2tN!IzUy z?vjF@lAA1bd5Z^i*%)KwuZ)754%sZQ;XhR)7|Go!SXbIYj@=6UEmxEZ2M(cUEENHg z9TvjcDN^e_7%v_{=(F8U0}Yx%x`+T5RUB#l+v9CKQ-}`e-U37Pat%8*n{G#k+m38g z>uqZ}PqDy+jz~Qz*E^udKQ465I~{nZJ0JsC8CssFK>5p4m`e^t`C{Ci6OSvmozNZ1 z`SLC>sWa|Ea~N5{emUOFLB;gCWW!XEd!L-1vs#>_Q85t8tzUM;tw$BrVC4gB^ezV>RPB%OI(Ut zzF?Jm8c1}I?KW;fU&{gRbgPyus_qE#qLrY1F5&pumhc^B zDvDwsxD4D!3_wtPqXoDda=V*iZ*Sn)8)CEQNbSXoUs0iaC7`)MJbS(6pk)(zLkGLV zeHqbsPOFn)RE1 z6$NYimxhOF$5>g;qGOTLm;=@a=49S^0k|whiW&D&IBg_n2YCYZRS9GT;4>712V#K1 zW0xBDs_bFjmpjT3Y0nafX$}g#5d?;r3?+LjC1YVbBNIa_NA348%ih|k&_3@n0Ol|M z3I!nOeu^GI$sTNWw1SkC2ie`U+VWSw6}{i}l|hhWg;IHSrpmVj1O{(aGzDp>rqx~$ ztd3=gw~u013JBLC#2sxj0WpDG6NewMCDy|~QYAta3amD;%1<_mhU|@Dk_@7R2l;#k zt`5hbF8Neqw%Lw!0l@|qDL41uyattDqugvzBT3k{l$`wXOVRW>u zj0xOT)1MnAs3$(m6;hPAm7at&+YJ&@l_;_g1(N`M$vcs7=7A(bE^q`)dCCC^;0=z^ zSehCeGyVANv770C?s#~Jx|n)?+@f2#IO*x)_?a>Nc-_BWX`DbqNX^o<#rvI`Z7tWz zXZwRNUnsWGWBt?q^)1qGcXwp^F|c-VaSJ%91w1)*4do)YnF?n~2+R_kRg(~XmehDjJ zPAoyPhq*nD$63ObUg$>trm3*rqqki`YZO_LP8tad6!=?s)|^-w%xHi)NlhK}aL2z5 zX6XFJwNy$Ln#Z&7o+!pzb3l97QRNBmnv|9*fckMl@F_(i|Cm#)4D$-Fnhd(=BX9$# zK=NKyf3DMAZ%*0}8^Sgz>Zr1sTwvd8_?ovlNk;3us_sHUKVa6~c>sfDB5);rz|jaL ztMCVX-B1W(zQHEe-xdgzLE3WgXqe41`hevy_SI7-n16-_Q!AF?&q?}$iE;KdBk=&e z5OvWFC7}6&ulW4lF(B~fL5jj+gO2ULuUmI?uhV$D*n4y#_)G*Vd=``_l{RNI$f}$! z*LXWR-F-YkdksD=#}?{*e4jsD+}{|aa=YGF)=WQm#DC}L>D4dpy5>Hf?{6JlG*+^> z>GiyStkv4-@^ruQR8=v)I^Q)rs#B8OUoMe|*YR%9=wUThs<MdaPP# zl%3(^x%hwH)H-_>FHq&^o;|jQYnVECbBq8-QBM~L-}g(3N>No-2w)3X$O#X=`RJ^R(gZ1f1ASp;eBDkrSa%HN<=zckpBvnr>3w2Ee=v z@KFtrg9~jW0%sNKP>7YPmJ&9|hulF7d#u4F$UR#ZpGDDCp=VqmT48X1ILIjIHT4|H znhVnoAQ}q{_(z3yRG|M zhn8_i)h@Hd-l2;6+A7mERf0Q^#yGVO-c;AJ*=wVit%11Ch~MZ9v)rP}&b!I1y&%i3 z_#@Y%CPd}Je8yRXt*6CzhiQsm4VGEPE^o|Re{PuyDM6I~&1R)MCbTe<#-0JdG_|N#0y=Hrj7 z61HA%&bk*ErR}6L7#3-Os_pZ%dzG1&uX&a&$)BFk@*8oVRr({VNWEElmjo>sB~LKH zeXoQLho3bv)=y8hjUiVLDoX>PO3`;8`1wxCbey}U3r&$|ibBSuCzMr^^U|;04Yjlt zB%WSeg*y=w9}lDqVThp#Gdh-SvsVjF%A%lzVO0!W=M}FzXS@nN8V$QObf6_RPqF|y zj*V8PR<0Yew%3*P4KTA50Y68m8-SvZ7kpm+cCUav0P&A3xUeEev+^1#7|8K71YV*( zXmGC#jazTEbUmsj?VE-I?qn2RA#+N%cuQ~m`R~lJ@L68Xb|g%87d7+W8WXH_!}ZPF z{6R06no*b%@WG1H)Ql9wH;gsj$9W-W!RoT99TZ*7?GeAhnVd@|o5|7Xg@#_~_Y zX$UCK9Pt(P_k?oAx6?ZE*i||UQ9AA?m*$WL4Qnx zwU%=f@luUm5Vh3EFau0E(!NKl($#iatdK}~W{CocR30Kumx5AlYYiqN!AhDWrV?U2 zQh+Rtnhy4;Qf=x!E~oCR^rl4>Er!?3PkQ}(KcEuW+XkH!nc9#ge~MoYU^n#}n(WG? zi-8jP>S1P>+Dy$`^nVyvjS!DKy6t{t`m9Y)43F2k6t-QX_p)!osJT?;m?Tzf9pwQl zWvSM9&h!hN!@Y}T``v6DmwRFQ_c+*Hf%M$SbUz$Rv&m&Au%e!h&1A~voS7xw>1@|( zy zK>#o0P!>0Ymy}L+(e+@IxhpvTIG+E^ew$XV@cOPwM-Sj%?`P_Rpys?3_#DlHP78EvY&e*#Y^O7UC|*?mCSf9<^x1@7U@Z|VC^rD(C;0@jpk9+ zQjYPqg{w+tA1{aEsK}*KD~7rG#TRi_1WxO5GNSb7q6Eqsrlx=8s*3ASy0p?Y&80LQ zl+?EHug~*9JgU6|L1$w3L+eO_(e-)Gm6wK?<<4hRGt2}Bl}wj`JT|}^4N5F3vDyIi zhSaLkl2S>ag1P1Sh{%G^;%cloHWR6IX2Jt4sYb`82Gu6qDDYlIhPw;?;T}=4^o zK$yy^6|n`d%2Am3v97uj4-X98pINPhQSKf~n6%_bnJBp5V#KiWHTYKc1?FwM(39W+mdV@0~JG7a@Y&mAoh zj=E~RDn1^u_GEq9$q%E2AC}HLdql)*KGOQ>xZ*cKwHFV*9DMWVO{+-@^{Co`%A1ak2)uRK6eZgjDw7 zXBNiTSNnaPhWqs&vpV2LY-j=ojtY>&+-O0T7CqvJN1dEKogUc~594V6LGD=psk+6? z^slR1)#_4qn}6l*MD21Y92Ewot9hKpHj&jK5VTn-ugq&#Gg+8g1OxHN<$1-8ocFQL z`ZC`?;K(uTVd@|YV?K?ocH1|yU*_0UBHr3IQU=|l2F)akId;<>OzZ6!kIY%gEy{4l ziC2GaMGHAJf8jx!##i|&!aCtbzW(dw7>Zn)3{oL}&=#@J?EJbxonjJ79&Heov)3#$ zbUI>Iv8*fGzL^}HW#R@JN`U>n`w2%qcae6f2bXq<>=@DSz$X5tL!)!B;s>tE?!-U^ z^TKB*#a(XkTBtDPb9p;d!V#;a96;rq=mcwTO9$jM+SzL}QS-i|(1WTv`Yg(p+mGv?o+UUN_NIJ~sv+JbR|ooU@ury09w| z1DhPeYFyC+og*#yW#8CWccvQPu8$H-fLq8flGNw4cUh27g{ClGwE3q2#eNVI@wb_{ zR1-7cAvwqg8E>t^yH5w1vhx;Cf@(Q`js_33TOK<^!&bD$a6c?^#ZtMMaCQ?y>e+~C z^c45ppMBTAMfm7FIi|vHwTr4!ctxbThGLLY=uT=U-_k1l;arf|6l`?8xIYxRsA;a< z!`=~z{v}TGy7Qs8f|YPMD}B)x#cHp)kV^Ha0;&2ue6NJ!^`QOcWZ@RRB|OPR{-(0* zb26uxqlRUT_Vl@-444gX1qfk{G3WwfmYTDhw??UhVI?7X*qEovM1OP{%`#;8WYN~N zof=9E4Te}az}MA_5gpOmB@!n!-uqskVIFXq9&yr&lsLI4OHZosamA@RuoEI?=^2lJ z630Nn(}dy22Rm5Ae0*vMqw}f4p^iD4a#6=>5UPt>EgXWUd(#G+Ny z`Z)&Rr4);u$_J*By5J>~x>Z*aGYwR!B)Pi!z$HCm{3vc&M@ubv zkXz6w+F1aAtYtP;-tkdLK-_rQBHtXdhUac{mq!a*8FrABlZy|9W8iNkWAjfCnF5af zId^fDRkhjkF7EUbRx3IRZl*t>@FPWe2y7;S#Q{4W$XzQpVj7UB1%e`3q>ZWqf|Wq5 zNWq z!%tCIRo7oAhnp{3cD|P=q=XpJJjQj)iQpb5T!Aa#`20d3OuGymf?0M1!V`u|&2YU% z3n2SN9HKPav2Gu$m3+PHX=w-B#H6DlH=vv9##@;kfvk07B!(Y2EYgvYYol7>PF|A9OehDKArtMsJgJ#pNJ#`g*e4XtUmF#dUG~epY^!`#CWN z?~g$;@O?8FzQI1Jt7lml(cu6$w%hR@cog3Kocb7sZ(=0@kz@UHH1OZ^LAalu8o?&e zf%DTemKuM-*(ol#+;zv}%U@r_v0Cp(Fk|V0<(?3*@4u1H;?Ul1d)(hNzrRmhMD@&x z#LzmX3`AkQ65NiE-4AA)+rkz>GO{DjM6zUu&*A&99k->b0Z3fogPVfa^_)KlDa|P7 z0Z@hWuuY)mz&2U6RWOL=tBi3iZ=PY{Fy6?LTk}N)GJTeK4}m^Jvw--$y~SB=HQux& z;?Res$k_3PEchwE+HX#TAt z_!mua+hB$EovF3|O_?KF;Zjcv=Vjht`p|B&b=<_I^UN>NG?Y=`O-y;^_>^T#2uUGqO}q9F zk2-yQO4%YnXQQV5>VCao2K8!=^~Y5Z8~Zz+!Cy@oYx*d@W2&yB)jwbSSz_b&iuCff zrHBQ2uq<8z>FQDnh_o=*!InKGrD`0UxMvY3MMz~Gj93f^J{zXpGZEPez0 zF=$BwwrB{0K8A$ zZpa592+G_3{8P*e$V7Yby^Uj%wlFq(r@guG*v=waT)XiW+z*-qD?XLet*mj#ytBAC}s&`JG< z?eaqU&3k8HP(Sfx*DiyD&WNK&M7YKi8+mW4_ZeUFj(vmE`(mjevnizL_ab0)a4?3S`0x^ZQMD|&piBQCBW(Y`Z!$3aJ>K+RwjEObej{HnBX7T` z8K3cAVQKi2F(b-&$G z^hGgJHnM9~Wr;-F2iyM{T_Bc(Qm;Vs1Fl0Bo1oXJ4zwFG#TXXhHy3+7pw!`^jv~h2 ze++*RrWHbV{(CYJO%pW3Fo4Ze<4Lne`J*7BcR}>1pNZJ|(eI1j{$efs62VE-s=|W7 zQRE{~@~9>rXGmj6Lck+Ngy$28cjCyY!h3%&z}&UsheT#o{9f4kla@Py)|jPzwK5=f zA{Ym|0pVy3!T?*>94V$B!Yy7B=xY9ufca(8NVh>p)Cl~()3w9(FU60|eZTS#Y zraj*)I_>?A^7vjx8Xi?syL9W#9j&;+{=$3fHe@Z4?7F3<@)|Fb-w#1s8#9z3MX>iUvQjCjOpDSH^Pkv*s+B-(F=x zd28%mQIc0#51Kw>yTGQ%W`1ZpStig!-ha+3yx^4fT{5U4D-~Mm!ho6LsGoX!Aev_M zcbD2hsaBH)p^fs-Ibtb4A>zZ!tRe_QjGX9{2bvg>^5JID-V&ASh=^cWI}qWD7PrGa zhjxIRVY;?7&CL_ELBE1jQgC&VHepi&V3mYfa6^!=5d`NV%|>%Iz7e&CGu}oTU)&1x z{Npu)T+K|;YMJM`0aq{z}cGRqpoxZ8Z=AL>3jw}Ks9))f0M z#a7Bv3B5Ve&&PJC^}<^+BteVBxZ>jONx<6(c{ijiq2S8OY%%8f@v+p_?of|r<&Nqb zPXd`!q}vR3!OBLqbm}&N^i8X=}bUf1{T~CAetz><>SfK*jszV-f zh0s5p=?LF-q(ACbB+8m*k1(MZTM+dh+4YkV%b2ChYcw*v_U&l`Gb=I8`paLGABJ_p5!|0nE8 zHgc(fhUl)eg|OXR*=kUXJnnq@P9Z^cYLbbpM98mIvnN@}N-}N0eoC5s710XFks{6W zmJ0%#4^4(d6JnSPZq;kX@mz5X6pP6(*ql*M65uc(-qa&}JJK`oa5c0bE2h}(*lMSb z*a{~=!g#7ES&%Fb$PmIhydk@qm9JlsVxfJN)F3sL>6c?Bg99eQ*{Xr7Q_l}yUtIQj zvjs|7xIzS#9@TV zLq#8#?yoFEodwJIw1)tbHzKg}CjPLVshsE)Q3qNzW~(hM&=W|tc4dn*SFP1`h3CkI z7_WMMn||M}Uaj|HsCtn2DyF?MO>}6UIR->-Qy*#DoXs`^ObO>+sS{dw*h5;=3(qz- zt*T%tpC!q0+K1tDw}0hg>U;6Zpw<) z_@@SW6rxUQCwqsl+^aQMB5x*aoMBJ9yQ(vimWnLa51m( z+^e{O0Qi3%8(Ej*DTWT3_V0?^Tb>B^A`adW6dvp-f1ex?%Bc&h0Q87e4A`;{#UDF3 zC2Hdtp5AkmDU)Q+5F5k3gz<+Gq@?h4vIVb)csDl>zcv|Z$0C;+Z&EF-SRcbby% zvv14*Q~I%yLZqpzl^|uiIX`J!Xe@8W=MtyH(TmA5HOTXsP%0svJB&&AukxUjoeJjdylTD|7u^@^_#h_@}zo5o>-5t@y{vQif-=sQ%C z#(8_sVjo^@1i+O^Y6D3!V`1v%=Hw9Z*gbtiu`{ktq{QA5RYJtIZlz(am_;R*d#t)n zb#NyipiA^5;T%*G)+7TLf5V^7uw=~$On~m+JItvs8R$D2P0`!B*H>ZZ4{*FNclv@r4~Tzcg?yjD5Jq zZeGcgE!j$77yo&vdUlQ-l(U9frr`^4P5N!07|SYu_xoU>sPv?wbc7_P;DIdakUAj8 zL$$aNhcr;#_uP=2$4p(T=Fm6^u|E1KojAj-k5 z3B$*)`=DHJETzL;@Bsq*{!yi07lBv&ywB8JNGdbZn6LCT|QiW=n)N z@CkVA!MgyoauosZaQ=Z+(GUtJ98|~*Cz&)g6QY?mkq>c`?z{uguWhkO(>5UuK**!h z_U95=z&F`O@0++LW?;or{uVMm*f7|%)oV?bG4I(?0Wy-y;=5{Kj~x}ehSgob=#ael zU+xRE+dP-wLLt&x#y8Z)AI)Uo@hhfff&Q?Ju9pdc4=@Gjs_^;PP# z$?{=}*3W?Q2fmW_8&Jx4{@b^mOJNHdzG_99<+fkc$sdvC5Iv)5xKTFl)Dp<(YBaDdD$gXz3n~ zkC6w|pk97=px(t@Id}u(ot5-mB@H7G5-Mg+*G0K|N94s7ja`!!g>Mww|2R?@x3Vc- zLAW>9kG)(Xf+%yfz)bTIi=u^vphB;mo^mRB_(a9b{mNP$Z3?JJ{esZakDvThKlaO~ z+JbCm_o}X|f|=_aFm1n97#HJi=Bj?ESoUU{#@v$2fM@Tper(H)!CEPCS2C3X znyI%2=LtP!^w;ki(U;d?5Fm^Y9SN_|)WkZaHp*4VL(e+DKM>e8tRXUKnHxP%I=21G z9dIeokLdv$a-6NB(Ap2bASM0Qah0vL181UQPu5Ep!ANJY(E>PY>vx4ap3Y3QF~bNw zFNA(&jt~kHH84G50LWQNFbds$kT!4Sw&VPPY6ZMw`{~VJ$2B}zl%8+q<5J4d-M!f` zl6}d0nqo%_0v@f21FCG)M54OmINE2$)cQ!8b+!o3@YJDh-JYFWzubn;mn*yuI=%6Z zleF3ec-Oet1GFdMAA*h6pAld>u5zlO4fGE5%9uYsmF_H2s9z4zuM!A+V7T(;=a_+vTn-}S8LMsmI#uP&~4ctAt< zR{tQ2?Ef_L#=`cmkGqdimrBZF|4)15^>hsro9~vY9Q#s+G-d0KI3*)T$o2VGNeoJm zJ;W{X_tOR<4MAP{p)q99@`|3{SNsZGt?tfi()M4rImWCjOvmn!4m4`6f$jHu&>5hf zNSEJ7QeO%i4(x~3Y9DVvE2wfb;CPlD9Z$eejy_Pm&# z%h43scR>&01`k*M*JQC?SIcbHCg(2XD&9>53aFOx7}?ZD^2z~WsTkVAY~ z@NGPrv@bgoYNx0xSB}KWF>v{HWA)Wg6uN>#ho^gO$g{&|{$%_d91M)aJt{j^UD|il zJJGER;tgCwg625U6ZwSkpY+(_i{BxzRm5)$NaCEwDv9Xi*a2Nwa9kNWNR1?P{KCK; zG{q|Dls`=`1oZn)s1k)DBzz_kiD)YHCLrM~5>_dHHi9T4yM~PEv!*iHr;m#Jkk&^} z*YKiOUT!K+=q|xi0(sIXZe}dk3acE+xuzW}@Mh|^PU7R;+AlM(hhW?bww+{j5o*Yh znr<+Teg*c=j=npso$2v2A`}IYI?@d36y{Rkg!W3!2iu{wbACX7$EEX+@>Ihlb}GGR zmSe4WRIT6GR5@=&xu*2&6pr6l>yJoTr~9sCQf-@h1YrveGS@0HA;)#v2Y#MfY6eVO zbwg2>Yl+z6+?Ek)_w+T*3XI=<5@lobuhjC=>xSdoCYRRm`+_+|M^I=kUX3GeX>rQo ziB>-yZ1F9HWl0wa+y%xSOq{A?zmAtjfts&Ze@ez&p_YfJZZYmcDHcHm9?8gp0y?Ww zU0|6CVuk}bFA5W6F~sfYn&+>z;fQby3LAvLZo>`gsjT*&N~Z4*O6}28UBp>{4X<1* zORCJ`6byj;c^37eaFO!2CRvVfueg_EWsID4(ilhvX)g~cpAS5El*F*BU?~Iu6ffet zf!)>KA2kyP`gAndJwD-7T6u1(uI5TZ$f+LR6{UdGLud*>g8P+IHI4_JK^ign`k)`##s>`^Q|NbJ7YBUSvQl! zU>7TsGkWN=7j$r|3CTYE+;sqj0o7Z7i(N3En;l7)Z0jSIvo8N~eTkrr%4VQUc}*oUh0HiS)$X+!Wdlgpxjf2B=WFOE`%o-9 z`uy4(3d_i#`k({Ae6yQ2S+Ng7r=yaIdpMUxgoxw%5`D8o+g{%KBKKlCo$EIPB2Y%u zIPHek<}$s?_0lgtqYye86@-wpz?bDzcKcK81ECkYG%c}gnXKRiFh_a(`=_J`atR3L zK?V-fr0M&C;Hv&Lg=Qoa7H4R=4re8p)s-wkGVu5*GR?yB`0O~3px`sN4P0AOw$rkt z!#R_gjUcI!4`*0El7~Uvh?TrsLFr-A%GW>y_b_-B$86f`x{^F;cxeUWA*PL3=c{GW zNB;xL8s0mNwA1_wnD@aPnO4%VD}(LZ&~YaOk8X2}kNL;UeA7(|RrcxZlscrKjNCGv ze#MVDvbQ%wCi7?gt!UtP-rOZil9is1yZaNrieAv*zy3Y{aw0MRf4Z@7{Od&WnN>ec zI8R0y;LdU|Gvc=WLsn6?P@J>mlP{tmG#mv6a-@;*>4iQNNM^Ay^C*b`aeZ{T9(43} zzPvx-WY&NRF2|s4!n}G{6Cd0(_d>%TSmXTMwx<|h&Oi;f98txVP5e1QG4kX*T()nlM) zWn(%kBUHV%O7E*g&PN8C{UkKXOu;{IDi=+gSx_xP?cMZCyoC;fPu7AEJ=ekNgN+*W zh?Le)cIn_{JoA_rU77HY;brm;sm|%Cwl*Y4EZ!_3iNNv76VE`aY=@6TB7X+yzRh<8 zU2JkwbPmQ5mv<VD;EfO$;Bn~!bP&%rBq_Wl6 z>ux?6IIe2N6iS?Zr;TF<^JVa`A_ns~^!XX=U=uE_s^wR@wf}tEmOBLUx8FRv5K< zRliQuiB_>qvDYCbHTYH%_x2bWhWb8pQrX)w#GMK^>(I-GKJrw%^cYN_eq0(m;@TP` zom7=3-$kKoEhD4X^cYQ~iGNl?;Y`gL&!m-0Rxj^wS1yCB)b=?>24B}=E#UxubB6S% z=XQZz=vsG}Sji##mBXL?!4T?3e!xBy&kZH&K50+Z`b( z7EG_ymTIU!mKNz%cvgMuwHh-_Qy%v^%p>3>=O6(K&E2@d7q~4g0S9Z*rOIq@ z*RU_Dk39*8y0=6dhY8;-Af=muf9It7veDP<+w}qraE-_KJ(n%b8UEI)6UV*8EYh@* z%qsJ?r8_E5*!TelIs7JMM0C(f>+cf~N1i}1?y9TZ5h3#K3hW=6f!*=MbDb`llUUzW zaX;|#F8t|E{FUvEU0Q2#M)AIql($rmMnPJ46TslkuK(T3Qny{r!tD4y#H)F^SUIE6 zG<88|2?2tgg|O)mW8#$0GfAzPHrV5_992lo@k$)shZ1N8Y=KN=8;(x#BDpBA3+f?u$34T=^5NniBYy-WYGf1L^ zBGGkT^f6aPX%tKxx&wQAorzDDU7sk?9`GlL3UE6Q{R@4#4XmT~eP6wzucv8ERpft?7&4`c=^=rAYTTy_ z*94cgIOXv`&-H!(x(M--%C2kF*@os#W<}M%19Jd0^d}mU76w+`IjNzTa&DV{!S)}w ztkpl}^h=N8AuhAc9tv=JTBMEmBcE|t@=8Zi_te~({Mw(LwI!9c1^(SH4T)*)mhGsq zlPu8HA`$iH2J%-g-hzB|aYYk(80wSnmusTiC0!ZtLoBcW3&)*iCI@&eW0)PO5BU8| zkzK3V^F3j51LTn+LRf`0lPlSqk;hM8M6WYNL7`p$OA6k3mJa{t2)kz5cyE?e_GOk2 zh~L&&qm6sf8NU;N2~4ykrgZjXBVcdkdDb$+K?VOUGmfU~rPbDR%={=GZbI+fbwt{v zi*g{Pq*T!S%N!+aLMAvLoU#j&mEIA(v4gxhBr+geu*J4zHm;(IEai1aviDS-%9&n^ zZq7Ji!%qY*5$NS3>ODwy9@!{`m92j~|8e)2p$)a~lm}qTkoE7Fe#*7L*n3W^P5pUcm5p1m|jT!?D!4{UeHv@C_*>B`G+gVg!IC ze}QFk<`|)dOJLJoFF-@#Jb)y~mACL%b|-|e8Q_~CN8PE5W6>4>gB`6garyY8?zrj*|eCzCr#_W_4(rOy{KZ&P5H=bVH-R9iIRF)!sl z1rF*JfyjkKHXtx*r{m%dP%c1gG*crMpbr_V6Jel*r*rx}R@HVt1PM5MccgmzY6dEi zTrX$3Jz5RnIX>cJ4zvtwc@Xh8M;K_|5r}h35fM%4r0{+t10~)sj363}5U9GZCf}1N6)- zFRhv^x?YoiE6{P`HQK#n2}N{$htj(*!qgqAZh}edug$IVd!6!L&uaE1_(zfdNh^RY z^r3WC7TgkDrn}j!4Sr1P#?G8Y0AIvQtF`p%_AuFZIQc_O+{F}Gx1?CH0j&|PS$@QZWuUN|J!9+&Hs&wPz)8)B&tyNM>C%z5y*N}Y6~0UHK)}=S}8^M9D@Gk z=N(Efy)J0eRIZDNajU`euHhOF{{$j+{j=`~Kc51R zLP$`GH}C-ScSBln!C#N?Jz%*AoaT=D8auesDu}+CJU6 zpXCX^iH|XWPRsAy40tvWJ*;n@W#JU^n#t<(tv%U?Z2 ziXiK;>p#wOIsIVQpA^+LZLtYji8QP*J*eBf$WZ6rm9N51wAq_kNj7aVF}??!RR#Vi z3AqX@tk{O8l;j~pcpyvVqBZ$<%2j%9DR?{u9~Tv{%6u_CW{?J87W$5^aOXTRI?n3_ zz?Lh!QZDe!>X@g6)CyM3Cetb5*C>4mF%7sj2!5EiV3Z!;{Tw&$hWl{8*~9R*32zG? zUO>ovSb@zDbe*@Gl-E+U)8=&^p*B?7$u0I`C)eq?4fHbgcHM)v2aI=}uM(Dv>UYqb z+zAn%33vS|_6#--@Hb|O2# z=~Q@ZMQF$jt_mwS4oAZc_e%uxhgObk^Qbd`tKd<&jbrv7ZZs#UFh&$=?$7Jj!=r@P znObJ3Y?=O=Zc=lMJVhx&3c>pfE3|{ON5r|heVX~5u)3URj8L_1D8Cpf6)Fazo{4bYVi zqoku@VgR&JAl^{hK+vtvtx`5`|0y3EP6>x~G)C*aBDdS*+^l$#-&Y2bFb_;|d+Jn? z&dR)UGzHi1L4|Sk7ur+wvfh!gSQFe?3cZ)R=}I$JIsjCDH!5!@Ym==Vi}&)IOZ01q zUHqD1TV3Sk&)rwu#kMm}StC?5DYo@6lT z1VKe9#PjHl0txDPY7(779*rg5j`zc^c~6H%H~gpOK1l-lG~3%0tlG?ktf>PA#~xIi zYm?Wc+p%lAj+WI}LAAkmdxuzydwy&7y541Vq5`G$WFW4>D0I#2+;8v|JUD_p;0s+U ze`h~r>72!rR{#5fI3lq~-YMNEh>|Yg((gy9f~Q?@z+rTi!qd-pxqYg(u;hoboJ4J4 zo8cywdMTbdze^D;vKb5~U2;g5C0g**>*fx6a6v3670^4QKXLneMJTcspr8~v5tBZ8ju-6nuzo7vAO0gS;00@sm-A+tQZ2<=w9(y zyoJO$z(mI1)fI|?y(WTsRJrmpJHe=w*v2z#`?C~>le7ljR7zy};qNw!E9KtuXzLc( zc1j9sz%v%@dX5&HbY|}Yn=B?-gV|=eBST^>mQaIStFnF;ZNn$$qNikE9AAyR&Dw9K zJJ4jUqRH+P56dH{y(y)$?WEl|3u{_d%1fpxCIv5XZMP1xHppHA z-Yi`(c@2`v!$~18M31WVzy2y5d9JN>ifgN!RAOy7sJ#qsg8wxcArAOoddC%if) zzD&LB95c+PSAqeDhbz9c!!W9R%~E_yQLOh=6O-~!!_hwrXKuH-!GGz(N&kE3Jq9Dd`MJa zBq8e2ix6P7N#o)-`E;KBr)o*vl3$rWbCOtjnOSfUbiWi{-V#9Febal4#m5a$dlONz z3k^qEmAH$wx-jj(s_vb3bqDM0`#%K1XsX6q@!uMFJTw(LZx?&aKP1g6Q(_H%qx=ri z3|Tr9i31%Un!h)KSr%~T-`}3>65q~C;RF;a&<{(`7DN*1`*o?H_qf0Zl_hJWpq z7#aTS15}FI=KpcG_o8mjbOytUyxs3*wgEmWi_D&3X>?L?4NNJ7M1`avs37(Av_&cq z*=Vlq(NIA8oIR`uXYb>8m`d2GxWVfIpmInF~ax37s5B9|Okk^N-?3Kx;nf$Nd` zl(G@cPE}XgfeRAw)MX8=6S5Le5!32p`oSqlTj|%+m+|A{2hB1bK0@XTlMhLQL_SS4 z{SZfy*@2rx(=vghh8R)Zbrh<$thVGbBVAx)rADC>f@YF!xoNgS(L__R6y;r|WnZde z*L$_w1#c51INhCb^&y9b=}YP=keAr6CDD-Tq1(qC?!!V_1pN4?E%p?#lV_pytnWd5 zV#PAjq{!knIc*LAoZ$-~hH@j-For8lp52N2v8mc^<*Xmpp9^ts{;6z}zpfzKVZlUx zlZzkX3{`y-zaa?&Li{pem_r#x;XaZzTFR3!6E57{KAkWhu5z@4p#E~WpN?1W*;@cP zBW4yJC1&tet_oQbw4~dcmwKK9iXUtBj43#72d#*ME0{Nhv+llBQNFWbq_l+hCuOqFL>h;ViVPjt`lH3-56vM=+)Gz`_6MBevfJFpp0~9i0 zYA8{6ThBP_7W0lfd+F+}ZJP-qhSW@IH`xxPdTv;Om=Tz`nU*3GAf8cMk1npQf&>6> z0PONIGXo~RO^A27$dXq3dFc-dC3Qb=M(G;*(0!GMEn=Zb>0d#oyC|g=4aiwP1Oan1 zX{EER4JpuU1aS5TyK}EZ`y7L|F+@djjmJPi+J~?#=80qhF0v`b^0OFP3{*W=+C8PB zldH5DDvKPZ>DatZ+B8<`NT+QhX@SGp)PVPtc;qURt%QV$*(CaXsds zY(H_e{3XA9x%xfvGy5^y|4X6%We8$q`mafV%j&XmO=2*ANr2(o$kkAg3?S_)e?#dt zt@uhRCSGUH0%+uzAqYUm@KxWht0Uepkipj473ZK}w`*}%qtCbX-C2B)W=QD+e{$th zFCs|27uy0OPM{W_?o?Ucgq>uz?9G_309Wc`1b>{~kZm85ZJHtsy-M-hyA9v*Ocyn3 zOEo+5O7}MD{+ye!5a0xC~5&w?JNz7TAD(gshQ>ETCAe8?>a;tU5s=2N-IgCJ(X&ROO2R zSK`lmBParTTzp{SdBsMi#iJ|u&@YNcQQ4D-(d{Gja%qN~Bv7af;i7hF_v1HSD*sIeHjZgqozUMnnqve77sB7 z;t0nJg#pi0uxm<*7>2E{8Z{7-QHIE@?>0;sZL+btU-&;DoQw9}xsTDcUYpH$*pitqvGJm}4n>#PhX*YUIpF z7Cg>eD|6@|aOcPszid!hk9c!6H@*tWRnI8<<)Z;*6__iCn2K{8=AL@FRKx~YqDO-A zO`mY{Y7m3&KE`wT`}XFT+Xh#Fd(;Vh;}Mz~;=7hOZ<-$uy9RP{-Pu+}?3aP((+$u! z^xESrL)-k=g!=-nH1}Ld_38Fv8EQInS0ipo*R)BHwH$MKqgSS)oZ_^*i}WP$fvSrN zW9z966naxR=YFKN*?d2NlFVoxzR2N@Y*4vX=(YYex=MEY-FK9&yKmc5Omt4v;8Xvh z;#BF+{GlQNk3Q)FCQ42Q7neIqj#20g;L4juR!lopQzAt<%{5e!z8$;ZUtK7S+wIw-XwmG}Fr9zDleK7zG3(ht5jb0pKCHEU z1BgMf#1`p$n)b7D`;uVu^e}%6SK*6Jo0b(hAg}q8NnUDV{Jt<40Jy}Cmq|3&v{BgS zsQ0~Y91X6Wnoa>ts{I3%*-~j8GrP*2!ND@w#2YI6e)bC#BY7DR>@^{cWQ95VUOjT5 z>?aJ#UGnS>lhnEkjfPn(o8^3A$*Ex?SJ6nG(&$bb|ylNzyk>NGB9%vQHTZfq zk#KnJB2v5x5IW-giIkj$_1c7UT8^?X{3vjXqw7sEgC;;MP7ijveuOjJEqzBdgwtUDhNrY zLUNSN&iPmP^<8pCO(SLVRbeKUh}ST{%-COmJh3M85Z7<5yd~?}TZK!6M&u2|i^7F| z>Bun2txKxy=%)haK~K;I1CXkEnhGiyQ8InWF3PMIMOGVC@qH|txQMiGhng6@B@^^^ zjYH{qR5DfpTATF1u^0zGD4O3$r?Jg4p4R}nv%f$WR?P=0S41R}N*`Wqx^N_HwKVX# z1}N%J_+%bxxe-OtL&GdCtZO8(=l-@tj(p0|fA)Ge^r0}_XN=Pc9fdRLr3<&&1=zWw z(r$-pXfb;nw((70`a@Q}6L_J6N^+x`FN2kcKYmnJlk&phIuGx((we{AbP(Bwi@piH zp@|ce2(aDGQ)(RqL62O)LKc5&fDR7cN7^Kf%-u8?fi_m5?>W|$cj;}ZwuD;nId>U4 zX=6|@^()4d4koO-1u7x7+w*Gzb074NpZZe^FN_Gg;cc;rIeK^t^&Zus1VC4O+YG!5$bXtMMN=Us{x-r| zTU`YCf?%;3F$aO>PW}H5f>~+|U(eg;>Aa@Qem|^f-TKrW z5fbMe%_Hx=_$zgePYXpy%h%t?aTrV_l5Jnlcc|@N#-_Jv7h!~vK4-r^?9$Hs_)`th z-zC`dR#Ptx`tz@h!!32|9un;M{3($pI)6VUSIR}d0EeFLAmYh%0pfyh?+zClWH`X- zYyy&GF6K=KiAyU2>fIO~pc|S?$t0)hKwQ>^w9bhO$i5>iOd*Y}i0{tWYe& z-*NqpIfk{u;AsU3zz(dB^aKKUu&A)|%g|;QLR4km28Qk^LDk6ETqqbuRJ5={vz^Rq z+?z`bT^g*_GH#lIFlCFB&Z0h(a<(>MT(wqPDdu`uYHW#Dvb%USrZ81&Ber7IvS2s4 zq+|}>^v&0u?UuqOEs|2N1jBI$^qzJ@MO@5<4#u9DT1()k?uH6} zIM~BSQ!4hW<mPjFm2D==1Vf&% zBFC@P;qmIYh(CSOH9~Z5!&86h+R4IAnS$T zo?e1D*;uL`MN8eNONG>9WfxNX0IMpwW-sx3of7U`yg-2umo@YULS!bJwodeL;tGF@ z&nw>S@uh~!G#XA~giGw9N{Mx=JnYq+^jAOC)lB*6+%nD?7s}MSEJf?6y|9``#iFPL zD`nian^ecCH2Y0ih~F)kDnJP@jBS$ zl^!}#!+Y=u^bG6`XCw<1B1}6jgyX0!>av5pwRs-urk#HhM7xnDM;){mCBUvZA7!sM=)e&dNej%M2iGBQ8n4VhLVtSx+fC^mzY( z3kr8zb5uneO;WR%PYJ_{xIYC%m&_vAf1`pBIOUXnWG}T2shSg4xZ~D>n%w z$4wQcI|zIB$%op;ZAiXKW~mShWJ&V5a7y4&)%0$VZd}HPgT-kRKEP#6;j~NgUX@N- z6hzaVEz%wZw6gDv22(VTGeX=mhJt!N8c2>Kt~xI4tGDLRXJZU*TFtuCzEMRnzG^e? z##WsTrHu0r{)FRi@fLa69Ge!VAtTla#z(-gBet5#P?8Lk;x3M*7_4QNn(x`64PY~g4ZvEoKg zU%&OHzQz_T8X20se_HO;Z&v%qt}2+)5_t|3c`(2+@(83b3+5M@UZ^Gq(s(=^|*cV0;B{ab{#lxrK01;{y;e{dmVtwZHBRQTh(9Qt#jirrmrSwOTM&C(?~yh*={ zo^-xf9oqXuJmn25E183;$V^S-r_oDl)WPd^#3*|L!v+ud-TbO|SqD;n z;Egz+P8L6A@jlXH>I$;3sOvsuu8e=ZVEC1UA(xj0z8A${(UWT@3m<(0HR%ZLM`GiP_Dgi$o`5^ zj(P9*7LVm=)t3+1#bleL0jCDHs<*Vh4+lGY4o2W_?MsEpq_JLqCg-fq1wNzW;9C;> z*Hf_Ie&(F<*$ergups~*WAod7zCE+h;b$H1o2G%mYfK7+duT89O(Vata5!Bz0H?^< z_u?7Mr)@g!mz}cWR#37<|E5JJpS2VAYvGlrf{c4V^CA7+Jr#I5|BBQovQ?~Z_xBdl z6)^mF5lK2IZ{#QW--_4X2td5NRS!|R!ke&vNSn#f7J_mA)+o^WtEwo;@(}vq1wfix z!of?vx=Cn&mcO05KAqbkbFB0IOE~`(mu6)DuSqd6YBqL790=dr`iNKL@o>o7hWy#J zs&1QItxCny+fr^`kvi%As0?H2r4`SkI~c;-Qe9Cf!)weBQ&Y^$$Ce(3e$PFcLWy&* zW|L1-cfXLh$7!Ivk%rn+roUNvjI;*4ZFL5)B9W$kQvC`tnVoPFK?15CkC`W9B(gz@ zLbDL`D?(}=^iQI*Qqe)dZi4kxWX^}v=-XCsFSWkF3X8XhYjJ^J{gH7y!WiUagxKd9 z*v6J@H-)|$Rka>inQ@8PX_F;jp!c@=HC9dFc!Jb=-a{QlZOmXE_cNsoJUtkasBbg4 z$s>@7O!3P{be!X`*K}PQ0q8WPNUJ(pyOj}gk*8n<5FUYx^E+aTUOvYrR?*PX;IUFx zm64z~S~sdxnJoQ0uC zjPif;eG#sJ+?uRk#S+(|UCtCNWLIt+FV$Ee+PE05@;O@&E$o?5u2w4aTHDh;gm zucZr`E6h9@iiU+0hFV3W9%Tpk?-d_p=e*RSiFg8O$=9*FBzp+A%+qf1bI^m0n;rAqN9%5t=;Ax3+E4 zj(e;g7Nb?hS}!_wBb+IpteAvmw+i3YqWaHWV5{N+L!UTwn`jC|aL%aN^rUK2_0M2O z+S`^plAmG~QG=CJ@8)<5LSf9F5l2&uhPVYQ0ayhX`%}0=Tac&!SzmMNPBCEj_*JEL zhkPJ+iKVIS)@*4$v&SCuRL;G?&V*YC^hhY%g~Te9c}s13Ij= zK=EY^^QS0wgBzuH!f{zLg3T$#r1^|H!OHvS<2{vL!;POZ%uJ1OLNb!cPCWYOe#xP@w0mNuVD_SxfDBOl4 zKL~js7c)6SFzl($Ox|7W+rvh)H#mK$9n7SZvlZmFQK+Wtg-f zdJ01zwesW@R7V{{CsXAitq*@M-z{R_t$>|PEm&D$R2fC3YA#}CKS$lsI*8u_+6eLl z&NB@N%WyN$flUGS@kItv>TdKtQpU5g7>Kh@a>&uEPUA{7K4nl+wB^TIG046AT)W_6 ziob^EtqHccT0SegPfv0F_N#(3x_8wvJ>CB@H@mzQ^oH02o^FKqg#Oi%xxL3X#1F?Q z(8L8>2MoIno!p0ilGK?2m1?^k<6QUXP+5CjffvrvEjUf@{A5pV_~AKn<=C-iC#z9^ zi%FyLwK4zm4bC5ei4 zqqxQ^-vEg^n1Df6>*~NQ29_1lBD06Y!25>xydZn52%I$w5WP$ZenW!_(YLj7~g(91t%@V zR2rH?P&~#-kBEt5Ml(pQg_C!s&o#z2!!1YIu6&$GkKT^m?oWmcYc_0~Fn1orW!O=H zS}XBhD(5^Jw&WfS2yjA1ajEb>3PMeM+hUkgiJH<4u}(Imc$Sjy7D($v{GiYc2RFXsO8?q(Bh_ddZu&Y)$t19DPum zbPTJGemt^EPwpF^@Rv4Q45YlA!V_%~HZZ(|3%EE<$VjOUwOqrEh6%39{SjDe^1Xg_ z4l0JgyGbVfH|D3=1$snB8+8!sfIm>#&Ma z(M>^nnUTWbux?=+`OyGqLb6hot_;RgYXA3yYBY1I)_|(5O@(fW*PPytW;5#IXe<+O zNTUqf1@!jL&_TrLPS@QOj0+HoMbm?2Q|2!Eq4DoI#@u<0iNWwJ`RJthf zVJe8tCH7Muv8@y!Lfh%HZ9MkDYYLT|;j4j>O=YUapZhaOw*{!3vJOmEoW5A;XVQ#a zzCAifbX^7iYjh*Xozb*Z5S(j^knQiN5+;>(5%^O_SEnnkh~mjb{}y_hcz?~(Laxp& z5z?Cs$!W;hL*EJM#?) zB)Y@)zkaantp881*Z)f+1_v7h6#f5&dHD-<{x2~v(;AbuIP3`BH|n?0rt9>s>;$jz z7@eRDDENsOd>GF}5C#$fB)~H}WgJ?ZTGL$lJXvF5!;Yqw?~1yzaAzx0w6==nj(2Jj z+79%|Dm+lowT6V(t0jf#o`E=fj2q?U|!*mf-}Qh!?amt;L4l|H5VJ?+P#>XTJ; zEXGj`P;5yV#)Ot)xKND}WHG)GQXB@{B5)}gplFi+kcQx3$<)A&u%*MC$k_Vf7MD6OG~S@(E1E z)(0a73^qa#*@Mtbd?9W(Mjl$xE>Ka_^D&5I#tJ@*+XIGW3CJMXONfao^Ms3i!%EG+_GQp&`WW z6c8ANj3P3FfZ??%G#U7N3Y4dfFWj~a_2QjCV)Zv6e)v=(7e;E+(`rxi#(PfiAHd)x zsUY)wMizhE|bXzw3$T<*psKtgATnw6?CvP3-2xqBAhxpq;yU${PnXhq5UbfnvWJ8<1lu)Q z)MuE;%VX&(54sz0mru|Ur}F3{L&fsUAg0YLFmd88%WZQ4FH9E zr+exmT1G1_ttM3sBl-Gyv_57M)Xy^D5oC1`VND^sJISptq9eQXRl5bTEZiWreAgV_ zb#{f=k~e#Ot1atq4ehbOYqz9<)>1=T34ig0=*oX5 zsb69)`@vs)rd?4m>>$9us3i^yiw}+?bi*2bB{SBEYS?31P8%`bG8Byu&hz^^4p?G$ zVx&J5tc_TEtjIt$H~QX7D>Ue$5vZXRh?8!bnA^Qt@$1kJq>8pw1^YKtrTt~p8Ahri zXzPh&Rd~km7p`HOvNlZH~Br5ND{P21{P+lAl}T zu(T>dejC>0&hnMphyg<99rbmxQk>tJhNbt6)t1BTM?p$ou>NlLbN{QdaxnjM;$!`< z0a+<(x_>9Wzel0EF=AEpNPY&>mM$f3o63yJrYf6CG0O)5Bw+=JGpt3^_lp;-ED)sk zr{I7Kr`j9dzjf@Vr_K`N1ouRt>jud%2uFD0^8_&E==QHH_&gj#+^)boZZo1pXdN86 z(Z2mGECORufdChO4eY}Oqeb}{g5Gf#7BJjxO`_itLRzUrerWec=>+66s;b3kl-8sG z0^weOBVZIhQh*@fu@{jZrBiGCVl&5DpYOg7m!ZL8nSgvQ60RV?C`R-K5dIh5u(v{o z@@VTkGm+~32%1z=UfCx?nTA$dF21zsKb2&Z&`yYHo&q`8iYmv8D&alOslm_cWdPSEV*4v|nR5#|}I2~Y!29TG0r-@1nLR0kcL>709;O|rXm=xZKs zF6h|`01=F|s1>VZ#OqW4osq}@0HduR*Ta?jK9^602Dr}m*svh3qB|)4=4gN5VDy(yfG%%xwjWdr>OZ<~v|F^ermk3z zipW4?)9Dd$CZDG(`c}#&_(X$L_)H3)Iw!7kdtPug<+a06i(D58GhaNtNo_R2kEo^k`RQ3Yp@9&2I%Xlz^93%m}~Upp4`zXS+CB z+yb=%hE;7nXnAEF0m7-F;!ki|Ge}o?x@$|bsTXeH>DsnfJ~7%+)P_E7iL*E`*xAR? zGUEmD@(-PEACHyab||=(`nKPa^oe#dyWEC)vt|*@am=x{sc;GI)lWn2-zV9R4Hbk- zCPQYJr@O6|a;%9$ss)p6V5(}>S*@3X^YHXKW#c&!8sN!*v;wEkH?AKnH0!fNnlW7w zLVz+ihq`Xv0;-R^m#kIBtg|+XXw~SFA2}A3GuNkV7Tk` z3~D3f07)z-G{T4-G=i7Z)wL#BduX$E@e z(wCc-apKxIK{@7MzaTPlJ!o0R;;1^tEB{$d8=1;Y%OkaNQaW+l>E@^AZzh*ZW2i;) zf`{sBE$78+KH5tK_i7!nyS<~$Q}c~#+yZp6Vn}$|@zeYC@pF1c-k+_d`}unK9@(ZH zx!$5eRbGoda-wN+?_@23GNRr4nl8eBo$Pp>?k*el1U-1y6Oee(6G#}faO&9QIzDxD ze&ny0_xkyloc&|6W8?gvnSlRdvP)5wb=oBOPi^BV1$zP!-=oVki%r?$Ba$1L@+LSD zu_iGLrI5pDUvHE^?4rBUi$AEl$H(&(-JdD?T7E^OWQUABn)Fq`@kWe2mN8|lGEnQ9 zAW;dUzK~adsbQG3wdpvZL^ZN6Xt!Jou zdn~Gk%}z}oVM84HB$SS)L4n8gE6MTJz44%pB9TJ zG~blNcaR@IO({BK=q@WHKYmr@_w4nE{3MTT`id!b35 z;9WPF8}dRq)O?E&2klv%8x9H|yml45-eQ7T;YV5432Y2gGVK$TKi$tC`^n?Hc3FMi zrZ;28C4>klQVbqPE2a_lN!nx?EN8h5_O+=_YTbsbN=RLQ!(hzYawff9*V8TTTe>#~j+a zj)s2k)bzbJxH#6)p}&Z+-@fr#6K*Wi6ms4+F(91v2dEtYKec=|)mVAS6G8~7ZV~#e zK96y8>dY-K69p+o50=TU0j22P&`V5L#bltJCrI<-7ISX#M#1}|)mV=pj1W4tp~Hgu z-~Up`6U0t8{A$K&lNHz=7k_#j5+&cLeBg$4YcoEXgwMv= zN0fGV^}M$8x_{^W?En-JI0`l_D(1Z{ZRP2}-S-M?fxRmCkB{JARrLRVblh{W{A;Pt z$o5}zkxJAj{|2K`woa&FoQqIWs=-Ocv(O~7QO-!F2_Q2?{|96L*c=Mi1?$4GZD+-{ zZQHhOYsI#0+s=w@+qR99UA5nOPu00UJbz-$Il6mXT?)NkVAGFc5tkHwxALM$d<0I6 z9%zfCamaJRJKbG$&08}ZtHB_7P)0uQ{aBA7BOkQys4P8SM!hG)^3KIS=aRN_*r&Im zfrj9LOWOC%2^r>*_kda|+2^D>EHFUzK|hos-(UOl_GfcFnFeexW+M1DQFL~1ljtBVM_!SFDsxQ?2ynK?-bR#_s3RN%Fe1*_7wc!ev`qV9LG zB+#z?`=k|uurN)qep4bf|FFP>(Z%@#5D5vx(56B(AOKj!;AXBDb{G^a$D)hH!DVy+ zW4a#UmiNBw^FWp%fWSaW7K##JSGxzT`ha>AG$SGs!X$qHyIOij44d;RIErOO*#?Ua zYBLoh9~x+BnVVN*s;P*)B&`u&OQ7D_WS1q%k^*diM#hU&e2X-$kg|ImGd{j<7tD<; zhy9ifpqVe=$kk=2yI?7iVtl;nsZ?K$c{H^>=bUEqhex5xzqpdv*1GdZ$1C=VPt?C9 z*I8FWp%qDbe(^NgD)Y(bpzNm9u9j{O_$cqNVsAn>EyB8!)oa9MYI1m?=~K2SzJ+wj zfbw~Nx1^w-ErCJ9LDa{XYXfoAwtDe6RVc8H`7-Ph5V`aYp6H^i?0=vAn{>scTo_(HoEc>Bs-W$J@8q!?KnQq=oGJRsfb#jBO^kbKYv zieKVFpT2ta!0W?S)yU3^Zt|w9&aLVe@;?AGv4nX1UIh z)D7BRokRVx1#O0;2#hXj_P;CLRV#xHPKV}t3!VlE@<#Yz3x$oyqkoc%pQ7)I;=Z8C z9_xcA)4$HAlz562L?x3?4qeaayW{I(R0AkXCk{85zQ$g%-O21bW_)t}K*B24jL0}Y zIA}*x8R&Ya#k)MlvTvI`@{J*4*T{!UQvi*}kuh_TE~L$VCXI5jv9}4dE?damH0krn>bWw>SAyhMyEJiq^l zCvDSPANLNAWq%Y-7c9}2d>>HGa{lAMRatg7n#K$#!1WFLm#J00To<^e0H=q!HfO_2 zHBa8tZovm)D}T%jvOebZbnEa$=Zx(5_#dP5ck!YBV`pdy#m)Wy7m}EM!=?YDkW{Ru z<+RU=@*5-7FQF@GboD0MO`SGQoPv{4pHI7bOpq1R$5ggnOEyM&ed1{##)dFmSWDFz z5#MR|IpG??H$zW#GnkFcIvxLaJ~f|%9+MT1{uB~8iy5`6GXJpvmEFT*uXC~TO9ku3!5V9Xtu6CAv0^6Ve#DA)(BdSt?heU5Q&!}K_bkN9Uf0euF6nW5Zb<EisiI-B?vTARdyk{D1r*jMDxF0^qfFvgdvjlCyjSou|He9UPN8TDnVe@!BmqjdoWB-IQ*lUMoa&Z_YF3EB|h~b-7TIQ zXi)Yg87A4_#^M~%%LUVUJh!3SD2G>rTcW+la{}i>)f2wQY7BT(($5I}d#d^d`46F- z?cSq8=ieAq%nX{pDkGGMKH&jCsd!+nevMNdsGrj|q!JpV4V0odSv7BqZ{JL?=nRM&mN&l>8V^NYa@?|7QJD%mJ9420s1YhiNStiYue&mMD3a2 z21%vKsLgHZlKL-~A~dGxED6?9NOW=6Xl%hzqYN}^F(9yb3$(SE zhZfXmoWA0S%-L66bICu&z*~pQp7X@*HFVlz4sHfPs~KG8G^3)Wc0y@omWWDEG~{&C z*6@G#F&)##iU`he_qWJ<1n&NUlelJb^tSDhr*1AG28(IM1LeqeHJ0TFY^4uf`ILQY zDDUL8aA^Zml^(XXv=v$o`}b|cwFvxxZ}<4A5E-z<%1Nm+$qpb#I72-(qXx!*DO?%n zKW$8IZ_uNIqE-RybQD7h=eaYb;?a++r*lk0Ng2jf08Jyt+Ju=Md7o^Se?i=*LV4G z`M!UczSH|eZ?q1a z&ym*H;R@#coB8w`))1Uo8iNLke|N7;t3jMjxBo(b&EOBl*k7OJOvGSMf41AJX?>iw z9JWjLKz}aW^buKrlfUkQwYk^Fp7D1H68c~dQ_$Y^{d}ml|H9jf`!Q1F>FN0q6NdhP zhELIyT1>z8zNjQc!tmfnedc{ggLIJ4%!jD4zHVu0RtXeHP|-3H%54b!5zr& zZ30jo!Er2@BT_tmM{$TfPN!fN#rN@z<=0yj8R>MPBQXx;uWcoVfW#*_daQqibTg6} zK!9p8Kg}Jg<*48IE&Nss8;M~DKM#Cfb=Y#@GSWdKK>1+7R2IsF>RnmM!T%n4ptZu% zisrT+ZuNKbmnqI2LSm>Y^^j6v)Z_w$)5Xj`!cP-xNF`b;=jd+~K^P!HWQL=r^vR5Z zj}GA^-5^#`x3kFyh4(_yXjn(HE)z+h%&%X9hD9+Zpj|0L=pM7qSqBUiOgcp>I7#2h zbid1*WGTwmw(OC1@f(5-@ZL*}tGpjaj|7|K(L#s}p$&E@`ac`16n9nu8=s+L#0jL9 zVk1n$>Xal+fGnquDu=Wa%e+0Wr%Q+GzJLnAA?H1}MlA5Qg_x@lEyJS}keDdof;lsT zElx3||J@dCCPu7(k839|qeAw|gNZSWv1lu(w{ojqzKxR4bP%uAof5D%hcFvBCLHec zxIRK+BE|A;FCqV=F$@@Cw4dv1YCYcU(ldk#g?yBiU*aZk^7NbExoyKuj3U zeOy-TPAk)tiC!bsw6Wg$;n3rr>hWXYY`DQKD+%X@N`wvgmx^)VGM7Wky%xFw#X2)9 z9d*@XPK%(p`hHAksDJ6{?rIt@9}x|LdFsVorC@_>{(#dcFG@;BmD37E3Y%z}gUM&q z>q<(zSXE)F!}Yj~|3t;D4Kv+U<|y&8_gP{03^j@TmFu+P37$QjGEy;4{uTT0e!L58 z_!VLx+S9d$qZgCK{#?_&7kZk=dN=A8Yj*t3iYyI8_vJ6KAO6jGPJub zz1ALRCU=oNP038E69ROqc&^^^wDqN8UpDB|;(CJd5@~a?R)NC$qH;Zp!L`Of%i=Ii z0;(kbrzgYGvBAVOk9>OeUFs^}TfJ=Y%q^eSlY9UzsbmD$P$?rLcqI!}ZpNT&(QB&u z=v{j@GVH0!ns3rBH!H+2>#X|KMy=nMJ~}u8^c&<9`TcnS#H3s@DP!N~kb%dXa%uBZ zNr?l-533#2O-S*nIy@A$feKc^2?w@U{y{u7U{~LUyilDvq2@G3^<6%(YFoOn&T*D^ zqw@i4XX_w;BUhR;hR>etRiuWmi^t{u{9^yy?~GF2`@hEY|J#85{~4^z?EkY(ko{X2 z`F|6&XTh|Tnn>j<#r!&@!PpxNghZi>Jk(=|?MsfSt2&xtemkLNTInw8r+&TNVM)d6{VClh@7Aia*S;h}j>d7K-+?eo#TEb|5aeM|)#I8eWtawbbX%8k=a$jS(|)=XhS- z9aTc4iXqfA_^>JoCl|pvLJsXqv*3*9(aUuO>~=c;MONv4$TI!R z5|MD<_P6;ye>)TVdJR5_>eqXoK*)bufpDIVk#*NdM3VAgFY1>1>q*A!)%87J%fk_^B+Hs@@5>J}eqOmuPu?<19o|_gx={x;->>mzZ z&?i3{Lb6QVn@e zx#W<%-jg_MXXq&07KW4+Fg2`&?yrb(%3Ym9w8Hbu{!^C4?P8`YEh_@`(e~idF?Fj3 zvw34qsiWkVmz*Z6!3j|l8(oU1u?xQP9;?jIrQ7F)@ocxHb>QiNTd-w$hPFd$G8PmE z(xB%_`-WH5akBw6UU7Zp9#~s^wQhvnyjGw>VNor^K2AP-30!M+G`7%AGJF_!wzO3Q zv_U*TuRL_rtP8M>^CfP}fwLqGDX|bvI#)Cm`UVxGI56qZ=XIpX`cwBL+7ksCPM}wG zPMMqbGe&8oz!%(|eWxSZ%XgCWDanwkhsc>01LQUMz-c>+2~%0@{`N?Lxml^f*0_}l zdsmPE#xJ@^oslevyBM{gGop^+xVy2f%RkkW`9W2Fj#+^@{m5&7d&FU3`=T)S@nT8AailPy zGi)y}uSHYS)p_R!oF7q(5z`Qhc(y2KlJ&Htnu5^5gJQf=QwoNMRRvuieJW_MCEBMY z4$6qJ0mjOz`gTH` z1QKGKCq$)1k0&tN>!iEFem2yXNSNB)Cxp~6C9W*2f2;RD9?J01O?;Xya4SvLP~p%j ztTV$I{HE0*f@;(_ml+w&R&>(cG7C(ovP7=rv`_bcUD{Y z86MDJy||e8&RcnYqPFN>Wd#{sP5l${K)kl}l;RGhFEDc+U=wg!Zo#)Mel4H{doylsN1Uv&dR!EB4ML(XiI1$+kRg*>wd(J`bs zub;5gM&SZYpZGJoteWdoYd{i0j%{=@N#1|}$w##yHT@p=J;A~uNThM6)~65X=U&V! zymU^Z^;@xmSb8h}IDYY&HalWMI~&cz>i#6g>73GHqg9D!-L!B?tKcK3h(OiDI+YX< zh>OIcH7|B~6`tOXNs~6RNZ&B=3iI&e-uoT)wS$4eg%`8+S|fFl?IcslrP3S zi-cyWNYuzkQ1wv%1oFs8VNBv9DZKX$H#oX`l7{&Lcop*d54e9$$+f9=qHYT8>aUS& z#;oecfxi`1L*58-M1Gv1$=0_o^!LC&JXPe|<0941RC5D-N z)-SkiX>Wxm=1{BT3RlBs6|u32_)V8b-MWgX+<)c?E6Gf1Lru^id zG87D8w-xJjjZ^YR&O?v)mXVu^gahL5xZ(O*P$icQVHMlF_B0wVkPoJ& zscn1ZRk61nQl-7pm$}WTW-WUF@c9CZlc)qFFUGvSIuL~cVpvLwk=b=Vd778tEw$G7Z7Of>b088X^_#R-?Iq^Avc&X&PjjILvV zutiD|D~K$Irm()XQ3yz9W07x~D58rHk_r;aVF6k&E`7E!t=K;=5tPk#=_92ECge-H zS1XGOoD%e6)YBzk$h`oQJ^Jb?G=1}q18);hI2#+sWI4hFdv(!TSAW$OJ-RYywz0`F z%_R^9fVj6IB~O_6g8VvTR{g6yc5hh>4P&s0>0u)Q>F=4~xP8~OBk2?`TDLe zp-cyWUOe66u*QRM_Kbs<8sT%V5q#>y$jk_wp}Gz1WbX1hb=$lj4vzP?b6Hw-m3mAz zD|_db-BPDwLR=tmOsoAxOYqO{!EAy_1#Q zZ`?tj7E$e7=Pt6}M^Fl#3l&ezIJ!vBUB`Qmn1ddd7DIX>j zPAYJhW^P+$;eL0D0y=3XrQ(7-{FU!aE$Qpi^-HGib3_AWfKhJ>5G9g0dZ$67Rr9XV zP;AgdeH;s(6%qhx7WFd>{}V80dlz3+(O6RCXpD?)r;$Jn2(fYb^l^QFAo=f*#du=0 zS>o0S(k6amfSlOR%8aO7R_K#&9qjG*>hcT^bwj_yM_ZQr3a@=cdJ)(nG-`SUbqWKs zIK7O@Z6J}==xt}`^KIm$Wk{buFIy9~_)jamEhnyvr6I(|bO}>oICNbo)r^0#)~ux7)y-gDM!Is+z| zLo$e9bPvb&^Dz@v?5Vmu919st=Wv?VE_;c+5&cJew`ACsCR?HwTUkk-4u3MYZ<#_m z;0zZVQRx?8%nq?|$NtKiHUgN;HGbb`jHetxAp&lIGvbd3`YjOvFRUaww7WC1)BAMU z`}9hgH5u|CVwoMo+AtruYW9pU3m^P}3_^O|+bJO~ zumOL4YkAb(VKy$M z;I5ooj#35$pGxPld<$GYZD^4Ecq}ynNx`2$E`JW2<}L(vuib$}5j9C=Qhahc!C`wg zHcLS!nJG2Tu$SoQ$G*gM6&~Z;1iz3-7&ZL-0*ySNMpA7tHCW-0wxa|I}?Xgm>KiMF%zJbYIim<^V%%ZXaY8@wl!|L^tM|;EI#I3v9Fn`}`9=7jV`0zhmLVTj{aIkH~yk6U3JR8PNFufnY2rgUlFz6XCNh)&9 zvC-c!mGyveaG?CG8{ww@b0Y#&HjrEW7Ixm{wUk<0!#1jdG*tlL9>N8}8dwC5d~hha zYr!h%nnDk}zNI%7m9^SIVn4$uL2Tug?Dd%X^_J+5p`|t;#IpIkKWHwy;u`h3?W6=L zZU>n3@tU(%Ko%Oq>8!VSZc;;P0J8(uDS~PjFgv+hb0!TLA>roW4(XFK+a!m*M7UWKBA7 zwtLLC=s}l1GduljZPb3|Fs|Q74~1~BCMQzn(}wvFHos{rt5HBX{R z9fymfoz0~YgD+;>`p~Sx9(KT@^m~7nE;bR|(BV8qRz;Us!(cmj&0<7ll z(K_~e3S#q_fH+N#taku6ehAIIe?(eI{p$CF%IIZBoj-Y%YKDXF=RrDW4~O6J?Bp6@ zw(aBX{ldp`&HrBkPPYGo)ibgE&%~~5wF$?4_WzT~P*12>9fq%4lSYjz3LPuTgp!uA zEHNXn2BdtnmvEflyEqw72rmZ{G&6(VdEq#TxZ9^}liQ!3#fK{pFsnZwv^a-vlwFtm z^aUdmIoYw@5B+Xlxq0en6*p=SM(zBzy8~A*p^>7C0{2CM=h97jU#qjT8Bw)x!xRoJJaQUFs zt0EG$OX3Ml2!FHR$8=Z=ym4dg5p+lo3FNABRQe4G-*E6j92K!gpQ3*{dEA8cY z!Qc<4C1*y&MK8+>}&%bh2)A%BXgf)?x?L1;v363J>bMDcCHm)NqsnSXK00!~$ zePgZ4bIjMv&-xpFaPgsFn-3yW!5$9&DF&e<(|@>hf{1$@)li#A{W}am?a${x*wtGX zH`)`HRw?`>Jm8x8+haxeAZ)GZ7^?niAZ0)-8R1_6ir7>O9p-5Q7rnp*!v2#g-qnr@ z?5{Ko1~MV1KCviMKRRk;`bc&I4iinkSN*v3ABK|D)`ROQ!oQ^oG)&{Btt(WK4T9@d=bgON;UaxL~3 zwoaetF5{V5Esexu$6nk=bD=(BYFD{b55Q#xS3i{x@0*;Gf+ zSkp}-nLp!xZ5|gu^MmKB;>{O5P1MK*Y3bz6mx26j97ER1Ihjd ze6*C=B{oj-5vA98gGx+P_VT)d&Fqj?2!c8M&!ilg`fFo_@%A(ArSd;`nd z-PRDTF=xJx7dH_%+D;EIbxN%oT|ldaqsn9i^>mHuMkTq!VF)O*XNa=TxQ`-LmIE9*1aCTUP(S- zCV`~$roc>fTm^@M(|6rHi;K$zsdESD_c%Dj?_{=Xwoezq{@m*UMxG2@@k@PVuvuC$ z{!+cXnBEVC$%6gcd5j_bNe=h0y5TEvpQN*ShGyFSCrXxiMAc7XUb*ok@Kx8I4vei? z`3uwFM8p@rg+$a`>)FK(WAI9z@;UF4%?nFmP>D{x)dqc5lV<2TVHO61QEHz0IEr-0 zx;_j?#*kPNZbYONvZaJ-CH59T_=F+*-GajQ5UeZm_RwXc@_Mxr7~I3f4MbPOV(-i2 z(zvo00U_#ORO@*v-q?35a>{`DPjVaNvkGc_))SeIyQVnN<1)MB+9*aSbiV_LajdA4 zSXi;pAbq{heoN$@IoO;R45RO&xRXEgubV#o2aOp=1jc}e8tN5SKpBCQm6HA3b-)M< z2N#VBj#5EUDsgF{|KqWWK00sHE$rDt?h%@*<1W4B58 zNR1tdiVD!OL>9K(SPR?`u)r^r+mL7oRshYjmc6zlpB2U`+tP}mw7nYsLLwQ* zvE&#?##$V7fi%k{&+c6ZLcp-V?s2k=A-=9i(jEu%+{VsO@9PK3Wzjv2YR4*WmaX%b zq2G0fiSq zV{!L2dAY%+!UFm3ov&&yT%F8+sRG$SD``6{=zux~ak9%UY$d5sF%vwXI?1r*oFg<58b12I62~8yPL$g6gB?Ze*D>= zwU-;lE~>ayJ!MJ)cP4z1RjnryMVHX8P2O(Fr_eKTcxrTcQO|jVJpmLTOHd4 z0E+VjRC+&3)--1@egB&>#$8OmtFP8cih=x>iYjXh*CUt6yFa(#+WN1< zm(c)!0%EYTnF3YleRhvi?7vmrLcch-0ZEb~UrEMTk#3|iDp@@H-rzq1L#$nSgPM>& z)p^-7M?E?7XutOh__%i=XA=}Y#0H6BLt!N^Z&D-oY)3+YA4jnq^~hZ|m{7tXAy~)c zH~Qq}fUs^xgu>?K_Ytcw9v%2k=Np^1eDF(9&Y%)R4bib^bAF9r|ukR zay`5DE|!#f&#Qn}btcONYl@ZPw)~^)QeC2oJD`)ZK>L!}$RGx#N2&A@CB&|dmeY+Z zOq!be7ZG@_=$GK2%+K5F@75hgIt7!?lfK{6(rM|t$8X<+-=~03X?`CQmO7C)z#Jsy ziHCG+#n(F0^d?>11)pr{s(%$$m*$3h!MS~Op82EddsA7RZ!N&94gnqD#n7!N2?=Uc zGDI=8tJ%Hnl#DeN&Lt`1l-hVn_Mq7{fPg35a1i{kGG>`ZLOoS#Udq(24s9n-p`Yfd zABj;U_$5w)U-GT3-}+3-h>}ma0P3_F_BTv`;gZB>p5q%cOT&GFs6`y$Ofdcx-q{i* zk&xB2+S77vIL}Sv&pUUi5pZ*cBh$D#Hrb}ha={gqd&$7a5=Nlb6o^GEZ-1#TyMr?) zHc_!PX>*uIlv#LnJLo60TGQJ5OHQnw2--R8Ka!T6ncUa~lI%?M7%Zo(4jPdN!keD@ zxIuqjq$j27-1-5}#Jw zDVNK;b$|3Y@FugH8@;Kp3O!R2*|%!6nJ zn91J%;tCTR#KoxL>P7Q+39|BM*ijk|;l)r22}vffGM0}lgHHXhrJG$5iwp+v>nv2b zfNnc}^!id&rd^$t8T#4AZu6gnMyoXA zzNKVHd%e+ps#fcHKKD{^L^DYu2`$ZpE1`;fx+7l>p6+j*;0oRzIP6-%7*)$CIzNlQ z74i2NBVr{RA%f&~JN@|3)lnjpCS*&p!dbRYzbgVGpy)-9 z(EAjqOCE1nFwTfDLZ7LQ%&o7S03R7awKZCD;dt{M~3hR8lPBjzE7wF~O6+g_#Y z@J&ixR{p~Vnz*njxhuDzg^VC{nf`&9G-WIE#G93%_Y-S=WTv$>snJ#z;#DWNI*@mgq04!}*u}u8< zjZJt+8CfI%4lQ*$1;EWlz!&c^4v?t>h%;a>^tbSRQI}_J(9E;~-gl5Bc|#m43V`O*($WMy4CYH{U7NX zyezZR{Pi)tqVv*bR@A1N2o$PzRmlm$8OR+){WjXqlMlOpH~?k^N!Q)%Ji6hOS|hhD zZC8-ZOVh{-$*LpP@~MdzF$T;`TfM_ha=tQq(@O&Va9qM9EpKL2p|D0no%+n}R!k~B zdHsD4kH5ZaS)8S7Ndj4D#r&h#C~Q)cEiFr*sLpgWv#stYy)6R;*s`w*H0q($D9_#8L!(l*1>6fC;QVLYz_WR8fssLDrwY(xMK;c9wf01S7Qv z*BJO2tdrz{F14CBy;5W`c}*2|RUun#>bw5iZ5Ehu{w)6-WX9RlFJd!!;|wuc3>a`q zne(Ck{QF*khkzofYUUXPGMZVTfYR!(`W7zIK2)pBkl~E1tv{pR#eN!Qmjh5;2&EO3FRY$iEH64 ze0{DlwUV2y%#s|ks?30hd{rJoDZy)HV0jlHScS__naY;GM`wrCtraQe5f7;93QBRJ z&Pc!ZCt<;b)fz#N+%|){1$77ZNa9C_oiv}mX$1EP<}k=!Tig`TX}G&;5kWS0tb0Z* z4(h04dOg!wi&^J3=LZm^h4LY0wkNFEd{*~A?W`41Pu2%!quLoQlBy8%r=(QKTZ{p^ zbh-rgSPf|2XRW#YVx@F4Z^wX8#y18NuVx_S6lGMaSkmrTOZd`=AtsuN_b*XvyOK#A zy^(UZ^kIFZxdI!OIAcB0(o*w3gMd~EP;#0`1>P0gc`z0mA1qd>I zdAinE9tlBVkNCmMv31DB&Z-j|jW)G5I|Y28W}4BiDQVKmJ|`k~JjdEnG7*7{r#kVB zOYz5oXI^WD_kZ-TX5g-MGxF?3$7Je2=`JMCOuMe(FCM^3cwg|erT!8(K`MB7{>g#d z*^%txp`v^~;~{-nSOGnJqe(y8+J4l5Afz&KWtxFLe(LC$T{ogGKmc zCb~O3@`$b_)|<>>@w2D*KZG>vR?#gkRMBsXpJ3|k6x=O1@+^d47cl~w+3hkz7<5p`}fQ&1^$~nSm%@b=;r+^=hOBj zu*YGf7FF*blI~wiANJRy{lLFl4||?OUnDA`o-^rRYuS97NSXPb`1mDyy0#sTl*Hm83 z{%aNK3GxW zo4OPqgAtO-0qKXxS-?90=L;IJcId5~ck=65Gd2i%Q%&?q=Wic&P5taW?@M#YgTYiL zQK$3LENft+%KiM8HY3%)?X+7-Or>a)f z-b_x%CEyH8C_D;YUrv9tf1JM$jcK6ZO>Jr*5sR&~iWy+-d%7kK$77qdso;E_3EQ5_ zmeikckm;w8Rj3XhMvm#N)W)y#-TSzqjR3~W1+Gm-BY&3KvPQZc5-^AZo!~^J2lYI- zi|v$D-2W=PN^P~FZp=?iY?F+pch{_Rqzm*g*)=VZqi;vsWhEgQt*tsk&{TiKvq#Pb z-Du65$p)crQu?+Hp*OdKEQrB1RbEJD83s}` zPP1ehMlIGU*_^i9a*XqVZHmvkvh)@xfF?fikeV|E; zNh4_c=^~X*o`v<99kTMxLAM+lg9Z#mOe4)4sK|8%&U%PrPo~OLhj&o;WB7n4?*5gK z#_^sZk|DHHMsFD9Vh%}HBnPE9c87L8n!%5{0oAh$d}3}2^~Xqw>=LZgvOqw zNqR`V0!o@&cW#xRp;NdiIeq*rfbV4%4_IyQ{}TJ^Rfu&s$S?PBD8K%zR{Nlm&seJbzE9B29 zX0YGYRTxp=a<0r88z(hxhPoyRo>nD)her#28l~xvu;pH_c9g4883>PQU{j5KEQx?w z3tN@cC4@YhPWOHe8iz-zS{+bdifF5X&0Y*i@QVrSU;=E~vUrq^&FGa~=}n|MXinn;6R!0Y@v+FQ!7Sa?B%{H^Joc6~1Qu4lR8KcvurhM=z zu2EG{QI0#R8DAuysaWrD5~IPEOuh4yY~i%`c{!6_!jen$l>8>8sogY4Fy2~!H#?-p z{GQI5gbJG)qgZ35*XzV)U`TF5)rzVvsn1=#Fu^gyXC**W zAFa^8XQlKVZ871U;hv2)_fz`;-+glao`@WYe}b!jI}*0Oz*jQTX2fsjdeh56R~#6$HD zVONcsC&if1H_7@2(1WHOe><48di^alMR+2P(U$sAmt858ZrNm}>k{iJdR0flI=+8~ z*b#>9GCI3(AoRE380m?*80ruCs`FS|XP3d42kiQ+5j}vfvXfEXY(uUd_;D!SN;Hlc zrz&fhE09IX$0yfic{#1}Eu+HvskfM~w)6*`quj_#KDUz&QUEMl%_Np~WW?_rsuQ!9 z&2-*eihqJr;>|sl6|s;p9sD-JXh&OLHLLc2tp7yjsfuLieL8zgYMt=uNIFO6+~K!9 zX`}qx!G}4dW^v_3UwXikgp;fekz+3- zq6tq1YtM!|=6m>iVTX8jjTS#j6QGHpOBfO3&ggvNSCOSnm94{Z31c#J@%;mgUpw}2h}#ku>2f>zh@p^ zF-{;+5WoGcjASxN+FJ0rW{rTVrSLe2V!xtXXqp51L7q(Mj}%N9uoJ(6Yf9D`;WVBCnUF`|lOJ6~5}f>iT}U zA^#ymG5*hir{9Lr|LfD3|N1nRbNfO_W0_0DGUwdfDcCcM&;BR^h%BI#0Oqp4cxEX8 zlrec*`0PpcKOmO}8+Q2WJKgQxH(rUeaH-dhj;S&@e09KNSygB~-4Oaz+1%|5Ed2%N=lW~KfNs^Eq z!mL=c->6nv@%C&5-Er+oW0Iw2PiU){(JU1PRYcV#7gt=`cSfjb?k3bS9JEH$qzY=0 zd=lf&1*9c;<;$(j5zh?k>KerCjvl5nOxE$@ zmr7|}m?cbL!xkbB?WR-MCL0pE-4&FBV-8>T*;{tKNjB#Z!`Y(jE$`2- zgH*2S8v~-Z>$8>6O2PgeH)&Hj`ymAkoU7*Qn5~2&YORuPpof z?tnv}z*H(feS4Wc#lSuaS`IrztblW^=s>cYYd+t%s{xH|OEo)2!KdUdkmQX|37_ty z>Qqj>8^gTXs>c?hg3ub6?uB-D_3zhu zGRPQ(!_Pr*FRK<<-}c&$rQIW@iHbRUVp%1KlL4RY@o#$+sJxAK$>9-_4*xu6+$shY zWa57B80(FDJt^jxjLRAJtZP_@j1PW5t<)iwQ`R+Q%f*7-wpq@e0u8gpPR!i_2W!2# z)WQG5+B-#O_HApwvF%jsq+;7PDzb;ol zy%?j-XY}5mK7Jis-B1V^n106X84Y$LSqjF~Pqc;O5-(cmttz1^P5E6==ArowL4W`{xw}IMP>ows_oO@48+OAYEy@i;Rvjf$fN1WEvC*e&)qoomcJX|z6YXoae?fvmS7@x_&4a@RTP!(ENfN|iqoGpSE(QFH<{vcx} z8Y~e514IoO_&41Q?DDE03=bmRf_bci|}T9S*hZ=m|wZhu^xn(q=?bfm6x z_xRRxTQHYkeP(o1N_=o{2H|h#9N!Ry8aJLtJTXsm5w7=EfRSAs2a#`-AwuEHPQG(# z!nP{}Nvt0nz??w^bcrX97TOB#j#x18j@#0|KtRH;Qc9U3(GcHaRL$@3uz znZ0_;eh4Yomgsp=SmG$~+>kqILb>ueyz}nEk(cVbU>R-S91(RT7 z{|h*W{Tpif|2+RYa5ypPI~ig_34V5i%C9d8h;r&y-C!0@D`1=lYXsM7QIkWWM$8q1 z6&{SIdAs25VEe5xxbFv;+I)RH-A|-|e$M#ig)|LSJ(6eHv^BNIb=RlQK0ZGnnLML7 z&2m4W;eH&>1aZV8pSZoRx3YNbat;r0JiQ~Vc%a=yl@sGJPT0s4E+65X^3%|Ctn|+O ziz{OsN+{nE*P>L7P9rc^r6B4pl7##f6nJdgU=(FYAptj&iaTcmNG-T7U$Ln;Z-r9e zc*a>PhJUu|SCcYw74+zzxI3G`#K7n?tXLBHxVX8f*B=GFVRylZoDbK2V(a(GC6Eun z@swCIXC=dnD32eUa&a)+TXqNVB!{1L3^_uAuf2J2DvwXv^1W8A#0x*PW`hlmjN4n= zURyplm02iB(%V_no25280dFTsRMy)mcu_@46yo%X%=@0A0L(;{!ZXwDcK2%K-YZ#r zG%vKbLVjWUw7$Mvt*NnSvo>o8q~ffHm1RD7>JU2WNZd_BXheEmrYKfMkD36PTw{H_a7k_2CGK)&1ZczpA@PC%;b->(^*sPsOV z+C-NyC)6P9)ng-zi0nvJcj^`{LFXidw}(T>bS^RoFGa>fNitUm_vQyb>3zI&hqK#q{bX201Nzlu9a1qBi43swoA5NF)>_K!Voia%)U@LiEKL0OP-6)}XayeEwH z_6Eh#PN9*G!icKH@&Y`VWk2_|7sWB$$7^iSXg4bR>_lg%gFD7|GvpvNd7L6+l99AV zYp)@5ATi#ZBlH4A40} zL$>CCxBc?+yxC0^)~?ZfU^e;l%ADu46uSpLnw6O*P^Cw_5j!1hQpPIDItTMw-S784*AAwB`*=e*7B?raAT z8)rx?XjR4UY`1y7TnAN2cR5}rPJ5MP4f|u;v^x1ceJkmd%72^Wk9F8;CUV=oa7y5m z$J7yY98IRv;8|O`4XaOv4*2Z1If^92(?)BeyYr^a;Oc&Y1-`^eQ0)nsT4?>_HP-3T zD>-JRMcWP#*EBwYg)Su8f!A)WC^yd(9dBSG8fWkz!0_hzV&qArsjxuW zAPZ_OHAk4%AwmHsRZwiC$KhbZ;UTvktj^#}O%F1q;keZdBds8t4lW+FA0hPk;#d#D zF3;?Jsh#Q+<9;Ix7o$kK2NHOq;*kBOfIE_?_L5cbB>Isf|C7yQ5<&2oY&^~v-lNJQOEe#0c*a%rK**pjoW&nqG zXecg53S;0ia=OjqUwmy+)D`Q%IXlEL((dNP{gpeB&3<3T#grUmT||renUbG5ZOHZR zHCtcYF7z&{$|9D61mEKq&^#GsbH8dZbH;r)S#q??Tqz?8x}v?CmFqS>omFh~d=TM- ztp?BY0-_F3lP86E_XtEMcSgQKdEjqPmr@!B@h98Um#QFbEL`T$SMJGe`3Gfe_*1+Y z{DXL5hqnB+dQb4BfZ%_K?6536tEUZ-@%0$~IL=cBsGrXe=D+v@o8$}|IAuVYeI<^- zci;W12VUP~zLsRm^HqB|83KXqwwf-XyCMA&V++O!+#8dD# zyA}!gt9t_*qB=+k5Qxth{ zr3L?l;Bva(g2m;+Q~UbNggr`c<0jXF)UH+j^_iKsKPx0|V>1Tw1cnsCRIF0*rz;k- zK4yx-)GRn{sHaORF=NS~G>|^J=I^BIDwgX{;EC3s6n_)Kzjb;reqSp6_w&C8Mv*F3 z-`7X~HE?Fvxi^O@*1S`dmM@k-e4luI2CPN{#mPUi&Mdr!3ho>Kw6(O|mGA0E6(aqI zK#uDEik;_qBYb+OdJ8VUCfQ95d!X~S<5;vb`Av-$Q)ml6NTq&j0Mj+(Drehei_!fg zSnnhPN0EPPS>{otssxg9+=~5D*I++?+LZ28Z+a>o-v>`64v2mmg*Ci2U`! zr&hS_U1+I3BY{U_)6Z75J`GTy`QDWb>#T_`tCbylTK5?*Md6A1seKt>_%ixlNE`JnVFHKkll{5^D+-5gLEhlB=p0$ zwB8%w_c!M^8Crc3q1++agDw~7L=c4+wv)%O8kw74@>z&imNx3Ku(;!Wuo6!s?vuof z$n|`x@r}{4g4MDn(fK76dZbT)X%R*oe^N6@`#hS}pB5xgN|}Zce*HnjH$fv93t zx_Pd&vXptv>s~7cb3Whk>_J2#qm{x|7_&vg>L$BJ3-6iP{n!eedYt$GnP>cCGxpf-e!1@RK&4~R=;)>q%@hN(`NFN-~wj_9@q1-f8*Q^^xmXQ#{mUoTq>gR2-Cvp9BLiTpSxva!7om1&)C#txC#lGMP*V#j?>6FNg zMN$~U|NhM|X2absRQsrhVbN{zC@SF}>L-gfhdndm?J$4F=ypU2nJLj4MnI7*=8 zasabdSh$8xWI1^mZzzTDdVgh+*6m8vwT|takjWrgX~_)cB;ja1 zu;%J3E_maM+Z|@_j&1wbe7v8onzptaene*X0p&9ugi0nBZd^f1d?fV4SZGngpIsQ=KP7Z z4T~%7#h#lE37aDOFIMZyX42&b^&g9IBS}=9lXvC;Q_f&27AEbaR3Rl8Jk)Mklu|m( zZR>OqcTMO0{u${!RT2n3WF>>qC2%%f>rlu;!o543?{zn{=I9R1#OX<$rM8Vh70NqV z>Ha4EG>34H#s;mriHos)O^eY`8Ywl15UxzBBu2)iO-bAE)$7t7TK$4}Yl@STnp!nw zeI4ZpSqSy=yjG>@5?xMH~ujYnujP2gXW`y+gF8h z0hpS^OI_YK>nG3Ato!HDcp^2}LubcW+MX-EQkcWpf;J&~E0>nB*M&C@D$xU~nQl(> z-jBQs?;vnR_Dau#KbL;FV!}#f!Ip&q zW-x~MV&bYVk52j}V$cCjUGtmwZ`yA1QpS=Lzk!QeNe7c4toSVS6F`g%3W>87{rn?J zxr(8;uNX-KbEIFUS_e$|#6Xm8G2z4ho|d5XBg$)-m`&^W=QVtn zE=+$Y&C`Zfn8q}aXKvki>h)|}0l{QpQL#*nAIP63{1;IwI z^xB`4DDH^X2f;fUWU_0C?r~^I4#rFLy>2MoBS8<8!?6iN%S)41{#|ax0H;5Qmlg`l zPbg;&t0#ei6s#j0-{iTehcBVxdX*MzymBJI?jWE572&bz8Zyu49%WpW>VDj(I3Lre zISX265bSZ?X**8ShK`1CfO7zWVOt)=+zybq!Mwu`r4eL;Fr1|2OYbbY)3Un*liLe$ z8KqMm*wv$)UjR?RD)Y(ZCJTf!&>WUBt79QfpgqidC=lP|xT05}4ku+YPNk>H6S@G4 znAeI~_b}i(O=cQ~ixrHk06E)RsyOMGOXEi$?2=0bFS}XK=O1RPES6)fegrZq9M@k$ zCr6BHTheL8RVPukA`nkfE+-G;&lV=2a9?7JF|z^e1-c<>RYEaFN-Y7ACC@B@5D9uX zq{K1<7+io4M1-Ns#B7LgA_7VbvY2NI4CakuDB75Z69`VOY~bftRN<8b2W$!Qd&Uyp zaf4EVkX&w^dHakG!IQ4nx2Ct!_ZkLRmpp_F6-)tcX%18mOyKlq8$0`|Wp)zduow08 z_*3)t7ddJ8f>=;;@WQs2>-*E;(P+Glo;)ga{=`#F@$ogy_^9}5)=`f@mx@g$;m>#b zfE?b{5`B;~7HrGxPF|mn^Q*dy#LN2PVxxEc=i55Zr;oktZWmM6$7AdI56q8?EiG+b zKFO}GRi16F3?J7ocNaTmbWQFzqvxY)72ZrADwEZqU>ZyIKW4YCp0|zCAD35oR8#IAJQEyWR+eL8M4Xjx;Im3zF)#L zN-K?iCFn*#uC0N5(2K9E$LJL&Vmf;ZAvt3qFEm0v4HM_irs!2n%$yO$%{Yq9e7|Sp zUEC7gx%Ed+RDSfR2M7u>fA4BNdjD$IGGpq(dOmfYuRyl?%wy)d;taed(lu8c>Do^1 z*>2WBTRd-jcVjOkiZDTI1Y0!%J)`-!2is~^(8(Kt%8EWTfAMwl;~9ROIZLCXI?>{D zV~<7W9=s-VJ?^*yv!aY@K_6;-cmJEqi+q&DqJ#2B-cFwjL0F4IX6BFT+ORe}{86Ek z+ey8C1X)c?Jqy3ln{vOC1B8+6!L4)yQ>ydrk0;Q87Gp4%*(IQf8T@-4BkSgL3AsC=# zNrtvsusae0S(lA)e=*uT)U{Ejirb0Clfu5hx{Fl!&$*DSQx_j+SXrJxJ57|y=YF;m z7IA?ktAY4@n`j>4`ouEN!AGwZ{NNT&2tvbjS;Hq!36(!|I0$ZD} zwO1gkbu-g8dF#5ySkt+YQYN3{vzE}N{;I^IDN(OpMC784#~LU3ins_!Fe2k(0#F)b zAWyFdFmxms+8W-V5VNeH?7W?ZIdv*Z{W10%2q?5ybZIcvBNxn244<{M*XDL8B=q}= znyI8(Xc4x}qPh-;!_gk>Dy4x9YMQK`>o$oGFKW~ujN!bB1n5=1q+_G2v z)}Ws0bqimuKiNGuA(Q92l`{Q5vbw`Cf72oq;)!iN*Xs0G9_XU+5>W-RKE)>rcnsC{ zq9RwROD_Ud^F%?v+efsrgJ(rCc5r9res;3N8o>Mckc$#uHakRodPEKH?Z5CJ+))9; z0)0Tlb%KG41mN-oKO-$Tm(<=kg%EhlKE9c0Nkp5wv8qY_;<>Nnk%6=4ufkX>`y3er zVc+)mM!RNuWo(KKHwqanotV57;V+ndpB#Q)-Tbqof@U}VDI*tcJ@TVJ!(3)M<5I0S9UWz?^a{3cAPB4h=Z<6-6$nwAY zL;gX`Joybj`<^5E4L{q_oBRC}V(5rPDKV|eYh}IwUumsP8YCk)F=mXf&UoD?8}dlO zyvnScLO~z@lVK=eE55u*xoy0 zf_y9l1#Cr@s%qC7!oLLGK*`&y)JYeW!X#3b_GDKN(J$I5J?R2}_5t&DMAsbwT`Rzr zg7D{hg2OZS)w@YuP05;>C>671c9e{jH{Q&(ILm>HdKd*T^;{f>kC!{7aR8`Ab||uE ztM4o1YcKe)89zf>OyFhU4{ey<*F64k&UkFdBnNdnvPx%;IboMqafD9T2kNv`IUpWy zRyOQ*j{rm4dMpny&B@6Q7^5F4pH;iCCJ-I~|*m@Nok9 zAVAv8-)=n^}g{}W6V!f zEJ+R1BF=TeXUeTO=Lk^(`V(4=9YP%8&~Qd4#x>%SA$NK2o^!(lkdQmk!Bf9_nm%m! zQbF6OFa8xC&@@=EDFC+OQkGs!b&DIVLjzA+Xz)5zk?QkauSJ!Y|M9`&UlrXM%q=@t zcMSN8nJDGe551K#y9OK!K0d5YLK}5GxXAE(q~o*rrTDOrhYfX`OKv@}K8G1Uk*?DA z_tY%L_tJ7tiN&@`4$1erMEcA)$jy1cNmB?(e$mY)x+YTi`bG@B^V6E=$Hujm^82RV zBX}o4en*<72|VM7SVt>D2A5Uq6E2v}=#& z5;$IXMn_j88}WG8^(%4guMHGBAPo~0r*lr3E3)jwUu$LG!tpto73O`iG*`*K0CWv7 zj{ovCGX2F=V`u;8Ci{1Q5%pb5_S*hN5k@GM5y!QG@cUZsIm=sSow4wr0nAD?P*q3) zw^ac9c!lf<*CpK<#U6|{2u)?MGdi%fX>I-a1Q)4a2?gd&pBJJ5P?vmOm2}C-Xtx2sowhKx;xoT^94k^+Y^2% z?1vn*HSr`!78YuI4-4nEW61toQD9BJa`)S!)27@VJo=~a4)Xa-*mi{VpuPr^el1GK z@90V^1#Ywkb8_VBt{KA35?**mS%(+k7GoOS+l&-32sfT)!9b#2MURB6qz8}q8mB%0 zY40U8vLHL4&y00Hyl5-sA8O)*3U~$49JE*k>zZYN%jG> zu7+yQmZ}EZFLn7@?3KlqM-ArZ6aX=Gfe>$~P9+Z_^F0UUKbM9FvRAq9a7^reMz(?R z3JkT!%jkGvR%XxA8cn7{Qg+QSXS1v7h`VF#LIg{? zsg5AJj3cri9929e+;=on(RpDh@mw-R*IK+81Yu*#mF$JFUPw6oR8WNvn)m>0Dy0m8 z3zX>kYyhs3O%%UjJn^C(JS;&jDj5VW=cte|RK=UAri9(h_UW!jmqb=YZ^-xpTE13(N=L6h;wrD z#DwvRU;R<4t%71;!2g5h#nMJ(vAOhYcF>j>yZN*<^s*frho(#BA;R~)$GmdQJ>k>_ zgNL>f8eloaw?nPQ_@ikZoe}{d{D`Ks7!k((gBZvj$q(-F{!uXj)T3gN#KW^W&0PTX zv4sR^73q5I@o0@cH&M7*It$$jGC%(Zk;=#*AOB(*May1W49^i|ApLmw#=s;mEpt`< z%wy!I%)Ux;+MU!Vtua+X#0TfGrjn<5ds0iY2s>huVfvXWtWHLuIwk**GD&dp6eq{q z)sxmRnQ9=g&H*9JfXfzD66+Um;Ur$@-*n?I^-Xqm=6~FrGpTYNoz8;s>FooWwg6cm z0K@{)_N%$kC2_56zBHWW(*2`{1gye0v}V+b_0lIhQU_RclzQ20u8SBh<$3s?>)PPX z+^fkoAU4re97Sk}quvwSqc&T$9Kl16iq@)9*7<FhVH4#ySL?#fZRf1C!vK6q|tp%85qBy~GU z(>zN+df+K&aeAMo`NN*m`HOSE#fzIH!&sA0iGBr!n>>nI)wPE>#HpIO0F&V_h%GC} zW9KYR>l!JfcT_X6WY!xJg#5BwIj2MxPKh6SP?v4KjibLWsN)x;txv`&kTet@FTGcAD-eU=EOUV z1sOuV?kb$}E6j)sER&R{#bK^FO|LX=R0@%Jy&P zhcJO_6@u<n?PewnlOcoy814HbKKk=C&wwu{wLqt)SnaKK6V1GRw>!@>N^YG%m zUehm5F8kpv>4l|C+$;UsMqXM+y66%E%^lumMKkW>kQJDPTGtd{AJnU%65q{CI}^EK zck=vNaE*+cHD--+I|Do;!v9i{FzgoA%Bli@SM)T&WkxO1#Vq8=^PL?JZ?@=k*HKC2 zIyrA$TKy$p-Z{1UM^*>%$SNyb?yEuO=k4-~KPGL$I9o;Lql7bD8>swLT+>`quz zCC;y4yQkUr8oB2zp69DN&N;oe??rzDjRr#sQ>c$KsNKn!sG3yBU>OhF;0T=L;kvF~mOkoevn*{dy6F z;wp<3!k!AdBmW5dGhQCsT7y&hMDfk=`2sEAKGRG4n_p&$D8=Z0N~$tJeuOQT!H>~9 z*Rw%LoOP0kZVRR5aVP}($XfQ|U-wsI{6+P{&=L$&oiWCNCaHt(j?3p~_s#ey6v&^H zBW0qNTuC_-1W(;4+#^-A?u@@7Vaggp6#OTx*1!~X$ZKvrVwlO9nP5%tVQBlZ_H~<% zKfDl%G!4CZd_wLk~>}!s*tSrIe%-OKND~#`W?!}kw-Pw$CokJREM7~YBo6Z zL2FGXxduG@#KkO~GfJ%QR_SO|V-8eQXq!L!0Lo9r_$M5hS*^!;WCNnesroaHPPXswmezW@%pq0#>G zT`~W~h5Ao;HSElPN!1y?J+FWI!CFPJTLaU>2*0y~j;9JV5YrHjgVaFx7lr}whXI6M z`vl4*?StA90cQKSU3;zKh~*k9Rswy%M8?(!4Cz$zfB8)}?j{Wwa(g{bT77IPsPQ&c zdvD;V=F%Zq;OxSL!U!Mms)*Fxx~Ewq**aEoOca>1H_e_mba$2+G7*ZosNm7i5httm zORzkC2-~cL^#*tzMnt{aGWViZ!2v7Z`4fdCPVELcc)_)ai|0Dar@;CO` ze;0xOLCJ)As`KAA<4&jSEf3u$!0AWn2r zmw2m@&&$OT5u2{*3@slw-?z7WgNKdmQhH|s4L=9fiK$`0`RO&VYfIIw>>q*2J*go7 zwuXP{ZTgR_A?x3m`*iI8_22({(^QbMmCc?A!e^F_pQBEMqRk&`Pdq}B)&q%ai9Fy^ zg>-LKT>x|s>17L<-DQ_2Si02$A-~4X_lXI{>4_I>XQvMglK^sjHMGKjRr44!V#qN5 z;O<#+yoscM?hZuEw^Q;*QhYex5W5RNytmwDoKNoe%QyN_a8Qam^7!EZKfDlEhB-2y z9{qk_M)m%gX%YDg=>>*J1sli-nifrB=jJYrr8gB!(5^)lte@Vo#^8DhaRuaH-WYL& z(v7W6r9bs{)LK^{A~pJleCNuTq3`J)KS4H1w8Rm-;iRx2U>u8blM|}nqLe0+-~_Ad z^d4}GCiU-!V!3aaCocWaB#NY7r*ylRn5k2XXrkk1F`YuD2JRbw0($X*aW*YAKTQVl z_PF0-JgC**clYD|)LF-T6IVsiR;e}(|6QqPa*t%Psy`2<8{Fz;#^|^_3O<5yWpYh+ z2sh@eBJik|JtsayB!PN>LgIEFw{g9{gcXz}Lj1Fj=cUW7&|(MVW5>Tgsp1D+#u57{ zttKY#d$S~*l?4U2wi!+nH%^l^LED3g&>cKgZg;CNDn4f+f|#CCuVf4uxV`9GyQkOc zh=lEdIoAinZMUB9ovSMq$Yn*l%vqcs8;eC~hyr8QY7CBZQsFA_og>*;BmJ!YtXbF? zG>Q{_a#F<*eK2r>2v38BR&W8Uh|sT>W?*N!N4-W5(mEBu%b;5$vO|OO^Hu{5jRy-p zL^@JU5e=BJglT#}JwGu-$a=(H+!T36Vp3FveKUh2r~;VGifU1_o& z&0Lw9cW-AmEHI%D*bnj^@11RoV<4o$(vRUQJmMg-K~J68rJ-X<{RAPcp4J03!SZ=g zQ%`)8AxI9`x0z6vXL`rnUnMn4(=D^Z7Xd^~p02x(oq;0$vL{#0e^BSY;=AVJZ)$xq zSQF~e{39`6Br}M~F7tx&JuC4)`Pc!f51zq4?xh8{XDb(?YhIf&?|!%M$z`(=N(U?6 zW1HBiE%%`o%f~k=%sW%k-*G*uxA9P#66Hc2nlf<-cJ2{hMBYDSWVi%yI-1Nk)bU7m zX1mlgm#_~E8hxw{1ZR!e-SB_%>=sX>D?OHszCQTiG3lYf0rE%>tI}fbaa~#}7gevI zNZT3&yJ<5;^eT%L{WuoG<>lgPIrHH1vbXyBc={yfd9+3aQPcGh%K(Rd1HA2eOR=A| z2#M6OgDPtsJoO|3om^r=IT#`)&S$&2t}<-~%D_gJks_?i7_eK|e#Dn!g$b0!i603= z5G4S6{wzt0xc-1ARcqd8wGJP=YIEe#qdd-056v9!JPw9lT4cUCw@H|ls8o_vu^AW{ zKaFIYB1GCrZ=l7L)Q62JmvMNcYkz}ZeSqcqi{`QZg%Qud{Lka!px9dT{(tof@dn|C z!!%Nja%iXnK{m|5Ct(=7wlJBF&LJ~GoJMmbTwYT)rRj{ z*mQF|FWKJe>sQg8UDNZ>VKE|P8G>- zV$Hu$p)cfsh}81e*icNXlUGgrXVx8%GezWv;kA&z;`qgDV|BJM;Vwtiz$f$gWl=`m zJnwfVPCVTix?tiFpVi`ST$#Ku3K7Hqcqa6W&CfP`V-yZ19`~r6y|vNr3vIvBJ{h_q z;^Yx(=_J?~UWsTYR5Qppg8|g$MqbG+NDPnN{pOdU^8qU(s)SQ)K2osOjXb-Nh-uP8c(uV z$aPK@JMrFKTwH2EiiMaRxI5y|BtCM&gKGRK>A))ZHu!t)R)D|g*PUVnIBgl(NyvN zi-7o&!Gu>sgH1@al#S@eVhseL4hnYMzCR8K1Ycp#dG?PG=9gi(a@)ak!#d#1HqFur zeDqrJa&^2e`&ZV;$VX!NCcoW!k>!1D?jl8EWh79#1Tq zQXJmHf^sIJ48{a;-MW^Ir`F+#f5K3&d`UVNy{RLJszw;gMPdr=uwqY}q6CP-bA&uE z*r18{X9ZgeVW}v3(Mp#An%1`GElme>1qT!sN_6dW;>#{)wh(m#(_(HTsM{m)TM%30 z^YZrZegCHr{h2gbbo2$>o3$5c8tZ2(P>+0<3c<#@QkT#S2J2s`X}XkBC}6MHY%Fft z08>xC)ZGn^N_uI@uEQHIz+m7dxx%#Q#8}4=ieVxF#}Qv)Bnf8e8-^f87HW=Yt5@`< zYu4~3Gx^K&qnyV*f!Ku*))xu~X-?qux=d2+b>qr!j?X^Hp|{7A{B@0-Db3Oe4IZETHnG?lv@A zt*V+=)Ji+^IIzp`iGrG$%oxT`G~m-SOe^%>uApjcF<(v}wy_c2Ll1Nt8j3{ioUI}iDi zY^eagfy_43an55n4QP$^-2^X<|Hv)xLfPlvQ_ZP{$=AOKjjMw z+GX9mlI9abH4eYWUXK>)v{p3*}VYeYor&zn7> zJisJ079Twy?*riG7eMqkLHx@BLr?z=!TJdk88ri5*D*~K;1sx{2T?@15Ol5%f?y`Qn4=PuCLxE|v48f% zJn#c!kPTDVFWMi&+9)5KlHY*S7TcnW0}2-dKs3wB~Zn;j0cuntTI45OU34`Y^^LUt*8bkA%|QLA<(|@ zjBKem2~Ai8#0WvSbt+fW7Y=Lf7~)+R_y!O)uD;5&NY0azsAvy3e)tsS*u@1gy76SI~$x3;lp zCjEP+DJp8jIWa_tH{M0w*a@PvynWd?yvX@%mg2@BK)8VSd9x>0;DxTV2*w zCVPVPf~V6=R-7dVI!aHXGTJF|xqzv#!fX@bWS|C&Lv{#q4T2A16XF@cvymZVlMmiD z?nO@T`^|C*N8#j#kuKr!ha+=8Z ziuqMYgT@>78bclX+u{v1OsFQc^I0g?#uE^zfH~ti>zQIqg3vQj<{%GacYr6iuQ%&# zor?@tG-0C1wNw%yeiWwf>&V7R8XgTiU7jWcn3ty|!)NKx9j(~Q)3<6JMF1ILk{oPS zH17jI32x@{pcdUi!^HsX@%f!lUI1O#doCm{H3keTk$ngdV2r2kCVmL(`WmwvTW^rn zO^0|r_%l9Yk&#VkI)2ld6TQg{8q7u>65VM8Cyrptn^0i-l`>#(%;vxBG z__N-r2VH~VM;Y*SUd9y@kM*j{9GXG#Al|1X%eb@=3pafYeK$*QLqSx#v$vjFftu;f z`dX0$rC_YjHIME?rm(aAhZ(;=xTeE9${vNVgmE)_VzW74`ode?I?Le0lim5f&(q;u zV!AW7U@3mbMzxlx)10Y%3`aVyBK?FgkWBo~q`hBLw7MZTH)=w@4c|jz#rJji5G;QpCV0>R zI~8GK-kLO=7^Cm^D?ykZ~`f%F~QEo5Uva2YY4@|aG(>I_MZpr?U{}Xf*CbLA>S5-ZJ_D*(cpmuNb z;$qy?6pBJ&*NX)IRro6b)VQZM<9hkufE8^AG>1!7c$DwrS zFB-@GxBQ;|pI?faRN4OZ9rSr0SC8Z~{-XT6WTOq@Y>|QPZzL}4gmgowi!-e$RBVbT z_3=_kvc$Hfm}!^M=}B68_iBH?lz64%#Povt!|xwA5)M{>*yEykFdV=JBgYn;=t$R$ zbdZ~i!x81g{xFm@!b)YJsKC?UwcY$Pt1P7FEf$?*YGO(M3ArVTv&w2Zd}lBy1S2wD zjx##Jg0_Jtj0;_pS7$#1?s5fwXekq!!|^dw9lj#k#67#8$FfCm9d`fwC};Q1aX-JG zX;d}V%%UbuCZs(TysuJ)&G5TyBZq|bTR~_UvAf?@OOt?#3ez_g)sAyiGkuts?am13 zZ8XkRJ_gA~3k%W3lo0Mp>FE=Uj8a$w=dva&t}~Pru@!epX=XE^pnMiw57*W4D|XcZ z&;~{)UfPK68wB~pZe>CB*kfq0E~QEVfG6!AD<+^R_`G(}zwNEB%E5E~2|?~1@n>Y2 z+{82JI`<(;Ns=I}QZTVRWF$?YweT*-bc5adh7N>C^XYe=d>x={q`7O ziXibUMqPf1hdWWek$9oZ4@8Pfp_}*Q!Gk|}w5(ZvDM?n&fw#ByC>leMmt{4|DSevC zYDJT{hbqgWqwp`xP+Y~Jft@LujA;T(^lIpBI9W^EtU^^Fe*Vc;H9L}kyy&=qM3Lw1 z5`Z|X(>p}9`{AP~CLyTh^K-zM7$ej6LF}A6ai>YpQZ;_>Fvx8<_g?E(y>`vD6DwMY zX6u&RJ$mqTET?}G>+8~QMY5?w{E>{d4{xwKY0X1ZZzzI;1B4SfHUCII*kCfxY%fb! z2@a=SJ9FMdMsZ@J&4yEdcCFU^AyUd*lV=3T|5Z12 z^@oidD(!R?NQsss{7-iA7$}*2H$5Tca`2T%S-t-HoKH>>XzPlX4VyP6zijGa7q+L? zbXGKy3Mb9a8231k+@N}aba4V0gd_IJxzEzL=E>0qyA6|uxV*I;rp4eKqKqS$vLkny z3pL&mb6`NrlXcD;rZ9>DArhW~t~W3ZU0|hh2~Ea_<|5Ca77! z7fE0C?ocbPza+HVjKr2v$cn&BNhExx&-FKoCeac%o*p*jGl>g;TwCu9(JjBk4$FBo z*!;wR(Qrb+9OEpr=23g*Gwb?C+JVL9VqdkVzL9w zBbLEYI&tfi4~9o5-9gn9hGwT+&R?r#|_9pgX06rnP0Q^11K zbzGgYl>!WgMTcMphgG^>)~?WgYDy~&59bPo5`dT@mDb%gy)wZk;7nRxxiAmleeJRR ze#*+aPI+yBQK68aAfU3o2^9h{*0S!M-7#$E| zLkOe9+`{WzKPEb%Nmz0R%a0D_o^RKHdWPM|ms=lb9RT?v0S(_I=`7iMz`6Ub7naT? zm270(u#@uHYdo^%9E}4b572@Q3i)_h;Uc(x#_g(dcQ)vZCdZK$-*P{B8%t?S-NU1_ zRm8;qdaQVon0vx-sXoerSV9iF$boH{JE6?BUB(jO&amIY6@+bBlp^dqhp2+~(|237 z&H=;i?BC@}8g!k!0(GHGefGEcxmsGtg>%^E-^jJCcyWrvChZ_^c~cx)xkemw&E^Yo zFcBE`$ax>*8`9-=Q6~_!*kdJ~Rz)|B0ZQt$M+4FCZQ^O0tgluJF4qU?n07Bp`Al8@ zQzM|`5=C*vUV@VxDx-)10i|h2og(p2Q$_RO|4{Z0%(<>zmv(I1wrv|Lwr$(CofX@* zZDYl@traJo=c~7?zN%+e_wM^A+*Q}8d5$^eF(xBN@=~cTWElwo$crd_47Tu6JEYd@ zr>;N7a?{@-dv=RKuC&(JX(A?-{pO!m*kN-e7m5A)pC=y)@4=~$wlj7# zw}DfqzT0yOv#6$F?bEng=i(>UH?}|>R%fud7D+~A`I;R@mmZi<8ShU^oMe?WPK$ph z$>U!*03vDZ2nEZ;An=Q(g*pl6PQLX6L>KB)uw`RCSbC1@DECAcA2CcpQje;z8NA}T zy2^*lkaN4F<;b#y)2sivF`zv3P4+V8D)53ASv%A9WM7zdGW`H-_E653906k zNRT_Tuqtu2+OApX+so#n>gnd_z2;ev%%-br&IGYAT!HO07dbXxiz?>J85oAt9>p)| z{{UN+p@!dTyFaCUUFU{N0ZL`H3w0|hjg9R^zvb%B(K)#a4Z(GUd%OaWQm;!&?jmyU zl?Q#a{s3!IVjH8TxiLbRTEO`^E%s{ya`0PrTs@~`G?&SC*!~0@fEAe z#Qg_;aZ_vGDo6;9Dyo=k9WM+`B9IBT+9FFY6TpB(i(En)kjNHgbHBrlVxi%9G)?DO z_yhm3GsVmOTsWq3#|@zlRToNHGVO$76g23NI)E6)^j50+y2mImzZ%8xvRh_(I2R^P zLD5vU;)fBgt%Y(5@5-%gIhfG-?0yB!8;?X7+E2r>&iw-dg~(AvVRQ${%lZQOw9Q(4 z9AZCy7L2a@8k|q#C`mDPVM#5mJg!~kgOrf$-em_EI-*P1#7i;1 zZuMMT)**EXSMautqN6Z{AZbWpYTo(fXYJmD?A%^#BqV_tD~oGVQ<$k6wUU{+e?fZ` zVuJEm4X2##gxbUvwoM^h{#-iu+^0L{ttPp0OrCI~nIEbFZw^c!wd}wi*tv1l&C4n< z3?6N>g2E?=p%6^~lVXpLIMTJ_nXlZ>O*m}96%TNAGu$P`biyN$YflIc>=0G5)<-4Ji@z-hJ- zB#)i+tcjhjqdi~Su&x#U?yH=c&vwY)RP00e@yM+n%}=2gu^l-6e+8ItEB3&P|MO2+NWsDXeU+fR zN7GwfcvXK6@A?FG&M7NeD+m?f096wAiu8{p9&}oFDqs!6d8QY==mgjp{U#?wsVWJJgD}XSeYGb22CbLGck)b zQ12dPY)1iz)#h$1q{~v1zQXB20gkli3qt77B~j%$@26cuhSFTPUrXz0H0k)0S;@Y`}wsT=rh)it!zK(0^p7eZEk$GSFh8) z#)GdlfWG0eG625~-}1$5*6|G^{cat4fAqF5aa}|#-6LjoCe_5FSHw18_(Q(dF6P{)TRXaSHU0U-&<)R2dmL{^t|_zq>z6|6_;$w2do(5ow}4 z@ri)TI6-pC8Ts(@1jUgnc49ZuQz*oESsz5YD#N`qyj z6ipr2G^)s1C?y0ZC3DC~X!R>HK2Vd5u}TzBHf>)mvC#X)etqkHK;^tfn6W?}WTBWu z@>R-gsO_Sa3g(n>q(xA|PFa$1TS%~OXp#;zuLWu(j!NEUs@p^hDAB^KUW=Z%I@VK? znsANOjJPBGs#XNrVaex&^+mUYSKun2Hw4GmWKk>ZyVOVa)DqG*q#JzL++6p;$)1{{ zpbVOAcn^*8+SvEkT4>#r=w64w|Jb$U|(;&w{>>e7*>!pPtCI9LeFOP%BQ>B zqlR=}312_K%JF(9TX(E>TPmhEVJYd)*1AaH#HmO^MrBr1gt=?(y?VR$+R*Y>NM?lY zf%b{X36tg9(F8WeY6sHwnrd(#|BAZA1zU@g;L(}y7gX*98tq9q6RJ}rWrS^)rm%QUF1GSp_c<225yGd=m&xo zPah6zgkd}dQHW;5Db(DZK6H)9_S%vMH?rK*{?X68u0VhP@%>QeHV-aw1Vqjk8=iCR{f<+QJ~s`oYaXiy04 z%DZATn0gol=b>JBX<^!Q!FZfTJU962xGhKRWqJH*McQSQD)jRDCImVCi`jE3{ed1l zJe=^o`tTk0c&G-P#L%XTcyN$vhE7D8wD_B}e>ILVrUu0hLl6%<_O=Gc-H}Dw#=AJw zTc2S4s$++x0NMObG))HHWRg(nba(f-s^L=8WGTPND@st-ytfa@FqD9pWJVX3G?dBe zH*Q%(|15bcO|lp>Wd)!D4A=eKvY|z%Ccn%A&92nF$wBg}$6AdL@zm-lR$oWIw7wq- z-DoxvQfX-SDDlF}y|-hd&&GYt`LhrZLXG7Hl%LdmS;It_d#6a4FmxC&1=~OzHf5-< zl;h4a14ro;J=`=H@D!dbvb1F-*xfQJyO8b!X=RVryNrpO6QU(22IN|fnC+m|dQVDx z84|8zduWywAbW;jgR82_{#E$8R!H|l`Ub1=SnFb|1=QQlYYX~$kr z9F63zfj=@q_3F~x6uWsnxl3Hww>ES$Q|)$y_8}gOT7efz0Va#G<1&Q8#Rk zuxzh=C+l7>s||fqZwvN{uj^I7`a737+A?jKHYQp88U3{tWIc~$WdrDRUL_>$YH z*FWz(nt*QtC|!z4r_Lucwm<^~ta#knx=)1zT13n(JR_a&faujK#J^ij;#7;|T+2!7 zF|y!{W?vIb7$jJatk^EW-smr8W|L&?PG=391bi|`+Z^LL1-5~&VBL)l1C zF7_)N&0nb*^*xQKLHJ!6J=#% zDu`6I#z|bH%#HuPThN?))aroeRT{i;a8P)STFyAqN9Qd^R7`x0z}D6tK%>3X`R=9i z2T_z73J8gx#=m+Hie+X|5q$}b!OE_(-DO}FcA131sN-3dBC=pGxFDQ6u^dj`1Q`yh z7}i-7$XFM$lJCGlo86S5{TiEiz8X{?u&21hLXQ9u&m+oH!ygQ%%xE*%-YQE-wQX2$cDitp6bRK*%bXH!lNg8# zi2;EEHiMQ8<4D%NiBhxU-1#VsHr8W*{D|X3c$t;b|CFfVOoWgNy2ol(vk*z(Evsr8#E9KE&t-OkthIz#-qI(!e!0@$@YQ zYWWO~ZOfifvLM~fbQTH$?HE^UikI%}R#7l}Y0L!PPC?tnbm6WA0Gvp*fHDjcvgC0+ zU<9UO2MgsvY%bM8(u~d~W+2j)=w?I)b3Mf2W#LSaO8#k4+M1A0Ng7h$nu)Gkf!*xC z5XGrYH7*4q^zKN&Xw-@nt<%wFcCP-m9#Tv>p$&sONR_^5)neTdU^$Lw3$IpYHTT-( z^srr5?tTyX^w19A$9iQn(nvf{w|e`cIBArrA-{qFkuGYSVlof_5Q$5o#79pHwC?W& zn&YnmmKej6eFVJI!)O`6qsqJXk?1?u<6%Hpt_wx_2WA3Nq z7BvmWb#N0+h%Ic3l`qX$9WAhX70&qklkaKOczvsdbpehoZMiJBLh2?(%97JcqMsC$ zMVkY`jKwPN(tSUdq;9Vn^+PFM#N82rm4{T~Y4=i46bv1j4AWI=Oz}=vxF&iB3kscw zR~bkb(kKHLItO(YhoYE^D<9;-I-I~GRFXvku>i_Y*dK0`Fm_o=Fo7H|kcFLA&Y{HE|9b1hR(JxpO213`- z&GfxRY);tIG}y+4-59F7W87HO;9CjP5PB;I_6kJif+33F3D6##g*`>%S&6&9P{ft3 zw*H7OyJ>J!0a(tNM8)ZfGrN}3&;C03Y2Ac+f_-xS?lr) zV5`jabz?UbK0u#?#U@GWYL^4UAZ<7g;ch9C4phn^whh`HF>!D#hO;*J1|Y`|!%NTn zt)==ElQ>A>#FjsZxgk|SDB)n&Im8QN2}F;HT$^qcD`9}(rrPQ?=leeHWCKm8-i@0R zvGAB1BbAZmO;F3p)PEhvpb)a`V%o1-G6QA_lkM+aTCaMywSRrQU(;oUO@}>i*fVx{ zvH$gZyV=3*p!?p2&D5){y>?Y|YgOk7PI+@!_1@gl_3M1?>cm~yT7BBMp5*`CtL+DW zLdkN1h6$xsto{k)OJ}DKgk~JPz>cVdtCGhI| zfo4)r#`i(-VgS!iap;5Hf=Au^+Vt-GT=3;l(tE1;c{MsDDQ&&;|Q4ZY!sjwRjjGL(1ykdAd46tOwaiOHL#>03H3yw)(3_AAKQ<5!1Kj^_BL& z9@T$~y$odY=r1*(SF@yx{(zH43|r#wfTPH@^KbGlC)x23@BERvk9kAeb`ZzTw6k&D zTsCzMBFzR4<3-o-?qt43+ghd!lst>2{QaMDH)d;#uLN{})B28GWjL3%{Cc ziT389wBqPt{h~>c_NKOb2D?C)Bu@k>4oz5%}88=62TMr*RCtMo@uvPny_ z3q}hKbX&f46R;Is=gu03E0I>KZO?(}(Zg%kJ1pad*Blziacv~7icnxX_>2$uECqv> z|JGMVh9A=Ge-Etx5AlpgjA0 z77N$4voK)|#X7{>uwCSFq0EOoe7?fHdRtR|aW6E_55c63OQvXI>A4}VG%>{dGXg3z zUk;8tPx}P++qgsPCh3hS*S(ee{mg(~x#Ez*EBeRvQ}E!wA+rCBdC(VA6+80gIFzc9 zLgJh3xDFgm&EwMiaowYV`Q(X>+i(asX)*}cBAe1!tVnQKshr?CPJ;R1i8Rwqd*zuN zdyNeNOuu(%5DN^7mg#lkMROV*n%Fnbs@8D7l-zNB9|RnlB9y+qoK~Y`^`Tnhe?mw* zsx8{uEAhGT%wI?pTXrop(V?7=Pm)h^Z(9iW6)q0`RmY=D6X_e3>54n7;+gySrO;Bx zd$L(>9Odh-FP>p%PV3@P_0i^!mokhJKTJ=bhZ9=~?ey!A=MN|A8UN-TNqI&_q~}co zN-9?n3||r588CDhc3NA#ZCO`sW+;geVpWt;)Uu8fWy;}Exj^w*k>d4f(b2b!`28G2 zqMKu7ajNlS7o_c}vgW1heWZ&j7=JkH2n4CM03-#P40$sb%%`|Yr=5T#lVD6t9+(t# zd~8qbu0S8gT%hCE?nngjW7nG6gVNfXca%?2mQv{>yo<*$ABKeJ831Lxl+7;4AEZI< zK(ODI)cP{fLYjM$GVaMSief?YJ`6ixSrBT)5Waa@w0wR99=tB;y0S77&Su=9tv^Vd&c&(B)bS5JwZgQmSUU{!K< z*ju+bsgVKjjGNbYOtoD=Af4;Zlx|!K?2Ej1!WqnEzhJ3~m%Tngn|e2~p^L}*4M`er zYhj^R6b~pEJu}C85QIMgw?L9$41ltVXaDx{@DKBV9Z*Q@u|Ey+a85IsnyoS5jkDvT z5~j^CM82@!8ZrjVivcPz;g^ss_qBje+bau(TA&Tj_`5CsF5ta#LLUOe8n6r3%+r~K zH77LRtmC+S;PJ_6WX#ZIXnLOEI%Ngrh@d;5X3;O792XzF{q4YfST$;Yr%O4Lkxx~2h7K$dxx@@PJf)vu7pf5=ZZIf%MuZM5@@1SCSGqL&Nhd^4_X|kN;s*R z&}*i;;&a_@W!>7mdptpw@&V4F7Nu|YDHpKQ5Hk{3Ju0xhA}++tA)N)r4>5PM>_3h? zRD)t=NLcG(aB}tBwa8u|Mp;5vcuHF0Rw)de`R$05I@dyQTf^ORxt;DdBsLg>j7nK} zHZ;7ZsN6937~dj%OzUZj`Qd)a%PXIPLoa;$hQR~ECn8hZEjd6s4Ue_)`<0*fj=%N8 zuhM?A6Nju*+b*sUFHZ8{V24EgN|%#p>cEhPXhs&oJ-g-zOmiWKDEQmzEc~KiAuq3V z!sX?PNiJ8m6HKm`=u~SltTUOY~afx?I$h41PQ8OWn}o|CCVpVH0&W z3%@g678i>~`uP?~9B&<8?t3NBM3#-Yx2#&DLrxZ|Xwuv(i=08lP7K=#B1V{FmN?*a zDNQ6#&&JBNf`lxl+h_FdQ5Bl8W>;YQM5+< zfzfW5P#EG>bt@D}H^XS`V&*R6YqTwM6I1&Ufiuc!tEjRb&n?DPxG+iD_a0UXu>MhQ zu&M4suxvPO^qE~Pb*2J!1k-AD~wC#4}SXt#Kc&5>RDkp_=^^*n;f zLYGx`DNmP8wqVj%dNf6~npZpn9R75~g-E1uOlvu8WR!u@5ErmNNXk{qWG3P!s!vBO zeO-GrV$~(4>CISlv4pl*r6UYxQw8_U^0PI^$RpbrlR_rC0dHd46v?~H4cVsb0$+bx zx7r);)B|SrLy&vUhbd9N^t67Xwd}Ona@Rv>o=tz~eEFRF1a3EXM32Ji2!HHClf$r7 zJCy6D66xy&M8MUj@w}qKuXx%e5t`f+TwxE`eK?KfZz{?41wweC;(2B0s#bHYa^r6; zwFUdzyv#q9_Pe9j+cUT3cr*wMsPn``hS$d!cL`4A%YKwZGEAO3Ve<-5@!6;A3SHm8b`; z=bW}gM0M!#Uym>Za7g>I{W9B>dn0uon{S#GhbU+#G8|Yzo<6?WWs(cR=llHAIh0hU zA8mXnxP84;T`f^T_zc(kG{VrP zsrx=@%*fLmgas$&^1!%Mco(}abiD$EFAE9CNfQ-ftDgPq4h)GiO6G5uy*6ABlOGPO zN}CNBq}q9zU&Azy24}!V@2ZV%hlG8<*x)$naIP#@^={jSycg<$#u*>?K?~kn-U>xXo7AxVmpP>coxoIQw5x_Q&sc?u7?3 z<8$)E;x*~Uporgxb5q|es=lOH`JMe=&=mNaAj3&lP9>+-LZQ13BT=a3AT~wiHzz)7 zU0;43MdOLezh6&FV^_g zbI-maoOKrVv3WU*pm5R7pe>+Lszihv)S-!HYMG6_0H5qO0RO0V|B$%lWc&A9)fm;u z#7r)Pt)DXXh5;4eG*ceB z6A9nWZYOqwy0I*pzX!uDn(hYYMY=5#1#=OK+EnN})l(Yl^Oh#n&mQ%UN|gaevsb-o zm_}X5!S(b?YS0^UxU)qfOq7t-tTv9C7a(?f9AhK!`7SlSD|vs{LZwtn(lp3@CQ-JlHlS&rST<52GDF-aO1upV!|u**RdcIHSJ> zJrn>=Wak$wEk?`n^@Ul9RfezP+QcmT?*ksCXA98H%zH-fxws(*oJsH`TZ#D_oB^kB zt>ks3ENcX>B*15G8^CKOy^+BQw0BuXq-J?j@bd{wqrf z!VUk#O*F$2`|cW>Qq6KYZS?eTrbnf%+3#yi#Q^FAf4E5WGCYdJWhj7OT_^(>@h(VO zAgN=UYwD97#YKoML|jXjH*TL8@?UEBiGV22G+g-WFfT<+5!fe^u*ya>w{HWX4kBV` zR&C~+@l^I1PJcUUc{^r`gt0wTD>$p?b?h;xe1Wbq*U?5wTSUNz128|dlsZx-%;c7( zCKg~OuY+9HtvI+ewSEwwgx)JhzzX0BACwWKxh~jz9+4{>2lxGM8s&s!B!bFH7qS z>I!n1iKLX>$LjEFzpbPa2@1lq(GLlC4)A(urnIL<0=lC>06>jOmLAhb&>w6J6iz6? zDwiwM@uQqRhs`~ZOP~{ylP*V_&h;b2>V{HM8u<#mbeKe0K3eI!A&j^jA`&S{*4rrv z@8EFF_n6zlK0-66A|d^19Q8gunOXgpM0E$U9ca#?zxDI>sU@3QEKhD2Bh$UcntZjd zI|HQWUU!vkFI{jL4%eYN=uI9`Q*h=-#^gh;gIEXd<-x~gmYvp8+Y zXW`eBp%t3Sw>xOoh84kKMEH^Ov()zX?MP%s{8I&HVF zPaMnyd%||cyr(x79T`Z_qkqoa@cZ@XF(mIoZ3*d;z=)edKyu&Xw%8nbyOF&Wac3q$ zTbC2**$ceQk1xS=e7*Jen*FJ!rTm{X;U8I!OicfJ0*X=Fa4h^`IquZTtLVxv4LG94 zm%3j)jjU}|O{OMMk$VWt^(7nFhxR)@KAjoRB{C@9ldw!Z9zAky4URr_!mk+ANn|@8 z)uLTEA_nIpi+>Tt3Xx0Mm#cpm6wgd(tS4M(;s?-u4q?5(sb|j{G9OCwx11m8UFgjz zdh3ttdc>lWLvO@olf)DikLDW|(RhJ*Oat1yF_ z(EEJLG6z(~%;lUyesm7q_aG{)D{%c8YsSO=%jhD&aFG{ZpM6fMho-4BcjaOO9wI=y zXV|Cc1f%b?Pit5f;RQN+O_CUN#zdU*Fw42g?XbKunwGZ`LtS?=q!i9RF4Dt4W&{R8 z#k_{z&L(>>-$BGh*xX>>I^WcPBwgwpBQ^Tm8iwx@)UB`=a|89!L*||w^c5|Q<3t1L z*9M7K_*v`aQlBTdAG}1MuIa7;Mz6|Tt+qEJx9?t!eumCY>uavx3Y8{4v6Np|ZMkAcXFE%ey zo8_{>ggx?WJjxF6U1MLZMSv+4wxLKWr5K>^TSFc+(rsRI3aHtk63elg0oyn-NKRQESJSz;a${dQF@2mtm*W75k1J z3JyM|V}2A@Wg~h=mE;|e!BADYUT3PA3Pc@rEqd}47-eEdF-as)twPb+GT?5@d?WU* zDoG^?_I~v+hGySs=UnJb&TCsp>e!A;#PG=Rf>feY=9uNW(m*IL3fjh!dF4gmfPp-p zkDsMr?3NDU6*pk)Yzi_t#&leS1X--`h331$)$j5gAL0>-A7AMsb4wN0KT|72xL+hR z4T~4UiX53`vs2gwL$KHRU~2isGx)k2iyE_7(@xt~^>r$|LWG0LJdexz83W6w_M1Jh zOHmYe;gK3PN2|Vb9we9TH=~jZ&xW!;6uNMHFRJPe>onv@c>%<;V{KUgy1P5Sz+L2; zvayW#ULIzn&(QIh)*1gJS=3c3tnv=m-$hyh$P4apM3oE&n?)ahiCo)5(+uRQ3z34h zV@!(rcEQ0D|F@}*Jq?HE%EMfi7@sYk5%x}l0`x5EoZ^owC&oYyh75&#xXl?EvIya zw*aj25g(Mui#D*~EPynD#61xl&w}L+R~VHeF2zzPBFr zob=j)0(VVv@Ll!R0b>z*%wEubd5xESC_}{ZajEtkkiC>6c*+Lm5*z)JByjC{Z}NSn zpNI6l{YO>&hx{2M6Vv}N)c^146dzTY{~T-nRy?L&4?L2tWs@^zZzI49>6D9}8h7)B<4eVGn8dO-^60i}LR0R}R zUjV|H(w~zw;Rk%PI$Na)nS1i(W~DR_x7*mEgwduUN!d-`IUzDi42~*62BA>F!xbC} zbqH#efKF1pUT`0=!#REzaDleN`&2T+5{3MAS+)~VfZ0Nik~a(W7wiP57J{>7gn%54 zmaO-Z2o7C!UOkd{Q>IIm*-d45cKR)?4P9Es@9zudGbxQ!{mQ8`<1Ccy%EL-#Cn6SA zqhfMM2ZA2+N*vSGCA?Tq% zej3-ZSX4;hge}I9L9-^c@vC;iGApubc@u(^nyy;LD%}HUo0#OhYSwY^0E4P@i|$Go zl->V}!8j^u;zKo{2O;^UWgCUa*E(B)sBsvowOy6e+5@Z*y0U{c@lP!-zAvCgCcC%S zZ^#sxr8m+Sw*@eDwX@xyK2BTTUOT1$^gsPnv36-aN2f*k&x0#AJ-E>WoR;rla}n=E zRzxtm(}hJe3FF>V1?C=8IR}i!{zc_j*g{zboR}*65h^`l>bXsj)g{*T>Rmy?Xl=V- z!N3!F6?ave-_0ZgYyete>`UXsJa#hnq)@9Xgo914e=(*9D9(5AlyS=KFY{uJ=n0No z43=xPpqOtB5!hDI7Hdrtr2Dv)kN9dQ|3=Sseb*L_tjuHWiKRY;eNA)XncgY9^<-{R zJSp2zmmce6B>K>o`zTk?vdbNew@7mZZ-mVY*4ZSem|k%G0L{{3Wq)f@`xH_v?WSMk z$zx=LED{CzhvK>vk)I}atR&C;m4vd!?^O^SxPXoucXC{}hLuikpl4zVFCgPxd+!1)L&1l)~tRpchifK9Vhp{27A+re6w5Zrd-F?Zrm=t!8n6eKZ7I#3osk|SmZQDKCMcru=0@SL(WnwxTPk?QY!cwc9#Bu@P2zl$PEeuL(%{kTd5S{<|JyZ1)V;zUL*{ zt0iDv5L*IRM7N;#p_oFQUxPZuU^Wtnoj`+?+9sooRg-_T0w-HU;pGUwfZe=ZU{;wOVCXpKGBOM)zcurN$`x zTEdr)DGJZG2`qwIGk9#tsU`LHm`51g-gEG_H=a}2a~n)hIOCV5=sum>zaH_q@s#WS zQ5^qiGr;ukO|xQEEvJ1p6yMoe{WEA|!vH%BJ2%%blEXitrsM|C`7-#yv;vJSzg!~R zJWlOy5=end$QIK1G*V}dxSyRk`LQ=ae96V`#;{$ECu8wJD4@D!QNSp0236Ky3(*S^ z&$;*PS360nZeqNoY$5fGQt6ccJQr+te4l)v$D`m%IChzbdn3Ssv&0G$TP7;d2&AI_ z1!JL1!#K^&Tft2>v9Rm#8N~+dFS_~5(*A%wBWO3=q#T^N5C|dpppEqKjv5ZRgOpK) zi5f`Y)lPJ=$1%9Kh8NPQfOH!HTlXvxk4xeOUQMj%a* zjAWe2y`s1Z;9-WvBoAc7k5*rg@;4NSy4^Oa5EO9V8t2S|!X?(dm%#g{12N^$r2VFT z>Ic9<1^R@lpAendVg<0C7XpcT3iK)1U7*Ozk^)tNK7rW5A~LDkUxa9kkkY~PLx z(&GyDjDWMqQ2!T{U*D=TN>&_sNa3Yl9 zm;w(Xj_C+l#!2pM?b#9^axC$$p5)qkk|s%cR?rDI+z6}*9cwZv9I;iQ|r zTEg=F_T7ng${)D?mVEd2+Y2(qh4O;BdBHkb;kgJ!h1;@{}LOR3jt zRl8{XZ;xl2b-CX*wljX`+_o428?`yp(@QI6(vEkQ7Ib+=;I=p${e~TNY@RD!E@)R_ zP{2(s3xx-!-SHx(qRE@`0w8r8B=96`PhjUuYxbG`?bPK_NL|2R+^q(fj@-v<%o}qvxQtL; z?!D?Bo=TV=43s{tze(nJ2!F+gAjpqLO?~k6p)iwgg-uJc6E~%{?U!TE?vC(lpRkND zMq2r(WWV+3t(4z@^ENGGXQLYFI(08lZXHhd*2sLyNZP__l_lpenI)KiNrmSO)?o_4 zUARp?jwx*sR5r%KMk88$NmZNnp5t7_4N^IMjI~C^C0@|SbB}ycO+Jl4)C1vL*CCi# zu8hn|TaQ|0r@rp3%pr+YpQNH&I^|K2*5;Y@DW^7H8}~KXMQ^pg*)D!x zo|ZYwS)^DvnA=cAsq_#+`K)aXmE|9}r9V}l z|N4?DPAK8U2OqdnvJVn}Hx1eKuPZbTqwPfa@AOZw)U|*k^IdVwNpi|H@AIj9x9O!~b*H*mMfz3i(EL`&)jv%k%bAv^ z;zsd1Q_%5hMNL6J*OPK;e=P0U(wCQ1j0BO-C=jC?k8 z67RAM_J0~318`a}_^>~eM!p?|QZ)af)-d+pVB-KkNEdi+jxNH*20HVm9O9{IZPQNm zuv(CMjK+-sA~`T1A`Wq+8;`zT7(anH?ZVUale$RNZaKV=e|Zw&pD1`Ez1Htzztg#> zq*K|vcutd|0wU*IczAhTeGjJ~x)pM0tnFiddVaGqtZ3F!QeY6R_$Jy(I19$L%e(YT zRlkKkVhE$d8HqQm>>CW@YfM_Hy_PVC)x`_1`k}sxb7k-ZZHFyEYwxRbMBI$^OGSl< zgn?&VqvloaD=f%z1nTXqskC&L0J59Zv6NH;g<~E8;yl7@*Q2lE9weijLBfr>ag^P2 z!I>POh*y$leQ~8unjRokW{ezF593@zuUe_H+fpD&q*ZdJ;c9f}kB`=j*M?~8q{M9E zvpnnz`uq3qe3eBk{N8wzv~N8Gm{FD=$L< zsg&=$gmLbBhJmbGQ<_>|$2?+8^Snbgdpg2Qy0bn(pomA|nP<5LyQc89G z2z<2ibH)hR)#o`}eK5!wkVz!Y^07VF)5mBODs>hHaQXCGt=Q;h_1ZQ{X?!}iFP(0? z>!%#b{tnSv5OtMe%?SoCgqbPe=jHFZ zC+TDT2h=+wC;PwlA5$=_>^8*iy?jFuQ7A$h%_HCyCRllg>J!_-=|T#Z`(3Wwwl_NhY&_;P?L zIiJVV9})Z*BZUcW$Tv5`zAs3leu);Av&^y`b_tO761bKa%PN; z8J+zMSux#E@UnXZAB%xhPA08yS!&cujCn`FY^uS#=$3h(O5~+_#4LNNSUWx!VXfLDQSWHKJ`{vQt<(&Gg4}NN`C>?0Qx%) z^1|A(Uws8o70yL;vF5bRZ{Enu8z_Q0IC9T!!?u&Z`a!^y!OVK@c6p@F@+pGlpcg_j z5TAk(is&H<1W)ZA@ply&xu|2Y+U^gX9t?Ia>*i3NCCabL&DHlv!OG!-;B=hWEqwB1Qm`wwwQfM&#m5C+LQmH9mq4JAndN+;ZVA(lh z$=aw!FJTCfZD78Uwq&*PdDM2mzAE`(4qGgK;2|$Ja5{il$>2%%dyX82mqw4pc6%k; z%DobvQR(vsuuN8O0XvU}cp#z5lg~@L{wfbR_hPOQWdg1sdS0CdvYOl;M1=V5Tgvsf zt{$e0*MLYOx%MSN6HX(NGV0i0;udE;$3{!@_b+I5KZZ5zO(NQECl}8ct02#rG>J7j zIlICu=ZU#50k=y9>~5XDLwKe3AK|OyYS#%1N|5NQx@^zD!9V+cMpSh;S5X(k-fcKj zKsRx?`eSariE#2DizDnNpcSfnQwJGmSv}%{2*m8bSazlc2s>!P{%4LtaJRPd#^kjG zIrmZsLbs@vmGpRFO|WGU8}L&!5>KY3>!-s{w5WqB#ke8A{Is{=_aT*mCsipkI{Mzs zotRCU$j;uiMV35aAvI^x-z1^nyZu~{+>*1@sezV4yuUM9biV3?&_@L~5#dn+3<4z- z2c3{5kdcCYnQTl1uQoarFl?S@%)=P(H}x{UK(obQ+@%>oeCI&Wxq~#!0?AmtotoA2 zxPT>~D#^?$lGuXpB`%;5#lvy-e+7(rSf2l3{0o>HIaXkx%bGUGSI9!kF15L58BtTG z*GdXp&TT`OC?F{~eAIF8;irS<0~aKcy54HeBla9I@8hjYHwTZv@$x%Rsvd|yfbgoR zqzm9~M%@#WzjzAM<%&&e_1n@vi-4{gKwopzE?vXmu8~@;oz7TAzvHk2%#-g1IiOJ< zMD(P4t*AnbR#bhR#%TPtux)&)&84cZ%W0KaS3A})HK+=$m$)HB6MMaClIj3C+d;6w zdlFpFcKqWJYD-IEo4a{(>dnTY7^7fe*?gEHO~Rq6OWl;Tqp^x_-=!ljlckW0&VRCr zP_%uLR(EkPv&kEMNmG*PJvs)4OT}n02fg(wH(cgEfE(=t)dsw}MR?x!rD$>QEs++L z@2qD|4ziuKQga4U9Fk1LC(tyY+82hLgt1%dOOgxL*_P5Q8$~UPWKz+cSo_RqWYZFF zcHq{dQ(`H8sPG396r1V%f$lv((a+{FR?f z`Y2=>rGs$QENmqNNt=r0-}l6WMs>DkkGL0)h8xBr&=*hU9L9SdY(QmotMdGmljR@L z`}=?a^R}_7yyvEoFpiBGL-NU?NNh{K9@u}22d?vGWM!q%~ ztMS6Grmn-zi>=D2sH&>-9*<100X{?$q7j887fSFEl-9Y%CP)wnE@3pf>a&mEyAS1{ zW=m~K4`(FgWo(hGC%~(WLf_nZRAS@)(-XOg_aV~4-c)*V>YduS6w*@WF5h_&YquBz z{N8E3?QeIh920CkVnUaLj)cUAsAdj$BJ4Jk18F5kaG5xt0vZd->tFb|6Yw09j@0|k zUvEbz@VU0Bc7B-pS45Xj8*<;?;{;ROnJe`4Tn6IU32K>KE46y(;vc2LN3}WeA20mt znUctNWnTB&9EdK0XQwSbZ9T;=0xPF2zRsae7;`8E_um|!yY9hZS4lqvHh2b=Z01!9 zw1kKTa%&4$2ffdvQ!zW2FEuQ9EH2N*OHyc5jHiX+HD@znz%c2!{2t-{vR;V42fy(KgOmF3WlGI!^av)AiSv&Ox6wl2R>{VE0R+je&XemLuh<@4o$w7&CXIU&G_#~7S0q{}U6G%A zP&#+bJ_Xj-Y}!}n)R~h@OZrI*?K(}FZ}m?S+oT5x@64(FEcD6bf#nBh-@_GzE()d+ zSYGO-1?XDDNx(xI!{P?C4`QbA5`{-sla}tya)eGD@>il@JJL{m=QYfChfuv~mYH;= zPe5K}Kjn-Gw)J)7WSo|KJd66w@o21YqMl#Ez-E*jADJ_WBnBPBCxP7oc6F|{Y%!~y z770AY6Fy}3f4BB0Cu>sF33}jZTQ(`KlK1#t4>oUj3;M%N`n>^ulC4i_wIg^!^FJMW zkH=bMCkJy$w8}>s8?dJ0rWYt4dWkFHcRE|~Dz@HQR01Dtm!91@jVW}CWo?*`68oF@%d!%8x_U6sOv^Cy-9drP=Tl)6-vZep9w_TX9$(&j>g8Q#0iR+(l1T3VRf z=M6X3;Qm@C^P@GrtuC$TP%3*()>S{#UKj4r7JO|#a>-=zmLDgJGr&<4)DJqCy+gJu z1X#P&(cW!r^x5xY>eI>i%j))ndZwvhS@hX0b&;las*agnrRWFArS$h`>6n)WDoMxEr~8Kd>8s1!lJ5$jX> zdGje7cT@mAn8mObMp#Y6UEQ;n#a=oT_g+f@Wt8)q@q$;Gr4w`PwDsEac>BmzF@IV8 zRB8~>@jy=35!w%I_)+{(lg^Lc-Q@}{O>OfFu8&IpqYmZ$ijuB(Tenl~8kMah7_XD) zu-Fjs^+~J*H4;2??z&!b$vSt@HpcOCruS0cTGU72g6!=lQb|I-n2U zXCOY*b3;&2BSJfS;jUsHNjVe2u$X1@NZfNpFqw89G%)B0FD;*2T(jVW_|rH&-D1gu z>@zO+@DF7t;jeC$DPTlnW4{Q(*0u2IzT@8*bW%p^g2t*MVsBY;?8jI#nPE!I0OSHt z$N)4NIMHAM3_-haWdJciyTEu1^7__sqC(zWO>Y+ZM9m!A3(BDkk(%M;LY);Cv8oxh z%I(Dr^sH(&sUkm2w`*;>8gz|I!h&iv1jO}9<<(7vwkwV$P@`~8wC6rAL+Fx!Dg(TA z$x*x~-%;?`4C`9Rw2TkVJp%O~n*vL~yo7a(F~^*~(e@-VRB~gwCa66o!W?k;fZt|lXDjDxoUY~J{=|zg;$^-LA%p(V$AcMfiw-_(T?U8ozLQ{#zGLSDo zHp+Bg>6z4Zs|&~y;hs@4cw+fcNmGt=iJ?uL@j32|6p};k1Pmf;TnALErhF&Z48(;! zgGb>is2wDZdlF#x>;Oou0SyvGD)i}L)F2XP@D)d9+EqY1{N+KACP4H}I%)qR{k%2j zxT{cSyNY0sD9t*kmw1K_`z`Ghjs$lKqc(895w{D2cJL0o%Gy$^T|!|Fn3YZqwbq1Z1yq19>=l+Ditv#@MWz#aX4g>>4VFiQ23-;6B(Se)nKdM8Doi z>b1u-h^Br^DK_zV@pHeSCjz|w6~Um9BNt$^9Mo4ySP~yV_G{ zpB^E!i0(J=jGA4%dQhZ_1E!iGpv3yIY>#Vs9R_#g<>2n=VdPOSYv&g=o(CuOLR1Y% z$hdBk)q)5G1gtjH?Qfx=6_=tO1Jwj3V(HL?*jlRsd2ZF0SPJTK;h+hmeGtURXt}O! zCv6q-Eaxk%;2*`dcU8z-gw(Yph4WeO(az>h36C1xyep9OA1HbpLMuvx_=B41C!-HeBo6JrX7NAO5L<-(P zu0>2BYo;uUNvYVv#Nj%(3GztV3za|eRKuqT20UIRr4dmv8z+Pt;G=Z!=D5+yNK9%n zcNU4L&YaXrMOTumT*yJi8L^1t=7BYMTy{#mom~7eA+AUqw@4j+K9iN2a+sTJK);%J z`K33CSnaDGibE&VLk2L&+CVxw=N5G7O+PvButLWq^%Dm^ReZCVvF3(=}e8y!12Z;j`gcC(e3~+6q{)Dbj%L zzvzoveNVFOX=^rBg0AgvDj!RP`#{nJY2Xj_i8vc6sMjFg zArMO9_Bn5lKrMn?(3G@8y}X+bcH?Xa#HjX7`4H%w#!G8@n`@}d>!Wb@?ti7swT4O5N5DxMS?J%#o?RTGWeo()=aY*8hq+I>%QJUfj)K|AMuUX zW*OH??U#R=HEAqFn}VK1nc(e%aL?myX-Q3+;VA!@ewK5=YEuRJ+H{s3O<+^&wW<9C zL^FtL|7%h8Kk3r{MTcf!_{VZPC8`^a|8mrPR=p-dd(P(N**qG$1kvk={e|#QVK<2eX2R!~j_6Kz zFT^1c&7HIwURZIo*79c}In=bCMug0L=%M0>BX;dL;(afZ|HuW|%A+XJ=8`Wq@Ne}7#Q$8L#4iUi9TV%Zl&6z2=22XfUv>lvF?}= zC%#^BLgs^%Tgl+P%3QV#&B5n5iyz=oTP@2em%K8DPw&E^es9C*oIrH3q8cPb$Q(u; ztwWkc@1ExDh#-_ms05EGk8p#~i^)sTJTKEk(|0{v4%d)Oijl1J5T($+VzUF(d{`S` z^1McoH_UrvPd zDx|0B*g?}NeCiVwL&Y3n2XK9H4Up%7o%?CiTR+=v?b<~r4V2Ivuyp7>pO@k7QyXr+m=XxIoFt270j zi*dZd>7UIjcl&#`j@{AICoT!iu)QIhlG4{IPtWI8iEJ`|&<9V@y}oue~*<*q{2sCAc;-a1!+ zn67WgY^JD(W=wbm|KNN-1)V{)ERT)7*UC79zt-aTISBSgu`Nvi#bE zQ`m9Jru1Ce!@v$8_64Ry2Bh3!((0%0=q_Lw@<*%NwSrSls|?phvi6X!aC7(wSBgQe zs1)wgIo2(pvVuD+Tc1fk?WijyQw|CFfIZN@0k+P~m;>?eA9t8ye9%%~@N_o8z*Cn%5l_nF03evA-K^m4Ci&D546 za&QegdAlRT)e#%Q-JYfoLp-~w(t=fGVPZ}i2wn9t@{dDi)4tfZ!CczU_9Z3O_pH!w zXv*$&yM=C@JL%oNh)+tf9s&5IG#~xM7$+x~&6M$s6;qtDz zyv(op(Yty_UNSKB*-!+tAH#*Z)TNQ%n0=e^c6Fg#{VjHI{DmaP@?TiUe_-?!qc~xC zz<{!KLM^SvrrbcvZzxDETeI_|ZOJkx-$QrtuK(-dRP-vV7MS&1jI=aaBphLK zJm1ra9HvP%t7t^8B!`n@$r&Tm*{a>PvuY#a@|bq~mHExYE<`n_jE@4&j-eanPEo2N zY~|ouqTCPgc2kPl7ZRgGf&p5yAZ|$9oztH&Fo>MSlN;>)x*#VVHVnIFU-I#XtNS7XvHVX12#6;{QPHlf@F}^(F=t20CL*E2Pqq0))GB!N~39) zCY&FiX&2>(eX=y}xkth52FSveZuRwZ>!Dy@*8+}y{%1@x{P^w(Y8-V?^nGMYYafmhFkah6f?Z#`hSLzdhs!qfzFt`9hi(4Q z1BQir;vI~w*hxR~=O8QkQ%*dmZvUc)t;WrC&P`5hI~bvvwnPsyW0kB_qeCeh>?cDs zaGu%HY-T+3g$jB7Q6FL%Dl7sL7@i;HA~`c6vJ-wRQT2@0ustLmOzgPC^`SGhCr5#) zy`)DSbQbRfi(T^2neU;-2zaZ*J#fyMr!^JvN0fm6(T3Mp#0BF-a!jw@TGgzJ6dF+L zoRpE(-Y5JVcROdiu|LpJ7e0e0(Z^_(_(rHn*;U#V+6K)>)X!_QDvnu%Ad8WzDg)dC zt)%qp^LDudMb5mt_E)N*045U^z%a1y=yi%N6 z7_JvRrn+7?sOQ~;J&5IKN##jotZ-l83~uNfXvNhX@Z-~LnepMwC|y)co&dlsFMEXf zsO8;bv~K;#+wYL`VbrljxriAQ1=SdW8d=>O1^wmV5Q}WP$%-soZ69ykrqRc;;x8MA z(dv%_;By1<(;^0tefmMfpd+^6SZFCea#_%O5jVgKhEQF0kVxh=gPZNjd8;Ug!x5ma zhC~0NBUH>U#NrMjvBdry(>E_QM6zDRRE5lp%v#*yPstiB$&_MJn5c@4FFs7m2JJ>M zc50O6tl%;c9NH$S0>(R+76qVio!cOt2ciBnPs;}HMo+gHx;4eO0wb<3COH&0Eu7AA zAKVG@TDBkVjz-!tDcX@q;cW#Du23PnfC7cp7(9n93P zk4gd8g4_hoAug{!Lzz7JJ38i2->YO!X*pm#Cl384z-p?l3>RXq5I*-*&Oybd(k_nQ zf^*W=>07Wl=%Df{#B5#;6Fe6Kq`aqw>%oVT&L&h)LwYEZylESravYF8Jz3LUBXJf> zu#AUj#=zXu$}!uTx;Z>M>+*uvp*f}QEEA5zs96a6qyenvvo;XycYDLOBDHtsh2F-Z zFxzAvK?EwFQp)BJuVP~27UM?7?l^}T$A&^%sEqjWYsTv<8a@PRDpivAWHIsc-7 z&Cc>~mcT#Aj9aP`jtk$J@tL}z3Eh!M1K#Tw*l7?PGYZ*2VRDG|L)PV3a-;w$B3tocACZ z^3D1F_!nPyFh)HpGbSNXAcZMh&UBg!n0r4DVK8>I7QR;uUYZNlghP=MzK8*ihhBZe5~{`n#Itb&zSc?_ zW(#FNj`V`~Ra;dCbh}>!kYUE#g}SJc+`be5c$|Pt$^hqR2{PT{2+`#v;C{DZlv zTV@4V_#uHFe`F}iT@Nl=5=?Vim-aBk`XER7^=1hLCF}*qY+92@v2Z(RroFvOdU)XuUXR=emDO{^F>q>Pm0^ z2^fq?xay^5MwM{oXz#BD_85cwB$4V^0A{Cq=2?2w5SL56g)w^RuDu|njH7hxuy$iK zvA(ph>>7xsq8yW80?Cs+;w{&$cL~#-$K`ij&-I&RZ})X|NH1;ocNr~4cN6GZ0qBZt z)AdsZfftN}SubXFc)Te1wb6_dKEso9OPBiYw(Dj3m4Mfd$0aLgTyOfr>IBElz!B%B zzqWgtTG`207^t0Esu7r-r2R-z47i7IKmWHo+%$q*^$(DvH?ZQ~wrAe~AGGM%O)|ay z#z4lPA5IF%?T$njEo!)mdfUO-Gm;3{rhGM*)W^EhCu5XRsS*|P%xRh?IvC^u`FFKP zG>d!DEFzxKcm*k{9u8l}^_{pdSGONW86HhN3Ng)eZd8bQoOLixkO~D9hz5}c!1>l2F^_tUfdkPb4H8aw z87scKJQP+fsUu}YtK{^%r9{pij-{7mO{FWmVA2M4LVs{!q}J7f2wIHaB*mS}G!k|7 zMdU-^+!QYPg7!>s<>bJ1VC$6WN;2EvPD6QwaWqR@0=puIox>o7(5hI;1F6FWC2)xP zGpH9ODaxSZfk3*H%R-@W+N+Bm^6|z(f`EqGZuvi_ym&%Pm7@uSkd_KiFN?Tfg1m`f zhwqvy081l;e1Yu@1H3Rk6Oq=rAS(3n3GRO3Q5=2K>NGHL+OF%#P-~wU0ACZrwnPXP zXrG|GnXIXSu1(6RGqJKkFy{qfl|U^8AM^9!#^R%zRSjjVf(f;23!1~gpr-qcV6%s$ zC_jr;)m<{mPh#e_WJ3^Z{oO*&X0$Iu&lV79UML!uSNB@quZ06I=_xT$-1G=4r9SM zOtow8sE6IY@MHn_T-lj+c~fGFW>sJ4A;>>*f5|i!l90`znr9x-f=HPoNkh~ZfXj-= zAR_2SE)LoA2|-lkgdu?cT1J?U9Mk+nJ68+_c9%(}5AUo~p%XUIcMnzxMOnS2$yovzQ6?H*`ad!GqOFqSC@u-S+9$- zvuuMm**qOk@;o`+s6SDgq(5A3t3&py`?$?jE+7j@Ry`B66-R9=gT#viig&VV1S2GQ z8d+-McyPX>a49?RMibVEgPtYEmQ%Kyvq>LCb8=ndRybQ0e)28f$0hq!2zd4iRzQsf zfOlqp0{8+*9aG1>9+1X=C_hH7lCWO`js5~!pKRPF)u}4`z-K(<_Moewgz{zo=x7i2 zgmJu;UK+~ht$23j`{fKKCQ0zIQ%-RU?Y-#Y-RNkO->1h~_NQA4LGr=N=k|7e$TPGm zyVuBRSjV@Ew#|-lX9`yyF!?Hd^EBvBsA=|RP6nx894rwc%+*3p`beBB`x8^QhG2T` zI}b|%Pa)61$63HvCL+u{pgS_;WNYQqh0O;I{nWF~=Omi;0Zw()v#O>whe&B=S^=hc zAW8!<(H@{&pJ9%1pYW#3vPpl5vWyIW**9>q{2N~R4@#6J)&G+5x=rAVZzvBd8Ni!w z62znJ0FBmNC(0*XH%#?RF2>pD?fH>#KOSmG1N1u{dnn^i&)(!nf$usG$j!caLK08O znPH>WEDxzdk2*P{1k)-dx?ceUNivN?gJyx;Hx{SmIv7R!&NQNkLdZvHT_l>1Wu4(n z=F6H7=*crMh7wjHH{_>!5{(>AhXK@2i@?~ht+kpbQm}r68i*-~)iFGn3v1j0eos1+ zF&OmJ&DZ;3=W2J?;HV{_A1xmH^-+#M=5whW(F;5x{bFg-okO4)=AfTRRm|ujOAvOS z<57}MoKix8g*L8+JJfKukT^))Hc~w%K39Qx-5TolE=d)24pX@{&R`~ja+O=us&A)} z)HVd|e~{1d3h#Mj5t8`SmRg2u)Rmkxrop*{E=aXkhUc{#qokw=pFK!?QB0+M`n!Gh zz;J`1(S>Rd00@9U{gHHkqiThepzwD4WhTH0`@7O*V!mPh)&y;!O^0csB7p4BR5I=~ zYxJ=JE`xgCSJheC17Q$g*~{;{$_NB0;&{`AgbPQz_Djom8E)He0Ip<+SUK&E@BD>O zM)N0##-Sn{~Lk`?cOFXO@OF28NS`Bs-w66FTfa-sn6Oh zg?t@v{c%J7+_s*JE$RpnrO}=y_RF3+zO$fO%RUf2UcbHy>O7Zjy5uDMZAb{9mDr4P z#@$j3q1$M4-`!uD&S`Uk!o&hV>unc?ayTznq}f;`a83(ohe^G;liPcDf6nOW?-|62 z6T^Ie;|1dvqs{KDj$>%8C9Z0|xvl8rPtcmkj5OuWc!DJYkqKm?OLL3klH~|WL&Vey z`q^mw(b9TK)RP4AA3IsU8JeX!u);$T|oI~E<$9Lv_hIz?C8(U#tedl zBgT$Us|~!*qlJR0JK@b##e+s;ZO}8wE*K)17)<23r1vi@`CfdG?_v$q@0a5P5ciVw z(nltLlKJa1_AdYplQp1BDW(^CJo)=UPrmmCj~94YP>P+u-u}Oh{h7W8djD|Sn4_lS zw9bLz^G(&mU}BW8j_>W(%9J2$nsUuLW07WFD1`?CaW_1SrXi>8^{wNxHev|A1XfRV znc?hsK9}sk!hPgxlcjDT+Ii9{(tvI+KrJjsb+0`NnPs*4U_of;C|$Y1*5miN`o#JG zX5)))!dYnzQRp>UF9;d`6^nt_Hq6dM96g)TB1rp!=AmnG0I<}NQhaA~Ks<5A^2h11`G;f+Ug3;U+PFb=5zBh~b5O zjG`s-*=9~msv6Hwp_Z;4DNsvF`(8jh*J5+S{_OTmHE^pyAuO%yF4l|Buc0Nny~s}# zo5LP^(I?961l?rNLS`0BI|Pr|68P~4^W#4ZjJZQEm5f3WetOrI$r)CfiGX^^N{$EP zFnn*ovC3EBsAvNsQ6{60IA&f6p^B;+`4BSwKM!%HrInAnkB&o{k{(uHk ztR!=3qg=T`q~mCREEDU)WoR#t`g1G>`FHhIIYeF+uDa1T(&!AOkIV#TBFXv9(jgeJ z?;F_s>Dxh!!FF0jpTp=<3kYyqM5BK^g`hYDPd&(g1z`tLl>{68sId$EnPDYUVndW(ZMmR9isy4b!g)royxuH5CBod@U%jQ(9$E|bH?R}mCt|<(Drc&8w@cSXsK8SVucx0a!xfOHpM?aD?;pjkQF&2v_U*Hdo=y}L!s(m_vgi6Kh zagOf7fx20p-8QS(t&}9=jH-Kra@YQ-?hfB3z@gfYi$QKn=9K&-mNM=9@q3^?zm|Y7 zNDU-gs;HRreXNV4nv4c@ph6B<3;MxXb6$NzrWoA~ zP84iCl`DT$R$Eex=-S)N0m>$0Ihs;$vK-INun8)rON}>e-_7tUl==$&?(Kc=Qmhuw zcNeX^RG8jLt&xh8nw?gl9fb}ey=YFX*w{~C@j?!xzXjEAAEN(mT>rgGWoQ29B~`bo zl-wo*LeB%WqjNdVzF4-pWrBa8FuY2M4rIjqk5f-K;s!{WhTnv~-e%T~#)KQ9sHEs# zJU1CLxj1sqaMQt1?l_b~N%~yyikM^S;84rz;rd+Ae8|H^@njl8WIM}4H1A9w_V#2d zea0lk`{k(M%BSIkd#D(d#fjdQ=koUV2W3jYNnG=h)OAB1gUu_B%M}QLT?0du4=~AR z5}&AUQVR#rOlSV4#WXkZ7MZn-IToi!&xMcsDqh%%hp3j30sJU3 z)#Sc>_K;a?jcm-cVUJxJ9kVkmwuVzdpAs!Dh^7?x=G~!S&avJ=aP~1@IrB3h+up{QX<)_Y3Fi`Eap!C~+Mkh%=J=HJU{wov zS2JZs@b{w4@grOWIElG`*6Ox`d{rp+OpN z^U|8RK{dPU8~lYE^in-p%b2jAUf!2CIf|RuOg>FrtltlytEuD+fHRUG)@JEw-SumJ zy2M3=hKrj^;MlR-Jd!%SLY75uW(zFFblY5Et^kPcp@A7VLMaU{mCA0bG%uX{SHrI7I!#@$;tLTm=i1~x zDau?9YE{9YL3&685yPzNb=YpvnQyl~;WQM5wNc~94&;h;+fB+t%h+kbUeN8E+Q}`C zOS6?QWa~L240l<}dyv;xn9&h!Tj~o#bBm==G2#RP$XKEDD|Wup;Z=_8voG)&ke19} z@5*1+M;vVb9NPW8KC;_q_?BT;J3JMa!5Wzc7n78lux-_%6c_Kj{DlCFHh9J*A@%3c zY6K1z^+P{J%X-FmyUT<5>FDLsFg#(&$*TZg^B@G&;d1z=nFye3kh*QjvK@fWiYw3z z@Yqgd$y44P`x&aF7W&?-nr-gUOFi`Sae!kuLz}78c+{Ur8p-h(qZ@+kje!7X(OP`4 zb)WMea#@9J4X;vQl{U76C?R_&B8bhn!3g3O1$+z`@$FY5`X)~+t_T4A?YgueCNUq2 zKhl}0B)jjd-w^YOc%c^NexXXk=KwV7(V7;|1LmSsXZH%8ZAwB2pQ2u{xKHt-a=kA3 z>@Nxui^!y5rcy^}7Sd-JI+HI{yeOJcUIdx76oohALck>Js7NCYAK4DTNj?&%l`@J~ z!7g2ARNghzzrwJ5a-9|cna)aM@UQIolA(XLZ+98FNG>f`(XhV#u>dDCN3t4|OtEvbS*3#R5&QWj7Tqz|Ib(q^%mysFTK zRPs_Si|$Lp675)bpsdH^+Ruqg-PO6Bs^&Tcoe3UF2{uHt#RJ#n>P*Xs2veoquA(@3 zbH;X!I?5ke>P99u-yw%bD9gDJ_YLYg9ER?@2Ao$Zx_IWVXy6!JZy;~ z9BQaKw5aA48~+h2LVVhML2=mW;laCQYB|WvUY11ArOABYs#rJ5{T|D9;Kt!=^0+7q zc@jk$oDkUFkDy*PD3Q~!YCM9HYWfoQjEa;}YvGeB^VEAt#UNt~LA(|fAN)q*stb-t z!Vps7uf4dK3g3-gTo~A{0=a;bxYjg>bN*Pz?78r;ad{Kn8Zn{erUd9TBg+F=tTrxD z0k_dx^dX@a5Q(wgoZ%vP$%BjM8hE{4TSrLdTJmfpi8}ijo6xrkp{hwubE{gi6!>jt|L+6*5p59OJcz7rif4j3xf7xnq zGW^@A<{yjMv0@^PMO7fD@vY*Rp>?Vy}rG|_fZ376K0|g0t}Ndi*wRQD%Zaw)KBv4yM|MI z`~9pEyZTQ6@R4Dtq;r;I2P%}tX|?* z+VE!^`%%)q2v%Oaw|~026s<6VQO}d7ft%}42uFtM?BZs}c zQFO^ad*G?4dg8CYK_AwxUM5#K>76V`&g-n*TB!?-eid@uG6Dnd^%M8KA7h?>=Ev0- ziO@rFfnoVOk3j#{{jx_6kIjV}!JDg$z3JDdA=!x~89mAAXZF!KYbzL+=s`SFEw; z-&~0n=4@4IV8u1>WBi6t(FUp89V^4E%i}otY$UT)!(BXPuhkr6tKM zr%LSoBjOza2r7^uh)rp_5H4ckb5>bwUpm1oL-ZidCXT}_+^JQsa&lQ)kC-Yr2e-4L z_8Zn=qhB_qWf#z9ENnwlRt{WflYtyS%w}msGQ!fxTB}}a9+#NTG_NRsl|L=^N>i`V zeZL!Kqc@4wV2lW%#mz=^a!kSZQMzGM)js=hbFlykpsGELUvm9NTTRxk=Fy!SPO;bF zcio}=7jF+!t>l*6t@C)h{l{_f^SZ4R<7tAW?4EdoWR)|yD1{-$n}U&d@0IY$+52>v zLKULE2sFDR^&#%NM)}J1dY9O<^D_bO568GOna;phcUS!#3+MNqtI})Nwl^wEpQ?56 zyWxlp?4CQ5_QasuxZ<_Q7B`p7FuSXZF6#ILuBW?4W{LfWjeN?6FHaHNz zov1KYqkxs09-~thxHg*1*~as6 zj;-$qq0A^Hk_a+v#xwA1M#tsM&>e*LQLRxMZ=CoEPISApr*HgPsyV*w9x$8eJT)gW z&`XU`i`)k|tk%hpH@?nf%_6&Jo&0dJY?>w5(7UW=;^y1$Jy7sdQKTCl<3g6_Jmya zZd^Y~Os>c&@CV0GUI18K%jdAm=MY$P!FSK7?a|ZtY0kl$oE|_IY2M=HZcqlyX1EM871Cc^lca6=@MJ3?rcQeswsVRjL)qXN+ zZodjPlK)UXQI0E@HK`R1oJ-etdj;zawB4XWj?09sr5RyO?`ror@zNGIN7GyYAAG*p_j)tXkh@SrDVT zdZirf^^)nty9i_!=|{cj!)NCXeJAUeKOd=9S(Fj{7M^Ph_F46ZFBRUlMFuzc6WDMT z*IULCT4+9bSg#^>$3Rv!$R_YhrDdbB!=I$hiVXbjWLu{3nEp=>Udr0rhL=}CdU_;! zI!PJN>Bg_oZ%!4g;;}Bkr<^jC7Sl?!RfgI@1u#t4o2>o(H3W3QJ4+x-g8z%4<%kOu z{#YbQ{8PoHgk~nt)-QpY@~HTXpdg5)^?EL_a_kV&Dw(OZx6=_MU7%VtKZVzy6!$@z zEP)r@nwKKfsNpZ<{T%v6I{it&Q%AzWoHdRZ!z>FOEtk~H8Lii@oUybQk~t5R&&2}R za3;yGE?Uchm8lz>%B9ohH5nhK=Zl?%a#Jb6UiM8`rmMniPgvvFH#HLnIp$FDDJ6-{ zt!_7AD@>Hyt!|LN(A6>E^z;+tRBuxU(6O}-37lQKIp1KptQ&Ctn$-Uy+QrH8??K={ zNa{JNYqlHzngpt0q@#nEQ_?GHpP0n6NNk)ji59g8lmZ8#)sYgRoFyuw`F+F_kxJE4 zwF2{o7hgMGyOvM9khDRX1%Ya2%glh?nKER_&9P*{9xH?wrX7dFd}7L$nllNO6`Awk zRo;M-QXqOez1qE}&E>K;i7gD_bi@2;WVjJIT>N6lTrdwuK1M6D^y9*0ighaQz4-3h zDQGF>uln~h8u!`qPEE^?IY&E!x#fa!b9RiQ;{Pc7UPYTCT+8&>z zZV7v}!HKDpOi0j>9HJZ>DshEit}7sZouz8Nb8|s5E<;T)ZwXmgwg8 zo_bfx+Y3GgV4y{8c)Be4)HjuYJQiYwE|>QB+O0wvsGVF3`;bX$V@4AGnqK_c-Z|YcEy0Lx)lKn zq8fpo-U!~o{msT|4OM)1hP$Wko{$+WOj;jwH?W1rfZG*Txt2DD!GfXdJe#vw`94E` zOPEjt?XpH=m|?!P96ev(Ox|{D=7MXq!(CEog$0}%>BAus+(@}M(AV`6o63rcf2tJO zz;QkwA0H99K{>|_Q?f<3&K?P4lj2eoKR3pdX^OYI~bGd5$b~zd7GML>;hTm}s<^)ri`TZhG%7XG-BJmQ3F0O2evc zfE#CAET>!Pc%62e%t9~ttpKVHv$~0p1-A^}*ZVvijff)ZO zSbdI5GLTl1cUZbO*Zq)iM}g>?GyU>zqqA9+)FU8qH##LFQTC58hn1`65Um5Rc zx^n%T`a#clh^OLhf4=EB(*aQ1~kw-RIB$1r7xa08;#=%xf>b8fI`W{9a$zv z)Z1iG5f>%K+4W2xW>E~FZUM*Apg0I0p%|dAV3gFf)dI0B3e7Sm*kTbCE{(|)0!I0|<3^E~da%^OH<%#$ zu#G*KdHNWwD8pA15( zfyNs%?h&Hsu@p(O)2>yf+cNS|Gt#uvBGQA>x|3qdN-Z22VHX1}Lxh7|wU37Mw|jn3 za^VeeBHXQvq2D@X?(3wy6p#SpYLAbrLT8ckJiv)E6R0)jaMqd>n zaB!&*MdV(1vGobizV>aLdZcLi$2a`E+H9>B7rRtj`3RM~w2O6%<`X$t=uD8=7}xDLkfb^A#Fhl$ zz{Wz%`T7ZN;Xsz;(^U6#0mg{}TWswJMZ50JE}YvBt5aP`4pG0AU5FBBG43R|XBq$W zY7h)J!ca@^15CbF6;$2U^SM=?hEwV@wtfsUEmc39OH|U6P9T@6BJ_7#C5(j({$AI( zZfvUImpRXSlluYrhV-;rIi)+0ngNnykgd@S{H&d!r$+4cx(r#F>x$MxzcwyP^V53g zT82jUOCz%y15I?ziCn!uF$BBD4srOP+1OZ5A>7-sTJySyW!EV0GN`^0sL4uyf_1fF z-3V~c`*=$yd;XAzzNVwfFhgu()ZwYAG;z+{!wIUNLSfU%-SQ1E*cZ{_Ypau zXfJs{pPKf><5)bzJ$v|y=fjuiP&41@Xw*?nXWqrbSoKmtOYs$)_PjqJbAB2C_Vx6G zi!~6KpaW?DKYFS&I~_e*+sgRk7mF`IPLASpH7)34QS<}0g~KnH!`)B(Hd-mm$k*Q{ z{U}E3R41&L<(0#f^QHj2?KkQ41-EF~ zK{nOma(ulYgMD%5ReidXO{Z(%mLbc=IAZ$e2NLP7{nG@F2j)aC${3%_4EduEQIh+W zbTGhmCKuf=${uV*!+c*9^1VJN9vo9X53#rx7EyX$^LQ&96U6z#hOjhMWdggt31$fF zO4E4ac&^&ecjMozRPUMX8hE1Sbwed5SD6Hi^56`FzOogdMqVPA!%CrA_31Vy3NJdCN20NDHQzSB)UDF20sM}oG9mue zA(!8>BiBU2!#&}CO@r0^rKCn{Z}nXt(U$BP^~H!folnvyc*qBXWqT={S!GO8 zo-H-llt!=QnhUNJxa`}OAeJ}ao~G22?Ty0oUG#wAZovD~0%Xiz^D1(QU(S>H?yvu& zzu|ShamN37{`WMU^Ub&TChB#658u2YS(Sv|0ea!47iA7hWwKqVSTiKDfrSH@L0Lzw5azpU$@@+S`qDYhP4S+0!BtNFy^9E=tkWnH&(`0U8%o?2|@p z{cjyV8rRn93?GdT&ffkAV0_~2;Pnx=E{Y!<{Xri2xQdrOshur_g@jX+(As1nE^;~F zaXMZ7hCx6h9@{QvZ^+y_2YmJmu=%pzIRB`nF_KVhJT5c`XY` z4QyzjbSQ4VAa1v?TF4R?#uplI^l)pP!lhaDPk{#m5RY&;rMV@ewl=k#G5@TZyo;$m z<*mVg{0dx?L>O#M$SX93sUu!XANV?jad`K z$fUbqHHqP>1aV85l%pw8L6NLTAV@j-c+ccXUvPm&U1p%)_dX8s&F#DauX2znE1ZjD znAq?T!INht_>jaGAEKl(cG(Vrebhf%1(TD$4RPZI!C;!RJWIM8wv|h&Af-jI3B`GH zCDFjZU7WNlBvD|{oS{#*&p}fV$E{$Qnjh^xj4p>f>b-mfi+-zz$1V^3wC96;&p2h! z>tma;-;d0q7=q2`JO9&Ap;znn>h!T1=}W60uZ|M)<55F5Ix(}4W_1){wQ^Dt4~ACh z!qd2|HXb)6n=`2~dmAJ~bqJfoljP9_dvXH2}ND#^q)8 zp}cG&G#u7^IRCw~F-mEI zvXgh+YOUq#2F{b{=8)46dl^KUpz3n#HbCVAweYi3*3;t|ojN(?QvCrOE z&%n1*W(KXQ@djE6&-kwa<8Kfj=5J%W|2Y49z-U(6u>H0w_-^c96hx^+x=z7BK)bNX zFIu)~8f4MTb!dzuQX@ta3#8^@-|uiEiw(ydGkwbSq!k7-m@U3ww@=^ba`~9lg^d#r!bCHH{YPZHV`lUT%i$ehzc18^uXqYWVJoTNxO0tuhw! zXgvtWjEs&#o7P0Ww;P9KH__Z)Af996!s+HYAH-t43m4de^AM{c*)Mb=V#piRXh9 zM;B2~yCA(gE!AJ6x1qRuF7r~|eg zQ)>2dNj=>hfQkPVDSS;aJAxY_zc>`h4+5MeKfy-ya;$Lh%=k+*m)1rosRM#K*Q}rX zE`rdqA&`&_#Aa~vgUx_CT$3-vP~+FPpgGv(1F8m}D&+Pg+D@5TUmV~j^i zRp3yED0>HtT(!ID&$@=$@YU3?58JVE9_kbqMTVZ*;;8g0B;H`8Y^wC=t;@cAZou1# zLsO_1Zy@bhmm(f!ib~TTD3yYkHvfmUcMOs&jJ7t*wr$(CZQEV8ZM)01x@_CF%`V%T zx-s9K`6i}g?!6K7CnNuyjEsyt>+E;$wV&1BXrxLGIP!u-7MLzNkxf_-uJHSPsC1*_ zdg0aNX=JqsFEldkKEBlPh!9)*9bubN5|jD4UOm$Y0-$fq+O#2T~SD1RX~ zcv#%Lr2^UECYBo+FO@g-eyil)U;vwJ*Q<2&px1sBT}D=4Y!fYpjdN6g9*aRhcoq`D zWotln#jk^b4)BEoZ`Q$hb@QaqtDR?N0QULkK?zH>b=HybFGTG|Zx=AU2#na|D($tM1DUVJYy4;5hCx3P40SW0VvYqFDbFObu1b zDVGaW{{q#UwaIa6_{^sM49n#J+J5$G`cS3g$Cq;amg?g@JboQze}Y13=D~8Fl668w zllh%R9kWGmGcpaGW6!~g!y$mk6O=h@t)432bCKsyHRHNdx(2*1Sd-Y}EneU$R7_n9 zN=23*8^Ul#y2Ho_ZZl3*DbO53GLVi7OiBR-#94LNA9Ng!)z!)%tAN{=IqY47V#iMs zdlD8u126Y-V3c-U(tlg9r~6&PEv!MGNB#8Hs8f^ddu3{jW3peif&`#KV0bGEObn!I zBqhonjTKo%7xup0P4yQxwL9<{ZMz5o2^-4na%VSCk6**-#CeJy{`^I4ieA2HCnAGg z_7a|98W5A}QFU*@*>MSnbo;iF#yNAAQ1d;aYkq%fnM0L*-3r}Ad+`(!$=cx|ZDom? z?!wcS8a>BOao@#|6^U?L30s>^6hJ#UU$fws{Al0Ik>QuR{AgNi2qQ^o1Zv*4u68{( zVsPCpQMJv!(N0&^<^a1Gpc`-X+SlFWUft_kJhFH;>G`SQgu`4fAn~M1DXuT7GkR-~ z#1R_{zK4Zg+KdOH6{i+bX5d1B+=J>H)>ZczQb9NDI(*O%` z7pMwIrNh6(_g~~XMuz{1`0BLXqvC!j&C8n|a&PF5^P`Is-LSt?g$?fRqE ziW`{yxU}?)GXcq%$D}q|u#I=(es;iI`D|>v-=pWK;O|)E)H4U55K$0h)JXaS6Z@3v z-X@}Y;g)@oLbvHJ94<%F$+@dd-ml-Tr{Z=4WO!Z_v%rGmlktBOOduZ=Shs{5?5XQy zy(QwBE-(Pn8DBIhy~>mUTZPPj^#Vr(k;L?d2l6=Jwa&jI*X)J`)p>twHlL4Df1GB- zf9WmX^u_g)JeZKCK|Zt91a9|TZOGiXd-s&k1^^Eh2gkBm^~37UUHT%fY;Wifn} zZ<}^6Pw}$Ucj{9PwU>bgrPOg8uPqy>aaGGyreq0{`frlx{AZol##q8Kd{wGq%-5(Xn7Hs3atSbr-NU&`c) zrt{=DTo>M15vR@X;~WNAHGO>K{k!4w72xKd`YseA*9*e8aB!pQq`aYXez)#B-%sWz zj(XsUwwu+851jBmi~-MuzWc|f3{L@^w{jfX*f4tcxrDpkplU(wTSI_i7d`;K#s6F) zoVFjsAC$DQivo9BhbH*>CNWXYj2%aTR@W?pGdKFfq+8_($~UdYEiNcUs)G}2%ui9 z?;34M^$v4hToK0#AHm9bp!M%+F|~EPd9YH}I!b#wR!tI7oe~bhB56L%)Tu)<%Z6Er zi~(r|TL|=sJe|gYMw@Z`!-8YZl}52c4d8Cv_2go9VLPec{%G6|QICP@y=8L_dY0@Q z|70WB&)S+L(wd{K;%{n;P84xDqnhmkmPDKYl*j1`(irCFICRAUPY4<*Piz3bZSdfrJ2pOH=zXCDx`gQEO+IBWSz-`;inExp# z|LUbO{pU*Qe_hSRs7wFH@$bibQT7}9h>?ahpQ`t59=OD$8^;S- zUi;F*y)vg@@IGKHVyvSnvqm@W3Y+zz!MZJvjU*%VA_MK7s+4=8l7SQ)g2@QW!vRNrASa&- z9fUpHn;voj^=8*plZ!&wAZf3`nz$V51+#!%jo3iDU-WNTSNY(6*sQ#xON+8Rqs0zN zyut{z&7UhuD;V(N&6>;iDKI=wam;kj=+sQ*mW^;9+SDcDLgzmUX33%p7hWSLR7!@` zt3{j-CozgNX4DD!1gdgdEnTs@cqBTJfY&8PtZFxMO5aad1=tcyr3}pt3>0*x$HN3C zw0hIm$QH3;DozU|@~w6U?v)uK5Su7?K&v1xtmyYfG)R{0Wb z9eIiz)tXjHj)aBcc?d(A`@P#VmrpG`yoT*H(YLjyhg%JEUzH5y=BjNl|%sUG>+p2!my~ z1q6|}df35-&pSgbhL>rtd;8(|Tk)+!gT)$Yo^M(O>C5NJ3ma=9@qC>Z_DWF6`EV|^ zEcK6;xGNaxZ#TG```?MrC-aXofX`A+Vq8il8tbGDVO$yRn$naGfRDMj2Nb|)Eyp(Y zvaWXt){e|DbSZM4yai9?vM~h8uNV@}aBg~^#+fjT@rdyIdO@;;uL7LdWS@lp%AhXI z-l-9;b!*Y=GiijA@NO8SNP?o-a!s)WnsIlAvc;UzyG{z#KKrn=<(KnlfGln%624l% z6R1?FlH0@$4QXp-lU`U<5((}OEWQ(Qx1f*twyWMT%?p0ApsSfBoeUwtykDB_qsO?_ z@X9A+%^c31lwAmS4{%AwW1fyC{>8) z7pKY{-bt4aMh;o}wx;4!u`lcaneE95XDVX%+HFGKBVxty>x6}h2c-71SK)C2>#ys5 zdip)`a}MJ){Yx;}|6x}9vAF#A!B+qG@t2kffwDwGQZ1ms+_i=Efig{dsMPTzQi3fhttU{)K_C`^Ly|w4eUHe^shgc(ItxUBn>1+f{nrH z)=#D48Upq=k_y`5DbVb$o=^NO8+b0Cuk39GYHEAnS@6iG3?PJD^Y2pwu+LIRxEI?*L z0<$fc2g-7wgaS&+1vK-3%dnW$wbY#9f?p>MH3><34lW6f>fm(X=+_4W=VJRklNh*` zu=KPPyExFFiK&fy#{=+~wybkV_7n7{#c84{L3TWsQ%UcNpCL5bx*k;@S0KQZ`pqqa zw#ve@XZUZ7>O@TD$4vS%-1srLQDH|9td}!iY-Fv$Z-OISx8*7{;}oX1(%r#j^HN#1 zC4;XLS6h83^$s9|$phhTXJlWy8r?5C_fCLPm$tNO&b2T24<$_AS{}Ch`z?Pu6C^R)y9b&SKQ}cDHwA1`|MUKh)+|Y5nQ1b zF?IbU!j|x&j5hv!faF&G;CGvvj_wtsb7^B(D`v%_?=z$S3AiGTIk-ei(iok(N?w&) zfBIZb3L!BpgsK~{ba@Otbxer4r#B^7(fbXmW!;T?>DIK$_8k7QokkvI&Ug$&Y|@AK zYv6VYnUq5+3`@oa*0-!}{bG_(ieAM)dJw<;9?-{7h<7#s(>(b=ATvEo+U_|h{bg6J z+kmqAdNOR85zf8Eh1peK55j_`6_cD7$5_zrdU`s=?54YcO=PMeit6wYtJ%QRLUaM_ zH|{UUt#1wuE8%!Vz#{4&HljiHa4%j`lp0F4OI#u{Rx38&1DF_RVSa~ejpzCL1M8_Z z!%D?;1d_Br=V2J5nuXOP0Q43>g>y3Dg6bX2a^IB?Vx}%}0~4gQ;)xLfbk<@jQ)0>XQv#W_ddrAThB0|1^EEPfaML$~g|85$$p( z=GF3NceD3h0m2n(+icCK+>sm)7id*Gf<5Q*;?`@<7tYnRr%o_kAc+oMAvQSZPO|R# zHafkK>GV9YirCT;d9ZT@eF}uM=|Y#Wx9ph1j~A%f3U9BytiQP;?{V0${oyXd&Xk#I z+;i+O8T18!PFUb>TC)CnId?V<-hf}tQhT)YDF#X=Md8{vNXR+}MBaBFRSsa7)8UfW zTXo&*JVTDk>K;Drm#HhwZL*5rw}1V-o#o5;0LC z3?RR=W86f@r>DY}rg{YFNF)BKn*Z9tam%L=-duXBW4Wr?%XYaTiBBMlj0q_QJaPn(0$<&>HR8f>bvh@7?}N^&4^C?(_kA5CaD1afkvB z=Y7A0rp@-auNp_gmW`8#Nf5+aSYuU_o23>#XIs zk5r(8}X}P`#b2_)~O0wu03s~;Nw}S!@e|w{m0}BhB=B$V=EjN3r=|EQVDG#}v zt9ADPT>?k==&RLIR^i);^laQNs}=2nj;ck*wPBr7HRyc}yJc6ZlIP6)xSBS6z8`uM z?Rj(}j7lu4(` zmP=hQ^8zCC zy$l>+G)>az2(*pUN2XS|YtIQ&r!0aVi2&YiAhgVa=0PgO5|BpqsX6 z&+ZgQdHnwpK}y!1s~?}Yunj;*KM~>I@Y~*Oxu=}y2i4I)X@#Z(4m#G_O#lmy&dxSs z=lS{EvbG)q;(FLGgT`;kbQolk78Hz>b>ktu+r<|EldwUa2ES@l33ifDUodm)o+0xwlQv}~p z!J9(7-J~dO&o+3hOYM>J(cERs-pj-|1!e^}^QP{&!+VdU2c28X5#819!aG5yqw}B; z?Wn)pCG%dan1b_mu5lCsceNYC^&;vVtg7EI}_OHV@j*>>C$`KXLh-xl!B5u-fNGTu8&KX&Gz1d{-ldD2% zW(0xOOzuY|0h*bHn{dGzlJ7M_+FtxJqx9HC1%3daIvf4|biTzSHXfRv-dtdFg)ktUJ+?*q`6i zshoq|h$U7%K%q09^%`>qr+ly?27dDczzd&?&Xb5rlrjfy~nqtMHK8-qz|(7nEjGMx~N2_5l6#uXd;ZwK(nDS zixWoR%Y+`X#f>PdtxH&E4Jm?w5$MB;`t!ZIm(y0` zjegqngT&_JNdbm`!H|aV2**Z?2c;ps=9`e0PuExLWLrY7JXlLWI-2APPdZpMq=o2V zm5EST>2Ke?K~F7G$(rFj`KG)fNU)t zh--WC^6)vpyZBYaWGJDOE2JguFv8y+cNKUkZP(9e*^}W>t6VcLiLehC4plYlre1eJ zFFXVqA{MwAZG49F5%|=hS3(+HO@4Slk;90U^t>>{DHl;Q8B#3*tP?8QbjMbc;lPgq z9gLTv2bl^kzmM<*yE!>P$${uClh>ebXDJ#uw#`z6R-<%gAJMmyNEH&Ru#%TL1Rd<` zIZ)K0|LVd+X+7Mtz;0(E0gnNK!A67RHtg3~c(i-3mw>`#!~ZPtaqFSbYTLe6_DUEx zeFDVQd&eMv<>ZWd08?t}OIQ#Z83&j8a(A}!7NzL$2PhkrAzsS`0}Wqk9aaD7##aKX zNo2{NZqsUP0EJ1od%CoJY2|;A*=eGc88af^O=kzo>k)qG+zG1!AisdguR{l~{66!J zx+vo+q-$|nP8TWCzmAeG*i;c7^N2>DCN!6#v99GmNP}~+%snHK?BZYyFlc@bAsosS zFHIHy1`hOUApDoS{tGC}$invDu0CV_7X$ygh9Q!7RG>;D#aogQMFNLilHLOG7iPQ* zh54z55lsS~}kD*9Q|isNr%U$tmtj(nwhZmrC+)5In{5v zJ6EW3&^=RX0ChB~{PkvS$|C=Nn7J~o80sethrx-Sdt=WPSl|F+?@!+9V3TcF( zIJdB<1M}WUFddo>>O&Hv8|EqpN;UB#Qu?uvglSX0Th9=Sm>)}KG8r4m4IG*N+{jT} z4=6;l)|URpH&`+FNzvfKR0)uIXSuj>|Id~EA);D#TvyZANdUvn_L-8}AC424Xo(UV z$|hgGdi;96%6_r@2=v@a(CSd(YsB*+(`_=5jJ%ldcS64!)20z>XY{I2!(dy75>$Rv zPkc|z@OmzVem8lW^j3FHQ<`Us#Xl^D%~XbSl*c2POX2`@HXPYUaY z*}%zGP_OT7@9^fz@iQuxqsSv<%@+ii&v z8d{a!hf4FCzO6;$Rkpqj&b0fJk-ne-nt6kgen-*NQ|PK1zi07d#HO%z`ZJ^}AV2bq z*^52Znp~bm3|Qu0D+F5ztWERnm=zA_^9?o^Bx9MOMj_#1;YUw0FcA}ucM&N$Z?I-< zsIiYRD}6|+#5E`zmSCA<(dcCgaqX*rCD{pC%tW-~wy3zd?+2#Z z(8+ozau8#jW(-n8ixn|@IVA+@0LLWoC;MSo_c+xROh07e(MDLS zRGtb8D0G;?VvEc*(P#wOCd#`1m+oIY?eThwUbj%EKO04YY~^{!F*d9S7?NT}=WJ6V zxEa#`NRE5qE{eq(!Zpd==V0W;&Y)D$UsfrI=w4d^F0b8zM3ChioyXK|`jV%P;WqJ% zwN;%}_!G-OzS`zgR5zDHm~RkQXN?au(T^r)TC^*?1X}=v<GjUCbzx8_-H) zfK?8jx2lKM=hdM~b-C{`lT||GTNgwybW^pG|Lg{UXhiD~*MITJ08~$kP0C4`O>Tx! z+&!wf5i^vJ7xQ{xoY6arb({pt(zFcN>I@rq!#f_^Pn@#yCH|im>yM_OBDOM=f$Kf~PgF%s20# za?~xRE{$*5dP!4_Bgs(-@;gU)WfFX3@s}s0T#Qo0f_D%KXLhUZ8jvKOMhHx6bLd`y zeYF3{iE8-}`-5EaeIWnq-k3PN@o(nZR^~SVCjtl0za9q+|9cDf{}Tks^uK{1S^wJ( zrzwpITWofet#j%Z(4WDtWbbGJY$r8Bk!B-nCxlWy1;T2`CBW&<^Jbm0FdD8Ci{E4u$j&G zbpV4go|L4-&d`MZ@?|Iq$r#AoqzrDp0ooxD?_W`vupC1@H^q3w(jk?-jsdF8HzDP< zWS{_Z8mmf*MTEgFRJ6-|Da{NRPB{YvS;>(kAy8ocV>}Bc#K8twBQSv$stgcJ=4?w0 zcLWgdkZ49G5oOcIoQU^4>d0d_oZX4jYYGbGuzSQVOmJQ>)O3b%&|)q*L0wqUD51%r zI;1)*&}1i(qqB3a2H1pPQr$pDHFM$c0Hb|n6P zL8t+R?TG@yC@pY~^Q#<1LXV7a*kG1%4kbP~%g~22pd3IX%F*)0WK(KW3pt4WCM555 z7AP>LrVO_g>QSl%3zS;X`twBjN+dndM(UUn`yk|5I|GQ8BIEOtuuKqds*jz#)9#QC z3k4dF!?*Y91*Jhk0*EHX#;yh&h9!jAtdXdh-$%zKfI`C-&30lh2L&~Tl)~#cxi_q5 zYHF_L*EH92M!3qd7dBq@$MAcSO!SBI&{%I6#L|yFKF*fR-j9#p24*@soD-Vu^m0ot zJGM?boZI>eZ|<+IdtBXbzT&pb-if`hs;_K~uVb++)pPlL zJH7F!nbAh37wxew0??UVfLtxZaJ6S*`OTtjc$e;2J)e3X@g~{Q$0^zYWDA?y4kN_d zT2R8a37@?RvIN3~!i17KB_MD-!G#E>_L#N?wo^~DrHMJN{4&XO9P3` zASQ!72W;-6J2?`qFF9R7%{5F@&K}%w(#TdiWrQy(UfMTc({1IyYrZ zf>P2wD*8*4o*m-wYHIM#q&xNWF*j0(pFbh1(JZrRe0)+|$|Ao@Nz&neAJ%h8mM~K0 z4t^LlX21KRZ-Z~b6*k=lnZm!Tl8&7BM zl8nCi(`#|joWM}S^$X{A+=q?IbmdnIe$#^Hw(#n*Gd*LnE5yqV=aj^x` zc1K>_C3d$pHn3ckqzN(z&71EA7UjO?Dmh2hoqu01 z*lr0^TZq8+c^BU1<}Ghpa()ZUS>(1cOEP<8tX0Y0cX5M|`78O!&5_o*K+RQiqKlSv z%lERE2A*E^LZB59@C7Fadd*UNb$(h2J>H6^RNSTc0%| z43@F#2Q|;Go1yh=Z?@1udIy3kfnG=7q#FQwgoqCr(b&z9kQ~>WYmi+5o7O9Q5aHyr znWX&)uj9_mR!3W4r5#B43v4ZhaL%1Jd&GLOY zug~c+spj$zv<&>X?bSz&WcG?W&6T$hBwhv8S(2EV3(Vv}+J$i2lpNN@wqsh)z9j7E zqwZ(jw@?ax6{FEj)PNZkig1Xu^S2_~g4o+(Qv zyH*S4R{3}FGIz~5#J7r-49*Fq7L?5iwz%r(gP&%^Fot;eP3^u*;$4F zPMq;UO0<(-<)Y{n`;B8zOfmSj75qT_p9n*<}?m{Xst#eyJy20&$j+r7Mp6WPdyt>p5(bH z#Fe*zoA$ivua%OhDrYKyWho_!B>;Y=BpY zN=iDfDa`=z<&Vhn>+{$Vp^|&MH7&A&IZV@#Y;lZIHBG9=u*C-M z34SWt8lXxSwnUJ`&*UNX-PhrV@!WRTNHI$nH|NCv0lIq&?uh#0!EjBy z*KHm)FB9OY)I#7vt@g<_ZhxJwevTo&hf^Q|Et@3IPVHe-LJHe%EUTZwQES6Gyp!Ll z1jYY}7Zf9{WHm?sRy)&~hIe|bcJ!!@mu$W&oBUc|9|B?vSqxLsur-ltmukDEr_Tbp zvIxD3%Fohk&8o&~D!-Sy{D@-Lo}I6@k-NOUE6euN?*xL=p_3i(^Y>mUQ`MhsR@V9B zo$#m99PP%`YZ%@S(V6E1$mAdrjfESR40<1Jk_eQB3#netGBzAW@g-%&S?dyCHaT}r{pJud&zpj%wOqRd(CHSls7rDkK-AxF^K1`l+=*g37w#|gs>;W?v?gvi4uDJ9+i zzAUV!<#c6ae?k{9z?}X=kC^@+hl>9UJY(YcZ~H=$)otVtI1s+3Ys%sg%JbH^T=hKv zUNzQ6%|cbl&2Igsa8t@?m0e^Jj1^w9^!tdpbkMTR6yjHr%euXfKIuw5D1={$eiFN) zxCz{LUnZt;BxX7b;dA2D57zsyM70jS{+Rv9xL#TM25pJi05*PV=<{6I?6}|xPFyuV4^c7c>+ho6`kgtA*IiyRwUPCz7(QFJUXW>Nb)v)ptwsU zMln}%768Sj2vAUWgGe3}I=s!o=IJvf_Kyv*Z|O1YKpBSc*++3;KA%@0x|qT+Y>+xU zuSjw*^f%?PiPSho^+)D6(FW4NNT@?B7eOCmPV{aenb8^LSrgp@&FlH<DVTCnLe1sx9#PJ zgsbF4rvTQMM1P_*$|ZV|O*VVy?+Qop!IS7b5l6mDomgTHjc|XwnylM4VgqU)i zM(07E*Lvd{Be2EDTu}nhL)Xd>!UM^H)Dz8Ap#&>v5@|9g4(8OSw)ofxc)nxP8`j@X zs<}6<{IGoVfliYj1#RnVY_$~8%@?C0W$B0R15zwG-UGM&dj_cTUiT}U_hn$$Ho?_B zLH;9-09z<~o#K$&7dtxymUh;mIE&E4rnl64=)^lt=<^Kh+Hrt zjGyh1C&y^AgpH@g?nY&aGq@s_qN~o8Uibdt+C-=;YPXu(#8M`X6dgK(gtLAKdhMoQ zmzGqavCtW8%!=(6f}k?6DN{XhT$HXVMvJ z4k}L(%gPiefU4~TtDeI_f|`tC-z0*_o)w>okevo!_994N|60Lj@zu}#`0rf>t)QH8 z*t+hlA!-zBw_wZK9(kbt36OVw1C?Xh7E1Eq^oVOSaHwO9l2WQ(ZICUaXQn4@E0o6u zS$Yffg!o#y6bNYFsQICSB^RN4W7^q0UoBFYmIWd^H!kKnwf*05))sr1y%Gi;>pn(U zMkBi0RVy6JN3DuIkzx0o*A58_|NgPK)-IdciHpUvmVM4uvc`TxE5_LwnPfnjJUY{W z(qX9=u0V^VhdjjgfSGlRq>8NIWsM1znoXEZG)3L5B~SVTrkM9dClO0mzLTR~o>L8F z_!5-fhLfAvfRsR=@O&BHT&HxCI)x_bU z628V&<%Rj|;nL9;E7*7Z!UEvs0gTTSMfM@5X>B8;*#LPD4_mASrqt_` z^e!?kaC9|<#leKpa^ij2=>fWypd@HR&xB(Y)2blkBAUxSHdKXKGuj$X_e4BueBMD# z!>Wr*BK2=m1M7V$*|q_&>~a6jr7%SHf`=w0^5ap~J0xRyYe)DTO}nW(8+Ge1mL0aJ zYQ&A2T>)=i;jAMl$NJgq;_N`bh9`{GggKR+-)6H(E`0PJmQ25GzXfquxyw<%+A|Ub zh)6vjJiH(9J%e7g|Ea0}a*Z%@{`Zr))&H+b4CRKPG{sUX$+}7YG~RlvzI(FIpJsqy zqfu6)1SY{2$Jp;9c3+Vnhs|My7o(u;V9V{N7MsH_MZdN+Uz84Ff&9JgycR`fAwVW+ zhqFKsdg46yzCi3C5EOtPC$_Bv`;!{ei2ZV7(C2xx@_??uXj^_W;DAw-bSBCmXXu z#NuN|hW0Zvi@A-mc>{*+fbsEdvWM>iYAARgVE^3)=Yy5o1lsjb`%;B;bLX`q5PE1l zHsBB&rt{IK!9hDb*{><}kM;2OIqg}55HC~RE;VtTcldB4%Q;Tb6x5_&gWFGo(v|<$ zy$dQwxke6iKyzH5_&u+ut+yhRt(yC>H^6Xx6EAH#2NoL4oJ`8eJV7hDnH4>nnFD^e z?a0~6N4=Ua6@CE;;K$F3dO8a<%yS}SxswFX>$Z1U7e4>9o+BG@Ds^Ua3D#ws0*}~zWMK}rU zX6$hB?iGZb=7#{o^xVj#*MJLA1Pl+@%r zO(r@=GR9asWFKO;2$9}MM#FaQD4)k5ExW1httUq0C>%#c@Jk&Ry9CpidRN%*9i6V@ z{op_J4>;iGUj~1~)#$dqvZVpikR{`02?``NV4*TADIk&lOip9{?PstmsLf!#v7f;b zKoSFljNqK4CUZz1<2><<(432&=TFlj#vsp_VphA7>e3*JiA;A`3YF=Xydd1jFxU9i z^Zj!A+i#|K2#tG105paBy?n^UA8CIavND649v})4!v}J8=3=*nDzup~Tg>l)=8ADx zw*u*}qg?07In4VyDNe?(WGmO-p6z0gPsd^^*P+7}pKpMf?{9NKpY*?Lohk#uY7vYq#GtuE^B z?r<@t${KQeyG!m0N-e72rn<0kHM4>@Ra+ z>WiutNo{Q#HY*F!x4+&Tt;#JctLHEs?ceKJOP95oJh+CLJ#OrZ@7MJC#xLhs8Gj%@ z7}*LFinJc~Jw0#fS7dHK{;7Tcu!L~@52$%nYGbw=Ki!lQYUiX(Ektyiu`$>TVeAK` zmM}J6^L(N{CeUydn4-TuZsv*2*31DNnl3>Qext*PZR=$fdN%QU#n9r3hKvXd)cuzgfT*LyElUly83jU zbkdZ_mZ`}|fsKoH?3`~o((Vlymj^WT&*3wddj*emu#ZFdd`zsCfP-!k3J4`p;Z&_0 zjR=?sScW6BeI!ZX_QS6vVo<9fANi*tp1kP7y3g}E9Y{yka9)GXh}~vkX$+7EqMeJH z)wVRE3$TVAi=#vdr;z*xI9fi^Vl|j`bK@^PX?O7KtO#Cy_W$i6tklSk%Vq(}7xs^u zt`rg<+j9w25`d5C=6e+W?G!&`WiL$FG&xvZeK) zn2{|vB$0G7!qFJlzm6EOz~x2n6Nah#deqt20*bb#DbKFVbc>T1HyJJ{G{_Sto!i@^SMM>77SkGYhpDW0Qvc z&;3yQ3VDHbvu-6lTINpxMtjvhUCQIZ(PfEFnsvS0MCOpIOH_^Qau-UAuI;pRmsaHt z?ZS2i|2611n%y7Wl$Di!yw*NoO)`E<(rF%Nu z5Vr>!I4y>!7RU!n!uxpzQSs5>Pl~S)_m|Rij-FO_BND=8&keHa_V5TDK|g-VXl~JztsFGf2qBgjK*lTRbcD! znsqkb4i$P`lv6r6JOL`<23Q&L zsb(w!lSCY&0_!W*AO;&?#_c_U-5by|lD`mKK{>+LPmb{c1S%9bWqSnK%Q&RjWEH<# z<}HFS$g`WnA(_PB7!_Tg1`({!S)y~NLIMFp=qgxd$!9qqfZDf&1zBsr2M(rCVB$vP zGFfF3*?t3pS~Lho|7O!31W6|hOFR2;oO`^WSmABS#S0ozqfi`# zC!{Y#pYL~BINOPV)=b-ENK@TFA)|?KfD^NmeipfrZS|6Iz}3?Hw4148;VCXlIj;fDJWo0lOek zN*NgFyiPDY0i*dJKOK5{pefXa`I6Y)A;Qp%To^{Eox;0Y*(2ox`rqqWzh_yYdo2um zHA?x+=1VG$_Om+58WejOC!b(r;1LXt?l$iJ2+$D@&Iv|9SLgGs+v3SSYY?EFz+Ph& zPZ%F3v7=zsx$C`8H?iT1%+TX4hQl6NLO^jZLckFgbO{bND9E3W;O&o)lDN?f`Gs_0 zUg7sTdu69x&nI8!0t?pT&Ai7SI<63&OBkyxcGUk_kTpQd|OUdn^}3VyFGuNEPl{Ecg?;- zk~_aD7mNjW+%k4#$hPo^d1}d+yX1tf%B-DCQ?mW>`5#%mO#pI^TAQW#^smcu`NCU|^R zAPbT)2+_@w1cJfDAVpe@lLQ7yf8OxSPy|TyKH$l}*8^7ti`!`g}n1gEPgi?m9z3Jaa8A-OykJ-LV~V}fR@jGJ_Z(#GabfA>E%l=GgJ^Py0gI$bGKmIfk}!+t{5FXV zN5_CgfW#>bcvAJSW0{3`wAYB26HZcF=m%pB?4Alwr_;+-K^`t%j!_{}Cz6!*0A~cg z*EpOSkcm(_%oRnd3jU}!g$mH!f9}d-L< z*nLaVtd|KO+_T-)d?qR%+FhoX598|a1debv{5|HL-;eV{6=$A6`&Kk zB>hN=COcl~wq^!7V?%e$-_;v}8~hU&YDu^ z-gf)v^?ul`y-04TIj+-V^$azhG|cUl*~i0b$-?xeYHXqlgr@ExBS?Q5ckL?G2p$0 zGN5UE+96`CvaIEH((W|HpaIZggsgTcR(7d4^?$JTj!l+!-L`Jpwrv}gwr$%sD~(Fq zcBO6Gwr#u8JKv>P5v$Hw&yLvh!~Fwh#Au_B-dn%gzR{vtD^<9861ij}rWf-zd(+t6 z0W*trs-aJxNZQ%$jzAQT?aXKzyH;HXEoDl=Pk0L=h3X=N+9Q~(WT+PaBXZ582(~Id z9Q&Vs;o|vh#f<}x$8X2(cpKQwW*3ChY2phG*++9GG$IDsE9wyw+_zF})8os-ud}zNIXs3J^lo+Q3B&DsqXsE`P2weh=Ynr00Uv8n4mn zQ;DVQe^mVvLS-u^D1UaxLse)&=^ zXDY8e2`W3S{K?V$e1-pbwZzDaBVAjNFE5&pr8RM=n=~RBsZ4sg|Az-{18}kNSAwHX zjz)vc8vK|^mSC7;rVPe9PhYte#k;Td6=zSDTg7D;I{pX;~ z!<2vPSq*RBt5Lwi{zg+2Rzxc8V~eG+XeYD^8K8t>p(fC(kWr5V`B?EII@#_j5H52S z2KK7flh){%#=Y)xi>FT^KfV?`Bk@5>SkdrtGUxXeB?=YE!*}>Y>C{Dl^RnUANdYlq zbLbgFtWaX35z+TZQS_U-&cI=oRpUckqs0|ch)eC#`Ahc`PRK?WR8>FjJiVo}U9SD$*UJSQBx)@Ps27y&A-MRHxVQf_>kYY1tZ@3rCI|HCw zu=ORSI#e1ks=XMqKGj>wIU^LAOj4B!tKbAg8)E(^9mz^{bD!pL`8l@Eu=GJb?s+QT z9EWWr>Mv?n`;&PFGD#hPyn*9H{P2|EPIpSof%85?1O|4Xqc@U_`AJki`0LE=!=sccGP@cdf`0s90bN$uRuw${F(45@CqmYy+l;pl zvuB-t*DkFkp8YP?6vG0OC&}>($T_7$T?M zbRP}+BPxt}+<3bPk4&L&2FMXnh?M9ft4l*8aQ{sbr2(T^Z>#*%E-lo-7o3bWE+a-OWUpsF9K)+K#-hR&GRO#Jj%CFpKqe z@Z`95AXwEb^FlplRm{jWB9Mm%ZOL2Yaj!@+LE>Rbdt+U7JO@}ZF<~iQizlFTv;n1a zvclGwuE-#j+J}qgYfN(ifxJxEkEh-30F|x9%85U^_R2tKJ8}F}pM~WV8xDxmFaW`k z^`)nwM0=j$cwa6z$sDCI`lJUT$Rbok&#T+JBe^1{Lryknw#3A<&e`lnm1$qCjd5P$ z{c4>wuEupzPlO8+1PmIGP^@>E#WvsPA z>qWk_?wS*U%q#ohei0Xp`YMF~su>le^P+sX2f1bU0KF!yh5YeB+^Bjd4W4YJf=^3I zM&@KD7XD%_rcovV3uVnvr~06bPlw+wQ_CA3<-_~Lu9tnwf~y&W_pbCSH3s;I-|;8h z7hy;=nX(N}t8Vr?xN9MX^4}^aroT{kIseml{tqCXhu_QM-_+fIvC@kCjfKJ~6q*+t zV%cD4HZO}uUh~Z3ff_`}gHXq)6(&JH{=m^YqNbG2cMbVXMtmEr&EUiyGES$qAfv%r zbI1*tQt7}T%zQ%b1h9?XGc0SKS5Q^{bF;59VjLP{Lzbj zl83DVCx+)JAhV_`u?de=KjoJi-pfi=tH{Mz5tA~jD7V>vTTG(^h_uGsNe58WeG0p1b6uu3h*&7t&7+jD9t1m!FCF8gpl2M~ z?qyu4g>Gl?T$(Ekh0NKPM)wfDb}eH1O$U{*xLJka-EAX|6p9)P=jH5RJ70b$PcRw@ z^Mq4&uJIH;{g*=Xi;S0i3mOqls9c{tU4>{Fg-?oe+eL`q+K40-hrw6g6{jKyyIjn^ zuSnFa9ed86TlXe1b`IPK$_l^3t7Wk^b|Jdx>0Mq{ru2}l5+QQl5$r#Bi`~Q z3@WBAb5)%aOLL#%lx-VNTHA~0kiT^GL1VSSO8BPWGf+VE=MZ&T@o)*S7JXQ1v$0YF@Z%h+uH6iDmOl6pt{*D^{;+v3+Nx1DLim!NlRVvv%Bqk zt@cjk;gPqkE>Aidhre1S>~JybJxT6%+Cq5%AHE|>13zlN`zca}zxr-;ObM;-(H#>e zOSx^yxOD;d1K9j6AA#vRzwdwemlzqD*#C{9_z$F^=s$K+rmJtZNH~lKBZQfBplQri zo%x%2Fkokj;p=49GjTa*K%?%@-Q44d*R>5RJbsCXymwvW+-W=Vw7TDOnGpx82t>>p zGvx_fsp{b;0@zeeV_u2f{Z?Q410z0?I_@1y-r`R_RR~Ko z@kgfvKS{v@h`BceO6FQBd8f{XiO13v-j0x>F!WeL%p)#!I2T#a)69LgQJvR~Pl~4X39;)BZlWlZ{GKz?a@ew@6@&w7dwRx+Yf zOWnH3mQHCoHBpU1817!SZd8e)DCRT~v}QLnv7 zg9hv22rD~3trBc{ln_@-W$L_~ntFn7%}|)bv?KRv5eU3M-O&*P)4nVw@~5)+oA{B> zjM#v$DDaMA0BIcFa^&z9tesL}Vs04cjdN-+&ulwx%;c8{1pLG8O%Hz@G(bS-HGYf( zrvg>pA3w8^vF`*h2=<0Ozef`*gh?>0XjD;kSV1#)=+0bh!utdWF(&YEpQY{Ndbmpa ziU(5Pg8GjSPmDO4fmxd|ii2;nzM}&%cAePngMylgS+Z60VuKIjoqtr#9Nkiz>(CLV zX)8bksA{A~9lQzj`bE`dV9BrKlFt(cnhyo9iK0TQ`4C~SV36&A6MO8O@!?&TkznEG zCQIVlkUlwpCt~RLckob@9H5#v;VQQ#s&o4!Bu5?*Y#>?*;!joZT9gR zEq;LHodVh#ftznNPJAxlp6ftk9%0cz!q0=n1UZ$`oSQ3Pnt?x)a8t(`iZ@chUO~IA&*x5f(~FF zkO=NSh+_RVl0FtiSroz`6F#o$teT%qtkQEQW+&f#F>EXGQiv{T-bg?3f&OGrn^BU4 zf4iM2mS+Y#@6o67OoPjdVWEonz>FDfwQWNXtBIjGdgTrKl3e}T_ z=IIqX0j)bCnfT$A4hX+|imqj}?lfSqwpvx48N3ddvz;pdZRFP|*FZMJ*`N&r*Bo~1 zV!dayed#&hBz4KRt7BKFSOryDl-R=`4I>X?oA-t{-Q;R-pcq&A)4Bp)$Q!ow^A(wX z%ERzTDw6ZOtFLBlkPHwENN2f8-cq4dmz9*hW<7K&DpyXXNydx-SdH}M53=EM7Y?-) z5v7`T3WTml$prMn9nz)O+rp!Lz3u6buIdZ6$P&kHkXR07_XNbZ1M0|3HKBusR5vKK zz2=OADPyUx*SH~LDZuceg=lXeWWM8{S2YkU zE=;=wK#u3KkmnRf;qPP4at*W*6ho=POn~vFlZCKktrN1eLglfq^3flqZ5^a-$X{nx zCX+!bsUO1`C^_Ao^abv#bQq-Lp0u~n#{YZ*DET5wyilhwM3Xc+M^u?>I^r8A9oCLy zqWnOqAV9yLwNl$EWTqlDVKbTaHo)F0P#fBvKVJu0Vw-^-jkWDDEa$f}N5wl(^65lo z+M%~RWs9?Mm}t^JK&v%M=57-~(YR}ZpVRx#9%fH>u(f3Y#WQ2$N>+@93p}J4n{+Insz+(pcUJfq6-d6|d@s)R2 z5G?Y=&Fe6-d&9o@bazH)up-N}S!+1VO?}4W>UIDWHPc^@^WWyoZ2z49Ui7bYHU^lk zXEhK?29BPCf$Nq~K-e0fbvWD~IZIDFEAg}g^dpWLrYpYqCZkpJ6el5vu@o#XxBEhc z?6ZS+L$_v6V-G*qGenHhT8i7D%y{3|&h^oX>b?5!CPD9(vJq+f8slhUO;Di6)kXIj zw75m}QrK-7peJXVe*)H}6ArV|PA5H0H%y|B=mzJ_-laNB08TwcqNv>=kPb4f<6=$}B;8h)VKdE;HRPvCJXJZYm+zgGxz)Jl5_L)X z(Qgt&KZmcrw-MXKGfRSObKW$AIXiFqn|qf@9Dp4A1VTup96mC^O%ZO)P$>m+44-Q4-Y={~@PAk8vODdTTa3&sALCHNwR z8P?9q=s0TRCK7}u-ISl9n_ITHS>dX)o_6lP;mDTAmMWvmvKJi{JItrte)363;vtwL zB2r|AX}kz&u`_HMJY)Lw8{aH&A}ab2ZZ%$Yjpm)Cht%jb^SPK|#b{`)LL=e2L#O~& z2+lfzcSU%)td#ij9f?oQg!9HGZ+9|)VGho0{&chS3~fX6D5jhymuWFcbzCK^?#Bos zn%ADDA7&YU0U`Fa_vZ7(-XT~t?XE)Uk%NJaDrY+iP54nB#s=xEonH6+DvRYhWn9l1 z8$I8-^ot|3(^RXxpc73EJPtG+7Vp4tzM_#4OcTX2l78k#Ll)y5pn^kjcn@q4Byjh1 zOQuTh{D6&@>CWCyW;lSUAKpJMEI6b2#1$DXj1R?UPauZvyQyFL_Bj&J@wn`zmm7QN zJD&d}7i?u*@So^KbvWR1gLv6F)!MD2nDgxu^@4 zRjtNL;lFx_>279U%3&S5cuCK%99QDNU@zO?lfGh;o)@X&1wm2>{Tgn^fY!=VdIStu zXDj@h0)Dgm{>Mw~|IJ^@`nUGa|3#^krTU+!e26Olr1m5t$pu&u1!K4R)rS!MO0pid zpSjkWWHj?&B0oyIyMz)HFNEPTe=?9HWICBnP1rx=ad3U%kji5Gkw6-fWpq-!*e7s9 zatCubLQy)#M>qK#iKt)saCiCmG({1iLw!8i-fO;}=5RoG`d7*ZhkXadvx46bu0mR+ z3tc8%C9=g4A-d`co3jI-?4U4KSRuZFTE`QL%i4;J#K>nElU$mfMpSId?)#&e%#_#?=ZKD0uL+!a$w#fmid=`rh!k-g zc!EB7T6z#UiUPFTQQyi&lY%0DF{jGv>2HUMND3m++TDMrS;KJW*7F+yF4hfEAB->&2(Y>0=Wwwg4Va#TbfrByC=L0VgZ= z(Ia(P6IlVbX!C@!;SoR$@lyGPgRHC-O!(AKv0lHnXn@oB(KpcKo}N0K;Dt>yz88O>}WnXrUd`f> zXwiM+RhvFXiW9Ja5rF4ej>De|GO3x+@-8n07R}h4NGgIUUWHRfXMjXzXA3aa^_ixE~<7`r2&)9v)>`Y$mOfCI07EK>r+7Pe(i3 zBw6IU>xAudz-b0)s2)pRngD}Tm*VA`WhJq{hVVn~mAoz{q0rrUjW=JWvmgOV|DX?J zR-NmT8_x5#MJ1CPr+3X$x^M{)glFAEZ2n{gms#z_03t1OcZa^1v+1DO|{5#$6PJ>Mb2FOv*~ zW~H^K>m}l2X zZj}ROf0kJeG|eO#V3r6#UG+fm=`$=bX2u|0$N<{&eFGWMMeSDFdphgtl#x!D=3Qn% z<(TL&?g{pKSPEMa+e*FaB ztP;*a!gG652HGWP|zmc$ZzV+hL3Fe*rFp2ppBR-Y9GSp7C+4&X<=s5uocPSK4K zEi*+{zsb>Q-7bLIAgl`1RbFLC!CfWa4NuX9&}0IqSqUW?CWD|`p!+e3YH$(0;#yv3 z?Lv zOn{s2;{b80$)0@a6ck#BJu3FKnlF6&95S@wWq27Bm z$lyqNpotFwdpZ(ymh-&?0W!v zA{d@nw-#c4g$h=n2?Oq<%{>1Kf$?USDyE@NYtydf*v|;Jqd__)VRI_}5yij)p^+c( z^I~iIrUF)pU7slmf#?c%f1?A@Y=Q>vJ2jwV8;!h}cG^ za?!*!ECpfjXB`nEfkPwGCmO!|pG{0*PHnQ6aJY^IKZxkrfXV$Z!+&`xS^pj}ZmS%N zGk1^B$QQ771)J zcOv{q4!eVj@2kX@gvBlD+!nTwp!xB2?C4M=zi)hQz#j|kj|bYH>lz9-k0w)Gu1!g*gBR_RDzAr);$=G{X?vZV zwgcMsBQLIM;*8p6o8nHag|n}d;D@uAbJ3=F%HKkljjiWPp_|=o2%>m|XXMa5X=1rq z004p?SEGg=cgUY=F;IUwf{Yyhy}|hZhi75t`0sd@|7cnK?{>6Fbs0Mxc9_oV>KXbO z$@fG6;!w7mO8(fR8MYBZaWoPC9y)7q@voowW>F*wxa?TdV2=iFt#jD%o+PA}mNxN{ z@pKX_i))r=tUf%0FhSW6_z=mdn1UrFE=VL6HiQd>Y*FfSM_drJ8ar)dX8qNqp_ZrF zSQ-SZtf7Qdq%H*rH!2hUkV#2ED6We}NL8`PxFp<@WqtA<<&tw}c@{#Fjz~$kw{_g0*ncm~C{U9?cP=91e)NDKZm6UZ(dDTUPz+}Z zKvn;`DFlfU_Oqx_WQmjT_sOkb6wO^I6);EOW|0S6?xjH7$tq@)($$^JVnYRu-_ng2%XvG z{dI+4KNyN*D-lnoSens~2PA6Aw)ES4NG*+M$-SRPzf5eXsIn3dZS6ewQLzd?LlTsNabvkBgYz5nm#-A|RRqnHm0kXwg;|zoA z7y=%^HFX>rrmt5 z=v_P^`LX+JW?C8T;DE=&1JVMo+oQIa#wj#24&C)we~Id0u)i=i{4%||jP!p~RE>dO z7fcvAPZy5&#A;&G{`a0c{i3blH1JJ=M?o=aXA`+JPY^FUiZ62_ji@c4&qmz4YKN)vfUuZlN#Qj@r$; zK7k)IMr{}7t&>U{Kx-kqnUMht?M4s0Hz@WMLv@cyqpJ4Eo5dXiyt zO~@3frNBs!4G)H|M7Egzwa;h!bdy;b*mna$o_sp6kK7E>fOHMtp}`1mtdWTRG$)@~n4l{1B! zRSL<&@{WvnhOf%C@kN0Y=f2cJ1qCI_GPhpJ*|pF6A!jliSr3qC>GzE=BIo2@o9#AB zHcHwxyfk=rVr5b^fZ^zzy_PC?9)T-+OR_-7g|KsiJ4dl&%d6@~r-{8z21I zq|2Rw&!;vIQCcPnkv3gf;lTdQLD2%Uk^AE&C9fmk*$Y@HzS!Mfb*%VS;Dv?r_acOe z4l9~u`I%qqiWm<}*|UN`LeSs=go16x8yDI=PGqz~7M>$XhDeD)x~pRVG7hVlJe-+j zxV^NfQfM2cV?Cph@HmZ{tF3i;lFmkla;5j@lQLnp$r^Yrj;Itj)C??@z-;3*fAFKG zN@cQX<>G)o6T6(fV2emF`eJ7VUh#l0I~QYDnX0AatcIPZiZT}{y zfg;Ir7EKlBilbv&c6rURDOldBot{n_Y&FwH`nyX3g2=6-UK$u+3{>(ANj)^|bs1}- zzRDtO9cZ6SiTpqj*nRW;;fS`!X7H0+b@n=pp=NxAJ}T2K*z!v3K`EjAFC^ugvPVTO z+SuOpEtQW|#7wDE6Wc3fn%{Fbbc}m9p)GMV zY7#~QWW>7YtyaBsGk|ofi(t2VLswALfe`vp;SaLPHdQ)xlE*Ys35ncx=8dpsA+Ypm zzw+?);Xs?ZcX_(6?a&4p@D1PK{g~Ow)zw7I)FSG?0Kn{H@BS(?e`z9feuvim`|p33 znXLcXTJ$dT`-O^5D?B6R_Y|8e;)liAaOGcjqFzIUtr<`(^3~ZdQfJI8qlu3snV$B1 zGzl|$emK}3lSvDL1}TF!J{fQWV9m%7gps5ZEVO#}pPfFp7u3dSNNCy+^i>8-cr z$E<-6AcCWGiAyV(z9&6UfIlexMuxHp9_fevZXubbR@MZl&Mg4$dqcSJ0#6s`1SyzI z@>{-rtW$XsA*6&pboBX6aumya27`xJuYW)3iODs+L#n=l%j&-W)2sT+Vc=wAO@#KT zGp~>~=NN9~x^`=92bKR9mP0a_9Uzo6i$PWZjQKhm-Jg#CrP(it}*-jyUJ()J! zFO<6o=J3p{w2AJyN!#vH@(H`0LNcWo24c;nvn-^;j(W9eY?o|?JN4H11O#pW*L^Lr zG=3q@CTJv4>wE+1z`3&ubI5C3O@!Bn4l5rjLg{$ZWjY>1AVM9;J>z(NSD??KVSuRi z_D_Ef9b4?_{Nz|FDI;*mi0Tg^r7EH!P1-^O5aFDs#t-ZIZ^m?6Q|5joQf!I=U_ADQ zT-o|nZzO-rYZ+p+Y(hFtZqzsQ4Qh%R7E}Ugtq65Rm?m?r#{R>JKGc8agKfzSw83d{ zr0mBMlA@ceN%`Ru>u27oo8=~DEb*kGYY3M4<+LApl)^LcP(e}Q7`O^GyQ7<9iMAW; znZQ#jG-D2Y8sBfIvVykWd$d^a+n&hXN<|sE zi&f2&;SRcd&h#bw86+cOO|CX1=}-@jRH4P*@mU4TDA0narsxbhKyuYZEK3n`XNMT> zg>G$Mtet9BahW9gmW**Z-9s)Hw7ibExTZ3$8{wZZbitftOAFTE*c6y~3X;QsxP#!8 zmo@5aRg)LT^@3@%RjIyDnXq{uu&MnCPjylOvRj$lIKHZtyS;&|M~*5jnJ||4A7!2{5eTgnq&G_%u?_fh@%(H#h6y@hZ93WtHgG~ z5rhO7r#F!UaYFfV?#L%R8#w75_fqzf7f&sqx2CQdcZf#ScUpx|lz*nbOT%EAj1`Cgg78PBP`LFgKi<)niB>hmQ#3slO=($q>?k= z#IpTq%XbSF4U#IUUbj+YxwR4FwF#~B3@z#L)xLT$@Pse*kAR^46b1-ci?|MV(Zgci7@PvCYzL9`vB@z zw~(O|l6M{+`l{UUumR&x13(X8M6W;d^jD*!wGUy36#lQ+TM(V;BHd0u{cax)QvwDD z@gYVdXZBzlKUfZ*ydE+nbzjR<79Bxo9Ok_^w?aEnKnhX$b#>LIqh1DPLv9zEkPUi2 z-;u)uE!6wMA;{V72T zeUw7mCVGuU=X0W@PNkOZZ40?@wLwTJO7w-6g;E`H{S96`U&LxW7}15?W6p98q5ZBl^yr;5HkR;}RF{S7Wug^}38603 zy!Q@LXN?qcbK~n^spG4Srt1vZP9b!O7YCkKSfIRq2gUx470$Fvbmo5c!Otp6St$gO{m z3y#$eOcVuCk=I}9X7EDvk)>fQlrIb}dTq4NSY^rvC?mtZy3SWDGLYnRLV}QnyM~{$ zy{`Q0Z)Zo3V}HQZrVdQGAMG%RP@2jj1ye}wDjmH$GYVzngZg_7^2E1U(TD3?ePHPc z*w-OT1BKY*{NR<4A0tB6mi37U4sb_m%`ZzDaZ*^(ztE3VM?u8BwCkf3Nfgd#rwo7m zV05_V4hIxgPAGQA5GR-+_{EU%T$Xm=Xjzqg)KT?lb>f3Osn&_aR!UA9UcnZz8P$#F zs>jVY5ZM}RK5&lgCGMmkFd`cU7X~z-zW1kCHUTZv23damR9nU!v}ApP?jVrj>@;&a z5ftJzPbMyH#47K|WNDBme5_0Cibtj|?02|ht9QgPU1{>MedzJPoi|q&x?-tMJsgQ9 znxrx_FDh9hZ=O#)Sp$5xLI@r9H+y(YC{j_<=H)57>P)0HeG^;(p!<*WuM#d@310t= z$*OJOdNbWNenG_kqjgbIuTI!))iCWUM?huj@~Uw`mvxem4?%u~>xdE+DB@Vd?hOw+ z-H`G>(}teN#0hLsO|9~d-Q8NMVEjjQ?zX0{RiRO9hBZXO{qA~ol=+ma;%o~6GP$br zKvxQTs`jKZ0w%sY{Rtj=DZw7Cdse(GD4Jl1l07d?Gb^(FlTe0@*UC8FFzrRHhkmW@ zOoP5G@Hm+P86-h%#~Vc?``LTgv4%NmEv| zDi)FOv?&a!i_-`W{M>hwU6xiJL;KgWgx+T4qWJA`Zp|BP@Hw67fmR4w929K)~ z8S@E0?qWz-sSZfaI>_*l_pl#JcKA`D_jW)uC8>0z-%|TVJSesGt`A;g*PX$fKeXTnz%H z-FNsnHijd}Jq|&cd>~OV#zDOZT{J(gMjBK8L1okQhlM}=6<`8E(qM1|q-ING{zSmo z5Z^9WY7ic@P~g+A+mS)QC_xYyP}GwZnx#Hd!U8&o@I3t zXNgr|qc^k7cIjVqDW(mVPXJ}anAH)iHH(Jw!gQ2&sI^UCjY{Zwtl}HcNY??}+JW2` zpdKyIjxAuE7oeOQpdK|~9y8E)xsa=3vHqwe5X2HCxll=1oOJVH9vo88v~$LWaNAjF z2S;=0K2hLcjD@FHT(qp9WY$!R4L*4i9DB-Bi?q%A{{>5VIN%0l2#LSJ(i z4u$|Ms4BxYn@zl#ZfIRSJ@8;ek4_sWLfetLRACDyA|O_o+~pgkN!9Q(8lq;Y_-bX(DbkU3&KU9 zHxbUH;9qk9!#c|2XQ)uOwyHJ$*X07?6>Hm$HQV1$1fmN=xaNDyKqDZ)8kX-xV@5P;3vii8$eeFa&xEt)b;6?FUIew$fS~o(xhF zaM#dPbv9Q1PM+7THiCrFoXcL}VNDjWK>w>YfIBimoHx#n8oM0wuAUgY-Kj^*!%+2& zixApI_2>OoqK2Z%$L1eyC8duSvnB-*DOB;Lh@Jww@rCNEh`KBmr(<*ge|To9<5KWZ z-2Lt$L_VNg4uBhgZj-oWwrywlK-N;qWs#?DfE9G*H%|=g<^5cLzThsM=&ae%lEG1Y zGmuoPDM-z)}0fUkQiCFye(o%kR>7yC9J3mz)J6|TAz50 z&AOqvb;$`~^(2Df22BW<7e~5Y?c3Yu$X4)Fa~_dI%x9ZgI+HuttEki|$;SY&=Q{Qg z+k&F5L5a`=2rj}-96jwfV!G$<_WJCXVn!XM3=w97KRQw`TaiOZu7@$cnS-j;RbB4k zHQByFD^rx{gJN~44r~VLNL$1s4ec37e+85|n4NpckJBozVYMV^u4}`9CLk+k$G^ZHd*iaef6xyrED`>8MtBpdKeINXFkZ-w6-^_fDwQG_(Bu(165(o59 zyqZpR;1SNVZEc5n91NbXjs0$^`UoZ)>AI-!%>5G&vnV=pi%N`F?X~v?DWrQ5yS-3S zNN7aG6nHk8NfM_(cbekxV+!1kdOe+6ypyQ0l(WKA>436riw{(Va6S0Te)L72Ak^=i zS7q&XT1Si4pjE3^eU5EL`?PZdt$AhaPeBTAb~DW(bcNTplI}Iw)r4xJUC-m{b=^b8 zH)6OD*BF;aP=U^iCkPCWk(Xe>A6r%DPeHTC-XUbnZc)m-ozRPhPh4TFr%;#BM;E{) zqzi?R21=FU7XN0h)`_x1u9g}hJ}lq`TN2Iq@uI}h*#Xb1emT%Wae)K#bDHN8Z4$06 zrIvH4{hjM)#sJx$ZK?6hK8Bz~Qf^o@C@c^VI(brCpiiZd0=SoU)os?1_5IE*i}t6r zs`WnY;YEd4ZZufw-7+O2l%mz6^Rl2dQnYXSPVD`{TAjQo2C zOD2jLt`V1AjvN?fu72ovC|Z>*c?2&UnnTpUGVjp9d~%pd~DAJ#OS^tCkExk#SIA3Vam zv2&7w!ircx4WwVMbP#^|#+p;TL!oGP_^#V@e>^-NccBXk7NiOYuw+t*`;h1fPbuKO zvkY4rF+S|Y&sq~^p0ldcut}y0utjB$c%{4db|GTi6Gi-gT*i{cync1&J-3A_h$XRqq+#3Ao55qB%=4Ak{BF z-|##e4gUyKwXjU6Z~h*; zVSCzu{G|zrcCIFwGGs+A#*!>$!JFPnw{i=uzIGnw@kZj<>s?J1WxaOGs~Wt%jqTNk zT{I72P@o@z+BdIChgL6Y-8*a1cSQFf0O7E9uN9RuBuI@-JtyM@s~~0FWeGzJn)>9E zHao*p)QD{xhVy6<=&5I&FD2 z{ayjscaABU`Y~pFS(5qDIn_cJo_%0M;VonVWasVN`nuw4bd{%DC7;PNp-*X`;HY&%%(np&BZ8G zqY^w*P-4AuejiOY;5$8jK%}Wd%?Wdqyot#KCQ#iTdzn!58mkr5Rh+2^jDCQ-RS?Uy zCWMG7z2Qh}BZQU5=@(Z&a_#Avw&U03@CaQRx(`Ws)gFuWq2jnaq&WVNd=VY&Te*jx z#v={0Ful9=O@s%BXVsG|)m1jq(gBOjOk|g%{ym1sG4F;&IL#*>w4vPB> z$B>Rg)IcF{Mp+ax`u_%&}#uUpixzFvo&OM7q!V<(hEL`(D%i zAJ*P6$P#v25-!`e*=5_dZM(}xmu**d*|u%lwrykj#GEs8Bc|iK@5DF1_rD!`OiB4vyyiseGT%QBbK&KcC|Es5q2lugN~{w@4+N`-`c^s>=u$+A}p&Mmn3YkTqT_7r465 zvk!l#xC780F$PE8sqXMfPM_uE*v51uu>%eqRdYJhY zcLayb2bZ1$Ie^o|1MZ%nwvmS+ z%s>46fh_EAn@5r}1+^RliQHRNW}2n-NpREqE@eLM(oY~F){vbGxQIy?@>!|a z5x3K2kHdnC5%ZlVmdIlsHaZaY5Cu44Q!)9ac#WDwATA`UxCwLbKz)f-MWTlSoBCS> z+5^;kUQ&nMEGH#ws*+Elc}vBL%ADQn7=BBN%9bm7J~=35AB2q>Z4Fps7%DA1bQRif z6;=N+xVKL>8Wem{L(U5jRs?Ou#3ly(G)SM`dey}zozQXT&sV8xM{GV!q|b#!s4G72 zPJH^C0m_O|M3)He77@(*hO6mm@cn);k(T+pW=snAmm&p0UyCuUA#fN(nUA`Sh>D+M zjjLQPApLDO1NrI%we@1Ui)K5jObcpNaZ%stANrhj+n2*l1p35Ffd<>4hzTGR)H1%L z)UAlWwMSZ4dP*j+nUKMBrNOuy6g{{`V#n642|Lf<+~m&ank#dAJu9mjf+e9y$M7G< znLe*QBMt^fbRq=HBX9FYcaDKRXlL{EQBt~EvpQelAwSi0{tAx&^}zDq;P`)&N)x3z z>ag)=FFU8g$fiHU3f-Ba;25E7{ozs?AAXE>3;^dT>?S^e0$^Dy_5IWOAQp-IDN4O< z`+OPt_NSx$D{oi;Qi?_*=x-hVcp&rwm^CDUerbxvGql~7@1T8PEN(pHqe_FcgS77?pd#;_U3qWBW zulg!r172idPj~S4Kc$V#f|w`1f$S3F`Z5r-O7Kso582;?*ywLbG>w%r+g2^;M?aWRZ&n@r_O4%TzWvk=V7z&C4xD6(oCI5VGxxL0%{tR@*l>0O-J*I>Woe|zs}RGLvkSrpzYE4Q$GT*Z1p&8# zF5+0yCu`Cd538*;$g(q%On@XHXb;?Sqct%l5A8JHm|bDJ1Z#}!_HK5%Z}chTQ@ZT1 zs$Az<2(Vw0zfE_T)bIJDk$ga`+IhXZjIMI0nZ-0jr(MD0kgulJ!iY(@kExs9C6S*r z*`g{bU!_$!4O~09ghM#H6mA&KL*z7aD?usvk7r2Z!WY`n{J8Wb(6=1%7*2doegDWV z_?7#N(!78$9>Fcja)0M-U7Fa1n!&amHkSfM&&wREoVaXhQqu6V8tjz!tH@JcKWxR^ zkbB{=wpz2vxw#2!!XVR5W*J}W#Fy&&B0I}bvoUM2*$mkSiwKUVgOxQ?3s&Z5A0tYh zGJFx^F9xb6STo5}zu6{wqEkCj`gxtJ)b=@yPiY{e&Pq+ScZEdL!x_b?!HW&Xg>t?j zBf8a`CY>~W^20r0XSc>D|H zzSTw09FTfo-#7Oc#45F~Scv1eCYizZ{cWe?g1Z^36dwcN#R41tkw6Zxoh{Js-;#U= zCEkjwd;;9wJDDCmfkoRsSNI7eM^}TBM|)iH8I`wxg@(V7s~rC!gZ`18C>8VP$<}pU zE$!CXZg>wDQ62BM^Mrm(?jcMBp z=j^9D)3LC?^Zw6+agx^HA*P?4EC^?dICoTN#@Z;ryLU_-`Ii7N!8*w&?U!Yo4jh1#uo@!b^6@aXHOu_HlyWr6G9JF-90sZ5BZ-pv#ACMwfV zCjg4!nfQiVEx!#n4~FAl-fWhFYIa#=;PA;870mRB^JPX0GFCQ$r&Vqd#r(XfeQlu= zD%>9heUrn+JQgbEZam3qo*Z&KRj(e#w>30a6V@4OqW}Zt0J`dUJlWjih_p^4$jqut z^EWfH+jxq4Q9w0ZN_%H4Zq$w*%+}70O_7?Yq#n-|_f^&*mP`2>*&HhSdEXBEF&yP^ z;m+0;RF`q@a`Y%T&Meg&2sx{>s|COo?!f?ZdVIt!JbKdUGH5^LIv zsALQCeIVMYx`)pR7p1G+-bDE1j!&_SwT%^;RN-@L_h9rE48lIJE=~`pq-6`D@qpc+ zmA(Iznw(TWsyK)bSXo@((&x|e)aSDKXjycL*aJSri zY0%sD1*pXq%duRbjDiFGYsTfFm3N%b9qsjMuK_3O^Mkm8Yr)m~dq;6g`##lsH&I|! zyAfEQ^q&@_ZAh+fX|U{+H)2HaFkG^Q!G31OBDUx8KaIGio3pro8+*pTsFWN`|J?P| z_^0yjxA?y*?*!fh3o+_@?u1nE)7uLawMrKk74g$~sp-kIjQF8fEM%X%x2fCpFA#=H zukeuiucrPC{)E@X;+>)WeygalNY_60c#=TJ43va1$U?n&s8s3gCP^I2Z>4oszM3@T z^mWWf8P@mO58t8Qkrmb>S^XeH6;l=LV{QSdkaUTuGfiF(Q^0mtl_a5jmz^#@qRPc_ zw|(2w-kVU=wkihlf$$TMo2G-(zC%#kpEj2J`0j89wXww<RAEuO@o!^ z@37N3^4Ht^%sF^!%|CY_P2w1FU(ppz{cTt?$6x*ACinO@lf7ksIQI`gJG}mgDL0}t zPex666lQ-I+*OW5*I~Z~Ex&ThQ<|EJfQwS~nq1>FVxZuc(BELU%g0#vMEAr9( z6mv>mlv<%K|BjOeu@Qbf|8T2{K#?6V!k_cMRqIJ;&)URAU%QnAXmSK&XnJ4@#SGhayh1!o0^FPuCarHbK(XpybTbL!+NHX zF|Ms{ne1XeIAsu{a=RY^e^GdUOtao;JRD@M>xa3-ghR3J@4AWQOb^7tZ)3M`{K{CL zlNPcYpf_rUWE)Dm3Cj(#qyC<0-Kr91c7!!YsZqxl;Z1>ZqL{C(~}-z2=k0L!LG5u~!n?2EEoQ z{@0^gp#mJ5sdTE*N-L4Ti_KqsNLP)%Gd=e*+WYiVg2d}F`QOm-M=LnXS6Jdp#2|l? z#$r*Y?q52PW$on_4_Hw0m zDb0}G#qq&8GIpNtlMja%yo3oW(U&=@EmzLxQDVE{?V!w2)&=1y42hQ*KEenR>fRn@ z0l0>AQ&6|8J>ClBPi)1a)MX}uE2+3i&(*VOz#fhwamDbq4rCTRC>)wjfnH-8Y|<>1m>!8N=2EC1D)ggAa=dAF9QTsU-h7!f?U3I~ui`&V*v*QJw&l=&``2(LkwwB|3Ye236(y1;lxU!G7loa1Ps5yWcZDZ~ zW(IWP_sAD+^%8apU8FSkTS-}T8=j2|he0HZa0I1fXh7sPf8=C!4Di#9CJB~|@{l=m zqsGP3H@ZoL>s4Aucmx6XdPwIwN2y#wh1B9e_!Fw&sB$ou1cCwd={oyH_Vc+ZR0ajm z7qMDN6{c=#orI`X-wfxD!OHfr{um@=2eFP!LgG>(97vXcmH}8)PrL~+e*~wBN71c7 z0O_gN$?O59@~1h%02K9%YzPbulyZ|pQ-GwoK}xo-Seabf463YUjx*%Ft*TmPC~ZTty@5VVEy}h|q`B z*G5C#OHs{WY7PEew+0Prm5K=_rC|U9NDn++fTjtvPE+d%_Cvxtt8oXtA5>WEsy`eS z>1YO0OoZL3Phj>2I#~i_nV%_aN3-7{74{G=yie2|VpI^lNx&n5ft?~+1crJ6DAg}W zlUkJDUvn80@uRF(sP}dxWz6?S00UTfAIJ)VJK?TctaJcs9O@4SAgs!X!!|PU71`8f zk|A;8Tp%>e0|o~1AsY@ZE!N{@HP=6#rZ!Wc6-XjgT~XjYcqRu+Dd@rA?r!=w6%}{o zYU4+flaC?U&90|JHd`IMa=%^Ir(I7!{nct`+PlBk_685}*G=w;(KdBAH$@FA?^7n% zFE1a9|NJ$tzxUNde>Qx6PLJbP@fAk^5Y{`87^S4QcMp4{u*oC2Y2Cs@cgmt$HEPKG zs|R~WWgOSbveFnOqFfH2k5}_?;0V1k$=eDW*M=ta)!b&E+Qj;TSM{padR6(TrzEA- zkgcdEj|JV%08Tnl!R4q&nkMCIpqI`VB;-BRzFqqRUP4Y_kQbr~7k`6QY!I+zJ0KhW z8bXIh%qUHaYEh!0))ZIFEtHkrBEg*bITDXPqA9*~;!L!DLidBCjz{Yi!&$RS1ofgx zu9H?wsruYYXSH|hxa29`UAz!bU2;^#8!j?m;AiI~=)o^(cYLR8AFtW~&ELZHi#P+BLdfGj92|+D#j+y!4Q_ljgYUegAHHbU zAq_8pEAm(2(w0j_tu51js|s_@NLunv@U*R5_PiqO-Uw4JUhMCHm|f65rKK@5Elnn; z^=31<80D7R?D?GvBTMmUUJ zF{ZraSH-#j?_FaCpz4$c15LOdLDFHdK1%xG;Q-NMPP&W0$8+MMcf@ipuYm(!oGnm3 zW76nV!32Gi3VP1onAsNh7H>T>hbrFCeuEJ9qBi^xAO53<&n_&-5%ON5RnKf-XgIt5 zXdZxiMCq)Cv_J>7_byG+OTAWkxM(=KTR@8@=r1;O&7YPDCodnE+Xwiw-vH-t2+4oJ zTPDW8ys+5W{%`WObpBBs#nZKHY<>HgStx+JD541Rn^nA=Wb7&tZzwxM=eJGFf*_mdV58i2CYNr)KLPfZ^lb~2cQEeA8kb!B%OuC8BAdi&uivOos zP3KV=aLi*ubv_sDbgFPtj^1Pl=7B;B;UnYe|u79Ys>$GxYsUm~-3&a4c5ia}HISL$xesPPVv)oXum4f)IfeY}3+ z%1=x9RoTATJNNB0dxmr#kG&w8&(bDS58E|kv|blouQZ+w7CWU#dvZ}g# z#BMgNi1iWgqk}^E1-Y;}b93qDThrUS znk51=_x%CKn)>Ya)g(SsV=z&Esgv|Ocxl7+cN1RG9E6+!pcN{Q<6$saA`VWY!eS z7s$=yGQi5BXyfPa&--3+`r}V=zW1upuusOGA$*mW!F^UzDoBsV{i8Ev2}`S}zYXpm z7UX{~O8;R^|9BhzskLeFUqN}I2wm@L5WI1q19q=uNa*rN&#?=>voEm(R|X={BT+B( zEmW(Lao=03;G~LV*vHC%@h>Z{U1_hTrq7p~gXMfczv4J84n!i_C;dUf5@MYYL;R4* zUMTdu8pY36#%G)>;TN8etZYN#L@v9pd2{Ro$)fRvvl?8`rReNOX2VJ5=;12Pd6@GG zWOP@h3~P(%mu`JEu{@)%i`PD|HVYPbDcK< zsj!BYbJ$%%tFwTumYNR6a~UFy1ws>ocW1X3Zu5;#7~*)vvYh9y*jJ?Z;2Ph(*325j zb%1YbwA85QH#9^zmVK5&7W;(?J4K7LK$tm}+4|8dMD=c)RE^K#?snydW`U$DzCU7p zsKrr?svz#l?U=udE38uyS~|*h0)1=D2r5{)VK_6fK+X_(wk5(4Z^49Dk3vxgFh(q! zDNnE#JY1za7x3$Ax__&ykH`Mx+QGT=WOKTes-f5*X#9B+4IS=dNsh0Pa{i~S`)VsD zz?#aG@Y^5i1VX9E2d&Q19Z-=7`3vQM3&oM^^iZ`ct+D+lNRjiHtYh^qA`~&FnT7?k zMZ-7;?($G9DOMdf0|QZ9lnc?SklN=|&+GGrsI$ z*D;F*pJ(Ksu7$O|l>A;-OkoU2(@~xGYq?Qh-(IQ-sTr3Al44E$j!krQChv^nO&Q@g z!@tZu=Ao8YH90wuB3r~vYJCqn*lFh8z@{Hzvr$Vm*{CckPoIx@5Pz$ln4uN{Oi&!t zYrR}^X`%p^q`33Dy||DITm7iy&A0;6 zsmNXI$?uxEHlCv6W4-J@s-wf=SPQ0~vG`7>{4{RlP>(4KfESYn71o}{CbXBvt?inI zF*l-_edFFc+g;#9Yr@|(#t9l5U;>?aN#)JR#2M2|l~vx|5Nx(+*Gwr2&PtaDlr1R~ zyWtLcw^(*vz^V~kSXaq!LZ_cP>Ip%bfcw+CVD#C0oWGVGELc{W@9nX?#DbRqhCJdp zzwl$FZJSbEPp2JrTC(X+_W9xH2a1P++*=X3t%;oC>-;QMAc|lU84C@Rv<^rBkA0Ea z7&oX(u}6utmo|h z!nAEIUF|RE490|qf5nRb`l$LhR#gshNGu%)ztL?sz7&l8_+#zdyX_&z_HlWt_Jzj!|YvQOv9$hb|1ptYMtm{kQl zozz?-1*-kQ;s8lLtYvXpOP6@6dIqb?D_*HKT&$rx*CbP2IOqsR{fHwGcaRw0m5F_*ea(NqdCx^R5d0`+*L{7<0h-Ce;x;n~Ua70W^>vA;O?8xM(GtHn4Bd9*ro!vju;EYC9SCAl# zG3FH6$TrS%+qdZrP=>PQnCt7%jOG{1SInR{JMn}N$WWjGGN!vgMjuG6HwvRYB%rGz zO(8x(&RwPE`x*^cyX5LPB*h(qKV~5u$}oMzdkzhCKiZN28H%{cw6;@9jQ=sN`JM^A zQL1w)MGy*N1c#6Ln4#eZH;RBDlg&?LJJYB+rea`6;@^VOL%BR!-R3)WwTGZ6O7eD% zTX&5&h;F|eOFm8Wltf8@9SN~#Uz>tb$9w5sI#7e6X|QhF?~&TBB33)0fn+++{QTrp zG@ur5)`IOD_kuaXA=SNOkoUG&8aidp&n$@Bjc*?9U z9UYSdrR{91ZlsPaHPcK%U+i%ZJs<5p!GD<%d-~T!ep-Dsq&AJp9#?CrKy*5n zYb$1UsXw+9du){Yv~M<8?c};J(rG0HalbWM7;CUj9WG5imt*^Nc@x*@606Tqu~fTN zJy(-?)o{bSnquaMifS@ytjVw*dk$t9XL2E)BO|ixg4KvEt!TXHBIlF>qAFf1qp*Pu z=pc+LfZppx5ZnwhqAP0mG6Sa)u=PVq@O#ClHbEUqA~H<r{C>MM*3lJlV20A!=BndiI?;JP37fJr7FN&niU_jLQ4pY0P9ytK#)6hMghTuT zdzpT=v|?e&D|ueq^m^;8YWi-EAJbO)fP@}wP~D(cf%Mg59yx3F z&qI6WtyH(2@*SHF5}B${vw+2&aci-!oXGj2Y7sqaryKiR97XoL=2T`(4YZES6Q41J z=(+)SYJwwC`DFOBlWsc!@l_AtbV*% zo_ssPllpX)*a$2P@dD#BY$HpgB_SVj;B*I*rzxL9f!bqmQL#uS5Ic0Giw1%#Dpey7 zDwdL&bqs8!t2nOjG*{?qF@lo?fa0+2bY)P*zE>tRQ&eqW&J&oMOC4eh` zC|m|Atl-3+puAI|I=hPap7fM22S!>&-1IyYXm;P`Iz0Q4F< z_kIh9Cq|B7ayOEnU8bj-m9ZoS&7u3D4}>75tl(QlWMOF=y^w4@;+i@ISk1C~0y-`w_$d=cL>+U}OMUYL+zI7{@2~Lj7a5I# zk>TI*7ymtc6#lQeCk&r>Kk-?eC7@NJQ8Jt7r9swp0GqoUXi|G2B`}G>%5EPs;j!is zi*WBc;kZ9xzZsa(bhdI+Kl}9KIV~=R6V@$}CX9xmKP8ZYWSK(>9qtD2bja;YT@Koo zLU4SD&-Ly~MlN=r)Y!8waGHUq9pednLl)A+-rQEvHvR1ml`GXp=&l0p&6-l((RzpT z2nUHN&0G-3b01w*=a#zq8atHA4v}^~Mhp|hgJN7vP4 z-C{+-+9n@W1zUYuK*|9&)0Zm}STr`l4OZw2Qz!s(c|5oEKf=`|6-{uJ)W{0*b-gWn zZD~;rD)t-UpwU7%-q_hkLP?Hl;c;x*-j`rtYitgPi$#opw2b%Ska8_DZ1u!sTbb7H zHwT(KYO7U-NYYjIO<;{; z2^fvxrALLrT^bFblc61^)E55h^Zoh#b5NWiQfC#fli>S{lmk-;+aNeoV5Z$^n zEm#n-kJXBDDVffQDc44r&F9Njo9z~|^^jf`DVB&cFiuGcT1lw?xto9X_SeJ&9PQh|}HYTJ-8cXGk5osQBh+^1}TLJXx1(M+0VR zUn6+xVhP1*!2XrCYx6PZ7_40fDY^&ZRjP=;hX3-x$wR278S>r**2%skyh72t*ZeyA z&Kdv3Ud2A|3Cq>oeh&6?cI6l0XnX1h`A7qHQIC3QdRA%oiCQ1CgaS~rENn`s=&JDt zQn;H?7?}|syFJdenksOg#R60QiXM1A7o$gUxykgIKqdsyDd#vQ$G7MKX2?R2Zn|b; zPyVw&ymg@x-i^T)|Flr^2vcsq2NM`*Wpw~9cFxv0A3>o2QXQ@ccVph@i)gp)(0IGa zwDqayg_w+i+(2*(DFGm^USdzAHu9LR(U|ct%J5Jr31sAno|U=dV0f~Dua?ngi-Uy5 zXk8cRhj}Wg-xvmts?HkH+!`5Uq4~0{KX{LW;e2#3R zFb|(3^10Eh{;QJz7}i2MCZWL~4_%88;^k@x!xS`kix97CV~z?-L*iKtxMje3)%7iZ z5+-TqpRBKa>aa<2=Z&6qOhIoPAtU@c3X1AWcn-KcVn+%O4%c{P{Ka-$f_l{`Ol{g1 ztl+SK=$Evf7G`!0!_v`Ql{`?6AzudCcI_v*kz3H}8{Ol_Q|lkMfq9!VNJJv+(9?q({YD#ncEcmT^gIOkF6=74qsb64E0 zpBlUayc?+9eiiOpsJ`4@_@(u*YkcE}-vXXgnkYm&EbJ>bH&Z|TJHIIu_S}9l`i0vc z-CP$w_eKD1csO`_-r?sPW^?})4gZn_#LoI}W7$8rB}!5q|GCbI@UNnniV`xzS0qZp zmIxFZU=#=_=HAYTB52J#V%>4495Mg4lYbo(snsPh2cgGvfp#jm+2W!M5 zg!rK`Akt69cd|9|Mf58UtQK&s@P1f{Q3&ri>yWQx|nENd@6Ztjzhx`NG@RImsq06_729chl?aWExNr{7P5NPF74)&9sE9GRpV! zeE*|buqxG1P!z;%ecaC*AB)qAeTmM3&DTd{yC^NWuB?exDR?l~f%S+&K_vXBA{eOT z^XOCQnrc_FO(|>LqKt0aZM@>mYcFruA^GOT3NW5IKZG&!&SAnq;jaw$v2hBt(wv<- z3Mak@Q&B%|u6tf|Vi4Al6aenxWokb+$(nuSRSW53QzQiB0Lo5*Q6^Q2W)fqTLzNRc%=> zU$wbDPoiM@6X!}fQ-)wcq-a!!D!F#C91YLaCNs{bmq+^osM*{#C_6nSFEwn=YoT8H zx>wT=tsEFqElO}qS9QZ`YLi&8HG-m7(e-`mRxV``kRh10uH_||7WgP8pI!#mhZT_% z1twNe7T{hTO5#_KOiEHF^$GA*+0kPaxwVkVyJ>huU5F#4_8#;1zct_ATF8y?z{n?X zd0y>2@1UnfJm&s3uzzy8{tt$mfu7;t6!(9>zGVIhzWJZh)E`SSW{I*w0kxGm6p4+0 zj`&hYi+9>Hzn1cZW*%6$bTG{4b^AvwwR=9!=otAE`O2&{{8%@F1g?^MNVIPHnz&e0+JQymf+yo7D zPkqGH7EdD+3We_SnN5hFd}1-LfA5?y4oCU+2ma;Rav**=dWJ-5qU z2)rk+0El2FIoZ!1(i|W>=oCbRXh?F59FSp=h)PY3Cc9#6`|X)M2aiUj4#as4@wz~e zWdw@-#)!8pwBV+se$7^vMVr<>%vDMJ9zUF@mmg)dw%p+H%UcYPcx>z8OgC|#bl(=o z-?_6i?{^ai07PN;9U_6@MNh_EEaEbP_yARQ9G!=^?oSDt^P3Np* z$^zL8Y3pM?9#6yM$^wLZQdM47_!J=l7B}Byx47FR+=V4++a-+flHtdrdGE&o2%ka~ zY`yao<^Eo$h!*#lAwv-@xl`s2;+~G*iFSSNuku^p*_oo}z7UxWO^%?c?C=9A>&lPT zkE*7rE;p8x(n6o-(o~sTh*Lj+gu4Rhzu-8o)=c+uW?Mwox;~!VA-W(=r_C)Z3P@FD zPfID(_tfxamgWb2n`y8p?Gw6j#&2zA;eCJOAZy$jQv+N4u@X`LE}S&kNE~laN3XTE zTy<5`)#li*k#se@neyn$Lt-K?tP!8ePnv&WO-0&{tf<*s`4`R<5Ex@!HW=1b7B{w zZMALjWaP_V*l*!bKFzZOqY_Y?q*kvD*TV_RrI47T~f)&!@j=b1$&AR zaPqH6@|VajCXRoul{qW-I^@&CbRJW&_Yu{F?pIl6W|DNJ6jJW*ROZ$ zjm*ieBQ8IG6cn@7UB$Gw4@;6|o}|}FL<=b@SDHuAax5g3tYdPLPFti!SnD0Tzkz71 z7A;r&RD3Dz$f9`n_DYvxu9qJvqfEhaucOma@G@@~@h+Le$C%M$@#wRr(@OjDh?7Ye zWz0nER^{|!tVfC8i(USf62Kn`XnWLd$wScT)V#=Kf_Q>%9P@~|8AGzIM+8$tV6{^; zOJ)x^mZk(ItN}6uwm~TPGl$tVG5eue$6%qsZeu&m9BQ8CFC4Q&&=KF68RS`n4dgBh zfUIpWYyP{|n-KRymXW|qJv%Gv!RDwI!&QSPBlee%J)KJ_qdTB9L9i~wm^SXr2|fy%`6~bQnftdaSw_Zx z&g?qJOct(%a1_Osc=1)yr8ul)gkuQm!|{TS#vfUOBpz znmoy2qKf*TytmcNaCtWz(j+Uj3_%hnI@-ONKE0yMF%IMN8FU4vUbnQ~Hdw##qhhjH zWH>%J_8vA5zeewUj?KSdg9V#rvK_9E9wum)M{c(ka}Q}7 zDTZLyZ`Du$MqHb8;TbZ(kMrUnKVbH(wR|Uj#Wu#{cv>{P(L(62_>*I{Q;r^-NqDBgclsn`wNC}F#L@0pF=`f_-jC0J-6qFEBxzvhvXpzjiSK|3#Rfr ziWu~Iq%Mn$sjT$XUjfWvM+OS$y&+Hfk*Q`DImh3gf9gRaR*5tdEy4y+Ch8dnzz{7F&t5?;GeRf>(My$C z(kO{90OD0WY2seO3Ssa5v@jlyeX7YuCxsx!8*4aGett>2=wDzrQ$N(R`n#r+L~ zoFgW)To8f$yC=&Tf!&&h$P*ry-6aUcl6aTYs#rBwNQ`h(WC}iNRv;Chd||>k_!( z=Z3?d7ObQz%y>Kkt;M!waTlIJ?(QU$-cDt+Y7t~aTKLYHaK4NH!W9VOXhC(xQSuA#IF@p09xjQSxBrMDir}R zVkslg{gQ_)8=KFPcDECSPGa9}%4HRYGkA8|18&wK@p%z})g-TQDlw)?r&Lg62iuJ< zLU?2wB&9hpc2xC;?k6&mBx=_D{QF~M_43q;gbHDY+^2otE@i)ZmAjRwRWNjE>(yQ7 zU_4N&r9%fgoyH_<2u*fdS&;^=ZPgzrO2?$QICvZY0X+{R(v^PD`jDD0_b!45hxS?* zN|_`Jq_Puf)5=?(if7kTySkn?G97H;tL(?MH`-xywBkX5W=-DRo~TxC1j?GF z=ID(zW`lz&ASMr8%bk(CPaa)9BYU6OJ!TKLVN<% zM#ryiwotFuXcq~KRKmOTvzB-Y=?qclfYjNp`J;o;XFin8%WY@V9D??K18cGCf`*@Y zxSlEr`sP5Xwsbg0R$GgraqnzXT(o7!auu4wJAr4jybi+<V4$7<2GRlV=ZW#wj1Z_gZFY+sk*K^tfZEUHFL``)>%l7lt8 zkHw{-Kg1%~VgYR!ilS>Ak8?SilM}A>fb(^q#tWoS)0fyB0ZM24X7}w<>tKe0si&{? zqwSLqvk$x09?+#6S6Jho%-iCIJJNR+o}P>b#pac*P2S7Dm{o{39knDZWmCD9;+}$P z81agV^a~GGeV{53l@@n*uNi^%04KN+I$$!8yPcuW1kAi<0Xbt*n_I`(H0|$xNRTys3co}`GWO5m=P^<7?pYL$c=+VVK=lW^)ZwBiQ;PaSDSWq11?FU zMtKXLB5A7m5y-n3W7heTVdv)6p0z4zRVjY{#b`Z3s zDxn4=B0>$tw9lRulalrv2C|vZyQA;xJGHy;zifMVIfv!QCfo)&QxugBU`jxTEXCq-JmkC9^;%3(bGpzzct}UqV_dTGg zXQX@{9b<$!j5}mK9h~~p!Yd|q*#4#*4Z8!|RP<{b99nX31rc+al3ZT7?==*0xWcnQ zql%a5U_u2zdwGyZ+AXTPLUW8dS%D$iJKkAM+6mEZa7ApI(QXgrZGxoCV2U`fK>Frn zvwyyw50D>t?XOW79Dlj+VBlc-$D&k{x`yLAJJO$ih8tpKR0p^41EW3dty(q>EljmZ z5Bwa2yq3LOpb=xSZl8Am3dzCJ(GGQfSKyQV^8lZA_s8)Nk}k>*L)=PR*7o1@qo3T= zKkJxp=W)ajC%Z*Z-l*tcfo^M0qvAXsvnTm{UJ;7x9ebnDO?-3I4fR~hn5gJb#Awp;c4pmh!?#u4i9BqA5m(z)C{UOrP26tXq0cG@ ze=Qo^_zc#6jsLOcM$o2{ z{2&_HvCI)cL$OsAAz>{iLb2`Ipb6xV{bU!{$v_=Ij~pSoHAos3Y;so8>T?ZO5BaUW z(RGh!|NYwAp0Xc}qViVb04JC>mzjwBtw<2(_omk(_Ei6G8 z`H%PjEx8{zms$Co4ge>mBBa~SC+xi!%*?T0;n`)Jz(~$xi488EQf?RCEzI)2%(a&Wj|?Onj8S}H~f6GSm!Oh;~E{9+f&%3p4v*g zFHh4RHM!+C=%Mm(CjEiKC*Y0DzO@>a-bHJ{#BB1}vn&fUb)C;2vU$XYIK#kQCvLu; zXGeCGUE6h=Pw0MUY8;5os_-;bMP^VL0Q$61Wcelop8Z}RHJ2Z~L?PapP;f=V;r=0Q zo|-jf+^71ppv1Cl!D|j|e|ip%N;HdDlR(6c=Uhl3D~#p<_mIA(g`j6|7nDdbt{q?z z92(+C0F@`oR6bVYX$9W(f;3dHQZhfit&gQ7HK>ohNnsqePe1v~YxcWg)k|Xx9s|vP zWOsiaAMOR);q)7!Lx9%2*u=~w{or<3;*^Q1%W$mW4~UaM`x&lx^E~ zRhMnswr#7sY}xcRTk7u2oo#mY@ zz{7@sySUvNcGjNe8@&N|RG(QMR4kA6s+9NgZ!-uo204;s174ad>l6AO#pnrAPbEI( zZm+fxY!q+URDJ`-=J{SmigO#P{9{wB8+Z)!7Z7yCfW?p`X*bIQi?#729SW_Y8~YTN z5zMXCy9LP+g~Te}6>T5-(Ci2T%(}?p&BTG6&A=|Mr0q&XK2e4u=kb&0l4|4KM@}Qt zdAD)RmNCsstl;rZDrNR8z3dp|Y;zpA4K;5O7PB6LF3BDe2f(p0&}?2lXX?x!2BFqd z)pnoj=gYKgw6Yw-d=U_as3x*@^0=U0(5ov8_?^{==3#jq*i$4)0xtV(Vk#` z=?-NGK;B)b=UelXebU^mIn-ZcO|{Z>0@<^ClP;&s(53@+d2nTmZ2&xBUcwtEZ$N-X zzhc34hE-@1UExg#$!S_K4o_&OOeLSNIge#*x9ntDlKC*gb%~~@MTM&q_d&wP1Ri}{ z9wvE6-SVX^AfpxtqoSN#65iH~oCXdjQ}Z^II3jR3t0Wi&$J0`V%dS1{p4S{u5{C=W zMVi}K2TzIA5v32rwdrP|@8appC)&n@b{-h)4!wjP3L9qhFSXc@O^<(B?% zh*`4?Wl|_e=Ic*T&`)RIk*%%gc^jJ^N?y0t=^w4RDr7W~zOUy99~`5JDIT&YYS@&v zt@VYiM&p+ni~NW@g4A?^7o1Mh##`zVN!gf7P8obvak3g6ke_BULCaojmx0oGh!w(^ zd(D&^ROrMAtb2Jy5?$!!JcC090`o|EY6ub^S~#%JoUu3g4qG#TOM!uqXy?B}rS=TgE;zPXVz&;DK0D@@DtvgW(~emXqn&>5nI> z?v+bhUmjks`wBT8lsCy>!`tN#afyWBndxxfN?s50q0g?*VskQ|&hc|`*G${ckHHc8 zCNDL=oW6HX^MydYGxNzPvB^NLk;MFXeK;<^ZaM^Z4RH~~-E_nX1(NoSzUcZitcWMz zki+~iMsW;TIlzPgb2QE)zaB-zTBb}SI9ZN$mT@ACB@c9LKkCv2l-0&235q+jqTD`Q zHkZ0cgs)*5S1fU7K3EY}yl*d_fwg#8dIaDql3iH7_JWe^Qq)tR_R*x(#ZOQ2{O1U; zLE{8p7+#43h-&FWz1wL?ZQ-225~)a2PbjE6I9$Y<8!JN>O0f@(f&APU+fmRPDfMdv zz}8eVVrgSqx-}tD4+l1$uz$l6lfhwgc)K42+B9D^kD)WYgQ9x=&Q@seXp#4i2I(pt?!BC?8IvxE5U2*SeshJTZ&&-EwjkO#h?c(QZ?S>K#!2^ zpZ^D+)>>W-Qxb)Jk2+HOqI=yF4f0!AWNyT9c@!8KBO}F@IA1#tH7zkD_>Qu;U>G!&|+2X5VdX7hY z;)J{evvls*8R8t)(vH_|MfO{%-8Fs}c9fh6?Hdrx>9Y;QfNG%k(tPQ64I#Fu!>wBR z$FMehvx>H+6qmNt7UcUB0sLR27dQME51TAiw0e1QxHjzjL!YMnDa}N&qNHtkQERxl zxa2G=%ZqHKDzd!&cXC3t$u2d2N^)9YC8_C%YH})9P?GDYMG}NMCZnlgJ_LwuD%SkL zqEH>Xwvf{n|1r+YLgZ6k*}@0#ge*c3p(a$LaS@vAb;N)lWR$!jtfI?L&O9x5j}ObE zp#o`8ndNyEIyoXnFl!`I)e7eVA!WD6G%L1Nl4av?4D|HycCK$G2g#PLIBEc** zl(2W3Giwm%DUHHe+wB3MJo(hbf?btBypM}$R2eL;KK(*-yUmg$FDm{}c1hoD7Rj@j zKr(LGC@OBFq7M7TUt&HmB1O$tePQ}M?3 z7e&tUjSL5p$G!T2I)ZfQAd6IHY;Q&40w(a3V%t$^6gzpC!bmFe1~RC7bwu4(>3s3f zc0j-BO}dPODupw&P=6f*XDEpsB2^TzboP3Fftt+`XQEtMz~9@oRxo_dGI-uisD*_ zJX>1yb9R4EsHvHMi9@^BFU7{p1j?HcsCz6SpD#`;J|u};6n&!DO8MpKa%L%XSYqq4>C+MX(VvqNke zV&z6buUrH2J{g_e-CSyB@6xcQbkZBanw#kM`>Jzdqi&I0Q*kcMGFoc69<4L;Xr@K6 zvn4B>Ru*Ydy6EJ)-?n4a)~92`#Ixn%#Lid?M^;U*C(UKuIM=bk)k_m&v3K{Q(&m+F zV>@rOm*Xt0eANo@tQeu|NeP^z#LrE(>+*URTwDl-y+A_+*WV6cYTUdQ*-5`n^HL`_Iu zP{lmbQ z;0<^dyb9a|ZHIJ1JRtZtgEQd2iVWbtiZ$TBiZO?s9LZw|BZCo&P=RgsR

9VuBs0QQIMt&gmvkB=3}k%Trx+2kJV^u_72hu-f|4KS zhm_4148E(B?=&(&%}7buc)T{*&sv431%v1Hb$_b$XC-g(Z&~`9}yOPrOZffc7`z zxZ*~@jmrFW@@kcAt%1Nfou*5^<3iLNJ1nTFgJJi84lRIHzXN~19&jv79d`pWp?DbHM=>H^ z-joY%HJFXE#m$;*e!xn%1Q`oq#9{sk5n-_6h-23L5J6;iq1+9jnW119l2Qui+M`TA zK4z#(_va6C#vHiNC@z9^`gwskn%(@DfJlgGlnQ!Oe(}!OtOKt&5Qemz%G7knb(D0u z>geZaQXGQ?X&#TZ2!qjACU$vxMc8z@l{dEZfh|4f3n-Gkd{%2aC>mWdE%SmukWZ$R z-oMBR*cty-i{<~>&GNsf0LP}wIscup3cG$q=g-Q_0)S!FOp`7={GJ(--;mk>1zt0o zQYSOy`FundM{&{+u_t)2aDTkAYW`~LY4^Rkp>6op2XA&h4d+>i|I?!7fo}tGxYXsz zxkpQ2+xN|`eedHu8U4@e+s5a@WcSO{p`+=io_~*TUkSW10_l`oP)QNg5x28d&VVY#`7Mx4BvoF@pgqwFIdPhRq!?swC9xDdWn~6Y zAi1=2K!3{bu646Ri{jr#4{7tn((76pD5Z64cmy`=l;hCy4Uuf3VSG6}e|nCZt%d%agCvYE@HvQS3E3A;-wj+i*QoIPfc&Jw4dLJUoZiq9@r0fx3jQoSIlTRgll;u@2D^{ z_)kZEzW0cV@oM$|;{9d&I~wxOj?4chr)OehX8ylPJ@fxP-~TU?dTrf!{8o719sR=5 zCoy$mF=Y@qP${@paIL-wm50F_ku2J%fogLn6IV_}N z1jr*z z#9->4x%b3NH(ZE>61mFaNq=%m$s*DGD%m1&dR3+7M|LHXJz(RslCZ+O%Yf}j^Z*O< z$6b=tsAW$@>&LAmf4S-pS;`@go3olw6|Iw8!1jcHR5BkogKdI7TR_Mya?Pr+KbGGG{B8&}laH@iDHwEp~d|F{9fj7Bo@S zQm7Z}*^t_+JS%2&IuY1iAuj|Z`TPc&W)q9#sx1ysc0~N!VrT*WjOLcXtNhXg*%QHk zxkoab@f2|DMb|}a;KZZ{T-c3111q;>GhPKs=P0)fygAJ ziLwx`n_n3F_i&pX1LvGWRTU$X76DfGdl3BU9A~yzzTQ)l4np|Og>aj46B+4yG>PmC zgIl7WB>Qy3yFo(Fn7@`{u83yBAB;JV^qEwD^{rI_Ww>R0Mg2nCcc_u%LCyn&%v zK-~+#dUHWI_I1??aYod=(cFtunc8)jIrDqISlc?x{{C{wr`PZDe!jWAx_evb<)4}L z|JvK~zoOUY@B04w`ph1Hx_!DkJU5@EuVwJ>{-9ero@Maw`Z&E?%8t68*yx;GdEW7r zwSOD?9b0iYb4<;~Q80I;Sz)w{dAio<;+aeD@9}a(q^no7^ZD?1PetR&^}_wJ`^&Sx z1S=~IFVHOjvBRLgO6PLjN%GrO((G91Ow$mHE~(z;G*NT6R||cj6Ig1(GQrAL6Iq;q zDH8P87liC1udJy_2vNv0h)REU(NRDxP1l5-*MesT&@d7cnHNGShm^PmW?Q%BrXX4= z(HS2m792u~`3*f8iJGM76S1}rGz~%?>9Uh~PhSv=`Ja}UO<&N&+!Luhd?|QjZp4w5 z^~S+pNI5Kju4|1e9EnSkc!b+6##!=zj05{h1*cnI^#9lsRTD5y@-y&(NuJ2;pO-|G za5M87k`^%o%^wF~c^i>o_$G+O2B@9L$&&rn>Q`>^0#)IGM^(r4tRb;;H|l?rz<{t6 z#Vc$5BPf8VG8hFJD28Xi2^As<(&R(qR+(2uVwwWc9`@O{N{W;TbHeI`SN04q`zVTU zSyP6T@uyF3m=+UEMj{H-cdMubCM*OdlnVh(N4OCHkDHwHP9O_|GXMjv88=L#TN%iY zyV>>70*NYVOH*}F_aOxW*MtC!cSt0%m?kRWuKbcnG*?Lai>J_Hs3TZ?i4Vc93@TzT zit-HjMoN-mgsjRtEelpT9&}G7LB0y=WGBvRE#-&1?6=zoJL&ekT}TQ0%qUm`nhgw{ zEOQ^@-)DzCATAUVLoyMSgMF)22_f;~c7(DwwDT|u3d|+=x(4vqqrxJtXoslFFQT4)OTx3mJsE7!W(Ob>(A&o66=1rx zYE?IK0n}Ks1LSu9xGL=NOp-t4LHcyfST%}R(`rg@g+x>*7*7MVi%Gdm?uxh2e zF0Y5~g4RH@TpjnUKU>9EiR&G$?wVK7bseEEWI4vKoLMD{5wGn)&Rs9xK7fIP&*?*S zZ?KcvJ1t(}Ye!Iu(58sbK%$};DP=6rpHMlG2g#a8IAcXBLL;ZmHsWkj!E-G5sijoK z%@_hg);}I)ODr!*0Uj*}>y6HjEo3Pep;bImGT$1EOp0Bg008*|9s;CAT{aSZd8$E4 z>;_tb@J!xq^Lsf!Ar{7et?3{j^1a@sK$H+QIRT4PQhF0=?@<;fj=2$^Olaze49p`-|r zh@qt<(`Dlr{>t$>u(%lj`C*}q1lPUuINo0*EeU#JtS||B=WINYWX}UZSY#_b6h_o_ zjP!g)K|SPuf2!Q_QXsxln+gOp$U5EY{vqGSHuA;o0YEo=2t8_p-_Wtqh%Sd|z6ilI zJ~D%-&RdYEK{c@RZk$)Hx=W)_=2OcH5ZLN@j|H}aNB z)_fkM2#EkJ7qUh%k!5;14h#A%qWdcZXW~e0b}1hYjod_~c+G$$8()MVdu8w8a*b)R z$2>Vl+sLOe2wx&8AZI!8tiQRSJXykq$dP*vPHQetG>?ks&W@GbQ6JO-bN6}uv z70%zX6Z2G#jD_~}+~xIM;42f$XhO1|1v=~R(d2ftwU@sY-+8HVP_#GW<8E(j6nd8o z&At1GjALdJ&v^N8={@{fZ)aa~{%|Qe{q%17bCz&nL*MEg9k8R@6IA!^PAG5_nn)F` z^>TA_`sx0BZ}0bU$?&}MeRG+PC{S81fg2V+JdF#5hJU=&dQB8k>$_EGic ztZ~1Td@i^wxKdCZSRJSj={j9*EwAf*wx6RB+yk-Co#5)O>7M@gl4L5CMy8o&^6yHz ziEfgs)H0doe^NG*Hq#DTNL$I;>BeoP>|~s@lm1~c(N40JY9U+u|0z#oYw0HXNxoA5 zNjcC+GM0)X<4XI_%9V_he$so=X8J)7=`&e7!?>^1znMmpc+(E*N#n^pX~&JF2xRUw zlKz@%l6Doiz|sI;4WnUN-TS3Q+HpFDor_ zE8M86_0eW>>?C zjZ+uxJA3hC*x?UySEcRgIi-_)o^pRc#ygJljh&IpGse{LPY(Y^q!YJ_{uinJKQ^8G zZ&Uk!;`PjI|9f_teGgmCkjskn-zJn0HGiHdcujB>fbg47~vyhW2nr{Bt$ zGnPpsiUqVDyi)BjAuG5%L8ZIM)jFi?)1bNyfgx-Sz3;MQN>!7I%1@3 z_5Fz@X2VuEd;z6$v8v)p%=-(OMSIF}GAP(x*~_FlK)=$4Aer`0O_0LM z$us$mH0Rfi@+fS(_Xz5ut)e|i%E7&IrMwF`RxQE2f(xY!TGRgK_Q3RctVfmuXH2t6 zo{^q;RW!DtsfU+l>_)Nl=CLts!A4~tGw zHQ!5F0KMQ7n(qDzs@_FH)H7g$^NbII+(#lr-^>@O`a9a29;d9m*MUl?TAv}v&>{@A z8GXj>*c#cnG*c<(Q#iAl8~NTeKxWLK?U94ISsgmbm2SD`tmn{*A%EPYgG)!g`-|OM zw$Ht|#Ve3#R)Nf=HdO*z0$614w{Zlz=nMR@n-pi*KAyT#n(4G z&u0pyx;@PFbj*!t|E^x?4a}7l4tLCr`*{D3==@$k@6VO!%gO8w0sXBW+M)>cjr3Ut zhSuW^`<9*Jw}bJg^UKQ1bOsuJnp*l6``Ycz;&ct3WCrocT=A2vTbi42lQxJF-$Z(b zg(qIy-VRU45^r_^kpygc6aKL2ljN#BE!{UsTKf-G*Ckse^<>D^xn#wdIU z3pQ(ef}9tgyEjcg*Q9Xx8@=^|p`WPGu@>)1Ir{ifSwXBOy02EHjvX^}Slntf*$Jwy zC}<*&**9?PanfXf$uBha0`uxHG`gtSmE8cbgMembXG53v@WqN80Dstc9Ip!i=y%M( z9L>00U;p08t{P`sjiUo5ZEeIdnL0#_odd~`8&c3!M>4(z#Rd9L+*O>eQ$va&EO2w7 zby{v`MpO`i5P3U4=48Q>a&HLpD;r&|n?Tc@xZ=irX^Hi+zl`--cQKrhw7+52spJ0W<=lfZ?Y)SwP2hRDUEx0n%4wNhc^lTu zh)lB<@E6WG+{v5apu7o)oYTWlXHngQNmMJo5|sgd1N}PuJFWuJC%#HzqAbrLti^sJ z7C`Bl#)rYFHV$9nDSl{Hc)*PugtUk`jCO%GMZ(N71O&vKh@QK)&fFX=3IgpgE2qFN zJU_+CiFs?91x-vQW!eW`6n8loX^qg`AOiBqD5`9LUzD9d*`AzF-J*~{2}}B8r=Rpv zP__@GN1Py+#z{hJGP5Cg)-}C%v@qj`*B$Wn9CAj&5%-CX4?UOTCN=&WgQT(o65+53 zq!Ebvaw6WxbW(T#ZLXSgj@SnBE~Ky(oVgM)2v;6dMKB~Dwr6?^=|c-wq9HklxB)k6 z2#mFQT#mu@Z+uH~4+Xj#@(hX}KwvsdHo52#GTKJuLfdKp7kuqiLvoYe6-oy3{QfN|u&!rsQEdeVxaLXi+>hZJ`%eC`AJxCi%{ZnQ>%v2^%#?*=`D zXQ|C`CPVfQt>>o0LLcZ;z7IGlX@C#jd}2640|w*{w+YHY4P|>260F?@rV=MHE=}t8 z-Wvz%NNS^tqLU7!qsE;7Dam z=xc1$HeSZRf4~nx9$*zn@*zy72}h_Y@lGNlHO(gXG5SPRoZ%}x3U^^{)4n5DdSeRL z9uA&jnj(tgN%awaO%#nQ(Z z6=EM~n9`pPR*6bflQh1_T>X(|xzIY$qcw?3@M_Gy4brXRTtd0B^+ge$^K8tNQTnR0 zOSZ92!WWP=ML%4t!(=Uw`k=^)y~*l~S)2?lk$}VU2(a5xje`ODDR_PK6%n0)5H$sG zSh`XeYbt9!qq?|-Qi)fTB&mebhXAOR9p_s$M0ZCu2J2IEO!G%&ZGGhe`#Q*XP>pU{ z@(Z}YXRj0n(`UY|L@Lj~3;cR>XQSDo!?~Y6YsWuDR{l&IM(DZ?iXN@~($EmYEY7Mr zdI~ox3`mBEeUz-f5&RYpIpmpiu2=LPw`uig((u@wDK{KV&~*EK2uNia5)yFzT|CXk zQwl*~;E!^WL??Kbw&p$vV)n=uss~Q7H^#NfyuGrgA8ut>U$?}@+V`AMy@Lsx$UW?> z7HL#?1zk!)1S}lN8ELd~;9#E)d<@vIbcUU2A08Uwbp zTB=}?)_vJCQxaWL7ZSN{COU${{I7${(-D+sPvpifVvxtRu1Zi5!_1WOHoGp54cdie z>2Ej4qa;Y1TM5xW46L1_q3{*mk;umBc5=NAolPu6s3=Tn^_03 z36+%oU>qCOg-n}?F!(^i4qxA}0VYgzqTQ9#mF=zIHOx3Ry3y1eNF`LcK}8)IEl`Lv zR?LSgZw=JG*u)JWAj)sNXLs%a z2y!ILef&;PQr>sSY2mXM%42YqmZNc&Z5reGRzJEi7djz<(1nv%X3x93Ktg!l&8wB0 zD)~%gmW&an(v>FzA*NdrEC>CV=)xk11DNEFGBe4vR`W_ywhr~3AIZs@Pby^`BX4Fq zr9K5pKGzbF^+v;dJrRswXj5)B*HUeD_V;)2Op{|pXB6s&FVvnZ9u5M__OW0 z-*>pcUHo>?F}KGIsjk1z^VQPefjP&Dd;JN^mo5Gj(vH`NfIAJ-NY`cdMmEQ6Z2*Jq z4zF)o3#PijX7M|jAI$OebM4NK?$!}%!EBERd(`*4dvVInozvhX9fSY(>EEKZzg4yV z$EK0~t<&`6b63~Vp>EaSB&6Qg$mG&1#5eEvOIkX|@wHyQ|MT7s)8C@E_p|f!_uEJD z%bSFr-^&5X!IMDk4Y1$s(-C*8H<|#5a`GeAzsfuR*KH!4|3s9T*xCMl%?>>-BVhn zcbSp2z@l@i(TR4c&P7wkuuDi7!9n5%2o(`rlrWC*c&$Pq@p-Mx6NCCCp)c_3*dbCK z>xPG1Kr*x$B|PIX$mj`LLs%i>i2wqK@u8w}ybe@8THx?e8ES?^9UvxPzX9Tl)B&(X zqe}*%YRYz*R^7!QisNyLP`0o+!9qNt&Y>vWnTN2TKN61uWEgQw&6nKmukV{8^Bq9PU6jVOYiA$*PwXkyAKyhPVG1LhSB93UNAB38oWy&6% zBEd5-79d&?0ti7ch8ZX~z>*i4RB@a*Ae4boNQ6<)&>W7eXc%Zjq0(oYRNc90&y?MH-P8`4e= ze+vC)&rcNzv~cYD&JEkhNE`WCs*F+2oE>I0UF*16bMF z1WSE~wm)ecg6u_I=lz#qWh-EPHlBD!SDjP6^WzPtnF5w({l+~<&ScNKn#mHmETy>< zb-SjgKii2suSpQD9beKfwn{%;<;p!%MAE_uWT(bTe6 zo2E9y_9NndEjQ=z?>`zPv?o39@*neC6B!59$+CA-keB{|(Rd7qZJ{5;r|l)WJOitR zNIj`sCQEM^TOPVReC1d<)K-~|3a+`#@2qTC0LTd)S2Z$O``KF(JVc+Kva0>K)=D+J zqg!@TA5Qk^=ShTSoY({=Y$3YgCouq#;7I92N8I~C=c{1m%Jh+0(t96}>j0?Xrl_?X zB=E;WaK-8fUyrk%s63Zxylr$6Uc>rP_M#bzk((J_mPpl1caeAdLp$cwUC!}cRr;(a zO4lj;lOs{Lg#0*a0#&cdxqCm?(KTp_d~r$Wkh%Gdh3wexs=LH)w1yksuv)(IO{euf zY32A_wte<-`do^LV9uzBY-#Ozrq@FcVYFwMet&L9oabl#T~pcv$~94Bs-G`<-QbDt}(_Ho9ZEgxxSc zsC%r5>bztbbF*Qr23JaWd`@ z6))eGXEX+uOFuQ_H*C}g?zX1xqN{<9=!ic>mx50n)Iu^X&6lS2$bGtDbLyOSNQ}(P zUmp38XfDJ#?v?(y=&>I`?p@EE_zG7)kBgI*j^jT{+OZF?ybW^0+>OnK@$R$&Gyax9 z;CyYzebvgjw?=@Q#V=^K_^t}yO6-fR+3cFHgsgPQ(z{Ik1_aE$Gj2RjN&Vmb4)b)L zwtUiGpKG13wzAVMwEc7C82IZsY-RkQn{eXvj}sL#N$IXXL#s`H?07#%Z8nbeGPwx| z>D@#p?L7vZ3C<9zQZPtwBiLQtCfS)NR4iMS)^+1M#wE5&eG3Sj6kq&{SjWNfAE&zi zoAN0a2j~B-o-(ogpPlXhbF6FDkg><*_{Yljn+!aoL_GdzfZ#e9{ckWz0}@IYT@&p@ z@QoxuHGXSv56cfeG_tFjWhsQ8;xc#dM{+eO&+?LmU5EqJ9|+1Jk~=Sh8YqI4Z!ZQR z5OP7N>kE0i;F1!;Xa;aFN-#8^&@fu7O?*KP+;WCK9laMmCuuiCJW^kgrG`mdWB`9DVG;062d2uhJ=CrRJ3*oBgKo6nss30mx}m< zR!_ayuen}1PJNmnl3XI#h|_}eQ#7SOk{C$h%~Go&H&$5YyhWx-_Nkz=iJ2Algjb9o z-XL^2>;fo0iQ+Rs611HLD^eK{{ab7uh-(K(`rsyje>rUc?KhS!YPb+udX*?~4D9qz zCMcW4!JiQPdzzxqX>J;e08t|mS65k#y^uKiX(L*)c2dqzWuw8iK;m$4QV;6P3 z>JFbDc8+29Cp^GM*^n#GXvSbJ>7}yj@C7P5Zh^&g}KN$5*RgO&vjSE_~3VN~q zJRdLhDR(6B);M3qhSGze@GM{L9=>-^)mXXFb8B}-RN{m~mD7WVW?oBE>Cq~j;GPxw z(eBsMyE~Q|^A2Kz@bK=evKDOwK?va|`4(8g&JW#GnsK3Qy3#xFLJi@P$E;IpiLfnQ zhKLlk@x_U z{ZK3|px1!XM(0^}IEUO#bCU5J{ZjuFN?&{W&qTfMp8aST9#qI-mSO*87-yqJqhzKO zj^;mC;Nc-Z$I&S;lVLnCo;7CwKBZiWKB4dVjh{ZEcQ=)J+r!*x5^i68y&_C#`;w%| z+<(7m?j|IiIZbrEG;OjZyV6|qSX>=AC9{w5VZ)H?oi!2O;3+o=cRB{E60JnDZh9L0 zPQMwoA`!D(w?-mg0k1$BHc9Vb0X!S7M*XRT8HR1(F@Kq_JV|A4G1yqy^Q(Xgbhssoo(*HT$0|`q~h>N3_IXG$;_Mc z;m_H=LoJq*YKe+`=%$8wcU5YU01aO{>TTMf)9hf;1^%SofOP0bz4yV@V}oDsTH3wy z^t7oKgtrR$@?gR_3bGpWD~tD0M`h+U@GFKooI6u+7;tEv(alAoOLn`RK$wk;e>Nc= z_3`2GM_hQEa7#7hX#Bv+;El8XSb7o1VX@=%hWh9OwRUA&G&73a+RgLCRl~gQ-KFg{ zdE?3a5Z-0Xj`ZO3*0z|Dc8&GgX0~pL&uv%5W;XRv75RAy#q^UlZiXs z7ZdRMH1&`i{YD?wG|ZGww^r*V z4K2-qDi6cPP6x!(@1n*E8FP#AGRw8G`;ASrgqiq5@XJDO58Aw;H!+v%+Q4k7mVkg_vPKW);O8>hCb*OVX-nrekJnZv#P3wfcUQH|E zTmJ0Fp-!sy_>L*^6^ALrcZW9zUJif#VMSW}!^ZMAUz~B-=Xer>W97Bjj$8EiUtc5V z^)Gxo7xRB?ZToM1JJ&ybJ1g7&dR6n1hUPzfyWjI)`20>WbMyu#2*^&QRBQ`Y9udqh zkxc)FNJwJyXvID3X(p;u=W-$v^r8PjkhJ&pD0`3AU3F1UvhZizfcS@fN<`k5bzxru zurRn-82Y*ubJy?0rwo8>ksJUVOAAzb70BBHYtQ8kJOok;PTnIQjv>g!L=+iGSd2#O zMlcLRX`VhhubA|C`KM`8sJ977YnxPg6L2?;77D(dN?-=hL0O;!KK)#v54X%*ktQC1 z%eiexD~n8v{qiy5kB%TAfv%U-SktPu(P3gBV#tM~W5jqA;(S>K9$9e^h8A@eJVbSo zwcw*kQC%>qR-iZ`RIw@ul#+!l6o9&kG6V~G80a!0Kn(y-{1Ye?iAic*IttX%B3yG` zS-Oc4tjPfi$U94Pk*H`#5G#`S=i%=tQ8_QeCgKj}pWq=six|lZcSC@&$CxeJCDYJH zq=l6tjHvvWMkxiS2&E|4 z*ap^wZ~`g=)Rg>yYf!(&dj6XjnXCi@C?YV@B5^1wYCh2br3uKMQkqsK=fQ+1IHQY* zjfT!Lbf~%rOfsZ_yIxpgIiU_EdLc*(qu|g2KP?YjIQ-x+rr`U_A%XQU&#vXb{GhHZP5CHPC_1$TMQVl~WRth{35p40)> z^4qf)gaN}-7rV_4;(mt@i<+EAdu5m?ZsotHb*OQ~Su=n$cS4i4Qj@MiT{g0=nC&}0 zEh$|l1u}NQOMP_IwHZtb?>|PImcd=drWP(-HpT?j_Z-K)H7MN><~ z5zG9(P*~NwSz#l&4ldI@8D>wm1U7|%Jq&++%1<(xapVxT$t~^WIx~_jn%ax%%9%{h zPu*op`6}rg$wH(J1jMO4?}YJ#MvuFpsr*Xh;P!c!TJd;GVJ)*y&)v+>5IVDOmEabv zd`oKl`f!GtbaVgTi`u)ePt&&m!S_B!7uP_2`?((fLL|&|0FJN z-k{e?f6bOi+EqQrxUsJ}Yjdrv-EPF?DD$jd+Yh=olrW>1;e%OKcJw#!-00@u@w2}l z+$jsM7HYFa_fO~8Pzc5R9)aDn+`ku5Sgk>OBID6<^ege9$vMcq>{Rf(H0MlY`9uVMqFXlbb7cb7!)X(4ej%1H0YrAx7X3; z&Qbe2=*)tx?vXaan#kKXCdt8VdUd^M3Ce{c@!(utrcTVNaByy(NG z-}E9&A45~5ut0S&QVT>5tVRH!E9nA?LLPB|FItX(0?_HHeg23#V1pqOOUo;X9)_qX zM@2ZL{2(p~>5DJ{0ijWzP|@pCiKhgT-UCuZk+#eMcTTy(NQ6jns1zQI6#`4Mj`v2F zWI}MQfTBF=1`Km=7NQrBA_t>>>X>tse}sIW3>D7 z4cdP*)ebU_7E5a+rGVih_?2{FZYcmi2Q7$8x3W%;;Sn(aAL4m{Th4rWfl|K160wsP zplQI7|3X7lu8J!dq!1)92bFYO^HMa?5u^exdaQ0+5k6p{<%H&F~0HN3|h% z7#9z?B5A-*f#J`=M3;jf02OLeLkJ>23k&zB;2BX>je931vp0ez8Kpl3O5>V{6D0Iw z0a@CxLc0XKvj??nfwJTdby+$r5mf?X?*(W?-~mkHAl$f9?>Z=R*gbVY!2Yl)%5s8& z0f&qd3snJh2im(3R!@Uw8iA3#z~cJ$RN64fbp~krMD~hjX5k8|Fjr5>oa6>W)F;;f zT~D{W)0xl&Ujvybcen@wrVmfMTRe`uNTa3CJJ-Xvksd6#xw90{?h?}Y<*k1{-<{6Q z@yIzh_Z)%;Bl4ylHGW^TQR~{vd}D`u-n$oBOmqyB8{@SatDk6~36dJZ6mfsA zc~Lvb3I-L2R%Qx}cVJ6RVD$d(S$?w4%1yX;e}6G<{XF%i%uxK0u3+e-d~28_A51(= zDVzjPY*}N84KtpNuZ_8QRlR2EI?$8Kx3c%c@7OwH@45v9=I3-{(zy%rH(v z>!Mm!K9T%}yFTe**JDC~2`I%R%jV@zQ=VV?7N zdag=IXW^$DAJ%_p&ibBEqRyK76DY9~Og=5A_!@~vZOPtLRrNGXFviaJGZ@JsPChe!{LehhM|_ZT6Up7 zj{O_9XTwcr8`4ys!)}hD__;aAy}xoR7eShQFx#RHpy-sT(SJmZcX`R7h4?fcbd_lGcJ zCG1H@sjLil-gQU4MvF||o#B^aPeQYt$B&g=FKdg5l|Sp2>pkf1J-bzE&1)TIXXg1` zuPa_oN?7}RjHEP|O*lk8-d|Zy>E`ixKojQhxgrPTel}zONa-5k1SWF504xB#xy0RrOrmHv4(_2vUvO&d_U}pJWHt2A1a{Tjv!Ty&8@ZUcFGk7$uY5Vtp0r$17Ul>mpM(&kf zLkZJ#s^)UqVl>WeaDqwUHV=r~T05>9uO%!W;=PxD{xj15R7mYhk%%}hf#y1=g((bE z9g89ki5A1i&sRV2w~qv~hEfq~Ks#KR$R`4zK@~Kjt`@z^1|u$NpBJzzO6$=6C~Rr2 z7zIFwDHf(Yzs*z;=8Bxn!I7MHE2MzAn8j1%!vchDRI{!_w86HSq6-Y%?H(BB7-8s z7@|=xA@8SuL}+2*D#|nsaE4kNHr!&=4*@Ah>BbCzsRYCd2c_f%E|8ZrgBKMlo@Sz} zl>kIIt7T830aZ^CKq$tyq3pX&Yzf2(tdg9wlAy}K>@h9_S|qpF7WF`wMU+*8P}mOZ z+%8L$WL4>HYJnJtneswS`~_yLu4|U)&tPy!XWs! zh?WE?jprKyIjI(ycrFtvQ9ziW0G}7`L_R$v2$z^1=^bP*tTukwr$(? zoUv`&wr$(CtuuB`DwW)%>a8UIV1Mhq*6MybUjcfNX}c$8P&7o#AcHzl91Wq^1~b1j z?O#b6fR6BtfE@g=5F|&vx^%LB?Q8xN6u|7=w z(kBXkm^SeYu$$1l0yDyrc!-974&R^s+JNJCpm!tx96>Vc_{RK1`~F!2)=OYv!W$Ie zYZy9B;F1B&Cmfm3_<3OhA&H;BN(9}9;|p_So-gRUl4Nm?WDXezjfCcYLrMPMQ+soc z?Z0_>B`I&enje4$5;Gq&);PYTO?QqSu|wE6bPnl<3}jnn9Nqr8E??=3V znU3a(nTVL28#*pAL){0HjFxYsM=V}1$0yPaek3n@GjV4|zcn76+1aV+j~ls8UZ)uz z&yi!El2>ELvW;!x^Xcq$Y|K#k?Vwix;)F zonBJm_6~1S0bR~*$~jk&yMbM9d@wBm=V1yGa~sn9aQIM~7R?)xl zE=tAiB_`6h=zhuRRNjn{zwNu7XgE4fTVmRLVzAZucJbB9n%lfEQJi7^%(z=fDwe<4 zw=kw=2-GCl-F-y)_G1QmACk>h;U-I-B--3zX`Xg}30%(pc7>b5wf2Pz|K4-ZGHYKx z5T$Yw^Cxy*4r4j}^*e@`9WSzng^fcp*+V*}YChXOECOM1X6YjZShLlA;9>~F846aI z^A!EZ@{S_Qyj<=+#?x~gA!TpX4e^$4>RXd2)0SfU{%E?X=A9_7Q!U1`-*ucP&eUqS zOsq1?SqN4i(t!}e*)2qz!Xh`bwRM!=R*}BIbNr(UyO5mKy{|N(F5`(do7>Ke4% z!~4Rtl;yTpu}-JT<$m6K^kHX-fhb>^e5q@+K&w%TDW^JG=TX${tWw&ReVW-s2tES9 zn$|r>$!w3me|3?zu;$dbuAD)9lul4`f49^$1;<-(f>JZif1{COsRX$# z%N{T}44dG4^ZOC|8-Tvw=xfHk0#CG53&N=aYvd7W&qOC~VZVbL-cUdMKT*r~?@gM9bSFzL(H}Oy&xX*j`t>9;$pSa$m z1$_i7GVxFqwDD?jYXzdZyr1sP(Mb%Bj_ITxa|7)MUr9@x$0n#x|7&pRo%FFS2C%@k zYrIwXYR$5>9p?;!$!~lt`$pxJJL!ToOeD9Z_cd?ZTHmu0!9Jy-3+-Nir=rp0zmPO$ zj{hC?_J13RI2isTX{`T3r2pTNrY*1YZ)bL<{>JDD@pkK6Oo2p6B1ODhDN>{IFi5As zrZYkZ`f>FcbFs;N_NGGtT?1kkOV7NweciB7nkWQiOGR5<)~B`)?w6y$1_x3gBnpD1 z9#p=dYfY3~&xRzn9!a*Q#&N|i;Bi2d#}!Us>8TqffK;6vj}Sgz7>I!&wycU1s8B(x zs7E1tMT1p>kG|?(JRRC972pKrBL#g@nMpyNyf&;JAPwP&vQCXDJ|Jb(*owtbLfU|( zoLua=>CeOx7c4A2K95jgeTbf+HCSjVC1OQ_NvvdW32Vr+7#k>k1F5eY5cv}_)!kg55_Him zLgv2+G;kc=IEW2`PC?GY39kYm`iDcL>@|~uRPbE@<=^91semUJwHWRp+{P93-n7Q} zq+kcHQJjRuEE&8M0uTr+0?BA`3z;#FAt=BnM-}62A~gtj))6Qj98)$uoDBlU>^b6< zene)1Gw+shl%2(9hvOLxNGar|S=cWSJX_i_^Z~s1{XDBB+ zkGJr~tC3a1hg7^)HT@KyQq5?&{id6ZL52yhHfB}E@P52zb{&v0>XA&a_ncaeF9h-N zPi>|fAcrQ20g#yMq8jjl7g!R1B@X90x{>FEb17BE@nRB2E<#)q)C_Qh<#G5^;AfO6Ewrr>uNR!g$kj(fAuKT{b%rWo8F4k zI!=7VvQF}n6`FoWqf9r~@SoSgE}YzOLLga(IaVJ^RVsG>r&FM2i{cY=cN?4ZRbR>{#?|Jrvxa2C}kWI2(=1UG5o=kcHeDNgf z!za-v*Gi~-cBoafa8~M z$Cyu|y_5Kf1C6ICAKdG@K%)=#`iY0;&8O04M05iWu(MEZ8EH2Blb0`A4O*Dv$O_tHU3-GK>IHWfOv};P9By$Au&Pq=iwV^$hje(z}R)iRd0>Y zF{t&AyZEnj?4PHJJv4Tm-Ty*W*#6PP{*z?*A7#dj1nf-zYbs(QU}R+d&xQRT!~H+v z!oyi64Tf6PD z>RaCW#`i;0w`XKz{FFy)7eos z08(~jZfj-#?3Rj-peRn({=o%IgI9Y{gUfRRvu}DCI+$Mo2M2a{w{Pg_!Hoqx0{U7q znu79tFa&f{6=YBh?sUN8;vYJ92iJplY+F04!}q$&bAa04lWnY-kGi#u$2}xq z9A@VJ>CI(S10y@j8-TGl`rTq&8XQ2JU$(3cz~7?}=tTVqo{J&C9cPoC%fIqiY8AU-kYriC4 z+SB|O7^bAGBrL-gzgu9x?IXA{xHHwbG=P=0eweIoY@c-p_-%;|&wXC!{0cuy$^fUo zDoP!t3E;NqCKUBBUl$I$aemk>SP6yV; z#RIUxV6i|}xT;MfL;poE_gZO0s;YN9EE{YMZvgQM2iioErNGpLjJov!cG zrSyj5M5(W_bpE?5(K!Dq`(V*jI)Yl_Jmbq=OMGZ6j_=?SF>yd-z?y;FrBxyns-{w! z7coF{N89``tZov9SMmNN_bXREqXH=PDrs}vG%Vh!rQN8n&Dy9K``Yo4+*Docu_YS? zbv47S>6Sg#Od?qXZ!VjUO{E*rxZ8ZR>jPWu^s{$>oG{paU-f{db^(jYX`>6DpH4M< z*Q+Ek^Q{$-*DZWu9Go<42tOZzLbnIm=_rcT`rQZkQ-mRZn4!&@RL}9MR>#8)aK3o& zfo{iXE4)p3oHF?`R~s42D_ihEl`UtbrVCClB-<`=bB>;iJtvW=eKs*M4cQ$Z36pYI z0?0v>$agNex{oy@3P8}?8iqJP9NX=pD<6Y2jl@(oBE&vK8QTO%jtie3E{-`KGl;eC zK?y;v1Cp&d2-tF{bVfXDCVEiJmJ9{^Z)wt+{j9n~A>}AIfWW}3M{s?;_d3r28;&Q@ z|A;g{z34br`YwdHTR;=sj)CFL~r5w^J3V>oRwoQ2r79+I+z&i_e_XlghcN%n9~i!$>xM7C4$3#!)w8 zjRa(rN1h4SxAXdQR!Jo5c>ISZtnTl^h8jbe;K-s3=D66WN11WI0) z#o*R6_-hjKb8n+>Nkrh^vtcP2sO!zEeojkFee^YGo^dR;gyn1NoCKYVBA`J zCkcVTNDjwwv-|vXuG|cAvR>y^1u`56{zYcBn?kYUSuxku>l)^g?^3!H@;*@t%xQgj zYHMA}{wrF_ZJ%TsJ6m3!y9|=np`?(joMAexIt1$-gMNC@7~U)kx-Y|C|Kt+C7@bqW z@wxolMLA{|IZE@I{5TB+x|d;_u}W54hSgPu+N0Zl9&@J3^SmS*BAY@nK6fhYNp!Dc zzFoi&+`MI*kJ7MH%os#Uk=ptu@{!HWM1-8Lb6_;vKWyl{FzD&t=SGXm6&c!x2?}SW zW`Kn(e3(}08nccqpOS`{DxViqGR1F)dZ4HXlZteDWL|kmDt7&2Phy)-@1R?r;$W?V z=`e>jo7s8P9wKVx*6NZ@1B9%FcO}9jlx}TX*J{mC1;H|+&9pi7NM7H@QaJQ?HFTZ1 z7(+OC9#q@%Z_cZri?}%^6KWJBB6}VOZmO8BvMxx{!E&?8eU}R7=>M6C{c+QlSrUee{Q8=6YeduYicpV;Iy$Q!GGDsa+bxQKU7cCJGeSqW02Z zf&;1rLA4@c7 z3@Bxa0bV%ChpqGtoev;k-e~pN0U^w2+IFI$>Wy2TS~8;g9z*68V?eL#>E%-zfHpEN zLS{()kF^pgx!9#%40c6@8k#*{LB}#S@tvb7F+nee)-{O^%^;=w8!0sdGPjzYSC;T> zzZljKQg~;4%~vbUS8}H5`28ch?NBsjW5pdBd>TImJ z#3l5Ajjs2Q)3^+&lHQ_DDu*|7!v8fwjnZN>u|%K?AxC00gOde+%ou{WbsURsE%^|h zjd&vSOHbBmtND~7QX#QjRTrMcY9IIM1omnA9!T)m?1L=iBK)C*=OFy9tqFTp+d}^w znU_Zypm+r6UX8nAYGFXEsv#Wnf~nYAQuX}=as?#~^Q;dB@SLaqoDmidcN?DDwAyl+ zVOFhEm9n84@`l2gd-|csb{ z7}M>ho-g9E^NUR#W{c%_khuz%YTzJVxmbhjOK6n@MoS!d_%X}C@T*spwI)B0!dWSN z1|US`phuRtpCPypP2a6fha895%HVe^;BOqt*T=0wkza?T4zKOBsb}cLh@qH3eKAn% zXYyPD{%2ymb{yb$*>c%DAA#OJ2 z0P=FxjRLWqzs)CZ~pVrh=lqZQzl?baaA$!_${-ziw<$3`R&t zAo|z*&_`y$%4XRa6FT9isxh~@Lw7X zvePfMWe6w=n(XL3u3ox&xvFS=4QiDc|l@Ea&2_xWD@^yG1%Bh zV{pq$5;|D8s{{^57?c-rT>Rlvs02&JDT9jl1%z0CMnqm-7?FTj94(wEG28?o>Y_#w z^rS7Y2}4^;4@1e2+M9}Nqvl|*imS=++?L|+Ba~RPpZwzP5(-M0Vr1;USf2~P-lkxC zW8QC&Q2~?4Q~aT`Y6rFcOd3HV{^PHau>!tyy#*6yrLf3jfpVpTmSj<}TU(PUIInT(~-$ zfEP_(#+#D=M~t#o{xS)LePu1!4H~$oJhgf=4e()S^IJ_0LGFTOgKmTwwuUW|G;?mA}(~QZB*uoFNaN z>1hMqSu25X^|x;Uu7jJ%I}is?Dol*b_CWHHgjaH3-GL5SngqTOyT7B7Aqd816$-E< z4wcz!zGJ_R9g%g+f4TP}U}mP;kK4m9m!hQ-15ySC+xqo!s%S-v#4MY>2ahF9)OGFpD{vT=iCc&1cW7u4pf4#HU0sS2FZH+`?CUq&FSr- zNUn!4`4d9=;^L>qU8CA$KT0{d5vbZ;W|GC%NLS0e>~VmxDGW>-N0uH|Gl;*NtM)^( zv@?%07}Ihi+?|q7cXY+eJzE+wGX5^dkVuB=54mWHsM4bcm?41OJ7l%Bv(%DT{<_eU zO>`LOsuTK>ujI_w{B>%OFq4;tB5l=PT+FoiX;l@R=3mS70T^}zWDUJ^@rd%tC31M+ zMlTaq(Yu1Z9-=DDwW%CM1#P}l!8_}%n4wb4agaF5W1aJopJ{O+c5TLk)6hA7J?|By z&g`;V_~#kMR*P;L6JGxrX#(RBchdR320g)b(u^;P$9#wh}oAbsDS6HL*G2Wa(S z^0l-RH1Gs#b0`pf5N64y$8e=uBNM$hvW^BT{BR?bS@#8x?7;NOe+%6?_T>qepId$q zQKqUDS`9p}E%(bneh8IDx@e3a>G=TctZX{893RRHic19{>e5@cofoTvSYWhdz1F2l ze+>FS-JV*Xp5M06AR2$_Nu^si!N~A1n$RXh+KB)utOc(cNa}GX@oi%NYp(4S2nKwK z%Yp}RiW}jQJOi=rWV=l%gAbqhZeEv}&^Gj+l1?#*j6XI0K36g}14fQS{`{%ik?J3#N^;>xek&PX+H9^Ky&N^2@ z-|>@#6Q(OyEbeU@yzW@Q#2u+Q@ptx_6$XEp`38Yu0Z35&!<Dlb#M`usG z=lLmMvzT`2vNw-OGAq895C*Go;Zhm)A;*uGxVs!63+%_;?8FVQOAb_ z>^S?oB#ylLCG4Eod1^4?DolgS@bPk$UC6C?u-7C=w?py2MBO8oZr8*Gn=ZP`Y&^o^ z^qw7 zHUapaWOvghs2i?%e@GZfeQhBSn?;TtqKcau5--vf0)Lk7Xd^zPX~}m^!gWeGq+ck@ z>{j(M;)88?vJxa#s?K_Q;yB0u+4L zUAmkeXwcEAXg?k8)b}Nw=^EUcipV{`qgr^kc{Iz7jykyHTN{c^nw8_KE)SriaJO(&nh@L%MxF{CUPAxSS;)Q<}-pVQ<78*_x1h4MUJ$j}I0M(CjBP$J*kRPR4k^g8ZVMj$r=#H#Q z_X*}VEvE8^SN7KWd(a`Q2e?y^%vK*h>CbSb-0O`DdB~e?r^Z3`(oge>GUA;G zoLAdJ)m?-no1D$dV}4J6h~HlQQW-}v-dQ{%t`Z3;lyy}#l;6+Dm28!^*4<3SeKNwR;% z9+fk*YI(|!pqNm&eO6E<5KP&LXWfHq3l;AJ)mB#NTl)xxsF2@CCqgU(msZGz5*eRz zB9@tw*!aD8SQ?X|-+)dgo|g#yvJsK790?wEdZVQEpLDVMv$K+>LWpqpfmD~fb_TOu zvilOigi@~FTy2gDTBMeAsb)_Mi=Sh7C!djMM))NzrmNGqh^+yq^n4=yX0pAx2^f}Q z^xi#|?7y0oRN;VTER>7v)+O+h>-M*To!6Y*rb!(+3lDFIW`hWC}MpoF-3j?dSwJlzTr8t zDyI{ZQ11@zAwD|bj4n)WICXt$!V}YG_nDtouDtYW!@{Iy-gk^%_vy*!TZ(sLh%l1` z((IlTd-Bo>RJM zyv5)>#S;XbZ9o-}&pd6E0F@g)4h+5rj_ilPXUJuP18iT4gW6}>{P5K==D1{=L?exJ zDJc3dMj+WeoLiIeJ+l4bI;r!Dwlr}qrEDa6m|n6SLh*a|q9bR$!&D%*t8m?^o4yOYgP#V3p?f_%VkYmbeNvtTYFwwxMt3OJqR9Tmutm2e6+Ch<>|!t9%DJna`b)aP4a62yp3S|2uC|f74sWjMdjRJd5}M&U)-zBl^^G0)c_ z(%aOa>30*(1Ss&WP`Rri2$%kwUXt^Hg66U&y{h?_Vp=&Y^X*`>nle;ZHD@4tqVM_m z!I>q=s+mrbzZrxia`^HOG$ASZ&8bLIMw(Y=fZN*)fl456tHy~Nam=<6T7&2{wtM)X zwimtv8$ z@se_9b|CX_!Br%C4Rqn(SPt9yS%koCHnMU_~vjw^L4 zxCYy|3()XcM!y}@_cCh&<{qN#hDU9le1AzOk{JR+{x}r$%Ap?b>y1H*nVFfy80zYB z9wkO{ROAX_{deNxn{#CdwaT-Ij;$-PHWeZ!>5u}IvFB`%WPMoTs?Ei{atjJat|+5d zEu5aljE>`a4Z0-+8?`5emp=LoTZ3xCS_4Y$U#7CEH}KQaPzC8m?YxPp^U-Vz7V0Ve zO#kV^gw?)2vjpqD1m>+=!8DkqbiG&wcFBbpdu;-z^72 zKA#gCypdBMAtA^8WA>xu2U;5a=yoaO7^M*MLXPBkyY!n}2t4N$!W_R%A=kGTfwUn^ znaz&qiQEzBK#&n_ZTQsb^er3w3+?HGJTKX)i^_%TV+tb7u-J>mQqmXQb2eR19Kqn| ziln6U@3*T75JF$DrPW#f$x4^Cn`sQEvS&z+a?lQQr%~C1*fvy#^M4-jg`jrAJc;%n zh0}Pw&6hw@rnFGyHq_zk_O`W)VV8OjcOP$-#;<~0atH!Kb#B*NtvuR1F?cLrI*(bZ zcjap{HwF}k<(;F6cL>^?cuK6Rbpx07R8Uhn(B9H;;eg_@(zns+llP7v`OIO<-TIOh zps!mD)5#(QfOnq-z6|h`4csqz7<^psGxr0ru^FFP^P^N*iSX$k|MhxdfXDew{`~@K z0U(_}d!&5--p~t}OVm$pN!pC&OUEDIx3{mpg!AbB%=tyJaOnS@o@(E^m)-0MuJ(|$ zm(7v%k(f5{+;LC0ZM>n&en1hO80{IsY?f1PK;Y>L56w+LowDk3YE?Ai_U)jMa3V?0 zxmR1tua#-uJ=`JzJv=j+Y}1)~DZ3ufUP~%(fzRyO{0`kiH7t2gK{CEsF4BuwrM~AV zD0zwq$Hp!i&Kl8=JT!|+aP@;b^$YhGk|d0w7?$Tqo`%d2zEI<~AbCLenY(jM$qdL& zzj?}AyO0aAjqo5_L}6PUeU)%YCA)pgk|*uzr02bfap>s*n%$kw(LYoklhdzBhw)#t z+yU4$IRirHrRFgPyV>=e<_0|S7o!lhxK;{9CArJ#Qb{3iukIClaD@e)zq@<9mGEq6*q07!%=Kp7I68#Phn8SDnrB&s82VKx2W zcq#Y?)jiYnz75WmwK@%^hqh~`P^R9bR?VP$@?(Q;0g!v9ekHCovI`tGE(yI<^lh$$ ziFg5Qk@u}WQw-YCtKZZNhowk0!X1xcczG|mW=mtFK0M~{%}zR?Wbx@Ho{&tecGzS6 zI1*^C4TTpiv+w`nz0r;^tER6w%+Y%Ah+6*VknO5v{2DLF^2b(T_>;Ilq}o+k%QfFs zz@Fnt)e^3H6^u5W5Z(_?9h;>1 zA~1};)V5kCx8=(&EagERBf1d+w=+M?{Dg`W35MDQ-$m2 zOb7l3Ku9@{X(24a@oO1U0WGucZl+Pk(dC+KMO!hGAQ7+GD!2SlTt{n&_O|=CT|nr@ zw63r+db?=b6!NKsA2m+L$~x;A{g?LS;vm4eL>euOo1sb3D>-l71S7k=HFUv?*MpPq zKXpNGm1o>O7qBBcddWUA$Il9XrYPwrR5%eWhPEf(yatigiK_t=)e3oz7xpFBn)Ct! z^;gl%Nd_~PWCF!de~04RUO$*^rqgu~=mUn0p({gX$TWG=XpE9)5D%NPi2@esH~38f zk(jIo^@wG8bvw{@d-9dIpW9Q}_w2LJyGI8)8AuCpPBw9MoJdOCOQQ{HP_GqgTQqg4 zT)*FQz!8CJ>QMVprqYwY-Dx{%PDb@Q6m=4)vSeOp3Z4>mJpc|-$mC03&we}qWHrY} zZO5s#yxlImCt#3kkSyv>E>#}#m)=RhhTTr&jV3tv$&+2|UzDC!cdFaPvfxmT_2S)1 zFiCC~M-JFvA!^9D;are1v(Oi@6 z)zhG#kRDY0e@txN5*tk#JGJWr0V1nwl1r>a`J&B>*Xv2 zTC>7z!C>yFF?n9B%W6T~Sz6DAT%W2y?IYoz=lNJ1W|H(n5zAs9kJt;Am_Z zWm<&nAuMevV1TL};C92d5l)hcwmI9@12WJB-moe4#LR36w?NBQ+J`d6p#GDQ zQVZtFMr8#H&IQY6`AN$$IzLEy9)jp?V4tKfE4bo7`$7YfwhQ}Arff96EJe5EQ}Skm zrX!0ws?LW~#4Ye}9TY`yy|0W}PjUP>-0cIe+2%lh-D1!tcn8hxj?uoP;kO!+tv}i@ zFxx^G+Cqb5>fKdAH{20B$IPt6^*FjVm;Dp}piAS{sBC0>lAYWV}1YCs$HvZf49 zYm^C4H@Nb+u~P~KDecfYKyKJsV;DY=j?yT`@*)E1FJz(eno7L;W}`Btm4}ILE;M#Q z61Ku|f1kq3o7OOhZ9eNoh-I(dwa!jL7C~Lo-hs&H7+1Cu+}x);hk-|p`uI8I!OAHf zaSrc%3X1l1k2;?{AV9p_F()&CmO%-xTBta@mPFis;9gHY!>y8Pg(+fdJr;*U5j?JnPvrjL`+8 zBg%?J`MK7?0e$i%-mIik3#K$6eYTRr|FeBIU?7w;zNT{%KeTOqAuxfR#0I8^XGteW zIK~(YouchDA?u86nkddg*eI_ z@w!2>aN_G;|LI5B$T;GEuEKfb({57pp`MCTM-Jng%46( z+^_D!wrMavD8Vz2G@+-~{fUq(#N@b2AYx9Uq#8>pX^Ih!(3hgGS)AVic5qaf%v$%u zE_)G0h53kN-noI^YXL2m9-q^|T~WQfYLHG`bsLt1$*pPzWYv&5YJ3GW3I6BhuU4Yj zQ+^`1Fd3}fR5mfVI>O%B-Sv4c&)Cm8DepWN8}pd-X8GEvLPGfETXM$lC+j|<9Ed6D zppph#aEePwb;V{FVshS*_DBOj^kld13Zo-``G z4>bf=aDS%018$p5L7;hF9mgr%KGw&P9(ZB7gUUq}SUr)gIZv7Tx>fmt0ejR&j-YHZf37|H}brcV|CG! z@r8yWWA*qL5#F@H38m}X_@HSAgY}3*85}2C=AQm9Yq^vuZH{PY;|d!v;Y^r7reZEh zm*A3{G=kjppH;o{_nh($c9kfrm1WqmM}H{C&8|bMe7PT&V)V7!Wuvyq@Qj$5ulEru zt=LM54uxglTS??xhD4X(v(O$?*gMDFX{8Tt^0*zo=&u0Uq@9tvPcxH(Z2~iYFglNW zQEjodaP}zWRL6eXn83sh15MB~WX?%uO}M7@7NmA6OXg5WuR1)0Czp)F?J#}>MxWw- zfYnSBA114H*%zRtT`wXxLwt!)xQVt$oB+ah0&5*Q(M06BlEGD}MO3I(aD^7;s#9FN z1@NFBg?9$t>4GS4DSY;K=lvbAqQ@3eCyl)zh3-F_34gnOLvD@`ic%75MD|aSBmC45 z)S>Nz64i}aHuCJY&QcOHp5h^Zvai87>C8!8V?V;_bvF*3Gw^?G14iZEl3&g?pL!Jo zG0%Uum!sWtHTU&puW6LI{^) zTT1%j{OL(-*Q$LpBw5|trbyW&9@%mA%TyT(>OQLtKlKwicShSPKE*~JpRN~W`=Ovu z(kBtTETiJ*@Ic#$Wvp3s^LBgVxJe@v>32v|FC_0VfT7yG1hpABLseDVZLsbj+bqH@ zjHcRYDWB>Noho==iMgPQ!*vc8t1t>XUmHK4Rd5&NdTka#*HB-n4gn0+?wIs1q=>ckhDu*ktW?RwP6sV6W94|!O9&7~bRqy$1-J(6;lQE81^jk&$pNHDA=#hYKqgoZ8*&^DMcB`VGvXR9 z1Ic#o!lj=hHbvIVXHzK&G~}-`NPs11xQ|a0xlRKEGA&?80TIlY?yo?wC{_>-V&enJCOh>i}g|rAOns}LQ0d_uSyV3{(J-uUE+UsNB0blKnAYOu6Tn{ z@ld#4AFUv3(}oq#j0iO&qR6};lQJ(aYQvQVeHKJUtZ$5VTS*-om(IDXVT)eA+F>7A9uQ;8IR04zOY?kazQ?5K75{%U$ zrax!8Ixi7~WLqBX90BgPY7sG4HCbK4x_3@Bn|?i9-Nt;2`N`rh@U*@}y54Sg+aI*Q?faspn{-jnY~U#}7QESfLb;ch zJQP~4#%?2n%wHX4u3x1bl%|C8a>;RDMM1r z<;Om__9S_|#(CV+4-hJ7Xynvh%fzC6hpRu{^t4;Hj$~)Yl-0mprriErpP+QvroNw& zHiXr|67x_ZvnyL9sqNql8q(xo7wKHoZ&Zt0evK%5^`0{7+7F$?q?9h2@_r)UW7RM1 z-3c11yX@-q9(9y?Q%zgS2D>_Fd^Kk)m&}PgJzJ)I*oq61(F|CnmBd&5YU}ZY;oigZ z#PF^>h;1cN(B`~Ul6}fSdbE`;VWBQX(U*k{7{wFoazFo9{!ou+>05Bh?K8Y8Hrn@v{}eByd9w z<$cIt7<-p45SBPL(>!ZwKc*s~l%5|`6jMbTI@c`t*0;PV+9F){(zAL?t54TUQf!5M zmbTo~1%Fm_t)?%vFysrhGey?7c4wN&#$e6wB5Ya(_OdoO#hJX~=6+;8sJ1^>vBeks z(HGNppPeS!q_Pa6D4sPXtZg`!e0!ZOcfu%33%LA{s?LLUaZEa&-zOgnY+lfTjQtA)!8JR zgzi+(Z~6)tHd(#_8klmsQChU~4cU)gltYcXH7?(o!|B5G*JmdoJ9MYiY&WAgS)C_9 zP|TcWOQL)je_+3Q>G$I#b-Jyg{@M8O!;zd>WWTM${%>KosKI23kGjKJ~niliJ zOzUesb*`=^?{WQyX0NtqLNW4#?$z{|UEmu!$I5I0Y_FzRA0pD?7!<||y*lYB4!g69 zG=b0l?hgK2O5s-1-o5iXVEXojs0~{V+9{I_Wox_KZk&6K!J82rQg1J*v!7|Nlb&d& zbxeZaOj{XmUgH$k$R(lT3gq#rCssd>d?6z`)HSt*cpAAnZ8QuL*1&+@di98t9!B`T zF?LQpqCi^`ZrkqDwr$(CaoVIJ1{D7W|8&R;v`tBkyPv}R<^RNl_{;z9k=vB-e9{-3(W{C@`6{zKOo z+5dre{#WMyQ`i_e7+BfmtL$=>JZ!xmf)hn-ZfJ|L7$@ zCMPpn9~C_wKkMq9GaHvz6{dI&2KJs@=%{kwO8=8!v+-+aOQ8Ob1l!Q~(%kUEj_kjg zgq3Gw0VL1r3_#xqpq`eNwm$|)_yU(Bn{t9i3qWaj;R_CE!5TuE(vl(zz~YJJ$tGn8 z4N#kznVFZ_NEMh!#W%<&GEq_jfDWzXmtGuA!7r>Upri-~kq0zU4&+zjQX(6|3IM7` zge7I@7gbzep4~{n(l@mOssD%vu5V>)YVb}cI|K7es()&7ar6Msz(nS$D^7W=CXV>dMg zfGlN*?iXL)UW|i%*z1(o#MB7>^(D79w7lP2?hC>3I|$GJ92>F(fUMN$J6FTX>JZXW z0zirAsRgcvu0-Zn)g4}*h{Hd=vod$nOD?1(g*E%DxAiL`-huH`7#NrR&NspEO=fgX zZFBzDqCo%rA$G|mg!Nba>9(!o-1kOgWoc+(`GxPfHI7#PceqnC>$k*Su6cvW%mx_lURfUvBa|o?%>!K6a`ewfs zy!17iD?^#=bm5`Yvgo&Uwj)RJSA#s8tT2VDXc^8Nppb@{%Djm~olB#K*bfIk;qQ@J zA#h2D7gg8f($4$gU%1C5A>Jy*^nypjo>xZZzN1irvzie`nTIq)NNwaVZzbdW=VCgr zk^NXB!;TeEL6rqpo}!%#92vJZz)4-6V;=Lk<{!1j4Q?Xb6Llm}wAgzXn4B=ZTbh@| zfI2Oi_<6S$NSF=nbgyi@0O-w^{-wV`wT1J1y+jAVv@?U$(07NiWXtHc^wkXpZw?M? zf1B>XQ;6s+2h8(ub}=lpK0<0pk5w?H@!gQ)UbEBC`e%-{4X#eGWJx=SRv7B09lUbX z40#($RYI)i&8)@F=|BOx7nx7IAf0sQ{anci2AJW3k9F*&ky_|u6u0!QX!#dl@G=K=JBKFuM z)>GsLKlIL86)9gD%_gb{mqi1a6)968;ypZ9_ST*TctdZb`}Sy7x{bOzn<<~Zl1`() z@j1P5;kv*BbIT36v}|rjGUrVnFDLBU8VE0+x;%yX!~&o?Ip^*_{19&+_MW?aW}=Uw zO8+Jz!Vt;bdbnYTco?mS0SgrR-*K6l^#}v0^ggdGT4(&NRN`IIAruEvLR$Ts7!PuC z*!(LB3?q|lOfPx`|1tezRVCr)dwL9IfW=C1q|I|$>Bx&avYUN+cEtg$0Z|oox%_P` zGcNo*+JLC&v7u?PW})PHcU2u4W$!mlk+;t4k)z#D|A-r%Rd7j=rFVCC#5p*qSEnwb zyD*fAvDyaPs#@1wwPCh+EXhLzcCcSztm0i*fhggGyOMR$IxZoux(-tspbgpPd|80p z!*3K6o9TQ@r3@&gfNk$dv!hWq%o@m5ADfc})aXk;xvbrmzN;bxnlXC-X}8z+VP(RY z_(w|JBu*=5wFY=JaVfQ6aalLm0lzy4MEl?fWO{sL*UI2c8|kWurAray#<`H^lj?$8 ziuaOdI6S%>Eo=&L7-^A#alDLT?x@1IMw^DV-w1% zj_?yV22#z}=>%N`fgo!QkuHsjqJxd6tLPjn96)Xu>0yc^rdzKb2lPD-887{Pu9!ln z@ijHOF{8tw-Wl?Rk!3bNWt&AK;kd|K0>n18Vr%$lnEsfl6S_VI)wy$O3c9$9bjfx| z+I0un=frS^K)l4JGUlP`w}?lWJN@~nPo114IN1^(L2kqDReM0CLLKF2raR0aW)Df6 zE4HG`=e9gbbn8a{NFsSoKoGgIT;K>v1R+cGxkmQ{O&I%h6_>q)s{C<>tVnrfwPMD4 zCP!g-Umge1Yu)G5CeFu6tu!9TNP(lN4y1nbUDazMugFYLXY!)>W|y}5*kVb6_>~kf zIJV%HngS_ce01l7_)o0FE%Xc_7X%Ai5zDNZVOTB`z$!fOG%i7^fWj#+daFt z-w3htIY`s0j$yB}mgIW~eXenOUcWO|4kM0*!ii>pHm;)hq+y2%M--PwmkTK(&-7GU z;0m&@INb9#^91?%*FPSiR;38aQYmLS9+GS!4qB`$mDtx^qDK-e5Mqm09G>i^OU}n# zM3@S_^)_l8PA1eK53Dns=9`Ep&EU-~PFEa#(M0(&x0Eq9A{4`Uny`QcM~YkC4@6Jo zp{BOu*QgldWXD;(!|cdFm@)7S)ixhZjWT@Q_|~tq1Ixh4+xQgiOysrVy{jsx8x19) zRWX;Hk4e6+<#JU2C3@M6BAH|ME*-J^?zmEo-IB!+d9&>fZv+l9_kw`L^s!}7NT392;Gf9#3$r@%VuVo#u38{>v^6T-BkRw5O z(E>*#oHpX(0?@c;;=)mYP9i)w#8avm_Vd4<4k4eSXM^vg+{k`|w{X_)o6LI`<1!8J zqFgv!jx`HAcog_{CN=u2(zd5>eHxs0>n7Qn_%1xzni!q_fV;= zG$Yf~g(O{HajN3=csbrEBYLz1j?a!B5#kkKosSQWYmuhS5OoacKRxb}G)!r!?tz&z zlXv~bBqPD0^F5aYwtRBkAn6`SQao$P2i8@6KHsKWct$m_?xX)Xc;IC=vZG->^=+r zmE-9ZI>6}n5UY@Xo7~Zl!vDAQemL@HU@(OkL1xluvCU{w>qkzMxHJW4R zXvFVCr}rp#&L_H=x1~Q{En7dc?)kc-^1|6{VXn+?Ef4#`*ObRg-r%8fk{J<;uA+H} zY~w>6IJA@CG#7~iAJ*XICxYw?wt~HsbuHDxqT=w}>7w{cX$pP<5rtVVrivim4405I z3jXVNElzF=d{_3^U0alXydzI|0rG;Pj7`c+l6W71){?-wZO<#$4n+)M1+UAHG zCLa`F1KJ?m15Mac0lw&CHpXw5(cB!UE$2PutN^7Aea`KE|ED#zyx1X#Z~>cuSrX8( z2IhGfV+p zbwp+;^)*{rtr<|?PJr*|k+F$$n=W)#oyQ3F| z6Xb*FqD=sI!3K?&dTHVt_ay74mPcaE_Aw{Vdx0aKg`P{1xd|NuT95Hp`=>mhT=x=) zmsDQ8_9KjF%*;w=NfXwk5zRe31pAF*xz=RxP9@CM$-QO1{_X>i7AjaZZb1yP8c2=> z5tlX%ZU)A)j3jY$vWoV(UE&7qC%@eh&bf=RNvb{>6rMl|hZGXly1J@7*}8ocZy88o zn!%d8XF@XQvrfs~nIRX*{!^{?5-NKyp}+gloV6r)l^_EfbVwPI-=`;7y?Ps?5L@j@Kz$k5-vNfoObC`_4@*oiwqa-ShpqfU$=FE!v}SoTIUd* zov|?sFhfWmHW;YfoXdXTgf3KW17ml?o@6{!<7KElt9ZPDj}p%`sMiJF&b%QDv{*z= zTYd4x%y!i|b_Ns$#bfltQzh|`fAA^-Ih(8x3`=1V*5?N7i-Lm7H*l`+AWrF zElhHMtW1NJgKYG~0me0smQ;nM#jjhUhq+`BLMh}FB`kHxx$Dm#)0yC35NV2%T)Y%7 z%?woQiI&JWHRHmb_TNLUCn$7NMC-hd19{7~qR_pfEIWF9NfQlVSQKZOH3I$^(|m6VN`le!MO61J-JtFUi*j|0TBPT|H7Cf+^_%K z!-aGugtoxW_kl3Q{_$F7_m>il4el%BanCWPFmQ+4MdWgXbLDji0b zrtdwh%_ejHLDw>h6;AaZk`CvSSZqBEuT{{O?{@_W&9~!wyp9ZzcFlRq-FRavyuxzw zAdCPE%teh~1M)5W&uk1l82EVK_O>jXh3Cg%SC)&4}yaz8S2mik0rEDxS z*%Oi8nrUQVA`C*_?ulwG8$lkugx2tgiIo&wozP3rhi0z-yoD@i1A!hd?EGq5+3S+H0|w zxxr!+vZ@+|-g?c|Zd2fhW9w}irob7O>Qp;?z~g^Q7!F~-APf!CgqW`#0WDtFdN z-3TqMB%)(DO8}yRnPbttHV_R4Y;s8^$E)vcTclu&!w&6KA7?DKmSvj}Tj)H<*rbU9RZjg!D3ed>ABg`@p!8uO9sDTB#|? zv0E4rxxp#GJcN|9zS|2)mJAHD%*Ih5A_89A!>C{*t(ub#gT6km;!QK}R5o)# z2y>>5y`sb+>j_Kh_W_L(qNGs}tU`)e>hfLivcsg&8q{ot{7F3%0G(dG4(*&`a+oH? z@`2161ffOSgxFOCHXbvo?R!u>;!NHhJvpa5@z{(a+@6<3j|6jvDme7aKC$n zG+02~4e}C3JBWq_clVU8*#C|6K$8Aa12sWjNO}h60^E217h+Kpz;;7^KFhUoj%Z;To^E zX(atLgD~x=o?pixbU@2Q)KMVyW1@5uWyXRPze!tH&KJ|t^dJZQ-9{Wcv1BWj%!n$N z^^lzg@L1#| zuwnkDgswpDQpo)E&@5MTZ-RMta;K-q_WMbl;s^#BrK zDj6nLt9&ZPU{sF+lwO>B&df{#eT9V)mhxkL3qAe#L{=;QzSb6o5*4zdcf1wlwlNzNbE;1sF7 zh;X;J(kzNp^)khRrNr>vR@S$QojZb{1rwi3cNDxb+PQZUrR^J^$r>-gXrV0Y4F86a zqf&a&c6SHcHkeINL9>!(?_eX!e~@TTjstxsfH0buEdoj|& z$c~~*6vKcbHS~ru)hj^$ZQ8bV%(;y@KVMl3mFPW|YhVIA?6cCQE24w26+^*D`dKQK z9|))=dX@j$0I8yrx?wr8>)rJ!0%0(ey?-Yue!~)|*l<@DvT|@|0|Cj6`A~{mM$$`*bl5-B!7G+a=-ouXZ z;d5@r>=K(>yH-VuOcPhjzpa>(nFH1AnZujRebD0B*R&bEDZMWgLaf`LU$gbyQ)gNs zcKj>OS9afo=kh!NxsU+HRupx5y}BUq^?mVQ<#3Zqqg`q=!2z8ZjfAz@3{F!*^GHzB zbFzVYz+oYZjA&;W{ys^c0yI=xagu;OiV}}_2M$YUKGYZ zWd_;(wjz(tvwfrPT@@3p8d$w5(=%{n8aua6;-mvwpZ#6dyk}C{EEOqCM>(ELCg2P3 z@}-2$^44nDL|awy9(_xjP=UM$mbtj^C)`>l6(vwW$-DOjb!k6xX-%r@0_AuHCk>1_ zG<3W?-2=d?T_c%5-#ly;+YqI9QoKO5kZB9)jhGkt#%4o=naN=56&pe_i!t)27-08) zT$`<=A^2mC=Xh*+&_iKY8_FWPnM#5t2WM}I?69)JiCvpshI*-<>yP|Ido(B5K$?y| zj@U!E{bq5IiGb`C&O4~&Tqg=L0j4P`ie>=#L6Q2$Ee`gf*6{pS&8FP32+v=)}^VUYD$PdQkLJO?8wetH=HYp{ZhVoWeWgo!Kr4BT$kp^xGk~pjzah;%&2N8Bw>j|S8 z942fFTo`1=R%#|V9avMr$DmN=euSnoGq*F0v)sO$^)G-Byz;BsLm%r@*~3n9hgEM> z?UQxzWN@FJ10gP@%m481-MGKE@h#->ps!%RT_Bcp8ne=2L^HgL8MIh&cK}S(5S*ZT zg%@zc+@2rDCr|qcun`J|6%qGxd$G>SZb{95rm-;NCq-1AU8?`AUzm^7I3*8%$YEf* zDzJtd|Bxps&-5WXQ zqVYGvx>l`$xw6bqv2=1-rVv*tWY$2voLQo5wA1T`?Y-G+oB{e?4O)6>S;n^eoP zweP#YRY@5J#gG@(dNKQ@Vi4-sSVHe<8?pX@!B&AqXSWzo3`F)HNaTv>A@S3blJNq;caII#8^q`rZi;*OhEZWnC#-?`Tb6HGA zBVw`Q)#fB=s79slIqC=Gh?~QnV@t83^Me)jg|kNgcwt!&VbEXCY_^vOY@f!9dF*Wf z)*NkpmG)&2;v;9;l#C> ze)y9faQh#!B9By`o0LT+;uK~`Kd5}!Fq06Suc&h>K}vR6vH>(>shSI-pvcbPi+D@-p>)z}ErC0)f7_VP#6(eP4vx?TKy&m%ISf%roJ z){B|cTO5K~IzrKvN{DL3+ETLqFNWLpc#mOAYe9v=ql8)18M|(h9#0U5m+VDX7Z`


+
+1. Vorwort
+Habe versucht alles so kurz wie möglich aber dennoch ausführlich zu Beschreiben und
+wie immer aus verschiedenen Anleitugen abgeschrieben ;-)
+3
+
+
+Inhaltsverzeichnis
+1. Vorwort
+3
+Inhaltsverzeichnis
+5
+I.
+Linux
+15
+2. Linux
+17
+2.1.
+Was ist Linux? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
+2.2.
+Kernel und Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
+2.2.1.
+Kernel 2.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
+2.2.2.
+Kernel 2.6 (Debian 4.0 etch) . . . . . . . . . . . . . . . . . . . 17
+3. Befehle
+19
+3.1.
+Standartein-aus-gabe . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
+3.2.
+Anmelden und Abmelden . . . . . . . . . . . . . . . . . . . . . . . . . 19
+3.3.
+Anhalten des Systems und Booten . . . . . . . . . . . . . . . . . . . . 19
+3.4.
+Die Runlevel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
+3.4.1.
+Upstart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
+3.5.
+SuSE-Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
+3.6.
+Zur Orientierung auf einem UNIX-Rechner . . . . . . . . . . . . . . . . 20
+3.7.
+Datum und Uhrzeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
+3.8.
+Auflisten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
+3.9.
+Dateinamen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
+3.10. Dateiendungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
+3.11. Infos über Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
+3.12. Arbeiten(Verwüstungen) im und am Filesystem . . . . . . . . . . . . . 23
+3.13. Kopieren und Verschieben . . . . . . . . . . . . . . . . . . . . . . . . . 23
+3.14. Löschen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
+3.15. Ausgeben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
+3.16. Der Texteditor vi/vim . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
+3.17. Suchen nach Dateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
+3.18. Suchen in Dateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
+3.19. Vergleichen von Dateien . . . . . . . . . . . . . . . . . . . . . . . . . . 25
+3.20. Drucken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
+3.21. File-Inhalt bearbeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
+3.22. TAR (tape archiver) verwaltet Dateiarchive . . . . . . . . . . . . . . . 25
+3.22.1. Packen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
+5
+
+Inhaltsverzeichnis
+3.22.2. Entpacken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
+3.23. Disketten/Festplatten . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
+3.23.1. Dateisystem verschlüsseln . . . . . . . . . . . . . . . . . . . . . 28
+3.24. Zugriffsrechte/Eigentümer/Gruppe . . . . . . . . . . . . . . . . . . . . 28
+3.25. Prozessbefehle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
+3.26. Re-install Grub with Live CD . . . . . . . . . . . . . . . . . . . . . . . 31
+3.26.1. Chroot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
+3.26.2. Grub . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
+3.27. Software installieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
+3.27.1. rpm-Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
+3.27.2. deb-Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
+3.27.3. Portage Gentoo . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
+3.27.4. Quelltexte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
+3.27.5. Hilfe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
+3.28. Im Netz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
+3.29. SSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
+3.29.1. Generierung eines DSA Schlüsselpaares . . . . . . . . . . . . . 35
+3.29.2. Public-Key auf dem Zielrechner hinzufügen . . . . . . . . . . . 35
+3.29.3. Private-Key auf dem Qellrechner . . . . . . . . . . . . . . . . . 35
+3.29.4. Login nur mit SSH-Keys erlauben . . . . . . . . . . . . . . . . 36
+3.30. GnuPG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
+3.30.1. Erzeugen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
+3.30.2. Hochladen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
+3.30.3. Löschen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
+3.30.4. Holen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
+3.30.5. Signatur erzeugen und prüfen . . . . . . . . . . . . . . . . . . . 37
+3.30.6. Verschlüsseln . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
+3.30.7. Entschlüsseln . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
+3.30.8. Schlüsselverwaltung . . . . . . . . . . . . . . . . . . . . . . . . 38
+3.30.9. Anzeigen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
+3.30.10. Exportieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
+3.31. X11 - Grafik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
+3.31.1. Bildschirmschoner . . . . . . . . . . . . . . . . . . . . . . . . . 39
+3.31.2. X11 ohne Maus . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
+4. Verzeichnisse und Dateien
+41
+4.1.
+Dateibaum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
+4.2.
+/etc/fstab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
+4.3.
+/dev/ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
+4.4.
+Dateisystemtypen unter Linux . . . . . . . . . . . . . . . . . . . . . . . 49
+4.5.
+/etc/group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
+4.6.
+/etc/hosts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
+4.7.
+/etc/inittab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
+4.7.1.
+Terminal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
+4.7.2.
+Termcapeintrag . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
+6
+
+Inhaltsverzeichnis
+4.7.3.
+Gettykommando . . . . . . . . . . . . . . . . . . . . . . . . . . 51
+4.7.4.
+Kürzel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
+4.7.5.
+Arbeitsstufen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
+4.7.6.
+Modus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
+4.7.7.
+Kommando . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
+4.8.
+/etc/passwd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
+5. Die Shells
+55
+5.1.
+Die Shells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
+5.2.
+Die Start-Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
+5.3.
+Tastenkombinationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
+5.4.
+Die C-Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
+5.5.
+Bash rechnen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
+II. Programme
+59
+6. Der Texteditor vi/vim
+61
+6.1.
+Aufruf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
+6.2.
+Eingabemodus (input mode) . . . . . . . . . . . . . . . . . . . . . . . . 61
+6.3.
+Befehlsmodus (visual mode) . . . . . . . . . . . . . . . . . . . . . . . . 61
+6.3.1.
+Eingeben: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
+6.3.2.
+Überschreiben: . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
+6.3.3.
+Bewegen: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
+6.3.4.
+Löschen und Eingeben: . . . . . . . . . . . . . . . . . . . . . . 63
+6.3.5.
+Löschen: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
+6.3.6.
+Aufheben: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
+6.3.7.
+Verschieben: . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
+6.3.8.
+Zusammenfügen: . . . . . . . . . . . . . . . . . . . . . . . . . . 64
+6.3.9.
+Markieren: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
+6.3.10. Kopieren: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
+6.3.11. Einfügen: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
+6.3.12. Suchen: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
+6.3.13. Wiederholen: . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
+6.3.14. Sonstige Kommandos: . . . . . . . . . . . . . . . . . . . . . . . 65
+6.4.
+Kommandomodus (colon mode) . . . . . . . . . . . . . . . . . . . . . . 65
+6.4.1.
+Texteingabe Kommandos . . . . . . . . . . . . . . . . . . . . . 65
+7. LaTeX
+67
+7.1.
+LATEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
+III. Linux im Netzwerk
+69
+8. Netzwerk
+71
+7
+
+Inhaltsverzeichnis
+9. Apache
+73
+9.1.
+Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
+9.2.
+Kompilieren und Installieren . . . . . . . . . . . . . . . . . . . . . . . . 73
+9.2.1.
+Anforderungen . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
+9.2.2.
+Vorbereitungen . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
+9.2.3.
+OpenSSL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
+9.2.4.
+Apache 1.3 und SSL . . . . . . . . . . . . . . . . . . . . . . . . 74
+9.2.5.
+Apache2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
+9.2.6.
+Testen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
+9.2.7.
+Upgrade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
+9.2.8.
+PureFTPd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
+9.3.
+Apache starten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
+9.3.1.
+Apache starten . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
+9.3.2.
+Wie der Apache startet . . . . . . . . . . . . . . . . . . . . . . 78
+9.3.3.
+Fehler während des Hochfahrens . . . . . . . . . . . . . . . . . 79
+9.3.4.
+Automatisch starten und beenden . . . . . . . . . . . . . . . . 79
+9.3.5.
+Weitere Informationen . . . . . . . . . . . . . . . . . . . . . . . 79
+9.4.
+Beenden und Neustarten . . . . . . . . . . . . . . . . . . . . . . . . . . 80
+9.4.1.
+Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
+9.4.2.
+Beenden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
+9.4.3.
+Unterbrechungsfreier Neustart . . . . . . . . . . . . . . . . . . 80
+9.4.4.
+Neustarten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
+9.4.5.
+Anhang: Syntax überprüfen . . . . . . . . . . . . . . . . . . . . 81
+9.5.
+Anhang . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
+9.5.1.
+Zu den Dateien . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
+9.6.
+Benutzerhandbuch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
+9.6.1.
+httpd.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
+9.6.2.
+Access Control List File (.htaccess) . . . . . . . . . . . . . . . . 85
+9.6.3.
+Gruppendatei (.htgroup) . . . . . . . . . . . . . . . . . . . . . . 86
+9.6.4.
+Passwort-Datei (.htpasswd) . . . . . . . . . . . . . . . . . . . . 86
+9.6.5.
+Erstellen eines SSL-Zertifikats . . . . . . . . . . . . . . . . . . . 86
+9.6.6.
+LinkIcon (favicon.ico) . . . . . . . . . . . . . . . . . . . . . . . 86
+10. MySQL
+89
+10.1. Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
+10.2. Kompilieren und Installieren . . . . . . . . . . . . . . . . . . . . . . . . 89
+10.2.1. Anforderungen . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
+10.2.2. Vorbereitungen . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
+10.2.3. MySQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
+10.2.4. MySQL Testen . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
+10.2.5. phpMyAdmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
+11. PHP
+93
+11.1. Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
+8
+
+Inhaltsverzeichnis
+11.2. Kompilieren und Installieren . . . . . . . . . . . . . . . . . . . . . . . . 93
+11.2.1. Anforderungen . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
+11.2.2. Vorbereitungen . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
+11.2.3. Libraries für Zusatzfunktionen . . . . . . . . . . . . . . . . . . 94
+11.2.4. PHP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
+11.3. Referenz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
+11.3.1. Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
+11.3.2. Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
+12. Squid
+97
+12.1. Proxy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
+12.2. Einfacher Cache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
+12.3. Proxy Cache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
+12.4. Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
+12.5. Eigenschaften . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
+12.6. Protokolle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
+12.6.1. Client-Kommunikation . . . . . . . . . . . . . . . . . . . . . . . 98
+12.6.2. Kommunikation zwischen Proxy-Cache-Servern . . . . . . . . . 98
+12.7. Systemvoraussetzungen . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
+12.8. SuSE Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
+12.9. Automatische Starten von Squit . . . . . . . . . . . . . . . . . . . . . . 99
+12.10. Squiddateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
+12.11. squid.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
+IV. Programmieren
+103
+13. Bash
+105
+13.1. Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
+13.2. Referenz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
+13.3. Steuer und Sonderzeichen der Bash . . . . . . . . . . . . . . . . . . . . 106
+14. git
+107
+14.1. Dokumentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
+14.2. Konfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
+14.3. Konfigurationen über Umgebungsvariablen . . . . . . . . . . . . . . . . 108
+14.4. Der Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
+14.5. Repository . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
+14.6. Commit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
+14.7. Dateien entfernen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
+14.8. Dateien verschieben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
+14.9. Änderung an einer Datei rückgängig machen . . . . . . . . . . . . . . . 109
+14.10. Dateien ignorieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
+14.11. Mit externen Repositorys arbeiten . . . . . . . . . . . . . . . . . . . . 110
+14.12. Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
+9
+
+Inhaltsverzeichnis
+14.13. Branch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
+14.14. Git Aliase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
+14.15. Git auf einen Server bekommen . . . . . . . . . . . . . . . . . . . . . . 112
+14.16. Git auf dem SSH-Server einrichten . . . . . . . . . . . . . . . . . . . . 112
+14.17. Öffentlicher Webserver-Zugang . . . . . . . . . . . . . . . . . . . . . . 113
+14.18. Grundbegriffe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
+15. C/C++
+117
+15.1. Befehle und Grundelemente . . . . . . . . . . . . . . . . . . . . . . . . 117
+15.2. Steuersequenzen für ANSI-Bildschirme - Innerhalb von Texten . . . . . 117
+15.3. stdio.h -> Standard Ein- und Ausgabe . . . . . . . . . . . . . . . . . . 118
+15.4. ctype.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
+15.5. string.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
+15.6. Kontrollstrukturen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
+15.7. ASCII(American Standart Code for Information Interchange)-Tabelle . 121
+15.7.1. Unterteilung der Steuerzeichen: . . . . . . . . . . . . . . . . . . 122
+15.7.2. Bedeutung der Steuerzeichen: . . . . . . . . . . . . . . . . . . . 122
+15.8. Operatoren und Ausdrücke . . . . . . . . . . . . . . . . . . . . . . . . 123
+15.8.1. Arithmetische Operatoren: . . . . . . . . . . . . . . . . . . . . 123
+15.8.2. Vergleichsoperatoren: . . . . . . . . . . . . . . . . . . . . . . . 123
+15.8.3. Logische Operatoren: . . . . . . . . . . . . . . . . . . . . . . . . 123
+15.8.4. Zuweisungsoperatoren: . . . . . . . . . . . . . . . . . . . . . . . 124
+15.8.5. Post- und Prefix- Operatoren: . . . . . . . . . . . . . . . . . . . 124
+15.8.6. Zeigeroperatoren: . . . . . . . . . . . . . . . . . . . . . . . . . . 124
+15.8.7. Diverse Kategorien: . . . . . . . . . . . . . . . . . . . . . . . . 124
+15.9. Inkrementieren und Dekrementieren . . . . . . . . . . . . . . . . . . . 125
+15.10. Wertebereich und Genauigkeit elementarer Datentypen . . . . . . . . . 125
+15.11. Variableninitialisierung . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
+15.12. Konstanten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
+15.12.1. Ganzzahlkonstanten . . . . . . . . . . . . . . . . . . . . . . . . 126
+15.12.2. Gleitkommakonstanten . . . . . . . . . . . . . . . . . . . . . . 126
+15.12.3. Zeichen- und Zeichenkettenkonstanten . . . . . . . . . . . . . . 126
+16. Tcl/Tk
+127
+17. Perl
+129
+18. CGI+Perl
+131
+18.1. Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
+18.2. Perl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
+18.2.1. Texte und Strings . . . . . . . . . . . . . . . . . . . . . . . . . 131
+18.2.2. Rechenoperationen . . . . . . . . . . . . . . . . . . . . . . . . . 131
+18.2.3. Arrays (Listen) . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
+18.2.4. String- und Zahlenvergleichsoperratoren . . . . . . . . . . . . . 132
+18.2.5. if-Bedingung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
+10
+
+Inhaltsverzeichnis
+18.2.6. if-else-Bedingung . . . . . . . . . . . . . . . . . . . . . . . . . . 132
+18.2.7. if-elseif-Bedingung . . . . . . . . . . . . . . . . . . . . . . . . . 133
+18.3. Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
+18.3.1. String Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . 133
+18.3.2. Rechen Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . 133
+18.3.3. Array Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . 133
+19. Java
+135
+19.1. Funktion von Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
+19.2. Sprache und Syntax von Java . . . . . . . . . . . . . . . . . . . . . . . 135
+19.2.1. Kommentrare . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
+19.2.2. Datentypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
+19.2.3. Variablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
+19.3. Pakete und Verzeichnisstrukturen . . . . . . . . . . . . . . . . . . . . . 136
+19.3.1. Sichtbarkeit und Zugriffsrechte von Klassen und Methoden . . 136
+19.3.2. Klassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
+19.3.3. Konstruktoren und Destruktoren . . . . . . . . . . . . . . . . . 137
+19.3.4. Methoden überladen . . . . . . . . . . . . . . . . . . . . . . . . 137
+19.3.5. Objekte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
+19.3.6. Vererbung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
+19.3.7. Schnittstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
+19.4. Elementare Syntax von Java . . . . . . . . . . . . . . . . . . . . . . . . 138
+19.4.1. Operratoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
+19.4.2. Verknüpfungsoperatoren . . . . . . . . . . . . . . . . . . . . . . 138
+19.4.3. Inkrement-Operator . . . . . . . . . . . . . . . . . . . . . . . . 138
+19.4.4. Dekrement-Operator . . . . . . . . . . . . . . . . . . . . . . . . 139
+19.4.5. Arithmetische Zuweisungsoperatoren . . . . . . . . . . . . . . . 139
+19.4.6. Bedingungen und Entscheidungen . . . . . . . . . . . . . . . . 139
+19.4.7. if - else - Bedingungen . . . . . . . . . . . . . . . . . . . . . . . 139
+19.4.8. Verschachtelte Bedingungen . . . . . . . . . . . . . . . . . . . . 139
+19.4.9. Fallunterscheidung mit switch - case . . . . . . . . . . . . . . . 140
+19.5. Schleifen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
+19.5.1. Die while - Schleife . . . . . . . . . . . . . . . . . . . . . . . . . 140
+19.5.2. Die do - while - Schleife . . . . . . . . . . . . . . . . . . . . . . 140
+19.5.3. Die for - Schleife . . . . . . . . . . . . . . . . . . . . . . . . . . 140
+19.5.4. Schleifen mit break verlassen . . . . . . . . . . . . . . . . . . . 140
+19.5.5. Schleife mit continue wiederholen . . . . . . . . . . . . . . . . . 140
+19.6. Komplexe Datentypen . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
+19.6.1. Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
+19.7. Die Anweisung import . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
+19.8. Java eigene Klassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
+19.8.1. Die Klasse Math . . . . . . . . . . . . . . . . . . . . . . . . . . 141
+19.9. Die Klasse Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
+19.9.1. Die Klasse Object . . . . . . . . . . . . . . . . . . . . . . . . . 141
+19.10. Die Klasse Runtime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
+11
+
+Inhaltsverzeichnis
+19.11. Die Klasse String . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
+19.12. Die Klasse Stringbuffer . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
+19.12.1. Die Klasse Stringbuffer . . . . . . . . . . . . . . . . . . . . . . 142
+19.13. Die Klasse System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
+19.14. Das Paket java.util . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
+19.14.1. Die Klasse Date . . . . . . . . . . . . . . . . . . . . . . . . . . 143
+19.14.2. Die Klasse Random . . . . . . . . . . . . . . . . . . . . . . . . 143
+19.14.3. Die Klasse Stack . . . . . . . . . . . . . . . . . . . . . . . . . . 143
+19.15. Ausnahmen (Exceptions) . . . . . . . . . . . . . . . . . . . . . . . . . . 143
+19.15.1. Eigene Ausnahme erzeugen (throw) . . . . . . . . . . . . . . . 144
+19.16. Multitasking mit Threads . . . . . . . . . . . . . . . . . . . . . . . . . 144
+19.16.1. Arbeiten mit Threads . . . . . . . . . . . . . . . . . . . . . . . 144
+19.17. Applets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
+19.17.1. Applets in eine Webseite einbinden . . . . . . . . . . . . . . . . 145
+19.17.2. Das erste Java Applet . . . . . . . . . . . . . . . . . . . . . . . 145
+19.17.3. Die Methoden eines Applets . . . . . . . . . . . . . . . . . . . . 145
+19.17.4. Ein Applet im Überblick . . . . . . . . . . . . . . . . . . . . . . 145
+19.17.5. Pakete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
+19.17.6. Die Klasse Graphics . . . . . . . . . . . . . . . . . . . . . . . . 146
+19.17.7. Die Klasse Color . . . . . . . . . . . . . . . . . . . . . . . . . . 146
+19.17.8. Die Klasse Font . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
+19.17.9. Die Klasse Image . . . . . . . . . . . . . . . . . . . . . . . . . . 147
+19.17.10. Die Klasse Button . . . . . . . . . . . . . . . . . . . . . . . . . 147
+19.18. Eventhandling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
+19.18.1. Mouse Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
+19.18.2. Action Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
+19.18.3. Parameter an ein Applet . . . . . . . . . . . . . . . . . . . . . . 148
+19.18.4. Weitere wichtige Pakete . . . . . . . . . . . . . . . . . . . . . . 149
+20. JavaScript
+151
+20.1. Einbindung von JavaScript . . . . . . . . . . . . . . . . . . . . . . . . 151
+20.1.1. Einbindung in den Head . . . . . . . . . . . . . . . . . . . . . . 151
+20.1.2. Einbindung in den Body . . . . . . . . . . . . . . . . . . . . . . 151
+20.1.3. Ausführen bei bestimmten Aktionen . . . . . . . . . . . . . . . 151
+20.2. Variablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
+20.3. Objekte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
+20.3.1. Standardobjekte . . . . . . . . . . . . . . . . . . . . . . . . . . 152
+20.3.2. String-Objekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
+20.3.3. Eigene Objekte . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
+20.3.4. Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
+20.4. Mathematische Operationen . . . . . . . . . . . . . . . . . . . . . . . . 154
+20.5. Bedingte Ausführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
+20.6. Schleifen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
+20.7. Event-Handler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
+20.8. Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
+12
+
+Inhaltsverzeichnis
+20.9. Reservierte Wörter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
+V. Anhang
+159
+21. Glossar
+161
+Stichwortverzeichnis
+164
+13
+
+
+Teil I.
+Linux
+15
+
+
+2. Linux
+2.1. Was ist Linux?
+Der Kernel, eine Schnittstelle für die Software zur Hardware.
+2.2. Kernel und Module
+http://www.kernel.org/
+http-Adresse für den Kernel und Kernel-Patches
+http://www.de.kernel.org/pub/linux/kernel/
+Spiegel für den Kernel
+2.2.1. Kernel 2.4
+tar xvfj kernel.tar.bz2
+entpackt den Kernel
+tar xvfz kernel.tar.gz
+entpackt den Kernel
+cd kernel
+Verzeichnis wechseln
+bzip2 -dc ../patch-2.x.xx.bz2 | patch -p1
+Kernel patchen
+gzip -dc ../patch-2.x.xx.gz | patch -p1
+Kernel patchen
+zcat /proc/config.gz > /usr/src/linux/.config
+die aktuelle Konfiguration des
+laufenden Kernels auslesen
+make menuconfig
+Kernelkonfiguration im Textmodus
+make dep
+aktualisiert die Abhängigkeiten
+make clean
+löscht die temporären Dateien und Ausgabedateien
+make zImage
+übersetzt und komprimiert den Kernel
+make bzImage
+übersetzt und komprimiert den gossen Kernel
+make dep clean zImage
+aktualisiert,löscht und übersetzt
+make modules
+übersetzt Module
+make modules_install
+installiert Module
+make zlilo
+installiert den Kernel und den Boot-Loader LILO
+make bzlilo
+installiert den gossen Kernel und
+den Boot-Loader LILO
+make zdisk
+erzeugt eine Bootdiskette mit dem neuen Kernel
+make mrproper
+löscht alle erzeugten Dateien,
+auch die Konfiguration
+2.2.2. Kernel 2.6 (Debian 4.0 etch)
+sudo apt-get update
+Paket-Datenbank aktualisieren
+sudo apt-get install kernel-package libncurses5-dev fakeroot wget bzip2 \
+17
+
+2. Linux
+build-essential
+benötigte Pakete installieren
+cd /usr/src
+in das Verzeichnis zu den Quell-Paketen wechseln
+wget -c http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.22.1.tar.bz2
+den aktuellen Kernel downloaden
+wget -c http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.22.1.tar.bz2.sign
+die dazugehörige Signatur downloaden
+gpg --keyserver wwwkeys.de.pgp.net --recv-keys 0x517D0F0E
+Public-Key vom Key-Server holen
+gpg --verify linux-2.6.22.1.tar.bz2.sign
+Kernel-Signatur überprüfen
+tar xvfj linux-2.6.22.1.tar.bz2 Kernel entpacken
+ln -s linux-2.6.22.1 linux
+Soft-Link zu den Kernel-Quellen anlegen
+cd /usr/src/linux
+zu den aktuellen Kernel-Quellen wechseln
+bzip2 -dc /usr/src/patch.bz2 | patch -p1 --dry-run
+Aktualisieren prüfen
+bzip2 -dc /usr/src/patch.bz2 | patch -p1
+Kernel-Quellen aktualisieren wenn nötig
+make clean && make mrproper
+Kernel säubern und korigieren
+cp /boot/config-‘uname -r‘ ./.config
+laufende Konfiguration holen
+make menuconfig
+Konfigurations-Programm starten
+Load an Alternate Configuration File
+laufende Konfiguration laden und Kernel
+konfigurieren
+make-kpkg clean
+fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image \
+kernel_headers
+Kernel-Pakete und Kernel-Headers herstellen
+sudo dpkg -i linux-image-2.6.22.1-custom_2.6.22.1-custom-10.00.Custom_i386.deb
+den neuen Kernel installieren
+sudo dpkg -i linux-headers-2.6.22.1-custom_2.6.22.1-custom-10.00.Custom_i386.deb
+die neuen Header installieren
+sudo shutdown -r now
+Neustart um den Kernel zu testen
+uname -a
+feststellen welcher Kernel gestartet ist
+dmesg
+Kernelmeldungen vom letzten Start anzeigen
+insmod Modul
+Modul laden
+modprobe Modul
+Modul eigenständig laden
+lsmod
+geladene Module anzeigen lassen
+rmmod Modul
+Modul entfernen
+18
+
+3. Befehle
+3.1. Standartein-aus-gabe
+Jedes UNIX kennt 3 spezielle Files:
stdin
+Standardeingabe, normalerweise die Tastatur
+stdout
+Standardausgabe, normalerweise der Bildschirm
+stderr
+Standardausgabe für Fehlermeldungen,
+normalerweise der Bildschirm
+All diese Files können umgelenkt werden
+setterm -blank 0
+Bildschirmschoner ausschalten
+3.2. Anmelden und Abmelden
+login: Benutzername
+1. zum Anmelden den Benutzernamen eingeben
+Passwort: Benutzerpasswort
+2. zum Anmelden das Benutzerpasswort eingeben
+logout
+zum Abmelden eingeben
+exit
+zum Abmelden eingeben
+[Strg]+[d]
+beendet die Shell (alle Shells)
+3.3. Anhalten des Systems und Booten
+Unter keinen Umständen darf während des Betriebs einfach der Strom abgeschaltet
+oder der Resetknopf betätigt werden. Da es sonst zu einer Beschädigung des Dateisy-
+stems mit Datenverlust kommen kann.
+root: shutdown -h now
+hält das System an
+root: halt
+hält das System an
+root: init 0
+hält das System an
+root: systemctl poweroff
+hält das System an
+root: shutdown -r now
+startet den Computer nach dem Herunterfahren neu
+root: reboot
+startet den Computer nach dem Herunterfahren neu
+root: init 6
+startet den Computer nach dem Herunterfahren neu
+root: systemctl reboot
+startet den Computer nach dem Herunterfahren neu
+root: systemctl suspend
+Bereitschaft
+root: systemctl hibernate
+Ruhezustand
+19
+
+3. Befehle
+3.4. Die Runlevel
+root: init 0
+Systemhalt
+root: init S
+Einzelbenutzerbetrieb (Single User Mode)
+root: init 1
+Einzelbenutzerbetrieb (Single User Mode)
+root: init 2
+Lokaler Mehrbenutzerbetrieb ohne entferntes Netzwerk
+(Local multiuser without remote network)
+root: init 3
+Voller Mehrbenutzerbetrieb mit Netzwerk
+(Full multiuser with network)
+root: init 4
+Frei (Not used)
+root: init 5
+Voller Mehrbenutzerbetrieb mit Netzwerk und KDM, GDM oder XDM
+(Full multiuser with network and xdm)
+root: init 6
+Systemneustart (System reboot)
+root: init q
+Quit zum Neueinlesen der inittab
+3.4.1. Upstart
+Upstart sorgt dafür das Dienste ereignisbasiert parallel gestartet werden können /etc/inittab
+entfällt neu /etc/init/ (bzw. /etc/event.d/)
+initctl list
+Liste aller Init-Jobs
+sudo initctl start/stop
+Init-Jobs (zB. ssh)
+Im Header der Datei kann dann zum Starten und Beenden flogendes stehen:
+start on runlevel [2345]
+stop on runlevel [!2345]
+sudo initctl reload-configuration
+ließt die Konfiguration neu ein und
+startet/beendet die Dienste
+3.5. SuSE-Linux
+hilfe
+Hilfesystem starten
+yast
+Yet another Setup Tool -
+SuSE Administrationstool
+yast2
+Yet another Setup Tool 2 -
+SuSE Administrationstool
+SuSEconfig
+das Skript muss aufgerufen werden
+nachdem die /etc/rc.config und /etc/sysconfig/
+von Hand verändert wurden
+3.6. Zur Orientierung auf einem UNIX-Rechner
+date
+zeigt Datum und Uhrzeit an
+20
+
+3.7. Datum und Uhrzeit
+df -k
+zeigt den feien Platten-Platz in kB an
+df -m
+zeigt den feien Platten-Platz in MB an
+df -h
+Ausgabe von Größen in Menschen-lesbarem Format
+du -h
+zeigt wie viel Platten-Platz in kB bestimmte Dateien einnehmen
+echo Text
+schreibt den Text auf stdout (Bildschirm)
+finger
+zeigt Infos über eingeloggte Benutzer an
+finger -l
+zeigt ausführliche Infos über eingeloggte Benutzer an
+free -t
+zeigt den feien Arbeitsspeicher in kB an
+last
+zeigt wer sich zuletzt von wo aus auf dem Rechner eingeloggt hat
+info Begriff
+Hilfe zu dem Begriff im Infoformat
+man Begriff
+Hilfe zu dem Begriff
+man -a Begriff alle Kapitel zu dem Begriff
+man -f Begriff listet die gefundenen Seiten zu dem Begriff auf
+man -k Begriff listet die Seiten in dem der Begriff vorkommt auf
+man n Begriff
+Hilfe zum Begriff mit der Sektion n
+Die Manual-Pages sind auf verschiedene Sektionen aufgeteilt:
+1 Shell-Kommandos
+2 System-Aufrufe
+3 Funktionen - C-Bibliotheksfunktionen.
+4 Die Beschreibung von Konfigurationsdateien.
+5 Die Syntax wichtiger Dateien.
+6 Beschreibung von Spielen.
+7 Alles was mit Text, Textformatierung und anderen Formaten zu
+tun hat.
+8 Die Befehle des Systemverwalters.
+9 Die Beschreibung der Linux-Kernelroutinen.
+n n kommt angeblich von neu, hier sind sonstige Manual-Pages
+aufgeführt, die in eine der oberen Sektionen gehören, aber
+traditionell hier stehen oder zu keiner Sektion genau passen.
+pwd
+Ausgabe des aktuellen Verzeichnisses
+w
+wer ist da und was ist los
+whatis Befehl
+zeigt Kurzerklärung eines Befehls
+which Befehl
+zeigt, wo Executable liegt, und eventual alias
+who
+zeigt Liste aller eingeloggten Benutzer
+whoami
+zeigt, wem die Shell gehört
+3.7. Datum und Uhrzeit
+date
+Datum und Uhrzeit abfragen
+date -s ’2000-01-29 20:00:00’ +’%Y-%m-%d %T’
+Datum und Uhrzeit einstellen
+netdate Rechnername
+Datum und Uhrzeit vom Rechner-
+name holen
+clock -u -w
+Datum und Uhrzeit in
+das BIOS schreiben
+21
+
+3. Befehle
+timedatectl set-local-rtc 1
+locale Zeit einstellen
+timedatectl set-local-rtc 0
+UTC Zeit einstellen
+3.8. Auflisten
+ls
+Auflisten der Dateien im aktuellen Verzeichnis
+ls Verzeichnis
+Inhalt des Verzeichnisses ausgeben
+ls -la
+alles Auflisten im aktuellen Verzeichnis
+ls -laFi
+alles ausführlicher Auflisten
+ls | paste - - - -
+Dateien vierspaltig ausgeben
+ls -1
+untereinander ausgeben
+ls -F
+Verzeichnisse mit angehängtem / markieren
+ls -i
+inode-Nummer mit ausgeben
+ls -R
+alle Unterverzeichnisse mit ausgeben
+ls -r
+Auflisten der Dateien umkehren
+3.9. Dateinamen
+UNIX unterscheidet Groß- und Kleinschreibung! liesmich, Liesmich, LIESMICH sind
+verschiedene Dateinamen! max. 256 Zeichen, alle Zeichen sind erlaubt . am Namens-
+anfang versteckt Datei vor ls, cp, rm, mv
+alias
+gibt alle definierten Kurznamen aus
+alias la=’ls -la’
+definiert Kurznamen für ein Kommando
+aus ls -la wird ein la
+3.10. Dateiendungen
+.a
+Objektbibliotheken
+.c
+C-Quelltextdatei
+.cpp
+C++-Quellen
+.o
+Objektdatei
+.p
+Pascal-Quellen
+.s
+Assembler
+3.11. Infos über Files
+file Datei
+Anzeige des Dateitypes
+wc -lwc Datei
+Ausgabe der Zeilen, Worte und Buchstaben der Datei
+ls -a | wc -l
+alle Dateien im aktuellen Verzeichnis zählen
+22
+
+3.12. Arbeiten(Verwüstungen) im und am Filesystem
+3.12. Arbeiten(Verwüstungen) im und am Filesystem
+cd Pfad
+Verzeichnis wechseln
+mkdir Name
+Verzeichnis erzeugen
+mkdir -p Name
+Verzeichnis erzeugen, fehlende Verzeichnisse mit anlegen
+3.13. Kopieren und Verschieben
+cp Dateien Ziel
+Dateien kopieren
+cp -i Dateien Ziel
+Dateien kopieren, vor dem Überschreiben
+einer Datei nachfragen
+cp -R Quelle* Ziel
+gesamten Inhalt eines Verzeichnises kopieren
+mv Quelle Ziel
+Datei verschieben oder umbenennen
+mv -f Quelle Ziel
+Schreibgeschützte Datei verschieben oder umbenennen
+mv -i Quelle Ziel
+Datei verschieben oder umbenennen,
+vor dem Überschreiben nachfragen
+ln Quelle Ziel
+Verknüpfung erzeugen (Hardlink),
+beide Dateien haben die gleiche inode
+ln -s Quelle Ziel
+Verknüpfung erzeugen (Softlink)
+ln -sf Quelle Ziel
+Verknüpfung erzeugen (Softlink)
+ohne Rückfrage überschreiben
+3.14. Löschen
+rm Datei
+löschen von Daten
+rm -r Dateien
+löschen von Dateien mit Verzeichnissen
+rmdir Verzeichnis
+löscht Verzeichnis wenn es leer ist,
+überflüssig rm -r geht auch
+3.15. Ausgeben
+cat Datei
+Inhalt der Datei auf dem Bildschirm ausgeben
+cat Datei1 Datei2 > Datei3
+Dateien1+2 zusammenfügen in die Datei3 schreiben
+strings Datei
+Druckbare Zeichen der Datei ausgeben
+more Datei
+Datei seitenweise ausgeben
+less Datei
+Datei ausgeben und mit den Curser scrollen
+j eine Zeile weiter
+k eine Zeile zurück
+u halbe Seite zurück
+/Text sucht den Text
+q less verlassen
+nl Datei
+Datei mit Zeilennummern ausgeben
+tail Datei
+zeigt die letzten 10 Zeilen einer Datei an
+23
+
+3. Befehle
+tail -n Datei
+zeigt die letzten n Zeilen einer Datei an
+tail -f Datei
+zeigt ständig die letzten 10 Zeilen der Datei an
+tail -f /var/log/messages
+Systemmeldungen mitverfolgen
+head Datei
+zeigt die ersten 10 Zeilen einer Datei an
+head -n Datei
+zeigt die ersten n Zeilen einer Datei an
+od -b Datei
+Datei oktal ausgeben
+od -c Datei
+Datei als ASCII ausgeben
+od -x Datei
+Datei hexadezimal ausgeben
+ls | paste - - - -
+Dateien vierspaltig ausgeben
+recode ibmpc:lat1 Datei
+Konvertierung der Datei
+7 Bit DOS in das UNICODE/8 Bit Format
+3.16. Der Texteditor vi/vim
+vi
+Editor vi aufrufen
+vi Datei
+Editor vi aufrufen und Datei öffnen
+vi -r
+swap-Dateien anzeigen
+vi -r Datei
+Datei nach einem Stromausfall (oder Absturz) wieder herstellen
+vi -R Datei
+Datei schreibgeschützt öffnen
+3.17. Suchen nach Dateien
+find Pfad Bedingung
+nach Dateien suchen
+find Pfad | grep name
+nach Dateien suchen, hat sich bewährt
+find Pfad -name .profile
+nach dem Dateinamen .profile suchen
+find Pfad -user higi
+nach Dateien die dem Benutzer
+higi gehören suchen
+find Pfad -size +1024c
+nach Dateien die größer als 1024 Bytes
+sind suchen
+find Pfad -atime +7
+nach Dateien suchen die älter als 7 Tage sind
+find Pfad -print
+alle Dateien im Pfad ausgeben
+find -name *.txt
+alle Dateien im aktuellen Pfad
+mit der Endung .txt ausgeben
+find / -size +16000000c
+alle Dateien die mehr als 16MB haben ausgeben
+find / -fstype msdos -name *.zip
+sucht auf MS-DOS-Partition nach *.zip
+find / -fstype vfat -name *.txt
+sucht auf Windows-Partition nach *.txt
+3.18. Suchen in Dateien
+grep Ausdruck Datei
+sucht nach dem Ausdruck in der Datei
+grep -c Ausdruck Datei
+Anzahl der Zeilen, die den Begriff
+enthalten ausgeben
+grep -i Ausdruck Datei
+große und kleine Buchstaben nicht unterscheiden
+24
+
+3.19. Vergleichen von Dateien
+grep -l Ausdruck Datei
+meldet die Dateien die den Ausdruck enthalten
+grep -n Ausdruck Datei
+sucht nach dem Ausdruck und
+gibt die Zeilennummer mit aus
+grep -v Ausdruck Datei
+Ausgabe der Zeilen die den Ausdruck
+nicht enthalten
+egrep Ausdruck Datei
+sucht nach dem Ausdruck in der Datei
+fgrep String Datei
+sucht nach dem String in der Datei
+fgrep -x String Datei
+sucht nach dem String in der Zeile einer Datei
+3.19. Vergleichen von Dateien
+diff Datei1 Datei2
+zeigt die Unterschiede zwischen zwei Dateien
+comm [-123] Datei1 Datei2
+zwei sortierte Textdateien vergleichen
+cmp -l Datei1 Datei2
+Binär-/Dateien vergleichen
+3.20. Drucken
+lpr Datei
+Datei auf dem Drucker ausgeben
+lpr -#n Datei
+Datei n mal auf dem Drucker ausgeben
+lpr -m Datei
+Datei auf dem Drucker ausgeben, nach dem Drucken
+bekommt man eine mail
+lpq
+Warteschlange anschauen
+lprm Jobnummer
+Druckauftrag/Job aus der Warteschlange löschen
+pr
+Dateien für das Drucken aufbereiten
+3.21. File-Inhalt bearbeiten
+compress Datei
+Datei komprimieren nach Datei.Z
+uncompress Datei.Z
+Datei.Z dekomprimieren
+expand Datei1 > Datei2
+Tabs aus der Datei1 entfernen und
+zur Datei2 schreiben
+unpack Datei.z
+Datei.z dekomprimieren
+sort Datei1 > Datei2
+die Zeilen der Datei1 in
+die Datei2 sortieren
+tr [A-Z] [a-z] < Datei1 > Datei2
+Klein durch Großbuchstaben ersetzen
+uniq Datei
+Datei ausgeben bis auf doppelte Zeilen
+3.22. TAR (tape archiver) verwaltet Dateiarchive
+Syntax:
+tar [-Acdrtux] [–delete] [-b n] [-BgGhijklmMoOpPPsSvwWz] [-C Verzeichnis] [-f Datei]
+[-F Datei] [-K Datei] [-L Länge] [-N Datum] [-T Datei] [-V Name] [-X Datei] [0-7] [lmh]
+25
+
+3. Befehle
+Optionen:
+-A
+Archiv an ein Archiv anhängen
+-c
+erzeugt ein neues Archiv
+-d
+vergleicht das Archiv mit dem Dateisystem
+--delete Datei löscht die Datei aus dem Archiv (nicht für Magnetbänder)
+-r
+hängt Dateien an das Archiv an (nicht für Magnetbänder)
+-t
+zeigt den Inhalt des Archivs
+-u
+ersetzt neue Dateien oder fügt sie ein (nicht für Magnetbänder)
+-x
+kopiert/entpackt Datei-en aus dem Archiv
+--atime-preserve
+Zugriffszeit nach der Archivierung zurück setzen
+-b n
+setzt die Blockgröße n*512Bytes (Voreinstellung n=20)
+-B
+unterdrückt den Abbruch beim Lesen unvollständiger Blöcke
+zum Lesen von 4.2BSD Pipes
+-C Verzeichnis wechselt in das Verzeichnis, um dort weitere Dateien zu
+archivieren
+-f Datei
+benutzt Datei oder das Gerät als Archiv
+-F Datei
+bei -M führt das Shellscript Datei aus, wenn das Medium voll ist
+-G
+erzeugt am Anfang des Bandarchives einen speziellen Eintrag für
+jedes archivierte Verzeichnis; spezielles GNU Format
+-g Datei
+erzeugt eine Datei mit einer Liste der archivierten
+Verzeichnisse als Zeitmarke der Archivierung; wenn die Datei
+bereits existiert, werden nur die Dateien archiviert, die nach
+dieser Zeitmarke erzeugt oder verändert wurden (spezielles GNU
+Format: 1.Zeile=Zeitmarke, 1.Feld=Nr. der Partition,
+2.Feld=Inode des Verzeichnisses, 3.Feld=Name des Verzeichisses)
+-h
+archiviert die referenzierten Dateien anstelle der Links
+-i
+ignoriert Blöcke mit Nullbytes im Archiv
+-j
+erzeugt ein mit bzip2 komprimiertes Archiv
+-k
+existierende Dateien werden beim Auspacken von Archiven nicht
+überschrieben
+-K Datei
+beginnt eine Aktion bei Datei im Archiv
+-l
+verhindert Archivierung von Dateien aus anderen Dateisystemen
+-L Länge
+wartet auf Medienwechsel nach Länge Bytes
+-m
+das Datum der letzten Änderung wird nicht mit archiviert
+-M
+das Archiv ist auf mehrere Medien verteilt (Multi-Volume)
+-N Datum
+archiviert nur Dateien, die neuer sind als Datum
+-o
+benutzt das alte V7 tar-Format anstelle des ANSI Formates
+-O
+schreibt die Dateien in die Standardausgabe
+-p
+erhält die Zugriffsrechte der Dateien
+-P
+archiviert mit absoluten Dateinamen
+-R
+gibt zu jeder Meldung die Blocknummer des Archivblocks aus, von
+dem die Meldung verursacht wurde
+-s
+zeigt an, dass die Liste von Dateien im Argument die gleiche
+Reihenfolge hat wie die Dateien im Archiv
+-T Datei
+holt die Namen der zu archivierenden Dateien aus Datei
+26
+
+3.23. Disketten/Festplatten
+-v
+meldet jede Aktion
+-V Name
+erzeugt ein Archiv mit dem (internen) Label Name
+-w
+erwartet interaktiv Bestätigung jeder Aktion
+-W
+verifiziert die geschriebenen Daten im Archiv
+-X Datei
+liest aus der Datei Namen oder reguläre Ausdrücke von bzw. für
+Dateien, die nicht archiviert werden soll
+-z
+erzeugt ein mit gzip komprimiertes Archiv
+-Z
+erzeugt ein mit compress komprimiertes Archiv
+-{0...7}{lmh}
+spezifiziert das Gerät und die Dichte des Speichermediums (für
+Diskettenarchive ohne Bedeutung); 0 ist der erste Streamer, 1
+1 der zweite und so weiter; die Dichte bestimmt den Bandtyp
+3.22.1. Packen
+tar rPvf name.tar /etc/
+Verzeichnis zum tar zufügen
+tar rPvf name.tar /etc/inittab* Datei-en zum tar zufügen
+tar cPvzf name.tgz name.tar
+tar -> tgz
+tar cPvMf /dev/fd0 name.tgz
+tgz auf Diskette sichern
+tar cvzf Datei.tgz Verzeichnis Packt Verzeichnis in Datei.tgz
+3.22.2. Entpacken
+tar xvfpM /dev/fd0
+tgz von Diskette holen
+tar xvfpz name.tgz
+tgz -> tar
+tar tvfp name.tar
+Inhalt des Tars anzeigen
+tar xvfp name.tar
+Tar entpacken
+3.23. Disketten/Festplatten
+dd if=/dev/zero of=/dev/sda bs=512 count=1
+überschreibt den MBR der ersten
+SCSI-Platte mit Nullen
+fdisk Gerätedatei
+Partitionstabelleneditor
+fdisk -l /dev/hda
+zeigt die Partitionstabelle der ersten
+Festplatte an
+fdisk -C 12416 -H 15 -S 63 /dev/hdb
+Partitionstabelle mit vorgegebenen
+C-Zylinder H-Köpfe S-Sektoren pro Spur
+bearbeiten
+cfdisk Gerätedatei
+Curses-Partitionstabelleneditor
+fdformat /dev/fd0u1440
+Diskette Low-Level-Formatieren
+mformat a:
+Dateisystem DOS-FAT anlegen
+mkdosfs -I /dev/sda
+Superfloppy-Format mit FAT16-Dateisystem
+27
+
+3. Befehle
+für z.B. USB-Sticks anlegen
+mkdosfs -n Name /dev/sda1
+FAT16-Dateisystem mit Name anlegen
+mkfs -t minix /dev/fd0u1440 1440
+Dateisystem minix anlegen
+mke2fs /dev/fd0u1440
+Dateisystem ext2 anlegen
+mkfs -V -t ext2 /dev/sda7
+Dateisystem ext2 anlegen
+fsck -V -t ext2 /dev/sda7
+Dateisystem Prüfung und Reparatur
+tune2fs Optionen Gerät
+Einstellungen zum ext2 Dateisystem
+mount Gerät Verzeichnis
+Gerät im Verzeichnis anmelden
+mount -t minix /dev/fd0 /mnt
+Diskette im minix-Format anmelden
+mount -t ext2 /dev/fd0 /mnt
+Diskette im ext2-Format anmelden
+mount -t msdos /dev/fd0 /mnt
+Diskette im msdos-Format anmelden
+mount -o loop disk.img /mnt
+Datei als Diskette anmelden
+umount Verzeichnis
+Verzeichnis abmelden
+umount /mnt
+Diskette abmelden
+3.23.1. Dateisystem verschlüsseln
+modprobe loop_fish2
+Modul für die Verschlüssellung laden
+dd if=/dev/urandom of=datei bs=1024 count=10000
+10MB Datei anlegen
+losetup -e twofish /dev/loop0 datei
+Datei anmelden (Passwort anlegen)
+mkfs -t ext2 /dev/loop0
+Dateisystem anlegen
+mount -t ext2 /dev/loop0 /mnt
+Dateisystem anmelden
+umount /mnt/
+Dateisystem abmelden
+losetup -d /dev/loop0
+Datei abmelden
+/dev/loop0 /datei /mnt ext2 twofish defaults
+/etc/cryptotab
+/datei /mnt ext2 loop,encryption=twofish,noauto,user
+/etc/fstab
+3.24. Zugriffsrechte/Eigentümer/Gruppe
+ls -l /dev/fd0
+brw-rw-rw-
+1 root
+disk
+2,
+0 Feb 16 16:30 /dev/fd0
+|
+|
+|
++----- Gerät
+|
+|
++------ Minor-Device-Nummer(Nebennummer)
+|
++----------- Major-Device-Nummer(Hauptnummer)
++-------------------- b-blockorientierte Geräte c-zeichenorientierte Geräte
+ls -laFi linux.txt
+1561 -rw-r----- 1 higi users 26419 Mar 13 19:19 linux.txt
+|
+|||||||||| | |
+|
+|
+|
+| |
++----- Datei/Verzeichnisname
+28
+
+3.24. Zugriffsrechte/Eigentümer/Gruppe
+|
+|||||||||| | |
+|
+|
+|
+| +----------- Uhrzeit
+|
+|||||||||| | |
+|
+|
+|
++-------------- Tag
+|
+|||||||||| | |
+|
+|
++------------------ Monat
+|
+|||||||||| | |
+|
++------------------------ Größe
+|
+|||||||||| | |
++----------- Gruppe
+|
+|||||||||| | +----------------- Eigentümer
+|
+|||||||||| +------------------- Links
+|
+|||||||||+---- alle Anderen
+x-ausführen oder t-text mit x-bit
+|
+|||||||||
+T-text ohne x-bit
+|
+||||||||+----- alle Anderen
+w-schreiben
+|
+|||||||+------ alle Anderen
+r-lesen
+|
+||||||+------- Gruppe
+x-ausführen oder s-Gruppenkennung mit x-bit
+|
+||||||
+S-Gruppenkennung ohne x-bit
+|
+|||||+-------- Gruppe
+w-schreiben
+|
+||||+--------- Gruppe
+r-lesen
+|
+|||+---------- Eigentümer
+x-ausführen oder s-Benutzerkennung mit x-bit
+|
+|||
+S-Benutzerkennung ohne x-bit
+|
+||+----------- Eigentümer
+w-schreiben
+|
+|+------------ Eigentümer
+r-lesen
+|
++------------- d-Verzeichnis l-Verknüpfung
++------- inode
+chmod werwiewas Datei
+Zugriffsrechte einer Datei/Verzeichnis ändern
+wer: u-Eigentümer
+g-Gruppe
+o-alle Anderen a-alle 3 Benutzergruppen
+wie: +-hinzufügen --wegnehmen
+=-nachfolgendes Muster setzen
+was: r-lesen w-schreiben x-ausführen
+( s-Benutzerkennung oder Gruppenkennung
+t-text )
+chmod zahl Datei
+Zugriffsrechte einer Datei/Verzeichnis ändern
+zahl-> rwx rwx rwx -> 4+2 4 0 -> 640
+421 421 421
+640 -> Eigentümer lesen schreiben
+Gruppe
+lesen
+chmod nzahl Datei
+Zugriffsrechte und Kennung einer Datei/
+Verzeichnis ändern
+bit 4 von n, mit Benutzerkennung/
+Benutzerrechten ausführen
+bit 2 von n, mit Gruppenkennung/
+Gruppenrechten ausführen
+bit 1 von n, mit text werden die Dateien vor
+dem Löschen durch fremde Benutzer geschützt,
+macht nur bei Verzeichnissen sinn
+chown NeuerEigentümer Datei
+Eigentümer der Datei ändern
+29
+
+3. Befehle
+chgrp NeueGruppe Datei
+Gruppenzugehörigkeit der Datei ändern
+passwd Benutzer
+Benutzerpasswort ändern
+useradd Optionen Benutzer
+Benutzer anlegen
+-u Benutzer-ID (-u 500)
+-g Primäre Gruppenzugehörigkeit (-g users)
+-G weitere Gruppenzugehörigkeit
+-d Homeverzeichnis (-d /home/user500)
+-s Shell (-s /bin/bash)
+-m legt das Homeverzeichnis an und kopiert die
+Dateien aus /etc/skel in das Homeverzeichnis
+-c Kommentar
+-p Passwort im Klartext!
+-e Auslaufdatum (-e 2002.12.24)
+-f Pufferzeit
+usermod Optionen Benutzer
+Benutzerdaten verändern
+userdel Benutzername
+Benutzer löschen
+userdel -r Benutzername
+Benutzer und Benutzerverzeichnis löschen
+vipw
+Benutzerdatenbank ändern
+su
+Shell mit root-Zugriffsrechten starten
+su -
+Shell im root-Homeverzeichnis
+mit root-Zugriffsrechten starten
+sux -
+Shell im root-Homeverzeichnis
+mit root-Zugriffsrechten starten und X-Variabeln
+su -l Benutzername
+Shell im Benutzer-Homeverzeichnis
+mit Benutzer-Rechten starten
+3.25. Prozessbefehle
+S=schlafend R=running(laufend) T=terminiert Z=Zombie
[Strg]+[z]
+im Vordergrund laufendes Programm anhalten
+[1]+ Stopped
+|
++----- schlafend
++------------- Jobnummer
+bg %JOB
+Job im Hintergrund fortsetzen
+fg %JOB
+Job im Vordergrund fortsetzen
+Programm &
+Programm im eigenem Prozess starten
+[1] 819
+|
++--------- Prozessnummer
++------------- Jobnummer
+ps
+Überblick über die aktuell laufenden Prozesse
+ps aux
+gibt in den meisten Fällen eine ausreichende Auskunft
+pstree
+zeigt den kompletten Prozessbaum an
+30
+
+3.26. Re-install Grub with Live CD
+jobs
+das Schellkommando gibt eine Liste der aktuellen Jobs aus
+top
+Programm, das die aktuellen Prozesse anzeigt
+htop
+Programm, das die aktuellen Prozesse anzeigt
+kill PID
+Prozess killen
+kill %JOB
+Job killen
+kill -1 PID
+Prozess initialisieren
+kill -1 %JOB
+Job initialisieren
+kill -9 PID
+Prozess killen
+kill -9 %JOB
+Job killen
+kill -15 PID
+Prozess beenden
+kill -15 %JOB
+Job beenden
+kill -HUP PID
+veranlasst die meisten Dämonen ihre Konfigurationsdateien
+erneut zu lesen
+3.26. Re-install Grub with Live CD
+3.26.1. Chroot
+sudo fdisk -l
+Patition für das chroot festellen
+sudo mount /dev/sdb3 /mnt/gentoo
+chroot z.B. /dev/sdb3 auf z.B. /mnt/gentoo mounten
+sudo mount -t proc none /mnt/gentoo/proc
+Mounten der /proc und /dev Dateisysteme
+sudo mount --rbind /dev /mnt/gentoo/dev
+sudo chroot /mnt/gentoo /bin/bash
+Betreten der neuen Umgebung
+env-update
+Umgebungsvariablen aktualisieren
+source /etc/profile
+Profil laden
+export PS1="(chroot) $PS1"
+Promt anpassen
+3.26.2. Grub
+sudo grub
+grub> find /boot/grub/stage1
+grub> root (hd0,1)
+grub> setup (hd0)
+grub> quit
+reboot
+3.27. Software installieren
+3.27.1. rpm-Format
+http://www.rpm.org/
+weiterführende Informationen
+http://www.rpmfind.net/
+Hilfe zu fehlenden rpms oder Merkmalen
+/var/lib/rpm/Packages
+rpm-Datenbank
+31
+
+3. Befehle
+/var/lib/rpm/packages.rpm
+-> /var/lib/rpm/Packages
+Geänderte Konfigurationsdateien überschreibt rpm beim Update nicht, sondern hebt
+sie als Datei.rpmsave auf. diff hilft die Unterschiede anzuzeigen.
+rpm -i Paketname.rpm
+Installiert mit Prüfung auf Abhängigkeiten
+rpm -i --nodeps Paketname.rpm
+Installiert ohne Prüfung auf Abhängigkeiten
+rpm -i --test Paketname.rpm
+Testet die Installation ohne Daten zu verändern
+rpm -iv Paketname.rpm
+Installiert mit Prüfung auf Abhängigkeiten
+und Rückmeldung
+rpm -ivh Paketname.rpm
+Installiert, prüft, meldet und
+zeigt den Vorgang an
+rpm -Uvh Paketname.rpm
+Update eines rpm-Binärpaketes
+rpm -Fvh Paketname.rpm
+Aktualisiert rpm-Binärpaket
+rpm -Fvh *.rpm
+Aktualisiert alle rpm-Binärpakete im .
+rpm -e Paket
+Deinstalliert mit Prüfung auf Abhängigkeiten
+rpm -qa
+zeigt die installierten rpm-Pakete an
+rpm -qa | grep -i Paket
+zeigt ob das Paket installiert ist
+rpm -qi Paket
+zeigt Informationen über das installierte Paket
+rpm -qip Paketname.rpm
+zeigt Informationen über das rpm-Binärpaket
+rpm -ql Paket
+zeigt die enthaltenen Dateien des installierten
+Paketes an
+rpm -qlp Paketname.rpm
+zeigt die enthaltenen Dateien des
+rpm-Binärpaketes
+rpm -qf /Pfad/Datei
+zeigt das Paket aus dem die Datei stammt
+rpm -q --requires Paket
+zeigt die geforderten Merkmale des installierten
+Paketes an
+rpm -qp --requires Paketname.rpm
+zeigt die geforderten Merkmale des
+rpm-Binärpaketes
+3.27.2. deb-Format
+dpkg -i Paketname.deb
+Installation eines deb-Binärpaketes
+dpkg -P Paket
+Deinstalliert mit Prüfung auf Abhängigkeiten
+dpkg -l
+zeigt die installierten deb-Pakete an
+dpkg -l "*Paket*"
+zeigt ob das Paket installiert ist
+dpkg -p Paket
+zeigt Informationen über das installierte Paket
+dpkg -I Paketname.deb
+zeigt Informationen über das deb-Binärpaket
+dpkg -L Paket
+zeigt die enthaltenen Dateien des installierten
+Paketes an
+dpkg -c Paketname.deb
+zeigt die enthaltenen Dateien des
+32
+
+3.27. Software installieren
+deb-Binärpaketes
+dpkg -S /Pfad/Datei
+zeigt das Paket aus dem die Datei stammt
+apt
+neue Alternative für apt-get
+apt-get autoclean
+Veraltete Pakete aus dem Cache löschen
+apt-get clean
+alle Pakete aus dem Cache löschen
+apt-get install Paket
+Installiert mit Prüfung auf Abhängigkeiten
+apt-get remove Paket
+Deinstalliert mit Prüfung auf Abhängigkeiten
+apt-get --purge remove Paket
+Deinstalliert vollständig
+apt-get autoremove
+Deinstalliert nicht benötigte Pakete
+apt-get dist-upgrade
+aktualisiert die gesamte Distribution
+apt-cache search Name
+durchsucht die gesamte Distribution
+apt-get update
+APT-Datenbank auf den aktuellen Stand bringen
+dpkg --get-selections > Paketliste
+Paketliste exportieren
+###sudo dpkg --set-selections < Paketliste
+Paketliste importieren geht nicht
+3.27.3. Portage Gentoo
+emerge --sync
+Aktualisieren des Portage-Tree mit rsync
+emerge --webrsync
+Aktualisieren mit dem Portage-Snapshots
+emerge --search Pragrammname
+Nach Software suchen
+emerge --searchdesc Name
+Suche nach Paketen im Zusammenhang mit dem Namen
+emerge Programmname
+Software installieren
+emerge -pv Programmname
+Installation von Programmen simulieren, USE-Flags anzeigen
+emerge --fetchonly Programmname Quellen herunterzuladen, noch nicht kompilieren
+emerge --unmerge Programmname
+Entfernung von Programm aus dem System
+emerge --update --ask world
+Aktualisierung des Systems
+emerge -f -u -a world
+Aktualisierung herunterzuladen, aber nicht
+kompilieren und installieren
+emerge --update --deep world
+Aktualisierung des gesamten Systems
+emerge --update --newuse world Neuerstellung des gesamten System
+emerge --depclean verweiste Abhängigkeiten entfernen
+revdep-rebuild
+reverse Abhängigkeiten neu erstellen
+etc-update
+Konfigurationsdateien zusammenzuführen
+equery belongs /Pfad/Datei
+zeigt das Paket aus dem die Datei stammt
+equery depends Programmname
+Abhängigkeiten anzeigen
+equery depgraph Programmname
+Abhängigkeiten als Baum anzeigen
+equery files Programmname
+Dateien auflisten, die zu einem Ebuild gehören
+33
+
+3. Befehle
+equery hasuse USE-Flag
+Pakete suchen, die ein spezifisches USE-Flag
+benutzen
+equery size Programmname
+Paketgröße anzeigen
+equery uses Programmname
+Gesetzte und nicht gesetzte USE-Flags
+equery which Programmname
+Anzeigen des Ebuildpfads
+euse -a
+Alle aktiven USE-Flags anschauen
+euse -a -l
+Aktive lokale USE-Flags anschauen
+euse -E USE-Flag
+Setzen von USE-Flags
+euse -D USE-Flag
+Deaktivieren von USE-Flags
+3.27.4. Quelltexte
+tar xvfz Source.tgz
+Quelltext entpacken
+./configure
+Makefile konfigurieren
+make
+Programm übersetzen,
+wenn Makefile vorhanden
+make install
+Programm installieren
+make uninstall
+Programm deinstallieren
+3.27.5. Hilfe
+ldd Programm
+zeigt die zu ladenen Bibliotheken des Programms
+strace -eopen Programm
+zeigt die geladenen Bibliotheken des Programms
+3.28. Im Netz
+#ifconfig -a
+-> ip link
+ip link
+alle aktiven Netzwerkschnittstellen ausgeben
+ifconfig | grep eth0 | cut -c 39-55
+Ethernet-Adresse von eth0 ausgeben
+ftp Rechner
+Programm zur Übertragung von Files
+via Internet starten
+host www.suse.de
+befragt den DNS-Server nach
+der IP-Nummer des Rechners
+host 192.168.9.10
+fragt nach dem Namen des Rechners
+nslookup www.debian.de
+befragt den DNS-Server nach
+der IP-Nummer des Rechners
+nslookup 192.168.11.12
+fragt nach dem Namen des Rechners
+ping Rechner
+sendet Pakete an Rechner mit Echo
+rlogin Rechner
+auf anderen Rechner anmelden
+34
+
+3.29. SSH
+scp Rechner:Pfad Rechner:Pfad
+Programm zur Übertragung von Files
+ssh Rechner
+auf anderen Rechner anmelden
+ssh Rechner -l root
+oder
+auf anderen Rechner als root anmelden
+ssh root@Rechner
+telnet Rechner
+Kommunikation ueber das TELNET-Protokoll
+nmap -sT -PT Rechner
+Scannt die Ports von Rechner
+nmap -sT -p 1-65535 -PT Rechner Scannt alle Ports von Rechner
+netcat ip port
+zeigt den angegebenen Port an
+3.29. SSH
+SSH(Secure shell) ist ein verschlüsseltes Netzwerkprotokoll auf TCP-Port 22, ermög-
+licht eine sichere authentifizierte und verschlüsselte Verbindung zwischen zwei Rech-
+nern über ein unsicheres Netzwerk.
+scp Rechner:Pfad Rechner:Pfad
+Programm zur Übertragung von Files
+ssh Rechner
+auf anderen Rechner anmelden
+ssh Rechner -l root
+oder
+auf anderen Rechner als root anmelden
+ssh root@Rechner
+3.29.1. Generierung eines DSA Schlüsselpaares
+ssh-keygen -t dsa -b 2048
+generiert DSA-Schlüsselpaar mit
+einer Bit-Tiefe von 2048
+~/.ssh/id_dsa
+- private-key mit <ENTER> bestätigen
+passphrase
+- Passwort für den private-key und der Anmeldung,
+für passwortlose SSH-Verbindungen weg lassen oder
+zu Beginn einer Sitzung mit ssh-add ~/.ssh/id_dsa
+abfragen lassen
+3.29.2. Public-Key auf dem Zielrechner hinzufügen
+cat ~/.ssh/id_dsa.pub | ssh zieluser@zielrechner \
+"mkdir -p .ssh; cat >> .ssh/authorized_keys"
+- public-key auf dem Zielrechner hinzufügen
+ssh zieluser@zielrechner "chmod 600 ~/.ssh/authorized_keys"
+- public-key auf dem Zielrechner schützen
+3.29.3. Private-Key auf dem Qellrechner
+~/.ssh/id_dsa
+- der Private-Key gehört auf dem Qellrechner in das
+~/.ssh/ Verzeichnis
+35
+
+3. Befehle
+3.29.4. Login nur mit SSH-Keys erlauben
+/etc/ssh/sshd_config
+- folgendes in die Datei sshd_config
+PubkeyAuthentication yes
+eingetragen
+UsePAM no
+PasswordAuthentication no
+rcsshd restart
+- SSH-Dämon neu starten
+3.30. GnuPG
+Mit GnuPG kann man Daten signieren und verschlüsseln. GnuPG unterstüzt symme-
+trische und asymmetrische Verschlüsselung.
+http://www.gnupg.org/
+http-Adresse für GnuPG
+http://www.gnupg.org/related_software/gpa/
+Grafische Benutzereingabe
+http://www.heise.de/security/dienste/pgp/
+Krypto-Kampagne, bei der
+ein Abgleich zwischen
+Person, Personalausweis
+und Schlüssel erfolgt
+http://kmail.kde.org/
+Mailprogramme mit GnuPG
+http://www.mutt.org/
+Unterstützung
+http://www.ximian.com/products/evolution/
+3.30.1. Erzeugen
+gpg --gen-key
+Schlüssel-Paar erzeugen
+gpg --gen-revoke 0xKeyID
+Widerruf Zertifikat erzeugen
+> gpg-rev-Will_no_longer_use_it
+> gpg-rev-Lost_private_key
+> gpg-rev-Forgot_password
+> gpg-rev-Key_compromised
+3.30.2. Hochladen
+gpg --keyserver wwwkeys.de.pgp.net --send-keys 0xKeyID
+Public Key auf den Keyserver hochladen
+gpg -a --export 0xKeyID | mail -s "add" pgp-public-keys@keys.de.pgp.net
+Public Key an den Keyserver verschicken
+Keyserver:
+Land
+eMail-Adresse
+HTTP-Adresse
+----
+-------------
+------------
+Deutschland
+pgp-public-keys@keys.de.pgp.net http://wwwkeys.de.pgp.net/
+36
+
+3.30. GnuPG
+Östereich
+pgp-public-keys@keys.at.pgp.net http://wwwkeys.at.pgp.net/
+Schweiz
+gp-public-keys@keys.ch.pgp.net http://wwwkeys.ch.pgp.net/
+3.30.3. Löschen
+gpg --recv-keys 0xKeyID
+Key vernichten
+gpg --import
+WiderrufZertifikat
+gpg --send-keys 0xKeyID
+gpg --delete-key 0xKeyID
+löscht einen öffentlichen Schlüssel
+cat gpg-rev-xxx | mail -s "add" pgp-public-keys@keys.de.pgp.net
+Widerruf Zertifikat an den Keyserver
+verschicken
+3.30.4. Holen
+gpg --keyserver wwwkeys.de.pgp.net --recv-keys 0xKeyID
+Public-Key vom Keyserver holen
+mail -s "get thomasb@trash.net" pgp-public-keys@keys.de.pgp.net
+Public-Key per E-Mail
+vom Keyserver holen
+gpg --import Key.txt
+Public-Key inportieren
+3.30.5. Signatur erzeugen und prüfen
+gpg -a --sign Datei
+einen Text signieren, erzeugt Datei.asc
+gpg --verify Datei.asc Datei
+eine Signatur prüfen
+gpg --clearsign Datei
+einen Text signieren,
+erzeugt neue Datei.asc
+gpg --verify Datei.asc
+eine Signatur prüfen
+3.30.6. Verschlüsseln
+gpg -a -r Empfänger0xKeyID -e Datei
+einen Text verschlüsseln,
+erzeugt Datei.asc
+3.30.7. Entschlüsseln
+gpg Datei.asc
+einen verschüsselten und signierten Text
+entschlüsseln und die Signatur prüfen,
+erzeugt Datei
+37
+
+3. Befehle
+3.30.8. Schlüsselverwaltung
+gpg --edit 0xKeyID
+Schlüsselverwaltung
+help - Anzeige aller Befehle
+quit - Das Menu beenden
+3.30.9. Anzeigen
+gpg --list-keys
+zeigt alle öffentlichen Schlüssel
+gpg --list-sigs
+zeigt alle Unterschriften
+gpg --fingerprint
+zeigt alle Fingerabdrücke
+3.30.10. Exportieren
+gpg -a --export 0xKeyID > Datei exportiert den Schlüssel 0xKeyID
+in Datei
+gpg -a --export > Datei
+exportiert alle Schlüssel in Datei
+3.31. X11 - Grafik
+/etc/XF86Config
+bis XFree86.3.3.x Konfigurationsdatei
+/etc/X11/XF86Config
+ab XFree86.4.x Konfigurationsdatei
+[Alt]+[F1] bis [F6]
+Umschalten zwischen Textkonsolen alle Shells
+[AltGr]+[Fn]
+Umschalten zwischen den Textkonsolen n+12
+[Alt]+[Pfeil links oder rechts] um durch die benutzten Konsolen zu stöbern
+[Strg]+[Alt]+[F1] bis
+Umschalten zu Textkonsolen
+alle Shells
+[Strg]+[Alt]+[F6]
+aus X11 heraus
+[Strg]+[Alt]+[F7]
+Umschalten zu X11 aus Textkonsole alle Shells
+bei Caldera 2.2 [Alt]+[F8]
+[Strg]+[Alt]+[<--]
+X-Server sofort beenden
+[Strg]+[Alt]+[+]
+verschiedene Auflösungen im laufenden
+[Strg]+[Alt]+[-]
+Betrieb wechseln
+xf86config
+Shell-Konfigurationsprogramm für X 3+4
+XF86Setup
+X-Konfigurationsprogramm bis XFree86.3.3.x
+sax
+X-SuSE-Konfigurationsprogramm bis XFree86.3.3.x
+sax2
+X-SuSE-Konfigurationsprogramm ab XFree86.4.x
+startx
+X-Server starten
+startx -- -bpp 16
+X-Server mit 16 Bit starten
+startx - -- :0 vt07
+X-Server auf F7 starten
+startx - -- :1 vt08
+2. X-Server auf F8 starten
+export WINDOWMANAGER=WM
+X-Umgebungsvariable auf WM(kde, gnome,
+38
+
+3.31. X11 - Grafik
+fvwm, olwm ...) ändern
+3.31.1. Bildschirmschoner
+xset s
+auf Standardeinstellungen zurücksetzen
+xset s 60
+nach 1 Minute aktivieren
+xset s blank
+schwarzen Bildschirm verwenden
+xset s noblank
+X-Logo statt schwarzen Bildschirm anzeigen
+xset s 60 3
+X-Logo alle 3 Sekunden neu platzieren
+xset s off
+Bildschirmschoner deaktivieren
+xset s on
+Bildschirmschoner einschalten
+xset s activate
+Bildschirmschoner sofort aktivieren
+xset q
+aktuelle Einstellungen anzeigen
+xsetroot -solid blue
+Hintergrund
+3.31.2. X11 ohne Maus
+[Umschalt]+[Strg]+[Num]
+Maussteuerung am Ziffernblock ein/ausschalten
+[4],[6],[8],[8]
+links, rechts, oben, unten
+[*],[-]
+auf linke, rechte Maustaste umschalten
+[5],[+],[0],[5]
+Maustaste, Doppelklick, gerückt halen, lösen
+39
+
+
+4. Verzeichnisse und Dateien
+4.1. Dateibaum
+/
+oberste Verzeichnis
+im Dateisystem (Root/Wurzel)
+.
+Verweis auf sich selbst
+..
+Verweis auf das übergeordnete Verzeichnis
+/bin/
+ausführbare Dateien der wichtigsten Befehle
+#/bin/init
+-> /sbin/init
+/boot/
+enthält die Dateien des LILO Bootloaders und
+kann Kernel-Images enthalten
+/boot/boot.b
+der LILO-Maschinencode
+/boot/map
+Informationen für LILO
+um den Betriebssystemkern zu starten
+/boot/message
+wird vor der LILO-Bootauswahl ausgegeben
+/boot/vmlinuz
+der Betriebssystemkern kann auch im / liegen
+/cdrom/
+dient zur CDROM-Einbindung
+/dev/
+Sammlung der Gerätedateien
+/dev/audio
+ähnlich wie /dev/dsp, Daten werden y-Law codiert
+/dev/cdrom
+Link auf den CD-Rom Treiber oft /dev/hdc
+/dev/console
+reale Console
+/dev/dsp
+Link auf den A/D-W. der Soundk. (-> /dev/dsp0)
+/dev/dsp0
+Analog/Digital-Wandler der Soundkarte
+/dev/fd0
+erstes Diskettenlaufwerk
+/dev/fd1
+zweites Diskettenlaufwerk
+/dev/full
+beim Schreiben wird der Fehler ENOSPC erzeugt
+/dev/hda
+erstes (E)IDE Gerät
+/dev/hda1 -> /dev/hda4
+primäre Partitionen
+/dev/hda5 -> /dev/hda?
+logische Partitionen
+/dev/hdb
+zweites (E)IDE Gerät
+/dev/hdc
+drittes (E)IDE Gerät
+/dev/hdd
+viertes (E)IDE Gerät
+/dev/initrd
+zusätzliche RAM-Disk mit Kernelmodulen und
+Bootsystem zur Initialisierung des Kernels
+/dev/kmem
+virtueller Arbeitsspeicher
+/dev/loop*
+ermöglicht eine Datei wie eine Diskette oder
+Festplattenpartition zu mounten
+/dev/lp0
+erste parallele Schnittstelle
+41
+
+4. Verzeichnisse und Dateien
+/dev/lp1
+zweite parallele Schnittstelle
+/dev/lp2
+dritte parallele Schnittstelle
+/dev/md*
+zusammengelegte Festplatten linear,Raid0 oder 1
+/dev/mem
+physikalischer Arbeitsspeicher
+/dev/midi00
+direkte Kommunikation mit einem MIDI-Gerät
+/dev/mixer
+Link auf den Mixer (-> /dev/mixer0)
+/dev/mixer0
+Mischpult der 1. Soundkarte
+/dev/modem
+Link auf den Modemtreiber (-> /dev/ttyS0)
+/dev/mouse
+Link auf den Maustreiber (-> /dev/psaux)
+/dev/music
+eine andere Art von Sequencer, speziell für die
+MIDI-Schnittstelle
+/dev/nst*
+SCSI-Streamer (No Rewind On Close)
+/dev/null
+Mülleimer des Systems
+/dev/port
+zum ansprechen einzelner IO Ports
+/dev/psaux
+PS/2-Maus
+/dev/pts/
+Unix98 PTY slaves
+/dev/ram
+Link auf die RAM-Disk (-> /dev/ram0)
+/dev/random
+zur Erzeugung kryptografisch hochwertiger
+Zufallszahlen
+/dev/rmt*
+QIC-02-Streamer
+/dev/rtc
+batteriegepufferte CMOS-Uhr
+/dev/sd*
+SCSI-Festplatten
+/dev/sequencer
+Synthesizer der Soundkarte oder ein am MIDI-Port
+angeschlossenes Gerät
+/dev/sndstat
+Informationen über den Status des Soundtreibers
+/dev/st*
+SCSI-Streamer
+/dev/tty
+aktive virtuelle Console
+/dev/tty1
+1. virtuelle Console
+/dev/tty2
+2. virtuelle Console
+/dev/ttyS0
+erste serielle Schnittstelle COM1
+/dev/ttyS1
+zeite serielle Schnittstelle COM2
+/dev/ttyS2
+dritte serielle Schnittstelle
+/dev/ttyS3
+vierte serielle Schnittstelle
+/dev/urandom
+zur Erzeugung von Zufallszahlen
+/dev/xd*
+8-Bit XT-Festplattencontroller
+/dev/zero
+zum Lesen beliebig vieler Nullbytes
+/etc/
+Konfigurationsdateien
+/etc/adjtime
+zur Korrektur der batteriegepufferten CMOS-Uhr
+(clock)
+/etc/bash.bashrc
+globale bash konfiguration
+#/etc/conf.modules
+-> /etc/modules.conf
+/etc/cryptotab
+/etc/fstab für Krypto-Filesystem
+/etc/csh.login
+Startdatei für die C-Shell
+/etc/diphosts
+eine Art /etc/passwd für SLIP Login
+/etc/DIR_COLORS
+festlegen der Farben für ls
+42
+
+4.1. Dateibaum
+/etc/exports
+Verzeichnisse und Rchnernamen, die diese
+Verzeichnisse per NFS mounten dürfen
+wird hier eingetragen
+/etc/fdprm
+Parameter von Diskettenformaten
+/etc/fstab
+um Benutzern das An- und Abmelden
+von Dateisystemen zu erlauben
+/etc/ftpaccess
+Woher ? Wann ? Was ? ...
+/etc/ftpusers
+... und Wer NICHT ?
+/etc/gateways
+Rechner des lokalen Netzes die Kontakt mit
+anderen Netzen haben
+/etc/gettydefs
+Beschreibung der seriellen Terminals
+/etc/group
+Benutzergruppen und ihre Mitglieder
+/etc/host
+auflösen von Netzwerknamen
+über die resolver-Bibliothek
+/etc/host.allow
+Rechner und Netze mit denen Verbindung aufgebaut
+werden darf
+/etc/host.conf
+eine der Konfig. den Domain Name Service
+/etc/host.deny
+Rechner und Netze die sich nicht mit diesem
+Rechner verbinden dürfen
+/etc/host.equiv
+Rechner die "gleichartig" behandelt werden
+/etc/HOSTNAME
+hier steht der Name des Rechners
+ohne den Domainnamen
+/etc/hosts
+ordnet IP-Adressen Hostnamen zu
+/etc/inetd.conf
+welche Services gestartet werden (inetd)
+/etc/init
+-> /sbin/init
+/etc/init/ Dateien für Upstart
+/etc/init.d/
+Dateien für die Init-Levels
+/etc/init.d/inetd
+startet den inetd, z.B. zum Anmelden
+vom Netzwerk
+/etc/init.d/network
+startet die Konfiguration
+der Netzwerk Hard- und Software
+/etc/init.d/portmap
+starte den Portmapper,
+um den RPC-Server verwenden zu können
+/etc/init.d/route
+setzt die statischen Routen im Netzwerk
+/etc/init.d/sendmail
+kontrolliert den sendmail-Prozess
+in Abhängigkeit
+/etc/init.d/rc0.d/ bis rc6.d/
+init 0 bis 6
+/etc/init.d/rcS.d/
+init S
+/etc/initscript
+init führt die Kommandos durch dieses Script
+ondemand und respawn aus
+#/etc/inittab
+Grunteinstellung der Init-Levels und Terminals
+(/sbin/init)
+/etc/isdn/
+ISDN-Konfigurationen
+/etc/issue
+Begrüßungstext beim Login (getty)
+/etc/ld.so.cache
+zur Shared Libraries identifizierung (ldconfig)
+43
+
+4. Verzeichnisse und Dateien
+/etc/ld.so.conf
+Verzeichnisse zu neuen Shared Libraries
+(ldconfig)
+/etc/lilo.conf
+Konfigurationsdatei des LILO
+/etc/login.defs
+Login Einstllungen (login)
+/etc/magic
+Magic Numbers zum Erkennen von Dateien (file)
+#/etc/man.config
+-> /etc/manpath.config
+/etc/manpath.config
+Verzeichnisse in den Manualpages gesucht werden
+/etc/minicom.users
+Benutzer die minicom benutzen dürfen
+/etc/modules.conf
+Modulinformationen ((für den Kerneld(Dämon)))
+/etc/motd
+Begrüßung nach dem Anmelden
+/etc/mtab
+Liste der aktuell zu Verfügung
+stehenden Dateisystemen
+/etc/mtools.conf
+(un)logische Laufwerksbuchstaben
+von MS-DOS für die M-Befehle
+/etc/named.boot
+für den named Dämon des DNS
+/etc/networks
+die Namen und IP der lokalen Netze
+/etc/nntpserver
+der Name und die IP des Newsrechners
+/etc/nologin
+macht jedes "normale" Einloggen unmöglich, nur
+die root kann sich anmelden, sonst wird der
+Inhalt von nologin ausgegeben (login)
+/etc/nscd.conf
+Konfiguration des Name Service Cache Dämon
+/etc/nsswitch.conf
+in welcher Reihenfolge bestimmte
+Informationen abgefragt werden
+/etc/opt/
+Rechner-spezifische Konfigurationsdateien
+der Pakete
+/etc/passwd
+Liste aller Benutzer mit Informationen
+/etc/powerstatus
+Zustand der Stromversorgung
+/etc/printcap
+Beschreibung des oder der Drucker des Systems
+(lpd)
+/etc/profile
+Globale Benutzerprofile
+/etc/prtocols
+Liste aller Internetprotokolle die vom Kernel
+unterstützt werden
+/etc/psdatabase
+enthält kernelabhängige Daten für procps
+/etc/rc*
+Systeminitialisierungsdateien (init)
+/etc/rc.config
+zentrale Konfigurationsdatei -> /etc/sysconfig/
+/etc/rc.config.d/
+weitere Dateien mit rc.config Variablen
+/etc/resolv.conf
+bestimmt ob und wo ein Nameserver erreicht
+werden kann
+/etc/rpc
+enthält die Zuordnung der durch den rpc-Service
+bereitgestellten Netzdienste zu Socketnummern
+/etc/securetty
+Terminals von den sich der Benutzer
+root anmelden darf (login)
+/etc/services
+ordnet Portnummern Servicenamen zu
+/etc/shadow
+hier sind die Shadow-Passwörter gespeichert
+/etc/shells
+Liste aller Shells
+44
+
+4.1. Dateibaum
+/etc/shutdown.allow
+Liste der Benutzer die zum Herunterfahren des
+Systems berechtigt sind
+/etc/skel/
+Dateien die beim Anlegen
+eines Benutzers in das ~ kopiert werden
+/etc/SuSE-release
+Angaben zur installierten SuSE Linux version
+/etc/sysconfig/
+zentrale Konfigurationsdateien -> /etc/rc.config
+/etc/syslogd.conf
+legt fest wohin Meldungen geschrieben werden
+(syslogd)
+/etc/termcap
+Beschreibungen für Terminaleigenschaften (getty)
+/etc/ttytype
+legt den voreingestellten Terminaltyp
+für die Terminals fest
+/etc/XF86Config
+bis XFree86.3.3.x Konfigurationsdatei
+/etc/X11/XF86Config
+ab XFree86.4.x Konfigurationsdatei
+/floppy/
+dient zur Floppy-Einbindung
+/home/
+Heimatverzeichnisse der Benutzer
+/home/~/.bash_history
+gespeicherte Eingaben der bash
+/home/~/.bashrc
+Konfiguration der bash
+/home/~/.ctwmrc
+Konfiguration des ctwm-Fenstermanagers
+/home/~/.exrc
+Konfiguration des vi, ex
+/home/~/.fvwmrc
+Konfiguration des fvwm-Fenstermanagers
+/home/~/.openwin-menu
+Konfiguration des olvwm und olwm-Fenstermanagers
+/home/~/.profile
+wird nach dem User-Anmelden in der bash
+ausgeführt
+/home/~/.rhosts
+erlaubt die r-Kommandos
+/home/~/.X.err
+Meldungen des X-Servers
+/home/~/.xinitrc
+diese Datei wird von .xsession ausgeführt
+/home/~/.xsession
+diese Datei wird nach dem Befehl
+startx ausgeführt
+/lib/
+gemeinsam genutzte Bibliotheken Shared Libraries
+/lib/modules/
+nachladbare Module
+/lost+found/
+verlorene Daten, ist in jeder Wurzel
+des EXT2-Dateisystems
+/media/cdrom/
+dient zur CDROM-Einbindung, ist oft im /
+/media/floppy/
+dient zur Floppy-Einbindung, ist oft im /
+/mnt/
+für temporär einzuhängende Dateisysteme
+/mnt/cdrom/
+dient zur CDROM-Einbindung, ist oft im /
+/mnt/floppy/
+dient zur Floppy-Einbindung, ist oft im /
+/opt/
+kommerzielle Systemerweiterungen
+/opt/kde/
+grafische Benutzeroberfläche KDE
+/proc/
+virtuelles Filesystem über laufende Prozesse
+/proc/cpuinfo
+Informationen zur CPU
+/proc/devices
+Liste der wichtigsten Gerätetreiber
+/proc/dma
+Liste der verwendeten DMA-Kanäle
+/proc/filesystems
+Liste der bekannten Dateisystemtypen
+/proc/interrupts
+Liste der Interrupts
+45
+
+4. Verzeichnisse und Dateien
+/proc/ioports
+bekannte und definierte EA-Schnittstellen
+/proc/kcore
+Gerätedatei für den Zugang
+zum physikalischen Hauptspeicher
+/proc/kmsg
+hier können Systemfehlermeldungen
+ausgelesen werden
+/proc/ksyms
+Liste der Kernel-Symbole und
+ihrer Speicheradressen
+/proc/loadavg
+durchschnittliche Systembelastung
+in den letzten 1, 5 und 10 Min.
+/proc/meminfo
+Beschreibung der aktuellen Speicherauslastung
+/proc/modules
+Liste der geladenen Module und
+Anzahl der aktuellen Nutzungen
+/proc/mounts
+Liste der eingehängten Dateisysteme
+/proc/net/
+Informationen zur Netzwerkauslastung
+/proc/pci
+Liste der gefundenen Geräte am PCI-Bus
+/proc/scsi/
+Informationen über SCSI-Geräte
+/proc/stat
+Liste allgemeiner Statistiken zum System
+/proc/uptime
+Sekunden seit dem Systemstart und
+der Leerlaufzeit
+/proc/version
+aktuelle Version des Linux-Kernels
+/root/
+Heimatverzeichnis des Systemverwalters root
+/sbin/
+Administrationskommandos
+/sbin/init
+Nach dem Kernelstart wird versucht das
+Programm init zu starten
+#/sbin/init.d/
+-> /etc/init.d/
+/tmp/
+temporäre Dateien
+/usr/
+ausführbare Dateien, Libraries, X Window u.s.w
+/usr/bin/
+allgemein verfügbare Programmdateien
+#/usr/doc/
+-> /usr/share/doc/
+/usr/games/
+Spiele :-)
+/usr/include/
+Headerdateien für den C-Compiler
+/usr/include/g++/
+Headerdateien für den C++-Compiler
+/usr/info/
+Infosystem fur GNU-Kommandos
+/usr/lib/
+Programmbibliotheken
+/usr/lib/terminfo/
+Verzeichnis mit Beschreibungen
+für Terminaleigenschaften
+/usr/local/
+Ablage von Dateien und Kommandos die nicht
+zur Distribution gehören
+/usr/man/
+Linux Handbuch
+/usr/sbin/
+Superuser Programmdateien
+/usr/share/doc/
+Dokumentationen
+/usr/share/doc/packages/
+Dokumentation der Programme
+/usr/src/
+Quellcode für den Kernel und weitere Programme
+/usr/src/linux/
+Kernel-Source
+/usr/src/linux/arch/
+Hardwarearchitektur-abhängige
+46
+
+4.1. Dateibaum
+Bestandteile des Kerns
+/usr/src/linux/arch/alpha/
+DEC-Alpha-Prozessoren
+/usr/src/linux/arch/i386/
+386-Prozessoren
+/usr/src/linux/arch/m68k/
+Motorola 68k-Prozessoren
+/usr/src/linux/arch/mips/
+MIPS-Prozessoren R3000, R4000 bis R10000
+/usr/src/linux/arch/ppc/
+Power-PC-Prozessor (ursprünglich IBM)
+/usr/src/linux/arch/sparc/
+SPARC-Prozessoren der Firma SUN
+/usr/src/linux/Documentation/devices.txt
+offizielle Liste der
+registrierten Devices mit ihren Gerätenummern
+/usr/src/linux/drivers/
+Zeichen-, Block-orientierte,
+Netz-,Soundkarten-Gerätetreiber
+/usr/src/linux/drivers/block/
+Treiber für blockorientierte Ein-/Ausgabegeräte
+wie Festplatten
+/usr/src/linux/drivers/cdrom/
+Treiber für CD-ROM Laufwerke
+außer Atapi/IDE und SCSI
+/usr/src/linux/drivers/char/
+Zeichen. Treiber serielle Schnittstellen,
+Bildschirm, Tastatur usw.
+/usr/src/linux/drivers/net/
+Treiber für die Netzwerkkarten
+/usr/src/linux/drivers/pci/
+Spezielle Treiber für PCI-Bus-Bausteine
+/usr/src/linux/drivers/sound/
+Soundkartentreiber
+/usr/src/linux/drivers/scsi/
+SCSI-Treiber
+/usr/src/linux/fs/
+Dateisysteme
+/usr/src/linux/ipc/
+InterProzessKommunikation,
+z.B. Shared Memory, Semaphoren
+/usr/src/linux/include/
+Header-Dateien mit Struktur- und
+Konstantendefinitionen
+/usr/src/linux/init/
+Initialisierungscode beim Starten des Systems
+/usr/src/linux/kernel/
+zentrale Aufgaben, z.B. Prozessverwaltung und
+Schedulimg usw.
+/usr/src/linux/mm/
+Speicherverwaltung
+/usr/src/linux/modules/
+nachladbarer Teil des Kerns
+/usr/src/linux/net/
+Implementierung der Protokolltreiber
+für TCP/IP,SPX/IPX usw.
+/usr/src/linux/README
+Installationsbeschreibung für den Kernel
+/usr/X11R6/
+für Daten zum X-Window-System
+/usr/X11R6/bin/
+Programmdateien die mit X-Window-System arbeiten
+/usr/X11R6/lib/X11/
+Fenstermanager
+/usr/X11R6/lib/X11/app-defaults/
+voreingestellte Konfigurationen der
+Anwendungen
+/var/
+sich schnell oder häufig ändernde Daten
+/var/adm/inst-log/
+Protokolldateien zur installation
+/var/lib/rpm/Packages
+rpm-Datenbank
+/var/lib/rpm/packages.rpm
+-> /var/lib/rpm/Packages
+/var/log/
+Protokolldateien
+/var/log/boot.msg
+Kernelmeldungen vom letzten Start
+47
+
+4. Verzeichnisse und Dateien
+/var/log/messages
+Datei in der die Kernel Meldungen
+gespeichert werden
+/var/log/syslog
+zeit an welches Modul fehlt
+/var/tmp/
+für große temporäre Dateien
+/vmlinuz
+der Defaultkernel kann auch in /boot/ liegen
+4.2. /etc/fstab
+#Device
+Mountpunkt Typ
+Optionen
+Dump Check
+/dev/hdd1 /
+reiserfs defaults
+1
+1
+/dev/hda1 /boot
+ext2
+defaults
+1
+2
+/dev/sda1 swap
+swap
+defaults
+0
+0
+none
+/proc
+proc
+defaults
+0
+0
+/dev/hda3 /temp
+vfat
+defaults,umask=7000,uid=500,gid=100 0
+0
+/dev/hda2 /windows
+vfat
+defaults
+0
+0
+/dev/hdc /cdrom
+auto
+ro,noauto,user,exec
+0
+0
+/dev/fd0 /floppy
+auto
+noauto,user
+0
+0
+/dev/hda3 /save
+reiserfs loop,encryption=twofish,noauto,users 0
+0
+server:/ /server
+nfs
+rw,noauto,user,exec
+0
+0
+4.3. /dev/
+ls -l /dev/fd0
+brw-rw-rw- 1 root disk
+2,
+0 Feb 16 16:30 /dev/fd0
+|
+|
+|
++----- Gerät
+|
+|
++------ Minor-Device-Nummer(Nebennummer)
+|
++----------- Major-Device-Nummer(Hauptnummer)
++----------------- b-blockorientierte Geräte c-zeichenorientierte Geräte
+Die Verbindung zum Kernel wird über Slots oder Kanäle hergestellt, die nummeriert
+sind und hinter denen sich die Treiber verbergen. Die Nummer des Gerätetreibers wird
+als Haupgerätenummer(Major Device Number) bezeichnet. Ein Treiber kann mehrere
+Geräte des gleichen Typs verwalten. Um die einzelnen Geräte zu unterscheiden, wird
+dem Treiber eine zweite Zahl, die Untergerätenummer (Minor Device Number), über-
+geben. Diese beiden Zahlen charakterisieren jede Datei im /dev Verzeichnis. Zusätzlich
+werden noch zwei Arten von Geräten unterschieden :
+Die blockorientierten Geräte mit direktem Zugriff, wie z.B. Disketten oder Festplatten,
+und die zeichenorientierten squentiellen Geräte, wie Drucker, Terminal oder Maus.
+Damit hat jede Gerätedatei drei “Koordinaten“, mit der sie vom Kernel, unabhängig
+von ihrem Namen, eindeutig identifiziert werden kann. Die offizielle Liste der regi-
+strierten Devices mit ihren Gerätenummern ist bei den Kernelsourcen in der Datei
+/usr/src/linux/Documentation/devices.txt zu finden.
+48
+
+4.4. Dateisystemtypen unter Linux
+4.4. Dateisystemtypen unter Linux
+affs
+Ein auf dem Amiga verwendetes Dateisystem (engl. Amiga Fast Filesystem).
+ext2
+Das Standard-Dateisystem unter Linux (engl. Second extended Filesystem).
+ext3
+Journaling Filesystem
+hpfs
+Standard-Dateisystem von IBM OS/2 (engl. High Performance Filesystem).
+Dieses wird von Linux nur mit Lesezugriff unterstüzt.
+iso9660 Standard-Dateisystem auf CD-ROMs.
+minix
+Dieses Dateisystem hat seinen Ursprung in akademischen Lehrprojekten
+über Betriebssysteme und war das erste Dateisystem, welches für Linux
+verwendet wurde. Heute wird es unter Linux vornehmlich als Dateisystem
+für Disketten verwendet.
+msdos
+Ursprünglich von DOS verwendetes Dateisystem, welches aber bis heute von
+diversen Betriebssystemen genutzt wird.
+ncpfs
+Dateisystem für das Novell-Volumes.
+nfs
+Hier sind die Daten auf der Festplatte eines anderen Rechners und
+werden über das Netzwerk zugänglich gemacht (engl. Network Filesystem).
+proc
+Prozess-Dateisystem (virtuell).
+reiserfs
+Das ReiserFS ist ein hochperformantes "’Journaling Filesystem"’;
+seit SuSE Linux 6.4 auf x86-Architekturen verfügbar.
+smbfs
+SMB (engl. Server Message Block) ist ein Protokoll, das von WfW,
+Windoofs NT und LAN Manager verwendet wird, um Dateien über ein Netzwerk
+verfügbar zu machen.
+sysv
+Von SCO-Unix, Xenix und Coherent (kommerzielle UNIX-Systeme für PCs)
+verwendetes Dateisystem.
+ufs
+Von BSD, SunOS und NeXTstep verwendetes Dateisystem; dies Dateisystem
+wird von Linux nur mit Lesezugriff unterstützt.
+umsdos Setzt auf einem gewöhnlichen fat-Dateisystem auf (engl. UNIX on MSDOS)
+und erreicht durch Anlegen spezieller Dateien die notwendige UNIX-
+Funktionalität (Rechte, Links, lange Dateinamen); es ist jedoch sehr
+langsamm.
+vfat
+Erweiterung des fat-Dateisystems hinsichtlich der Länge der Dateinamen
+(engl. Virtual FAT).
+ntfs
+Windows NT-Dateisystem.
+4.5. /etc/group
+#Gruppenname:Paßwort:Gruppennummer:Mitgliederliste
+root:x:0:root
+bin:x:1:root,bin,daemon
+daemon:x:2:
+sys:x:3:
+tty:x:5:
+disk:x:6:higi
+49
+
+4. Verzeichnisse und Dateien
+lp:x:7:
+shadow:x:15:root,gdm
+audio:x:17:root,higi
+public:x:32:
+video:x:33:higi
+game:x:40:higi
+modem:x:43:
+users:x:100:
+nogroup:x:65534:root
+4.6. /etc/hosts
+# IP-Adresse #Aliasnamen
+127.0.0.1 localhost
+127.0.1.1 latex
+::1
+localhost ip6-localhost ip6-loopback
+ff02::1
+ip6-allnodes
+ff02::2
+ip6-allrouters
+192.168.0.10 rechner rechner.loc www.rechner.loc
+4.7. /etc/inittab
+Nach dem Kernelstart wird versucht das Programm init zu starten. Dabei werden
+nacheinander die Verzeichnisse /etc/, /bin/ und /sbin/ nach init abgesucht. Kann init
+/dev/console nicht öffnen wird im Einzelbenutzerbetrieb (Single User Mode) gestartet.
+Beim LILO-Bootpromt kann init=/bin/sh angegeben werden um die Shell anstelle
+von init zu laden. Das Programm init liest die Datei /etc/inittab und wird durch
+die Datei das System konfigurieren. /etc/inittab wird vom Kommando init Zeile für
+Zeile abgearbeitet. In jeder Zeile seht jeweils eine Anweisung. Jede Zeile wird durch
+Doppelpunkte unterteilt. Der Aufbau sieht wie folgt aus:
+Terminal:Termcapeintrag:Gettykommando
+Simpleinit von Peter Orbaek mit
+Erweiterung von Werner Almesberger
+4.7.1. Terminal
+Bezeichnet das Terminal (tty1, tty2, ttyS0 ...)
+4.7.2. Termcapeintrag
+Wird in die TERM Variable der Shell geschrieben und sollte mit einem Eintrag in der
+Datei /etc/termcap übereinstimmen.
+50
+
+4.7. /etc/inittab
+4.7.3. Gettykommando
+Pfad und Optionen zum Getty-Kommando
+# Beispiel einer inittab für simpleinit # Format: Terminal:Termcapeintrag:Gettykommando
+tty1:linux:/sbin/getty 9600 tty1 tty2:console:/sbin/getty 9600 tty2 tty5:con100x40:/sbin/getty
+9600 tty5 ttyS1:vt102:/sbin/getty 9600 ttyS1
+Kürzel:Arbeitsstufen:Modus:Kommando
+Sysvinit von Mike Jagdis und
+Miquel van Smoorenburg
+4.7.4. Kürzel
+Jede Aktion muß mit einem eindeutigen (maximal vierstelligen, a.out oder Librari-
+es<5.2.18 maximal zweistelligen) Kürzel versehen werden, das bei Einträgen in Logfiles
+und bei Fehlermeldungen ausgegeben wird.
+4.7.5. Arbeitsstufen
+Es werden hier die Arbeitsstufen (Runlevel) eingetragen. Zulässige Arbeitsstufen sind
+0 - 9 und s. Es können auch die Pseudoarbeitsstufen(ondemand) a, b, c und q für
+einmalig auszuführende Kommandos verwendet werden. Es wird ohne Groß und Klein-
+schreibung bezeichnet. In einer Zeile können bis zu 11 Runlevel zugeordnet werden.
+Wenn das Feld für den Runlevel leer ist, wird die Aktion bei jedem Moduswechsel
+ausgeführt.
0
+Systemhalt
+S
+Einzelbenutzerbetrieb (Single User Mode)
+1
+Einzelbenutzerbetrieb (Single User Mode)
+2
+Lokaler Mehrbenutzerbetrieb ohne entferntes Netzwerk
+(Local multiuser without remote network)
+3
+Voller Mehrbenutzerbetrieb mit Netzwerk
+(Full multiuser with network)
+4
+Frei (Not used)
+5
+Voller Mehrbenutzerbetrieb mit Netzwerk und KDM, GDM oder XDM
+(Full multiuser with network and xdm)
+6
+Systemneustart (System reboot)
+Q
+Quit zum Neueinlesen der inittab
+4.7.6. Modus
+Gibt an wie das Kommando im letzten Feld ausgeführt werden soll.
initdefault
+Bestimmt den Runlevel beim Systemstart.
+sysinit
+Wird einmal nach dem Kernelstart ausgeführt.
+bootwait
+Wird einmal ausgefürt, wenn in einem Mehrbenutzerbetrieb
+gestartet wird und wartet bis das Kommando beendet ist.
+boot
+Wie bootwait nur das nicht gewartet wird.
+51
+
+4. Verzeichnisse und Dateien
+respawn
+Überwacht das laufende Kommando und startet es neu, wenn es
+beendet wurde. Wird es in zwei Minuten 10 mal neu gestartet,
+setzt init das Kommando für fünf Minuten aus.
+ondemand
+Wie respawn, um mit Buchstaben gekennzeichnete Level einzelne
+Kommandos mit telinit zu starten.
+wait
+Wartet bis das Kommando beendet ist.
+once
+Wird einmal ausgefürt, es wird nicht gewartet.
+off
+Wenn das Kommando läuft, wird es angehalten.
+ctrlaltdel
+Kommando (Signal SIGINT, [Strg]+[Alt]+[Entf]) z.B. Rebooten des
+Systems.
+kbrequest
+Kommando wird ausgeführt, wenn das Signal SIGWINCH
+[Alt]+[Pfeil hoch] von der Tastatur kommt.
+powerwait
+Wenn init sich in einem passenden Runlevel befindet, das
+Signal SIGPWR erhält oder über Pipeline /dev/initctrl den
+entsprechenden Befehl erhält und wartet auf Beendigung des
+Kommandows. Das Signal kann mit Hilfe eines Dämons von einer USV
+erzeugt werden.
+powerfail
+Wie powerwait wartet jedoch nicht.
+powerfailnow
+Wie powerwait es muß die Datei /etc/powerstatus zusätzlich das
+Wort Low enthalten. So kann das APM eines Notebooks mit Hilfe
+eines Dämons das System herrunterfahren.
+powerokwait
+Wie powerwait es muß die Datei /etc/powerstatus zusätzlich das
+Wort OK enthalten. Auf diese weise kann das System in den
+normalen Zustand gebracht werden, nachdem die Stromversorgung
+wieder hergestellt ist.
+4.7.7. Kommando
+Pfad und Optionen zum Kommando, wird durch die Bourne-Again-Shell abgearbeitet.
+Bei jedem Kommandostart wird versucht die Datei /etc/initscript abzuarbeiten, die
+dann das Kommando startet.
+# Beispiel einer inittab für sysvinit
+# Format: Kürzel:Arbeitsstufen:Modus:Kommando
+# Bestimmt den Runlevel beim Systemstart
+id:5:initdefault:
+# Erstes Script, wenn nicht im Notfallsystem (-b) gestartet wird.
+si::bootwait:/etc/init.d/boot
+# /etc/init.d/rc übernimmt die Runlevel Behandlung
+l0:0:wait:/etc/init.d/rc 0
+l1:1:wait:/etc/init.d/rc 1
+l2:2:wait:/etc/init.d/rc 2
+52
+
+4.8. /etc/passwd
+l3:3:wait:/etc/init.d/rc 3
+#l4:4:wait:/etc/init.d/rc 4
+l5:5:wait:/etc/init.d/rc 5
+l6:6:wait:/etc/init.d/rc 6
+# Bestimmt den Einzelbenutzerbetrieb (Single User Mode)
+ls:S:wait:/etc/init.d/rc S
+~~:S:respawn:/sbin/sulogin
+# Aktion bei Signal SIGINT, [Strg]+[Alt]+[Entf]
+ca::ctrlaltdel:/sbin/shutdown -r -t 4 now
+# Aktion bei Signal SIGWINCH [Alt]+[Pfeil hoch]
+kb::kbrequest:/bin/echo "’Keyboard Request -- edit /etc/inittab to let this work."’
+# Aktion bei Stormausfall und Wiederherstellung
+pf::powerwait:/etc/init.d/powerfail start
+pn::powerfailnow:/etc/init.d/powerfail now
+#pn::powerfail:/etc/init.d/powerfail now
+po::powerokwait:/etc/init.d/powerfail stop
+# getty-Programme für die normalen Runlevels
+1:2345:respawn:/sbin/mingetty --noclear tty1
+2:2345:respawn:/sbin/mingetty tty2
+3:2345:respawn:/sbin/mingetty tty3
+4:2345:respawn:/sbin/mingetty tty4
+5:2345:respawn:/sbin/mingetty tty5
+6:2345:respawn:/sbin/mingetty tty6
+#S0:12345:respawn:/sbin/agetty -L 9600 ttyS0 vt102
+4.8. /etc/passwd
+#Benutzername:Paßwort:Benutzernummer:Gruppennummer:GCOS:Heimat:Shell
+root:x:0:0:root:/root:/bin/bash
+bin:x:1:1:bin:/bin:/bin/bash
+daemon:x:2:2:daemon:/sbin:/bin/bash
+lp:x:4:7:lp daemon:/var/spool/lpd:/bin/bash
+games:x:12:100::/var/games:/bin/bash
+man:x:13:2::/var/cache/man:/bin/bash
+ftp:x:40:2:ftp account:/usr/local/ftp:/bin/bash
+nobody:x:65534:65534:nobody:/var/lib/nobody:/bin/bash
+higi:x:500:100:Higi:/home/higi:/bin/bash
+gast:x:501:100:Gast:/home/gast:/bin/bash
+53
+
+
+5. Die Shells
+5.1. Die Shells
+Eine Shell ist ein Kommando-Interpreter, ein Programm das durch ein anderes ersetzt
+werden kann. Es zerlegt die Kommandozeile, führt Sonderzeichen durch und reicht das
+Kommando an UNIX weiter. Ohne Shell gibt es keinen Zugang zum Betriebssystem.
+/bin/sh
+Bourne-Shell
+zum programmieren
+/bin/ksh
+Korn-Shell
+Mischung aus C-und Bourne-Shell
+/bin/csh
+C-Shell
+zum interaktiven Arbeiten
+/bin/bash
+Bourne-Again-Shell
+/bin/tcsh
+TC-Shell
+export
+Setzt Umgebungsvariablen, Variablen exportieren
+locate
+Findet Dateien anhand einer Datenbank
+setenv
+Setzt Umgebungsvariablen unter Nicht-Bash Shells, z.B. csh
+unset
+Variable löschen in ksh, bsh und bash
+unsetenv
+Variable löschen in csh
+5.2. Die Start-Scripts
+~/.bashrc
+bash
+5.3. Tastenkombinationen
+[Strg]+[l]
+Bildschirm löschen
+bash und csh
+[Strg]+[a] oder [Pos 1]
+Zeilenanfang
+bash und csh
+[Strg]+[e] oder [Ende]
+Zeilenende
+bash und csh
+[Alt]+[f]
+Wort vorwäts
+bash und csh
+[Alt]+[b]
+Wort rückwärts
+bash und csh
+[Strg]+[c]
+Befehlseingabe verwerfen
+alle Shells
+[Strg]+[c]
+Programm abbrechen
+[Pfeil rechts] und [Pfeil links]
+Cursor bewegen
+bash und csh
+[Pfeil hoch] und [Pfeil runter]
+History-Scrolling
+bash und csh
+[Strg]+[r]
+in der History suchen
+bash
+[Tab]
+Komplettierung
+bash und csh
+[Strg]+[d]
+beendet die Shell
+alle Shells
+55
+
+5. Die Shells
+[Strg]+[d] oder [Entf]
+ein Zeichen löschen
+[Strg]+[h] oder [Backspace]
+Zeichen rückwärts löschen
+[Strg]+[k]
+Zeile ab Cursor löschen
+[Alt Gr]+[Umschalt]
+zwei folgende Zeichen vereinen
+ae -> AE, co -> \texteuro
+[Strg]+[z]
+im Vordergrund laufendes Programm anhalten
+Fortsetzung mit fg
+[Umschalt]+[Bild hoch] und
+vorherige Textausgabe
+alle Shells
+[Umschalt]+[Bild runter]
+zurückholen
+[Alt]+[F1] bis [F6]
+Umschalten zwischen Textkonsolen alle Shells
+[AltGr]+[Fn]
+Umschalten zwischen den Textkonsolen n+12
+[Alt]+[Pfeil links oder rechts]
+um durch die benutzten Konsolen zu stöbern
+[Strg]+[Alt]+[F1] bis
+Umschalten zu Textkonsolen
+alle Shells
+[Strg]+[Alt]+[F6]
+aus X11 heraus
+[Strg]+[Alt]+[F7]
+Umschalten zu X11 aus Textkonsole alle Shells
+bei Caldera 2.2 [Alt]+[F8]
+[Strg]+[Alt]+[<--]
+X-Server sofort beenden
+[Strg]+[Alt]+[+]
+verschiedene Auflösungen im laufenden Betrieb
+[Strg]+[Alt]+[-]
+wechseln
+[Strg]+[Alt]+[Entf]
+Signal SIGINT z.B. reboot
+Shell
+5.4. Die C-Shell
+~
+Home-Verzeichnis
+~user
+Home-Verzeichnis des Benutzers user
+*
+beliebige Zeichen-kette
+?
+genau Zeichen
+{a,b,c}
+a oder b oder c
+[aceg]
+genau eines der Zeichen
+[a-z]
+a bis z
+[!adfh]
+kein a, d, f, h
+´´
+maskiert alles
+\
+maskiert das nachfolgende Zeichen
+""
+maskiert $ ‘ \ nicht
+> Datei
+Ausgabe in die Datei, stdout
+>& Datei
+Ausgabe in die Datei, stdout und stderr
+>>Datei
+Unlenkung in die Datei, stdout umgelenkt
+< Datei
+von der Datei lesen, anstatt von stdin zu lesen
+set noclobber
+Überschreiben einer vorhandenen Datei verhindern
+|
+Ausgabekanal eines Kommandos direkt in den Eingabekanal eines
+anderen Kommandos leiten
+#!Programm
+so beginnt eine Datei die vom Progamm ausgeführt wird
+$HISTSIZE
+History-Größe
+$LS_OPTIONS
+ls Funktionen
+56
+
+5.5. Bash rechnen
+$PATH
+Pfad zu den Programmdateien
+Programm &
+Programm im eigenem Prozess starten
+5.5. Bash rechnen
+echo $((1+1))
+gibt 1 aus
+a=4
+b=5
+echo $((a*b))
+gibt 20 aus
+echo $((a-b))
+gibt -1 aus
+57
+
+
+Teil II.
+Programme
+59
+
+
+6. Der Texteditor vi/vim
+Der vi-Editor ist auf UNIX/Linux(neben Emacs) der meistverwendete Texteditor. Die
+Bedienung erfolgt über den Befehls- und Kommando-modus. Da es nicht gerade ein-
+fach ist sich diese Optionen zu merken, folgt eine Auflistung der meist gebrauchten
+Optionen.
+6.1. Aufruf
+vi
+Editor vi aufrufen
+vi Datei
+Editor vi aufrufen und Datei öffnen
+vi -r
+swap-Dateien anzeigen
+vi -r Datei
+Datei nach einem Stromausfall oder Absturz wieder herstellen
+vi -R Datei
+Datei schreibgeschützt öffnen
+6.2. Eingabemodus (input mode)
+Um in den Eingabemodus zu gelangen muss A, C, I, O, R, S, a, i, o oder s eingegeben
+werden. i ist eine gute Wahl. Mit <Esc> wird der Eingabemodus verlassen.
+6.3. Befehlsmodus (visual mode)
+6.3.1. Eingeben:
+(n)i eingeben
+fügt den eingeben Text (n mal) vor dem Cursor ein
+(n)a eingeben
+fügt den eingeben Text (n mal) hinter dem Cursor ein
+(n)I eingeben
+fügt den eingeben Text (n mal) am Zeilenanfang ein
+(n)A eingeben
+fügt den eingeben Text (n mal) am Zeilenende ein
+(n)o eingeben
+fügt unter der aktuellen Zeile (n neue Zeilen)
+mit den eingeben Text ein
+(n)O eingeben
+fügt über der aktuellen Zeile (n neue Zeilen)
+mit den eingeben Text ein
+6.3.2. Überschreiben:
+(n)R eingeben
+überschreibt den Text mit eingeben
+<Einf>
+wechselt zwischen INSERT und REPLACE
+(n)r Taste
+überschreibt den Text mit (n mal) Taste
+61
+
+6. Der Texteditor vi/vim
+von dem Cursor nach rechts
+6.3.3. Bewegen:
+(n)h
+Cursor um (n) Zeichen nach links bewegen
+(n)<Strg>+h
+Cursor um (n) Zeichen nach links bewegen
+(n)l
+Cursor um (n) Zeichen nach rechts bewegen
+(n)<SPACE>
+Cursor um (n) Zeichen nach rechts bewegen
+(n)|
+Cursor zur Spalte (n) bewegen
+(n)t Taste
+Cursor vor das (n) Zeichen Taste nach rechts bewegen
+(n)f Taste
+Cursor auf das (n) Zeichen Taste nach rechts bewegen
+(n)T Taste
+Cursor vor das (n) Zeichen Taste nach links bewegen
+(n)F Taste
+Cursor auf das (n) Zeichen Taste nach links bewegen
+(n)j
+Cursor um (n) Zeilen abwärts bewegen
+(n)k
+Cursor um (n) Zeilen aufwärts bewegen
+(n)w
+Cursor um (n) Wörter nach rechts bewegen
+(n)W
+Cursor um (n) Wörter(Space) nach rechts bewegen
+(n)b
+Cursor um (n) Wörter nach links bewegen
+(n)B
+Cursor um (n) Wörter(Space) nach links bewegen
+(n)e
+Cursor an das (n) Wortende nach rechts bewegen
+(n)E
+Cursor an das (n) Wortende(Space) nach rechts bewegen
+^
+Cursor auf das erste Zeilenzeichen stellen
+0
+Cursor vor das erste Zeilenzeichen stellen
+(n)_
+Cursor auf das erste Zeilenzeichen stellen und
+(n-1) Zeilen nach unten bewegen
+$
+Cursor zum Zeilenende bewegen
+(n)+
+Cursor auf das erste Zeilenzeichen stellen und
+(n) Zeilen abwärts bewegen
+(n)-
+Cursor auf das erste Zeilenzeichen stellen und
+(n) Zeilen aufwärts bewegen
+(n))
+Cursor um (n) Sätze abwärts bewegen
+(n)(
+Cursor um (n) Sätze aufwärts bewegen
+(n)}
+Cursor um (n) Absätze abwärts bewegen
+(n){
+Cursor um (n) Absätze aufwärts bewegen
+(n)<Strg>+u
+Cursor um 1/2 Bildschirm oder (n Zeilen)
+aufwärts bewegen
+(n)<Strg>+d
+Cursor um 1/2 Bildschirm oder (n Zeilen)
+abwärts bewegen
+<Strg>+f
+Cursor um 1 Bildschirm abwärts bewegen
+<Bild runter>
+Cursor um 1 Bildschirm abwärts bewegen
+<Strg>+b
+Cursor um 1 Bildschirm aufwärts bewegen
+<Bild hoch>
+Cursor um 1 Bildschirm aufwärts bewegen
+(n)<Strg>+e
+scrollt den Cursor (n) Zeilen abwärts
+(n)<Strg>+y
+scrollt den Cursor (n) Zeilen aufwärts
+’
+Taste
+Cursor zu der mit Taste markierten Zeile bewegen
+62
+
+6.3. Befehlsmodus (visual mode)
+‘
+Taste
+Cursor zu dem mit Taste markierten Zeichen bewegen
+gg
+Cursor zum Textanfang bewegen
+(n)G
+Cursor zur Zeile (n) bewegen
+G
+Cursor zum Textende bewegen
+H
+Cursor an den Anfang der Bildschirmseite setzen
+(n)H
+Cursor zur Zeile (n) auf den Bildschirm bewegen
+M
+Cursor auf den Anfang der mittleren
+Bildschirmzeile bewegen
+L
+Cursor an das Ende der Bildschirmseite setzen
+(n)L
+Cursor vom Ende zur Zeile (n) auf den Bildschirm bewegen
+z
+Taste
+bewegt die aktuelle Zeile zum Anfang(+), Ende(-) oder
+zur Mitte(.) des Bildschirms
+6.3.4. Löschen und Eingeben:
+(n)s eingeben
+löscht (n) Zeichen von dem Cursor nach rechts und
+fügt den eingeben Text ein
+c Bereich eingeben
+löscht den markierten Bereich und
+fügt den eingeben Text ein
+cc
+eingeben
+löscht den Zeilentext und fügt den eingeben Text ein
+cw
+eingeben
+löscht bis zum ende des Wortes und
+fügt den eingeben Text ein
+C
+eingeben
+löscht den Text bis Zeilenende und
+fügt den eingeben Text ein
+(n)S eingeben
+löscht (n) Zeilen nach unten und
+fügt den eingeben Text ein ( wie (n)cc )
+6.3.5. Löschen:
+d
+Bereich
+löscht den markierten Bereich
+dd
+löscht die ganze Zeile
+D
+löscht den Text bis Zeilenende
+dw
+löscht bis zum Ende des Wortes
+(n)x
+löscht (n) Zeichen auf den sich der Cursor befindet
+<Entf>
+löscht das Zeichen auf den sich der Cursor befindet
+(n)X
+löscht (n) Zeichen links vom Cursor
+6.3.6. Aufheben:
+u
+macht die letzte Änderung rückgängig
+U
+macht die letzte Änderung der ganzen Zeile rückgängig
+6.3.7. Verschieben:
+>
+Bereich
+schiebt die markierten Zeilen nach rechts
+63
+
+6. Der Texteditor vi/vim
+>>
+schiebt die Zeile auf den sich der Cursor befindet
+nach rechts
+<
+Bereich
+schiebt die markierten Zeilen nach links
+<<
+schiebt die Zeile auf den sich der Cursor befindet
+nach links
+6.3.8. Zusammenfügen:
+(n)J
+hängt (n) Zeilen nach unten aneinander
+6.3.9. Markieren:
+m
+Taste
+markiert eine Zeile oder Zeichen
+v
+setzt den Anfang einer Markierung
+V
+setzt den Anfang einer Zeilenmarkierung
+6.3.10. Kopieren:
+y
+Bereich
+kopiert den mit Bereich angegebenen Text in einen Puffer
+(n)Y
+kopiert die aktuelle und (n) Zeilen in einen Puffer
+"
+Taste
+legt den nächsten Zwischenpuffer fest
+@
+Taste
+interpretiert den Inhalt des Zwischenspeichers als
+vi Befehle und führt sie aus
+6.3.11. Einfügen:
+p
+fügt den aktuellen Puffer hinter dem Cursor ein
+P
+fügt den aktuellen Puffer vor dem Cursor ein
+6.3.12. Suchen:
+(n)%
+platziert den Cursor auf die zugehörige () {} [], oder
+platziert den Cursor auf (n) Prozent der Datei
+/
+Text
+sucht den Text vorwärts
+?
+Text
+sucht den Text rückwärts
+6.3.13. Wiederholen:
+.
+wiederholt das letzte EDIT Kommando
+n
+wiederholt das letzte Suchen
+N
+wiederholt das letzte Suchen in umgekehrter Richtung
+(n);
+wiederholt das vorgehende f, F, t, T Kommando
+(n),
+wiederholt das vorgehende f, F, t, T Kommando in
+umgekehrter Richtung
+(n)&
+wiederholt den letzten :s// Befehl an der momentanen
+Position
+64
+
+6.4. Kommandomodus (colon mode)
+6.3.14. Sonstige Kommandos:
+<Strg>G
+zeigt den Dateistatus und die momentane Zeilennummer
+ZZ
+speichert die Datei und beendet vi
+<Strg>L
+erneuert den Bildschirm
+6.4. Kommandomodus (colon mode)
+Um in den Kommandomodus zu gelangen muss : eingegeben werden.
+6.4.1. Texteingabe Kommandos
+q(!)
+Editor verlassen
+wq
+Editor mit speichern verlassen
+xit
+arbeitet wie wq, speichert nur bei einer Änderung
+x(!)
+Editor mit speichern verlassen
+w(!) Name
+Datei mit Namen speichern
+h
+Hilfe anfordern
+args Dateien
+Liste der Dateien anlegen
+args
+Dateien auflisten
+next(!)
+schaltet zur nächsten Datei
+previous(!)
+schaltet zur vorhergehenden Datei
+rewind(!)
+schaltet zur ersten Datei
+edit(!) Datei
+dient zum wechseln der Datei
+!Befehl
+externen Befehl ausführen
+65
+
+
+7. LaTeX
+7.1. LATEX
LATEX
+67
+
+
+Teil III.
+Linux im Netzwerk
+69
+
+
+8. Netzwerk
+Rechnername
+Name den der Rechner im Netzwerk hat,
+sollte nicht mehr als acht Zeichen haben,
+darf im lokalen Netzwerk noch nicht vergeben sein
+Domainname
+Name zur Gliederung von Netzwerken
+Top-Level-Domain
+umfasst höchstens vier Buchstaben
+Beispiel: Rechnername.Domainname.Top-Level-Domain ->
+voyager.startrek.foe
+IP-Adresse
+Adresse des Rechners im Netzwerk,
+jede Netzwerkschnittstelle(z.B. Netzwerk- oder
+ISDN-Karte) hat im Netzwerk mindestens eine Adresse
+die eindeutig ist, die Adresse besteht derzeit aus
+einer Sequenz von vier Bytes die durch Punkte getrennt
+sind z.B. 192.168.20.40 , für private Netze sind durch
+das Arbeitspapier RFC 1597 drei Adressbereiche
+vorgesehen die nicht geroutet werden:
+10.0.0.0
+-> 10.255.255.255 (Class A-Netz)
+172.16.0.0 -> 172.31.255.255 (Class B-Netz)
+192.168.0.0 -> 192.168.255.255 (Class C-Netz)
+Gatewayadresse
+IP-Adresse des Gerätes die das Weiterleiten
+von Netzwerkpaketen in das fremde Netz übernimmt
+Netzwerkmaske
+sagt aus welcher Teil der IP-Adresse
+zum lokale Netzwerk gehört z.B. 255.255.255.0
+#### in arbeit #######################################
+OSI
+Open System Interconnektion
+IEEE
+ISO
+MAC-Adresse
+006097 370cae
+------ ------
+Herstellerabhängig
+laufendeNr.
+Ethernet-adresse
+Node-Addresse
+NIC-Adresse
+udp
+tcp/ip
+nfs
+ftp
+Portnummer/Kanalnummer
+71
+
+8. Netzwerk
+16Bit 65535 pro udp pro tcp/ip
+/etc/services
+0-1023 well known Ports IANA
+1024-49151 registrierte Ports
+->65535 dynamische, privat
+######################################################
+72
+
+9. Apache
+9.1. Einleitung
+Der Apache Webserver ist ein Programm das im Netzwerk(WWW), bei Anfragen mit
+einem Webbrowser, Websites(HTTP-Protokoll) ausgeben kann.
+Die Anfragen werden als URL angegeben. Beispiel: Schema://Hostname:Port/Server-
+Pfad -> http://www.apache.org:80/manual/
+9.2. Kompilieren und Installieren
+9.2.1. Anforderungen
+• Apache-Quellcode 1.3, erhältlich bei http://www.apache.org/
+• mod_ssl 1.3, erhältlich bei http://www.modssl.org/
+• Apache-Quellcode 2.0, erhältlich bei http://www.apache.org/
+• OpenSSL-Quellcode 0.9.x, erhältlich bei http://www.openssl.org/
+• Linux ab 2.4.xx(z.B.Debian Sarge 3.1), libgdbm2-devel(ndbm.h -> gdbm-ndbm.h)
+• ANSI-C-Compiler und Generierungswerkzeuge, GNU C Compiler (GCC) ab Ver-
+sion 2.7.2, wesentliche Generierungswerkzeuge wie make
+• Zeitgenauigkeit bewahren, ntpdate oder xntpd(NTP)
+• Perl 5(optional), Version ab 5.003 http://www.perl.com/
+• PureFTPd(optional), Version ab 5.003 http://www.perl.com/
+9.2.2. Vorbereitungen
+su
+als root anmelden
+mkdir /usr/local/src
+das Verzeichnis /usr/local/src anlegen,
+wenn es noch nicht vorhanden ist
+chmod 777 /usr/local/src
+Verzeichnis-Rechte setzen
+ln -s /usr/include/gdbm-ndbm.h /usr/include/ndbm.h
+Link zu ndbm.h
+exit
+root abmelden
+cp Quelldateien /usr/local/src
+Quelldateien kopieren
+73
+
+9. Apache
+9.2.3. OpenSSL
+cd /usr/local/src
+Verzeichnis wechseln
+tar xvfz openssl-0.9.7d.tar.gz
+Quelldateien entpacken
+cd openssl-0.9.7d
+in das Quelldatei-Verzeichnis wechseln
+./config --help
+Hilfe zu den möglichen Optionen
+./config --prefix=/usr/local/openssl/0.9.7d
+Codebaum konfigurieren und
+Installations-Verzeichnis angeben
+make
+Programm herstellen
+make test
+Programm testen
+su
+als root anmelden
+make install
+Programm installieren
+ln -s /usr/local/openssl/0.9.7d /usr/local/openssl/current
+Link zu OpenSSL
+exit
+root abmelden
+9.2.4. Apache 1.3 und SSL
+cd /usr/local/src
+Verzeichnis wechseln
+tar xvfz apache_1.3.31.tar.gz
+Quelldateien entpacken
+tar xvfz mod_ssl-2.8.19-1.3.31.tar.gz
+Quelldateien entpacken
+cd apache_1.3.31
+in das Quelldatei-Verzeichnis wechseln
+./configure --help
+Hilfe zu den möglichen Optionen
+cd ../mod_ssl-2.8.19-1.3.31
+./configure --help
+Hilfe zu den möglichen Optionen
+./configure --with-apache=../apache_1.3.31
+--with-ssl=../openssl-0.9.7d
+--prefix=/usr/local/apache/1.3.31
+--datadir=/srv/www
+--enable-module=most
+--enable-shared=max
+--enable-module=ssl
+cd ../apache_1.3.31
+in das Quelldatei-Verzeichnis wechseln
+make
+Programm herstellen
+make certificate TYPE=custom
+Zertifikat erzeugen
+Angaben zu der Certificate Authority
+Signature Algorithm ((R)SA or (D)SA) [R]:R
+1. Country Name
+(2 letter code) [XY]:DE
+2. State or Province Name
+(full name)
+[Snake Desert]:Niedersachsen
+3. Locality Name
+(eg, city)
+[Snake Town]:Salzgitter
+4. Organization Name
+(eg, company)
+[Snake Oil, Ltd]:Komtek
+5. Organizational Unit Name (eg, section)
+[Certificate Authority]:CA
+74
+
+9.2. Kompilieren und Installieren
+6. Common Name
+(eg, CA name)
+[Snake Oil CA]:Komtek CA
+7. Email Address
+(eg, name@FQDN) [ca@snakeoil.dom]:ca@komtek.de
+8. Certificate Validity
+(days)
+[365]:365
+Certificate Version (1 or 3) [3]:3
+Angaben zum Serverzertifikat
+1. Country Name
+(2 letter code) [XY]:DE
+2. State or Province Name
+(full name)
+[Snake Desert]:Niedersachsen
+3. Locality Name
+(eg, city)
+[Snake Town]:Salzgitter
+4. Organization Name
+(eg, company)
+[Snake Oil, Ltd]:Komtek
+5. Organizational Unit Name (eg, section)
+[Webserver Team]:Webmaster
+6. Common Name
+(eg, FQDN)
+[www.snakeoil.dom]:www.komtek.de
+7. Email Address
+(eg, name@fqdn) [www@snakeoil.dom]:www@www.komtek.de
+8. Certificate Validity
+(days)
+[365]:365
+Certificate Version (1 or 3) [3]:3
+Schlüssel verschlüsseln
+Encrypt the private key now? [Y/n]: n
+Encrypt the private key now? [Y/n]: n
+su
+als root anmelden
+make install
+groupadd wwwadmin
+Gruppe wwwadmin anlegen
+chown -R nobody:wwwadmin /srv/www
+Rechte für das www-Verzeichnis setzen
+ln -s /usr/local/apache/1.3.31 /usr/local/apache/current
+Link zu Apache 1.3
+ln -s /usr/local/apache/current/conf /etc/apache
+Link zu den Konfigurationen
+ln -s /usr/local/apache/current/logs /var/log/apache
+Link zu den Logdateien
+ln -s /usr/local/apache/current/bin/apachectl /usr/local/bin
+Link zu apachectl
+ln -s /usr/local/apache/current/bin/apachectl /etc/init.d/apache
+Link zu den Startdateien
+cd /etc/rc5.d
+in den Start-Runlevel wechseln
+ln -s ../init.d/apache S20apache
+Link zum automatischen Starten
+cd ../rc0.d
+in den Stopp-Runlevel wechseln
+ln -s ../init.d/apache K20apache
+Link zum automatischen Beenden
+cd ../rc6.d
+in den Start-Runlevel wechseln
+ln -s ../init.d/apache K20apache
+Link zum automatischen Beenden
+exit
+root abmelden
+75
+
+9. Apache
+9.2.5. Apache2
+cd /usr/local/src
+Verzeichnis wechseln
+tar xvfz httpd-2.0.51.tar.gz
+Quelldateien entpacken
+cd httpd-2.0.51
+in das Quelldatei-Verzeichnis wechseln
+./configure --help
+Hilfe zu den möglichen Optionen
+./configure --prefix=/usr/local/apache2/2.0.51
+--with-ssl=../openssl-0.9.7d
+--datadir=/srv/www2
+--enable-module=most
+--enable-shared=max
+--enable-module=ssl
+--with-port=81
+da auf 80 schon der Apache 1.3 läuft
+make
+Programm herstellen
+su
+als root anmelden
+make install
+Programm installieren (als root!)
+groupadd wwwadmin
+Gruppe wwwadmin anlegen
+chown -R nobody:wwwadmin /srv/www2
+Rechte für das www-Verzeichnis setzen
+ln -s /usr/local/apache2/2.0.51 /usr/local/apache2/current
+Link zu Apache 2
+ln -s /usr/local/apache2/current/conf /etc/apache2
+Link zu den Konfigurationen
+ln -s /usr/local/apache2/current/logs /var/log/apache2
+Link zu den Logdateien
+ln -s /usr/local/apache2/current/bin/apachectl /usr/local/bin/apachectl2
+Link zu apachectl
+ln -s /usr/local/apache2/current/bin/apachectl /etc/init.d/apache2
+Link zu den Startdateien
+cd /etc/rc5.d
+in den Start-Runlevel wechseln
+ln -s ../init.d/apache2 S20apache2
+Link zum automatischen Starten
+cd ../rc0.d
+in den Stopp-Runlevel wechseln
+ln -s ../init.d/apache2 K20apache2
+Link zum automatischen Beenden
+cd ../rc6.d
+in den Start-Runlevel wechseln
+ln -s ../init.d/apache2 K20apache2
+Link zum automatischen Beenden
+exit
+root abmelden
+9.2.6. Testen
+/etc/init.d/apache start
+Apache1.3 starten
+/etc/init.d/apache2 start
+Apache2 starten
+Browser http://localhost/
+Apache1.3 testen
+Browser http://localhost:81/
+Apache2 testen
+/etc/init.d/apache stop
+Apache1.3 beenden
+/etc/init.d/apache2 stop
+Apache2 beenden
+76
+
+9.2. Kompilieren und Installieren
+9.2.7. Upgrade
+./config.nice
+aus der letzten Installation entnehmen,
+Apache2
+9.2.8. PureFTPd
+cd /usr/local/src
+Verzeichnis wechseln
+tar xvfz pure-ftpd-1.0.20.tar.gz
+Quelldateien entpacken
+cd pure-ftpd-1.0.20
+Verzeichnis wechseln
+./configure --prefix=/usr/local/pure-ftpd/1.0.20 --with-language=german
+Makefile herstellen
+make
+Programm herstellen
+make check
+Programm prüfen
+su
+als root anmelden
+make install
+Programm installieren
+ln -s /usr/local/pure-ftpd/1.0.20 /usr/local/pure-ftpd/current
+Link zu pure-ftpd
+mkdir /usr/local/pure-ftpd/current/etc Verzeichnis etc anlegen
+cp configuration-file/pure-ftpd.conf /usr/local/pure-ftpd/current/etc
+Konfiguration kopieren
+cp pureftpd-*.conf /usr/local/pure-ftpd/current/etc
+Konfigurationen kopieren
+ln -s /usr/local/pure-ftpd/current/etc /etc/pure-ftpd
+Link zu den Konfigurationen
+vi /etc/init.d/pure-ftpd
+Startdatei für pure-ftpd anlegen
+#!/bin/bash
+case "$1" in
+start)
+echo "pureftpd wird gestartet ..."
+cd /usr/local/pure-ftpd/current
+./sbin/pure-ftpd &
+;;
+stop)
+echo "pureftpd wird heruntergefahren ..."
+kill -TERM ‘cat /var/run/pure-ftpd.pid‘
+;;
+*)
+echo "Usage: $0 {start|stop}"
+exit 1
+;;
+esac
+exit 0
+77
+
+9. Apache
+chmod 755 /etc/init.d/pure-ftpd
+Rechte setzen
+cd /etc/rc5.d
+Verzechnis wechseln
+ln -s ../init.d/pure-ftpd S20pure-ftpd Link zum automatischen Starten
+cd /etc/rc0.d
+Verzechnis wechseln
+ln -s ../init.d/pure-ftpd K20pure-ftpd Link zum automatischen Beenden
+cd /etc/rc6.d
+Verzechnis wechseln
+ln -s ../init.d/pure-ftpd K20pure-ftpd Link zum automatischen Beenden
+useradd -g wwwadmin -d /srv -s /bin/false wwwadmin
+Benutzer wwwadmin anlegen
+passwd wwwadmin
+Passwort setzen
+NoAnonymous
+yes
+UnixAuthentication
+yes
+MinUID
+1000
+MinUID
+1000
+TrustedGID
+1002
+exit
+root abmelden
+9.3. Apache starten
+9.3.1. Apache starten
+Unter UNIX/Linux wird das httpd-Progamm als Daemon ausgeführt.
+apachectl start
+Apache starten
+rcapache start
+Apache starten(SuSE-Linux)
+9.3.2. Wie der Apache startet
+• apachectl ist die empfohlene Methode, das httpd-Programm zu starten
+• apachectl setzt verschiedene Umgebungsvariablen und startet das httpd-Programm
+• apachectl reicht alle Kommandozeilenargumente durch
+• als erstes liest der httpd die Konfigurationsdatei httpd.conf ein, die beim Kom-
+pilieren festgelegt wurde
+• zur Laufzeit kann der Ablageort geändert werden, z.B. apachectl -f /etc/apache2/httpd.conf
+• beim erfolgreicehn Start, trennt sich der Server vom Terminal ab
+• bis zum Port 1024 muss der Apache root-Berechtigung besitzen
+• der Haupt-httpd-Prozess läuft unter dem Benutzer root weiter
+78
+
+9.3. Apache starten
+• ist der Server gestartet, öffnet er seine Log-Dateien
+• der Apache startet mehrere Kind-Prozesse
+• die Kind-Prozesse werden unter weniger privilegierten Benutzerkennungen aus-
+geführt(z.B. nobody, wwwrun ...)
+• die Kind-Prozesse lauschen und beantworten Anfragen von Clients
+• die Kind-Prozesse werden von dem ausgewählten Multi-Processing-Modul(Apache-
+MPM prefork UNIX/Linux) gesteuert
+9.3.3. Fehler während des Hochfahrens
+• wird während des Hochfahrens einen schwerer Fehler feststellt, schreibt der Apa-
+che eine Nachricht auf die Konsole oder ins ErrorLog, bevor er sich selbst beendet
+• eine der häufigsten Fehlermeldungen ist Ünable to bind to Port ...", der Server
+läuft schon oder hat keine root-Berechtigung
+9.3.4. Automatisch starten und beenden
+• apachectl zu den Startdateien des Systems hinzufügen (rc.local, rc.x-Verzeichnis)
+z.B. SuSE-Linux:
+cd /etc/rc.d/rc3.d/
+ln -s ../apache S16apache
+Link zum automatischen Starten
+in Runlevel 3 anlegen
+ln -s ../apache K06apache
+Link zum automatischen Beenden
+in Runlevel 3 anlegen
+z.B. Debian:
+cd /etc/rc3.d/
+ln -s ../init.d/apache2 S20apachectl
+Link zum automatischen Starten in Runlevel 5 anlegen
+cd /etc/rc0.d/
+ln -s ../init.d/apache2 K20apachectl
+Link zum automatischen Beenden in Runlevel 0 anlegen
+9.3.5. Weitere Informationen
+http://localhost/manual/programs/httpd.html
+http://localhost/manual/de/programs/httpd.html
+http://localhost/manual/programs/apachectl.html
+http://localhost/manual/de/programs/apachectl.html
+79
+
+9. Apache
+9.4. Beenden und Neustarten
+9.4.1. Einleitung
+• um den Apache zu stoppen oder neu zu starten, muss ein Signal an den laufenden
+httpd-Prozess gesendet werden
+• es gibt zwei Möglichkeiten Signale zu senden, kill und apachectl
• auf dem System laufen mehrere httpd-Programme
• nur an den Elternprozess sollte ein Signal gesendet werden, /var/log/apache2/httpd.pid
• es gibt drei Signale die an den Elternprozess gesendet werden können, TERM -
+beenden, HUP - neustarten, USR1 - unterbrechungsfreier Neustart
+• es wird empfohlen apachectl zu benutzen
• mit tail -f /var/log/apache2/error_log"kann die Signalisierung beobachtet wer-
+den
+9.4.2. Beenden
+Signal: TERM
+apachectl stop
+sendet das TERM(stop) signal an
+den Elternprozess
+rcapache stop
+Apache stoppen
+bei SuSE-Linux
+kill -TERM ‘cat /var/log/apache2/httpd.pid‘
+sendet das TERM(stop) signal an
+den Elternprozess
+• das Senden des TERM(stop)-Signals an den Elternprozess veranlasst alle seine
+Kindprozesse sich zu beenden
+• es dauert etwas bis alle Kindprozesse beendet sind
• danach beendet sich der Elternprozess
• alle gerade bearbeiteten Anfragen werden abgebrochen
• es werden keine weiteren Anfragen mehr bedient
+9.4.3. Unterbrechungsfreier Neustart
+Signal: USR1
+apachectl graceful
+sendet das USR1 signal an
+den Elternprozess
+kill -USR1 ‘cat /var/log/apache2/httpd.pid‘
+sendet das USR1 signal an
+den Elternprozess
+80
+
+9.4. Beenden und Neustarten
+• das Senden des USR1-Signals an den Elternprozess veranlasst alle seine Kind-
+prozesse sich zu beenden
+• die Kindprozesse bearbeiten noch die letzten Anfragen und beenden sich dann
+• der Elternprozess liest, wärend die Kindprozesse noch laufen, seine Konfigurati-
+onsdateien erneut ein und öffnet seine Logdateien neu
+• die Kindprozesse werden wieder gestartet
+• die Serverstatistiken(mod_status) werden nicht auf Null zurückgesetzt
+• ist die Konfigurationsdatei fehlerhaft, wird der Elternprozess nicht neu gestartet
+• die Kindprozesse bearbeiten noch die letzten Anfragen und beenden sich dann
+• wäred noch die letzten Anfragen bearbeitet werden kann der httpd nicht gestartet
+werden
+9.4.4. Neustarten
+Signal: HUP
+apachectl restart
+sendet das HUP signal an
+den Elternprozess
+rcapache restart
+Apache stoppen und dann starten
+bei SuSE-Linux
+kill -HUP ‘cat /var/log/apache2/httpd.pid‘
+sendet das HUP signal an
+den Elternprozess
+• das Senden des HUP(wie TERM)-Signals an den Elternprozess veranlasst alle
+seine Kindprozesse sich zu beenden
+• der Elternprozess liest seine Konfigurationsdateien erneut ein und öffnet seine
+Logdateien neu
+• die Kindprozesse werden wieder gestartet und setzen die Bedienung von Zugriffen
+fort
+• die Serverstatistiken(mod_status) werden auf Null zurückgesetzt
+• ist die Konfigurationsdatei fehlerhaft, wird der Elternprozess nicht neu gestartet
+9.4.5. Anhang: Syntax überprüfen
+apachectl -t
+überprüft den Syntax der Konfigurationsdatei, so kann
+vermieden werden das der Apache nicht neu startet
+81
+
+9. Apache
+9.5. Anhang
+9.5.1. Zu den Dateien
+/etc/apache/
+/etc/apache2/
+/etc/httpd/
+/etc/httpd2/
+access.conf
+Zugriffs-Konfiguration
+httpd.conf
+Apache Konfigurationsdatei
+mime.types
+Zuweisung von Dateiendungen
+srm.conf
+Resource-Konfiguration
+/var/log/apache/
+/var/log/apach2/
+/var/log/httpd/
+/var/log/httpd2/access_log
+Zugriffsmeldungen
+error_log
+Fehlermeldungen
+httpd.pid
+Hauptprozessnummer
+9.6. Benutzerhandbuch
+9.6.1. httpd.conf
+ServerType standalone
+Apache nicht ueber den inetd starten.
+ServerRoot "/www/"
+Diese Einstellung sorgt dafür, dass der Apache
+ausgehend von diesem Verzeichnis die
+Verzeichnisse fuer Dokumente, Logfiles und
+Konfigurationsdateien sucht.
+LockFile /var/lock/subsys/httpd/httpd.accept.lock
+Spezifizert das Lock
+File.
+PidFile /var/run/httpd.pid
+Datei, in der sich die Prozess ID des Httpd-
+Daemons befindet.
+ResourceConfig /etc/httpd/srm.conf
+Diese Datei enthaelt Angaben zur
+Formatierung und dem Aussehen der
+automatisch erzeugten Verzeichnisindizes
+(FancyIndexing) sowie Angaben zu den einzelnen
+Dateitypen.
+AccessConfig /etc/httpd/access.conf
+Datei zur Definition der Funktionen und
+82
+
+9.6. Benutzerhandbuch
+Zugriffsrechte bestimmter Verzeichnisse
+Timeout 300
+Zeitlimit fuer Client-Anfragen in Sekunden.
+KeepAlive On
+Unterstuezung der HTTP/1.1 Persistent
+Connections. Dardurch koennen ueber eine TCP-
+Verbindung mehrere Anfragen an den Server
+geschickt werden.
+MaxKeepAliveRequests 10
+Es werden 10 aufeinanderfolgende Anfragen
+innerhalb einer Keep-Alive-Verbindung erlaubt.
+KeepAliveTimeout 15
+Der Server wartet maximal 15 Sekunden auf
+weitere Anfragen des Clients bei einer Keep-
+Alive-Verbindung.
+MinSpareServers 5
+Es existieren immer mindestens 5 und hoechstens
+MaxSpareServers 10
+10 leerlaufende Prozesse.
+StartServers 5
+Es werden automatisch 5 Kindprozesse des Apache
+gestartet.
+MaxClients 150
+Maximum von gleichzeitig laufenden
+Server-Prozessen.
+MaxRequestsPerChild 30
+Nach 30 Anfragen wird der Kindprozess beendet
+und gegebenfalls ein neuer gestartet.
+Listen 12.34.56.78:80
+Falls mehrere Interfaces bzw. IP Adressen fuer
+den Rechner vorhanden sind, kann mit Listen
+festgelegt werden, welche Ports fuer welche
+Adresse abgehoert werden sollen.
+Port 80
+Standalone Server Port 80
+User wwwrun
+Nach dem Oeffnen des Ports (als root), wechselt
+Group nogroup
+Apache zu der als User und Group angegebenen
+UID bzw. GID. Die Zuweisung kann entweder durch
+angeben des Namens oder durch # gefolgt von der
+ID erfolgen.
+ServerAdmin dv@mynet.loc
+Bei Fehlermeldungen wird diese Adresse dem
+Client zurueckgeliefert.
+ServerName www.mynet.loc
+Wird bei Redirects benoetigt (wenn man
+83
+
+9. Apache
+beispielsweise durch Eingabe von
+http://www.mynet.loc/main auf das Verzeichnis
+main zugreifen will, erzeugt der Apache einen
+Redirect auf http://www.mynet.loc/main/ . Ohne
+ServerName würde der richtige Hostname des
+Rechners zurückgeliefert werden.
+DocumentRoot "/www/htdocs/"
+Hier werden die HTML Seiten abgelegt.
+AllowOverride All
+Konfigurationsanweisungen in der .htaccess
+beachten
+UserDir public_html
+Homepage-Directory der Benutzer
+http://server/~benutzer/
+DirectoryIndex index.html index.htm index.php
+Wird nur ein Directory
+angegeben, wird automatisch die
+angegebene Datei gesucht und angezeigt.
+AccessFileName .htaccess
+Name der .htaccess
+DefaultType text/plain
+Dateien ohne Endung werden wie Text-Files
+behandelt.
+HostnameLookups Off
+Es sollen keine DNS-Lookups ausgefuert werden.
+ErrorLog /var/log/httpd/error_log
+Datei zur Aufnahme von Fehlermeldungen
+und sonstigen Info Meldungen
+(mod_log_config).
+LogLevel warn
+LogLevel :-) debug, info, notice, warn, error,
+crit,alert,emerg.
+LogFormat ...
+Legt das Format der Logdatei(en) fest.
+CustomLog /var/log/httpd/access_log common
+Erzeugt die Datei http.access im
+Common Log Format.
+ServerSignature Off
+ServerSignature kann man auf "Off" stellen,
+damit ein Zugriff auf eine nichtexistente Seite
+nicht Software und Versionsnummer anzeigt,
+jedoch bringt das nicht allzuviel, da im HTTP
+Header diese und wesentlich mehr Informationen
+zu finden sind.
+84
+
+9.6. Benutzerhandbuch
+Alias /icons/ "/www/icons/"
+Alias-Namen fuer bestimmte Verzeichnisse. Diese
+werden anschliessend behandelt, als wenn sie
+sich unter Document-Root befinden wuerden.
+Achtung! Die Einstellungen gelten auch fuer
+virtuelle Hosts.
+IndexOptions FancyIndexing
+Als Optionen sind angebbar:
+Fancyindexing - ausführliche Verzeichnisliste
+(Icons, Name, Größe, Kurzbeschreibung etc.)
+SuppressLastModified - keine Angabe der letzten
+Modifikationszeit
+SuppressSize - keine Angabe der Filegröße
+SuppressDescription - keine Angabe einer
+Kurzbeschreibung
+ScanHTMLTitles - HTML-Titel als Kurzbeschreibung
+(Achtung: Rechnerlast!)
+ReadmeName README
+Die Datei README wird bei der Ausgabe des
+Verzeichnisbaums angezeigt.
+HeaderName HEADER
+Die Datei HEADER wird am Anfangs-Tag in den
+Verzeichnisbaums angezeigt.
+IndexIgnore .??* *~ *#
+RCS CVS *,v *,t
+Diese Dateien werden nicht durch
+FancyIndexing angezeigt.
+TypesConfig /etc/httpd/mime.types
+Enthaelt die Zuweisungen Dateiendung
+zu Mime-Typ
+BrowserMatch "Mozilla/2" nokeepalive
+Hiermit wird der Apache angewiesen, auf
+bestimmte Browser unterschiedlich zu
+reagieren.
+9.6.2. Access Control List File (.htaccess)
+Die Datei .htaccess muß in dem zu schützenden Ordner angelegt werden.
+AuthUserFile /www/.htpasswd
+Pfad zu einer Passwortdatei
+AuthGroupFile /dev/null
+AuthName "Tux ;-)"
+AuthType Basic
+<Limit GET POST PUT>
+require user webmaster
+</Limit>
+85
+
+9. Apache
+AuthUserFile /www/.htpasswd
+Pfad zu einer Passwortdatei
+AuthGroupFile /www/.htgroup
+Pfad zu einer Gruppendatei
+AuthName "Tux ;-)"
+AuthType Basic
+<Limit GET>
+require group logins
+</Limit>
+9.6.3. Gruppendatei (.htgroup)
+cat .htgroup -->
+logins: benutzer1 benutzer2 ...
+9.6.4. Passwort-Datei (.htpasswd)
+htpasswd -c Passwortdatei Benutzername
+erzeugt eine neue Passwortdatei
+und ein Benutzer
+htpasswd Passwortdatei Benutzername
+erzeugt ein Benutzer
+9.6.5. Erstellen eines SSL-Zertifikats
+openssl req -new > firma.csr
+openssl rsa -in privkey.pem -out firma.key
+openssl x509 -in firma.csr -out firma.crt -req -signkey firma.key -days 10000
+cp firma.key /etc/httpd/ssl.key/server.key
+cp firma.crt /etc/httpd/ssl.crt/server.crt
+cp firma.csr /etc/httpd/ssl.csr/server.csr
+chown root privkey.pem
+chmod 400 privkey.pem
+9.6.6. LinkIcon (favicon.ico)
+Was ist ein favicon.ico?
+Immer wenn ein IE5 Benutzer eine Seite seinen Favoriten hinzufügt, sucht der IE5
+nach einem Icon das er anstatt des Standardicons in der Favoritenliste anzeigen kann.
+Er sucht zuerst im aktuellen ’Verzeichnis’ und geht dann Ebene für Ebene weiter bis
+zum Wurzelverzeichnis. Nehmen wir mal an, das aktuelle Dokument befindet sich un-
+ter http://www.bjoernsworld.de/suchmaschinen/ optimieren/aufraeumen.html, dann
+wird der IE 5 so nach dem Icon suchen:
+http://www.bjoernsworld.de/suchmaschinen/optimieren/favicon.ico
+http://www.bjoernsworld.de/suchmaschinen/favicon.ico
+http://www.bjoernsworld.de/favicon.ico
+86
+
+9.6. Benutzerhandbuch
+Er sucht solange, bis er eines gefunden hat oder bei /favicon.ico angekommen ist.
+Das gilt nur für den Internet Explorer Version 5.0 und 5.01; Version 5.5 sucht nur noch
+nach /favicon.ico selbstständig. Hat er eins gefunden, zeigt er es in der Favoritenliste
+an und beim erneuten Besuch der Seite auch links neben der URL in der Adresszeile:
+Welches Format hat das favicon.ico?
+Das favicon.ico ist ein Icon im Microsoft Windows Icon File Format. Windows Be-
+nutzer sehen täglich solche Icons auf ihrem Desktop, in ihrem Startmenü, etc. In der
+Favoritenliste wird dieses Icon in der Größe 16x16 Pixel dargestellt, daher sollte man
+das Icon auch in dieser Größe erstellen. Die Farbzahl beschränkt sich auf 16 bzw. 256
+Farben, wobei eine als transparente Farbe gilt.
+Welchen MIME-Type hat das favicon.ico?
+Der korrekte MIME-Type für das favicon.ico ist image/x-icon. Beim Apache Webserver
+kann man das in einer .htaccess mit der Zeile:
+AddType image/x-icon .ico
+konfigurieren.
+Wie erstelle ich ein favicon.ico?
+Man braucht dafür einen Icon Editor wie man sie zuhauf bei Tucows oder Winfiles. com
+finden kann. Mit z.B. dem Freeware Tool Irfan View ist es ohne Probleme möglich,
+eine Gifdatei in das Icon Format zu konvertieren. Macintosh Benutzer können den
+GraphicConverter von Thorsten Lemke oder den Iconographer von MscapeSoftware
+benutzen um das Icon zu erstellen. Bei favicon.com gibt es einen Online Editor in
+Java, mit dem man online sein eigenes favicon.ico erstellen kann.
+Wohin muss das favicon.ico?
+Wie oben schon gesagt, sucht der IE5, vor Version 5.5, zuerst im aktuellen ’Verzeichnis’
+und geht dann Ebene um Ebene nach oben, bis er unter http://host/favicon.ico ein
+Icon findet oder eben nicht. Man kann entweder in jedes Verzeichnis ein favicon.ico
+plazieren, oder im <HEAD> einer jeden HTML Datei auf ein Icon verweisen:
+<link rel="SHORTCUT ICON" href="/favicon.ico" title="external:/favicon.ico">
+Wenn der Apache Webserver mit mod_rewrite benutzt wird, kann man mit dieser
+Regel:
+RewriteEngine on
+RewriteRule ^(.+)/favicon\.ico$ /favicon.ico [R=permanent] [L]
+87
+
+9. Apache
+(z.B. in der .htaccess) alle Anfragen für favicons in Unterverzeichnissen auf das
+favicon.ico im Root-Verzeichnis der Domain umleiten.
+Wenn mod_rewrite nicht zur Verfügung steht, wohl aber Zugriff auf die Konfigu-
+rationsdateien Apache Web Servers, kann man in z.B. der <VirtualHost> Sektion
+folgenden Befehl einfügen:
+RedirectMatch Permanent ^(.+)/favicon\.ico$ http://server.de/favicon.ico
+Wie kann man diese Funktion abstellen?
+Es gibt meines Wissens nach keine Möglichkeit den IE5 dazu zu bringen, nicht nach
+dem favicon.ico zu suchen.
+Links zum Thema:
+http://www.favicon.de/
+http://www.favicon.com/
+http://wdvl.com/Authoring/Design/Images/Favicon/index.html
+http://msdn.microsoft.com/workshop/essentials/versions/ICPIE5.asp
+http://msdn.microsoft.com/workshop/Author/dhtml/howto/ShortcutIcon.asp
+http://www.winfiles.com/apps/98/icons-edit.html
+http://web.cip.com.br/flaviovs/sec/favicon/privacy.html
+http://web.cip.com.br/flaviovs/sec/favicon/index.html
+http://www.bjoernsworld.de/ie/398da66c.24234236@news.bjoern.hoehrmann.de.txt
+88
+
+10. MySQL
+10.1. Einleitung
+MySQL ist eine Datenbank und phpMyAdmin eine Web-Oberfläche, um MySQL zu
+konfigurieren.
+10.2. Kompilieren und Installieren
+10.2.1. Anforderungen
+• MySQL-Quellcode 4.x.xx, erhältlich bei http://www.mysql.com/
+• Linux 2.x.xx
+• ANSI-C-Compiler und Generierungswerkzeuge, GNU C Compiler (GCC) ab Ver-
+sion 2.95.4, wesentliche Generierungswerkzeuge wie make
+• phpMyAdmin 2.x.x(optional), erhältlich bei http://www.phpmyadmin.net/, Web-
+Server, Apache 1 oder 2 mit PHP 4 oder 5
+10.2.2. Vorbereitungen
+su
+als root anmelden
+mkdir /usr/local/src
+das Verzeichnis /usr/local/src anlegen,
+wenn es noch nicht vorhanden ist
+chmod 777 /usr/local/src
+Verzeichnis-Rechte setzen
+exit
+root abmelden
+cp Quelldateien /usr/local/src
+Quelldateien kopieren
+10.2.3. MySQL
+cd /usr/local/src
+Verzeichnis wechseln
+tar xvfz mysql-4.0.21.tar.gz
+Quelldateien entpacken
+cd mysql-4.0.21
+in das Quelldatei-Verzeichnis wechseln
+./configure --help
+Hilfe zu den miöglichen Optionen
+./configure --prefix=/usr/local/mysql/4.0.21 --localstatedir=/var/mysql/data
+prefix: Installations-Verzeichnis
+localstatedir: Daten-Verzeichnis
+make
+Programm herstellen
+89
+
+10. MySQL
+su
+als root anmelden
+make install
+Programm installieren (als root!)
+ln -s /usr/local/mysql/4.0.21 /usr/local/mysql/current
+Link zu MySQL
+cp support-files/mysql.server /etc/init.d/mysql
+Startdatei kopieren
+chmod 755 /etc/init.d/mysql
+Dateirechte einstellen
+ln -s /etc/init.d/mysql /etc/rc5.d/S20mysql
+Link zum Starten in Runlevel5 anlegen
+ln -s /etc/init.d/mysql /etc/rc6.d/K20mysql
+Link zum Beenden in Runlevel6 anlegen
+ln -s /etc/init.d/mysql /etc/rc0.d/K20mysql
+Link zum Beenden in Runlevel0 anlegen
+groupadd mysql
+Gruppe mysql anlegen
+useradd -g mysql -d /usr/local/mysql/current -s /bin/false mysql
+Benutzer mysql anlengen
+mkdir -p /var/mysql/data
+Daten-Verzeichnis anlegen
+./scripts/mysql_install_db --user=mysql initiale Datenbank installieren
+cd /usr/local/mysql/current
+in das mysql Verzeichnis wechseln
+cp share/mysql/my-medium.cnf /var/mysql/data/my.cnf
+Konfiguration anlegen
+chown -R root:mysql .
+Benutzer-Gruppen-Rechte setzen
+chown -R mysql:mysql /var/mysql/data
+Rechte für das Daten-Verzeichnis setzen
+/etc/init.d/mysql start
+mysql starten
+./bin/mysqladmin -u root password ’geheim’
+Datenbank-Passwort setzen
+Achtung ! das Passwort steht danach in
+der ~/.bash_history
+10.2.4. MySQL Testen
+./bin/mysql -D mysql -u root -p
+Client starten und zugriff auf die
+Steuerungs-Datenbank nehmen
+mysql> show tables;
+Tabelle anzeigen
++-----------------+
+| Tables_in_mysql |
++-----------------+
+| columns_priv
+|
+| db
+|
+| func
+|
+| host
+|
+| tables_priv
+|
+| user
+|
+90
+
+10.2. Kompilieren und Installieren
++-----------------+
+6 rows in set (0.00 sec)
+mysql> exit;
+Client beenden
+Bye
+exit
+root abmelden
+10.2.5. phpMyAdmin
+su
+als root anmelden
+cd /srv/www/htdocs
+in das Apache1.3-Verzeichnis wechseln
+cd /srv/www2/htdocs
+in das Apache2-Verzeichnis wechseln
+tar xvfj /usr/local/src/phpMyAdmin-2.5.7-pl1.tar.bz2
+Dateien entpacken
+ln -s phpMyAdmin-2.5.7-pl1 phpMyAdmin
+Link zu phpMyAdmin anlegen
+vi phpMyAdmin/config.inc.php
+phpMyAdmin anpassen
+$cfg[’PmaAbsoluteUri’] = ’http://localhost/phpMyAdmin/’;
+URL zu Apache1.3
+$cfg[’PmaAbsoluteUri’] = ’http://localhost:81/phpMyAdmin/’;
+URL zu Apache2
+$cfg[’Servers’][$i][’user’]
+= ’root’;
+// MySQL user
+$cfg[’Servers’][$i][’password’]
+= ’geheim’; // MySQL password
+vi phpMyAdmin/.htaccess
+htaccess anlegen
+AuthType Basic
+AuthName "PhpMyAdmin"
+AuthUserFile /srv/www/htdocs/phpMyAdmin/.htpasswd
+Apache1.3
+AuthUserFile /srv/www2/htdocs/phpMyAdmin/.htpasswd
+Apache2
+AuthGroupFile /dev/null
+<Limit GET POST>
+require valid-user
+</Limit>
+cd /usr/local/apache/current/bin
+Verzeichnis wechseln, Apache1.3
+cd /usr/local/apache2/current/bin
+Verzeichnis wechseln, Apache2
+./htpasswd --help
+Hilfe zu htpasswd
+./htpasswd -c /srv/www/htdocs/phpMyAdmin/.htpasswd root
+Apache1.3
+./htpasswd -c /srv/www2/htdocs/phpMyAdmin/.htpasswd root
+Apache2
+vi /etc/apache/httpd.conf
+Apache1.3 anpassen
+91
+
+10. MySQL
+vi /etc/apache2/httpd.conf
+Apache2 anpassen
+<Directory "/srv/www/htdocs">
+Options Indexes FollowSymLinks MultiViews
+AllowOverride AuthConfig
+None -> AuthConfig
+Order allow,deny
+Allow from all
+</Directory>
+/etc/init.d/apache graceful
+Einstellungen neu einlesen, Apache1.3
+/etc/init.d/apache2 graceful
+Einstellungen neu einlesen, Apache2
+exit
+root abmelden
+92
+
+11. PHP
+11.1. Einleitung
+Wer hat PHP erfunden ?
+Der Kanada-Däne Rasmus Lerdorf !
+Was heist PHP ?
+Personal Home Page Tools
+Was ist PHP ?
+Eine einfache Skriptsprache. Sie wird direkt
+in HTML-Seiten eingefügt und vom Webserver
+interpretiert.
+Wie funktioniert PHP ?
+Der Browser schickt einen HTTP-Request an den
+Webserver. Der Server reagiert, liest die
+PHP-Seite ein, und führt die Skripte aus und
+schickt erst das fertig zusammengesetzte
+Dokument zurück an den Browser !
+LAMP - Linux-Apache-MySQL-PHP
+WAMP - Windows-Apache-MySQL-PHP
+11.2. Kompilieren und Installieren
+11.2.1. Anforderungen
+• PHP 4 oder 5, erhältlich bei http://www.php.net/
+• Linux ab 2.4.xx(z.B.Debian Sarge 3.1)
+• ANSI-C-Compiler und Generierungswerkzeuge, GNU C Compiler (GCC) ab Ver-
+sion 2.7.2, wesentliche Generierungswerkzeuge wie make
+• Webserver z.B. Apache 1.3 oder 2
+• GD-Library ab 2.x.x, erhältlich bei http://www.boutell.com/gd/, Freetype ab
+2.x.x, erhältlich bei http://www.freetype.org/, Zlib ab 1.x.x, erhältlich bei http://www.gzip.org/zlib/,
+IJG JPEG, erhältlich bei http://www.ijg.org/
+11.2.2. Vorbereitungen
+su
+als root anmelden
+mkdir /usr/local/src
+das Verzeichnis /usr/local/src anlegen,
+wenn es noch nicht vorhanden ist
+93
+
+11. PHP
+chmod 777 /usr/local/src
+Verzeichnis-Rechte setzen
+exit
+root abmelden
+cp Quelldateien /usr/local/src
+Quelldateien kopieren
+11.2.3. Libraries für Zusatzfunktionen
+Freetype
+cd /usr/local/src
+Verzeichnis wechseln
+tar xvfj freetype-2.1.9.tar.bz2
+Quelldateien entpacken
+cd freetype-2.1.9
+in das Quelldatei-Verzeichnis wechseln
+./configure
+Codebaum konfigurieren
+make
+Programm herstellen
+su
+als root anmelden
+make install
+Programm installieren
+exit
+root abmelden
+Zlib
+cd /usr/local/src
+Verzeichnis wechseln
+tar xvfz zlib-1.2.1.tar.gz
+Quelldateien entpacken
+cd zlib-1.2.1
+in das Quelldatei-Verzeichnis wechseln
+./configure
+Codebaum konfigurieren
+make
+Programm herstellen
+su
+als root anmelden
+make install
+Programm installieren
+exit
+root abmelden
+IJG JPEG
+cd /usr/local/src
+Verzeichnis wechseln
+tar xvfz jpegsrc.v6b.tar.gz
+Quelldateien entpacken
+cd jpeg-6b
+in das Quelldatei-Verzeichnis wechseln
+./configure --help
+Hilfe zu den möglichen Optionen
+./configure --enable-shared
+--enable-static
+--prefix=/usr/local
+make
+Programm herstellen
+make test
+Programm testen
+su
+als root anmelden
+make install
+Programm installieren
+exit
+root abmelden
+GD-Library
+cd /usr/local/src
+Verzeichnis wechseln
+94
+
+11.2. Kompilieren und Installieren
+tar xvfz gd-2.0.28.tar.gz
+Quelldateien entpacken
+cd gd-2.0.28
+in das Quelldatei-Verzeichnis wechseln
+./configure
+Codebaum konfigurieren
+make
+Programm herstellen
+su
+als root anmelden
+make install
+Programm installieren
+exit
+root abmelden
+11.2.4. PHP
+cd /usr/local/src
+Verzeichnis wechseln
+tar xvfj php-5.0.1.tar.bz2
+Quelldateien entpacken
+cd php-5.0.1
+in das Quelldatei-Verzeichnis wechseln
+./configure --help
+Hilfe zu den möglichen Optionen
+./configure --with-apxs=/usr/local/apache/current/bin/apxs
+Apache 1.3 oder
+--with-apxs2=/usr/local/apache2/current/bin/apxs
+Apache 2
+--with-mysql=/usr/local/mysql/current
+--with-zlib
+--with-ftp
+--with-gd
+--with-jpeg-dir=/usr/local/lib
+--enable-versioning
+--enable-track-vars=yes
+--enable-url-includes
+--enable-sysvshm=yes
+--enable-sysvsem=yes
+--with-config-file-path=/etc
+make
+Programm herstellen
+su
+als root anmelden
+make install
+Programm installieren
+cp php.ini-dist /etc/php.ini
+PHP-Konfiguration kopieren
+vi /etc/apache/httpd.conf
+Apache1.3 anpassen
+vi /etc/apache2/httpd.conf
+Apache2 anpassen
+LoadModule php5_module
+modules/libphp5.so
+Apache2
+LoadModule php5_module
+libexec/libphp5.so
+Apache1.3
+AddModule mod_php5.c
+Apache1.3
+DirectoryIndex index.html index.htm index.html.var index.php index.phtml
+AddType application/x-httpd-php .php
+AddType application/x-httpd-php-source .phps
+exit
+root abmelden
+95
+
+11. PHP
+11.3. Referenz
+11.3.1. Grundlagen
+<?php , <? oder <%
+Beginn des PHP-Abschnitts
+?> oder %>
+Ende des PHP-Abschnitts
+;
+Zeilenende
+// Kommentartext
+Einzeiliger Kommentartext
+/* Kommentartext
+Einleitung, mehrzeiliger Kommentartext
+Kommentartext */
+Abschluss, mehrzeiliger Kommentartext
+$
+Variablen anfang
+echo "Text" ;
+Text ausgeben
+echo "Text $Variable Text" ;
+Variable ausgeben
+echo "Text".$Variable."Text" ; . Verketten von Zeichenfolgen
+echo "Text\n" ;
+\n Erzeugt eine neue Zeile
+echo "Text\r" ;
+\r Erzeugt einen neuen Absatz (return)
+echo "Text\tText" ;
+\t Erzeugt ein Tabulatorschritt
+echo "\"Text\"" ;
+\" Gänsefüßchen ausgeben
+echo "\’Text\’" ;
+\’ Einfache Anführungszeichen ausgeben
+echo "\$Text\$" ;
+\$ Dollar-Zeichen ausgeben
+echo "\\Text\\" ;
+\\ Backslash ausgeben
+$Array[Indexwert]="Wert" ;
+Wert einer Array-Variable zuweisen (Langform)
+$Array=array("W0","W1") ;
+Werte einer Array-Variable zuweisen (Kurzform)
+echo $Array[Indexwert] ;
+Wert einer Array-Variable ausgeben
+$Array[Index-Ersatz]="Wert" ;
+Wert eines Assoziativen-Arrays zuweisen (Langf.)
+$Array=array("I-E0"=>"W0","I-E1"=>"W1") ;
+Werte eines Assoziativen-Arrays zuweisen(Kurzf.)
+echo $Array[Index-Ersatz] ;
+Wert eines Assoziativen-Arrays ausgeben
+$a=$b+$c ;
+Addition von $b und $c gleich $a
+$a=$b-$c ;
+Subtraktion von $b minus $c gleich $a
+$a=$b*$c ;
+Multiplikation von $b mal $c gleich $a
+$a=$b/$c ;
+Division $b geteilt durch $c gleich $a
+$a++ ;
+$a=$a+1 ;
+$a-- ;
+$a=$a-1 ;
+$a=3.1415 ;
+. Dezimaltrenner
+11.3.2. Funktionen
+phpinfo() ;
+PHP-Informationen ausgeben
+$Wochentag=date("w") ;
+Wochentag ermitteln 0-So bis 6-Sa
+$Monatszahl=date("m") ;
+Monatszahl ermitteln
+$Anzahl=count($Array) ;
+Elemet-Anzahl eines Arrays ermitteln
+$Wert=round($Wert,Nachkommastellen) ;
+Rundet den Wert mit Nachkommastellen
+$Wert=sprintf("%01.2f",$Wert) ; Rundet den Wert auf 2 :Nachkommastellen
+96
+
+12. Squid
+12.1. Proxy
+Squid = Proxy-Cache = Stellvertreter-Zwischenspeicher
+12.2. Einfacher Cache
+*---------------*
+*------------* | *---------* | *------------*
+| lokaler Cache |<--->| WWW-Client |<--->| Intenet |<--->| WWW-Server |
+*---------------*
+*------------* | *---------* | *------------*
+Die einfachste form des Caches
+|
+|
+12.3. Proxy Cache
+*------------*
+| WWW-Client |<-+
+|
+|
+*------------* |
+|
+|
+|
+|
+|
+*------------* | *-------------* | *---------* | *------------*
+| WWW-Client |<-+->| Proxy Cache |<--->| Intenet |<--->| WWW-Server |
+*------------* | *-------------* | *---------* | *------------*
+|
+|
+|
+*------------* |
+|
+|
+| WWW-Client |<-+
+|
+|
+*------------*
+12.4. Aufgaben
+• Zwischenspeichern von Internetseitten -> Beschleunigter Zugriff auf Internetin-
+halte
+• Abkoppelung vom direkten Zugriff auf das Internet -> Erhöte Sicherheit im
+lokalem Netz
+• Filterung von Interrnetseiten
+• Protokollierung des Internetverkehrs
+97
+
+12. Squid
+12.5. Eigenschaften
+• Größe des Cache kann frei definiert werden
+• Aufbau von Cache-Hierarchien
+• Eigener DNS-Cache
+• Authentifizierung über zusätzliche Module möglich
+• Für Win, OS/2, Linux, BSD, Solaris verfügbar
+• Ausfilterung und Anonymisierung der Anfragen
+• Sehr flexible Zugriffskontrolle
+• Filterung über externe Programme (Squid-Guard)
+12.6. Protokolle
+12.6.1. Client-Kommunikation
+• Hyper Text Transfer Protocol (HTTP)
+• File Transfer Protocol (FTP)
+• Gopher
+• Wide Area Information Service (WAIS)
+• Secure Socket Layer (SSL)
+12.6.2. Kommunikation zwischen Proxy-Cache-Servern
+• HyperText Transfer Protocol (HTTP)
+• Internet Cache Protocol (ICP(3130))
+• Cache Digests (Index von anderen Caches abfragen)
+• Simple Network Management Protocol (SNMP)
+• HyperText Caching Protocol (HTCP(4837))
+• Web Cache Coordination Protocol (WCCP)
+98
+
+12.7. Systemvoraussetzungen
+12.7. Systemvoraussetzungen
+• Langsamme CPU
+• Viel RAM
+• Schnelle Festplatte(n)
+• Große Festplatte(n)
+12.8. SuSE Linux
+rcsquid start
+Squid starten
+rcsquid stop
+Squid stoppen
+rcsquid restart
+Squid stoppen und dann starten
+rcsquid status
+Squid info
+12.9. Automatische Starten von Squit
+cd /etc/rc.d/rc5.d/
+ln -s ../squid S22squid
+Link zum automatischen Starten in Runlevel 5
+anlegen.
+ln -s ../squid K02squid
+Link zum automatischen Beenden in Runlevel 5
+anlegen.
+12.10. Squiddateien
+/etc/squid.conf
+Squid Konfigurationsdatei
+/usr/share/squid/errors/
+Fehlermeldungen die der Squid ausgibt
+/var/cache/squid/
+Squid-Cache
+/var/log/squid/access.log
+Log-Datei mit allen Zugriffen
+/var/log/squid/cache.log
+Cache-Aktivitaeten
+12.11. squid.conf
+http_port: Proxy-Portnummer
+# http_port 3128
+http_port 8080
+cache_mem: Hauptspeicherverbrauch (x3)
+# cache_mem 8 MB
+maximum_object_size: maximale groeße einer Datei die der Proxy speichert
+# maximum_object_size 4096 KB
+99
+
+12. Squid
+minimum_object_size: minimale groeße einer Datei die der Proxy speichert
+# minimum_object_size 0 KB
+cache_dir: Verzeichnisname GroeßeMByte Ebene1 Ebene2
+# cache_dir ufs /var/cache/squid 100 16 256
+cache_dir ufs /var/cache/squid 400 16 256
+cache_access_log: Log-Datei mit allen Zugriffen
+# cache_access_log /var/log/squid/access.log
+cache_log: Log-Datei fuer alle Cache-Aktivitaeten
+# cache_log /var/log/squid/cache.log
+debug_options: ALL,1-normal 9-maximal
+# debug_options ALL,1
+log_fqdn: Bei on wird der Name und bei off wird die IP-Nummer
+in der access.log speichert
+# log_fqdn off
+log_fqdn off
+client_netmask: Zum Anonymisieren
+255.255.255.255 volle IP-Nr.,
+255.255.255.0 ersten 3 Stellen
+# client_netmask 255.255.255.255
+ftp_user: Anonymer FTP-Name
+# ftp_user Squid@
+ftp_user Anonymous@
+dns_children: maximale Anzahl der DNS Prozesse
+# dns_children 5
+dns_nameservers: Eintrag fuer DNS-Server
+#dns_nameservers 194.25.2.129 192.168.6.66
+reference_age: maximale Alter der Cachefiles (0.0 week/days/months/hours)
+# reference_age 1 year
+negative_ttl: gibt an wie lange eine negative DNS Aufloesung gueltig ist
+# negative_ttl 5 minutes
+http_access: Zugriffsrechte fuer den Cache
+100
+
+12.11. squid.conf
+# acl - aclname acltype string - definiert eine Zuganskontrolle und Sperrliste
+# src - Client IP-Adresse/Adressbereich
+# dst - Zielserver IP-Adresse/Adressbereich
+# srcdomain - Client (Domain-)Name
+# dstdomain - Zielserver (Domain-)Name
+# srcdom_regex - Cient (Domain-)Name als RegEx
+# dstdom_regex - Zielserver (Domain-)Name als RegEx
+# port - Port oder -bereich für Verbindungen
+# proto - Protokoll (z.B. HTTP, FTP ...) für die Verbindung
+# method - Methode der Verbindung (z.B. GET, POST ...)
+# proxy_auth - Benutzernamen bei Authentifizierung
+# urlpath_regex Teil einer URL als RegEx
+acl all src 0.0.0.0/0.0.0.0
+acl rotten dstdomain www.rotten.com
+http_access deny rotten
+http_access allow all
+cache_mgr: E-Mail bei einen Fehler an: E-Mail oder Alias(/etc/aliases)
+# cache_mgr webmaster
+cache_effective_user: BenutzerName/ID
+# cache_effective_user squid
+cache_effective_group: GruppenName/ID
+# cache_effective_group nogroup
+visible_hostname: ServerName bei Fehlermeldungen
+# none
+visible_hostname proxy.gelbdmz.loc
+logfile_rotate: Zeit der Logdateien in Wochen
+# logfile_rotate 0
+append_domain: Kein Punkt in der URL ? Dann diesen Domainnamen anhaengen
+# none
+append_domain .meak.de
+error_directory: Verzeichnis zu den Fehlermeldungen die der Squid ausgibt
+#error_directory /usr/share/squid/errors
+101
+
+
+Teil IV.
+Programmieren
+103
+
+
+13. Bash
+13.1. Einleitung
+Was heist BASH ?
+Bourne-Again SHell
+Was ist die BASH ?
+Standard-Shell der meisten Linux-Distributionen
+Eine fast komplette Programmiersprache
+BASH-Programme werden auch SScripte"(Protokolle) genannt !
+13.2. Referenz
+#!/bin/bash
+Pfad zur Shell die das Programm ausführen soll
+chmod u+x Script
+Macht das Script ausführbar
+bash Script oder sh Script
+so gehts auch
+#
+Kommentar bis Zeilenende
+:
+Null-Funktion. Ein Befehl, der nichts tut.
+(( oder [
+)) oder ]
+echo Text
+Gibt den Text aus
+echo "Text"
+Gibt den Text aus
+echo Text
+Text
+Gibt den Text mit nur einer Leerstelle aus
+echo "Text
+Text"
+Gibt den Text mit allen Leerstellen aus
+echo Text\ \ \ Text
+Gibt den Text mit allen Leerstellen aus
+Variable=7
+Speichert 7 in der Variable
+Variable=z
+Speichert z in der Variable
+echo $Variable
+Gibt den Inhalt der Variable aus
+echo ${Variable}
+Gibt den Inhalt der Variable aus
+Wert=$[$Wert+1]
+Wert=Wert+1
+Wert=$(($Wert+1))
+Wert=Wert+1
+: $[Wert+=1]
+Wert=Wert+1
+: $((Wert+=1))
+Wert=Wert+1
+105
+
+13. Bash
+13.3. Steuer und Sonderzeichen der Bash
+Zeichen
+Funktion
+-------
+--------
+Leerzeichen (space)
+Trenner zwischen Programm-Parametern
+Tabulator (tab)
+Trenner zwischen Programm-Parametern
+Return (newline)
+Befehlseingabe
+\ (backslash)
+Escape-Zeichen
+| (pipe)
+Verkettung der Ein-/Ausgabe mehrerer Programme
+& (ampersand)
+Programm als Hintergrund-Prozess starten,
+Ein-/Ausgabeumleitung
+; (semikolon)
+Trenner zwischen zwei Programmaufrufen
+( ) (braces)
+Gruppierung, Berechnung
+106
+
+14. git
+14.1. Dokumentation
+git help status
+Manpage von git status anzeigen
+git status --help
+Manpage von git status anzeigen
+man git-status
+Manpage von git status anzeigen
+14.2. Konfiguration
+git config --global ...
+Speichern im Homeverzeichnis .gitconfig
+git config --system ...
+/etc/gitconfig konfigurieren unueblich
+git config ...
+Arbeitsverzeichnis .git/config
+git config user.name "Max Mustermann"
+Name konfigurieren
+git config user.email "max.mustermann@examle.com"
+E-Mail konfigurieren
+git config --unset user.name
+Name löschen
+git config alias.st status
+Alias status -> st herstellen
+[alias]
+nützliche Abkürzungen
+st = status
+ci = commit
+br = branch
+co = checkout
+df = diff
+he = help
+cl = clone
+git config -e
+startet Editor auf der Konfiguration
+git config color.ui auto
+Farben einstellen
+git config core.eol lf,crlf oder native Zeilenende lf-Linux crlf-Windows
+native-System-Default
+git config core.safecrlf
+Verbietet Commit bei vermischung
+git config core.autocrlf input
+sichere Einstellung bei älteren
+Git-Versionen unter Windows
+git config il8n.commitEncoding ISO-8859-1Zeichenkodierung ISO-8859-1
+Standart UTF-8
+git config core.pager ’env LESSCHARSET=iso8859 less’
+Zeichenkodierung für den Pager
+git config core.editor vim
+Vim als Editor einstellen
+107
+
+14. git
+git config core.browser ...
+Browser einstellen
+git config help.autocorrect n
+beim Vertippen ähnliches Subkommando
+ausführen, n Zentelsekunden bis zum
+Ausführen, -1 für sofort aus, 0 zeigt
+nur Möglichkeiten an
+git config --list
+alle Einstellungen anzeigen
+14.3. Konfigurationen über Umgebungsvariablen
+GIT_EDITOR
+Editor den Git verwendet
+sonst greift die Variable EDITOR
+GIT_PAGER
+der wert cat schaltet den Pager aus
+GIT_AUTHOR_EMAIL
+E-Mail für den Autor des Commits
+GIT_COMMITTER_EMAIL
+E-Mail für das Commiter-Feld des Commits
+GIT_AUTHOR_NAME
+Name für den Autor des Commits
+GIT_COMMITTER_NAME
+Name für das Commiter-Feld des Commits
+GIT_DIR
+Verzeichnis, in dem sich das Git-Repository befindet
+macht nur sinn bei einem Git-Repository
+14.4. Der Index
+Der Inhalt von Dateinen liegt für Git auf drei Ebenen, den Working Tree, dem Index
+und dem Repository.
+clone/fetch/pull
++----------+ --------------------------------------------------> +
+|Repository|
+|
+--bare init |(origin) | push
+|
+----------> +----------+ <--------------------------------------- +
+|
+|
+|
+status
+add
+status
+commit/--amend
+|
+|
++------------+ ---------> +--------------+ ---------------------> +----------+
+|Working Tree| diff
+|Index
+| diff --staged/--cached |Repository|
+|
+| <--------> |(Staging Area)| <--------------------> |
+|
++------------+ <--------- +--------------+ <--------------------- +----------+
+| reset HEAD
+reset HEAD --
+|
+|
++ -------------------------------------------------> +
+|
+checkout --
+|
+init
+|
+---------------------------------------------------------------------------> +
+git diff
+zeigt den Unterschied zwischen Working Tree
+und Index an
+git diff --color-words
+Änderugen Fablich anzeigen
+108
+
+14.5. Repository
+grün-hinzugekommen rot-entfernt
+git diff --word-diff --no-color ohne Frabe mit Zeichen
+git diff --staged
+zeigt den Unterschied zwischen
+Index(Staging Area) und Repository an
+git diff --cached
+zeigt den Unterschied zwischen
+Index(Staging Area) und Repository an
+14.5. Repository
+git init Beispiel
+Neues Repository herstellen, legt Verzeichnis Beispiel
+an wenn nicht schon vorhanden
+git status
+zeigt den aktuellen Zustand an
+git log
+die Commit Historie anzeigen
+14.6. Commit
+git add Datei
+Datei zum Index hinzufügen
+git add -u oder --update
+Alle Veränderungen in den Index übertragen
+git reset HEAD Datei
+aus der Staging Area zu entfernen
+git commit -m "Erste Version"
+Index zum Working Tree hinzufügen
+git add forgotten_file
+Datei zum Index hinzufügen
+git commit --amend
+den letzten Commit ändern
+git show
+Commit einsehen
+git log
+Commits anzeigen
+14.7. Dateien entfernen
+git rm Datei
+Datei in deinem Arbeitsverzeichnis behalten,
+aber aus der Staging Area nehmen
+git rm -f Datei
+Datei aus dem Arbeitsverzeichis und Index löschen
+git reset HEAD Datei
+Datei in Deinem Arbeitsverzeichnis behalten,
+aber aus der Staging Area nehmen
+14.8. Dateien verschieben
+git mv Datei_alt Datei_neu
+Datei verschieben
+14.9. Änderung an einer Datei rückgängig machen
+git checkout -- Datei
+Datei zurückversetzen auf den letzten Commit oder Klone
+109
+
+14. git
+14.10. Dateien ignorieren
+Dateien im Projektverzeichnis die nicht versioniert im Repository sein sollen
+kommen in die Datei .gitignore.
+.gitignore#
+Zeile mit # oder leere wird ignoriert
+*.o
+ignoriert alle Dateien die mit .o enden
+!lib.o
+wird nicht ignoriert
+/TODO
+ignoriert den Ordner TODO
+build/
+ignoriert alle Dateien im build Verzeichnis
+doc/*.txt
+ignoriert alle .txt Dateien im doc Verzeichnis
+doc/**/*.txt
+ignoriert alle .txt Dateien unterhalb des doc
+Verzeichnis
+14.11. Mit externen Repositorys arbeiten
+git clone git://git.kernel.org/pub/scm/git/git.git
+git Repository herunterladen, Port 9418
+git clone file:///home/git/project.git
+Repository herunterladen, legt harte
+Links an wenn möglich
+git clone ssh://user@server/project.git ssh Repository herunterladen, Port 22
+git clone http(s)://example.com/gitproject.git
+http(s) Repository herunterladen,
+Port 80(443)
+git remote -v
+zeigt an, welche externen Server für
+das Projekt lokal konfiguriert sind
+git remote add Name URL
+Remote Repository hinzufügen
+git remote add origin ssh://git@sonne:/srv/git/linux.git
+Beispiel
+git fetch Name
+Informationen aus dem Remote Repository
+herunterladen
+git pull Name
+entspricht git fetch git merge
+git checkout -b Branch origin/Branch
+erstellt einen lokalen bearbeitbaren
+Branch
+git push origin master
+Änderungen in ein Remote Repository
+hochladen
+git push Remote Branch
+Brauch auf Remote hochladen
+git push Remote :Branch
+löschen entfernter Branches
+git remote show Name
+zeigt die URL für das Remote
+Repository, die Information welche
+Branches verfolgt werden und welcher
+Branch aus dem Remote Repository mit
+dem eigenen Master zusammengeführt
+wird, wenn Du git pull ausführst
+110
+
+14.12. Tags
+git remote rename Name_alt Name_neu
+Name des Remote Repository lokal ändern
+git remote rm Name
+Remote Repository entfernen
+14.12. Tags
+git tag
+vorhandene Tags anzeigen
+git tag -a v1.4 -m ’my version 1.4’
+einen kommentierten Tag anlegen
+git tag -s v1.5 -m ’my signed 1.5 tag’
+einen kommentierten und signierten Tag anlegen
+git tag -v v1.4.2.1
+einen signierten Tag zu verifizieren
+git tag -a v1.2 -m ’version 1.2’ Checksumme
+im Nachhinein taggen, Checksumme des Commits
+oder einen Teil davon angeben
+git log --pretty=oneline
+Commit Historie mit Checksumme
+git push origin v1.5
+Tag veröffentlichen
+git push origin --tags
+Tags veröffentlichen
+git tag -d v1.5
+Tag löschen
+git push origin :refs/tags/v1.5 veröffentlichen Tag löschen
+14.13. Branch
+Was ist ein Branch? Ein Zeiger, der auf den gleichen Commit zeigt, auf dem Du gerade
+arbeitest.
+git branch testing
+erstellt einen neuen Branch mit dem Namen testing
+git checkout testing
+um zu einem anderen Branch zu wechseln
+git branch -b testing
+erstellt und wechselt zu dem Branch
+git merge testing
+führt testing mit dem Master-Branch zusammen
+git branch -d testing
+entfernt testing
+git merge master
+Deinem Zweig mit dem master kombinieren
+git rebase master
+alle Änderungen auf einem Branch, auf einen anderen
+Branch erneut anwenden (nur mit unveröffendlichen
+Branch machen)
+git mergetool
+grafischen Tool zur Bereinigung von Merge-Konflikten
+git branch
+Liste aller Branches anzeigen
+git branch -v
+für jeden Branch den letzten Commit anzeigen lassen
+git branch --merged
+Liste gemergter Branches
+git branch --no-merged
+Liste nicht gemergter Branches
+14.14. Git Aliase
+git config --global alias.co checkout
+co anstelle von checkout schreiben
+111
+
+14. git
+git config --global alias.br branch
+br anstelle von branch schreiben
+git config --global alias.ci commit
+ci anstelle von commit schreiben
+git config --global alias.st status
+st anstelle von status schreiben
+14.15. Git auf einen Server bekommen
+git clone --bare my_project my_project.git
+Projekt zu Projekt.git klonen
+scp -r my_project.git user@git.example.com:/opt/git
+Projekt per ssh hochladen
+git clone user@git.example.com:/opt/git/my_project.git
+Projekt per ssh zum Arbeiten herunterladen
+ssh user@git.example.com
+auf dem Server anmelden
+cd /opt/git/my_project.git
+Projektverzeichnis betreten
+git init --bare --shared
+Gruppenschreibrechte zu einem Repository
+hinzufügen
+14.16. Git auf dem SSH-Server einrichten
+Einrichtung des SSH-Zugangs auf dem Server mit der Authorized-Keys-Methode zur
+Authentifizierung der Benutzer.
+sudo adduser git
+Benutzer git anlegen
+su git
+Rechte von User git erlagen
+cd
+ins Home ~ Verzeichnis des Users wechseln
+mkdir .ssh
+Verzeichnis .ssh anlegen
+- öffentliche SSH-Schlüssel der Entwickler zu der Authorized-Keys-Datei des Benut-
+zers git hinzuzufügen.
cat /tmp/id_rsa.user1.pub > ~/.ssh/authorized_keys
+authorized_keys erstellen und User1 einfügen
+cat /tmp/id_rsa.user2.pub >> ~/.ssh/authorized_keys
+User2 einfügen
+cat /tmp/id_rsa.user3.pub >> ~/.ssh/authorized_keys
+User3 einfügen
+- Leeren Ordner anlegen und mit der Option –bare ein Repository ohne ein Arbeits-
+verzeichnis erzeugen.
cd /srv
+in den Ordner srv wechseln
+mkdir git
+git Ordner anlegen
+cd git
+in den Ordner git wechseln
+mkdir project.git
+project.git Ordner anlegen
+cd project.git
+in den Ordner project.git wechseln
+git --bare init
+Repository ohne ein Arbeitsverzeichnis erzeugen
+112
+
+14.17. Öffentlicher Webserver-Zugang
+- Die erste Version des Projektes in das Repository hochladen
+cd project
+in das Projekt wechseln
+git init
+Projekt Repository herstellen
+git add .
+alle Dateien um Index hinzufügen
+git commit -m ’initial commit’
+Index zum Working Tree hinzufügen
+git remote add origin git@gitserver:/srv/git/project.git
+Server hinzufügen
+git push origin master
+Commits und Referenzen auf den Server hochladen
+- Repository klonen und Änderungen hochladen
+git clone git@gitserver:/srv/git/project.git
+Repository klonen
+cd project
+ins Projekt wechseln
+vim README
+Projekt bearbeiten
+git commit -am ’fix for the README file’
+Änderung speichern
+git push origin master
+Änderung hochladen
+- Git-Zugang absichen
+/etc/passwd
+git:x:1000:1000::/home/git:/bin/sh
+/bin/sh auf
+git:x:1000:1000::/home/git:/usr/bin/git-shell
+/usr/bin/git-shell ändern
+14.17. Öffentlicher Webserver-Zugang
+Anonymen Lese-Zugriff zu Deinem Projekt ermöglichen, per git clone http://git.gitserver.loc/project.git.
+- Hook aktivieren
+cd project.git
+in das Projekt wechseln
+mv hooks/post-update.sample hooks/post-update
+post-update umbenennen
+chmod a+x hooks/post-update
+post-update ausfürbar machen
+- VirtualHost Eintrag zur Apache-Konfiguration hinzufügen
+<VirtualHost *:80>
+ServerName git.gitserver.loc
+ServerAdmin webmaster@localhost
+DocumentRoot /srv/git
+#
+<Directory /srv/git/>
+#
+Order allow, deny
+#
+allow from all
+#
+</Directory>
+<Directory /srv/git/>
+Options Indexes FollowSymLinks
+AllowOverride None
+113
+
+14. git
+Require all granted
+</Directory>
+ErrorLog ${APACHE_LOG_DIR}/git.gitserver.loc-error.log
+CustomLog ${APACHE_LOG_DIR}/git.gitserver.loc-access.log combined
+</VirtualHost>
+Nach dem nächsten push kann per "git clone http://git.gitserver.loc/project.git"das
+Projekt anonym herunter geladen werden.
+14.18. Grundbegriffe
+Versionkontrollsystem (Version Control System, VCS)
+Eine Versionsverwaltung ist ein System, das zur Erfassung von Änderungen
+an Dokumenten oder Dateien verwendet wird.
+Zum Beispiel:
+Zentrale Systeme - zentraler Server
+RCS-Revision Control System, CVS-Concurrent Versions System,
+SVN-Subversion
+Verteilte Systeme - Kein zentraler Server
+Bazaar, Darcs, Fossil, Git, GNU arch, Mercurial, Monotone
+Repository
+Nutzt Git als Dantenbank in der die verschiedenen Zustände jeder Datei
+eines Projektes über die Zeit hinweg ablegt. Jede Änderrung wird als
+Commit verpackt und abgespeichert.
+Working Tree
+Das Arbeitsverzeichnis von Git, oft auch Working Directory genannt.
+Commit Das speichern der veränderten Dateien im Repository.
+HEAD
+Eine symbolische Referenz auf den neusten Commit im aktuellen Branch.
+SHA-1
+Der Secure Hash Algorithm erstellt eine eindeutige, 160 Bit lange
+Prüfsumme. Alle Commits in Git werden nach ihrer SHA-1-Summe benannt,
+die aus dem Inhalt und den Metadaten des Commits errechnet wird.
+Objektmodell
+Ein Git-Repository lässt sich als Graph von Commits modellieren, der
+durch Git-Kommandos manipuliert wird.
+Index
+Der Index ist eine Zwischenstufe zwischen Working Tree und Repository,
+in der Sie einen Commit vorbereiten. Enthält also die Dateien für den
+nästen Commit.
+Clone
+Wenn Sie sich ein Git-Repository aus dem Internet herrunterladen.
+Enthält die gesamte Versionsgeschichte einschließlich aller Commits.
+114
+
+14.18. Grundbegriffe
+Branch Eine Abzweigung in der Entwicklung. Zum Beispiel für neue Featurs,
+Release vorbereitung oder alte Versionen mit Bugfixes zu versorgen.
+master Beim Initialisieren eines neuen Repositorys wird der Branch master
+erstellt analog trunk in anderen Systemen.
+Tag
+Tags sind symbolische Namen für schwer zu merkende SHA-1-Summen.
+Wichtige Commits, wie zum Beispiel Releases v1.2.3. oder können
+zusätzliche Metadateien wie Autor, Beschreibung und GPG-Signatur
+enthalten.
+115
+
+
+15. C/C++
+15.1. Befehle und Grundelemente
+gcc Datei.c
+Programm übersetzen -> a.out
+g++ Datei.cpp
+Programm übersetzen -> a.out (C++)
+gcc -c Datei.c
+Objektdatei herstellen -> Datei.o
+g++ -c Datei.cpp
+Objektdatei herstellen -> Datei.o (C++)
+gcc -o Programmname Datei1.o Datei2.o
+Datei1.o+Datei2.o -> Programmname
+g++ -o Programmname Datei1.o Datei2.o
+Datei1.o+Datei2.o -> Programmname (C++)
+gcc -o Programmname Datei.c
+Programm übersetzen -> Programmname
+g++ -o Programmname Datei.cpp
+Programm übersetzen -> Programmname(C++)
+Programmname
+Programm starten
+configure
+Makefile konfigurieren
+make
+Programm übersetzen,
+wenn Makefile vorhanden
+make install
+Programm installieren
+/*
+Kommentar einleiten
+*/
+Kommentar abschließen
+//
+Kommentar einleiten bis zum Zeilenende (C++)
+{
+Blockbeginn
+}
+Blockende
+,
+mehrere Variablen vom gleichen Typ deklarieren z.B. int a, b, c;
+;
+Funktions-,Operations- und Zeilen-ende (leere Anweisung)
+#include<Datei> Datei aus /usr/include/ bei UNIX einlesen
+#include"Datei" Datei aus dem aktuellen Verzeichnis einlesen
+char
+Variablentyp character - Zeichen
+int
+Variablentyp integer - ganzzahlig mit Vorzeichen
+main()
+Hauptfunktion
+return()
+Wert aus einer Funktion zurückliefern
+15.2. Steuersequenzen für ANSI-Bildschirme -
+Innerhalb von Texten
+\a
+BEL
+bell
+Alarm/Piepton
+117
+
+15. C/C++
+\b
+BS
+backspace
+Rücksetzen um ein Zeichen
+\f
+FF
+formfeed
+Seitenvorschub
+\n
+NL
+new line
+Zeilenvorschub
+\r
+CR
+carriage return
+Wagenrücklauf
+\t
+HT
+horizontal tabulation
+horizontaler Tabulator
+\v
+VT
+vertical tabulation
+vertikaler Tabulator
+\0
+NULL
+null
+kein Zeichen Textende
+\?
+?
+Fragezeichen (kein Dreierzeichen)
+\’
+’
+Hochkomma
+\"
+"
+Anführungszeichen
+\\
+\
+umgekehrter Schrägstrich
+\ddd
+Zeichencode in oktaler Notation
+\xdd
+Zeichencode in hexadezimaler Notation
+\e[1;1H
+Cursor auf x1 und y1 setzen
+\e[1;1f
+-> \e[1;1H
+\e[5A
+Cursor 5 Zeilen aufwärts bewegen
+\e[5B
+Cursor 5 Zeilen abwärts bewegen
+\e[5C
+Cursor 5 Spalten vorwärts(rechts) bewegen
+\e[5D
+Cursor 5 Spalten rückwärts(links) bewegen
+\e[2J
+Bildschirm löschen
+\e[6n
+Ausgabe der Cursor position z.B. ^[[32;6R
+\e[s
+merkt die aktuelle Cursor Position
+\e[u
+Cursor auf gemerkte Position setzen
+\e[Schrift;Vordergrund;Hintergrundmerkmale
+setzt Bildschirmmerkmale
+Schrift
+Vordergrund Hintergrund
+0 normal
+30 schwarz 40
+1 grell
+31 rot
+41
+4 unterstrichen 32 grün
+42
+5 blinken
+33 gelb
+43 braun
+7 reverse
+34 blau
+44
+35 magenta 45
+36 cyan
+46
+37 weiß
+47 grau
+15.3. stdio.h -> Standard Ein- und Ausgabe
+c=getchar();
+Eingabe eines Zeichens, ohne Wagenrücklauf
+putchar(’a’);
+Ausgabe eines Zeichens, ohne Wagenrücklauf
+puts("Text");
+Zeichenkette ausgeben, mit Wagenrücklauf
+fputs("Text",stdount); Zeichenkette ausgeben, ohne Wagenrücklauf
+fputs("Text",stderr);
+Zeichenkette ausgeben, ohne Wagenrücklauf
+printf("Text %d",Zahl); Zeichenkette formatiert ausgeben, ohne Wagenrücklauf
+% F Z1 . Z2 L U
+| | | | | | + Umwandlungszeichen: %d-dezimal
+%u-unsigned
+118
+
+15.4. ctype.h
+| | | | | |
+%o-oktal
+%s-Text %c-Zeichen
+| | | | | |
+%f-Flieskomma
+%e-Expotential
+| | | | | |
+%x-hexadezimal %p-pointer
+| | | | | +-- Long-Ausgabe: notwendig für long int
+| | | | +----- Nachkommastellen: z.B 3 für drei stellen
+| | | +------- Trenzeichen, falls Z1 und Z2
+| | +---------- Größe des Ausgabefensters: z.B 7 für sieben stellen
+| +------------ Ausrichtung: ohne Angabe rechtsbündig,
+|
+mit Minuszeichen linksbündig
++-------------- Fluchtsymbol
+scanf("%c",&text);
+Zeichen in &text einlesen
+% * Z L U
+| | | | +------ Umwandlungszeichen
+| | | +-------- Long-Ausgabe
+| | +---------- Größe des Eingabefensters
+| +------------ Wegwerfen
++-------------- Fluchtsymbol
+15.4. ctype.h
+if(isascii(zeichen))
+überprüft ob es sich um ein ASCII-Zeichen handelt
+if(isxdigit(zeichen))
+überprüft ob es sich um ein Hex-Zeichen handelt
+15.5. string.h
+char *strcat(char text1, char text2) ; hängt Text2(mit \0) an Text1
+char *strchr(const char *text,
+int zeichen) ;
+sucht das erste vorkommende
+Zeichen im Text, liefert Adresse
+oder NULL
+char *strcpy(char text1, char text2) ; kopiert Text2(mit \0) zum Text1
+sitze_t strlen(const char *text) ;
+liefert die Länge von Text(ohne \0)
+char *strncat(char *text1,
+const char *text2, sitze_t n) ;
+hängt Text2 mit n Zeichen
+an Text1(mit \0)
+char *strtok(char *text,
+const char *kette) ;
+1.Aufruf: sucht im Text das erste
+Zeichen das nicht in Kette vorkommt
+(wird kein Zeichen gefunden gibt strtok
+einen NULL-Zeiger zurück), wird ein
+Zeichen gefunden gibt strtok den Zeiger
+zurück, dann sucht strtok ab Zeiger das
+erste Zeichen das in der Kette vorkommt
+119
+
+15. C/C++
+und überschreibt es mit \0, strtok merkt
+sich den Zeiger auf das nächste Zeichen
+char *strtok(NULL, const char *kette) ; 2.-n.Aufruf: wie 1.Aufruf ab gemerkten
+Zeiger
+15.6. Kontrollstrukturen
+if(Ausdruck)
+wenn der Ausdruck stimmt,
+{
+Anweisung-en1;
+Anweisung-en1
+}
else
+sonst
+{
+Anweisung-en2;
+Anweisung-en2
+}
+switch(Ausdruck)
+gehe zum Ausdruck
+{
+case 1: Anweisung-en1; Ausdruck1:
+Anweisung-en1
+case 2: Anweisung-en2; Ausdruck2:
+Anweisung-en2
+break;
+Anweisungen beenden
+case n: Anweisung-enn; Ausdruckn:
+Anweisung-enn
+break;
+Anweisungen beenden
+default: Anweisung-en;
+Ausdruck nicht vorhanden:
+Aneisung-en
+}
+continue;
+unterbricht die Abarbeitung und geht zur Ausdrucksbedingung
+break;
+verlässt die Schleife oder Verbundsanweisung
+for(Ausdruck1;Ausdruck2;Ausdruck3)
+Ausdruck1 einmal ausführen
+{
+so lange der Ausdruck2 stimmt,
+vorher noch Ausdruck3
+Anweisug-en;
+Anweisung-en
+}
+while(Ausdruck)
+so lange der Ausdruck stimmt,
+{
+Anweisung-en;
+Anweisung-en
+}
+do
+mach
+{
+Anweisung-en;
+Anweisung-en
+}
+120
+
+15.7. ASCII(American Standart Code for Information Interchange)-Tabelle
+while(Ausdruck);
+so lange der Ausdruck stimmt
+15.7. ASCII(American Standart Code for Information
+Interchange)-Tabelle
+654
+000
+001
+010
+011
+100
+101
+110
+111
+Bit
+3210
+NUL
+DLE
+SP
+0
+@
+P
+‘
+p
+0000
+$0 0
+$10 16 $20 32 $30 48 $40 64 $50 80 $60 96 $70 112
+SOH
+DC1
+!
+1
+A
+Q
+a
+q
+0001
+$1 1
+$11 17 $21 33 $31 49 $41 65 $51 81 $61 97 $71 113
+STX
+DC2
+"
+2
+B
+R
+b
+r
+0010
+$2 2
+$12 18 $22 34 $32 50 $42 66 $52 82 $62 98 $72 114
+ETX
+DC3
+#
+3
+C
+S
+c
+s
+0011
+$3 3
+$13 19 $23 35 $33 51 $43 67 $53 83 $63 99 $73 115
+EOT
+DC4
+$
+4
+D
+T
+d
+t
+0100
+$4 4
+$14 20 $24 36 $34 52 $44 68 $54 84 $64 100 $74 116
+ENQ
+NAK
+%
+5
+E
+U
+e
+u
+0101
+$5 5
+$15 21 $25 37 $35 53 $45 69 $55 85 $65 101 $75 117
+ACK
+SYN
+&
+6
+F
+V
+f
+v
+0110
+$6 6
+$16 22 $26 38 $36 54 $46 70 $56 86 $66 102 $76 118
+BEL
+ETB
+’
+7
+G
+W
+g
+w
+0111
+$7 7
+$17 23 $27 39 $37 55 $47 71 $57 87 $67 103 $77 119
+BS
+CAN
+(
+8
+H
+X
+h
+x
+1000
+$8 8
+$18 24 $28 40 $38 56 $48 72 $58 88 $68 104 $78 120
+HT
+EM
+)
+9
+I
+Y
+i
+y
+1001
+$9 9
+$19 25 $29 41 $39 57 $49 73 $59 89 $69 105 $79 121
+LF
+SUB
+*
+:
+J
+Z
+j
+z
+1010
+$A 10
+$1A 26 $2A 42 $3A 58 $4A 74 $5A 90 $6A 106 $7A 122
+VT
+ESC
++
+;
+K
+[Ä
+k
+{ä
+1011
+$B 11
+$1B 27 $2B 43 $3B 59 $4B 75 $5B 91 $6B 107 $7B 123
+121
+
+15. C/C++
+FF
+FS
+,
+<
+L
+\ö
+l
+|ö
+1100
+$C 12
+$1C 28 $2C 44 $3C 60 $4C 76 $5C 92 $6C 108 $7C 124
+CR
+GS
+-
+=
+M
+]Ü
+m
+}ü
+1101
+$D 13
+$1D 29 $2D 45 $3D 61 $4D 77 $5D 93 $7D 109 $7D 125
+SO
+RS
+.
+>
+N
+^
+n
+~ß
+1110
+$E 14
+$1E 30 $2E 46 $3E 62 $4E 78 $5E 94 $7E 110 $7E 126
+SI
+US
+/
+?
+O
+_
+o
+DEL
+1111
+$F 15
+$1F 31 $2F 47 $3F 63 $4F 79 $5F 95 $7F 111 $7F 127
+15.7.1. Unterteilung der Steuerzeichen:
+TC
+transmission control
+Übertragungssteuerzeichen
+FE
+format effects
+Formatsteuerzeichen
+IS
+information separators Informationstrennzeichen
+DC
+device control
+Gerätesteuerzeichen
+15.7.2. Bedeutung der Steuerzeichen:
+NUL
+null
+kein Zeichen
+SOH
+TC
+start of heading
+Anfang des Kopfes
+STX
+TC
+start of text
+Anfang des Textes
+ETX
+TC
+end of text
+Ende des Textes
+EOT
+TC
+end of transmission
+Ende der Übertragung
+ENQ
+TC
+enquiry
+Stationsaufforderung
+ACK
+TC
+acknowledge
+positive Rückmeldung
+BEL
+bell
+Alarm / Piepton
+BS
+FE
+backspace
+Rückwärtsschritt
+HT
+FE
+horizontal tabulation
+horizontaler Tabulator
+LF
+FE
+line feed
+Zeilenvorschub
+VT
+FE
+vertical tabulation
+vertikaler Tabulator
+FF
+FE
+form feed
+Seitenvorschub
+CR
+FE
+carriage return
+Wagenrücklauf
+SO
+shift out
+Dauerumschaltung
+SI
+shift in
+Rückschaltung
+DLE
+TC
+data link escape
+Datenübertragungsumschaltung
+DCn
+DC
+device control
+Gerätesteuerzeichen
+NAK
+TC
+negative acknowledge
+negative Rückmeldung
+SYN
+TC
+synchronous idle
+Synchronisierung
+ETB
+TC
+end of transmission block
+Ende des Übertragungsblocks
+CAN
+cancel
+ungültig
+EM
+end of medium
+Ende der Aufzeichnung
+122
+
+15.8. Operatoren und Ausdrücke
+SUB
+substitute character
+Substitution
+ESC
+escape
+Umschaltung
+FS
+IS
+file separator
+Hauptgruppentrennung
+GS
+IS
+group separator
+Gruppentrennung
+RS
+IS
+record separator
+Untergruppentrennung
+US
+IS
+unit separator
+Teilgruppentrennung
+SP
+space
+Leerzeichen
+DEL
+delete
+löschen
+15.8. Operatoren und Ausdrücke
+15.8.1. Arithmetische Operatoren:
+Operator
+Bedeutung
+Assoziativität Rang
+Beispiel
+--------
+---------
+-------------- ----
+--------
++
+Addition
+>
+5
+a+b
+-
+Subtraktion
+>
+5
+a-b
+*
+Multiplikation
+>
+4
+a*b
+/
+Division
+>
+4
+a/b
+%
+Modulo
+>
+4
+a%b
+15.8.2. Vergleichsoperatoren:
+Operator
+Bedeutung
+Assoziativität Rang
+Beispiel
+--------
+---------
+-------------- ----
+--------
+<
+kleiner als
+>
+7
+a<b
+<=
+kleiner oder gleich
+>
+7
+a<=b
+>
+größer
+>
+7
+a>b
+>=
+größer oder gleich
+>
+7
+a>=b
+==
+gleich
+>
+8
+a==b
+!=
+ungleich
+>
+8
+a!=b
+15.8.3. Logische Operatoren:
+Operator
+Bedeutung
+Assoziativität Rang
+Beispiel
+--------
+---------
+-------------- ----
+--------
+&
+bitweises AND
+>
+9
+a&b
+|
+bitweises OR
+>
+11
+a|b
+^
+bitweises XOR
+>
+10
+a^b
+<<
+bitweises Linksschieben
+>
+6
+a<<n
+>>
+bitweises Rechtsschieben
+>
+6
+a>>n
+~
+Einerkomplement
+<
+2
+~a
+&&
+logisches AND
+>
+12
+a&&b
+||
+logisches OR
+>
+13
+a||b
+!
+logische Negation
+<
+2
+!a
+123
+
+15. C/C++
+15.8.4. Zuweisungsoperatoren:
+Operator
+Bedeutung
+Assoziativität Rang
+Beispiel
+--------
+---------
+-------------- ----
+--------
+=
+Zuweisung
+<
+15
+a=b
++=
+Zuweisung nach Addition
+<
+15
+a+=b
+-=
+Zuweisung nach Subtraktion
+<
+15
+a-=b
+*=
+Zuweisung nach Multiplikation
+<
+15
+a*=b
+/=
+Zuweisung nach Division
+<
+15
+a/=b
+%=
+Zuweisung nach Modulo
+<
+15
+a%=b
+<<=
+Zuweisung nach bitweisem
+<
+15
+a<<=b
+Linksschieben
+>>=
+Zuweisung nach bitweisem
+<
+15
+a>>=b
+Rechtsschieben
+&=
+Zuweisung nach bitweisem AND
+<
+15
+a&=b
+|=
+Zuweisung nach bitweisem OR
+<
+15
+a|=b
+^=
+Zuweisung nach bitweisem XOR
+<
+15
+a^=b
+15.8.5. Post- und Prefix- Operatoren:
+Operator
+Bedeutung
+Assoziativität Rang
+Beispiel
+--------
+---------
+-------------- ----
+--------
+++
+Inkrement
+> <
+1 2
+a++ ++a
+--
+Dekrement
+> <
+1 2
+a-- --a
+()
+Funktionsaufruf
+>
+1
+sqrt(a)
+[]
+Arrayelement
+>
+1
+feld[a]
+.
+Feld einer structur oder union >
+1
+tag.dat
+->
+Zeiger auf structur
+>
+1
+zeig->ele
+( type )
+expl. Typenumwandlung
+<
+2
+double(a)
+15.8.6. Zeigeroperatoren:
+Operator
+Bedeutung
+Assoziativität Rang
+Beispiel
+--------
+---------
+-------------- ----
+--------
+&
+Adresse von
+<
+2
+&a
+*
+Indirektion
+<
+2
+*a
+.*
+Dereferenzzeiger
+>
+3
+tag.*dat
+->*
+Dereferenzzeiger
+>
+3
+tag->dat
+15.8.7. Diverse Kategorien:
+Operator
+Bedeutung
+Assoziativität Rang
+Beispiel
+--------
+---------
+-------------- ----
+--------
+?:
+Bedinung
+<
+14
+a?b:c
+i = x<y ? 6 : k+1 ;
+x kleiner y dann 6 sonst k+1
+124
+
+15.9. Inkrementieren und Dekrementieren
+,
+Aufzählungsoperator
+>
+16
+a,b, ...
+-
+unäres Minus
+<
+2
+-n
++
+unäres Plus
+<
+2
++n
+sizeof(typ)
+Größe des Types in Byte
+<
+2
+sizeof(a)
+new
+dynam. Objekt erzeugen
+<
+2
+b = new float[a]
+delete
+dynam. Objekt löschen
+<
+2
+delete b
+::
+Zugiffs-/Bereichsoperator
+<
+2
+adr::nam
+15.9. Inkrementieren und Dekrementieren
+i++ ;
+i = i + 1
+++i ;
+i = i + 1
+x = i++ ;
+1. x = i
+2. i = i + 1
+x = ++i ;
+1. i = i + 1
+2. x = i
+i-- ;
+i = i - 1
+--i ;
+i = i - 1
+x = i-- ;
+1. x = i
+2. i = i - 1
+x = --i ;
+2. i = i - 1
+2. x = i
+15.10. Wertebereich und Genauigkeit elementarer
+Datentypen
+Datentyp
+Bit
+Min.Wert
+Max.Wert
+Genauigkeit
+--------
+---
+--------
+--------
+-----------
+char
+8
+-128
+127
+unsigned char
+8
+0
+255
+short int
+16
+-32768
+32767
+unsigned short int 16
+0
+65535
+int
+(16)32(64)
+-2147483648
+2147483647
+unsigned int
+16
+0
+65535
+long int
+32(64)
+-2147483648
+2147483647
+unsigned long int 32
+0
+4294967295
+float
+32
+ca. 3.4E-38
+3.4E38
+>= 6 Ziffern
+double
+64
+ca. 1.7E-308
+1.7E308
+>= 10 Ziffern
+long double
+80
+ca. 1.2E-4932
+1.2E4932
+>= double
+15.11. Variableninitialisierung
+Nichtinitialisierte Variabeln haben nicht automatisch den Wert 0!
+short faktor=10 ;
+short laktor, messwert ;
+125
+
+15. C/C++
+messwert=faktor ;
+15.12. Konstanten
+Konstanten werden mit dem vorangestellten Schlüsselwort const wie Variabeln dekla-
+riert. Der dem Namen über das =-Zeichen zugeordnete Wert kann nicht im Programm
+verändert werden. Für eine fehlende Typenangabe wird int angenommen.
+cont float
+PI =
+3.14159 ;
+// bevorzugen
+#define
+PI
+3.14159 ;
+15.12.1. Ganzzahlkonstanten
+dezimal = 30 ; oktal = 036 ; hexadezimal = 0x1E ; Zusätzlich kann frau eine Ganz-
+zahlkonstante durch das Suffix L oder l als long und durch U oder u als unsigned
+kennzeichnen (z.B. 30U).
+15.12.2. Gleitkommakonstanten
+0.033 +.033 33E-3 +33.0e-03 Zusätzlich kann frau eine Gleitkommakonstante durch
+das Suffix F oder f als float und durch L oder l als long double kennzeichnen (z.B.
+0.033L).
+15.12.3. Zeichen- und Zeichenkettenkonstanten
+’n’
+“zeichenkette’"
+126
+
+16. Tcl/Tk
+wish
+startet den Tcl/Tk-Interpeter
+exit
+beendet den Tcl/Tk-Interpeter
+wish Programm.tcl
+startet das Programm.tcl
+button .name Option/en Knopf definieren Optionen:
+-text "Aufschrift"
+Knopf-Aufschrift
+-text [Befehl]
+Knopf-Aufschrift vom Befehl
+-command {Befehl}
+Knopf-Befehl
+Befehl: z.B. exec ls oder exec xterm -e vi &
+-relief flat
+Knopf flach
+-relief raised
+Knopf erhoben
+-relief sunken
+Knopf eingedrückt
+-relief ridge
+Knopf Band erhoben
+-relief groove
+Knopf Band eingedrückt
+-padx Pixelzahl
+Abstand zum Rand in x-Richtung
+-pady Pixelzahl
+Abstand zum Rand in y-Richtung
+-image [ image create photo -file Bildname ]
+Knopf mit gif, ppm oder pgm
+-foreground Farbe
+Schriftfarbe "#rgb"->"#ff0000" oder red
+-fg Farbe
+Abkürzung für -foreground Farbe
+-background Farbe
+Knopffarbe
+-bg Farbe
+Abkürzung für -background Farbe
+-width Pixelbreite
+Knopfbreite
+-height Pixelhöhe
+Knopfhöhe
+-font Zeichensatz
+Schrift für den Knopf
+pack .name Option/en
+Knopf anzeigen Option:
+-fill x
+Knopf an die Fensterbreite anpassen
+-expand true
+Knopf im großen Fenster aufteilen
+127
+
+
+17. Perl
+perl -v
+überprüfen ob Perl installiert ist
+129
+
+
+18. CGI+Perl
+18.1. Einleitung
+Was ist CGI?
+Common Gateway Interface. Web-Server-Schnittstelle, um mit
+anderen Programmen zusammenzuarbeiten.
+Was ist Perl?
+Practical Extraction and Report Language. Interpreter-Skript-
+Sprache, die häufig zur Programmierung von CGI-Anwendungen
+benutzt wird.
+18.2. Perl
+18.2.1. Texte und Strings
+# Kommentartext
+(Hash) Einzeiliger Kommentartext
+print "Text" ;
+Text ausgeben
+print "Text\n" ;
+\n Neue Zeile
+print "Text\r" ;
+\r Wagenrücklauf
+print "Text\t" ;
+\t Tabulator
+print "Text\v" ;
+\v Vertikalzeichen
+print "Text\f" ;
+\f Papiereinzugszeichen
+print "Text\b" ;
+\b Rücksetzzeichen
+print "Text\a" ;
+\a Piepton
+print "Text\e" ;
+\e Unterbrechungszeichen
+print $Variable ;
+Variable ausgeben
+print "Text\"" ;
+\" Gänsefüßchen ausgeben
+print "Text\’" ;
+\’ Einfache Anführungszeichen ausgeben
+print "Text\$" ;
+\$ Dollar-Zeichen ausgeben
+print "Text\\" ;
+\\ Backslash ausgeben
+print "Text".$Var."Text" ;
+. Verketten von Zeichenfolgen
+print "Text"x10 ;
+Text 10 mal zusgeben
+18.2.2. Rechenoperationen
+$a=$b+$c ;
+Addition von $b und $c gleich $a
+$a=$b-$c ;
+Subtraktion von $b minus $c gleich $a
+$a=$b*$c ;
+Multiplikation von $b mal $c gleich $a
+$a=$b/$c ;
+Division $b geteilt durch $c gleich $a
+131
+
+18. CGI+Perl
+$a=$b**$c ;
+Potenz $b hoch $c gleich $a
+$a=$b%$c ;
+Modulo $b geteilt durch $c Rest gleich $a
+$a++ ;
+$a=$a+1 ;
+$a-- ;
+$a=$a-1 ;
+$a=3.1415 ;
+. Dezimaltrenner
+18.2.3. Arrays (Listen)
+@Array=("W0","W1") ;
+Werte einer Array-Variable zuweisen (Kurzform)
+$Array[Indexwert]="Wert" ;
+Wert einer Array-Variable zuweisen (Langform)
+@Array=$Liste[2,4,8] ;
+Werte eines Arrays eines Arrays zuweisen
+print @Array ;
+Gesamtes Array ausgeben
+print $Array[Indexwert] ;
+Wert einer Array-Variable ausgeben
+print $#Array ;
+Nummer des letzten Listenelements ausgeben
+18.2.4. String- und Zahlenvergleichsoperratoren
+Vergleich
+Zahlenvergleich Stringvergleich
+Gleich
+==
+eq
+Ungleich
+!=
+ne
+Kleiner als
+<
+lt
+Größer als
+>
+gt
+Kleiner oder gleich
+<=
+le
+Größer oder gleich
+>=
+ge
+18.2.5. if-Bedingung
+if (Bedingung)
+Wenn die Bedingung Wahr,
+{
+Befehle ;
+Befehle ausführen
+}
+18.2.6. if-else-Bedingung
+if (Bedingung)
+Wenn die Bedingung Wahr,
+{
+Befehle ;
+Befehle ausführen
+}
else
+sonst
+{
+Befehle ;
+Befehle ausführen
+}
+132
+
+18.3. Funktionen
+18.2.7. if-elseif-Bedingung
+if (Bedingung)
+Wenn die Bedingung Wahr,
+{
+Befehle ;
+Befehle ausführen
+}
elseif (Bedingung)
+sonst Wenn die Bedingung Wahr,
+{
+Befehle ;
+Befehle ausführen
+}
+18.3. Funktionen
+18.3.1. String Funktionen
+$Var=chop($String) ;
+Löscht das letzte Zeichen von String und
+gibt es an Var
+18.3.2. Rechen Funktionen
+$a=sqrt($b) ;
+Quadratwurzel von $b nach $a
+$a=log($b) ;
+Logarithmus
+$a=exp($b) ;
+Exponenten
+$a=abs($b) ;
+Absoluterwert
+$a=int($b) ;
+Ganzzahlwert
+18.3.3. Array Funktionen
+push(@Liste,@Elemente) ;
+Setzt ein oder mehrere Elemente an
+das Ende der Liste
+unshift(@Liste,"Wert") ;
+Setzt ein oder mehrere Elemente an
+den Anfang der Liste
+$a=shift(@Liste) ;
+Entfernt das erste Element aus der Liste
+und gibt es an $a
+$a=pop(@Liste) ;
+Entfernt das letzte Element aus der Liste
+und gibt es an $a
+splice(@Liste,Start,Anzahl,Element) ;
+Entfernt die Anzahl vom Start der Liste
+und fügt Element ein
+133
+
+
+19. Java
+19.1. Funktion von Java
++---------------+ +--------------------------+ +---------------------+
+| Programm Code |->| Java Compiler (java.exe) |->| Bytecode (01010011) |
++---------------+ +--------------------------+ +---------------------+
+|
+|
+V
+V
++--------------+
++--------------+
+| Ineterpreter |
+| Browser/
+|
+| (java.exe)
+|
+| Appletviewer |
++--------------+
++--------------+
+javac.exe progammcode.java -> programmcode.class
+Programm compilieren
+java.exe programmcode
+Programm ausführen
+appletviewer.exe
+Applets ausführen
+19.2. Sprache und Syntax von Java
+19.2.1. Kommentrare
+/*
+Kommentar-Anfang
+*/
+Kommentar-Ende
+//
+Einzeiliger Kommentar ohne Ende
+;
+Anweisung abschließen
+19.2.2. Datentypen
+Typ
+Inhalt
+Standdartwert
+Größe
+Wertebereich
+boolean True oder False
+False
+1 Bit -
+char
+Unicode Zeichen
+0000
+16 Bit
+0000 bis FFFF (Hex.)
+byte
+Ganzzahl mit Vorzeichen 0
+8 Bit
+-256 bis 255
+short
+Ganzzahl mit Vorzeichen 0
+16 Bit -32768 bis 32767
+int
+Ganzzahl mit Vorzeichen 0
+32 Bit
+-2^31 bis 2^31-1
+long
+Ganzzahl mit Vorzeichen 0
+64 Bit
+-2^63 bis 2^63-1
+float
+Kommazahl
+0.0
+32 Bit -
+double Kommazahl
+0.0
+64 Bit -
+135
+
+19. Java
+19.2.3. Variablen
+Variable deklarieren
+boolean myBool;
+int x = 32;
+double y = 3.2;
+char buchstabe;
+Variabeln ansprechen
+this.buchstabe;
+bezieht sich auf die aktuelle Klasse
+19.3. Pakete und Verzeichnisstrukturen
+19.3.1. Sichtbarkeit und Zugriffsrechte von Klassen und
+Methoden
+public
+Klasse, Methode oder Variable die überall sichtbar ist
+protected
+Methode oder Variable die nur im eigenen Paket und
+abgeleiteten Klassen sichtbar ist
+default
+Klasse, Methode oder Variable die Sichtbarkei beschrängt
+sich auf das eigen Paket
+private protected
+Methode oder Variable die nur in abgeleiteten Klassen
+sichtbar ist
+private
+Methode oder Variable die nur in der eigenen Klasse
+sichtbar ist
+Zugriff
+public protected default private protected private
+-------
+------ --------- ------- ----------------- -------
+Zugriff ...
+... im selben Paket
+Ja
+Ja
+Ja
+Nein
+Nein
+... von anderen Paketen
+Ja
+Nein
+Nein
+Nein
+Nein
+Vererbt ...
+... Klassen im selben Paket
+Ja
+Ja
+Ja
+Ja
+Nein
+... Klassen an andere Pakete Ja
+Ja
+Nein
+Ja
+Nein
+19.3.2. Klassen
+class Klasse
+Klassendeklaration
+{
+...
+}
+public class Klasse
+öffendliche Klassendeklaration
+136
+
+19.3. Pakete und Verzeichnisstrukturen
+{
+-ohne public ist die Klasse automatisch "privat"
+...
+}
+package Paketklasse;
+Klassen zusammenfassen d.h. Paketklasse.Klasse
+public class Klasse
+{
+...
+}
+package Paket.Paketklasse
+Oberklassen zusammenfassen d.h.
+Paket.Paketklasse.Klasse
+19.3.3. Konstruktoren und Destruktoren
+class Klasse
+Konstruktor
+{
+-----------
+public Klasse()
+Methode die beim Erschaffen eines neuen Objektes
+{
+automatisch aufgerufen wird
+...
+}
+Destruktor
+----------
+protected void finalize()
+Methode die beim Löschen eines alten
+{
+Objektes automatisch aufgerufen wird
+...
+}
+}
+19.3.4. Methoden überladen
+class Klasse
+{
+Methode()
+Dieselbe Metode mehrmals mit unterschielichen
+{
+Parametern schaffen
+...
+}
Methode(int var)
+Dieselbe Metode mehrmals mit unterschielichen
+{
+Parametern schaffen
+...
+}
+}
+19.3.5. Objekte
+objekt Neuobjekt = new objekt();
+Neues Objekt Neuobjekt von der Klasse
+137
+
+19. Java
+objekt erstellen
+19.3.6. Vererbung
+public class NeuKlasse extends Klasse {}
+neue Klasse NeuKlasse herstellen
+alle sichtbaren Eigenschaften
+und Methoden werden übernommen
+19.3.7. Schnittstellen
+public interface Klasse {
+Schnittstelle erschaffen
+Methodenkopf();
+Variablen;
+}
+class NeuKlasse extends Klasse implements IntKlasse
+neue Klasse NeuKlasse
+herstellen
+alle sichtbaren Eigenschaften
+und Methoden werden übernommen
+und die Schnittstelle IntKlasse
+hinzufügen
+19.4. Elementare Syntax von Java
+19.4.1. Operratoren
+x = 10;
+Das Gleichheitszeichen weist immer den rechten Wert dem auf
+der linken Seite zu
+19.4.2. Verknüpfungsoperatoren
+Operator
+Bedeutung
+Beispiel
+--------
+---------
+--------
++
+Addition
+7 = 3 + 4;
+-
+Subtraktion
+1 = 7 - 6;
+*
+Multiplikation 6 = 2 * 3;
+/
+Division
+3 = 9 / 3;
+%
+Modulo(Rest)
+1 = 9 % 4;
+19.4.3. Inkrement-Operator
+x++;
+x = x + 1;
+138
+
+19.4. Elementare Syntax von Java
+19.4.4. Dekrement-Operator
+x--;
+x = x - 1;
+19.4.5. Arithmetische Zuweisungsoperatoren
+Operator
+Beispiel
+Bedeutung
+--------
+--------
+---------
++=
+x += 3;
+x = x + 3;
+-=
+x -= 3;
+x = x - 3;
+*=
+x *= 3;
+x = x * 3;
+/=
+x /= 3;
+x = x / 3;
+%=
+x %= 3;
+x = x % 3;
+19.4.6. Bedingungen und Entscheidungen
+if(Bedingung) {
+wenn Bedingung wahr dann Anweisungen
+Anweisungen;
+if ( x != y ) { z++; }
+}
+Operator
+Beschreibung
+--------
+------------
+==
+Gleichheit
+!=
+Ungleichheit
+<
+kleiner als
+>
+größer als
+<=
+kleiner gleich
+>=
+größer gleich
+19.4.7. if - else - Bedingungen
+if(Bedingung) {
+wenn Bedingung wahr dann Anweisungen1 sonst Anweisungen2
+Anweisungen1;
+if ( x != y ) { z++; } else { z--; }
+} else {Anweisungen2;
+}
+19.4.8. Verschachtelte Bedingungen
+if(Bedingung1) {
+wenn Bedingung1 und Bedingung2 dann Anweisungen1
+if(Bedingung2){
+sonst Anweisungen2
+Anweisungen1;
+if( x != y ) { if( a < b ){z++;} } else { z--; }
+}
+} else {Anweisungen2
+}
+139
+
+19. Java
+19.4.9. Fallunterscheidung mit switch - case
+switch(Ausdruck) {
+switch(2) {
+Route 2 also
+case Wert1: Anweisungen1;
+case 1: x++;
+x = x - 1;
+break;
+break;
+case Wert2: Anweisungen2;
+case 2: x--;
+break;
+break;
+case Wert3: Anweisungen3;
+}
+break;
+}
+19.5. Schleifen
+19.5.1. Die while - Schleife
+while(Bedingung) {
+int x=0;
+solange Bedingung wahr
+Anweisungen;
+while(x<10) {
+Anweisungen
+}
+x++;
+}
+19.5.2. Die do - while - Schleife
+do {
+int x=0;
+Anweisungen dann solange
+Anweisungen;
+do {
+Bedingung wahr
+} while(Bedingung);
+x++;
+Anweisungen
+} while(x<10);
+19.5.3. Die for - Schleife
+for(Initialisierung; Bedingung; Schleifenschritt) {
+solange Bedingung wahr
+Anweisungen;
+Anweisungen
+}
+for(x=0;x<10;x++) {
+y++;
+}
+19.5.4. Schleifen mit break verlassen
+for(x=0;x<10;x++) {
+Die Schleife wird vor dem y++ verlassen
+break;
+y++;
+}
+19.5.5. Schleife mit continue wiederholen
+for(x=0;x<10;x++) {
+Die Schleife wird vor dem y++ wiederholt
+140
+
+19.6. Komplexe Datentypen
+continue;
+y++;
+}
+19.6. Komplexe Datentypen
+19.6.1. Arrays
+int liste[] = new int[10];
+schafft ein Array dass zehn verschiedene int-
+Werte speichern kann
+int Array[][] = new int[3][3]; schafft ein zweidimensionales Array
+int liste[] = {3, 5, 7};
+schaft ein Array mit 3 Werten
+liste[0] = Wert;
+Wert des 1. Elements zuweisen
+liste[0][0] = Wert;
+Wert des 1. Elements zuweisen
+Wert = liste[0];
+Wert des 1. Elements abrufen
+Wert = liste[0][0];
+Wert des 1. Elements abrufen
+liste.length
+enthält die Länge des Arrays liste
+19.7. Die Anweisung import
+import haus.wand.stein;
+import erlaubt es Klassen im Sourcecode
+getAnzahl();
+über einen gekürzten Namen anzuspechen
+haus.wand.stein.getAnzahl() -> getAnzahl()
+import java.lang.*;
+importiert alle Bestandteile ins Programm
+19.8. Java eigene Klassen
+19.8.1. Die Klasse Math
+Math.*
+bietet mathematische Funktionen
+Math.E
+Eulersche Zahl
+Math.PI
+PI
+Math.random()
+Zufallszahl zwischen 0 und 1
+Math.round()
+rundet zu Ganzzahlen
+19.9. Die Klasse Object
+19.9.1. Die Klasse Object
+getClass()
+liefert die Klasse eines Objektes zurück
+equals()
+vergleicht zwei Objekte gibt true oder false
+141
+
+19. Java
+19.10. Die Klasse Runtime
+Um diese Klasse zu nutzen,muss mit getRuntime() erst ein Objekt erstellt werden!
+Runtime mySystem = Runtime.getRuntime();
+Objekt Runtime erstellen
+freeMemory()
+freier Speicher
+totalMemory()
+gesamter Speicher
+exit(0)
+Programm sofort mit Wert verlassen
+exec()
+Systemprogramme starten (s. Exceptions)
+19.11. Die Klasse String
+String s = "Hallo" + " Du !";
+Strings zusammenfassen
+charAt()
+gibt einen Buchstaben aus dem String zurück
+indexOf()
+Position von Buchstaben/ketten feststellen
+substring()
+String auseinanderschneiden
+lenght()
+Länge eines Strings bestimmen
+19.12. Die Klasse Stringbuffer
+19.12.1. Die Klasse Stringbuffer
+Um diese Klasse zu nutzen, muss erst ein Objekt erstellt werden!
+Stringbuffer buffer = newStringbuffer("");
+Objekt Stringbuffer erstellen
+setCharAt()
+änderrung eines bestimmten Buchstaben im String
+delete()
+löscht Teile aus dem String
+replace()
+ersetzt Teile im String
+insert()
+setzt Teile im String ein
+19.13. Die Klasse System
+Standardeingabe - in, Standardausgabe - out, Fehlerausgabe - err
+System.out.println("Text")
+Text ausgeben
+byte[] b = new byte[80];
+System.in.read(b);
+Einlesen von Daten
+19.14. Das Paket java.util
+import java.util.*;
+Paket einbinden
+142
+
+19.15. Ausnahmen (Exceptions)
+19.14.1. Die Klasse Date
+Date myDate = new Date();
+Objekt Date erstellen
+toString()
+Datum in einen String umwandeln
+getTime()
+UNIX-Timestamp, der die Sekunden seit dem
+1.1.1970 ausgibt
+before()
+vergleicht das Datumsobjekt od es davor ist
+after()
+vergleicht das Datumsobjekt od es danach ist
+Erweiterte Funktionen rund um das Datum gibt es in der Klasse Calendar bzw.
+DateFormat in der Java-API
+19.14.2. Die Klasse Random
+Random zz = new Random();
+Objekt Random erstellen
+Methode
+Bereich
+Typ
+-------
+-------
+---
+nextInt()
+-2^31 bis 2^31-1
+int
+nextLong()
+-2^63 bis 2^63-1
+long
+nextFloat()
+0.0 bis 1.0
+float
+nextDouble()
+0.0 bis 1.0
+double
+nextGaussian()
+gibt eine Zufallszahl zurück, die nach dem Gauß-
+Verfahren ermittelt wurde
+19.14.3. Die Klasse Stack
+Stack myStack = new Stack();
+Objekt Stack erstellen
+push()
+legt ein Objekt auf dem Stack ab
+pop()
+holt das oberste Objekt vom Stack und löscht es
+peek()
+holt das oberste Objekt vom Stack
+19.15. Ausnahmen (Exceptions)
+import java.io.*;
+public class trycatchfinally {
+public static void main(String args[]) {
+Runtime mySystem = Runtime.getRuntime();
+//Objekt Runtime erstellen
+try{
+//unsichere Anweisungen
+mySystem.exec("xaos");
+} catch(IOException e) {
+//Fehlerbehandlung
+System.err.println("Es ist ein Fehler aufgetreten: " + e);
+143
+
+19. Java
+} finally {
+//Anweisungen werden immer ausgeführt
+System.out.println("Kritischer Bereich wurde ausgeführt!");
+}
+}
+}
+19.15.1. Eigene Ausnahme erzeugen (throw)
+Methode(int zahl) {
+if(zahl<0) {
+throw(new Exception("Fehler!"));
+} elese {zahl++;
+}
+}
+19.16. Multitasking mit Threads
+19.16.1. Arbeiten mit Threads
+java.lang
+die Klasse Thread ist ein Bestandteil des Paketes
+public class Klasse implements Runnable {}
+neue Klasse über die
+Schnittstelle Runnable erstellen
+run()
+Methode run() (Code des Threads)
+muss überschrieben werden
+Klasse test = new Klasse();
+In main(): Objekt der eigenen Klasse
+test.start();
+erstellen und Startmethode
+aufrufen
+public void start() {
+Thread myThread = new Thread(this);
+Objekt aus der Klasse Thrad
+erstellen und deren Konstruktor
+das aktuelle Objekt als
+parameter übergeben
+myThread.start();
+Thread starten
+...;
+myThread.stop();
+Thread beenden
+}
+myThread.sleep(x);
+Thread x Milisekunden pausieren
+muss mit Ausnahme abgefangen
+144
+
+19.17. Applets
+werden InterruptedException
+myThread.suspend();
+Thraed anhalten
+myThread.resume();
+Thread wieder starten
+myThread.destroy();
+Thread zerstören/anhalten
+19.17. Applets
+19.17.1. Applets in eine Webseite einbinden
+<html>
+<head>
+<title>Mein erstes Applet</title>
+</head>
+<body>
+<applet code="myApplet.class" width=150 height=150>
+<parm name="var1" value="Hallo">
+<parm name="var2" value="Java!">
+</applet>
+</body>
+</html>
+19.17.2. Das erste Java Applet
+import java.applet.*;
+import java.awt.*;
+public class MyApplet extends Applet {
+public void paint(Graphics g) {
+g.drawString("Mein erstes Applet !", 20, 40);
+}
+}
+19.17.3. Die Methoden eines Applets
+init()
+wird automatisch bei der Initialisierung des Applets aufgerufen
+start()
+wird automatisch aufgerufen, wenn das Applet im sichtbaren
+Browser-Bereich erscheint
+stop()
+wird automatisch aufgerufen, wenn das Applet den sichtbaren
+Bereich verläßt
+destroy()
+wird automatisch beim verlassen der Seite oder schließen des
+Browsers aufgerufen
+19.17.4. Ein Applet im Überblick
+import java.applet.*;
+import java.awt.*;
+145
+
+19. Java
+public class newApplet extends Applet {
+public void init() {
+//initialisierung aller nötigen Werte für das Programm
+}
public void start() {
+//Start des Applets
+}
public void paint(Graphics g) {
+//Grafikausgabe über das Objekt g !
+}
public void stop() {
+//Stop des Applets
+}
public void destroy() {
+//Ende des Applets
+//Speicher wird freigegeben
+}
+}
+19.17.5. Pakete
+java.awt
+dient zur Bearbeitung und Ausgabe von Grafiken und
+Fensterelementen in Applikationen und Applets
+(advanced window toolkit)
+java.applet
+eine Grundvoraussetzung für ein Applet
+19.17.6. Die Klasse Graphics
+public void paint(Graphics g) {
+um in das Applet zu zeichnen
+drawString("Text",x,y);
+Text im Applet ausgeben
+}
+drawLine()
+Linie zeichnen
+drawRect()
+Rechteck zeichnen
+fillRect()
+gefülltes Rechteck zeichen
+drawRoundRect()
+Rechteck mit abgerundeten Ecken zeichnen
+fillRoundRect()
+gefülltes Rundeck zeichnen
+drawOval()
+Kreis/Elipse zeichnen
+fillOval()
+gefüllte/r Kreis/Elipse zeichnen
+copyArea()
+kopieren eines sichtbaren Bereiches
+19.17.7. Die Klasse Color
+Color farbe = new Color(r,g,b);
+Farben erzeugen r=0-255 g=0-255 r=0-255
+Color dfarbe = farbe.darker();
+nächst dunklere Farbe
+146
+
+19.17. Applets
+Color hfarbe = farbe.brighter();
+nächst hellere Farbe
+Konstante
+Frabe
+---------
+-----
+Clolor.white
+weiss
+Clolor.yellow
+gelb
+Clolor.orange
+orange
+Clolor.grey
+grau
+Clolor.pink
+pink
+Clolor.red
+rot
+Clolor.magenta
+magenta
+Clolor.green
+grün
+Clolor.blue
+blau
+Clolor.darkGray
+dunkelgrau
+Clolor.lightGray
+hellgrau
+Clolor.black
+schwarz
+19.17.8. Die Klasse Font
+Windows
+Java
+-------
+----
+Arial
+Helvetica
+Courier New
+Corier
+MS Sans Serif
+Dialog
+Times New Roman TimesRoman
+WingDings
+ZapfDingbats
+Arial
+default
+Font f = new Font("art", stil, größe);
+neue Schrift erstellen
+stil: plain(normal),
+italic(kursiv), blod(fett)
+19.17.9. Die Klasse Image
+Image myImage = getImage(getCodeBase(), "Bild.jpg");
+Bildobjekt erschaffen
+drawImage()
+Bild anzeigen
+19.17.10. Die Klasse Button
+Button myButton = new Button("Klick");
+Buttonobjekt erschaffen
+setLabel()
+Beschriftung des Buttons ändern
+getLabel()
+Beschriftung des Buttons auslesen
+147
+
+19. Java
+19.18. Eventhandling
+java.awt.event.*;
+Paket zur Ereignisbehandlung einbinden
+19.18.1. Mouse Events
+public class myApplet extends Applet implements MouseListener {}
+Schnittstelle MouseListener implementieren
+Methode
+Aufgabe
+-------
+-------
+mousePressed() Maustaste wird gedrückt
+mouseReleased() Maustaste wird losgelassen
+mouseClicked() Mausklick
+mouseEntered() Maus bewegt sich in das Applet
+mouseExited()
+Maus verlässt das Applet
+addMouseListener(this);
+Listener soll auf das gesamte Applet achten
+public void mousePressed(mouseEvent e) {
+int x = e.getX();
+Maustaste an X gedrückt
+int y = e.getY();
+Maustaste an Y gedrückt
+}
+addMouseMotionListener(this);
+MotionListener soll auf das Applet achten
+mouseMoved()
+bewegte Mausereignisse
+mouseDragged()
+19.18.2. Action Events
+public class myApplet extends Applet implements ActionListener {}
+Schnittstelle ActionListener implementieren
+Button myButton = new Button("Knopf"); Button erstellen
+this.add(myButton);
+Button setzen
+myButton.addActionListener(this);
+Button mit ActionListener versehen
+public void actionPerformed(ActionEvent e) {
+Aufruf beim Anklicken des Button
+String Klick = e.getActionCommand();
+gibt die Aufschift des Button
+}
+19.18.3. Parameter an ein Applet
+<applet code="myApplet.class" width=150 height=150>
+148
+
+19.18. Eventhandling
+<parm name="var1" value="Hallo">
+Parameter1
+<parm name="var2" value="Java!">
+Parameter2
+</applet>
+String var1 = getParameter("var1");
+Parameter1 an den String var1
+String var2 = getParameter("var2");
+und var2 übergeben
+19.18.4. Weitere wichtige Pakete
+java.net
+Klassen und Schnittstellen für Netzwerkentwicklung
+java.beans
+wieder verwentbare Komponenten
+java.security
+erhöte Sicherheit innerhalb von Applikationen/Applets
+java.rmi
+Verteilung eines Programms auf mehrere Rechner
+java.sql
+Anbindung an SQL-Datenbanken
+java.servlet
+Applikationen die serverseitig laufen
+149
+
+
+20. JavaScript
+20.1. Einbindung von JavaScript
+20.1.1. Einbindung in den Head
+<html>
+<head>
+<title></title>
+<script language="JavaScript">
+Leitet den JavaScript-Quelltext ein
+<!--
+Kommentar anfang für alte Browser die
+Definition von Fnktionen und
+kein JavaScript unterstüzen
+Variablen
+JavaScript-Quelltext
+//-->
+Kommentar ende
+</script>
+Beendet den JavaScript-Quelltext
+</head>
+<body>
+</body>
+</html>
+20.1.2. Einbindung in den Body
+<html>
+<head>
+<title></title>
+</head>
+<body>
+<script>
+Leitet den JavaScript-Quelltext ein
+</script>
+Beendet den JavaScript-Quelltext
+</body>
+</html>
+20.1.3. Ausführen bei bestimmten Aktionen
+<html>
+<head>
+<title></title>
+</head>
+<body onLoad="JavaScript-Quelltext"> Beim Laden wird der JavaScript-Quelltext
+151
+
+20. JavaScript
+ausgeführt
+</body>
+</html>
+20.2. Variablen
+var GlobaleVariable
+Globale Variable deklarieren
+function() {
+var LokaleVariable
+Lokale Variable deklarieren
+}
+var variable
+Variable deklarieren
+variable = "Wert"
+Wert zuweisen
+var zahl=9
+Variable deklarieren und Wert zuweisen
++
+Verketten
+20.3. Objekte
+20.3.1. Standardobjekte
+document.write("Hallo")
+Hallo auf der Seite ausgeben
+document.writeln("Hallo")
+Hallo auf der Seite mit Zeilenumruch
+ausgeben
+document.close()
+Schreiben schließen
+document.bgColor=("ffffff")
+Hintergrunffarbe
+document.fgColor=("000000")
+Fordergrundfarbe
+document.linkColor=("00ff00")
+Neuer Link
+document.vlinkColor=("ffff00")
+Besuchter Link
+document.alinkColor=("ff0000")
+Aktiver Link
+document.referrer
+URL von der aufgerufen wurde
+document.location
+URL der Datei selber
+document.title
+Titel der Seite
+document.Name.src="bild2.gif"
+<img src="bild.gif" name="Name"> um auf
+das Bild zuzugreifen
+document.forms[0].Name.value
+Formular 1(0); aktueller Text im
+Eingabefeld auslesen oder überschreiben
+document.forms[0].Name.defaultValue
+Defaultwert auslesen oder überschreiben
+document.forms[0].Name.select()
+Text im Eingabefeld makieren
+document.forms[0].Name.focus()
+Cursor in das Eingabefeld setzen
+152
+
+20.3. Objekte
+document.forms[0].Name[0].checked
+Radio-Checkbuttons liest oder schreibt,
+ob ein Button ausgewählt ist
+document.forms[0].Name[0].defaultCheckedVoreinstellung eines Button lesen oder
+schreiben
+nicht markiert
+markiert
+0
+1
+false
+true
+document.forms[0].Name.options[0].selectedIndex
+Auswahlliste auslesen oder schreiben
+document.forms[0].Name.options[0].value Wert auslesen oder schreiben
+parent.frames[0].location.href=
+Frameinhalt ändern 0 -> Frame 1
+"frame.htm"
+parent.
+verzweigt in den nächsthöheren Frame
+top.
+verzweigt in den höchsten Frame im
+Browser
+frames[n]
+verzweigt auf die nächstniedrigere Stufe
+in den Frame mit dem Index n
+window.status=("Hallo")
+Hallo in der Statusleiste ausgeben
+myWindow=window.open("Dateiname","Fenstername","Eigenschaften")
+Öffnet ein neues Fenster
+Eigenschaften: width=(Pixel)
+gibt die Breite an
+height=(Pixel)
+gibt die Höhe an
+resizable=yes/no
+größe des Fensters veränderbar ?
+menubar=yes/no
+Menüleiste vorhanden ?
+toolbar=yes/no
+Buttonleiste vorhanden ?
+location=yes/no
+Adresszeile vorhanden ?
+status=yes/no
+Statuszeile vorhanden ?
+scrollbars=yes/no
+Bildlaufleiste vorhanden ?
+dependent=yes/no
+Vom aktuellen Fenster abhängig ?
+myWindow.close()
+Schließt das neue Fenster
+myWindow.closed
+Zugriff auf den Fensterzustand
+20.3.2. String-Objekt
+String.length
+Anzahl der Zeichen des Strings
+String.substring(Anfang,Ende)
+Gibt den Anfang bis Ende des Strings zurück
+String.toLowerCase
+Wandelt alle Buchstaben in Kleinbuchstaben
+String.toUpperCase
+Wandelt alle Buchstaben in Großbuchstaben
+153
+
+20. JavaScript
+20.3.3. Eigene Objekte
+function person(name, alter) {
+Funktion
+this.name = name
+zum
+this.alter = alter
+Objekt
+}
+anlegen
+var meier = new person("Geier Meier", 18)
+Objekt erzeugen
+meier.name = "Mr. Geier Meier"
+Wert ändern
+meier.alter = 20
+Wert ändern
+meier = new Object
+Objekt erzeugen
+meier.vorname = "Geier"
+Wert zuweisen
+meier.nachname = "Meier"
+Wert zuweisen
+20.3.4. Arrays
+Variable = new Array
+Array erzeugen
+Variable[0] = "hallo"
+Wert zuweisen
+20.4. Mathematische Operationen
+c = a + b
+Addition
+a++ ; a = a + 1
+c = a - b
+Subtraktion
+a-- ; a = a - 1
+c = a * b
+Multiplikation
+c = a / b
+Division
+a = Math.round(b)
+Ganzzahlige Rundung
+20.5. Bedingte Ausführung
+if(Ausdruck)
+wenn der Ausdruck stimmt,
+{
+Anweisung-en1
+Anweisung-en1
+}
+20.6. Schleifen
+for(Ausdruck1;Ausdruck2;Ausdruck3)
+Ausdruck1 einmal ausführen
+{
+so lange der Ausdruck2 stimmt,
+vorher noch Ausdruck3
+Anweisug-en
+Anweisung-en
+154
+
+20.7. Event-Handler
+}
+while(Ausdruck)
+so lange der Ausdruck stimmt,
+{
+Anweisung-en
+Anweisung-en
+}
+20.7. Event-Handler
+onLoad="Aktion"
+Beim Laden Aktion ausführen
+onUnload="Aktion"
+Beim Schließen Aktion ausführen
+onMouseOver="Aktion"
+Beim Überfahren Aktion ausführen
+onMouseOut="Aktion"
+Beim Verlassen Aktion ausführen
+onFocus="Aktion"
+Beim Setzen des Cursors auf das Element
+(Einsatz in Formularen)
+onBlur="Aktion"
+Beim Verlassen des Elementes
+onChange="Aktion"
+Beim Verlassen des Elementes wenn verändert
+onClick="Aktion"
+Beim Anklicken eines Formularelements
+<a href="javascript:function(’Link’)">Verweistext</a>
+onSubmit="Aktion"
+Beim Senden eines Formulares Aktion ausführen
+20.8. Funktionen
+function Name(var1,var2)
+Definiert eine Funktion mit dem Name
+{ alert(var2)
+Hier kommt der Funktionsinhalt rein
+}
+return("Hallo")
+Hallo zurück geben
+alert("Text")
+Öffnet ein Fenster und gibt den Text aus
+uhrzeit=new Date()
+Datum und Uhrzeit in das Objekt uhrzeit
+schreiben
+st=uhrzeit.getHours()
+Stunden aus dem Objekt uhrzeit der Variable
+st zuweisen
+min=uhrzeit.getMinutes()
+Minuten aus dem Objekt uhrzeit der Variable
+min zuweisen
+setTimeout("Funktion",Millisekunden)
+Funktion nach Millisekunden aufrufen
+Math.random()
+155
+
+20. JavaScript
+20.9. Reservierte Wörter
+abstract
+boolean
+break
+byte
+case
+catch
+char
+class
+const
+continue
+debugger
+default
+delete
+else
+enum
+export
+extends
+false
+final
+finally
+float
+for
+function
+goto
+if
+implements
+import
+in
+instanceof
+int
+interface
+long
+native
+new
+null
+package
+private
+protected
+public
+return
+short
+static
+super
+156
+
+20.9. Reservierte Wörter
+switch
+synchronized
+this
+throw
+throws
+transient
+true
+try
+typeof
+var
+void
+volatile
+while
+with
+157
+
+
+Teil V.
+Anhang
+159
+
+
+21. Glossar
+Abhängigkeiten Ein von rpm verwendetes System, um die Verwaltung installierter
+Software zu vereinfachen. Jedes Paket enthält ein Skript, das dem lokalen rpm
+mitteilt, welche anderen Pakete es zur Ausführung benötigt. Sind die erforderli-
+chen Pakete nicht installiert, wird die Installation abgebrochen. Gleiches gilt für
+die Deinstallation.
+Andere, others In UNIX die Gruppe der Benutzer, die weder Eigetümer einer Datei
+sind, noch zur Besitzergruppe gehören. Es ist generell eine gute Idee, die Rechte
+dieser Gruppe so restriktiv wie möglich zu handhaben. Siehe auch Besitzergrup-
+pe.
+alias Ein Shell-Mechanismus, um eine Zeichenkette durch einen anderen zu ersetzen,
+bevor ein Kommando ausgeführt wird. Einen Überblick über alle definierten
+Aliasse erhalten Sie mit dem Kommando alias.
+Anzeigehilfe Programm zum Anzeigen einer (Text-) Datei. Es bietet die Möglichkeit
+einfach vorwärts und rückwärts durch das Dokument zu navigieren sowie Zei-
+chenketten zu suchen. Wir empfehlen Ihnen das Programm less zu verwenden
+(u.a. da es die selben Tastaturkürzel wie vim verwendet).
+APM Advanced Power Management (”Fortgeschrittenes Energiemanagement”). Wird
+von einigen BIOSsen dazu benutzt, die Maschine nach einer Periode von Inakti-
+vität in einen energiesparenden Ruhezustand zu bringen. Auf Laptops ist APM
+auch dafür zuständig, Informationen über den Batteriestatus bzw. die verblei-
+bende Arbeitszeit bereit zu stellen.
+Arbeitsfläche Wenn Sie das X-Windows-System verwenden, ist die Arbeitsfläche der
+teil des Bildschirmes, auf dem Sie arbeiten und auf dem Ihre Symbole und Fenster
+dargestellt werden. Manschmal wird auch lachs vom ”Hitergrund” gesprochen.
+Siehe auch: virtuelle Arbeitsfläche.
+ARP Address Resolution Protocol. (”Protokoll zur Adress-Auflösungs”). Das Protokoll
+um IP-Adressen dynamisch in physikalische (Hardware-)Adressen umzuwandeln.
+Nur möglich auf direkt verbundenen Netzwerken im Hardware- Broadcasting.
+ASCII Abkürzung für American Standart Code for Information Interchange. Es han-
+delt sich um den meistvervwendeten 7-Bit-Kode zur Darstellung von Ziffern,
+Buchstaben und Sonderzeichen. Der ASCII-Code ist mittlerweile per ”normati-
+ver Kraft des Faktischen” durch den ISO Standart 8859-1 abgelöst (Siehe ISO
+8859).
+161
+
+21. Glossar
+Assembler Maschinensprache. Vorstufe des Objekt-Kodes. Programme werden meist
+in sogenannten Hochsprachen (wie C) geschrieben, die dann per Kompilation in
+Assembler umgewandelt werden.
+ATAPI eine Familie von CD-ROM-Laufwerken, die an den IDE-Controller angeschlos-
+sen werden. Es gibt auch SCSI-Laufwerke, die am SCSI-Controler betrieben wer-
+den, sowie proprietäre Laufwerke, die ihren eigenen Controller benutzen oder an
+die Soundkarte angeschlossen werden.
+atomar Eine Gruppe von Operationen, die nicht weiter aufgeteilt werden kann.
+ausführlicher Modus Befehle produzieren im ausführlichen Modus Zusatzinformatio-
+nen, die auf die Standardausgabe oder Standart-Fehlerausgabe ausgegeben wer-
+den. Einige Programme bieten die Möglichkeit einzustellen wie ”redselig” sie sein
+sollen.
+HTTP HyperText Transfer Protokoll(Hypertext-Übertragungsprotokoll). Ist ein Pro-
+tokoll zur Übertragung von Daten über ein Netzwerk. Es wird hauptsächlich ein-
+gesetzt, um Webseiten aus dem World Wide Web (WWW) in einen Webbrowser
+zu laden.
+URL Uniform Resource Locator (Einheitlicher Quellenanzeiger). Bezeichnet man ei-
+ne Unterart von Uniform Resource Identifiern (URIs). URLs identifizieren und
+lokalisieren eine Ressource über die zu verwendende Zugriffsmethode (z. B. das
+verwendete Netzwerkprotokoll wie HTTP oder FTP) und den Ort (engl. locati-
+on) der Ressource in Computernetzwerken. Im allgemeinen Sprachgebrauch wer-
+den sie auch als Internetadresse bezeichnet, wobei damit (der umgangssprachlich
+häufigen Gleichsetzung von Internet und WWW folgend) meist speziell URLs
+von Webseiten gemeint sind.
+USV Unterbrechungsfreie Stromversorgung. Sehr großer Akku (aufladbare Baterie)
+der bei einem Stromausfall den Rechner mit Strom versorgt.
+WWW World Wide Web(Weltweites Netz). Ist ein über das Internet abrufbares Hypertext-
+System, bestehend aus elektronischen Dokumenten, die durch Hyperlinks mit-
+einander verknüpft sind.
+162
+
+Stichwortverzeichnis
+&, 30
+Eigentümer, 28
+htop, 30
+emerge, 33
+affs, 49
+env-update, 31
+ifconfig, 34
+alias, 22
+equery, 33
+info, 20
+apt, 32
+etc-update, 33
+init, 19, 20
+apt-get, 32
+euse, 33
+initctl, 20
+insmod, 17
+bash, 55
+expand, 25
+ip, 34
+bg, 30
+export, 31, 38, 55
+iso9660, 49
+Bildschirmschoner, 19,
+ext2, 49
+39
+ext3, 49
+jobs, 30
+blockorientiert, 28
+fakeroot, 17
+bzip2, 17
+Kernel, 17
+fdformat, 27
+kill, 30
+cat, 23
+fdisk, 27
+ksh, 55
+cd, 23
+fg, 30
+cfdsik, 27
+fgrep, 24
+last, 20
+chgrp, 28
+file, 22
+ldd, 34
+chmod, 28
+find, 24
+less, 23
+chown, 28
+finger, 20
+ln, 23
+chroot, 31
+free, 20
+locate, 55
+clock, 21
+fsck, 27
+login, 19
+cmp, 25
+fstab, 48
+logout, 19
+comm, 25
+ftp, 34
+losetup, 28
+compress, 25
+lpq, 25
+cp, 23
+gpg, 17, 36
+lpr, 25
+csh, 55
+grep, 24
+lprm, 25
+group, 49
+ls, 22
+date, 20, 21
+grub, 31
+lsmod, 17
+Datum, 21
+Gruppe, 28
+dd, 27
+gzip, 17
+mail, 37
+df, 20
+make, 17, 34
+diff, 25
+halt, 19
+make-kpkg, 17
+dmesg, 17
+Hardlink, 23
+man, 20
+dpkg, 17, 32
+head, 23
+mfomat, 27
+host, 34
+minix, 49
+echo, 20
+hosts, 50
+mkdir, 23
+egrep, 24
+hpfs, 49
+mkdosfs, 27
+163
+
+STICHWORTVERZEICHNIS
+mke2fs, 27
+rpm, 32
+umount, 27
+mkfs, 27
+umsdos, 49
+modprobe, 28
+sax, 38
+uname, 17
+more, 23
+scp, 34, 35
+uncompress, 25
+mount, 27
+setenv, 55
+uniq, 25
+msdos, 49
+settherm, 19
+unpack, 25
+mv, 23
+sh, 55
+unset, 55
+shutdown, 19
+unsetenv, 55
+ncpfs, 49
+smbfs, 49
+Upstart, 20
+netcat, 34
+Softlink, 23
+useradd, 28
+netdate, 21
+source, 31
+userdel, 28
+nfs, 49
+ssh, 34, 35
+usermod, 28
+nl, 23
+ssh-keygen, 35
+UTC, 21
+nmap, 34
+startx, 38
+nslookup, 34
+stderr, 19
+vfat, 49
+ntfs, 49
+stdin, 19, 56
+vi, 24, 61
+vipw, 28
+od, 23
+stdout, 19
+strace, 34
+w, 20
+passwd, 28, 53
+strings, 23
+wc, 22
+ping, 34
+su, 28
+wget, 17
+pr, 25
+sux, 28
+whatis, 20
+proc, 49
+systemctl, 19
+which, 20
+ps, 30
+sysv, 49
+who, 20
+pstree, 30
+whoami, 20
+pwd, 20
+tail, 23
+tar, 27
+xf86config, 38
+rcsshd, 36
+tcsh, 55
+XF86Setup, 38
+reboot, 19
+telnet, 34
+xset, 39
+recode, 23
+timedatectl, 21
+xsetroot, 39
+reiserfs, 49
+top, 30
+revdep-rebuild, 33
+tr, 25
+yast, 20
+rlogin, 34
+tune2fs, 27
+rm, 23
+zcat, 17
+rmdir, 23
+ufs, 49
+zeichenorientiert, 28
+rmmod, 17
+Uhrzeit, 21
+Zeit, 21
+164
+
+

Document Outline

+ +
+ + diff --git a/netzwerk/apache/access_control_list_file.tex b/netzwerk/apache/access_control_list_file.tex new file mode 100644 index 0000000..956b8f5 --- /dev/null +++ b/netzwerk/apache/access_control_list_file.tex @@ -0,0 +1,27 @@ +% master: access_control_list_file.tex +% Access Control List File (.htaccess) v0.1 +% 2011-06-01 (Rx) + +\subsection{Access Control List File (.htaccess)} +%------------------------------------------------ + +Die Datei .htaccess muß in dem zu schützenden Ordner angelegt werden. + +\begin{verbatim} +AuthUserFile /www/.htpasswd Pfad zu einer Passwortdatei +AuthGroupFile /dev/null +AuthName "Tux ;-)" +AuthType Basic + + require user webmaster + + +AuthUserFile /www/.htpasswd Pfad zu einer Passwortdatei +AuthGroupFile /www/.htgroup Pfad zu einer Gruppendatei +AuthName "Tux ;-)" +AuthType Basic + + require group logins + +\end{verbatim} + diff --git a/netzwerk/apache/anforderungen.tex b/netzwerk/apache/anforderungen.tex new file mode 100644 index 0000000..f89077f --- /dev/null +++ b/netzwerk/apache/anforderungen.tex @@ -0,0 +1,28 @@ +% master: anforderungen.tex +% Anforderungen v0.1 +% 2011-06-01 (Rx) + +\subsection{Anforderungen} +%------------------------- + +\begin{itemize} + \item Apache-Quellcode 1.3, erhältlich bei http://www.apache.org/ + + \item mod\_ssl 1.3, erhältlich bei http://www.modssl.org/ + + \item Apache-Quellcode 2.0, erhältlich bei http://www.apache.org/ + + \item OpenSSL-Quellcode 0.9.x, erhältlich bei http://www.openssl.org/ + + \item Linux ab 2.4.xx(z.B.Debian Sarge 3.1), libgdbm2-devel(ndbm.h -> gdbm-ndbm.h) + + \item ANSI-C-Compiler und Generierungswerkzeuge, GNU C Compiler (GCC) ab + Version 2.7.2, wesentliche Generierungswerkzeuge wie make + + \item Zeitgenauigkeit bewahren, ntpdate oder xntpd(NTP) + + \item Perl 5(optional), Version ab 5.003 http://www.perl.com/ + + \item PureFTPd(optional), Version ab 5.003 http://www.perl.com/ +\end{itemize} + diff --git a/netzwerk/apache/anhang_syntax_ueberpruefen.tex b/netzwerk/apache/anhang_syntax_ueberpruefen.tex new file mode 100644 index 0000000..e20017d --- /dev/null +++ b/netzwerk/apache/anhang_syntax_ueberpruefen.tex @@ -0,0 +1,12 @@ +% master: anhang_syntax_ueberpruefen.tex +% Anhang: Syntax überprüfen v0.1 +% 2011-06-01 (Rx) + +\subsection{Anhang: Syntax überprüfen} +%------------------------------------- + +\begin{verbatim} +apachectl -t überprüft den Syntax der Konfigurationsdatei, so kann + vermieden werden das der Apache nicht neu startet +\end{verbatim} + diff --git a/netzwerk/apache/apache.tex b/netzwerk/apache/apache.tex new file mode 100644 index 0000000..4f05109 --- /dev/null +++ b/netzwerk/apache/apache.tex @@ -0,0 +1,50 @@ +% master: apache.tex +% Apache v0.2 +% 2011-05-31 (Rx) + + +\chapter{Apache} +%--------------- +\input{netzwerk/apache/einleitung} + +\section{Kompilieren und Installieren} +%------------------------------------- +\input{netzwerk/apache/anforderungen} +\input{netzwerk/apache/vorbereitungen} +\input{netzwerk/apache/openssl} +\input{netzwerk/apache/apache1.3} +\input{netzwerk/apache/apache2} +\input{netzwerk/apache/testen} +\input{netzwerk/apache/upgrade} +\input{netzwerk/apache/pureftpd} + +\section{Apache starten} +%----------------------- +\input{netzwerk/apache/apache_starten} +\input{netzwerk/apache/wie_der_apache_startet} +\input{netzwerk/apache/fehler_waehrend_des_hochfahrens} +\input{netzwerk/apache/automatisch_starten_und_beenden} +\input{netzwerk/apache/weitere_informationen} + +\section{Beenden und Neustarten} +%------------------------------- +\input{netzwerk/apache/beenden_und_neustarten_einleitung} +\input{netzwerk/apache/beenden} +\input{netzwerk/apache/unterbrechungsfreier_neustart} +\input{netzwerk/apache/neustarten} +\input{netzwerk/apache/anhang_syntax_ueberpruefen} + +\section{Anhang} +%--------------- +\input{netzwerk/apache/zu_den_dateien} + + +\section{Benutzerhandbuch} +%------------------------- +\input{netzwerk/apache/httpd_conf} +\input{netzwerk/apache/access_control_list_file} +\input{netzwerk/apache/gruppendatei} +\input{netzwerk/apache/passwort-datei} +\input{netzwerk/apache/erstellen_eines_ssl-zertifikats} +\input{netzwerk/apache/favicon} + diff --git a/netzwerk/apache/apache1.3.tex b/netzwerk/apache/apache1.3.tex new file mode 100644 index 0000000..61db30b --- /dev/null +++ b/netzwerk/apache/apache1.3.tex @@ -0,0 +1,84 @@ +% master: apache1.3.tex +% Apache 1.3 und SSL v0.1 +% 2011-06-01 (Rx) + +\subsection{Apache 1.3 und SSL} +%------------------------------ +\begin{verbatim} +cd /usr/local/src Verzeichnis wechseln +tar xvfz apache_1.3.31.tar.gz Quelldateien entpacken +tar xvfz mod_ssl-2.8.19-1.3.31.tar.gz Quelldateien entpacken +cd apache_1.3.31 in das Quelldatei-Verzeichnis wechseln +./configure --help Hilfe zu den möglichen Optionen +cd ../mod_ssl-2.8.19-1.3.31 +./configure --help Hilfe zu den möglichen Optionen +./configure --with-apache=../apache_1.3.31 + --with-ssl=../openssl-0.9.7d + --prefix=/usr/local/apache/1.3.31 + --datadir=/srv/www + --enable-module=most + --enable-shared=max + --enable-module=ssl +cd ../apache_1.3.31 in das Quelldatei-Verzeichnis wechseln +make Programm herstellen +make certificate TYPE=custom Zertifikat erzeugen +\end{verbatim} + +\subsubsection{Angaben zu der Certificate Authority} +%--------------------------------------------------- +\begin{verbatim} +Signature Algorithm ((R)SA or (D)SA) [R]:R +1. Country Name (2 letter code) [XY]:DE +2. State or Province Name (full name) [Snake Desert]:Niedersachsen +3. Locality Name (eg, city) [Snake Town]:Salzgitter +4. Organization Name (eg, company) [Snake Oil, Ltd]:Komtek +5. Organizational Unit Name (eg, section) [Certificate Authority]:CA +6. Common Name (eg, CA name) [Snake Oil CA]:Komtek CA +7. Email Address (eg, name@FQDN) [ca@snakeoil.dom]:ca@komtek.de +8. Certificate Validity (days) [365]:365 +Certificate Version (1 or 3) [3]:3 +\end{verbatim} + +\subsubsection{Angaben zum Serverzertifikat} +%------------------------------------------- +\begin{verbatim} +1. Country Name (2 letter code) [XY]:DE +2. State or Province Name (full name) [Snake Desert]:Niedersachsen +3. Locality Name (eg, city) [Snake Town]:Salzgitter +4. Organization Name (eg, company) [Snake Oil, Ltd]:Komtek +5. Organizational Unit Name (eg, section) [Webserver Team]:Webmaster +6. Common Name (eg, FQDN) [www.snakeoil.dom]:www.komtek.de +7. Email Address (eg, name@fqdn) [www@snakeoil.dom]:www@www.komtek.de +8. Certificate Validity (days) [365]:365 +Certificate Version (1 or 3) [3]:3 +\end{verbatim} + +\subsubsection{Schlüssel verschlüsseln} +%-------------------------------------- +\begin{verbatim} +Encrypt the private key now? [Y/n]: n +Encrypt the private key now? [Y/n]: n + +su als root anmelden +make install +groupadd wwwadmin Gruppe wwwadmin anlegen +chown -R nobody:wwwadmin /srv/www Rechte für das www-Verzeichnis setzen +ln -s /usr/local/apache/1.3.31 /usr/local/apache/current + Link zu Apache 1.3 +ln -s /usr/local/apache/current/conf /etc/apache + Link zu den Konfigurationen +ln -s /usr/local/apache/current/logs /var/log/apache + Link zu den Logdateien +ln -s /usr/local/apache/current/bin/apachectl /usr/local/bin + Link zu apachectl +ln -s /usr/local/apache/current/bin/apachectl /etc/init.d/apache + Link zu den Startdateien +cd /etc/rc5.d in den Start-Runlevel wechseln +ln -s ../init.d/apache S20apache Link zum automatischen Starten +cd ../rc0.d in den Stopp-Runlevel wechseln +ln -s ../init.d/apache K20apache Link zum automatischen Beenden +cd ../rc6.d in den Start-Runlevel wechseln +ln -s ../init.d/apache K20apache Link zum automatischen Beenden +exit root abmelden +\end{verbatim} + diff --git a/netzwerk/apache/apache2.tex b/netzwerk/apache/apache2.tex new file mode 100644 index 0000000..fde0097 --- /dev/null +++ b/netzwerk/apache/apache2.tex @@ -0,0 +1,43 @@ +% master: apache2.tex +% Apache2 v0.1 +% 2011-06-01 (Rx) + +\subsection{Apache2} +%------------------- + +\begin{verbatim} +cd /usr/local/src Verzeichnis wechseln +tar xvfz httpd-2.0.51.tar.gz Quelldateien entpacken +cd httpd-2.0.51 in das Quelldatei-Verzeichnis wechseln +./configure --help Hilfe zu den möglichen Optionen +./configure --prefix=/usr/local/apache2/2.0.51 + --with-ssl=../openssl-0.9.7d + --datadir=/srv/www2 + --enable-module=most + --enable-shared=max + --enable-module=ssl + --with-port=81 da auf 80 schon der Apache 1.3 läuft +make Programm herstellen +su als root anmelden +make install Programm installieren (als root!) +groupadd wwwadmin Gruppe wwwadmin anlegen +chown -R nobody:wwwadmin /srv/www2 Rechte für das www-Verzeichnis setzen +ln -s /usr/local/apache2/2.0.51 /usr/local/apache2/current + Link zu Apache 2 +ln -s /usr/local/apache2/current/conf /etc/apache2 + Link zu den Konfigurationen +ln -s /usr/local/apache2/current/logs /var/log/apache2 + Link zu den Logdateien +ln -s /usr/local/apache2/current/bin/apachectl /usr/local/bin/apachectl2 + Link zu apachectl +ln -s /usr/local/apache2/current/bin/apachectl /etc/init.d/apache2 + Link zu den Startdateien +cd /etc/rc5.d in den Start-Runlevel wechseln +ln -s ../init.d/apache2 S20apache2 Link zum automatischen Starten +cd ../rc0.d in den Stopp-Runlevel wechseln +ln -s ../init.d/apache2 K20apache2 Link zum automatischen Beenden +cd ../rc6.d in den Start-Runlevel wechseln +ln -s ../init.d/apache2 K20apache2 Link zum automatischen Beenden +exit root abmelden +\end{verbatim} + diff --git a/netzwerk/apache/apache_starten.tex b/netzwerk/apache/apache_starten.tex new file mode 100644 index 0000000..de981b8 --- /dev/null +++ b/netzwerk/apache/apache_starten.tex @@ -0,0 +1,13 @@ +% master: apache_starten.tex +% Apache starten v0.1 +% 2011-06-01 (Rx) + +\subsection{Apache starten} +%-------------------------- +Unter UNIX/Linux wird das httpd-Progamm als Daemon ausgeführt. + +\begin{verbatim} +apachectl start Apache starten +rcapache start Apache starten(SuSE-Linux) +\end{verbatim} + diff --git a/netzwerk/apache/automatisch_starten_und_beenden.tex b/netzwerk/apache/automatisch_starten_und_beenden.tex new file mode 100644 index 0000000..7fe055e --- /dev/null +++ b/netzwerk/apache/automatisch_starten_und_beenden.tex @@ -0,0 +1,28 @@ +% master: automatisch_starten_und_beenden.tex +% Automatisch starten und beenden v0.1 +% 2011-06-01 (Rx) + +\subsection{Automatisch starten und beenden} +%------------------------------------------- + +\begin{itemize} + \item apachectl zu den Startdateien des Systems hinzufügen (rc.local, + rc.x-Verzeichnis) +\end{itemize} + +\begin{verbatim} + z.B. SuSE-Linux: + cd /etc/rc.d/rc3.d/ + ln -s ../apache S16apache Link zum automatischen Starten + in Runlevel 3 anlegen + ln -s ../apache K06apache Link zum automatischen Beenden + in Runlevel 3 anlegen + z.B. Debian: + cd /etc/rc3.d/ + ln -s ../init.d/apache2 S20apachectl + Link zum automatischen Starten in Runlevel 5 anlegen + cd /etc/rc0.d/ + ln -s ../init.d/apache2 K20apachectl + Link zum automatischen Beenden in Runlevel 0 anlegen +\end{verbatim} + diff --git a/netzwerk/apache/beenden.tex b/netzwerk/apache/beenden.tex new file mode 100644 index 0000000..eb91b05 --- /dev/null +++ b/netzwerk/apache/beenden.tex @@ -0,0 +1,27 @@ +% master: beenden.tex +% Beenden v0.1 +% 2011-06-01 (Rx) + +\subsection{Beenden} +%------------------- + +\begin{verbatim} +Signal: TERM + +apachectl stop sendet das TERM(stop) signal an + den Elternprozess +rcapache stop Apache stoppen + bei SuSE-Linux +kill -TERM `cat /var/log/apache2/httpd.pid` sendet das TERM(stop) signal an + den Elternprozess +\end{verbatim} + +\begin{itemize} + \item das Senden des TERM(stop)-Signals an den Elternprozess veranlasst alle seine + Kindprozesse sich zu beenden + \item es dauert etwas bis alle Kindprozesse beendet sind + \item danach beendet sich der Elternprozess + \item alle gerade bearbeiteten Anfragen werden abgebrochen + \item es werden keine weiteren Anfragen mehr bedient +\end{itemize} + diff --git a/netzwerk/apache/beenden_und_neustarten_einleitung.tex b/netzwerk/apache/beenden_und_neustarten_einleitung.tex new file mode 100644 index 0000000..d2fb536 --- /dev/null +++ b/netzwerk/apache/beenden_und_neustarten_einleitung.tex @@ -0,0 +1,21 @@ +% master: beenden_und_neustarten_einleitung.tex +% Einleitung v0.1 +% 2011-06-01 (Rx) + +\subsection{Einleitung} +%---------------------- + +\begin{itemize} + \item um den Apache zu stoppen oder neu zu starten, muss ein Signal an den laufenden + httpd-Prozess gesendet werden + \item es gibt zwei Möglichkeiten Signale zu senden, kill und apachectl + \item auf dem System laufen mehrere httpd-Programme + \item nur an den Elternprozess sollte ein Signal gesendet werden, + /var/log/apache2/httpd.pid + \item es gibt drei Signale die an den Elternprozess gesendet werden können, + TERM - beenden, HUP - neustarten, USR1 - unterbrechungsfreier Neustart + \item es wird empfohlen apachectl zu benutzen + \item mit "tail -f /var/log/apache2/error\_log" kann die Signalisierung beobachtet + werden +\end{itemize} + diff --git a/netzwerk/apache/einleitung.tex b/netzwerk/apache/einleitung.tex new file mode 100644 index 0000000..3d4f5b7 --- /dev/null +++ b/netzwerk/apache/einleitung.tex @@ -0,0 +1,13 @@ +% master: einleitung.tex +% Einleitung v0.1 +% 2011-06-01 (Rx) + +\section{Einleitung} +%------------------- + +Der Apache Webserver ist ein Programm das im Netzwerk(WWW), bei +Anfragen mit einem Webbrowser, Websites(HTTP-Protokoll) ausgeben kann. + +Die Anfragen werden als URL angegeben. +Beispiel: Schema://Hostname:Port/Server-Pfad -> http://www.apache.org:80/manual/ + diff --git a/netzwerk/apache/erstellen_eines_ssl-zertifikats.tex b/netzwerk/apache/erstellen_eines_ssl-zertifikats.tex new file mode 100644 index 0000000..eb4cda5 --- /dev/null +++ b/netzwerk/apache/erstellen_eines_ssl-zertifikats.tex @@ -0,0 +1,18 @@ +% master: erstellen_eines_ssl-zertifikats.tex +% Erstellen eines SSL-Zertifikats v0.1 +% 2011-06-01 (Rx) + +\subsection{Erstellen eines SSL-Zertifikats} +%------------------------------------------- + +\begin{verbatim} +openssl req -new > firma.csr +openssl rsa -in privkey.pem -out firma.key +openssl x509 -in firma.csr -out firma.crt -req -signkey firma.key -days 10000 +cp firma.key /etc/httpd/ssl.key/server.key +cp firma.crt /etc/httpd/ssl.crt/server.crt +cp firma.csr /etc/httpd/ssl.csr/server.csr +chown root privkey.pem +chmod 400 privkey.pem +\end{verbatim} + diff --git a/netzwerk/apache/favicon.tex b/netzwerk/apache/favicon.tex new file mode 100644 index 0000000..d8b139c --- /dev/null +++ b/netzwerk/apache/favicon.tex @@ -0,0 +1,107 @@ +% master: favicon.tex +% LinkIcon (favicon.ico) v0.1 +% 2011-06-01 (Rx) + +\subsection{LinkIcon (favicon.ico)} +%---------------------------------- + +\subsubsection{Was ist ein favicon.ico?} +%--------------------------------------- +Immer wenn ein IE5 Benutzer eine Seite seinen Favoriten hinzufügt, sucht der +IE5 nach einem Icon das er anstatt des Standardicons in der Favoritenliste +anzeigen kann. Er sucht zuerst im aktuellen 'Verzeichnis' und geht dann Ebene +für Ebene weiter bis zum Wurzelverzeichnis. Nehmen wir mal an, das aktuelle +Dokument befindet sich unter http://www.bjoernsworld.de/suchmaschinen/ +optimieren/aufraeumen.html, dann wird der IE 5 so nach dem Icon suchen: + +\begin{verbatim} +http://www.bjoernsworld.de/suchmaschinen/optimieren/favicon.ico +http://www.bjoernsworld.de/suchmaschinen/favicon.ico +http://www.bjoernsworld.de/favicon.ico +\end{verbatim} + +Er sucht solange, bis er eines gefunden hat oder bei /favicon.ico angekommen +ist. Das gilt nur für den Internet Explorer Version 5.0 und 5.01; Version 5.5 +sucht nur noch nach /favicon.ico selbstständig. Hat er eins gefunden, zeigt er +es in der Favoritenliste an und beim erneuten Besuch der Seite auch links neben +der URL in der Adresszeile: + +\subsubsection{Welches Format hat das favicon.ico?} +%-------------------------------------------------- +Das favicon.ico ist ein Icon im Microsoft Windows Icon File Format. Windows +Benutzer sehen täglich solche Icons auf ihrem Desktop, in ihrem Startmenü, etc. +In der Favoritenliste wird dieses Icon in der Größe 16x16 Pixel dargestellt, +daher sollte man das Icon auch in dieser Größe erstellen. Die Farbzahl +beschränkt sich auf 16 bzw. 256 Farben, wobei eine als transparente Farbe gilt. + +\subsubsection{Welchen MIME-Type hat das favicon.ico?} +%----------------------------------------------------- +Der korrekte MIME-Type für das favicon.ico ist image/x-icon. Beim Apache +Webserver kann man das in einer .htaccess mit der Zeile: + +\begin{verbatim} +AddType image/x-icon .ico +\end{verbatim} + +konfigurieren. + +\subsubsection{Wie erstelle ich ein favicon.ico?} +%------------------------------------------------ +Man braucht dafür einen Icon Editor wie man sie zuhauf bei Tucows oder Winfiles. +com finden kann. Mit z.B. dem Freeware Tool Irfan View ist es ohne Probleme +möglich, eine Gifdatei in das Icon Format zu konvertieren. Macintosh Benutzer +können den GraphicConverter von Thorsten Lemke oder den Iconographer von +MscapeSoftware benutzen um das Icon zu erstellen. Bei favicon.com gibt es einen +Online Editor in Java, mit dem man online sein eigenes favicon.ico erstellen +kann. + +\subsubsection{Wohin muss das favicon.ico?} +%------------------------------------------ +Wie oben schon gesagt, sucht der IE5, vor Version 5.5, zuerst im aktuellen +'Verzeichnis' und geht dann Ebene um Ebene nach oben, bis er unter +http://host/favicon.ico ein Icon findet oder eben nicht. Man kann entweder in +jedes Verzeichnis ein favicon.ico plazieren, oder im einer jeden HTML +Datei auf ein Icon verweisen: + +\begin{verbatim} + +\end{verbatim} + +Wenn der Apache Webserver mit mod\_rewrite benutzt wird, kann man mit dieser +Regel: + +\begin{verbatim} +RewriteEngine on +RewriteRule ^(.+)/favicon\.ico$ /favicon.ico [R=permanent] [L] +\end{verbatim} + +(z.B. in der .htaccess) alle Anfragen für favicons in Unterverzeichnissen auf +das favicon.ico im Root-Verzeichnis der Domain umleiten. + +Wenn mod\_rewrite nicht zur Verfügung steht, wohl aber Zugriff auf die +Konfigurationsdateien Apache Web Servers, kann man in z.B. der +Sektion folgenden Befehl einfügen: + +\begin{verbatim} +RedirectMatch Permanent ^(.+)/favicon\.ico$ http://server.de/favicon.ico +\end{verbatim} + +\subsubsection{Wie kann man diese Funktion abstellen?} +%----------------------------------------------------- +Es gibt meines Wissens nach keine Möglichkeit den IE5 dazu zu bringen, nicht +nach dem favicon.ico zu suchen. + +\subsubsection{Links zum Thema:} + +\begin{verbatim} +http://www.favicon.de/ +http://www.favicon.com/ +http://wdvl.com/Authoring/Design/Images/Favicon/index.html +http://msdn.microsoft.com/workshop/essentials/versions/ICPIE5.asp +http://msdn.microsoft.com/workshop/Author/dhtml/howto/ShortcutIcon.asp +http://www.winfiles.com/apps/98/icons-edit.html +http://web.cip.com.br/flaviovs/sec/favicon/privacy.html +http://web.cip.com.br/flaviovs/sec/favicon/index.html +http://www.bjoernsworld.de/ie/398da66c.24234236@news.bjoern.hoehrmann.de.txt +\end{verbatim} + diff --git a/netzwerk/apache/fehler_waehrend_des_hochfahrens.tex b/netzwerk/apache/fehler_waehrend_des_hochfahrens.tex new file mode 100644 index 0000000..b93854f --- /dev/null +++ b/netzwerk/apache/fehler_waehrend_des_hochfahrens.tex @@ -0,0 +1,16 @@ +% master: fehler_waehrend_des_hochfahrens.tex +% Fehler während des Hochfahrens v0.1 +% 2011-06-01 (Rx) + +\subsection{Fehler während des Hochfahrens} +%------------------------------------------ + +\begin{itemize} + \item wird während des Hochfahrens einen schwerer Fehler feststellt, schreibt der + Apache eine Nachricht auf die Konsole oder ins ErrorLog, bevor er sich selbst + beendet + + \item eine der häufigsten Fehlermeldungen ist "Unable to bind to Port ...", + der Server läuft schon oder hat keine root-Berechtigung +\end{itemize} + diff --git a/netzwerk/apache/gruppendatei.tex b/netzwerk/apache/gruppendatei.tex new file mode 100644 index 0000000..94b8dd5 --- /dev/null +++ b/netzwerk/apache/gruppendatei.tex @@ -0,0 +1,12 @@ +% master: gruppendatei.tex +% Gruppendatei (.htgroup) v0.1 +% 2011-06-01 (Rx) + +\subsection{Gruppendatei (.htgroup)} +%----------------------------------- + +\begin{verbatim} +cat .htgroup --> + logins: benutzer1 benutzer2 ... +\end{verbatim} + diff --git a/netzwerk/apache/httpd_conf.tex b/netzwerk/apache/httpd_conf.tex new file mode 100644 index 0000000..b9b5363 --- /dev/null +++ b/netzwerk/apache/httpd_conf.tex @@ -0,0 +1,152 @@ +% master: httpd_conf.tex +% httpd.conf v0.1 +% 2011-06-01 (Rx) + +\subsection{httpd.conf} +%---------------------- + +\begin{verbatim} +ServerType standalone Apache nicht ueber den inetd starten. + +ServerRoot "/www/" Diese Einstellung sorgt dafür, dass der Apache + ausgehend von diesem Verzeichnis die + Verzeichnisse fuer Dokumente, Logfiles und + Konfigurationsdateien sucht. + +LockFile /var/lock/subsys/httpd/httpd.accept.lock Spezifizert das Lock + File. + +PidFile /var/run/httpd.pid Datei, in der sich die Prozess ID des Httpd- + Daemons befindet. + +ResourceConfig /etc/httpd/srm.conf Diese Datei enthaelt Angaben zur + Formatierung und dem Aussehen der + automatisch erzeugten Verzeichnisindizes + (FancyIndexing) sowie Angaben zu den einzelnen + Dateitypen. + +AccessConfig /etc/httpd/access.conf Datei zur Definition der Funktionen und + Zugriffsrechte bestimmter Verzeichnisse + +Timeout 300 Zeitlimit fuer Client-Anfragen in Sekunden. + +KeepAlive On Unterstuezung der HTTP/1.1 Persistent + Connections. Dardurch koennen ueber eine TCP- + Verbindung mehrere Anfragen an den Server + geschickt werden. + +MaxKeepAliveRequests 10 Es werden 10 aufeinanderfolgende Anfragen + innerhalb einer Keep-Alive-Verbindung erlaubt. + +KeepAliveTimeout 15 Der Server wartet maximal 15 Sekunden auf + weitere Anfragen des Clients bei einer Keep- + Alive-Verbindung. + +MinSpareServers 5 Es existieren immer mindestens 5 und hoechstens +MaxSpareServers 10 10 leerlaufende Prozesse. + +StartServers 5 Es werden automatisch 5 Kindprozesse des Apache + gestartet. + +MaxClients 150 Maximum von gleichzeitig laufenden + Server-Prozessen. + +MaxRequestsPerChild 30 Nach 30 Anfragen wird der Kindprozess beendet + und gegebenfalls ein neuer gestartet. + +Listen 12.34.56.78:80 Falls mehrere Interfaces bzw. IP Adressen fuer + den Rechner vorhanden sind, kann mit Listen + festgelegt werden, welche Ports fuer welche + Adresse abgehoert werden sollen. + +Port 80 Standalone Server Port 80 + +User wwwrun Nach dem Oeffnen des Ports (als root), wechselt +Group nogroup Apache zu der als User und Group angegebenen + UID bzw. GID. Die Zuweisung kann entweder durch + angeben des Namens oder durch # gefolgt von der + ID erfolgen. + +ServerAdmin dv@mynet.loc Bei Fehlermeldungen wird diese Adresse dem + Client zurueckgeliefert. + +ServerName www.mynet.loc Wird bei Redirects benoetigt (wenn man + beispielsweise durch Eingabe von + http://www.mynet.loc/main auf das Verzeichnis + main zugreifen will, erzeugt der Apache einen + Redirect auf http://www.mynet.loc/main/ . Ohne + ServerName würde der richtige Hostname des + Rechners zurückgeliefert werden. + +DocumentRoot "/www/htdocs/" Hier werden die HTML Seiten abgelegt. + +AllowOverride All Konfigurationsanweisungen in der .htaccess + beachten + +UserDir public_html Homepage-Directory der Benutzer + http://server/~benutzer/ + +DirectoryIndex index.html index.htm index.php Wird nur ein Directory + angegeben, wird automatisch die + angegebene Datei gesucht und angezeigt. + +AccessFileName .htaccess Name der .htaccess + +DefaultType text/plain Dateien ohne Endung werden wie Text-Files + behandelt. + +HostnameLookups Off Es sollen keine DNS-Lookups ausgefuert werden. + +ErrorLog /var/log/httpd/error_log Datei zur Aufnahme von Fehlermeldungen + und sonstigen Info Meldungen + (mod_log_config). + +LogLevel warn LogLevel :-) debug, info, notice, warn, error, + crit,alert,emerg. + +LogFormat ... Legt das Format der Logdatei(en) fest. + +CustomLog /var/log/httpd/access_log common Erzeugt die Datei http.access im + Common Log Format. + +ServerSignature Off ServerSignature kann man auf "Off" stellen, + damit ein Zugriff auf eine nichtexistente Seite + nicht Software und Versionsnummer anzeigt, + jedoch bringt das nicht allzuviel, da im HTTP + Header diese und wesentlich mehr Informationen + zu finden sind. + +Alias /icons/ "/www/icons/" Alias-Namen fuer bestimmte Verzeichnisse. Diese + werden anschliessend behandelt, als wenn sie + sich unter Document-Root befinden wuerden. + Achtung! Die Einstellungen gelten auch fuer + virtuelle Hosts. + +IndexOptions FancyIndexing Als Optionen sind angebbar: + Fancyindexing - ausführliche Verzeichnisliste + (Icons, Name, Größe, Kurzbeschreibung etc.) + SuppressLastModified - keine Angabe der letzten + Modifikationszeit + SuppressSize - keine Angabe der Filegröße + SuppressDescription - keine Angabe einer + Kurzbeschreibung + ScanHTMLTitles - HTML-Titel als Kurzbeschreibung + (Achtung: Rechnerlast!) + +ReadmeName README Die Datei README wird bei der Ausgabe des + Verzeichnisbaums angezeigt. + +HeaderName HEADER Die Datei HEADER wird am Anfangs-Tag in den + Verzeichnisbaums angezeigt. + +IndexIgnore .??* *~ *# RCS CVS *,v *,t Diese Dateien werden nicht durch + FancyIndexing angezeigt. + +TypesConfig /etc/httpd/mime.types Enthaelt die Zuweisungen Dateiendung + zu Mime-Typ + +BrowserMatch "Mozilla/2" nokeepalive Hiermit wird der Apache angewiesen, auf + bestimmte Browser unterschiedlich zu + reagieren. +\end{verbatim} + diff --git a/netzwerk/apache/neustarten.tex b/netzwerk/apache/neustarten.tex new file mode 100644 index 0000000..9d1ecd2 --- /dev/null +++ b/netzwerk/apache/neustarten.tex @@ -0,0 +1,31 @@ +% master: neustarten.tex +% Neustarten v0.1 +% 2011-06-01 (Rx) + +\subsection{Neustarten} +%---------------------- + +\begin{verbatim} +Signal: HUP + +apachectl restart sendet das HUP signal an + den Elternprozess +rcapache restart Apache stoppen und dann starten + bei SuSE-Linux +kill -HUP `cat /var/log/apache2/httpd.pid` sendet das HUP signal an + den Elternprozess +\end{verbatim} + +\begin{itemize} + \item das Senden des HUP(wie TERM)-Signals an den Elternprozess veranlasst alle + seine Kindprozesse sich zu beenden + \item der Elternprozess liest seine Konfigurationsdateien erneut ein und öffnet + seine Logdateien neu + \item die Kindprozesse werden wieder gestartet und setzen die Bedienung von + Zugriffen fort + \item die Serverstatistiken(mod\_status) werden auf Null zurückgesetzt + + \item ist die Konfigurationsdatei fehlerhaft, wird der Elternprozess nicht neu + gestartet +\end{itemize} + diff --git a/netzwerk/apache/openssl.tex b/netzwerk/apache/openssl.tex new file mode 100644 index 0000000..cfe577e --- /dev/null +++ b/netzwerk/apache/openssl.tex @@ -0,0 +1,25 @@ +% master: openssl.tex +% OpenSSL v0.1 +% 2011-06-01 (Rx) + + +\subsection{OpenSSL} +%------------------- + +\begin{verbatim} +cd /usr/local/src Verzeichnis wechseln +tar xvfz openssl-0.9.7d.tar.gz Quelldateien entpacken +cd openssl-0.9.7d in das Quelldatei-Verzeichnis wechseln +./config --help Hilfe zu den möglichen Optionen +./config --prefix=/usr/local/openssl/0.9.7d + Codebaum konfigurieren und + Installations-Verzeichnis angeben +make Programm herstellen +make test Programm testen +su als root anmelden +make install Programm installieren +ln -s /usr/local/openssl/0.9.7d /usr/local/openssl/current + Link zu OpenSSL +exit root abmelden +\end{verbatim} + diff --git a/netzwerk/apache/passwort-datei.tex b/netzwerk/apache/passwort-datei.tex new file mode 100644 index 0000000..9de27ab --- /dev/null +++ b/netzwerk/apache/passwort-datei.tex @@ -0,0 +1,13 @@ +% master: passwort-datei.tex +% Passwort-Datei (.htpasswd) v0.1 +% 2011-06-01 (Rx) + +\subsection{Passwort-Datei (.htpasswd)} +%-------------------------------------- + +\begin{verbatim} +htpasswd -c Passwortdatei Benutzername erzeugt eine neue Passwortdatei + und ein Benutzer +htpasswd Passwortdatei Benutzername erzeugt ein Benutzer +\end{verbatim} + diff --git a/netzwerk/apache/pureftpd.tex b/netzwerk/apache/pureftpd.tex new file mode 100644 index 0000000..eec1f6a --- /dev/null +++ b/netzwerk/apache/pureftpd.tex @@ -0,0 +1,67 @@ +% master: pureftpd.tex +% PureFTPd v0.1 +% 2011-06-01 (Rx) + +\subsection{PureFTPd} +%-------------------- + +\begin{verbatim} +cd /usr/local/src Verzeichnis wechseln +tar xvfz pure-ftpd-1.0.20.tar.gz Quelldateien entpacken +cd pure-ftpd-1.0.20 Verzeichnis wechseln +./configure --prefix=/usr/local/pure-ftpd/1.0.20 --with-language=german + Makefile herstellen +make Programm herstellen +make check Programm prüfen +su als root anmelden +make install Programm installieren +ln -s /usr/local/pure-ftpd/1.0.20 /usr/local/pure-ftpd/current + Link zu pure-ftpd +mkdir /usr/local/pure-ftpd/current/etc Verzeichnis etc anlegen +cp configuration-file/pure-ftpd.conf /usr/local/pure-ftpd/current/etc + Konfiguration kopieren +cp pureftpd-*.conf /usr/local/pure-ftpd/current/etc + Konfigurationen kopieren +ln -s /usr/local/pure-ftpd/current/etc /etc/pure-ftpd + Link zu den Konfigurationen + +vi /etc/init.d/pure-ftpd Startdatei für pure-ftpd anlegen + #!/bin/bash + case "$1" in + start) + echo "pureftpd wird gestartet ..." + cd /usr/local/pure-ftpd/current + ./sbin/pure-ftpd & + ;; + stop) + echo "pureftpd wird heruntergefahren ..." + kill -TERM `cat /var/run/pure-ftpd.pid` + ;; + *) + echo "Usage: $0 {start|stop}" + exit 1 + ;; + esac + exit 0 + +chmod 755 /etc/init.d/pure-ftpd Rechte setzen +cd /etc/rc5.d Verzechnis wechseln +ln -s ../init.d/pure-ftpd S20pure-ftpd Link zum automatischen Starten +cd /etc/rc0.d Verzechnis wechseln +ln -s ../init.d/pure-ftpd K20pure-ftpd Link zum automatischen Beenden +cd /etc/rc6.d Verzechnis wechseln +ln -s ../init.d/pure-ftpd K20pure-ftpd Link zum automatischen Beenden +useradd -g wwwadmin -d /srv -s /bin/false wwwadmin + Benutzer wwwadmin anlegen +passwd wwwadmin Passwort setzen + +NoAnonymous yes +UnixAuthentication yes +MinUID 1000 +MinUID 1000 +TrustedGID 1002 + + +exit root abmelden +\end{verbatim} + diff --git a/netzwerk/apache/testen.tex b/netzwerk/apache/testen.tex new file mode 100644 index 0000000..68163cf --- /dev/null +++ b/netzwerk/apache/testen.tex @@ -0,0 +1,16 @@ +% master: testen.tex +% Testen v0.1 +% 2011-06-01 (Rx) + +\subsection{Testen} +%-------------------------- + +\begin{verbatim} +/etc/init.d/apache start Apache1.3 starten +/etc/init.d/apache2 start Apache2 starten +Browser http://localhost/ Apache1.3 testen +Browser http://localhost:81/ Apache2 testen +/etc/init.d/apache stop Apache1.3 beenden +/etc/init.d/apache2 stop Apache2 beenden +\end{verbatim} + diff --git a/netzwerk/apache/unterbrechungsfreier_neustart.tex b/netzwerk/apache/unterbrechungsfreier_neustart.tex new file mode 100644 index 0000000..cdb5802 --- /dev/null +++ b/netzwerk/apache/unterbrechungsfreier_neustart.tex @@ -0,0 +1,32 @@ +% master: unterbrechungsfreier_neustart.tex +% Unterbrechungsfreier Neustart v0.1 +% 2011-06-01 (Rx) + +\subsection{Unterbrechungsfreier Neustart} +%----------------------------------------- + +\begin{verbatim} +Signal: USR1 + +apachectl graceful sendet das USR1 signal an + den Elternprozess +kill -USR1 `cat /var/log/apache2/httpd.pid` sendet das USR1 signal an + den Elternprozess +\end{verbatim} + +\begin{itemize} + \item das Senden des USR1-Signals an den Elternprozess veranlasst alle + seine Kindprozesse sich zu beenden + \item die Kindprozesse bearbeiten noch die letzten Anfragen und beenden sich dann + \item der Elternprozess liest, wärend die Kindprozesse noch laufen, seine + Konfigurationsdateien erneut ein und öffnet seine Logdateien neu + \item die Kindprozesse werden wieder gestartet + \item die Serverstatistiken(mod\_status) werden nicht auf Null zurückgesetzt + + \item ist die Konfigurationsdatei fehlerhaft, wird der Elternprozess nicht neu + gestartet + \item die Kindprozesse bearbeiten noch die letzten Anfragen und beenden sich dann + \item wäred noch die letzten Anfragen bearbeitet werden kann der httpd nicht + gestartet werden +\end{itemize} + diff --git a/netzwerk/apache/upgrade.tex b/netzwerk/apache/upgrade.tex new file mode 100644 index 0000000..c97791f --- /dev/null +++ b/netzwerk/apache/upgrade.tex @@ -0,0 +1,12 @@ +% master: upgrade.tex +% Upgrade v0.1 +% 2011-06-01 (Rx) + +\subsection{Upgrade} +%-------------------------- + +\begin{verbatim} +./config.nice aus der letzten Installation entnehmen, + Apache2 +\end{verbatim} + diff --git a/netzwerk/apache/vorbereitungen.tex b/netzwerk/apache/vorbereitungen.tex new file mode 100644 index 0000000..acdbc57 --- /dev/null +++ b/netzwerk/apache/vorbereitungen.tex @@ -0,0 +1,18 @@ +% master: vorbereitungen.tex +% Vorbereitungen v0.1 +% 2011-06-01 (Rx) + +\subsection{Vorbereitungen} +%-------------------------- + +\begin{verbatim} +su als root anmelden +mkdir /usr/local/src das Verzeichnis /usr/local/src anlegen, + wenn es noch nicht vorhanden ist +chmod 777 /usr/local/src Verzeichnis-Rechte setzen +ln -s /usr/include/gdbm-ndbm.h /usr/include/ndbm.h + Link zu ndbm.h +exit root abmelden +cp Quelldateien /usr/local/src Quelldateien kopieren +\end{verbatim} + diff --git a/netzwerk/apache/weitere_informationen.tex b/netzwerk/apache/weitere_informationen.tex new file mode 100644 index 0000000..df81340 --- /dev/null +++ b/netzwerk/apache/weitere_informationen.tex @@ -0,0 +1,14 @@ +% master: weitere_informationen.tex +% Weitere Informationen v0.1 +% 2011-06-01 (Rx) + +\subsection{Weitere Informationen} +%--------------------------------- + +\begin{verbatim} +http://localhost/manual/programs/httpd.html +http://localhost/manual/de/programs/httpd.html +http://localhost/manual/programs/apachectl.html +http://localhost/manual/de/programs/apachectl.html +\end{verbatim} + diff --git a/netzwerk/apache/wie_der_apache_startet.tex b/netzwerk/apache/wie_der_apache_startet.tex new file mode 100644 index 0000000..ce5e53f --- /dev/null +++ b/netzwerk/apache/wie_der_apache_startet.tex @@ -0,0 +1,29 @@ +% master: wie_der_apache_startet.tex +% Wie der Apache startet v0.1 +% 2011-06-01 (Rx) + +\subsection{Wie der Apache startet} +%---------------------------------- + +\begin{itemize} + \item apachectl ist die empfohlene Methode, das httpd-Programm zu starten + \item apachectl setzt verschiedene Umgebungsvariablen und startet das httpd-Programm + \item apachectl reicht alle Kommandozeilenargumente durch + + \item als erstes liest der httpd die Konfigurationsdatei httpd.conf ein, + die beim Kompilieren festgelegt wurde + \item zur Laufzeit kann der Ablageort geändert werden, + z.B. apachectl -f /etc/apache2/httpd.conf + \item beim erfolgreicehn Start, trennt sich der Server vom Terminal ab + + \item bis zum Port 1024 muss der Apache root-Berechtigung besitzen + \item der Haupt-httpd-Prozess läuft unter dem Benutzer root weiter + \item ist der Server gestartet, öffnet er seine Log-Dateien + \item der Apache startet mehrere Kind-Prozesse + \item die Kind-Prozesse werden unter weniger privilegierten Benutzerkennungen + ausgeführt(z.B. nobody, wwwrun ...) + \item die Kind-Prozesse lauschen und beantworten Anfragen von Clients + \item die Kind-Prozesse werden von dem ausgewählten + Multi-Processing-Modul(Apache-MPM prefork UNIX/Linux) gesteuert +\end{itemize} + diff --git a/netzwerk/apache/zu_den_dateien.tex b/netzwerk/apache/zu_den_dateien.tex new file mode 100644 index 0000000..16e28b8 --- /dev/null +++ b/netzwerk/apache/zu_den_dateien.tex @@ -0,0 +1,26 @@ +% master: zu_den_dateien.tex +% Zu den Dateien v0.1 +% 2011-06-01 (Rx) + +\subsection{Zu den Dateien} +%-------------------------- + +\begin{verbatim} +/etc/apache/ +/etc/apache2/ +/etc/httpd/ +/etc/httpd2/ + access.conf Zugriffs-Konfiguration + httpd.conf Apache Konfigurationsdatei + mime.types Zuweisung von Dateiendungen + srm.conf Resource-Konfiguration + +/var/log/apache/ +/var/log/apach2/ +/var/log/httpd/ +/var/log/httpd2/ + access_log Zugriffsmeldungen + error_log Fehlermeldungen + httpd.pid Hauptprozessnummer +\end{verbatim} + diff --git a/netzwerk/mysql/anforderungen.tex b/netzwerk/mysql/anforderungen.tex new file mode 100644 index 0000000..9c39528 --- /dev/null +++ b/netzwerk/mysql/anforderungen.tex @@ -0,0 +1,19 @@ +% master: anforderungen.tex +% Anforderungen v0.4 +% 2011-05-31 (Rx) + +\subsection{Anforderungen} +%------------------------- + +\begin{itemize} + \item MySQL-Quellcode 4.x.xx, erhältlich bei http://www.mysql.com/ + + \item Linux 2.x.xx + + \item ANSI-C-Compiler und Generierungswerkzeuge, GNU C Compiler (GCC) ab + Version 2.95.4, wesentliche Generierungswerkzeuge wie make + + \item phpMyAdmin 2.x.x(optional), erhältlich bei http://www.phpmyadmin.net/, + Web-Server, Apache 1 oder 2 mit PHP 4 oder 5 +\end{itemize} + diff --git a/netzwerk/mysql/einleitung.tex b/netzwerk/mysql/einleitung.tex new file mode 100644 index 0000000..5f21588 --- /dev/null +++ b/netzwerk/mysql/einleitung.tex @@ -0,0 +1,9 @@ +% master: Einleitung.tex +% Vorbereitungen v0.1 +% 2011-05-31 (Rx) + +\section{Einleitung} +%---------------------- +MySQL ist eine Datenbank und phpMyAdmin eine Web-Oberfläche, +um MySQL zu konfigurieren. + diff --git a/netzwerk/mysql/kompilieren_und_installieren.tex b/netzwerk/mysql/kompilieren_und_installieren.tex new file mode 100644 index 0000000..18f8721 --- /dev/null +++ b/netzwerk/mysql/kompilieren_und_installieren.tex @@ -0,0 +1,47 @@ +% master: kompilieren_und_installieren.tex +% Kompilieren und Installieren v0.1 +% 2011-05-31 (Rx) + +\subsection{MySQL} +%----------------- + +\begin{verbatim} +cd /usr/local/src Verzeichnis wechseln +tar xvfz mysql-4.0.21.tar.gz Quelldateien entpacken +cd mysql-4.0.21 in das Quelldatei-Verzeichnis wechseln +./configure --help Hilfe zu den miöglichen Optionen +./configure --prefix=/usr/local/mysql/4.0.21 --localstatedir=/var/mysql/data + prefix: Installations-Verzeichnis + localstatedir: Daten-Verzeichnis +make Programm herstellen +su als root anmelden +make install Programm installieren (als root!) +ln -s /usr/local/mysql/4.0.21 /usr/local/mysql/current + Link zu MySQL +cp support-files/mysql.server /etc/init.d/mysql + Startdatei kopieren +chmod 755 /etc/init.d/mysql + Dateirechte einstellen +ln -s /etc/init.d/mysql /etc/rc5.d/S20mysql + Link zum Starten in Runlevel5 anlegen +ln -s /etc/init.d/mysql /etc/rc6.d/K20mysql + Link zum Beenden in Runlevel6 anlegen +ln -s /etc/init.d/mysql /etc/rc0.d/K20mysql + Link zum Beenden in Runlevel0 anlegen +groupadd mysql Gruppe mysql anlegen +useradd -g mysql -d /usr/local/mysql/current -s /bin/false mysql + Benutzer mysql anlengen +mkdir -p /var/mysql/data Daten-Verzeichnis anlegen +./scripts/mysql_install_db --user=mysql initiale Datenbank installieren +cd /usr/local/mysql/current in das mysql Verzeichnis wechseln +cp share/mysql/my-medium.cnf /var/mysql/data/my.cnf + Konfiguration anlegen +chown -R root:mysql . Benutzer-Gruppen-Rechte setzen +chown -R mysql:mysql /var/mysql/data Rechte für das Daten-Verzeichnis setzen +/etc/init.d/mysql start mysql starten +./bin/mysqladmin -u root password 'geheim' + Datenbank-Passwort setzen + Achtung ! das Passwort steht danach in + der ~/.bash_history +\end{verbatim} + diff --git a/netzwerk/mysql/mysql.tex b/netzwerk/mysql/mysql.tex new file mode 100644 index 0000000..4c62252 --- /dev/null +++ b/netzwerk/mysql/mysql.tex @@ -0,0 +1,17 @@ +% master: mysql.tex +% MySQL v0.7 +% 2011-05-31 (Rx) + +\chapter{MySQL} +%------------------- +\input{netzwerk/mysql/einleitung} + +\section{Kompilieren und Installieren} +%---------------------------------------- + +\input{netzwerk/mysql/anforderungen} +\input{netzwerk/mysql/vorbereitungen} +\input{netzwerk/mysql/kompilieren_und_installieren} +\input{netzwerk/mysql/testen} +\input{netzwerk/mysql/phpmyadmin} + diff --git a/netzwerk/mysql/phpmyadmin.tex b/netzwerk/mysql/phpmyadmin.tex new file mode 100644 index 0000000..8feedaf --- /dev/null +++ b/netzwerk/mysql/phpmyadmin.tex @@ -0,0 +1,58 @@ +% master: phpmyadmin.tex +% phpMyAdmin v0.2 +% 2011-05-31 (Rx) + +\subsection{phpMyAdmin} +%---------------------- + +\begin{verbatim} +su als root anmelden +cd /srv/www/htdocs in das Apache1.3-Verzeichnis wechseln +cd /srv/www2/htdocs in das Apache2-Verzeichnis wechseln +tar xvfj /usr/local/src/phpMyAdmin-2.5.7-pl1.tar.bz2 + Dateien entpacken +ln -s phpMyAdmin-2.5.7-pl1 phpMyAdmin Link zu phpMyAdmin anlegen + +vi phpMyAdmin/config.inc.php phpMyAdmin anpassen + $cfg['PmaAbsoluteUri'] = 'http://localhost/phpMyAdmin/'; + URL zu Apache1.3 + $cfg['PmaAbsoluteUri'] = 'http://localhost:81/phpMyAdmin/'; + URL zu Apache2 + $cfg['Servers'][$i]['user'] = 'root'; // MySQL user + $cfg['Servers'][$i]['password'] = 'geheim'; // MySQL password + +vi phpMyAdmin/.htaccess htaccess anlegen + AuthType Basic + AuthName "PhpMyAdmin" + AuthUserFile /srv/www/htdocs/phpMyAdmin/.htpasswd + Apache1.3 + AuthUserFile /srv/www2/htdocs/phpMyAdmin/.htpasswd + Apache2 + AuthGroupFile /dev/null + + require valid-user + + +cd /usr/local/apache/current/bin Verzeichnis wechseln, Apache1.3 +cd /usr/local/apache2/current/bin Verzeichnis wechseln, Apache2 +./htpasswd --help Hilfe zu htpasswd +./htpasswd -c /srv/www/htdocs/phpMyAdmin/.htpasswd root + Apache1.3 +./htpasswd -c /srv/www2/htdocs/phpMyAdmin/.htpasswd root + Apache2 + +vi /etc/apache/httpd.conf Apache1.3 anpassen +vi /etc/apache2/httpd.conf Apache2 anpassen + + Options Indexes FollowSymLinks MultiViews + AllowOverride AuthConfig None -> AuthConfig + Order allow,deny + Allow from all + + +/etc/init.d/apache graceful Einstellungen neu einlesen, Apache1.3 +/etc/init.d/apache2 graceful Einstellungen neu einlesen, Apache2 + +exit root abmelden +\end{verbatim} + diff --git a/netzwerk/mysql/testen.tex b/netzwerk/mysql/testen.tex new file mode 100644 index 0000000..4141813 --- /dev/null +++ b/netzwerk/mysql/testen.tex @@ -0,0 +1,29 @@ +% master: testen.tex +% Testen v0.2 +% 2011-05-31 (Rx) + +\subsection{MySQL Testen} +%------------------------ + +\begin{verbatim} +./bin/mysql -D mysql -u root -p Client starten und zugriff auf die + Steuerungs-Datenbank nehmen + +mysql> show tables; Tabelle anzeigen ++-----------------+ +| Tables_in_mysql | ++-----------------+ +| columns_priv | +| db | +| func | +| host | +| tables_priv | +| user | ++-----------------+ +6 rows in set (0.00 sec) +mysql> exit; Client beenden +Bye + +exit root abmelden +\end{verbatim} + diff --git a/netzwerk/mysql/vorbereitungen.tex b/netzwerk/mysql/vorbereitungen.tex new file mode 100644 index 0000000..799f643 --- /dev/null +++ b/netzwerk/mysql/vorbereitungen.tex @@ -0,0 +1,16 @@ +% master: vorbereitungen.tex +% Vorbereitungen v0.3 +% 2011-05-31 (Rx) + +\subsection{Vorbereitungen} +%-------------------------- + +\begin{verbatim} +su als root anmelden +mkdir /usr/local/src das Verzeichnis /usr/local/src anlegen, + wenn es noch nicht vorhanden ist +chmod 777 /usr/local/src Verzeichnis-Rechte setzen +exit root abmelden +cp Quelldateien /usr/local/src Quelldateien kopieren +\end{verbatim} + diff --git a/netzwerk/netzwerk.tex b/netzwerk/netzwerk.tex new file mode 100644 index 0000000..376235a --- /dev/null +++ b/netzwerk/netzwerk.tex @@ -0,0 +1,59 @@ +% master: netzwerk.tex +% Linux im Netzwerk v0.6 +% 2011-06-05 (Rx) + +\part{Linux im Netzwerk} +\chapter{Netzwerk} + +\begin{verbatim} +Rechnername Name den der Rechner im Netzwerk hat, + sollte nicht mehr als acht Zeichen haben, + darf im lokalen Netzwerk noch nicht vergeben sein +Domainname Name zur Gliederung von Netzwerken +Top-Level-Domain umfasst höchstens vier Buchstaben + Beispiel: Rechnername.Domainname.Top-Level-Domain -> + voyager.startrek.foe +IP-Adresse Adresse des Rechners im Netzwerk, + jede Netzwerkschnittstelle(z.B. Netzwerk- oder + ISDN-Karte) hat im Netzwerk mindestens eine Adresse + die eindeutig ist, die Adresse besteht derzeit aus + einer Sequenz von vier Bytes die durch Punkte getrennt + sind z.B. 192.168.20.40 , für private Netze sind durch + das Arbeitspapier RFC 1597 drei Adressbereiche + vorgesehen die nicht geroutet werden: + 10.0.0.0 -> 10.255.255.255 (Class A-Netz) + 172.16.0.0 -> 172.31.255.255 (Class B-Netz) + 192.168.0.0 -> 192.168.255.255 (Class C-Netz) +Gatewayadresse IP-Adresse des Gerätes die das Weiterleiten + von Netzwerkpaketen in das fremde Netz übernimmt +Netzwerkmaske sagt aus welcher Teil der IP-Adresse + zum lokale Netzwerk gehört z.B. 255.255.255.0 +#### in arbeit ####################################### +OSI Open System Interconnektion +IEEE +ISO +MAC-Adresse 006097 370cae + ------ ------ + Herstellerabhängig + laufendeNr. +Ethernet-adresse +Node-Addresse +NIC-Adresse +udp +tcp/ip +nfs +ftp +Portnummer/Kanalnummer +16Bit 65535 pro udp pro tcp/ip +/etc/services +0-1023 well known Ports IANA +1024-49151 registrierte Ports +->65535 dynamische, privat +###################################################### +\end{verbatim} + +\input{netzwerk/apache/apache} +\input{netzwerk/mysql/mysql} +\input{netzwerk/php/php} +\input{netzwerk/squid/squid} + diff --git a/netzwerk/php/anforderungen.tex b/netzwerk/php/anforderungen.tex new file mode 100644 index 0000000..4b4b189 --- /dev/null +++ b/netzwerk/php/anforderungen.tex @@ -0,0 +1,23 @@ +% master: anforderungen.tex +% Anforderungen v0.1 +% 2011-06-05 (Rx) + +\subsection{Anforderungen} +%------------------------- + +\begin{itemize} + \item PHP 4 oder 5, erhältlich bei http://www.php.net/ + + \item Linux ab 2.4.xx(z.B.Debian Sarge 3.1) + + \item ANSI-C-Compiler und Generierungswerkzeuge, GNU C Compiler (GCC) ab + Version 2.7.2, wesentliche Generierungswerkzeuge wie make + + \item Webserver z.B. Apache 1.3 oder 2 + + \item GD-Library ab 2.x.x, erhältlich bei http://www.boutell.com/gd/, + Freetype ab 2.x.x, erhältlich bei http://www.freetype.org/, + Zlib ab 1.x.x, erhältlich bei http://www.gzip.org/zlib/, + IJG JPEG, erhältlich bei http://www.ijg.org/ +\end{itemize} + diff --git a/netzwerk/php/einleitung.tex b/netzwerk/php/einleitung.tex new file mode 100644 index 0000000..4d14d49 --- /dev/null +++ b/netzwerk/php/einleitung.tex @@ -0,0 +1,23 @@ +% master: einleitung.tex +% PHP v0.1 +% 2011-06-05 (Rx) + +\section{Einleitung} +%------------------ + +\begin{verbatim} +Wer hat PHP erfunden ? Der Kanada-Däne Rasmus Lerdorf ! +Was heist PHP ? Personal Home Page Tools +Was ist PHP ? Eine einfache Skriptsprache. Sie wird direkt + in HTML-Seiten eingefügt und vom Webserver + interpretiert. +Wie funktioniert PHP ? Der Browser schickt einen HTTP-Request an den + Webserver. Der Server reagiert, liest die + PHP-Seite ein, und führt die Skripte aus und + schickt erst das fertig zusammengesetzte + Dokument zurück an den Browser ! + +LAMP - Linux-Apache-MySQL-PHP +WAMP - Windows-Apache-MySQL-PHP +\end{verbatim} + diff --git a/netzwerk/php/funktionen.tex b/netzwerk/php/funktionen.tex new file mode 100644 index 0000000..c006b93 --- /dev/null +++ b/netzwerk/php/funktionen.tex @@ -0,0 +1,15 @@ +% master: funktionen.tex +% Funktionen v0.1 +% 2011-06-07 (Rx) + +\subsection{Funktionen} +%---------------------- +\begin{verbatim} +phpinfo() ; PHP-Informationen ausgeben +$Wochentag=date("w") ; Wochentag ermitteln 0-So bis 6-Sa +$Monatszahl=date("m") ; Monatszahl ermitteln +$Anzahl=count($Array) ; Elemet-Anzahl eines Arrays ermitteln +$Wert=round($Wert,Nachkommastellen) ; Rundet den Wert mit Nachkommastellen +$Wert=sprintf("%01.2f",$Wert) ; Rundet den Wert auf 2 :Nachkommastellen +\end{verbatim} + diff --git a/netzwerk/php/grundlagen.tex b/netzwerk/php/grundlagen.tex new file mode 100644 index 0000000..ceef454 --- /dev/null +++ b/netzwerk/php/grundlagen.tex @@ -0,0 +1,40 @@ +% master: grundlagen.tex +% Grundlagen v0.1 +% 2011-06-07 (Rx) + +\subsection{Grundlagen} +%---------------------- +\begin{verbatim} + oder %> Ende des PHP-Abschnitts +; Zeilenende +// Kommentartext Einzeiliger Kommentartext +/* Kommentartext Einleitung, mehrzeiliger Kommentartext +Kommentartext */ Abschluss, mehrzeiliger Kommentartext +$ Variablen anfang +echo "Text" ; Text ausgeben +echo "Text $Variable Text" ; Variable ausgeben +echo "Text".$Variable."Text" ; . Verketten von Zeichenfolgen +echo "Text\n" ; \n Erzeugt eine neue Zeile +echo "Text\r" ; \r Erzeugt einen neuen Absatz (return) +echo "Text\tText" ; \t Erzeugt ein Tabulatorschritt +echo "\"Text\"" ; \" Gänsefüßchen ausgeben +echo "\'Text\'" ; \' Einfache Anführungszeichen ausgeben +echo "\$Text\$" ; \$ Dollar-Zeichen ausgeben +echo "\\Text\\" ; \\ Backslash ausgeben +$Array[Indexwert]="Wert" ; Wert einer Array-Variable zuweisen (Langform) +$Array=array("W0","W1") ; Werte einer Array-Variable zuweisen (Kurzform) +echo $Array[Indexwert] ; Wert einer Array-Variable ausgeben +$Array[Index-Ersatz]="Wert" ; Wert eines Assoziativen-Arrays zuweisen (Langf.) +$Array=array("I-E0"=>"W0","I-E1"=>"W1") ; + Werte eines Assoziativen-Arrays zuweisen(Kurzf.) +echo $Array[Index-Ersatz] ; Wert eines Assoziativen-Arrays ausgeben +$a=$b+$c ; Addition von $b und $c gleich $a +$a=$b-$c ; Subtraktion von $b minus $c gleich $a +$a=$b*$c ; Multiplikation von $b mal $c gleich $a +$a=$b/$c ; Division $b geteilt durch $c gleich $a +$a++ ; $a=$a+1 ; +$a-- ; $a=$a-1 ; +$a=3.1415 ; . Dezimaltrenner +\end{verbatim} + diff --git a/netzwerk/php/installieren_php.tex b/netzwerk/php/installieren_php.tex new file mode 100644 index 0000000..bc0129e --- /dev/null +++ b/netzwerk/php/installieren_php.tex @@ -0,0 +1,43 @@ +% master: installieren_php.tex +% PHP v0.1 +% 2011-06-07 (Rx) + +\subsection{PHP} +%--------------- +\begin{verbatim} +cd /usr/local/src Verzeichnis wechseln +tar xvfj php-5.0.1.tar.bz2 Quelldateien entpacken +cd php-5.0.1 in das Quelldatei-Verzeichnis wechseln +./configure --help Hilfe zu den möglichen Optionen +./configure --with-apxs=/usr/local/apache/current/bin/apxs Apache 1.3 oder + --with-apxs2=/usr/local/apache2/current/bin/apxs Apache 2 + --with-mysql=/usr/local/mysql/current + --with-zlib + --with-ftp + --with-gd + --with-jpeg-dir=/usr/local/lib + --enable-versioning + --enable-track-vars=yes + --enable-url-includes + --enable-sysvshm=yes + --enable-sysvsem=yes + --with-config-file-path=/etc +make Programm herstellen +su als root anmelden +make install Programm installieren +cp php.ini-dist /etc/php.ini PHP-Konfiguration kopieren + +vi /etc/apache/httpd.conf Apache1.3 anpassen +vi /etc/apache2/httpd.conf Apache2 anpassen + LoadModule php5_module modules/libphp5.so + Apache2 + LoadModule php5_module libexec/libphp5.so + Apache1.3 + AddModule mod_php5.c Apache1.3 + DirectoryIndex index.html index.htm index.html.var index.php index.phtml + AddType application/x-httpd-php .php + AddType application/x-httpd-php-source .phps + +exit root abmelden +\end{verbatim} + diff --git a/netzwerk/php/libraries_fuer_zusatzfunktionen.tex b/netzwerk/php/libraries_fuer_zusatzfunktionen.tex new file mode 100644 index 0000000..d415b80 --- /dev/null +++ b/netzwerk/php/libraries_fuer_zusatzfunktionen.tex @@ -0,0 +1,63 @@ +% master: libraries_fuer_zusatzfunktionen.tex +% Libraries für Zusatzfunktionen v0.1 +% 2011-06-05 (Rx) + +\subsection{Libraries für Zusatzfunktionen} +%------------------------------------------ + +\subsubsection{Freetype} +%----------------------- +\begin{verbatim} +cd /usr/local/src Verzeichnis wechseln +tar xvfj freetype-2.1.9.tar.bz2 Quelldateien entpacken +cd freetype-2.1.9 in das Quelldatei-Verzeichnis wechseln +./configure Codebaum konfigurieren +make Programm herstellen +su als root anmelden +make install Programm installieren +exit root abmelden +\end{verbatim} + +\subsubsection{Zlib} +%------------------- +\begin{verbatim} +cd /usr/local/src Verzeichnis wechseln +tar xvfz zlib-1.2.1.tar.gz Quelldateien entpacken +cd zlib-1.2.1 in das Quelldatei-Verzeichnis wechseln +./configure Codebaum konfigurieren +make Programm herstellen +su als root anmelden +make install Programm installieren +exit root abmelden +\end{verbatim} + +\subsubsection{IJG JPEG} +%----------------------- +\begin{verbatim} +cd /usr/local/src Verzeichnis wechseln +tar xvfz jpegsrc.v6b.tar.gz Quelldateien entpacken +cd jpeg-6b in das Quelldatei-Verzeichnis wechseln +./configure --help Hilfe zu den möglichen Optionen +./configure --enable-shared + --enable-static + --prefix=/usr/local +make Programm herstellen +make test Programm testen +su als root anmelden +make install Programm installieren +exit root abmelden +\end{verbatim} + +\subsubsection{GD-Library} +%------------------------- +\begin{verbatim} +cd /usr/local/src Verzeichnis wechseln +tar xvfz gd-2.0.28.tar.gz Quelldateien entpacken +cd gd-2.0.28 in das Quelldatei-Verzeichnis wechseln +./configure Codebaum konfigurieren +make Programm herstellen +su als root anmelden +make install Programm installieren +exit root abmelden +\end{verbatim} + diff --git a/netzwerk/php/php.tex b/netzwerk/php/php.tex new file mode 100644 index 0000000..61148a8 --- /dev/null +++ b/netzwerk/php/php.tex @@ -0,0 +1,21 @@ +% master: php.tex +% PHP v0.2 +% 2011-06-07 (Rx) + + +\chapter{PHP} +%------------ +\input{netzwerk/php/einleitung} + +\section{Kompilieren und Installieren} +%------------------------------------- +\input{netzwerk/php/anforderungen} +\input{netzwerk/php/vorbereitungen} +\input{netzwerk/php/libraries_fuer_zusatzfunktionen} +\input{netzwerk/php/installieren_php} + +\section{Referenz} +%----------------- +\input{netzwerk/php/grundlagen} +\input{netzwerk/php/funktionen} + diff --git a/netzwerk/php/vorbereitungen.tex b/netzwerk/php/vorbereitungen.tex new file mode 100644 index 0000000..0132bd6 --- /dev/null +++ b/netzwerk/php/vorbereitungen.tex @@ -0,0 +1,16 @@ +% master: vorbereitungen.tex +% Vorbereitungen v0.1 +% 2011-06-05 (Rx) + +\subsection{Vorbereitungen} +%-------------------------- + +\begin{verbatim} +su als root anmelden +mkdir /usr/local/src das Verzeichnis /usr/local/src anlegen, + wenn es noch nicht vorhanden ist +chmod 777 /usr/local/src Verzeichnis-Rechte setzen +exit root abmelden +cp Quelldateien /usr/local/src Quelldateien kopieren +\end{verbatim} + diff --git a/netzwerk/squid/aufgaben.tex b/netzwerk/squid/aufgaben.tex new file mode 100644 index 0000000..b8ae2d9 --- /dev/null +++ b/netzwerk/squid/aufgaben.tex @@ -0,0 +1,14 @@ +% master: aufgaben.tex +% Aufgaben v0.1 +% 2011-06-08 (Rx) + +%\subsection{Aufgaben} +%--------------------- + +\begin{itemize} + \item Zwischenspeichern von Internetseitten -> Beschleunigter Zugriff auf Internetinhalte + \item Abkoppelung vom direkten Zugriff auf das Internet -> Erhöte Sicherheit im lokalem Netz + \item Filterung von Interrnetseiten + \item Protokollierung des Internetverkehrs +\end{itemize} + diff --git a/netzwerk/squid/automatische_starten_von_squit.tex b/netzwerk/squid/automatische_starten_von_squit.tex new file mode 100644 index 0000000..003fb8a --- /dev/null +++ b/netzwerk/squid/automatische_starten_von_squit.tex @@ -0,0 +1,15 @@ +% master: automatische_starten_von_squit.tex +% Automatische Starten von Squit v0.1 +% 2011-06-08 (Rx) + +%\subsection{Automatische Starten von Squit} +%------------------------------------------- + +\begin{verbatim} +cd /etc/rc.d/rc5.d/ +ln -s ../squid S22squid Link zum automatischen Starten in Runlevel 5 + anlegen. +ln -s ../squid K02squid Link zum automatischen Beenden in Runlevel 5 + anlegen. +\end{verbatim} + diff --git a/netzwerk/squid/client_kommunikation.tex b/netzwerk/squid/client_kommunikation.tex new file mode 100644 index 0000000..d0ede9e --- /dev/null +++ b/netzwerk/squid/client_kommunikation.tex @@ -0,0 +1,15 @@ +% master: client_kommunikation.tex +% Client-Kommunikation v0.1 +% 2011-06-08 (Rx) + +\subsection{Client-Kommunikation} +%-------------------------------- + +\begin{itemize} + \item Hyper Text Transfer Protocol (HTTP) + \item File Transfer Protocol (FTP) + \item Gopher + \item Wide Area Information Service (WAIS) + \item Secure Socket Layer (SSL) +\end{itemize} + diff --git a/netzwerk/squid/eigenschaften.tex b/netzwerk/squid/eigenschaften.tex new file mode 100644 index 0000000..ae139a5 --- /dev/null +++ b/netzwerk/squid/eigenschaften.tex @@ -0,0 +1,18 @@ +% master: eigenschaften.tex +% Eigenschaften v0.1 +% 2011-06-08 (Rx) + +%\subsection{Eigenschaften} +%-------------------------- + +\begin{itemize} + \item Größe des Cache kann frei definiert werden + \item Aufbau von Cache-Hierarchien + \item Eigener DNS-Cache + \item Authentifizierung über zusätzliche Module möglich + \item Für Win, OS/2, Linux, BSD, Solaris verfügbar + \item Ausfilterung und Anonymisierung der Anfragen + \item Sehr flexible Zugriffskontrolle + \item Filterung über externe Programme (Squid-Guard) +\end{itemize} + diff --git a/netzwerk/squid/einfacher_cache.tex b/netzwerk/squid/einfacher_cache.tex new file mode 100644 index 0000000..137a5f7 --- /dev/null +++ b/netzwerk/squid/einfacher_cache.tex @@ -0,0 +1,14 @@ +% master: einfacher_cache.tex +% Einfacher Cache v0.1 +% 2011-06-08 (Rx) + +%\subsection{Einfacher Cache} +%---------------------------- + +\begin{verbatim} + *---------------* *------------* | *---------* | *------------* + | lokaler Cache |<--->| WWW-Client |<--->| Intenet |<--->| WWW-Server | + *---------------* *------------* | *---------* | *------------* + Die einfachste form des Caches | | +\end{verbatim} + diff --git a/netzwerk/squid/kommunikation_zwischen_proxy_cache_servern.tex b/netzwerk/squid/kommunikation_zwischen_proxy_cache_servern.tex new file mode 100644 index 0000000..c479e74 --- /dev/null +++ b/netzwerk/squid/kommunikation_zwischen_proxy_cache_servern.tex @@ -0,0 +1,16 @@ +% master: kommunikation_zwischen_proxy_cache_servern.tex +% Kommunikation zwischen Proxy-Cache-Servern v0.1 +% 2011-06-08 (Rx) + +\subsection{Kommunikation zwischen Proxy-Cache-Servern} +%------------------------------------------------------ + +\begin{itemize} + \item HyperText Transfer Protocol (HTTP) + \item Internet Cache Protocol (ICP(3130)) + \item Cache Digests (Index von anderen Caches abfragen) + \item Simple Network Management Protocol (SNMP) + \item HyperText Caching Protocol (HTCP(4837)) + \item Web Cache Coordination Protocol (WCCP) +\end{itemize} + diff --git a/netzwerk/squid/proxy.tex b/netzwerk/squid/proxy.tex new file mode 100644 index 0000000..4370f66 --- /dev/null +++ b/netzwerk/squid/proxy.tex @@ -0,0 +1,9 @@ +% master: proxy.tex +% Proxy v0.1 +% 2011-06-08 (Rx) + +%\subsection{Proxy} +%------------------ + +Squid = Proxy-Cache = Stellvertreter-Zwischenspeicher + diff --git a/netzwerk/squid/proxy_cache.tex b/netzwerk/squid/proxy_cache.tex new file mode 100644 index 0000000..69612dc --- /dev/null +++ b/netzwerk/squid/proxy_cache.tex @@ -0,0 +1,21 @@ +% master: proxy_cache.tex +% Proxy Cache v0.1 +% 2011-06-08 (Rx) + +%\subsection{Proxy Cache} +%------------------------ + +\begin{verbatim} + *------------* + | WWW-Client |<-+ | | + *------------* | | | + | | | + *------------* | *-------------* | *---------* | *------------* + | WWW-Client |<-+->| Proxy Cache |<--->| Intenet |<--->| WWW-Server | + *------------* | *-------------* | *---------* | *------------* + | | | + *------------* | | | + | WWW-Client |<-+ | | + *------------* +\end{verbatim} + diff --git a/netzwerk/squid/squid.tex b/netzwerk/squid/squid.tex new file mode 100644 index 0000000..ff9a466 --- /dev/null +++ b/netzwerk/squid/squid.tex @@ -0,0 +1,51 @@ +% master: squid.tex +% Squid v0.1 +% 2011-06-08 (Rx) + +\chapter{Squid} + +\section{Proxy} +%-------------- +\input{netzwerk/squid/proxy} + +\section{Einfacher Cache} +%------------------------ +\input{netzwerk/squid/einfacher_cache} + +\section{Proxy Cache} +%-------------------- +\input{netzwerk/squid/proxy_cache} + +\section{Aufgaben} +%----------------- +\input{netzwerk/squid/aufgaben} + +\section{Eigenschaften} +%---------------------- +\input{netzwerk/squid/eigenschaften} + +\section{Protokolle} +%------------------- +\input{netzwerk/squid/client_kommunikation} +\input{netzwerk/squid/kommunikation_zwischen_proxy_cache_servern} + +\section{Systemvoraussetzungen} +%------------------------------ +\input{netzwerk/squid/systemvoraussetzungen} + +\section{SuSE Linux} +%------------------- +\input{netzwerk/squid/suse_linux} + +\section{Automatische Starten von Squit} +%--------------------------------------- +\input{netzwerk/squid/automatische_starten_von_squit} + +\section{Squiddateien} +%--------------------- +\input{netzwerk/squid/squiddateien} + +\section{squid.conf} +%------------------- +\input{netzwerk/squid/squid_conf} + diff --git a/netzwerk/squid/squid_conf.tex b/netzwerk/squid/squid_conf.tex new file mode 100644 index 0000000..1ef1865 --- /dev/null +++ b/netzwerk/squid/squid_conf.tex @@ -0,0 +1,103 @@ +% master: squid_conf.tex +% squid.conf v0.1 +% 2011-06-08 (Rx) + +%\subsection{squid.conf} +%----------------------- + +\begin{verbatim} +http_port: Proxy-Portnummer +# http_port 3128 +http_port 8080 + +cache_mem: Hauptspeicherverbrauch (x3) +# cache_mem 8 MB + +maximum_object_size: maximale groeße einer Datei die der Proxy speichert +# maximum_object_size 4096 KB + +minimum_object_size: minimale groeße einer Datei die der Proxy speichert +# minimum_object_size 0 KB + +cache_dir: Verzeichnisname GroeßeMByte Ebene1 Ebene2 +# cache_dir ufs /var/cache/squid 100 16 256 +cache_dir ufs /var/cache/squid 400 16 256 + +cache_access_log: Log-Datei mit allen Zugriffen +# cache_access_log /var/log/squid/access.log + +cache_log: Log-Datei fuer alle Cache-Aktivitaeten +# cache_log /var/log/squid/cache.log + +debug_options: ALL,1-normal 9-maximal +# debug_options ALL,1 + +log_fqdn: Bei on wird der Name und bei off wird die IP-Nummer + in der access.log speichert +# log_fqdn off +log_fqdn off + +client_netmask: Zum Anonymisieren + 255.255.255.255 volle IP-Nr., + 255.255.255.0 ersten 3 Stellen +# client_netmask 255.255.255.255 + +ftp_user: Anonymer FTP-Name +# ftp_user Squid@ +ftp_user Anonymous@ + + +dns_children: maximale Anzahl der DNS Prozesse +# dns_children 5 + +dns_nameservers: Eintrag fuer DNS-Server +#dns_nameservers 194.25.2.129 192.168.6.66 + +reference_age: maximale Alter der Cachefiles (0.0 week/days/months/hours) +# reference_age 1 year + +negative_ttl: gibt an wie lange eine negative DNS Aufloesung gueltig ist +# negative_ttl 5 minutes + +http_access: Zugriffsrechte fuer den Cache +# acl - aclname acltype string - definiert eine Zuganskontrolle und Sperrliste +# src - Client IP-Adresse/Adressbereich +# dst - Zielserver IP-Adresse/Adressbereich +# srcdomain - Client (Domain-)Name +# dstdomain - Zielserver (Domain-)Name +# srcdom_regex - Cient (Domain-)Name als RegEx +# dstdom_regex - Zielserver (Domain-)Name als RegEx +# port - Port oder -bereich für Verbindungen +# proto - Protokoll (z.B. HTTP, FTP ...) für die Verbindung +# method - Methode der Verbindung (z.B. GET, POST ...) +# proxy_auth - Benutzernamen bei Authentifizierung +# urlpath_regex Teil einer URL als RegEx +acl all src 0.0.0.0/0.0.0.0 +acl rotten dstdomain www.rotten.com +http_access deny rotten +http_access allow all + +cache_mgr: E-Mail bei einen Fehler an: E-Mail oder Alias(/etc/aliases) +# cache_mgr webmaster + +cache_effective_user: BenutzerName/ID +# cache_effective_user squid + +cache_effective_group: GruppenName/ID +# cache_effective_group nogroup + +visible_hostname: ServerName bei Fehlermeldungen +# none +visible_hostname proxy.gelbdmz.loc + +logfile_rotate: Zeit der Logdateien in Wochen +# logfile_rotate 0 + +append_domain: Kein Punkt in der URL ? Dann diesen Domainnamen anhaengen +# none +append_domain .meak.de + +error_directory: Verzeichnis zu den Fehlermeldungen die der Squid ausgibt +#error_directory /usr/share/squid/errors +\end{verbatim} + diff --git a/netzwerk/squid/squiddateien.tex b/netzwerk/squid/squiddateien.tex new file mode 100644 index 0000000..570818f --- /dev/null +++ b/netzwerk/squid/squiddateien.tex @@ -0,0 +1,15 @@ +% master: squiddateien.tex +% Squiddateien v0.1 +% 2011-06-08 (Rx) + +%\subsection{Squiddateien} +%------------------------- + +\begin{verbatim} +/etc/squid.conf Squid Konfigurationsdatei +/usr/share/squid/errors/ Fehlermeldungen die der Squid ausgibt +/var/cache/squid/ Squid-Cache +/var/log/squid/access.log Log-Datei mit allen Zugriffen +/var/log/squid/cache.log Cache-Aktivitaeten +\end{verbatim} + diff --git a/netzwerk/squid/suse_linux.tex b/netzwerk/squid/suse_linux.tex new file mode 100644 index 0000000..b2443f3 --- /dev/null +++ b/netzwerk/squid/suse_linux.tex @@ -0,0 +1,14 @@ +% master: suse_linux.tex +% SuSE Linux v0.1 +% 2011-06-08 (Rx) + +%\subsection{SuSE Linux} +%----------------------- + +\begin{verbatim} +rcsquid start Squid starten +rcsquid stop Squid stoppen +rcsquid restart Squid stoppen und dann starten +rcsquid status Squid info +\end{verbatim} + diff --git a/netzwerk/squid/systemvoraussetzungen.tex b/netzwerk/squid/systemvoraussetzungen.tex new file mode 100644 index 0000000..8dad997 --- /dev/null +++ b/netzwerk/squid/systemvoraussetzungen.tex @@ -0,0 +1,14 @@ +% master: systemvoraussetzungen.tex +% Systemvoraussetzungen v0.1 +% 2011-06-08 (Rx) + +%\subsection{Systemvoraussetzungen} +%---------------------------------- + +\begin{itemize} + \item Langsamme CPU + \item Viel RAM + \item Schnelle Festplatte(n) + \item Große Festplatte(n) +\end{itemize} + diff --git a/programme/latex.tex b/programme/latex.tex new file mode 100644 index 0000000..5560d78 --- /dev/null +++ b/programme/latex.tex @@ -0,0 +1,7 @@ +% master: latex.tex +% Befehle v0.2 +% 2011-05-27 (Rx) + +\chapter{LaTeX} +\input{latex/latex} + diff --git a/programme/latex/latex.tex b/programme/latex/latex.tex new file mode 100644 index 0000000..18eba0d --- /dev/null +++ b/programme/latex/latex.tex @@ -0,0 +1,8 @@ +% master: latex.tex +% LaTeX v0.2 +% 2011-05-27 (Rx) + +\chapter{LaTeX} +\section{\LaTeX} +\LaTeX + diff --git a/programme/programme.tex b/programme/programme.tex new file mode 100644 index 0000000..1be21c3 --- /dev/null +++ b/programme/programme.tex @@ -0,0 +1,8 @@ +% master: programme.tex +% Programme v0.3 +% 2011-05-27 (Rx) + +\part{Programme} +\input{programme/vim/vim} +\input{programme/latex/latex} + diff --git a/programme/vim/aufruf.tex b/programme/vim/aufruf.tex new file mode 100644 index 0000000..4c3810d --- /dev/null +++ b/programme/vim/aufruf.tex @@ -0,0 +1,16 @@ +% master: aufruf.tex +% Aufruf v0.3 +% 2022-05-10 (Rx) + +\section{Aufruf} +%--------------- + +\index{vi} +\begin{verbatim} +vi Editor vi aufrufen +vi Datei Editor vi aufrufen und Datei öffnen +vi -r swap-Dateien anzeigen +vi -r Datei Datei nach einem Stromausfall oder Absturz wieder herstellen +vi -R Datei Datei schreibgeschützt öffnen +\end{verbatim} + diff --git a/programme/vim/befehlsmodus/aufheben.tex b/programme/vim/befehlsmodus/aufheben.tex new file mode 100644 index 0000000..8fe9ed9 --- /dev/null +++ b/programme/vim/befehlsmodus/aufheben.tex @@ -0,0 +1,10 @@ +% master: aufheben.tex +% Aufheben v0.2 +% 2011-05-27 (Rx) + +\subsection{Aufheben:} +\begin{verbatim} + u macht die letzte Änderung rückgängig + U macht die letzte Änderung der ganzen Zeile rückgängig +\end{verbatim} + diff --git a/programme/vim/befehlsmodus/befehlsmodus.tex b/programme/vim/befehlsmodus/befehlsmodus.tex new file mode 100644 index 0000000..2f377d7 --- /dev/null +++ b/programme/vim/befehlsmodus/befehlsmodus.tex @@ -0,0 +1,22 @@ +% master: befehlsmodus.tex +% Befehlsmodus (visual mode) v0.12 +% 2011-05-27 (Rx) + +\section{Befehlsmodus (visual mode)} +%----------------------------------- + +\input{programme/vim/befehlsmodus/eingeben} +\input{programme/vim/befehlsmodus/ueberschreiben} +\input{programme/vim/befehlsmodus/bewegen} +\input{programme/vim/befehlsmodus/loeschen_und_eingeben} +\input{programme/vim/befehlsmodus/loeschen} +\input{programme/vim/befehlsmodus/aufheben} +\input{programme/vim/befehlsmodus/verschieben} +\input{programme/vim/befehlsmodus/zusammenfuegen} +\input{programme/vim/befehlsmodus/markieren} +\input{programme/vim/befehlsmodus/kopieren} +\input{programme/vim/befehlsmodus/einfuegen} +\input{programme/vim/befehlsmodus/suchen} +\input{programme/vim/befehlsmodus/wiederholen} +\input{programme/vim/befehlsmodus/sonstige_kommandos} + diff --git a/programme/vim/befehlsmodus/bewegen.tex b/programme/vim/befehlsmodus/bewegen.tex new file mode 100644 index 0000000..53e958a --- /dev/null +++ b/programme/vim/befehlsmodus/bewegen.tex @@ -0,0 +1,61 @@ +% master: bewegen.tex +% Bewegen v0.2 +% 2011-05-27 (Rx) + +\subsection{Bewegen:} +\begin{verbatim} + (n)h Cursor um (n) Zeichen nach links bewegen + (n)+h Cursor um (n) Zeichen nach links bewegen + (n)l Cursor um (n) Zeichen nach rechts bewegen + (n) Cursor um (n) Zeichen nach rechts bewegen + (n)| Cursor zur Spalte (n) bewegen + (n)t Taste Cursor vor das (n) Zeichen Taste nach rechts bewegen + (n)f Taste Cursor auf das (n) Zeichen Taste nach rechts bewegen + (n)T Taste Cursor vor das (n) Zeichen Taste nach links bewegen + (n)F Taste Cursor auf das (n) Zeichen Taste nach links bewegen + (n)j Cursor um (n) Zeilen abwärts bewegen + (n)k Cursor um (n) Zeilen aufwärts bewegen + (n)w Cursor um (n) Wörter nach rechts bewegen + (n)W Cursor um (n) Wörter(Space) nach rechts bewegen + (n)b Cursor um (n) Wörter nach links bewegen + (n)B Cursor um (n) Wörter(Space) nach links bewegen + (n)e Cursor an das (n) Wortende nach rechts bewegen + (n)E Cursor an das (n) Wortende(Space) nach rechts bewegen + ^ Cursor auf das erste Zeilenzeichen stellen + 0 Cursor vor das erste Zeilenzeichen stellen + (n)_ Cursor auf das erste Zeilenzeichen stellen und + (n-1) Zeilen nach unten bewegen + $ Cursor zum Zeilenende bewegen + (n)+ Cursor auf das erste Zeilenzeichen stellen und + (n) Zeilen abwärts bewegen + (n)- Cursor auf das erste Zeilenzeichen stellen und + (n) Zeilen aufwärts bewegen + (n)) Cursor um (n) Sätze abwärts bewegen + (n)( Cursor um (n) Sätze aufwärts bewegen + (n)} Cursor um (n) Absätze abwärts bewegen + (n){ Cursor um (n) Absätze aufwärts bewegen + (n)+u Cursor um 1/2 Bildschirm oder (n Zeilen) + aufwärts bewegen + (n)+d Cursor um 1/2 Bildschirm oder (n Zeilen) + abwärts bewegen + +f Cursor um 1 Bildschirm abwärts bewegen + Cursor um 1 Bildschirm abwärts bewegen + +b Cursor um 1 Bildschirm aufwärts bewegen + Cursor um 1 Bildschirm aufwärts bewegen + (n)+e scrollt den Cursor (n) Zeilen abwärts + (n)+y scrollt den Cursor (n) Zeilen aufwärts + ' Taste Cursor zu der mit Taste markierten Zeile bewegen + ` Taste Cursor zu dem mit Taste markierten Zeichen bewegen + gg Cursor zum Textanfang bewegen + (n)G Cursor zur Zeile (n) bewegen + G Cursor zum Textende bewegen + H Cursor an den Anfang der Bildschirmseite setzen + (n)H Cursor zur Zeile (n) auf den Bildschirm bewegen + M Cursor auf den Anfang der mittleren + Bildschirmzeile bewegen + L Cursor an das Ende der Bildschirmseite setzen + (n)L Cursor vom Ende zur Zeile (n) auf den Bildschirm bewegen + z Taste bewegt die aktuelle Zeile zum Anfang(+), Ende(-) oder + zur Mitte(.) des Bildschirms +\end{verbatim} + diff --git a/programme/vim/befehlsmodus/einfuegen.tex b/programme/vim/befehlsmodus/einfuegen.tex new file mode 100644 index 0000000..7d7c100 --- /dev/null +++ b/programme/vim/befehlsmodus/einfuegen.tex @@ -0,0 +1,10 @@ +% master: einfuegen.tex +% Einfügen v0.2 +% 2011-05-27 (Rx) + +\subsection{Einfügen:} +\begin{verbatim} + p fügt den aktuellen Puffer hinter dem Cursor ein + P fügt den aktuellen Puffer vor dem Cursor ein +\end{verbatim} + diff --git a/programme/vim/befehlsmodus/eingeben.tex b/programme/vim/befehlsmodus/eingeben.tex new file mode 100644 index 0000000..26fe047 --- /dev/null +++ b/programme/vim/befehlsmodus/eingeben.tex @@ -0,0 +1,16 @@ +% master: befehlsmodus.tex +% Befehlsmodus (visual mode) v0.4 +% 2010-08-15 (Rx) + +\subsection{Eingeben:} +\begin{verbatim} + (n)i eingeben fügt den eingeben Text (n mal) vor dem Cursor ein + (n)a eingeben fügt den eingeben Text (n mal) hinter dem Cursor ein + (n)I eingeben fügt den eingeben Text (n mal) am Zeilenanfang ein + (n)A eingeben fügt den eingeben Text (n mal) am Zeilenende ein + (n)o eingeben fügt unter der aktuellen Zeile (n neue Zeilen) + mit den eingeben Text ein + (n)O eingeben fügt über der aktuellen Zeile (n neue Zeilen) + mit den eingeben Text ein +\end{verbatim} + diff --git a/programme/vim/befehlsmodus/kopieren.tex b/programme/vim/befehlsmodus/kopieren.tex new file mode 100644 index 0000000..8db9910 --- /dev/null +++ b/programme/vim/befehlsmodus/kopieren.tex @@ -0,0 +1,13 @@ +% master: kopieren.tex +% Kopieren v0.2 +% 2011-05-27 (Rx) + +\subsection{Kopieren:} +\begin{verbatim} + y Bereich kopiert den mit Bereich angegebenen Text in einen Puffer + (n)Y kopiert die aktuelle und (n) Zeilen in einen Puffer + " Taste legt den nächsten Zwischenpuffer fest + @ Taste interpretiert den Inhalt des Zwischenspeichers als + vi Befehle und führt sie aus +\end{verbatim} + diff --git a/programme/vim/befehlsmodus/loeschen.tex b/programme/vim/befehlsmodus/loeschen.tex new file mode 100644 index 0000000..257d2cf --- /dev/null +++ b/programme/vim/befehlsmodus/loeschen.tex @@ -0,0 +1,15 @@ +% master: loeschen.tex +% Löschen v0.2 +% 2011-05-27 (Rx) + +\subsection{Löschen:} +\begin{verbatim} + d Bereich löscht den markierten Bereich + dd löscht die ganze Zeile + D löscht den Text bis Zeilenende + dw löscht bis zum Ende des Wortes + (n)x löscht (n) Zeichen auf den sich der Cursor befindet + löscht das Zeichen auf den sich der Cursor befindet + (n)X löscht (n) Zeichen links vom Cursor +\end{verbatim} + diff --git a/programme/vim/befehlsmodus/loeschen_und_eingeben.tex b/programme/vim/befehlsmodus/loeschen_und_eingeben.tex new file mode 100644 index 0000000..ce52f32 --- /dev/null +++ b/programme/vim/befehlsmodus/loeschen_und_eingeben.tex @@ -0,0 +1,19 @@ +% master: loeschen_und_eingeben.tex +% Löschen und Eingeben v0.2 +% 2010-08-15 (Rx) + +\subsection{Löschen und Eingeben:} +\begin{verbatim} + (n)s eingeben löscht (n) Zeichen von dem Cursor nach rechts und + fügt den eingeben Text ein + c Bereich eingeben löscht den markierten Bereich und + fügt den eingeben Text ein + cc eingeben löscht den Zeilentext und fügt den eingeben Text ein + cw eingeben löscht bis zum ende des Wortes und + fügt den eingeben Text ein + C eingeben löscht den Text bis Zeilenende und + fügt den eingeben Text ein + (n)S eingeben löscht (n) Zeilen nach unten und + fügt den eingeben Text ein ( wie (n)cc ) +\end{verbatim} + diff --git a/programme/vim/befehlsmodus/markieren.tex b/programme/vim/befehlsmodus/markieren.tex new file mode 100644 index 0000000..80f2f22 --- /dev/null +++ b/programme/vim/befehlsmodus/markieren.tex @@ -0,0 +1,11 @@ +% master: markieren.tex +% Markieren v0.1 +% 2010-08-16 (Rx) + +\subsection{Markieren:} +\begin{verbatim} + m Taste markiert eine Zeile oder Zeichen + v setzt den Anfang einer Markierung + V setzt den Anfang einer Zeilenmarkierung +\end{verbatim} + diff --git a/programme/vim/befehlsmodus/sonstige_kommandos.tex b/programme/vim/befehlsmodus/sonstige_kommandos.tex new file mode 100644 index 0000000..4a949ae --- /dev/null +++ b/programme/vim/befehlsmodus/sonstige_kommandos.tex @@ -0,0 +1,11 @@ +% master: sonstige_kommandos.tex +% Sonstige Kommandos v0.1 +% 2010-08-16 (Rx) + +\subsection{Sonstige Kommandos:} +\begin{verbatim} + G zeigt den Dateistatus und die momentane Zeilennummer + ZZ speichert die Datei und beendet vi + L erneuert den Bildschirm +\end{verbatim} + diff --git a/programme/vim/befehlsmodus/suchen.tex b/programme/vim/befehlsmodus/suchen.tex new file mode 100644 index 0000000..b38a248 --- /dev/null +++ b/programme/vim/befehlsmodus/suchen.tex @@ -0,0 +1,12 @@ +% master: suchen.tex +% Suchen v0.2 +% 2011-05-27 (Rx) + +\subsection{Suchen:} +\begin{verbatim} + (n)% platziert den Cursor auf die zugehörige () {} [], oder + platziert den Cursor auf (n) Prozent der Datei + / Text sucht den Text vorwärts + ? Text sucht den Text rückwärts +\end{verbatim} + diff --git a/programme/vim/befehlsmodus/ueberschreiben.tex b/programme/vim/befehlsmodus/ueberschreiben.tex new file mode 100644 index 0000000..f3a3527 --- /dev/null +++ b/programme/vim/befehlsmodus/ueberschreiben.tex @@ -0,0 +1,14 @@ +% master: ueberschreiben.tex +% Überschreiben v0.2 +% 2011-06-27 (Rx) + +\subsection{Überschreiben:} +%--------------------------- + +\begin{verbatim} + (n)R eingeben überschreibt den Text mit eingeben + wechselt zwischen INSERT und REPLACE + (n)r Taste überschreibt den Text mit (n mal) Taste + von dem Cursor nach rechts +\end{verbatim} + diff --git a/programme/vim/befehlsmodus/verschieben.tex b/programme/vim/befehlsmodus/verschieben.tex new file mode 100644 index 0000000..294f6d8 --- /dev/null +++ b/programme/vim/befehlsmodus/verschieben.tex @@ -0,0 +1,14 @@ +% master: verschieben.tex +% Verschieben v0.1 +% 2010-08-16 (Rx) + +\subsection{Verschieben:} +\begin{verbatim} + > Bereich schiebt die markierten Zeilen nach rechts + >> schiebt die Zeile auf den sich der Cursor befindet + nach rechts + < Bereich schiebt die markierten Zeilen nach links + << schiebt die Zeile auf den sich der Cursor befindet + nach links +\end{verbatim} + diff --git a/programme/vim/befehlsmodus/wiederholen.tex b/programme/vim/befehlsmodus/wiederholen.tex new file mode 100644 index 0000000..b0f4047 --- /dev/null +++ b/programme/vim/befehlsmodus/wiederholen.tex @@ -0,0 +1,16 @@ +% master: wiederholen.tex +% Wiederholen v0.1 +% 2010-08-16 (Rx) + +\subsection{Wiederholen:} +\begin{verbatim} + . wiederholt das letzte EDIT Kommando + n wiederholt das letzte Suchen + N wiederholt das letzte Suchen in umgekehrter Richtung + (n); wiederholt das vorgehende f, F, t, T Kommando + (n), wiederholt das vorgehende f, F, t, T Kommando in + umgekehrter Richtung + (n)& wiederholt den letzten :s// Befehl an der momentanen + Position +\end{verbatim} + diff --git a/programme/vim/befehlsmodus/zusammenfuegen.tex b/programme/vim/befehlsmodus/zusammenfuegen.tex new file mode 100644 index 0000000..fc7a80d --- /dev/null +++ b/programme/vim/befehlsmodus/zusammenfuegen.tex @@ -0,0 +1,9 @@ +% master: zusammenfuegen.tex +% Zusammenfügen v0.2 +% 2011-05-26 (Rx) + +\subsection{Zusammenfügen:} +\begin{verbatim} + (n)J hängt (n) Zeilen nach unten aneinander +\end{verbatim} + diff --git a/programme/vim/eingabemodus.tex b/programme/vim/eingabemodus.tex new file mode 100644 index 0000000..a79a516 --- /dev/null +++ b/programme/vim/eingabemodus.tex @@ -0,0 +1,13 @@ +% master: eingabemodus.tex +% Eingabemodus (input mode) v0.1 +% 2010-08-15 (Rx) + +\section{Eingabemodus (input mode)} +%---------------------------------- + +%\begin{verbatim} +Um in den Eingabemodus zu gelangen muss A, C, I, O, R, S, a, i, o oder s +eingegeben werden. i ist eine gute Wahl. +Mit \textless{Esc}\textgreater{} wird der Eingabemodus verlassen. +%\end{verbatim} + diff --git a/programme/vim/kommandomodus.tex b/programme/vim/kommandomodus.tex new file mode 100644 index 0000000..0e0523c --- /dev/null +++ b/programme/vim/kommandomodus.tex @@ -0,0 +1,32 @@ +% master: kommandomodus.tex +% Kommandomodus (colon mode) v0.2 +% 2010-08-16 (Rx) + +\section{Kommandomodus (colon mode)} +%----------------------------------- + +Um in den Kommandomodus zu gelangen muss : +eingegeben werden. + +\subsection{Texteingabe Kommandos} +%--------------------------------- + +\begin{verbatim} + q(!) Editor verlassen + wq Editor mit speichern verlassen + xit arbeitet wie wq, speichert nur bei einer Änderung + x(!) Editor mit speichern verlassen + w(!) Name Datei mit Namen speichern + h Hilfe anfordern + + args Dateien Liste der Dateien anlegen + args Dateien auflisten + next(!) schaltet zur nächsten Datei + previous(!) schaltet zur vorhergehenden Datei + rewind(!) schaltet zur ersten Datei + + edit(!) Datei dient zum wechseln der Datei + + !Befehl externen Befehl ausführen +\end{verbatim} + diff --git a/programme/vim/vim.tex b/programme/vim/vim.tex new file mode 100644 index 0000000..f3f268d --- /dev/null +++ b/programme/vim/vim.tex @@ -0,0 +1,16 @@ +% master: vim.tex +% Der Texteditor vi/vim v0.2 +% 2011-05-26 (Rx) + +\chapter{Der Texteditor vi/vim} + +Der vi-Editor ist auf UNIX/Linux(neben Emacs) der meistverwendete Texteditor. +Die Bedienung erfolgt über den Befehls- und Kommando-modus. Da es nicht +gerade einfach ist sich diese Optionen zu merken, folgt eine Auflistung der +meist gebrauchten Optionen. + +\input{programme/vim/aufruf} +\input{programme/vim/eingabemodus} +\input{programme/vim/befehlsmodus/befehlsmodus} +\input{programme/vim/kommandomodus} + diff --git a/programmieren/bash/bash.tex b/programmieren/bash/bash.tex new file mode 100644 index 0000000..cae4ebc --- /dev/null +++ b/programmieren/bash/bash.tex @@ -0,0 +1,12 @@ +% master: bash.tex +% Bash v0.1 +% 2011-06-07 (Rx) + +\chapter{Bash} + +% Seiten +%------- +\input{programmieren/bash/einleitung} +\input{programmieren/bash/referenz} +\input{programmieren/bash/steuer_und_sonderzeichen_der_bash} + diff --git a/programmieren/bash/einleitung.tex b/programmieren/bash/einleitung.tex new file mode 100644 index 0000000..0f49ef6 --- /dev/null +++ b/programmieren/bash/einleitung.tex @@ -0,0 +1,16 @@ +% master: einleitung.tex +% Einleitung v0.1 +% 2011-06-07 (Rx) + +\section{Einleitung} +%------------------- + +\begin{verbatim} +Was heist BASH ? Bourne-Again SHell + +Was ist die BASH ? Standard-Shell der meisten Linux-Distributionen + Eine fast komplette Programmiersprache +\end{verbatim} + +BASH-Programme werden auch "Scripte" (Protokolle) genannt ! + diff --git a/programmieren/bash/referenz.tex b/programmieren/bash/referenz.tex new file mode 100644 index 0000000..1d91453 --- /dev/null +++ b/programmieren/bash/referenz.tex @@ -0,0 +1,34 @@ +% master: referenz.tex +% Referenz v0.1 +% 2011-06-07 (Rx) + +\section{Referenz} +%----------------- + +\begin{verbatim} +#!/bin/bash Pfad zur Shell die das Programm ausführen soll +chmod u+x Script Macht das Script ausführbar +bash Script oder sh Script so gehts auch + +# Kommentar bis Zeilenende +: Null-Funktion. Ein Befehl, der nichts tut. +(( oder [ +)) oder ] +echo Text Gibt den Text aus +echo "Text" Gibt den Text aus +echo Text Text Gibt den Text mit nur einer Leerstelle aus +echo "Text Text" Gibt den Text mit allen Leerstellen aus +echo Text\ \ \ Text Gibt den Text mit allen Leerstellen aus + +Variable=7 Speichert 7 in der Variable +Variable=z Speichert z in der Variable + +echo $Variable Gibt den Inhalt der Variable aus +echo ${Variable} Gibt den Inhalt der Variable aus + +Wert=$[$Wert+1] Wert=Wert+1 +Wert=$(($Wert+1)) Wert=Wert+1 +: $[Wert+=1] Wert=Wert+1 +: $((Wert+=1)) Wert=Wert+1 +\end{verbatim} + diff --git a/programmieren/bash/steuer_und_sonderzeichen_der_bash.tex b/programmieren/bash/steuer_und_sonderzeichen_der_bash.tex new file mode 100644 index 0000000..52c58f5 --- /dev/null +++ b/programmieren/bash/steuer_und_sonderzeichen_der_bash.tex @@ -0,0 +1,21 @@ +% master: steuer_und_sonderzeichen_der_bash.tex +% Steuer und Sonderzeichen der Bash v0.1 +% 2011-06-07 (Rx) + +\section{Steuer und Sonderzeichen der Bash} +%------------------------------------------ + +\begin{verbatim} +Zeichen Funktion +------- -------- +Leerzeichen (space) Trenner zwischen Programm-Parametern +Tabulator (tab) Trenner zwischen Programm-Parametern +Return (newline) Befehlseingabe +\ (backslash) Escape-Zeichen +| (pipe) Verkettung der Ein-/Ausgabe mehrerer Programme +& (ampersand) Programm als Hintergrund-Prozess starten, + Ein-/Ausgabeumleitung +; (semikolon) Trenner zwischen zwei Programmaufrufen +( ) (braces) Gruppierung, Berechnung +\end{verbatim} + diff --git a/programmieren/c/ascii.tex b/programmieren/c/ascii.tex new file mode 100644 index 0000000..441ba50 --- /dev/null +++ b/programmieren/c/ascii.tex @@ -0,0 +1,107 @@ +% master: ascii.tex +% ASCII(American Standart Code for Information Interchange)-Tabelle v0.2 +% 2011-05-27 (Rx) + +\section{ASCII(American Standart Code for Information Interchange)-Tabelle} +%-------------------------------------------------------------------------- + +\begin{verbatim} +654 000 001 010 011 100 101 110 111 +Bit +3210 + NUL DLE SP 0 @ P ` p +0000 $0 0 $10 16 $20 32 $30 48 $40 64 $50 80 $60 96 $70 112 + + SOH DC1 ! 1 A Q a q +0001 $1 1 $11 17 $21 33 $31 49 $41 65 $51 81 $61 97 $71 113 + + STX DC2 " 2 B R b r +0010 $2 2 $12 18 $22 34 $32 50 $42 66 $52 82 $62 98 $72 114 + + ETX DC3 # 3 C S c s +0011 $3 3 $13 19 $23 35 $33 51 $43 67 $53 83 $63 99 $73 115 + + EOT DC4 $ 4 D T d t +0100 $4 4 $14 20 $24 36 $34 52 $44 68 $54 84 $64 100 $74 116 + + ENQ NAK % 5 E U e u +0101 $5 5 $15 21 $25 37 $35 53 $45 69 $55 85 $65 101 $75 117 + + ACK SYN & 6 F V f v +0110 $6 6 $16 22 $26 38 $36 54 $46 70 $56 86 $66 102 $76 118 + + BEL ETB ' 7 G W g w +0111 $7 7 $17 23 $27 39 $37 55 $47 71 $57 87 $67 103 $77 119 + + BS CAN ( 8 H X h x +1000 $8 8 $18 24 $28 40 $38 56 $48 72 $58 88 $68 104 $78 120 + + HT EM ) 9 I Y i y +1001 $9 9 $19 25 $29 41 $39 57 $49 73 $59 89 $69 105 $79 121 + + LF SUB * : J Z j z +1010 $A 10 $1A 26 $2A 42 $3A 58 $4A 74 $5A 90 $6A 106 $7A 122 + + VT ESC + ; K [Ä k {ä +1011 $B 11 $1B 27 $2B 43 $3B 59 $4B 75 $5B 91 $6B 107 $7B 123 + + FF FS , < L \ö l |ö +1100 $C 12 $1C 28 $2C 44 $3C 60 $4C 76 $5C 92 $6C 108 $7C 124 + + CR GS - = M ]Ü m }ü +1101 $D 13 $1D 29 $2D 45 $3D 61 $4D 77 $5D 93 $7D 109 $7D 125 + + SO RS . > N ^ n ~ß +1110 $E 14 $1E 30 $2E 46 $3E 62 $4E 78 $5E 94 $7E 110 $7E 126 + + SI US / ? O _ o DEL +1111 $F 15 $1F 31 $2F 47 $3F 63 $4F 79 $5F 95 $7F 111 $7F 127 +\end{verbatim} + +\subsection{Unterteilung der Steuerzeichen:} +%------------------------------------------- + +\begin{verbatim} +TC transmission control Übertragungssteuerzeichen +FE format effects Formatsteuerzeichen +IS information separators Informationstrennzeichen +DC device control Gerätesteuerzeichen +\end{verbatim} + +\subsection{Bedeutung der Steuerzeichen:} +%---------------------------------------- + +\begin{verbatim} +NUL null kein Zeichen +SOH TC start of heading Anfang des Kopfes +STX TC start of text Anfang des Textes +ETX TC end of text Ende des Textes +EOT TC end of transmission Ende der Übertragung +ENQ TC enquiry Stationsaufforderung +ACK TC acknowledge positive Rückmeldung +BEL bell Alarm / Piepton +BS FE backspace Rückwärtsschritt +HT FE horizontal tabulation horizontaler Tabulator +LF FE line feed Zeilenvorschub +VT FE vertical tabulation vertikaler Tabulator +FF FE form feed Seitenvorschub +CR FE carriage return Wagenrücklauf +SO shift out Dauerumschaltung +SI shift in Rückschaltung +DLE TC data link escape Datenübertragungsumschaltung +DCn DC device control Gerätesteuerzeichen +NAK TC negative acknowledge negative Rückmeldung +SYN TC synchronous idle Synchronisierung +ETB TC end of transmission block Ende des Übertragungsblocks +CAN cancel ungültig +EM end of medium Ende der Aufzeichnung +SUB substitute character Substitution +ESC escape Umschaltung +FS IS file separator Hauptgruppentrennung +GS IS group separator Gruppentrennung +RS IS record separator Untergruppentrennung +US IS unit separator Teilgruppentrennung +SP space Leerzeichen +DEL delete löschen +\end{verbatim} + diff --git a/programmieren/c/befehle_und_grundelemente.tex b/programmieren/c/befehle_und_grundelemente.tex new file mode 100644 index 0000000..549d986 --- /dev/null +++ b/programmieren/c/befehle_und_grundelemente.tex @@ -0,0 +1,39 @@ +% master: befehle_und_grundelemente.tex +% Befehle und Grundelemente v0.2 +% 2011-05-27 (Rx) + +\section{Befehle und Grundelemente} +%--------------------------------- + +\begin{verbatim} +gcc Datei.c Programm übersetzen -> a.out +g++ Datei.cpp Programm übersetzen -> a.out (C++) +gcc -c Datei.c Objektdatei herstellen -> Datei.o +g++ -c Datei.cpp Objektdatei herstellen -> Datei.o (C++) +gcc -o Programmname Datei1.o Datei2.o Datei1.o+Datei2.o -> Programmname +g++ -o Programmname Datei1.o Datei2.o Datei1.o+Datei2.o -> Programmname (C++) +gcc -o Programmname Datei.c Programm übersetzen -> Programmname +g++ -o Programmname Datei.cpp Programm übersetzen -> Programmname(C++) +Programmname Programm starten + +configure Makefile konfigurieren +make Programm übersetzen, + wenn Makefile vorhanden +make install Programm installieren + +/* Kommentar einleiten +*/ Kommentar abschließen +// Kommentar einleiten bis zum Zeilenende (C++) +{ Blockbeginn +} Blockende +, mehrere Variablen vom gleichen Typ deklarieren z.B. int a, b, c; +; Funktions-,Operations- und Zeilen-ende (leere Anweisung) + +#include Datei aus /usr/include/ bei UNIX einlesen +#include"Datei" Datei aus dem aktuellen Verzeichnis einlesen +char Variablentyp character - Zeichen +int Variablentyp integer - ganzzahlig mit Vorzeichen +main() Hauptfunktion +return() Wert aus einer Funktion zurückliefern +\end{verbatim} + diff --git a/programmieren/c/c.tex b/programmieren/c/c.tex new file mode 100644 index 0000000..37fcf64 --- /dev/null +++ b/programmieren/c/c.tex @@ -0,0 +1,22 @@ +% master: c.tex +% Programmieren in C/C++ v0.12 +% 2010-08-07 (Rx) + +\chapter{C/C++} + +% Seiten +%------- +%\clearpage +\input{programmieren/c/befehle_und_grundelemente} +\input{programmieren/c/steuersequenzen} +\input{programmieren/c/stdio.h} +\input{programmieren/c/ctype.h} +\input{programmieren/c/string.h} +\input{programmieren/c/kontrollstrukturen} +\input{programmieren/c/ascii.tex} +\input{programmieren/c/operatoren_und_ausdruecke} +\input{programmieren/c/inkrementieren_und_dekrementieren} +\input{programmieren/c/wertebereich_und_genauigkeit_elementarer_datentypen} +\input{programmieren/c/variableninitialisierung} +\input{programmieren/c/konstanten} + diff --git a/programmieren/c/ctype.h.tex b/programmieren/c/ctype.h.tex new file mode 100644 index 0000000..2d9bc84 --- /dev/null +++ b/programmieren/c/ctype.h.tex @@ -0,0 +1,12 @@ +% master: ctype.h.tex +% ctype.h v0.2 +% 2011-05-27 (Rx) + +\section{ctype.h} +%---------------- + +\begin{verbatim} +if(isascii(zeichen)) überprüft ob es sich um ein ASCII-Zeichen handelt +if(isxdigit(zeichen)) überprüft ob es sich um ein Hex-Zeichen handelt +\end{verbatim} + diff --git a/programmieren/c/inkrementieren_und_dekrementieren.tex b/programmieren/c/inkrementieren_und_dekrementieren.tex new file mode 100644 index 0000000..6d25b58 --- /dev/null +++ b/programmieren/c/inkrementieren_und_dekrementieren.tex @@ -0,0 +1,18 @@ +% master: inkrementieren_und_dekrementieren.tex +% Inkrementieren und Dekrementieren v0.1 +% 2010-08-07 (Rx) + +\section{Inkrementieren und Dekrementieren} +%------------------------------------------ + +\begin{verbatim} +i++ ; i = i + 1 +++i ; i = i + 1 +x = i++ ; 1. x = i 2. i = i + 1 +x = ++i ; 1. i = i + 1 2. x = i +i-- ; i = i - 1 +--i ; i = i - 1 +x = i-- ; 1. x = i 2. i = i - 1 +x = --i ; 2. i = i - 1 2. x = i +\end{verbatim} + diff --git a/programmieren/c/konstanten.tex b/programmieren/c/konstanten.tex new file mode 100644 index 0000000..30a2e40 --- /dev/null +++ b/programmieren/c/konstanten.tex @@ -0,0 +1,38 @@ +% master: konstanten.tex +% Konstanten v0.2 +% 2011-05-27 (Rx) + +\section{Konstanten} +%------------------- + +Konstanten werden mit dem vorangestellten Schlüsselwort const wie Variabeln +deklariert. Der dem Namen über das =-Zeichen zugeordnete Wert kann nicht im +Programm verändert werden. Für eine fehlende Typenangabe wird int angenommen. + +\begin{verbatim} +cont float PI = 3.14159 ; // bevorzugen +#define PI 3.14159 ; +\end{verbatim} + +\subsection{Ganzzahlkonstanten} +%------------------------------ +dezimal = 30 ; +oktal = 036 ; +hexadezimal = 0x1E ; +Zusätzlich kann frau eine Ganzzahlkonstante durch das Suffix L oder l als long +und durch U oder u als unsigned kennzeichnen (z.B. 30U). + +\subsection{Gleitkommakonstanten} +%-------------------------------- +0.033 ++.033 +33E-3 ++33.0e-03 +Zusätzlich kann frau eine Gleitkommakonstante durch das Suffix F oder f als +float und durch L oder l als long double kennzeichnen (z.B. 0.033L). + +\subsection{Zeichen- und Zeichenkettenkonstanten} +%------------------------------------------------ +'n' \\ +"'zeichenkette'" + diff --git a/programmieren/c/kontrollstrukturen.tex b/programmieren/c/kontrollstrukturen.tex new file mode 100644 index 0000000..dba03c0 --- /dev/null +++ b/programmieren/c/kontrollstrukturen.tex @@ -0,0 +1,48 @@ +% master: kontrollstrukturen.tex +% Kontrollstrukturen v0.2 +% 2011-05-27 (Rx) + +\section{Kontrollstrukturen} +%--------------------------- + +\begin{verbatim} +if(Ausdruck) wenn der Ausdruck stimmt, +{ + Anweisung-en1; Anweisung-en1 +} +else sonst +{ + Anweisung-en2; Anweisung-en2 +} + +switch(Ausdruck) gehe zum Ausdruck +{ + case 1: Anweisung-en1; Ausdruck1: Anweisung-en1 + case 2: Anweisung-en2; Ausdruck2: Anweisung-en2 + break; Anweisungen beenden + case n: Anweisung-enn; Ausdruckn: Anweisung-enn + break; Anweisungen beenden + default: Anweisung-en; Ausdruck nicht vorhanden: Aneisung-en +} + +continue; unterbricht die Abarbeitung und geht zur Ausdrucksbedingung +break; verlässt die Schleife oder Verbundsanweisung + +for(Ausdruck1;Ausdruck2;Ausdruck3) Ausdruck1 einmal ausführen +{ so lange der Ausdruck2 stimmt, + vorher noch Ausdruck3 + Anweisug-en; Anweisung-en +} + +while(Ausdruck) so lange der Ausdruck stimmt, +{ + Anweisung-en; Anweisung-en +} + +do mach +{ + Anweisung-en; Anweisung-en +} +while(Ausdruck); so lange der Ausdruck stimmt +\end{verbatim} + diff --git a/programmieren/c/operatoren_und_ausdruecke.tex b/programmieren/c/operatoren_und_ausdruecke.tex new file mode 100644 index 0000000..605fe5b --- /dev/null +++ b/programmieren/c/operatoren_und_ausdruecke.tex @@ -0,0 +1,109 @@ +% master: operatoren_und_ausdruecke.tex +% Operatoren und Ausdrücke v0.2 +% 2011-05-27 (Rx) + +\section{Operatoren und Ausdrücke} +%---------------------------------- + +\subsection{Arithmetische Operatoren:} +%------------------------------------- +\begin{verbatim} +Operator Bedeutung Assoziativität Rang Beispiel +-------- --------- -------------- ---- -------- ++ Addition > 5 a+b +- Subtraktion > 5 a-b +* Multiplikation > 4 a*b +/ Division > 4 a/b +% Modulo > 4 a%b +\end{verbatim} + +\subsection{Vergleichsoperatoren:} +%--------------------------------- +\begin{verbatim} +Operator Bedeutung Assoziativität Rang Beispiel +-------- --------- -------------- ---- -------- +< kleiner als > 7 a 7 a<=b +> größer > 7 a>b +>= größer oder gleich > 7 a>=b +== gleich > 8 a==b +!= ungleich > 8 a!=b +\end{verbatim} + +\subsection{Logische Operatoren:} +%-------------------------------- +\begin{verbatim} +Operator Bedeutung Assoziativität Rang Beispiel +-------- --------- -------------- ---- -------- +& bitweises AND > 9 a&b +| bitweises OR > 11 a|b +^ bitweises XOR > 10 a^b +<< bitweises Linksschieben > 6 a<> bitweises Rechtsschieben > 6 a>>n +~ Einerkomplement < 2 ~a +&& logisches AND > 12 a&&b +|| logisches OR > 13 a||b +! logische Negation < 2 !a +\end{verbatim} + +\subsection{Zuweisungsoperatoren:} +%--------------------------------- +\begin{verbatim} +Operator Bedeutung Assoziativität Rang Beispiel +-------- --------- -------------- ---- -------- += Zuweisung < 15 a=b ++= Zuweisung nach Addition < 15 a+=b +-= Zuweisung nach Subtraktion < 15 a-=b +*= Zuweisung nach Multiplikation < 15 a*=b +/= Zuweisung nach Division < 15 a/=b +%= Zuweisung nach Modulo < 15 a%=b +<<= Zuweisung nach bitweisem < 15 a<<=b + Linksschieben +>>= Zuweisung nach bitweisem < 15 a>>=b + Rechtsschieben +&= Zuweisung nach bitweisem AND < 15 a&=b +|= Zuweisung nach bitweisem OR < 15 a|=b +^= Zuweisung nach bitweisem XOR < 15 a^=b +\end{verbatim} + +\subsection{Post- und Prefix- Operatoren:} +%----------------------------------------- +\begin{verbatim} +Operator Bedeutung Assoziativität Rang Beispiel +-------- --------- -------------- ---- -------- +++ Inkrement > < 1 2 a++ ++a +-- Dekrement > < 1 2 a-- --a +() Funktionsaufruf > 1 sqrt(a) +[] Arrayelement > 1 feld[a] +. Feld einer structur oder union > 1 tag.dat +-> Zeiger auf structur > 1 zeig->ele +( type ) expl. Typenumwandlung < 2 double(a) +\end{verbatim} + +\subsection{Zeigeroperatoren:} +%----------------------------- +\begin{verbatim} +Operator Bedeutung Assoziativität Rang Beispiel +-------- --------- -------------- ---- -------- +& Adresse von < 2 &a +* Indirektion < 2 *a +.* Dereferenzzeiger > 3 tag.*dat +->* Dereferenzzeiger > 3 tag->dat +\end{verbatim} + +\subsection{Diverse Kategorien:} +%------------------------------- +\begin{verbatim} +Operator Bedeutung Assoziativität Rang Beispiel +-------- --------- -------------- ---- -------- +?: Bedinung < 14 a?b:c + i = x 16 a,b, ... +- unäres Minus < 2 -n ++ unäres Plus < 2 +n +sizeof(typ) Größe des Types in Byte < 2 sizeof(a) +new dynam. Objekt erzeugen < 2 b = new float[a] +delete dynam. Objekt löschen < 2 delete b +:: Zugiffs-/Bereichsoperator < 2 adr::nam +\end{verbatim} + diff --git a/programmieren/c/stdio.h.tex b/programmieren/c/stdio.h.tex new file mode 100644 index 0000000..944da81 --- /dev/null +++ b/programmieren/c/stdio.h.tex @@ -0,0 +1,35 @@ +% master: stdio.h.tex +% stdio.h -> Standard Ein- und Ausgabe v0.2 +% 2011-05-27 (Rx) + +\section{stdio.h -\textgreater\ Standard Ein- und Ausgabe} +%--------------------------------------------------------- + +\begin{verbatim} +c=getchar(); Eingabe eines Zeichens, ohne Wagenrücklauf +putchar('a'); Ausgabe eines Zeichens, ohne Wagenrücklauf +puts("Text"); Zeichenkette ausgeben, mit Wagenrücklauf +fputs("Text",stdount); Zeichenkette ausgeben, ohne Wagenrücklauf +fputs("Text",stderr); Zeichenkette ausgeben, ohne Wagenrücklauf +printf("Text %d",Zahl); Zeichenkette formatiert ausgeben, ohne Wagenrücklauf + % F Z1 . Z2 L U + | | | | | | + Umwandlungszeichen: %d-dezimal %u-unsigned + | | | | | | %o-oktal %s-Text %c-Zeichen + | | | | | | %f-Flieskomma %e-Expotential + | | | | | | %x-hexadezimal %p-pointer + | | | | | +-- Long-Ausgabe: notwendig für long int + | | | | +----- Nachkommastellen: z.B 3 für drei stellen + | | | +------- Trenzeichen, falls Z1 und Z2 + | | +---------- Größe des Ausgabefensters: z.B 7 für sieben stellen + | +------------ Ausrichtung: ohne Angabe rechtsbündig, + | mit Minuszeichen linksbündig + +-------------- Fluchtsymbol +scanf("%c",&text); Zeichen in &text einlesen + % * Z L U + | | | | +------ Umwandlungszeichen + | | | +-------- Long-Ausgabe + | | +---------- Größe des Eingabefensters + | +------------ Wegwerfen + +-------------- Fluchtsymbol +\end{verbatim} + diff --git a/programmieren/c/steuersequenzen.tex b/programmieren/c/steuersequenzen.tex new file mode 100644 index 0000000..e288917 --- /dev/null +++ b/programmieren/c/steuersequenzen.tex @@ -0,0 +1,44 @@ +% master: steuersequenzen.tex +% Steuersequenzen für ANSI-Bildschirme - Innerhalb von Texten v0.2 +% 2011-05-27 (Rx) + +\section{Steuersequenzen für ANSI-Bildschirme - Innerhalb von Texten} +%--------------------------------------------------------------------- + +\begin{verbatim} +\a BEL bell Alarm/Piepton +\b BS backspace Rücksetzen um ein Zeichen +\f FF formfeed Seitenvorschub +\n NL new line Zeilenvorschub +\r CR carriage return Wagenrücklauf +\t HT horizontal tabulation horizontaler Tabulator +\v VT vertical tabulation vertikaler Tabulator +\0 NULL null kein Zeichen Textende +\? ? Fragezeichen (kein Dreierzeichen) +\' ' Hochkomma +\" " Anführungszeichen +\\ \ umgekehrter Schrägstrich +\ddd Zeichencode in oktaler Notation +\xdd Zeichencode in hexadezimaler Notation +\e[1;1H Cursor auf x1 und y1 setzen +\e[1;1f -> \e[1;1H +\e[5A Cursor 5 Zeilen aufwärts bewegen +\e[5B Cursor 5 Zeilen abwärts bewegen +\e[5C Cursor 5 Spalten vorwärts(rechts) bewegen +\e[5D Cursor 5 Spalten rückwärts(links) bewegen +\e[2J Bildschirm löschen +\e[6n Ausgabe der Cursor position z.B. ^[[32;6R +\e[s merkt die aktuelle Cursor Position +\e[u Cursor auf gemerkte Position setzen +\e[Schrift;Vordergrund;Hintergrundmerkmale setzt Bildschirmmerkmale + Schrift Vordergrund Hintergrund + 0 normal 30 schwarz 40 + 1 grell 31 rot 41 + 4 unterstrichen 32 grün 42 + 5 blinken 33 gelb 43 braun + 7 reverse 34 blau 44 + 35 magenta 45 + 36 cyan 46 + 37 weiß 47 grau +\end{verbatim} + diff --git a/programmieren/c/string.h.tex b/programmieren/c/string.h.tex new file mode 100644 index 0000000..4390642 --- /dev/null +++ b/programmieren/c/string.h.tex @@ -0,0 +1,32 @@ +% master: string.h.tex +% string.h v0.2 +% 2011-05-27 (Rx) + +\section{string.h} +%----------------- + +\begin{verbatim} +char *strcat(char text1, char text2) ; hängt Text2(mit \0) an Text1 +char *strchr(const char *text, +int zeichen) ; sucht das erste vorkommende + Zeichen im Text, liefert Adresse + oder NULL +char *strcpy(char text1, char text2) ; kopiert Text2(mit \0) zum Text1 +sitze_t strlen(const char *text) ; liefert die Länge von Text(ohne \0) +char *strncat(char *text1, +const char *text2, sitze_t n) ; hängt Text2 mit n Zeichen + an Text1(mit \0) +char *strtok(char *text, +const char *kette) ; 1.Aufruf: sucht im Text das erste + Zeichen das nicht in Kette vorkommt + (wird kein Zeichen gefunden gibt strtok + einen NULL-Zeiger zurück), wird ein + Zeichen gefunden gibt strtok den Zeiger + zurück, dann sucht strtok ab Zeiger das + erste Zeichen das in der Kette vorkommt + und überschreibt es mit \0, strtok merkt + sich den Zeiger auf das nächste Zeichen +char *strtok(NULL, const char *kette) ; 2.-n.Aufruf: wie 1.Aufruf ab gemerkten + Zeiger +\end{verbatim} + diff --git a/programmieren/c/variableninitialisierung.tex b/programmieren/c/variableninitialisierung.tex new file mode 100644 index 0000000..c89d8c7 --- /dev/null +++ b/programmieren/c/variableninitialisierung.tex @@ -0,0 +1,17 @@ +% master: variableninitialisierung.tex +% Variableninitialisierung v0.1 +% 2010-08-07 (Rx) + +\section{Variableninitialisierung} +%--------------------------------- + +Nichtinitialisierte Variabeln haben \textbf{nicht} automatisch den Wert 0! + +\begin{verbatim} +short faktor=10 ; + +short laktor, messwert ; + +messwert=faktor ; +\end{verbatim} + diff --git a/programmieren/c/wertebereich_und_genauigkeit_elementarer_datentypen.tex b/programmieren/c/wertebereich_und_genauigkeit_elementarer_datentypen.tex new file mode 100644 index 0000000..57fc5ce --- /dev/null +++ b/programmieren/c/wertebereich_und_genauigkeit_elementarer_datentypen.tex @@ -0,0 +1,23 @@ +% master: wertebereich_und_genauigkeit_elementarer_datentypen.tex +% Wertebereich und Genauigkeit elementarer Datentypen v0.1 +% 2010-08-07 (Rx) + +\section{Wertebereich und Genauigkeit elementarer Datentypen} +%------------------------------------------------------------ + +\begin{verbatim} +Datentyp Bit Min.Wert Max.Wert Genauigkeit +-------- --- -------- -------- ----------- +char 8 -128 127 +unsigned char 8 0 255 +short int 16 -32768 32767 +unsigned short int 16 0 65535 +int (16)32(64) -2147483648 2147483647 +unsigned int 16 0 65535 +long int 32(64) -2147483648 2147483647 +unsigned long int 32 0 4294967295 +float 32 ca. 3.4E-38 3.4E38 >= 6 Ziffern +double 64 ca. 1.7E-308 1.7E308 >= 10 Ziffern +long double 80 ca. 1.2E-4932 1.2E4932 >= double +\end{verbatim} + diff --git a/programmieren/cgi_perl/array_funktionen.tex b/programmieren/cgi_perl/array_funktionen.tex new file mode 100644 index 0000000..943391f --- /dev/null +++ b/programmieren/cgi_perl/array_funktionen.tex @@ -0,0 +1,20 @@ +% master: array_funktionen.tex +% Array Funktionen v0.1 +% 2011-06-08 (Rx) + +\subsection{Array Funktionen} +%---------------------------- + +\begin{verbatim} +push(@Liste,@Elemente) ; Setzt ein oder mehrere Elemente an + das Ende der Liste +unshift(@Liste,"Wert") ; Setzt ein oder mehrere Elemente an + den Anfang der Liste +$a=shift(@Liste) ; Entfernt das erste Element aus der Liste + und gibt es an $a +$a=pop(@Liste) ; Entfernt das letzte Element aus der Liste + und gibt es an $a +splice(@Liste,Start,Anzahl,Element) ; Entfernt die Anzahl vom Start der Liste + und fügt Element ein +\end{verbatim} + diff --git a/programmieren/cgi_perl/arrays.tex b/programmieren/cgi_perl/arrays.tex new file mode 100644 index 0000000..8a3cc88 --- /dev/null +++ b/programmieren/cgi_perl/arrays.tex @@ -0,0 +1,16 @@ +% master: arrays.tex +% Arrays (Listen) v0.1 +% 2011-06-08 (Rx) + +\subsection{Arrays (Listen)} +%--------------------------- + +\begin{verbatim} +@Array=("W0","W1") ; Werte einer Array-Variable zuweisen (Kurzform) +$Array[Indexwert]="Wert" ; Wert einer Array-Variable zuweisen (Langform) +@Array=$Liste[2,4,8] ; Werte eines Arrays eines Arrays zuweisen +print @Array ; Gesamtes Array ausgeben +print $Array[Indexwert] ; Wert einer Array-Variable ausgeben +print $#Array ; Nummer des letzten Listenelements ausgeben +\end{verbatim} + diff --git a/programmieren/cgi_perl/cgi_perl.tex b/programmieren/cgi_perl/cgi_perl.tex new file mode 100644 index 0000000..ef559c4 --- /dev/null +++ b/programmieren/cgi_perl/cgi_perl.tex @@ -0,0 +1,27 @@ +% master: cgi_perl.tex +% CGI+Perl v0.1 +% 2011-06-08 (Rx) + +\chapter{CGI+Perl} + +% Seiten +%------- +%\clearpage +\input{programmieren/cgi_perl/einleitung} + +\section{Perl} +%------------- +\input{programmieren/cgi_perl/texte_und_strings} +\input{programmieren/cgi_perl/rechenoperationen} +\input{programmieren/cgi_perl/arrays} +\input{programmieren/cgi_perl/string_und_zahlenvergleichsoperratoren} +\input{programmieren/cgi_perl/if_bedingung} +\input{programmieren/cgi_perl/if_else_bedingung} +\input{programmieren/cgi_perl/if_elseif_bedingung} + +\section{Funktionen} +%------------------- +\input{programmieren/cgi_perl/string_funktionen} +\input{programmieren/cgi_perl/rechen_funktionen} +\input{programmieren/cgi_perl/array_funktionen} + diff --git a/programmieren/cgi_perl/einleitung.tex b/programmieren/cgi_perl/einleitung.tex new file mode 100644 index 0000000..03ef70a --- /dev/null +++ b/programmieren/cgi_perl/einleitung.tex @@ -0,0 +1,16 @@ +% master: einleitung.tex +% Einleitung v0.1 +% 2011-06-08 (Rx) + +\section{Einleitung} +%------------------- + +\begin{verbatim} +Was ist CGI? Common Gateway Interface. Web-Server-Schnittstelle, um mit + anderen Programmen zusammenzuarbeiten. + +Was ist Perl? Practical Extraction and Report Language. Interpreter-Skript- + Sprache, die häufig zur Programmierung von CGI-Anwendungen + benutzt wird. +\end{verbatim} + diff --git a/programmieren/cgi_perl/if_bedingung.tex b/programmieren/cgi_perl/if_bedingung.tex new file mode 100644 index 0000000..4011e0d --- /dev/null +++ b/programmieren/cgi_perl/if_bedingung.tex @@ -0,0 +1,14 @@ +% master: if_bedingung.tex +% if-Bedingung v0.1 +% 2011-06-08 (Rx) + +\subsection{if-Bedingung} +%------------------------ + +\begin{verbatim} +if (Bedingung) Wenn die Bedingung Wahr, +{ + Befehle ; Befehle ausführen +} +\end{verbatim} + diff --git a/programmieren/cgi_perl/if_else_bedingung.tex b/programmieren/cgi_perl/if_else_bedingung.tex new file mode 100644 index 0000000..f7774b1 --- /dev/null +++ b/programmieren/cgi_perl/if_else_bedingung.tex @@ -0,0 +1,18 @@ +% master: if_else_bedingung.tex +% if-else-Bedingung v0.1 +% 2011-06-08 (Rx) + +\subsection{if-else-Bedingung} +%----------------------------- + +\begin{verbatim} +if (Bedingung) Wenn die Bedingung Wahr, +{ + Befehle ; Befehle ausführen +} +else sonst +{ + Befehle ; Befehle ausführen +} +\end{verbatim} + diff --git a/programmieren/cgi_perl/if_elseif_bedingung.tex b/programmieren/cgi_perl/if_elseif_bedingung.tex new file mode 100644 index 0000000..6354abb --- /dev/null +++ b/programmieren/cgi_perl/if_elseif_bedingung.tex @@ -0,0 +1,18 @@ +% master: if_elseif_bedingung.tex +% if-elseif-Bedingung v0.1 +% 2011-06-08 (Rx) + +\subsection{if-elseif-Bedingung} +%------------------------------- + +\begin{verbatim} +if (Bedingung) Wenn die Bedingung Wahr, +{ + Befehle ; Befehle ausführen +} +elseif (Bedingung) sonst Wenn die Bedingung Wahr, +{ + Befehle ; Befehle ausführen +} +\end{verbatim} + diff --git a/programmieren/cgi_perl/rechen_funktionen.tex b/programmieren/cgi_perl/rechen_funktionen.tex new file mode 100644 index 0000000..35b78df --- /dev/null +++ b/programmieren/cgi_perl/rechen_funktionen.tex @@ -0,0 +1,15 @@ +% master: rechen_funktionen.tex +% Rechen Funktionen v0.1 +% 2011-06-08 (Rx) + +\subsection{Rechen Funktionen} +%----------------------------- + +\begin{verbatim} +$a=sqrt($b) ; Quadratwurzel von $b nach $a +$a=log($b) ; Logarithmus +$a=exp($b) ; Exponenten +$a=abs($b) ; Absoluterwert +$a=int($b) ; Ganzzahlwert +\end{verbatim} + diff --git a/programmieren/cgi_perl/rechenoperationen.tex b/programmieren/cgi_perl/rechenoperationen.tex new file mode 100644 index 0000000..316d96c --- /dev/null +++ b/programmieren/cgi_perl/rechenoperationen.tex @@ -0,0 +1,19 @@ +% master: rechenoperationen.tex +% Rechenoperationen v0.1 +% 2011-06-08 (Rx) + +\subsection{Rechenoperationen} +%----------------------------- + +\begin{verbatim} +$a=$b+$c ; Addition von $b und $c gleich $a +$a=$b-$c ; Subtraktion von $b minus $c gleich $a +$a=$b*$c ; Multiplikation von $b mal $c gleich $a +$a=$b/$c ; Division $b geteilt durch $c gleich $a +$a=$b**$c ; Potenz $b hoch $c gleich $a +$a=$b%$c ; Modulo $b geteilt durch $c Rest gleich $a +$a++ ; $a=$a+1 ; +$a-- ; $a=$a-1 ; +$a=3.1415 ; . Dezimaltrenner +\end{verbatim} + diff --git a/programmieren/cgi_perl/string_funktionen.tex b/programmieren/cgi_perl/string_funktionen.tex new file mode 100644 index 0000000..eee067a --- /dev/null +++ b/programmieren/cgi_perl/string_funktionen.tex @@ -0,0 +1,12 @@ +% master: string_funktionen.tex +% String Funktionen v0.1 +% 2011-06-08 (Rx) + +\subsection{String Funktionen} +%----------------------------- + +\begin{verbatim} +$Var=chop($String) ; Löscht das letzte Zeichen von String und + gibt es an Var +\end{verbatim} + diff --git a/programmieren/cgi_perl/string_und_zahlenvergleichsoperratoren.tex b/programmieren/cgi_perl/string_und_zahlenvergleichsoperratoren.tex new file mode 100644 index 0000000..cbcbab3 --- /dev/null +++ b/programmieren/cgi_perl/string_und_zahlenvergleichsoperratoren.tex @@ -0,0 +1,17 @@ +% master: string_und_zahlenvergleichsoperratoren.tex +% String- und Zahlenvergleichsoperratoren v0.1 +% 2011-06-08 (Rx) + +\subsection{String- und Zahlenvergleichsoperratoren} +%--------------------------------------------------- + +\begin{verbatim} +Vergleich Zahlenvergleich Stringvergleich +Gleich == eq +Ungleich != ne +Kleiner als < lt +Größer als > gt +Kleiner oder gleich <= le +Größer oder gleich >= ge +\end{verbatim} + diff --git a/programmieren/cgi_perl/texte_und_strings.tex b/programmieren/cgi_perl/texte_und_strings.tex new file mode 100644 index 0000000..d728d56 --- /dev/null +++ b/programmieren/cgi_perl/texte_und_strings.tex @@ -0,0 +1,27 @@ +% master: texte_und_strings.tex +% Texte und Strings v0.1 +% 2011-06-08 (Rx) + +\subsection{Texte und Strings} +%----------------------------- + +\begin{verbatim} +# Kommentartext (Hash) Einzeiliger Kommentartext +print "Text" ; Text ausgeben +print "Text\n" ; \n Neue Zeile +print "Text\r" ; \r Wagenrücklauf +print "Text\t" ; \t Tabulator +print "Text\v" ; \v Vertikalzeichen +print "Text\f" ; \f Papiereinzugszeichen +print "Text\b" ; \b Rücksetzzeichen +print "Text\a" ; \a Piepton +print "Text\e" ; \e Unterbrechungszeichen +print $Variable ; Variable ausgeben +print "Text\"" ; \" Gänsefüßchen ausgeben +print "Text\'" ; \' Einfache Anführungszeichen ausgeben +print "Text\$" ; \$ Dollar-Zeichen ausgeben +print "Text\\" ; \\ Backslash ausgeben +print "Text".$Var."Text" ; . Verketten von Zeichenfolgen +print "Text"x10 ; Text 10 mal zusgeben +\end{verbatim} + diff --git a/programmieren/git/aenderung_an_einer_datei_rueckgaengig_machen.tex b/programmieren/git/aenderung_an_einer_datei_rueckgaengig_machen.tex new file mode 100644 index 0000000..6795af7 --- /dev/null +++ b/programmieren/git/aenderung_an_einer_datei_rueckgaengig_machen.tex @@ -0,0 +1,10 @@ +% master: aenderung_an_einer_datei_rueckgaengig_machen.tex +% Änderung an einer Datei rückgängig machen v0.1 +% 2017-01-09 (Rx) + +\section{Änderung an einer Datei rückgängig machen} +%-------------------------------------------------- + +\begin{verbatim} +git checkout -- Datei Datei zurückversetzen auf den letzten Commit oder Klone +\end{verbatim} \ No newline at end of file diff --git a/programmieren/git/branch.tex b/programmieren/git/branch.tex new file mode 100644 index 0000000..50eb929 --- /dev/null +++ b/programmieren/git/branch.tex @@ -0,0 +1,26 @@ +% master: branch.tex +% Branch v0.1 +% 2017-01-09 (Rx) + +\section{Branch} +%--------------- + +Was ist ein Branch? Ein Zeiger, der auf den gleichen Commit zeigt, auf dem Du +gerade arbeitest. + +\begin{verbatim} +git branch testing erstellt einen neuen Branch mit dem Namen testing +git checkout testing um zu einem anderen Branch zu wechseln +git branch -b testing erstellt und wechselt zu dem Branch +git merge testing führt testing mit dem Master-Branch zusammen +git branch -d testing entfernt testing +git merge master Deinem Zweig mit dem master kombinieren +git rebase master alle Änderungen auf einem Branch, auf einen anderen + Branch erneut anwenden (nur mit unveröffendlichen + Branch machen) +git mergetool grafischen Tool zur Bereinigung von Merge-Konflikten +git branch Liste aller Branches anzeigen +git branch -v für jeden Branch den letzten Commit anzeigen lassen +git branch --merged Liste gemergter Branches +git branch --no-merged Liste nicht gemergter Branches +\end{verbatim} diff --git a/programmieren/git/commit.tex b/programmieren/git/commit.tex new file mode 100644 index 0000000..9779156 --- /dev/null +++ b/programmieren/git/commit.tex @@ -0,0 +1,17 @@ +% master: commit.tex +% Commit v0.1 +% 2017-01-09 (Rx) + +\section{Commit} +%---------------------- + +\begin{verbatim} +git add Datei Datei zum Index hinzufügen +git add -u oder --update Alle Veränderungen in den Index übertragen +git reset HEAD Datei aus der Staging Area zu entfernen +git commit -m "Erste Version" Index zum Working Tree hinzufügen + git add forgotten_file Datei zum Index hinzufügen + git commit --amend den letzten Commit ändern +git show Commit einsehen +git log Commits anzeigen +\end{verbatim} \ No newline at end of file diff --git a/programmieren/git/dateien_entfernen.tex b/programmieren/git/dateien_entfernen.tex new file mode 100644 index 0000000..0f48920 --- /dev/null +++ b/programmieren/git/dateien_entfernen.tex @@ -0,0 +1,14 @@ +% master: dateien_entfernen.tex +% Dateien entfernen v0.1 +% 2017-01-09 (Rx) + +\section{Dateien entfernen} +%---------------------- + +\begin{verbatim} +git rm Datei Datei in deinem Arbeitsverzeichnis behalten, + aber aus der Staging Area nehmen +git rm -f Datei Datei aus dem Arbeitsverzeichis und Index löschen +git reset HEAD Datei Datei in Deinem Arbeitsverzeichnis behalten, + aber aus der Staging Area nehmen +\end{verbatim} \ No newline at end of file diff --git a/programmieren/git/dateien_ignorieren.tex b/programmieren/git/dateien_ignorieren.tex new file mode 100644 index 0000000..dbd0038 --- /dev/null +++ b/programmieren/git/dateien_ignorieren.tex @@ -0,0 +1,20 @@ +% master: dateien_ignorieren.tex +% Dateien ignorieren v0.1 +% 2017-01-09 (Rx) + +\section{Dateien ignorieren} +%--------------------------- + +\begin{verbatim} +Dateien im Projektverzeichnis die nicht versioniert im Repository sein sollen +kommen in die Datei .gitignore. +.gitignore + # Zeile mit # oder leere wird ignoriert + *.o ignoriert alle Dateien die mit .o enden + !lib.o wird nicht ignoriert + /TODO ignoriert den Ordner TODO + build/ ignoriert alle Dateien im build Verzeichnis + doc/*.txt ignoriert alle .txt Dateien im doc Verzeichnis + doc/**/*.txt ignoriert alle .txt Dateien unterhalb des doc + Verzeichnis +\end{verbatim} diff --git a/programmieren/git/dateien_verschieben.tex b/programmieren/git/dateien_verschieben.tex new file mode 100644 index 0000000..792d5c5 --- /dev/null +++ b/programmieren/git/dateien_verschieben.tex @@ -0,0 +1,10 @@ +% master: dateien_verschieben.tex +% Dateien verschieben v0.1 +% 2017-01-09 (Rx) + +\section{Dateien verschieben} +%---------------------- + +\begin{verbatim} +git mv Datei_alt Datei_neu Datei verschieben +\end{verbatim} diff --git a/programmieren/git/der_index.tex b/programmieren/git/der_index.tex new file mode 100644 index 0000000..a2e9a46 --- /dev/null +++ b/programmieren/git/der_index.tex @@ -0,0 +1,38 @@ +% master: der_index.tex +% Der Index v0.1 +% 2017-01-09 (Rx) + +\section{Der Index} +%------------------ + +Der Inhalt von Dateinen liegt für Git auf drei Ebenen, den Working Tree, dem +Index und dem Repository. + +\begin{verbatim} + clone/fetch/pull + +----------+ --------------------------------------------------> + + |Repository| | + --bare init |(origin) | push | + ----------> +----------+ <--------------------------------------- + | + | | + status add status commit/--amend | | + +------------+ ---------> +--------------+ ---------------------> +----------+ + |Working Tree| diff |Index | diff --staged/--cached |Repository| + | | <--------> |(Staging Area)| <--------------------> | | + +------------+ <--------- +--------------+ <--------------------- +----------+ + | reset HEAD reset HEAD -- | | + + -------------------------------------------------> + | + checkout -- | + init | + ---------------------------------------------------------------------------> + + +git diff zeigt den Unterschied zwischen Working Tree + und Index an +git diff --color-words Änderugen Fablich anzeigen + grün-hinzugekommen rot-entfernt +git diff --word-diff --no-color ohne Frabe mit Zeichen +git diff --staged zeigt den Unterschied zwischen + Index(Staging Area) und Repository an +git diff --cached zeigt den Unterschied zwischen + Index(Staging Area) und Repository an +\end{verbatim} \ No newline at end of file diff --git a/programmieren/git/dokumentation.tex b/programmieren/git/dokumentation.tex new file mode 100644 index 0000000..b30cf03 --- /dev/null +++ b/programmieren/git/dokumentation.tex @@ -0,0 +1,12 @@ +% master: dokumentation.tex +% Dokumentation v0.1 +% 2017-01-09 (Rx) + +\section{Dokumentation} +%---------------------- + +\begin{verbatim} +git help status Manpage von git status anzeigen +git status --help Manpage von git status anzeigen +man git-status Manpage von git status anzeigen +\end{verbatim} diff --git a/programmieren/git/git.tex b/programmieren/git/git.tex new file mode 100644 index 0000000..d4b9eb7 --- /dev/null +++ b/programmieren/git/git.tex @@ -0,0 +1,26 @@ +% master: git.tex +% git v0.1 +% 2017-01-09 (Rx) + +\chapter{git} + +% Seiten +%------- +\input{programmieren/git/dokumentation} +\input{programmieren/git/konfiguration} +\input{programmieren/git/konfigurationen_ueber_umgebungsvariablen} +\input{programmieren/git/der_index} +\input{programmieren/git/repository} +\input{programmieren/git/commit} +\input{programmieren/git/dateien_entfernen} +\input{programmieren/git/dateien_verschieben} +\input{programmieren/git/aenderung_an_einer_datei_rueckgaengig_machen} +\input{programmieren/git/dateien_ignorieren} +\input{programmieren/git/mit_externen_repositorys_arbeiten} +\input{programmieren/git/tags} +\input{programmieren/git/branch} +\input{programmieren/git/git_aliase} +\input{programmieren/git/git_auf_einen_server_bekommen} +\input{programmieren/git/git_auf_dem_ssh-server_einrichten} +\input{programmieren/git/oeffentlicher_webserver-zugang} +\input{programmieren/git/grundbegriffe} diff --git a/programmieren/git/git_aliase.tex b/programmieren/git/git_aliase.tex new file mode 100644 index 0000000..7fdfb57 --- /dev/null +++ b/programmieren/git/git_aliase.tex @@ -0,0 +1,13 @@ +% master: git_aliase.tex +% Git Aliase v0.1 +% 2017-01-09 (Rx) + +\section{Git Aliase} +%------------------- + +\begin{verbatim} +git config --global alias.co checkout co anstelle von checkout schreiben +git config --global alias.br branch br anstelle von branch schreiben +git config --global alias.ci commit ci anstelle von commit schreiben +git config --global alias.st status st anstelle von status schreiben +\end{verbatim} diff --git a/programmieren/git/git_auf_dem_ssh-server_einrichten.tex b/programmieren/git/git_auf_dem_ssh-server_einrichten.tex new file mode 100644 index 0000000..caf20b3 --- /dev/null +++ b/programmieren/git/git_auf_dem_ssh-server_einrichten.tex @@ -0,0 +1,66 @@ +% master: git_auf_dem_ssh-server_einrichten.tex +% Git auf dem SSH-Server einrichten v0.1 +% 2017-01-09 (Rx) + +\section{Git auf dem SSH-Server einrichten} +%------------------------------------------ + +Einrichtung des SSH-Zugangs auf dem Server mit der Authorized-Keys-Methode zur +Authentifizierung der Benutzer. + +\begin{verbatim} +sudo adduser git Benutzer git anlegen +su git Rechte von User git erlagen +cd ins Home ~ Verzeichnis des Users wechseln +mkdir .ssh Verzeichnis .ssh anlegen +\end{verbatim} + +- öffentliche SSH-Schlüssel der Entwickler zu der Authorized-Keys-Datei + des Benutzers git hinzuzufügen. +\begin{verbatim} +cat /tmp/id_rsa.user1.pub > ~/.ssh/authorized_keys + authorized_keys erstellen und User1 einfügen +cat /tmp/id_rsa.user2.pub >> ~/.ssh/authorized_keys + User2 einfügen +cat /tmp/id_rsa.user3.pub >> ~/.ssh/authorized_keys + User3 einfügen +\end{verbatim} + +- Leeren Ordner anlegen und mit der Option --bare ein Repository ohne ein + Arbeitsverzeichnis erzeugen. +\begin{verbatim} +cd /srv in den Ordner srv wechseln +mkdir git git Ordner anlegen +cd git in den Ordner git wechseln +mkdir project.git project.git Ordner anlegen +cd project.git in den Ordner project.git wechseln +git --bare init Repository ohne ein Arbeitsverzeichnis erzeugen +\end{verbatim} + +- Die erste Version des Projektes in das Repository hochladen +\begin{verbatim} +cd project in das Projekt wechseln +git init Projekt Repository herstellen +git add . alle Dateien um Index hinzufügen +git commit -m 'initial commit' Index zum Working Tree hinzufügen +git remote add origin git@gitserver:/srv/git/project.git + Server hinzufügen +git push origin master Commits und Referenzen auf den Server hochladen +\end{verbatim} + +- Repository klonen und Änderungen hochladen +\begin{verbatim} +git clone git@gitserver:/srv/git/project.git Repository klonen +cd project ins Projekt wechseln +vim README Projekt bearbeiten +git commit -am 'fix for the README file' Änderung speichern +git push origin master Änderung hochladen +\end{verbatim} + +- Git-Zugang absichen +\begin{verbatim} +/etc/passwd + git:x:1000:1000::/home/git:/bin/sh /bin/sh auf + git:x:1000:1000::/home/git:/usr/bin/git-shell + /usr/bin/git-shell ändern +\end{verbatim} \ No newline at end of file diff --git a/programmieren/git/git_auf_einen_server_bekommen.tex b/programmieren/git/git_auf_einen_server_bekommen.tex new file mode 100644 index 0000000..6939979 --- /dev/null +++ b/programmieren/git/git_auf_einen_server_bekommen.tex @@ -0,0 +1,19 @@ +% master: git_auf_einen_server_bekommen.tex +% Git auf einen Server bekommen v0.1 +% 2017-01-09 (Rx) + +\section{Git auf einen Server bekommen} +%-------------------------------------- + +\begin{verbatim} +git clone --bare my_project my_project.git + Projekt zu Projekt.git klonen +scp -r my_project.git user@git.example.com:/opt/git + Projekt per ssh hochladen +git clone user@git.example.com:/opt/git/my_project.git + Projekt per ssh zum Arbeiten herunterladen +ssh user@git.example.com auf dem Server anmelden +cd /opt/git/my_project.git Projektverzeichnis betreten +git init --bare --shared Gruppenschreibrechte zu einem Repository + hinzufügen +\end{verbatim} diff --git a/programmieren/git/grundbegriffe.tex b/programmieren/git/grundbegriffe.tex new file mode 100644 index 0000000..9607142 --- /dev/null +++ b/programmieren/git/grundbegriffe.tex @@ -0,0 +1,53 @@ +% master: grundbegriffe.tex +% Grundbegriffe v0.1 +% 2017-01-09 (Rx) + +\section{Grundbegriffe} +%---------------------- + +\begin{verbatim} +Versionkontrollsystem (Version Control System, VCS) + Eine Versionsverwaltung ist ein System, das zur Erfassung von Änderungen + an Dokumenten oder Dateien verwendet wird. + Zum Beispiel: + Zentrale Systeme - zentraler Server + RCS-Revision Control System, CVS-Concurrent Versions System, + SVN-Subversion + Verteilte Systeme - Kein zentraler Server + Bazaar, Darcs, Fossil, Git, GNU arch, Mercurial, Monotone +Repository + Nutzt Git als Dantenbank in der die verschiedenen Zustände jeder Datei + eines Projektes über die Zeit hinweg ablegt. Jede Änderrung wird als + Commit verpackt und abgespeichert. +Working Tree + Das Arbeitsverzeichnis von Git, oft auch Working Directory genannt. +Commit + Das speichern der veränderten Dateien im Repository. +HEAD + Eine symbolische Referenz auf den neusten Commit im aktuellen Branch. +SHA-1 + Der Secure Hash Algorithm erstellt eine eindeutige, 160 Bit lange + Prüfsumme. Alle Commits in Git werden nach ihrer SHA-1-Summe benannt, + die aus dem Inhalt und den Metadaten des Commits errechnet wird. +Objektmodell + Ein Git-Repository lässt sich als Graph von Commits modellieren, der + durch Git-Kommandos manipuliert wird. +Index + Der Index ist eine Zwischenstufe zwischen Working Tree und Repository, + in der Sie einen Commit vorbereiten. Enthält also die Dateien für den + nästen Commit. +Clone + Wenn Sie sich ein Git-Repository aus dem Internet herrunterladen. + Enthält die gesamte Versionsgeschichte einschließlich aller Commits. +Branch + Eine Abzweigung in der Entwicklung. Zum Beispiel für neue Featurs, + Release vorbereitung oder alte Versionen mit Bugfixes zu versorgen. +master + Beim Initialisieren eines neuen Repositorys wird der Branch master + erstellt analog trunk in anderen Systemen. +Tag + Tags sind symbolische Namen für schwer zu merkende SHA-1-Summen. + Wichtige Commits, wie zum Beispiel Releases v1.2.3. oder können + zusätzliche Metadateien wie Autor, Beschreibung und GPG-Signatur + enthalten. +\end{verbatim} diff --git a/programmieren/git/konfiguration.tex b/programmieren/git/konfiguration.tex new file mode 100644 index 0000000..1f8fce6 --- /dev/null +++ b/programmieren/git/konfiguration.tex @@ -0,0 +1,44 @@ +% master: konfiguration.tex +% Konfiguration v0.1 +% 2017-01-09 (Rx) + +\section{Konfiguration} +%---------------------- + +\begin{verbatim} +git config --global ... Speichern im Homeverzeichnis .gitconfig +git config --system ... /etc/gitconfig konfigurieren unueblich +git config ... Arbeitsverzeichnis .git/config +git config user.name "Max Mustermann" Name konfigurieren +git config user.email "max.mustermann@examle.com" + E-Mail konfigurieren +git config --unset user.name Name löschen +git config alias.st status Alias status -> st herstellen +[alias] nützliche Abkürzungen + st = status + ci = commit + br = branch + co = checkout + df = diff + he = help + cl = clone +git config -e startet Editor auf der Konfiguration +git config color.ui auto Farben einstellen +git config core.eol lf,crlf oder native Zeilenende lf-Linux crlf-Windows + native-System-Default +git config core.safecrlf Verbietet Commit bei vermischung +git config core.autocrlf input sichere Einstellung bei älteren + Git-Versionen unter Windows +git config il8n.commitEncoding ISO-8859-1 + Zeichenkodierung ISO-8859-1 + Standart UTF-8 +git config core.pager 'env LESSCHARSET=iso8859 less' + Zeichenkodierung für den Pager +git config core.editor vim Vim als Editor einstellen +git config core.browser ... Browser einstellen +git config help.autocorrect n beim Vertippen ähnliches Subkommando + ausführen, n Zentelsekunden bis zum + Ausführen, -1 für sofort aus, 0 zeigt + nur Möglichkeiten an +git config --list alle Einstellungen anzeigen +\end{verbatim} \ No newline at end of file diff --git a/programmieren/git/konfigurationen_ueber_umgebungsvariablen.tex b/programmieren/git/konfigurationen_ueber_umgebungsvariablen.tex new file mode 100644 index 0000000..154ad24 --- /dev/null +++ b/programmieren/git/konfigurationen_ueber_umgebungsvariablen.tex @@ -0,0 +1,18 @@ +% master: konfigurationen_über_umgebungsvariablen.tex +% Konfigurationen über Umgebungsvariablen v0.1 +% 2017-01-09 (Rx) + +\section{Konfigurationen über Umgebungsvariablen} +%------------------------------------------------- + +\begin{verbatim} +GIT_EDITOR Editor den Git verwendet + sonst greift die Variable EDITOR +GIT_PAGER der wert cat schaltet den Pager aus +GIT_AUTHOR_EMAIL E-Mail für den Autor des Commits +GIT_COMMITTER_EMAIL E-Mail für das Commiter-Feld des Commits +GIT_AUTHOR_NAME Name für den Autor des Commits +GIT_COMMITTER_NAME Name für das Commiter-Feld des Commits +GIT_DIR Verzeichnis, in dem sich das Git-Repository befindet + macht nur sinn bei einem Git-Repository +\end{verbatim} \ No newline at end of file diff --git a/programmieren/git/mit_externen_repositorys_arbeiten.tex b/programmieren/git/mit_externen_repositorys_arbeiten.tex new file mode 100644 index 0000000..9cd462a --- /dev/null +++ b/programmieren/git/mit_externen_repositorys_arbeiten.tex @@ -0,0 +1,39 @@ +% master: mit_externen_repositorys_arbeiten.tex +% Mit externen Repositorys arbeiten v0.1 +% 2017-01-09 (Rx) + +\section{Mit externen Repositorys arbeiten} +%------------------------------------------ + +\begin{verbatim} +git clone git://git.kernel.org/pub/scm/git/git.git + git Repository herunterladen, Port 9418 +git clone file:///home/git/project.git Repository herunterladen, legt harte + Links an wenn möglich +git clone ssh://user@server/project.git ssh Repository herunterladen, Port 22 +git clone http(s)://example.com/gitproject.git + http(s) Repository herunterladen, + Port 80(443) +git remote -v zeigt an, welche externen Server für + das Projekt lokal konfiguriert sind +git remote add Name URL Remote Repository hinzufügen +git remote add origin ssh://git@sonne:/srv/git/linux.git + Beispiel +git fetch Name Informationen aus dem Remote Repository + herunterladen +git pull Name entspricht git fetch git merge +git checkout -b Branch origin/Branch erstellt einen lokalen bearbeitbaren + Branch +git push origin master Änderungen in ein Remote Repository + hochladen +git push Remote Branch Brauch auf Remote hochladen +git push Remote :Branch löschen entfernter Branches +git remote show Name zeigt die URL für das Remote + Repository, die Information welche + Branches verfolgt werden und welcher + Branch aus dem Remote Repository mit + dem eigenen Master zusammengeführt + wird, wenn Du git pull ausführst +git remote rename Name_alt Name_neu Name des Remote Repository lokal ändern +git remote rm Name Remote Repository entfernen +\end{verbatim} \ No newline at end of file diff --git a/programmieren/git/oeffentlicher_webserver-zugang.tex b/programmieren/git/oeffentlicher_webserver-zugang.tex new file mode 100644 index 0000000..8cf4685 --- /dev/null +++ b/programmieren/git/oeffentlicher_webserver-zugang.tex @@ -0,0 +1,41 @@ +% master: oeffentlicher_webserver-zugang.tex +% Öffentlicher Webserver-Zugang v0.1 +% 2017-01-09 (Rx) + +\section{Öffentlicher Webserver-Zugang} +%-------------------------------------- + +Anonymen Lese-Zugriff zu Deinem Projekt ermöglichen, per git clone +http://git.gitserver.loc/project.git. + +- Hook aktivieren + +\begin{verbatim} +cd project.git in das Projekt wechseln +mv hooks/post-update.sample hooks/post-update post-update umbenennen +chmod a+x hooks/post-update post-update ausfürbar machen +\end{verbatim} + +- VirtualHost Eintrag zur Apache-Konfiguration hinzufügen + +\begin{verbatim} + + ServerName git.gitserver.loc + ServerAdmin webmaster@localhost + DocumentRoot /srv/git +# +# Order allow, deny +# allow from all +# + + Options Indexes FollowSymLinks + AllowOverride None + Require all granted + + ErrorLog ${APACHE_LOG_DIR}/git.gitserver.loc-error.log + CustomLog ${APACHE_LOG_DIR}/git.gitserver.loc-access.log combined + +\end{verbatim} + +Nach dem nächsten push kann per "git clone http://git.gitserver.loc/project.git" +das Projekt anonym herunter geladen werden. diff --git a/programmieren/git/repository.tex b/programmieren/git/repository.tex new file mode 100644 index 0000000..4c733f1 --- /dev/null +++ b/programmieren/git/repository.tex @@ -0,0 +1,14 @@ +% master: repository.tex +% Repository v0.1 +% 2017-01-09 (Rx) + +\section{Repository} +%------------------- + +\begin{verbatim} +git init Beispiel Neues Repository herstellen, legt Verzeichnis Beispiel + an wenn nicht schon vorhanden + +git status zeigt den aktuellen Zustand an +git log die Commit Historie anzeigen +\end{verbatim} \ No newline at end of file diff --git a/programmieren/git/tags.tex b/programmieren/git/tags.tex new file mode 100644 index 0000000..16f68ac --- /dev/null +++ b/programmieren/git/tags.tex @@ -0,0 +1,23 @@ +% master: tags.tex +% Tags v0.1 +% 2017-01-09 (Rx) + +\section{Tags} +%------------- + +\begin{verbatim} +git tag vorhandene Tags anzeigen +git tag -a v1.4 -m 'my version 1.4' + einen kommentierten Tag anlegen +git tag -s v1.5 -m 'my signed 1.5 tag' + einen kommentierten und signierten Tag anlegen +git tag -v v1.4.2.1 einen signierten Tag zu verifizieren +git tag -a v1.2 -m 'version 1.2' Checksumme + im Nachhinein taggen, Checksumme des Commits + oder einen Teil davon angeben +git log --pretty=oneline Commit Historie mit Checksumme +git push origin v1.5 Tag veröffentlichen +git push origin --tags Tags veröffentlichen +git tag -d v1.5 Tag löschen +git push origin :refs/tags/v1.5 veröffentlichen Tag löschen +\end{verbatim} diff --git a/programmieren/java/action_events.tex b/programmieren/java/action_events.tex new file mode 100644 index 0000000..fc73659 --- /dev/null +++ b/programmieren/java/action_events.tex @@ -0,0 +1,20 @@ +% master: action_events.tex +% Action Events v0.1 +% 2011-06-08 (Rx) + +\subsection{Action Events} +%------------------------- + +\begin{verbatim} +public class myApplet extends Applet implements ActionListener {} + Schnittstelle ActionListener implementieren + +Button myButton = new Button("Knopf"); Button erstellen +this.add(myButton); Button setzen +myButton.addActionListener(this); Button mit ActionListener versehen + +public void actionPerformed(ActionEvent e) { Aufruf beim Anklicken des Button + String Klick = e.getActionCommand(); gibt die Aufschift des Button +} +\end{verbatim} + diff --git a/programmieren/java/applets_in_eine_webseite_einbinden.tex b/programmieren/java/applets_in_eine_webseite_einbinden.tex new file mode 100644 index 0000000..9f30010 --- /dev/null +++ b/programmieren/java/applets_in_eine_webseite_einbinden.tex @@ -0,0 +1,21 @@ +% master: applets_in_eine_webseite_einbinden.tex +% Applets in eine Webseite einbinden v0.1 +% 2011-06-08 (Rx) + +\subsection{Applets in eine Webseite einbinden} +%---------------------------------------------- + +\begin{verbatim} + + + Mein erstes Applet + + + + + + + + +\end{verbatim} + diff --git a/programmieren/java/arbeiten_mit_threads.tex b/programmieren/java/arbeiten_mit_threads.tex new file mode 100644 index 0000000..21a50a2 --- /dev/null +++ b/programmieren/java/arbeiten_mit_threads.tex @@ -0,0 +1,38 @@ +% master: arbeiten_mit_threads.tex +% Arbeiten mit Threads v0.1 +% 2011-06-08 (Rx) + +\subsection{Arbeiten mit Threads} +%-------------------------------- + +\begin{verbatim} +java.lang die Klasse Thread ist ein Bestandteil des Paketes + +public class Klasse implements Runnable {} neue Klasse über die + Schnittstelle Runnable erstellen + +run() Methode run() (Code des Threads) + muss überschrieben werden + +Klasse test = new Klasse(); In main(): Objekt der eigenen Klasse +test.start(); erstellen und Startmethode + aufrufen + +public void start() { + Thread myThread = new Thread(this); Objekt aus der Klasse Thrad + erstellen und deren Konstruktor + das aktuelle Objekt als + parameter übergeben + myThread.start(); Thread starten + ...; + myThread.stop(); Thread beenden +} + +myThread.sleep(x); Thread x Milisekunden pausieren + muss mit Ausnahme abgefangen + werden InterruptedException +myThread.suspend(); Thraed anhalten +myThread.resume(); Thread wieder starten +myThread.destroy(); Thread zerstören/anhalten +\end{verbatim} + diff --git a/programmieren/java/arithmetische_zuweisungsoperatoren.tex b/programmieren/java/arithmetische_zuweisungsoperatoren.tex new file mode 100644 index 0000000..f57888c --- /dev/null +++ b/programmieren/java/arithmetische_zuweisungsoperatoren.tex @@ -0,0 +1,17 @@ +% master: arithmetische_zuweisungsoperatoren.tex +% Arithmetische Zuweisungsoperatoren v0.1 +% 2011-06-08 (Rx) + +\subsection{Arithmetische Zuweisungsoperatoren} +%---------------------------------------------- + +\begin{verbatim} +Operator Beispiel Bedeutung +-------- -------- --------- ++= x += 3; x = x + 3; +-= x -= 3; x = x - 3; +*= x *= 3; x = x * 3; +/= x /= 3; x = x / 3; +%= x %= 3; x = x % 3; +\end{verbatim} + diff --git a/programmieren/java/arrays.tex b/programmieren/java/arrays.tex new file mode 100644 index 0000000..2416418 --- /dev/null +++ b/programmieren/java/arrays.tex @@ -0,0 +1,19 @@ +% master: arrays.tex +% Arrays v0.1 +% 2011-06-08 (Rx) + +\subsection{Arrays} +%------------------ + +\begin{verbatim} +int liste[] = new int[10]; schafft ein Array dass zehn verschiedene int- + Werte speichern kann +int Array[][] = new int[3][3]; schafft ein zweidimensionales Array +int liste[] = {3, 5, 7}; schaft ein Array mit 3 Werten +liste[0] = Wert; Wert des 1. Elements zuweisen +liste[0][0] = Wert; Wert des 1. Elements zuweisen +Wert = liste[0]; Wert des 1. Elements abrufen +Wert = liste[0][0]; Wert des 1. Elements abrufen +liste.length enthält die Länge des Arrays liste +\end{verbatim} + diff --git a/programmieren/java/ausnahmen.tex b/programmieren/java/ausnahmen.tex new file mode 100644 index 0000000..23b4132 --- /dev/null +++ b/programmieren/java/ausnahmen.tex @@ -0,0 +1,23 @@ +% master: ausnahmen.tex +% Ausnahmen (Exceptions) v0.1 +% 2011-06-08 (Rx) + +%\subsection{Ausnahmen (Exceptions)} +%----------------------------------- + +\begin{verbatim} +import java.io.*; +public class trycatchfinally { + public static void main(String args[]) { + Runtime mySystem = Runtime.getRuntime(); //Objekt Runtime erstellen + try{ //unsichere Anweisungen + mySystem.exec("xaos"); + } catch(IOException e) { //Fehlerbehandlung + System.err.println("Es ist ein Fehler aufgetreten: " + e); + } finally { //Anweisungen werden immer ausgeführt + System.out.println("Kritischer Bereich wurde ausgeführt!"); + } + } +} +\end{verbatim} + diff --git a/programmieren/java/bedingungen_und_entscheidungen.tex b/programmieren/java/bedingungen_und_entscheidungen.tex new file mode 100644 index 0000000..da50bff --- /dev/null +++ b/programmieren/java/bedingungen_und_entscheidungen.tex @@ -0,0 +1,22 @@ +% master: bedingungen_und_entscheidungen.tex +% Bedingungen und Entscheidungen v0.1 +% 2011-06-08 (Rx) + +\subsection{Bedingungen und Entscheidungen} +%------------------------------------------ + +\begin{verbatim} +if(Bedingung) { wenn Bedingung wahr dann Anweisungen + Anweisungen; if ( x != y ) { z++; } +} + +Operator Beschreibung +-------- ------------ +== Gleichheit +!= Ungleichheit +< kleiner als +> größer als +<= kleiner gleich +>= größer gleich +\end{verbatim} + diff --git a/programmieren/java/das_erste_java_applet.tex b/programmieren/java/das_erste_java_applet.tex new file mode 100644 index 0000000..e3aec00 --- /dev/null +++ b/programmieren/java/das_erste_java_applet.tex @@ -0,0 +1,17 @@ +% master: das_erste_java_applet.tex +% Das erste Java Applet v0.1 +% 2011-06-08 (Rx) + +\subsection{Das erste Java Applet} +%--------------------------------- + +\begin{verbatim} +import java.applet.*; +import java.awt.*; +public class MyApplet extends Applet { + public void paint(Graphics g) { + g.drawString("Mein erstes Applet !", 20, 40); + } +} +\end{verbatim} + diff --git a/programmieren/java/das_paket_java_util.tex b/programmieren/java/das_paket_java_util.tex new file mode 100644 index 0000000..10b6128 --- /dev/null +++ b/programmieren/java/das_paket_java_util.tex @@ -0,0 +1,11 @@ +% master: das_paket_java_util.tex +% Das Paket java.util v0.1 +% 2011-06-08 (Rx) + +%\subsection{Das Paket java.util} +%-------------------------------- + +\begin{verbatim} +import java.util.*; Paket einbinden +\end{verbatim} + diff --git a/programmieren/java/datentypen.tex b/programmieren/java/datentypen.tex new file mode 100644 index 0000000..108a0eb --- /dev/null +++ b/programmieren/java/datentypen.tex @@ -0,0 +1,19 @@ +% master: datentypen.tex +% Datentypen v0.1 +% 2011-06-08 (Rx) + +\subsection{Datentypen} +%---------------------- + +\begin{verbatim} +Typ Inhalt Standdartwert Größe Wertebereich +boolean True oder False False 1 Bit - +char Unicode Zeichen 0000 16 Bit 0000 bis FFFF (Hex.) +byte Ganzzahl mit Vorzeichen 0 8 Bit -256 bis 255 +short Ganzzahl mit Vorzeichen 0 16 Bit -32768 bis 32767 +int Ganzzahl mit Vorzeichen 0 32 Bit -2^31 bis 2^31-1 +long Ganzzahl mit Vorzeichen 0 64 Bit -2^63 bis 2^63-1 +float Kommazahl 0.0 32 Bit - +double Kommazahl 0.0 64 Bit - +\end{verbatim} + diff --git a/programmieren/java/dekrement_operator.tex b/programmieren/java/dekrement_operator.tex new file mode 100644 index 0000000..99527dc --- /dev/null +++ b/programmieren/java/dekrement_operator.tex @@ -0,0 +1,11 @@ +% master: dekrement_operator.tex +% Dekrement-Operator v0.1 +% 2011-06-08 (Rx) + +\subsection{Dekrement-Operator} +%------------------------------ + +\begin{verbatim} +x--; x = x - 1; +\end{verbatim} + diff --git a/programmieren/java/die_anweisung_import.tex b/programmieren/java/die_anweisung_import.tex new file mode 100644 index 0000000..da875a7 --- /dev/null +++ b/programmieren/java/die_anweisung_import.tex @@ -0,0 +1,15 @@ +% master: die_anweisung_import.tex +% Die Anweisung import v0.1 +% 2011-06-08 (Rx) + +%\subsection{Die Anweisung import} +%--------------------------------- + +\begin{verbatim} +import haus.wand.stein; import erlaubt es Klassen im Sourcecode +getAnzahl(); über einen gekürzten Namen anzuspechen + haus.wand.stein.getAnzahl() -> getAnzahl() + +import java.lang.*; importiert alle Bestandteile ins Programm +\end{verbatim} + diff --git a/programmieren/java/die_do_while_schleife.tex b/programmieren/java/die_do_while_schleife.tex new file mode 100644 index 0000000..93b106b --- /dev/null +++ b/programmieren/java/die_do_while_schleife.tex @@ -0,0 +1,14 @@ +% master: die_do_while_schleife.tex +% Die do - while - Schleife v0.1 +% 2011-06-08 (Rx) + +\subsection{Die do - while - Schleife} +%------------------------------------- + +\begin{verbatim} +do { int x=0; Anweisungen dann solange + Anweisungen; do { Bedingung wahr +} while(Bedingung); x++; Anweisungen + } while(x<10); +\end{verbatim} + diff --git a/programmieren/java/die_for_schleife.tex b/programmieren/java/die_for_schleife.tex new file mode 100644 index 0000000..6c22b39 --- /dev/null +++ b/programmieren/java/die_for_schleife.tex @@ -0,0 +1,15 @@ +% master: die_for_schleife.tex +% Die for - Schleife v0.1 +% 2011-06-08 (Rx) + +\subsection{Die for - Schleife} +%------------------------------ + +\begin{verbatim} +for(Initialisierung; Bedingung; Schleifenschritt) { solange Bedingung wahr + Anweisungen; Anweisungen +} for(x=0;x<10;x++) { + y++; + } +\end{verbatim} + diff --git a/programmieren/java/die_klasse_button.tex b/programmieren/java/die_klasse_button.tex new file mode 100644 index 0000000..1df49d1 --- /dev/null +++ b/programmieren/java/die_klasse_button.tex @@ -0,0 +1,14 @@ +% master: die_klasse_button.tex +% Die Klasse Button v0.1 +% 2011-06-08 (Rx) + +\subsection{Die Klasse Button} +%----------------------------- + +\begin{verbatim} +Button myButton = new Button("Klick"); Buttonobjekt erschaffen + +setLabel() Beschriftung des Buttons ändern +getLabel() Beschriftung des Buttons auslesen +\end{verbatim} + diff --git a/programmieren/java/die_klasse_color.tex b/programmieren/java/die_klasse_color.tex new file mode 100644 index 0000000..5109a2f --- /dev/null +++ b/programmieren/java/die_klasse_color.tex @@ -0,0 +1,28 @@ +% master: die_klasse_color.tex +% Die Klasse Color v0.1 +% 2011-06-08 (Rx) + +\subsection{Die Klasse Color} +%---------------------------- + +\begin{verbatim} +Color farbe = new Color(r,g,b); Farben erzeugen r=0-255 g=0-255 r=0-255 +Color dfarbe = farbe.darker(); nächst dunklere Farbe +Color hfarbe = farbe.brighter(); nächst hellere Farbe + +Konstante Frabe +--------- ----- +Clolor.white weiss +Clolor.yellow gelb +Clolor.orange orange +Clolor.grey grau +Clolor.pink pink +Clolor.red rot +Clolor.magenta magenta +Clolor.green grün +Clolor.blue blau +Clolor.darkGray dunkelgrau +Clolor.lightGray hellgrau +Clolor.black schwarz +\end{verbatim} + diff --git a/programmieren/java/die_klasse_date.tex b/programmieren/java/die_klasse_date.tex new file mode 100644 index 0000000..3ca30fc --- /dev/null +++ b/programmieren/java/die_klasse_date.tex @@ -0,0 +1,20 @@ +% master: die_klasse_date.tex +% Die Klasse Date v0.1 +% 2011-06-08 (Rx) + +\subsection{Die Klasse Date} +%--------------------------- + +\begin{verbatim} +Date myDate = new Date(); Objekt Date erstellen + +toString() Datum in einen String umwandeln +getTime() UNIX-Timestamp, der die Sekunden seit dem + 1.1.1970 ausgibt +before() vergleicht das Datumsobjekt od es davor ist +after() vergleicht das Datumsobjekt od es danach ist +\end{verbatim} + +Erweiterte Funktionen rund um das Datum gibt es in der Klasse Calendar bzw. +DateFormat in der Java-API + diff --git a/programmieren/java/die_klasse_font.tex b/programmieren/java/die_klasse_font.tex new file mode 100644 index 0000000..404c824 --- /dev/null +++ b/programmieren/java/die_klasse_font.tex @@ -0,0 +1,22 @@ +% master: die_klasse_font.tex +% Die Klasse Font v0.1 +% 2011-06-08 (Rx) + +\subsection{Die Klasse Font} +%--------------------------- + +\begin{verbatim} +Windows Java +------- ---- +Arial Helvetica +Courier New Corier +MS Sans Serif Dialog +Times New Roman TimesRoman +WingDings ZapfDingbats +Arial default + +Font f = new Font("art", stil, größe); neue Schrift erstellen + stil: plain(normal), + italic(kursiv), blod(fett) +\end{verbatim} + diff --git a/programmieren/java/die_klasse_graphics.tex b/programmieren/java/die_klasse_graphics.tex new file mode 100644 index 0000000..8a648e5 --- /dev/null +++ b/programmieren/java/die_klasse_graphics.tex @@ -0,0 +1,22 @@ +% master: die_klasse_graphics.tex +% Die Klasse Graphics v0.1 +% 2011-06-08 (Rx) + +\subsection{Die Klasse Graphics} +%------------------------------- + +\begin{verbatim} +public void paint(Graphics g) { um in das Applet zu zeichnen + drawString("Text",x,y); Text im Applet ausgeben +} + +drawLine() Linie zeichnen +drawRect() Rechteck zeichnen +fillRect() gefülltes Rechteck zeichen +drawRoundRect() Rechteck mit abgerundeten Ecken zeichnen +fillRoundRect() gefülltes Rundeck zeichnen +drawOval() Kreis/Elipse zeichnen +fillOval() gefüllte/r Kreis/Elipse zeichnen +copyArea() kopieren eines sichtbaren Bereiches +\end{verbatim} + diff --git a/programmieren/java/die_klasse_image.tex b/programmieren/java/die_klasse_image.tex new file mode 100644 index 0000000..6a1202f --- /dev/null +++ b/programmieren/java/die_klasse_image.tex @@ -0,0 +1,13 @@ +% master: die_klasse_image.tex +% Die Klasse Image v0.1 +% 2011-06-08 (Rx) + +\subsection{Die Klasse Image} +%---------------------------- + +\begin{verbatim} +Image myImage = getImage(getCodeBase(), "Bild.jpg"); Bildobjekt erschaffen + +drawImage() Bild anzeigen +\end{verbatim} + diff --git a/programmieren/java/die_klasse_math.tex b/programmieren/java/die_klasse_math.tex new file mode 100644 index 0000000..4bd9d7c --- /dev/null +++ b/programmieren/java/die_klasse_math.tex @@ -0,0 +1,15 @@ +% master: die_klasse_math.tex +% Die Klasse Math v0.1 +% 2011-06-08 (Rx) + +\subsection{Die Klasse Math} +%--------------------------- + +\begin{verbatim} +Math.* bietet mathematische Funktionen +Math.E Eulersche Zahl +Math.PI PI +Math.random() Zufallszahl zwischen 0 und 1 +Math.round() rundet zu Ganzzahlen +\end{verbatim} + diff --git a/programmieren/java/die_klasse_object.tex b/programmieren/java/die_klasse_object.tex new file mode 100644 index 0000000..765a12b --- /dev/null +++ b/programmieren/java/die_klasse_object.tex @@ -0,0 +1,12 @@ +% master: die_klasse_object.tex +% Die Klasse Object v0.1 +% 2011-06-08 (Rx) + +\subsection{Die Klasse Object} +%----------------------------- + +\begin{verbatim} +getClass() liefert die Klasse eines Objektes zurück +equals() vergleicht zwei Objekte gibt true oder false +\end{verbatim} + diff --git a/programmieren/java/die_klasse_random.tex b/programmieren/java/die_klasse_random.tex new file mode 100644 index 0000000..12efba5 --- /dev/null +++ b/programmieren/java/die_klasse_random.tex @@ -0,0 +1,21 @@ +% master: die_klasse_random.tex +% Die Klasse Random v0.1 +% 2011-06-08 (Rx) + +\subsection{Die Klasse Random} +%----------------------------- + +\begin{verbatim} +Random zz = new Random(); Objekt Random erstellen + +Methode Bereich Typ +------- ------- --- +nextInt() -2^31 bis 2^31-1 int +nextLong() -2^63 bis 2^63-1 long +nextFloat() 0.0 bis 1.0 float +nextDouble() 0.0 bis 1.0 double + +nextGaussian() gibt eine Zufallszahl zurück, die nach dem Gauß- + Verfahren ermittelt wurde +\end{verbatim} + diff --git a/programmieren/java/die_klasse_runtime.tex b/programmieren/java/die_klasse_runtime.tex new file mode 100644 index 0000000..0375301 --- /dev/null +++ b/programmieren/java/die_klasse_runtime.tex @@ -0,0 +1,17 @@ +% master: die_klasse_runtime.tex +% Die Klasse Runtime v0.1 +% 2011-06-08 (Rx) + +%\subsection{Die Klasse Runtime} +%------------------------------- + +\begin{verbatim} +Um diese Klasse zu nutzen,muss mit getRuntime() erst ein Objekt erstellt werden! +Runtime mySystem = Runtime.getRuntime(); Objekt Runtime erstellen + +freeMemory() freier Speicher +totalMemory() gesamter Speicher +exit(0) Programm sofort mit Wert verlassen +exec() Systemprogramme starten (s. Exceptions) +\end{verbatim} + diff --git a/programmieren/java/die_klasse_stack.tex b/programmieren/java/die_klasse_stack.tex new file mode 100644 index 0000000..673e792 --- /dev/null +++ b/programmieren/java/die_klasse_stack.tex @@ -0,0 +1,15 @@ +% master: die_klasse_stack.tex +% Die Klasse Stack v0.1 +% 2011-06-08 (Rx) + +\subsection{Die Klasse Stack} +%---------------------------- + +\begin{verbatim} +Stack myStack = new Stack(); Objekt Stack erstellen + +push() legt ein Objekt auf dem Stack ab +pop() holt das oberste Objekt vom Stack und löscht es +peek() holt das oberste Objekt vom Stack +\end{verbatim} + diff --git a/programmieren/java/die_klasse_string.tex b/programmieren/java/die_klasse_string.tex new file mode 100644 index 0000000..0bbb07f --- /dev/null +++ b/programmieren/java/die_klasse_string.tex @@ -0,0 +1,15 @@ +% master: die_klasse_string.tex +% Die Klasse String v0.1 +% 2011-06-08 (Rx) + +%\subsection{Die Klasse String} +%------------------------------ + +\begin{verbatim} +String s = "Hallo" + " Du !"; Strings zusammenfassen +charAt() gibt einen Buchstaben aus dem String zurück +indexOf() Position von Buchstaben/ketten feststellen +substring() String auseinanderschneiden +lenght() Länge eines Strings bestimmen +\end{verbatim} + diff --git a/programmieren/java/die_klasse_stringbuffer.tex b/programmieren/java/die_klasse_stringbuffer.tex new file mode 100644 index 0000000..e69bd64 --- /dev/null +++ b/programmieren/java/die_klasse_stringbuffer.tex @@ -0,0 +1,17 @@ +% master: die_klasse_stringbuffer.tex +% Die Klasse Stringbuffer v0.1 +% 2011-06-08 (Rx) + +\subsection{Die Klasse Stringbuffer} +%----------------------------------- + +Um diese Klasse zu nutzen, muss erst ein Objekt erstellt werden! +\begin{verbatim} +Stringbuffer buffer = newStringbuffer(""); Objekt Stringbuffer erstellen + +setCharAt() änderrung eines bestimmten Buchstaben im String +delete() löscht Teile aus dem String +replace() ersetzt Teile im String +insert() setzt Teile im String ein +\end{verbatim} + diff --git a/programmieren/java/die_klasse_system.tex b/programmieren/java/die_klasse_system.tex new file mode 100644 index 0000000..4790004 --- /dev/null +++ b/programmieren/java/die_klasse_system.tex @@ -0,0 +1,15 @@ +% master: die_klasse_system.tex +% Die Klasse System v0.1 +% 2011-06-08 (Rx) + +%\subsection{Die Klasse System} +%------------------------------ +Standardeingabe - in, Standardausgabe - out, Fehlerausgabe - err + +\begin{verbatim} +System.out.println("Text") Text ausgeben + +byte[] b = new byte[80]; +System.in.read(b); Einlesen von Daten +\end{verbatim} + diff --git a/programmieren/java/die_methoden_eines_applets.tex b/programmieren/java/die_methoden_eines_applets.tex new file mode 100644 index 0000000..2f779f2 --- /dev/null +++ b/programmieren/java/die_methoden_eines_applets.tex @@ -0,0 +1,17 @@ +% master: die_methoden_eines_applets.tex +% Die Methoden eines Applets v0.1 +% 2011-06-08 (Rx) + +\subsection{Die Methoden eines Applets} +%-------------------------------------- + +\begin{verbatim} +init() wird automatisch bei der Initialisierung des Applets aufgerufen +start() wird automatisch aufgerufen, wenn das Applet im sichtbaren + Browser-Bereich erscheint +stop() wird automatisch aufgerufen, wenn das Applet den sichtbaren + Bereich verläßt +destroy() wird automatisch beim verlassen der Seite oder schließen des + Browsers aufgerufen +\end{verbatim} + diff --git a/programmieren/java/die_while_schleife.tex b/programmieren/java/die_while_schleife.tex new file mode 100644 index 0000000..a0a5440 --- /dev/null +++ b/programmieren/java/die_while_schleife.tex @@ -0,0 +1,14 @@ +% master: die_while_schleife.tex +% Die while - Schleife v0.1 +% 2011-06-08 (Rx) + +\subsection{Die while - Schleife} +%-------------------------------- + +\begin{verbatim} +while(Bedingung) { int x=0; solange Bedingung wahr + Anweisungen; while(x<10) { Anweisungen +} x++; + } +\end{verbatim} + diff --git a/programmieren/java/eigene_ausnahme_erzeugen.tex b/programmieren/java/eigene_ausnahme_erzeugen.tex new file mode 100644 index 0000000..1206d7d --- /dev/null +++ b/programmieren/java/eigene_ausnahme_erzeugen.tex @@ -0,0 +1,17 @@ +% master: eigene_ausnahme_erzeugen.tex +% Eigene Ausnahme erzeugen (throw) v0.1 +% 2011-06-08 (Rx) + +\subsection{Eigene Ausnahme erzeugen (throw)} +%-------------------------------------------- + +\begin{verbatim} +Methode(int zahl) { + if(zahl<0) { + throw(new Exception("Fehler!")); + } elese { + zahl++; + } +} +\end{verbatim} + diff --git a/programmieren/java/ein_applet_im_ueberblick.tex b/programmieren/java/ein_applet_im_ueberblick.tex new file mode 100644 index 0000000..fce31c1 --- /dev/null +++ b/programmieren/java/ein_applet_im_ueberblick.tex @@ -0,0 +1,30 @@ +% master: ein_applet_im_ueberblick.tex +% Ein Applet im Überblick v0.1 +% 2011-06-08 (Rx) + +\subsection{Ein Applet im Überblick} +%----------------------------------- + +\begin{verbatim} +import java.applet.*; +import java.awt.*; +public class newApplet extends Applet { + public void init() { + //initialisierung aller nötigen Werte für das Programm + } + public void start() { + //Start des Applets + } + public void paint(Graphics g) { + //Grafikausgabe über das Objekt g ! + } + public void stop() { + //Stop des Applets + } + public void destroy() { + //Ende des Applets + //Speicher wird freigegeben + } +} +\end{verbatim} + diff --git a/programmieren/java/eventhandling.tex b/programmieren/java/eventhandling.tex new file mode 100644 index 0000000..e2942e4 --- /dev/null +++ b/programmieren/java/eventhandling.tex @@ -0,0 +1,11 @@ +% master: eventhandling.tex +% Eventhandling v0.1 +% 2011-06-08 (Rx) + +%\subsection{Eventhandling} +%-------------------------- + +\begin{verbatim} +java.awt.event.*; Paket zur Ereignisbehandlung einbinden +\end{verbatim} + diff --git a/programmieren/java/fallunterscheidung_mit_switch_case.tex b/programmieren/java/fallunterscheidung_mit_switch_case.tex new file mode 100644 index 0000000..54f4883 --- /dev/null +++ b/programmieren/java/fallunterscheidung_mit_switch_case.tex @@ -0,0 +1,18 @@ +% master: fallunterscheidung_mit_switch_case.tex +% Fallunterscheidung mit switch - case v0.1 +% 2011-06-08 (Rx) + +\subsection{Fallunterscheidung mit switch - case} +%------------------------------------------------ + +\begin{verbatim} +switch(Ausdruck) { switch(2) { Route 2 also + case Wert1: Anweisungen1; case 1: x++; x = x - 1; + break; break; + case Wert2: Anweisungen2; case 2: x--; + break; break; + case Wert3: Anweisungen3; } + break; +} +\end{verbatim} + diff --git a/programmieren/java/funktion_von_java.tex b/programmieren/java/funktion_von_java.tex new file mode 100644 index 0000000..8a26dac --- /dev/null +++ b/programmieren/java/funktion_von_java.tex @@ -0,0 +1,20 @@ +% master: funktion_von_java.tex +% Funktion von Java v0.1 +% 2011-06-08 (Rx) + +\begin{verbatim} + +---------------+ +--------------------------+ +---------------------+ + | Programm Code |->| Java Compiler (java.exe) |->| Bytecode (01010011) | + +---------------+ +--------------------------+ +---------------------+ + | | + V V + +--------------+ +--------------+ + | Ineterpreter | | Browser/ | + | (java.exe) | | Appletviewer | + +--------------+ +--------------+ + +javac.exe progammcode.java -> programmcode.class Programm compilieren +java.exe programmcode Programm ausführen +appletviewer.exe Applets ausführen +\end{verbatim} + diff --git a/programmieren/java/if_else_bedingungen.tex b/programmieren/java/if_else_bedingungen.tex new file mode 100644 index 0000000..c58241b --- /dev/null +++ b/programmieren/java/if_else_bedingungen.tex @@ -0,0 +1,15 @@ +% master: if_else_bedingungen.tex +% if - else - Bedingungen v0.1 +% 2011-06-08 (Rx) + +\subsection{if - else - Bedingungen} +%----------------------------------- + +\begin{verbatim} +if(Bedingung) { wenn Bedingung wahr dann Anweisungen1 sonst Anweisungen2 + Anweisungen1; if ( x != y ) { z++; } else { z--; } +} else { + Anweisungen2; +} +\end{verbatim} + diff --git a/programmieren/java/inkrement_operator.tex b/programmieren/java/inkrement_operator.tex new file mode 100644 index 0000000..1cc7b26 --- /dev/null +++ b/programmieren/java/inkrement_operator.tex @@ -0,0 +1,11 @@ +% master: inkrement_operator.tex +% Inkrement-Operator v0.1 +% 2011-06-08 (Rx) + +\subsection{Inkrement-Operator} +%------------------------------ + +\begin{verbatim} +x++; x = x + 1; +\end{verbatim} + diff --git a/programmieren/java/java.tex b/programmieren/java/java.tex new file mode 100644 index 0000000..71251f6 --- /dev/null +++ b/programmieren/java/java.tex @@ -0,0 +1,115 @@ +% master: java.tex +% Java v0.1 +% 2011-06-08 (Rx) + +\chapter{Java} + +\section{Funktion von Java} +%-------------------------- +\input{programmieren/java/funktion_von_java} + +\section{Sprache und Syntax von Java} +%------------------------------------ +\input{programmieren/java/kommentrare} +\input{programmieren/java/datentypen} +\input{programmieren/java/variablen} + +\section{Pakete und Verzeichnisstrukturen} +%----------------------------------------- +\input{programmieren/java/sichtbarkeit_und_Zugriffsrechte_von_klassen_und_methoden} +\input{programmieren/java/klassen} +\input{programmieren/java/konstruktoren_und_destruktoren} +\input{programmieren/java/methoden_ueberladen} +\input{programmieren/java/objekte} +\input{programmieren/java/vererbung} +\input{programmieren/java/schnittstellen} + +\section{Elementare Syntax von Java} +%----------------------------------- +\input{programmieren/java/operratoren} +\input{programmieren/java/verknuepfungsoperatoren} +\input{programmieren/java/inkrement_operator} +\input{programmieren/java/dekrement_operator} +\input{programmieren/java/arithmetische_zuweisungsoperatoren} +\input{programmieren/java/bedingungen_und_entscheidungen} +\input{programmieren/java/if_else_bedingungen} +\input{programmieren/java/verschachtelte_bedingungen} +\input{programmieren/java/fallunterscheidung_mit_switch_case} + +\section{Schleifen} +%------------------ +\input{programmieren/java/die_while_schleife} +\input{programmieren/java/die_do_while_schleife} +\input{programmieren/java/die_for_schleife} +\input{programmieren/java/schleifen_mit_break_verlassen} +\input{programmieren/java/schleife_mit_continue_wiederholen} + +\section{Komplexe Datentypen} +%---------------------------- +\input{programmieren/java/arrays} + +\section{Die Anweisung import} +%----------------------------- +\input{programmieren/java/die_anweisung_import} + +\section{Java eigene Klassen} +%---------------------------- +\input{programmieren/java/die_klasse_math} + +\section{Die Klasse Object} +%-------------------------- +\input{programmieren/java/die_klasse_object} + +\section{Die Klasse Runtime} +%--------------------------- +\input{programmieren/java/die_klasse_runtime} + +\section{Die Klasse String} +%-------------------------- +\input{programmieren/java/die_klasse_string} + +\section{Die Klasse Stringbuffer} +%-------------------------------- +\input{programmieren/java/die_klasse_stringbuffer} + +\section{Die Klasse System} +%-------------------------- +\input{programmieren/java/die_klasse_system} + +\section{Das Paket java.util} +%---------------------------- +\input{programmieren/java/das_paket_java_util} +\input{programmieren/java/die_klasse_date} +\input{programmieren/java/die_klasse_random} +\input{programmieren/java/die_klasse_stack} + +\section{Ausnahmen (Exceptions)} +%------------------------------- +\input{programmieren/java/ausnahmen} +\input{programmieren/java/eigene_ausnahme_erzeugen} + +\section{Multitasking mit Threads} +%--------------------------------- +\input{programmieren/java/arbeiten_mit_threads} + +\section{Applets} +%---------------- +\input{programmieren/java/applets_in_eine_webseite_einbinden} +\input{programmieren/java/das_erste_java_applet} +\input{programmieren/java/die_methoden_eines_applets} +\input{programmieren/java/ein_applet_im_ueberblick} +\input{programmieren/java/pakete} +\input{programmieren/java/die_klasse_graphics} +\input{programmieren/java/die_klasse_color} +\input{programmieren/java/die_klasse_font} +\input{programmieren/java/die_klasse_image} +\input{programmieren/java/die_klasse_button} + +\section{Eventhandling} +%---------------------- +\input{programmieren/java/eventhandling} +\input{programmieren/java/mouse_events} +\input{programmieren/java/action_events} +\input{programmieren/java/parameter_an_ein_applet} +\input{programmieren/java/weitere_wichtige_pakete} + diff --git a/programmieren/java/klassen.tex b/programmieren/java/klassen.tex new file mode 100644 index 0000000..bed928b --- /dev/null +++ b/programmieren/java/klassen.tex @@ -0,0 +1,28 @@ +% master: klassen.tex +% Klassen v0.1 +% 2011-06-08 (Rx) + +\subsection{Klassen} +%------------------- + +\begin{verbatim} +class Klasse Klassendeklaration +{ + ... +} + +public class Klasse öffendliche Klassendeklaration +{ -ohne public ist die Klasse automatisch "privat" + ... +} + +package Paketklasse; Klassen zusammenfassen d.h. Paketklasse.Klasse +public class Klasse +{ + ... +} + +package Paket.Paketklasse Oberklassen zusammenfassen d.h. + Paket.Paketklasse.Klasse +\end{verbatim} + diff --git a/programmieren/java/kommentrare.tex b/programmieren/java/kommentrare.tex new file mode 100644 index 0000000..cedb796 --- /dev/null +++ b/programmieren/java/kommentrare.tex @@ -0,0 +1,15 @@ +% master: kommentrare.tex +% Kommentrare v0.1 +% 2011-06-08 (Rx) + +\subsection{Kommentrare} +%----------------------- + +\begin{verbatim} +/* Kommentar-Anfang +*/ Kommentar-Ende +// Einzeiliger Kommentar ohne Ende + +; Anweisung abschließen +\end{verbatim} + diff --git a/programmieren/java/konstruktoren_und_destruktoren.tex b/programmieren/java/konstruktoren_und_destruktoren.tex new file mode 100644 index 0000000..8122b11 --- /dev/null +++ b/programmieren/java/konstruktoren_und_destruktoren.tex @@ -0,0 +1,22 @@ +% master: konstruktoren_und_destruktoren.tex +% Konstruktoren und Destruktoren v0.1 +% 2011-06-08 (Rx) + +\subsection{Konstruktoren und Destruktoren} +%------------------------------------------ + +\begin{verbatim} +class Klasse Konstruktor +{ ----------- + public Klasse() Methode die beim Erschaffen eines neuen Objektes + { automatisch aufgerufen wird + ... + } Destruktor + ---------- + protected void finalize() Methode die beim Löschen eines alten + { Objektes automatisch aufgerufen wird + ... + } +} +\end{verbatim} + diff --git a/programmieren/java/methoden_ueberladen.tex b/programmieren/java/methoden_ueberladen.tex new file mode 100644 index 0000000..a1b5ae8 --- /dev/null +++ b/programmieren/java/methoden_ueberladen.tex @@ -0,0 +1,21 @@ +% master: methoden_ueberladen.tex +% Methoden überladen v0.1 +% 2011-06-08 (Rx) + +\subsection{Methoden überladen} +%------------------------------ + +\begin{verbatim} +class Klasse +{ + Methode() Dieselbe Metode mehrmals mit unterschielichen + { Parametern schaffen + ... + } + Methode(int var) Dieselbe Metode mehrmals mit unterschielichen + { Parametern schaffen + ... + } +} +\end{verbatim} + diff --git a/programmieren/java/mouse_events.tex b/programmieren/java/mouse_events.tex new file mode 100644 index 0000000..43083c1 --- /dev/null +++ b/programmieren/java/mouse_events.tex @@ -0,0 +1,32 @@ +% master: mouse_events.tex +% Mouse Events v0.1 +% 2011-06-08 (Rx) + +\subsection{Mouse Events} +%------------------------ + +\begin{verbatim} +public class myApplet extends Applet implements MouseListener {} + Schnittstelle MouseListener implementieren + +Methode Aufgabe +------- ------- +mousePressed() Maustaste wird gedrückt +mouseReleased() Maustaste wird losgelassen +mouseClicked() Mausklick +mouseEntered() Maus bewegt sich in das Applet +mouseExited() Maus verlässt das Applet + +addMouseListener(this); Listener soll auf das gesamte Applet achten + +public void mousePressed(mouseEvent e) { + int x = e.getX(); Maustaste an X gedrückt + int y = e.getY(); Maustaste an Y gedrückt +} + +addMouseMotionListener(this); MotionListener soll auf das Applet achten + +mouseMoved() bewegte Mausereignisse +mouseDragged() +\end{verbatim} + diff --git a/programmieren/java/objekte.tex b/programmieren/java/objekte.tex new file mode 100644 index 0000000..9cc093c --- /dev/null +++ b/programmieren/java/objekte.tex @@ -0,0 +1,12 @@ +% master: objekte.tex +% Objekte v0.1 +% 2011-06-08 (Rx) + +\subsection{Objekte} +%------------------- + +\begin{verbatim} +objekt Neuobjekt = new objekt(); Neues Objekt Neuobjekt von der Klasse + objekt erstellen +\end{verbatim} + diff --git a/programmieren/java/operratoren.tex b/programmieren/java/operratoren.tex new file mode 100644 index 0000000..a6a3c5d --- /dev/null +++ b/programmieren/java/operratoren.tex @@ -0,0 +1,12 @@ +% master: operratoren.tex +% Operratoren v0.1 +% 2011-06-08 (Rx) + +\subsection{Operratoren} +%----------------------- + +\begin{verbatim} +x = 10; Das Gleichheitszeichen weist immer den rechten Wert dem auf + der linken Seite zu +\end{verbatim} + diff --git a/programmieren/java/pakete.tex b/programmieren/java/pakete.tex new file mode 100644 index 0000000..d233229 --- /dev/null +++ b/programmieren/java/pakete.tex @@ -0,0 +1,14 @@ +% master: pakete.tex +% Pakete v0.1 +% 2011-06-08 (Rx) + +\subsection{Pakete} +%------------------ + +\begin{verbatim} +java.awt dient zur Bearbeitung und Ausgabe von Grafiken und + Fensterelementen in Applikationen und Applets + (advanced window toolkit) +java.applet eine Grundvoraussetzung für ein Applet +\end{verbatim} + diff --git a/programmieren/java/parameter_an_ein_applet.tex b/programmieren/java/parameter_an_ein_applet.tex new file mode 100644 index 0000000..0f28147 --- /dev/null +++ b/programmieren/java/parameter_an_ein_applet.tex @@ -0,0 +1,18 @@ +% master: parameter_an_ein_applet.tex +% Parameter an ein Applet v0.1 +% 2011-06-08 (Rx) + +\subsection{Parameter an ein Applet} +%----------------------------------- + +\begin{verbatim} + + Parameter1 + Parameter2 + + + +String var1 = getParameter("var1"); Parameter1 an den String var1 +String var2 = getParameter("var2"); und var2 übergeben +\end{verbatim} + diff --git a/programmieren/java/schleife_mit_continue_wiederholen.tex b/programmieren/java/schleife_mit_continue_wiederholen.tex new file mode 100644 index 0000000..9bf80d9 --- /dev/null +++ b/programmieren/java/schleife_mit_continue_wiederholen.tex @@ -0,0 +1,14 @@ +% master: schleife_mit_continue_wiederholen.tex +% Schleife mit continue wiederholen v0.1 +% 2011-06-08 (Rx) + +\subsection{Schleife mit continue wiederholen} +%--------------------------------------------- + +\begin{verbatim} +for(x=0;x<10;x++) { Die Schleife wird vor dem y++ wiederholt + continue; + y++; +} +\end{verbatim} + diff --git a/programmieren/java/schleifen_mit_break_verlassen.tex b/programmieren/java/schleifen_mit_break_verlassen.tex new file mode 100644 index 0000000..6513ec1 --- /dev/null +++ b/programmieren/java/schleifen_mit_break_verlassen.tex @@ -0,0 +1,14 @@ +% master: schleifen_mit_break_verlassen.tex +% Schleifen mit break verlassen v0.1 +% 2011-06-08 (Rx) + +\subsection{Schleifen mit break verlassen} +%----------------------------------------- + +\begin{verbatim} +for(x=0;x<10;x++) { Die Schleife wird vor dem y++ verlassen + break; + y++; +} +\end{verbatim} + diff --git a/programmieren/java/schnittstellen.tex b/programmieren/java/schnittstellen.tex new file mode 100644 index 0000000..bfed001 --- /dev/null +++ b/programmieren/java/schnittstellen.tex @@ -0,0 +1,21 @@ +% master: schnittstellen.tex +% Schnittstellen v0.1 +% 2011-06-08 (Rx) + +\subsection{Schnittstellen} +%-------------------------- + +\begin{verbatim} +public interface Klasse { Schnittstelle erschaffen + Methodenkopf(); + Variablen; +} + +class NeuKlasse extends Klasse implements IntKlasse neue Klasse NeuKlasse + herstellen + alle sichtbaren Eigenschaften + und Methoden werden übernommen + und die Schnittstelle IntKlasse + hinzufügen +\end{verbatim} + diff --git a/programmieren/java/sichtbarkeit_und_Zugriffsrechte_von_klassen_und_methoden.tex b/programmieren/java/sichtbarkeit_und_Zugriffsrechte_von_klassen_und_methoden.tex new file mode 100644 index 0000000..80ef94a --- /dev/null +++ b/programmieren/java/sichtbarkeit_und_Zugriffsrechte_von_klassen_und_methoden.tex @@ -0,0 +1,28 @@ +% master: sichtbarkeit_und_Zugriffsrechte_von_klassen_und_methoden.tex +% Sichtbarkeit und Zugriffsrechte von Klassen und Methoden v0.1 +% 2011-06-08 (Rx) + +\subsection{Sichtbarkeit und Zugriffsrechte von Klassen und Methoden} +%-------------------------------------------------------------------- + +\begin{verbatim} +public Klasse, Methode oder Variable die überall sichtbar ist +protected Methode oder Variable die nur im eigenen Paket und + abgeleiteten Klassen sichtbar ist +default Klasse, Methode oder Variable die Sichtbarkei beschrängt + sich auf das eigen Paket +private protected Methode oder Variable die nur in abgeleiteten Klassen + sichtbar ist +private Methode oder Variable die nur in der eigenen Klasse + sichtbar ist + +Zugriff public protected default private protected private +------- ------ --------- ------- ----------------- ------- +Zugriff ... +... im selben Paket Ja Ja Ja Nein Nein +... von anderen Paketen Ja Nein Nein Nein Nein +Vererbt ... +... Klassen im selben Paket Ja Ja Ja Ja Nein +... Klassen an andere Pakete Ja Ja Nein Ja Nein +\end{verbatim} + diff --git a/programmieren/java/variablen.tex b/programmieren/java/variablen.tex new file mode 100644 index 0000000..76dfc0b --- /dev/null +++ b/programmieren/java/variablen.tex @@ -0,0 +1,22 @@ +% master: variablen.tex +% Variablen v0.1 +% 2011-06-08 (Rx) + +\subsection{Variablen} +%--------------------- + +\subsubsection{Variable deklarieren} +%----------------------------------- +\begin{verbatim} +boolean myBool; +int x = 32; +double y = 3.2; +char buchstabe; +\end{verbatim} + +\subsubsection{Variabeln ansprechen} +%----------------------------------- +\begin{verbatim} +this.buchstabe; bezieht sich auf die aktuelle Klasse +\end{verbatim} + diff --git a/programmieren/java/vererbung.tex b/programmieren/java/vererbung.tex new file mode 100644 index 0000000..c2b5ed2 --- /dev/null +++ b/programmieren/java/vererbung.tex @@ -0,0 +1,13 @@ +% master: vererbung.tex +% Vererbung v0.1 +% 2011-06-08 (Rx) + +\subsection{Vererbung} +%--------------------- + +\begin{verbatim} +public class NeuKlasse extends Klasse {} neue Klasse NeuKlasse herstellen + alle sichtbaren Eigenschaften + und Methoden werden übernommen +\end{verbatim} + diff --git a/programmieren/java/verknuepfungsoperatoren.tex b/programmieren/java/verknuepfungsoperatoren.tex new file mode 100644 index 0000000..6c782d8 --- /dev/null +++ b/programmieren/java/verknuepfungsoperatoren.tex @@ -0,0 +1,17 @@ +% master: verknuepfungsoperatoren.tex +% Verknüpfungsoperatoren v0.1 +% 2011-06-08 (Rx) + +\subsection{Verknüpfungsoperatoren} +%---------------------------------- + +\begin{verbatim} +Operator Bedeutung Beispiel +-------- --------- -------- ++ Addition 7 = 3 + 4; +- Subtraktion 1 = 7 - 6; +* Multiplikation 6 = 2 * 3; +/ Division 3 = 9 / 3; +% Modulo(Rest) 1 = 9 % 4; +\end{verbatim} + diff --git a/programmieren/java/verschachtelte_bedingungen.tex b/programmieren/java/verschachtelte_bedingungen.tex new file mode 100644 index 0000000..e9db9c4 --- /dev/null +++ b/programmieren/java/verschachtelte_bedingungen.tex @@ -0,0 +1,17 @@ +% master: verschachtelte_bedingungen.tex +% Verschachtelte Bedingungen v0.1 +% 2011-06-08 (Rx) + +\subsection{Verschachtelte Bedingungen} +%-------------------------------------- + +\begin{verbatim} +if(Bedingung1) { wenn Bedingung1 und Bedingung2 dann Anweisungen1 + if(Bedingung2){ sonst Anweisungen2 + Anweisungen1; if( x != y ) { if( a < b ){z++;} } else { z--; } + } +} else { + Anweisungen2 +} +\end{verbatim} + diff --git a/programmieren/java/weitere_wichtige_pakete.tex b/programmieren/java/weitere_wichtige_pakete.tex new file mode 100644 index 0000000..a9830a6 --- /dev/null +++ b/programmieren/java/weitere_wichtige_pakete.tex @@ -0,0 +1,16 @@ +% master: weitere_wichtige_pakete.tex +% Weitere wichtige Pakete v0.1 +% 2011-06-08 (Rx) + +\subsection{Weitere wichtige Pakete} +%----------------------------------- + +\begin{verbatim} +java.net Klassen und Schnittstellen für Netzwerkentwicklung +java.beans wieder verwentbare Komponenten +java.security erhöte Sicherheit innerhalb von Applikationen/Applets +java.rmi Verteilung eines Programms auf mehrere Rechner +java.sql Anbindung an SQL-Datenbanken +java.servlet Applikationen die serverseitig laufen +\end{verbatim} + diff --git a/programmieren/javascript/arrays.tex b/programmieren/javascript/arrays.tex new file mode 100644 index 0000000..16279a1 --- /dev/null +++ b/programmieren/javascript/arrays.tex @@ -0,0 +1,12 @@ +% master: arrays.tex +% Arrays v0.1 +% 2011-06-08 (Rx) + +\subsection{Arrays} +%------------------ + +\begin{verbatim} +Variable = new Array Array erzeugen +Variable[0] = "hallo" Wert zuweisen +\end{verbatim} + diff --git a/programmieren/javascript/ausfuehren_bei_bestimmten_aktionen.tex b/programmieren/javascript/ausfuehren_bei_bestimmten_aktionen.tex new file mode 100644 index 0000000..38dcdbd --- /dev/null +++ b/programmieren/javascript/ausfuehren_bei_bestimmten_aktionen.tex @@ -0,0 +1,18 @@ +% master: ausführen_bei_bestimmten_aktionen.tex +% Ausführen bei bestimmten Aktionen v0.1 +% 2011-06-08 (Rx) + +\subsection{Ausführen bei bestimmten Aktionen} +%--------------------------------------------- + +\begin{verbatim} + + + + + Beim Laden wird der JavaScript-Quelltext + ausgeführt + + +\end{verbatim} + diff --git a/programmieren/javascript/bedingte_ausfuehrung.tex b/programmieren/javascript/bedingte_ausfuehrung.tex new file mode 100644 index 0000000..e30566b --- /dev/null +++ b/programmieren/javascript/bedingte_ausfuehrung.tex @@ -0,0 +1,14 @@ +% master: bedingte_ausfuehrung.tex +% Bedingte Ausführung v0.1 +% 2011-06-08 (Rx) + +%\subsection{Bedingte Ausführung} +%-------------------------------- + +\begin{verbatim} +if(Ausdruck) wenn der Ausdruck stimmt, +{ + Anweisung-en1 Anweisung-en1 +} +\end{verbatim} + diff --git a/programmieren/javascript/eigene_objekte.tex b/programmieren/javascript/eigene_objekte.tex new file mode 100644 index 0000000..15a9c05 --- /dev/null +++ b/programmieren/javascript/eigene_objekte.tex @@ -0,0 +1,22 @@ +% master: eigene_objekte.tex +% Eigene Objekte v0.1 +% 2011-06-08 (Rx) + +\subsection{Eigene Objekte} +%-------------------------- + +\begin{verbatim} +function person(name, alter) { Funktion + this.name = name zum + this.alter = alter Objekt +} anlegen + +var meier = new person("Geier Meier", 18) Objekt erzeugen +meier.name = "Mr. Geier Meier" Wert ändern +meier.alter = 20 Wert ändern + +meier = new Object Objekt erzeugen +meier.vorname = "Geier" Wert zuweisen +meier.nachname = "Meier" Wert zuweisen +\end{verbatim} + diff --git a/programmieren/javascript/einbindung_in_den_body.tex b/programmieren/javascript/einbindung_in_den_body.tex new file mode 100644 index 0000000..1bdaddb --- /dev/null +++ b/programmieren/javascript/einbindung_in_den_body.tex @@ -0,0 +1,20 @@ +% master: einbindung_in_den_body.tex +% Einbindung in den Body v0.1 +% 2011-06-08 (Rx) + +\subsection{Einbindung in den Body} +%---------------------------------- + +\begin{verbatim} + + + + + + Beendet den JavaScript-Quelltext + + +\end{verbatim} + diff --git a/programmieren/javascript/einbindung_in_den_head.tex b/programmieren/javascript/einbindung_in_den_head.tex new file mode 100644 index 0000000..d712c73 --- /dev/null +++ b/programmieren/javascript/einbindung_in_den_head.tex @@ -0,0 +1,23 @@ +% master: einbindung_in_den_head.tex +% Einbindung in den Head v0.1 +% 2011-06-08 (Rx) + +\subsection{Einbindung in den Head} +%---------------------------------- + +\begin{verbatim} + + + + Beendet den JavaScript-Quelltext + + + + +\end{verbatim} + diff --git a/programmieren/javascript/event_handler.tex b/programmieren/javascript/event_handler.tex new file mode 100644 index 0000000..e344518 --- /dev/null +++ b/programmieren/javascript/event_handler.tex @@ -0,0 +1,21 @@ +% master: event_handler.tex +% Event-Handler v0.1 +% 2011-06-08 (Rx) + +%\subsection{Event-Handler} +%-------------------------- + +\begin{verbatim} +onLoad="Aktion" Beim Laden Aktion ausführen +onUnload="Aktion" Beim Schließen Aktion ausführen +onMouseOver="Aktion" Beim Überfahren Aktion ausführen +onMouseOut="Aktion" Beim Verlassen Aktion ausführen +onFocus="Aktion" Beim Setzen des Cursors auf das Element + (Einsatz in Formularen) +onBlur="Aktion" Beim Verlassen des Elementes +onChange="Aktion" Beim Verlassen des Elementes wenn verändert +onClick="Aktion" Beim Anklicken eines Formularelements +Verweistext +onSubmit="Aktion" Beim Senden eines Formulares Aktion ausführen +\end{verbatim} + diff --git a/programmieren/javascript/funktionen.tex b/programmieren/javascript/funktionen.tex new file mode 100644 index 0000000..292c237 --- /dev/null +++ b/programmieren/javascript/funktionen.tex @@ -0,0 +1,27 @@ +% master: funktionen.tex +% Funktionen v0.1 +% 2011-06-08 (Rx) + +%\subsection{Funktionen} +%----------------------- + +\begin{verbatim} +function Name(var1,var2) Definiert eine Funktion mit dem Name +{ + alert(var2) Hier kommt der Funktionsinhalt rein +} + +return("Hallo") Hallo zurück geben + +alert("Text") Öffnet ein Fenster und gibt den Text aus +uhrzeit=new Date() Datum und Uhrzeit in das Objekt uhrzeit + schreiben +st=uhrzeit.getHours() Stunden aus dem Objekt uhrzeit der Variable + st zuweisen +min=uhrzeit.getMinutes() Minuten aus dem Objekt uhrzeit der Variable + min zuweisen +setTimeout("Funktion",Millisekunden) Funktion nach Millisekunden aufrufen + +Math.random() +\end{verbatim} + diff --git a/programmieren/javascript/javascript.tex b/programmieren/javascript/javascript.tex new file mode 100644 index 0000000..0cfc810 --- /dev/null +++ b/programmieren/javascript/javascript.tex @@ -0,0 +1,47 @@ +% master: javascript.tex +% JavaScript v0.1 +% 2011-06-08 (Rx) + +\chapter{JavaScript} + +\section{Einbindung von JavaScript} +%---------------------------------- +\input{programmieren/javascript/einbindung_in_den_head} +\input{programmieren/javascript/einbindung_in_den_body} +\input{programmieren/javascript/ausfuehren_bei_bestimmten_aktionen} + +\section{Variablen} +%------------------ +\input{programmieren/javascript/variablen} + +\section{Objekte} +%-------------------------- +\input{programmieren/javascript/standardobjekte} +\input{programmieren/javascript/string_objekt} +\input{programmieren/javascript/eigene_objekte} +\input{programmieren/javascript/arrays} + +\section{Mathematische Operationen} +%---------------------------------- +\input{programmieren/javascript/mathematische_operationen} + +\section{Bedingte Ausführung} +%---------------------------- +\input{programmieren/javascript/bedingte_ausfuehrung} + +\section{Schleifen} +%------------------ +\input{programmieren/javascript/schleifen} + +\section{Event-Handler} +%---------------------- +\input{programmieren/javascript/event_handler} + +\section{Funktionen} +%------------------- +\input{programmieren/javascript/funktionen} + +\section{Reservierte Wörter} +%--------------------------- +\input{programmieren/javascript/reservierte_woerter} + diff --git a/programmieren/javascript/mathematische_operationen.tex b/programmieren/javascript/mathematische_operationen.tex new file mode 100644 index 0000000..5bb213b --- /dev/null +++ b/programmieren/javascript/mathematische_operationen.tex @@ -0,0 +1,17 @@ +% master: mathematische_operationen.tex +% Mathematische Operationen v0.1 +% 2011-06-08 (Rx) + +%\subsection{Mathematische Operationen} +%------------------------------------- + +\begin{verbatim} +c = a + b Addition +a++ ; a = a + 1 +c = a - b Subtraktion +a-- ; a = a - 1 +c = a * b Multiplikation +c = a / b Division +a = Math.round(b) Ganzzahlige Rundung +\end{verbatim} + diff --git a/programmieren/javascript/reservierte_woerter.tex b/programmieren/javascript/reservierte_woerter.tex new file mode 100644 index 0000000..e4c8584 --- /dev/null +++ b/programmieren/javascript/reservierte_woerter.tex @@ -0,0 +1,67 @@ +% master: reservierte_woerter.tex +% Reservierte Wörter v0.1 +% 2011-06-08 (Rx) + +%\subsection{Reservierte Wörter} +%------------------------------ + +\begin{verbatim} +abstract +boolean +break +byte +case +catch +char +class +const +continue +debugger +default +delete +else +enum +export +extends +false +final +finally +float +for +function +goto +if +implements +import +in +instanceof +int +interface +long +native +new +null +package +private +protected +public +return +short +static +super +switch +synchronized +this +throw +throws +transient +true +try +typeof +var +void +volatile +while +with +\end{verbatim} + diff --git a/programmieren/javascript/schleifen.tex b/programmieren/javascript/schleifen.tex new file mode 100644 index 0000000..bfcbad2 --- /dev/null +++ b/programmieren/javascript/schleifen.tex @@ -0,0 +1,20 @@ +% master: schleifen.tex +% Schleifen v0.1 +% 2011-06-08 (Rx) + +%\subsection{Schleifen} +%---------------------- + +\begin{verbatim} +for(Ausdruck1;Ausdruck2;Ausdruck3) Ausdruck1 einmal ausführen +{ so lange der Ausdruck2 stimmt, + vorher noch Ausdruck3 + Anweisug-en Anweisung-en +} + +while(Ausdruck) so lange der Ausdruck stimmt, +{ + Anweisung-en Anweisung-en +} +\end{verbatim} + diff --git a/programmieren/javascript/standardobjekte.tex b/programmieren/javascript/standardobjekte.tex new file mode 100644 index 0000000..4ecbdf1 --- /dev/null +++ b/programmieren/javascript/standardobjekte.tex @@ -0,0 +1,71 @@ +% master: standardobjekte.tex +% Standardobjekte v0.1 +% 2011-06-08 (Rx) + +\subsection{Standardobjekte} +%--------------------------- + +\begin{verbatim} +document.write("Hallo") Hallo auf der Seite ausgeben +document.writeln("Hallo") Hallo auf der Seite mit Zeilenumruch + ausgeben +document.close() Schreiben schließen + +document.bgColor=("ffffff") Hintergrunffarbe +document.fgColor=("000000") Fordergrundfarbe +document.linkColor=("00ff00") Neuer Link +document.vlinkColor=("ffff00") Besuchter Link +document.alinkColor=("ff0000") Aktiver Link + +document.referrer URL von der aufgerufen wurde +document.location URL der Datei selber +document.title Titel der Seite + +document.Name.src="bild2.gif" um auf + das Bild zuzugreifen + +document.forms[0].Name.value Formular 1(0); aktueller Text im + Eingabefeld auslesen oder überschreiben +document.forms[0].Name.defaultValue Defaultwert auslesen oder überschreiben +document.forms[0].Name.select() Text im Eingabefeld makieren +document.forms[0].Name.focus() Cursor in das Eingabefeld setzen + +document.forms[0].Name[0].checked Radio-Checkbuttons liest oder schreibt, + ob ein Button ausgewählt ist +document.forms[0].Name[0].defaultChecked + Voreinstellung eines Button lesen oder + schreiben + nicht markiert markiert + 0 1 + false true + +document.forms[0].Name.options[0].selectedIndex + Auswahlliste auslesen oder schreiben +document.forms[0].Name.options[0].value Wert auslesen oder schreiben + +parent.frames[0].location.href= Frameinhalt ändern 0 -> Frame 1 +"frame.htm" +parent. verzweigt in den nächsthöheren Frame +top. verzweigt in den höchsten Frame im + Browser +frames[n] verzweigt auf die nächstniedrigere Stufe + in den Frame mit dem Index n + +window.status=("Hallo") Hallo in der Statusleiste ausgeben + +myWindow=window.open("Dateiname","Fenstername","Eigenschaften") + Öffnet ein neues Fenster +Eigenschaften: width=(Pixel) gibt die Breite an + height=(Pixel) gibt die Höhe an + resizable=yes/no größe des Fensters veränderbar ? + menubar=yes/no Menüleiste vorhanden ? + toolbar=yes/no Buttonleiste vorhanden ? + location=yes/no Adresszeile vorhanden ? + status=yes/no Statuszeile vorhanden ? + scrollbars=yes/no Bildlaufleiste vorhanden ? + dependent=yes/no Vom aktuellen Fenster abhängig ? + +myWindow.close() Schließt das neue Fenster +myWindow.closed Zugriff auf den Fensterzustand +\end{verbatim} + diff --git a/programmieren/javascript/string_objekt.tex b/programmieren/javascript/string_objekt.tex new file mode 100644 index 0000000..b098183 --- /dev/null +++ b/programmieren/javascript/string_objekt.tex @@ -0,0 +1,14 @@ +% master: string_objekt.tex +% String-Objekt v0.1 +% 2011-06-08 (Rx) + +\subsection{String-Objekt} +%------------------------- + +\begin{verbatim} +String.length Anzahl der Zeichen des Strings +String.substring(Anfang,Ende) Gibt den Anfang bis Ende des Strings zurück +String.toLowerCase Wandelt alle Buchstaben in Kleinbuchstaben +String.toUpperCase Wandelt alle Buchstaben in Großbuchstaben +\end{verbatim} + diff --git a/programmieren/javascript/variablen.tex b/programmieren/javascript/variablen.tex new file mode 100644 index 0000000..f7f664c --- /dev/null +++ b/programmieren/javascript/variablen.tex @@ -0,0 +1,20 @@ +% master: variablen.tex +% Variablen v0.1 +% 2011-06-08 (Rx) + +%\subsection{Variablen} +%---------------------- + +\begin{verbatim} +var GlobaleVariable Globale Variable deklarieren +function() { + var LokaleVariable Lokale Variable deklarieren +} + +var variable Variable deklarieren +variable = "Wert" Wert zuweisen +var zahl=9 Variable deklarieren und Wert zuweisen + ++ Verketten +\end{verbatim} + diff --git a/programmieren/perl/perl.tex b/programmieren/perl/perl.tex new file mode 100644 index 0000000..843d323 --- /dev/null +++ b/programmieren/perl/perl.tex @@ -0,0 +1,13 @@ +% master: perl.tex +% Perl v0.2 +% 2011-05-27 (Rx) + +\chapter{Perl} + +%\section{Perl} +%------------- + +\begin{verbatim} +perl -v überprüfen ob Perl installiert ist +\end{verbatim} + diff --git a/programmieren/programmieren.tex b/programmieren/programmieren.tex new file mode 100644 index 0000000..029e858 --- /dev/null +++ b/programmieren/programmieren.tex @@ -0,0 +1,13 @@ +% master: programmieren.tex +% Programmieren v0.7 +% 2017-01-09 (Rx) + +\part{Programmieren} +\input{programmieren/bash/bash} +\input{programmieren/git/git} +\input{programmieren/c/c} +\input{programmieren/tcltk/tcltk} +\input{programmieren/perl/perl} +\input{programmieren/cgi_perl/cgi_perl} +\input{programmieren/java/java} +\input{programmieren/javascript/javascript} diff --git a/programmieren/tcltk/tcltk.tex b/programmieren/tcltk/tcltk.tex new file mode 100644 index 0000000..b02b0f3 --- /dev/null +++ b/programmieren/tcltk/tcltk.tex @@ -0,0 +1,42 @@ +% master: tcltk.tex +% Tcl/Tk v0.3 +% 2011-05-27 (Rx) + +\chapter{Tcl/Tk} + +%\section{Tcl/Tk} +%--------------- + +\begin{verbatim} +wish startet den Tcl/Tk-Interpeter +exit beendet den Tcl/Tk-Interpeter + +wish Programm.tcl startet das Programm.tcl + +button .name Option/en Knopf definieren Optionen: + -text "Aufschrift" Knopf-Aufschrift + -text [Befehl] Knopf-Aufschrift vom Befehl + -command {Befehl} Knopf-Befehl + Befehl: z.B. exec ls oder exec xterm -e vi & + -relief flat Knopf flach + -relief raised Knopf erhoben + -relief sunken Knopf eingedrückt + -relief ridge Knopf Band erhoben + -relief groove Knopf Band eingedrückt + -padx Pixelzahl Abstand zum Rand in x-Richtung + -pady Pixelzahl Abstand zum Rand in y-Richtung + -image [ image create photo -file Bildname ] + Knopf mit gif, ppm oder pgm + -foreground Farbe Schriftfarbe "#rgb"->"#ff0000" oder red + -fg Farbe Abkürzung für -foreground Farbe + -background Farbe Knopffarbe + -bg Farbe Abkürzung für -background Farbe + -width Pixelbreite Knopfbreite + -height Pixelhöhe Knopfhöhe + -font Zeichensatz Schrift für den Knopf + +pack .name Option/en Knopf anzeigen Option: + -fill x Knopf an die Fensterbreite anpassen + -expand true Knopf im großen Fenster aufteilen +\end{verbatim} + diff --git a/vorwort/vorwort.tex b/vorwort/vorwort.tex new file mode 100644 index 0000000..987efb3 --- /dev/null +++ b/vorwort/vorwort.tex @@ -0,0 +1,9 @@ +% master: vorwort.tex +% Befehle v0.1 +% 2011-05-31 (Rx) + +\chapter{Vorwort} +%---------------- + +Habe versucht alles so kurz wie möglich aber dennoch ausführlich zu Beschreiben +und wie immer aus verschiedenen Anleitugen abgeschrieben ;-)

{(olc`Q-O&T#L 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 Mib_&R3i1CM0MYx~TL1t6 literal 0 HcmV?d00001 diff --git a/linux.ps b/linux.ps new file mode 100644 index 0000000..8e4b6c6 --- /dev/null +++ b/linux.ps @@ -0,0 +1,26074 @@ +%!PS-Adobe-2.0 +%%Creator: dvips(k) 2023.1 (TeX Live 2023) Copyright 2023 Radical Eye Software +%%Title: linux.dvi +%%CreationDate: Sat Feb 15 14:29:14 2025 +%%Pages: 164 +%%PageOrder: Ascend +%%BoundingBox: 0 0 596 842 +%%DocumentFonts: SFSX2074 SFRM1440 SFRM1000 SFSX1000 SFSX1200 SFSL1000 +%%+ SFRM0700 SFSX2488 SFSX1440 SFTT1000 SFBX1000 +%%DocumentPaperSizes: a4 +%%EndComments +%DVIPSWebPage: (www.radicaleye.com) +%DVIPSCommandLine: D:\msys64\ucrt64\bin\dvips.exe linux.dvi +%DVIPSParameters: dpi=600 +%DVIPSSource: TeX output 2025.02.15:1529 +%%BeginProcSet: tex.pro 0 0 +%! +/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S +N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72 +mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0 +0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{ +landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize +mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[ +matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round +exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{ +statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0] +N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin +/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array +/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2 +array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N +df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A +definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get +}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub} +B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr +1 add N}if}B/CharBuilder{save 3 1 roll S A/base get 2 index get S +/BitMaps get S get/Cd X pop/ctr 0 N Cdx 0 Cx Cy Ch sub Cx Cw add Cy +setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx sub Cy .1 sub]{Ci}imagemask +restore}B/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn +/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put +}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{ +bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A +mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{ +SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{ +userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X +1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4 +index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N +/dir 0 def/dyy{/dir 0 def}B/dyt{/dir 1 def}B/dty{/dir 2 def}B/dtt{/dir 3 +def}B/p{dir 2 eq{-90 rotate show 90 rotate}{dir 3 eq{-90 rotate show 90 +rotate}{show}ifelse}ifelse}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 +N/Ry 0 N/V{}B/RV/v{/Ry X/Rx X V}B statusdict begin/product where{pop +false[(Display)(NeXT)(LaserWriter 16/600)]{A length product length le{A +length product exch 0 exch getinterval eq{pop true exit}if}{pop}ifelse} +forall}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{ +BDot}imagemask grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat +{BDot}imagemask grestore}}ifelse B/QV{gsave newpath transform round exch +round exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 +rlineto fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B +/M{S p delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M} +B/g{0 M}B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p +-3 w}B/n{p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{ +0 S rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end + +%%EndProcSet +%%BeginProcSet: l3backend-dvips.pro 0 0 +%% +%% This is file `l3backend-dvips.pro', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% l3backend-header.dtx (with options: `header,dvips') +%% +%% Copyright (C) 2019-2023 The LaTeX Project +%% +%% It may be distributed and/or modified under the conditions of +%% the LaTeX Project Public License (LPPL), either version 1.3c of +%% this license or (at your option) any later version. The latest +%% version of this license is in the file: +%% +%% https://www.latex-project.org/lppl.txt +%% +%% This file is part of the "l3backend bundle" (The Work in LPPL) +%% and all files in that bundle must be distributed together. +%% +%% File: l3backend-header.dtx +/color.sc { } def +TeXDict begin +/TeXcolorseparation { setcolor } def +end +true setglobal +/pdf.globaldict 4 dict def +false setglobal +/pdf.cvs { 65534 string cvs } def +/pdf.dvi.pt { 72.27 mul Resolution div } def +/pdf.pt.dvi { 72.27 div Resolution mul } def +/pdf.rect.ht { dup 1 get neg exch 3 get add } def +/pdf.linkmargin { 1 pdf.pt.dvi } def +/pdf.linkdp.pad { 0 } def +/pdf.linkht.pad { 0 } def +/pdf.rect + { /Rect [ pdf.llx pdf.lly pdf.urx pdf.ury ] } def +/pdf.save.ll + { + currentpoint + /pdf.lly exch def + /pdf.llx exch def + } + def +/pdf.save.ur + { + currentpoint + /pdf.ury exch def + /pdf.urx exch def + } + def +/pdf.save.linkll + { + currentpoint + pdf.linkmargin add + pdf.linkdp.pad add + /pdf.lly exch def + pdf.linkmargin sub + /pdf.llx exch def + } + def +/pdf.save.linkur + { + currentpoint + pdf.linkmargin sub + pdf.linkht.pad sub + /pdf.ury exch def + pdf.linkmargin add + /pdf.urx exch def + } + def +/pdf.dest.anchor + { + currentpoint exch + pdf.dvi.pt 72 add + /pdf.dest.x exch def + pdf.dvi.pt + vsize 72 sub exch sub + /pdf.dest.y exch def + } + def +/pdf.dest.point + { pdf.dest.x pdf.dest.y } def +/pdf.dest2device + { + /pdf.dest.y exch def + /pdf.dest.x exch def + matrix currentmatrix + matrix defaultmatrix + matrix invertmatrix + matrix concatmatrix + cvx exec + /pdf.dev.y exch def + /pdf.dev.x exch def + /pdf.tmpd exch def + /pdf.tmpc exch def + /pdf.tmpb exch def + /pdf.tmpa exch def + pdf.dest.x pdf.tmpa mul + pdf.dest.y pdf.tmpc mul add + pdf.dev.x add + pdf.dest.x pdf.tmpb mul + pdf.dest.y pdf.tmpd mul add + pdf.dev.y add + } + def +/pdf.bordertracking false def +/pdf.bordertracking.begin + { + SDict /pdf.bordertracking true put + SDict /pdf.leftboundary undef + SDict /pdf.rightboundary undef + /a where + { + /a + { + currentpoint pop + SDict /pdf.rightboundary known dup + { + SDict /pdf.rightboundary get 2 index lt + { not } + if + } + if + { pop } + { SDict exch /pdf.rightboundary exch put } + ifelse + moveto + currentpoint pop + SDict /pdf.leftboundary known dup + { + SDict /pdf.leftboundary get 2 index gt + { not } + if + } + if + { pop } + { SDict exch /pdf.leftboundary exch put } + ifelse + } + put + } + if + } + def +/pdf.bordertracking.end + { + /a where { /a { moveto } put } if + /x where { /x { 0 exch rmoveto } put } if + SDict /pdf.leftboundary known + { pdf.outerbox 0 pdf.leftboundary put } + if + SDict /pdf.rightboundary known + { pdf.outerbox 2 pdf.rightboundary put } + if + SDict /pdf.bordertracking false put + } + def + /pdf.bordertracking.endpage +{ + pdf.bordertracking + { + pdf.bordertracking.end + true setglobal + pdf.globaldict + /pdf.brokenlink.rect [ pdf.outerbox aload pop ] put + pdf.globaldict + /pdf.brokenlink.skip pdf.baselineskip put + pdf.globaldict + /pdf.brokenlink.dict + pdf.link.dict pdf.cvs put + false setglobal + mark pdf.link.dict cvx exec /Rect + [ + pdf.llx + pdf.lly + pdf.outerbox 2 get pdf.linkmargin add + currentpoint exch pop + pdf.outerbox pdf.rect.ht sub pdf.linkmargin sub + ] + /ANN pdf.pdfmark + } + if +} + def +/pdf.bordertracking.continue + { + /pdf.link.dict pdf.globaldict + /pdf.brokenlink.dict get def + /pdf.outerbox pdf.globaldict + /pdf.brokenlink.rect get def + /pdf.baselineskip pdf.globaldict + /pdf.brokenlink.skip get def + pdf.globaldict dup dup + /pdf.brokenlink.dict undef + /pdf.brokenlink.skip undef + /pdf.brokenlink.rect undef + currentpoint + /pdf.originy exch def + /pdf.originx exch def + /a where + { + /a + { + moveto + SDict + begin + currentpoint pdf.originy ne exch + pdf.originx ne or + { + pdf.save.linkll + /pdf.lly + pdf.lly pdf.outerbox 1 get sub def + pdf.bordertracking.begin + } + if + end + } + put + } + if + /x where + { + /x + { + 0 exch rmoveto + SDict + begin + currentpoint + pdf.originy ne exch pdf.originx ne or + { + pdf.save.linkll + /pdf.lly + pdf.lly pdf.outerbox 1 get sub def + pdf.bordertracking.begin + } + if + end + } + put + } + if + } + def +/pdf.breaklink + { + pop + counttomark 2 mod 0 eq + { + counttomark /pdf.count exch def + { + pdf.count 0 eq { exit } if + counttomark 2 roll + 1 index /Rect eq + { + dup 4 array copy + dup dup + 1 get + pdf.outerbox pdf.rect.ht + pdf.linkmargin 2 mul add sub + 3 exch put + dup + pdf.outerbox 2 get + pdf.linkmargin add + 2 exch put + dup dup + 3 get + pdf.outerbox pdf.rect.ht + pdf.linkmargin 2 mul add add + 1 exch put + /pdf.currentrect exch def + pdf.breaklink.write + { + pdf.currentrect + dup + pdf.outerbox 0 get + pdf.linkmargin sub + 0 exch put + dup + pdf.outerbox 2 get + pdf.linkmargin add + 2 exch put + dup dup + 1 get + pdf.baselineskip add + 1 exch put + dup dup + 3 get + pdf.baselineskip add + 3 exch put + /pdf.currentrect exch def + pdf.breaklink.write + } + 1 index 3 get + pdf.linkmargin 2 mul add + pdf.outerbox pdf.rect.ht add + 2 index 1 get sub + pdf.baselineskip div round cvi 1 sub + exch + repeat + pdf.currentrect + dup + pdf.outerbox 0 get + pdf.linkmargin sub + 0 exch put + dup dup + 1 get + pdf.baselineskip add + 1 exch put + dup dup + 3 get + pdf.baselineskip add + 3 exch put + dup 2 index 2 get 2 exch put + /pdf.currentrect exch def + pdf.breaklink.write + SDict /pdf.pdfmark.good false put + exit + } + { pdf.count 2 sub /pdf.count exch def } + ifelse + } + loop + } + if + /ANN +} + def +/pdf.breaklink.write + { + counttomark 1 sub + index /_objdef eq + { + counttomark -2 roll + dup wcheck + { + readonly + counttomark 2 roll + } + { pop pop } + ifelse + } + if + counttomark 1 add copy + pop pdf.currentrect + /ANN pdfmark + } + def +/pdf.pdfmark + { + SDict /pdf.pdfmark.good true put + dup /ANN eq + { + pdf.pdfmark.store + pdf.pdfmark.dict + begin + Subtype /Link eq + currentdict /Rect known and + SDict /pdf.outerbox known and + SDict /pdf.baselineskip known and + { + Rect 3 get + pdf.linkmargin 2 mul add + pdf.outerbox pdf.rect.ht add + Rect 1 get sub + pdf.baselineskip div round cvi 0 gt + { pdf.breaklink } + if + } + if + end + SDict /pdf.outerbox undef + SDict /pdf.baselineskip undef + currentdict /pdf.pdfmark.dict undef + } + if + pdf.pdfmark.good + { pdfmark } + { cleartomark } + ifelse + } + def +/pdf.pdfmark.store + { + /pdf.pdfmark.dict 65534 dict def + counttomark 1 add copy + pop + { + dup mark eq + { + pop + exit + } + { + pdf.pdfmark.dict + begin def end + } + ifelse + } + loop +} + def +%% +%% +%% End of file `l3backend-dvips.pro'. + +%%EndProcSet +%%BeginProcSet: cm-super-t1.enc 0 0 +% This file is generated from `T1uni.map' and `glyphlist.txt', `gl-other.txt' +% +% LIGKERN hyphen hyphen =: endash ; endash hyphen =: emdash ; +% LIGKERN quoteleft quoteleft =: quotedblleft ; +% LIGKERN quoteright quoteright =: quotedblright ; +% LIGKERN comma comma =: quotedblbase ; less less =: guillemotleft ; +% LIGKERN greater greater =: guillemotright ; +% LIGKERN f f =: ff ; f i =: fi ; f l =: fl ; ff i =: ffi ; ff l =: ffl ; +% +% LIGKERN space {} * ; * {} space ; zero {} * ; * {} zero ; +% LIGKERN one {} * ; * {} one ; two {} * ; * {} two ; +% LIGKERN three {} * ; * {} three ; four {} * ; * {} four ; +% LIGKERN five {} * ; * {} five ; six {} * ; * {} six ; +% LIGKERN seven {} * ; * {} seven ; eight {} * ; * {} eight ; +% LIGKERN nine {} * ; * {} nine ; +% +/T1Encoding [ +% 0x00 +/grave +/acute +/circumflex +/tilde +/dieresis +/hungarumlaut +/ring +/caron +/breve +/macron +/dotaccent +/cedilla +/ogonek +/quotesinglbase +/guilsinglleft +/guilsinglright +% 0x10 +/quotedblleft +/quotedblright +/quotedblbase +/guillemotleft +/guillemotright +/endash +/emdash +/afii61664 +/perthousandzero % PERTHOUSAND ZERO +/dotlessi +/dotlessj +/ff +/fi +/fl +/ffi +/ffl +% 0x20 +/uni2423 +/exclam +/quotedbl +/numbersign +/dollar +/percent +/ampersand +/quoteright +/parenleft +/parenright +/asterisk +/plus +/comma +/hyphen +/period +/slash +% 0x30 +/zero +/one +/two +/three +/four +/five +/six +/seven +/eight +/nine +/colon +/semicolon +/less +/equal +/greater +/question +% 0x40 +/at +/A +/B +/C +/D +/E +/F +/G +/H +/I +/J +/K +/L +/M +/N +/O +% 0x50 +/P +/Q +/R +/S +/T +/U +/V +/W +/X +/Y +/Z +/bracketleft +/backslash +/bracketright +/asciicircum +/underscore +% 0x60 +/quoteleft +/a +/b +/c +/d +/e +/f +/g +/h +/i +/j +/k +/l +/m +/n +/o +% 0x70 +/p +/q +/r +/s +/t +/u +/v +/w +/x +/y +/z +/braceleft +/bar +/braceright +/asciitilde +/hyphen.alt % HANGING HYPHEN +% 0x80 +/Abreve +/Aogonek +/Cacute +/Ccaron +/Dcaron +/Ecaron +/Eogonek +/Gbreve +/Lacute +/Lcaron +/Lslash +/Nacute +/Ncaron +/Eng +/Ohungarumlaut +/Racute +% 0x90 +/Rcaron +/Sacute +/Scaron +/Scedilla +/Tcaron +/Tcommaaccent +/Uhungarumlaut +/Uring +/Ydieresis +/Zacute +/Zcaron +/Zdotaccent +/IJ +/Idotaccent +/dcroat +/section +% 0xA0 +/abreve +/aogonek +/cacute +/ccaron +/dcaron +/ecaron +/eogonek +/gbreve +/lacute +/lcaron +/lslash +/nacute +/ncaron +/eng +/ohungarumlaut +/racute +% 0xB0 +/rcaron +/sacute +/scaron +/scedilla +/tcaron +/tcommaaccent +/uhungarumlaut +/uring +/ydieresis +/zacute +/zcaron +/zdotaccent +/ij +/exclamdown +/questiondown +/sterling +% 0xC0 +/Agrave +/Aacute +/Acircumflex +/Atilde +/Adieresis +/Aring +/AE +/Ccedilla +/Egrave +/Eacute +/Ecircumflex +/Edieresis +/Igrave +/Iacute +/Icircumflex +/Idieresis +% 0xD0 +/Eth +/Ntilde +/Ograve +/Oacute +/Ocircumflex +/Otilde +/Odieresis +/OE +/Oslash +/Ugrave +/Uacute +/Ucircumflex +/Udieresis +/Yacute +/Thorn +/SS % Germandbls +% 0xE0 +/agrave +/aacute +/acircumflex +/atilde +/adieresis +/aring +/ae +/ccedilla +/egrave +/eacute +/ecircumflex +/edieresis +/igrave +/iacute +/icircumflex +/idieresis +% 0xF0 +/eth +/ntilde +/ograve +/oacute +/ocircumflex +/otilde +/odieresis +/oe +/oslash +/ugrave +/uacute +/ucircumflex +/udieresis +/yacute +/thorn +/germandbls % or /germandbls.alt +] def + +%%EndProcSet +%%BeginProcSet: cm-super-ts1.enc 0 0 +% This file is generated from `TS1uni.map' and `glyphlist.txt', `gl-other.txt' +/TS1Encoding [ +% 0x00 +/Grave +/Acute +/Circumflex % ? +/Tilde % ? +/Dieresis +/Hungarumlaut +/Ring % ? +/Caron +/Breve % ? +/Macron +/Dotaccent % ? +/cedilla +/ogonek +/quotesinglbase.ts1 +/.notdef +/.notdef +% 0x10 +/.notdef +/.notdef +/quotedblbase.ts1 +/.notdef +/.notdef +/twelveudash % ? +/threequartersemdash +/afii61664.cap % ? +/arrowleft +/arrowright +/tieaccentlowercase % ? +/tieaccentcapital % ? +/tieaccentlowercase.new % ? +/tieaccentcapital.new % ? +/.notdef +/afii61664.asc % ? +% 0x20 +/uni2422 +/.notdef +/.notdef +/.notdef +/dollar +/.notdef +/.notdef +/quotesingle +/.notdef +/.notdef +/asteriskmath +/.notdef +/comma +/hyphendbl % ? +/period +/fraction +% 0x30 +/zerooldstyle +/oneoldstyle +/twooldstyle +/threeoldstyle +/fouroldstyle +/fiveoldstyle +/sixoldstyle +/sevenoldstyle +/eightoldstyle +/nineoldstyle +/.notdef +/.notdef +/angleleft +/minus +/angleright +/.notdef +% 0x40 +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/uni2127 +/.notdef +/circle +% 0x50 +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/Omega +/.notdef +/.notdef +/.notdef +/uni301A +/.notdef +/uni301B +/arrowup +/arrowdown +% 0x60 +/grave.ts1 +/.notdef +/born % ? +/divorced % ? +/died % ? +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/leaf % ? +/married % ? +/musicalnote +/.notdef +% 0x70 +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/tildelow % ? +/hyphendbl.alt % ? +% 0x80 +/breve.ts1 +/caron.ts1 +/hungarumlaut.ts1 +/dblgrave.ts1 +/dagger +/daggerdbl +/uni2016 +/perthousand +/bullet +/uni2103 +/dollaroldstyle +/centoldstyle +/florin +/colonmonetary +/uni20A9 +/uni20A6 +% 0x90 +/guarani % ? +/peso % ? +/lira +/recipe % ? +/uni203D +/gnaborretni % ? +/dong +/trademark +/uni2031 +/paragraph.alt % ? +/uni0E3F +/afii61352 +/discount % ? +/estimated +/openbullet +/uni2120 +% 0xA0 +/uni2045 +/uni2046 +/cent +/sterling +/currency +/yen +/brokenbar +/section +/dieresis.ts1 +/copyright +/ordfeminine +/copyleft % ? +/logicalnot +/uni2117 +/registered +/macron.ts1 +% 0xB0 +/degree +/plusminus +/twosuperior +/threesuperior +/acute.ts1 +/mu +/paragraph +/periodcentered +/uni203B +/onesuperior +/ordmasculine +/radical +/onequarter +/onehalf +/threequarters +/Euro % or /Euro.alt +% 0xC0 +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +% 0xD0 +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/multiply +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +% 0xE0 +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +% 0xF0 +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/divide +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +] def + +%%EndProcSet +%%BeginProcSet: texps.pro 0 0 +%! +TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2 +index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll +exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]FontType 0 +ne{/Metrics exch def dict begin Encoding{exch dup type/integertype ne{ +pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get +div def}ifelse}forall Metrics/Metrics currentdict end def}{{1 index type +/nametype eq{exit}if exch pop}loop}ifelse[2 index currentdict end +definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{dup +sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 roll +mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def dup[ +exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}if} +forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}def +end + +%%EndProcSet +%%BeginProcSet: special.pro 0 0 +%! +TeXDict begin/SDict 200 dict N SDict begin/@SpecialDefaults{/hs 612 N +/vs 792 N/ho 0 N/vo 0 N/hsc 1 N/vsc 1 N/ang 0 N/CLIP 0 N/rwiSeen false N +/rhiSeen false N/letter{}N/note{}N/a4{}N/legal{}N}B/@scaleunit 100 N +/@hscale{@scaleunit div/hsc X}B/@vscale{@scaleunit div/vsc X}B/@hsize{ +/hs X/CLIP 1 N}B/@vsize{/vs X/CLIP 1 N}B/@clip{/CLIP 2 N}B/@hoffset{/ho +X}B/@voffset{/vo X}B/@angle{/ang X}B/@rwi{10 div/rwi X/rwiSeen true N}B +/@rhi{10 div/rhi X/rhiSeen true N}B/@llx{/llx X}B/@lly{/lly X}B/@urx{ +/urx X}B/@ury{/ury X}B/magscale true def end/@MacSetUp{userdict/md known +{userdict/md get type/dicttype eq{userdict begin md length 10 add md +maxlength ge{/md md dup length 20 add dict copy def}if end md begin +/letter{}N/note{}N/legal{}N/od{txpose 1 0 mtx defaultmatrix dtransform S +atan/pa X newpath clippath mark{transform{itransform moveto}}{transform{ +itransform lineto}}{6 -2 roll transform 6 -2 roll transform 6 -2 roll +transform{itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll +curveto}}{{closepath}}pathforall newpath counttomark array astore/gc xdf +pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack} +if}N/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1 +-1 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3 +get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip +yflip not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub +neg 0 TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{ +noflips{TR pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop +90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get +neg sub neg TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr +1 get neg sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr +2 get ppr 0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4 +-1 roll add 2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S +TR}if}N/cp{pop pop showpage pm restore}N end}if}if}N/normalscale{ +Resolution 72 div VResolution 72 div neg scale magscale{DVImag dup scale +}if 0 setgray}N/@beginspecial{SDict begin/SpecialSave save N gsave +normalscale currentpoint TR @SpecialDefaults count/ocount X/dcount +countdictstack N}N/@setspecial{CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto +0 vs rlineto hs neg 0 rlineto closepath clip}if ho vo TR hsc vsc scale +ang rotate rwiSeen{rwi urx llx sub div rhiSeen{rhi ury lly sub div}{dup} +ifelse scale llx neg lly neg TR}{rhiSeen{rhi ury lly sub div dup scale +llx neg lly neg TR}if}ifelse CLIP 2 eq{newpath llx lly moveto urx lly +lineto urx ury lineto llx ury lineto closepath clip}if/showpage{}N +/erasepage{}N/setpagedevice{pop}N/copypage{}N newpath}N/@endspecial{ +count ocount sub{pop}repeat countdictstack dcount sub{end}repeat +grestore SpecialSave restore end}N/@defspecial{SDict begin}N +/@fedspecial{end}B/li{lineto}B/rl{rlineto}B/rc{rcurveto}B/np{/SaveX +currentpoint/SaveY X N 1 setlinecap newpath}N/st{stroke SaveX SaveY +moveto}N/fil{fill SaveX SaveY moveto}N/ellipse{/endangle X/startangle X +/yrad X/xrad X/savematrix matrix currentmatrix N TR xrad yrad scale 0 0 +1 startangle endangle arc savematrix setmatrix}N end + +%%EndProcSet +TeXDict begin @defspecial + + systemdict /pdfmark known{userdict /?pdfmark systemdict /exec get +put}{userdict /?pdfmark systemdict /pop get put userdict /pdfmark systemdict +/cleartomark get put}ifelse + + /DvipsToPDF{72.27 mul Resolution div} def/PDFToDvips{72.27 div Resolution +mul} def/BPToDvips{72 div Resolution mul}def product (Ghostscript) +search {pop pop pop revision 927 gt}{pop false} ifelse{/BorderArrayPatch{} +def}{/BorderArrayPatch{[exch{dup dup type/integertype eq exch type/realtype +eq or{BPToDvips}if}forall]}def} ifelse /HyperBorder {1 PDFToDvips} +def/H.V {pdf@hoff pdf@voff null} def/H.B {/Rect[pdf@llx pdf@lly pdf@urx +pdf@ury]} def/H.S {currentpoint HyperBorder add /pdf@lly exch def dup +DvipsToPDF 72 add /pdf@hoff exch def HyperBorder sub /pdf@llx exch +def} def/H.L {2 sub dup/HyperBasePt exch def PDFToDvips /HyperBaseDvips +exch def currentpoint HyperBaseDvips sub /pdf@ury exch def/pdf@urx +exch def} def/H.A {H.L currentpoint exch pop vsize 72 sub exch DvipsToPDF +HyperBasePt sub sub /pdf@voff exch def} def/H.R {currentpoint HyperBorder +sub /pdf@ury exch def HyperBorder add /pdf@urx exch def currentpoint +exch pop vsize 72 sub exch DvipsToPDF sub /pdf@voff exch def} def + +@fedspecial end +%%BeginFont: SFBX1000 +%!FontType1-1.0: SFBX1000 0.3 +%%CreationDate: Wed Sep 12 2001 +% Copyright (c) 2001 Vladimir Volovich . +% See the file COPYING (GNU General Public License) for license conditions. +% Converted from METAFONT EC/TC and LH fonts: +% ecbx1000, tcbx1000, labx1000, lbbx1000, lcbx1000, rxbx1000. +11 dict begin +/FontInfo 6 dict dup begin +/version (0.3) def +/FullName (Computer Modern Bold Extended) def +/FamilyName (Computer Modern) def +/ItalicAngle 0 def +/isFixedPitch false def +/Weight (Bold) def +end readonly def +/FontName /SFBX1000 def +/Encoding StandardEncoding def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] def +/FontBBox{-229 -316 1737 939}readonly def +currentdict end +currentfile eexec +D9D66F633B846A97B686A97E45A3D0AA052BD0CE60552BD63101D7CDBEEF5B11 +69C468645FE4ED1AF2541AA0770C1DCF81623DE0ECDF49F2B522618F650CE6CB +CC8C21885DD61AF8A523AA677EAEDDFA51A1F9B1885EEE0456196D634E04EF89 +F17499DAD982502ACC349B9EEAAE4A71A73D1147318C60A8BAC10510DE90D8D3 +F46E47295D27129A5AFE0C65E22BAD10D06885A2EE623FF8E1D90287A083E00C +EF25195F68A2A98170E4875AA1B1ED6A435C02C357D527BF5BAE9F3163F8850F +4267F16F7320BDD6979C2F8C665632114CE1D7FCD000F5FBD3E05848929A6E47 +97361D305E2B3EF0D3289006D6D4A92B4915A07861EFFD2EAD6D0E44D7F2BC50 +0393AB5D4E20487C48DB19B78C49FB68EBB7ECED723428C77D753A22B7D69614 +D9508C82BA58E2D874CC9F68A68F2A40B655CEC8A6308B67DD6ABE39F97FAD75 +03DA383F4C166B7EAF7A3ED4BB7FC5E6B5D2832CD0A6587B17539297FED807CA +ED127D2F0B4D1835845D8E3FA03981EE7410C5EDBF3C000051861E7C98A1CD97 +D8CFEF6B875885BFF5832E8FCD91B4780EBE0E908E59EF5D3FA8CC9D67787EB9 +9FF5335E365F2B9EEE281ACC85039C952D301529C2A7B52B3A174115FDBB2268 +D98A22B25EAAC4F57C64C0C1DBC34B0FE96C1D9DAC2B7FF6749250D8502C5C28 +3B8CE334C9E727CD19A3AB4FF6D3339E7E9C3F43BAD7A78D4C7113CD45530995 +E6A70147ED0D3BE8A22B346818368B4AA3AB2ECEBDF089D4134F08780B4CE5F1 +D96EA7AF6FC84DD5FDF8C9EB273059C87A568B0E6B0D41B1745D6DB55C621F11 +5E7797466B74ECA431199CB2C9D974DB020DE52EB9C39B2CE83FEEE98D229076 +8C6B6237B150DFDDCB233858DB62479384302233B6472BCE3E34BAAE8F821E9C +4B6ACF55A88DCA7FB297973FA132DA117F14408B47E95061999AA8D57F86006A +0F217337C5B80213B35036A05E5B863C4B3F93FE87AC239CD98BCCE78BD7C817 +71159A28849466B7E07C570C17ED346CE6AA98AF0EDB06BFB7420354918C26BA +CAB4F96E9B9C4E5FE9866D50071DAFABC91AF2B593263B06EF6385AF5C270462 +49FF831571117CCD7926BA32815E16874B0E2D3A3D7887C8F9F74EC967F32757 +57AD4D7A72049C663EDF22096DA11F805E841EA116064442141A4C4829C02666 +A5665B7B097C8EDD95A5FBD0D23202142E52C14B3245C688EFD4D00FE28C4BD4 +53EA9222492F7617EAEBB60B94C6AF35DAA2888C53D6247D7A1A68D9C9740033 +956BE1DBFB4DB60AF26F245576F263D44A4542676EA145D5DF350769E293EFD4 +C57F4DE9D9EDD0C81B64C843F7F61C412DD78E4013384D3DA97856B78F2500FB +EA58C37126EFEA3434E7DA1138EBA92FE0C8C865BF24C35C73E266483C66E080 +B81C4D136EEF2B51E6840441AC698C892FF221AF73EEEF0D2F421758C0A49C28 +5C168DF1F6355DBCCFF4DD34204F7E609092B06884E084BDDE7EDBB646CB6B5C +6E85EAE6A39A649CFCBB35F1FB312657E2BD52AB35B72F30CF7096D1ABE76480 +E25CD23F66DEA111589CF73FF9D12D9D37137311D23479A35818415B6807AAB6 +8211037F4F2C1768DE568BA23DA148F1C2A62E72A0CDF05C62FA4A936307F490 +02F8E71FF532481524AE44E882415A8279A8A6BB7C88AE260A1A9EC3BF9850B1 +F5DF3173CE039A9B9DF41E8F4A8FBC0F33D6FCAEA089CD2DF10F7812735A03C6 +2CC3347B3BFE57D69E4A17D06902D0051AD66140461F97C7AEDCB211A759F59A +36F28F6C40CD614F18EB5CD350DB066AD380471D52712B846F6BD4ED67C974DC +17C5108C24B4D83B5F3302677863C484767F184102341ECB3E82079C152B12D5 +0AF4E1B2519FBB2B7795A3F534BB79BE229103559EC5765A12B8BEE16F96CACC +FBE56DFC9DAFD054A066FD8312DD85DEA51F6B8472B15FAAAB37346ABC3F9701 +384B7262E3207884A85FD01AAA407F3E0678C703BA5F08E67DAAC94324D3B14B +EF489478642E3F3B8CEBAA1954000E454840543F4EFD67A22B4CBD389C249A86 +EA1764EAD2D65F03B4F1FBDC5981E013A7629E643DCA18801DADDBB19519EBBB +C38D9856EA271F903D7DAC8682D940369E1D74F535D8F0F5EE3591699142AA46 +84167F7E934AC46E268C7B0C32FBE96169D38F2640A68E4799E30622361470C8 +7225E9724B8E7C4743B0429C01500B01C7229F68E7C55F697AE06D755A3A00A3 +46AB3AEB98D4FEFE2F224F803DA611B3CE40694AE73296A0548B20E742D3EC21 +A464E65B1A3374FD4E55D9BB9088B7277B4729BB449A25D63E933E146C5A181C +0C4119D17C560CD0AED396939FC9E3F3C8E78C6A13CD716D9160BDDDF55F0712 +FEFDB965955A3AC5F7C449DEB7674CFBF8E1C02FEC04C9534EA4C93E5DE59E8B +8118329ADFA510A2F181F50F2DFD29ACF7E235A5D4B210ADBC891E9490903FE7 +0C0C54A61792B270A46C6CD8A15A68E120BB0793D327C91A222334012F989F67 +0CEA6AFF3330B151C5B943261AC39A38778C937980087C603274ABAAFCD95955 +7B57C838629A22823CB0C5496BA5C760B3FDEE138C0213688E636F163B13DFC8 +A210CB04CF3726514865CAC51A0D4A311BCF72882149633DF4B5F5D00215A04F +0BC5A5BCD11F63134889FBF544F4CBE0538F8236C60C596F6C2DCE689B7F03CF +B7C926DDD1139D8A35EF0AD14DF355C3A9DEE55B1B17DBE1B7F832232035CF71 +0DAB7C416541C9150BD9963774565D76A4A20E2FF7D42CA3610F7EF714B0DED8 +8E90FDFE976BA027B72A94B02BE8128D8630107499F345E2AAF565924E3C9020 +983B10203FAA11C1548261F2C84E0320152664DB1F3159B5B1D3F2A539E404AE +E2FFB606325BEF16B1F01F0FDDDDCAB7C11438FF7CAB4DB8AF5DECC6A14DD87D +8DF9ED2BDFE8A4478437A31D1490C53B9A81FDA289217F14F95AA889359C4B7F +90284DF89C04819363F2A2F47ADE59A5228F057192D917E2BBB3858FCC567BE8 +8E2B8501CA1CC8DA7A308B33D6A3C41958B7BF321CA77D2426404A8117A856D6 +229A3438C09E0B928D129FE88F353173506B7869E186B8EAC1C72A0CC352C2F6 +1B59106D35F59E74D464AE942E965742AFFBEA7999822623231EA9F31FE28995 +1443BB660C75E8E5D875C17A110D24D1452DB2F96FD40D8CEFAC25BDD8ADBB70 +DAE524B7ECBCC9EB81E50A2267D8F224042E79BC707725C13B8B2561638A24AA +26840F14CB58B87ECB47D4E266219353AAA14C871A230401234B3278BD81024D +A99E76416E7339222BC8F3050597DDFDD7DDBC7DAF0903167D6A9A21E32A5699 +0745270E021D0773C49196DD8C31CE41EC5FA3939A2F969D2949345DBD2BF827 +2D734B9E3A70F3B6B19FC5CBCDD213E552199CF9EFFE60A923A2E921D80FAE2F +EE189B633BFD84CB2921D461A2637C80EF09C352CAB169C4DB747D16796899F8 +19A7FB751434B17FE63C3AD72C9900BC04C5AC88D56889ADC5947B51C5CECB79 +955D2C14E5507462E0A0A1B035DDE8BACF0DEC60B30A0B74589614C11AB1D3E9 +EF88750C9BB160881B459FF3A535895B925AE0B79688C14175584FF7A1D6A5F6 +26F377CACA8616749D70DEF8FF5B36958EEF8C6777057D96CFB0497AF968B801 +465E27FF42A412CD417BCBCA60D2AFA3E293365261CEDE87AA82D152B394325E +4B961D3D3A3B0130EC2ED6E91A17370051FEA4082EB3348AFEBA93505EB3806B +199D1BD512A070197B92A583F92792C9F7980D866E46A77149FB8C0AA830E7B9 +3E7E6432C4420B870792BCE5BDF0FBE0A3C0EB6E07B6A326B4A665E0EE1FB1F6 +7732C26CAE4FC99030B6830B81793E9D328A9F0FD18863E8D30D7CCB6C785B49 +091D16821C97EDDAF556BD6B97DB43DACF1B88468986BA718FBC25D1459F04EA +286BDE84468B0A8F0AA8A1B609F032B4D0C796C291702B6EFBC07680D1A9AD90 +07EB369B2A6B80AB337112A758917F06EE76CFF1063E50BE9FA2FB84BEEADCA2 +AE4F1A1BCEB919F48A57654E54C86B662485354DA8E555FDC1F948BEFEB40895 +345FAEA6B669ACE727C3BED1A6A1552D6604D61C0F73B6994CF761789549DDB3 +E6A84840206504E661BE6D41EC3510E6735180291E72DE255479D8E1AA7A59F5 +DEE6C72D9CA6F9C7E02536219A4504B13B5CC9877459E17F98A36A628FFCB7CD +A2E20B05DD71CF004087F913EE0CF4B5284A10A66D9E69D16EB9366483B8C867 +AF2D6B548B1C8CF9FAB8BD3B084EFAF64BA95B4BE0F00C4D63D49BC74DDA6BF4 +47584457030A7ECFAE2312D2AE59880B6F30506AE63643CA48AF904C2B7577E9 +12647E74A2438275975373C64D9ACBDEC7DDDCE3D915F0FF2F8A192AF1FCEA7C +2E384AD62F4436EC6A4626970849E9DD01E74BF07F29506FBE9E2404FA2BC108 +F38C5251EB0D329E38BB4354290EFBA46127656070359652536BC114DA2B1971 +84911869F859DD5D76F54578660E86C7C6622A8F4B89A4F193D6CB6FECC60EA7 +ABAB892A6E645EEC2019A802A795C607AD737EC11E1102125E50ED736D9EE1FE +C5369DE08A1DD6CAF629346C4086912C0CDF69884FD1C519E63BAB119D174083 +F0604636DB8D805A175BE0CDDDD8AE32B1AF866B2A3E1151CBB4AE529A37FA8C +1A43E63EDAFB7F07D1E393449D509579650E646A0650D1FB8C48524027C2C470 +C9706434B122F8D1D4994219F7E089DB937DDD11D60912E4AF5F49BBAE81C860 +0B84C8FB7257630404DDC21DC75F7066D54A6DF72141640FD378C1A9E505542E +D950A6D66AE823D871F573A06508CD3DAE99183A214CFA004F89A55B08F38F54 +489F9B8F29AF2CE3B416648CB164C1D59C82FD020879779C83CF9529ABE6FBD9 +44A86907AD0CC3D09CA0A2B443672CE1CF12416F2ECCE78AEE68E5C4E64CB9AF +AE1BDC07940F57F6ADE8678E6952E324213C13927CF20515ED111EB98D6953FF +D8CFE1C85969BE5AC5245A0270CD53E72372D08F5F4D7616505CB27F53885AE2 +C67A85AD9A9D3FE324A15B6CA922EA3648C55D7A0C894E432013030605F7BED3 +4BF377544FD581C7773D3785F01B878C50F06A64F7524D5EF232464EBF592354 +F37F2F1460A76422CD0FEA03DD5DD3E1BAF1A82429A2F79BD6AE2858ECEE53D0 +18076D984CF6E0EB68D9F9FB686915B7D6CE94A091A27E7846225571201C4BB0 +531D4F530689167B7DCE26C4E57448972797AB4538300093A2A349951A101A66 +167148E248778F395B9FCF93583F7495F3C14F12BD4707FAB8572443E109AFDC +5D6BFEA0C061FAA09BB6C117FAD1A368EBFC1D1853D0E4AD65927F0BEA4F9E6A +F05D219AE3C52E5849E0FAEAD1708AEE4A5EDE831BD5061B48A05336B06CD0E3 +0163CBDDA91A4DFBB8CA5ABCA3387C78E203E7B34023EB633092316912DBB68E +47AC50519F10097F93C13CF007E8425204F3689196CB3E238C3B225CAFC0484B +CA6BFC0A34A7F8A58BBFD92AA5A14E7CB52FC8FAA962335FBE5462A516F74E79 +A2396E4C040D7FFF695DCE0CC5BBFD3A2CD8541C74E5286909556C240E5413D1 +53F57BA02C839AB44CD8455282DAE1FDC15A43243CD258A3016BF42CBF8CAAFD +F066524931EE8B4B643B809D60FB5CBA8A3852BBAC8DB4DA56D55EED5FBBF274 +FD4D9F7F5ADA8EEC22C2ECBB71191D7EC26121DFDF26942ED277F7AB2E72FAB1 +D07C7C2AAAB9D14B8020B9891044169A6047973DB0C63ABDE3F9E88F8E503BD8 +B3BF020BEE0FF9F9F09F607A207B8E2CF3F01D4A9F008088CF31AF7FF1EC792C +2392B23C81B8AEADE7A834103F9E3DC40386FD630C8FE218D3D8F5EEE6510210 +CD76A8825569DD5805E27E9ED87FE65C7F1BF8FE2E9CC24307BB472A26E09A88 +988B9240BAE845D02F68807109F38D7E0D59F2A114F7BFA8A7789F12233BD5E7 +43EE91D52F97832A211DC8C3C5AE86A4D3FBCB6A8C95F5BC442DE263AF082589 +283FE0E8FBA39624091AFF61C4566B1037798938BD3FAD9A644A43B19BFB5C07 +D6DF8B7B270BF719BAE8A38B7880373F04EC2C85E89347297578194EC04225E4 +D559D34F0656643C77D04F4BCB9D5A84F4DC5981E013A7629E643DCA18801DAB +74765708DDD28131006212EDE6D70A3C3C4DB5CF6B7A6C97B78A390B3A9908AA +71E7317988141158140A98E34B39934FC130D53192DDFF0E73C16B94578EC769 +DA4EDD9CA56300FA86E8A76DD009F4C8B70A8C5D57C4B364F43A8F323499CC71 +D32CE6183A4F1284AC8D02FC2268D05999DD688729F3F1A4756F41E46A4617A4 +3ED2D2DFCBBDCF4B31E1DEC971A1C6109116175618903695445936C76C908AEF +EC6935789BFFDB8444B169B214D6191D511982A5D8EBED7726AEFF27179B9CFE +8D25F3D84D7928EB4E2FC014B928E6388FEABCD9034F7EFE58A9C1BFCC5B0C7D +ED1C09F9B895E2BB386B7304DC9254BE07A66C6B3FC432808B9EBAB6113E0F83 +45AAF6266FA2827830AD94DE90C4CC2C0D54217CB6BA4B3F58880A43FD7A9F5D +3AD608DE293094158F2C092B42A314497D1EECA7C28B4108155D9B9E6F4CE186 +73A6BD70F95395A16AB3B91490A3347C1E8C514DD2C2AE685F7131B04C23ABCA +88D3E224CF95D71A7642E98F9246DEFDE0F026FC3AD193A7606E89BAEDCD9E57 +3A2B023352069E8421F03B33D0AC09237FCD7A4D9F18FE05FC57E1CAB90E183B +80ECAF61FDB1FA32883CC304269EDA7C63CB63C2553F8D12679FFA6A788BFC54 +9777397882A8DAA878269D544BBD869B1E74B020D93EBB8C77B745B9E63DDCB2 +79A4E2A54FADCFB041A69B2440F139BAA9ED10CA008619187874775B6F2A92B2 +6CD967182D07C139A2F87C2614D35717AE2F463715757CA99983272EAB35BE26 +35391B5BB4E67D6BE2FFFA9D1EE4836317FF21F754DE565885040FF301194F49 +D8159B1E87359DE2D0ABB855BA0A223B94F37BD3B8FDB30356A4B4830D49C639 +FCE1C3E450F191D1CFFCE79F2D98C7A7D9183C5C6D7F0B041FAA80451A7B560B +A88DB7FE3C545D9D20CD2C692DF06DA1487FBC4AB1C182B473FC7D44D42C6EAB +31789982D566148A8AC791AE68A887F6E971A1E8120FB303DA50EB8EDA3E3D9F +D637C98BA46A6161F9AEF2C2A4CC41A26404D3DC64AF36F41E2198BA6995E15E +405C20DFE02C8538C79938E28DC379674E791E48A5906BEFA5B5D6BCCDE5361A +6063BA0E864A73FA19856345A9C04E2A535DAA3639B351C8EF330672C9584275 +E75209EF7FBCEC9D6079042E52D5BFAD5BADFB97F60008C8EEC8B1FBBFCE7715 +4A660DCE1AAC1991DF0505EFFFBD41365DFEA97F565EAB194767E00C463AEBE2 +BA17C1F8E4E425B6F416A191DDBA8D9CFA81E056CFCA2B187B618457D95CF089 +1ABB0F75E21E453BC7F38F4F15C155FAC20C095B5A17BEE686432C5CC60A5139 +20219A9C3DE1C0002ACBE4E6B0DE069E16C074B6D9BB7D6DA40D9E9D312B1842 +D19530E3C0D286CD97A2AA75E27E054821F0CF01D3A2B352DF1E8CA079D390E7 +F470BE569C7F7726C499CC47E422D552BFC12C9271BCC7992E51350F356C38DC +521206E27433B3811E933EFE0291FC8EBFD7AE5F7D3926CA6A8DD12C7DA1F709 +613BFFCC3B2C4652C278E04C5FEBDB60D448A71944C0AD98B624B44418CBEF1B +314ACED7703A43AAA189775711FD6B227EDD789CB048EFA1406B6AD6AE0D448E +CACDD13D4BDB155E282F16C0D10B3D25692D2A0359B146CECB8C340B13DDE462 +7DCF4A87E739CFD53910FD858B645C5A7CB1C291E74BE9D49BBA557DA56ECA50 +BE1AE4819EA3CB6949FDE5F848CD7B8C96F4A69193C84645BD8BB3E6F5817FEF +B6A9645CCA04C28761C297048E20B253BF7F4EA55162095C40077F2B930CE8CD +62854D2E45FB4B4704B2B0829F70D8AAC4DCA63644E536EC77A07FE286AEC17C +84EE43E34976DC33831D413CDC3B1ACC69E996737C23FC740605CCC919367B9F +2E3512741C9D2CB621AFADEEDBA88264CFAD208CF29AAFBB3C022BFB46EF9318 +B0D1D0FA8B554BBBD608D100D3CE0DD582512F551FB4F940E0C71D74CFDDA097 +4D737E103CA77A11F6744B7561C355BCD589E09CBC9FB3375A9AFFC80FDC10ED +8071ECC75210254578FD8D13A390A174B5CC902BD49F8D2D25B23BCECE99C8CE +9706831FFC4C7C88E2047322EB5208E9BD0202C8FB9F555F5D00A2CB5F5E287D +4C7399E3BB7383FD1801B12956FFB8952F6B5C40ED58FFD567BAB11CBF0A27FF +EE1B6DE181D826EA00D6DB6626528F6D9BEEA73207E62033C05E42472AA6B33D +2295D7CB77C33ED9222E73EED5E2DA57359590620136FE32AA1E5307535EC597 +A24C398F9F1D6454D0B1E18027FC4E025334A0B671378BC393A6640D1BD5FADA +CF4EF71CF5AA3B3CE67AB71E903C1EF066032D121CCCD51B7AB164EE9A217E62 +77D93A34269C50D65D14B6D619AF7C3145CB811D1BF67F12622FB2A85FB38FB2 +C1513A254567392AECBD0B990D4A94887DC1FBE339D79B6A45362E893130561C +E8C4F1CC2324C36A5BB2BDDFA7B5861F7FD2003D4E6116D675D4E7D946EA7530 +CC446F6FD2D399C25D37FF1C96F47B840E5B9E736C6777940B35745885B03CCF +BB8A76F6B639809E47E99E08452591BD98D198ED988F593D51FAEF870AB3B0EF +002D08404E8FA08109DDDB8BFFF895B7C475C0D7E5E46F213B789DEB04C11ECB +017C724DE96BE736EE4ED2A55C611CAD37C667CAA3A1DC91334DED6FD2DA71D8 +B5414924DB2A1ACFFFEB527E7F7D118FF2285BCB09BBC8A2BE1E24528947E0FC +59AA8C81BFB345F7957D4BE9CE80266A7ADD72CDF37CC41CA56F360C475D1D04 +7305ACC70C168F2800D2EA87355DBDE6552FA5B62E7E587973C1DCA5CB5F7B29 +6BCFBC760C630F4248ABB4FDA0EB69FD636A4A1BAF9D06B018DBD0CF0B5F3FA8 +433ADBD62CB6D7DE95255E3E091947FC956BF321AD8775464C15D5504741E503 +D9D110E04F7F21903E3EF619576A29B00ED5C55AD867DA9A1E7C873D1505AD87 +8BD665189D45C42481317E363ADB4A40DE034C1D5F3F39C77D67B04FF700D5F4 +A778F8F4CEB320DB0FBFDED0207DF97EE708E78C118D43A76D5826569AF97A3D +3D87A01C3F306A300D60747719BA2B0FA21D59E8456073945B10B7644566CA86 +7B2E61628FA5D0C8174C9ED2CA50CB5F9A34957DD7DB8FBEBAB47D638DEDB570 +48A7E249980B99E4D965E5BD0087BFA2F7C7EDA5F26E06A035C8DB2668A67156 +09CF38C9D79577253F56A4AB8070B402A4427B2F0C62477A65CCDE8F0739FB31 +02DB7A3A4BEABF501709F4E57075B9EB5BA31FC1D927CFBDEC077373FB39C1AF +C85DEA0EFAB6F0ABEB3788972DDCF7C419C3AA968BA1399B1569196ABDA884F5 +4D66ADFFC21A7372F252749D61FEE51A98F0AF6D75CA7F8AD8E47127B6E19D3F +215C8D81410F813119C10797EB572C39AE4ADA7378F5817029FFC4CDA7715EF8 +DF43030A2EFAFD1DED9D5E4008BACC3C3D7150122533C24435D71ADBB801D898 +72A0240E51B650320EB2BFDCA8631CCEF816E7AD2773295B40002BFB9868AD6B +4ABCAC26CD5104C87682A9BDCE7871DBA5BF8386975ABE4951F31BF88F7B480E +1DAC365CC6540ECD955FEB3D89021D601516A98806BC4BED2B581910D933D8A3 +E7CDB2231F8C1B8256CE65253EAA542CC2D5F3E82565A1B10C3DF13D99B98484 +1964645B04EF081B1A849FBE540F323C88FCC49DA6B6366C4777D6602AC0DD27 +232EA50E2A559E241D622A11E5561B3B27A8DAB963F521332589A9F81F469362 +42E35EA4157D316540FBB623075EA030A59617F9FBA5684EEA198AD04651DAEE +F3AAD4731C3B6B728350843DC67C978F8BB4F5DCFA902BC1F61B40C762CD6F39 +971298918312250C1BB477C45FC6C909A8EF59BB3C3EAA7CC90CB9815BE36A8A +8530A2F86A5C4AD1A8CCC3E6FB3DB7527838C1C2F3FF4B0F4529C475E5D473CD +5AC86BDD95625D45A946337E128E6F1B4725DE64D2F80D67D92527F7A73A9BCF +436A83576C05417DC1815FE05578C4908A3723066F0C6AB5F590022B006A4269 +ACA5BF825B65EB7CF6955084AA74B9E8459ABFA31EE70895261E4A26107C6FA8 +32D6E9D53AD86867FA122A09081B2218A078EDF6C2650DFCA450A40DA90AB5C4 +007CFEEEB69904854C75EFCC59DB6B6EB827D68C47740F38315FED206DCC84BA +E29DC18FB2233A129E3C9D192686F821CD8B8E0DF82300C96FED2157FF87036F +394019EE90ABA712CCC0EE9CEB498D6A4D18C9770F7AA5F09D532FF5C4720EFC +7E47BAA4BAC36A066787B4AA4E19A1BCA26976AAA0A75D95BF4AD2E4DF3C2F18 +57163757324874875C5BFD32FA1257A105B45C11C210BDB0C8F7D62D2446A2E1 +FB257E73BBE8273919B910FDF1355C3BD6CFC5AD30A1F01D735B9C65A77E9ECF +4FE4054DDC6BDE999656B1171998082C301592E9E69E5826A2014C48E0C1127D +F0A2C22BF13135C42DE5B0DF613D9C67D2ECF30C6D9C73C4C422B55C3C865A12 +EA75ECB0DE30DD21EA4C9472CFB58C1C592AFF7AA54AD78A2F035B0C49585B69 +6E0DB2231A78C23918DD7F7C2D1E3B1B30D408169D105E4738D324485F219F49 +0174186824FF78EC89C3C0B62F75CF9AADCDF962A4F9020E18A4962002AA2090 +E83E13D06B5E3612F98C3C20EDA5FB1C26E6273B5066030367F61287BDD609A2 +80F3A95B9FE864C3012431411F730A85163632A426DB77A36FE7E234C13F17FE +ADAA14BE6CB518B59E217CE5F72FF6A8AA6F7E60C99D0E6429B0C12535CF9BF8 +1ED0E8E146357115058BCCB9C1B0E02641A9766AAC156BE4C2E1A8EFD9A5DDCB +6281B494D7B3BFD99F2DADD5AD8283DC9CD1C81B96C76F6219BCFA296AB82953 +060686ECEAAFADBE92BF875EAD522265BAAB799AA11B693A21404CF1DE6C9482 +8F34F883AA804CC9DF1B84359F2BE1B2B8034EF99D0D13AA5A3E43B33A04338C +F4144D61D939425066EDCC16FFD6E0296473615B2AF9C8BEB8E15D5966673336 +8FE2ADD0B52AF04530708DD6D3DB42638D842513A0459C118252A2354035D16D +F7EC19DB9AA70BCD685C61048664823515FB1231695C4950A783BEBA01BC0A2E +3222C566E817B163BE580660FFF722F9898C5E52252A446634E8EAA563C249F3 +399B62C0F65D89FC7AEFB909D80E2A4707E6D93B90B1ABA25258F72D78E99222 +86067E8076B2BC1991EA24B6D0A285F575BC1E7A30964CD561BFD0EFD69F8505 +6DF0ED391657D970F922144CE6093AC5929C9CEE82C261C60A36B89E9FA44FFB +F740B69F81A0769DB1070949E863ED09359D65D5351D5AA438BD9114FEE0A12C +240CD8679CF2B600CC410078661B1E9E62B48838A442E796E115B6D791D64047 +A5758ADB937DDD11D60917E99D0FF7E8549C065BFA6B4DFA01B0F4C98D01E0FA +A239302D33A5A672B4B3BE25BCD5DB7A27DFAF2E79627EC89466DEE887E6F026 +DFFE8BB7708AF53B123F4C64EDBD8F4A736466C2D0C37F234C195A50ADCBBD46 +FE6B7A73FEA9D1AE580701ECA6AE8458D4A8AFF7DB2216CF619AA1EF1065CC45 +36857CCB51017885692002CAC58C1BEF504628A1C8A2156C3A3DBBD88EF33834 +B8179D97DE69FD5FFDE7E732DCB7A1F4002F04E2F446068DC6617BD38C3D6467 +126F752AFBD562352AFA557EB1EAF606759A8736C4D7EF91B7D0AF9CAAE89D36 +06AC1C5BECB2B5F6DF850FA22E4A8CD564651748440458FE15849FA8B3641B95 +162BD9F3CED35FA7FED19C518288F75A9109CDF903D1B6695D190EFFABAD1649 +18688A7F91D336D86313215962F305F185977880A991B5F92AA738CB3CEBC260 +BAEAEC4FAFAA990BF193A31861F5C069414614B71FED4DA8637120EF6349D42C +E0E011E8ADFBF1D4A22AD9F0893A1578D7E7E21F12C6246D4C94705594A7B5D6 +B23DA581131E25F2176B442077110FCDBB59554960D15D21EDC18263707E8AD8 +2B89484E22408BA5D2BDB31A8646DEB04D49153CABFDF3AFE473ACDEC6B96F17 +F4BDC5AF47811BD88DAC338C575BBB015C15EA3271DD6AA349720167FC776773 +9B2771CA370E04B1283F6DA838C89D04F32FF315604E4FACCE665D840B3BD946 +646F58084A79CDB93B7F7605FADE2B995BB94FACFD9D615C58CD10FE31337AF8 +F3357EAC2414615844E2C2190BAD524A2FD68F1A2CD474FB42B6E532E3072DDD +0CDE818EE9F94DC84E41AE16AB2FA79F76CF2E6B75BF81997F9E7D4EA082CDBB +773E0190794B6EA84BE72B3C33A60DB606E6FED6A7C8736AC83E492590CF363D +CE5A3CA9B8B8F2BDCBD49F4CA39AB596B688B16D5058F6AC045E2D52D69BEC6B +01240D9E8717F8EE60F889B407CFA8688F1BBAAFE0B32374E5E67D44D8941A96 +71AC983FF159171D6532306F07A1188ACC0DB7DBD22E045A3EFAD242E0E029EA +A738F049131098BE193B0005084F016F79C7D0E3B9B01DFA8C95B646438C413C +222E4BC5A3437EE861DA45FE0335B6EF780BD59AF9034B6415A095A36EEC56C4 +F4521DCE96F737291D9C280381E0223EA3D9F4C16E56A0379FAD0EAE9EE79971 +2FCE00B4B05FAB8708747BDA3A623F60D71D329FFFC47FA639D413BB920E8DB0 +E6B55EB3362970F7C8A643EF209301E392ADA904567791416861A6D85365E647 +111177FEDF2B60434123A76CCB566350ED68DEF618B911E1AD17E5B6ED645AF8 +E20479ED81767ADBA230CEA0F5B50E1DC65CAC236DD509C826DCB5C6F4457708 +16A949A718630719AB27743A55803F83C8AA64FA122A09081B2218A078EDF6C2 +650A61FEEFE4891654D1C201DC87673837A2826B193D0547D831ABE919EE0EEA +3AB8BE5653023ABB2FDDFD45ADB4CF5C03D8BEDBF035951E36AE8C49C7D202AA +BA714EE430D3A3366C4F413D27D1277B3C215742ACE0696DE2C57D667C3D9ECE +E2F49FEBCCE117DE99A2228DB44846C8F562D1982A2A1094AB21EF3D421F8C86 +E1299D3063519013E542652254598167D892DA454AD64E1A593A3CA2D3517334 +4033886AA71F211B5A1F74FAEBDEA9A4C42E70F0A05D53FCED333B4654679360 +CEED85B22773F34FFB3513A3947B5BFFBB34603E10881D95D6E94709694FED1B +A2D87D319733418E2837B639FABF692EC3441D1AD42312C32FAE78D58DAC2B3B +F15A00652A73AC9540C40220B9301C3E4DC7175221261629643BE95D946750E2 +9D403003971F3AA3883640ABAF6B71B0901C56761D99504182F03FBB1B774C33 +7BEEDDBAF01E6F543202E2BE9E532FA80F7AB7585229EE974FF60CA13AABA554 +C33CDE358305F6D366FAA9C090DA827BF8D4065C79B423211A102450123EB750 +2DAE7A2D8DC42EFFA90CF8ECD225A46DA5ED77A15D81ED6A4D68FDEDD8872948 +F79D515844703719FB4CDAE4E7320FD0816287644374DF543AE4169BD2EE075E +34A99C43D16849F47A94BC31763F5B08FBD9B21015A30F225860619511814B81 +C3BF0A43E9D0EF916A1D070115EAF2ADC5976D595E9F38DBF8A4D47694EF41CA +5122A37879AFE47282BD8DE63C20D6DE6221FDB43A673DA64EB78A90B374C341 +D37EFC66E73874F3B4498E76A6B8907CACAC7E45DF14F44D1AB2A79192EC0E03 +F7379C72BDFEA79F07950623603F7AA393C77EBB5478A1B33004A8DCF20A3083 +956CA58278978640496EC445F0783D71E6CAF83789E733C05325E3D72EDE10EC +CC6BE8159AD4DB2803417CDB58AD65327C76C36434210EF96C8E56A8631EF5E2 +935768B18496891EC3EB57EAB91891E0B859F8A683E418A82371C3226F2E9E0D +55F9289601D57372F930AE99DE7B5BC27F3C464816AE9870F9BDFDE1C1212225 +1164E4969A133789BABF9E45B9CB8D78359EFBE01EE9D29DFA646B168453CC7A +F118BB135E70512342821DCB61854E9E3974FA104191188036F0ABBABBAC8EEC +A20CAA7CF4F1138F534C157498B450E8975CFE2A95052CD04DABAC6A8F14996D +2F3732CEA7240C30C602488CBF10A13A0F9DBEF2456260FCA8BC87EB7F0C5240 +49BC8EE3279079C9898BA278E3ADF09CBAAA0BBFFEA829258652E30577E17551 +81878441DEE7F78A8B621C895EFE961C62995A8F81712EB5368DD1AA4B5B97F9 +BAC5DD1273DFF82FBE82B699130F44A068AA259E874461F2CB540D8796DD85D1 +4E0CD0734FC36A8DE2EBF77506EAFDAE7D8522A5EE6D687C0818EAF0655635F1 +5C9397B97292A18070B37AC59BC28CE1D63504D171434A37484AB3A29B3D1612 +CCAE572B540B3D0A89647D9FB87134F56F6DCC55F486D051CE75BF34829B048C +A599132532DEAB0C62F99D6215811DEAED85EC0C7054E2711EFEBE674EFF1AA7 +5314AEA30AE6B7970427BE89D484F142667DA1FCB3F11CFE69CA3E8A11FAF8B2 +F92E5D4AC255A4A6CA3A94517F78471B3DB6E0A556AB6FA71D6747595CCD064A +A9C5C0695714AD559846D98AE7F80E84757E245AE864140B729364F831B26C86 +ABBABC5104396469AA031FBBC18627297EE08020406123178AD80CB3B7858FF1 +783DC42D70A5FCE12BF9642AC302116AE5F9E0807322A30F2C85A46F7A0831A9 +E8B79EA6F9721C9A91F3BA4D6B84E9BE81F5020C9C6D8A7DE7561DF090E57859 +BF7B0A382D04F0BEE41B0D4F56461B71D2C8D874D96193A28921609C9F73DD86 +D9422DB39237BB6E42B8FD638136E8C4217335F84A671893F033848E694D1AF8 +566A58B62F7740A9F04D7B3A3F822EBA75A109DC57E4D9F86D9F0D1201773A9F +FC5A8153006042E52532B2ACB83E6E44F4644C3719BCE7B41186FF93B9564AB2 +6D43AEB5B2B6FE121AB5189DA14A17A7FEC8B7C64693620C756F7A35435C2C2A +E0B4A917AE2D21CEFDC3600EE49898F7DFE1216842F561843A78AF3AB8114859 +7A0D1D28FB20274901B4FDEBAB1AF06F3AA19E84C050257AE6E91146AC59D717 +ABCDAD9841B0405E8330F083721AE59F76460F868CD85ED6EF42C7CEED52F61A +0246DB7CE834363871997EF58276C01093188DFD2CEDAC61D013E74E4C5B2ACE +37EEDB6C1F42165F0D500B7462E0EE3A1B3099CFD272D8366C232F482E77B424 +7E32DE6905244A51EDF2A7B19D818A194DF5F4DA3D811E3B6A9E5D5C9D1B0BAB +171159950356877A42D5AEE902297FAE59B499C192207C1E52F523C2D6CF2187 +35DB5BF97339DE634BCA38D1B9CA04634CE05977717B9DFBD96F34889D8E8692 +6F1D9DDA18302BF499DA71DC7AF1EC95FF78F8729DBF56818496DE4C37CC3E54 +73E7FA6FBDF56390CB43F1B98D4A904A967192428DF16174C419FB348F87800A +0FA442833576F1DFF8A4A3C511DED888531C62D875C06C017AC81A2B9FB0AEE7 +5CAA38163570DD2256DEA034966CDFAF14446FDA218D7A7D11F4378793201625 +51EB286316BC445AD9100CC36FA3F1B9E6AFEF3A30F9F10A290A72F7B03E71CE +9FBF2160F43CD0B085AD61ACAC72E1C2A3D5F55D71043EEACAB4AF35777924BD +391B64D0C66FD9DD339DA74C13304A57326AA1BCED41BCA3E1B7323CF189E8F4 +CA2AB2AB764164EB6255A67EBBF05E3BFA7C93C305D31A1FDE5098DECA4D3E0F +C764756E43FCED0A3E233EDCD4E2960DEE39A60ADFFF4AB5642A1690F4DF203C +9D8D06B5836624C9D518A31FE70C0FEA7029200660AFE7D28D7A4CF7392AB26B +BD124B8473F4A75DA8B0C03696A4273C4ABD7EB69ABC51274F44F002644FE2D3 +6EBBD0E69EF470B5B3F6D751629D040634C00C46F15DAF66220033FC4BA8DF49 +530F291C8F08653DC98102ABCA29EC59B21657AB009B4D730804DFCA40F989D2 +9FB6CDF2F3CF0B34C4DA272B6471FC0833B286C859B2B2ABB2DAE2729E7C60D9 +F2F3D29ACFBA95D3C56711B973A84C337E3DE0D77F8E3A08A3F85108059CC8F4 +B79EABB1074F6A2421027DC09638ACC6B4147DB0B35A81C1EE3FC07EB212DD24 +C3E29E771B8EABCD056A7DB020A9C8DB7310B30ACC0E95EDD828788B03730BBB +645158C330DD6C25F5C946972D0A2C9F2E9B7F1455A21E9CDC5D38E7C88581CE +D2F7D8A82A0A632320C29752F3427B1C5439237C7C3B16AB5C9E056B03771F1F +9A8702981FFD8D0F6BCC51A92EEE16DFAAE11DCB3AE8005EC7A717A629B95B6D +961DACF5990AB6036C7B7991A34E37C30AE62474388039D526F4717B163F96B3 +ABCFFE3F56BB227656D2E632D35D77B6AA103892DD8395012E009402264E9228 +2A3BACDCBB84E285F02E8E4826A267DD44467D5A1894CF0168FFB26B48E63348 +5AFB0057B01B3D9AD98403325368EF44DA790A7CE48E133432EC52D00C0CC08F +1E5278A92EB0BC314C3C20A3D4D06A61BA6E00507E17A1957B9D1384BF4B1DBB +CFEAC2331E9B3F8FF89176B073E2627EAF91AD772925981E416150FA75784605 +0C63E44A36A8A45DDFB0678B261DC1AF1A437A2FC0E7D60B8A70B1A65CEB1F75 +30CA2D43EABB543EAD24FDC60A9427AFB7461308397B37EEE3A8FF3B2B91A39A +A982B877AFC21A4E93DCE51C83850C75 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndFont +%%BeginFont: SFRM1000 +%!FontType1-1.0: SFRM1000 0.3 +%%CreationDate: Wed Sep 12 2001 +% Copyright (c) 2001 Vladimir Volovich . +% See the file COPYING (GNU General Public License) for license conditions. +% Converted from METAFONT EC/TC and LH fonts: +% ecrm1000, tcrm1000, larm1000, lbrm1000, lcrm1000, rxrm1000. +11 dict begin +/FontInfo 6 dict dup begin +/version (0.3) def +/FullName (Computer Modern Roman) def +/FamilyName (Computer Modern) def +/ItalicAngle 0 def +/isFixedPitch false def +/Weight (Medium) def +end readonly def +/FontName /SFRM1000 def +/Encoding StandardEncoding def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] def +/FontBBox{-189 -321 1456 937}readonly def +currentdict end +currentfile eexec +D9D66F633B846A97B686A97E45A3D0AA052BD0CE60552BD63101D7CDBEEF5B11 +69C468645FE4ED1AF2541AA0770C1DCF81623DE0ECDF49F2B522618F650CE6CB +CC8C21885DD61AF8A523AA677EAEDDFA51A1F9B1885EEE0456196D634E04EF89 +F17499DAD982502ACC349B9EEAAE4A71A73D1147318C60A8BAC10510DE90D8D3 +F46E47295D27129A5AFE0C65E22BAD10D06885A2EE623FF8E1D90287A083E00C +EF25195F68A2A98170E48759F267FE330B57DF626EBF73D2779A4A6B462AE6E5 +19E5878939A488F2FE1094A76925CD24DAD4573AD3CF34E426708CF06E7EBFFC +BEF5595408106E2189F418D17AD510ED5B6A528E8902AA3A5F0FF52AE3DEAB07 +32F06B63E28BB88229E046F4FF8A356BBDDE82DF2A197F2E26CA00D5594725A1 +83A89A36487EAAE1AC312C929CDCE50722FA6C596C261E4D78D6C6ABF77F5CCE +0E410ED74287A0F201140F8D9674A7AC585D3CBC72CCB824F9E1CEBD08AEDB3A +A4015CADF471F7ABD9B0F0AF73A8274FD441BC1988A61799856E4770155341D6 +516CD0E25BFA59B67AB7E0571DF3F5BA70AB52137D9E6A79EFADBE70CA05AC8D +991D0895C8FFC747FBC0E9A7212BAE6560B9E2B64FFCC58112E64A3B4CF7ECF7 +595F51C34AD1342F5678FE1E62EC5A389CF04E82B5F832914B91F921F30A7E32 +CA3919F57A2D9DE844CAAAC0DC751C255C9916595E8C9532E7A0A84A0AEFCACD +83EDE059FD06EEE9951473180B517F25F609F347DBA012AE9F004DC3C771777B +BE812787C3C50315D67254A384EB65F260943C6E16B2CDC64E15EEEDC67C5544 +8ADE9981A6867405E46222CACCEF79F9DC8674268BBBE1EFEC2187A75FB7FBF8 +CB2DB2134848DEA2F9CED443DCF561E7272B38F830871B2A5196A787924EF556 +4B7E9093ADD414ACBC10147944D216D351CC744DBC13B0749FD0A129D7C47983 +7FEC7FDDECB3FF4166FE295814B8EF751B79196DF6FB2F28CA8CB00807F682E5 +1F37B8DBFA6963E77ACF4A16586D58C87B0F882FD7BAD0A5173202958267F567 +6D66D0511364EB31556C37BA1973151C35046863FB4F3F5E6434479279EE110A +574F186803F47B3DFFCE8A700758EF5B1454D743C31F70320373B12B3FA61818 +D4DED23D33423BB468C1610787ED614AA483E565C583897348E103F9B8D3BBE2 +95EE9C60642320A6556B0473D5AB3E00227B644687EA1B5D62766532EBF8E3C6 +E105F157863766F3433F2D3D6443D6DBF4C0C7733A6C43D3F0B63E6E826992F8 +F56FDBB0B23B97C837400FA677D32B6563608ED2BD5B87FF584841E420EB974A +671D66EB4518FC520B2692F52DF89CCC70DC8FCED3E9845159F6762D7D2C4458 +3E0F20151C81A92B73C1348788254F5AA4BF1F6A90B740568894E50394D15265 +8F6D1D8CB753FB82102F12F3902D9C67DCDE0775F9F16E68C2BEB3D4B29207B6 +C82D11D73A625335BC9571966D364677DF808FDEA4B7784A38A53B57E3F467AE +3E6704C92955A8E123FFAEA8C23FDBBB78581FDB01ABDF721482503D5D4BEB26 +9165C99E59F4F6E88D8CD565397F61F4D17676D9BAD3563B81971217CBD93CA3 +AC91506346076655F1B8285F5EEC8C4727895355279B646EB9B00B0D294FF452 +EB2FCCDAABEFD7DD747CA2F97096DB78BC5B4F33E36E859A0D7A0DB938280549 +F8A90932CD017D54E39521E1028EE18EDBBF2455AC2E09DAACD30A86AA92DC31 +F0BBC759AD4869F599D83FB8BC86E3BD4A284E2E82C45DD1EA7E0890575E6E4C +2DB9F41469FA0DE739AD3BCADC89209196D299E09079CEF395DC2A70940DA034 +DCE2C7AB98523D657C655970855874CEE75CC9934D7DACDFEDF479FDEDA13258 +BD937737ED6FA58D0496515D1B2D11787AF5B3CB7D4F09208C69325CF4FFD794 +091A4DD09F58A59CDB325F71E11B279ABA45E3C444DDFED494334254229F2E72 +6E96CA1F968CF79186B06FCACE3742B72619BD06A9473B47FBCCF1DE77544B32 +8063974D2735AFF96C84071892EBADD347B10ECA38157972C9A1269BFE3A40F7 +B947784E7034070E228B10956579A459E9A60023F7355DBF8B24815C2EB9C520 +2574CBBF7165183946BF0855A6705D3285A0ABBCAD9B391515116E6563EE5C77 +7AF6971F822276AC94DF755F2C331D399630166CEFF5EE61FC25482A27A59C67 +F6BC995ABBA6D35A5FFAA4E16B4F7D7B334EF6F60F14C1BBE3AA3E9EF096E1E3 +CA6A025B0EC8953AD6C2F443F277A926075C78F67A481930CA7EB216D27DDC17 +99EE994A9C6D56FD69EBD2EE17EA6226F610CB203BF6483F93831F1DAFC7FE3A +7E0341523137D15DF9FADA0222F682EA975B9A0FE57B68B6E2072E8471E8E1DE +C8F02D57373A3F45BD25A5D100A62E5F90CF487125588166BC45AE15C26C48A3 +28457F8DDE1B9A4E296F17D9EB213CC78DB5D71ACE97A8E6377DA1F5B663C8D4 +63A530CEA0DA8AE15D87C580FF2A494C87324C49CC23B381D85A2B273D403BC9 +A5FAA23F6B7E2B852D6CB5B19AF299BE05070F67D839C7BA77F888E53B9D0728 +77F347295D3323B962B29E516AA2EC3487967126A4D505B68B8ACBACD4CFFA79 +C3A4D0E7F45181695BB10DC043CBE90C041CD8520DA248154A027B7FA3F3973D +5E5DAE85EFF80726C5DB385567B8FA2B27F8DC41F785D2BFD9EE938B6C2E86BD +4606AD75F9F16E68C2B94A667D01070F67D8CB2511F5EF3A827131B1DD0D052C +2476005A1EDEBC9AC7CA679188B7720F0FF1802C039F55650CC9AC2850F55A17 +2C818ADE9504E306C6A3429FC1F514CEFC54CC2A4C966EA49CB9904BCBF450ED +E88F49AD867B128A574DBF3C8C09D9B7F9F720A3D8FBF0E8994F7607576B135E +A8014797E1511ABCB1F5F9B35C2341AE8BCF590AC8A3AD9D18269C29BD2FBDB8 +D3000636A6D9C15F61827BC9EB53A3DF5646ED689A3A01AFAC57CF5808E562AF +D0465059E7002AFC5AC62E5002D7CC4471B6DA35508E5CF0EBB0DA86B3581FEB +D405E2DF4995E836833B9534EE4F2DFCDDD5403C4C5AF522389ADB619D0DF878 +A65A73B44A62602FC06D7C37FFED36B636847E880C47CE31EB460468C6D06CC5 +F29689F0FD106DC919F2DB97E27D7C36391C9327B613A6E20C4A6B5705A80FF7 +87401A2F7BD6B48CBCB5431ABE1DB91BD8B65B30BDB06F9EAE5C64F292FE65EA +9CBFF5420E1B4C5DC949A35319F1FB02C490601A26C8EF5EFA6A887F7E1A9573 +CC39E1C0780A5D0DD42AE1D121E834CD0FDE0E4558368ED4C9B9130B00709320 +CFA25163E0E5C555651712F633F8F24D7ADE309E666CF4F05C5E999B0E500966 +4E3D82E885359EC625BE764127973AE6010DE8A92F452AAA8B1D32BEF386BC6E +15ABB14326FCAE62DDC2A1958FE7638125C91B3ED13812B6EFF198199758C120 +D03EB41C03C56E20179FFD4E655999B661D1C476AEB5973CE69A3C8DBF06A7CC +ED42CCB53AC532762E1A54EF671424A2E6684C80E5607CEFC855AC63FB13FAF9 +EEE98BB69AE1782711CA313E81263672B758FAB13CE9D787E7D4B7036ADB5FBD +9FEFC0F4782E29288AB0A8ABD239B17BE769B82A37B26E5F9963FFA24D977794 +F88ECE6D6008630B4F7646041CD6C6C0B29CBE640B989E0752A8443CCB4EA973 +02E19FFEBFD80D90F23AA6EE8E3C008C7C2F16D5A531A7E313F6AFFE207A1F8F +A9D24452E08631330B4C30F4E981FB52E8BE2AD8034CEC24A841A28CCF3322F4 +5574FBE8689B6F34FB4627BAC95868EF73522A4ED633E2CFF9A4DD5C219CC0E9 +91E8B6B9B0696FBF5E65BD79BDC69C348FC2524EED6E49BA6FB1FEC33D7C6324 +668DC5DF705E0EFE29C3A8601D82402834D20D3CB962D172A14C13C2C86740D2 +DA0DCBC8E73B236704943549541DE220987E5176027BB3D5AC01795D57E4FB4C +EC2666C8C06F7757ABD0B7F1F83466480BBC5833BB37B7665EA3BD2558215B49 +AC3C1E9915106D6B97A2EED9D211BC8305E2D7B196A2249D59016FE4CB1C046E +68F81364549078339D6FB0E715D445F9369FD91F7B7C0602FBCFA569DF070920 +4A00809328EC63868DE184A7776312FFFE2B7501B1E588E2B70EFE6CADA01E79 +CC8700A39F7B7DA629D93C114250FA49CD5F16A05089503CD73F3361360EA136 +FE44E7DAAACE9C74769B6872618C1395320985A53C7CB0DA5729FD6B8B048528 +EFB0F86B66F2CCB9781F343137EE043A22712F3F51586DAC0D147978DCF09D4D +3A2D9480E07C172B81E44D4DB3188D35E1CFEBBB38036846D12633F13C4BA05D +52F72F5C0D4E6CA31EF0F39B860BDF90249F2B235B1427CCB20A40492CC4A8FB +539AD45A38B76497D80A8B7AF26A59DA0602C7EF9A4CB2C0745582D5D6260EA1 +3D49E1573DB49851973828B8BEF905E8FA521F1FA0321065F40286D62E664D81 +8DCDDD6A29190FF97C12D90452DF1DF9AA2CA014EAED39B0BC791CDE9C70737E +25626C59DEC242CB3C081AB834161B97806438B333EF11AFC18ED4775A064259 +788D78796DD33BF10148AE1BAA7FFFAEDEE7979DF757694CB3ADE837241DBDDD +37DD43FB4027DD39AA60FBEFC12B4DAD3AD12EA9CFC3BFA870214855862677B4 +713D8FEA45F22BD8D609336543AEC03E8CF42DA72B3E5D6AB09DCF303293E880 +25FC03B9C4879345AD1FDCAFB9194883B666786428120B80078E0C04B5F40223 +B60F924809EF5F38944863516B1C688CE1E3572CF0BF7446B17C513209E4044F +8B28FB154BAF8EF1405978DABD2F9A4F2FC0427B454CE247406B5A01B394B4C6 +41F602217EBE743E52D94EC0088091C6263682315E58B68CAC41419555F92E08 +EE7C8370B7ADB8F08D421998F8DD0DC2ED0F38588227F1431F9AA22FEA9FAF77 +A707FD7F9AA276CF34AC73912F0958C2F689B13DF2D7F68291161607271C1DA1 +0D85351AFFA20A22DCAFD1078CE8E79A42DED1B447602A97D3DED89CB41046EC +41C4D5B5325C879B537E40FEFD464159E2397AE82855877188FFBCE3AF1765E4 +7108C50E9BD10AD9809F58BF1F5660BA66C40FF3E62111B4D48F2782919CCE63 +682DB54D66BCF146221638F93B29D9C8144528823B9D79AC9AB985A03517B416 +1844FF5677729228F91CF9419C211717CEBA4001AB49D8B8A94F8D1D590C14DA +2F7B6B1C2624E92B59FFC977DBF5C007D632AD6935F76BBC3EB3ADF327838CA0 +C04F9BF6A6B0D2DB80195D322488113D5FC1E425878585E0708BC0CAB941CB68 +E967F8D7F2C6FC5873175D3B653FC3DBDF760C0D2608EF3DADB5D1D5EA98791C +93C4398C60C1489AC0DA39E8D28E6B18EFA8208BBDB2C711E3B3295A5491E559 +67512C4EE1692C12AFF153CA9E91EB5CCFA2126E044794B3667CEF0FD3198B8E +FC588C6A985902C2DF16622A26831BA45C907DF9D9410893D24365A1D19CAA69 +5881B695C3D547C9747DA67A23B9A87807C932503F52BDF41DE62C18ADA69B09 +AEA5E8266A1832674EBEC0916BA32DA8B967CE1CEB22BEC207BC312B4A8DD4E3 +5153EBAD8682D940369E1D74F535D8F0F5EE315044835014FCC43576FBEFD17E +BB62ACEFE400C02338AF26CA3EE7B25D42BA4C5C356DA9C22977AEEF396DBBAE +34DEB75EA204DB698676C28FF29983C0988726A31D7C11E8560D477061303940 +7E813FCE5339E17398F0B6F051EF41ADB299E3F576C929E5680908CD52A45686 +2E66212F96F1D3BE6F94AFA536B3C2738EE521A993F0661E8255BE8FDD3EF0D9 +E495C71C16E8F2201CA9FDA900953245324E826E80FBDAD6ADFF67656FBABFD4 +010FB6D33CD575992925EBDD62DFBA3D35D55EE80B4A55611E04D9E5E28D5220 +9506E2DF3B85F29E5096844429BD3B5BE9CC74EE657CFE3900D0D792FF2E8F49 +8806FE26C4E399F7B9BEB0B0192EA36BECCB4FAC4B2C39D17D7C1FC856F84BFA +C0997C4B64F4EC148184BA941F87B05B04A44635666070A2604FEE68C1EF9CE0 +DC02BBBC83B9CE6EAA99DBF849C7D569C08D537491AAE125CEF48277419D5B9D +42F0AFB220FE1F5651FC32E5CF38987F79AED993627B44BD9FFDED7A6F36F438 +B5E728D9798A83E2D683DE957E2304F1054566E859C89A76097703F90B3D2BA9 +BCFC6E40DC39A24FD0F31AEA147E0EC8CABCDD9D716CD39D041B26E1AA080040 +5E649EB90036D6E803D24BDD81543C85587D13DF3FD8A6A91993F1B4BD11726F +A50B328B951327E7A4A16012044DC1601EEAFEBDE6D1D60558389731756044B8 +53D85D68057D7C25FEEC44DFB13B165AD35E35A60EB9A37784E071411ACA7D8C +2355ACC540F7F845B1EBDC5B1136FABC9898C0045B421973F879D2C32DD0F3D2 +5D9CC5B0F297D8C6BDCFE81247787555106A2FFAFEC0CB2E4B7428B5428706AA +068952F0A57E9DB9546218CE3C509AB37AE526DFF66FBAAEE72A36C2C5768F08 +FC478E693CA782840AD51A78B9176B981848E7A9DC280B3C3FAA822122BAB8CC +35A44930D8636B2F07B1DD3E732AAB5D69D4A30E7BE6BF7928523C7041BD697C +EA852ADA1044A34E643E60741675CD8B9FC0159EA688DC47D37F90DADB5A85E1 +22C071132A2744E10EFA7FA87088F23A970B4F9B36F73F82034D0B4AD4AC6CB9 +BC76D448CE2D8DB1CF6EE4E0146BBECC86A7C56A5A1B655FB8EB19CB5A713FDF +7284FC2B2D09B0B8FFDEA90804AEC20DE776803F3506771657F4D7CFBA20D687 +E830A0ADEB9EB679AAF16A793C795088A101B9AC642E653A7A546FFD4CECCAA8 +32BE2232C9A39DC4C6641266B504F4133F43F762533C0E13E3524ED380D62F5A +AE83494E800D98DF6A2F889D44EF3150FC863AB1B6C5736B1FAD195930E38827 +69F3B7DF6369ABDDBF433264ADE5E9BAE8DDDEE1EE1EDDB0B6F44A5C3C8388D8 +0DDCB95422DC7897E3FD029622B079B1EEC38158A075C9710FD0AEAAC0034D03 +FFBFF6E811A8097DEB8A1F648AFF48B5A186252584DF6EA1EF675A72FA6E672E +653A7A546FFD4CECCAA832BE2232C9A07682B34610E4CE877C4DE85FAFD0906D +6BB88669293AABEC94BD6D06CFABC41D1859DE80B807B5830AA855A897B28DFC +7828AC1BE8AF49C5A3DC879BB24B63D22748DC95A1D511491AFD77D8BF875A65 +18CD5A2DB0C9B34FEBF0919A12B63D73E79F15367135DFD3B215FE7DFD9BDEC2 +C0412837F0A2E9B7D4363E5D0A84FA752EB7C29EBD2C5E8F6EB0A297182A3985 +51CC886E5A19E8D9AD7324AA50EABE80B12BB30E74A09791A69E8620A52EC3A8 +AB379253CEBEC3F5C9C4BE88EB1EBAE8F6D2CC1DBA8CAAFDF066524931EE8B4B +643B809E1426011B2F452FE8C92F1B38AC79BC78224A2C0F0DAC92EEBB2361DF +7ACEB2CDC389E38725FD89FB0D5217F2A34C58415F911E38E26CA48E21F1F31F +93008D9755D3255B2E0968CC79DB078607D9E5AF149937614D06397DDE2F384F +D189E5136ECE43EA90A0EDD01061E252E8E2F8CFA34D66ED29CCD43370FD434E +51A376D761E6DF3CFCFB4160988C29BC96128F689842FE797BA444A7A0FF25F8 +9289D62D7C911D06B86C91A1E0B3FC86E9738D251CE8ACCED62D592B4694BBD2 +BB7FCEC26B02C54C749BD813E240AE1F661391E66D4409C7210BF0CCD3E848F5 +52EC32AD5AF9EFE01EE2F7D960BF5DE71431B3C6E0A556B83ED4532E4A4E5F67 +E75034BAF939BD5A4E8EBF98755417A2C60F5216880128C5AEBB8A63CDBFD347 +616A8CFAA4AF967900FE599D419B3E98788FF5AA215AFDF36D368AB252A90256 +D81DD960168D72DAD9012173FF3779A17C4D92B28D33F2551E3E00F37A5491C8 +1C8561C0B04A431C1369AE535F8EA8DE3987D75B1E1BB8613D29CFD0DF347C77 +57429B3ED5E276760600701FCB0003EC0186A79CB288231E116952F311786004 +C7913C15DA6BE2D4218538E38DB1AECF44C0DAEDDDC52073450E1D0158DC9527 +87AF955D358C2D3F4C69964CD769E23DCE351E8BD62BB51A570359B46D665EF3 +11786004C7913C15DA6BE2D421853B70E1A4D4F3A0DD97C43EAC87B96A7173D5 +A38636E1FAC744DE320B8B122D39F10352BBF568BA9C2264465E8D19D4C4866C +85133F8C439BE79BF5D08F25EBDAE2ACAF8F3FC0CCBBD7A84805F1F7CFDEF2F5 +2928C9D34156E130B30845DE7F9B0D7A5E03B4F7AF641A5930AC881D8D0D4AE2 +55AF311148ABB4A57C4DA652E88C10A996DE90718558CEE283B040661E9B7445 +B58EB98A49CE1E2551172EAEEDC2A846BBB6A77D2794F0C75B22EEE0710AEEAA +D6759A354B2CDD077E7C254BA45E826FCA111DDD916C4EFAAC6519F12A3082E6 +226C93D19DB05332FED3F4DBBCB44FB8CD1C47E9A5659E22B8CBD28D1EF8711A +8E4C2539A3C17FD3FFBD1A8EFF2E61B1104C2314787C93884718FC3859F08EFF +D58A1931BF7FF2E9351F8081CA1B667909178CFC5A5B6817001E53549A5BD519 +5BEB8922F749F972377DFE7D88F87E5E1AEE2D4284E72EFDC72D49BA5F1F340A +8D3C885C570F51C6F3CEF4245E622D47714FCAA5E510A0253444804882A2CF15 +2B69493F89BAA4D02D747B6E53EFD1ACD66F22FBBF85C8DE9D5DB388633F9DF9 +CCBAA6F264F12C0831B90650E6FF796DDCD038BFF2B741587C180639107C57FE +9C1095E92602744F4B88B1AD96FABF35E5041C903E56525E0AB28F0A67AAE0C6 +F93E704F1C5E888C22F4D6F7671EF6F08731634F36F5486C0C62DA4E88A65084 +7CDDAF51794178EFF76BF0ECECFA97A44844F2C7265A9B8D14DA068701D41BA2 +4544943A94E0617916CD9B5842461677E8ED3B3DC02B7BD50B25959EE044DB05 +12EBAD4F21562EFF1EC4E1FDC621C6736115897330245583F65D11BC376F454C +0CC154B5135B8F280BD3825C00A32FE56D7BEF7F75313DCF05136E95B38DF069 +9EBCA0A210C5E777D703D001ECF3AD674633503183EB1202EFBB23922C143745 +E1899670DC72EB5AF530BBACF117C32B1C37326D1172F83F6E4DF93B37E5A9BD +24629ADA33D46E968C096BD2B59BBD6B0AEAF29BA638D5D4DA3E39779820AF55 +CF39B694B19D25E02F1DC0EA20A85F61ECE8CD6F2341E4B2B406F5A9586A71D6 +76BCEAC105ADFC8720129AB61332FB53DD94BE7B52C45EE8EE6AB9BFD7B29BEF +E27A8C9C6D82787AB7FD22841B30970621A8ADE7540E7B4886DAAB96B8B60125 +A657200C1D2D12EE46826034D47C94F21491FC191896A757AF0F5A48462F4B18 +714570E828171F7982DA499CEB3C9522F47D6FDD7BF7665D5E620A49442650EA +B7D7142E9AF347B9DC248CE15DCC30D6C965254861F2FE3BA1B36BB58251B4B2 +167B8099030EE98DC45A14C3DABADA52F7E810AA9C7F5B34ED9CF5FAC9A909AC +993EB3A8CA04128E8C3B1CE63411A6ADB9D8037534F0AAF3710FDC1F68870CAF +FFA036ACF817B9D935BA09BDB2BD2F202EA11C93F641BA7E255A40730CB36392 +024F6B77F5D52DDCA55F782B503636507E7346FDED8910263BB8A345D4C31C7C +9BE2B3B134698392E1D8AABF0CAD0BA04B6A8C379E8F18B0D51BE6378E8951C1 +AB1434BE0F4ADFA90C290380675C55BB5D25990858F9950B2105D768E4C06545 +E2A69BD792878F8CD495E612AB7F69C4AC6C9CAC0D5C43F34DD264B74C33E48A +5954E5CEC8CA5BF03474C7F89058F35449E2776C0C2F014F452F4AE94D024861 +06E74890AE46E8806E0CC17F1D6FA59BE00ADCB94518350DD55D257C407D5701 +F27DF103E8C7856C0DC6C79FA850134EC9DBEC4061F5CE6F3AE545C4D18EA378 +B79D32124F0B79C6564B623298641463B641272F116A04B48E4CA78F87D3790C +A9BFCB7DC21FE03209DA00693D9CB3C1137B02A50EAB16B7876516AB330944E9 +CD7394B2D2658B0A72CFB4FC78EBC0694A7AAFC80506B00336285F6E1D74EC6A +529276BA8085E5D0CA8F2F54C75278C63C4E17CA02396AE809F8A6677FC8E81E +005670DD492FB86C8C3E80DEE3F0D2F3C03E8D75A11697B5771B7639B4216AC0 +394E07BA13E71C7D8A7B16AC233753649362532EA8E767C866100F4AECC33C74 +4626BC93742770042B68700C7ADB6D6268C6CDADA8D7B00599D180D5FE2A1E41 +E35F1C0B6DA34B5EC0AC9E788A8C87311A129D4EB71F228FF00C51B6D63894D9 +565EE90A4DDF3B0074DA8A1592EB66C3B7E95C4C14180EDBBB319195B4FB5440 +704743BD67ECFF2C289B6EC80410E89871D4821E9C70F5D3A28966341F55F22A +1A4C42821CACB711C29A09E8D1072D6BBF5252C84E876ED3F3E43B952B8DC7AE +5A8B25FE56025D1E03BDDED01767FCC6000D70207FC70D37070F5B0D106BD0A1 +F0E113EA7408DE17270F382924E673236F2FBBF0F795DE914558A9810ACD506D +8CD923F67F3777161586A6D650E484DF8F20B17770A899ECF7DB3731D4D33251 +1F813DC70321DB05369F62CB781FCAAE577E685DD676801BE1AB0FC229362B82 +982DA971454EB802987E5501DA8EA065FA381428540B3B0001152CD22E6C0CED +B62F977BF59CCDF352AEF5CEC98B2AEC9A0F8CCF1B595692D8C42636EC20957B +96CBF675C9D13E71BB2C0D0068D230FC3F11D355152474D61CFD9BA4493DBA37 +1F4CF2448BABEFE1F5E38E2A84081166327F296E625F2269F1EE4D93A067C3A4 +8A78F4AA5C96E4ABB6871520582B40F2E8516290DD4760DC8B708B296A187D3B +614F5F5877995245811092207EF621E1686B9AC771B016CF2C7DAB6DACB80A31 +E1B33580C645F4BCB0B429D6094D01C8BC736AC1D3CE0D4C7598077DD5924D35 +EDE2356FC248E57688DBCB1CD87EF5BF4D6FEF3616C3EDF4BB80DF7CEF71ACE2 +03006FF4E50ABC4AAFF34B845C005021D361B1BB1F23EC79C6E98C1667EC1E0A +7DAB9B9F3DB822E16F835B969F3FC7BFEDA3E33FAD4CB7346CFFACB29AC7A630 +35395B75507C46B38A4A09E1B8A2CCB6FC5784C06410099461CEAF8BB08896D4 +31D38B77816D558BA7A05B4DB72C28FFED5E34F70561F435178AC46F7AD2B6A2 +A8D1867ECDCEA772E38994E49999A23FD525A93099A987EA3C3416AFE6E29864 +DDD831FE989573A6DE8AF156A8D0417FF6F4D9BA458A0FE8B00FC5A6EAE384CC +01E20107DF513AC2C635F5828C128960D5B3F3E0842FD9132E92F00A68A98796 +CCC53DEE5AF9E6B5DA3EBDBBC18E2728B70126C263CAC0EAC007649795CB7776 +5A74D97FE8B87D7FE41763E18C53B96F6DB935E2D897130FB3F600A76262EBC7 +3D2D3E8DD5D28EC9D16AC2961E1F093615F3E5D10A37D1144592AD70FFB10F83 +DBC3338A1BB28D84FC50720CEB18CED093582BE0EA663B99BB4CED70B0431D37 +BC29E9681D4410342172682B6DAAD517BDD6A32DA33C079243343180E56F9414 +F72AA5BB626B931C275F9C5AD7612EE77CAFE3711C76586750F31BA65ECD856E +5BCAC6D529C46848DDA6FE3EAEDC5C41D19409D8CF51720AE7837C641BFD3079 +29D62456F464DD7D8E2BCDF099DCDE1F6B6CE8DAA0BEE0938B7D40ABB0C57DF1 +6B6048B4A558974CB4C83E3F70FB08ACCE9BD667E58364AE46D4F4AF22C0A0CD +C20364A249BF60CC1DFFF10B1ED54EDC99DE5517BAF7AA0D7F288CF528E455DC +9AC54A8102CD7A576EAB40F0D0CA4801F424D69A724D418605A426D915EB6BCE +2D0F431A5CE630F950E2FAADD17D7C6ED1AEE0FF936230894C9911769AAB9A72 +71767465AFE981394C851B35D9ACF8CFE5C2150A488BDF0D81E0B7E35B3CB7C8 +922183D3892A8CC337251B70DD75AB7390AEB5B34134F0BDC8849017E6E279A7 +BF7795EE5AD68C63CFA8C1DD510CAC1BBB198A84CBF789E222EB83144C542046 +EB6060C26935AA8F1F8D9C3FC0CAFF1AE5C069CD440A00461078C14376C82766 +4C51A803C44A5013815FF2EC95926E01FF028E56DC12124D38623FB1FD89BFF5 +2ECC4A1BA79B217190BF48F54C949EF40A8A7C1271DCCFFB46ED354F2AB7337E +A96A1D6C04C268E3045EC92A2308E4A25E17EBBD3FBEFEAB15171D205440C232 +E10BED50531760A1463EC3CF8DE45A26E0319414B3E5133BD9A43FB569368CFC +1F8BA65B989EFC42DD47D29B449C4B9F1DD67FA6D478AAACD06A577D0A9FB44D +EC73EF5733B4A4DEB8472E22785F697CB4916D30205E266D3F7770F8281CEC24 +388C07AC126C285E59CE23C697D991D64047A5758ADB937DDD11D609100F917B +42523813CF4F8A74B712615F447441851E757C430D07C67621BFCE390F10F92B +B5E9468D71D10AF765D23741D9345282E2018F18C8F005173602E03A07034BCC +C65FB19A3871CAECC66DF8DC54EC7AE555280E1BD2B9018BEE92F66AAE7DD0B9 +79E7FD84ADE13A16BF7C51340B9C57773FFB718B9FD4D6EE00630EAD7137A71E +9FC635A979CF90125943BBD69BCD56D88C433C5CA5E3F07B504E908773850F02 +E89503FC4D5C824FA3F837727FE4D97D30B38678BC7F77BDF9F0C795DC9CB0E8 +6E742979B4BC35B21A7F81134C3BBAC5933E282CD716F228A606828B8E6E872F +6E46DADE776BB893DBECF6620815D6D6ECC9CD08F15DEFD3D410330FA1D555EC +239D0DA342BBDDBE46A7FCB37F78C6C09A6F0DF67334FD7EABF4E9A9F4E75602 +719024384AE314BED285D78A786B1A04BBB4265653EEF2AC449E37F2135D39C2 +092FA7DF485C5AADCC85A4104A252260FB1699418350033C88A17BD22D5B8EEA +4AF468BE2852E7BA081CD08A5F38514940363641C3C037849A37A4527C4266AD +041A0F7A56D8BB39B19189835567DD7EA54C5BDCF51E0FDFBAF5863D5FB3FBDA +C0AE682EC4A0095673EDF48CBBCABB37A353D5AE542F7B7EBB1038F33F33A08E +9E612654089FB6B85EB67D7B31CB24F35F0A9AA8699F31645F9509AF217A8992 +9306EA02852E12003CD89164893FCA621E0AF8522BD20E05A6BA3316CAD5D793 +CDADF56B75C9A52EC270998EABAE13DAC16BA52E8AAE7C580041DF517F3D558D +7D98EC3B93642CACBD3E8FE8F4808FD35F710006E9F2EEB2040077A42E6A25FB +F274F3789D4D3B9539DDB367F3BE01BE4D6B0EF52B6518C2B2317FB1A955D68A +53069F03377EB88E841ECD3072365A3FF450809C71527A14CB217413130F9658 +D7857661E288857D5BB6FE207BD328A97C303954357590AC4D0EC6DB8F8616F4 +6E6C717500503C36CE442ABAA8D35177DF3F665058B0B982AECC3EAA92BF39AC +E8A813469AC62066CA47D69C82FD0288B1C55398E3F09420282B50863D939EA7 +116A494CE0D68E445B018ECF39D3AEE018D3E3B98EDD5554A6463E16EABA9BD4 +8D1DEB79600B1F4D57C7FD7A7DA80FD5146802116EE821549AD15884D1756478 +B78D3A6FC553C1FA5A97C01552FE083BABDCB88F755431BB68863A34DA7C86AE +CAA35C48BB64B4B9DE4976D3C7097A5F62DAD48AD3E7BC1285BE587D51AEA022 +B8867448A8D929876A8B375B3C445C622957F93EC2CFF4A38112253D07A1F828 +0C91C83E77F2EAC611C06A7E02B157C4BE8DE6F4FDA8371DDC2696F12BFD9F1B +31D65374F86B851D58C07D20DB255719DF0EDB7781C8D9463C682991802075C8 +AE72E7FB4BF52C8C2D95421AF2CB54C593677426C6D0EC294E3BC3374F53A1D7 +0ADFCCF251C95E573ACF3E5DE59E8B8118329ADFA510A2F1836A79172636D743 +A4D33F0BD5B5C693F731D660C96885001F3F4CA545832861BD92C322ED4A8E14 +806565F8C904911619B3B05F34A15CC60CAAD7DF9652119950277E7964053575 +CFB18094E53CA293C6602DCE097B2DB92B71746D685D5D88A2586DD7B8F64A52 +8D29C32EA49B9DA7471032F2ABA7F2D89DEE9F59A13B50B76D005F2D6E388D4B +63CA51ADEB90A95DE5C9F334426B3EC30DDB469D66A81A5BC61E91F8C0960840 +2664EBAE7082C8380BC3822DDC41E023D7414D09F2FC0B379F3A8A84E3BB231F +9B2D4FDA8A06A8FB02CC451ABA497FCF85FDAB0BACDBAAD309619A2CA7C68BF7 +AE91239E54248CB1AE02ED3D28CD1D2708911CCBAF679C9D6F260BD2A6D148A0 +89F0402B564F9A0B31B8840EBED276079C6A29B819615D731081835DB43C7781 +9CEB2AA0DF2D07B1BE6EAFA649C5A3DC74F0071B5D1D8C5383DBB1B4105C2D00 +48907A221B0FE19F131F26103E07C7885E94E5598E11FD14468E708710814E4F +E98A3779E97488393D556C18476D5206C04EA0645F47A7640BF29080DAA5D287 +C196BFF347D9D4BABF5CE04A509A7529A4E4D84599E3B4C0DFFAC91E984817F8 +9334997182998F39356082EA12B5BA25921AA3185EA401BB176112EDF3D0ECC4 +0266A3DE542FD2CF9DC98399C13F00E0B01E0BFED2916DA849100D42712EB7C2 +87243CD48E619E16A99BACE7553F33A8985DBF807059240AA65971DA9C4C79CC +191098A788C4646BB81067A39E32C8D4C68EA40671CA8909B83401087DF4FBD1 +94F9C62EF8EB433D315848E660F72108B209F14EC8D335BE1B062DE650DE9BB1 +BFF9CA0E21883DE7D67ABDE015CA7D03FE1FCCB53C770C20329431E05A25C793 +F814F77CE4A017188A7DDAD6553929CC3D4191BFD4D7780EA5C25BDB0E7D662B +DADADD481F0558AC737D1C1372F88A320C8F34A80717643047B73BA735CFCD93 +112678869F9EC14910FCA6AC127441BD7F65D06BE9AC879A7F002F2694C151DE +9D68E5FA8B3C8F4B855F57BE96D5EBFC0AD2FFCEF17F5BDD61EF6C9A95C90FD1 +4DB51EEBF226D020096BD0202EB7D1B85B203D71DC802866F884E2647569EC8F +9F1245D214DDE740B263D9A538AE56022AE04350D46B4AE6895648A6647F99D8 +64B38875095F67D4B68E9063DE5C868497F871571001F5B5763C5272D5BBD073 +82F306CBF79B11A249E1B9C1772CA119E01A3C758721DDAAC78B8B4AA109ED4D +67AA2FECCDDD6F4DFBCC8A504273FDD95DAB24200119B9A8BE338EDEF1C988D1 +2BD4E77D8379AA37C11C3243C6C46734FF9C269DCFF82B299B7BCC88580EA5EC +51A2326F5B57ACD40FBA8779FDE1B0ED350E58ECA8C116B0EC2667B897304315 +4385D0A04140B7BBE1AB371CA5668E1E5AC382DC237A96167BA7715C81513995 +DF7B508A91B883DF2E8B2B45333B54DA9BC36D66FAB2CBA341191BF2E84BCB69 +94D5A492315E83747F36CB582254E6F14B276CCDD7E1E30FA4BFECD5453DEF72 +F7588FCA4F8DD487B705F6FF3F998AF47F1BAB2B9AEEA816B0DA4689320C27D5 +5D6D42315A9960EC61FDCE1FC102475F6EA711612F51064C1375A60F63CB797D +3BE9741989A69743A0569753D2395A6CF0EA32DB89C4892DD310965D3F3A00A3 +6873363187DCD47E8E39FCF5B78CBDC0D146C11DB85A74B7284F8444BF4BC713 +FEA091B8862580DC663B6844213A610437CFC4AA00510EB514056CA27646ABA7 +858456FD04C0BE7AFFAE88C5E56401F247DDB57070601A1360806DE93E5D88DA +E112CB8F8B6686EB6236DCB4FEC22BF887732D21C4BF9C53691E27BDD6281D60 +DCC6D3A05FE0F58FEE4DADE7EE275A371776FB79877E9A77A16719FF757B9361 +F48F2A0823C7CCFBC26B35BBED790AFBF4716E9CD8372C59F4AE94766C9C461E +ED1844C189A7F1D1AFE72642854E0C5E43D2AE7D61EE2B7B8779CD0D3E7F8E73 +38A79CF0C5819A9A8CDCF4CD8882D559198B59EF59DFB3F56E9249A8191F204C +5BEBF539B76FA60AB1CD339143A15CB7EAC8712A5D5B92A7B79CBC628EB50E73 +9854F244F7B59619EE36A1C85BB7192F87B72ACB84C0F9D52E5F0DF8BF5E25DA +D0349A965E4466035BAB154B8F3C28E19BAEFB623FA554D12CDFED2C855B2BC2 +E470CB86162614120B54BD95F313C1F14C320D8BDAF66CDE0511B6D7FB93D4C8 +AC572A492BEC78C976F9B4165BB746197024694C64C8DDA0974AEDE1C46B8EED +083BED57BFD8E466394883715698FDBB55430598CCBEA37041B1FF2E9E99C78D +C45D6D5D01D476F631946F54F5945BC4A75469CE03D65AF43DC59D837BF28DAA +3980F04CCC2D7FFBBF6F01A6CA478509ADEB92C3C1606B841225DD3D01AFC838 +1D8A30D4AEDAA325E738C72FC8229E5002BAB528B651453B74EC7118F9F9FE58 +4D6F61C26FF13156802B06D04B796FDD9D2B486FF284D75457A3FC425B1AAD55 +0C460C42C4C5AC5C135BAFEBEE34DF997F391CC2CC271EF0DC7915D3083ADB81 +237263893A7CC9B59D1956EC43B1A4AE3889F157C763A8743F3DDC3F849B8F31 +C368338D4FA20A89A2C1210FA8F050922F3DA13FBABAA2A95E793F10CC82282F +3905AF8B6EEB61950789AF6149BB14E1A18AE25730C7CE088FD4D25C4D1B4176 +5A3C79DA6B0E44871C0E2A39C6E2BD2B0AB081101B5CEA0AC7B835081D34527B +654AC7A968C8E4EEF1D929685172314F229C4938C0C18413A91662A2ACFC5E33 +BEE49D5CD8A9053C4A55916283D3AE3E969B1891679577F03C266DA099E46454 +C8D132931D518CBED0BFE6617ECF77FB24711E8C7B3313C11FA4A8013DAB16A1 +0CA325F86B45105988A5DC2579392867265EDC54F602600D793D7CE20653D104 +C311031D6E72D301BB4928183F945BB972A75E97525BCE5C2A5F846493965B86 +036C1C2A1B12B93C55CF53B62922DB54494B8ABE3E9B6B9C726058F9B534D697 +2CA2FDCF3F99C38D8C17D0405F3C0E647A56F4A7058B4649EAF7B15BAFFDC872 +D390A5B6075CCCEDCAB1BFFFC5A186954BF0B3C66C43811A95C2607FA17E62B9 +6F907C1065D53E3CCC31BBEFE476CE6AF4ADD419F31A482CD8EDE2640505D01E +D2CBA76163E8953B05579B70673CB11777144DB4342851CD8F11C73E5A2CE665 +85F6EBB3B1630E964009A517AE7E2D36D0C5B1B39721CA229407D8E16E180089 +CA9327899DC435FF62F707245EA1873D8189A334296D5B2099B09861DA698F77 +31EE15512C771DBF6E6E96B79D89B14378A944C43389184887A72C73CBBEA534 +551B621B0B88FB20A84FB754F4AA529D7AD34068CE5706F79B728ADEE98C30A4 +04DF4EFA237865F0095DF158630025EFB0799BE78D87DAB64E94C76D82692680 +5CD2F40FEC3CFDC8582C713A687EC6C0A5E9963E339FCFF3EF65737BBA057571 +9683A82F295CC10C7A86428A8269A73EB4845D66672EE16C2C9A0DC99D40FBAF +79DF5255EA9DEEDF46FE59BBDB204441B2F839740750FC73EF361E8125689093 +7F2AC7AB9A6276132233DC18FF6C4F96BE9F2564988CA7910E254B37951513CE +DE66BBF0DAB8F52D5F1791300EBE925E98B4FF84E9BCA58E5B6ADC9540C40877 +AB46E6998C88CAF186F54B66AB78EBD69DB38DCE2C4045AA18F93EE4F20EE15A +80922E7F6808F6D3D3B1157996499E62A25E0970AAF1F7868CD51C96E6DC93F7 +835B961D5773960B7FA5FDF4777540594FF82B8B19D2EBCCF3ED63BCDBA70CC3 +F6F3ED3401585616DF113DD4DEB1EA2C932A23FA3ADEDF84310F44AAE5CCF0DD +FC4D0D406EE0E668E0EAE88AB0D16E09A99E4C72EA50F480FA6B2F9837FD834C +EB87B37B31C0801383E1CFC7619A4238DC959F2C3C6AC0641D807A73D53CC692 +8B4BF5C587E21F69B16A5202A3ED4D20F3082C9860C3CBAB7C2DBCB1D5C39965 +A1A945A7E4EEB4D05F5616E87BFC745DAA833AB3812B827A8AE110035491A6F4 +837796FA1AC64C81EAF9F3A57E5060CAB20AEF8A2D21395645159D92C4F32726 +592D7B317DF7E8BB6424061685298B7C569C32ABCCBB050ACB124BCBA1E9F492 +529A4D41DC73278FBDB7C6F82ADDA2A6D525B63713F11D96815F822397F6871E +3FC22C8A6C6B2C375E88A5295D9F8789E8D3879C7488B16D1C3AD49F1991EC26 +664D656730254AC7F1480D6E0B7F79930EA265173F46C360D81500CAA3380992 +74575E5AE0F0B4123BC69BA77555B30C5F20D6423F700506C1754C47DA7EA9FB +1FF12655CBE768CA40A646AB50E0476FCE499EF2D4CE9EB8614EA93E5834A9B1 +7B2E04835062CBBD054DF9F1A45B2065371FB87E476D71D80E45D7C5195487AD +7403162B1CE0265E667784166B3C1BC9D0AC7F49AF93E0348D3C52CE2EE78D91 +0A3D85D8B373ED489696775DB25FCFC9B9FC05A45C10773CE0AFDAE183E88D99 +E4A2B6F771330A2F066ED625A5CB87C4C3E47CE7306BC056F04A6AD85235537A +888F6AA22A84AEC9C15DA416E6170DC83651416F363AE572995EBDFE26B98A82 +71082D8A38397FF8982844C7C42E96BA14A294CFE5E14B6F7AB8C8106B22F17E +0A8DF41589F93C6D742971BB49CF9FB1351F56F11B411AD32A29D3538262924A +EC04A06D8741D88BFDBCD715BE7684F69240E676A518392FF44DC13CA27ABBDC +6DAC585A0146119160E1D6305F760F0C3DFB52457B85F05C703C7D891263A356 +F299E58952B1BB205A4FB7AE1A3E71CD547604F1C057230387E69EE3EBDD89BA +01A344CDC17A9B6C6A56786C79C1CB71FBF7DB6F3C5E2345AE0363D9AF3F7868 +9488BE1512ADFB4679E9ADCB4BD3C7889B1768CD1165A7ECF7C230748B4D43AD +AE984A2EFA67914E6797683A1C6924DE83C9F6115A46EB4A738D4D1B7A19CE59 +3F7CFCA18D2890D4EE7084A0F0DEACC058A26E78DD8F59E6F7D1206F47BC4807 +0D5D2A7B6613A6059BBFB269983DA248CA257133853FBD2B2CD561D77AD9EBDA +40AE6DB52A3D840D87709876F0DAEE782A4F1B6E7C7D05A0F2C06395049A5EBC +FF9027F034BEEADBBF25D6A675E8C3CD1F3714F7157D63214900BB2A56D157F7 +0C614D104922A072E77B91D87B9F50B070B8F9F2D5431ADF2DD666CBC84E0AAF +80376CC0A2849FE8A5BCB27E593C37692E48E153E87FB77D2906008E9C6893AE +6F1377F5D8BFFEA2C4E1A10BF2EBE7036CA283DABF4203FF3AFA5B8B096B7182 +DEFF4302EB14D713F6538C76449770EB63832153E04E1E586F4DB63F11EFD1CD +354B1B3ACD7BD7B2E726B2BF7A768630104E4EAA2F2FC4F2D5DA81D081A8EEFF +AE5024BBE62CAACDCD40E260F10F608996D86A08F68E2FF2CF3E143FE320D764 +E6DCF94D7C3385F30C4BFDF476B100480F3B40DBF5E321D1099070CF83F75B4C +B86C4FE9CAED2FF7964E7C7DBA4CBEE6EBD0E4D5EE626FFD23DFD8424C33C655 +577FE44242FD95A6033F2BA91FCE09CF9E89175A0A0FB04905D71580CB868148 +885E43ABBEC897894D778BD72DEEB4FFA07C2BC55C4704B970D84AF32264ABBB +6FC4E9C977E844BA5AE72D19F193D625AE6361B5DEF5618BBBEC2EF96C91D6D2 +84672F72012BD5C72A78A58BB9640985FB01A3A6A7418B24D10183B5CD08D3D3 +1A2429A898901994E96B28436E323A9D18B5DA32D588619A6D10FEADBC5A0896 +9B2095D927DD981A4DCC531FCA3BC4DA41AAEDB35BAE6551E48D536DE278F124 +C0E2D311976E3B5CDE12271DA013AFEFDD3FFFEA7BB7366169C7DAB9A8C12093 +B0FA8B5AB97973E3EBE6EBBFE821C6D234D3847DD5D451BB61EB8F69DB497209 +DFCA29CF6B05C2A539E454A833428E3C245F63AD753E6B8EF2856D53EDD735D2 +CA4D2241DBBCD9A1D9D48163EA0BADD699E3DD5313625E40E581CADDF8F29974 +F34EB2C8F93DA261DD56CE24F44DF2CACFF757875CEC053034F552980C6929A3 +C21A4E05617D927B89680550FF94C172B2E90D59FC41D39E3AAD2C1DAB7829C6 +7AF87BB9C826A239273EF3661D9C2D3BD95A63E87C0DC8AC431599A456BB8E4A +19E9D10B655ABA00F976A6514D087441946D0964464CAA489061D23C5E6379B6 +5F2C02487CAD8E464A21EBE90FF65FA880B57AFB0A794A561A9EB5AD0B55A5E7 +37FA60320A8B34DEAED8656E62980FD16E47677380A60BD3C0B382A4F657446F +9F0DF83E003DE39411B2C99B5D8DAE44AD7DAF39A49B2859D0CEC13CE69345AF +65168DDEA7ECA7E3C2937F86C0B93B2CEC360CD92B64011DDEA7DF738916AE68 +A30BD8C08EC5CFD539FB3C6071F24A4548FD972BA2F5CB753A9C442BB96B33AA +DC06D300CF3352D18485589A9255A2640D37BCA8009422B6DB991A10FAD1ADB7 +32152C74DC0012147F03DEA6FC8FE091D3850ECF6735B7FF1AB1B80F946C4EA7 +03E72080FE9BB5905FF1BA8943C8D3EBB2EB161C49DF09463BE2ABB6912DCC33 +918C78091B323F6B3EE1D5CAEA627FACFB67C0C244FD69FFC908509CE1C667E7 +C883904CB80DB6CA34F062428AA1B50859D07BC50C959AE81CCE029A7831288D +CA879DFF0401387EECA5E46664B0D76E043C9762B28BA6D4C780CA91E7083D1C +F08B773E9C8BD2ED21F792BA32152534BD6B30AF3583CD768AFCC1FB292D1909 +D0101951F88963779FE98BFF377FCA7FB2978BF9E8BDCA822015BEBF31BD33EE +5B8287232FCEBCA8A9878024C8C42CA46C0A050FE3319681EEA60EB4669044F7 +0A9024954BC595310AD2659197B9A233973BCD557833F0A0E852F5A081FDE5B1 +A0708514C59DEAC58B618AD7E10A5340D1230951241EDAD9513A336FE31C9D5B +DBE230214EA39F62778B20A4BA937D8FC53DFD1F14D146764CB379859AFF033D +A604E798C3923224C039B1BF463F26F5DACA0773266CF98601168701648DF177 +B4FBDD4FC9056DEC6CAB42171DFAEDDA9BA8A497AE06A7F2521CC61C4E2FA00A +8DCBE94336B45A95087FC532923D1A1AE9830E08DD79788BE6AFD7F11A297758 +E1888D18D8983EB795EA6B370E32F8C78F1A8E5B25385346931C6259DF6B0418 +2BEB763EE08083DC221DF03C75D4C06720A02AF3EF669C0AB2ABE7E932AC4B07 +DCF4C7E5FA3219250C9F671277693F54DF5C1E664DBFEAE956E7DCE5DA95D92C +324F04A10104CE1D91243874F996E88B64FEC0A46CA36162B38D5224C90A3E25 +8616226A63FA0446BAA65A4E3379FD81994FB41052B99B12F0F01914F52FEEBC +C45C2A9C63BF05404A856F15697C9696F868696F21E9FC20712332249076352B +60632503BC68AD8766F29F995DB38863F71FD046CC587AE2ABEB2694329A18AF +0D6FD06EBD703C5B35355DB1AA17F60E3CBE4214C1894A2CF5FED8100519E992 +707D086FB54D3FC39D3921FA85A90EA43E7C2CFE06E79B733D06B31B4215281A +78D241F7174EAA552C3E20ECDD5870C14F29BF30A65C8AC0B72897693BCF134B +C6B9F8CF269859188F397DE34F85A03674F3F43020C5764E424069A877AEE504 +BBF768B02DA90EC811B2C559642CC8227658790BED33BD495EF8FCB444DF9610 +8FC16F11398B13E8FC23303CB99F5F7A9B0E290D82CC694AC1D3E69DC5C4636F +8B89351558E97E3EDF43DCC2092C0CE0D630C8373482971420BB65588C4863DF +29EAB9832F503FD1CA0E76A8E07AAEF69AEE709832DFAFB61EC72DFE52CFD761 +0FF0284E04A25A425364D4AA0CA853AE758A696F08DF98ABA55B86393F0DF124 +8EB752CCE51A5ACC7371AD8EB908697F0EB4B27FC16B07FD930C08740D0F823F +FBAECC5A9ED534297E4A210C5394F4F977CDAC91A146EAAA960CE16F65B7F93F +C0817CBB32BE067CB37DBE12C40FCF4AE2DEE1DC6F76696268D3EA51A2A3BD29 +48B2BE3AB36FB87F4EAC185EFC7D8F39C19A4C2A08F9FBA68F8F0E29C3B4A715 +C1755CFEB2E5D49C87DF3CFD5E52869FAE6A4E6FED88A1015DB3A4FAEACA2103 +1CB4F460640CAD52A8366A6EEC9B86939E4B1E2CC08EF4BC4CE8D1BB2A79E9DA +68ABE7BFA41520D095B5D1FC684D727E0519AD893C7B90B3003BAA253070328B +9D23125A15E5C68A12E31D1C9A4780C07EFD9D6C4F919A25249D21B2F675488B +1E266F76A0EB30B5171044E8B7C51FBBA3B6EBB9E0F4BF3054703BC41326FC87 +D751A61DD13E9742A04E8FB930D69E8C6052BEEC1C32284C18778A30635F6CD4 +820CD2B7B29F82D632555F457DDE73585735DF906EB9BEF67DA0882AF9C2DD2B +BBEC442567DECF96528E26DF456FFE79F91C7F078ED9E32E5B2F4CB49884247B +B4DE0132DB1D5285ABDD98A751D177A3FC323A4F386362CA3C062AD76F899DEF +1A8311F6E1EA5456D523EACB29FC2EB6D05D9B52248BC88ECA10D7DEC4F1A1D1 +696027C72ABA3E2690AB1F95147EADBE3A1D9409E70C657861FEBF000BECCEF1 +10A492C7B858A475089016EAF9EF44C990C5BC3E7B8D7391DE32F3E8A2BBC304 +3074C5C04E0F9326B879280CA0E93EF1287BDE0877C6680C840B55DC5D44B8A1 +1E810FA580237546805BC1859132DE7086B845077F6C5C3261956A12960DAE5D +5340341AA79036FDD1DBE609FAB6D51CA8DD622FD548D1926AC57233A0DCD3BB +5CD36B005B47D735CBB91C000C49DFCB43CCB8883F681433A844A24D143DF658 +154BCC6F9EAFBCDA7780A3DF92D29B5D153C3258B306258058269AFB164330A6 +DFD4B07E4848B6FA40143A2FC741D4C9C4251B7B722CF5991D46E863BCCB2A98 +A6A4ECB03C4BD4A5F0F4B7EE685E8DBD6DE45C7B0C8634CF36C4CEBA7F6D1872 +D8CC8ED911DE1B53E63A559E29B17694C5E0D30714E269EE6A8B70ACC1469933 +606076389B064A1D781B565F312ADA8AD0C940AB1F80E9BDB2CC071373DD7671 +94F6DDADB05F7437197BE9392BFD89FA01D6AE0992FBA0F82DAE487F9AB62411 +9477E489104C53710FC3AB90523B51170638FBB54D6D223CD107C9F6F7C0C0BF +D494EBF7AB56CA569945089543B0973470B712A104DEDDF2C94AABE8FAC358D2 +7CCE604975B5570489940D9EAD24E7D879935AE6E34C80C22326992CCB41AB8F +50A8F11521A81DE6C033F412085A485D63B784EFE9F014F69784D569FD1221CC +2E1D2C8EAB712F077A05F407E7D032A1604034E203688C8A6AF0A8C021DF2255 +1D01B655E705E5AB74B5E0DEBD9B1406D5DC7056F996271DB8EA51D36AC279F2 +E3C16AF962AC6643550BC4C1E7DB6CF7AD08CD1BC7E551777FA4697CF28EA2D9 +986AE687DA6689E61665193443A05B270E5BDD52DF309E6743A3C1145E6CCBBB +35924B135B925ADB649013333CFBA53EA8083A6811B704E10E9B05498BE6FFD8 +3A01E32192F2FFAE62D2C8C7D7EC9C01A9E314CFE40512B5DE909C54FA38FB7F +7D20C84336C82B3FF8BC7F3AAFCF1ABF099D16392173A66BD7B182DE1FB75518 +99B0C04D5626771548B00C27C9FA27A767255799EB78536F5790C216CD96A8E6 +27713DEC53F2510BA395914F9A3B66D41D7BB11AE33F6632FC0B00724C280441 +FF89BC8BF026011EC233F263D977235CB3AC4290B088EC0992AF11E16C9F55E3 +193DB776B10D12414ED6D5AAD7D8B13859D2128BD56D70C848E6326855E5AAFB +AE213E267B30A61FD3F30AA37056153F1F7ACBF989CB2721F33E0817CE474DC5 +847222152928F82547AB10E816D431E53C2FA4F262EA68A25C221049D89B2ECD +111C41A0848DAF44103A8D8EC8DDD53BF7F31988A54A973E09F24F8E8E621BBA +19CDA2CF86F253BAFDF7E7FEEF5D6FC6725F788C1CC9EBCFED3E7C2573505229 +4D9F928A854E215C82B94FDEE62184961CFD7C54ACCDEDE1ED16ADBC456BFFFB +AFEA9B7397B3E0658770A6FB01AA9E34DB8A737C1996E0F90A015885B0ECEF3C +2C2AC493F893DB8B86841DFE88DAF23C88F6C24B1F0794069AF96194055BC435 +F8C13B244A3B2C3DFE0616C3FC1F08D0B52936E89DE7189C0C957DB6521CDD74 +1564BB92E1F0A56598D032EA0A39F22797B6D9F831F0308B76E46E1D6D3AB2A8 +A05EE7ACD4A4C31AA4233FDE28D080285EA0FF48CE1C107E45D9387F2F999B1A +6202D5B6D12800F28496C76E2428FFC80D9E3B31037433112879B4891412C7EB +887D87C8E85F1BC68851E9A468B64B4EBAD095A3FDB72DAF8280766BD5D7B7F0 +D8887D4341258F01A63E229C07D0EBC69D38E1D6F4C0C2E0483DCDA7EDFE9DCB +F9A278C680F8EAF5670CD73A96A48FB04F29AE39FA9EB50581999E6AABA0ECCA +4DC07907354F23E5C355732D6A31EF4C57A9DCFFE9A26AFBE2140FB7779D08E0 +9F283F344EBB7A7FA3A8C64F9C46DC29F21DB098ED82E3B210BDA1B41EEF4700 +6E449891D8F74EB0B98FB6DA134A6DEFFAC4417E868B32E04661E35DCF113B5B +67B6E9693B5E453536F67F41D185228ED49DF6CF919E0215D69903A62038615F +B0F5E286C9E76A920F43C2C84D80A74EAF34EAE83BE2163A134DBD683AB93F87 +9D58AFEE0C626A4CCBC33055B25DD8D48ADF190A7E433280730CA9C0DDB45215 +1BE21DD6906FB1A13FB69838EA9638BC4A2A554A5A1C2ECD78F0200DA3DF326C +FDC3D332009877D0793626F9CFF47313ADB72F22DCC154925ABCEBAEAE3E93E9 +3753C0617C3D7FDAA79977D8D18DA107FF73C478E76AECDCE5FBB8459EC38334 +F4376C9DA8C4C34952C5973C2E3C45576E1579A96D91A27F2690C23ECA59878A +411BBD865A195EBA0F4136E3F607EAEE1AADA2C91AE2CDAD61B9130867934937 +83D61C38ED1A9ABFC0552070B8C297966106EB1552C02B39B8C41536282D1AFD +823DB39103441264E193D6B58E14A9E0071663E4191BBC2C0A57085065813A5C +C8C6DCB462AE450E210F9BCC810C32C0832DBDACD3E32570F05D594B098DCB0E +88107FA8EFCF2DA371B6A02B746D54522AA50B766C6A89CE4307B48F08A9852C +00ACD4DA51D599415B8D175643BF71872DA3FB41D989B397540C3E0CF41705C3 +B54611655B43D0D9B05B9BD8547B6F3EEE68730FE5E7297F855931D9800F6738 +8306764A8FB52F42F30E59408C6532344DF386D35D86BD526ADD54E5641CBB4B +41618CEDB6D4F57E0DE0B5940FB4CD08C2261A90571439E0C88AECDBD365ED17 +2C5CDCAF692127E2A41E152F757B93B01691EDE0D8C76EC350A1DB329392D39A +53A44685FB388A94AAE34517840D4ED3941794B25FE1EC897C7C5D0DB66DE648 +47EEDE3D87A55AF93E56F5610C168BFD84B15DDA8BC03B7D6703AF1A03F349DF +FAB4415049FC3C52BF1ED0D5FAADDF1142974DAC562C9B047BCDB13725061962 +0526903ACD0B94C58CBFF02E7F64F45054F6FAE2ADF5ACE218C24B11AB2EC04B +58FAA86C26767610D249A9ADAF6BB2EAE646417B3FBB488BBC169972038FF48A +471F9E50CD8F716C272F8B0E3AE8EDB403A2947CF068D8E03DAF6FDBB138CFBB +018EE8748817006DDE488F51120F189B9DE91EF79DA71DA19637B9AD8EC8CF7F +6404F9F83D13AA77E6735C3761EE2646C5F388DACDEE30BE1A5262D859C8B438 +F2F353507FC2E2F6187CDEB7B065335FC663783418ED66306DCFBD578E05BDA2 +C877A343A5E403F7799ED3198AF6FB468E5903C6085247BE37795F948BC408F4 +FE7A991E78AB51D2F29C3F38E13F59C86EB853D5F7A75DA7A75A8EC30A742205 +C8AE92B70075D1C48F3726FDC2385C640E70A15E89843CB09E8064748916510A +1514CD64053FE97528E81A763901307296CDEC6E2B37F93A9C74E3BC2E50265F +E21DB8E41E8FE978D7498BCE32A44AD7651F392AD24027AEAAD273A328E15342 +E1FF7ED1EC0C4B5E9B095BAC2BE053647289B0C55B84F4252340CA84D9591B61 +3205A7DD75B62C3AFAA5144F9D67FF87A46A2A6767F819065946F924907A7280 +B45895F206BF74C0779D97E4EAE3C603BA4D410C8F90C876BB54639B6E0F765A +D118E04E8C375F463EEA953AFAA4BF53FD3B7DC0A082083B02AF22C2CE8B9FF0 +1AC680426150553E9758A50255BAA861771958E871F3D5666BC50ED83FB22C4C +9C4287533707B188E231ED7EB093D465F6C4D6C327984436CBA46FE22FCF64B6 +0DF396983C0BBFC87EC98C919907A7B5E9E8B561A0140B97104FD4F7E4C2EC27 +3809C7602919E706A7A2FFDE66AE33816A1C3A8E51C9F88E852A972DC4F131A5 +ED0077D0E353D7EAAD06964924804343D9B7F393545D4C8F5DDAB6D50F4A08F8 +83541C7480A23A3EEBBCDAC260CDBFB2E12D6E7F2C7433C51D4C70FE0B7F523A +66129C6DF00845871A0FE67A7957B30666FFDCB71D8392B7551E9CF7C21B56ED +D0C61FBBF58911AF98A32B0DC8FC701199AB66F77285A759EB9F50769CFEACDF +96A186C04E58BFAFCC1DE1BD5A2B0503CA1262BD509462D687042BA35702CA20 +A7AE491ED7C17263DCEC03D52AE63F3F16A671C5AEC42DE2EF8D886AD16EA96E +5B38711AD90629DB7302F0E2E1DE23D8062659F26D93F1F5F408511C803EC252 +09D0CE1B893E9C8F2503FBFD421E998646875B530AE11F37687A4470E4D33793 +5229A8321C9DE75319C080F7E3E6F0BAD45E52035E9C272BB9F0D701EE0A71D5 +17FD88531805F216E9CC33338A2B5018BB41537F3254D157274A6ED761B02966 +7A2B18294455A7A9E6F5992C17540AB7BD52B276CD5985674876A1D4F6DB5B5F +CF9C0693E4C7616C26188A2558E36A55E1268770F907E21D2CB929A3C37304E8 +1F91CE68C9998C66F133D409BD6BCF2514B633C71E3B91312429277617054A70 +C55486173032BB3843BA5034A00197B0EC6E506986182DA1DB46604A5177D4DC +858DE05E02D63CB29B9763D0794F02B8BE1E37D6CC339130768B6819C5527E11 +265783BB8C1BA768AA9BA175411CC9671644635A5099A00D6DDAE62E6EE044F4 +1A7F99567AB0B05152A07A0CA0E01407F79E813E2E674F72228E5DAC2F97C5A8 +F15555ACFFF94E29A46546EFAD602297F09B2378E222A3E816AC0D5C4B23FCF1 +56D811309EA040801BABDE56F4BEEF754FDE69616822DEACC0F245A21D22A748 +69FB7CD829B39C222618EF61AB1EE2B5520205FCC450EE1875FED1517B2F443F +98AB53C5CF7DB244706FA4735CA307EA55E658573F71897103423DFBA2E6EB00 +1615F316975F296503C2557BEA5312833B13F9F9414F1B1EFC79FFD49E9B07F7 +E092A8B062CBF1E969C0B23DDC5A532E8AA09AB449F5C3074505681D0534C976 +A41F63758364A9D76C4D2AA94DE9F5EE995F8E8E775A224336F83F42B6CE94B0 +7B33A7A0795D0AE46E64BE9411A3D0FF6ACF79D457008056CA5AB73C443DBC79 +2C6934DD8196A7A48292939CF62C4876C4620CD77E9520D9BD7BB41C27ED8CA6 +7FE4E73496F96250FABF549D616D184BF229CA55F7BC0D599A8D2BDAF52CFB1B +8FAE9D2CFB89E91072EBB3B39D723F8616A68DC8BC43E0615C58D66D8A42C77A +D2D4AC8486AB09ABF089A98B925927BE95F8F1CD2240E983ECBDF9296E55EFAA +BF2F69EF2AD93FE1303FA4F0D886AACEC1717D6B4AF9EE34F3518B418D1018A1 +170172B9255B690699B5DEB974698BA493CD296B20B60F743674B919225D9193 +3A1CB3A7209DA6C58917656CE377E5066F40F84A524874E1FED5C4C6CC1523FB +CE8250E974C51E07CC53D8010F63F16BBC7AF558863065B2E58ABA2F90E2F7E7 +5D07EC8035F5EC3415EA22B578A1477AFD993EB6C9E75DB2A365746CC952136D +4E0EE67CA9B1D43A9FC493E915FA13AC31FADDDC85A038C288E0A9C2CE07EF5F +AE73876BBAABF2822DFAC893D47025955DFA2BD39BD3E392DBDEF8585F2DFF85 +5826A291D71FAE43F8F2D7191071327B529819709EAD836E95037DB81A766C96 +CE171E6806DA686AD6624276B392F62B4A7AA31855A1B5373AE00E1C6859D3EB +4228E10D6D60BE79C64259061CD3DBA6A904596A78DFD7BCE7B0F936502154BB +D1D32126C43429AC06A53039DF80B1901B83043D3522548D9E6C871C05B50804 +16A4841B2EA331BA8C7FB8AF15EC363D1A5606B694306766B2E099618E185D51 +361FD2E17A69715CB8C38FFF0293F9E87AB3B9E43287584F046A5F3147D6D33B +7D391BA59F84E1A0154ACDBDB84C17E0400310C9455559E553771FE7BA63CC82 +BB1FFC2CAD72332596A77AB47CD3D3D82E92A15F0A0DA0944366A9C4D8B44A16 +A6F9309811674847932BDAAE99ECAEA4B82E634C4759BA1F10884793EC175317 +F9AEBDBBBFB7173DAA22E62499828808F13C9D20309AEB114C9204C9D3D25D9F +4B4D0F7104C7E092F349B1719AF96042A71079E57BBF0936027A0CFE7662B60B +58F00769FB19A668A6DBC544F790EA26EFB2454DCEFA554C1E8E883F4D2D6BF4 +0009244EB4092EF0369F026AFE07042D1C3BB5F3A64CCC6FCE615EEACCF1C179 +1BB3EAE3AA77C89535E586F6C7330CDD037F4681CBC57873CA7DB6CE342BA9C8 +5C712F04F7A4F0FE5422DC2BBCC14866C2B23CF27C476B68CA801721EBF1AD7B +258C16E3E8FE3041B6ECC4D811380CA355A1D0A0C9D4B9401A10AA4195AFB52A +AA5272F5085EA326220CFC8F35C8C10F5926DE3D701E2834DE9CB189C3E45BBA +03C6F6959E52426DC8C6B1A8FE642EAAA486E61B1C1A9336BAD616C26A78F1F7 +E17D3D70A01340B97F3853A15479CE01E93F0BBB9312DEDD5759D895774E2513 +307D827C937F6CD6A9961BD3F89FD4AF87406D07669C1C1B53A29970AB9A6738 +65DEC75AE94C98AE5DF8EAC77C8EC32F756E8CDEA9FA80648D75CB83EEEEA764 +C076B233AA7BA433942BC60FFC69D9285B38A30C244F429B393414274750A690 +56C93AB14B7BDDE24A0F1DE116B93E433CFCBC94C98FA81D3DDD44AA960DF57B +249257F3A4C022B377453AB9D78D9571263EE81617DFD6521D0069584AD057BC +06557016963E87ACC154EE009757F7177E4BBD960E8B1F008FB1062273829254 +0BF6E1BA2E095552EF1392E31C0995A3EC580BF0B49A64D90A337022B26DC586 +3AF9C9DCE4AEFA6393643023E8C93C980786CB84B7D6E310E17097A781E46A59 +E443D3E44AC2F3ABE300E61C10D15DD20C0F76DEE8B1F901B7EB06767370105D +1D443832D4C3F15A886CB14C12232FD0AE0678FD5DC97999490CD98D5E8E196A +F3E461F51276022B55EFCE05A54125E3E58C96B0FA34BF12069AC382AE128B91 +223C952DAD6BA2CC07389B1B6D34AECD26223ED76D3EF169EB539D179CD91A3C +D5A425FA9E809C5C5693B349D8D357353A9E768422ED7A1A6EA8676F44EB2AD0 +1907625B4D488F0CF156C9F8CC9B03A40DE245271619D6308A3C40425F499B98 +8911AD26B4FE13BD2F668884DDFB7472EA5251C3775E0A8640E2DEB3B6A59964 +1DCE799B8F76037013CD1AC3AD5919A4789CA3F92270E82BBC3222DADBCEE488 +421E336FAC71E01C28FE546959219CA29293BD195A252182D16E6D64E107D198 +F7ECCFA0770C793D2588AEB3E800E45695AD712885BA1D75AC1E379D8E51D470 +7346F36C9625A3CAD05778D5FE0F683719CA3BA5BEEB403C66388AAA8A471ACD +583A5E3B3A48283492EE66F4EA046DBC136EB1C96751C217628AF978F4A0C7DA +1AA4193CC8D2ADEADD35149A90CEC46C7AAE8A7E1BA94D40C9C64E39ADDB9626 +73652932C9030DE1C4AE5C0ADB308D63DAD58DF45972E41153E063AC7B44F1D5 +A003004FB836F8EDC193207B523E7EDE5E3F4252FA09856A02BE7FBC909AA8E1 +181DED5469A9931798D3BEC703B6BE2AC329779AE5D3FF4B0A350C72E1AFCA18 +B612E7E928510092B5B85A682E865AA594B5ECF377AB3B27B57155E0A2AFAF65 +59C2481E195CCAF621E170A7E44972533F0D4E833A92627E0AA2AA50DE928E13 +FC28971ED6255E377C6B5E0B69B270DEF25983EC4B8E17EEBC57646FB660C9EB +CF02623E3FBB10BF0F02BD1F1621080A613B997A1F3DAEDFCCF73A3F872DCAD5 +C7583DAEAFD5B7307DF0640315834788E029A65E820BE087A0D63450A15E16A3 +7E5240750B0993509852021844CEA980136CCD31045F006D823AA2F4CE0B2178 +D86C438837A5743A2CE3F926CC0D1ED0607EFD5B0A146DBD7C161D1B1B7C3D4E +70FB074F8C7BE07A88B86794993DFD1E3694759AD97B1FD690E8C11CBCA82766 +D23994DD1F3E894EE193C95597BF6B866F9D18933F163A31ED70F03F87B4B3CD +9A2DFE3E972E8DA94C40C0DBC22E4325C19437152BD08A4A5E9A8312A8ADF4E0 +D6896FB2A106D695ACE4B0F24F3544FAC559233EE7D3A4AD4AF56C37BD5D29CE +206BC82BCFD7C8FC0E58C9B209D54EEDCDDF609B9A84D82D761E59058E36D3D6 +46EE1D1A9B40E76E469C0B573B5201B392506AACC2619CF80E1F4C67C3E9598D +17895BED9B139D84F76D3C96E5EB88EF7A22C179D88AE09F7D88B97CB469E519 +7135C55372AD866438B1CB8AF208A2D4BCBF6F3778B23FAB5599088D840DF130 +94E8D6EB5759535CAC44B907E0483046CCF398E4E81DE6B4BE3018770B50CE44 +0007EB97788E3600B343DBB991B4B4B61EDA433448762912D423AC60B1B8BA71 +AD722A7EE30E46FD91B178294942EB78B320EC6EA91036EE9190E35A2D92FDA0 +7D913B20FD3D5A07464B5D7C6ED1EDDD84DEFF0C3B820CFA3A0BB1EE7CD994F0 +D8DFA8391D9128B2C33274F8067B34ADBF44990C3EED138055B37633ADE0ABC5 +DD0AADC2B5399BABDD8DFC49E267D6C9928A301EC8B27B36C352BF7A7CCA9A60 +8FBCFC0CD2CF1A63E6596A8AF9FE876655F4DD971A82A43FAD9BC6C0BD42610F +7E4CF96D9E30AD704C46C6EC97D06322E5F7519C1B77BDBF156734AA68F7A55C +2CA1DD33208DDE689F44683B12751FF74866930A55A0D59EC5E38E378C1112CB +9696B16BA553CA6EF36920B3A9A8B31F2ED3A5B60AAE400A945C7B8EEA75BB7C +01A4F77BB95BF48869FF60B3D9171A6F8791FA8312B629C089606B6C8D16FF21 +89CEB148DEBA5CB95ED61B3BFE1BBE0EDEE14A119BB1EF2AE167217568142BD5 +AF5AC022D6B8F5AE8979CFD3C8D3BD5B5B23045E60D419B13EEDED24656BD6C4 +8470F6D991DECF7C71F99E3E5D7ADE603E9FDF6DDCD21F916EC1D1266CB00960 +68B916F199E689C99BA0F449C6D9D02340B3DF54C0414899822E60BBD8E1514B +235B9639CA2E8C9BB09E8D76E60B3AA6D0EF79140873B0F42024FF29B58C92E9 +01374D665C1B3B88EA30BE2388FCB51A58F37074AEED04DA072DF679E75C6706 +68925D2B4B1D3BB772FF2E4433A54F2CB260FC046EB1570F5CD1F37CFA8CE5AC +225440EFD2E077537E065F759372626FD0A7A2CDEB90D86C98247C5A6C3896EF +E5076891594F2AEC9B82DD511F27C26B069662C205A26A448A07DB962878139A +4B632C785BD1F866CDEDB3965B151CD2177C17D6427ACA2457B11EA066D60DDA +6DCB5C1F39DAC4E86A70E252070A0E38D2AEB8C5112E37C94BDF4FB0EBAD77C3 +5A06621F537BB5914A76286C47240ED727088E236A8BA3813751A60A43ECDE8C +A52408435BCE583A58F9B0C905F4A31067AF98022B034E5C5814E90581935BF9 +9CDDE3D4ABFD2F903FC1D7B8A4DB0DD7342A61A570F102ACB82D45B01C32427E +B13FFB265A33A82CD99977A9ADF695E3ED870AC386F2E330C644FE6167C2C831 +2F82BEC6E6ABEAE44B99D2E0D0538915A5018F43F67CB3E6C6ECE65391CF2ED0 +42F0EAE373DD4A35CC92D4570897152E340F9F6F9FC19B2C1876B7A98D3F58E7 +8E9AF1C8F944B917D735B9CC13D1D4B0FE675C9013CC830FBFD2BEB689A3A80F +0894AAD4775007DE879F92CA2AD90DC5A63CF4C50869E0E3022479323F52FF7C +D4BFFE408C7422D8FA29D7C4369318877792A905BA602546EAC573989B8F5746 +FDFC28D0A005EBBFA2D93EB59351F020F1E996EF23EB3B9200DDCFF575C773E6 +ECEDB91FA4EFE22C42FC82C75E8C6DF82A81F735B3DB59084CF7DDAA339C752D +56822A750E8BE5BE77AC13C924ABD1CC9CA357D403B3EC7327586431B1D6CD0F +B5583A732AF60548DC68F1890FFC9C01228776745EFE4DD2AABE7B14D5297166 +53EF696C9E89DA21970026FDA0C09F782897CA66C555A4E24FF0EF2B8A530104 +66744FF59EADD2571C0148DBBB96228ACC1E96D85FA21FC99FCF5410A4055082 +8EF133715D76DAC056351B376E2F0DC8D8951CFDCC5CBE7F66BF0DC349666782 +7AD62843F3DB7EE7F1DAFAA8D31DBBF47B3B440958506E92D1D637A507F37EB8 +04141626149BC39E33DF2E17C86BB2058272FC003E53353F9A47BE86EEBA6A08 +B6B80E15C93E656F87777B0BC32365C40B8596DCEF0F49A91FC4E2A3033D12CF +691604E22045C5C3AB63F4E235973B1175756791A2CA2A4C2C847BAFD6700154 +61D93C4911254D3A1C661DF4AFC10894A3FF872CA81E1D3939BADA5EF04F842D +44530F757271C2E0E4ECE6C66FA5CD8305994B4AF47836B67BB4D2E07A0B19E0 +DE088B9DB3B339991C3EE279F9B1DE85EFA6C02B8AE0652CFD462CD7DC163BFE +B5F1BEB750E46EACB773A2CC9574AFDC2C198E3122D845229488CB40CAEFEE94 +B3205D54E50C9A1603CC26C8129C53B65E96E92CCAFE322F360ED51B79CE017F +385EC6D8D6F6229CE052EEAE171315DD312F5CC4717703D1098BA9988A29D897 +A3A023C72C16F0F85EC9FE9397C81ECDA82E9C91DE6CDEBA2D8102B377A2C521 +73E8364DE6B34060282EFCE021E3860ECF98A135EEFE1C34FAA2368AE8917431 +9EF0EE0100A7CAE347612BF48E3E59F820B02D4E4C884309D8A214AE8B16690B +860ADE28C2AFEBE0AC4419DC1A6C148FB4EA82F48251BED173091127EE26AD31 +79437E240B5FA34175ACEDC270287600EA37BEA739E722B5EA76E6D7FEE9A470 +D1C8810064E266E9C45A49DB7126798F8B57E1E9D117C2C97AA54CD59274FC70 +07045C13E4D273B181B0BE8D27F56970C54FD87FE762F456DDE5AAFC16E97A87 +7791436A52E4E1E9F5B15886DD9FB8E0C49CF28D2ECB141A0E990100E8A06199 +DDB6641588FA06589BED83228ED54EEE9993155B33ED5F7BECBD7AF1E2BBE4CB +41373A316E467BDBE3050C62B18B6DE1963AF5099586C4334F9B3774E764C0D9 +EF6A897B08549A75EEBEEF2A68C15EED93D75A3901081826408789DED9BE5990 +B5661D4A1524A76900D877778ED93522C1078492A21B092B1C145C68C819A19D +F3C1112BC48BE9D80522945673B3A313EE42D0CA9A52BFC5F8FDF8CF6229568F +7BBF87EB5A8D55A3E85D44596EBAD22E13F9B94708AD49D719784AE27E556675 +44C73A05D2E26C9A3F227AE328E13BD70DA46CE9B797B0C93C224A3C7823A945 +C890F9D8E184C6E40301C80F4525EA7F5E1539EDC983F145EF6164D222DC7824 +74C00FA7A620E79DF97D2D477B0E8C8C9FECCAEE70FB6BB77C7391B8D7715C9D +6A25B6BA53C7B58D8A9540DE4ADB4F06BF9E3CAFDC72E1508F5135466606107A +591619502090A676D7AA306196C9E2827F1859908BBB0DF08FC2E9205221A8BE +17A3DB0BAB97316E5377B06AA962E54156EBB2424A5DC7E4E67E46E13B631E0C +997FEFDE97B60BEB2A39B4B521B7E4E191FADAADE6ADC24E50FF69428F1A1EC1 +6153E2296C8E385F6425D02F6797AABB197BE11E82AB02B7E1CA4BF90A3AE60E +7E4CC4A675D0626CDF144EB54C442E2CA4303E1371ED5CD76EA056DE740DF1ED +7B394DE0FBF4170B39205E16EBC86DFD876DE09D5D59358C7183EB09D1A5ECD6 +B406DF7BAE6DE0A8AB51A073AA831B2B21039F0AEA8B81243379246C6276519B +41E71392D711B4532B5BC59AD67EFDE638DCA987C08E013038DAA5B617816537 +58E975A00D1E0EF561EAD77E311174D593215253D62AB4B218D2E6CF5BFFEC4E +D03C7E2D09B8E3742AD357DF779266BED30AE447384BAD916101134BCC79F4BC +077403DB085DDA981D6E1E3D9C3F7A67A2239CD7DC34F7D28CF39133C1AF7238 +9DFD20E2FE81F85D1271C6CECF069A0D42E548A5ECD5BB242CEF57F6703F0A0F +DB1673071D1C4FFF3FEE3DF84E50D3D4A67E07BE47F7BA51983F90180FD3C8B8 +02AACE550540FF35B344C1524AB379E0CC54142E4EBD8D008D500E4B77AA7780 +C4622422483FDB50A7619E551319DCC4A71DC8C4A2E04D333389BA5B44F48815 +05EBBD7E409D44B2C1C0476178A3B30913ABA45A9A500DDEAA3B9DD55E509071 +E86A019F2764C25B69F0AF5B7551D61D23307DFFE3DCE27D4E21BE17D7FFBF5F +D7D5CB43E03A15461F598FAAD92C2E2706C97F2B443639A5CCD3BF905CCBB823 +B8E7AA9EB2B7C308C7870B0A0CFA50A5700E6F9256B200D2C09D594BD3CDAB18 +F44183B58DCEFD85FE6125DED20562EE4A59975455B2B314015E69223951CED8 +002D999E39A872E49C7B61B60F5826238C28409B6FFD0EC8D78E46B4FA5ED655 +E52BE044302BBE91F91AB03BA759776338494EBD62064552CF2FD76979EE856A +3B82D92D6B0C5E2F0C65B9C487E7DC9106EBECE7B38A41312FCBEED56C1A088A +FF9A21403EA828165C461970470CDBAF91D5102B8544AE273B9BDF7B052DF5DF +3411665262B6841EE9D128DDA34671CA75960BEAC9CDA3693644667B1A76934B +6A82EE27D33C12F4ED679520C3E78FEB018DAC36DAFDA20B36D4CEF7E3DFB053 +C94D86967126A41DC4E5E6D928689B9FBBEC3EC69A1BBB7FC0CDCC6CF6666C9F +0CB9B3EBDA8982D9ED102CBC7D22DBD1E84C058337F5DD4699C58AE7A20FB592 +98AF657F6D419463E5C31B46A9C51CBCF83778104BBCC947C26C1E7662759778 +6D0A806C044849D1E905C499CC538EEDDD4DF0F8216CF057FD40628C8399675E +FBA6740FE9AEE8297D145FEAAF3C504637D1AC4324323825B4E804E7EE4167B4 +A6FC5400D011D674BB6F28AEDC5EB1BF686F24837D04996EAD71AD60BCB071D9 +738695106E7EBFC25CA7CC41B803AF78FEDDA47F119C46B6BC60967836EFBE02 +2432F63599D117AB147DEF5E0D32BBFDC141B36954C63208E0A22A95BBD8BE88 +D06F6D2118B58620D77BC10550B1B3BDDC4A9BF101429593DE7DD01929E74467 +737ED91B330B510875BDA6B539A40835D8C6EBB911E8680F054303939107E28E +B5F941AA13B87E55D6984B9E6244CCD0C2D684277E3D6BB7C8F8DD5597FAA23A +10192150785CCD4DF6D176A74CD8FC4A6AC1A6507E5B850CF1AA1886EA15FA67 +C5D71AB611832FEB963EC33ADC61D7B7E794052FB60AE0D4E45CE3C02780007E +BBD62309025233123C4DE387B2F17B65DD06199E664C7A2865D50063D5133A86 +BDE50C8F802A9FC4304C073481DC25F956E6FAC0BEB5BFCD24286E1A52E9005B +AD9C3F4A5D7A059435A71C64E8AF7E2DD731234DE31E3F5E1410A3150FD1A7F1 +4CE3E5BD60E78DE9DA8D087EF2A4812BA58D3508F01F0C4893B82E5CBD424496 +DA070416D10CAC66CC7D20BB8586BEB9BCC4968A15B7DAF77952B2D586BAFAB2 +6A895DC284E66D0CC876DDAD4052C2E544E83D0EA56F9A498F40B340ECBA2307 +F334D952D0B00728F0B8DCA542E7F76C590DE8F62B5AC3E3346BED5289DC12D1 +06C3F725E6D74D04921B369D9DA1499B0D292AB30EAFBC70D7990DBCBFC2BD73 +68F48C68D71E54858441968E86095591DC17A074282AB7D7131951D7226ACB6A +F7F31BDD1363C1385B5ED4C387BDE58DE4DEB2FC342128944EEAA92807896654 +8F271F4BBB7C0E5904E7EB494553747BFFDA213AFE0949184355F66822974AF9 +9D73BA2F7FAB81FEE8D047569F554605441A3AA2BA6123315E07C9A60DD8586F +1772DF9FEC4A92F9152DAE971BBA00FD1E3760B3C823ACE448ABA2F812ABF56E +4889BFC9B59CC4D6420910215FDE36B36CD01E090A49957995DBC770FE9F96BF +AE1BA85AAC4C67B2F82B3B78178A3157D61D77F2AD36E8957FA035DA20BAB466 +F53110EC6CDF317E79FF56A6678BBCD8421A5037C96037805880F6437CD9E409 +29F1E34FC5E92FF1FB571135CCAF6A1E501D53237B96200D34F3ABB5D5B52E0B +FC2B1DC827A87A267E387379E55177E94AF605D0390A4AB295C1E315B84D9102 +2A017C9BB8599F05633E1130641F6F254C81412EA37EFFE07ABECA8053CDA1FE +AAFA78D1DD4AC8F2A1905F43064BEB15CA10D7725F29D0B9D9134E2B4474997E +D54F84382A66B9F1AF9F183C69903D328599C3C9C328D3420CDC29854E0B6EC8 +FE3AB13B77343B30762E40D4F79F10C6B44DAB76FF57FD939DDC0095D568B360 +7090359336805AEB92FC835E9B6C2E045E8E9517A79BFB1DF7F058E8CE57F3D9 +9FD4C3767A86C0961933EFDD0F173FF87B85B0AE7D39E0B04CD11D731368F5C7 +E47609AC48922E812764D03C4168349D0EABF75B988E23146FE07C426E9D6795 +C772A41FB2638799222F39C7CA5FBC2C8851595061FDBAFB7AACB6A822157357 +8CA4F5220B8B2F9124CDC10014454BEDF99D2FFAC30EEE1F47782AAB2138CAAA +FC9789E4AD3EA4924387E7BB7803766E450729D141406D54466F5FD01F8AB148 +B09B34B0D15BB5A7025E9841086A586433533B375F37BFF2197F458E9C4306C1 +8BDE13ED4F92412B78BC5D407F8734302AD40926B45A2D8CFCA80281973E9A73 +76E5AF64903BEDB19E170007D3B38FFDC3AA28CDFD62DB897FF95D66429481C9 +3B7C79987021B40093C54B79528AF1E3AAB76A1ACCE226A326F0B332085C4C7F +6A70D7D0769B7BA7BAA0D08A4DE25426F8A309BEB24EC9F687A9E766C6269BAF +43D89BA436E6609C02D84B756A85CA716E2CFAF75042A10AE42F58534F152052 +6515B9BAD8592B411DD962E19E01E2E7864229861893825719D06984FEB90D3F +AFB5EC2315D1201FC2606182BCAE3F8907E4BC2C39F643D9D1C69592B9118012 +F51D3D0E5A3A6E3E6C997505F0D13531D8DAF2B54A7B0CB416446F07DE8D7C63 +99664E6DE21B305AC28B42ABB9C8B96C6EF86319D4498E60379B499788948991 +9C2B43F4E40C8C602246D8D04527DFA6D2C8C2F8C0944CFF6CB9A4061B1F5E81 +721B0B8361346D275CCBBED6D2A4020003D463C66B607B28FD76FA3F58A93324 +349BEFB10673231177830FA3590BBF13ED6BB8949C5C26EE14FAE3EC23F93FE1 +CD34E19C9F07430427C4CB7EB6A57720301EC56A2D417CA4ACB611E8650202F0 +7FA6F5D60609CB7622105C9BC28F876CB1C8B483CA798D0E15E5A15A7AF11C8B +BBBD4CF4E207EBFDC86C49867B34F66648AAF656313CDBA8F33F5D4A639CB11F +315C6AB6CF9CB1DEBE5D283DE6164DE607F1EBC7F5831CD5EF358D56E5244305 +B7BBCF4DAB2CFCF7D16323AC272DC3B88745F411DBF377A0430A9E7A1D0AE516 +948FD95414574C023E9F03E91F451B312C1738BBF6B2349A65D8B3CEC492AE62 +C1ED6B1EAC39E1FD18615E4B8EA2F81FCFF574450545780041EF303DEBA85CFF +73EE525E7B3B126053B9587A3EEB85D24D85C8AA5B874FE70D372E4AF3DF853F +55B93F0050FE073C8D693BBF6E12BDEDC4F02A21A42758FA6FFFDB4A0785BCB1 +CD385D65B79A94B089C9CB83D4731647DC66BA052C422F22819B1B6A390FAD0E +841180424D726D789FD56A7D7E76F0F6E233FD9F9C8696F62CEB615355A937F8 +AAC03524EE240D88AEC7E090881BEE4E0CC442BB396111CAC12098E19B7BDF43 +97E9FF55AF1C055CAD3E53CFA5B374FEF62E18364192774D27B80B1C6274D31E +F3789297AEFC7CB1BDD7DEF5A1E2B437F60A9759AE2AE5127BF5195E1D5EF967 +92F777F4EF7CDF16148A24789F471A0CB6CDC03FCE339AB0D16D1ECF05600CAA +743CCC1E7FA4721AE5730A217974AFE77A6FF80A5583FFCE2C66870CF8469D25 +27521A43B339479CB4A2261834257B2CB30C24AD8D9B41B35BF79C3CF8BBA1FA +803C221865C2CF5DA4EB1BBF4710D619EA107DF69F108BE5A1289D6F053023D6 +7A384059CEEDD2781FE6F22436D67704932CB93553134454304145F2BF39B067 +51E341A72FF51BA93048B5467A038046568B0BFB1EE14CE07AC8843DB3088959 +E9F426D2017FAB41F041D7769C85EF16F7330EB00F6A61CC4040A2245AFB1CDC +D82686CAF900DC6885BBF8FBA85D682101D399D83A84F471E17BEC9EA348AB38 +42EDAE591CC94B51D12D19B2F8D2E412FC7F3B937CC1ACF579B1CC54A01124BE +41A1851B292B20E3F6589E82674E90D5156B530DA372C2385AFE180C94448DEA +F061FBB8E2147AA78479A5C2218B603E3BD2C09F1FC2914C0811AD65A0312A88 +BCEAA32E8D5CB8AF126F6CFCCB2F0B166505F439EDB960A5C71481E9A267184D +EE0CAC75B5C3A52A76FEF37D8A3EEA9B84D4A5ACDA0BC721058225D7D70FB849 +15751766444B330D796886D2EA6EBE981DE730CB284B64AAEC4092B05D7F8CA0 +DA58429AB46531A672281099BF3F15187221D84883EED52F7AB97B9495EA2BA0 +1B001AC95D3AFF9C00612219F48B9E0A7922C10374033403EAF3252C07AD8A53 +5731AD35AAE9F150132A16E0DF655288FB5ADEAB1CA998DF3B7BAF3775B152E4 +0F3266EF89262D2B1E61F1278DD4F43FDBE44C5EFBF14E9CA66F98A3FABDFB57 +396745C1BF9B13F6789EC137905E88E03E891EF9B16D8D70F7DC3D3DC4537537 +F232497BD680D8D7801238D26C25F2F31268730EAB85BE47CDA2156E5188E5DD +8CDD4380ABF5716DE97D57260F4AA8BFFA0A40323B25F8A3D403E9B56670F251 +0E8817E291D994A2B32C392610F6BF8214549F19E4D97B5E91A26D38D170F1BF +A2B84E9B3B6DE841898984EE521446D309551F292A3D973AD7351F2FBC5CA313 +7507B2C2871FA9743FF62AB1A0B9A49E12A87E2CDAD30E03C93200AD1DF5379C +91F68167DC26995835EEBFDA7B3D517406800B9B9CC238AF97DDF34E6DC119FD +D7063621C8A8D50BCA59A1E65FF564DE35D4DE8D8CFB62728673896F6E789584 +F598699BF45C65D08F9A718197D94A3D84159E2A91F71BCF4A359553D41595CB +249FFBE3FC8ABBFB2F18FBC326CCB7DB802D53C58C8D2C86B6302EEC7B76CFFA +EAAD54577D00D1D9A3435898F7D66DA33FB9920F811963AFC81424D4A388B024 +4A0F71E27064D01320C7974D935EA3379EC220176E7BD8474F0400903C026C5A +5D413D77B5A17B407E63BF6EEC33D25352459BEC015CEB9544436B077988F254 +953AA572C798EBB5DB37D187FD857D95D104748BDE8B45B3E23949A08A58A9D2 +FE25708ED811984C8444509612C3E19F903494D6CCE99284C44AC7E4ADE2C41A +2E9CEBD697923CC2AACE1BC5C31E13E9D318A0D42E093042784AEE4622B0FB3D +C3D2EE5B6E5E88F33A589F54CB079C15E30512D51383911330090CE10EAFC0B5 +38D2797528D8D28D3E6586959F76550601A60E5CB1BB7D93109279701935E846 +1A098FD8ACA9D2D47E33FDA1C942094BBBC4C1091BCEED861BA008FA5351BE27 +6A519E8364253E0989C536B09EE53858B51F6724EB71F5587FE8A11FB8904743 +AE4CC40B4EC7E85EAEAE7A811F5F88C404AB00FEB7F67CED68B5A39105E8745B +BC06B083572DE10BCC0FF2A3AF54BC5A242B8C36DFC868BEB294D91909E9315B +279C6088EE1D77496FB76D1EFD4481B780C75DBF127688E064BC8DD85425B5FC +B9D359FBB3DD7B0A722C488F3EEF7A21A7A8FA09A4D4EAF4A226B9B33183E078 +F6136929D7F3536EFF2DF67F66A68AF856CB7B5348F6D57CFA6B8D43AF606B84 +36EBD20518BAFDE5455608AAE5676F863B67710368BCD954D7832411B2E26D19 +DFD850E6092906BDF276DCC2C9BAD1D522CC9CF72C9A09A2CEEE861B9F599FCE +AA2B286F9D624B2CA900971044D9BA2BB6762646684BF25E3F7A0E6EB9100832 +744A86481471BB6CC30933E83CA9644B6A74954587D190751973CABC08C3B223 +81B2F7DF357A222C6776921882DA4A5E8C494741B84480CA04EC12E12F96780C +E08FC2309F924A26526F854C7A63E4FD00D60382596FA529FAF7D9C30168AF40 +B3567D38DFA5F8FADD4E59572F0C590CB43CAED6BDD4456B8A938F6A4B732DFF +02777C97B8B34A46E2FC25999E0D256D16606DE72243A0DA38CFBCCD4118C0CD +CE6E8F3704252ED08DCEA3D62B584C6A8BAB5719D5CABA037F16D0DABC26C659 +57988AEB19532B06822A62461F9B10FE1C02F802BB86F9186A5A10B37ADEFB98 +011E23443D58C5F2FBAA432C7A4C3CBE701393F73CCEF90D97FF5313857A03F0 +F265C972A080531F5CC4BB7A4CFB8A080EE3809C9A04D30F4CABAF20FA533EF1 +1C9FADAF10EDF9EA57921CEF82361A1E3F625C7149F8A3F29821B0D25CB66167 +9560336D2D140D2567E5814C23F64EE38E8846F78FB31A7953EC0BBF866BF405 +85545A9526D28C5531E5BAF1A0CEC5ACA8BFBF0C4A9E7B30ACABC7162D337BEF +E909A750E9C551140A376F0787DE7A177DBBA899C887D12BE3638DC1894490F5 +F29CAA42D7755FAA42CA5EF18D6987DD4AB3829344E33C306A2EC9F3195A273E +3DA4D9EEB5386333BB792479D2DE645BF94E0BF5663891CA7B9DA34FB6E3730D +6197F4C94A95AC18D2C9F63F8D009C9B830605DB8BE51F498A7CB197BCD1BD1E +AEFDB4ECE576D954E4310991E792CA29D8C65554EA5F9228F8E3B86981677D98 +869E6C1B4B5601B3A2CA7F01CFB065BF2E7FB57A8BFA7176A83325B487A3CC02 +31ED9EBAE470E7CBE06468D3223C872A2971F7951B186227CD6F986D0F65D9FC +CCABDE9E4B419067EA87BDC00AA4B9FFE9C5FC19E8A39675EBBF55D8F943502C +9EEB8AFF46024BC71876339B151D89F6876AD51A9562BA37577011346C320569 +63C110F28B25FE9FE399155DB750818D30423DBECEFD8D35787E6523698C8D3A +5E7675B912032C3DAB17D3F1EF61008E4979BE1C335BF4D9AE1FD54427BAAADC +EFC2A2A401E12AF6BD9303531BE65874B7A7A893E814607B5D239A5F205C399E +1023E764BE38F1A256AE4E8F0F9BB2E8E28044FB80E19E3A2743BB96CAD24F3B +88584823E65F665CA2AD2A78091C533C5F8B1CF3F672D0082AEEC07DD5D5348E +48A785731A4E0429F9293CCBFC275180873CB6DE88C09D2F819EF086382E168B +8837FFC3FE06F12C7D15B378FAFDB32171631AEF8521FF3176620EBB731DA2CF +02A76CF5BC311032EB90F0 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndFont +%%BeginFont: SFTT1000 +%!FontType1-1.0: SFTT1000 0.3 +%%CreationDate: Wed Sep 12 2001 +% Copyright (c) 2001 Vladimir Volovich . +% See the file COPYING (GNU General Public License) for license conditions. +% Converted from METAFONT EC/TC and LH fonts: +% ectt1000, tctt1000, latt1000, lbtt1000, lctt1000, rxtt1000. +11 dict begin +/FontInfo 6 dict dup begin +/version (0.3) def +/FullName (Computer Modern Typewriter) def +/FamilyName (Computer Modern) def +/ItalicAngle 0 def +/isFixedPitch true def +/Weight (Medium) def +end readonly def +/FontName /SFTT1000 def +/Encoding StandardEncoding def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] def +/FontBBox{-208 -360 1374 838}readonly def +currentdict end +currentfile eexec +D9D66F633B846A97B686A97E45A3D0AA052BD0CE60552BD63101D7CDBEEF5B11 +69C468645FE4ED1AF2541AA0770C1DCF81623DE0ECDF49F2B522618F650CE6CB +CC8C21885DD61AF8A523AA677EAEDDFA51A1F9B1885EEE0456196D634E04EF89 +F17499DAD982502ACC349B9EEAAE4A71A73D1147318C60A8BAC10510DE90D8D3 +F46E47295D27129A5AFE0C65E22BAD10D06885A2EE623FF8E1D90287A083E00C +EF25195F68A2A98170E4875AA1B1ED6A435B5950D131BC48179F5BE3191944DD +8626DE76AAFD8EC4DC8241F2ED33E10698DC7741D6E45CF5A02FC6D2068AA205 +EF3C4FDCDE803F4D1D4FF03A079CD4FC4BAB3C558A8FDDF53D34AABB7D89E4E0 +CF76F77ECE57575C27718A8074CE275DDE4AD245220A8236400BE47BC76DE13A +9EDA4BD5744C71DB407BCA39DBC9D857122A1DA969E6D0915FDC1622AB8BB88A +93D2EE72E9A2FA73193D6CDF254252980674DB644EEB36A2036E04DB649F816E +E70C4C43E88609C8E8B8B84A920CA933FA00F41F2FC3C867825E2AC658FA0F7F +331323E22BD193A0A8009B3F0EE6D55281CF1076F1631FE509E79941FF08D0B7 +ACFEE566C76FBC09F3B4AA57959D4EFC34413ADB46292ED99CC8EC4436DE2CAB +86B8B48847353E826F5346762CD5D353727DBB502E08B934DAE4E99894706BCA +DC35AA52C8610137C7E336009D564831E1E7936600CC3891D3A58A539523329A +45DD54B8D76F43582CE621F74FE7F8FB06E32612FB06B66CBB3096C0DD63D097 +08C206A620CCC9ECB49CDC17295CD0B3C9D2DFCAACE46137490589D72A6A57BD +FE97C0CCB9087CF31EAA7860444C0D2A1B230F1879B1CD80CED3863680AE37F7 +39A117963BCA696B1EFA8EA500DF5B1C5F6F42EA16D46CC0687DC684B2AE28CA +8511448362E82092B10FE7451F92E7798EB30D015614C10FAE46C0A4D32FCB0C +6BAB88710E429820C597271F5ABF0D001D837D04F7DAFD12E2E3E14A5D6A62F3 +27A102A2D235520B22E90390172C479E98418A0D659DA46431137085B59AA611 +233042AFA7CE671A231C00755B2090EAE0B6E67A05EF66353972C232A17C555C +A15A5ACEA1F8AEBCAD32A5DE6ABAC1A2B9F68B0FB2B04A5D002635771456A885 +0C4906DA5A96C2EC5EFF288CC22CA0D995EF0722B978B52BBDB729D4F897E737 +0C4679B096318FF65F192BB465D4B28FD78BAF3AB21678BAA5AECECFB6EF2B8F +5C1F6DBCE36E6313C32A4C728BC84C955AADF23F2C763CB339B5547BD1FB64BC +EA0E9538A6DAF6921C5F3881436FF74C1D2DA79EF543508330853A42A2512CF4 +BDE155F7118DABA2710058926158D7179D08392FB590D91A9A334C7A0252273D +12E93E9BFF27EF0108342D68B5C88DA27B2A196D1680787FBAA3043842D5E8D7 +09D13BE9F7D4292AB27FDD13ADBB9214184F53A25939ED58A375C6B24AB76815 +CD83B5639199A68B3D7575BD95466C15C69817A611C490CA4A7628C2257AA084 +F83F5DED18D9BE931E819EB6177E6889AA017F2ECCC26A80223DAE6F2B4E6292 +59B2A280439AF75932BBF6A5C4C13473C8A7F4C14C143E88C455290333A09E2E +34EF701D963EA6A1A98CA9465F92A1A038241D557DF813ABD564E9C7334E2267 +257575AB320DFDC7ACC0A79780C6EA3DB2AFF09B41F1887E4140DDEC6614DD3E +7741EA2F1E69F28A2F7C1BFB9F3A4300103C41B247F3F19316BDA02FF04B731C +A9FAA19807F277CEF8E9FD98F73375C22D7064A612110E0CDDFD05F1F3BD3D59 +7F809C518DB336FA9F22FF498AF9916CEDF8E7E38B50D6B830C6DE57F021825D +7581F31461E5748A3D9002F4F40415650E54F24109AAA3E561B9FCEFB91B78A7 +9BD40FE2F4704F91312957593915799788AFEB0B1F2683626979F491C684DE64 +405908A2C467D291C0BCAD561CB77FA8EF85FA16C70435E779F95375E1082586 +7797F2B4B202FE4B6DC641CC63A68DD9140A46655238EEDDF0934E467D0836E6 +1D7168F5F61A1A3E61C94F66C22DBFAD0680837BF7F8C9B37D722D56FD333292 +17328775E3B4483DA60C34056787B2E2FD24604AA59F95B795B11BBB3AF894DA +5EB1DB3B7EE416EBAFF2DBD230220BF99654305F720A82D00487319E7372E466 +5FE59E91D2B4E32B5D5B92A7B79CBC628EB50E739854F375C292B4FB5440CD22 +9F47B1BD06E56BF49BBF8260A33C35BA338890C5E4C89FF03605808EDEF57A02 +21FED4D966B2FB47D6515B634F503FF1023770490B3959422166582F91CE7B8B +B25B08ED32C291569CE81BDF01252ADAF3C94E10E0A0D36EF0CA7E870A8B1FFC +1370F470304557D3C22E9833D909CD9D4086DA1B9810C74E7FA5B2CC03465B3A +5493C02026D4CB66D8C64B87F6048B03A05A16A3DF5721A8F710ECA220FB3A79 +DC4DF5316DD9F1F2F241AB267A7DFD59BD803AC2B8CBD4F167F3D6FE90A4CF8B +9EFCF6A2B3AFD37B226C0F00192DFFB93523D9F14DD01459FD1BEE59B04D1A4A +158A605616DFA934DD2C434F3DC7B2282EAC89791D14214728D08DDD7791A3FA +E720AA240146113BDE623F786A1EB13A0517E174A23DEA7EBACA3D7DB1715282 +CACA0E4E4184BF3949B1CC8EA1D4AA760AE03F987EF83A4E2E92CBD92E6892FE +B52B47C7D56623D4C806A8009500CD211E940090B78B9ABC7684724C610ECD8E +67325E4E89149E4BB2F33508AE3A014F3C26AB00BA7C9D83B2D5CBFECAD9463C +682991802075C8AE72E7FB4BF786A7A4171E9873A3BFD7DBF11307E00CA95A90 +6093B5D96C9080EA874898A1875338770EA4F63B56DA163D11517493E5D83CB8 +708911BFFAD1295B258BAA0A36D5ACFC8BB1AC991F7A02CE82C4C64143B21C6F +0EBFDC63445CC494D6189EA60120080712C6A913F84F8E2A5CDCA376C9D3AAA5 +968A3ECB23D1B03FFDC39DA3D21DC50A21B7AC2710E1A8BEDF7FAE632CFFB921 +E6765FD922ECCE06E3CC7AF6ACEF668D9981FC28449F0691C1D8993B466C47C7 +CB0D5BF28CFC6DCC07D024B755EB1601BB44A1CB7EC830F322EA5989BD1FFAF0 +AEB6AE1EE6D08F1E6042DBCDBBA7EF2562EDDBD183BF89549B61C5475F7F96EF +C7846A3BC9FD97207C15F18D8C56141C5A0ED14C89A30D75464213F1D479BE20 +D4255E38C68D5277DE5AEB3E70E3155BB8AA34608347CDDB20718EAA76D2BC8D +5DD424FFE364428BDCD23FACA2557E99124A81C292801BE97C820EBD8FC99929 +87D4C6DEE8147842D767AA1520BA2C46388C98F2362225FF7F84DFAD1D8F4B13 +9F93DEFC6B06095CF22D3D1FA8B050D80CCDA3BCA6D3A523B80543E5CC177287 +047422EEF2B48E8F38734EE1AEA63B6918BE02EFA064FE65EA9CBFF54C77CEB6 +99B084ACCD44027A7E8A840B49E0C0C1F50618E968C36263D005F2034285A471 +9B2A623EC9FCFE5B319DE2507EA5C617842F3217030BAB2E5EA8412EB3DFE085 +99D369576040E0E10D39633C056693AD64E645D2FC515B9385EB4DA7500490A2 +43D5ADB51E05F76EF52427E0BA27664FEF964FAB63CF7DF47C88CED0BC9E972C +1086C9A33D07B9C4B889F3E30E3ADAAFC31E1026CBA8CB5ED2E852BC19201DB5 +4984E5DAA3665C0C623B98752E19BD09A8E48524A513FA04C776B1AFBF0CE8DE +DD5800A5AA92C0B3211B0CB8C93B08A57797291FF022C62806730BE7A6FC13C4 +EEF605761213D738E18967C256260D0D7AC7705F5D031A9F8F863212F1D8DB22 +470CC69C362630C4B1D201143AB809BA8CF4202727DE89A2ED2044C9B19628F7 +81B5AEDFB646DEB8816B1424589ABFDF445D4E38D085DA49702B5F71F912D3A7 +B9627BD06DA473DE95DD5AD6E650CB81AB5AF40ACB8A33F110F6CD9319FCF53B +204F9D7D98F951CB89915650435E1AE4451B366464A9914848CA7541750A53F3 +2B05D3823EC112A401CF3023013BE170C70978674F423581D283081F22D3762F +727539AD7AC39771E9E6559161C526475C366EAD4675522EC1AAF9461C373899 +4C150B7BAB2B8729161E405CF06B91E781399189FDBB555F2DF1D17043810E58 +4D473A1A8A67A6D4D0F843E616DDEC48873C1E1900E539EDAF8EF618AF1B4773 +980393AD8FB198F1C6B47BE5D07BFA428551BE5416FE8C7BFF7F1BE86A570C97 +468D29E28C7A75E36D4FBCB4B1A5B116321FEF3FB26BFA8A80D562FFD4ADDC29 +FB4621389A8924D0EF745BAECADE9C7A92FE1872C6DE50A4A4312EA50C356922 +D5F84E7CE85B39105B50C83E87D05609F98B86B83AD1C70B5D8EF215AD32F8F0 +A30B970B27E1849B3D485D2CD0A8791E9B26616EA1976DDBF07680A8CC6C74D3 +3E8E81375B1C961068FCDBED8C72717EFB88D6F905C1C4FFFF50F92D71DD42D2 +EEEAFE81945B38CB2CB8B941C8344D35759969500638CAAE75F8F6954E412C3E +88E5EF65068F1A1BD07C977506C61DF1ECDE0A3BADBE1860BE053D6302C8E8A2 +5320223FD2DA0ACBCA2F16C5B25DE349D237D1CABC9DAAAF34136E0DE665463C +4214B86E9F3F47CF9F3B99EFD8BD00332B34F59939234A1437EE163A3CCE5625 +0F39E62D7D5AC2AD90BC0E928D5DB66C4EBB60C080AED9633D27AF2370423BB1 +259276E4FCD3E696539C446DC402F737EC89B361A9FD262DF82DD5E34C479D6E +F8743FFF28036C80CEC4A928527C3F7F748EA4D8AC00E075521A8C020F9E6BA5 +0AFEFB3EDC8B99EB65FC2C0D760A4C3F2448CF2C1C4B7BA761D1C476AEB59E84 +3E6AB9C468104114D2F8B387AD845978671A8C18CA39161E36F0735DBB56FE1F +CAF57E0C332FB91C70591A71A951CC34EED3EA726B82A6575172AC6759B875A2 +AAE500A8504E8117144127C2B660C4377562BCFC67346257A69DAF91917BC0E9 +B8214992F7AA2F31E58DACAF725919D8C00FB81E38C5A9276DEB7CB2779151CD +16D3DED4F1EB816824DCECB82E5E49768100FED081D8C2F54D04649652FB0804 +205918D51390E769C29DAD12385D3D28CD0DA778070D7497892FB934154B996D +EC7B71279088B7B0B78AB57E42C234D919C7F7BA623F3ECE53E795BBDF16A675 +565CF5D7C8D514095FE448725310E8079DC174D9C93A2CD63CA29E638C11C6F9 +318DD8D3B31202DAD4AED3B848E2323E1F925A1E01BAC7489DE4CD308C436B66 +A512AB2D70F5FF9C96D7FFCA429E466244970DC5DAC506675AEB623DF8134C46 +9E675A4C9211621B06D814BFE29539CA7E71F9F64924357C97E844FCD161B90C +5113112B07DDCDC46E7C43A21657034388B3F8BFFD5161469E15C418E45E81A4 +82739A663B1278D3A9EE99A1A750328C670FF94549DE7EF89F56A0BCD95D7EFB +7DFFD3BAB2355375E1772E70FA429445EC43A248876835ABA2D51CEAB6B1BEE8 +6A8931B49A633949912A1F4858D8A87E5BC242D72A3A93CE392D1EDA46E4AE5F +8851899C8D5FAEFC7908883F159DE0855AB892BD49D33DFD6543395CFC9BEA12 +22F4E8B9BB2CC405095318476B4CE66638DFA39B54A0F3EA710A39D1C7A3A387 +3CDC0D2408E6085E20ACB461D7417D288050E3FB3B7D29A546ABCF007AE01E73 +7FC0AFDE342F51462BD1EF6A4ECB28D302B43B23CD2AD46270F939B466CEA121 +47C3A2CA99FE860B05DE4937C6B8DFC7EED2E33C6E2B8D1D6FE49721482B7629 +BFE31805DA57BB661D8B2FE43353C1DBA80AE717F75D96D6B2D5F0D2EBB74D24 +FFF0C143FC21D3BA97EB70044F453AB067391DE1F649A8E07B1CDCB6E31BC9A9 +83B32F32A60C2DA3673677DA1ABC8130836298EBD352363E7E4E5F221B440C65 +50FADDC77BEE4C8E445639EFB4FB51B368C66D5721461FBD6C6776644CAADA58 +63820635F14888FBCCD31F451CC3256903479046B589CD12314B4F888B876B33 +C4ABE118A6068F6391E1158D582224E8C0DD154F21C8C1F6A3CD24ADE4957715 +D639677C67B706C713E7BB5FDB2A220F95278617B8ECF36BE6FE268C7D4652B4 +FA75C401E937E922CF7BBFFCA8CAD6BD2A935B12C7E589EDB98F427EBE88686F +6D12D4A86EDFD2F7DB82493F263097668C1CD5A60D635D166AC2D2385172FBED +B0DD83D934BD6279A6862EA166A97557D5106EEF27F9347B1D4A07A454826633 +E267962855BCA9BD28540C059F02EFA68BD0C401FA9C2B9E0A69D6B551395568 +58C24F650D93464643A84ED46412B252D844E2D8265176112D1D27E927FCAF3A +BE644367E250E664EEC08D5E63D2EF15E74CCF9C5E829B05C8EAAC6A53FD83D5 +9EF94AE4DE1A60548A241C0B5B747F93C919A76F6555F6E1B523E6BF7C91D74B +F9830186A7D4BD22AE6049537634939B3097AF87D31D62E5F876F3BDFA26D24C +4FCC92CB98E9EA23D6CD70137F2EF8F72D3E8810FA61EDE5627EC01667C7461E +08A9B3D7A07EC89A0208139F298744BC2C4A40F9E2FB8D119D06C106735E3322 +D680CF7323CBD167ACD9878F2C88449813611CD5BE08DB0420B6F284B1BD4042 +022C8165DC3B10A72C27A43AA15DBA4C1708444637CDCD838850DD3893E15FA4 +7F44C4E2F2655CCB85FB2BD900D085F929BE1009FEF9DAB7AEF0DB057C5AEDBB +0D8E7F536581362BC3F0629880E28902206D31559606097FE436EB61DDE30C44 +8F263393B7BB1EB05F92C8E0699253F23FC6D65F5D6BCAF6E580F9B685AADE1F +F0088F0BA3D0E05C97EC737D128622D47D23B8AC079B711F0F15952AAD475049 +B68165D8ED2676FB863CBD4CD6B0AE4CAB889AB0DE902FED19E26ACBA2E214A4 +E469EDEC03C3DA53A03A87894D8D3A8018F3800A6FF7F9439A6228D60EB78A13 +F845979631C53EB73C1846FF96C9D37CA97C5A3F28745EC420F00B25C2AB34C2 +09C264FCF5A4442342F8D99D4BB8D645F922AC51ABE18C3A49C4403855C9E491 +DFEA2EE452C200DFBB724DEE78872BE8C6BB45DF771CBAE51CC37777DE12EB64 +46C74C34163D2CACA31EA042F08DA38EE9AD3F2C217744EE886C18BF5DCB5A8B +0AB4D8371C933E0BD69404A69202E47C11DAB5D6B68DBC3D2AB593DA623D351E +534F10B20D84CD0AEAEB8A92A19A501D49D96703A6E6866A64E553D7E9961924 +B199061D047FD5EA78FB55C05A5AE1971C317A5368A29ED60CC4DB39BEA20831 +8DAB204E9E0D80897707BFBF7E3D9C5785E3BAE44217EBF2E17994EB8B7851D0 +7FFFE1482DD301B647DA52CB9BB68DB482DC068B3EDECBACBA69A2DC4E7AEDF6 +95732CF830519C2A613FCE5CACAED726D189A29F060A787BCFDB229E53B7661F +3B84568A2085E55153BE9EEC4BDDB3FAD4D0C6639E6B0D68CA4B48075F8210D4 +8A553B2B4A9E06AFC9D184A919B554AC72AC91F2BF14DB8343E6D73D24D67B9E +797B6E7ACB7D36429BB1A5444DBD6465AD69F3E231D1BB06C66F613CB48B72AC +3545211BE59FAD51FAB4F87D6CFD5DA7A965D754C30476CF9BD3097918052865 +96FDE8EB0520FFFABB84BCEE77E0E44452438863D588B306950873D9ED860C4F +E8721677E6D8168FEC0119ED1E6FB5EE7CA685090DD542E5B7CED8E8D341B469 +26464A63F7E8A7A8D02952DAD2A612222F308798CC9E5B3CD995F34006745CCA +C9B996CACD8CFDE5A7F7DC55C0A0F972EE6D59B2A3FF9873718D1832F24DCBE9 +49D46E3503660DE4D0AF44B4114E9819F846DEB991A4D4E85054BF6C1C2E379B +2BECB9CD10B2869BA3570062C5AE28C23D313121A4CE86B5C8203FCC1E530623 +D16885A589F7970879F2CDB80A1D741DBD9A711E8E891A0FF1ECB45F5DCB6BFB +8E3B400D051B27DE54C009DFBF40D6ABE568DB6773C705544C848EFC5D306BAA +44B5AF73317A6D811C66C3ECB561111C3D9F470134DE7051AC87A971862F46D1 +D13ADAB37FABCD3E7E7DE13DDCDC358C93583E597B397061403207B04F9BDF57 +74CB9B9801C8765B45683BB2684EF827C3428F4BE251EB85EDB571D6FCE60D4A +DCE7DF45167A2A6F7408EA088B013770FC07531C07738D7AB9159C9A60EB7D41 +7FC07D5960CED8ECA9FD01DFE44D65B758F97102E7ABF803CBED51E46995A90D +404B2E4338930FD328A6DDE099F0AFB31AA2FF958AE17E8F9F97E8411C8968C7 +722D9C5258DAEEB7485BE0B4DBB880EA882070F2F90F450E7B23C132EE190045 +947C5289F2106093A3E5B1FFFDEE572AA229107185F497DB3C7DD9D3C7D38ABE +A166890F4D76BE8148E4C2E95639B24EA12B2C623E552630EE06B55A70BE52BA +2262685A564C09EAF5516E0393B6DB28A63CC286959052DB94F64ADD89DE2AC5 +258B4231246DE89A7B5BAC749CAD8C48648A487EB299BCCC602A9C8A6CED84F5 +E499649DD7C65C692538499F2E97BE6764B7B53EEEE547D0D13B43A75A1E3C1E +DA2C47942C30D06C9EECA00DC7E0A47A72A97DD5C727C72CE9947799EE456AB6 +C993F0FF0416E6BA194A35195ED3372AEEF4F12F415205D7B59E02C51539C673 +E9EBED25D2989312140219315FF35CBD902A0FAE9E741F890D5B268399B6FF3C +E5781950EE97A586B024108A1E53B5848F6343E9E0AF4A29F6469748123BFC36 +7D49A3D370003063A31172C84A0D828F319A6676364412567CD1054A07156AAC +0BD6B1F716A2EF66661F70AC095323B0F0F91C29DF4D780CDE769503AFCCDF2A +56666CEF8E2A03C9F6674DA8435306D4998C94F927EC7C0EF1DF2859681D78D1 +6BD8D361B90C51E0AE25212A52D33A08EEE43F1387881D33688F9FDEC385C593 +38C671AA8BBF8648AB63CF7DF47C88CED0B7A8F1A86B1C60BCEF3D1FA2AFF09F +46B07FB25E6D7DC27C1D6EA6FDEF871F3BD4C83474D309BE803BF4486BD7B736 +A5F1C621F6C9C87266B5A998E51537FB03E2D0D8DE1417D49D5CD588DADACFED +D2E6775EEA0D9E2482F33602BA6119B95B760219E59DD6207F34D7ADD812FE42 +2306766413CC9D289E519283A004CE56B5FCCF0E7020A99F85CF1894881865A1 +5238B83A65C1FF58FBACC2E1F14EFAB40932108ED69CDA2F20BF5C8B3FF80321 +DC4981C4900000C2A199D39C2CDB40BFCB618E3E142812E4540DEEA577ADA960 +FCA47892FE18726D87607CD598BCC5F92D16434B39403226D0E166663353A1DA +BFF6AE01310C1AB2F5D83ED05966952482A2E5DA3F1ABE200F1D6A3579A7ED35 +2738AC4AD8D3D87038C6247A14AD0EC93784B7C391324F9476145AE13068E5F5 +5A8E60849C30075A5215C4117F2B0722090783923C87880E07B0CAB17A8C3310 +53CD686F046A5A46F761A016079604AE1677871A060BBA2543B8801588403CCF +A8FA03C516D25312D1FB949FA69E4E9E257DA0F6526D372ED2FE4D0EEF2C758C +00AD48E2945B3CAEBED52DCF479AB2002342725C50B5942DA3BA3AA1543F24A0 +0604F08C841EDF23398E17C3D6341363F3B8799F1B324DFA1ABE3EBA7EA26549 +517E0D21978AFE0C098B8EC0B1A8A2ACF5920466142CE509003F7225EC82AB16 +E972393DC263D3615D10EA0D0D7FCAE3C80144B53282C665282F1BDCC128A761 +F4F2091B9AB895D3759FDBE0D290A601DA71B7A93C81F2F47382CD18BCBAACF2 +8B1152D01E444FCCE7159E61A59E18D3D7AB33770FEBF951CA5CD96A6E72502F +F620765FD2C84046CFA84A57058C05A1CB0974D20EE863AAE4FC0E664FA67E56 +518B4D5943B90ED5ADE74DA19B43637D0D4FACD918FCBB312C627ED12963C68A +EEE8E2245C55FE916A8E50C34E22618FFE438B4676A1A7079D2F06762E765333 +C40D03B966DB6027BE51C4787728AB26FB3B01762042F2C90A8E451CC34E98FD +E6A07DB50C1E666EA23E30B3A8D3125D2132DD068C1A55C0B382966375E68236 +BDEECC214AF83CECDDF3F5E4A64096DC027A3D989D7C9070C59EE7E9C05A5C93 +DBA9FEEC5C9753342F384CB9840A4B561421E2C1AF4F5F3932B23E595CA05AEF +9962E1787F6C1979B0AD4BE49D29CCD6F43A40D16598196B7E13FE6E9271771F +753E0697DD7E037D4CE8D2AE1691003F357687EB423A6F27FBFA72E930AA6B4B +F1F4D1EBAD4C9FC76291A4E05F6521C562183AC0B6D43603B2FE16E4ECA0C41A +C18D38A65B96AB24D6FE1E42A00A500E410A707ABDDCCDC60C0C884404E3D487 +425487884DCE2364C6A90DA78F1A51CCC0388B66322814A2D6C72EE3C1592FB6 +8C821490CC48952081AC22A2BFBF782B3BFF0224CD2F340D55E24D269EAF3EA9 +16B52D93E520F1D3C42477E77EA409E3A17F8840C30077121C93CB9158033DA9 +3330C418732C120310B53758A34D4BDF9DC8B6EE0138112D37888BFB38EFFF21 +4C8D0CFF61165D2CB140D249765296D30F3052589D886BC9919E2872F146155E +344C918602E16C29E1B4C1C6EC90F7E38CA5F65F1857144D0A379E1EF5FFB4E6 +4A8D0B2E79528A8052AF673A7E68055997DD487BC612216C8FCCE78BD7483892 +1E315834B81235DA8EC46DFFBA04194A5C08618C6D25ADC3DD0810BC0412FF1A +EFEE1F9903195EAF2E99B4046760621926625FFBFB6DB15CE9E0856415B17059 +291CCBB4346A3CA6A779FDF7F77E98EFD9989D152E9A2D96030C87E6099DBCBA +92C77BD6D6A99BEE23DAA95ECC336E77CEF898C10347F6BEC5CF0D58865CF8A1 +7DD0248CE95F03BD83B701F2F47159C2306245EF9C1FD99D6A2C960C4353452E +F79C9BFB2F72DF3A36250AA25E8D003660B0C62A88CA6B5D4A411C0A00243A4C +E57A43CFC71EE2E8B7374E36996C3F6C8358F2D17D420CBEE390124FD93096D0 +8A9F445B89694C5194FC18F53154A16BD4C0A9E49923C17408322A5CD53EC343 +C11E6332AE37191909922EFC8C625C655CE74EBE0715E5377548321EF3C8A05C +6F419539B517FF908D97D3085FB9CB458D531C0358486A55BFF6F5C9F5A7C90B +BB6B0A0AE63840E9F475B507C423563E747CF0F409159EF410673DEF58FEC9FA +8AD288EC56005D88B3F7DE0CCC2283B033D27961EEE86073E80D614B7B66E691 +8E2C56A8B61516F4B93764D1E348FB693CB3A5C5161DAB716A099E5B44ADED6B +97C1459216FF67EB26AD61D74FF7B1DA5F16952CC2A7599C2150D2A115A41290 +AF42EB15C61C5E56CD3ADF46393E07D864F04318081C2D56F473C5C3C529FEEA +065C8CB66844C3F46C3199B65A37506BC273F974AFEFA311AEEE0C6F70D5653C +091F976F56AA5F388A18D13626692FA02FE7E5F4E9DFCD766A6BED0631F8F4F0 +8098FF6D329AEB49632D0959DED9238F676A2E5FA0826CB211A5D4F22757FF5D +D6B9676A91007ED9D9007C6DBB2E929ADF2C40726B1EC0FC6CBAD7B4C1D9CD75 +FB7A6A58D2E81F02347AC7B58933C514859212CCFFF5A79D1CFEB49DAAB7ECE5 +76D9F891E460A40E2BB12E2E8B192E60CA4AEBFEE15DEBD5C999572A91149164 +0BBE5DA16B92FA3C3BA89475C3D9960CF4312389FD49B2F73B15AA06EF3D07C3 +757B78821D52A03F669ABC8CCC9C786C36AE3951F03148AFF5121308F919F590 +7981F3D7B7B948A1D2CD381D1B6977787606A0285667707177C3FF6266633800 +89C1C897F880A54D0B6B6F8E064BDD22F82ECCFA430289B7ACB44FF74149D1CD +E37647037C155688FB738B09F1A7DFE02D22CDDC894B22FB10A43D7EF0B6C040 +232F8973C6C00281D95D7F5ECBDCA5B4A21151905BB6D1B738E69BA637B54C82 +68F59E769BD738563D71691A200EFFF5469250FF6C1483C45209C1923C7F62D7 +9CEAEB076BF271B4E43FBC17A3607C34D2FBE4393FDB13FC3B396FA4991DE0F1 +9553650273BB6C2FC2D3BC3376DD85237C72E0CBE24E9DEEF3318B83B70F7DF6 +3773430B8771F19B895BC408609A7EDDCCEA986AF342C5B273961C7CCB8ED1BD +07988D16515529AC5BB872A22295C9BD2E7915A5D27779359F7C550F5BFFE2DE +BC97DA6344810758B10B2EA8C68918DBDBC5494B261B370FBC9BFB0C4F03A47E +29FB0881E8AF5E66C20A444749573EC5E6ACB222D144C53253484E7E814A7E4E +49A4642EB73FD1499E702766A6826F992D99A546A9C1CE79DBE40190707E2FB8 +BABE3AE95EEFC0D7007536DA6370C07B2215C3A82BFDB44CF0B63F3CC04D9613 +20F53F6C106FE7784A333D61C45F16A0507BA401006CCFEBD0E26124E7468FB9 +410EC62469790795071748AE59951938A6CB24785F74A2D4E08CA6D29FD6DD0D +2F7C094A87F352E85ACC8102ECD2A8A04D284FAFBB5FE3B61B2A55278FEE294F +9489EA79A923E45E039975A6E314A7A709A2054EB39A7894F49184B672F4AA10 +9D4A48248312F74CC65298CA2D81A942C425C67040AFC2F3BF53B6E6ED879EBB +382A0CC450564536EE0D9E11985E7393AFD880ED7A368C078579FF2AA1B7C85B +6AED67596C02AA6A99A472F4DCFB74C7011010B1FFFE7EAE109B2EAB534A64CF +ABA7AF04C8C69FA8585B22388E7E36A68E238038CC14777477F38AA4DD3F4DC4 +4F3F4D9B7F37A36A49093965EAACF69B04A6EAFCDD4B4EA03F55ABCDB5966117 +462F664EADC049DF79AE00DF0E254693519CD28AFE8466EB82A4CEC7E0438261 +AFC191284C14774FB9454F342E4B479DBBBF5C4607D942630FDE180346B1B6DF +7CB79E980C2A6B24F8EB5CC90E351493903F398D641228656B1C6735F2E49291 +E93AC92A22B9E53C3102A04CF93C1271A9314269802455AC2E09DAACD30A86AA +93804B57A8B7E7FC9F34D3D86AB9ED7C852543B7E2F658E07099DA3B71E6EEBC +AC80D3DD0967AC626BEAF721C36FA673DDEF2542D4E266219353AAA14C871A23 +0401234B376007B514056CA27646ABA7858456FD04C16C8DD89EF23355B7E48F +1B356C0EB3F523B911FA22C8FE583A087E9FB56A541927D99D44814A253DA746 +A9454FCD5071D346C786045AE55D2C4D4F12B5B8758C87D68C67CF6150E9AC0D +78CF9DD52DB0D2C9E86FD17FD400CFDA8CA3C29F6D29CFFAE9EAF0BBF01170B3 +80466E377DE82A00329C607B703C7C1E488D766749A40E7E8247757063E45DCC +9E0CF3261363547B83B13CBE73020D7012FB4AE3A75A18CBB8DA781F32893D65 +7406A09C0174231769C4473BCE5D3168278C45C7BD11BEAC2CF89DB02DCC30A5 +4D6B60C2AB8D03C17050A4FC09362F20F481B1CEADF940357F5586F19057455E +4A937B05B612B121EC63868D2F412C6601802F57A0644433FCA0A32CEC131A33 +55B80BAD84AF09DDD3BB85DD854DDE2D2E26C3C6F0294FEF416A6969ABCF2DE2 +04B8BF1FC7D06D3AC23428075BC1FDB07DD31F6A154B5490DDDC9C81D8AA6E48 +9A5B2C1DEFBE3725FF7307A9C256B436D832DAFDF398663B091C30D56B329B71 +E936A1C85BB7192F87B72ACAD59D1F844021FAD8EB29845025DE74A79E0A3A13 +93B031459AEB6E4343BD326DEF7F65F41E931C4AD5AE5EC53FCBB22AC8F22D07 +BEC1C0801A35C2482E8EBA60639A27F26EC52CC757EEC498FB0DE0D1A395E7BA +2A1A8FA28D55E36F811306D8B45382F3E6E31FE8817ACF8C4FA407DE697D7B64 +805CD83FDC351F0EE256CA0F1FF9956FFE7111F40C5EB75B99C856D4D9849DA9 +45F7660FD5AD0D19C5733E89AC3DF461AE57D209909AD0637461EC97783DB4D5 +7DA7BD6FC76D51F28517DD8B7F26F881C130F766695B764015BDBFA95C5BF98B +9A708BC7D956560D8C52EB6F7EC4AB9CF0E3C8B08206693ECCCBCD9F6BB48687 +1FDADAF480995D35324DEB1C769A761BF5044BADF0E94BDBA3E596925C795A1B +B20A82B1B1165D5607A3535688F7273CDC5097EE9D1EA99DE0D39DC3EE5401FF +81AE1B60BDCB44273DF931022D46BEB913ACB96FA7D67EDE445845E8891E0BAF +39A93913D833F2B5FC6B4277AC8BDFCADD9FF74E102563C5798C446D447342C7 +736C56762F30BEDA350762BBFE38C28CDCBBA6C35723E3EBE9BEA0F818187839 +60D641F824CB597873F5FC49C56006CBF252CDCB5646345F75E88CB3E0E769B9 +89EE8C8334F5977CF80FB3B1BBA0FB4E5A756E1995D3BE2566F3239B8A8DE31F +99BA6044DD3CCC34E3AFC22977AEEF396DBBAE34DEB75EA201B429EFAB323831 +085E34F46001319CBEABE418A48D07852E2B840CBB08F461991A7E3FF0024F3C +93692AD3D5C01B95731FD324936B56484CFC0BE8AA27284A5C2AAA6CCA30F1AE +7AB55064EBFBA78A7B05DF4C366BE98BDBC3338A1BB28D84FC50720CEB18C9EA +AC3F847CC1B654146AFBC5585C31DA38C4B99B116F97F2E2DCA1872CFACAE308 +9A39EF8ABC62C64CDC2D54EC614AEAA2AEC11D9413E3FDC66C9A96D8902C26CD +5282F9A1FDE09EE530BA1D9FE09883E39712D0277E44EF20256DD4E05169A0C6 +8C7C49BACFD9DCADA7CC349EA80B8EDAC35E1C0A7E8074160CDCEB505AFB301E +0E382F837F4A4924F1194B96C0C0446D212BEF4ABC1A7FF6BE2074D2A0B50FE1 +BED4902351FADCEB256B7DA6CAFCC8ED24AB6626702514C15517C552C655FBCB +EBA21E398F72BC4B85959AD7F65D950DCDED7415E89D5D1BFC89A853355B1BBC +E3CEB9443F06D7532DA36B397E304B9E578F1415F6A48EEE5523AF3CDCDBB2A2 +16F859CA887CBD806310E1AAF04B2266864EF4E9CF895B9BE09A07D56892AAA1 +FEF69D26CC12D8E697043F76CD50E2FF81B4ECA5F3EF09CA37E81C07263C3C9F +1B56B06696D67D48A6E1D833E8496E88651E5C4EA003B46375EAC3C8BC1CF73F +FCE33AEB2388EDC5A5E75AD296256090004F41A1FFE84BB81EF1079B667C86D9 +B96239829EA44CEC31264415AE3DF7BA9F765D421C9158055B8B4D4A67EC9AA8 +896C44014B09C17D14F0AAA1DA0C332A9DDCD0E175E01B99D06891C0BEA63E78 +B26E677BF9804BD0F1930513C1E07D762F306D1B4BA7FD5A42D0368541DA2BB7 +8E3E1A16626EBE12124FDFD1BF75E6266B7C4D1709C5484276519375C5EF0211 +4FE592AC4E65D194E995D3321EFD17C03D959D72C245C56283B9A309EB159E48 +4618A6869AF464A45B0EE4C38271928DA6FD9A1170F87A7B834FA780D8E86E8D +D37CB9EF29DE494B306B1534CDE85261C500BE7C6F2C7F8734D5F89361E52FFE +1E8D9B772110CF75DA4C7AC4437381828655204096BE9EF0F535263A3BBED2BB +D18664E38CA8C84D45A5DCBDE532C9857825C183D796B2D1ADD21E7A2828E58E +303012486BCBE7AEC01E9ECDA7F4C45E7C12E493A476511EDB25B6BA92129B71 +295D0F02753A2401D05E8CBC386C3D3F04C6789DD382CEC2720A61F354246EDF +C66F812E26646B007A9AE8C39B207A40109543A0E33F06DFB8454F8C57CB5636 +901CA45BD352F02EB03C158F0F9EC56BDD95625D45A946337E128E6F1B410B64 +E956AC8EEB3811BE2BC948A926FBBFE5461C679617ACB8BD2F5C8599D51DBC74 +4DD036AB0E62E7BB23FCDD72756F06AD2EB3E6113A22DC9646405523FB6B386E +C6CF8881BC9B04D61B762B0FE738CA05A3B8968403D9A49379B78E264FC9CD68 +E283D185CBF2B4BE4F03735DA41A94409CA6FA9B2A1AAD7816CEFCE04867D755 +385581F3364F0DDF8A0961264187B02C5300952D0388BD73C55E12B77DB6B54C +920160633B59C2DFD9E164B9C82CCF17F111CB9BE17EECF31BB86A820C3B1B89 +60CA31C5E10BBE2AAAF43131E8D59415E6562E00B92A40A24492FCED8556DBC0 +D5853BD72BB626457C8866F7A95530E1D1D62B155B162E8569816D280B8B0B01 +EF97F1962F26C00DAE9CE1E7A230AE140058F4AA7F45E145313766A241400385 +2F21D29A544ADF9EF1DCBA59F8537C8C3F4CA96C1FB3FB67089F1E3CC89CF705 +8538C7D6B646C10A934B128E6E061D2F60950E5D5D00A2CB5F5E287D4C7399E3 +BB73855861D2DC9FD077031998856B1457E1E52DB9316C218FEF84D14495B7DA +541D3F3F79A70B96B70D055F17ADE16C5DF665D0513908F9D77118A7DD9161BF +42FF71488951B77194CF2458BB7E78530EF587AB37DA101A495F4FF7148E5ED8 +CA8A4C9A854BD22821F4C3499B35EEEBEE41E7ECE91FB1A3307A0EC53C0B625F +0315BFD1E607FE1BEE0CFDBB6E62EBDE845C50D0B003E7467138D03EFC8CF6B7 +C46B0EFFE4E9DC099D542E9DC314181034304D80395DC9822998C2FD754CC399 +8EEBEB5C31BA48D37651D3C1504EA60211EEEA20769DAA8DD669C3630465995B +C4F42751F63F7C6BE17DC26CFA5EEA25F29E95AEA412768D8B54590C611D602F +5B7A3858E95E7194A903EF07C89BB0BC85A6071407C995DB65F0E08A5C0793C2 +6287A77806720EB88A3800039B6B5C4144D16D60007CBCBE4F643EE587CAC33F +C9B0AC672EB75A548D34CBE784BF7D6FA959014F0E9A6FB284B3F8CB21775F5D +28DDD31D9470ACE414FCF9E348A7CECEB8B6723B2D0748BC071FC691AE68A887 +F6E971A1E8120FB303DDE5F7D00396ABFC831632EE8A70D205D41D8A4FDAF91D +18D83AF7BC148498F04F23FBC4B2E6E8EE3FE354B64D87C7DF67F88416B6CB57 +F353D50679C639F308E018AB3150B6579DC20438DB961A3F4A81FC2BBA58FE60 +CCA0C192739DA80A0DD112D949C7221951887082159EBF61C6308009DE710899 +BADDA993852F503FD16C23F1CBC56237C10C33040D218B2ABF7405C9E6A7DE35 +1875F28A62747F34AFD5B49E226096B1ABB917C12DE2736F170BC3E3E8E4626F +BBB8EC383232F3D64762CF5D6A8FAC7F1EC8F491AF58E3E2220567B616333B83 +9694A6B454A7545E4E3BC0315D96AEE5A3435D9554C12845D5906449FD5BDB05 +7D05D16150E4A8F793DA8B627866A781B785C4E0CB2E7A571D93888A59BB5AB8 +8635C3E1B89948BE9F32EFEE87FC2BB2E1E80844E3AC60A84F3F9F2AED0B4C59 +00F8D4D18CB36C4EED051DAB032FCDE3331F077EF71245D6A1C17D3FDCD80565 +004A0D51B5FBA2844823F926F7D565A36D3EBF56A72088658E5AE6F63445CBEE +C5750B070FBA1A3A650B8AF409D59C30909240CF347622F3837304EC5FDEBE55 +6F5C1754DC797F9282E015B6A1F5E401CBEB58A6A20E60B8E13F999A8DC745DF +4D0071337385D6FCE80AC28673F4F4F6C69AD7377C5BBD4D7604F659C43F6C6B +CE7159296454CA297A1985E2D8DA364605014271364B93E64E3C3E9353AAA14C +871A230401234B36BA1E0D570EA3415F4D0A55484431F2E229EE04453A315A4A +20D4ED362706DC46F7FEFE79F3561811C56D78B9884CAACB562DF7E5075EBC0D +FB7682DF6E561B155C720BF87753D632ED20F9AFE1E71032869196A7C726563C +3518377CD800A7C8BE60611581FA76CA4A12AC14C9271F506DF3EC4985238051 +57EEAB331C85FAB4AAFAD875F8B1D7A7007BC9314D59DA9E625DA7395222C1E9 +BF444B3D4DC7A529155914B1B6F9A66664C07D58CE0C12CB710B3026181F8FB6 +7C9AE94D479816311DB5E3BB4BB0A4C81748D3642DBC8B1F7EC48203436172B0 +2F088194A0671DD84AE8831C77855732B81044DAF53A28D2DD0973531AE51F97 +F3EA71460082A202F013B9FB602C342FA01C4F097C7FE33D812AD813624414EB +EEC2A70F11669B51100E447CB065008FF04A9641E9D176466B3D793EE802F1F7 +9C68EA7009B2081C4DE68961995F46B5BCC5E47B699A9EE0981B0F6F84FC2FB4 +CAAA72F52B28E4EAA659E2FAEB24E1CF47C1B5E915B55F5D224CC19B6D45B12F +AEF0E42059D408D9ED058E8C6689487B3A02D9C498C3D8B4AF2179AF87D099C4 +F3DE354C26F04D9BB0373B108D4EA3AADA35410DFE86EF0A108964EB11380C77 +3F53C855C9AC8666A8C38BCE13E546C4F575601ADDAF9695CB8A7E20DB983C04 +6C1F5388F637A09E2CFE3279797AD9DBA5D43602141A73F39656A1A6FBCD3DD6 +EBD7ED27129CEE9B17CB1C33493EEDDC0D3B2FB03C68D6DBDF26428568A26CB4 +4C93E58E1AF521B146B43DA0CDC504FB390C48DA6BCEF2C09E138826995E88FA +7CACCA094B59EC16209E835A0E8B2BEFB7C31EB88C28C7541E7517877FB350D8 +0CCDA3BCA6D3A523B80543E5C22F91F002A383388A45AB2FC8AC481D9CA23FE7 +D7EB59D755AD4A83682C4A362F4620747B34279A203E6BB528BFF4B71834AD5A +ACDF96B59BCB01FACE7CBA9406FA395633D7D1377CF5BB8436027A7F1CD02EB3 +640F3584CEED72650F7AF2D7B990E80386F04887998779B1F794AFFB60EC1720 +CC74C9120F911D26F960F0279AD4B5921AAF054F49C7D6E3ACB9643112562ADE +55C4F3FD1421296E49561CBC7B11A45254C3AC053B554F128CD52DDEC2D7DF94 +F3742D63A4E89D1838A585862FECBC653518C02E59D25BEF11662A1514D0B060 +9B480CD24AC1EDF782DD10D0787A14B425F8FF548CF26807CE8C297E4E0FC70A +646B2E6246DCB2BD1EFA249888CA4111688A83CC6EF2A381ADD8E335E59BC3F3 +FE6F32CCFE3D363E3F10A34F09F856E05B2BE7B9443F771BEF440150016901DB +04088DD0EEB1B66AB14E7A93AA015B4712BDA0E36EAA5238132A8555DB1EC5EF +14BAC818EA658ED402FE99AA0CF8283BAF249220BFA0E75D6E9E8724213D9D23 +BF38625B873261AC1A4EC2A1727EB9FB79430B963EBE6C76435264D39CA58278 +2EEFE83C7C9F145A58B2B0940581D4B5C702492F00486B6D74F27F5AC1B697FC +C4CE89378FE152C3EB5FD3235F8E6247C840ACB930C5FA0AE3BC5172ACDD4FB2 +1863EB01B8BCCF6F2793AFCA7B3A47D67200A9418A787ECF895540EEB5727883 +443AE41BF7BFC680629C8B10C00B7AEDF60499D1CD906A1875A270250401CB94 +FAA6A1C76238C4D8192B79638290100B8E5454B151E1E085B589BB79E23DDA5C +9D26B3065EA1B15EA74FF2A0E641F2476F474E5ADD35510F29CA25FA40B16226 +B9A139DE4388A1B20C3D668BFADC1BC569109BB85FC23916BEB031A7CF17FE68 +8D3C21C21D39F3CB0665DD66E4BB24B0D522AABF57E8D274E53787525FE14CD5 +3711A744226261ADA567EF7AFB0CA5D488B020DB0FBFDB4D98472197C141D07B +7DED25AC401A0E0887DDF0998F89EC5C607DEBF69AFC502C9DB837A799B58F04 +7E1887DD6009C90FDBD51CD23E53363FC62683D753BBB882B2C3D15C304015B8 +46181585E342A2D9C8625EEE0B6A755BBB0A229F605A464C530BEEF47E36FAF5 +F235343A90F7EC9BDEC0E8B841F9F0873D07A5A997955405DF1CE23F77989E9B +32208E740CB8961D86FFA6F1748B19BF98A3EDBCD561A4A26A5D515A11AB8455 +BB876646B849A602F488F21A80EB7E38BE244E3309C710D4F20F1745DBC1E0D8 +431447192873F992D6E1C7F483A519918AFF8712A376F5DF9FD1F089B09E5452 +32C74B7B906EF6E2B6772F4BCE612DF4B1BA5D73686E9627A09B3E8973D747BB +B7C389C9D5F00C70C55BE1E083CF5051A1AF582FD986BC22F1B137A4996AF266 +BEEA34A1E73AA06347BCAA55FA4B03229AB8A7F4EFEFF6C02E55C52C25AE7BEB +0792FF1BCB37B635013A1C088D82CEBDF19D90657C51475FDCA1F2E5C444FE73 +47C0DB72FAFBBE837B1EDAC16FDDF553C6E743436DF78C12BC83564C6215A44D +41866B0093A78475FA18A11C8FE5D3510FEA1B877F20C91360A182D9CFF37764 +B5DD8A0471D6B4B90F57B5D41F602E326FCBA35E9E7A2B0110D5401ECF2DD1F0 +8D3F7C9F697D12D9BAFA843B249E6544907FD8D9C7828D0B9CA31D24D0231096 +BB8B09AC6134FB4627BAC95868EF73522A4ED633EDE2F54D55442C55FED27EB5 +DC8F7DC87CDC901E09CD02A66A36E0EE064E3D180A2E92CECEE8B4EE608E4ADF +AFC977265B81BE799C8E0DD732569E536826A87C58D259455B943E0FB4D94399 +D83251548D8C5B169A3E274BAE85A91282574FF21E76AABC2CC13B4ADBC65481 +453AF22CC3000B5D622D0A07E887F7C34590C8243F566972AF4A3B49E3715A8F +D85CDEEA4C23B832A805B55A27E737D8ECA92DDE6BC1131EC7C1162573F54297 +D947D36B71DD8015248055B007398319845B730C9DBEF2456260FCA8BC87EB7F +0C5243DD97F3B6915E0190B77EB878E485206156A4050DF37A72E127E7444D49 +8ECF9480ED35B3A327429914C49507E9B2B1E296511E8FB351649E9FB697CA1E +82911FDF3452355BB18A56F5880834F31179B83ED76613791ACB741CC39BB970 +7A6CF943908773A79D8F6DCBBF937568EFF7A39A5833198C03915EADD71ED5F6 +6EC3B41746D69F860DA40324D3FCEA7D97445C1DC9386DEBD198727BB6D730C8 +0A29941CCBB52FC71AEC1836F7C9A9FAEFBB8F083604DB0FE8CCAE9DCA6E169D +F8829CB25125E2562529D99246B2B2144C34A49B53F8D0D3CC0AB990B444882D +5E4F135F748A5C51FD3A2BE7DB640FE0D0D6E639D3D765F334BADF7AB43D90E2 +52FBB8DEFA60F2D75DBFD284EC24C9D1D083F4C07ACCCE492BA5A26A100D667F +68C2548E83E121F84B1D8C0E089797CFAB74C9EA64A984BFCC3BE776D8D3BA01 +1EB3FBCC801E5338D798B22C40FF256CAD073EBCBB438017D8E143E54CD37ED9 +06F5D54EA413DE4A2210B6D2CB3960D6F0D6F0F08578A30A650C636607C97B6C +F5355EA327F0CB185D03E4D1750EA8AED8C20FB1C97642F42A032FAB1EBB8860 +3823EE8094625D5F7DF0EE67FD8E8AE96A57C23FD0E9EE13B6AFA0E73D321282 +4CA9779420A3F95B6305892A6E38919007AEE3107654678288F9EEB15E139144 +F463259E6BC35920D0D3994637CDD195F0F8475E0F7B50A348BD2987A45AE742 +EEE350DD2038AEA57D121A331862C85C6ECC8889E24D53F3CBEAB943DDF575D4 +877A17368788C0C2F0B6392EDBB6DA55F1F20E71503EEFDEB0C8BBB979C49CFE +B0423C4EC2C48744F8ACE929D19FD6C711E40F1F4F4FFB63B679AD2A7058F23E +6DEF767759375876DAA4316D524A8E171FAB3A449E4ADE2DD67C7C2F55DD94C3 +56CD14A8E9A887E9C4591F038BF770231EDF7E66E52DF354E640C5AA31C863E4 +19A597F0FAE3C1B352595ED586D8205722511A96F03F9F0A6CBE69C466DD20C4 +1014586F9555D0D3B156FA0A9EC09FD228A6DDF9FC58DEE367228F238F870562 +99F2F30327CBB6E39E10DA38BCE0D70993799D43500E620F5E00779C4B8C3E34 +B413BE03CD4B0F34F73786F74D14766B6AFBCF3A02623B71CC8F47E6A675F77C +548020D1E2EB7AE704760D8A72EC95D1950B74E614A6EA99D6112DEBCF598BC3 +ABB62E677AB9480E371E3FBC301E8836BF086F32282A9E5622162327A911FCAA +68088B63669EF26D610955270FD3D2E2DF4EA4AD13E84E11690474FD09B88D9B +CB94CC67A72C8C0BF8E0A468F1A7D45D7ABDB7C92851D7C33B69B90F255D9C08 +5B593E8FA36660920CEB15791F2F24348FF89D69427B86FBE6FACB1880D07E63 +168153CEA233F7C81F641A982BEE3ECFEB57452DBE9C27456BDA627974740236 +17AE7799038A7EA64707D85EB606A8923D70B26A4F5C6E7319534E5FB002766B +C6B889853B51CE17D1E989F2FD43B2B428FE08CC0B112D14453C6640D8DD98A4 +1D9C8EF09D3FA50C06E14F73B94633C8EA96E98CC58E6CDAFF53904D8543159D +3BAA527F0C50E3B9ED16596CAABB2CB8CA3E59891D7BFF7D42EC550438E7AC11 +EF30BF68A19FC425D9FF01292F4294CF66E1D0CBAEA83FB0A29BB592BF560E4A +904B95E6C2C86728D7A3A67F1D181FADFED6F2F69BA84A5EA92ADD36CF48AB20 +6CE4F239B57AA1FCB3F1A65E9C334DBCB386BFBA8B9198DCC88C9755B5BBB0AB +D2AE753F31DF316CBE4C5F60FC59B2A4C3AB9DCC2AFE0B780D54AD116D56BE09 +2A5623BB6B20FEAAFBEC34A6F9E87182D0EA95D933D6E1B874BA6AB0F43F3A76 +4B123563ADF92A88C049BE4FFEC8131CA6F20D769838A4E2FBFADBF3DD497660 +E9D1B2BD82DF4D925BCAEF4F9CFDADABB26879359005A1E40C5F7DB98E88E6F7 +F5EF5EA3C6121919B3695A3DFF93081ED01339CF59FCC744C9235D2FF1BE9773 +8EF37B9C73FA6C5E3B1DC2726252ABC9DAF5C4A03E147A20A9DA0D6DAC7C8F52 +B401D01B2DB1166A15B3B77DAB4DD97625ED98B59307BF15C02714D35A64A9BC +1BD7D6F3102D9BEB9FEE265DBB5CE489A192C0BACCA137BF576C110F93DCEF5F +502C899FD3309CE313EC837BB510FA6AB55B942F6495560A52FD314C66CF8953 +B8C60FE9DDF9FDA2DB4C70C8503314B2A6BD6CF81BA87C30486DDAFE77492914 +514DAA2B91259525D9EEF1391E8D49A019A246EFDDB2C996677490AD5190DDFC +3CA7C9670F372256198B40393157CEB30D3326610AA270C035D7ED0A7CDA47C6 +5CC5B9173A36261ECE0E7BBF3EDE8601EBCC0332427BADC9821C4B79D663473C +7690B0545B69B2B19F0276299E86F50F6E0A11EC05261EB78DDC2B0BD7BA4EC0 +AFA01F6A13EB652C2C7ED85F449B56CBAB3FE05F76CCBD3C9130013D069A6906 +1CAE94BE3FAA3B9BDF9E7E7D77565EEE35A7F1FC8D78EF0FE7C91FE0AB531D20 +9B3B76B029D07AC557F70FE653702ADFF4541B4326BD640F942E396AF7774F4C +6D3E7C00F3B953C34359A5C609D37D931C967188F09651AD3B747E05751F2A06 +5A9B4C4062D55DA454D0EB834D4A1BD4CC16C5B30882BE8B409D79F516DABF8D +F2FC40FB8011E90927F95EC2DBD14BFBED188B53BA73F703C0C8BA76E4E99291 +D13CBF46DCA9F53DC075B9E34398695F3270E25B9E8DC55DF5D8F49054A409AD +0AFD1F6B5305CCD1220CBB386098BA3ED1AA95C3E74E67849F13B9F872439F65 +D451B1FB3B613071086AC6A1E3E3ABC7471590989ED3539E12570BC0441E0634 +59A95A384051B8DC78845787222A5330001AABC8703D5AED62F61F8FB0F98823 +AD20D45E3E44D28B0EDAA8EF41CA5122A37879AFE47282BD8DE448B5FF890CE2 +05FACD0CA8898282CB81A51D51B2A4C3AB9DCC2AFE0B780D54AD116D5AF5CC49 +3AF5BEF8A307841826D8B89CC030A838385699BD29FC5A74A172F80111BBC225 +AB8E05429F3ABD15749A54893931D11614CEE0280BD06FEB5FF08A013BEBF584 +91022313CF10172A9762979DFE862B2AD43DD8C098A943F8C330CC36EFB4E69E +CA9364E42E2B672291AA1C9EC0D10557E8870691A3E2D6CC24D7FFC08C113D9F +4D458D882F528B47BFEA70C164BD5AC72C065B24F8A3FA29380E1D7C8A458E0D +13A4E7ED8A47D50503F90EC332EA4B184804C509BA2BFCC76FE39EBCDCA69408 +DBE273AE85786903B801BE41CF83D92DF98A1C55D0E47B239F290785C4E66D9B +329CD46EB1D10B3D25692D201B8E497C518807F859E126D47C97ECC2D67C8701 +C13F23E74A6D93EE7169D5E8ECD8D94A4CD036184D257D83BBE377D7F89ED2E1 +2EC10E007152F3EAC944D97EFFA72A904208DAB3A4D5C5137AEDAE1303E5170E +1C04426B786F8937409FC21495807D675E736D0D35ED6626A3651741CC0E4633 +910C0818C186A61279D54D29E3D2F4739971EDA2684391831CC4E3706FED98A7 +20DFD88EC382C8B196DE9E61C936094B9B348AC84A12C5FA99DAF44C46ED02D6 +3D79358FE3891FDF5B16C77AECA326A7822785F543E067700D5DA5BE413542FE +4C9B4A9E6FC3D89130FB541A33C18EE27DC2C8F76C3E3B5B6A2C2AEB3CBDCE8E +9BE491FFB39CEB2196A570CD70DBEE43181ACD19115EE7DAC13D8EB757F94582 +0198B1360B5A31DCF34D85705EE5C3C40D70FE8DFDE7F7D5507F059792AB6904 +1A25324B44159AB7E7B481425D351FCAB53BCC1DCE93C25C465471D6969D8236 +ECD899E447588E9ABF778031B401D1B5BD8F511514A6D7434A35262C2F1EBD64 +B88917A687FF469B4350F61E50699E9F9710444AAE0D1DFE36D3BF2828C1F79C +7961FD5CB5055AFFA55319A0E1B6EF5562BF55F44A748703139A16C5104150CF +818BAE61EB3FE446DEA5D0038ACB311863ACA97BBC19832A654E8F6F609232C7 +28129D8B112AB7645C3C71C870E2F4D03570FE4972A4602017265668EB5E8C67 +40E09773393CE62FE802D6C73FFA51579F5F0D88CD5439E4DA160D2F32F68DD0 +59FAAD9405CAC99BDB891C97481BB34FE36BCA52F4FEC10A1A9A3763B210D172 +469A961B604C266E6677C9CE8D75C92D4F8764F7C725220B0EFDE68DDDC902A5 +0D2D35E5041C903E5C72E2736C5EDCBA09C26CCD1209807CEA5FFF86905CE549 +052C3BD503061CFDBC321DBD19DCBC2891F9E7EA57BAF512F5264945EB18D90B +FA45B72715DFA828AF5EDDE76DF7A201625272DA93B586717AF8D58D6DF68783 +F7C5C43E55CB66B935BC50DFACBBC94A01CD507466172E1FA728465629C35EA2 +5F1408B00CFEFFC7EC3CBEE07B898FBD8BA4670D4D1E500BB76EC2DE8BB22089 +247B96019A9C93438CD3EB0BEC327DB9D79E662EABA6B41F7608C1AC7D63DE6F +D2822C03F1FBFF711C12A60DC09BC0A75E0E4DD995DBD73D29308235366692E1 +D38B5171D26A82C33508E8C839CAAD1AAA4B16ACE7238AA64328B311C868AF31 +A37B78A88CE2BD109137C1F6FB84C89354A996FB60A619DB301B97F6E7781192 +D504829FE69F1BDCADA997D6E4EF555DB20B7C4FE474541375FDF4196633C65C +BE05AADB81D9C2265970CC02A67AFFD9F69CAC3A4C755CAFD7045F425155F490 +8479186CAB475F594F6EE7ED25F6F411320057161A47D431E9502241F61F5148 +791C6FBC492A73F6D9E8DD01B554751254A5E3A26D6ED1DB8488DED17A1C92C9 +755BC004157EBFC7EE2A946B6FEE986FA6BDB446243B78A55EFBA6135B6398AA +8C826D42023BE0E06B1793E8F009F65E97F7F756F08F93CCB5B94903EB2D4D38 +ED97AC4446FF6040D506C33DCA81A0D0DE8AC67F78BCD243DBBEE80B1EB0FAC9 +D35BEAECA7683B0D7543EE4DA3DAA51DAA385F1C946091382677938D2AE2DC99 +4A2F5DA4A0FEF2F92341A948A8F8DD351882D1A2918EBD5314D156957A2CB416 +B920AEE9EF5F65E41A12C7A2A20F13A38EAC51CFB4A8106CF8F0C3009E0C8785 +5E45CFD4484FF85270C181790E1C4D9FB14B1A16D4D3E9CF57BCD33BEFBBC500 +0D262F4A4332E040F1473562341FCD30FC5682ADF171B5C07D9E2260095111B9 +F99FCD5BC8D570392BCA540F43E283B2761DDA2ADAD9FF220154F6ACA050B90B +866EBDD72ADAE0C2DBDEAF1B3F02E94A5D22ED451347D66BCD94DAE59AEE6206 +F99132F0810B7C2DD6B75D42DD70875A5B7CB250DA8716FD44A6B9238054EBDE +016AC988DAA7424B0E3E6E08CCAA455C31C798101E82ED699F2509D11BF7A130 +0DE2C456BB83E0AD47B08FB4645ECC5F45068D6A422F429FD8621DC9ED788435 +94426229FAF3AF6EB9121EAF23496D888253085B34DA0868382649E22BA8D578 +5287C8728CDA2FD11384D888D2401A80CE2A2C5AFF301F5470620963566FEE34 +A5508A24E261DBF3DA24C063941611DD8736326833C051B376C42D7BE6D5B62B +597EF22301EB007BC4A61F07136BC91D25D327B2769B64A09E2A8784D635D8F9 +AFCD759798E03C5D137AB3DF62F406D0571EC5B35103B8B9746C03F8193F1791 +8D3E2D807BBAC722BBA684561A09ECF980E8141F073DB4780894524AD28F5236 +3C7D94EBBFC40FA5025BEA25D3BD482EBFE75215C6922EBD2D3299DCF6DA881C +5F79B2F70E31AE9ADEDEDCA6FB5268394D92C5FEA4AC5ACC0A3F8F2E41C0AA57 +7C2697C141D0E70DE92790E6C84D5E17F57F28ED8521D5FF87E07BAC0881D0CC +1FFD4EE3199E9678FE2FCCE4F473849E48C8557971856F605CB4EF2DD60AA120 +C3307E856186CF1BA6EB7BB4514B88C19E0FF9D06EB80AA80C19B3FA4B86A9F6 +7211161C1392E7DAE55528267D5EBE323757E4AB474F8BF9F90E152138E7847E +E608FBA2248AB6F7FEF0CD8565633F5DCD8AD59C1C23BE4203CD40C7F2505ED3 +6CE69ED2729E967B104B86FDE522AD9878E0E4860EBDF6D31BAEF4B7F4AA961D +25A1760A730F536640930C1CEFED999020B01CD2F176ACB3B40C2ADF2FA5981F +29998F84E9619399EBCC1B00EBAAC63421D061558ABD4A23985A876C1BFB4F77 +15062D3052DB0709E14D4201384F2B643C6AEDC2FE544332E8E6FDB57DC0C4CE +52D1AB516DB2C53E777165AB86C99681EC481774729E20DC470F094954D37668 +41851808B667939C88CFF94651CB58DDBEDAC525ACE7CC204C82BC6D2B4C4C92 +0E88E2FD177B81B786FBA7E50ADECCF34A25C1DBC1E5F9EFAE54821B1FFA0226 +27B0B681C2B9DB75DC47FBCCF1DE775F6824A1F2AC98A63A5AB79D8504F3FC54 +FA7A25BC46CE172069E61AE95B462DEBDD4D347585FFD7B0B648F67B8757A88A +A8ABF37C75D26D35A2B90DE649784E2369F52CEDAE2413F87FBB2F2BD0C2AFE5 +538E4E72C770C8A621FF4CDCDDD91195DC88F343C0D47AB267955C1A3B5023BA +BB15DB97C606F5C9317680A890748DC8298B404C0EC3D1F50A7DE0827482DAEF +0AD790D5241CCE157AA6DBD6AF8923653C6A1A38CD2BD80DEAC581860483895B +6EA995F89E2C131533D11B2CD5F5F479C7B5DDF91BD0FE26C2C425E56CC6D3BF +9829DF63460578BB4590E399A9B5311C2E7E443154FCCFE888875F4E3B9A8F98 +4CA14FB81C9D047D02FDDBFA44550A03D98CFC082865C35838D5C5C32161755C +A37FF932824E44E850BA7276095874395B8240519001F97FABE0C7D30984D0BF +79381ACF661CDAAFEA75728D604133A44AC91D982CED26AA7FB381E50E210A4A +55AE63CA63B1271C7629EAC5445CEF95CCC4B6B6F46FDA4F46EAEE5FD44AEB2C +86C4D9DC15103594EC513686B1291B35C7E287D5ACBDAFBF8433523D13DBBDB3 +5FBB0AD7783669E897F735C205045F87ECDE027819A4F37C75D26D34FD646A94 +AAE95222A1BD47BFE044FBD24F4E3D1C325A709E270AC7FBE5464EF41F8F0D9B +3AA859D0375D1716F9DC509D70FC097F85E206BB921C647FB0085BAC95E03F41 +92EFFF3B9A7F573A6216948D67EA6A357D9B7B15C800B2099C12CE267C6484A6 +DFC1372C92D7F7EE53FCB7EF7BE9B926EED7AC28992C0F6F3E38881D5B80450F +8F003CE9C12D82EBED06BA7C3E45B2D48512BA67EC333507F8197943D903944A +0D64CB893309D30E568CCB44B05607566A02C12A14EF3E238F435F08D1D6FA69 +42FC2A23CDDFCF45EE72DB593493F3AAAA5338009156A2974E4401244F9A1467 +E20780A73806B0D67016F982248B481BA02E6AB02C41DB634D91B70BCCC4F837 +3BBB8BB2B2B1B4099027DEFC72D04C3939C143519DDAF6BEA9D87462EDDE8B75 +498CDB82442613DE92F252559A9219AC863361B19CC9903D1A0C468BA705E4E3 +0A8B4B526FDA3DA767EEC302D5EAA9A91BC8F616A8D171F7189611D6B94D5E9B +FD75A95E6D4042CCA09D6157F344241039B6AD81CAE93976BC6FDB16088C0ACD +890470A2C4BBF7BC8263EB80D87EB1152D6C0DC9876B548367A75C9F3926AC3C +A722A0143715B1783DF61AB8F22FD1CFB4E40FF4068BE11056984BB095BF1EBA +416123228A79F7818EA6A01F6A13EB652C2C7ED85F449B56C5F29FB049D5D975 +1E11228E586694A3354D0114229AE3B6EF4F31D113319D95D79BE105826A27D1 +3AB23F687A366E412839A1EDAA451011F9F83A6F9B4EAB946137295F8CD52E63 +87B1A36A62656566D1C3051FBB3577C6007CB8D5B7BD4AB36F39A3807CC9F6D1 +7EDD30D37A083C63649FDC8CBF3DF0552F7F63440302B5A3F931210CCA673B8D +FBEB5F020C8DCFC1664778EE7DBD959FF0E7A86459532E721E9AA65E82BA9E34 +D4C3B896C593F85759D75CDCB3AB65B3F378F13D4D5914AE108A4D30E8C8E5BF +B97F824479739F7E8495A35821CBA7D378A7B1AAF5F56C7B80ECA128C08B305E +53B4516B846788828D97DCF60F81E24A9B5A0ED075D4506BE4E3D2EB5CF22ED3 +7D4E8A542195FF7994AD68EE45E245FA1DD20A80B62747633FEC6187DCBF778C +867754F86BBACEB54466F0010D422AF72D0E43B511B5221C50D15931842B95B7 +AC30CE00665C90036DBDD7F75B65B3AF6288FD64A5D997FBEC1FB68D602F16E8 +76350EFD2BF20B08149ED113CE66C71579F931A6731FAD31DA8D1CDBC4D20F3F +418BA417994A937CD089427B77323C3BC09D60F5709E75EC6DF8B7248F38DF7E +0FA207C43D258119B942C00284E3D5AED30A34310FAD2FDA963E960C9935177A +03ED9DA786411C941FB7426A02D952552CDC9E11324D8A8A019B4816EE913C18 +CFF8D23E9164A0A953C5D686C779DBA114B1C32C973DBAFBAF53C1123A420967 +E4913FC00A089F57B2C3190B1F74B14DA3C915E9733EC26943095C6806469B92 +AADE39D1600D7F622941F11C5A329BA471CD860DEC002434DEFF1EF97023DD61 +68A34FDF211E64A597009DDAE6B09D7937A3990AF784A5E268385070EC6E437A +A8AB21708D8A7022B92F1045B10FA1A871E6BFA2FF7128B8961D90E505039122 +BE1441C288DF83116BFD9A086ECC1B7F9B60BF87B0E60DD9FB0C1DEF3B6C417A +05E559A75BFA1B8C5B3E252253216ED6B873C37A20843EBD996BA85B9456AF36 +368D84EF4C0C61042982F4CA8CF885AA7D22BEC8D010B891ECA90573E3A1CE28 +E180935909107EEEED8290EC4F9D800CF2B496398D4D25420FADA9C3F821D1ED +FD47E2456E76B433987B229D4046EB6412C2618C640AA60E3E1C4057B8889A26 +BE199678EF8AF826A454C1E99D8BC09304CA9AAC012C06718F3D9F12641FBDC8 +64B84D7E9FDBB5B983BEC15AC45C83AC88713D5A7B9AC19F8568FA6D9E2897EF +B2C47D6FFA25FA5913E2A81BD0FAD3B909EE14CAEE4A46A2B4EB037C27AA8194 +6B574E62D9520E60C7831D59C1F5C98A5C5AB8233A92EDA87B3A963922A29E00 +BE8334ABEAAAC63421D061558ABD4A23985A876C1BFA91E994B8129D73742D17 +BEF718017CD2EA88968A4D4B4B40DF2F075EC50EDB41DCD186B30318446968E4 +CFF8B9B250DDD47CA8E3622959DF6540680DDB6FBE126FE61C308F4F6D96F25C +87EA17D7D74CD0CED210B86E2365535B6399552A92B7D92D3BE4E7745CACC1CA +6F2BAE2DE6FFFFBD3D43D4B26BDD99F619ED92B6419B999306921828C1D94A8E +BBDF22C17456AF5EC80D6AFC0B10E925CF0D9545FA3476377A53D90E2A9A4EBC +F7B87549175718FE22328FC3356C5A1D6E91FB657A5C4DB6D1E403D8B5C489B6 +BBA0E142BF0C3CB2E2AF19A6EC7D2CCA6C0BE584C6D610AFD1C614843B040A79 +E21A616C8C043FBAFDB30356A4B4830D49C639FCE1C3E7E1B041292F8F328F54 +3E6D4E5F2D535767C1C42D89A1AF98A63A5A303C846C383A1C9ACE968BC632BA +FB66F052CB767CBE7858F5790BCE035504D2014ADE39CA8DAC192C2787656B2F +F37D2EA0707F9B7C5108E891CF1571EFA3AB9421AF1F86CA74594E8FA3340196 +5C946343A4A94733ECDFE98943361AFF1DEF5402DE66E0B594F2409B92D2D5D2 +64F20DDDC334647C3E47C5622226B3FDF70D86F2002BCD8A141F15B6594D7ADA +A386CAC42365433598121078758913189F4172EFEB7847A7F342ADA8501D6D7E +8788CCE0FB8640C2D10A59D6AD28E020584D370676FF5A7212AFAE99B2399045 +A27A740D88FBDBD7F91548F44CF99EE1E646A70AAFA8EB876FB0559E4BFD6EEB +311F9C71D386E60BE04DE240F6435104A414BCBF2ED9C72D5A637DD088795C8B +791E032CA6E02585012ABB33A437ADB164A2C5688E64955E10F3432F28A2C619 +09D66BDD52A6D7761EFF3FF4021FB361FF7BFE1F8C0DB136501C69BCC4C6ECBE +0893D1ADDF7AE531E1BF18499DF8C812F33ADA9971F5D7BD278EA46A0ED7B210 +5A740C34120C07E3A01324692343F83D1847605576E2558DCC2A993067DBD972 +9BA093C1AA307B0C38F251F11F21FFECD1A430D2FE2A3912758113EDC5160408 +D14B6D8FE829496930A273728B0F534514F0ED765E061CDA069C1E3F3201EB30 +B5F58F876C6EED19A5987FA54B40D36F350D2A1D6C5A8FC9F0B9B47D3138F766 +C683BCB85F5F4C08682D73D31EFD77024F7A0A4C2DBC78FA92D59BC869EE885E +16DA2E1FDB119D29C36C936559914ADF426FF193765CC7C5063250F2640205DE +9C3DFA592B81F8CDE984C012B3A3FEB41FBF2EA37CC2F783594DE613E96B1745 +57C1FF3545CB42066F2C8957F3161131B522EC61099BD30C5656748D8DE39EF3 +4CE12FD3B8D257373A3F45BD25A5D100A2D26051845C461FB87ED755555037F1 +47ACA048ECC2FD9033F21C47E9A5659E22B8CBD28EC799D3567E69A6B4EE7022 +68537DF81FE7D9130123B0D9439184621D0B019CD6CA9CE721E982C37DF40253 +29F67D7C58AB25B33CD03821A6463ED48940FEF21093FEE466B4E18359D08EFB +AA0DB3B168198AD580430A54AAB1C77D8C5230E0502F435F4E7D4EF723CDA269 +81B41859F04A4475828202E5901CC4B58095CE9A1E374BA99B518351664F5DC7 +09A9B2FC1775942493EADAC1D4DA3156166A4489D046C4D557A1C4C32A3EA743 +4413152DB08FB5149524275020002C2B147E41694B03D9959B426350E6C46DE3 +C486E0235B061F7B4B1CBF8F38962EB8CBAE26BF93878E10ABDE2D38AB7BB24D +6150749F59CC549FA14AC44E77FA87202564CA7B368B031616831F236E4D8A75 +81AB3C9D4181BD44352E372ACD1E8695E2A57AC09E4B4B616B8FCDCBD8241165 +C84363ED00547E7AEE5B9906C4539B9EFE445BE4B8C7606EC7A5E4F481AE1B60 +BDCB44273DF931022D46BB129185DE72C92D4F87E42AC18F29F582ED83A2F19D +9D3D1FFA9F1752D76627603543947F07078C5A948EA6E61CA2342D7A63899555 +D5DEACA4585F9E9726D6430DB4A024222D4131D6EA62AA20BCE3049F990744F6 +BF1261BF5F12D97B9B52E1643116E662CAC5F8B14B95260EB6FC39043D20E634 +57ED5AA95944ED7488159151A2C4CB43DA2F3BD3868D6373B736D4CC017EAA87 +C3113E3C54D6863D939EA7116FB2186FEDE32B55B02AB53D4497937C92121434 +200036848F620F889344C963F3BB4A66D11003534ECF309CA4827CEC6D6130A1 +32BE528BE3AA79A2CDAEB8F871C22A1BB6599DDE33CCD8296F8FBD5C914D7336 +BD217AAB40D20BEF6E297346A1CB5FEB90C2C237E497C4CE64D78BCD0038040D +9A5EDFBBE7B8EF011768F7FF8B941289D2238C5957BF57FEC4C82BDC7A529E00 +DFB52F46EC9E3A8A391F570610CDF3AF89E3206A14F87CFBDD2A83FEEFAA0C2F +8F01587504BB96655EF28044726492A9381FA2D636D53DC9298BF525779471C7 +71ACF32E61534C4FC2537AC2B29B27BB68300E0B11954CA59E6D8C091F151023 +347EE74E6A826FAB2E63B76EF74DEB2D075025A15496E42772AE3688F95C6FE5 +3A6685C17437F7B1EB1FD9E60D32D132D2E68B650B62FAA0E69AD4AC12B09E84 +7B2504FD7C6EA8AD9739B45BDA63F16679F5DD417E32CBE60B39A63B21F2E15C +2A8EF19E4053FC80159929B6E30B5C9F39BF447534453AF42080C9E0F54ABC5B +CBA3601D9EA9E9A488BE07A434B010F66B57928F3AFF39B376E61A4EC709DCC9 +B4B09A6995CB7015A1998772BB5B416FB37F78DF6E349BE5593DC6B1BE8D549D +C4C6B1D648BF39527CB16E5C9371B3627EEA408C1F2374FEDCA87687CC113B93 +0AC0F12871C2769840E8EF46C6C1B912601670413BDA11874EE92CADAE26955C +7510EA319DE767ADC58B7FA43183502FD119F77BB2CC4BAF6EF1A9406E35FA76 +FCB1DC4ED9E86DB24CD1147999B350C1A912D379D9E37C8646D083773FA731CD +39BEBBF38B76EF0F3E1C939E046DCB797F3D3A277056A9E08A25FF4A75F5B296 +EF14AA31DCF5C1559B318EA43B7CC317DB4550BBAB0CE41589609F9FA3ED9BEF +89C39633B643F7B58BAFF05F056C670717C5CC75BDCFF82AA8FCDB8197473258 +93AA7388CF2CB918065529F205321212ECDFB6C4E8A0BD65C685499F30DCE5A6 +DFC81C1504D4D09E1B5E7C8E5AA4C868D32B2305E4133AB269223DAD358492DF +D94DA0EAD1D8B9E34771C22AD65A7FF67BE598A9A575C8821BB4350C40A59893 +2B1E9B66219168A900CFA9CB7F8FD2D83375502F149E91E8E43B40CA75D894D4 +563F32399F3897DAF7822A8B47E423ACEC79E8DA15A08FCAAA91669EBBBD95FB +A640C61795C412FF957F1B048909AFC987679568561F49CA66CB152D4EDD5802 +2A5264E9B3D7F6E292731C73719A0121E63B94C6D0B1F8B270F61DE04C9E9BBD +F2C42E4AF35442B0E0652B44E449388FB03AFBF6576FCA0FD0716EFB3DD4C3E9 +3796EFD6F3938D4116498BF862A5DDBFA35BB75A359BC78B9A2496E0BBB18697 +0C2C7DBEE60616ECC8553C850C326082CA134FBD216D3ECEB2CDD1DDECD7BB7D +063C152982D388DB7A0B4ABACA9786501261E93D2B513D0547FD775353EA013B +241789F4BFD3CE966F93ECB9D74205899152982A8B488C1C6641CAD95A2B7A44 +BC171DB1EF59606354AD4A6B726C02176DF5BA5DA0371B286B62DCAB5D46FD02 +DEC16E24B0E15C2C320E3EA51E566D2DF64A939000AB052AE7C6BCF633BC9D6A +33D38AFB5B44EC1929FF0690F64F23A45B817A330FE130D852D784C9D8A95C19 +2D59FFBC51C2E3684FB04DCC95C86FE948063D92EFF51EFE6AD62CE7EC7BF99C +0891F55158826B135420ABC88DB06E31E05ECC91ECB1643FB12716A0872C8F68 +D03B664E9BB3DDF89A5C8FCDBC73818015D417881B94D42E7C6B088F841B14AC +51A6B584E6F943FF9972FBEE39A006AADEE4776E0E95558764FD5FD1A919960A +183853E13F04DD3DE38FAB3EBA22A456501EDE77132DC2589783E9086DAF3115 +0573F0379E1A86D443DFE7C4E523A39B4C2874D394141A895D4B24A3845FF656 +ED75D87EFBA1E255CEB429C71279BC34EE383436D10183C4817CD43B1EDB1795 +60C9DF5FE24563BCDA17DD88590311DCF8123E00A6BBC4C204AD3F556DB2D3EC +30C2E710CA128E8B9C0733EFB2517A1046AB3C74434F603DDB68D3677508BE3B +2323379695E7E24A345F755D5132A954D8D8209A36F613C68C1E371C456FF577 +5DC4B7C01A6B95E34DB3D837A2ECF2A658976CF34E102563C5798C446D447342 +C77369C7BA643045329D24E5413AAF8B8D797205EBC9A80C256299F1E73E5350 +5205ADEF48DF07FFD82B29690B6E6DB809270BDC40CB9AB1603748457E3687B3 +2BE3388478CCDD5814AD3F55750908D832F3E8A21C36E32F2D603D0263C2609D +79DFB76F6E224966951A8DFAE56EFA379D910529556F218AAE9F8CBA6147E665 +068728CEE4FF502E773FFA380C42E6B070A6A0F8DA42791E3733EFD9ACF2B074 +1EFC39C262344153F95259E5389113A11B269B71E48E01F67046CF35F72515E5 +AF6624FC9AAF420CCBD8C8A7EE980ED56C4427F89FE3B0FE32175CAB924ED02A +97B54E9B468BAC685829A47BE47509ED22D015EBB5D4BB5CABE110D76E8A76D1 +E405BB5912D6B87165CB8922A3DF2BD026CDFE7364648B0F43152CDF4BFAEB5F +CF007BA98EF46C65ACBAF7C1B8CCBF477AE6756D1F0A2DD7962AD9A6CE80D150 +7A361BF7F774505D070275368DBCBE50BD8B4B212F3D633FBE70D171FD86549B +858FA331CD50439D42F6830E9A2B137F7F96CADA9C3F77D24925C8573959C83A +77EB28FEA789DAE02E1E111AC732FCFF2B29C5A385C6E286A9F17DF31FBBF267 +5277CEF4ECB45F5DCB6BFB8E3B400D051B27DDA825AC6C72200177A3862D93DB +9BE58DD249F8D321DBF79811A32FC5EC4130A9304BAEF709713628A47DB3F7AF +B2992E6CB41957431BB89ADD012864D9AE93D84A19945E722502311DA72B5106 +EA512777BA49E80D332113F621041BF1091BEB17541408460E9C62E68CA7CC23 +2628C03B4EA48A029434926E013D6BB6B6C4D072D8B645FCB5728D174E411E0C +7813C2AE8C6F528EF173E483782FCACA8DB225952E596E89FA715F79C0A2A390 +14ECD34DCFE902E19EF90F4824DBE03BBC46DF88DDB70D0535D4D7757EC4185C +67E0DD7100D5A9A4D384ECE4512E6DB834DF814798119A81B598F26B2EA81AFD +79C4A84741EB8852B76C9F0C91B5516826E05FB8046BA34E3CBCA440F97FA94C +C5244DB2A57C4DA652E88C10A996DE9071855B52949BC4797601B3B3D420CCEE +B0FA4D0BBB55504E48F4EDB3755B903A4D20E587F7F3E747B575D06C7DBFCEBC +475522DF5E61031D8FA1304E30EBCDC6C43CD2ED327CA534E449062DB2224DFC +D4B0C907E18AEFC14F979F3CB83239DF269A53C2AA6BFF498312E0B10F8803AD +52F971FD9C8B0E22D8A09E536CA59253CDB9F4BE56EAAB2F3A8710BEDF4B7F7C +38809FA24D80E5FECE76A8B51894935637F6D5E464B665D74FC0F6BE278D4D1C +E1593D63DEF772B67856EC22ACF3C37B66382C5810B42BD9C966D332FA6C260B +8792115E57341989632747D845CE4ED1A48E951568924AB40F0519F04EE1C21B +6072754C984644114E979F4CD9473AF00AC958BD937737ED6FA58D0496515D1B +2F8DBAF010D729B4B96A754815E2259431C05FE93FF0267338BEB45B768DCC14 +1075B747F32A1212099DC010BED9D23814BD30EB76410D0229112F7B1D202DE3 +3C40ABEF308B4437FF0460A2D26AF7534028EEBF1BEE0993D38EE8F7328E3DA4 +48E31527F62F479E98418A0D67683F661A57F868724A65D310932EDEC2896F9F +E973F4E39998D69F8AEA936CCBEF4183749FE1E59EEA8528ECBF5CAAC9C7FB10 +6DF36553BB138B20BF43F28BFA7066E5293A605A5A4D030E4AD1A7DBBD54795E +911DDF0C56D2BC9B1F58C0141D8A6B183CAEC7408077B9CAC032D897162EAFF6 +3CE2AA2B6CB7477B87FACFA276C16316B6C809C90BF1598F7A279110DFB3D1F4 +D7739C0CE880DD6EA0C32C4D318391E525EAC6A0CC44D808138ED0DF342EEA44 +3F7CBC2FBE80E77EEDF0346ED0B8814EA6FDAADCA58ADDB6346D78857274D766 +EF79E0BFA40D14CED24936317303A859A14CA07A22105D5FF703A9C3C43912A7 +611D63F0706BCC02E0F8C1C8AE38D07CC29CE63855E2B0F9F7939B1CC64E1622 +7C7361585F2F83AE4A2886F5E84ABDD1D0D9F36822E3CAC81BF76C29622F9043 +F1EA28E26707D3BE2B69A95D46F32DE17C1B02682DEA3DB22C07CFA63586C592 +53DF98FAADE3CCBBDC7B093707374C2CAA86CCAEA7695DB8306E8F9847D9E293 +67D07BC76C804A2A2BC17CB26DD1F8E2BBBA9F165E4550B85F4660AF51289B85 +F873A07815239E4276E23CC5468AD2BBD7B998995E81C47B68F1CB26A08A4B65 +5588D5AED30A3431071A8C5ECE05AD84DEA400E6C006B8840547FD3691C5E3EC +43435088BEB4F57AFFC391B9595FC87E5F228E5307535F51BE35DAC1F398FA17 +FF0C293220E0A714ED96AC346D913BACDBD8C2A42AA4E5E9BAE87645BCD644C7 +FC560432E97BB6887C138E0A722C9F4C7C40B949639EA230CC672617ABB13A9B +578340A8C7066838711D77DCEE1D65E66FD2677CFAAB179C83EAADE8ADFB9DE4 +7B2195255C89B696D6331B8D09B8BD6276ADADECF69C0772717E6BE0FED42360 +3A88D0F7E470AA798540DFB878C8FBB0171210F516839F2440B4580287815D04 +67952474913C66669C4DE4DF9B1965C21E973E3F84D6B62A8655127A5001ABF6 +9712D3F5099993B56E13F34870C8B7C079684D4AE40855E052CE13A48605F1B7 +141B81F102F76F0B1D30B335FA7A28E4FB2090F0C6D7FF8435680C28C44503D6 +678EED921DAF712A0135F35B9B1CCD76964D97D03201C75DFB142D13285E87CC +401FBB8F38B61BA581CCA5EE0934BA9A764BC3650C9A7EE572C275B4F308AB8C +838848058B25D86F2FC6A3A528471815F0913AEA983936A6CB6F1256E9F013F5 +B649EC2C3B65B54067A2EE970C7C010819684DACF8B6075996F8CD29074878BF +4B20C519CC86A4BD5F6FEBD350E44E47FC1871C03FF78A1622A8A8FC43B261E1 +B2AE35E4F5E02083116B0E0D2264DB4231848A409D9CC9E1ADA3D27650D8FD31 +37B815A5A4B71C3D2CA6B63D205E16B4D6ECCDA67CDD3A44A3B9C77F202C7818 +A558834CC2A790276BB71FE1A04A6D7293A4B46D3518703205C521B9BA0DFC40 +6CBBC2959D90ABF91FCF818AC876DADE57D54BF80988E6AAA122C2603689FB7B +A9FE394A7B7AB77F57B4E187884433CA15842D3A5C5754B2F683C61404145057 +6CD8574BD4CF29DFEEA6617C957D751BE229B66DC97C6697272E2D204AD0D2E1 +C5B32B67A31499CAE8716680E87A70F2F564C1BCD9E6EF3425189EF617A3004B +33FC753D7DC1301E0770E7CDF60E3EA0BD55217C433062DC80F64DBB1B0743E6 +E8B35E176B9E76DB4EEA4A6E1AB7DD941BC90E1E220C7FB2B9827759EFFC43DF +F9D705B6C8A25A2C8CE640450A054EDB9D0310A3D893A45E17CE0D01BFAF484A +9395033B2DF5BF32FF7A54EF897F4C826FBD4081387B43AD52099F4CBD1ED070 +938850685794CD6643A7555318C434A867A96A6298B95E02215CD5F60292DAE7 +9709B98C678738CEDC6CD9E408313802C5905C40999682504665B6495D1E487C +11C5D48179A1E086B00F022C458390D8E1B1A862AA4EA515864BDAB76AB6A6CF +8D61A6D4BB1598391378A9F160CACD6186D897D801C6994A05FB4AAF6B95F8D0 +C9B6B10BEDCC299E3851FC86263ED810D446903CE34AFC53C6D214459C9E580D +D5AF4A631EA2DF23A9CE15E385E279B208A6AC7F3F344B79B4447130914B3DCA +44C626E1B5522F7CE7BD02FAF34DAC8D60DAEAC087BBB4972D8FC2924F85610F +6629A80A02B869262A2602F3F1314EF110E6CCD5B3C368686D27867C01BF9F40 +B4767B62D2EC2BCD25BCBA5469C9FB116E6FF5C9089169B48F5B3C9B96A67BBA +A9E134A4DB67D45B49EF1740155916D60CF9618C8FF76C018D5EB905E42B9A93 +2CA3C7C53689591C329C719A3670EB6F45A95FBE534B455ECF93BE08308658D0 +31AC22896BD278CCC771C25B66B3D8AF71604927382E2476D0E2B09F601C9CFB +59DCB2C3EBEC77799495D621D1504C21629481C43FDFED15841F9AFB79D9E78C +349E5DFAA19BB63C4377C807FD61165B5986ACB2136A363ADF323AA691C114DE +4314FF7041E8A7EFF83B1C5716001BD4CE16C046B5F3DE60EF8DCFB59FFDA3BF +FC8959DD21A3ADE0C38F6686A3AD954BABC8ACB691A955A4BBDA407BFF9A9290 +7251B3A7F49D8EFA274AC557E09751335DDA6C0F2E91087D98AA736BC436391B +A1BB784031227C4F9F6CFCB6403F4757EBE8F42398141A0DEFFF3DE31921A4AD +5FA4339FA22857C1C7FC647749AB3637B315D0CD0FF6C8D76F77291ABD4EE34E +71AEF9AF29C32298E192F275D2285288C54749EB623FDFAA3D6CF48F1A32AAAB +446C9EEC60485E4043B9E89A0676AB6866995FFB85DF61D086752592412F75CE +7401A4A3F90148CEC6DD3F13F0E085D8032AD276B98A28E15515E3CDD365576F +581D167969D2F817B4B9097D73596A402C3894FE604D5553BF9C489FCBFC48C7 +9E5F5ED360A4EAD5895079B2D5B43DB418B39EA280095DB76858AD2D5FBCE890 +554DCA70B0565A94E6404253BB623457303F8DCA27E4DE434C22129B7217B2AE +98E68E2F703E42767873A209A8C1F75439D6BD207714434ED20AE0DF71F422FE +AF71E7A13A4D080F044206BBE3959A440235DD41FEC11A4AE27E6BE6D712009F +AE215700937DAE7F80830526715C13EB20858F94266F810866587C0E74EFCBC9 +79EC0782565F907EB364B766E47CF000174795FDA63B9827F25337D7E9BC76BF +C0CC27E1F68777209B22A614CB39DCCD90D7D47F22A21509BB45EFDBF58E8C45 +843725172A6634667F3FC38B51FC33A66001CD67267157D6609DD79C2237159B +4F77DB4E11581A4F6477110983EDFE6B78789A03B3E22D3874C49B9AA3D48917 +76F3EC1EC47123DAB8D6959E3894DBE0FE867B25CCBA3F26AEFEEBF1CCC756F4 +D46EC618BE8808FC2E5A70824AEEAEE5E1B34374C57AD6BC3A4454B73F7150C5 +3318481297007AC3C78F522C16496F1D327E2DEE657CE677C439DEE653FDE963 +D7B6777E43E2482B881C390D867EBF02C452E407B7BB0E6BDA27F464FFAA25E6 +56C6985EECF15EC4F49025C3BF3DDB5A8E8B1B7310B9D28230071829D51E61EC +36EE2F1E55CD79FDAC503FC35AB7B41BD85CF4F43EAABFEBE252D16AC37E87C8 +C09E4A874EF452B29C1AA8B53376D93E15C7B5858971D38FF2E63B8A19242A05 +E450FFF77F44D32DDA89183CC96D2531AC862E932A8ACBD9943B057ECD2FDE19 +37CFC57180381F84397F11DE026C13C5B7EA355F1F68FF25EBB577BE79808872 +C0921ED48055BC57CB67B7FA5DCE4F4C2681B3DDC632B09E516883C8D0C8FD84 +461AE3E58803A3EAABC9600409778F4CA69D5E6B253D42E0285E1F65B11B6C06 +ED035078BB798D185E52CB8AB3F10B87120762A413EE07241DBAC244CB812391 +4A07A8C36C099632D8D3D100D21DFC125EFCB8DF8EC6C43C8DB2D80640E59FC0 +69A07A0E5214A9BA57CD8CE07A8CF2DC043B90B70C2AF5B1A8EFE3B06FEABF4D +68CAA792E9706E46620D3FAF8E4DECD046B651D189EE5F60C6749B5548B66DC0 +377012DE3D96D22F83D04B99D77396B4BFFCFF4BC4E2D64B22B7E6F5226EAEC4 +2C4D0A26F451170D6886E4FAFB2175616BB61A12DD98C04204FB4279412097B8 +1689109D2D5F8C7F1130AE1B38E70F2C8FAFA18E2BA6A1B5C3F74C9A5F367645 +4F498BC8EFC11FBE76A5594D1C7658F23423A9496436368AEE5CEC036D2B17B2 +4AD4BD6E9466C44390B8C62D3CC37E7D964A15022CBE5F3386BE5EE5AE9E20CD +3ADF37ADA25AF95A1E72F3FF02F1EF9E7C19D07622CFF988C3A8190DC4984BF7 +5F4B989C526FE223382B9DEAFFC2DCD026269E35BDA361E4E6AEE0C1E04F1D4B +2953D1284A48A9A74DA3E3A94A9BAA3A23BB9EE14337241F62F269E4BE490439 +736C969A3D88EBCB7476A6EB3B797751EBAD750D33237E505F314B89E2FF8E19 +CBCE825A7B22BFEB46DFC5ECA7C10D0BC176F73117797DB549880561832FDDF0 +0DD83F10E92A073FA2966DD8860C9D3A2A9C0B6AB983035E72F4F1758CECABBD +4DD09A603EEFE6765AFE13F96030540CE78A313BBB655E53139C59B91723FAF7 +6E7845ED1CF43DC891C8F963C4E83E59CC8B8870F42E228CAEADD827A59DEBEF +44BACF27DF728FA5B67915AB86689F16636E6FBD88125C039543D2612761292B +A42597B0B0D0C72BFCC2EC4E3E594D26BD0DA98104D2D70654A8164132A7C7B2 +D8CBA289E098CACC27B427F5724F26D393B91F703601E2C2B7350F8DAA853083 +51729F215C27A5E65D963D18BB54DA6C3B2761FB40FD9D70096FF2B38FB75557 +E9140F216C008205CD64FE83DB49BA9447320BCF2056F5B70286F98947865637 +7956C7F5F6BD902EAFB23686361D685915CB6B4CAF12E736C4F5FE0DD61E95AE +FC76530B231AAC1C7CBDB1650C0EA20734197C42FE6C5115CC1BF18D49D0D076 +03C778E0064BEB6AF87F35B26855A6F07BD2DABB6C6631081949A74CB166F6C8 +153AD071BD23DE0B98576B9D03201D2EA9F10CF297E03959FC1AEF3B26F66392 +84D40839CB4B4771EFDABA21A4AED08CE946CF4714C16C58327306EA61035F13 +6A38AC7B14D67862C853DD27178BD366828B386D4E80D62B5D5599A5538E9B45 +1931089B7171E5C5CF903B14D169E67AC6928653EB2A2B033ACDEFF4A38AFD89 +9DEC2081E9C33C797ACE7D0EA3BAADCE401E60E068391275AD745277662B00C4 +2C11B63226909299BF8021312456A86C8E62EBF68C75FC1864B022337FA3FCAB +834E755DB6B0AF13A500C00FAA592E899884E83713FBDFF2073DFBF68E44A82E +ADAE76A45AC51CCF3FD4E97C46091FB096D6BF441C7D6119E3CAD1AC249F3F91 +33C64F04D091DE66DE70586ABD8E4E5A121A1F8FBFC567D150B580836669EEA0 +16DAAAE0F93F042E81EB71EFF47812FC8A2CB83E00E36B5337D6B6FAD789EBEA +ADF2C9BA0F9C5E01C97BBEE11E54CADA3AF154BB1B2F3EE5EA3BC60328D8D522 +155EEB00F4D7C6D38EB4E69D3F5D974F71F86460E49D2C0CB1434FB5BDB61EDB +0FBDC1614B4F63622FC187C930C36BD29C59DE75915B4C78C5AF610EB8F3950B +C2A8685B777155C2004CA8F8DBD87B808292CA3970E41804FE25CA13A96C0DED +6DF04AFBFC245F47BB317CA0BA4B3533170269347B0377C430DA3587275EFE38 +B33152BEC8C394802C0897F17D970DA14EA4AB244B184B1DA48205725136A9E7 +45DE7D0691924083F750BA24B1D134093FAA89B19E9B491734779FD0701A0571 +4DBA5FFAD2083A1D6F9C8DB43A06A4B74D94100772C9CCF61707564EC6672EFB +CE34046292B1139DB9A4A4FAE581AABCD950F67F97774F70F50990596C92FDD2 +F6086A2A0BC8C830E2B362BF82FC36509241BAC724D4B9AF42928FFEA285C5E1 +A9F38A8882599FC234B46EB832410F7B534438A30EB2D7A446B9558CB5A79802 +6EEDC4276AD602AC4249FD91438DFB4D894CEECE82CA8406B45188E2AB4CE5B2 +099D4CAFD6ACA8733AEA35AED578436810E03C2166C25883A3C182B0E6485327 +FDA3A8F862CFBBD9441D796023E861DE276A21577292DC2479B4E27C41E88EED +5EA432E2AFF3FDA15F4F5DDDDB53F931ABFBCCC8E32B8B7FDB2D9D4BE9B37A47 +E520380E4A52125FC1369D7F994F774682FF4E5E2ED2589B2CC123E1AAE56A6B +64591C35A02A6F77DAD0A6D1FD62CE4656EDA769C0DEF3170BC3D83C424D7836 +F421E39776BDE8EAD95EE9763F01CC4A719F32202C237FDA698C65EF768539EA +AA03C02D28C9811F44C6698DB1605B2A13FF447C0A4192B118F08A78EE82D43F +614481A6757C3D55DBBCE6611B44980BE294772A0FC0258529E242D20CF4BF5A +818304CC634FFC9CCC22CE0058FA04CF0DB013C9288BAFD4D2BB926E9CD6F557 +83D160B2DB5CD789CE3BF470698FCD7E5CAD3E7634605C87321FFBF851FA0A37 +4DF177B11D1C6EFB78785B693B7ADEFA3D1D2C1162B6090597DA9D9F585D693A +FAA169EFE6260E96CA6BEF2AD4E3D12322F1C8FCB71194165BDF288DE9C95505 +72E8695B3ADD1F94B830B83D8691C86060D03A7022B55569EBD43DF3E842912C +E694C765932374943236F840A00B4989617525713F34E71AA80AF50561213665 +57BBC9593AFABF099977B1DE06CE4648F22B8FA7A8F1F594CB42289AD44F5462 +8B5E2C89AC9DBFDF32BD25B23300F3C78EC2DD9CEC047C0CD95D8A2C411BC054 +F931BB29FD643001B90077B3F22A3B31942F160B7AEEE25D2930CEA9D48CE857 +AA48A990764D456CF6EE788EF0860F2732ADE494B830BF9E19449443E9EEF949 +17606A6D87A1922C0086DF26142015FE405F84D338DBD85B9D3A7742C3EAFAEF +BE555B2688E9DE45D65B75DD4991950976864AB2F4F4ACAF491CF4BB31F1BA88 +A722BB901389E3F2251D8A8BDA9D70915519F6B585202C0042B784B1259C62D4 +889D4B3B8DC9FF621C6A6910E827AD60E146FDA68194E8CE6B8EB254EECCF870 +7D80102509FC6ED44452478475D612D3CB2CB2EBEB6E8FD51C6A90F8F6731EAC +9272CB6DE6FB773834254BD9C86CF52478EAD5B91D9FCF60AE1AAB98FE267B0D +85B485D08D1F25C3DFA5A36AB7082ED251004436E22EA66F6CA770A33D89AE93 +7E5A874155DDAA8E3A12F91A47F2ACBC2278C977DB76E4F72CAC58D38006EC6F +7E660AE9ECAC2AEBB0E28F4CBCB8CBC31168699096579D8F7C3DB91EDE5B5937 +485E375847440F780F847C0CBBB4641CA03F214BECE6EE6B7B43062D81160407 +AD9D9B8E526B24A13AFCE2287D4AD871728778C43FEB250DF67687BA3BB8D780 +4C8C61F7D1519F6CAEC2E9F066B41261C44982201FAA4C45FEAE11773343AD37 +A7EA0380F7C90A14C05E0B1C16413BDC11772B4D643D72C21B86610EA23CDF5C +0E8D20F96B1D9083798C8B275BD6861E991C8ADE79E3F213FAF3CD0601E03180 +2A660C044EEDD260144DEFAF11E74777640BCC4BAADBD407C30BC9EBB2B0E1CB +D0BCD2EC52F5DCFAAD5C8E5C3C19F59BC03D43601E626913EC29558CB2373D39 +AD58EBFA8ABCBF6D7B790D372FD051CDCB9A5B9429A22A6C74B197C0A9AC9713 +B8DEE87E8949BB9D05D8020AA6F04DB3D8D59F0B1BB5AA0238B62B71609838A6 +58DE793B121EC9D9837F45B1D6603665572D3B669C8B1BAD27E0D9CF9318FBB5 +79AAC1ED82043E026D35D4DA10428DA69FC576EA5B0497B954F1DBC052572ADF +965AA704F141BF490D1D2B805644C90721E51A5A3224B5A865C633738C2FBBB0 +B114FDD7E98F85BD44777D0A2624EFDEC02CB62F10B190C3E17F4C0790A96DC6 +C0BB83987180A232929C7FD96C7179AD3048C755A258908207041B0F29A390D3 +4D1E720262C4BE5DB072A927950796230D225FF3A4EEB89A9DD601F4C493F125 +B445871EDD0E99E445456A345ED964296B1040BEFA27E0D6737C7CA54830CEFB +0727C0A5BB2715F593C9AA9EEFE4A48CB84035ABD2F80D13D2D0C083662DB48B +BD0F9A5CB0F3B2BF196703E7725BBBB617EA2042285A43B5C445B7398C8C5DFF +60B910AB826EE1E24BD7DFC98EF7D8F8D89E8DE900D8AB3F239F8FF7B87412FA +4EB722D5CBBD965274EBB299EDD17D5579F861131EF3BF776F0D27532825F9EC +D847E348B1246ABEA6E70696E6F99D06E50E1EFE28D0CF8DB92FD48CF1D298F3 +BA39696AE4FD5CDB462415513250A1C6B285702CFC58CF14D0EEC1B0C7797C4C +ADA00521FD3443F9C0781BE1F5D68A5A4F9B799625ABA2C319B2B2AE4E96A7E8 +02D75AB8441818894E8CDFA389EFE19A26630E19A93E2744213FEB31ABA54014 +E54AC5D04A623853EA6DB34A894D49E86DEFF4C78BB2F1A4D6D6C0B5BC6C68E5 +EA29446047FF8C3CC392BDC138987F3FADDF7498D4D36A68A027B5F6DE8DF594 +9899E159D698DFB12775D9D95F07F6597D77ECD035F758E4DF26432F671D07E2 +6ABF288AAB5AAB7A0CCDE27F4947CD1D495A812B6DF0E92AC2B7A2BAF4E5C963 +C0DF795369FBE5EC63E2250186F57B1BCA29D1F6FA9388DD3F0E09209BC1F250 +1B206701EB58364AD6DCE16009EE620ED3898082A1A51371794118F9365B5C4C +649491886F58B60515F335BCB6EEB8789B0F785A0261E1713D18410C6494BF45 +3B28E7A40E754D103D93FD6AEB14FF232ED51A679526D152A20F346445B2D7AF +3747A38994EDCE73E2E0FFF71B9E8E95BC6196DC70C81ECCC6E48D2B06821251 +6276DFA8F14DC25C1865B16040E708761467CBC3057C65D0039053B57A9FF7E0 +8566C98872F6AFDD3A6842D9F1DA8FD90354891717A78544BCB1AD98BE81ED13 +8815B4825734590D37222F96540C885C614B3F30E12D9FA080570B6DA4016731 +8377B80D0631A662438DDAD96B79E1B51F46EF2C00D959CEFD3C31A87A367A32 +D2311AF4A3812E0BD97808C263AD610BD59070FCD36A6445981A5CD56C7B50E1 +0B1E9B9F271CBF67B0B3466667A0EBF637FC906C3A39D193A9AACDC543270302 +2F765E41FED84D3DB5312BE275392E280C40538149D1EC7F1C61B3DDADC022E6 +2D171569E726C3CCEC388678CAF6534CBB9D19B86E2DA360EB807BE4A8EB1533 +78343B47152FE0D58CB718D9E16F78830936A63BBC30A47473672F6903308E83 +A5364DE5B7B068BB3DAD2C41935F08B58CE878CD24FEEAF84FDCD1AA7150E785 +3631C06D849B9290D73664E6B2098D39F4C626318324EC4CDCDA20EBD08B7B17 +559D153CBC5BE24ECFB25BA9AE9DD056510670B0783FA842D90C3EAD22C871B4 +F698099881014B9688D43A6B6B77CAE3394B4B7D0308743B725DCDA9CF003BB0 +27DB033C9DDFB3A9ADEE265DD354663BE1FCAFE19CF10ECEAFF57A96CA271C46 +961BDD1D1CF56F0CB56FED48FF5ED432267FDACB9F8F1B3C175B5A456EDA8542 +F31274B7EB1C6E1DEBE610F3B750CB4018D744C15CEABDB808D1FA92659B6D27 +5D506EFB71E18A2DDFD2D4C41BC64C0B7DF61C7D99FEBC55A99A5AD0DBB37413 +42C432CE4F8738F36E6F3F2AED067869C89525140CB6464A4BDEF5EB09D4AF49 +CC35641DF4EB35B1B7686DF4B709687B9813ED24322080D01AACC7B626DE1AAC +72D040C368821ECDF0DFA64B79330F7BDB14FD2FA4B962D579D9214AFD2B8F08 +D9D624A4229C5A28EECF65A4064CBD6CB9E64B2756BB9C10DDA4695B0656EA1D +3E8620AAC201ADCBD5EC873F0B0E465640FC9D00518F102F14FBD01591C4FE96 +3F256CFF44798904E985D8BCAB5B2AEBA294E08AE892AA15EBFCD1B196AC5695 +7D457F073211AD5162349CA7CF14EC3DC57A3B666FA20FA808E4E9739E47FBB3 +9B8634FF90DFC6B94405DD905018A7BA97861CB06824C27F2ABA9884948F3639 +A5EF6B78ABBE279060B75229C00719A1BAFCDBAA9C3F422FCC19BFB0740ABD0E +B1C6A78A54C1B98DBD184107C98209CFE430350BE669E70ECE9FD168ACE3FCDD +81A1130E902EC6AACBE24CA1C6B822A949DAFA839C10A1554E5E9BAC62E67AAE +6F94C097E62B9EEB68B105067D4E781C06C345D5E2218A3873590F1B83276237 +545B7B93AEB619917D2FC6832CB760F4FD1E73A800B487FC75B797F22C78097D +E7B84A2DAEA0766E59220170F46A5DD21DF1032CF4E48EFF587726CEEBDD45A3 +AFC2CB730E484CC6225FC1549F84C91F4678191208BE4634808CD748AA66DBB3 +F5C1766B7C87BAF744164A8B161F9A3F56AA7D777AEF9B8B204327D96BDD3991 +10EC98CD8AB59D5EC96ACA069D7C6AEE4217038562316C9D3E8E1DFE9E9247E1 +F18E7C921A7D1A1E042D171645D8654BD8ADCA03DE5F121BA45A409EF3896A86 +31F5B359867912602E916D21FAB2309F30445489F6FB5500220CF8D8A0C3E460 +528F6161C6045A40D82A036DBC594EACBD5F1A38E1847FAF2B10C5C2D2964EEE +CB889C5B902FC2E3DA105A8B7E9F32F7EDB9021AEDD1DDA56C6EE7AF7D5F2863 +7A9A9A766025E1B6325047E5BE4CCDDF18433166AB3F9CE76784002731E9C775 +6778C7AA78ACA20D83F7EC777792D5FB2920CA4E80E41063CCBAAB0AFCEC5A65 +78B542685E08F269C935FE8E52C819B5B2AF1D69EE0C691F9D36AE8E899BD535 +FFB9228B39351E1E104B3ABFF1935070717B9DFB2560E9F53FFCF2559729FD4A +9EC9213455CF4F3419EB1D0DA4755AF21A3F02417E8A8963DA107E60F68AC442 +64055EBBF014FA6EB6EF79AE75A4655D0BA96AB659260FDAD7682235478E896D +1DF66854828DDFA7C33BCDE50984D6834B757BAB6D993CA8EC5F3A889833A928 +4CDAC37500723A06EFE8C6A17C90F0CF3EA7201E5C2E3B05936FD4AA5D9B2788 +F7C86071DD90C5D405976433474875655E1D17F3C63F5F0A043AA811EE5A2B31 +AB9376F9AE5816660FBAC4B521855DE68D595851F048645C85E7DD182F808B2D +CD599449876F66B81B652761CEEE182C705FFCE04CBEAFEBD246B81DF1E0A1F3 +436DB0548878D6C0AA7C754566EDFD61F66690FC3F724A9501249292051F0D8F +CEF8CD2BA8457ED743130651B1D703070F6C43D519B09A52B45B77859F0A5A9D +8DE3AB6704A9DEAD1AE7872CFDCB396AF93B874B0D60CD05F562AD0E4ABD0CE2 +75D7E8F01EDC0543CA4DC583F89A8EFA9BB6413C7309D7011C2509EDDD8BA235 +0A32D490E9ED3C570DE93A65AF4CF5EA959F74994B7C916EDDAC02034ADDDD78 +370D9BA9358716F8EE8D7D4B162C5959EC3A872A81595248B522EEDD026363F7 +BB14A1ADB1C6D17BEF66562DCCD5506BAD898125E77BA07620344BEAB339BAA4 +446B52E1BBAFF04372231CA9894624D5B5CD9FF78E295E6458BE1C79D80780AE +F620F904E034982579E1612AD44B231E85A6DE8A7BBF26E314DBBA0478AD19A1 +750F2DDD6395807292276C88664330DDC40DBDF15A28F5C6030E477D23117A45 +DA9E229D3B528806FB2C96F6203AC622B470C978EC663CF9E85E4F9C4E82D9BA +A833514D2340876D7BA0F997634422BD1F59E32EA4AA9F2E3DD836B35CACF945 +15BBA2AE11B6CF90E2878AC68AFF25AB1606BEADAA7598CC145C43D39243456B +0A67DAFBF97BD0E55761DB998D82C7CE37B8EFEB2E195511CF9CF947B05D208A +C5BAFDDD961F571D6BD4C8A1B5EFB6CFE5FC1AF24EF5B82A40FD454FB758E23D +C1143E817119F3A643D3FDFFF30944178EE7F517C99FD3FDA6934461AB002D05 +6D94656E836FD738386F6D3E025D8BA6C41CC8E1F6BADD97C2D4756A1A4CE49F +9FF6C550775B0D87096F017A61930E86CE82D3344370B3FF9A49CAB72CE5FA16 +65AAF18E388D8A2ED7FAE3766DF8A7C9DC5A6172B5011EA5C60CE8C091CEBA97 +AF82025315BB23377F7EBDC76178B3F694370DFB8E54C926E52A76A2E2F6D337 +85310DCAE260A30190010BAD2E9CFB6141908128D3DD193C854173EA12075ECA +DD546A56CD042BBF8E6FE840421889726FFB1B2DB474B977E5752D18DF5E3E4A +FD9F255ABA91F801FDB95CB45154DBE35B6B62774E5ED56CC5553A3448FC3551 +5C65F5B4E24CF775A65598C86FE33A09ED4CDE766C53C470778CA35F00879558 +F244B8F2C3563F4CC869B2AD6D938F2DCA8AE45E48E2B7DD20DD76732DAFBC0F +3AA8E18D73EBB9DB6A869BEBDB8A2A8A074054FC0A57F72712F1EDEE2DD97FDB +916239C3E94342DE9F2D2A34B8869D24A8A3422B99E71535886FF6C59734DF77 +B243413679DF95084F0872EF2E2ED26893727849A829354EDEC25AB5F6493626 +77FC92980EB22577F21D0F80A3050108A9BD13A8BC6A057C9E4A691C6271E02E +77144682861F988DBEA822A92F7ED4DD3E57A4A8FBBD9CCFA3FB597BF405BA8B +798B077D832A86F8F565E9B8BB9BEBFB66E10D682DE8012DE23C51AA0F8D41D1 +064635EA5F9A3B7D3C080F9091C84644E1CEC213A27F647C90A822DDA1707C9D +FEC5E82FDAB048238FD605AF5E4A3E7226904D60C70B9529C0977E6DEFF2523A +3882334005526FEB8A65226B15FEA2EF1535D94FB30C6E71E2E533F6C20CD34C +836364DA7E19B9CCC8F32B98F39B94FF64322F6A71723E2B06797A42087E34B1 +7CE63770A57BB7F687A4089330CFBA50313D8E1B8B21B27CAEB82423007681E6 +09212BD8926360BECBA1612CD0482717EA5FE9E58CD694E4B0C3CB7FBDFB3F07 +62A9CC503441B795E4ABACC99E14CE98D242659084EA458DE84B174F9A1BD298 +15359D2F0729ACC26524AEE638D99F58AB1684036E7588FA79C807B28B4FF6C8 +15DEECB146517923D368619A25E5EE7E333E66DB5031870E03F615EFFBD91F91 +3078D375EFDF458179BCA1F507ECEC63CA9AA3BAC1442130F08335AEB7B0D9BF +EA5E174CC13096113FE941A5EC40FC6897CCCBDFE2A97746D3DCA049B9F25595 +2B23C2D565F24D311F4E237148A1E97DB1E4C4C2C757F6694397431E7BD519CD +09244A67D2010DBAF10552D06F0391F5E00F8BA224EC3CAED4091D6128D0D4AF +EB1637FAF3FDA834FE14C554EA579AFCA1952ED6722E30F67E17D10A87903EC6 +9012760AE213EF557128CA741BEBCC8AB82AC3DAFBEC4B247CA666D136EF7737 +2E0BA327413BFFF077BAACF2FB6F29B11DC4650FE3097B6E62801441047FD97B +9FBD83592B62B96A0916934A6503AE62FD5E6FEF0CF3F76FA14AC9CA9F576D07 +86A7DDB0707282319F21C85EF1A122D369B53F6D19DA0B748ABA377413F974C9 +1DE2758CBE63DC8D41AB4F9D3ED4CFDE3746F84D0B849F83936C9BDD86B7B67E +D2EB56BDB5C8299C6EFF5851CDEF28A6840C12590A5EFCF81D9D8DF556C04654 +566D55190D49ACEC0C93FD77E7C13C030CEE1AB0C0EF3BCBB2E86722251E26AD +D5E1060280C8F5A4A35C3E6739EE1DAE1058530BCCE52A3C39FCCBC1E12DA337 +830800BC6E91A7C039608462B1B8B81B8AD7E2CF6B2EB8F8857CB8FBAF370AE0 +D2DD32C459A60C53791F906B74BA86DD0C5B94CFFAD1E8B38FC77FE9EEEB95EB +DD3EA2809939F5FA1EFF9C88A72CBEB0772AA9E1E74ADE67BAAE699ABABD02FC +234CB568A9C07C8AE91D8AC07652EA23BF5A27BDCD9C1E230A32DAC99CA36D03 +6E9105FA37F2C588CD8C2AD2D47875EF2B64DE4E6BD0F560B42375E271AD64A0 +851CCAC285EBA7BBD5B136D4C9C1EC7F82B2596D8EE19CE0A3408F4F6F06EE07 +D8A6BEE8BD55660A3A10B30AEDDAAEC44313490EC2FFD9602FC79434594A3864 +5C68149E9249C62555A00C9BC815E7EF7BF485EB96FF5B4B87C044E7FBB52450 +3B6931634048A8075149AC669A33D4797CFFD3B935C3AF52540D591BA2460D4A +FD7AE8427DFC2C06D165125C7E001D573C504B3C5B66B3C3B4DC82926476EDD7 +CAEE6D365C65CC463D4E3FDE880FC1A3CC0E8E587C00FB4FE5B326576C47BA1B +DEBBF66FBFCE0D892D81B0C58E21AA13775FB0E6477886BDD601D30A33740019 +10DC412EC7620086B628460022DD559AEF3A25D4DB27E94D5A29FB9DADB80988 +3002435241CE2D07E248709AFC218593DB1BEDC371D7FC389F3AA85904C630E3 +0D1D6278711D7FD0ADC43A39E0B1437EB4671E175B6C081948C2135FAF5C3DE2 +8A5F93CE2482701AC262184AFB03733C4C2F1B9D34003FB2F86969D01C91C903 +F2470BE908387EAE6484D885A6FBCD707721E7661C9DD749369CB17A4C6A573F +F6F6E7840AEF992F8C8F3021731750EBD689072CA917C05B05F1CA4C7CCF8386 +F0B5BEB84CF48A77C96EDBD64B883C8A5C176DEAA7AF43013D87DBEEBF75CECE +B8E020732428B5F1546D96A79AAFDA3F6F3A494876BA089A425B1AEBFC1CE4D1 +57CC312277454D48FF95208C723B305C4A3D93CF9C49AB2FC039AD78736E7179 +3DAA6B53034C239911B87AC8E9567D7633CB223EEE6A20A444A86D095B2E0294 +D417F74F9A1E2FDF4D6464B7D13BC7440BF51B70BB8414F0FB13D01ECEDA299E +89B0B9848BFBDAA6593CFC911ECFE611D863C0E37F0FA666E9A0373910119858 +A4C2F75AD5A6F88A02528B6F73A1A9E041C2A80B5E1794F7556E6CCECC1D16AC +A7A6491DE56B15BBA80AD74F1DB6E66A63999DD574246359F934B9F4586EDE60 +72D14462D5DBECF7EEB74BE0AB212A0BF9BC026DD5842C05D1D8E6DBB8CD0D8E +1503585A6535B7A737399636145EB6B4885C08B4ED4E2BD1B6808002044A1420 +555D5A7962E847620AE513EEA2C73DBEAFAF39E76677C02E45D20E060289714A +20A917ABDA40012F9F61D3A2993BCAF539077C4C3C0F575B6F457627E803302D +A544997D78B7B32A4BBF5818EC2E72B8BAB033F50586222548892390E4C39336 +9C3CD64C6C18E557C1DFF79648B65D07A186F99A496A0A454348B5AF7857858A +A9AF5CF1B57B5D39BDDB1BEDCF7D8372434D068E6C3520A3C355425BFE08E0A5 +34C62C3347AEDF9FBA10BC63064E72F9DE2DC5DC8E71AA37C8F9DC330EDD1D0C +B009A28402FDCA360534C53A2276B5F623409ECA8FD8A2B687C63D340B6C0950 +ED53819B98E60FCA7B8A4751ED3AA1D1023759ED60722DC868A2CE461ED7529A +9569DC717C0D5A41D2EA6DF85948525F8338D82F6F25C84E2F2BA0B6CC9538FE +A7A1B7957243F2F475F8B86ABCA2228CEFDFDF69A4813BBFF25F6CEE0C25EECE +A6E1CC47D3145131FE7B8739FC9C8BFFEF0637279688FFEB6E87B2CA45DA90DB +A6E384588FF8242BAABA1003DB013E99493B97E8F101F14DB17603D89D3DDCFE +691534CA0BCA59623C57AC88FB0D0D953AAADE1839598C9B578019EBD02C974E +E2C3FEEFD805E263E29653BF5FB09E6A40FD1FD545A50AA4A639BAA1671E0EC0 +497E0275395D4AA8A17969F8E141C93E59D085CE9380363B692AC2B8BC586E4E +6C1BA55B75E66C1AF8F050048DCE5EE396BF38077C410F79969F60B3C7C9CD00 +C01082BE860176E2A0DC5153F6AF251F8777404A257B69DE7184545A02BDFD0F +7254041A4B939CAC7B8C1EB82CA80818BD6EADFD0F13E1EB072F27BA1A5D347D +7AD837429E200116AD5A710E69C7D8700BDAAF694943BD7C02C47EBC6BC9DDE4 +28A1DBC0A47E82B43821AEFF828244B5DDF87B4565E415746F08C87DA58665A0 +C5945068CCBED4DD625D00CA8E83158A3A144996E79C8EE3DA847B05056727E6 +37588FDB72DD78A47C456AD130CA8D248E1A213FE645BB5C380963EC45623C0F +94CF96DC7B95C776861075BD8D38D734CFA07DB485FBDC65D6419764384A7B52 +CC61A11064436DF45C867B75C1E474E0B8BEFD84181BFE0D7106E58F8671015B +BD959E326F4E6EF520A67698B6342A3D97FF6F4D724E44F250D91FD39FAD73DF +709D1368E83069D03DF43E12329AE8813FFE1717469C1A44FB18884D20AF538F +378BC8151A21E4CEDB07C600FB20FBF4B0D73A78EC257B3524C9B6AD012E5BFF +C7EB31C5C8B888FD358C37F3F0273245067E1E448D80A37264EAC8627510B867 +C3609D16DEA0822466939C2F2CE1833F6F35D9EEDC4E9A6D74F4F649B67E0083 +8E9A1BE66D9A3CEE0F06E30A7F49120C67F68A96337B7C8075AB5B42F3B1B527 +841AC7D702D27941E1223D34049090377E7A43BA098DB52DFB37E3AD0BF36AC5 +283B3E3C677E8D30D9DE55E8A695B5DD81CC55B035238E7A5DFF580675567B42 +E11F917B904940BFD6A53A9C94FB0762B694248C5A6B9AA2BFFB27FB0597DF5E +EF148C43A2E563825BA0DC544526597B078F04B48CADA9205E22004EF3B345C2 +0044352EC004718D09757CB00F811247A3C5A7DB111FA1EA0684B362D9ABF5B4 +1E72D0622475DEF7B90964BCD06B56C59E25FCFABB1602B7E0D96D998376601C +83FC1F5D30EB188C3BD50E86D59B770EF11143F73F3FD092CD09C3948220861D +EE5AD7A6EA81CD0F2F8E20D82475AED8B47C5F4567B675CC071CA179EBEE9586 +D80F1BE20A2CA3C0E4884D281F92353B848D10535FF2651B8CEF264F7C99065F +32F2F086C3005E2DC2936CA98C3C2AB33AA3EE2D6790832CDB9A0955948CFAB3 +E526BB6E781BF689FCD8795D5BE93C58AC4765FCF93D446523DACE8258DE9524 +7C8E5243192D2DACB7F9F26086EE1162B8EFBA747BCD05EF3566B4B7AA0B8192 +D6632F44D83110A5645D5088E3D3572E5048E1FFD019A2D57F2E31A83961BD4C +8C377E065018723AF27159EB332959CC61AB1C3B6BFAC665AEDAC312EA070F35 +ED1F62A237F021C1231D381D27A91647D53EC07B1C5C426EAE9B62D66E962BBD +8ACF31D6FEC9A5CC572F5ADAA8AF0A6AA265EF5033B45563516B3129116E57A9 +442FA1524B5A2FF697D5018DC8FCF6451D6C0216268FC77F7C42DD271BE113B8 +E73C64CEEE7A60278A12B52EEA69055A75ACCD7EEF0EF21E8D3E79E248AB9F2E +3141726DF5CC0573F0B150A541BCB9710DBD29673128ED281B4CCD680A936C80 +3D329E5BC05B8BDC92600AD4D31E6FBC06E03AB8995BC4CCD752768A6FBDBDB0 +40A49D7381B727EC4B2C4E83C8A54B11C4CA7B12555B57842C432739945B5A5D +83700A70ECABE40008EC7862B66996508D26C4089758F0A4A94122DA80C1FCCA +7286B924B462C1E0CF9B6E46D7003C3B74F769437BD680E886803B2CDCB179CC +AAFD30534BE2A5B5EE791DDC3C5E6AA182EAA940A827C9DA5925C2AB1699BEF6 +3F059EF7FEF58FAA3847764ACF241CF446B67089D8D114541AAE5CD2BF818715 +8FBE2CE429BC9B0B2F8FC36ED14B0856DF91B84FD198D232B7F942F1DF7ABFE6 +480F66DEA453628A9D994130C1EE2BEC0251274D65FEC0A511DF8C8482EDBB09 +DA6E9D77490F1934C389AD9FCEC6438775D1CBC864B9B4AAE541D6D5C470D44F +E0CD1B523168CE23E8DB0E4D548051271EA52B95DD231C2BB8E51A6A9064ED28 +0875287432C41EACEC1468DB75B8EFAF3FD02E7A55A5D1EB5235277739C336F4 +A578C887D930A963E21516F1B939AADAD8B58787B346E75843F4B16A2D97B997 +D190F53C3AEE1676C47B34297C748AE119B28D6BBB93E14A7DF962737FC29424 +632BC597FE8D7F5241DFE5743C79D05FCCABD26EE84704470AB6DDC3D50566D6 +008C4179EED65987836C2641350F5947855A8A0A2A0A42D9D258C7D4626E1E16 +A4A80BEBD5616F9D9BF78989C9777B3568A5E78A399AC60945774BB640B76614 +4507559E4F1FA6D4A4D3E75ED655B5145BC1DDC661C78F8B1EB0C7A5CE5144DC +71A4A97EFAF8F8D97126109038AE95551E7C575669FC287DD0A3A1BEE503E67C +7492FAE92558504DD9B4112C49BE76224F5C6F8ECBF0B5257AD66CC878F25AFE +3B2769190110A31F2F522C1717D2C1D5EE54071DE95659E3F30F0C8E960213BD +220C4477DEC4AF0C7441A8729DA001E56CE156BE4B0FDC800B332582932FE7F2 +2D1AE52886985E83A9D9E037C402664C52A148840B777657CCEF900FBE13D369 +52696357A45D9B4F92E2C2B54EB566C01BBF93233CAB2A4C1E92E54CCE2E6021 +08A62A3B9D1954ACCE5B5B428D84B24E2DA383D12219F3ECEDB721FB6B4BF792 +B4A9E8E0B9F6D3305A8C330CA1F6E584927C8E29C1EBF2B95CF03A28E41F7AE2 +C2478B7542AF0470121626EABAF7B441796E035F369AE4A0D8BD8B30835BE1AB +8ED1FED8015FEAD6843A7329E2D9041B316ED5CB04D482C40665138C70B05728 +231CE3AC4FC8AC9CF6BAA3B1B49F12E803DFC4437869A7702A134C7E35B13455 +76A14EF55F8C1712557BEADF18BB4434436EEEE42072DF159F8A4980A0B7D142 +01DFCBE1832375D040C204D3EE59863129DB9C5386095140948928C1514BDC5D +6893E36F77551A05934D17406E9A918B46488B2718D9102905C4948D8BEAD2AA +52A6DF3B5A37835A4017157C3D5C28040DA59A0144D86E6919ACC8A143B838F6 +1DC3D3DA11DF228B4D97D0FA3AD4869E79253F31D329832FA059371B17D291F7 +6D46D567393DA1D83729CE5346A79F526436DE01DADBFBE5BA4F6579D3BAE6E1 +CE573E2A9AE2314EBDA72D015FCBD27F9DC3A5D3058C5D3DC326183A3E5C502D +A270AA5BDD08A2EED494CA8AA09139E923A8A8FDD458B48EAE2AE90F983D1F26 +3311123B0626E1803A73DA9191DF6CEAF3B6921975E9DD4066F1909CB2C4561B +FFE06E6F1DCE6A517E35AB72CF0CBB8D0EFBD85C97F7D8A285730D81D344CE5C +EDE1C2E4BE85E32431147A5D91BC56F5A982C58CB2FFEFCC231D2502B337250C +3FEF78F2D91B13ADCE8A31FBBB15B528A1D62A189DA4F5856EBF6F96B8335BD7 +2BD8B731A4D4A7AE2ACD74FC4FB4035D182488FAD1C99DFDD732CCDB0AB590E2 +EAFF7B4FBE3A2253AEE5172DA4915CE3D4BB19139A03C9D9387C7CF7E5E64BD5 +9BBC2E4960137452E5BD4891711719125EDC27486B296377F57533645A25F45A +D653F8856BE83DAAACF57ED158860D1DC354E722FC42236706C781C17420721D +E1FD3B92F6B678EB55CDF205553408E81EF59E6E39D8041778E71DF960FA0C19 +415503F979385D8A74E1860379638B011C6DA17DE2A5AEF08B7C2132809A2BEF +6687DE5CAEE9CDD9B3216E8AB3E83E368E1DF6A6610239C01CEF04D3783287CE +4F3164132599EB936AE50023646071AA1DB3A2BB6F0B321537A176CBF4B7945D +25A7972AD87D1D32DAA0FE413A0F2EDA659C0EDF91210D5108F42533FCBEAB8D +A7232806C144CB4F0DECE0302B1F9146929CF4771E1A177FAB7B63DB20E3A932 +F2B54E624FE3F0A51884DC704C3003E3D9FA6CEE99A9CC1B1C4658AF08F430E4 +8BDD2353240F7B0191A7CE88B91ECE53CA9B26841DD79B72453F943D98BA39A7 +6F3645C39D7F5549A741A4188568EEF8E9D13F2EE3214A54E5B4264F1042FA23 +F9B0FE1E61689A8F852297FA63D1DEF6312110F248B0AA1F6603768A890D3888 +DADBE06F09751DE1057F94FD121C815677DBC42A2BBE09C4CE29BC139B3EDFD0 +D8FB6C2E749E92C0DCF503B7686CC125462AE3D67F8F5054FEC7B2B518539374 +3ABE5DD85DFE963865E73A494D9C544B1143A726F0FD79F98610D83867BE3572 +8C391928D8970E40C919F80C296F6BE4114199136062196AB934B89039F7BDC0 +B17A02400C19A6A083FA518E17201FC7D3DD0A1F52CDDC3A467A4EFDBFE14551 +11332BDA610A59693F0EFFEC1D331C3E592443D3F87EE175B9CF1ABA233B53DB +BB3AC13C9A534321016FDDE524907B079E76D5F60181F1B68F95EE33EBF73F2A +5C8D6A5BFEEAB01A7C4BDBEA7546B328095793FD36614C2664EF306A7D920DBF +0B8F9F58F66D38C4E1F8FE06C1B60381891314C839482FA62DB63C932740E434 +8AFE140BF3B888AA14C0B7F17D31D020C04329B9F1E1892E19D118E14A908765 +DBF3894454CB371634DB5EC14E2C3E52789210A6452D4EEFDAF70107A8E2BDA1 +A8ED095F941BBC79C2DDA1860FCDE41E8803556412D474A14DE67FB0693CBA9D +6BACCDF8DBCF01F2FBB2CF669170F64AB6155836C52A72A920728E25990EFDFC +61EBBD9F57DBD94D5F0268BEE0ECFA26CA2065A53810874B45D5AC20A5629D39 +C1CA90FAC5B397C95BAB6257E74B7CDAD23E9D1958FCE715E93130B0D5D1ADD5 +B699EF856D95A5D2E26E4DA702D92E7E5B71FFD503D0A53BCFDF6904071FED2A +0073C9CFD0C87B64709CF39703538D5098F94C2516EBD46036E2BB5EDE06A4C4 +1596AB3A41F4FD6C097D34E5D2D4A4912F6775DFF8E326E5482DFE4CA6C99ADB +DECEF8EAD53707F0CB98DEEE74A1471650358892BB013A55576BE67B8497FF16 +89F770559820AC85F9A6D6F43E2A85D842E8C75953D1A3A6F97514E7833C46CD +AD95C8A72C2EAF74988CA68896A44EB30F3232262F1B5B7E771384B7612D1786 +48A82A6F63D0B74866C46BB911787D8066FF444ADAF75985F8FE8F4DDFFD57B5 +4F3043C25E615E167C96AA1CA98D52C27BA2F2012A950C8C4BAE784ADBF31EDD +FB467924A2E0D95EEB27BE25F0CEDA435C0E6DE528A6ECCC3F4ECE798D8F94D4 +AA18BF96F670A0BA6F80B2BBB492A3E4EAB5E7FD27C7705B060B47A88B393AEE +8A8B399AF3C71370CFDD2BA2BA2E1359629156157E9D79F003DDF3AA3E4C6D3D +26BFC25D83866C1838E258C537DA4907C854EE790980F9F99F2D63E93041560F +F672C5D14EF344F36F7052B8F4109B60A81EA0D95F68536E27C690DFAF8510B3 +173A5F6A8E5A6F26A8D9485DEA48BCD30BA42359AA658E2140CF88F651270C1E +906D32BAB28B1321C0DBC9B6B9B3EF2E259FA946E5F6C78C3DEAA9DDC54D87DE +1E6FD317D68AF321916CA79F4B9351DBE5157EBEF7A149ABD26E1CCAEC8AD5FF +933789DAA3CEBC134883C0F79A2798F20A6170F0578D4240DC73E0BDE1165308 +15ABBAD3138E3B55204A86B7872520330C8FBC02FFACADF78537CD4CB4F0F5B3 +D252688763C5F1326F4DA5E3A90CA2C06862E95873F7B1D3DBAB2A53B3AE5F98 +894E1C5B67B1FC1968D881136C36E4C673480AE2722E81532F94B60A87F6CD05 +4F6B7961D961E70EE2DAE5359E11FD76767B7BD61662A226141782EE7F6CE71E +E91B86FDAD39B2D22B33E131CAAB37930742D3DC870431FEE90839F0619F5548 +DB192BAA6B1D2AFCCF59BAE0B2DAB1888BBD8BBEB7A31748330572412281B442 +23107CF7D10ACFED361E37EE52D5D2D02443CCE1ADC18ABB1C6CB45CFDE8AC63 +E7C7C546FC8108EFBCDB69FF2E0F35405C82EF40C3E84D0BF0B18F86E35A4F3D +681FB12AEC44E7A2AA2496BB3C06BE94C6A144C8A5311B8967F4D7853BC8912F +06B6A708148CC5C1D6994673DEDD5491BCD61D33999B062EA120425D51FF2D05 +5F8E0B643CA810AD3C92412C2DCA4504DA8E6BA33FDE235FD7A598DE8C698AC0 +07075337B696A095E76185EE4F669D064699F2D454D64BD356851ED7EE49E4E4 +42E3E4CF8C983CA1A41862BEA1303E0E067B1CB19EA38635DAB03CCD4B7956AC +7B1D48CE1FF4A139648D742A066B2404636D05F329AA3D0142A40A7B3E881FA1 +561FAEBAE56746C400286D16B583ABF794989D69C117C2E9C42737264A54B368 +74F14DC8258CE3296AFB74A272901261CCFC934F7010DF7866C53EC67C9F9000 +5084B7917E3871847DE3A5F2FCC932D157FFD4DD913914C332955ABB822FE267 +6700D2C3C95CBABF70A48613FB379A8591A9D0337F9BF045687CDCA4764A9D80 +65F12AB54AA4C4FCEAD76F668D247FB72383FE9556E0F004B0CC68DADC940B4B +F70FB09944F1402BEDEC905DAC3ADA0BB27D223DF2581E6FDF2151934D4141CA +2390E6D70C7D770976A08B246BE79EB022DE342B665E167828D259AD64E08121 +CBB3391B723B4EB173E0D348E1C4469F444037CF910BC2149C8A31B1027F754A +37368A964650DE3BAD42061D8AA6BC9F2F7630C203A1820849B44E10DD275258 +D7F30A24AF78CDB73F97C0356936E59B3827EAB9F5DF803B0E6F50600E0169EA +75B43B006A04BA1236FBA6764625A76092A72EC45EE941D6CFDE58C639CA40FB +3EAD518A4E59D9825617F01F83B5C5A273BE832D16FF0B53FB607049E5008ED8 +B5F81FE6F1DCCC67454EB8046997E17AE3B06402CE3DEEB006B1E44815DF562A +60422ABF2E08F158F38C1C09846E483F109CC637E76E6CC411634BEB92C387F7 +DBD554B6144BB5C2386D65349A85006A43A592D8AAC29A8C8C58B6A0F17AE1FC +3295445D081A3F5D8962CCB2735EB07CF3684D9D465899909C064998AD7C095F +07AE52EFEB6D40DF6357E9DBAF2F6D3CC976E1099DE48BF025F9E3949BC5149C +D671290928454FF415D47869D7067E3DA0BDEF213FBBEA5FD89AFFE8C8122B5F +0B48EE39D376431877AB7AFB9A53424AE7F9CB7C9C97D1BC556EB01A5B20D998 +F7082304178F8A52B3B81DB09E6F88686CBC8716D203A52DD581141838A9E0F8 +CBBA470C2BA395B27B420B18EDB61EAEC46F58DD6D2E7052ED2931882E36453F +FB964E3CBA8BE1C1693DE1ABDF254344D88440A244CD1BAEFCE6607DD7DAA9AA +02441B0F7F969004F14CB87063D6564E22D5DA5E8CBA30520729F94883462C53 +AB174320BCDA67C8872467DC3782B482F464854FB019F5D55B53526D06FA4168 +0861DE5103106CD02F12F0DDA4F36322BEED5040905DE1EFA6BE04DC4C9FD188 +D7F8620767E3980B7B61243F12953CFB5E4EA05DED8193577271BDAEEE8BBB0D +D76A05A037F8F5D75FEB9FA9C17F442E54A75239274ED9A849E3E644DA4F039D +E44D99963C054957315A7BD5E69D4CE816BB77199EDFE487DF15A01E402D4473 +4EC818B6A50F3E043596EA64357FCFEC28771551D9925CFB0D089B1460E7847D +2E0DE8380CD527A7F5E25A031E61FD034EAF6B6BC206D1286B4D1B121C0586F1 +A5A440DEE14810E641B600C9A244D20F6041A07EA092E9BEFE00DEDCEE98908A +71867B9BB42289AFE0EEF3CC21E05DC22B776C4D7F1DECF035F67879744F91D0 +021BE26B6DA24C69A7A772BCE3482B3E646BE4EA4217DEEF05D7530C5F9506A6 +42A702A44430CF72EFE3FEF60E0A91EED81E373E587926513C7D1A47FE8A27BA +C024571D60A2FF1CC4ED7CEC44755C865286FA6F48BC9DF7F9C0E81BA37615B8 +3B542A0A9DCF36198B10397E1C5F6779447F2046F48AEDD3E86F1A1A251102AA +4F497D98A4FA86FEE598A52487B36BA822C1BA59AA4A6995152B3A914D734565 +AC2D2CC81B40993EBD42BD34022DDAEFC92B0E4BF743DE09885225847B53F3ED +530EBDC367A3A2B2600696EB022FF44DFEB7A2BB4E90121610E7D06B32C0632C +386C6014B053C6B4CC4A00F26A18696A2A6C1090EB2BB3B18118496CDA4EE2B1 +019D975B28756F3EC50191157F577CDE844F7D190C55D8C5160AE6331358192E +DA74D15A1BA614F1BA63940C42574B6DE54379CBF60D18F02DB641DAF8A17A6C +056C3E28ABED93EA2AE7C424B7789F6BFA012A4CC34CD5EC2E844D2E5E72778D +9B6D6A0D89B15712AD11DEAE524A5999400A2DC0C65ECADE18C268DAC7ACCCF4 +F8E5F544147A2A11B4FAAAAEA178D6483487C4736A1BD2F2C22DBC3635CC16BD +38979D46D4699BF8952E3DB5D090B27473E012D065AB6D6C7C23428AC7DBFA9B +F10A8AC376CE3F9D05D0D1C88F5BE46224E715D54C207EE221D845E885538244 +F942C71BDC112FB98D03D01A9599C67385C9C424DE3F69DD9883A493EA33C2E5 +71635CA52835DF3D4002775D14415C50B030FAD1C03D343C226E3AF61D4E733F +772DC9B81F4A5CEA3F85B5CAA2DDCFD3C527BD81EC41BD52CA4F642A7A5AFC74 +6138B60972ACC17C43010AE40EDF9A47B5CC5150933C0C2C2FC6CA83AB959510 +4D77075B5F1AF5A3E0A28D864CBDF54C58427299C15B6C4AC53AD6376767666C +42B13BC3379E1754D7BA6D8C3A50A23DB120229CE943E0F22003B260148A31AE +A8597A4CBCED50AE24FEA958BE75D6DBD3DAC4A2C0F7238251AF5BBABBB34A00 +CB8C8277C8825A515652ED4A301B1193A4BCFE6356B21F1F2E2A4CFD60D45C75 +425B664AEDCC4BB18BDA961AA50F1F0E18B589B56178E3851520EC162F173A2C +AF0C188787C2E8F2576FD01E4E4931696C1BACA0E820376C87668373FD26466E +CA6D8B28F5C3385BE9A0CE8E07860DFF176FCEFBC79BF66C0CFF3ADC72139A7D +47DAD62C8C0E3F52D0BDFDB7ED14A8B864E48C5B1D2EA2BBA6F242EE2CB8607F +8B7178220A8BE7371F0AE9C479FEE95F6897DC85C781083D810E23421A329246 +6EF633AB6283EAE7AA7A174C1FF6CD0BB37E26FC72955A5D322D8F35E264EB11 +A709F1D052AF16DB76E235A6CB1BCE3C004B615D5DFA3253CC8E85766780E6BD +751FD5923A963B64E061011791359AEE1444BF8FDA6B003377507070F176FF48 +A6EF7939A0564E0D5C888AB8C07EAB28617A5CD02290D6196256D522964F96FA +2EDCE558D74D9A0C4B9F0B0617BDF8DFEC16C2055DC75202FE109F4FD626CF8E +EBFABF0DF56019D8301C5F1A4E71E58D0D5348215E2C0901F6599A1656920E01 +3E0053FB05DAF368FC66D4022D97ACFF56BBB573CA9B090C7F29D47D37D52742 +0A666475900F71D4A05A85F031E259FB71EBE7D5ECA61324A27A030F099479A7 +9EB0B3320EC7FD92AE4E954D1FDFD6E5B968F0B95E439702B5BCAA007E210A35 +C1E11EB9AE0DE1182424A7C820557798DA397BA1446AC5698B7D0EDED02569F6 +B10A31B2DC1AAD0BE40EEC099221E6C1CD533F0C82F03BED21A3C7A0F565CBD1 +0FD6CC2785018F0688746D3A83525BB1C0665A864EDE3C94FBE3EC34FBB8FCB0 +249CDB3A1CEAF6E0AC66067E8C6EBF6547A6CE0F5EBBAD24BC8781FB92CEFA4A +675821605C4A84264509E6D0BCCC5F20138D633ACC4E68EE322729CF683E992F +C2AD450B39A460BAC215BF1E733E0E92876CFB3D04744F0F6A1F7C684037BB1C +4D484FBEB1346E872CD828FF5C79DAD00B42344C5213ABF585457FB7CBABD957 +AFEA315DFD4E51F9284C9DD3096DE446725F9F067A8389BD93BD4BFF6408741C +4C9DB3709D627BA1A3695A494E9A4DBF7F1EB411C985D48CBD2FDF4CF8E184B8 +14D8CE3DA016C85465D40C997AD535D26BAF2B077F40DA838F7F76EC4ACAE346 +D97F22070CAF06213608DD8F6111BAD33D3C28C81EDAE6127F8E7EAF5E733D52 +D3D3348B40BB8FD371DDD0DB5E3573567B7BDC4914BECF8F4CA8FB98211171F0 +69C89EFB89AB1ABCDBD275A5F189443E36E13962E5F6F415980BFCFDC6C50716 +6FFCB921A9F49234B73C2FDBEE3C3B6F1DAFAE92B09DCFEF1933C4F518EBFBF0 +F974C96F33BB627EB318496DD7A59CE4883A5FF384B23B969B0425DDE2CC51DD +81C64E2F5C16EFF23D57FB44C1A7D2622F0A751792AAA4C308996E41F65B9060 +DA844C577DCA64A05E6C4E485FED58B913C6C426FD2C5C343D3A4ACA9D6F6F07 +58A71C07A32088C55EAB81D95C7D5568A268A471C8EF1E8484DF4D96EB15F668 +C4DB82F1B1D794C19F16382A43637C879057A7BBB53B972DE9D267C9C655773B +F0A12EABD6D05C5BDC3FE1E94545845623E193E4F56A3EBE58DC009B9A15C69C +05E2F2EB40DBD6BC8E09E5F3E5F86458E230CFF3E9CE83A4E77F09DFC87B469E +51F10A123ABA73E17F31F70B0771E6F8ABD636FBAA2C369F06924D6F83B20DB9 +B411AAF46EF9BA7B2DD4005B3AD1404A21BF4D05B10C869460048770D60A3410 +E96C00B8D7FA49F4A8A0022C4F94F561642B0E28946E564E4B02C10501DC8466 +4B23788F522ED983B25D750978792472B6DEF619440554DADD09DBC96E784F3F +10014E6B33F74C17668E242A1E1006B20B7CAFC91A3263884BF45ABE3BA38708 +A9CC2FC925EAB05F95BD8161F398038A3444BD8654E3E662AF437DE6CB7D52A8 +B1084C7FA3F2DFC7CCCA6277B47938C3DD332AC56CFEFDFE4C0FCC6E31168D96 +AD8E5FE283FE821E8DBB93049D5488E0FC7D8D4874DB8A633FCBDDE3224C586F +FB09289F93FA15361123D770DC815597BCF484804CE3C8CBFF62900BA9A43F69 +24EC53F07CE73D7B75F837D0ABDC0BBF1A29BA8E9B163F2640F933DA4D2CFAD7 +6C779F656C3F4EEED8F91B3796A08A671ACAC7D1544CD8154FBB56CAF56E01CE +03F1F8809C8B2E90248B92721F97F993D212724A72FEFA78C7552FEBCB8EDAA8 +5C3F19BCFEC0C431E9FA8D4821DA1B027174C39BA2A24B3F40E0A33438319E59 +053530A883BEF364CDDC605F5B04ED975C219E37928C65EC02486EFA4754039E +36028E30FB32D7957C4B69E9F6F841B16AF91DCC78E92E7557C85883DEF198BD +FD81A147F3795579E41EA74EC24AC32849658EC83559B3C06946AC35DB7B66D7 +1DDA73D7F7923CDA65D663E983386121A210022D30798955810CD5382B0B3154 +50D8B36A11E08C703821177C23881C61B8F66E2CA20E6891B04A0A07D1FB0039 +6F22B72EB3D682F9B52A2C1F8D4C00F27AC897166395B5A139B6B5A016F5DF42 +8B023DF5BD40B460F0A9D782F5C8A1DF5469C9D08A382BB451E85EC59E82D29D +7C56D684B8F88605315EA91DC40BE895E5979B4A97674E0D52F46C85C49274E5 +8EFB83E6E65EE9EB7986C68ACC3C0691DB874EA9F8D3CE3C16E1DD9FB957D077 +4D4E1178E459DE1CE7A6711CD7C809E8F42FAF5CDDC3DEBC932DB9A52A940B77 +B8E235CD968CFD8BAB3895D43C1D3462F5063A139DE9D0FD9F3CB9C51B283D75 +FF39D785F2D63E2DAFA0B7016CD0AF7122871537E77119D5BCB00508DF14236C +32DC0AEA48B4733F01A11AD7403559D3F50E75D04BC66D54997FD396FB187BD2 +23A012098FE4298045DF319E0BEDC6D43641C7593586EB9EF3B4455737F3B980 +36AF4698997876B1B0F636F15877600F04B85CDA6D8305636D5FF7B81725E4C3 +AB930EACB6375FFC18DD6CBB6DD59D3B8E2362A09A057719FCBAEA3F65423563 +EED4D0652D93F4F42BB26837EC247BE95EEEF63EE83139E69D39D80F51F2680C +2144485D780BAAA6C9D67159E57F28C651F10494764B6BAD73FA7F64F088CBAC +4CBA77E46C4C6465702486769EDA2651D88ED6287E4B591E220533C29AD97973 +E9B972978D72B4FEBB4BAE1A7F8864102AE595BE421B2004E43A13B020647EAC +236287F3F8041BF758B646B59C14CF141FE4640D6C8580DEA0FCE087F09C82B4 +E52A75A1B0E583C7E007D35C732DFEAC7A9F57573F312EC321A3E609413F5972 +4F3C0A4657BE7F3C9E14B2DE1198AF6A331FE9203363BECE8CBECF5954A632F5 +18DC0F96B838EB0A98FCE9A8996582FA3DFB273006E6E0810786037A5EBB30B5 +0254E661FED5B7F452655D3F0C0DDDDA14CCB846BA2F4E647FB6B018D40EE813 +4C24FF2B2FC7EB58E4B3DC406DA280ED7EC5FDF9FE4DDAE394946AA3B3538F5A +FF4947CADF6CB6FB7C987A68B506F965BD1374AEFC89907C3EBA3D00E896E1A5 +894300E9C51E47F88E893E57E9CA3D36FB4894062B2DA8B105A77238E88A02DE +42A97745115D05022513E3D42AEE594631C10482E384D5BFA13B47C4ADA17B27 +2DB771A103AD698F856563F79E53E014578C3728EF7F772E5DB2D17DB524664C +CE28F99C8D61850410CB5AC70EA090D54E14CCD672D15BB9A2C4471FF0B40DB3 +EAE8423A7AE3C0BCB70A561E712D8D3AE3FDB4B00D123B648AE3E6333174C7C6 +AA5760000F06B7EA8A62807BF4256F54080F0276628E73110A8C8AC4E5B011D7 +DC84D2C11DBA814CFEB0F7C37E7A7AEDD176D1F2EE20DBE6EF0612FD7A065B49 +F0420CC2040E2A1AF9217A7B73C30D1533BC812C76CB76B273AC77463F871C13 +66F6F37DF79883AF48CDF299F917AF4597A88211D3311DB9249706C07899F9F7 +2F187E8BBB94F28920D71E14A452DCFD03E37C81701BE96FA2F3D4FF718DC489 +FAE3AA609F3B149CA9E2EBD5A88DA6EA3045E36A8D869A3F99B1305846181FF4 +C792A464D4A8DE6F080E9B0802F9CC3DC2FA4E0C0363306632FAF2FA8D411424 +962978BBB331DC3A6CC3DA7D80874A833CB79DE9CD3CD7C32C9540887B0F6E49 +F4301AFE3AB3EB713238A2864AC93DB7061052417C42629D659FAE7278F1D2F1 +EC5A43989623C8783834F68D35C61FC20291D4341FF02C7B3EE154A0B77F5517 +C36BB72B05C6F791C3648C6E8673B2C620F37A90C5AC285BE5A611AA6BACF6EC +4CC1A500FA661ED3FFE941C5044D76F86F91A72B7E85F4BDA597EE59FB807B3A +A3CE4565E3D91D3B564A500E14CDDBAFD653F56CA2C87D36635C9157256E6E89 +9CEB324DE229ECAF0D6BAA50EE4BB583BF38807757321FE751E1F8A9A637C08B +0EF8F42009799AF6EEE47F418F9D0F5DE5770C78B7D3D6CA818DCEC26C20744C +A324DDA182A26BC0EE0AA02990D997E072260EF0739D2611CB6FF940D6CA69B8 +3CAC94A04CCA1E28A962951F96BAD0EC754E92EA679C8C6AF8EF5FA070A553DA +3C6F32A751C978FCA805010D670193611BA4539E0BAFDECC5664088C8EB23BED +C4B885807260BF1CEEEFAA221D31C329BDDF652DB922775310B4AF5701D6DAE7 +35DBF12FA1EA +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndFont +%%BeginFont: SFSX1440 +%!FontType1-1.0: SFSX1440 0.3 +%%CreationDate: Wed Sep 12 2001 +% Copyright (c) 2001 Vladimir Volovich . +% See the file COPYING (GNU General Public License) for license conditions. +% Converted from METAFONT EC/TC and LH fonts: +% ecsx1440, tcsx1440, lasx1440, lbsx1440, lcsx1440, rxsx1440. +11 dict begin +/FontInfo 6 dict dup begin +/version (0.3) def +/FullName (Computer Modern Sans Serif Bold Extended) def +/FamilyName (Computer Modern) def +/ItalicAngle 0 def +/isFixedPitch false def +/Weight (Bold) def +end readonly def +/FontName /SFSX1440 def +/Encoding StandardEncoding def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] def +/FontBBox{-238 -326 1844 909}readonly def +currentdict end +currentfile eexec +D9D66F633B846A97B686A97E45A3D0AA052BD0CE60552BD63101D7CDBEEF5B11 +69C468645FE4ED1AF2541AA0770C1DCF81623DE0ECDF49F2B522618F650CE6CB +CC8C21885DD61AF8A523AA677EAEDDFA51A1F9B1885EEE0456196D634E04EF89 +F17499DAD982502ACC349B9EEAAE4A71A73D1147318C60A8BAC10510DE90D8D3 +F46E47295D27129A5AFE0C65E22BAD10D06885A2EE623FF8E1D90287A083E00C +EF25195F68A2A98170E4875AA6B96583CD501F89BC45C7597DCEBA1A1F483DCE +2DB867DD3051E0094CE179669BB45906D49993093E9123E74E0D043E05F96989 +CC79F8E4E74DD5A67862742C72457F6B5D088128F616F631DB84C5D2123834AD +432B6A6A8502E88B914A17C1587249B79BDCDD0C9CB28C6FFCC7FB63A1106533 +660D6C8FA5F7E6B6E8FCADEE66250C2F351A6CEABBC35A85036C4BEA894BCBA5 +84A1031C4F978A3A659C971AA5E6C9186D708668A6F1984D8D117CB19F915FFF +5A6D2BB3A989EA46D4AB6AF86B08081D62B7293B9A1FCBC4C73B53B218267790 +C6C0FBE6690390FF903324C3A149E9309BC05BE5DC9322E80183334828911DE0 +8092D16A64609486ACE95F119CFC31CEEE3EE3BD855E47CB5DEB829BDB29AB66 +75249FCA982AB635B1D9792440525B4B703A13F5C7B2BD09650EB121302FCA78 +BD602E9D3FD72CBE619A8C867263508420DD9CE391A7581C5068B3F9E493C108 +0681D51B4CC140738461DF0A9C8D2EEAB46DF8C05ECD81940D3ED562AAD12EAA +2361AD8639791EEC173E59B9327EA2374DCA1BD956BE227CC92BA07883FD9F52 +D7F3C89F481CE4819DADF2E26AFFE6C22F0C38540F8CE37992C8CA844A4512FF +1A74F991A47A1B7A78B196DC1D21CF5E6FC299C77C839276A2E4E07B1AAA5738 +5EF6AAB4ADD928447FC809D2BC1EFF6083C5225158A3D1660E4B6C0F87894A46 +A176F8A3B9CCE6079E86E030BF3501C7A1CA823CCE5FCFD63B8A00B57F53FEAB +D5FC0C2686C523C36EE25BF9C6CB8AB40669539AB4B993DA081DC874DE471D42 +90737DF90924B9FD409CBCC5E5CB3C011091BF6465478D229A5F552E934291CD +EFD4DA7117B713FCD71B2B06D74C395CC22AFF3CA1FCBADB2BBAEF975982A6E2 +5960467011A1D594F9FDD3FF3858F972B851DBA214DE190F01064DFEA55B7060 +2F800098F033DCA8C0AF192EEC859AF540E34A0FA4E165327B650765241CCE42 +7E5F74383CC3675F4646E8733D4F8EA2E408C716213F9F08DFC1EAEEF4CC55BB +3ABB0E37660C7C103D4180BC983E89208FC1BFD2BAFE8EA3EF4E146BCC8318BF +47DE3172A31E9E8B0E8F03ADCD629A14B52E04FC8B4643E66382BC746E9553F4 +19166351984A761286C76F7AA1C9E4F23D9A3AF81755E9BDA7AC96BED1FAC9F9 +14BAE5B50D9F5694B9FF40F5D3FF17B2EA60706EC99397317EA01A0FC4D4096A +D91EB7D69FBE1AB8EF7CDD17171F58A29B01CABC93B16D094B24192B68A0635F +4316556ACEFBEAAF9B227E34D7A56746D45FA8187A2DEBA3156DA6CA3170C9C7 +F1EF499A49D3700C0C42BB0FFA29CA883B9D53FE0CE683DD110B7F3B7AB774BF +D9263A93FF5A9AA6A2B1E82D867C59BCF7E9E51250F22B82D1514799BDDC64D3 +9287E3B96B8C7AE2EF0063D45950A8318C563F6F1AEA9D80FCE3AF0318E18551 +62B16F7CBAAFCFE06D02310CC7DB8121F5EDA252F0C02D7AB1522E6BD3E974A5 +78A19B53E278CB49335354FF7951BF6F5268DD7B41DF8BA4B49EF22CA8F00F15 +435E86F13E92BEC0E2273ABF9216E7F0C41AEEDF1DA499879B65A3E895FECACD +A7EB54BFFC1C0AB2E67E47408D4E49D34625C2311705AC33ADF940357F5586F1 +9057455E4A937B022A51076B259A086FD97C48146B5F31ED88E8FA10C9A44466 +E5712D05E49BB9FB80B3F7C78D7B4883382BE76889E53BCA1C994DE768C869B0 +BBEF2876075B3BE8F897E394F30CAAD0C5B7E8792EA8379C0472558A4E9C3C36 +3BA71BCC4E6AF1E6140EE2DA127DE700092DC3A74B9A9897DEB4DE3F05BB25C1 +44079A9E06D1DBA3FF0760CA556A2ADCC9AB61F3B973F45C9D3855CC7BBDB851 +C58F62534603D41E1E6E7DC11B95954B10C7D3E55F65BF2AEFBC3EAC0027AE67 +892C8CD4AA40845504815DCA5268A109DDE6B2B61F652CCB3B4EEAFDBA2E917E +0AAECB6F86A94270374D5EFEC8F31FE0116E502E847F9B9DEFAB82D300511B05 +C15FC42AC1EEB4EF82F3B712D270EA0209E3747D35FB85DA72851521BD7422E8 +1203C3B278571FE8FD2B299B7BCC88580EA5EC51A2326F5AAAD1AC5E70666B54 +2833087318B006BF97608FAF943F41B7B6C7F29214E8FCF67C6079E9977A7492 +4BBF2D2CDF44BE33631D844077F9864701EED61439B1AC231B9B33B185AF2472 +E5C865FAADFA4BF4A7D98557752B889A8010DE1F1D17CAF9A82C123A3E4A0D08 +987AA9E2BBAFD0D8100BB504BB403076FF7EB5A12317B14CC935E946996586C7 +9196F03715FC56EEA40EC1CCA06562741A5CFBC55DE441898E45D1F7794D15C0 +D48633E53898AF2AA3BA5C9AD2EF62FC194C190E6C42C717E2CA7EF3899AFA13 +F3F8B9CCC4FF52C3A50A72B65191F4E18C6FBE4C4CCC091ADC59DF7A80864FC3 +8C7C454AC44C6C7B3565DEED0E399161391BFF1C0B7B16727AE57E27A498E042 +6154542F68387765931C7CBBC723BD548AD02CB1112F643871AE4499BC639FDB +6CD58D5BDA3E3E06D6A8F1697B4F4B5763E628A466731CE0DC7354FBB41990B8 +FB28D578FAD4737CF1545014C1FE0A8B44CE853169AAB3A1EA3C6D67154E4075 +9A1C96A427B9A0C5B0D58828F2FBE07EF0C119B80A5EC12843FA3190CDB55401 +49643F2111724EB98D546FFBBC75924ADB7143EBD6C7AA022A4EB1FDD7B49FA3 +6947816955434F53FC80159929B6E30B5C9F39BF447532E1B7065C2ACEEABE81 +471E0F410914E222BB83A1DCB885B56B4FCA7625C148ECF600C66F259F69A60D +949549315DD1569599908C8E318B6EBD769D357C79A3D357087F21DE5E2DDEBD +AD2B8F54C5E48866C1D59C82FD020879779C83CF9529A2BAC4C2F669ED0788C6 +5B1E77444A4707C66F6BEB664D1BD52C98ABB00474EA53D8C6AB3CE9F6F9DCF8 +1BA8EA8CD328FE30CE2B1A719896A75BBD41CBE10E0EAF02E566E27F696B4487 +C455781AADCDFDB5C095AF34F05E56255C163BD42C225EAF9E732EA09085779E +7BD2B73C727717FD614176E747B6ECD5E00DF6B04155DA9AD78EBCEE63C42EF2 +EFE46B72E76BCCD64AA17685367B17909562FDA39C393EA53D7E80F4B04F5FDA +21D1ED5B071DB77917D7921C7DD7A519D30FF842307CFD5E5B975E03AB75D0A2 +0A401F96F39B1D4CDCCDC7ECB988B718392FA8AA8828D76BB932BB737CFC7257 +2C34A8619F1A89AD23AC73C6B4ADF03E806358F2AC407524F5CCBE1943F3F102 +F3DA5D8A44FF649A07A68C2622BA3AFB840E71851BB161C9BCA50E8DCED4CD6B +1FAF6D70C0C20680E64C3EF29948AA8B13EA01414CF5FE4DC673E6566CDF47CB +D9EBB636DE6E6E0A5180B4A7D80DA9C5ED6F531625A798AE9FAB9FB1AC4AAF1F +89E7AFA1387E31A317916637E8D4019B70F4F06B927490D0ED69BD75AF5D2145 +1DB0EA2EC41ED9BF94F009F11B726EFA5AF583FC660BE940FB823AA0D0E221A0 +75F130F1F1D20303F6C4CF19F51A76E58BDAA87993D2CDE4206A750D8F1573C5 +943868279FA9CDD72ACA830A53134D0420A61F6AA0C1F7D36D1F00F7256882BB +71ECB356AA702CEAD7AF917759B46CF1FA720577F4704989828E0186EDC425BB +6F6B41B8A90BEB75D3DCCEC00B6E8B3217B1B6F41D44213784CE7E3FAEEF7EAA +E6531FC0B7AA70EFF42454456C6920F88918B0723C63BE265DFD1A3C384BBCDA +A0C6FC0C196546E2EE131948043980C187EBE100DA801AA118CBF676C4E6A1C2 +F027C74B799CB048EFA1406B6AD6AE0D448ECACE861A12BC360B2A5CA59C81AD +F12424004DD7E0626208D9654036A5AA76BFFB1C07D0AADE6C3BAAD47E59BD78 +5ED53DEF1DCD2FC7B5364B225DF289B2E03562C91747F8D7772A35BC27D2A9C4 +6C123AE99BFA2ECE796FC2022F14869D8EA5B278BB5FF7B27D7A4F34D46A099C +8F789B1218D9F88CF847BB44E0D9E21685A6F8C724D8D515C07A3440F40C4B2C +321A82F1DF1119BE207736AE5ACF345CC58A28F06FA3C689BA1CCA966BAEAF52 +1BC5100E13D8B191298B1DE626D4934A4B5901DD5F0A7C80CEF22DC62C985C40 +A1E16BDA39B955357C19FECFA1752680AA9059022949EAAF4E98C3FF5EBFBDB9 +21F493D7BDFACCEBF32AF67C872D90478F1651F6189E1F49D80C6C5352B54299 +0B715599F013B776CA3C006A2F6EF8428E27DB4E076370A2D35A4DBDBB26EDB0 +468104D02E4029F97B0F8E59055A7A457FEC6C9A25BF884CB1E0B60DCCBA6F56 +FF9135CC8D7625F91FE8A9C0C96C2B2FF23E464EEA52BAC00B76E98DB00ECB14 +5C9CACB70D4C06637A4E572EABA0523994401EADBA2A880F4799EC58BD6D38B7 +A59497EB2766A7B9144A70B36A8753CAFEAA66DB00EB4AC62F92DAAAC0286D07 +B7877B352D5C29DDEFAFC5893F582DC39C62C3854E358D3EED44A41A2D1CFBD3 +130A37E4DD3EEC865B50300F7E06625B5BCF958AE2DDEDF0B2C6D55FA9C1CC2E +41FE06D485490AFFE65EB2FADB7A25F042D9481342EB3067677B197D1D3AAC4E +67F4DF37EE4AA47494C671BCB09EAE285924E18F072234084BC8DA16A39742BA +9701B9A34834BCFD5DA14F600C817D1F9265824EAE827500CCB8AAB0D3C2038E +926046C6034B1E91E61708B78479C1CC80F69B236C7487977DEA0C5F34CF5787 +E3E4CB8892C31D142DC70233E2489DA4CE4349CB6159EA8D0734B0F3B21784E1 +4E5A17FF62600486A5951416B89ED98B38920DEF7D7BD69DAB7F864B2FB2AC32 +111405CCE4069B1FCA4C974ABE11B77F7D00AD989DF67305D3A252824EE8800A +B00ACB5C756DF843626D9DBBACA9EA0C5E172238575D0741F0033B2E75C88B95 +C1E09C6CDC28176D30DDDD0AEB33D9813135ADB098022E7B84D9CE71BFFCE11A +64CD2458C98E6D398B1CACFFCDE63ABE71DA94055EA0E53E52CFDEE7B2B58E3F +B470889261D094CE20E3DA8EAEB5805C2D401002E6F19709D2A7FD03E02542CD +6C109DBB89EE3AC083152456D1AA41DD7643D81A0C28964BB1F9DA0EE178E626 +6B7FD342065B20BA742006BAC7BB3E8BB6645971E03D090BD48F090112FDD1FE +242F4AF64EC93246328B6CD4FF7F5D7A7F6993E3480505679AE42B46399022CF +E1CA7E173E513BD9AC1D03F991C46036272D00B80E3418BD07615DBB17B9AB10 +82BC6ED4A7550525B75CB9C2840ADA7B813A7AE723009FCDC36C08842C206AA5 +DE0CF8FC5A432C35EB42EC5D78B15970655AFC4F755545FC9074E25114E7AB99 +E2505AC7F18FAEAC82D23C32B3EC010E730CC663CD9BDDEE78D5C9A2E3BD77C3 +0C8C026D74272B74CA014785CBF6AE954334D083A389BF54C4C75384012A4233 +A5CBD2C2A82A7BECAFE77BEF9A926F650984C4328ACE4B926049D78B436D7B71 +E52E4114AA63290F10C989EFF874FCCC0BDAD54F7827FA91ED654B7644849C7E +91994C1D1D0F45197C7C3BD36C3949BF0DBE4AB6CC3CE36DB461FB6C3A542B7B +3C9DA3019F9066FD5AF41A8DB91E614257E70F19D908FC45FFDAD06F8E219B53 +C2AF37DF0CBD61A8D5F5BFFCA8CAD6BD2A9357D932EBF84C8566114B0A75D487 +7A111ABC356F5C41DF1187E86BE4501C0E3AB6F56717491392E10A8AB928797A +8DD688A7CAD4B56CC92A026B398DE4661BE65734E1D7D880B807B5830AA855A8 +97B28DFC782B31FC9C667B812795D697B2F6DA24C856DD5D7F1A8BF78F9F0AB6 +754CC6047783E14FC130E961D961AA51D66EF6A627DC0F82C3D4C941B79A99A1 +24214443BD1958F5AD4496BF31686649E4847670B1EEC381AA641C2033DB4D5D +67DD7EA54C5BD9600B67A34504D2A4AF2D9B291FCD78D7573C8854C4893ED2B9 +9D92B86DA67B6A4010A6691BD4B36CDD0AD143A78C9D3DF14C6A7707C4010784 +B087E8640851B46F37163C320BB247602DFEF6A2B2E116FD46125274500A0100 +F19786FB615F955DB0409F2CB02C0A306EDEFE323766FC6E759F410AB9EE8E65 +092A2388B652802A64B2E1F007F8073C8922C7982AE9B8EBC8C27112BDDF5729 +A917C05BDA8D09D7B189A5736DC6F7C6B62B4D31605C39D7F66D0C4D01EAFEC3 +CCBBD7A84805F1F7CFDEF2F52928CA8DA46FA45890FEBA0F57004F17C90B1F92 +830AC8B1BCD420071A52D053DFF1B296936DAE0D21C4B4E54582AB68F4DD591F +86676764AEC8DA20F739EF1B49B5246BE0B0450FAA7CB9B704B8BCDBC1AC89AB +35670B842013D437180256EC2B520F0D38BE7093B5DE28C73FDDDBA701141598 +FF48A15074CB1BEA0FA116002CA02CAE79CE7FD959ADA65C98E13907BB59D8E5 +90A22DE8C0E38291F9D57A4CD543DE0CAC3989BCBFB94A6668332AEF1116EE3E +168C9B4AFBC3A5F7D86AF87683FB03DC7276434B5F96CA7FBCED895EAC761B5D +1FEDB26731D14B305E56E5ECF3043AC351B7BE69D2B6F60325544E81CAC4FF36 +DCB44124FF3513EBCA21D87636D91F8BE89145B35B083E0F5E94C83DB6EC59DF +617C1127B56A27E4435BDCD0E82A3839DD09671C791CEA67F5A9C6A20ABC6032 +C6DE147110FB59EE6661C4DE764150D44EA7F93B8F99EC6499968C61F1408415 +559398CB2BCDDCC7C653A2BB34EF7125EF44EE5C807006A24CDCCF3B65E6DCC5 +E622993FCF12ACC6AB410EAB17CFBEA5A18CD72403CAA45CD459AE585F9E9726 +D6430DB4A024222D413286C48E91A29F2668006FC1AB1434BE0F4B8F83A4729F +5E5B6A8BF04CFFDC5659ED8D4704B07FF1CD17B89D5F13B4126192FE536E191E +424D1382C860FD09E4C1B5EF7BF48FFD750764D49AECF0C1B9B9D8755ED03697 +D91DD9CBEE48B3F4FEC235AF963BAD34B30C10521D38D3676C5A412C337E4C19 +C70F7BCAF841ACC7CE180934171169D8669FFD2F1A9AA23CFF5B188CB9AE1435 +72154E8D96739B2B395C1E0F24AA5DB7C42DF6268C3F2FC1150C71BBAE43D1D3 +B3A4201D3845CF9EDF9644EB7AE6D69AC4F6FC227AA640A60E91892EB65EA59A +BA16E5E09932ECDCAFBD5F51D1BF88545B8884A9C99F97047A0CF7F875C5AF50 +1BA426E2818E9B48A022014AD2AAB9AAF8D83D3F8B03A7FA9C09FCFA0B3D2BA9 +BCFC6E40DC39A24FD0F3193706C022C43A0D44B7B44A0CAF50371D6FA1BA43AC +68ABC895597A452DA716B05A648A4D301DDA2FB93B10EDC7B2ECF6C2B3FB6201 +BE386B8A0F4A86724938F45332458704D1E9D8CD6AE1DE2167353761C3CC2421 +49AE7204FC8E2323C873222A626FBA2FB4B0EF1C43CF7E8966DFFC59E9C805A4 +94EFA8AA975ED7E11BD704D6E0C41D40D27BF68B4D60988C29BC96128F689842 +FE797BA444A18A439C1EC69C56A987D9CC0AEA383AF1080F74126BF5B5F0F338 +0545252B0FCCDE182689B16CD77F36A5AA76BFFB1C07D332CE9AB586869DBF47 +0532E692C31077ACDF4EAD247631B54B2B1ACF48C2215C120CDF6A093BF66325 +9FD085D61D3597D2B5C1C4069B6DF00C90AAEFD8C121444EE372BA55DBCF4EF7 +1CF5AA3B3CE67AB71E903C1FBA5030E0502F435F4E7D4EF723CDA26982679A2C +1CE99945C94F8EB830C6DE57F0218E1DC8EDE07493C9211DCED20F02C44D6EBD +4FF019F15175E6B614E7E8D90EDACEC433E817DE8E8E30AF271A6DE156D38BE5 +D5DE2FD3AA65CA9A528A932AF59C7299AF294FAE1C86B99440E54875C03E466A +E803B4A63413C403D519F490616284870290E8B2551086B8F5743BA6B7698121 +E9C431EED1EA6B47C7CB0D5BF28CFC6DCC07D024B750E0678FEE26D3502D6A23 +A30E6E36968C8D3BDB65CBD13DAC15700192CB7546B03B3C4B0A5E0A104ECAA5 +46BD7D32779187E429B1F3481C1B3385A0EBB098CF446EEE451AE753BD9A751F +6137DFEA833004F46894758872144B9A7176582C49B933DB03DDFF8E5F3C8C14 +0E0FB547DA7547F7C326962724F951371E8CF4BD9CE0797EE3EF415F3BE8D71B +3665EC95FC46247351AAB708081340EF52FF956E5992A748BA7E5F5352E91955 +BE0BFEE5BC7274D2CD151B1EA9E7010EDEFB358181D99026877FDFE438990E66 +EFAF03BDDC6D1C61880F37D556455F2EE0482C8288927CEE6C666631AE17DB4D +791F82A5C3E28534AA6784E649A8A08C578549FF72CA62E28906F1CA8F558A25 +38270A0BA4B68C91EB827FA3329C64A5E1664AEB24C969642F55C1741CCF688B +F21BF963A15B1C08E23C303CA49A5C39E2EEB55E743FAA61D49324D5E34FB564 +F13B17C43F24A890B95874926BE291A76563C3F47A5163872D62E87DC9CE8D63 +485C2587937E57AC32605F71CC61329AF01A263FB19A11FD16499C1DDA818503 +BC9A98202A2B376221F5E6446884610658CB946F642E2FF1A57990729C0F4C62 +A28325C15AABCF3E57AAD991E624AB1C041CAD30E6D2416965AA09228A89E064 +5F58D6B9FAF124465C1E4AACFC12A743C7124647E9FF3F5E364D960F714FC31B +8B27120FC49BDC20454E7C79565507AB1C2EF74EA01501E4F42510852274E519 +5EA582B589C21F85FF992895773FE97BC699291604A32A746466C2D0C37F234C +195A50ADCBBD40CAFB8EDEFA7D9B8BB80BD5DBF2BA7652756B218F5E69A2BE9F +81F9133829CF75DF156493D65C0DFE3D104403B4F469068B96F5CFE26D2F3965 +38ABC80783A7BEF609DC63955606F9BF790EA9B56459BEE6955D3E48A1DECDC9 +D77F5862007305BB91A865A736122CB9E9CF0911E6D632AB16BF1E306AAAE3A3 +3ABE644367E250E664EEC08D5E63D00B2BA678919505F158B16887C65650CD3B +01E340219B85F873535E9AA8D13F6A0D3E16BF2795939D9BEE749DE172052D4F +8392709D5F42065E8409F2285306D4C04ED9C1F518CE1235112E1D1325EF3429 +6DDEF61B2C9ECB377F797AA2CA5C499E29AEB7935758C008E35FAA43757866ED +2CAB51089E2AF14F8CDE080D9F71997BBD9F88E7581064DCD3DB3421F78DF2CC +DDA1DA5931F895D28AD5F5FE699F33AB65D58C7AF3094DF38DE6DF1CFFC9A924 +910FA08BD4EAC0F9BBEE2351CBDAFA7F109DBB9C39657B11080A1FAF7638A5CC +4A9C3997CB2D07E5999E8DBB936CD5BF32476CC1621229B40BCD4613351B2EC0 +3DD3C2D3C14D6BC2076434721453B47CF2CFC3892E2E5BA4BB7D31EFCD46C938 +3B3FD3D3A1341D47248CC76B930E62BC3997BAF93AB2E3D8E3B90EAFA2C2BD60 +13F1532898CDA3AD586242A955D68A530698BEA444535F240FAC55D6D1524F13 +2A4B8267A3D3457A645359A122A1C767537CFC73FC184EC178165698468C4531 +5DBE3D9CB3B4350087347ED5151C200C4A956DF88054EB2EEBD05519987286DC +CAB9C90FF2F0B5AA7A1E4AC529026DBC56EEAA9623B8674C831EAD31DA8D1CDB +C4D20F3F418BA41793954D9B47F2802F0423903E921B80696C58E33011F1F3CC +94F47A0305AA8E5986E33397921F397BC945DA45C49E7382EDC9D92F5F859F71 +5939E3538A92472BDFAD334ABFC04378F21B2C05CB5E77EB0A50B6569D04764A +0D4D62F3D99F8E1916F8F80D819705F9A225FB013F65382B549EA4606DE42600 +917914FFCF55BA91FBED2B28C6D74015EF141E70B23F20E5D851282E256A9881 +1180A02212B53F77651229E66C594784DBA4A6179955474A63A4A0213F3D420B +4B56C7F7F1E75E5B9143947896F60E6AA9DC216153D7D575DFC6C57A94F66915 +3BD85DEB50C7841E2B0A93CD1A149B85ED9DBC80FDE4CC5DECC43D83F2E81488 +637ED5C6424C6D08B68591B6DDEAAABAC236426540D5A2602E67FDF46DF8B41B +C85059C38261BB77AFE134F6CB8D65C7D3C4ECC8B1AE7A7C37172E936C1F0CDA +226142B47EBE6BD5E3C4F6E46093FF3ED771057FCB6AB1CC9D10E15DD073D47B +D342DFBAFB13C32C4E920FEC8040C7F4CDA2F1671CA4665B28B641A6EE6B169D +9E0244CC4EE54FC1139C004DBE82B868F3DB57246C43B5120696075D04F2E705 +8E58D22A85F236235CA322A2E3B359ED8579B69CBD29CE58364B4DF1F2C11811 +9B191D70714B696DD9032D2CBB6BD0B21212E70DA9E5A25F4A8D50BBA2179A8D +9F5BA5444C5C0B75368DBCBE50BD8B4B212F3D633FBC922B4EA715800AD9A9B7 +AF56296934D03D00B46FBD6FAA52EBF142E336C97474DF14EAF1D619A49399D3 +91E7DD2A15F01E9158D98748B47F563B1BC307D28F95F43B4B669AE1CDDF3664 +B9A39ACC72FF67FFA5F6BFF67B8810E2D7051C4AA45D2F0BFC9BCBF1326F72FA +96995130D80A8AF5EC9E2780648E57B78EA48C197EB28834FDDBC8621128B1FC +8AE2F55FCEB8F52E62C19A0D6311293EC4E5D7CD64D21A960046D971A023FA43 +049B8262B8506BF5C66198A57AC0CEA9F5A97AD03BE96089B8106352A47FA3CB +BF990F565161A40FF157E88C15584BC7A6769C6E3F9BC9C74EE0BC48854DF648 +EF2A0C6D012FFBFCE0D07627D2E2F850A2EA72787B5860A667EF2788E40547FA +61ABF9A72CA2D9FA10A75ADEE7075BAC42E39E400A6F1D786F3D459D60E469E9 +EEB1E03ADF4E6D09817D68201063B1E386E6A2738D2A61D154970741CD0FA179 +06BDB310233895B9C85E181CA73E1426EEF27D7ED4CF003A6A09AD9E8EFF27F4 +EF22BE7104F3A7381C5F099A78F5F24584E62034C4DA961E33C4F153BF984153 +00F5C91F25A275F18D5D97E9EFF2F4CC8C28E8A01926CFB13B4EF23956B13DFD +AE3E7934AB8E09F6E413D028AEB7212D5D6A8113EDEE007C357491BFBA0CAB50 +52FAF67CA679CF55088ABBF7D469C92C458EB38713EB756E0F6A404F10C953D2 +598481E728F4F4BBB7CDC021620E25A0732B430A78D3D5F2ECA92F53611145CE +AEE80B1BD4AE6095103F14487BE34E9EF519FB385560A344912858B901456855 +C9C93474AFDFF2E72C5CCF4D5858D6836EB69CAD543DA05B2C571E00E865016E +D8B7510097FA31399CD29F06B199C28ED9C017E0305A0836C5C6905B676BB36D +7B4DC6C862EE74202F1E91713E0AB31CBFBD37FCE4B7FC8253F1EFFBD47454FB +0993A379B085A88D66917C35FC61064E5449B4EDEAFD5A5D662C074B24FDCC85 +8BC7B4D1BD46DBD674398013F10D0BFB98869AEE53D2725535B89BF9C147E196 +84CE0778035C26D33B149C78E7CE400B5E3D3F7633D361A34D559C461294AEAA +62BD70724BAC98E91E84D9573C7CB18BAC59F6EDA4DDC706EC5E35EB78B9B58C +9976AD3F388B2FFC563024205C9F17936DF7AD0131F3E9BEC0311923CAB620C1 +D2DBCA3393F93062070CE4AEAB1E4868B8F43F3AA203CAEC81760F2D157FFD05 +B86EEFD28FBBDF6F85C9F2017582AE4B0CD3C1CDE2A8FA0A82F8B05C2305E732 +25831344647581D0E9927B7F75BC0482995C51E6BBBC26A804C5DB73D109CA9B +47C4333D01356631B3AF9B5A61D32621D5FAE49B3D8B81CB02A1A59BEE9E8D00 +B34E66ACE4C4952FBA2363B84FB5A158927519796A9B6781C456F2D5CB202B1E +ACC99FDBEE7C4F687DB772CE186A705DE23C3762D2DD8BBC9FD02B81D4EDFB25 +80C019563C6909B64C934913300B0CE872FB1C4532BD1A51EF7C80370B02160E +9FF9A0F2A3BDC2E7CBCB60046602A6FD1FD7801BD8D840A996D089509DFFBE19 +A030C08194040BABF945389B6CFA3CC38EFAED9650AD22E0044A5C727D1459BC +80B181186B9AFC30B317EB57BB11BA3E3907187B99FAD95C13D4E1A8763425CB +AEEB79A6BEBA3DE2710A39D16C95A803F8F74F2567F34108C994BD8D4CE6231F +B6AA4DB98BAA21698725FFA0C0D33C519DEB202AF53BAAA3C567D2F6C456D174 +526B7D79AF990E5138ECE06B6836A688BD4AD18D94622DD5DA5CFA772C2D38E1 +CE50083A506F5701437720F665C4FBE496F4D5A6600B8BB289F2F0073F9CFCB7 +8C96D4702123DAD91BCC4C30DF26D99F635B9270619ACA6A7438C0479276A7A1 +0F1A566343EC7B1664E276D5FBFB521D7D4B3FC7A898F2428687FB4928F7E3FC +16E607D9B705983E54BBC54FA3EAD31B22DE1D52712B846F6C8279B376F6244A +A161AE4F201B00F833E3C5FEEA9D9BF92A475EA07450F9C7257D06DC27B6BD4A +888FDB45C3BAC7C86CEDB985137427BB9109CEEFD2232849FAB1495E09CF2D6B +613E026FE4CF05059505C8D1E6E8301F2578F812E5287CCB97D9293D62238FAD +EE61D744F4268D4C9B6DCE7D296F8B5636850799054BAFB9A41F708E9E60F522 +2847621C7E91B5DFA9C154AD9EB7555A950A03F21AECC662029BA74910DDB906 +7CE215B0D55DDB6A3EA4869391BCBBF1719E4DEB9BBFA47D8EAF57304FD5004A +51F230ABC1DCD0BFC4E0DC828CCDF1472AB92799574BF44342EE7D5759AC12B7 +A387AE15FD656E49BFC153CE164D50C910BFAF032AFE78155BFB319F17E89E4C +DAA34E0E2BF413AFF70802AC160373A22316553E6D56FA4F21287FAEA2FB22AD +DC2F4941797A68C29A9E5BDFFDC394A6DD05090D2AD27ABA11A39D28E56B3360 +EFF66493A56A48744127792BDEB3A787ABE9DD20C62F79E11393161066F558EA +39F4632321E3965141A0C01B50442E1D185BC7B7EB89B0BE25E15707CFA72D6D +2A1646F584410A54FC2AC0D934D3C21252001FB9FF6C56D848F46BE50307D45E +46C99A54D263BFC99EF7C10ADE013175972144CC946DE8CD4ACDC0E0FC2229AE +C256B436D832DAFDF398663B091C30D2DBB3B7E6F84F650C5C2D856A65B9674A +F3940B6D6F042BB6ED817F2AF7191B77C84F0C3806759B3EB47C4F6B73CC7E21 +368C621D7E0C901294D960A5E3FB1F54474C2C7FB912815B3B5EE1C6164D3A86 +9CE5E2416B26E9985F09DE8EC180522A90FBB1D642B1057252845CE7BDA706F1 +22CD157327FAE5C7F061D45906A25569A5E7F2FDA0209B22156BCC8318BF47DE +3172A31E9E8B0E8A1BD16DF75FF157421707C253C617FB7A662B74D06C2F2A98 +D23918AE172C8BF995D43CBD6BFC1F44173F1ED864FEF722A5E8E190BA9B409A +61AAF8CB4A03B6854499D9E978868179539C9597A9AEEF316456E0B52BF90555 +231F58C3DE65812E9B88BD99749F2EF94AF5C3776B489F6DAE6828A7612CD304 +E2E860631F6E0578661B1E9E62B48838A442E796E115B296FE956FBDAD570B74 +4A461B5F14AF7100A0216C9832DCE7E31B732D761B67600D71F35B40D28B4E37 +0710D0A4923CBDE12C3AA0A6F26EF32D9051CEFAF9DAD18BE66484E71DD0D25C +CDEBDA5502C062206BD453B4F32519C04BCBBEC52025FC99CBF5AC6E926C7DD0 +88795C8B791E032CA6E0258504B23BB24497218073DA6929CD8D0028621E09E8 +64BD84F97CAF3E27FF16727EA0F820DFF47A24E40EB93EBADFB599ABB0954243 +E49E2B928B829E2E49EF42C767A48F30AE04C7EE90FE212AE5B320938D799EFE +E232D419267EE4F436F434A68AC60DE2198EDC7A5BEC9A3A94AAAB643C623AA1 +0C126651F8DFCA044A95B09A2795749FEAEE6F3EFE6765245575F4E49C7E4F4D +9FF276AF91F50D9A6E3D5053B7F26EF32D90FA81FCCE192F825D046A494DF72C +3299698DBA2DCC71E86690C3854EFF118BAFB80090676DD4F5C5ECAC8E55D866 +EF4E4B46C57EEA14212E7B58DD47A55A3D8D7A5616C6D30991FEFF58E584D5B0 +1A923824B76C6BE9BFC3A69E637DFE9481E6454A486E0774FBD3BB9024F8E3DF +DA4A19B536A746AFF8BC1DF6BFD96E5F33561A638503BE25D7812CEC7CEB983E +71575B26EA0E8D9119DDCD3628E54364C54F4583A83443F43E70D6DD67082B9D +7FF5928CF6A649F26DF9999E3ABC94000B2D142F654C71233E4297234F71515D +004BD3D9B4215A052D80AA5FEAD234BE9AC28611EE83825A2151144ED4AAC6A1 +4A80D43A69A5AF81CEBB76A05653AB6A4790E2B5FCAC032AE641F012953EB488 +742EC2B223FCC809E40771FC75B122EEFCE400FD25A2EC55AEB085CBA6A8C944 +4B052B0CCEA274B0F06BD8EB5088F834572A99CB148C5404A3777314FCE71364 +38691B62295A3419F731E1F7493976B10514E8C1640E0EF16A0BC3ECF3E09521 +34DD68B0C21765A2B65BDB76F36083F7FDA217DBC5B17E6FB5A426C5554B7A86 +B8E4654F640D156949AD34C338A08B3DC66C8B6CB9ECC517BF14F150A9461882 +B54AD63C130BC518832A654E8F6F609232C728129D8B11272B91BEB6949E5745 +0B64AFBEBE9C3B3202EE58AB30B229F3F48797207C15F18D8E3D71B0CB9C9720 +9ABFE7D49F806F12DC73DCE075D21209A43EAD269430328F9A6D41A4EDB59DD0 +9C9C6FBC2BA01838DBC47CE925D0920B4372B9E2F422361111B9909F2B67CA60 +F256EFCA7A287CBB48C561EAD1AF652E422E5F797E901938CD789B2CB27EF9CC +64983324F98EDC83F7B16767610905562E92665E9B23D2B0553C59D295A4EC72 +6022D0F92B52DBF0C79AA804861B657B480F336F73434A9D82947F1C6D1EA367 +589C59F314217E799A61E41DBF800865A88DB50E2607945E458A319EFABBAAAA +F1D6A52C52D99BBF3D37F895A872A954BABB2786987A899E28EBF0EB1C455466 +C7C082E3F3370A0216FE0C3A4F0C509A8C0E723B7D58AA416C667FC9C4564B6F +0CB85F8A397CC4F53BF30570821F6D59C66BDB134EE52F84F5BBCDD85D536555 +407985794A97AAD69F4555DE33B978585D8E666815E6A6A91A4EC43E92EE9A8D +9917E02CF4D1A60C20506167AFE0DB5D8E13419A5A6108C11DB4FBB76B295C99 +C4EE2418D70742E4C2F2A4B51846F3BDCAF1794C18ECE07A92E2B1071AAD2283 +212079524040132E76A06B56657DE220EC3D2B6B9E588E4396B0AA24D4D4E116 +1A46E81E4CFF3DAB7E16296C2DB04FD11B385FE3B8DBE676E04117CEE7A84171 +3C833F5A6EC829CA067861485D4E89A274AC41BD4E25610B53CD4182BAEA7170 +FA50530BED308AC93DA62E9A0012C8BA3F1385D2B7FCCE08F6254914B82C56FE +0F7936B97E947E1BC62732DB6E705A51EF4B74BD2706A0276FDF1BD912EEEBA1 +79C7AD98C30539718C087B573F51AA2FA8E3635ADC47BE51F911D017A4DA7E07 +1834E20C0EF6540A82FB89B797E70F9E1D1CE312E99D791C26332A94B230B228 +865F3B0BB8E754673674B52B9433D8898498990F230EE550DFC2C86966C36A1D +E47C6C307265A8F6382BEEBD4CECCF0CBBBC51BD4651CB25C4F6AB206AE09E7A +DB6A6C5F13E9D4C804E944FB9DBC35BE525A61FFE9ED18EC62DA4B0D5A952A3C +DE033F21F1EA07D43A97B1CA81289CE95B049B3933138580319001E5DB539202 +00708A5BC1850FEB133344BC06577610497821BE256AECFE73DC331F1BF51BF7 +9F96D5305F34F7579AA3F0C5AA937360B55C2150AED64F9A5EB6A6A09AE07B07 +0604124D33BBF0FB0D9F6D11301867919156717CB4429EABB1F875BE9299F963 +F1FF384018C2D56A3990EEBC4C7CD63BCE275D9792CF60F917E05939C2A6FDCE +B75AD8F831DCE93480DA2A44FAD2EF145520830C3A36062EBF1F7A215EAC9841 +0D549830BC41E98FDF0149BCDC59354FBA9C9233AAC866C2D3B94A8C357A4880 +19C99FDD161E7318006437780691487E890CE92270059D2267FE20CD51190973 +3F6AB9C468104114D2F8B387AD84597CBB62786FC64A9842B832BE9D8D11C794 +E232501E4F016AD1F276509DE842D5A02977664D2F8EDDAB9441233E5BD9D8C3 +D21314B7182AE0E13B41733608F35728C67DE8D4868D1B6512DD4C8CC2038E02 +5CD5AD78D4041F374125499ABB4B0923D36B31583A25EFB58FAFEB9B135E507C +16AF01749ADCF80B58A96568419DC41C18B7FC1EC0418A953C5BA29DBD44F3EA +182FFFA7F3846C8F6B21F1AE91968A3651FAF6182028D081D2A104581283A179 +4A4608FE944151F2420C41D09BC5CABEE41A461ED958FDA8FB46977B58B669AE +BD0AE160A6453D38C3610A463D555AFED76EA48A19129D9B74032D78AEF3018B +398D59A49F27EA5A327F1FE5499502E5FD0A9026FA43973C6C9191351228DDAE +BBAA8415276E483F7EE4D9762E43690687908FCD8C60E797C1BB74FCC02022AD +474C42A780A8B1ECDE767F1A9687CEE61CAF9CAFBCE4D9ACB08703E541CD4C74 +2E797248AC36C802A06B3A500862A1B08BA9E19A0B51A509626114A5A33C3613 +C577E2A78C0FF15F79699BDA98031459C87973F483C3B8CAF045383306CED2DB +9446925F18C6ADCA78946352F2EC0F718E8B78D62CDFD8AE8F680D6EF66A788B +FC549777397882A8DAA878269ACD75E048A58C1862CE5E1607ED163F50E9631E +7F38FEEB2FFE370EFE6F9BB7E8DE086CE15818FB07E86DAB7FA029F067A65A55 +B450B42B58BE44EA60065DBEB6CC5282B5245BF95259E5389113A11B269B71E4 +8E05397989BFDA0EFA22D6EFFF05EAB31373A61297BEB58046B83D590B463BCE +009A5801B0AA614B44268DC40E2FDC1551966A7BC5BF6D89A909547F9C7CF311 +F4821BC5FB9862CE46875C03C58302570443FCD3BDC6D3509676AE02350D9107 +31AEB3C87B0D1E0C400BC9605BDE315365CD05989D230669085561D1B5461165 +5BFDE684AB4936EA7B227A5D2F56D69BAD0A48083DFF76284D3B03A2D67BBF12 +4DCD505020A6A86E554A2C842BFA8957776005239632C4C41BC1DFF134879806 +0263F20D840054AB340E5B25A744E6B7B6670A048E972EACEFCC5FA14AD45D25 +5CEC8E64AD4BE97BD8F0A189C24257B7943BEFDEB0C8BBB979C49CFEB0423C4E +C3F4311B8A75A0950BDE7461C19BE13680CB7C7DC35CF4152C2972E2689525BD +879F6A2523E1B0442B568ABECB2594EB11331C75200C69E31463B6C4AB62E38C +130564BF296616D2B9018BEE92F66AAE7DD0B979E7FF60F5B23648B516354CF9 +79E5268D7DC5010C7DF4B309429CE77E14FDF25C31FB754D6815F14D2492ED0E +29B5120876140149CCD84DC5653748AD289BE893C8962C812053A5302F74E991 +B6431E34152899A64AD5B07244F280F6F4AB30566ECD1C873E88DFFF6F56A963 +31BFE725DD4D7F5438D7B87EFC522BBC48F16E339F0417C55B71C4B9F6D46BCA +429AC61D1B38E2EF9838AC9366BDD0D554E5824383F2375ADDD0971663197B30 +B40482B681A98D2FF06C761763422CB0853FFADF86FCE519E27F26A8144C7D57 +622FAC4D2D080E00960473DD6D25C68AB8F0D9B5AEDE0A293F6C4CA8C097227E +90541B1248C04A472B7E804EC49CCEF57A08E04B47DCB6BC7A1FBC8994883C6A +9D984799D135BB5347914773001D05C1AAA83E8FEA614F31E1DEC971A1C61091 +16175618903695400308DEF899783A4CDA71B0AFE3EFBDA7DC3BF55C0655D4D6 +FC707E24F5CE10B99E1B03E18B76FFB0213D6A7E7BF78257CE77F40DDD864A95 +A936E72EC763888688C175D6B7C4CA3487B25F4361A920A3F5CF1FFB73D88369 +CB812D659EEEA6993EE193DB0604757FF1D3FC07EF85862F0F31939D505D2F6F +A54F1D4BB3943CC0CCFEF337147B5D39B37816CC6B64AFB3D7A3533CF897C932 +FAA40CA8B73B7D287A888842A84F44E072E120AD3A0EEBBF4D835ED072AF971A +E2D8AA716796D6308587AA86286BA26F4DF597514BD803AE33CDAB2B6EE046A5 +8665C549DB5F341219D3DB3DC55E88081808AB8A493F1BD5A6BA779F859217CF +48FF0CA96215E13AF126743CD27E55F1BFC044367EFDEDE9805BF7EA8D51DE50 +F4094049F144628D0B9F0F6B34E97DF1AACB8BE5DCBD080456E62C5C331132C6 +6237D8F81688CAF05981568A0B2564D1A97AB3C777BB1D6DF5A50A6645A0FB99 +7A7A26A77475BE0BD506F7D93D9A6FD336F8F972CC897CF9AE67B665A09F3F0F +BF103510AD9197EDEF3865B7E7C25F8B5B98F87100E30E57A7B9FB492D5FEF93 +9166722874CE85E3AA78FC49D68F7F48CE1C09BD7DD73AB6F7E6F165A1157C7D +1FE0AAF29BEE432246585290E0B93D4C6BCD6E191C90D641ABC065F1ADE9DC4C +9888AD090AC2EC747E88346574CA0123D3237BF2A42F3782FA5E9002C4FDB520 +5E266D3F7775FC6A2EAF1C9AC5571C98D433DEB0CF20634688AC8D02FC2268D0 +5999DD688729F3F5E52ADD7D3A5AEABB9327D8B0187CC87BF8CD51589F0D126D +C8CFAB281DE92DD0AB708E376F8397E5CE7C2018A6A43203AE32040C5AFE06B7 +712A1C86D27B7688FF0EEF8DC44657AF2CFEF7BD7A358B056DA71670085179DD +3B5451984C846E0493CC7A3BCF97244F1EB919202F67494129DAD2B07E1DA89F +F472ABCAF2D3196A44D71E8DF860C8E3CF259D1D14EE325C459CA68F6299B5F7 +7B536513898418BE6B978EFF50A3CEDE442C0377CAF609F5629EBED60DA4E33D +F29F1B07F4E15AC700FD6A1FAEC51E22D2F5A3F134690FCE021616D0DB89C510 +01090A4A7A4B9895D2823F429EB36CDCD11C026236CBF06CB45C9E96A54A74BE +0BB20FB55FBF1334480535C5FA1238BC95994C1627D63C59F6D15EF4042F5455 +86901E870F2A99727A448575EE641B77C2FE385C36E2C5B7BF63356AEDB0E315 +3FA8282918191ECF16684FC82E5D8B611DF1F4F55E58A9EF6D192C247FB48C7B +3BCDF87F6077D8C4423D10F8A0666F0FCA3855552B2743FE2C17CD43FFA7DA25 +BB816A3B6DA4AFFAEECAE648B69A42DB4B7797DF2E3C076475AC946C9E0ED103 +A5700A2C8CE1E04B07D5B38FC3526705D2830D4F8688DC0A423F54FFE3072F05 +FEA2285B948F9D4B7EB4E1570F53EEE2BE859E6DF662CBD3B859E8F144AACDA5 +7D2501D286BB5F2F0A4765ADEE5543F1571FF48BB4AC96835C4763A6985CB387 +387BDD3C1966F5AE6A3F67C555F649C3151B48D38FA18C34A9B74CFE6F51B35A +F9D264B7CFFD26B357C4B305E94F64E4CAC866DB70CEB5E6744390AD4ADAE728 +A404E7AE954698392269DFBCB80B4BD6FE75D5E68C1BD727624232D0DFC45734 +A6C535777C5C52CD04D314D991C7F43C34E4DF83DA3122BEEA272FC931EFCED5 +2BC8191D69FD489E5A3830CDCF5C73D811570C24D2A0C36363A3B14E0B3ABFCE +7CB90C4E617871F1186E5FF62BBE155A88130C7D5AF716A075096A48A3C7C8B8 +AA5C2E22CCAA63F2D4F915B921AA7072575856290E46EE893BBE0815AB8980B5 +2AFEED4969B0305679730FFE10E21B88CE115000C4B56CDADDC56C29B4CA9597 +85EEB0188730D40391DEC66F7910A80856B8F504547C48882E3FAADA8C4F8621 +75961827750F0E8A3FD6A067928934DB303F2EDFA3E829B4915AECF193451B04 +8ABD6CFA4E5913528D03CEA13C6E697602FCF0DA3B4FC19AC483B2CB7BBDDA09 +B7BDD68E477BAF861C673B44D1A0ABDD0C7C86CF00DEF4C32717B3C82F3212EA +02AA67EA6E74744C42B434EAEF15F17EF5D3AC473085F6FABC646DB55EF63A6C +181536F45DAD30B6F7A072A45FF325B73C5B43AD5ECB446B6A3818E5868BAD0D +1B33429A7BE3B5A8D14814C97642F42A032FAB19B379056A217994E40BDB58E1 +69048D258FBE46ACA5FC91D017820628D5F15AB97CD1DD722A3C27D24DB0385A +77926FB78D48DE3AD2B436BCD6CAE4034CE73E67169DC6F224ED2D24F893E486 +FA68B2C4881F1E36143280C65FB6E185EB5506E94A3724B7FE2CBDCEF75B3630 +1C9D89D9E136AEE13ECE361A84871E9736F88A9B2594F9695B8E2F53EF53516A +7654B43BD279650DF32D175049F16393573CF9EDD54ECA68C8C9CA0E9B0CD692 +5509654A916BB559E1C074F2B0FB07BB66046D8ED5A2B1792DA8AA542A1BE725 +BD5F9001E9E0D813C807DF2DBE90724EC6D503D48DF8A19B3E7B6321FA341B55 +8100D7CDB83F20B0A648E14E5C439561E72A1E7A2EEF735C7E6982A3C4D81AAA +31A9C60ED3C0A77A67921BBE773CBC3661D002AB19585E07B92BE747100DEDE1 +47FA61AA135FC788C68B1227E3E91241962A3E571630CA0BD02C6729F5BEFBD6 +314D9051C9CC94A7607286B5D3575AF8830EBF2D48CF8BA913D70BC50E7E1CE4 +81234AC8A2C2F6071317CC3035FBA5870434510891F32F6BADEDA90C2DF1DAF4 +BBAF53F103E17994AD68EE45ECB2884E424979F487BBB28FA000D03D71F87B77 +10FEA243C7D908F8693C647FD13ACFD6E0361DEEB81A2FB9B3FF6053233A4836 +A03FAB26842613D8FB644512275D43F312EEA72F3D0F26AB848E80599145B5BE +8C6FC10F74759C463F42829DCD56DF0D53F5BFCAD3EDFB4CC5931E827920C5AA +5062A7693067A8E43B5667A17A0C5F2EC9F6032AB82B21EB513B3D94014783B0 +59A3D6A5452093B779B4CFC1CD52FA87C69A03968FAB938CFBC20ED275D75E9A +F353CBC5953F70DCBA73BD902631A1920CF7963B63CB5235C2441921960ABCFF +907F271A070FC3778A8BDB9A84E7312C9F41A2CE7BC4CDB0CF7412112F04BFA7 +28BAFC76B60DEA63EBDB0833D17FF860C268D7EF5DDF4F9BDD7CED34D2301655 +F5A101BC08684A0E11F302F05631430B9EFBBC38407613517F97D41ED317923A +F10FDB8958A6C84D9C205EB1E8E29586B732B397DF42ADF0591A8EE80C13BBD8 +B5D4AB65DBFE130AC639C5744C997B8919E80AD5B47F6665633EC49FDF3D2B48 +064882F9EC610109B58DB1801ACB47A342A58F1AC380FCB17A085BBF7E9F6076 +0AD75BD8ADDDD718C0E30AC820C324F5974FFC121A6101EABB58473E4B23DE10 +2900D6760CCA1F58AAB1178B2D50FD68E66D09F48BB8AEB4A884D1FDE90CFB6B +E8DD5C8C762D9CEC3F36164B29BD570C5BF60608FCED41C04C116547E3157E55 +9D251284F0F30777753B62AC11363117DC28DD5825AF6C1C3B0C63DCB27475E3 +F1F9EA71B3AB981911D851E75C7F49B92B410843D1854661A39E007B208D58A8 +00869B529B3548583EFA90D4FED3944350EC117643D3019D45F1CB28076BB730 +0E25006DE035D74DBFA25F45415F40EEB60486C2E59AD5A72614DC8C048B8C23 +173BC5B3A84804964E367431FCF582B9E47848CA73404D8C53FC9074F462AD8F +20A30DFA5443B9B36B3FB0D45858AED23C363D94DC7A4E9BFCA50C302FCF803B +8816951C64E484BD991809B20015637E4AC58CFF91286FDE7CA54FD0E1A63882 +888325653D52B4E1E76AFBCF21FC2BCB91CBB9C66D0AA82F5F8D08B3E25784C6 +19DEF679B1F1E01A8446B944638246BFD47894F0B96EDACCA9CF9A932D6E027C +F5F7235E436C1C649F8462A08A77932F757CC6EDA3C19DF2749112314EC5AEB0 +FF6C50550B8D16FA25374AD48F80588D021658558BD75128F86574E096F15A06 +53F63FA67C66369E4E62E1312B8AD5D00D8538983890347948BB2B620ADE8567 +36F7F97B3FC9CA260EE317E7A5EB72F16BAA2A4CE94741348607A305370F88AB +BA612BBC4077FDEF125DF0BEC6255E7ECC2C4AE3AF0AB4880BBA09E4C99E6C0F +9B48B238C27E239B880611D0227E99018135931A5F4496D1F92A6B0DA6FE1884 +A21081F519D77419A2A7C10D521C68360BA09B16FEAEA6FEB2F37066EBCBAC78 +DEA776C5E243C5A2C259589CC9CA9415B7D6E311D655EF3E9C7B6D5BA39FF1D3 +AD21FB11DE8381A807EAAC470927EAD2A97239423DEAF187FE2AAD1BD7456597 +B5079B0B24F8C4B9EE1435DC397160EF15149AAC36015265220FF4E8DC157381 +8C988B1C43C7B423BA6A05228E72644F30F6F8172EFDB56C6E1A90844FD062D2 +D5E61A9425EB3DA99A55CF56F67793DBA8B09A594C8F549350CCA93C1B8CA0A0 +FAC1E7A1128A02DC66593E07387B68B21C077ED0A1136AA4309EB29BC6A31A53 +BBF60019C9A5C597B6CEDC154DB66F4724383A9DBF4EB1046C25886A901BB4B3 +D77C70679BE345B94CEE7BBB4798BC6EDC2F5A4F14DA5759972A641B002ED10E +9687784C907571FB45BDD7F6FA9686D74BC8C0830E7C491EFBDF46160677A245 +B0170AF7CEE1AF974CC0488D5B03B4974C45121F0C052DE5892637324328F83E +B16D67302F98BCDC7DD1B3396073088F489C35EE4A6EE1797BD70331BD888418 +F9FFC0390420E6EA4239B14C8C9A954D2985174F09F286936AB89C2EF72597BA +58F8B0B80E90CD009DC27B502E3FF14185652DDE90CACAD3A49551D974C92BAF +AE414C6BA5CBE4D7B4D7EF2C5847F4B2A77F241F42C803D06B1D546059978B82 +22D28160D08C95A2F86E5579F49F5307CF3889564781DFF5ECFC024DF566161A +4A1434E9F2913CD52357087EBCF7EE34BB5DCF9D260B24D787C2F66136C58B29 +9B4768F74F95D1F2A76FAC898EC504FC23E9D0ED6E7B08B410A7D0A41187241C +C8FB94C3814BD6BD73A4F079987A8BA651EC0B06787E4417FF4B6F2FC81CED55 +A4D8FE0F775D7320ACB7152F7476F7EAF777B63B1EBA8344EC0697A978EB9257 +959A4C5FD5FC672A803AA46AA7C2A7179E41F2872D2503406637277074642A4A +BEF17D4E41716CEC33D0652388F909DA3DBD681B97EA156071EE58B9E92A7ECE +270CCD53D09969B92E3367F05B6CC79B4DD6F359FDF2384A88F9E7597660653D +A07B1A3F8A75D6E222E2143778DBFAF322ED390258D9E2F52205DEE738DD26E0 +588D39B88DFFB5D5EE855737BE19D095402958CD5FB6663B2AF889665FEF4C27 +BDF940955BB75811AF859F3A698C50CFF87170EE15CCF4C07D14EA4DAD969B66 +DF5107B8199B0FB8D3EBC624A3BB0AC7166553F30891EC803C05CAACA5429C15 +921C84B52E92724CAE172EC5F3EC21B52CEFC1995770EC6F42FF81A776AEE839 +C9730D4C4DE89D080D31BC036858E1E7C85BC923C5F9AF2226A7BD3776527BFD +F8B153D9576A7FC48441FA203BBD40C60178CEC461EC8FBD826E3587A0D9AB6D +C7735CEB7D7406D9633D14133525FB8FA7FFB7C1BFF590EDA30E1994D1B593A6 +CF3C1AAAF489875BA72DF77F8C89F752AA761296AC5C140F254ACAA3467477E9 +BC33BDEB7F696B44D3F471AAABFF5DC70C1A727D99C74C7BE9D86F0FDD6CFB04 +05B37FCA3425FDE1505EFD54473E05143DDE3A73DF190B9C402D19A98C1B4982 +AFD83A1336A1CC34D02F9AB0D03B0285B6DEBF2B34D241BFF267B5A0483B525F +E3843B646E4EF3D8A4EA6E0CC087EBCDBCF1680C860C714F7B6862714A542695 +A98C45698E45D03E61F145007A0C6EC4F2C1F9AC3D77454728BF30C6975DB4A4 +E49B43C3B4D19650938F6CCFC22CC05785656E0702893D08FD3F0B0BDB4DEB36 +113828FEFE3AEF77217CBB6E7F3BD3516998AC84C082A61725E2863369A4F71B +D79864AAAA710C9FF462CC1CD865BFF588BCA4E6F7482B098177DACAE6038D60 +E0D13E682185E782E9B00EB04514CD7B711ED4580F463A3D765B0278A1AC6DDE +38879DDAFBB0BE351038AADD7413BDE6C212BEDEF90AC0F044449483C178D66F +DB970405D910C9AC7310980A9412782D7F22CF99F5CDF3A9E06186D947FBA1A2 +F9298B617E870F7B802939868E85C2E570A7DA96211FD16C999281F493CB3E13 +672D5900750E46EB1BA4A85A732C77844C3AA174CC1448C45B7E29BD1BA37DD9 +C62264A70F60166AC3FE204C3EA8D6DE816ABE223AD10E41C5DF8DAB86636395 +0773596C658E1FA6104F2EF1567ACC941883B6339A05A9959C43254F18A97A26 +32DD590C5F0F91BF8FD00C2A5A309087BC46C88F3688800250584B7FD59DADEC +24A8130C2D060F278E80C2A3B40246EA5824E106CE9AE2D84C2D05C6C1A95B4F +D62448449573201220052AD26D4FA53C0BC0842C98ACE3CCD372D081584C299D +5808CF1BA70387700713A563C154B4D28D692DD512CCEC6158D96197479E789A +06316ACA00AD785869AF9A76C3A2E9AC3EA2B4A88D740906B82DE343BD26CC88 +F8D8E6F1EE8C287C5702227CDB1D8DC91377B615116AD02BC538E4B04BA0ED3A +D9BE4FDB83E7DE5A99B9480C69856FB49DD8BE701D17D666FF5F61037A2062CB +78AC1F50F2280C159EC76C5420DAB357EA0748A402A37F40D516E7BE42F10120 +2EAF72D098B64DF4E314844A5AD4D75C2B08CB363565E0EEF0E75A6663F5F750 +3E9EACF05931CD231ABF6BD47C29D31D3B67DF60590C845C62A2E2A02FDC71D4 +B7C140ED914F28BE26DDBFF0E8509EA111E83CDD35A86E78BBE7A9583CBE14A3 +D5FFBBF4C0E4EAC1C428F98D338351F5C4F9B4D6745440F9F12A5452273E71E0 +9256051B0060BA1A4922018079ADB882FFAB964463CC08D1373E1058AE99A383 +A163BC46365771A6A18ADD0717A0184E9C704031F65A38F60E97809EE1C91C1F +E9ED963987056D0B93EB89168B9447AE7E730915FBC6CB28DA8807DFEB61C6A8 +AFC5EB0A8931420EE6FCD8D8945469EF9D39AA2495B8B29C623FB35FFEA6B557 +2B07C063BD8C39280841AB5AE3A91530D97AC6DE50F1EA8FAE698B5EB7235E38 +C73A53D05923B5B8D62E1EA95F615F54E3F803E62D4BF7E5037E3A2CF4E2436A +1F339E02AC8B0630BC190041C3311003D68310CD67C2668E72C9F0E8C11C499C +3C1EA16ADD70F3B06E20898171306A8E930FF89B516A56FC61E23608ED379F83 +D3F361FA4154C91DAE27002D56E74228B71ECFE4639D89796F2708F5D1E6A6CB +1433683A99512F99173A60564F09AB0643B949D09C12B5F4D3FABE5A08E62EF4 +23040A354EB30C2C4592CB24F44B09065B486683BAD41B2CEC0432AEF8C7A812 +BD80349131B91E00095E60D6277E6D5FE15C43CED9C033E3402200E9E5CC94FD +B855D1C95DAC44CD7C4929E6556669217BA16D1DDB5D9B7C5F196CC08313314B +C743CE61A2E870F2F76CD9A6FAD2A3AE66FEC7B6E4FCB68E49DCA3E1BA135320 +CB815E15EAC78B8783A0310AB18A21FDC235D675CCE32A344688DDA2EF258BFB +DE66C024D95491C52553726B0CA003529F63340C514C7E7505A7AEEC8B172305 +A1E20FFC79E2DE8A0CAD52FEF0F3E5EBC82EDE503D67B4169D166B13F0D4B4EA +A2F9661279F2EBC20CD49631A76F9E710B45356832249028C3B7C27D20BA5E56 +EBCA676892BB1237F97967ACA39DE5291444C1863E21A8EA7963CDFAB8AF9A09 +AF7E6CCFFF94517E3D782C522F9DC5E1693CFA7EE0BC1A0F7ED47EDDCDA57A00 +A956A3F4F2DD603F77918D59CBE089A15CB9B9A106A10235ABA682CA097D4FC3 +EA81B0B668AB8329E72281B173B0DE7ECED601E84BACCFB487B1CFF2D75CA636 +96ACE9A8455DF5CC0BB101B12B0CB538F21A60BC10140AE7E5A3A66F97CD2BE7 +168EDD15C2A1FB39DE5490A3F3018824AF25CBE789B01B285786C4DB884B14CE +2C621CBC82941F5C601955C33C434634EFFB4748CAE0F6F43D3E8CBB2D9DCCDB +1305C74D8446612AC1466C9CD23936FF1C140B0B182A5D4D1BD203EF31D06D7E +9B3B475241C63F3392B5F419CEF39ADED32FFD9471BF8E58CF2C87B82EEE19A3 +4CD5FADC851C46889FBD035D0E15F83C87A26F87D3CE3399B9A51EA3EEEE56B6 +56DFEB17DF9264BAB1AFF5BD1A583A965B858AF2ACE3C5A8D805E963DF490557 +09C1338FF3E3C788FB4EF80C807B0C0E0C48A39AF1B9B806689F92F3AAF3E0E6 +868C361688C1F92EF09DBAE40377B5E69A469F1387A46218C4505E31CC121683 +E289BD8D87F5D91B9CBE7675A6031DC7305B9DA1494840044A37FE94D0D92C6D +113D7F310FCE7EEFDFE15C7F46E7D67B3411BFB14E6633E295A53D391363FAA6 +68FA9612E19A6B1473FCAFB531FCB68D5BC73E493023CF2822B120FFB62B0F70 +1AAB90B57140100F6A66CFB72BB76BE6F1208567DD98C3547ABFFA936A67B9FA +B7F12C6A7F7A63FD18BDD5942246CB27C8CFD7F4C8CC58B3F354B64D9618AD2B +EA274D61537ED666A576DD48120EAFA66274F01BD302DF58F0636070E5CAE10A +4329051E292C750018947958E39BA2CF4487D1FC985E9AFF039CB101FF524DEB +2B1E13C623F64E4BE566AD4F531743FFC9715D7E120753A4C37FCAD5AAFF3146 +590E6390DE5B1242635BD4F6C3410433A9858B61975DDC68DED59CDEA2024A92 +82ED10E07C61D63DD0540B3DBB8A09F6E2BB987226549A6A6836D6524CCE4A08 +89B21D7D52D9A71F13873932E6E939E0E2D49DC02A6106593D6F069BD2297251 +75EE20FE051887D0629B299ED579D9EF00B9B20A17A82E2720C3BD821C2033C9 +1183A83896C82F58883C6416E575044DD826CDB37FA0271D176A11B6EC2FF49D +A7F01981850484BA5797308BDE96C9788E0E10C7DE3B1B0F6D156D21D02DDE90 +B40C4A402FE525099B51C46FDC2BA3B1C97FB2C38A2078237FC321E75FBB0A6F +0D0D1138B99917071EE3DDEFDF12079324FEE8845A45F692BC5C80CC8089306C +1C101C29C0D9001905CE81FD402099528949BC2AD5EE3E571766E3CF1CF7BF85 +F74A9B79F138908733171880DEFE4130A95DD9EE33481D6DEB00EE03607D8DB6 +A7C4D05955EBB025C6852621BDBD5CB72699A21F24B41DA13EFBA2691CF0C719 +E7ABE48F860AF0146EAD45A852AA18CF27D858857D9DB1BB3F0CB777DF0E61E6 +8D383BE6E4A93AA961BC7F5AD02301B8982489030B53C275FD7909AEE8D28AB1 +0ED23228219CCE308FA5A19A7AE2344AA5131C9057CB3317DBC30633A81CDBBD +4D10D26B3D47BA33A81B60272155255B202857251A79E65E4BB87267D8254511 +EAE0D2DF1740B209A28BF06BD945BA523B8B1274E3FCEA286B4A147C44C12E9B +1E01B7D93BF4E66BDFDD25695E4730EF217D8E3CD233EF1B5C15F89AA594D3E8 +D15E696DEE8585719DA57DDCB448D20F3B12F24604092CC48DCF462B3A7D66FB +BB36556196413AA50E77F696BB6D7190F13845C02D3D9A4E162A2407619FC9AF +29405DBCF797F4590024E91D29EFD7010DB90CDBB25FB75A46F1308458FC50CA +C38B5187D64C793F424F7811F24BEF36D3E97AC14C92D716554CD6583764A79E +516C200D9AA9CE54789CBBA31A507B4785F0324B2BA2DA0F1E38D595CE10A168 +8F27A7E3621EC644E5B02DEF1CE74392100270CB0660C78F111E5878E4084285 +DC5E101852A08E0F92B1CEC2F74E0D83DFC5B1E3E3B1B960C10BF32280CBF9FE +4D7778C6F679E3BF8858C7AAEFF5FC1814FF66DA7B83EBCBE3BA0A136DE01133 +4DB836FBFE6D259C1A29BCBE1D0637E35198DA8FE8F60DA9FCCDF524218246F7 +C4013E926BFA67DABB47D7F599279C96E5C583A2D4DCB4FB306FD1F76C6EB584 +9993518357D8821FB07011E98A6045FD76D0D937AB8267C6D2D2935C6DB05EEB +FC94EDB54AAD3AD92D7944387712E8047FAD2BF1510EA3EDD2354E00778EA9C4 +D6EF0B92BCE629E10F98F4CA37B7B69C034ECE52A45A5806297BF9EB39D2E631 +E0D650A772DDAFCBC804A675CCC8D23C1E9C80D7AF8547C2AF2FD51F11110357 +58F39322399DFF28AD1AFC1212CC125333C67FC1153EF2ADA0965660AF312AB4 +FC595761E098D8CF610E2A5612056EB9F153D0854E7CA010442FE20D25C75EE2 +D68C61F9BD3575816A600E52AA6CAD5DBB07FBFF0C695957248381B938A04C91 +214E6122DE701C28BDBB74C4D4AC6C09F3B20C9C58B9FC40EBD64096A8A5FF93 +1249147F4CE9BAC8F9DC80940D9BBF28D3DCEE5BAC801561C3DE023788F5D8D6 +87F65067BB0CF7BBAA9342CB63A333806C09B3089C02E74B9AA219DB8B7D164A +8B36D9A3DCBB92357A089BAC048BFBC7E4DDB77E88B4A5A5105A5DC5E318AFC7 +64B2D7509B8BF2CABCC9B7809BCEF2563426D600E4EB6C7745DD6EFB4AA7C972 +7C8E637F1567EC588A944BBDA75EBD00F3A8196DE68347DD21BA8C2CDDCCC8F1 +0BF31DE4FECC4C86029DC08D7AC43515BA4150D0F04FE17185A0D56336B36E1E +3305CB5C4641A28E7C40C3FEF8A2630DC00FED1B6DFA6D423BB009704E5A74D9 +04483706D8B037C24A03A27CA1C9ED18F0E94962C7DC9BD92656D478B1E448A0 +441FA10ADAFDC688611055082138C8F38EF6A3A9589B71F6BEC6222D572D6A9E +144B3451574E1764D2AD95F8F091B98CB23C3696136B4878C68B81C9B2D4B414 +167EB6A203624DA1318F0DFBF117078FECBD546362038E5C31BCAE042E61D560 +D09DFCF1A22F9F064DA442C5EE7A1CAC3BB19F299B30963F8FBB77D516FE8E15 +8778914789075C085F919C0EE496D505E097588082E92930835CA0AC582147E8 +0FDEFBCD17447172C082437DB7D7FC6C4CFDF2D91DBB25891FEB251E9F5750F5 +C28BC83885060437F7F9810174DCA42261C10B891186C3530E1C35CB7F2A1FDA +E1A44A318665F1F79D21D28A6FBCF5197D6FAAA669BBD276198ADC01683BD7EF +E13FD0F97AD7CC37A3623184103E75D25B4CBEA45A15355DE5D5E2B6EF5EACFB +300C79485BC8D437EB0C9E789E7048EC1C1189BDB201B142AFBCFD2BC7BCCF53 +45779FA6EB1594267C01A5803A3157BF4E8240A46A934224D2A4EB62E407D8B5 +6DAB89D62382174DB13FD2EBF326F15B374910611E8F3B96BCCE9AF5AC80114A +519B765C5CA96DE6AEB002CE3DC6C76AA2067FE59EF458D524B4C85936298846 +A2AF8ED1D176CF387AC9AB9E156BABC5F9EF3160A8C29AF97ED5DF22FA13FB90 +1FEBD6FB5C2E743DA37F119FC7CF58936EBE8021620D3728BA1F832EA7845F6A +86105B51640225CA20248A40A283DE3A6901FB0B294EAE67D6D068E7E914A50D +6F8B677729093FB191532DC20008BD1716154D7558029B7A429D519E44956503 +E302BA8C478B3B5B00A02D08C9B9FD4D024F2DA1F7B3E32B335FFA19A79560DD +B6C1C74B617463C17D2FBC64F5A66AB9CCCEB8572ABC19AB576760AE2DFA8F7A +99BC19B3F6E05164B4A89EC2686292D1C89259016924370C97783CE79ECC5AC6 +277C61375474295238FABE0DDB56F2019FE2B004C9BAA9FB8675030434EFA095 +F39C48F5CD8DC087F362FDAF5E35ABA147FB8A6767576E8C65E1FFE38389A271 +9B69831C5E70E49748E281AF7B6F9A14FF6FD50887B8C3C15EDBBAEF247EAE0C +3B121BA3AEE22636CD752C1BD2D5544475FC7A72F114D0E8CF5D78346F791375 +1A63D24C0CCC6105423FFFB47AFE247077CADD3281FCF792FF1AE55677D7A1AD +85D9D81E71C6A5DC7518350645E36EFA9E0A0EFFD5895748E5AA887CAC4A3AD6 +F403D284C28F076BC842A00BCC22C13AAB8E1907A897372BAB7E3B1F7F1E2E67 +39F8AF6B751823643CDDF09E326584C749A6F832BDA64325E9B9242DDD76BEA6 +5E35720BB6CD67E0CFE2DDB649459900FEF0C72A1884F7AB8C5AE13B268D4FB9 +9364EBE6C2FCA87310948C882DC97784AF7046D1BBBF70CDDD9BEB562C93EA04 +44C5FBEA5C5D8CFC1CA51320D9CBA2D872CDAE22A78CE4688AD53D5C6534CFB0 +35317629B82C4E3DE43E209211F53BE4DFB90C92F32A20A8E54E8540125781D8 +8A28B247B9509B49006F211C9500C6E020D9BABDB3F0717F724EBCEB8401C07E +86857CAB7FA4E8A6F769DEF5CAFF5386F28CE6A93812270BE60AB1AF6E9A23B3 +0AA804032F4B20911848D42C35D855EB5CCC0A5C0A17200F2933BA8AAF33DA76 +917FA412570C1C00E146BF497D892A3019FD0B346067FE7D9EBBFFD47F19A7F5 +F33F5B8FACA25CE9DF3ACD0D639C52FF3F55B7D5DE7B6799A73C25FA1FB6C487 +E735101EC14FE1F1D37918B8460F12C9EDEB00B777B8013F592BC42FD1685B79 +0FA3E8964C6926DC5A3428CC30D42D9AD716947F03ACCD2F65A92F7367AAE243 +DF4A14A0D8E8CC8D7D80977975AD5D15A2D85322E53D141A9AF7980C3357EDD5 +A0CC691F6C0A045ABB09F375E000964017311FDB6EAE0C18E558504E4A07ED2F +4B7B931BC5CC86EEA408B0D6C8341A77AA63F1069E55DC884E6651CE969D6D03 +35072C583F4CED1D491B7C78CEDBBBBA11F22965E098C9AE0E23C78407E9FE56 +B86E4FFDC73BE28CE2AB3C08241CA420A8720523B7B13C97E2AD96B31E2F1507 +04ECF026A0401EB3B655EF177DB7CB65F39E3D18A8EA44B9C07BBAF877B30E4B +EBDB9D8CE1925C5ADB75E85EFAA52C7F73422E0D279B0B2586BCD0E53BC4CDF1 +345E66F756AF22881A95F7197A423420124BBD38B4DE8FACE16E4F3139E5AB1D +F99BC585E0B9EFBA84ED5B08FAD1037FF8B1B3ED1C19BB3DD88F2462742C359E +4ACE532506EE2BA70AE7188E3D7B560B3B9D4EE3654376898C87C7E4D1382D9B +6A36F1D10F21446FEE2582B00C8E32A6C6B48628323ACC81D49BE0D1BF216BF8 +3199F683A7B60A5EFCD223403F114126C4080A9EA87EB10084EBD2B194A688BB +D0272A606770B686734EA64FD18E695164F6385C7E406F02F622309080193F05 +3C74D73A8E58555D1505F8A5989CACE77355894A0C9829AD42DCB4D6C07CD35D +CE451DE1916998DFA8E474BBBA7A728A1503BB5BBE4B4E0E46B66DD5F003F41F +6F766EEF7ABD80C483AC294BE93700D8F9C2AAFD4CB0EE31D18E6DC9E4D8AED0 +77B7C65202C4D14F0A78F070A8965451C145BA5A81650487AACE91947240FA1D +F7F86D71C40C76BFED93F27DD541EF12191995C5E4391BFDC153BA9D8693E1A1 +DFB543794EDFA54C39DE9AC6667CF9DC05E8DC8A5A6671D9054E729E9E860924 +A265EFBF42519D49212ED4AC62791A10F2E31C27533241EDEFE3C4907ACB9578 +7D8B9F285CE247109D577738F9FC6035086FA91A71BC6FF067FB6AC9AA51579F +BAD056A7255DF5392138BCA35FCAF904A32ADC60D497430D4AB70F648DE47758 +902657530D0B9DFC65D76CB6CC1113BFCEB05090B0C4464124F617C82EBD4CBB +CF5526316A07943099DFAA0C69777DE95982977484596B845AB7F73222F1B8D4 +55B66C0243E04483FB5ADC4A2B2BBF90277F5B516D1CAB1DF7966D1799598209 +ADC85BBCD64A26685F8275C0F16B17454E8C10E07F708112358ABEC038DABF65 +D444BD74AA507FF7F9CF48383D0190F5FDE16A602581E3DA32062672AA141F8B +BF3B6183F850544564EA6234990967C6BB18502BC4D3B1BA4378DDC8B3BD0855 +28427D0E04ABDC5E4397908AC15C7EA5586E6831C8882C8FE7DFFE05EE7DDFB3 +ADB8B5E8F9EF384DECFC5D997F639FDB723D28B11AE6E33B624330581C071C97 +86F352BF5187BCC9DA7B775DE836C48FD19998FD7D97F4373D58F8F97D69D215 +CD3DE93D9FB08D44CE8EEDFE176613B7A03E64B5C661B2CEC2A64789CBE3AF30 +E925FEA03D4A5B88BB8235C82E86460193D120A349866900BB7639F701262F98 +D87FE0837E4D27DF0DA57FCA9174CFCD05BD0D0B83D7F3606CEEFC7E8BB4C062 +929E06FA79F5DE42A3EF15F5FBE6AA316E8EBECB53D0AAB9F58CB17A7528F331 +145A445DEACF06E5AD5BBB1C7675C6462AC8C692CF332F272FB0213FA7E7BA15 +6A5296BFD1C54FA965FF860499121CBE9F91DF3062EDF00C1E712DAEC2FE655D +807F34660250CF8727D96162594995C98DF7617CBDA72F20A02B2F46DDFDBEF6 +BCE98A18EF9BD73F4DCD52D86226615AE84FCCDC8BC99D20D9FB5F38309740FF +DCDCE5DCEE19CC3B544A0D9715601BAFB3C5FA97F04D2FF33BC32A39FCA0CC5F +EEE940B2B3A051ABC2F1B1F5A06D4937327DACA31AF3938D45DB8C985EB2F7B3 +74F8ECFE340E2CFC43F2FAC0016FE4D576B552D264EC1C34CE88E4DFD21EB8DA +11CE9F13E33C9AAF1085ABBE0E56EC907D544D1C547B335D490A83B6DA8912F7 +FDC035C94C9D13FD8B8F72EC9963D2B348ED3D952BC6CCD1956100EC319FF293 +FFB3C8EA021836B2F70003FFD9E36445687A00DC0C0037174DE62BE8E8EB3162 +EEB73304E71641F81EA9EF1F5021A8D91FE539E46BACFF54CE0C174079A89AC7 +C9AF7B23C31412818D52B8510F3338CFDB4397C73E36882233CD2E405D1E7726 +2F5571A0031E611885D90D55DFEA938FC48B80DEA2A002272DCE9C009D8ED465 +1B19E06D88C1A5A3B16B67F705135F71C227923610BDE0D702DB4B1FA4FA7D5F +CFEA69EF27C2B5EE0AE87DE79BE17ACE7997D6480CE050F33F75F0D359730D3F +634364ECEFCBED59FCD1A18CCD3D24FF93AD78D90C329B1BDD98BDF4FA7FF2E3 +78577831BE0CEADF6130152B13A1AACCC033030E3D57ADB8590EFCA3F0D52FFF +43E2A58CF6CB5F8B72D62632557367A0922654BDD6D7668B8B87EA7EC6771ED5 +53AB6B7E6BB3296202D2D702FCA9276DB63577282CDE59B22957EF323C03844C +EE1C10C63BC41DF87BF24F8C9515C0B2AD99C194DD2D043941946011DE689325 +BBA63C58E3BB48F3B16CE4DC93AC698143C98BFA66CB4840E53E1661F2006873 +D76385841E1701AE6C47C580565CCE4E9BD43FFB3A4DDFEC901FAE3187E49C61 +DF11DFE186097A51E6EA26BAD9D2AB4A0AC344871C57F798336FD19D6162932C +DA49AADAE3A6494E41F1C2FD28165511C55A2365AA7CDDA9BABA155F4D52A6CC +148CBFF09106E480284FC5E9FBBD4AB9EE52049C0292CFD98FEA54AE7952BA21 +905B56C23E50622198DAB78D886CACC636A4822210AB53B358A24F2D91877C70 +642843E698AC466A53646CA63CFB80A1ADD8D516553ED0EEA4F63B9337F0FAE8 +2B0BDC6A681AE55AC4ED56904670804251FC15ADBBCFF846224DF0825E7F9483 +6B615611C797F4E035EF2F728428309C4AA5D50B30A98DDFE0B90A78DA9F46F1 +7AEDD173C170587DBD1EBE06A6CCD4348759471008BB9B09110B9E0A30BB6350 +5081AFA183DDF5D25A42318719914DD9F5C38AF94FDD849D22138D1A9F26ED4D +B9782D28D25986ACEFA2656EE7425728DDF9503F8064D658B20AFA5EEB60C0A1 +2283A87315267C2499B6BA6FADDD1912AB337225877423545C8EDEA4C0122C97 +08C2CE92D744E3890CD2042032758AEA4681EAB5791B8F71031BD746BE5DDEFE +2A84E7DFE75D97380611B986939875DE303E107B81E1AC0DCB19A9BAE6F67B49 +B04A11D7A4FAF4C92547D8580D5F661A489DBB9C0C02B4BAC88B63DD1CC202E7 +BBBC0C01CB20B8CEE657B9A9E38F35A0AAAD28C0347424725327F9BB09E91F1A +6D16A44ADDFD096B48DC6A2665A2AAA6E35CF6C517A194275F7E235FE21B7419 +B762EF7A56F6BD785273EC890EDC834C01E4B21BCF14A96AB9131AEA5E45D238 +72E425BA5E5910E1359E4FBC497784CAAD38575D70F707F41A8CD31259C2A20A +467EAF36691D773A350E6A3E56337FD79D4A69DF5386D89FEB81555DE3A3D8C8 +FB6C8A2228EABC98B9D20230B859B42C23D5356D9008B2EEF8500869C6F926AD +43F4DBBB60FA178CC881DDB51074A8F8F79020F880DB554127F3663D9AB3E62D +0B38371E149D73C3F240CE49208CE26C477CDC90E3650030004A1411471A4205 +E24CD87942D19848D2765898A10AE04964EDC4ADA7E1BED5B970E26C4044DCFF +FE2567FFF26101480CC7D9C249BAFF46817C49E81076C46FC32D127EDE804D4B +8BCE9F3D72520F14B8A612D0E899E5CC4C641E688173636FD247AC644B411662 +3BA08587BC5473B38078A312BFB4DF6DB494ACC43825CFADE5719B7D092CBDCE +568C4D3FE2ACCD341F48E23AAF6BAB0095D6D510132C08762C0F2294841591E2 +9C5C1E516BAB78565653C1BC55A6033139397AF3EA1DF3C72F9E32D66235A0C0 +28A9DD29BA1C0A222F0EE3662253DD894944C5FB0166008C5A1909BABF46E859 +DC59157A1B0BE6741A2CB0C35A76D4E04939B35110B78E300A09E54178DACF17 +334C6C47106D0E9783BA75730DFC55269C4A96695EFD3E82BFCC351702F6564C +7652EDB7C02D50D54C3C4E708969AD3627831ABA868E3BCE67B6048643026A4F +1E3DB763CDB284D8410D25CCB520AC07C1469AAC14C87D9BC52030A427551E7A +D4739A5F37E23E870A28A6E9BA533482C7480A8ACF9DD22011731332F0B6DC79 +D86465C538A27A939AA8FDA1A3F0D30FFF1258FBFBC610D01383F612718B058D +2791DDB4863EFA79B4ED60D84C767CA6349A0037C0337526A10E6BD14A0D6B96 +99E7C6AC8D3E2F8036A3A6BC98DED1662D1EB46341E63F2E4E273BF1145E6965 +8460C209D918063589FA2C3930CB960005214A5D2784C6B6045734E95A81EF39 +5B1D833D6989FAF902EE406B61474F85FBB39868A2575C5C9CFD432EBDB6982C +F428972F9DF6A75D1D9834DBF8A1488C3A84A49CBF7440A2E77FA85B78AF7EB4 +29CC968201DF81A2365AEF49A4ABF057C99205B94EA977917A884E2A3A19CE21 +D10DC265B4434122490D3FE316530C82FE8A39C3F59A0EE23FAAE144452184EC +D3799FF4BCCFB38ED297A279738874F58C06506A9D263F45CF825D57983E1CB4 +DDFBEEE8D2A5897FFB6B7BF663C493EE60FD629E2606DE1DCCFA2792482C9AD6 +A6EEAF6560DBCA665F4CA4AA843FF6D02D5C72E5E5ABFEC5584D5FF19D66439F +A4931F985E3CA6643706E6B19BDF611EE2BA3E50923E2BE6CBFD5BB30682E031 +3C3CF9A788C11F2DA441A69324A8BBBB9BC838B69F3053BED49FC97F0DD0200A +7051B322CE54B77533275A21E3BF605D930D3765309699E6D931009BAF642F44 +BF2EB62DA438DBDC891B3C3A1E28843EA76174A0A2E78DF2F0AA7DA283204F92 +AD93A75FD1EC056D9F19F7E99ECAE4E4A7DD77F520A07833BF3582A4B7BEC0FC +038C3A8CDF3A09931CB64FE8572926A04DC33B3233752D22AF1A35863A604E30 +1E93286A5B5958845F4EFC52F6913AF78A63F649B5B6EEDC66AA11AE8CC5B955 +321D0E758D855EABD38CF9B4611A7417197BB226CB297539EA996CEBC1E48C69 +D135789276582355C5B0BC1D00C1395B21A128CB8928BDC4A661F4E529BA4500 +9DD1B2E995CAC781E3914CF66BAD4D9533809E3C71B2F3C73217FEE663A426D3 +43A12D0B7A7B91AD36BB61735BD347654870915132116909C471E353FF73CA7F +BC938E54213B041D01E304432647A4714064FDEDDF32A6365D48276B0535E45F +852FDB3E23505F54DEB38AD214B1F9ABB6E72A9B338F484F9B4E24CC06EE8A2B +7B869C21E3541915EB8CE1D2347204DDCBF8E344BD7D5949D5009BD09642CE94 +1C4AED772A3EC2F29B5F1ABE10C8C43AC98F943AADF7A369954F8F808569D8A6 +51F0BE750E11E6856D34A6E996536991A69FC46CB472F3C0B4DCF170FD3BD7F7 +E1189634C0E640789C1F9BA00C7DAC353A1864D62BC289FBDBD5CF1E0EC33E15 +4B81FA07AE63D969F10A7F36C062D3CACCF9EF553D9442D6CEA64F7E6AE629F5 +784C710D42EDAA206EAAD9A170672E88FE1F87794880E05DC122D8A845CEF486 +50A6F4A150B2517C55A450F54A7F260CA53B231A37860DAB56D7E024428FFCDE +A387759B164C9059B45D2F812C77EF70AFC9931549D0173DAA1EFC4C522C2DAA +123822B1D0C93AC31B15BF9204A1CE551C924024B754A1E65DB1CA16002023CE +CC863AA533A9BA2AD137E753FCA1F1AE26A42F539E3F4759804D7CDAC0D2906E +F81612C70AA2C4CF6ECA4919E3D3F6EE8920892B9F10E038E3315B40349872F8 +988F5BD0DA8F9533567D8BA06220B4F0BE6A01561C769ABADB4B8788180DD829 +5ED3CD5FD887B7F90BA25CDA41269AE049EDB0831E180C386C930510627B83F8 +BEEF8BA9C79B5E030355F16BBD2E0CF5AD28929C424839F8B062423880CF9C63 +81D3ED5CA75630307FEE9A4DF5D2F657AAE2D8DD68C803D4747CFC82DEAF43AA +98DCE325856191A21AB8A2BE76D12C9E11975D9A9931EA129A1F7DC726F415EC +37EDB9225A803468FC3B4C4B26B98680B2047DAFB1E79CA0A42CF0B23F02D573 +E7F7B60BD2F2BAE6C0794461E5901EEA70248F53AC82FC0EA0B52CFCEAC72053 +1985F132C2EFC78DA727E46D7DF71987A8C3561626A877C0B35BA2F88B9889D8 +B69274259A1CEBC064E420A3A915FFA98DD3373E7ED568867C4806C45B619C68 +448AC7DD9977435652A1A149D2B58FC74758AAF85E69CC6AFA0E912AADAF1D40 +12A2E5C79DF222D088688B85427FA79C35DF18D0B3AA04C85C936C454EB8A88A +16C2073EABCDBC446B795C411C1FD86E8802FAAA264F19C450DAB7522A9FA843 +270FA6ABFF4D09BF265B12A21BC2527F00F25BB5788D7B904D3FAA3653761D95 +D7A72E6947D20ED0F13C61F41270F00B79521D7EB495E8EB4F75575B4D4AA371 +7C8E2BD76F6357B6134A609FF8DD9F5488815D0002203CAABB680D900AF0C5CF +5E714A083BDA7BEBBFD8B8EA686CED562340642310981EC6D3A3AE4C7B0F7ED7 +B7AA1D901181EC0FD00182D60235B6F3E741BEB2066568E1CB28FA561C5F0AE8 +193B70478BEDCD1D956B897010EE4D58021FBDC28B0A65AC4B6FD9B547C0CCDA +DBC9AEF5C76DB573595915BF21FE6138F86B6A2154705D3801B1623DDBAE7C69 +87F94795D8EB4F156F3A8E74947C2CA10E2531F45AD3D92CE2B9301CFCAED483 +B98A3D487A42D2FC6C20194A516BDF5A79CABDE7FC0B43FD30FF5183CD418E23 +D76E24559B785F370A3B52B0BA8AEA8DCDE547787A33FD3A9D11047F38A17466 +3C51B962B1A21B16C129D33B0BD510D9A9B0A3560D5E05CAE26AB9507EA5F240 +5B28E67F7DF457B07741DAF86A3910757681A295CF79CD7CFCEBF7E54896FFC5 +8F000206D6B34843B6E1DCD4FFB655CA88BCD71AFDD81F93AE47A18E7EE46C39 +AE495E1A4B96A49257CD49351CFBA87AC5C07F754EC324EAA22BD993306E5BE3 +71A3757ECA6BC50DBB19D6352BC3500F9BC8F396BDE041E9C2C9178D6A586E09 +99E912781B08504705FFD74C1379CF1B7EF91C5F276CA3B2F1B959968BE102BF +E0DED84696FE54DF4125DFC6A08BAC40559EA37B4742E3AADD69FF9CE23F7258 +2E96696DED2A96E7279730D979D9D0BC0447BF6D8ED7B28689ABAE41DB85BA87 +FD89052E007796CDAAEE68586AD7DD684F5C26A25BBD93885AB8F57C8452F8F8 +2D8EA8AA686ACA446508C1BDEED691A69164BDDFDDFAB594435EDBD53FDCA96E +52466F8C71AB416021F197F7389B07143971295E549E3EC9BCB7CA7EA483DD01 +96A0447EC5D41B450D240A9CA0D3282211130A7E0D089965EBB8702CADB66370 +DCCBA6605E6199066CA8074F67089A297D094EDA663B6844912DAE5E46D0D4B9 +D66AEF008C464E17976560969FEDB7C729A4356A904344C59CFDEA53B40F8BA2 +F04AC0653A6856D283950280DCBDDF0DB68B9922EE7FC294526F7B0DE95D20FC +868746DFEAFAC90756FDB913FE4F1DFF767CD5662E30B227CC9BE60FCDCBAA8C +16797EE092010478E04233581F032A1D67F9D5E6A10F7AB4513B65F5D479BA15 +312201D0C6E92B0D50960C92D46B67B2E844D55015DDE98B05B43423CC9BF2C1 +F863D6E8CC32E6E3DB8216D5747DA2E70843800FADAFC3C5DD08675EB6CBD369 +454E2854044DD402F81B40CE854F18D533BA962CF0D62CFF5DB98952369C9343 +FB4FCF95EEEFD79E6185EF0ABFA8C68EBAAFD4BDE1049F97497C004E29B02021 +0F0DAB7DC823DB7A8924D711F9ADE4FF0BDFE1D7FB76780446E1DA9838EC6993 +A14E936AC09B2DD9FE0310C22999154E9FCE8DC2FB1438CD75C78C45FC24B7D3 +C75BFD9ADA6502AD09A90EF353FC5616C03B436D5A1FC14C15842E301D5A60D4 +D10B57B35D9FD7F2435A0AA4E24F4AE2BCC7C9B8D6786D5295A87AF8FF891F13 +2563C5795372932A0D8BDADE96194E422A319195712CC88A71CC5F8239BCE926 +B541E94E860161B17233FD2A31F3004CB2BE6B735E1BD7E27416EEAC4109A218 +BF84D733352B6906306C26C88E3C8B6A3AA2E91C3B5E4ABEEE887F21E866407D +BBE66843FBA8DABD33DC007F7D7A317381E6970D98CF0B76753F9616B85F447A +0B3E277EEDB9A309722034575E512980D1771586B87D6DA1FC86E9738DFAE1B3 +383D91425A7B753B40CB8CD0FDCDBA85B994BEF6952A6EBD9F3EC99099B03437 +DB44C3C3320C225F67FDB43D8175BC9692681EE0635420E5A0BBF76B72E9E7C4 +A74490A9BDAC3926FA2338764D96007A36DB2ADC140892E291B4B3A45F3D27F4 +0E7DD6647DA78825173DB5E3FBC28ABD990717820DFFA69DF2BF287EF548F80B +592C0257D12472A5E3C654798D3BEF8E61B2B4113A36F52F15EE3592F4BB12D5 +4365D531FBCA14C2A792A35F553BB76B1398A210945A9B4A7A09EF512D99C6F3 +54D0E9A86D83472732218D1742853FDE4A679393277F99BBE493EC9D38290BD3 +5C1B3C179CF6EC71499650236CBA9FE46921DA1DC5F74F6AA9C8F6F2DD45690B +5B0FF0023CE861A32439164CB5FFAE54A3622FE34ACBA24197D2BB66893329C5 +6E691A9A126E0E3083556F9D8922AA9226F96DFD9069171E1892F9D328A8DE37 +67BCDEF890B1601B0C0D6E98F8CFB309413F311912EDAC686E17C2AB141E34BD +F98D2F1140809C62C1344B237D9E4535006F60ACD93A2B3E1DDDB4C7AB7700ED +4E8F67C1F3898B65E875806C343DE4EF9A3B6CF89D85A1ED4F9E5D8A51036AE1 +3D6CC1CB50641994D66861A5CABF8EF228541FA3087919EF47E15ADD0AF6048B +FDBC9F08256FF647BB3F732D6B899868475F25812DF543060C7C4F7499769978 +12F15D1FDA2CAA26763C4ABA291D0BDC420B68BFBA83E7B0594232B716ADABFB +D0663171516125EA6AB5950F18C4005402D0D324132173CFC8CE646E69EBAFC9 +B736506180F23EFB814FEC93D7A336FC65C82B707E31823F49B4F773A6095828 +C49EAE7982BB5AF91F8BDE037A434B7888658F86141AA4CA16BBE299176C5D1B +21EC50FE4E8C160212E26BE75D7BE7F10811061DA758CB529B82F9EBEEE90F03 +5C9994922ADA3002447B10270977F87A3B1CC2241A21AF8BA9EF663BEB75F418 +843A8B44E7CEDD2C166D1D10078BEE66350DC99FD90A2D8BFCC6C2A1FFBED8D4 +5826E4B044FE7411DF55213622D92F13FA0606C8C3FB8452C1C240BDB67D858C +DA68FCA7746F76FA6576D4638985FDED88A10AA22678A07B626B44FEB564D8C0 +CCF74949F7A192485A178112E7CEED0035D35640CC9635C38F3EE823C8F11983 +47B56763D53BA55881776CB218A38B2198D438E53A65BFC4BA3524F86B6A5596 +646F58F3DC05CFD8337D8433D3210D5CF22842DD700E86B87195588C6FC34FA4 +7112E16492E9A8BE55CF7FF5036ED5DA8779B45E115EF19BE9453B0102B10F9C +B9EDE16645571C0B1649B467E556DEE119A12232BBBE15A95D6236579D05CA2D +C3FFCE0FD59BF42A8AD6DCEC9597D600E0CD59AC559AE4577692959938B30FB0 +CECAA03C4CE96D126B1CDED0D2DDBFC8FD4863B65EA555AFBEA1AD2541A62D46 +B9817845BE843751F2C7B7A907AB8FE9C33A83FB3B4EA1AD7D26B45AFD5D98F5 +C88DA2B918E2BE3437FD088B35087DC6BC68F6FF039FC23AD2289D8AC24AAE69 +08A4137B5F2BECB443428631564777E38B06695C0FC1FEDAFAA6343E73B2AC76 +3055E0B98A2314C0B016AEE6F5DC847A02D58782D758003401D4F0D9E6A54CA4 +8BAB007E39666EBC0EC0813D5143A6D378BE19EBF949407910D6365DAECDC088 +19F74CF45F65A391E40720FC74E63CE014F5C7F0B3E29C11BC3165F00072E60C +930F7264F6FAF3EC1484154DCB75B49972C5C7D807DB8DD098E08DF10BF37621 +F5504D71B6E4219BD64B430737F2D903E79398AD969B7D52E193D6C07804A54E +BED094EAC4BE53FA336CF9D50AEF82393828E42A6C5E6E5E74ABA666B52BDC76 +64601AB56106801423BC9D4025794FECFAC0225D40F0E4B7276EE88A25E7B2E5 +2F130FD291E55AF98D844BBCE04F75A037B5F4E76B7397FE177427FD5DCED71A +1352FE4B3D7F02B939BA0ECFBCA4FF076E52813EAAF3397BB03C6C8F1102911D +9CAA879B0C755437936B829F3A7912F205474BC31F5EE2FD01D0219AD3B37D28 +E4187BFC5A51A91EE35D886197E395C7E45FD676496C3AD47602110149D452BD +E9AF45F2BD15153282DD38E2058D0478876BB19D67D9DD00FEDE5F1E5FD66DC8 +5A2A020058A74BDE229B07EDE638F8E69818F0BB1FA356F1E8C4D4F2A988DCD5 +D5A2C904A11E8D97C90E25600EB904E3435A69CAD347A3317A5AA33BBB926593 +B6834419D69FC13F6B28 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndFont +%%BeginFont: SFSX2488 +%!FontType1-1.0: SFSX2488 0.3 +%%CreationDate: Wed Sep 12 2001 +% Copyright (c) 2001 Vladimir Volovich . +% See the file COPYING (GNU General Public License) for license conditions. +% Converted from METAFONT EC/TC and LH fonts: +% ecsx2488, tcsx2488, lasx2488, lbsx2488, lcsx2488, rxsx2488. +11 dict begin +/FontInfo 6 dict dup begin +/version (0.3) def +/FullName (Computer Modern Sans Serif Bold Extended) def +/FamilyName (Computer Modern) def +/ItalicAngle 0 def +/isFixedPitch false def +/Weight (Bold) def +end readonly def +/FontName /SFSX2488 def +/Encoding StandardEncoding def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] def +/FontBBox{-234 -317 1747 888}readonly def +currentdict end +currentfile eexec +D9D66F633B846A97B686A97E45A3D0AA052BD0CE60552BD63101D7CDBEEF5B11 +69C468645FE4ED1AF2541AA0770C1DCF81623DE0ECDF49F2B522618F650CE6CB +CC8C21885DD61AF8A523AA677EAEDDFA51A1F9B1885EEE0456196D634E04EF89 +F17499DAD982502ACC349B9EEAAE4A71A73D1147318C60A8BAC10510DE90D8D3 +F46E47295D27129A5AFE0C65E22BAD10D06885A2EE623FF8E1D90287A083E00C +EF25195F68A2A98170E4875AA30E93C19889DD13D93BACBC65622E7EB9902A97 +AFC063E59F1F98D2522DAEEAAD83FEBFC1F9021C7A3FE5481B4309EF7C59353A +C66DB06E43F6389BAA3C569AD58E14DDA4D0AF8689155ABF1888E7ED871F5372 +E4ADBB949D7EB2DD8C37897C94AF59D1E8B28D618D84E4CF11E8793E88C7853E +678B0296C0D0EF23EE0732030FB15CAA797CE9886570A070346FE5976A9C49BE +DDD47C1E38F6229007FEAA7E13A47AA51A253C67EAFC16F7A303E7FFA123876C +E1D89FB17850E071ACAEB12D5AC174864DE3E91209331DC849CEA3ED6A6B6B39 +918D8F8463DC5FBB89BCAC0095153EB449FA3C4D57759C703A3ACA38408706B6 +5C3542228C0BC6DA6904835C1B8365A1431EA4515F43B6C816776FDC25D4998A +318C054A9A1A63474A5B79487BCD549D5EAA47AABAF792919A9D126B5AAE71F3 +8BAE7B89D134C37970D5B3F43D736D54704B984A2302D1FCC88482126B1A1DDD +0122E887A93A85C87B396AF754B9EF343759BA930221B518DC1F6B4596BDA918 +8F9303CC6363830445464A826F60871CB5F9B18745CBB5A8CBC09CA9963E5D09 +C8068B193A2CD7C9D26EFAC9E1DD46D7C309B3765757875CFD8C286E879D9028 +A8FA013C0EB5775664BA314CB75324E28FF57469BB8EA0FF9B4557EE5D9F2A9B +20DFAD3EC7BC90A7972DFBA2384616C0AF12F17DFCD18480D2F98B801D2AFFE3 +BA22D2FDF6C7D6F4524D70657873F1EB737779BC171E38811CF293D5D7FCC28C +44F6F25A07BC70130D95434E4075CF3985E01C4D4A60AE5543F78021362ED300 +D2FA7A60B4F30B4D7F94F4E8851CD927C5A99425AD8B6FD1851C4DC09370828E +680D1AD07D3EF05A63950D1B9DB8A6631974ABA413D23810612C0982882FBBF7 +4F876028A3D4EE0144CF74D866C8428FA690CDA384013A936A061ACBB08CBCEF +37982C0B172EF398AE19A7D029E70F1D17FE5B3232F360DE31BC26F05FD9DFDF +05F75832342BA4F4C57BDFE6BD073F2376E62BB55C9DB2519815C98E40C0BFEC +4751CAAF475187DEA3D7081051BE1AA7278BF38D12D6B591F1A55F00F892C767 +894C021B4C4B48F8C84B608B7826A5D0246B5328690BBCE0DCAD715D1C06273B +79FBD2B4736E2BAF092DF5E88D51C674C81B678D6263B8466D27EE48359C00C3 +72BD394EEC35FE44A402E06902887B4732C7BBD1A0B7301A83488025D9A87F48 +5E0C8433097E65D13F6BB15B45EE9FA75E292D9AD865D3E5BCBAF2BED6B4EC91 +B8324774679E9C6D454C810F647398EE737D274BA7163BC5BBF4AC556E4644E6 +6661622471C2DE17840410D6E0CE7863428422EFDDAC545FDE0BFB5EBD8F2469 +9F23212FAE9A22CC60739504BDCB140E3F6DE01DA1C4DF97A1B435BC1AE23B20 +461CB3CF6AF9981C72DDA4E05B38314F6AAA11C7256B7E15B045E7F109890F4D +F338C21B23FA9AEB505F4184C56318C3775036012CDF509B2CF760AB25808E9C +A43285E0966E082184D9AFCAECE41E6AC2727D6F2C32C04C8D597F6C89318C95 +575AD22D36C09D3484710193D79B9B3EACA8BC91157F74B14FF20415743D0DF6 +AD46603D441C792E662C2CC8D20E7B2FEC571CCD3484616D65793FD92173A54E +93A240DFDECE3F75D7B6653DA44C4875F78E11BDA3AAE0199F32CDC9E5492F17 +615E9FA31A9E626093C72EB9CC2F5DA0FE3327CC71F9D632A9E06A5372F18790 +84AD336256259A858F706B6AA311D5E9443B560628D445A8D20F19EDC34B5E6B +B1572F82E20837D90EE0F77297F12D702635CF53344B8737035313A4DECF1BCA +60F05D9235F8A8F736C91556BCAD438708382B1D24B72488A4E940260665A456 +3EC6DA1F5C27F49F76CA344D0BC471F8D754B382C829EC6A4D68FDEDD8872948 +F79D51584470370083858C1BC243F451CC78F25D7C50AAE21599E7945E6D9BBB +8EBA6FC48DFE516E8A8ECF92737E9866B5A96EFAF64128846625715FD9F7C696 +B1640F39199575691E9CE5D30FD8B30DD02E62A1BF81487C4ABCB03C2791F3A8 +045DC239D4F2792830D0DD6DF169E43AE197A2535595C9DC178E9CCABB25C289 +7159B87DF03E21B46096A7B43CCC37D57268BA44259D932FE11F4A2535E72E07 +C6A26E593FD039A07A197CA411B133F0B99A05EBF83051F71C275332414CD1FF +CE861D48CFA30B00F20FE3D7C3C6CB197D83C3C70DDAA0A2642D2E196FE1DD85 +6BC43FDCB81A9D4F6018A18C7B78DCCC081319918A78EC3E569E5368538FA44F +16FF9240F48144874F19A0B7287A44967279B8B5AAE1D82AA6BDC087DD39AD91 +D8C8E7EF55FA76578739B8A3086A1CD64A2D080E00960473DD6D25C68AB8F0D9 +B0B4E067010F61D39403AAFDF0A13E3EC32FA9DBC6686F1539DCC1B27E139CE1 +DA5D9ABF62644B5D90E23DE7A67F96E610AB2E735BA99883C04E8D7020079378 +1FCC78A2102C26D2E3DC0DD2F3FF5C4B8960F70250E19FFC8F6D6C005EACE2A7 +A366954D63F5634D4D446F83297FAA9EAF14BFEDBC0423C0C477112C38AC578B +18E74D5010380D740F2AD1C9E5F430B07C172B74B834CA03400799772D58532F +55258B36AA134B12B7350E4223F958265E3A4F4E957322B9034E4AE6119641B1 +D9932E97B8CAB5E512572D7D0891B23533D2176F453BC19DB8F1AED575F353B3 +9475B36FF6FAC7FD66141D825F45C1149412874D8511BD47543E22BADD90F857 +3444EDCAD0114140E52B7E153C354CFA58B75B99C856D4D9849DA945F7660FD9 +E2444CEE8D8229B93E8A597F177401E8C7CB41D1A679F924EF7DF11C0FB29AFB +A96C705BB50ACEFCE078C19369F0F95093CF209BD8B60144E7F1BCF951C48684 +A36660808500825AA23D630C2D9D32E2C793193AEE3A19BA91063421988EA0A6 +20D48B9B1CFF5F6AA060CEA042816BA7B69C0E7A1655BDE9B3FFAA2C575D1C03 +B6C95A6B3BBF90DDD65A0C14170CC7B136CD618D8723910BE458B43A3D1C2B9E +EF2A3B3FCFC5F810414634BCF507E7AC527C1447CAE7EA802421E5DC01B8DEA5 +02770D168EAF28C337D45762A088176DCD3A315E523BCB2EBA36143280C65FB8 +541FC81D6B9BDF74EF6E320AB25C8D75EBCCAAAD0D1FC5818F220B2C713BA3B6 +11ACA1743E051A5CD3E1C80121D077C8403A2403F0F14375305720D29A145191 +2F4A74DFEAEE232B1F2D551B141D9CCFC489CCB689374652DD390A384EAD190C +B950D0E91ED2B5A8DE55BCC9E99C2E7C903AE04590721063093FB20C4D06138F +69A4772B854BA0F29B03EE1486CE8422288404C4668F6F87438C6745F282F7CA +2D3A11102B9C65136126E8C09337B7A6EF3671320A7F252FCB0FDCE8C6A0CC44 +D808138ED0DF342EEA443F7FC8B838BC0D230C40972E6D8847FEBBEB43FF7C73 +AFBD42B9952FB62006DECA4E42FD1722C8EE566FFB041CA181B2EA2D5BAF387F +E861DA45FE0335B6EF780BD59AF906D603AB47E17888FC2C1C9A3DFA6C31BFB1 +D57BE26AE57A5419F1C253ADC20659B5F92CBD85C145C3D259FA1FBEA0F6A00C +43DEF3A7DEDDCCF18B706A4D430ADB1F798605E4D9E9ADBB1A31FD0E4001AE32 +BFF67377D94F8803BCAE80EC59434C7F4C0B854F7DD668D66870BEA874628E0A +4FA065C0B2CD0DC51765A2B65BDB76F36083F7FDA217DF1D4ACED4B89D520E9A +556DA239A35712BE7FB1CC3D71B51D4817037ED658A684EA21E5D7E5EE2FF39F +C53A2E53B10E2384825C5AD86E71DC698A264E12933D2FD3C6966D12CDFBFB9E +F2E73CD8A742E6FFA12DAA8E14EC892378DD9EF71EFD8625FC998752DA9D6055 +50F4F7A1482EE312B5F73CDC4331AB0C01ED5F1E3749CBD6AEBB0DFB80852117 +5C60CCD762F1ABF747549F6FAA26FA10E1018F18C8F005173602E03A07034BCC +C33741B39B57816991B24E6581F74FE0DFC963C150593EC6B655303FE43DE369 +C48C9E8980221C4A19FA7CC1FA84F0D42E7A93B3471ADD65E46C11ECDBD527C4 +6914D29D51438B5F4CF583761FC3F7DA2608909B7E4FE4D8D9B185BC68AD5D44 +361B4C2B70956BAED271D32384616393B2378622A7A5D19A2E0AE2331F55F22A +E8C024DDEDD6D7DF33CF3C5807D968B84A7FB100468C4529613CD5DA6628D725 +5CC1CFFD95F8A7D45E5FCB9B24D37C1A468F1EA8A0FB857FA703F2813EFD00C6 +21509B9F1AEC8F6AC22DD822E1A1D0CA9BCE84B9860CBE7E0CD8B2844CCB6110 +EBBBD33AB0C871AB44177E4F68BA74347CDD3AD3DDBEC1AB6374E1E10A9648D3 +38D194D67FB179A172CE41A84F0A02D1BB923F96157C957E2D140CEFA96E559D +73541D0D52394BC6EF1728620A7DEA91A4C2140EC4A3A222556396616E6E5545 +6DEAD95453335FD6703BBC2F3C588C42CC8FC0A8317E7FEE732C4D3004CC32F8 +29B64C360D5E100D1F095275D4E9C6C475E9975FE2FC242B14097CDA9A312363 +4869992569E9AEDBDCEB506E9B93D99B3C45D305C63C25AD831094BC7F0EA888 +CDE806E50A568A8D9E0D617D0651AD3DD3B7CFE41B4359C89C36A60BD4925131 +11286F60DC32825F6C50AE8EE0F548EEBD0BA1A11E393C3A59C005718712C09E +A0A864F3339E0AF4CB954B8D0C08D3D0EA87BD5B92A62CE6BCF095DA482A4DED +969A8F4CC0D8925CB7CBA56FECEF89358AD61D0D5C29D2F118506E1E6C1383C1 +F00ADDF82CC5F283B2DE52A78D34306301489EC247E7888556A5C31F69E93555 +250A462BC20FEF409005A1FED6A1284F2D0E9F00965AC10E2C82352D6C9C9E1F +76617F02A6AA261A691C6304C675685A105757A5998589D7ACF81C3505D4C32B +083901F1E0386ABD238214A2A47DFF9A7F01AF160394A462D766ACA64A7C9473 +72AEA5032FE6682EB3D04B27A736F901F247158CD4849962B184118936B770D9 +01A82428DA343DCA5AE984D208DE293094158F2C092B42A314497D1D267901D9 +C5FD0C0DCA99CA436114846D1036F8F468BBE13DA25AEC236C1FE9964D8819DD +67B489D07D7BF3BA998726FCFA82AC82DEA463341F821DEE8DFFAD0E3F3F3A44 +0601B6A004DEAB37B26010BB2EC1D1392EEE038F1B813F43FA03987F7CCD03D3 +10B15D4F19504541E549FD4C2C122F9A948F50AA47A747E3F7FF9B3FC935C177 +62B43E6F111BBB5B96BF5B21947E77981D0DFA681D3FBE972751AA9F0298E873 +5741DA37E29C076F2F38367DD8008B4E6DF0DCA7EF476FB73EE5A0163435FD0C +8BC9894BB6597DE0BFCDFD63A9D5FFE08D24D1BF1576BC1C26FE5D6B594ADF0F +A37688A4FF913D3F49FFC48A6D27820FEEFBE23328E6C0D35AE05E9ABA7CB89D +7A07C604C930F24EAF36298CF0E839EF29B2394A267351E7CDD7AFAE62062589 +00B6BCC488EA5377941C7D4C1A6F17164EA359F717BC5972BDE2D2BB4E21A9A6 +F8EBF653856055EA905AE045E8814A497ABED1A5A701A394932F679444C284E4 +2F7CAFFF55C00E0300C50721A92E2D981B85DA2E574B04C786ADEA99C57FCAAF +1A9A30E3E80375754D19D2537B2CB7F48287F12F93E3D6B28A4A54B5D2D82022 +FC4BF826BA785359F8C49C0B327AFEF4A2B222301FD7280B65F7F174EBDE90D1 +EDA458062AE89906098D9022F88C9ACD568DB86671E256B5412A5875ED54F352 +D66D136B8FAE2765F85FE43B5979AF6FA991D7AEBB785A7A71D463E644FEECCC +471318B2BF8178BFB8E2B70EC887C1374E870138E929AA5387CCE091F31AF9C6 +C6654897BB2D9147E5D3B31777A803D8EBB71B61343F7E41674334C47FBFA4D6 +2D6776FB11DDDB271F67E8743EC5C291DC6627D3B68E13F294488ECF22AE7B06 +BAA2E889020D48739B7C57838BF2BC337319AF8937D36D32859900A0632D4438 +24A5278EFC481EA4EB7E70A45490A6B6D9CDBCC867E87A73A7D4F9D7BF781CCD +2694F09A4C0E15B87831062D93A49DE7F5517A86017F680FCA3855552B2743FE +2C17CD43FFA399791020564C9B25C68186CB0B1C4C7D185FCC266788E2DEC93F +DCF70BC0C43B5D49E39A377946AD908DCCB8287E17BBA4F8F78561CD2815A88C +850B47A0DBC2A33039827335F3CC0A99D584C255FBEE470674E962F548EDB716 +962E44EFB348C5A0E024A9C530D75426F2119B7372FBEAB15F5DB32FEB66EA2B +123B0269F5C5E0242A3329AABBC0B6B76D953B78679A23C0BD615BDCBF3B5817 +19201018FE91AFD0B446441E0D4C268C2A4A0EDA65D11E8596CE8CC8967E1AEB +95199A02F8013F1A6410102E99D4FF7FBCFD8F193385123FBD0EAF3788648BF5 +BEBC51DC14B9B755ED7F034F99A7A86D70CF9AF7CC5A01C1AFE4B1CD5ABAD43E +AE696FD1F690C0A0C54E1F59886AC35C27648206F893FCA98B0D6952F979219B +247AD14CFD0DE44D81E73554ADEA67A78F81F67A0BE67D6274F99EED7EF81F7C +3DE36ED0BD0E131BED5D089AAED58B4CB3E9C7C82EE1FE5CD1137485B26BC8C3 +F9F7FB125AC97F952DC8ADB43F91AAAC9FC5E71BDADC1E5ABE8CB479F7A842BA +D05BC87AAD56928C24D1A37A5F58E2475C8B063396975CB0B0493E6294AA9704 +D083667702E4BF06F871DB941811ED3BB8AD43966DEEB308F76B431108241415 +585E304EAD398B3018FE6B4F370F7F61C6FBA0370CB6C241CE33EDC3470AA749 +FA5BE2A8F7D9EBE3F6A5E0BA436BBD25829C3E3AB3EF5B587626A5F1DA34009D +BA58BF45FE30CBF609A6B8F3897472CC01C22DF26AD8619150B09D4EE490149A +800CB4C0EA94256DC29D5786AC356DCB3BB34C9D419A70A0D047FB628B3BBCC0 +32FD49D5AB137C1481609B25CA2786B1B7D49B326860AF2A3526B0E6E6B7159D +038415262A3286810DC4F4FA49C4C3DB48823C8A88AA70289F6627936F5AB519 +714DC28C174D3AF0C9401D348F798A699A8A8EFFC394F1A1FBC56DBE82223FEE +14C3256903B484F4E13A29F907AA15EDE90F17906A065504F5EBE68622562944 +82CF5D93893DF19FD283E1BC19A5F2E35B9B7F1CAE4797DBAAEADA880EED3439 +9C667904EBD9FFCF04B34BBB659382B803A5FBBAAAE5F8E8E2625EEEE8D0D57B +09EF8C6E294C518851DA4CFF3F01E1D7D5770F0A058F9028E625733773720844 +5C7C712CC6F70EA75B8B579C053E17C9021855C7699BF2797616CE321C02B016 +5D0508583D0BD789A67E8C61CC15333BD0DB5AFB480E98105C626219BCFA296A +B82953060686ECEAA9F0C9AE9C5E95CB45F8125886F097CF267AED7964343B5A +9E8CD91DFA03E1F13740BC41AA3DEEA5ED6DE07CF0B1910ED59D59A9C8FE5750 +F35C875DA81AF659291A239C1D5DB5594CF9472D146D82396299495491603E63 +99E851E6312F444E7DD3F9F90AE53D165FE6FECD6D2ECE2FED6218913BBEFA7E +B6F68348EDAA7476A4F5667D78046F961E95494B54C3EF7B3DB6D8290AAC56F4 +B051A7546D7D0F8C91EC8298A7FA7F347962534A0A0D2413B3A7C9F9A905B447 +B5B836D674E0FF4165FE35E1599736DC754BC44144CB7A9543483425DECB077C +A8D8D0B82FBACEC53D60AB1DDA824DFEA1138F01FB4734256737E04B076AD4AC +025D0E116140922BDADDDE35A147F3E9CE7320E28742852664056BD384675ED2 +6F27EDB7D3B8DD91D49A09EE079F45AE936BF7DA3B1F8128ACF24D3BD428B121 +2E435E2282AB5A9A3BB9944C0862A5DB1CE329BD48D1AE088AE29EC812096BE2 +3A16697EB1B3CB2BD027C96D69FA18DB965B9D8C5F424594CCC6E244C61B96A9 +449819E929B93AB90CB9C15859CDC7C181F6C52C63A5696901EFE6AF127E3007 +4DF02C044564F338EE11AA405E0207C7E3274FA9447ACB9B4FA06EEB09BD4A14 +4A142858BD35EED2A4EAFE743D3AF679194570B9AFFCF749D080E7E42BED4E6C +0CFA5AB7EF4EB9428BECC79678680E266A6C70EA68992C4546421454C009B895 +20FED5AFC5F554AC5D22AA6D4B8A5AB31CB7F05A05B8CB892FA3370398915291 +EEF2B93A459608940E7BA8A5223A9170C48232191B2624EFB033A07C37A12F60 +E741D6C7EBDAA1845E4BEA607B52C7980791CF24225D5C8976C11406E630C62B +20570898CE57E94C8E444F592B411FC5F685A8D52C7F2BE0E0237EEC244189F8 +BBE3F05FE0BED47CE47EA5BCFB64288B6AB3D72CB20A8A656B07A3F256A69DFA +A5502AAA0FA2AF035F576A331E3D38ABDE3D963A9F5FE44DC25B26A971B6AC2A +B13D030BAFFC09271852AB2DDAAB218D7098F18ADDDA9E89265FD8D01D1B22B7 +C557E8007B09B95103753BA53A79CEB65DD7F36AEAA979A92F7ADC38D7A95CCA +BC721D46570B72CBBF7E0FBE8CCB7366922152C2792A819F430006B4B1E6EDE3 +0DDD6884F52B311FE4F146274656620B937E2DD0A948E52227F67980C92FC469 +CC030962FB6FC7C2A011B655829DF871F98366F505BFB8BBC469917A6F2A9039 +BB1AF6C0B99E3090036AC25A78E0A69DE64C8257C7F0E2EB4681A944FF1D0307 +67ADFEE9ED0305A99AAD168E9D4B070475D1761C26A48ED933C96BAFD8D4B247 +6BD89BE20D3890376557A8A623848718D0DF45F19FBA00895D87D97CD1146ABF +250917491FD16DB6B31C599B4B14E8BBDE7FC6E8585265ADC8CE1649295C0EDC +EA4F6B3CF63A79A37EC8F5AC94DD6EDA23003C1DC1968ABACBC9A34B2E05BF05 +C5DB8C916D3011D02CE45BF5E62E6F0100BE881F3D9BD11EB7E577EC66869BDD +29DC1B82FD19C81CDAD3AB1DD6EDDB2FE3BD6A70A09BE3536EE12E019A9D2285 +9D1596BE5850F27832DD1237C5909285BBE7696BE5EB128E9E92D448473BE822 +E3957638F8CFA2E78EC53B2848E0AFB5D74BFF42EDE07663DA70EA33B65248CA +88A192942117F7B043AC68ABC895597A452DA716B05A65B4DEAE9E2253E207EB +3B10F7613C59139ADFF03D73028BEDB6AFC73AE7072D80C54D3C0DBACA149CF0 +B00AFA79E4436C6564C5AA6DEDFEBB6B24D6410B3E0546199EA760C7C036C7F6 +6FB1380354A508F985795BEA6083999D41E547585243A37E9C40B98C34E092CF +209BD8B60144E7F1BCF951C4868F4DA0F256A69DFAA5502AAA0FA2AF035F576E +70F8A368F7267F027B8DA169D9F8F28ADE84C774265393F7661941E01443F4C2 +CDD4D67C312427F462E1B1B4A403B65AB50B2AF1F0D8F36C2AB8D493BCF21492 +7BE98BDB14F2F3EC7FE0BA186FA182F3048CAC9736F504D22684EED191209F04 +68BCEC278DF6D9668434092F51366A9047DA2CBB3D7005220E5131EA5D4BF66C +C45FED1DFC6E866F1C27B04A076BF58F0E203FF06C790940B4A32B0D0DC01576 +87ADFA8C2811471AF79E694CAA2DC543CE420DFF296F8FCB4C69B80B9C6D1A29 +705AC412FB980EC9433AE4A9080A7026E83223783CB35B31D82802C0F05FF22C +E05248DE1C21DAF2A3B21BE1163BEE7A3EDB4317840E9CA6D3D8656B3BCECFA4 +959132D9C34FBD5DD8F79EE2C811AC4CD3CB62D4FB608C55D9967910918C762B +DAE4D208B014C64738266F0005BB25C144079A9E06D1DBA4AF77BC1C6A126A6C +76BB597D1EAEAA55B5107A5566D32A57E5E229DAFA6A47330C67F4CB36770FDF +7F1358213B1B4DB2B2F16F41E89980EE4C206561F13E472210D9E9EF90013964 +69AA031FBBC18627297EE080267A8A5BF588633A9E4DB638AB93729A8B67AC84 +4D6BA348F1B580D6B8AB79495771ACBF4B6D9773D0F79297EC0B12990194A6B8 +8C5998F9F20B901936014F57BD2707948B506D9E519CF4B3EDE652E63E44EE5E +F03C87DD1B5400FBD250569E78C70C5EAA1DBC6A3B0E5D4E70C3A272CD5DFF38 +A45647D51A40C01C954051D5C7593D6546A9D962C3D68120C9705DD8F660F188 +0F19FE0EEEAC872F1A689BEF2A7BB645F8E223D8B46EEECB5F676837ACDE0089 +4CF022CDD8965A3A036A89AA0C3AF728A6E1C161EB20D1D6F385E5744ACF9F54 +8D5D48797888A818135775127C866FB1D697016FC2B739584F60D9B4AAE7CA68 +87439C38D6E4D95D8F947BD124052878A966B9A20363A5FB5DC7454898C0C5CB +2D5340BE2A1943B8659DD7D7207F8226625AE0F62D929A6C475AB50B0F6064AD +57B9C3D19DDE12A3C90713AD32B28BC389FEC375BBEFE38CBF3DF0552F7F6344 +0935735A1EED4392F8D780F9CB2509B6551EBB9FD01D631C2B635D6C03894692 +2783990E9A997E93C686F989702E43824F27494FA477A36D3113A561FD284C08 +04B7786C2374048A91F2EFD1DC0A89FD795431ADC672C1A1C3B4F65A046927F1 +FB5C8B02FB44809CABDAE34B0421822632DFB732A74067AEE6D29C6F276C5A3E +D6A7969DFE34921F47FBD9E1E3403FAFF41294971E32E3308C07190D57D1C425 +BB6FEC2597D681EB4AC7FC3F2B8825B1988590CFECA2221462479F25B8AEBC63 +3DEBBC68F65BAE827500CCB8A8DEFEF46DF8B41BC85059C38261BB77AFE139E3 +BD1D5ECDDAAC0B7F7C6B08D31C10475F3C339EF9578FBA89B6C81ABFB5DDD866 +09F2518E3E835894E9BC6AB4D041902FED34C7E806AD809738068E7878898C64 +529726A2C612471BC33EB5563CA921B50D54CC075C6C00039806CEFE554DE1FF +A0ACDE9C1D46EEC067CF616E84B62165BF919B7FAE8233B7AAF23EB24FF3851E +250DC3AC6688817E4B62F8C1D93B4F9ECFC14B5F3F44C330CF2FA9DBC6686F15 +39DCC1B27E139CE34FA8E7CBE98E2E7CD0A51BD638BC0C253BC1B4DD2931F830 +BF30A160C90B12E10F8AEF078D737650D73C050BFABA8C25ECCF81EE5F06F9BF +790EA9B56459BEE6955D3E4F0610DCB9EDCF8EBBE083F8A9CA4FE72E6FD72E0C +DE22C6BF6EC519ADBED96E0CEC2885EE9595CCEE99D0F1E85111990750232C1A +0F2C81359299D326F98270AB9DCC4117D6ED7C7EAE33C2D9039CC3ACDB83FB1E +D6242E2A4647D72FCD0C2677DAF9AB2831BB1D14F3353E3508B0126AF71DFD8A +BEE45F90A0BF72E56201DD07092CA78B984ADD85C2F1A1CA0C1736DCEB99C69B +E659A826641038F1298F5DB434B7EC51128087D8117F48330A6E72EA317EBBB8 +E813B504773D99A76404B4C54BBC2A6A4ABB63964DE162BD050AD2DE4ED8F785 +3E887FA996944A83934003AE6EC6CD98A11CF25BF9D1CFC7725D52551BAF3D21 +87685FC42C0F3575D98C9CAA8C556012EE5E31D9C4A78B39E67D270BA73C84C8 +B0B3B89FE45AFF6A86C9AF5A6CACC45382A37B570C5A0D315C76D0DAC5234CD2 +C205390622627FCB48BAB355E95EAFD6989386C7DF2A8EDD75890DCD6EC3EB7E +978B7113541C3B84D43689F17D50EB6A9486D0BDB1D3E99FF86030A5F94A2503 +82DCDB836B55F212F19C2A51654DD35C0F7A8403B2CB2AB40AE9F9B35276E98C +22F6D62D48AAC5BF951D56CDCDD2A5F02C09906F674153FB9D69D7BEB4251D54 +544460855284A7E474A7881D6854DA3233F713E645B4972D1EBEDB837CF697A1 +85249283F0EFF5D6069BDB9E884339D885C107B0DED29C9DE80276197A7689D0 +A96C853A7973EFE74BD32E7F3E47FA5B0ABA0F480AAE3866EEC0B930E8AED77C +57E0A3DECF243664ABAEC46C288FF4E06C8C42D4FEC7D5D05FD2B57226A37E38 +86E7FDEED53ADFC162096E73CE86FF9DBAB825EEF795DD0DEE8FA7A1DC74D031 +1D3A273FAAC4DDBC995BD4822441B447391A605313D50934419FDA978D4095F5 +DEC32B9265ADF8152818A7C7FCB56689C7B3071ACACCD0D3F83D6DA21DDF499E +702766A6826F992D99A546A9C636847B4E79A114130C02EED17F9C23C68FD200 +2922682DD82B7D3D622DDFA16383B91D900CF7372DE8CAF827186BE82080C782 +78759826CFF2D71D67C21EE1C8A5CD079CA4599B2D424EBA860D3FF29FB92FEF +1C8227C3A3A71F84A52F2BE751637420B70C1F659620ACFA11E9E26E867DEFD2 +68E21176ADA7E7ADBC7E4CED76E1D4EC4704BD05FF9ED825BA5E2E148DA86C37 +7B42A3174AC753B364F3437AC57469BC42FC201FE269C2E89705259942680654 +8380892E21766945DF24ECC961B0B1ABBD9239C9B660518C494B3868647B83EF +5B459D8A3B24AA15B2D18CD1BC8D5DD424FFE364428BDCD23FACAE25D5940795 +4565AF36B781F953706FC7216817167C784D1F0E949FF74FAA798AE997A267D6 +9BB86DA67B98F35A5B54341165435D0FB156ED00BB2221D85B2A2224FC3BCA74 +0FB48AEA7F6DD4A159429A5A869916E8F9D8998A5DD4D95803B7D95DA6D35FB7 +CF089BDC83D1DBEC62F3B1DCFC01BDDB016FC46B7490AD5190DDFC3CA7C9670F +3722555711097CDA9A3123634869992569E9AEDE627DFD243D7AE255D2AF18E2 +F500E56789FB9275E230B0127A819A6E27C71C390C37D3B44FFCD31970F8CAD3 +4EEB68EA6DB155D5CF7653F5D8ADB675128BC282144D38D7FCE12971B21C5C64 +B9AE98CC6628E51EBA46E244FC6751FFB768A672DC30D7185611344BB087FE60 +311463595C540619D87B474D29A37DD09153D5C0A73B921821671840590EACA0 +58927A71F24C332891DC18525D9B6E102648DE3CEB5FF58CB0F7EC02D7FE17DE +21B3AB6CD3885F0012382AA3BBE0CAF6D97357C00C3BE72D939F8EF3A1DD23AF +9149B8D33E4E20D768D61CB47F91282EDAFC4FE25FF7A7020278175E7DAD1E96 +7D520F98EE80F870F114FF4010102B4387AB3DC1E1BEA5E17788F8D3C4CD4D1A +67BCB8C29D51F0FFED665357992D491FBC69B8A862FD8D094F37CB28AA098BC4 +BA22F029985BB391F241C93E59D04C0611CF906FCDADB64094412A15A95F8AED +D9AB199138664F373856B9C3D19DDE12A3C90713AD32B28BC446511636D6BE6E +E9B793212D4DA46741AC14E929DE6E1268E76FF616DAA51DF3B1B4CB9E260C1B +54206E16BBC9223EA5D9B71181E1DECBA918C05E79FD1157F31A1B749D35F608 +F085D02D4753F758128E2C348C05A5CF266298ED5CE6AD63CBE031BC6CAA67AE +18613347AD972595B0BFD0746AFB81B58FCF067B66A438644ECD6A327AFCA6D3 +D423551D2530969281B85F09C03D370D6CB92798B68DEE20F853903F755911A9 +00FED03373EDF9FC0F2C91AFCE295EF14BA832B1D277A5EE824FCF86A700E558 +24E00E0D4EF4B8E2F95E92C9FCD24019F889A7107E9984A7EE9B14C72976CCF5 +5F2E61DB62F5D5BF63878591ABADEAB2550914DCF27C6B90522AEF7A6FE31D56 +6CAC82BB19B020FF7F27062C81E842C1851B665FE59E91D2B4E27D3B182DAA7E +5F6CD18BE115536F59F387F65A69A3E61E1ADAA4415E86870D7CD07A08A80AA5 +668FD3EAEF44FF4B019485623C234E7843D64CBC08DAC8C30DDEC0ED585F0DA3 +A10DB9BD9664FA5EBBC394F6F3B8BB856F528EF173E483782FCACA8DB225952A +1E6F21AFFF3F861E7AD31A870CCB24CCCED64C50BD25304F8DE9CE6CBDBA5FF8 +8D82ED87ADE9B168DA8C4820FBBC8A0BF42466C535066508DEA8E47CA1F7DDFC +5C1634BE22191810D79BADFCCB04D28D8BFD350655F5B81ED5C148CC24AE1351 +3D6257B109E9C16B2A0025DA665AD19EA3ED28F07755AC125A04A1FC3B39B6F1 +74FFEC15B2AD9D2897C79E73912740AD4739CA66526031CFC132D39ED4A6FA37 +883FB08893B5E2465C600215257EEBC0BB67D6CBC18BF607227134712FBDD572 +62326EAB7EBD4FB803C3248665D724F7933A1C545B83DC94CDAF1D7AAE628D8E +02E99D8D03E058A0D4B189F8BBEBC69409E0585464ED7F91C226110DFDBBEE19 +55667224C5C327AA555F0BB0E0DF3AA287C257F7C25118B07A9944777D347A8B +62F43FF50158B0F0A5E2BCB827E917F17E578EE829DFEF14636A8E2B766E0F89 +C9EDC6355B7544DB1A0CDF58D10BC11731387DBD1967FA40352820F2BDEDE6AD +10F354EA175A46F32B121C810226CCD80AF416C079A9D0CAC84A4DC6EEEEB1D2 +1800D722A9A3B917AE53D44EFB0A89BA0F1AF76D0DCE3B3A1E5D4A70A02757E3 +D966C96EC223C08E03F9F95753F94E438171035A6DBCE0DDB5ABE29D394F4E28 +ACF7B03E2A8BA5EA2291502744FD405DA2AEB37C97CAB2E29E84AA2BD29C2307 +454260D4727F3697AC9EC0E7C98310BBA39C60A90757B8059986ECF44C9E71D8 +415985CEF57A08E04B44B7E8C679BE49BBE1F6767E01B708A03EEF92F6BD7B6E +7381637AAAE53AC695D61B67563EE5E5AAB6A49FE620EF6E6892790658D71DAA +55B880A4A771866D4C637233922A2D709452FD10840FEA0ADF0B05185C4B452F +6094786E9BDA5BF8ECA5C1D75FBA2CF59DCD102CEC7A9B13CBC9BDAB52B8F69A +5E565748B32D0B6A5C37F31DABD7892DD4A7D3C7A0D3F0C9F61B80104564019A +0AB9D603FEE03E78985BCA8B2AC20FE5D327A5CE09746D00F4D04276542EC66D +6428C1BFEC5155122AB2D8202C86D8ED6E1873D8CED3AF09A0BB0195AB8603FB +6BE9B715E431D572281307934E65B354546EAAB9FA46E5270EA1C40D77793DB2 +033642F602DE66D86C3F86030A60C17C7897D3F56A0111D4BB1FA2CF114EA646 +AA69FE84639CC9F488375663B183FDF43ECB3F1A0733A58883E742E795EC98B5 +3DE8F62FFEC3594EDBE83C52997620CFDD0CD0AD02890460E30977F5D69F0766 +4DC3C49C9AE9D661F69E816FD775EE193B16DA7EAFA78FDBAED4BF7F39C7CCE5 +C8B6FF34CFCAAE32435F41D5E4957B34AFF592705718D29CB3BDE49421B7869F +F19F1C11819B053D038952F99AA7D7B11048C472910DB6C2993C9912B513E14A +309F3B172C78C3F5FD2A7EBB71DED2DE369CBE7B9F5188FBE8AFDFA1240CB790 +AEA6B38A0C1A3D6829045A925230AA4A616520C6CF837530BB6B4110EEF70166 +4FA122D1ECFD5E8D8238F401E77973E139CB9008ECF41E3A99AB148170361F1E +70783E845E6666F2F2BB2FA4F611181D881E92E09F6E537E0B49D4371D346EEA +7309854EEB654583A52F164DE9350DB08F44784912517175FE95E14289820F2A +E7C7FA5DE7477697819A2438424B2831BB2A148A87F4ADD2CDAE8EA6689796E3 +1C53006D49910B6B7D7E567AF050C99D5D25371701C8E9CC892D7E7D1D38D7F2 +23347E7866B15D215B6F37E98C25BC3DF350EB14C5E10E1F7DD3EB030DBA3F00 +F08249F03242C5A17B9CDF0D76ACB22481904D2066E8772B087918DAC93BEDF7 +A20AE8F912F34DB417D1FE3842AF111D2949A4F3B851FA5BCC2BF66173DC30C3 +99C97547E42DB66D6223CA93542304A98C8F384F854B7C7687430A2FD7ECFE9E +B00BE9729706AC41D4F6A410ED0D698EA85489E9A41E045EC25FD507AD20C4F7 +771F1875067659CD0F416BFD4F1517152536A26F9C736E52C07F950259AE1907 +FCB1AE308F10DD3A562E358317E6E21AB5C9E52BD7A0B205CCB5724EC3F27993 +E6C5AE40F2C624B36A933BFA95AA36F39966BB3030E2F5A93637426DE5052413 +FED60BFB77445B73A38C72469C57B0FABF28F1B9347BCDE598BFE2583C955EB3 +43F611F095E643EA4F4E9BFF0409CA8D96989617446E9E16FA2BDF6CE62D161D +1CF4EBAFD6DB7B51D1BFF16D0D1F7181817C3F51AEB28E8E5C2295C665C6388D +5B2584C215ECEEBDB37F9139AAC08B1F01BD5985E7A6B329D3940E11BDDADC3F +D9D9EFF6B907656154086C0AFF2467B2E9B84D06A29CF97081D3428A2A2A99CC +CA2C6EF11138A7888330304AF47BE7233E5DEBE15110E99EE23096F9298C12BB +EC79A11F80C46DFC066F8C8F6682E8B9175400B30900FCD1CA8640E6E32198C0 +7AC56244E6BA4A996CD0FCB69CA42F07DE3D187245E67ACC6957C5C2556D9163 +824F034B16B601DFEB74EE86D410349BAC46799E7FE16ABC1A4D60511AF75B09 +3C96D362AB29ED79631C9C8A7A7D39919D10B1BD6817D5CEAA35B14749704E67 +392E52118E537F78E90F8929252E51A6C2C7E7B01181C1C816E30AB3485E594D +FC9E57E3BB92CDC789898D423BAC25259C9770746B7940419A07EA6A96801997 +964A8C5299C3E917965595C3E87185EFAE1C0CA976C77FF1448C9BDB34F7D6DD +EF8D5E61BC5D743821CFB4883D60367B9F208C662EF6CB2A90B88779C51AE815 +C02F1D4CCD9CD7DAE4D4B8C76B211621B2CEB71F27F0BF00D3AD655084E8B788 +45DF04780864A73AED524B093FA4A5810E88056D523B4EA4CA826196FC125570 +84C035FEB681AEF4579C8AF3546AAFAF52DE22B257359D24766286E469BAD043 +354FD87F051D9962389CDC368EFBBAAB27092C0E9818AB453223A0CF7B6851A3 +5CF8A01136CDAB1147712CA4CEE23C6ADEC79BF29B3A8C18A3924CEF966A76B0 +1D15124E7E9036D29653DE9385568F622457F4E88B6039E0148F6BBF458A88CF +AC75CA76119012E6841FA9007D05620621CD246D4038957B3346FA41EA49E2F2 +81ED94286F91DC79B4623B9A5D91EFDECABFCBC4733B62BC0BDCEFD9E0D72021 +2344C20F50D036A66431F6C7E0BC5B6139D3BCA5841D13C4D120BACE8793D2EE +5401D7D9F25413767427B1B07C6CE826EC5E7F3A69258FE006F0D32DCE685BF6 +39169D925A99D5A876E8DBCA6205ECFBED19D14C82032FBB8E6684B361F74DF3 +85FC6B7DCEDAAA27257DA6B188B4A2CF6597742585B7A6FB189EA252D6B6EBB5 +68358749BADDDF1FD83703DB5A8F2737E24320E34141E296C3F36E96C3244C4D +2DDD85DC5054C08F115504710D020796622883AFF87FF3E3B49B9F9B31C46968 +C4AEA73F093EC3B25572798F3E323259DB239198DD2F382252E218D10BC79497 +F95DF3A3CB1F17D0316803CC2AD5B2BB3DB0E51101AEBDE6EAAAFE81169FFBBD +A540245D99C662C1E3B88890E87E0BA07409F767034D4A9051B8666C2E3C089E +34BA12C4B7BBCCC654C0330CC9874D83F6EFAF3C208C52A53658440B0DC259BD +BB364D9DE9914E33DDD3198FE989674B86BECCFD79437E64CD6D3C9CA9B45368 +73F6ECD6F0F0B4C3633A1B94C87D8885A6FA30CF109D3F9089B651035B9A8217 +8DE12276A93A0DA463F138056CF087430B9BC6E6C96C3ECCD5222E8019931CCF +8618963625DCE4C4003A165AC156029DA95A7638B9B882004002994C7D6A2CCD +0CACF8389E268D40CC3B3245B82574E9D93BC4F252D25831B3772CDCEC7C33CF +2AC643F7E91EA0BFA498EE51CA1D6FE1F6B66253654F4297F80CC0A5897DE410 +6887AF5E29B5368DD1475CEF47E55CD71C1A2593779B2F1055997379E7D63EF5 +6E765CEEAC67E040967C7E80ADF97DC70DCB8507CF6007C6ABDDB7E103DFCD36 +056B9E719A1361DFC8244E59CDD51630773812B1C1C2E7CDE5E3B9B97E5EBB47 +006CCC09790061D0BFEA12561FFAA99F3E1334E150C5242363B55C8EF6657BF1 +EAE3123D94AB401FBB7F48251D352F379DECC1E26A31A234EADF11F7EEC9D5B4 +F7662781D718F43FB6D7B3051BAA3C1EAFB070EDCBA68B47A51E46456AF1CBF0 +EAFC640B6D46EEB7969484BD1991D34EE9579E08C7BCF90E7B86DD5D09E216E6 +5771C053A8B27EB8E6C76E4119DB8FD8B76105A06050FDB69B0340D53A638B81 +003D57ACF7D24717CC8DA190A5E4CB071AD116BD38E8EB2AE503F2BCB82E28B2 +CFAF87FC6A092504D90F690E4CBC26C905A09ED123DEAE309A028E938EB1C96B +FC473348FEEF7CDAB66894AF5DE752FE8EF5B96BC91F7348269DC1D380F8333A +B7542162E5F3F925024AD224FC43715C47200EAA66FE1DEF10D74576C2A42B99 +9C0B6CE225101AA6A90519037C1D1B74FEEBF24594B804EA3BD544134B566AF5 +5C06D3869E38155BD2E429581C16D5C79310F6F3A1134E69BD1E12EAA7ACB669 +AF8DECBFD8645CAC579485353D2B810661D689B5F00FA36A6F3BB065493B6F62 +4ED401C8B89DC52B3BB8AA5BA478F8CB80A32EDB01BB42176213D8E431699077 +6186F5291AFDC969B4927FC2686E8980E8F09402ABF9EEB5AB6142F751EDA70E +217AF7B7681672CE80ABF918A9A0E32D190ED93067F3EFFE148E33D750950567 +CC8510B29D21A2D402FED0B221E5B0E7E32EAEC8939994F641698B65854E4A68 +24DE278FEC3C4DD91006A21E9924AA32E95A45E71F250F1AFD72F4BC2D434A35 +E47E23EACA3799B8D57CF6F4063A1F67F04C731C5A83B6E31FB1ABEE4EBCE683 +A87408BDAC20EBE12D8183FCBE0FDCEC5213052E31DAA367AD11AEF363A81347 +62CFA6F4A529EAE651497D62D7AF9AAC4844380B0B4B8BB42DA6C886B758A175 +CA67FBE85BDCE50D8FF3AE7ABE6DA7EFD120EF4D74AA0748BCC6DF789206E4B7 +D66D250F7B9109BFD0B23EB71F941DD8E5BB4ADE3F3899D9D069CE70C7247E45 +84952B2361955BAEC3AA490B3DD6DC913B22551C874C3A6F789B12E800D35556 +5A31B5760D37E52D95A5E0A2DC6A3EFD67D3A39562C7DE527C6882D80C5481C1 +B5645D105B170F88C4674A96397DC38CF6B186C548385008F872C6A79920F81C +60FF12B05B0382BC25E8D33F87740F1584ABC3545DB893DAEE87F94966BBACEE +586188E2A2D6DA049CD86742C16753ABC50D5FD86942708B4AC03232FEEBB310 +12B590449E3C66BD7B2AF8227739622BD42F19563A569721A9F59EBE9F9300A6 +D44AB8BD58B38C71DD59CF11559B46799ECFFF12EFC7CC10382F5CDE57234DD5 +47DFB8D0DAB1BC246D75B73554CE7339C42CB3564AA9996519D8381784E26249 +8D8D0BC3AFD5C4CD164B916F09CF1A5897C82A93BF7EECCB06BFA76FB297C0B6 +6F0639544195237132BFB228848D7792FE9C929BBB852D49C7028AC113B2461F +4391D0ECD1C8CE7B7B2172F956C8A540CD083D0520D0DBFEE9DEA45A5757C002 +953789FDDC1DC1DB0A398A34EBA3695EF8F0AEDBB77CFE5C1C347C624BCB1C96 +E182B5EAA6299360DDAA11E48BEB68824CACCADA672998DEBB6C459A0598555D +C6DC4E831C5C36A4BE11228FF0471FF1E94CE65DD495CD9D0FF9E93A6D95E0F9 +21DF949170161E1A94816677B77DE335D8525607CD554EC31FA2A5AFB46E1FD9 +72233C900895E4BE532C7C0BC786199871581A469A5D2BDAF5867D2B2EDD87ED +6C1D01E939CB1A814B1BBF59497B28BA613B4CFEE327E5CD2F87D36AED0416B7 +F8F6E1D878378D9D989F4C1B596EB19DCB04BF18AF67E7A87036A569FAE6499E +1ECF66F422BC3D6830A465E0EF2BFDEE75A8A1ADBF592B7A3DC5E3DD4BC9D0DA +732D90B2B90923F6D64B9EF050ADC49278B4798104F1B8B144DA96FE52B71338 +2D409A18D9F2E95348B2CA30F4D737E5C58106975FF09B19DAB001063322FF37 +8A8AED2FF5E08EE438EC4A73DCC131DFEF2EC9ECE2607E19F3119175E83FCCD3 +AD0FA8035AEC2937ABEE +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndFont +%%BeginFont: SFRM0700 +%!FontType1-1.0: SFRM0700 0.3 +%%CreationDate: Wed Sep 12 2001 +% Copyright (c) 2001 Vladimir Volovich . +% See the file COPYING (GNU General Public License) for license conditions. +% Converted from METAFONT EC/TC and LH fonts: +% ecrm0700, tcrm0700, larm0700, lbrm0700, lcrm0700, rxrm0700. +11 dict begin +/FontInfo 6 dict dup begin +/version (0.3) def +/FullName (Computer Modern Roman) def +/FamilyName (Computer Modern) def +/ItalicAngle 0 def +/isFixedPitch false def +/Weight (Medium) def +end readonly def +/FontName /SFRM0700 def +/Encoding StandardEncoding def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] def +/FontBBox{-203 -320 1628 942}readonly def +currentdict end +currentfile eexec +D9D66F633B846A97B686A97E45A3D0AA052BD0CE60552BD63101D7CDBEEF5B11 +69C468645FE4ED1AF2541AA0770C1DCF81623DE0ECDF49F2B522618F650CE6CB +CC8C21885DD61AF8A523AA677EAEDDFA51A1F9B1885EEE0456196D634E04EF89 +F17499DAD982502ACC349B9EEAAE4A71A73D1147318C60A8BAC10510DE90D8D3 +F46E47295D27129A5AFE0C65E22BAD10D06885A2EE623FF8E1D90287A083E00C +EF25195F68A2A98170E48759F33528B839DFD4B92DF0482493852C44DC635E3E +0E29551E072F9AF208EDBDE681F2A25022B9758023CEE66E71B499EC03B0DCB8 +776788D7C9EEA9C8A55C4051AFB58C8580ACF5C1E76AA745AC43137D7FADDCC2 +ECC373F673B9F896016BAF3DCAAD7A1E982A9A9D5F459EBF287B057484AC0344 +010753C274C38A6704F869833E51F45F91D8FD54CF7F4EA910EBA59783AA6CBE +A5963B4E5E41841A8CC0734ACB9679EA0341518770ADD726DFA8DD26AC8BE0C8 +93478DEE80AA4676F6E5451772348BE3F3242DBF7F727B6CE01BBCBB0F6B6CD1 +097F6065C56A9DB11299EFEA04204672740C1EAF81CFEA33A414C8A3FBC097A2 +789BD70B825861F9977FE1F2C556C2470E710BB50DCB709DC41C337F18B9BA95 +983DE7ADF0218165DFB1FAC6389F1FC446413E660AF4601F1935AE3801C1ACC4 +9A2A696F645918A8546D5C090D0F9AABBC99667D458EEDCCD0CFC60FA74C97AB +D5D3C05A769932A1905F17170A86E307F730F17B7CBB77E583D20DEA14D76F02 +FF9CE7599E0DC09CAB37336C3D6DC6A91510BD76E458F2F009E24983EEBC220C +572E997C37FCDA62DA400A703999BB3862B0F2C8BF611DE181A1F6814CCED57B +FEC1F3573C3625283CD37815AB5F9C0C6FE819A83091CE1D5DE3923B1BB8BF28 +A2C22E7865E86FB42E506501C1DCCD2CBD90682B0BE596633184CB857F09510F +487587E20ACD964B083372FDEFC3BE0C146C67EE26A37B5CEB8A30AD2C432314 +A1564D93E623023343F145A038D57E623315CA0874DCDFC2D705A3CEB90CA329 +85D3C7DF7E216373503679B3D9626C3EA6F01735F7BE69E11195CD7B1ADF895C +86BABBF8C1F6BB856D647BAE17F2FFB54F9DF65FFD8DD863EB0E25F84304D438 +0CC7A5FB48EB2976ACB14993B277A0DBC3A2FDE006B5360B14C150C3CBC2D3CD +FFD6608CA11443DF807C1DFFD681A54C2BC6EA2252EF38C2B8CB30B86290327C +D4FC25E4513109C9772E4F493C02BAF5D75BC6926360E9B195EA068BEA487469 +EFDB542CE210FD150632268F30074BA17C75EDD68D7DE2D513E8480D2F8C8EAD +17D351163A96E083CB804959346ACEA4ADE9C121B7E1A7A0CCEEF786A3C1C3E0 +C53285DE297185CAB4D152047CA87A0FA70801B3255B67EE2C7CEE02DB18D755 +37FCCB3CA9F6D17E75225F26DFFB580781AD99F5A0BF8A98BF67E722C1454CB1 +7F39CE4902398C41CBE660269DFD450705A63BC0097A615A01A587E920D079F6 +60DE0D06D2A8CE55BAA4A17C507277058D97EB6F5F24FA7AD6043EDD +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndFont +%%BeginFont: SFSL1000 +%!FontType1-1.0: SFSL1000 0.3 +%%CreationDate: Wed Sep 12 2001 +% Copyright (c) 2001 Vladimir Volovich . +% See the file COPYING (GNU General Public License) for license conditions. +% Converted from METAFONT EC/TC and LH fonts: +% ecsl1000, tcsl1000, lasl1000, lbsl1000, lcsl1000, rxsl1000. +11 dict begin +/FontInfo 6 dict dup begin +/version (0.3) def +/FullName (Computer Modern Slanted) def +/FamilyName (Computer Modern) def +/ItalicAngle -9.46 def +/isFixedPitch false def +/Weight (Medium) def +end readonly def +/FontName /SFSL1000 def +/Encoding StandardEncoding def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] def +/FontBBox{-151 -321 1485 937}readonly def +currentdict end +currentfile eexec +D9D66F633B846A97B686A97E45A3D0AA052BD0CE60552BD63101D7CDBEEF5B11 +69C468645FE4ED1AF2541AA0770C1DCF81623DE0ECDF49F2B522618F650CE6CB +CC8C21885DD61AF8A523AA677EAEDDFA51A1F9B1885EEE0456196D634E04EF89 +F17499DAD982502ACC349B9EEAAE4A71A73D1147318C60A8BAC10510DE90D8D3 +F46E47295D27129A5AFE0C65E22BAD10D06885A2EE623FF8E1D90287A083E00C +EF25195F68A2A98170E48759F267FE330B57DF626EBF7204BD97C51C4AB6B2EA +A4547DC63AB4A982E962B3FA3CB2E616C884FD46838D5F3C9922EF4D2053857F +16FBE2942685AFC6E3A4D6772DD1FAA256114C72F01B2F9C0681046AFBE99706 +8D743FD802FFCACA64E9D2CB7C048FA5196930D064DB426F1BBE16E3773DEC5A +EF10B3E0118123C4760E072E05CE05F9E15ABB0D322077921ED2B0DDD4001E3F +8795EB98F6AD8446057469ABD8EC87398EF9D5C4BD00D9C3DACA4C28B62ECB21 +59CC2D87E8EAF41F1A358909FB445BDFFD93D92BBEB66C9BF856A30E6D5E253D +5DD8C4233D3A48DC91B9A7C96B85FB1351EAC6F468433D233CF31A9D21F63AB1 +AD71498C56B1BB55A37D5170834023B3900AC182AA0FF6361C9364C5E0D726D5 +84513E143D49EF3BCB0FF23B718B7922777B2A84F0CB7CE9A92E88F56661FB83 +D498A3BE340BF823CD7034FF9806C4B37C59904A7E3505CC973B13757398DCE9 +B8E2ADB1B70C6B443BA6BE886D13A0729B0DA341E9562E9D4FF0683F513E785B +CAA7F89442C002E8278DCC1FAF99541F55DD3EE51110024388354E934212E69A +71AAA9BC204027368DB0E2599A51B31B103BFE1D8D65B840384D7B6BA8FC9E64 +FC428AF5A95E23EF408F51E44AF5DF40B5DC669262F876604123F4993659B132 +76584AF51E6FFCF0A262793E7115FA73732592D01F246937358A9D894BE1D573 +5BAD5762C8D52F5947A1A60DFDEFA779922D979BF4D846923EC36A1FC3000323 +1184E355CAD748A7D7AFB8A37DB342D6C947E7CFA5C68B85E07DE33939C1B48C +BCB5B14881FEE3DAD530EBEC15453CD96D9049DE0AD15B01AEECE3726EEBBBE3 +D3A0B48E153AF7BCA866DC636193019D124804D0066A9856C3B196F1272EE5DC +58DBF9D63E77D32D89219A7E41988F8E37C732BE27010BF75CB184FDA256AAEE +DBF510376176AD76F2D3ECD6010EAD51212595B47418EF52BDA0E36EB6FBB6E0 +7BD329E9B9CF1C87BB9B17BB8F95C2882A09A4C809368684A13EB526BB915C39 +778C4634D3DC68E13539725DFDF0C13913B46CE7E02ACEF37735C362396F6F55 +95F3F5A5D3D16981018A7F4B68AB6BEF1D1FA3F2CE1C8897D29794FC6A9E4D49 +FC4B6639A36D71BBAA3AFC2A9C88DB5E336FB3025DA828E4495B37D7AABB7211 +8325D96782A67290E62FA469C6BCFA9F039975A6E314A5CB2386EC67F55F013C +FC43EA80311D5D5AFD5C679E43C25635F68C6EE14450FEE9D0567DBB96AC471B +2FEEA0BE4050260B1475849FF83B1380B290054C791329E5DC8C40FCBB2BB86A +CA3D96BE9DF37341CB8ABE34CB2F3CD927B2581AA05C33C03364C7CCADC3CD91 +9C54DEDA6D88F1088F19E0E32B7254DC35A2EC454001077BC863F9A19A661C7E +EEFF539E3EF3529DC385235B0B28B7D729E70F1D17FDAA0CF8ED6385B1E0D72C +9680BDA2840F0F6ADA6BC2591C9772A6BFB6CCA5C901815E559E239DE13FB817 +746FFC0D9454D4E397FF3E26F5F81097297C00D2CE923A1C5F7BDA809F952959 +5AD75A38A5E539CA9C75EF015D68ED71558626322D37C3A3F2189D91F4F859CE +101093BFECFCB4B58826FFCB0421DB4623108166A19E5289872538ACFE9A1274 +6FD49F88E8162DE2D0CA520392C0BC6F143A94419FB66B3AA2D5AAEACACE8D63 +485C2587937E57AC32605F7012E29BAAA4D3E266C9C2E17A046E6D0570FBD0A3 +17729E8CA441D9A2628A0750CA03C8A473FD7BDAD7EE73B594B2F88CAB773CCC +BE1A3D050A169C3C1072C81FD72D39B9AC060D6626A174ECB3172F525D34097D +008029BFB0B1255C71D033EB8865AFDC98697D63FC27737640F3A2995CD72F75 +83985D479E1CB8ABD2294D02A7D3F5F3BFA3A6C028AE06949B826C32F09F7A86 +C19E0624C6CCD611DA2C9BF4F3076768B09C83129949DF2221689A8E9589B8F3 +8231C3205B3B359FBC14AB3A1094A34EECFBDB0C5CF318C81CCD7DD0D932138D +4E0F3B3E92A838C381D15A6A31A2D64BBDD33ECADD10EE7664E22D21919DCCEF +8B8C63299B17139B67C8DC9FD2CAEAE65665ED334D5ADC777888B0F560170599 +C72664C23FF6091D86F7A5388A44A2C8B65489B9D4E4D0339BA19A2CEFA06C68 +F6DF4D3199EA37528933C8929FFC1FEA0E07837B98352997CB5AEC2C479342DE +244C8A754E31B2D25759EBD859CB9B1E4B540F38E107A623F0377707C11C759F +AAE782B22828C905DE5D2E6A2F2545B0CD8B50EEF72F29DAF3C492766B4DD140 +18DC7CEC39CFC5521964DF1186811BB519B9FE8F76F501C303969D22D25C9B9F +53F8489BDE53DB27ECCDDD6F4DFBCC8A504273FDD95DA94EE25D7209F2B13005 +8C89FB3950BDA46BBBFDF5E95DB261C8D808BF1666598734A2E01A6FDD6AA04E +0FA65EC40C8FA7B01BA581CCA5EE0934BA9A764BC3650BEF1B3B107F9F42BF25 +5A69ABAA9786FAFE125BC63F27A775F7F638371B463A5BF20DA4E3BCB74A09D5 +A9D5263AC2A47512B0C12D985F4E5F9091D0103D07288500661FACC936170156 +739D6597FD4A92863B9E195C66844C2E93DBD608B2996D06E0FC9A0C9F23B214 +97E7593C45B8F1F2F3AC55308320E6DDBBE50FB4B021D97A1A00F90F27B2EB88 +21388E8CF451BE33AD04B20FDD36CF48AB206CE5B17197D5EAE1BA5D227733F2 +D54563D330D412A44B5C135B0F86CABF671A37EBFC4C60D029AC94BB8D4043BD +481A4636ED31FD4E25ECD28FF1FFABEF308B4437F957803C94C28906D62C2A9C +768D84F4AC618C923BABB6169AAAC88022B484D7D20C246E7A16BF27EA0B6468 +375E2D177A00374D65A635164EEBD06A9A08231D2920BBA9E3BEA00CAB583373 +5F4642053D6887F8DF86095037158D122737C891A8CB50371A6063BA0E864A73 +FA19856345A9CABA1C9D195E2EDD1C60A2AE1CC2C70CE8A97C005EF0D5286EE2 +C3A867B0A922D9425CF05F75E868BC25DC1615861051F9FF2BD1A5DAABD76EF7 +206D3F2ABEAE5C4750753B0C69668E6453F75910626E82E4EBF96FFCAC582905 +C13E6AADA7EAAD53BB79A5CCAFC3A1AAC80A00B22DD744F8C3D09C5E0220FB8F +D4AC5DA7CE8241746F583F253D889CEC6DCCB65E200F2CC3BE12B3EE1295D8E9 +3610CD47834AF2445E020BA1E25F0607C090E390FA866C6E704D0F9847C2D1EC +FDE3A4E223BD1A7101014BB1532D34EDD8EBED7726AEF406CFA49A768DAF7617 +1498FB6D60F50051AC7A2DA642B85F9F62CB5470368A33568B73D6E31B8F6668 +C8BA45AF91EB9944A0454CB691DDBF843D6DDC5CDCB3AB65B3F378F13D4D5914 +AE108C3AC2B60E19A4379AEE00761CB99C9056270E522BFA698334E7210F48CD +D47B04DE5CAD96B40D5D62AC4F5C2EAE78AA575E90D0ADC23B14A9F26E265309 +F868A37B2A196D1680787FBAA3043842D5E055A38E0B4FFBF7C41E26C7484E4E +EF38619D76198C318CC58AA6206E80EDC589EB48D264B74C33E48A5954E5CEC8 +CA5BF29272568EFB195BB263714EA97621B802089568693DC0DD15AFBBAAD7F2 +2D53E866F4E07E5734A3FF839676287409EA70DA79E2CCE1D434142C6D9C8704 +101CCD4C504A70F954EDCB330E2AFC862394653F5994842FC2D8E4547A93D6F1 +3C01B9FA812728D71DBB14E32F992F7F9B49B1EDA4CAB4653ACDE73483DBEB3D +86938BE16645712FFA7108B2AC0CB38E3BF84290E79922AEB32958BE1E8A677A +7DCEFB272178919EE799712FCE00B4B05FAB870D7C8E6FAA4B302EA768587B58 +694DF4BB1F33905CE0AB7BE3B19DF0F8BD6849BD36D0706616385BA6A4CF3FD8 +B389526B0192B446A1CEDFE8F0BF848F93299C2A83B08C6BDE5324AE2F08DFE9 +35F3D3D1B7F263ACEFB4EBEEF4CC55BB3ABB0E37660C7C103D41859629D0C497 +BCBD3953159962E0B01C5DFB0B6AA8A416F0366E3EEA2CAF5D87C2BC304C0B76 +991CF963436500886C93F399DC30DF727DEEB7CB5100FEC096D8C444EB8AC4F5 +77033ACFE7CCBD4320D647FB737C5D7F2FAC694788455B5CB5B2C891E7C64BA8 +F67F4B2A05815A0008121E303B0745A3F10319A5A14AEAB5AE090C2E12AD5A0C +2A4EB1FDD7B49FA369478169554349A61BC742D751C71EE8CE7305761322D369 +E171F1B58F131681D7C08FB306589E39D884DAC484BEF298ADFC714E59EF7169 +8825A358CC3506D9665B287EE5B5914FC368A1BDC4597D63CA4867567B7C6EDB +FE9AA1817130C2066761E3121C6EEA3DB2AFF09B42A7A12FF5F9FF80B57C4FB6 +47A92464C8B4B7F88B7CF2671C173EB2574007088A67BE974969705EC691B78B +BA0C67526084160AFBADB7FF3EBC3198DC8FDFB6298D147E51FBAA1E38C8D3F1 +27A14CE01541C5971E763528ADD3CA5E7FC82E20F388D31825D18ABE50404166 +6F09C8F83ABE33C48FEE2179DF6FB59C264E9CDFB2CC8D0A22351192E2B3A5E4 +218B0B89C65A9884FD79C3A4D0E7F45181695BB10DC043CC9F2F2871B3604ABE +A3970BCBFC6A61A485CFA7BBBA8EFD1F8CF34144B09F4BD9445BC44A443B66E2 +FC9C94D5828B9A2A19558DFFE37D8BAB60F4081948E7FACB550AD749F57D764D +869DF6EDFA24BA3F8E2B3489A004493F9F98CB9FB33C6E30C092741BA7F80BA9 +7A9ED4B5921A5C4B2B0B8786052C5E882698376F9F3762D6CE21EE6AA1A98C24 +392639AA8A5DB795504962F8E02A818F8F3A59EB95637073FC26EF3349C67E25 +F2C9C47C9A7AD7357352EFCF56AAB007CD23C7FE19F990437978DE17270715E6 +DAC8C7C7F716723D5092244E49336B0C7009C3933DA6FBCDA4766E5922B0A0A5 +A63DFEBB88CCFC9E4E593E15CA50E062CB329E8B023894B9EADA0A2BBB48A07B +FFD97BFEFA0FBA554312C97BAA4B8FAEB024C42FFBAE30E8C0AD4E0C511CD1C9 +B88442FBDD83503D108C1B4C8803BCAE80EC59434C7F4C0B854F7DD165A69731 +75447BB30B2436F6232750BBFB4DBCDDEA4F18F5BDEB1FA522F3617561FEC7CE +209C3C3CA3B078ADB2F5168DB2F652969D519DD936B2C6047782B4548BCFE807 +A1F7DAEF175975472DFFC1B4F9F9189239C70E412F3EF72A59F1FF0441EF2F23 +E27C7F9541C30C84430CA1BF74A91445818F52F1B6F7C61A19AF5F46FE2E11BF +FA2ECF96608F1C83B9A24918730C0FC374255348582B5981B64619BED151131E +1FA003F01AE35059F68C25740F232E444BFE08C9D3183373BBF182734505818C +D484D14BFED98B5D61AC7608BB90246A76F3B72F5895A6BBEEACFB97F60008C8 +EEC8B1FBBFCE771549B7C87687012BC32C93A581900487A2273B16543C815061 +7EAD85A52811063A18DE1DDA1EDB2DEE1D224BB5AC76835D94E3FE7A9C1A4F6B +A103142F7EBCEF2B5445B1A539F37340A0376DC995592D007CB15ED7A62D9716 +4D16D8E04E5B27C1A70C3320926A16735D639194E3FDF857E2206DFCDE0AE9FB +86847A3405A668FF968B539014942319CEB69F2AC85B506D7677E95D4842B17E +1E882BF1B8CB4A086A650AE3C637AB0F48DCD542D8F76531BC9E93052D692A88 +622F59290D16CD52F115E3FA20328EA719BDC4C61AE70D7834545294455AE610 +339A30E9D1DFFE3198CB4DE8AC3CC9FCB3772DFF8130652558034293B2FC8B9F +ADB88E84025FA6921A10A84CA2D3298FC4FA89C76833DEC9FF1B9449A45F359F +845163951883E3B184D344DDB28A38936BAF35367849ED049CDF2EBAD1665622 +3A55C9E24F36B6A2B5D3DBA6D10E70EC7D957DD11789AE917E61CDB10F40D5D0 +A964E3CA746F7B19FFA3EF4A1695FDF55750F35C875DA81AF659291A239C1E01 +C1C54F7FE078095C319BFB87E2E004C5C20438D897A538D89D82DC95A1D51149 +1939A9F47B5F2D18469D4ECEE23E1680B0037F6FD2AA662E20F4C6AFC1072A1A +22806BABA793640971F5CDCC254962C6CBB4895B2AEB007F73A55F7A99286DD1 +27CEA81A0F8CE2EE275A371776FB79877E9A77A1671D3E3D9D4FDBC9B58CA131 +CC354517C3D95CE763FAE0900E12C339FCEBDCBE9300AA282A2EF6C9CD8EC53E +E4A426E2818E9B48A02155ABB970889798B92A370CB1DBC3E3A4707631D6A47F +D43AF28CC1198A84ECECE0905588ED740BB8937D8773AD94B834074F4EF2996A +399A791B766165201CF8E3386863CB3DCEE81AD1E41967416E1FE8C348E1AB68 +7ECA58A3DFC699F91A8FB37E1281E36D11B5F8C9F89BA1AACD47D5706D9F0A6A +523122C4E5140FBE6F534C893D523EB780560E64C819A7DCB61420610DBA35BE +10A71D241736D55A53F94F734BBCBE96D74CD18B50D025D8595656ACDAFA94C6 +0B1DC71E5446AD563DFD4CD5C128AF2DC718E26691A8CB3CD9C85C793F28CC84 +5E0B9CBB39B0166328315266C0F5724566F3E762FFDD4792F38344E4DAD253F6 +FDD85DA7B7AC84DB9707F72A41B88EA4E678EB468ADAF74767FB03181AD38B4D +DCF3080E2DE58623B2B826EB1603F269EF8CE2215249880BF61BA0CF4EC28501 +25FF3B85286A86539211F1088FAA1349A347F1B137375C37C6298315127BCD53 +87FA69F268C69F282C0403FA6A564C2D86BCB101F09BCA1BD769969D54CCAE2C +44A96F647073AF9B3960F98A4F749DB087DB932B0FBF2E21EB9666CA339E375F +308538A8451EF489EED7D3FEAD0F1364600994EEF60A8505E00CD209F6F36576 +3EC4B50C579A65795A2C560781C92EE14B5FE749AE64A6666D6F8514A8F42F82 +53421DEDEEBADD280027034258E151FD6D9A2D6E64C3ED9BAA1996F7A50176A7 +06D60CA1EB8A4235A8ED0C5C2E15E84E5794B28C88DD46AD9C4399A3B1F14B1C +82179F5137F6825D34473107205BAA3E15F3150FE4C2AE4B9E985D02557B2EBF +E0DB80E7351CA240C9AB7C5AB0F7D0F251748A269FB9BAC734FF40956EA6F70C +FBAF96C839AC458F135173B7A8A8D0130F27F494FA4EF1F3ED532F10127F20FF +3C150EF82E3FE619FB7EE65395F82D7D8F14769310D38B8C0B82852C0E40A45E +806BBA327AE1F46F91CDAB63282BC437C6589784EB3FFD52113A07B4F1DD4E04 +2B673F4006F37E3698DD216819E3C86A6D4BC77AA9CAEFD6021E95672E290117 +C783D9E81FBA6978D5CF2A318BE5650B4C76C3A8CD4E50982A8B488C1C6641CA +D95A2B7A44BFA54A0C2058CB0A24ECCCF40FCB0D3A837FA49C68D2F5E0021FBA +407D765AEE96012AA0D3284EC0F13149CB8969F5E84699D184A27FE98AF8910F +5573E4E5D40D9B1A32366E272328ACF70A793778D647070FC79D85C59B170DEE +CA10CF4C06C6553AAD6E4BC6079179BE910C946245DEB1F10DD24AB488D5BAC3 +188A8B640E6C52B9EC4D1154426F706B17465B75290307AE73E6ECE778CE28FB +CEC2BB6A9CEA78DC92873DCC986EE325F9F093546B3770F16E220FD46131B928 +4B3E6020B4AEF2400A7411F1D9BF7699B1927E1EBE6A3276478B73F19426BC53 +D97B40BDB9C863156EC1637E7DF13EA687834689DC47C98C32E48D570FE2E122 +60364701ED8234B9E1E5A858242AC7138493DB18023E18ED0ACF86F801F15B35 +887A2340E21AE7CCC647E7888556A5C31F69E93555250A4579736AA817CE3DAB +393984BFEE7C64ED558D16D2EF84B7221BF971498AC6B29DFE3FE833E726B8EC +951A51E13DDC00DC459B697FC541D2FD68C16252824E10F5F3AB39EF8DAB748B +FED0734B8337921F147E34C38DFBD4B9F642C69A5017F1099B7DEC38F4B7AE44 +4ACDFCC96EB0815A8D68969D018429B31CD5ECBC2189FEA08056D280F09997BA +048516FFCD6CACB3D5A1D59F87076955C6A62D14293F12C99646DB524CE83A0D +D71A650D4F57C71D65F0AC4EBF2F99A472956A03156F8809020EF67782E52035 +4999BE9326FC6D40B26F1F09A31CC2BB74C92AC1A0BDE44FA94B4134A70F4B34 +82E8CF028D9F976E90C6A369B773AB2E1F62D1F9A090432991BFAC975D0AAADC +2FA9ECE0C669C03867B0BE4F643EE587CAC33FC9B0AC672EB0F1DBD308069804 +97115BF7D1094C5617868C8276CB6C4BF970EF1A8A50279607C8C6343845987F +024EBE1308A01D054321E6F59FB84F4C5AC640F559306794B7BE0A5F20B3026A +DD240904A49D06B04E7B77F70EC44C8500DE770D89174DE274188FB0A04FD51F +52FD2F7842EDD63EBEF678EBE6FD4D5E852DFF23142C1575B669723240EC3DBD +BCC910DAB600ED071A5A5745012C8D08FE4CABD2248C5CF72BFC266395746897 +316DC32BAE3DD25B7FCB919DFDADFD2B6E5F31C3641BAF720648582DD42B0C29 +7B9951564AC27E01005AF72C950FB6F4E4F6E151F9D22BCA94CA69B2BD648B61 +554D8CB14CFD2A9D089B9E3997BD1D12C24B426C41715131DAADB87ACE724DED +D2D12DC6CD0A40BE13FBA181BD7C8C42A5FF9059D3EA7BBFE5FA78557F30E854 +11ABD990024BBE87D7A11703F105CC68C429E2A6F87A9E342085BC6A849EF8FA +CBB939634F2A5BEB4C0A9871589795CB99776F2B290671E1ED55F97FECE3C833 +79408533479974517228E3E6CF1F04E3EF1FE936CFCCA8C3FE2474E6CE59DCA7 +62B142CC90A12E6C6491B5C4A64A547382B43C9468D17D35DBBCC1C6BFE73927 +B031930824819EF4D3954093316F759E6C909C73DFCF7FAB7CE21F0814C4FA99 +A8DAF3F600D6D8FB2A5FB0D606BDFE812F0A4C2801E7AC43FEF1F46B90E6B049 +7E4A4DA92C075A9A2D5D6F7008365E52796975CD5B1D9774263397C47D99942E +231E7EEA2BAFD81E6510463AE4FFB43ED490A0EE6A8F62AE04614DA48B1D8E40 +D824DD8B76A517D9A73229492316AF5A089B4DE83B8ED0C1295628690BBCE0DC +AD715D1C06273B79F978F903762C22B889AC2A2A7C0BEBB0C91AC442F5313441 +AE0CCC52493F0D102D2B781066E4A198030923C7038C89884DF1DBD2128F00AD +7FA9FA045C41D5986EB0A40B5EBD3FDCB4FEC22BF887732D21C4BF9C536F37E4 +A49733A27ED7E573BC74AB93B42D60F8FBDD007BD7D484C2E2A39D8B968FCFE5 +EC4E5C5F9B346365105C8F92D2738F84630243D7FA628B86507E9E71732DF972 +6C273A263D3B0B5645FD12419224B691FB11A0ADF662C99C97D573E0A9FE8107 +9C1EF28042355B1DE999FB71D9EA7C3AE7505C3FABC1C616BB3018EDEB43EB31 +05E59ED9BE07F639BB8526C78909F0731ABAE42B05FB72A81CDA65E587656788 +BCD95E3880C1D4A4AC9D76AEF549FBA91D657FF06AABA5BC22A0D98F21F10848 +224F235ABB8581CB84D5A8CF039418845780ED20697C67C54DC08DB236F90E7F +3FA85CFD58F8482272C24A3996FE703E556A0EFEF88912B215C17570FD6B8907 +99054BAFB9A41F708E9E60F5222F2A04BB5946AF61C588186E5BCB493C12B767 +59FF2245407D8CBA4A9D3A3FA0C03A3232DFB19142D097A538D86E6988F7E15E +9E922729FF3AA455BE297CBFF05394485C96847BB526E2AE82DB06882D8F54A5 +EC566863EAA723BF2B045770D4104835AFD491F98D85C9EBB25537F26C7C7B0B +42CCA09D6157F9795BCD1140F15A6CD3401A04093C37D11B10E0E9711D825300 +D3869D865E54C6D681724473BE3A84C032F9F7BA36760C9A55D27AA22C47A22F +587C4BD5CB5FD947972BC07B989A52BC6862C96E074B94BEAF0EB7F7C95062E7 +CCF772BA8981AD90A904C217D1645D489940C3EC874FF49E54972132E57CF525 +91C8994AAD34177E48CB498F4A7AB891DF0CEE0E95DEC08A13061D24AD69B437 +35CD51B1F1DCF0DDDFE2FBF05677906C9F04B71C837EEDD00FDFF3EECF3EDBA6 +8617641E399868C99D30E2010D1ADADF1135C431DC4293CF49F2DEC55106D803 +396574D661B1460F3757D26B286DF2FFB814E1A0E1621A8A95AEB82FED39A473 +4AAA7A8E15F854E3D0A0B8159DF6F060A4DDCB10080AED2157AC943B3797B336 +7AAEDBD842DFDBBB6523884C413DFB3389DD944BCD8287E6A00B2C62021B93A7 +A2EEB2196414F490A547E5D5E154937669BA4223EAF0FB266192568D09F537C5 +FC7B90834E74E67EEA93282C84DFB0B74098779B3D0BD3C87546C956FF47CBE1 +355D66426ED9FA29140E9150AE09594793FB5EB47B2AE56319A1FB1E60D3887E +A695BCB4FB90578EC532FC5CC00C0A5989694C513E63A82B84C35C34114B9FFC +1EB8B8C5CE3985B68E4346D33DAC03684D509B8F692DA4E5CBBC5F3DD3AA2640 +A68E4799E5E795D2847BC115879FE8209715C1738AD675BE1ADA3EB3D5F78A6F +1812A21CCA203EF3807AD76123CAE40F57F36A86F482340C110C37A90B5978F4 +8D12C5C3DB9A3B2840F2CE65CF9E0FE961DDB0B370A3AD0E78C5B459A47F1482 +1879DE9F0D54CF209641F33904CC67954E847881518F9A5EC0C84CE13A062F05 +0B7AEC4F5EC7D3C8E690789A2E6F8AC2417B744CD726CC1A8EAC9437EB44DCD3 +E59302B014A1675E0C9BA31A85E0E24F4C186B6AD69EF92D930B71AAEC8B88F1 +F5DCBACC2CB9277812A758917F06EE76CFF1063E50BE9DC3015C6A430A004610 +AA76774A8FCC220F0A2C9032D5E846B747FDCF55B95CDDE359F10A17B1C3DA8B +D4221C565AADFE6BBE85055679091AAF17CA5F803FD538629679C01917B67157 +8FEF5E0C5056A62319E866E682061E28669128C4BDA56F122727523CBAF6F0C0 +66EB0DBC25C1A5C451BB69C755428CE82D2BF219EC08B50D86CF716C6853E82C +32C1C6B7B5B21FD5054AFAB3CEC3049E1544A4F0F2888EBB407E92769952925C +692EF6C6C79C089F9FC6B08004E21B98FADA350A21DB3A067EAF0818C09BE1E3 +E601802FC5D54CB21A5BE50BB39E499346B2E189FAFAADD5858882767F0EED1B +7F516E6354D024F745A1B9CEB4C3F2D261E309760E98984970A10BA4F0500313 +465AFCAA8EAACC28EAF3188350D866D7541C39D765EAF560049B9D3242AB61F3 +B2C742FD653E61511636342D0455A8BBED700E8131D312A1EF075D0E0CA932E8 +20450C5F14BE23287A8581FD1A70361D6D372610275D0131A49CEE1DBECF8955 +D62424B70ABD5357C516D626E6E32515F89C726492A9381FA0715057716974D3 +3E8ED869BB9F96B2A3EBDF22625AB44F327FBB63950EC9D477E7A891E333EFBD +D62CE0775262C32787BF33F99391ADBDE3E0389FA050E83F568FC0D180BA73D8 +8618DF6F1108207F06C9418271E36C1D4614B63BD917875BD4F188DF79660DBC +1CB0CF5B48C11A436760ADEC26844BA98F18E91D0004138D6BEE4D81A4C25BE6 +280BD06F19A14B2024C5336757A79D0E781566EF906ACA3D96BE9DF24A84290B +01953755B96D6AD739081DE0999CEB55D1857C617F22EC2877AECBBC3A0FD92C +ABEF5EFEA189AE4069420C33679A7DABE213A2A6444AFB453AC29836F93EDD04 +449E5B4B2198CEA897BB8D9375EE8C96627A4E96A879168B604F5E3C5BEE9525 +ECE69BF88555F9928901D24CA03B7E47417DEC627ECC8F4495577C4A8F35E8D4 +51109D6938B4C65CB786E5F349D306ED11E5CC53E58F521CC8A0156D87ED4722 +86FC177241A10F0BBB449E5E733CB5B5E95D205AD9D33F409E5892FA23324314 +AABCD3AFBA75DC6F817D6493B7C6AD9FF6046780C3763D9A81C45BE1E083CF50 +51A1AF582FD986BC201AC461DE2D980C06D995E2EDF7D8FFC0B060393FD14E0B +B7BC7F81B30458912B40D2227EF7176905567F1C8F69A4772B854BA5FBCB55BE +98028857DE4CE7AB090E92DC2B54295C7D46163E8C08C9F0567BE53369564958 +47DF9F6B46A49ED8A44443555041C9F9120E183D50C99F778A30ED64C5A7925E +FDBD2FC1C84EC6D3D50C424A1532110D97ABBE2E2F46F09AFBBE16EFDF1B2594 +C1F9391A4B969C5561B67744EC271B2ECD76A991A197D4D3CC8943C030C801CC +25791D1D64A668F285432B5DAD752AEB49D4AEA1F6503C32A0621D6F3D39D572 +DB969DB777E23293E2A2EFEB3CDD57CE9FF4E6F14E8137A998BA472BA799ABFF +C6FC7B4DADA771B85E6673A5CCAE8794CA4F979E688C7A29637A0297D1B41358 +4325272087D1106B5E6829F1E21A6C94D80957B6F034B4D72433FA5831D82802 +C0F05FF22CE05248DE1C26C5E49EBBB70C52D98C6107D60CF2350748BE025A10 +424DBE8D6FEF72372CC051A9D3A362523E0A23814DD86E57273A60D565A7AE9C +78E22F19B959F16FD06E23FF8368C90829A420CD81F314FF3336407E38BAF13E +4C90790C9480E1F09670297C14583B86D85CF64A20C67DEF29CF614B517C05D3 +1408F51B851166F4DF9137EEF043C756A238215CFC8598EB4C225CA2A12E50D3 +12DBDF86697E624C2B026E18F15A7B71E0B135B57C8F80B9B9C2EF28F24F95FC +0C55A5A58BDEDE0DDD23183A2A43E4967192C8BCC858C464F3D8420051E2018E +651D9582E55751969E4AB320B93786E754EDCAE72C02AB072EC2E9C2FD123437 +413BA485B535046CD41D8F13AAD3AACE818BFCD1E0C31153501B10257CCD0CEF +E7799210DA1FD43F4F4A64F68FF73A2FAE97C8A3427D368297F7BBB484AE40F9 +C9E94ABF52DD9C1DFC16185055E367076211C1A34D6B1BF0D568D1E5D6AF8E0B +69197F45B2970824C2F5AC3F24F738F371A77BB00E9A42DF896B3A78A5BE33A8 +46D2FDD25DAF9B5A747EB2846F7C46C051CE6439DE6D24E2264000220DD0FC1B +56907830E671F292118E9BFAB6FA2CBFA5D5B063E7AE8EA93FD9D110E04F7F26 +9F12FFD6E0296473615B2AF9C8BEB8E15D5F182013D08BFC799038D1CAEDECB6 +0C4D6F820E677A6914390FBF6311C5FE4243E1E0D01E648FF28EBE5570945EA3 +793D08715216210C1FC5002FA5CE7DF550B6569D0342CD152EAF04B84469D7B6 +2AB03992BDE3FC715236F8237E333A92DE4175CE9D9C38C9A3F28A072341A4F7 +B1D8B50E7413C85F44E84ED06B1C3CAC1D6B0DE5513B3227CC2BEDCEB4652303 +F320FA3020C85C4285810AC9444F273E0AA2AB62434BF863BFCB7CBDC9337F51 +2839A6D370B5901814516800B3F3CDDA49DDEF5C0AF62D11AB45A2B5439FE687 +415B03C5E8042336F0D22EA3785F551FAC8ACD17AE63848BD49EA4C06E3053A3 +12FDE4BA83871829384E5C0C2EE896B4F3258955C21485159F387A2350AF4F52 +16FAD04392CDDD72CA31D19E3C430B4219DDCE0C4AF5E0E454972E28D1949150 +82261C6260501C07C8872FE8C724C13AA252A8CB7F76A5F2A0DC997B13C5F3C9 +AF4F1FB3ED773F94E0EC66A6AFB5541F77A15893F485D6AF5A1582BE57695FCA +47756A0E3A2AA23AE701A8CCEFA4AD53BFC0D06E602BB5C37725C04D746AFD1D +E920C592414DE6652539AD438884CC93EE821624A14774AE620563A1B26BD72F +CB151757FC8ABFFF45FA3B5BE823D18ACB7658252830CE4255C804D698C48C36 +86CB06BB6CF84CD33FAD82EF2DC4F60DB918C5E11E1DFFADE7B18701DECF3E5D +33FC7E42B3F9B0267B8C54B3A03BEE2D9A0176EBDE252361BD5F0DBF2A9816C4 +13A49F1701D24A4B780D475231DC70AD41C01F4DF93CE793480C57235CEF0B9F +19B8300688E62623CDB05676C5D84907E5F8F3C88FECAA2ABE750E915A6CA087 +3B2FE38E2A624953C12169F7F4A7CAEC0973DEA035DCE5745418FF4EEE931CFB +0A9DE45BDE3758BB0ED9B4CB16592EA6E1670ABBB61404DA801AA118CBF676C4 +E6A1C2F027C24547BC0F04038ADC634CAED5201412387E3FE9F8403643746E53 +A28CFE4BF80988B073E3A94F1A515BD7A9B8923061CD16B6AB14D0CF4EAA58A0 +0EA117E44A300794A6EC769904CD539A05F245A0BE699F0E68263EB5F1D9FBE2 +AE1D7EB7B88E89F96062D48EE1FE313B5FB9576812102EEAC3383DC1019DE75B +FBBB672F233CEDBCFF5DDB509F8B44B524641FDDA6B361C7F45CC53C7802DC68 +60EF693FD44FD95C917BC973C7F02AA234AE72B4749DBFB0CAF953F00B01DF37 +7185D68225C2BFF4B134C14C5A176F950C0462BD64F08BDDD4D8BD12CA7EF181 +81FF12D67CA6CB7D5CFD47425798B7A60D26292C1EC40B12F2B693749B2E2E21 +36221AC346DFAABB09C5B46D7C44A5E57B58CD567F3E3BFFFE67644FECE3FA85 +CF1B93F38B2FAC5F8EF88A1304E2429C1DB52B9433D8898542D9081374BDFD3E +E818C316B7D3FA7B5AC77AC35A6FFF0BE78E130BE08DA99B91A753A390853199 +DD34E1BE87D4EFA0BD65C3708C6E4F493D05B4DA674A334689A00FA28F37F33C +CA9FC8B892C74D17AC97E09FB872EA0B42EA313713AA5A3B4643E7FB60EDE025 +ABEA631B03D8B5C489B6BBACB50EDF02B146CA120A491C31F98EF3E46738D778 +BE92114DFF885ECD22389437002BFCECF3A82AB3B967D549895AD2EAD722B1B7 +8B26A85844D260CB3BE028E013DD8F3B261121462032FA792DAB235EAB29F3C7 +D61F3183D8EBFA0E72F699808928C43BCA562C921C6934EEF85D57C2802D8C70 +411208FBC7D4CD4BBCF4C35092003E5E28F15BC6AA01A577CD8F491D338445A7 +316FD3B523BB617F15A89DA955D68A53069E53DFFA64AEE3B225CE30329E3126 +6FDE276799A01FCBF09D91FAB6BD9BB4E4195EEDD7AE69C84A1813E7065BCCD2 +84480A6B40814A337A5020DE27A642453DAC08D651D1A7B606A333C4AD3E4903 +0BF7001B47BE4331646A8BAD1DA7CD15659B544D18E986116590BC6D09CF9E2F +D073701F4CA8A40BCF8594E66ED37EB6FB4E5E6E11F3BDFDD77118A7DD9161BF +42FF71488951B77377E1A55614D792597C0CB84E040C63CC4266AA53C4CD0B51 +B2211AE0E9313F4B66F573679909F9AA65BF6C8CED3E1145BF147EBC5D0B44C1 +0BEEEA054EF8B9B96E2D20C7EE3CB12C36612D0E9F1DC7BE4C83A074F65B4761 +F8C356810994E46D30A3B7248BAB2C58A03F9A7DD2335E9F7C97284940D16F2F +072954F4C9C3913E92C96B4FCA84D379BADFCCBAF01E6F54C1D4C0EBD1612BC1 +9E7009FF0EF2AA58DA317B7092156F05D2D31CF902F6F93AE6DD73579EE1C553 +97223612739DF806D6EDE159168EF3B7D9E8E5CF7E37C727927ED3F80509D10D +D0A658F28D10A5C06469A929AC3FCB9B70953FF50756EA0B8CB58629844C537B +2F7A94A8E4CB2C76FD40381F362DDD7CBC0431FBAD6C6AACBC93A8F2061E311E +8E1AC8086072F207D91F423CD53DD5CA96B434CC935FB41B05873AD6000E0316 +3C79EE640AB5D0DB70D62675FC17BF413EAE9E4BF8DAC632341872669F5E66CA +B9E9FF914251B02C3B6DE7C7DA1E41386C80E0C9B6FFA3D268D97D57AD16CCAB +7E2D4C93CF0C156F51920356A5E33226D8EAD6EBD16AF8B7634C14BD447CDC89 +BF0E68A230309F7C13D8E7B3D9BD79F9CFBC03722C78E702F2DBF0DA3F76BAF6 +74A02769B296C04688A01BBB8F40AFE4BF7E6E9FFA65BE5C087B650DE011F5D0 +EB243F926513AB5BFA88CAB1816005FAE718ADD05ED338804704DA6C9CF628FF +E1AF092F50035966E60FC528B95872DE4BD0C173B8631DEFB9843052615C66DD +F423F3F77DFFC11B8C02BE44DD499CEB3C9522F47D6FDD7BF7665D584F7E30F9 +67E1002965F18E4B553A27E1AA5EE16D5A4C0A304666E4D844F28DA1C82F4363 +A664E935D36524CA174E99FDD2019B04077D4FF8632BDB64D22CAA5E73A63B50 +D64CE1626F514DB92A3845B6086C41EBDD6E20D487DF73D73878ABF61030B5A9 +733881AF30D13361A2216E33B748CA6D6D9C5BDADF31F5ABD47D7D76D5EAC819 +5519283C61065700A68F15859393D5AFB62B4BC36AC84418A98C84266E477E80 +138BCE2F26105C8C192AA43937450E15A94639169FD55B993C6AB60B8F8A0A1D +024BAE5E767C544EEB0AA759063824C587DC78314F142A4E64BEFAD6E2CDDD6F +7670A97CCEDAE7659CF5A71DF2A46FCAEE3E56D84ED42F448933972654F4BA4D +D48135CC49297465AF931B30013457FF798C2CF820418245421B52AA378F68FD +F5E9CE08A2493F81C2866D5CE1BC23E70E3A240443C430CB523210CF1A2479EA +44EF3FF026C39CE7B95E9380BEF8AAE1A8EBF60CFCB319405EF317E49DBC2B87 +56948E67107305F5FEF70CA241D0CDEF4036E1CAF816E7AD2773295B40002BFB +9868ABF66E216126E43B23D164A25E0C7519713F45208F40938D39493945CE36 +DDDD5D327DC6CC689B7F03CFB7C926DDD1139D8A35EDA9C957F70FE653702ADF +F4541B4326BD66E3F14410786185C04F21DE4D460DB6E43FD846334C276BA5CF +382614A15DE3F85B876520FD69E9384F92D15CFB983121C21349320F879A6E0F +B14281480158E357E9AA1B47D67BD342DFBAFB13C32C4E920FEC8046FFB9AD40 +DEF4F48C558CA22E8CB9BAD86EF78A8D4756AC6FAABD931D7A71126DA51BF79D +E24E5767912837B1C107652914BF01DB6AE287CF425E1680A52A959EBBD9B874 +FBFC33A2A4A1B516C35777906D2220332D954A20BAA112AA341201B1693EF8AB +E78094127C368894E437F5C947248D320852F1F9F7DAD31FEC083AC19C7F2CFD +2FF2ECFE227101BB98ADCE6286CE37F529DF94657B4765A4E0CCFBE2BC4A87CB +00A1CE8C1859D81E3C77FEAFE0734AAEAC570E47C61ABDFA47DEE8ADA552EAD4 +E0D3887330D1BBD3A6A39F0BF0409B44C2298C76871F1F34DE40EEFC4CD980C4 +8FE49886C0858943DD368DDD3BF0DA1F8A8C01D0852A8251BE5676A4BA8A2837 +3901ACE1E9DFA9017780009C1689610166AC7D111534B5B76DCB93A228D1458F +A4C886317967BBFDC3B0A09767B69215C50F1EE6F6F4F46AFF8DE9A3F5B5D858 +F3A17C4F3DD61486659AEEF0D1E8D9530B902DACA4147BB87D81B3CA5B558C2C +C285482AA8EB94830D4806C134D4B3BB450E58E14FA40EB2841D5C3C82398F0E +CD902D0DF24F0AA747F7A0381A7551DC366F76FC50A57204AE358E7DDFC645A6 +19BC423F739AE20B5994227D954260D99EAFDDF799DC2962570658B43872DBEB +162E092658E4E93858ECF24964A4A4B22DE61EEBAA5C23F4F6197A01211185A5 +DC3338C02C4D84CA652DED4961F69AE5A1F3DE2F979A10FE8BD727156AA56A3D +39C88D48B1C18D063618B051C854E0FE2B28610AE543C86C27FAB630C5A7CDB4 +157E231B35BE76EE9F21801517DB815B236651AD4B31D4BED58C17846DE52CA3 +246C4906EAF1E112073970A8BCAA0816752AE45D2C9863D25FA6C32DD4739F30 +944FADF698C3080DD4C17124ED6C4682EEC0C213AA92CACF0F68968E31B5538B +CC0E30338DD309BFD81EF1FF564FC8E7CBA25A4BF562C717785D331DEBA8199C +66B2C9EC3BF4AD02345108910180E7A56062181F7F0A140F71D7976575E5E599 +ABB051053D4C4FE8A3B80188A60EA788DD63EF2E273FCC3C4E53EE6920D25EA3 +94ABA08EFE3C136BC879D7543F29F66532290B50BB57B1FA69C4C0D45AE4E8DD +0C0FA09D9EEB537F394A0EF73187522C00C38BDC6A50BC42C7E3437236414F42 +0BB5779386D2A7735C1F44C5DF7EA11FCA5328FC5D92EE810A3765437530BB56 +180C6CFF05F885BD11FBDC0645DBFC70C3C1F362D5153CAF9DC64B16D6EE1A04 +ACB0C58143D09A5C5B71DB79F22BBC904590EB825B8E323D68A30FD72C8C4900 +E8BF78E5799447FE21F6F7686842EB76DD0A813FF12753C57CA6C202A9D8F6FE +17FBC56C5043A10317243E5432A64D965DE625C8E3D4F28ADC9D38B16CFB1D99 +9F1C2902D3BEB7E48EB83BA8576E586144609BC8F4D809992CACDB2BE163DA6D +3D3D92512D7F0EE1CA72650BF0BF3BCDE4725EE17198518BB2B97C2A6959D8A5 +6FEF49A031A2333F1BE7C074637C4F0ECD3253ECF6E2402B33AF3ED9ED04A8D2 +99DEB1ED4FAC952467EBC9043A964D080B736DCC94270EB49456A22D66CEAC03 +F25F7AF7FE9682F60117A5E7EABECAD47745792F2DAA54DE4BD1B21A3E9133A7 +749D74317EB1C99B7C943A38EAD784FCC9F5078ED97F9E48D91C60C411DED96E +F282F35CAB802C9AFC1B25A795BB2A31A86621DF59B601948B67811B52DD7566 +3C5B3441F75D89FC7A54BE423892B2621B14C5FC1A47D508F275E2F54C2063BA +B01E2BDF98349A848372D71FC4C5CE5A025151160EB591867EABDA5218D990CF +EE729E936CBF739B02120FBB7349EE42BAFED286FF47977A60681EFAA89BC5C8 +88506A495D727E53AD520CD33372F9B855D6CBDE8F60DFE7939BC07609324BD6 +0395349EF34E63110EAEB88F02DF2FEFE96AE7242744AD22055598AA21EBD78F +C518654C4BB3909686D365F5B2AEF018047354C3CB1DA6113687D7C005F9ED73 +380DB024ADB803BD8DADA345CEFD6C2953D08407EAB05DB47F14959B583408E8 +13891F637EE1F2BAE54D60EEFE2A8E9585E6D23A36DC93FAEF5F71D06FD64EF0 +F9F12B349BBE1636CF9F5B629AEC150FA8F740E9310FA5E7929BC427E43BE1F7 +F044CF15D316FE367E91FE4331357B25B9D556452EC876C757B70C2DE306DBCC +0032500BB384E4ED63935DB30E02B453F48DDF65879D08618B6D4CDA3A2AA3CF +016238978E4E93D7ADD76722EFBD2EB2236EA3A979911448D851F0A174F28D2B +3A35894FA9D607369C5DDD01B3CECCBE0B3709EC7A46D5A520F622EAE0C54132 +60527042C7CDA8E0A4685689768350809998C66C6D63BCE8E29A5FDB4E59962E +AF956DD9FDBC271599EC152234EB1D5BF391A44EA0820241866A1D1E478DA5EA +5FEBEFA70BF46FF81291F0D9B080360F78D9F196DFF8B258E2913FF18CC3B58E +971CF6C09444150239366C54F5A6DD457AFD67954DE677D2C95156D094CC46FD +0BC570CAE6066EDB2D177FC14A2DA2429FABC92EBC103DEA2AE7AD3338C86C38 +00863E2BAF6558F8039467A764E8005EFC2C14C1D87889A098B93E465737413E +894C44B6DC17804FDD2C741DCD71CED34CA3D6B538682215D3F4DAABD5F5659E +A10987FC7374400EF046253A9E26878F97E849DA13E18CB40C57E5461059917C +0945E5935EC73BEE9BA03FC1F699E189620EB15C501896E17D72059AE83996CD +B5B1B92CF3F1D48B9882A42FB4320BA9E6CD2366125C7EC81D4E3A96D65369FE +79F2A479346F2052645BDEF000D285FC7EB4CB77AC4A6F1AFE858E296D269F3B +C6E1C2CFD4B16A53D3BD6DF6B71526DCC334A4E981FE6852FF472BAB1D21D704 +6DC68A712AED306AABA9E88EF09E16BCF4D7D8DD42E8796B825E180E5D9E4E5B +C8A0C1243152F73402189B19C5D3A5C3C7CE2E63B5865219383C1430BCF02D3A +0BE6C4FB1F523188353AB84051A6B8F44ACA0FE9905C20048088CF3108395CCA +DD57D6B8FB9BEF7940EEE1DD45A11FCF99C40209EDF8499701B8EFCEFBC359F7 +BA7097A36BFA9146A378C11AACEA0F4B8C16232287AEC4533D3BCAD82D41DE73 +DDDF473AF4737256A20C327D56D89B1ADB41443F424CAAAE5C84F12461A2B898 +AD0410A754085ADCA200819A8CAF996F354D8E6AD3261EB7A0E0CB75A64F8486 +E7EAA5F23282DCF45E774DE8EFEC65445375F9D6EA5EC4467BB9CD76DF6ABD3F +2F664C3F9ABED9B0AD621241B3F1DE1BD0C9218DDB56E422091A767481401A8E +CF4B3FF8E9CCDECBC0E8DA54D16A9CF48EFB6BC2E2C5935CC33A182C7C554713 +412D1E1F77AF698CD4C306B038E3671DA1F7FA84181BDD2F4CDD34AD656BE9D4 +EA910977C81A2C26E3CB3EABBDF6A0AABCA678D07828BD89D263F4B69AB84CC6 +7F23CBE8044B586A22AE8F403E1A20EC4333B952722A0EA094FC09B746AEDD61 +6B1D1C2B53626A134916D51E23725C884996145CB07F3181B633D183F4C723BF +A61F86FB08262A3C4908AB49A45418575A8E42AD49A6574A057F9329208EE0F5 +9BAF502C046F9494751172300ABB5BDBC3C974DAAA6F2D417E239D0FF9F29101 +0A2942F02B54B4B13E4577AC1082F6BCE3AD9322AC9F44E588DFF258DA48A7D8 +F64E44A9FCA9EB970FDB2A3A8234FB2E9B6C9BD3ABD24CB49D25C109BF2C3985 +C87A742D4BF6DBF0BADD12D5D03E0255DABA0E99603DF5DE2F4AF74D58EBD9E4 +38B8904D241FE08ED61ECF181841628D0D6079E6E3FE3BD22CE7D2189D1B506E +243F5B3D6F61254624FFD0F56A700C829A69F677054EB6B25AADF5A23A1E8F1E +F144BD4E12FACEB6CE936760ABF9060DAD724D0666A0B24793ACDF55FA0ACAF2 +70B14152BEB2B292C04AFB9A93E9DA506BC16A0B3466923A1181B8100D794E76 +3837387F39392C913E2DE34E242FB361A1DFCEBB253F5D6CC74265D8BEA2AFC1 +47289DF70C21D6B5CA5E5AD93EB9D5DFC4FDDB21977196E3344158E822236535 +0AB963D1A4DA2BA987B94C443473CDF3471FE9C2810E975E31D8C2B4FC971AE0 +0CEDE0F89A09F3273C63B84DA89B96B2017AB0091A3A3BDE607270EB4828A251 +E4BE916198766F7A0C302F85F77FF080C7D187810B40C52BC58F138E81B5FA00 +EFE54F7781DD013487F5672B240B49BAC0AE33C82E3F380AC5E21ABCE2411CA0 +48486228EC282EF36D060B328BBF1CAA972E83DFBE6E3AB3948993FE716596D2 +390DF30F5CEF8EBB0E253024DB793A433F11D82EF67E669A4CF60CD97FD41BC3 +1E7A1760011B137A340A7213030D693DBED86DF4E6E004CA238F94BCFA032801 +36FC78C938EF6022EF843D00B9D695AFCA6E2D224D5E1BF5EFC397B083F473AB +D6A15CFE14451C5216F4F5460CFA7FC8A05ABA9862275AD223A611392752A460 +2973D2E42B02037EAB92C647901C9B958B170E1490E68EB9F5491014BD7712C4 +1DF15C5874A4104324B618F69079235399F4D850B19674754FC395DB567B8A4F +98F407B16CA29B649EB82710854D0DF765FC8A0D5E3880C61ABC58E80B3B375F +377AD39167FF395FEC6B83182BC88BF431D6BFC7FB8D0940035A1E859B03088F +D135A150C5A6849E346E2B3BAE58D4D6508FE0DAAEF58FEDEF18E437F86489F0 +7B76C00E2D040E49577B1FDC1F994C0B1FF9065B54E0CFD2CCEC146811691D9F +0B79153293D9EC6305B8E7C1853C5340229127C636C803CA54FE83BDD5ACA6EB +7951485C6BD43DF9D90D128F2D623C00BB91B48E004CD61332939A153A10445E +F8605B9A14DA9FE7F5E3CDCC99334F1B3B606F0179BF4EBA8565A235FF3743D7 +93B6A6C970BFD65F46A804517273B02B174AB1068ECC4BAB2FB2E7FF4040F2E4 +096F29F3D26335421C261FDFAD9837D5866E3C377B8347FF4DD4736B01DF44D5 +035EDAC23F15A560F76BF9810720AC9764DFC5DB523D6D6CBDAD636859A24FD3 +578294FFC731BB41BBA90D608ED14DB007E9A2FDFFC0438CBB5D56F328336866 +E962D329CA6D9F438DFF9CDA06962A08981BA85C89D20CD84C7D9524C6D6EF8F +41236E7678E3D045E480354827192934A1D7B4DDE2C62A9E107B133CF00EFC25 +F0E9D46270225DDD21F65B4A4EAB24A30D2574678712685D0CE05F41BDB02235 +7EA0C3238150AF25A673263C1333D5EBF936D8EE86BD06F7D26A067C11F25A07 +4D582CD125EF9CD7FDF29DF0D23B4D0C0473C45288E9415D6924DA2948CEBBC7 +6400B7D6963C438F4DB090727E2CC70F4953C0B5CE528F57A2F5CE5A12FBE201 +850CFE21113E9EA28E47471145F05CB23F558CD913422256B655038B0F837927 +E3DCF18BAF4205A5F915A91FF241B9FE974F82F1798EE37BE0DBF98FED6B9E93 +3068F6E3586177BFC69ABA6C9AC927FD8BB23F527377FD5D562A2F148598310E +21F22E1B6380C2E009D28BBA523D187FD32CDC799E2C0969BB1F12B83FC9A431 +614DE6421DE93F01A58C41789888A3E79F8C5D0B38D6BB66F3A64DFBF3168545 +969D46D7AFA9FE2BB58E22A10541145F800D2153F6D8F72F85728FFD69F0ACE9 +7B4334C54056A35734347678FAC819E7636B192738CECDA36B19C820B917B25B +B8C6CA1CA6A1A94B4373F16AA492D727672DE3B7C72664DE8F27F4522A64EFC6 +F7CE2A8F80963812FAECDB279E6F2ECF03EC140F4C5E064C1D8332E64F8BB14C +F1E116A11B5E38C48AA6433EA0E5AC3BBA9B49E74AD64B3B2D1380668200F13B +7DB0A30192B1826DEEC74083E84BA607C4622D49F2C976FF38179869E064FD35 +B8B66260590F49B9B552EF7A7A9F0FE99FFE85E04724A324521A9E80FA7F12F6 +D29D8F098F5C7CBA00036EAF24CB03584B5ADD692851C24F86635B556654B109 +24D560BB5F658ADE4C11C5ABE90D1FCB61ACB5F37206AC4585CCCF7E9C49D665 +EA574B3057B3E0C80CB61927D5A5CB244C7784510E7B11C544E893DDA3C6F00C +4FE1919432DAC490C88EACF6DE9B3C84F049B8118A7E6C4BBBD0B438E327AECA +45EA6A58169F2317EF986C5841273722B55FD4177940FC14B2D12C1ACB03F964 +24AC5EB572C6CBE37FE727DA542A791D34CB1DF05FC282181C78EEAC5D7D9DB6 +7671401CE469AD5C1F171F944E8EDB028ED9C4F089449B10705729BB453E72A2 +86412CAC3A555FDBDFC41BE5E6D64962CF857CEA030D617B2C960F17E3A49633 +86D50EE10BE9F8A9AFD2566EF00521F1BDFBDBAB61E99697D730A86164770C86 +8CB78D6DC799DF0C8B40663DF42CE3C3FAD80D5CF80FC60D640156080D2C9152 +F48A9C8758232DD8E66AE8AA170903C91C4E31C9B0E424B42A63D771CA5E0624 +FF748DAA74F850D87EA9A6F1FE4E775965B7574E452A2E7FFE523232636602D2 +D83E566F80EF322BFEAEE3DB7B5C7AFE9E0358AE032B4CBE0A6F5017E75932EC +78A5BE2BF9C4825278FDD4A1825929928FF4C24BFD9BA2B05E0201BDE05C4679 +F5B57046A4C01994E6FBA383518DACF9162A85ADBDC80DFEB8F42868BEF4AE03 +4486EDCAA9671FF399B84A1C12F74B6072192E6715C0641FF1A2A32582B0344A +63BA312102FF7FD4C06ECC4B17394A5E1697A4C608CB1DFB5A9321ED1655B00F +C782452E7CB9073F54963073968E118D2CEA870E257AC983B8B5C203966E862E +B2D353C9BDA800B22436521003222F1C83B5A6F180FD59821699648ADAC04682 +57CF95D673A3BEF39E284B297FE2A6B1D7F0CEBC69D0A90857AC987D336A309C +59CB1DB029C502DE2FD3EFBBED86AF61C9B3766B8821D23C03E8BF6AD3D0DE2C +DA3AE8E9EE54DB8E160009684DBAD690FD58A493076005F489B5ED766F88DFE2 +A1DABD32BE9712ED9EA9B305441F03AC94C72B9BEF32241256C4DA4555E0990E +B833C384BE7A92A7F640030404EC1D4A6075A6432A3FBBFD14908A6AD8494796 +8165CBDA28C4D8332F6546C371C3EC3C6E0F21FD5A7DFBB02D27A759AFC2931E +19F801151FDADB43C5F980350466AE9FD13CEC7F8BBF90F0E28C78BF16E80C0E +3389457B85108ADAF04FD74E50BEE6954CA84492D2470706B5EBD8274EBB6EDC +4ED3E47EC498819688DB7304A5BBEFA47BB1A736AF4394EEEDEB4263E1F6924D +3FAC685778BB8C7119AB121EEB63C93AA9A8BBE648A6AADF2CF194C28DA7F0D2 +4F85C00A62AEA20AF29A521CD9A1C9EE8E5C6E99AFF17BA75C446F04D97EFB6E +2DFF6FECA7CB4CF7A645370C51EB06F85862B0C18110DA75135C56E57EBBBE2E +7D3C3DA0383FB28E6D10224FA4B2E50F1792F158E14341DE960B0C37951ADBB2 +38D7271357A2D965A63FAA8BEDBA6026ACB573446FDB9C123AF30F19682E7054 +E5B86B554BAC740D75C2AF5F78ED9B89406FCC5D971131702A148C74AF7B1684 +EC1883C69141F06434D3D0E9EC6AC79E5CA16F1202F5247CB203E6A2AF814456 +B70DB7DC8DFC2F24CCF423DB1A69641361CEDE75B125F59896E6EF03591368B4 +06852E8695F15A794F4388EBE5C7147625AF0D35C5AAA2C24F32EEEFECD20E74 +AED62B369F99A8EE46162C05F4EF05441A33B1905BCFAE3F5EA397BC7C1092FB +1AF7F2C6CA837BEF33E95D9019429560A7C3F517ED4378F6B843BCCD11F8428B +D9B785BAD6FC6F4D7D63444B0B7E3CC9430392B874B228181C6D2C2718FCD378 +F5A317F0F18A07935F6DB5F42D05B4357D58F727145EE477A6DA32CB894A11E9 +8A97E791FDEC52DA2AF2030A189E9633E67B755D03800F1A40502C1297BE535B +C31B27D8DB6F926D5CAE3BC42EA40BF8D33E448CAFF90173BC6BCFF56B181C04 +70BD799901DE8B8E32E6F0321618A74ABD0DD2A7C67A3FFF03B5B8D21AEB3F68 +E6CFC594DADADA44536E7123AE58CFD60CB56DEC6E480266AD6BF609CFE6DE44 +295F8F993205D27611C12598EC43D8834A79F1A16E6F448554241D8F8C1496C5 +1ABD0B89FEEA2074BCFA3E682FBC1649E7E7334DA8958FD45ABB6698C0C79E9A +8BDD73CE632A47E28A0AB60A35C2884F7D811560C231D0D2B0056D7E28AC6D6B +35CC3D5D6F8088A35E9D5ACA841ABA05EB6FAD5D5E925A1482504EF7D9804782 +6D5813D99B8F6BCC7F399BC69CC2DDC492ED3C2367269A10D605A8B1AC6C8F03 +E9277CEAA7483181E0786BA595EF1C0A1AAA0FAD2B7E43394A97510476412AEA +06E40819CC69FD103235D182FDF0EBD86BA52AC589061202BA92EA3ACB6E3000 +D752406B520596E1FAA75727696B20C327C47CB38BC95E4D86D4E1D5CDFD642C +3C9DFEEB665E2B44C4D1DA33D35E82AE5549BDA38BCCE368DBBD3E505DFA09AD +7A80248A5A3B3FB0E5E1051634496ADFDD572B1416841F28CB136463598D7290 +08139E7AA77E7078BA50BABA20800F6A160B9593D912A6E4ED45188D5ED43698 +4D4CF43C206E42D6EB6B6F89A24BAB13D6FD3C488C1A4A1D381018C830FE1B72 +8BABE1C134F29193BEB0A0A447B0447CBAE066ED3617CE3ED1E98766E93AC37C +DC13F2626CE81AFB367AD103BD11E13C10EAE1371DB2CE7110BD9F54E797BEAA +29C7529BB8804EAB7233094DEA46B3F237C8782880AA9ED936D351FC94E94C21 +F3E3184D33F5F29849EE735A80FC9D5CABEB1BDAD01AB1F3A2426A878C78DCDD +0BDD33966F493EDDAD612EF582BFAD6EEA5F0AB4559A72822A09113ADECDF7E6 +3448F7C7986751842F9D3ACFDFF14FF4643EEB85A4C935407E5988690DAED537 +CA0CDBB668D4FFC47AA465DFA276B5C085BE2AE80ED10D886D63E18B62EF185D +0B3FE9CED6025D00453437F429629A16539009BDC4AB8A5B9AE20F1043BD4B1E +574DF8C71B4519F26910DBA6C339F5C3EF15EC4C7C1FD489812B51C10FEB91D0 +56B60ADAE857AF53593ADEF1F4B6DFA26BA06F044DED5A5C4AA479E702031E7C +EA3B5D457BE088ACFD31ABEF42D735151183ECFA7564C3F101C591A21369B61F +BB3F0E2E3FF6F7605AD499CAE59247417015F749EAF869D8BB1313706C4EEF9A +66E2F5144EF7EBA5A68AA690E501BD92720FC4B7E47BCDDE59E3F8E1157F278D +CD21D397123BD9E6E3FEF16D61A290AB0DAE78D90E5EB747E46F56F0D7CFE88C +F637B1AC0596F20FA2717D1960C32F81B90CA155E7FA8981C09D93B0CCC35CD1 +15D02B43F720702661B491B583A271CA689B08E5843711DA3A4AEDF39A85949B +146E9CAC8665670C45C0DA5CCF1B522CF7FC9A8966255F38F47F72C64EDA3713 +E83F0484B20E7AEBFE1731C7011F450715F15A3E7B07EA6178A26898705EECA9 +7E18A5275647D5DB7527A6D6F9DCB93E92214DB092ABBDF2778098AF1D3EEBF2 +1E806B294D857FCB873227D2AE69FC5E67F25499B70CB2A9FAD6E4B0B8DC7D2E +DD670384DAA7321D8E8858310014DF0B4A58510E5DDEA6E9A0F3A2743CF2EB27 +495FD5895EEE08C9C1C422CB0766C075996BAA1C270B6688B546226CDE43F537 +D624C40A5338EB8174421AB069685D2A9684B2E4B9B9C14C1A1F7060B74289F9 +5CAFF3DA5A9125147BD7625BE2FEBE90FF8311CCC009FBE2E2E87A557EB78F8D +8B33D42ACAED2A4B0C17126F159E9F015FB89021433F526C1C9EE02B1C23A145 +B330A545144EBECCD575934835DB0B23ED8E99602392D24441A9C8518F6F103C +EA9E6CC0C8A40E4DCADDE5F64F3A0BC14C9CA724FB5FF7AC1655E257162D73D0 +F76345F7A3B5415909995E00D2CDB77661E5D5F5E4A10E2D0772AA0073528EAD +BB38EB17C8D4087F2CB77F121BC8BF7E049257570D9DF5FAAED5E4A05F864291 +4C37F98106D0EF4F392697C5890AD51C57002392866039FDC22920ADF88FBB5F +7AF572229C745D77FB23D67836ECA10C00948B615D8DD58C9137BD1AAC5A0285 +5C8B832277D330F8C44FE027FC0A04A7D89E5290720AEE910C34B0E8D87C6257 +DFAE337E0943FA94F823886FC92333BF7354293758DFA3691BB6CA39EDB4198D +C1059EF07B51603B5084CB1734979BC525AD4E09E67C9A8AD6C362B2B8AA767E +7D63D1B36A8D1F337DDC54EAB01E1670D8477628DCC736F224AD9D017C7C7388 +5CB407090459F47D5FCA493338223252BB9E2D0F5D14714F459DE77A60DF743D +681A726C5C59523F0A91832B3E3A5CAF36023F0D4D479227078E9112E0DE1C1E +ABF81D19D72BA9E4F6C891E782D4B53BD78CCE28873C6B284F0726A7A2BDB85E +89A6D6C60ED42B97D79E7002BEB12DCEBAD8D7F0A1C50AA27191450C05FF41E6 +49633CF806ECA2C3A6AB28F6B475D69B4B00A8D2EC56C522631FFEAEC7F9F3D4 +864982FE942D5A5E55637270355637DA1B7410E0392DF5EE3D9C6DE8C5D3FBE1 +057A51F0E8EB43FB340204946C2358F529E0E822A5BED0C543394BAC04AAFE50 +791DDF4772C42F08453C36053FA15EF9478B7119874303C49E8A932EE99D71CE +8CCCE5DD165E2B1168EE8833F27AA3ABCE0529C4CAB3451A27A4765BF980C8A7 +63F9F3E21E04B3B0A3E8E14F6665F4019C98D808537A6153CEFBBD6AF053E806 +803CB3F2A77C7688568F6FA1B53475A37BFB7DCD99C608A0B0803B7354BBFC54 +4D0D6401C1982633906C58B804B34F07AD83168EA818D17984226D6E62BA42B5 +A30623058F33F9A5F109CFA73482BBCC3DDA3C2154CBF2CEC8F2C884112C990E +8B4CE7DC33C4FCBDCFA8B125DAB2A1975838EA784920322CF8FE88112A2BE480 +9B73343250FFA5D81305B8859CAED4FDBEB8A60DCED0D6ADB2684F4FE0375CBA +36954B10EAB8C57A1D74292538EA17D4F30B43E307AAFF8800D864D02235C770 +3E23F75551E1EF89C2623600C97E9DA224FD9207E33ADF1BFB3E9B30DB5DE31F +6B864BD41AE314A72DDCD78F503BC76DB1E2376867B380CD00BC21FD8556434E +090B66D0BB3D04AB6B8B8003FDB77873283C6F3AA3D2F7D8CE2406C175446219 +B360DDF7C0E782FC3DAF614D4DEBB886E4CD48940AD790ED782C71309C739B6F +9CB825AB3646E19CBD01CAE44E09A6B88AEAD231BCA2A680F9D330428533770B +8DBE47273E11180F1A1FB2838309DDB4A8B2802C2BFBC35A4CF9E257B60730E1 +9763622558F148C648E257A8D7561DC0A7C20632FC3ACD54728AC648D994632E +83390CCD0A3E280934A717E57670151C2A2E8DDB27B177B1B026B2C4F2D1153F +7D0C634A6F3BEE37A6BF61327FF87EF3BD0DED5BC391640131FBE9C36BD1B7E7 +508FA0EA49F50B4DA8F21BB7B66DEF4142114B73FBE0D299A4FD6487E1CFD2BA +B3D2AD6A461B6F809283F70214AE60D56256CAAAA55F6085DBD1FD48EC73F2ED +A9EF7495D6B010F819D518CCD46344EDD05AC0701C55DF1F16AB5EBFAF65993E +3E9995B62C23597C25EBF2FCF562B4B7AAA18B455D220D5C4ECDC6A213D15DD2 +A33349BA6054202AD9D9A551C589B2AA9D0D7E79AB383C63BEC88FFD34F64234 +DB09A3E46A0EB331FF050FAE937C842114CBB3E823F21A9962D979ED2ACCC5AE +987676433A5D2F7BA90F8000FF03F2D40B3FC37089C414EB2BE562BF5432E21B +99D82E568E83A0EDA2E6CFCF65EEAFCB7A4B53AFDC19618C2B66DCADDC1B1597 +098AC2C7953687115E5AF4DEBD9CF2154BCDC03BA55F136107AB04D539346A13 +83BE9897E764A5EE5EC09EC00F57641B9A422AA18B94496132CD153BF3440D50 +71E810A8D963207081C45F6099CD0E7F8D70A301934DEBD8465053E6E975F0BB +D9E93373517991FF2AA52B90F6E93E200BFDC54D8C92AE3391504A5229EE974F +5B5685607F41E37BF73A2217CD3BBA5627FF798351285E496083C94358F19250 +3637B8C5CC9AE93512F91D48F2EFE4BFD7BE34A3498EE299577901371968D096 +59D13F6BB2EC4CBFFE7D88AD3C3DF8B7EDE274D1C35D61D4A0D271A231F875D7 +5F5A855365DE34F7ED3F30145FCDA01D0A85E42E5E1C7F6648FB6D8CF6D4AB04 +BEC06996CB70E6596BD8427619AACF4E9754032CD56CEC327D4BDC93FBAAE3E1 +44FF8B53852E923A8F62F139A04E4708F20B7E0319331F8CE1A164C5DCD34AAE +6836AE6D9E88371110706CBF6AAB618EEB621B157B61FC2431A941BE744946DA +203663CF3748C087E1008FA2DE7DA788685ACBED4C59DF435655A7AF911AD7A8 +4F7DF24BFC85083FB7BDC0540419473E1155D4D421EC999355C4DAB93F5E3BB0 +8C925B76998CE004E3D4373F05A3FF0FE04C70FFB4538BB086D2368408A83FEE +B250DB443FF431A995F63893AE7AB44F4229793AF563CEA9F790AE6EEBD05AE2 +6E3610B35F803D4357EF43B2F03B54B3FF2541C3DF14AF78C2F43343310E4222 +D49DD873D49BB4C29A25C39061D597239878420405FB388123A084C31C1CE76B +7F0F5705F834414DCCB24C3EDEE9980A9FF8F6D28B7128CC63861915932D718F +F5B06878537DE06AE78E3378C8B9FECAEBE5EA30F4DFB6CEF78102FBC4D257DB +D25310B54F2326CD8BA462D5A893A145A041BDF452A3E45565DDDE75CE22160B +CB51EED0E5724D1A92EB69C93F249FDA47A8ED49E4FE0B03B3565822B965CAF7 +8D9BD0CADFD03C7FBEC29E4D9CB0C34A9BA772C571FA51C5656F97E9FB098179 +61CA5CEB90F4D3195073795B111FDD11902CBD644AFF5777DE5AD06FAF697357 +F717C9A2DC45494525C2AEC6ADB80B4FCA85F4AFF5AE4AFEC5A32B135E7FE851 +C039191267D8334703C8102F6057571F2336A1846DD46DAD82FB74F40CCCE2EE +0D54886C6F2818C9BBE188C4A52E7B2E8C8356FCAB680E6EBE80223AF2FB6134 +AA28282250CB15EAD20AF688235E04587B4C8BD37EE7FF0BFA8953868375424D +32308C9F081B73266FDDA42D7FF1DE7ADAF77A757C94049DCB82D55D2BC423A9 +AC7537696045EBC4B14827394A607EAF4FFD72DEC7D7EACA03C2AE443610DAAC +622C9BF4488466357C82B55F03C64462ECF180B59B8F1B70C875E40C98BAC242 +9797BD9A77C82F5AAB281CAFC1688B831FB8673CB9E4D898FDF2439406494D28 +AA7D1BFB8C1B2AFF79C5A2DB909DF320067A2A986649FCB57FE547E18383B1A9 +C694B576F701629258713B66A048396FDE77382F995114D678A02338C31A3509 +EF69B0E670813EEE69FE772D9450B52FFFE08DCD86A4284857E02B9F57BB8ADA +261787A2B21B1A2E7AE5E07A94DD75526BC8135E9B36AFA93C41BCCB2B3E1720 +81C57BD525B456074505BB048491F98E5EE326B8CFE0627795E9C4981B47EE28 +7652A56D72BEAE91F66C3F8DECAD1D1FD18DE55196B5A342B3CAA998306C875A +925EE117AB4726540CB4FE5890B688AA1A20AEF7D2F277D8E7B6084264138DB5 +96C323282BB9612FCB1525A0AE0DC5FAC1C331947E5E82B5E3F6EFF42173351B +63C52D1A53C158370C53D8A82553C9455409B2499C9FB2E521879EAC709E8D64 +FF2FC73BE3BC71BF0F000C39EDA2E2751E2A0D385FC146A862C254A56DDB0FC0 +9150E0B33051D4564B753D46D097AD98F480AA2F1DB9E8911B8AB174210925F9 +E41C4F51FB3B83C306B1BFE08B7D7570793E681E375B5BB146FF3ECB7250944E +957D6C23CE68ECA7088D6B23C75707D070C6152AA8A0C894706E7C08BC358074 +8E9471565C16FA74AA674E87A6BD69FE322F8EED66B12847A4341F2FA45C3F03 +3EE66050644E837F7E865622640B763E2FEF19F3727CFA20EA057ABEBBD0FC32 +42EEC35622269FF10BF9978B1A6F9EF24C99BD1CD4BC82CD9826FE5A6C30FBED +97DCC4FF2352FA174805742D2BBB0B46B680E91A44CD57BA51EF29C92446C7F7 +9D7BC124239F18DB8718384ACB9D955E4E9B654BF9776FC594F24E123536EB14 +7AE0257EA0A1C0111F981C7B7F68BCB118E763A68CBF6019BAF8DF7BB90A7439 +098090316D27956C98914F1E7C12FD50E7EEA20B4461F56246BCF022EAD2DFD3 +D9B96A3D42BD6C27C579B06EF3BDC3E02D884B891552F90F3C35E771F432F3C0 +0CE165007162F2615273B07FB3542C75B12CB0EED5D49B6093F057EB7856F578 +BAB662739B6777E6FEF02141059AE018612DB6C09298DD3545008BB0258D58B1 +DBF1A8CD045307ED8013FBA3A7A35880B5ABD0C8C72B12A4A14808581CA8438E +DD8E35A911A03CC09EEA7D12BF4BB7278AFFE45DDFEE695D085D08F69C917BAA +878B82BA1CD5669F1B317F97F1A944D5BFDF618B09D03E44C73E470258516910 +7C5003AC4200EE916E82A6E03C1E35A1DED5EFC129C5A8712C41890C8CAB576E +77AAE0600DDFAF5477218DC960F74D005960101158140ADD3D61395E02258288 +0FEF5C688C5170B49332E6C9539B897B799A9BFBA05B79F7354306166ABD42D2 +61ABBA844F7C5642050F8E4B0B84FF05E045B7873D7CF1DDFEEFF05CFA68FDA5 +93EB6A522AEE0C3BD34F5AC6DB72658596E282033CC7409775DD60D00B87F022 +AE59E30A88D63CEE9E70F0608A39FAC34BD3AE89853011264E908150EF342E72 +800618215FDE842220596E32F06651D3C46487DC5F83BDF830E3C4C5BD6933B5 +9940FA1A11A5F769300D4E0A8C05C217F0C12300A4127CC824E7E43040D72416 +F4EBDD75E167F0EE2D4682A0039736F320CE52F404B97D7BC45432E09567691F +24E773C0C653804538D055BA48D2607A03063E4FA8DBB425329AFDCF724A5BCC +13264BA2CF1230BBA90868F8CD2A55C634FA406A75B13C0ECD7394C3306A3D06 +6F8CFEF65C1ED8157E40AEFF0D8E17F1E5D5A2DC354BAFA09511AD14234E5243 +8D28361474435A3CAFE818462811420FCC05987FEE53BDE92ADFD9456466E094 +621BD907D6D07EF0970EEA89124666F20238FB8D92838CCCCEE582FAEFAB26FA +F46544B2EEE505503D2FFE0C35AB3F1556BF8566802B975395DDEE7B494B9A22 +B13D609E94F18A1A31AC984327703DB64D2AAD01C112FC84997D765D49116B12 +E0E47E26DC8EAD47FF62E0C9739B9B54463CF63D6BCE334F79268AAF5F1790D5 +D411E219EDBE8C5D75676D8B543659B5CC040B306E6EECD2E4AC70890779B0AD +4878922CB0EE549413618AFC7DA3060527D9A0A004B94B68F9ED96DA8504C6B8 +6571D6A37A81C7953715C6E45DE8E1939701E7FE8B149067579E25F585321824 +826F1064FCF6F2E90165CD9CABB2AD5F09C679F79C3ADC15005CDD2904922A02 +9904EE5B09CA042C9C0233C302129AAD6F2C591326DDA30AA97FA0AA4E571F15 +F5DB0A7E0B4DFCD1F921A20D412994107EE33418FE30566D76B4463F75DE189E +58B2546D7F7A9FC840E1FEB18C298A0728BDE977778A824AE27734BA5B503041 +7F2471D9BABD2A605F1A3F5BF9C43E66539F9EB55EDE97808C54F416264123AA +97796C51C9C277D2CCCD8CE314DDE7993474667086FD2AE19500F3244A97B461 +B76DF9E4025B35D9541135D0B1808C3DAF3A0A2FDDDC9D4B4C647B0DDDC34890 +51DD60F711608E96A60D368AE92ECFA0FB879A257B691B508F4F0D3ED1F6FC42 +D3B3F1CA94F671A32040DB5C239E39B9EB9110129635FE6D0335D8BE31AD29D7 +ED050C8CD57B55A67B10E03EE61374156800F20B69D2D32A1CF68FB9240825CE +AD16D4EAEB25487CCE70E509FA2525D36E5B3EAD1AB7A5550769092EE05C605A +DADA518801009A9A88E61A5C652163A6E415DD4D1CBCE0B5D29B541759D99414 +66A3553519EE768A648F4D3233563DD7C10F3BF38EE35116ACC3579EDDE702CE +31308E46F995EB9BFA1E9C6FB61ED915B2B4CA0A58DFB8B631C0C10293263F9A +26D65A711BC479714E5A9C8F0BF282358323D45159C2D48D348D826D749BBC6F +504B14915A9371D096F52E610E394906CC0718E655F7B89378981755F578EAD0 +C7DF31DAA86CF07954EDD396660851216EEF0E04A0D965E44F477A7C9A28C87D +2DCB8ABBF3012B4580A80E746FCAE32BEE0B5253929CB49E25C14325E65900B2 +4CD581C81E4482415242CE2B7B1E497E40AAE81910AD3AB08495D241A5EF6E01 +7942C5D53A16815852EB8363EECCBBC517886E96F1F38054E4B87DCFD506F871 +603E0F4CA2AD1851C48397EF1663C24C1DD26C08A80D9ACA6303174F730B6C48 +871DDC6A030B4C04FC44516B159091F7298232F0283680427AEE9E1AFD164BE2 +B6D28F03A4B478289B650B1CE8275AE269609687F1774E505C73237945D0F630 +2DBFD8FF4B2FFAC4E96D08E28D229AF45B75C4D88E1A07A8F1D31FD51CE7B29C +F9250A7D833C004E6DDFC6B11117CB3D387E55A41316D3DA7273C3CCCEB74C1A +F49860CB4887538A91EF941CA15EC873CC8D8E07304F414A5CF24B5D0A586945 +572A8B602F0C845595DB69999FB456FB37BFEFABFCA7A65A9874332A95E3A5BE +5EE10A9BB1DDE920A0DB3FF8829F7984C7CB05351BAC7E8E2211F2570513ADF9 +53C6258679E79C0FA768A25AC24F92D3D76F067A800DF73476360819269D6E47 +360353EEA6E3C3C5D286232D8942DC1C3C899B18098512C50D70F8BD183CC9FD +39BD14EEBAC28942D9DAD4E6C8C42C003A8D7D372F7B2170FBB18E54A0DC01FF +3A2F31D47FC8A19053D445893279017FAEAE36B261A588C1B8B4E3A86AEB7C8B +0F62B2AA14B181320F21AA5D238312242CA4FD3EA3AB95955BF55CBB851C2A0A +78BF46F70EB75C6CBA8F5EF35065809BAFA5B0902C218A116FCB5F713F84FD68 +FEA012D2B55203A62B861FD6F287AF690E1CD1AD5AB530E03FC43C8A22B39C19 +E9D53DE5679F7E92F676F1F79BB1E9556FFEE4AE6103F7E179030CB2C733D536 +6396CD7928DF034D46F0E8DA619307F6FFB120BB1B0A170775FBB92CAEA5C7FC +B7F3841CCE3941888FB5AF3A83F6DC89D29557E578542B134C34D099EC982BFC +EAC959FED3616EC4CDCFAE85EEC5EA5F28CCF812C321D0EE3498327B7E58C32A +7FFE88ECC453618ABEAF6B28779B399B08869AF06EA3B46BB454DB8F08667352 +D0DF5706DDC7C5693FABE3FAD07D7FFFA809F4916599A05E5FBE6DC4761A564D +AA588B55403D2B00B70975EBE71E793CFCB57B9D03D2CDC48FFABE73BB049D94 +AB83465F7B9845BBF1907A8FAC3AAEB30C150EBA3C7FF155472EF1A67ECA82F6 +C1FEF3940FC776395A181153C374A54E5B61B7CDBDD64FE08152685143A62920 +300138723A3B0E50D30321FDAE0E8FEED5C65FE37EEE424C37AC789AD7E04A02 +00294D88472AFA3345ABA02F13E0D6CBCD690B170B19AEC52C6A36B2D1328FA2 +F14439288B89C2AEB1FC51F1BA48D330AA5970C1623623B6CE1E7027BE9DC907 +E75BAE4488AD4F100D4C44BA097A36C56A082DBB18CD07BAEC0D5A7F2A8923A7 +9248A87EE9C95618819C164072ED55ACD81ABF399BBC3BB5CF5BF5713E8B6F8A +5A3490063A2C876CFE5DB40E63E57A74DA97CDEF621FE754A42215A50D4D2024 +1CEDC2551DD2EE9D0A9337602F5C9BD43A7095E44BE118BD160C1B9DBE7CC02B +51BBEA0468F3CD3861AFF1169FF6F7E7273C142F34529456AA5B7BF34CF082EE +D536466CC9052836D2C62C256876AA2A6D1D6866D9A6B54245FDE270F38846DF +E4879580C20D062BFE81152E7A006C6CA5CFD2CC0210B82E20E6C63C1BF64E7B +CA788E1F5BF13C4CB4AC8FEB8450C2A97BDA68D568F07C51E2B6282093AD4465 +615E924B78927453F6D2B6C1CB2AEABB0F101FF56A0EF43C645BE3C3A3251F85 +794D7BF47493C321AF81D9EFC55A7619A394F4E09EB141E9A433A354E34D0264 +71CD3AF90E595AD9FA28F692A9396691370FF3E7A8FE9BDE1336EAE0B0F9E8FC +B5AAED951EB12C098287D5FDCC24C305042ED0F98BC8CA2947771DE92F89B761 +60D61D864C1BE5B851A090E94F2C07DB9FEE87106D63B9735B932475F54A5192 +31A27876B07067A75B1871CC4272CF947CF56364BFE3C8CEC68AD410F86FD977 +68D05E644CB6911CF15638038FB6C950BA44D10522FCBA73ADC9B42140FFFD4D +ED85FF5CF08F7460B13989CA3CC35984C6F1D41F9044ACF70AF5B9E0E68F0CAF +70930E158F76EEC8445994DFB9AEE8F2F3A6C70A7B56BA6D2EB787FE45520E24 +5B41C67B19A6D329B7E972020A8E400C49370CE63F3B218593A2255560C4E71B +2450185232C9BDC258CBE8E134C30B12D6CA48F8858F1CD30C4693EDD8557BC2 +57A3C6C470F0DE87DA40F576A7099E0D8DCA1BEFB9CDBE6718CF2DDA7C4D694F +D95E91873E4BC9465F76AB7819B85D8AC8AE10ED1C119340AEB5DFB6A71DE2BF +F43EA3B8D350FCB53C3365CC9CC9A68FD6C30FF218927B6ACACFC682CF099DE4 +EE9518DE4AE5E7338C7302E81C4C6342DA22CAED1F7B8C260F748596DB6EF7DA +1EED410BF2165D86808DB8577ECF960ED19483AE262CF53ACC938DD4B48A0C2E +754A991E3576761CF6B85DE76F7DB073991B32F88BC44D0D992E189363A0FE66 +D24C3BBBA4ADE914C3A71AF63896B34B6D865D9CF0FAD2AF18DEDA377C1D2335 +F9F5B81C6B4169186E6119A2D504D7F1564393F1C11B1452702DAC7CFA1560B2 +7EA3DB71286541E64DC5545041647F6F6857DE12458EA81E15A809FB977A6A6F +FA96B42793A3A2D14F0BCC000BECDB11440E499434A8188BD26D3D63A5734CC2 +2D16704D7C697D2DC31850592A652C38E24BCA7BB2950A26ADC9E6E5EA384431 +5ADF0E4B03B04A019452855C6438BB075B41AFBA2668CDFAAEA5439DD9016B36 +65BCFA9D744535A2F061671C5B30004FE3218F34ECABA13C6CDEF1C9DBC67F2F +6E4158683A7E13DCD95D659108468FB7B55F5BDBF4FACA69FF9695C7C5E8A9B9 +6B03E82A9BB5F0B519F48944F2FCAA988ED903EEF239347E7D46A8E0973653FA +548F768AAEBCAFEEFBA5A1DCB3B7B4AED2A87DDD4B99E1C48814806D3F5F9338 +08D95ADD70A2A781E515042D9E5DC76437F1EAA2F45930786E3185372279302C +642251C5A9AE2E007427A260B70E6158EFF569FB2D9264F2B02353148CE2BC9E +35E66B818E951F4AC556BBFE74C75074484C5266EE62BE71930A3403897443B0 +48836FA1BC5F9A45D04553F557C9858263329FFF3360B902E3A42E904CF736F0 +0A21B694FF960495775DE53C438514DCCF276D1D801D95BF1A7793C59F1ABEF3 +FB23208B197AA8A3BFD1BD23D7FADA5A14241C882474B3EFFAF093318F719DA5 +476DE938A0A75681AF592E3C4228902C12447B9C3CAB48BD1BBC6F81798C0549 +5A6C1CA6AC2618B1126DA158E23259BECBD99819DDD99E2A3C5918A0EFA3C7D5 +9ED8EF81080B806CEC60FC984FBC5EC83ECC883547E423B52335D9462E620B1A +A68C56E739889833A90ACFFB2BB9DCBB557A0BCF4F13F6431F91F4C05BC07A79 +C1C9A84E9E749FB3DDD10824648F000FE86581356847812D5D5267E45F917D55 +0EE88ADE04EA3FD133D66555101B9E95D4B086848CC5EFE46672F8FECC88C4B2 +9E6BFE0004777792A1F37F6B8BEEE1E661939AEB73CBD6C5CDDC6650D11C5ACC +B931D52797AF8A35BC0A4E8F82683F294CEE91CC146C3EDBB010882424F90CFD +130234B84E0186F45A4B3644C024F7C98364EFD6ADC07EC6777FF2B9821FB2A6 +3444FFFC1C544CF32997CE7F1566E1469B7BC6CE0B7CF3A9C90BD1AAAB5FB2F1 +BDD5A3984B3FE378EA9C10E0207A017C42DC5F807D875D10801A498B06BEABBB +0FEB788E96B64706CEDB1710A4C2685F367C38FD3B118F3822C6E6D8FE8F5CE7 +13F909A44EDA2DD03BD8D8376FA3E65CEBD5867464F9B80875169C5259418F40 +B6C35909EE3CE5211A6168214F027056825C7AB87C607C4E186224B75E19085D +7C2BBC638DD3FAB1A0FCC5F06D262FDE37C1EC2064C610590E82697C305E6ED1 +AC4026DD64FF64408794817C015E03658A6FEBC76BC99299BE2C7818214A344A +B3FAE4F62231B08AABB030033B65551B1F6395BB7895DDBE1EAEC6C0B2EBF0F9 +37D10DBCC54B80B8085A8BFAD6878956F71D5732624E2C9A7538D2D3C1AD6904 +C4DF7B6C38539E3D109CD8E1A6E2069F84EDC455731D3A13549508FCBE0CAA35 +6A9B139E235D23404CA90DBBFEFD31AA7B9C7FF5258C68CFC70469AA6385E778 +9F1AC38AA2F2E47361EAD7E33CF78BC735F172BA6691464D407492542A93E597 +4E57DEDB427C8A4B0F34A870A648889D40A109ACA71EB8752108758E9F994E09 +D69B409F4D03FC8EFFB1971D8DAD7F2C4AAAF056AA0380CC032C32F952ACFEEE +68A98759E7396B2ED9E9A000B07C6F208A16D92C0387A0CC97D90706D4CCC41E +637DFF688D2C83827C574E44D5EF0FBEC6B87CC2FD65F232ACEC5042E032EA95 +166C218C58B4CA353BCFF371E12BB467B506A25810B223BF2496A8FBE883C4D9 +B574E0CCF805D9E7C3A2DCD6E9966440F9903856732A191F2AA6F297F3DB95BA +869547A74C93194AD41C7D9B07E63D225F627A94D37CA4A9F6C2CBEE708282D5 +337F72004F18A0141F60DFFD428C7F05228FBB221629A9043170F8459DAA6BD9 +018F2683EFC15737095D32199003F23B675B0EDFE6335FA2C62D585718342627 +D6A14252DD389D7DEAD279ACB0638C105F40CC47F5632920BDE0AD7E67BA3D89 +7A484AC4114F98985D5C79352DDA68BC2D26A4BA9A22577F3A163398748681F7 +F64F4324BFD63EDAC2444FD0590DD4809FBD6B53F850F4B56CC1E664B9600D88 +B368981A2186333E084CE2D66AC205670A1DE358D99F607A784FF90A90764D08 +EEFC0381D980C114EB4848229AFC265D8450F6EBEBC81AE2B43E2816F420D792 +CDDADD0CC4CD0A4EA8FECAE0CF22ECC1C0DED52C735CD0ACFE449F77960D6404 +84C2A1BED824999943029AF070243415E9F7F2B48800E69674351CADFDE92C06 +08C21885DA3ADB4F95F7106C8ACA18A1EFC94381246B355BC12EA9B8D7B570B1 +C4982287AC49E6ECCDF1D19AA6BD04CD6B5354CEC3AE4440001FBAE720BA69F6 +9B7B905B021FC05EBB148A8C25BC858D76DE3FC70C079EB5718843F318CE36E9 +C3ABF9CAE531EBE7BDAAAEC9672192409A0C8CF3FD0768FD20F4DD4FE10F955F +471705C71F51F26443F71C98ED6E8EACB50DED6D449C787BFFFF3BAB3549058A +FF7B7EE4626780350CB5EF9E54FAC5807480D5DC408821EF453285A4F828004D +CC06C2190DDC9D2B5E2169009C65C8A684E218896E85F6A20C11EB509AF2EFD9 +9240589B2117746C9B8E4C68CE24166C51E489FEF9C88910E0EA780DE4C1C65C +5775D5FD424F0F4BD81C2C84F089AB732D1774F2E2C1D59C5DCA2E56D7D95A93 +C9DA0489A67C9FF7403E66785BD9A58B3A9A7ABF6794D3298DD50D68CFBA861D +7E37DD60438328F58821FCAE80CD433913F2968F20166132FB16A38C19E4F18F +7D288314F191B16975C42232850B0F807C41C3306865D5959A3E39062B2C213A +5D13BEA6FD18D2E9AD6EE7BC3A220E0F1DD5EB679960EFFF84022AA4C41ECB86 +BB060296A6AF4A1F3C9BE15ED87458D0DE6E6DBE893EBDEFE61B540E70628726 +132AF8B6C4F4257ECCD26C762BF8F30EB5E33DE3CF54B1EFF27D240BC1FF7F6F +A2E675BC2F942CE091B4246807A8B4C1BDA8EC3F139586CB3710E5451DF547D6 +863FC7A10DFE0A7E3C6E7D61681D9CAD121213108F793DA91860287E2F823B00 +D3FBF62D24CEE5E9F23481B4181A30F6252C960B637ABB0C652E61ABB7AE9448 +104ED29B358EF5418253B1C52892020AE7B3F90DCD161511BBD2163D9A8A249D +C5F2AA8CFFD0CE5CBFB2A5F236A85894F8AA68B20B5A62A65FC21AB866CAC7DC +2405143DBC735550B5D116649BFA13BE223E370CF5DF210822AA715A5EF2F38B +1434F9D7D0C7969927168E9D7FBD8991341456964F169926BF2B405284CFA5E6 +32EF00FBA4139E70DF9493FCBB09C70402B1F8B3D18008E6EEBF46416E87486F +92322E01117B4D4D3365AD38E2FE65AB4F59D511017BA49A9D8268DD56F5678D +9370E0328A3410B50FA34323B378D301A00BCB86CB3AD52129BCD2FB80A5B0F9 +46FFA9C71F95EC0596D94D5770FEF7E053E3E354F00A20605D64C99F483052D5 +40C5FBFA63F9E88092E7C48796E127F17AC4AE11154CEC38189CFC8D23C96ECC +CC9EE9D125209004A7813FCCDF65A2AC3ACE379BBD6D97BF4689F361C854A153 +5576DAEEA3405BAC73AE528CBC0F90C7F0F329D0D27231C95D30B41C71574EF0 +7E5F765F2BAE0F9F2DF24568575A36273BA4A842E30C81C8BD852C3876072AEE +35102F9C7736AC5FDF62129FFCA271D7E3BCE83164BB607B9FC6EC2FE03C6A21 +84ACD3482678AC705F2424FF3AB98AF90434F872586911191ED4B5A5F386C535 +008919E1AB6100988F048BE65034182D4A7169535C4F81815FA3202BCA68D505 +07DF33822CBD3B79214181A98283E98BB88CE7C4742D34CA9C0FE9D75A03BFFE +43EBDFF6C2DBEB8284111316D1F38AAE24B93356E00076E952538474B15002F5 +4A9A8A0C5FD98C18BF5740C5716F2C4FF22AD48BCE5651A437BA390176A1A068 +07734FF0636F2B7B5BAACB064F30AA3D6CC62FF810534627C9264E6BCAD1AE74 +1A701629F59B75849028FD809C94B438C5E9A15BBFAAE4C1403C80B7E23A373B +14C5233AE9C9F7D0755D1209CEA57A6CCCD584560012D61238A6389C0D8FE71F +F0C8B3D33B7C01CCF955CE0AC9CB1D842C6A5E526F2639DBB65AB35C7EFC9B51 +AE5C7204DA71C8C784BAE5BD0BD8C61E5A5D20A8718482F1D58AF951E230911F +92D38994648C19 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndFont +%%BeginFont: SFSX1200 +%!FontType1-1.0: SFSX1200 0.3 +%%CreationDate: Wed Sep 12 2001 +% Copyright (c) 2001 Vladimir Volovich . +% See the file COPYING (GNU General Public License) for license conditions. +% Converted from METAFONT EC/TC and LH fonts: +% ecsx1200, tcsx1200, lasx1200, lbsx1200, lcsx1200, rxsx1200. +11 dict begin +/FontInfo 6 dict dup begin +/version (0.3) def +/FullName (Computer Modern Sans Serif Bold Extended) def +/FamilyName (Computer Modern) def +/ItalicAngle 0 def +/isFixedPitch false def +/Weight (Bold) def +end readonly def +/FontName /SFSX1200 def +/Encoding StandardEncoding def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] def +/FontBBox{-232 -329 1767 915}readonly def +currentdict end +currentfile eexec +D9D66F633B846A97B686A97E45A3D0AA052BD0CE60552BD63101D7CDBEEF5B11 +69C468645FE4ED1AF2541AA0770C1DCF81623DE0ECDF49F2B522618F650CE6CB +CC8C21885DD61AF8A523AA677EAEDDFA51A1F9B1885EEE0456196D634E04EF89 +F17499DAD982502ACC349B9EEAAE4A71A73D1147318C60A8BAC10510DE90D8D3 +F46E47295D27129A5AFE0C65E22BAD10D06885A2EE623FF8E1D90287A083E00C +EF25195F68A2A98170E48759F33528B839D9374232E75DE7DA43F5324FC661DC +7A9617DD90022A02755D51D4F8448E908E6E58E6B4FD982A76F3CD5AF68A5842 +4ACC82FAB82C42882F8A34856062BE8EF7387DD78826B9BB508964F99DF1B74A +D7D891219FB749D90663119173989F5CB5BA19791C469BE96A41053292297A2D +4CCBF43C92FE69E9A321BFC322FB715A0D40264DE8F8D2845200B46BCDFB6B2E +07CBD3D1DD9D871BD936DB80581A8168CACC39542BD527022AA7897985AE714A +9C8658BE8B9C27152B55006BD61B97ABBDE1E6E3A9E009CD076FE4B0E9239988 +0F1729F08126877462C1971E3C0FE540EAEC1B7216A1F54BE64D939931B0FF6B +AB8B6A31A08AD89A251214F63EB335EEF1C21E39C37732B65337B14CDA47EBC8 +77664864D2DC23BD2C8F67081C692D996888DBDADC9CED8224C5EB68B4ED4ECB +037B9CF05EDA3663BB92A6696305CA86D4952A52E22C0A2867CB5429468C277D +586A682BF69D7D4232D429F4EE1A84A1CC0CFED15628CF901DBD111075E8EED1 +48B0DA78ABF13BA430F667855255CDA18AC3C1023E877F3791133671E9B048E2 +CA084F754F63EF9FFD951E01020352F02AF3D4805F03029DDC39A8B8D9489CA0 +32D53B0077CA9F58CE90989C76EB95D7397760B8CBDDFE3D1420BF5F5ACF43D5 +1B22DDACCCFF64466901AE5B9B0EFEE6ADAA5AD86B6167C421C846A9CCF162B8 +4A300AB0844D26AA667AF6971F82A72045AEDDBF14403687ECD6706DD439CBD7 +80B9FDAFE080E831D0BDBCF0E291E8AD7A2B4DFC9F65ACD4D51308EAC2A0F176 +7915D357F6F3B7CDD23C06226A101E1F33FBB937C9DC9EF676BE7E7925700F39 +F27816C174146B66A57E38127A0BCCA0D3A4A262788E82A54076B6F034B4D724 +310B4DB1FF9E3F65082A24C769CACCFB2083822F2CDBCA87A1533DB0EDA64856 +E3B529CA416E161D4DD32EC80219C2C1F422CB092BEFD91C5C3F8184C2596158 +1CDBD5E2D5B3AC065B4DE49CD63D816BB130CBA5473EF29F4ECD69FD347B63D8 +383338566AF3B07449FA8F574146BE42AFC36C9721FF3C78CDB36CFA524CDFC1 +F9CBE45876DDBC0DDDECA8A5239084ED7686663594976F9208C6B3C19E4DEDB7 +16962E44EFB348C5A0E024A9C6E61F2869E695B9D15473EF776BCD1DE6FC52ED +66918F252747423C9CBDAD9C30E1BABB10554E97F464ED2D5C234119A5E726AF +AECA83602B05915CA5FE986AE7934BFA9E01E35C3F5CD2F7470E0CCFCDAA9B4D +E523F383ADAF77A9E7D404FD4BC57A108C505EB38E048D94DA5864148889680D +08C78B8D2E0D6864C2C0E240976A62E9596EA62C942A8E0AC324DEB56230F90F +B2AD31D6E729D8B21AFAB6EDAFB526E8A9528E5B999EB9F43FA3575F7EF96D20 +0D80B4A329AD819EE9F5DC024400AB16DD89DA3C74A705CA1F65E78BE89FBA47 +B326F44A01C46D76CD5074F0C2E96C9E932E3DAB6C204893596C1C0A108E5185 +12507C46C9EC681F08A679AE7A7ACE65809E9BA948B735F0248AF227AD3DF7E5 +AE8A5C994487AA053C88A17B2E392E8330F91062E41741C416178B564172B69E +1AAEA8D0BE734F25F37733E85613210BF6EC0333FE2820F6148FDFD181CAED0A +E0C9F80EC6F5A58817B4A4B974907E6A664B28A2AB567FF6858109FE8F9E63D8 +97BA0934A49B50DE4CD0EF63194EA7DD041599710307C321FFF0B0FDF48A94C2 +EE1671ED6F1C647C21D91B883142710DE7B71FA985497E8436F5B998263C2E8D +AE94644925DD0DC9441E39BCC6A3F66646AB9194B3BC546399F194F71A0163F9 +89A4D77F1B9C1EAA31813F23D7224AD97CE9B52FE3731BE86A570C97468D29E2 +8C7A75E36843FA17D9C7EBA09ACEEFED51A3B36933D3A55EC7F005A49E87B9FE +A9AEEF420DC30036CCC91179644474ABEC0C1485B887C6BBDB6C06E02CA3820E +A50D2705644259158065B771309820B119078ABB9C6819CAE5CA70E19DC2736E +0C2E80C3CF8E509BE3C4ADCCCDA736CF2464284F5BE4A52385E8A0D50E496DF7 +F6EEDAD251342277F70BE7A54E790A8A3FDBF8F1AB735C81B335931050B46886 +5DE7308E8D632B6184A57283998A0CAFFBDD54D863FEF6AD2F3B4ACDFA70546D +EE5401E6BE9FED6B1626ED9646188E7726ABF909ACC9EA8B077DB8BB9295BF37 +24E474D9C4361969F824589D1BD47903CF41ACE1190F1749BC0DE429DDBC14E3 +25FEE078D5C9A2E3BD77C30C8C026D74272C20F114C1FC8D05647561C1D5C7DD +BBA748061383C467CCF4736B7906B1BB4661BD126E201FDA73E668D5837386F4 +11D3070CC8C3D9D3B18F875DD0510CEFD3174B5C5F9B346365105C8F92D2738F +8466A9C9440DAD0769F65ACAD1AB7F466606C890B5DA5AA35F29B02D90424C7B +39D996644AB40B4DF5FFCECF203CE27B1D963540FE3CA91580AA8445848DC244 +DCD06C8CBA29F49B111DF0D79EA30D2349499DD176DBFA05A85A5A004883D212 +135F0903276017DF01B688391D5598D5C19DEF1D0EA02193F2C376D171472050 +6AD597CA0FCD2047B539E5E5D7E3D281E9C0805129ADDB0CB28BCA4E8B6809C7 +9D5D3C568581BA9806EABB808210BA22E31151D632ED20F9AFE1E71032869196 +A7C5B66C0A0059F355755D4C3AF1ADAD3760C0A49D7381D27B392892B3D7FAA4 +4A88A3D7D0A9575761B5FD4B315E4118D726230148881B04FD6D0B341160906A +798101529BE2AD22A00B93028F840292DFF8284ED56004802CECBAF3D0661D9F +D2F672D06C7DBFCEBC475522DF5E61031D867BD727FD78D040B635BE422C1591 +ADD1B8555EAC7D6217A238C36CF97A9DD8376CFFC736DB38E4FDB2C10681C548 +29597F761D430AE3A03528370D5A1802C4036495FF4BBBAF025448CFCF435BA0 +2A2ED5D2481B0437A67379442DEAAAF0DBF56B95FDCFE1CDDC307A88FB00A1BD +F0C7786819B6B81280DAA74F0D0E5623FA97F2BAAE715D08CD504E139862EFC2 +E9BF2B469EC2158D76ECDDA61E076B13EB04F806DE815730E06F72EF70B3490F +704955273476EC02C28B7101408A7DA643410186D78F97E958209072E322D3CD +B4C203F0775E279BC3B0D285B5034C42FFACE6F501B9158CBABDB649A901CDE2 +6BC1D459E7FBA0B06B3F26F39B3F4120A18FD3FC507042053282E1F5FF4696FA +C4A79490F9BA2A475AC8E1F8C37932CE46A69D77B99233479FC9E095A86EA4FD +5E904CCAD9D8D10353655C34FC4FC0118211D5BD540EB1C86A5C17CCAC562D05 +16976A47B321D7241226CAB4684ED48F289C8C92620D50C44DC2C8853BB3E2B9 +2064ED128C5622A46459B356F9162BA8BBB9AB0CF96EF6FB23F304CA1D98797E +793F93416098D9EC779487CC6917023CE9CEAA7859F65F1D80DE83CB2405D9FE +C8CF33F7774A35F4A6E06D6AFF8BD1C39FBFAF8E6A598D947CA535033EF2EB0E +4D3FB92303B6E384BA8BAC52569FE45670DF10BAE33F6D46DA4D804405C64E50 +8FD241FE7988892E573F64CAB6FFA3D2C3EF032BE6F5E419CA6EEDC4D98D26AF +ECE212309BD7B8AEDC29FB468B765A35B4395F77344EEA5B67C3D189A1B89482 +9F6F0C754851DA1AA8694312EC1DCE0B1E53F71C275332414CD1FFCE861D48CF +A43653FC312FB9D1C9D4E4167CAC25E8A1D8B708FB0442462B94AE4B5840D0CC +6DB88CCFEF12F4381141F75F8583F6F56682CD8979E293E4AEDBCB442689A817 +38C8E968954F6EEFAACB711CD41A199C05409188055F6701BB42B5C975EAECAE +276B63B884127B7AF34AF7F028031A9531C4F38A56E76B803632CEF2F8B2F213 +8E7F06D46E1673B01E071BE6F0B820D54433588CADED96CA6E7A71793382C4A4 +78A14E1EB98EEBE97EB1258FA4C29F606CEB2D5D9A88C7B5CC8E59247BB1EF8F +2164CFD3EB507EA58F34DB2367A7A30FF2B378941C0C4A0A0099D02909E2CE26 +2F0C1EC7B30633CCEA8D6ED8F6C29AB45310891C6104967DD9157E3EF507FBE8 +F90D6BF0E2D3FAE246F97DD10CF46C712D49F005CD4403ABC39F8ABC8D9191B3 +FD3B89BB10DADEFC3BC31D3FAB9CEBFA1D49A63A597EB50AE8B6AA80698250F9 +C9ADA78BECA3A7C5369311E96E941651E32450AAFCF23171B21BB68FDD1DC0CE +8A94BE412CD815E7E224E90E757DDB683159A390DF23656FFAE219514BE79FD6 +E1566AE80E84CC1C1BE698BB127EBF959BE0BD93B523BA7D45646EF1EAA1D795 +A33D24F8356865673BE02F3FEBB7DA9B6FBAD0DAD95B25C13C8296E1875D27BF +876F8729644DC3CAEB7CBFE7BED6E59634D43A66E24FB68BBBF08D5E8B5C9AA3 +A37DB6AC2AB13D030BAFFC09271852AB2FB36FB2046845E54C22B6429F716F03 +19338D565EAC2124372601376869A676906BA08A7C5893D93E4F21F7C16E9B21 +C62F2B7B0B42F280A931F7977848C2CFDFC77C8DBC0BE80FE7C91FE0AB531D20 +9B3B76B029D61022A4554DB82C5BE88A9991174692B55138F3AC25F74E3C6966 +9E6A2CC10A99281E64B31A4911173BEFB54022C02B55274211EFF780B348598A +3744487109A330FC50A95F063FC34992C8537840989D00EC9A9B8849BBEC6C80 +43C1917FBC73D215F717177BB9D3460686BAD9DE60E0E361B44168A6E5155C84 +36CC5E7DFFA930CABAE30E7CC7C0BFC511695BE35668B0A7A9633DF4368827F3 +86E057151F4262A379B16F8E9075ABDE1292FFD258751C14482064A45E3F43EA +07AA5E9C422300F452F5505198EF58CC1ABBA9208B6E5E4F609D82E1DBC8DA11 +40AACED9AC3F50B66BE18F257A4BF09E9ECC356F4041915E58F409D09DDF6E33 +D10DF5D6A82C3B0AF40DF08AA605E4C4BB01D3F861E848907361C281604178F8 +ADDFD73F1131AE570FDFB75D6B2F433159BDABD19DBBE7D0840AD8E09F25D875 +B12D1ABE9514B623758E703F84BE24093ACCB1269CC8781E2D62370AE0306AB7 +4FAF08B551DBD268D09430966E3699FCFAB403B5F85F04CEC86197C7F1072B8D +60518EC3FAA2F3514A755053175638ADDE775257A3A19757E589F222A4546A59 +AC93F2613983FA31278883FBDF4482DC3D7275697206D7CEC99F033D3D8FE847 +5B87C18222102AE686865E751D5035DABF8BF4C7CA56235F280A19A2EAB0E82E +EA9FFC32D2F0F6C41EF3B026BD742AEB1FEB0A2143AC3B9FA6618A09D9A4491C +9229CF1ECBF5F557080716ED92A9E02A8B359A02D9A7226FBE0F09E9FA8EE079 +5711D1E9B1A93D861BE032979A1EEEC60D48909FCC0F222F1D3B0BEB120E320A +2F524F19504541E549FD4C2C122F9A948F50A55FFED5C1987D4F4FEFD1F99F98 +52A1AAD14CBFCD8259A6075D3D621BE7FF562ED72A737596B75CC4BCAB79BE48 +A20C76FD8BCC144E2A5C3668A14D05E477CA618D9C467FA9B2D2762E16E352DE +1FE5C7D7502F1EC491CB57CAE81A1A2460AD981F64654C82B913A8F73534500B +D01EDCEFBDA8A96A34CDF5E3DAF380B9A00CACCF2DEE2A14186D9CFF07274B3C +1079DE386E2A72FB0082E82EE2D639FC50ED087DF4FBD194FC6BB497536504D7 +77AE66762BCEB8AB14CA22BC79B6A7AC1118F110E7EE181912E3FED7DB796B0A +0A9D5B6E1EF767946562D76B301147064BD169588DCA9D06FD26F9594B1BE9D7 +A89EE3513704DA2B3C64D1161E1E66725235DCF9BEFB1040AD6CCE4299CE52BB +8E7BFCC763CF6E980912D5406B68B434DB99AAB6B8A1A9E2F905AA076DA15AF3 +80ED7C20EBB2722067AA0FBD3918F7F9AB0D7D29B52DDCF0ADADC0492E94840A +2977DE5CD85D9D858B67EE6533577A30F19998920A7D05C997CE1B6D866C3E7D +E4EA963E226AB9FEDD155C61A409DC4D782A37A121FB499F5FE2E1EA65DF64D0 +B78478BDE1715F606423E92CBD1B1B943C1AA99370C24B17425B4607BF0CA7E0 +42CBF2D8DA4E014B8A5E975373B85DC2E04F6BBCDBC423710367973112EB83AC +5AF8C3254846AA18D71F35A6DE3453972D5FA65D96A214E3614CC683A3AD81EC +04264BBC2834002916EBCE5F4D301B7E0F4959D4EF06B47D81EED29F7F7B3C04 +E93E80DD8148F792D200AF577494DD8B3C52C6E8A75E1DB2D2CEB485259EA076 +A687AEC12E33E4172B58E105F15786376D48FA1493AF2DC3305F1FEAD60A211D +A571C01B050E57F080D38FE8CAAE702FDC9D3E3D96B63EB0C473328A6378A9B1 +FE313B062E76FAF9A7C0D65E1C4668265EFE6485F6BBD6640412C65E7F41DB4C +5DF149238CBF9B21CFD17D47A7FAECA9F896C18C8974ED4680EDC5A5E75AD296 +256090004F41A1F9CA92742770042B68700C7ADB6D6268C6CCE1D4B3E82CA228 +E7FA7543FD3B57466FF18ED52727A6C59FB2A533EBEE1A84A1CC11A4254C9E6D +9A6FB80B29817A25C002DEEBC82E18120E0EE9275500B1BB08CE4B28C43FB672 +4A1D3384455430BAEA462C2031D3CD3D0A51AA90A7BFB6EFB196DBE2AB542E24 +EE4E1A947EFA33C3E3879B8A6C79FE212654A44A6D85CB2A4D8FA22922761A4B +3E763A9B7D8F1C5AE309496E6C07F6703B4953B0D8DED3C44CDD4968129C6D2F +7025AA59594E9CE85C333F570B9AD736353AC4E5B28FDB612944D6885CCA65B9 +ABD3AA4632565781FEA89AADFBAF707BAB5F1B0A2DBAC407A6913EDA0CB25804 +56A55E17CB51F4FAC93363B74F29EF435BDD5CCDB5EDF6FF4ED87969D2C61BDB +C19750AFCE844147A020D242924E47FE01EC85C28BF523D59118064D7769D40F +24AFFC6F87C280A94CF9CC4109372C735ADD783E678E6568570067381008A2D7 +F08A80138E212726C674D628F6C91E79F4519224018E884060FF89BA2A9D6EBC +57C228F61063854C4AA81969255AB55CC924FC049D199A4A8CF21262199758B1 +87A94FE8792DCE3CD6A95EFAE0153F5253BCF6C793E55F2B423B99B07C8DDB7B +B4955876D06DB1E23768A45863BC7A1644172371ECECBCD645F92207F8517C68 +A5AFCE84D642FFCCA7D1B1DC0E376B0EAD9A7C3C73E61F2A13BD69AEE83F66AB +D4BC7ADA4DCF45989507953755B99F1360F007C1D9B1D7EA0EE1A7DAFD0731ED +EB570293AC0EB8D25C362681395650C8C00A83A10DAAB8ED7D09DBF54DED15DE +27B00F6EA238CF1150B668884E42EC4212DA76F4443C2D1A2560C6FBD668DE28 +F394F6FDCB6E34435AC61CF23440DD5FB4E5376C606B0D79B2E316C10FC765EA +B031DC3A6C649A2587DAA73D979A41623FCA9D0F372E8AB3688730FC94AF593D +7BF744F2837023A42F54156D5809A68E7576E627EC67CD39364B2C1303C0A8AC +123916A9A64D8959043EA55562933CBC859B027EFC9BB1C805C51E1A2D296BDF +05D29114CD8A7204078742E146CA8985E1FE9D35C9B2516757CA8AB45450A074 +B1ACB91AA68820C06A5DFB63070D6522C9BEF8C4560E3C56E4DB8930BC9E9B0A +A5E268385070E7646AB5E6A600D0DC4434ECF0BBC5F9CBADB0D38DED24E434D9 +8573336D5F16497CF1286C004DC632CF1CDA60BEA3D4E10D331EF2659A95C90F +D14DB51EEBF226D020096DB3D37FDD2E0DA0494936CBDCBA9450A2BE1B106BCC +8318BF47DE3172A31E9E8B0E8CFFC322D88C90ECA49597684AAF97BCA6FD846D +2BCCCA9ED6E17F265E13307B783788818C131AD66BB7725C549750810CFADB73 +29072267D8F224042E79BC707725C13B800B919CC252C377E7DC5EBCEA17E949 +ECCDD23F2BB7D2D3AF5BD01CB680CA475069486FF4085D52370D435833128295 +F50F1F619F932E84213F1EDC5D10725514567FEB01842A8E3418E15D1F34ED12 +61A36005E19127CD3A9E1AA04CAB611AB045726F023EA52AEEBD19E2854EE88E +C57710491A203C9E33E3119EB1B9F94380C6A98981A99E2442F01D8B3EC8FBDD +5CCD298DEF3FB862F9A9582F6C5BCE11DCA0359AEEB798E2E8BBB5E0308ECBE1 +01E233351AC8E116AA0593AC6A9B72A11B13406E4CB723AFDEE715E865DDFE6F +74C8BBFC9163755E2598177045787F759F116D1883773577F25E37A07F94A898 +2CACBA25469832351BAC9DF7903F6842DD83C852F58A852648E19297BA56FF7B +59C226538E3DBF392C45D14D1EDBB6DA767FFE4279012275A1642C7AA6688C4F +785967EF68A0201D628A92169B8B91A83E9FCCE9D1960F290269D5F9D08DA856 +287492A54384EF343661D7DD0F7DF1959F349B12BB4BB20F8E8C768AAEBC7BC5 +80E41E72B21E90E82F19A1C65AAFD32B2D13FE6E9271771F740EF7FB2D629907 +429D3A80BC3FBEFCE3203808ED0E975AB71A48E0936AC92B6A60D2B4A3F62B37 +E3020300719140740EDCCD7A6E057F23073A2BEE700FAD7465B8FE68AD2BFE13 +1B5FAD9FED24ACDD65EE06920677DF2367D7E9AACA5547EBA2564942BB5A393D +08ED0E975AB71A48E0936AC92B6A60D2B394251B3B1426C9F392F2DC54827C9A +3B9C7F1CAE4797DBAAEADA880EED34399C698B5768092105B7DC4DC91CF778CC +E8FFEAC496F4B6EE13FB5EDC3C728B598303CA100C88F9574E62639364BC2816 +99E31C3821A1EF2562EDDBD183BF89549B61C5475B3D27BB529E23539BB6A82C +DA6224A2584BB977E4D7CE48276DE9EB064FA545841C4879E043802A8A7B4494 +A0AFAA3A3689003AF094B4E91F381C566CF9C76964C2FBF17C2F536B2B7F8125 +10737A97954E10D29A3F1A7346FEEA876A3AAD2947EF117AFA0B67449729BC93 +74EF96EEF806A967B12AAFAA0D052920E4FB4699C8A7E5286A3715937005843A +768CCF8C37AAF09A62BD8BCC4CDD629E650E0DEDE02E1050BC8E868942C11DFE +393146352C6F91EC06358D799DF62B5293C3241015ADA7C4102DC0100066E149 +0A0C7FF636F2CC95D081CAA3F1A73B7C1F174EAC5FF8B22979721E2894306D92 +3FD97EB493ABC4B874F75322D7C36999F99AA0A7978CE092FF221F3A9BBEADD9 +216BBD7FA64115647DB12593C2A92EA396993B50FD8BCE8015F6E1A699E733AA +64B52249E833084ABC2B466B7D2B23F5C9E67A96999A620FEA90256D2085B34F +C24AF5794FEFF0CBCD441B871262E84C25BEDB30E0AA93C96A6B7DB7CA7D60BB +2F0FA2C76AD93B70DAF8B686861B3EEE632A5D47EDFAC59D608AFE9F42F449CB +5623B0F0F91C29DF4D780CDE769503AE19C3628BA520178C8D8BA0E41250BFB1 +A4F800ED2C1A775C87BD4BB46F7F1A33BA947E1201E26F8F20910AB094CA9DC3 +606B917BE26E093BAA6332F7CE1D26346B09FC68D07CAD66DB521351E7A1C09C +7BBDFFC7A0B437631CA9683A312E20ACD00A2049924B74035AE2E445088619B0 +43BFC174D395D4F2E44352DFB5E6B8FEDF0C4A956DF88054EA7A59F3050D9A11 +1C6FCD1F657F898F58C2F05F1A2EA3FBCCA69B9E1C90975F74DF7EEFC3DEC832 +CD24AF945BBCA871A2411D9A09305CC7017EF7A7C42886C1EBBD183EE1ED3C01 +B312533A6A408C35BFA7760360E782868DFC551050F97EAD6C933FF531910D0F +DCD4D48B4D8E4620485A4734C6C3BAD260F299409D5DA779F83BA7906736E893 +12B126EB61CB15309BD27EC19C8D31C93133F847423EBAC360D81B7DC39FEF8B +47E2E4DDE08314B5277CDE9280D5C2F51786951F48CF83B41FABF2D49A5CC0F0 +E81DBEF643A6642ECBFCE2BFEA33DBB24BA46385F793EA3E55BB557C491E30D1 +1813801BFDFFE92C8DDB80A47A63642D4B907A28EB5E987AF8CB8AADAEDD952D +790E32BA259FC909D70B3A5FBA960F55AEDD5B17DB055E4F3815A7022863F559 +13B0B1987D6A72839E71547B7006340118E843EDAD38D8AFB6C6049D8B84D7A5 +43FB1676B10A35D595FD984E05DD11825E99124389F65E0DBF66CDB2697E3D7C +9E858998F0EEFFAAA911840172E783F66C96006C528F618077F413E946598658 +0FB07AB439DABBF81F0F47330560107DF13BCA6A0927C9D48FE81501AF57C7DB +9106915546163F0D95C371AA67319B6262F27C9F4361070A5331C55EB5D0DB70 +D626730439DB8D805A175BE0CDDDD8AE32B1AF84F7FC4C7889A31A4EB49C93B6 +37D314982838726543BC136CEDAC508774E95C783EFBB86BCA42874179022391 +224EC4A6B774FD635119995F085D950BE2E3A6FF12D4D04D58FC05FFC0DC492F +4D7E318426FD7CDDAD72261FB4DC80CB99E7BB26F825F8A3708D3625266AC2D7 +0049FA1259A20CB3C1B57C5525AD760757753403E4F853802BE679D122DB28B1 +212E435E2282AB5A9A3BB9944DC8FF09E8D012DE95F32E5E1E07C9503B4DE7A5 +3F59295FBDBE263454C57D72EF56D7BDD710AFD1C614843B040A79E21A616C8E +E6B230B8851377AFCB7BAB3F2050025DD34A69618E2D89C9F5A0D270669E792C +0DF51B70DA3B569908508B1666E24FEF2B67CCBA5CAEE82F1D016657B0240548 +802256FD8A59BE466CBDAFDBB39AC05ED705F31F632682439C3C30F66E3B4055 +08D6FB79796CF0F60CE8CE250FAD72B8A85B7F11B88346569253DE4AEBAB2402 +C71AE8991338E5CC5020C7887803799512DD91FBF55788BCF641BE95ED91C701 +09DB3B7202952C4F82B500AA5AC31B3E91DBAB6B4EAE59456EC1E50DC7D2FB34 +73CAF693E433EFE4192FD1027537B9E064A16CB6C043239C9E1A4FDA3E2EEFF6 +0D7D07C5D332DC4730787677BDB97CFDE5E4403D32C12F4F7BAF93C2AE5D9D07 +6FE288D2204BBAE0D257B035051254C1D7A77E57AC8EEB3811BE2BC948A926FB +B9C79B6116B72C970BD8C39AC821B1B553C41377F5DF9FD1F089B09E545232C7 +4B7B9559E8DDBFE06E88EF2EB4763D36C13E3BA27393B99E415473B4BEB3114F +7C6C1C8CA6BE59E1C9B59A512E971F8174EF10629CF0484B6422982B9303E74B +4345F6DA631D7EC923D6DED47F0F852E129736A10B51E96624ADE6D1D9E3E1A6 +6B8F999268F0EAE6D3AF121A3A4B85CEBC20B350AB1F563897663BE25223A9E8 +92EA8D27C7F5CB3B1EAE1348D1FFD013184D12B61864914074083B6283C6B78E +D89D8F241F90112EF3FE82C594A6D183AE185B97671714308826728DD817D9AE +88BA167AAECC79BBE9738D3483605C9F970E9D463548AB417F55D966EA1FE463 +A991F442B33A939689A857DD233E59A16A311EBC798F41EFF7AE1BD1211554AE +E505A65A240FFA7C50C6985DA63AA10F21540284160AC7818048068238327C30 +48B1CF36C21F68CD19BA8FC48A23CB35E7C196F25448616EBFF6F4AA21437F20 +DB22BE291F9BA0187CF78E246AFA8697F7F76183D6F20EB871B41A506B03CA1A +F4FBDDB5318F92C6F33E6D384C155A7898DAEA95772C702C4FDA23DB576384D4 +56A0671B5938C5AB9CA320BD30EA9C76D10F5214F73B3B0CBB96D321BC4D4552 +655D1032F14359143FC7819A28392FAF6BF7798E9F340A3D8FADAFA8673160EF +A45FBE3BA446F3425837C21B95488872F42F5BFBFD85DBF3AA49A718630719AB +27743A55803F83C8A398AF6C1BCF0FFA3C4916095E5D061654621A6791449353 +D3BF18D69D4AC7A752DC267637E407D055C19A7E1ECD23DEC40E6260700F9537 +B45E6BE66DFCEFF42E23907C326F9E6F25277EF472938F522CCEA4ECA5DF39C2 +D6526E5009E38BCC2AA857C6FF5D109037AB0D1EF9613AA2F7DC187A480D26A9 +1D47A5225AA63B0E3C9218F24922B060DC48ED09D5A583EF8F35C5E340BFB3CA +764FB1DE0324DB383FF30B6682499BB280DFBEFBF2305E6D11018C7D0F204A3B +0C459A1D4E88A93B02877B21965A03156250759996914F3FE75AC9EC1A98F2E8 +599D9D6FC11696BF0F21D85BD349EA26248081FF6E74A6EFDEC8430A1DF8081F +0688C05778EA6E4F7A6CEE0D8F09CFCB180ACD68E18C8694A6337677A7FE67C2 +2EDB42939C4A75DB0DBAFAE96D2B7D58B5C0EE1B6DE181D826EA07B8C6C8FF04 +4C5D51FEBB2C205C205B35DD3D0969B366BE43F3E633713B94BB3C863808E3DC +8DF9A5629976B9B4D6A330060C9383278BD0851866626D6ABD1C83310B0F25CE +2CB4F530893483C1E9B46B6A4B1B9C1316976328E1F0D67B7425350FAA0477BC +02BA30C537E79CACDE03CD23E39776BD20847178FEFB70E6341017D7860F5D93 +D2D58527B0078EB6BC812A2AE9CB5A39E306CF67561C6B75840B17E964B20649 +CAF5CCA0380A156FC8E237385F57923816B7170529228EC140AFB7A08272BD6D +2FA4494FF537FDD81F7A2FC774C2DB6FE1616BE4C9475D2AFC36194FFD0BAA08 +6C3C781BEAC1865DD0E6305207F34F412DE8B10300F09A52E0B58A30C24CFEAC +703E34FC3158200F6FFDF11920FA7CBF06D3AC042AE920BFD6FF4F572EB75128 +717B51C1BD980277EC4DA4374FC6D1CB3FEE2C48AC81EBF65BA7E86AC489685A +850499691B1DA269EA055275E4367E53CB7950A06E3B1BBD779F117DC071146C +4C563A820A25BB28973B151619C6FF36619FFC6B21212750ECC34C46BE7CAAF7 +A60D496CE85D239345708C8F23792D55018D106D5618371F4B613DD5D5536D49 +069FDD216819E3C86A6D4BC142E539D01F59EF9D1F2A12D10CA06A91925E2AB4 +328C5527865C18F9FAC104D598B211F17EFCB8D869370DCA747CC217F9F56D97 +4F7AC69F71C63F014D07370671C52CE82AD5D52097146ABDFD0D3767E0498952 +A90CA9C0D31848088770BDD78F9014EA330558877B110CC04BB65B787F0CDF6B +37AE45307596D03D65885F27FF8D88E6A57C45938818D379912B8F4BC49D67DD +7EA54C5BDCF1D7D2FFF0B3C6AA2A9CBB3CAFF66DAA664D983C10D1EE9EE3B3DB +3AF21F6926B6C326C2CA654ACB66F2F66E3C35C703855410DED92D347BCB0D73 +26DCEF9B7994AA043947F9714B518561B17A9860DA936CC6122519C19AE210BF +2E941E093A534D94483A5F53209910F0482AC9426E20E6369C638E6CE3F3EC04 +26EE926FB26CE338CFE5F50CF47449DBD556634ABD8634376F9776D4F00FC863 +FD44DF6F4C524D5B57144D3BFA8E8118AA5FD4E041E9927EFB0EA40B41A4E09B +AE41BF05899642455F579F5A13E3CBF914A456E5294D558161DBD85E967323E0 +EDDBF48E8C5FB99890D4C303CD235330FF76850CCC432D15F5D60F21F05B10F2 +F7632484DEECFE48F0636EF973B1EC6E07B6A326B4A665E0EE1FB1F67737CFED +BABB10554E97F464ED2D5C234119A30D3FF06DFA30612CB73F0C4EC8E64AA8E7 +42B24C1FD21624B745E2C9D0025EAB79CBFB3479212D46A30172EBDB97126416 +2BCC2D0CB07FF1CD17B89D5F13B4126192FE55C17CBB5EC25375DB0014FC7F17 +58F27114144F84B69E90910A9D3DE174AD6F820DAEC6F89641DE4036FB538C2C +C48BA59A8AFFFC0462AC496641266DE64CD9FFE20059D241C6709E4877F9DEB8 +9A85D9889A9D144AE9630C4F792BE0B78EE7E3D074F0471625BCB886B6CE9AA6 +E35A9C0538DABADC4A1E7B197E9F5FB94CD61B375452E6FE5D58889A4104BC29 +A6FC6146EDC9CC8F984BC14FFAF5573603F4AD0F9F273E5FB02E71D0BCA0F784 +59504C6506E2CE262F0C1EC7B30633CCEA8D6EDDF51B86D81A6703A42E5C2AF8 +F5A1C1D1700586B988AF24B2E354A1ACB829E667D379F7E2744A1C2F026ED939 +FBB41B2CB3007C4769609544AF8FB56097E70A8CBCA234F4436E8B1DB8F904FA +383238F60ABC75188F4A9E8972CF884478FBFBB15A74D46D13091AC2D6BA7DA1 +23FDCEA370B917A517F513D3CEC60FC7D60D3D7AD19102ECED38F4E61DBE1A19 +DD16A612203F6FDB3A39C9D883C9855547E5D87938B75EF4313998666C5C41DF +117593A955DDE14275207C0523AB24AC4352EBB849CBBC274A069F9066FD5AF4 +1A8DB91E64D9CA6C89DA157F70CB81E2846DD9FB0555F743E19436021ADD0907 +10A388E840184984B09A667CE543542511014F171AC9699D24F0C793E55F2B42 +3B99B07C8DDB7BB4923000D4417194A903EF07C89BB0BC85A60710CFE5D69920 +05B6B0928960579F6436CEA73087AEC95E407DC63640E04FEC25758EA606E623 +310B2657FFEBAC121551249FFBB7B45B32831F4F98A68C205758D9EA0B9A6B03 +F69D3953D45C9F5B7E947CAF49A78C11D254F5D9EAA48B5CC8E9F77FEB379540 +D5DEBAD04404D3BF5724E909FF5EEB4E8853C596261D66D2CC391CF29085E8F4 +9B16BC5F5BCB5696BB13E70FE6F0693030873CFFD1B8E505388AC360E906D693 +BC8E4918A8ECE0D9C7F3927FDD952C8C3B85A6335D18CF31735C506FDE1CB46A +9419F2B5287C0FE36D559E4FAA921E40E79EC899411195B98B1D466E01C8BAB4 +72B6D9C934968C092EFF8DCEE1044880D04A84C37DCC624DD7049EB692453BE7 +8286BF86E4CCD2EB039A7E2D910471F5012181998509EAD21EAC249A5426308D +E15F970CD6FEFCF89FFC8711C8C079A3EB39A63B93F359409B99E8FF313CA3B1 +10F6A6906487360DA83DAEA5289BC489E529CE2AFD7293BC86B961BE463A0052 +B4479B93D6997A5F8CE5847F72BC5FE8355349CF77786554EA20159331261D1F +C998160FB9F141E44135C1FDAFA7C2D4A1285D9C1A7F70064D06DE41AE65F6CC +9416C722B233136F9989303481B529E3E19BA34A632DFAAF369496844CAFAB1A +979B52D40E5811F3E5B8FD5E0B08AD851A31DDF197906E07AEFEFCA1025C9154 +DDD78F90B1F0A22790A020865CCB496A756436E9896579EF314567EF7B00886E +D9D52A21096BA9C842CDC07F679C6B50EEF89B33736C5499FA0B3CB93018EDEB +B33463288C9487C03E0619B029F36AE18F8C86E31B58EF537DF4AC4BE8AF8906 +F8CC553E5D2E868E702AC05DA89463202ECC1FA9A2850487F71ACFF25BD67564 +A1ABACCA196C802EF44E6642DD04CF1BE5EF025FDAEE59C1C033E1FB1F743CA6 +58DECD77EB6DE0154777DC8C1356CE7693F592FB6276FA464BE0B269A23E831B +FC845C6946E607822CA2F168E0E8D95B6A538EA8A4D955D5E967CFBD74E2A7D3 +B809B6890F5147F71C3B6B728350825DB738646E21504AA9A4AD01746F0E8102 +58A7E9FD538C4EDF27ED5460D2C2CCA98E36BE8FC18A9BB961EF0035CECD6ABA +43C99074EC959498AB03604C1B4F6F8E1A427D4BAACDF1298F5DB434B7EC5112 +8087D8117E9FA4A597325E914CE46EE796CBDDBE2084179B5B552D1DB0833E7F +24F4EBF2D95DD9EDBCF1AF5FEB9E5403C6375BF1F8E8CF82A1EB8BC6A6C9E054 +B4984E7B7A8FAEC8F05953E70D2298B81516B213C039FEB875DC9852EF536E91 +DC86782E3170FCC21D86612029440DC1F6C50A8C72FA194A5CE794146F95E6BD +E9FA15474AC675E8EE1F8ACD9798AC331EDB36BE642BF599F6719EAC28B03739 +F4275673599B1BBDF3D2600F36C66B1AE92786F7DD7561E393098638C18B0145 +DEDEE6C475674491455DA96CC30555FC7DD7A589996A44B5A20D4BE80F3E6E2C +A991AB049ECC3FA8E42873D67EC2F5CBC7FA718160A9C4B9597A18028953E3FA +254567784DFC6E1B5ECC59B263BD746AD5E371AF1145D0269BD4C49E0989390A +1E4D0239A81A0A843465ED0C92E1D4325882BCECFE99AD8B4C62EC93439B43A6 +156E529B6D950E52F6A947505883E5A7C028F9D51EDEB314906F1DDB2DEE1D22 +4BB5AC76835D94E3FE7ED2143EE03A61F051AFA2C2C79BE670E36A718AA258D6 +99E6BFEF23CA685047D8BE005A877C0D132FADD456B5527E6A7D1D4D7715A45C +4BF4B8128C8F40D8711229E2CC5DB614A45F49A8CDF6C2A56D09A1B5D369656C +7241683FD5C85EAFFE33959A117F176808229CF22E90CEDE5E43538A977C9496 +897D22947BE9947CF6BAB060153BF2E8606A15CCADDF85734B3437CF9662EE86 +C30D0E9514495B868EE2AD658764EA8D08BF273929E38256552703453F05F3A6 +247D0DAE07B68F0B82A22191BBE5C1638CFA5B1303F04010A12E878AE5F96B54 +E744F89EC0FF58AA3DCE28144704BF96D1ED6BC4FE435F9F6E375D8E5CF69B10 +86B58AC76FEBEF8651DF1F366723083804C7F9A7525B256291CD4C9F5CB15D11 +5F632C7B8A056E9B89886884B048F3377DD8F3C7E469B37CE1EB1D14154E31C4 +4E1C11045BFC32D8619221907F3D6A69093E0AFE96810C64BC14ECCEF076FB11 +EC975A634F9DFA89132B185D5F5013065D676D7460B4407DC225FB04124570D5 +8133E729700AEF861D6B8ABE14EE86623DAB2D43FC68BA13596FE0F5B5FE22A1 +2BF31F96049A58EBFD0BBDB0B7618FF26C3F09B3A1DE0CAD84DEA4F3DD96CFB4 +E59BBAD1232A5FDEE8F1389C3B0C915B4735481E2847C88AA54D8B208F973B30 +B146815717539868065A88EA7F6DD4530F2DA88F01B509A9F421D77F7769717F +22A0503B72201C58393F17891EE01EB99774578B3277EB6F59802886F8DF4CA5 +445A9393967C7C97C4A7384FD0C9971F45C9FF6FC4FC1B46FDA0CE7F3CECDE6F +535E327A794D845450177862F4C0003E6F232D7E178A774184F2471881D19E1C +29E1A347A8DC6C6CA349BC0691AAAFF54581052B61DE5BEAECA7683B0D7543EE +4DA3DAA51DA4077D534FD52109BB74F4B1EB4E621B71589BDF2823545F8BC02D +49C4A665FBE764A5896819D60EE7829B00A4564D9A9C694DDFDDD7CA441FBAB5 +4197BC1438718E6DBFC54F21C08BAF8DB57AA514A5D51F401565810B06275F3E +90EF3EE62173F4B87BE3549FE65CCEA9E9818A96AF2AD2139AD52A9AD5759B2D +4B47FE5D968552872EDD78FD3ABF42F521ACD3E8F45B565FC0EDF3D86C74BDB6 +DE502A9F7AD811334546D2BF8D0E29997C508774069A906E35BA165B180EA381 +C3B8504485E3BA4FD9478B5C11F411771C1FEFAFD35068061FE700D038836EE0 +0B91904AD3454116CA130F171F2585467DCAE43C484D000601419CC245052DBE +899BA16EFBF338DF50B54CE2DC59D7658956D808095053D33254DAC7DC9F7D25 +1A75A117F2B545C25E8AD0D2D8C6A8AC5815C38C2A6DA8841506461767E3AEF4 +086441F542DF64BC8EA74A6FB7BBDF2C4118180F608A341A7CABA9D5F50984C2 +1E0F14BF8056F563FBA0C2583BE36A28528987ED9879FA9A41C0AD1FC4C4C8B8 +FD51449F12F981BF87145F6056325130B507C8F393567972FBB0B1A8C29D9CA9 +FCB788794DAF9F658ED605E525A96E000A3077768E0D7738E36ADE67059180E2 +190D80E2854107F555F753630F7F425EC9E4ABABDD69221A28B395D8BFB75E60 +D119F21D7FDD45D01D566943FC0B33F1EE273DD0469810D668D7703F00D27FC2 +93E83E5EE42BDC95A092ED646F386016D6C6BE66ACD20C960395395CDA0881B6 +219B997795791A4AA625749ADB136A36AB0DD050DE539213F78438F7C5A6B618 +6994BDDAE41A13D6BF89CE083A5F5647D0A324532CD5BB6630ED8F94CEFDBEEE +625BB0F81B9F5C177D0990A854899AFC53F7237F84C9DE95D1AAE779AF2ED660 +0DB29CCD34DD44E64E100DEDE1B49AC8BC5589DC35E911BFDED0C78BBF130100 +09F02939A2D98DE8834EF753D7CD71CD69DC7BE0D61FD304A1A493CB66FA2A5B +69B7B7F73CA69F8AB18291EF5441896ED3171AE3A909EFFCA77141202699AED5 +384FC607346F415D424678534C0AF65DBB169134FA8DADD216423E7970BB37BC +ED1E8A84AD88A8360779E82D89B65AA64D0A0F1FF41447CFEDDFEB26A567E7EE +E07A57FAA48B43B1A1D005D572BD8D030BD082ECFAC41C5F49244C62877F3F21 +0B19659456B35804A1881306BAA47AB0E2F6BEFACDB7132C20B21CFFF120534A +744D945826FCD934E373B8CD0C08DACE9FBEC2C3C42D9C5B255193924BE58E0D +110161A01AE3F83E01AD0D376AE21F017D2EE0BA64FC992C52B688E51E221F58 +30772934433991AFE953A35B3372C6798B080E0535AC318AC135011F3FBE38C8 +3FF456B5C436F0F3A9442AC60D7087ECAE45A1AD9F508FE4025EBFC65565CAA2 +6D1FDF8E98FBB118870E5878271A672257530213A33A4B1A699088A7A05B4DB7 +2C28FFED5E34F70561F1AD2EC1141CA11E072FF92CEF1B7E9D6878F0B9B0F592 +67D684905E7FB3D96D090EAC309392772F9D266A48FE505C189C065B903B04AA +6C1EAF719D34D5A75421D6FB58262C1B99FB762E7817AAF4DDC008B69549C9BF +05004296DFF77444F752EA9759D337AF2F515DB4974AAF6BFCC691E2731167C1 +115A36241AC40D05825F52CAEB87491AFC8711688EF18EBCBD7520AA7681539D +FD46DE60781A5C6BE598A448C9272EA02E66EB19BD78B51EF450FA56C7809C81 +B143BD48BB3E4FB2DE01E9FB8C55DA1511DE781EA575EAFF8956F6ED590A03EE +FCB7C512232E092EB2DA471FDEA15160929827205FD7F4C3D542909C135200D2 +49CA0472980E67CA3115B12CF9B7F14FD34F7AEFBC280009803A2C3DDE88426C +E527E58F14EDB790CC44408FD4F82E3D9BFF74AAACC793769EAD514D57E94683 +E13F89FAE4EC3D3E9D9180496B8D1B44A3EC5EFFCA93EF1BFF1C0B7B167274DB +8008401C6C03A9DBD97DC4971A485AF75353E235599EDB18F3833F3FE34DF9C8 +DB799A761BF5044BADF0E94BDBA3E59690FC2FF7221777132B43189CB05CA3B0 +D56D77174A05381A0990E5CB67E01179F69EF46BD83C1D85E0635BF92AC4DEF7 +26AACE31EBBAF3E51ED613BAA0A3A91F0CE66E21D485433611E34E49AC889851 +CA0782E7835280F3644FF0FA6B6901A2A1F9E59107C890E3C467EF492E6C3010 +4F2BBB24CD54FA276ECD6EDD94CB9A53B64E6B73916B753F058B4783805777A0 +068B3D4FA78D1B165EA82DC41766A5147A5CEDB908634FB4845080BB481260B5 +01406238ECDB963E3E020F3178005D1339D57AE2E8E54549F31D5077D2465229 +4188FACFF4489118973C66955EF3300CBFE1538F6C80F41B1E6A41155CFC75A6 +643EEEA48952F014500C011D87AA5F03185F8EFDC17112CE224DFC4765BC7937 +5A95E4D3D17A3B106E737FBEA70F6073CE5D5F693F98D6432D12EA66BAE4085C +23730EEAF97BEB994EF5BBC6F11E9AC04682962F23EDA497409CDCDA675601A4 +80577C0B4FC0B06035CCC845D958D548A98362133AF87B47D96FE2982BECAD1F +233A909C9E8EC70FAE48FDE6DDD3B3023C908794666459C854F81F5DE90C8DCE +0ADFAE54FC8B20BEF719205A2F0D2698CFD452FB3915AB87E8E08F8CDDE58052 +870778C74E8933083F0AFE94450C55D811309E1EA8BA06F6300D6B14146FD026 +DCCDB232CC98EA5E642967145DB2ECBE7796F312E5AA29F00CEB40DC2ACFB6FC +35486A7ACDE38C130AC470C8F9697EFCC44A472B7E804EC49CCEF57A08E04B46 +1050340D392D39AD11EBF80D988B018FD2BED11E6510463AE4FFB43ED490A0EE +6A8B2BEC239CD9931C92317C1B73D92B41C75803A1A5C6007A3338EBE018F3F8 +539D22DB7C0C83DE5BFCAF3A50A935A278F716A934DB5708AD9FC5DE1EF07E4D +9EF957D4A70D9F46F892C82A03469613B5C82466ADF5E6E6C056991BD78E84E8 +E01E3FAE6EAAC2E3CC1F7644DA36BF7F2DB559C222FBF9C92BE66BCC6A08C20D +2097C3A5C4830CF8E303C1A382C9FFAA1E5789C1E31CEE59A30E3ADD71B099D5 +2B2229DD4B026146AA109B89A6A46693C9090D2F09A1683843F1A6D6B549B15D +B852337A5581E17525909FD73ADD39F9ED7CA7E9243E8B4F06D9E6E25048970F +B4C4A204DF24107388A79F90C924CE056695B5CC3D8CEF3EFDE12ACE7EA053E3 +423D059948E6888D2C7C35D6A2800AB3731E410759AA12C57001EA90FE54F7BF +11ACC76F54C2766FE992EE9D8C8D841B04192C7199963A399932E9A17F180333 +3B82D5774BE2C44E02384CF72BB46D3332CB2B0A6DD53F16CE6BD0EE307CD9D4 +98C18ADFCEE1CB61F11A8CE54A6599127E0EC8CABCDD9D716CD39D041B26E75A +6A719F5B359AF1D9D04957EEE167D205366C23B4AC8AA3B0C3BE3BA8BC268764 +083970D8BE1EC87C16552D393B5EF0048C847A209787E664A8F8A0B79E426DD9 +438181002A809D24F5BD75AE7703CD0B9947A9D8E7D7CD3220D1D6F2C23593DD +F488A5E6733937D89A422B251DF53141D257836B3D18E1EBBB1FDC20B6ADBA8E +AE75E14E440972D75E5383EE4CADC4784D238F1B9C8FC70F0095288A7D0249AB +51ADB70EAE9473C8DBB28A14DC21AF11E550B11143D3A13FF3105874C2F70536 +1186C78C4FBC1D5240CCE9BF0D5B58F6B9B7C8217EFEE99E4DBA361415DDA474 +12DD26AB504BA73342DAFBD51D8CA0F4ADF1318870DE3B5580E7879052641B07 +63A84420DB1AA50057D036522A25396FF77755E4C43809CCC7EB0DA00C4E046A +17D484FE8C0268C78EF921874B6B12DB4C10DA09A51631C057A1BB0ABC66661D +3CE68FFE3F7ADD087B0CEBE6F50921E01F8E518965BABFA2E053B26536101AE1 +8117C2C915CCE98D4ADF69D3CE75E33BCE3DB8E2A3E99970525F29DC2E571607 +42709179F7F9AEE88E271C473799196DB128E58169D4F2DDDDA62DF9C7132C20 +D23DACC9CFD52F1DFB42150F704C89633DA73C525E8BADBE293EDF06C99F71D9 +9E8F4ABCEAF9C86C4F0A720A5F336C261F95681DFEB3E00927DF594B173A3828 +B3C0CEDA50098508259B06B78854F9F0B11BBC2EB8D6C5BA1E98B59CCC214E40 +3C77E950E68D4F6D35A3D458CAE9CF014BC06A5326E6E5622DD474CEB9B98A3A +87502F9BDB236908F4D141FF3BADAFA174F2832533C1A3511BE20141510E95A3 +0C6B51C1ACAF5332304657BD7AD4203FDF7EDE74FBC1709096AA17358663C720 +EE6F8E31B8847468F7E00DC0F5DB1BE78B33D142AC04B1FBD146E4293F51AD86 +F4A99B98FC6DB320BB045EAB67945FCD44778633E243486DBE9409723B343DDF +A5F48FC63895F26E8C20201A1A4283F85F16396DC4C1C6934648A3348FEFBF9A +B085D5D488047C8BA3EF197EA886B17B216A91BC206DC062BAD3B74E8D29C162 +659ABE5DAF620124BF2DBC5D94A1C276F74EE3661AF8BE2D1306B822C1078E27 +C4EC6C6EB4266700076BEC96197DF82B8130B6F5B11118AC029909D6C2D56770 +356461FAFDE1AA430AA88766DBB904BEE38C540815E81B52376D1F3EC0A832B4 +D3EA6BA57838C417C7F63F2A67D731E4AAD18370280CDDFDAE15973658C2CABC +6ADD424C534487F3E3E72E3B11288383D2C81FD4D439F847DE261C5C70DF672B +A0EC95E3AA0C587F0DC41908C6B47753F3E4D3F04F60F8007A5D5A9CE7959232 +72BA8701AAC9DDD25E80AF4988D37D01FB4F31DA62F2F1FA24EE0FC4C0CFDA8F +94B411B2781001723F5CABB0250EBFAD45A449313A4C31A8244EAAB40C3D5B04 +D2479210970C64D536441379D91091B9889AC2AA72BD6F73A5B7D567C77BA165 +6249ADFB90F4F6A2FBDE0B926EF7445F2592D1EAFA5552CDF84485FBBEFF6F64 +C4B189DB81D688EEEBA5A632B54E2C1FD994D964A60FD3A21D03D346BEA7E1A4 +1588A0BFC1B35D4FCE7BBD1E3934DBF34BB2D0FA79159232F0A1EAB513AC3BB8 +63A3D0977B52B5F01601ECD8329DB3FB6D79ADA0DABDF9B4C2ED29C1A06F7528 +3FE571E2065B88E572BBBA21C6F832711616119CB7DCE637BE1E7FDD8B90B4D2 +277EF332ECA38D8B25F5CF4ACC375CDBC4F53F05AC0EB27E5AA8F7F71CF9AB25 +4B2B3079B906E7937A7E14E3BDEE864EDDD53096EE5779577B69099B0B01F06D +034E66E016635A5C99759AE6E7B937985DEAF7865AE6795C0FB28B4EC9884331 +FF15342E23BBBC0AFE486D32463E2F26C620B58B47CE31AC3030CDE90C2B5630 +1D326C60AE2EFD7C4A6157BECAE9178FF7EB574C61F10202697C369A0A0DEC14 +60BB84FBC657D5781B212D34E0412AC5D2EADA99E64D14B6EF42E8D7239A807F +F107B6066F613ACC5C888929F816A9E97CA2A4D515024498C9143E1770BE1CD8 +BF2521A889182199DEAF182B09C69DB4628A7703B7D028971B523262B16E5E7D +3332ED7046C00CF62BC3BF8737EAD4476B894A9CBB71E2097AFFC4EBFEFE811F +1D19D38369C9744BFF710C9272EBB5019F69598A70DC6868011404598F6281B2 +FF19D2FDF43F2ECA5BEE78F355C521174B8D51E1965954F508D070EC7AE8D521 +8247C92D929A77AA111C80279129BCA859565E72A87643FD2153148CC2715C3D +A63C4F8B14BD30E4B107C7D7BC573C7BFC0FE33778C345D9CF19490D3B33A71A +784EA11079B0D8EB9C0349851AEDCA21090826FF62B0423A504E677955312352 +E2B5222FCBE2C2B83108395383CAE5F2B76195FF394B43AB945EF3A78C44F822 +F4278762DE7DEE5FB78EF41BE4B74F71CB69356AAD2E58EEB0FECBEF7391E159 +7AB6BFB661EA55E90C5DC475099B334E42CDC21A1288518D6B5AFA6BD2FF45F1 +5E63682265A6830BF56ACE88A88FAE51072F63EFB9C6FE6C7287BC08C5DF26C5 +7C6741586B1A47AEF777687F3F0A3881CBC0D1022F6DA8F78C9ABACFF4BB3EF9 +F50566F05A53F6A5C803DF7642DF0042E2CC7A5CBC6CB7F04305A72370414465 +962E8DB3342BED75D8028B6B4B3C52EEB13409A4EF954461DC08FEA8D3BCCE2D +977CD75131296C2403CF5F291A1051F3C1FF24EE76ACEA95558409BD41E0FF4E +B3ED8AC4C931FECD6BEF96FB97252A05CB1C2DDC88450BD9087FF75446F6F657 +69AE9356400844CB096BFCFFF837678387CE847367907F5E774B80B688C64089 +C28A907B41B09A60F7149321D3D938931417D516BC54BDB39E3086F2B0673B3C +4B941BF15F9376C3CB975A2042E9AC4E27B053AF8920EF57F061DEE8170229A6 +23D61B5F17C6EB8CF2A490A64BA86D03054A1DEF1FA5CA76D90050A5247BC9EE +5F14B07488DC15D48BB9EB9D90C7B8D321F83D5335470DBAF177B489D7EFFB7C +EA20571A24119039BF2CAECA49F68A716EDF5923C164376FD8CA301A5A9422A3 +C771232DA63AD63775D553C9495C4DDC2DD8BD7EFF7D4FB6B92D98C1DA674B78 +455024BC34FAEA8C505C63B0C10EB3DBA75BB92281407D03364CE5F9A91A5B06 +AC7DB8EF56C0CB4663B9070A68E83FD8D129929A9D10702AAA8AB80B2F634A26 +E1B86F368E66351501AFAADD4B1A2FEA27CF7CDC4E5B1DFC32CE442ABA4FDBB5 +C5573FD3110BB9A5EFED46F7F70FE69F678631C6F1C550536C509F348CCB97C5 +5015F7CDCB0EA5D81B1D2DE107157049BEB358A23955BD89C548A98BF715421B +3A4DD65CF0C1DA70DA1A4F2D09FB968B4812A06932DACA08911BB90DA59772F6 +3D63AD4B8CE92BF519EF4A2FFD23DAE6184658ADB675729F3C28DE58AB54AE01 +C4EE0A2E6E94B391C477DBFF537A594774491B2D664D1961453B60C6B6628978 +746F0CBB77B65181103C80402BD020C816447F1E929BE760A618A6A9CFCC24DB +67B46A73E517198F7606D3C1ADEC5134F9ABDCC9F57A87B2457F12843AD5945A +EC86DC5F4FB8B5B4D28D19724A9973376641EC7207E66C5C2AC9F78080F98EDB +825F933BB1C1489262322B737EBD907CE37ECC12722F23CB2F0EDE99698DC0CF +8CC55F2C33EA39748DC5103DC118AFDD0002147C4AA92184BA8CF254BB2F631B +72D177735CA3561A61F7D35FCFA0DBF185A403F856B34664EDBF5BBD56913004 +5B3F7ADBF4E6B2ECC3CD9FF12D4541E1B2A488350DAD5EF0535EC1618DD1499F +5CCB1A893955552EDD828037A7172D870A4FCAC630D40F99365ECBD6F6524DE0 +B78D41DB2747812EB14225AB176A739F9EDF03E34DC7AE27A9AB3AA1983FC48D +CF0918CF27AB5A54449D43303E7C3D884BBDEB1BDAD01C0EB76A5B3A06B17C9B +FD21508A525074867CE0AD65A531D90868D71AEBBE23D815DE3DDF020383C163 +CEBD8C75216598DF66932EDD5BEFC905A7E94C02B9FD962D63275468DB085CBE +D6D34C2E92CE4FC5B98FAE4DFF5E0A27F3AB85E445AEA21A052173416A0967B7 +19150D7122D5FD68FD0A34D3F6B63B5FAE7F14ED19274C64B5B8038A14D45C90 +5D178414F4BA780F73B0E1CC7C4B34A8402F89D39F9422B177B2C7F04FF8C581 +01901E687377A415E75F982D8921ACE41184F419FE203831FF42AF1D19104162 +E78F5616CBAFE742C62B7960F43E8ADBA5FA79CE79A3EFA71462E23E83BB8E3E +8BF54670C910C99872CF10A5BC090FCF61169AC855F87F258D2978B1847276BA +0EF07DFC3DDF9D0F35B9491B60DF0CC83DAFA1607CC04D037FD5FA7400CE385D +136184A67B0BA98F5C94D4BD4B13BFE083AA5DED72A57E3B7858FCA1FB820996 +4F35FE22C296308A797B9F3F60FBCF1ADBBD87694562F6639136D9E9088862D8 +7006CFFAE5395B1819E19546CA31161C93936AFE3EA74481A0D6D5190C7F860F +0179E9BF8E57E7B2B12EFBB9FD34723C0D6A529D5006EBC0D87584F503977D51 +2A04BE8FD2727986D80DFCEDD0C96A6B4C2DF3015062A3D64C6A87F18CA0FC57 +FF4E20A55FA575BDCB5F6AB7FF8DF08D10D608ED21E4074602AE986306879C38 +5EB6E828954C22DCF0F3BC7398BEA27B617E4B58D74BF3AAF5431FB6102E4928 +5D0D65D3752C3AAA39D0532509DA45F41818CFE8686A6E4506F6EE0DE0DF3651 +71A560D6C516E0FBB705095F505191EEA81367B30F3ACB2F05FD98FE775974F7 +C863796B3DFDD5CCD350061E2CED4DFCEBD6B176DB1BC0C7F41B8EB349BEC7C5 +CDC9FDA8DBC4A1E4B045C6372FE2AD4E1FB7810FA0E3CBECF7298B0894BEB3C5 +3F6E027F8B00DBD672FBF2B6B3A75D071DC9F048D19506B2146A447FB6C527A4 +29300F5DE99240C208A8252E6EC80B84AD34E222EC87F077477B946B66E98929 +003E9C575862E46FBBA79128DB734807622B378FE81E109ED631D12FBE106D1C +A4BD421D1E41E724A9361F8A6B0B1697CEA593C7152CF73E98FA441BCC59C9C4 +ABE2ED805CDCDDBA397E4F3B5E53DC8F9530F8DCE67B7B808302AC836CD9F455 +C87A0AF595527B6BFB64C884D8D97EABE5DF12C1CE713C40AEFAC6A921B18CB1 +E8F7843677BE24690C1CCF0E4F7FDFEB961ECDBEF49E5C09CDA935A6A26EC04D +132C9398C5678254B93C799BD77A8D01F8D15BD8293560E7713CCCCC4865CDEE +4EEF56405D4B10D5AAA8C4BA725255122DC9AAAEAB613E117EC6E0D313FD172E +AA637D9044BCA2623B93B44BFF523E65BCE5D0A1EA03E4E88DB4E54D3BCC0288 +E09D922493243DCD4F2CCFBC339B0102A6472CC1E4F364BA0E0C9DB0E3CBE4B8 +7244D5D24115F205A2F8D358B702BBDF19DE72425A9FBA33210DAC1CEED3F0B3 +B65FC9EAA77546FB54E8D2B7D2E84CAF9F6C712AA49D2561276A499DE60D1B1F +495381A998794F5DE29FDFA891608EFB40728A5446EAEB05D5D901D642627B88 +14DB1F83B1C76EA6DAD4C2F18EA1E99AC2B332BFC91670DFBD79AA0942333CE0 +C5FF8AF9D039B54950EEF456CAD26658577E9F960D5B89D3FF2F399FE3664254 +5F60FB4CBCD288282C45FB10D51718D37A7A3C5E8578E0C13921752D1AD5D0BF +B0FA1EC300FF3CD3268A4DA0B6B649761E7222AE5C86195B23DA3F2D4BCBF16D +6D4D6F477CF71BE63555B6D74283AF71561F80800A087B7D3FC7D33A3B2AE30A +DB959CBEFFF4D355DFC6980CB9AE31F3A8426BBE56DD06E46301295EB35AB2D1 +69B2C0D306D243A63A48AAD5C7F2CCB867A41014A86105C657594AF1BC78B8F3 +D06D281A30F3E309055B895E67A92162C2A60B609314A6D3BADDB38B3D0D3E77 +BB82271AB135B21B42672B580AD5C62A370AD2C65915865F04E27BF32E9274B7 +4B1A6D49B9E5ECF925642BF90D143B1983BC3DD7A03143BEE116947D42AC1E85 +6D0F64C619F8AE71AF1DADD3ED62F7F4C9FEFF6A0B8776C9BBAA6401B1D1C039 +CB8FA13C473DCF927C674750DF2929579363E1D24ACB0FB68E565353E254A4AA +9766A8EC4D4E3BC83522C379E7C5DAD786FCC897E66A803E1EC7EC27E82B0C03 +AB2849AFD4A6300B81FF5CE6AF61E99239EDF4CDB28E3226478DD26B9B272C42 +A8FEA2D99BB39FFBEDFEC282E7C39373709A372DEBFE02484E23FE24E5FA73F4 +164296A02D4BF704B5F2295607F70E15935A46421E311D2B86E2A317D74DD120 +11D008F582CF99FDDA7F36D9560C412C205A4C7B2ADEC8D97E0DC1D1DBF78C24 +FB36C6BB48AA08FE447D0EC022C02FFBD3A1CB66D33C3524FC023417F76F9220 +A49FFCC8E7E792A2E327A8B04E608D4E37A90E704D07BE9CC60DC27B1485E24C +64B96EC68E055CE1B0CDE44B29F4E462C87B8840B4EB153E48308C0CCEECC9F0 +666B146B1732110FCF1F755F51BFE493153F1580B3FD724B25B6D87FA2C9E585 +8981D606340AEFF760C781234DCED326EFC6DAF8E64CC3866FB6B39A6E28EE31 +379B9E7BBC0C609917FD7E6B3FDD55765AF1FAB27A6645E1DDC746589AA52BA0 +6F9F6B09E1A9B8DC81514AF9FB6E6529BF646C1AB7DD4A229B478269E0F7D614 +4CCADB1D3790C58BA7D8D64AEC5441DBE242F1699DA03E92312C9E5CDBC34504 +98F4A74737DF0A7AE52CCBC1CDA2BE270CF0EB378664943E09E28B12DB2127FC +7321EA224CBD26BAC77D3270B4D0314EF5E6B0EABEE59C632584AEA213021379 +AC6E55AB905E6B0C081F2492321032233910D6A6E6224CF58410EA502EA46158 +0EA073B930B1BCD7655DF749FA9465FF5E574026248B558E71FD331DF39D536D +AC4D836C0066E34618902A04E9F4266EDF1196FC32176C3ED3699E69A41F2F06 +C146F56A16A9210EF9A6C8549A7BA3068F9BF220079F74AC88D3F70298397F45 +D7AE90A58FE6F5E1A8E3C3F92C33F6D3C2CD9C6EC5C6D74EF9405703D970400D +354EB22493C05A901056883B8EDC67B88940289678CA0F031064FDC0F6C358D5 +46A0F3639DC7E2ADBC4629320606BE81D818258DB6D68C05CDB52F8B848C9C05 +DEAE594AB643DE12527832B287434BC9B58A4131F16AD5E23087F822C9848889 +AA06BE4AFA2B695149041B571A5909F62C64FFE7719D6E44CAFA2A3DA4AD5150 +C33A4F48582269DB38AD22C189D74CE1725CA3F8AEE1390F5C462D58E8D4EBAE +0722FDC4C2530144934070F09F681C36AC4546B878301B14225BB8F3F7C5F73C +E5E229CDDF77D20F3F638EE48C7C96539157799935B031255613A7E5781BD8AF +4E75915ECD1A6EE3C9DB50D19DD74DE1D6F14C5BB807A9550D3697B717E111D3 +E6DA9535AC3A0B53BB630ED654FC4A9311590F0CCBC95E1E2D76C80E72DD1563 +4917F4CAD8D40AE1B93C6C91B7048EB33A75F74C1CB56010A9D1C7482C3EC5CD +A8D015BC86E0C7E33D674995BE5DC3AB2C40AAE0D7058219693DA1099980311F +0DCE9BAE1E8644174AB106A050684CBC40D4E34CF27CCBF2B61A11F026EE44C9 +946FF40676CD944482FAEA9A34F33852FE6E5FB9C6FFE0929381C37974302868 +695AEBFBC17A3263A8C94D33708F18AD5164694EB19FAC8CF4E718FF14E7D773 +0A517A6AA8279FEA1B8090BD700A25726D2D49FDC4F1F50BF12107173BF0EB1B +CD006D1AF04389DC7DE611BD2530441E79F83049A84A77FEA37CE0085C11E5B6 +2C3A065B725D1CC0057AEA52152FD1D285F4ECB4E2B41CB967B5B9262714E0EE +0D02E2DCC01B25E891BC59016F9AC64E0C8718A308B8C8622E5B998771E2E8FC +91793F302C570FA4B3F888675FDA237EB909067A050C57FF897F50214B73B5A0 +6236FC36381523B33F51385A0EC72BEE8D882EEFC8A3D8F6BEA2CED744F9B904 +5FADC79033F115210CB50931457A25C74A4AB5CD97A26FDB4919FFC7069DA314 +6D723E4C9BABC7F8E066D4198957F4309A57E1E79C7FE25D07AC6E8D0C19FD0A +368B53C672FBE772F5540810234179964B5E07146063978AA558B18327A3DF3F +DF56B922156F2B7D035D2FF59A890DD8F353A3232649AF08F3966F6325F1CFD3 +FB2C29A4C18CA9B2C8740B1FD8F7C7F69920EB921AF02204614F5C7049D9E2E0 +91B35A72FCBFF20667C5268E4521C90E15CA4B6C3313CCCFC33B5BE14F577969 +96166F2776A548B86370791E46270549918491800C2844ABDB4FEF7EB42F57CE +C553945DA830BF8863A23F7F6AF6ACAD328F07F8E2ACEBA0CEA8494AF0536D73 +2E70B5576BD854FC2718F655B8DF81BB8F173D52BF01C07257E1E937D1B1C9EF +DA21CEC6E346F0F4E2E9BF039DDFB1888C1D33E8CA4261C76E4BDA05D02060B0 +6DCE5950AC6E0D93C6AA69AE50B32DBDBA63A1FD3A3E8E5368AA368696125B73 +4E36C7180AD08781A29C706EB2D91D10E0872911D3DD794742500E28EA38BD31 +AA72B4E1FC0CD49008F9C3C9281D63FF4E095218FA2FBA04CB6CA2F737D2E097 +52E60AEF6E65378020D5B9360045B7781E6D062A6B222530C77C983970025C1D +87672EB8E1BD139DF7B36D293198EBDBCF1468C1A2AA38774D37C902FF284D88 +DC9EA50B66684D258F1B279786A8D6F29F99C0854D1FE8A44946C1E60F58D3DD +C4BE36D0D0B0DAD7AA523AEB3C3B56B6FF4E139D3074172CCBED5B30EA8BC7AB +9033263AC9D95DA824DC32E3266B6D4C1CCE53C03DF08C3E0238DFE234196A4D +ED382D07C9BEDF20FBFFC8F297E3BA7CE39ED1378D9376CAAB867D94CD934F40 +D353D1405F1992330FB7B2A401A19F346072FB4BD4FD5B362236B2E65A65D921 +E2D5A78E552183ADD5C4C6083CAA346A1A711055708E865A64178F5D3353BB55 +C0CCDC39742BF5E0C3C3A435D0E7893CB010B6A2A37CD511DDA6C0BBE340ABDC +EFD43411DBFA77158566C216B57BD279250F3478E63E7B75D0980CE1B8920DF7 +D50893EFB471A137A18C846AE10B050ACDC88002C6B44A07B82B01B15FB95BF1 +B2508D2187FF6A2BA482F683F2B10C263AD0A947A7E7873F3474852FD5F74460 +D83D090D50995BEC5A17671EED730E86C3D3BD45463EA5C8D8239DF3430B254A +F50D7D9B27411A8F778A9D9A606EE8C7A22D205624C133BF2C88384DD5C087AE +02B440D51AB6FC6C69F2847981C59B90B4A31AD042F4F261ABBE903FE56AE648 +13083F60F1FEE4E285EC459259D145F0C61B4A69C3A7052CE98BE6B8CAA4DC2D +21D91F764E319159194DE36BA2A432FCAED1D4C69C8B9E0839C9498CE48E0705 +143C4D9595BE073DB76DD3DBD289C2BB11D892089664B110E19C0A69BB733B67 +874F1D531E5DF8922909DCF7B25A68E081F43C230DADD6AAD307E2A7BBF41AA5 +2C8F562484F25BDD15F57872AF1471E03875257F2C96168687C243E94CD04885 +392B1794C32495F190A16F8AE54BB317235001216DD4A56AB1FA8425DAA52CF6 +312111BC00F61F5E2DFCE9E633F80417D78535522BC261B2BBA2C5D702D2DD40 +5AE7C77B54726714346DBAA69E496C425818004AFC6C02DDCB78522503FAD264 +5956B73BA3A596A68C46283FB0B9E68A009BD249AD1FAA60A7F6100CF2C7CDB8 +3148C6AD9A7ADD3D422EEAE5AB58B9AF9D93DF93EC9D9D655F005960EAC3CC41 +00152C6F688EF96F99AE15B63E6027550F937CA4937823D2220A2C2C5BB163AA +603E64FC930288EE72E739534504013A35C55F8810CBB539632FAD0ED911CB79 +DAD9520C4746CD77EDA006884303DC698B2FE2867158BF4221A72D8EBFD38FE8 +F9DFAB8D4E5B4BE59988144CF046931DD801298CBD133882858929A23F44A565 +430C538D3DD264AB6FC72475697F1F8E55BB158D2C4F360EA691B4E384E5B00B +ADE435A5949E94443D2C0FC4F00ABB7A17881B2765793535CB68E6BFD076DEAC +C64B9B1A0A00147D8D1D6EE1E8ACC018F8125A89BB2738EF5C23715D9E39CB95 +4E155EC7DBEE15D26F668B3726B8BFA9E1036D48A0E69135CCC2B5508D06BF2E +64E4E0C8DB36CD12D18666A36AE3A0FC23635E1F49D078EEC0B03D24DFD156DD +51B7BC162FFB8C0D9F7CF6E0E02BDA646D09803C108050779DD99663DF316698 +92AF11190219ECB99362EA866348799319E8A0CCBD0312AE77E944983A3B6F3B +A784C3464BE261FC508F8EF07AFA1C57399674C74813804A6471EDAEFEF71D5E +5299B53D2A95CA50429EC69F294FB7CA43663675B89BF705E0C7772BF50AA475 +59F62D0BC7554544AD320592881FE4B266F69D2559915CF913731305F857F6FA +6708A219A19A1C301AF530AF94A23DB0FAD978206FE6D353C5D1A6C756F17E18 +004210890741D2AF39D70CEA2A2A17E99640920A0CBC783169C472584D3C9F58 +249E0F0B72F8AF696DC287E53853713F64A4387BF618A2883D618871683CB889 +D32C68934ACB9B9E351255D358842308F81D742F92A1A27767C5640A0C2387CC +92A8BD19CC0C209087831615DCF692D37E98C17B943877B93A95CBDEFB801A4F +A76ABEA8C7F451DDE298F0CC432AEF5B181D03759CC8654E6AAD5090E3CF559E +4B6401C74F5B5956BE57C798738806CCD3184D7E63B17025B10F9D3053DF52F5 +6C6B75AF64D6DE276AE28F0A576C07D752B1756AEF521598042268BF8E7E5432 +291E7F8E106FF4AB67F814E53133D3F55B08B12AB9B33004D8D8950540B44366 +4856271D1525C01A2817C5A05827519A85FB0A618D5B0E09F87515BAB883AE01 +B7E35C99AB11E1BC644A19BEE8F052EB4EB42183652FD162D2656310C77ECE37 +1C5D1F087D156EA391333934117A9C419E53518FDADB7E6A33F332766A0622DC +AD38E43C15CC372CF4F451DCBA3DD41457362F6617F8C534C3ABA76B249B51A3 +740B0752139685E5E900A1D3F918D0CBDA66975ED5F50368ED405435E4641EA6 +D772BE2343148F46D35BBA3F95CBEA76A682838F5638294D1D451161B6C8FAF9 +757C178FF44492BE105E4B48DBE6C4E40CC8B5B7DD3200C95043701793DD5E74 +FFB0F83261DF194042519527418F67A6564D16B38C172A4B8C75765D249F6101 +17329524F12EE527842C9EF304870CB13E92E8052BD6A8D0DA0A21A2F98B6F49 +99970755B5C573DFF5D5F0BA6E9E758F3C16EA75B9FA7E4116D7F35544D5CD8B +85D49CA613ACD5470E970A452637A25BB2BB045D49083AAA9FC4C2F20F16B661 +92402E391D1A3DF065AC42DF7227B7A8D718A83407643A97A5C2DB7F999F4B03 +A57AFE9EE20587A05E60E84DA90BA77F1168AFEB98E8FABE149AEB8C6BD20D8E +B07E8F6ADB940A582D6EFBA86245820B7141DBEE38384313EE32EA02B405E583 +EC751FBCE661FA63E959ABA7279AF9E7232FE5BAD3A6BD57355AEBA4A2E3E74D +8623DA1CAD97F371364B6967DE3E16EF21B6FD7AD9005F2A7A6C1D646305CD79 +315B0F97D97F75DA9FFF7BCD11DA33ADA9ABCD7770A10B59DC4A611E15365054 +2252C781CEC6B8CFFA9E09143DFB30FE6F5E306B89E0663C98F4C1B685992EE9 +B2F4CB425ADA08165986750E0E2DA8D26E64900C50016B1C0A98256C7E5E0105 +473C484A5C4119060E4EA388AD2C929CE5EFE2FC73BD01EE0E1416A37549244A +D047D88C5E3AB7B94B098F483775A18FCBCE1F8991522E0A422D34300998AD8D +527253CF43EB5501D65A2464E7F0F3339593166C14A867AF2483DD127B32A9F1 +FE3902367B8534956BF7FDC6FDA9A95870DD68A5A6C9E0610EB88E61A9F4A376 +BA213F1ED1D8B6BEEA1E4B14F3505A7AD8D9CE59CFBB3FE1A2406F70A15EAB5C +6A14E323242C20E5B8B69179FA2A820C5FE5338F521F07A1E07C1B0212CDEFCD +7D766D9509FA912292E65105462EDC34AD3219B031B0CE1601E019AC2206675C +DBA6E423EEFDC4831893ECA67F1ACBA53C614769B9A73EB43A929C9591B8BCE8 +9D96747A03D9E018323292C9AD7E8D4B4BF6C0FF7C389F76E7BD6CFAF8D4F07F +A914EA5EDD865EB16D3808AB28C4D6836F44507F37C8F8EB18D44213B20FEF29 +9C22EAEDD5E642D2CEAE9922BE97B41AB7F238CE69AE04157A0F83DE1CD4EC71 +488360AF13FB1308518CE21E1C31683C62E968E75EEE8CE9339C7514FD151EBC +E0E7CA46F0318DDCC7032C6DE59B336696A180501F5920EE58268606CFEF0B47 +12DD999F8EF6895FB4CBED3DB7A783CE6D68188C5BDF33174C92EB8F37C41204 +0892F18596B81407DFBE5CAD023892F736E1145643E5412DDC600B17213F76E0 +FCF3CC17453220AA793143D48A297CA1445CCD5D0FFC35521DE9D51B3ECA7264 +020310E5AC5A8B70BD55A72D02736C150BC9D657476CF5A2F37C908E01EFBA2D +FD5F30E800B928F24FF7F75785D5CD66A4C3A2318A4CF21B149621DEBB63F72F +458B3EDF5831C3956DB3B19F55BE50DA657FB1BF5D01CC6852BA9E0DE6706AAD +399A1946074CA6706E6F6A3ABD039C8A764C6CB46F22EE31CF64778AD51C82D6 +6630F76063A08648BBB6CC603ABBB928BE2BCFD5D5FB5BC8084DDDF794729016 +C5BD067A900DA3BD0D4981EAD98A1F546A0D1F1866072068DE7DC1559D258904 +96897EC208EDD71D2731CDD55EA01A463DF99EAEF746CAC089EACAB4B2CFED8A +8901EE89AFC2C51120FD9E488C9C91D2C84BDD0EFCDF859239560CA5908C8895 +20B9D8EF696B97A2EE044EDE9B28C37D716558E66FC5053479EFA99DD6DA1331 +18CEB3CCCC0D2F9EB186DC322DE3B1420AFBB380D40DBD98EDB8E38153676C9B +6DA89FA4759FBE0B9A3521A194FED76F0595016811D1D838F236469C35A013A5 +01FE8532C251D1896CB47412CECD5B50DAA465CF3A60D8728C6472BD687B9DC7 +BCD406963C5DAE3E331F67DA006DF0A0BB6EFAC3F6C30969D67384243A95359B +CD364CEAE601DF03EEAD229117AC7A46D97639D9F12E05614E6C52188D925B14 +AFEC3C22F655E20043DE3FE45D1B234D812ADEF6C8EF09B3B8308797756E6078 +7F208AF742D3F61FAFD6854BDC29BDE9B144231D91357B090E0BCC53AF7E3468 +CDAB57818436F1B6DED8B778740DE40686A4A498F1F0A502BA482E0BD76B0FD4 +FD29B126659409BF52B67E2F6CA1FB6E556CE8FB9805A9DEAA4C244D91EB2A50 +C87291AB4135275475AC8F77C319C4081A11E8F4F2EB167A5524A1D32D854730 +4A5745529F4D3303786A76A6FF314ED718028AED93546035DC4993C31702C602 +D9E08C5396DA1FB14119D38F7A7A97C48043E4AA525FE2C0A81C660E2C03B236 +5CAEC609D1184ABD6B51138EC2BBFB92428378985D2A4612F6C7EEF9C2D3DB45 +5EAD0FFE02DF84C8C6B3EFD7A8478456A68DD99F21EC3E01B0E535D5CAF036F7 +67A9BD74FF20B0AC9648433AAD3A451BA6E384AF74F24687C64C70FE25E79C20 +D13AD7D37EE070E531A107933C6D87611E65DD0BA97D28C5F0E47E8F8591C132 +6F2942B5AD2D00F88FAB23F5C9A8E4C4F4B71EE07E7985292D908EC1EBE51A57 +7F63F2D789528738504863F68991AB87F4955E6DFF058696BF9EB6A1425B9297 +8C40C122D3D865578A75563C9CAF388D83E91EAE73291B5100627D8AFEBC8DC3 +0C0BCBBE2DE7375DE35BDF28B067B19B0E97452339736ED3F4F78D4C4016EA1E +43E4C5987A1747FF0DE2ECE401CBC5594E2F139C8EE129541DB25AD9E2E749A7 +6199A1D056EBDC63A6AA35E7B7875BEFADEF18F9E8AF011850A7CA617918D1B3 +238808F3FE134C7649BA6F00F06E4CE0B5CC44F282085044DB41EF58DC5D7B47 +C4392EE7BE1FD1CFA633AB0AD0B33C1EF22EACA3750CCBA4E2CF22F89F6E0494 +58B001E13022C66484001FD59D3B549825D3D043059A9C4DF433440F019A11D5 +9FF477D0FB2DBF325EF52626FBD53A1D072847675ED6E0147B2E5550C0121AD9 +37CDBDDA279921B2B20D2E2E0704F78684F515E64BC389D58B0A87061D05C476 +CBC8D9C79B0A86C672898CC1668434C5340E263DAF9E24962699AB1DE61C3DAC +C1E00F78AA6977199209C63C90D2314451EBE95E527C847354C3F32D858D79F9 +027535E14F6AF425B94D893EA7035B2C107E270DC1B1AE45525507289CE0E236 +302FCB822344AE47DF0DB68B0358E8BBDCFFAF31A7B7C557589A93F2FFDE3F68 +14E9A15F620F26F88062CDF65C5DA0B8C6D68D23375151AB6D4B4147B967361C +B1659F21F7C1F73F92ACFB7D33E84EDF181DAC000F6501B2536CF722030E94D1 +52659FCE28624D58968AC2DA1EF306B9BC09D531D17AFE0A1ACEB1C51EEC8E2A +332FEC071349F65224F873577513257FFB4228777BAF521FCD0EF8EBC689448F +E5E89BCFE062284B7F47952AC4E11FB66ECEEBC77426DE4DBEC96FCDC3EA759B +FF4E6E0CBD5EAE32B2A8332866738ACF3DCB5D364561561633A7E681B4F54385 +B4AE1047A4482DC021DF8015D737E95D72EE23DF1F429D0B8909CCE0037360CD +91B27571A6D1B238CD57A49517E1B2D7629C0386789D610BAB3CA434BDAE68CD +A44F6B889ADDF83ACD17C8F827F88A41394EC78B09A654B419F71A75A865EE62 +1EBEF1F2E7E3BD54DBF36C239CE3E1939EF3DCFF712AFA61BDDE2671E1D5E7C3 +16B3DB938F1953310E73240E5471F2E01CF9E27F3DE4046C45785269A7898D2C +BBC7B2D5930787B01AED9D85CF8DB0FC95F1B23600A079B646B1E4EB183A252B +DA514AC16A8E9CF3885BF5E5FC03B7A6C94278C8F7E6565DC72428E34ECF1EAB +6BDE7327A4B52CCFCAC02CCA11215FE19718A34CB0770CB517BB3828A3B8083F +8C52B8B82F54C5B933516DF4BC9F02D8918198991C109212011382393AD808F7 +64C7598BF94792A8B684864B5BC8F6A7348BBED9839CB637651FF0F04EBEE1DD +3F845A6D1D49C123CC530930B64B6E46A32E4705168E914E2564AECA4B294AF2 +93FA9C899668308690A4A6F508481285A701DC0C63AEF443F04116920E8D3664 +1D5F951997FF92FB444DA2F3D8A99AA461EA4596DFF774E5856DA311F1080B30 +1CC9F777FCFD17819A27401DBF60CB1507FFE9A22D0FBE5F6B1EF15210F2D9B8 +DAFE15929C33342BD0085DDA53FF7B672FCA9AA63B24F806B86069ECD8765669 +41F4DC8F853AF0AFF0B6BEDCB323F0B500DF824841A720A9AEECAF6A0604952A +FD8ECA519C83EB54433C375BD0C108E951ADC21C1F2494034360548E56D2F2C8 +AB097FB27AAC1EF5CF5D0A5954A57271041ACB3FB06538A9716DB59428CAB874 +DFA4152731E2290E595F9BDB858F475E60702C3B539E4C1DF9291C18CE11415B +9FC553AC3616A4A31E8CEE22B1E25EB233A18BDDC28CAB44D9631DCD3E8CFCE6 +31B86497912D6599375B5552F06E5455C5BF9774742AE235D4F5166A5D274068 +7E4F72696DB9CB666D542E3F01BAE3D2022F0C499376637C1DDEDDA5F66B09A9 +63866A6694F99ABE1258EA5C4663A8ED8C96329CEB4818B35DD961601F4C9100 +CB0633183486CC2C3650AEEF93EEA0DF60E62336F94D9FC68838707236BA5F87 +9812C6459329F66E4968E1D4B67293F2E56897A1DAEBF1C9009D1AEAB820294C +53291ECCEE802DA696CE3422CAAC3F7DDFEB78D85CBEF46C83C79ED5E1E343DA +838F2FCA4AE57E142DD27EC5D863076C59C15B2424B66F15A1BDC68AC0AB0594 +723A60655F09BE3341C07BC7851280BD976D8FCDFBEEE4A5F77774319BD18E90 +E6B87374A6EDD4CF640FEE19045DB7101C7CFB5803DA6F831409FAAB4D5E4ECF +ABC5A54041AC7A64D5122D007B02AAB1384B4DEA4C4B6EDB6192EF783CC6E041 +CB59689EA387FF0841F4C06CB6C1A714D21FB01E86C0B5783BC9609813256593 +8239663721ABD41F6E0F55E132405E947BDAC03A823E871F64874C1CEAB838F6 +F04D9996023548886F428A5FFADE48BAF6BA884662DDE2BB33B01ABCBC6ABAC0 +9BAF62F25F5D1B10BF8261C16D15FA4BAE51C7AD1356DB94BC32056394C98DC9 +7C17AB2216FAFD77CD595B479053F25DE391F4F3AEADFA88325A2A991D44C8D7 +B285C202A661E28AADC84CE31AFCC5AFAB7BD16C3B1A67CF75F534A7D06CF8FF +946CCB9576FD161EF9ED58DD8A559CD77F159EDD4DE16764001EBF2529688928 +2F0501661494B03447BCCA39BE540AC7E9598E27A1EC56A49B88BEC17980003A +5DABF1F98BF75B2EB973D2960A7AFD14E8105E29BFA4441C94CC915DF356B33B +0CED0B452A68BB52D4FE1F07579516BDDB5D026DC099CDB239A314785ED9889C +1C0E122A55C643AEFB32BF11A947E25FAFE98C624CAC083DD1EFA63306A7910F +F20B1BB20ED1FC87215D51A3D90ABBF4DFDEC13278C2190BC35A48FFCD881916 +9C26B8B9FC9D0E7230D875E3FD632EB45D39ACB9660D929C32E6512FC5F47005 +9816179CD45714F2A44611B2BD89386D33425D79BF68EBE5FF30FAA57486CB3F +2A464C3EE261E34D08372E972B434ED3958844FEDC04BB9B292D21F099F4C7D3 +EFDE163067B28FD963084434B89A3E1156AA747A1E6600DBB9D4E25AB3A9948A +BA3E576504D777700A04372344D0CE20C580B8D3F37201E67FFB943FBEFC3DCA +2A245F01034164DD4CCD9C66DBF42D977913947E240EABA0B318C182B40A44AE +2632422074760DD77F57779C073F3C62DDA5DDFEEF7ACF660C976BB30F7D0074 +89BE5BD8DA452A536C7467DAADE2150F28AE1A1F0CF77BF0506B32890EF73FC8 +894E23E66EA8618F294F09A83A407CCD095BE6DA116B21E8FC17055A3AA6C22C +699C7D58D8F3B8009C7666CA5CEB86B73FE5F9CB66306F4A4373959225479198 +1D5D51CE3A9BFB30C02EE43FA6AF4BC0EC91F3396C831F9D5EC0FAAD224F2038 +35DF29C64181D61D0C78EFEE14F79DB7BFB4D644FDC01AC720AF91E481613B4F +0CF3088EB28921FA1F04C46C2A2F9D9DF52120ABFC96F1700CA5DDF8C2F45D3B +046BFF76B61399E8E50019FA727F06FF2AE9C1EFECF879500B3AC11A7B45E57C +26B363DFB226A037F6B0C9D821BB8DF4A29AF07E02D40D103F42A2F3A3F2DF31 +5BD3313B293F8514EA5058A636573EB9D81A4824701ADBE3B4BC4113BD1B6698 +BEF5966AEA3553A5190AF19E749D0089C8124664216C063CC99BB0BA6ADC6649 +B05180041CCE41FE06C9461D0307196C371B92E217CDCCAEE2D1CEE16F8DABBF +042D45B01BA551D806A48F995F34C6C6C07A4F2B011455F6A09A109C9E2B36D0 +27497DCD0F445C3EB7523A05D5B4E08DE30CDB418F121377B5D2D51F2798B203 +F61249F18F82311327EB587481DEB7F6B8B1AB0F2744AD805BB8678524259AD9 +3E3DCD1C27C46F5364CC0A650D35F0481292201F548E6DBCD73D4D63C9AC8320 +9F2AA5ECD2437C57169ED05F276902844CC52E3C8622E35EDEA9DECC3CF09760 +F2C7FC5A4327E7995E8378DB8D48F1F1B47795428F0882D2419E0E579F3F1560 +2A35812C4B28FA628BA4CD0C5D1DA325ADB1D9A1D9BBC35954DE856BA3E340B6 +027D48BA4776CD6261960B798226AF79FF24CD22371603A49E9E61F37410A834 +9628898A84EF2A6DF6FD4F5EC4830C71AC5BD048108469E7F5FEBD91D88DDC65 +6D91BD094E62D0CE75C71F1F782B4E7000E9541B3F3A8B943EF8FAD0C9DD635B +8CCD9D82AC29091CF6995178C6A89EF4085EC8DB211106C461BADE0A5295FEEC +E79F57405E70301EB415FB06394050B9066072F690C2E267505CD71E3C10F451 +D2BE9F61614D261492DA99E1BC2DB5D685B3A035EC8F78C2B3F51D7E849E1BBC +9AE1606E58B66C7B039D099FF74C016E0DEC64BC582F2CB0EB25871283D52B59 +A56E4F140F1A752BE4F86CC2B3342EE83896D100DE18BC459E6A2C5071D42ACE +4F701288B3E288792241C12C6E93584283AAE806C18D922516D87319F943EF5B +58191A6FADC2D369973697F36718ED90A59E54951878F16E75F6C1C4A2EBCB82 +58A26A73766BE545CC02179BC4CD6F582400F7AACA776B135A5F10719E2E8CD1 +519427C568C4C856EA93F0F3A81F06E16E076EF69C06BC4A296A76B1CF37A005 +922110F938156B1A2255A3E728D7D29AB2D07840185F704551FDE47A1DFEC4A2 +133F40FC658B0498834C59168478C0A43AC60352F98F93B9E7CA2C77EE220210 +043CE237B9362F991940BD43459DE27CC0D75FF2745804FD061068C9E2179DBF +EFFDF6B388C23F7AE14D270F0DCAC1EFE6813C260062858595123A4ACE373C4A +D6E703F72634F9F516A0C40D6CF90AA4ED3DD6B0E5F7F466D224BA424D63E6FB +577FE885BB88D4E1D8FD8AD0C112B9A59325893E2B36039FDECE4E4B6DC62B5F +03CA2DF2C05B7521EA05D6429B0C1AEACFE8557602C8679E9D4A2868B041381F +E81F43FD44047A20872160F15FE1126A1E57C7DCEEFF9269A102FD7D19B684B2 +96729089C63951FB2EA54EE428F9FD782F89389AABE70FA40FCFBCC638D5FA10 +B2275C39988D48ED9835856D51A54ECA77CB4D2AD848AFC44D0E7315E2758532 +9B5C54554ECD539D071E0EA6A020E7794FDBA141A3B7721D4F2C39236C8C4AA1 +005086C313C7D4E631B0F191352E6B474B9039F590C3639EA67656F10E47EBC7 +7F90116981BFEE5464EBFB3C8B322FEFF37AD2C4F9710DE81501F72174AF02F4 +5E63D6264DE94A461ECB837ED4C5D02E1BF930B57FDF550AF1542D83FC8A752E +2396AFA16F80B2EB9DEBBC3C9F66560594EC9E5E2ED7B5D3C1DB1302D536186C +6125FC900BD941EFBA4892FB9A5315486A2FCAA4643A86D70EEB90C86FBE285C +A62C1F41BD3ADDCACBFF184D33AB3A4F0894BC61D9CFA6456232D3909722FD44 +7B3A243F9DBA587989D0BCC8E46B547D4086C342FC6D3E8D37B80AD8D603F351 +A654097A97F12D70292A85B53EB31AA9773C97D167063589A5522BF2E8D61158 +2F3F69131280C308ED684174C768CC85F55365BC068BBC360E49A92662EC0B29 +EEC99B1E44 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndFont +%%BeginFont: SFSX1000 +%!FontType1-1.0: SFSX1000 0.3 +%%CreationDate: Wed Sep 12 2001 +% Copyright (c) 2001 Vladimir Volovich . +% See the file COPYING (GNU General Public License) for license conditions. +% Converted from METAFONT EC/TC and LH fonts: +% ecsx1000, tcsx1000, lasx1000, lbsx1000, lcsx1000, rxsx1000. +11 dict begin +/FontInfo 6 dict dup begin +/version (0.3) def +/FullName (Computer Modern Sans Serif Bold Extended) def +/FamilyName (Computer Modern) def +/ItalicAngle 0 def +/isFixedPitch false def +/Weight (Bold) def +end readonly def +/FontName /SFSX1000 def +/Encoding StandardEncoding def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] def +/FontBBox{-235 -336 1930 930}readonly def +currentdict end +currentfile eexec +D9D66F633B846A97B686A97E45A3D0AA052BD0CE60552BD63101D7CDBEEF5B11 +69C468645FE4ED1AF2541AA0770C1DCF81623DE0ECDF49F2B522618F650CE6CB +CC8C21885DD61AF8A523AA677EAEDDFA51A1F9B1885EEE0456196D634E04EF89 +F17499DAD982502ACC349B9EEAAE4A71A73D1147318C60A8BAC10510DE90D8D3 +F46E47295D27129A5AFE0C65E22BAD10D06885A2EE623FF8E1D90287A083E00C +EF25195F68A2A98170E48759F267FE330B512ECA33884E2FF61F80C94834EFC1 +8EB28A04606430B3D9E015B9EDE461983BB823CB2983A990C85D68977F86C9D6 +69987F12659DF9F131F86B1B9D2C172B8F30B795E9CC4F9DC7A6DD76A1C08914 +1CFB6C6DB52CB0BAA749CDFD030A83DD5E474BDCE04C087271D55761244F53F8 +30F60022B32534FA74739AAA0F2B2AA03CEFB5A79B09F3666F1D6EEB0E706507 +78103070621D6194A1AD686A43C11D1625424C6199A780B117BA7BA6FDEBB47A +C594E786A466D0B8BBB3569638C516A2516610994BD4194811B805B174D7150C +AB8543C67DF74E005E16108F55494F9E7112AFBE1B7569EC8C098351F4D6BB82 +86B7DE66C632138B409A8FCB9FAEA61BCD16A15041B2E772B9A97FB334D23D77 +2B81617E0A34E0119C61AE0BD417243648863EFCCB443D1F2901AE2C238AC591 +09C16B3F4B4B39353B2347E3CCE1212BD9F612D686AFCD50F79E70E77E4DAD8B +9CE8DCFD565A47244952D1D3A7CC327A8E6BE3768E2A4FA221B60EA17BDDF141 +ABE4AD6DE170C38131330852EA79D3A32C596C6FD3D4CA9DC0BC9FF59B37DAEB +BD8853C75D211076514E282484569DF8076ACDBF00F954FB3538D35AEA2DD9D4 +7C74124A36B6F5C1A4162577E5087C01936D0719DF558924DF8957E8F16013FB +9632C61DFD99DD4201E8C62E61A15DE10C0F735B96B23A43758C2172701E6DD5 +DF47C2993D5AB1E2CF9EBD6C353B71F33E4BFC2CEC2A5A065705617022ECFFB0 +C84887B339BD85B5F5FA86F2A6FFF895AB8F37ED5E0D89A19315AD3E6911F328 +8CEC8390BC6AB44B240E8511B7D2509FF64A78AE038E827E59E35BA59FE2DC59 +AC609148E31BFDEC215117338C3475849CBC09CAAE98F627C4AD724CEE707A63 +FEEE7B24ECDD666A174557C1FF3545CB42066F2C8957FAEB2D9DA68A01687952 +B260B1295310986CBE319F74CEF9A3E410D469A7844AE3E971FBC2B126973109 +E5F84F913A182DF0BE102B816812DAAA998ED75546DA5756E6FC44A52E5C75CC +D26C3A1272CAA9B2FDF841BAB042998B929D51B9B81FE297EDCAC5A8B6E64548 +1F40D0047EB7FAB3059E14B7A126E4243EB937E8AEA83889CB9F56116A49FF37 +7486A6E2D0FF2B2819A3942F257E38E82C359BF2EA895847483A34E361D9D34A +CF98A0F30C120FDDDDCAB7C11438FF7CAB4DB8AF57326C509E22D20FD8C11DDA +7761B1A0D62A2CCA91C3B92FCC9AB2A7AD0D2111E7A876C3F420FC0AC26BE961 +4F0744B3DD6166D83798B339299E81AFFC6D632D5BD2E0890839A4E3E075854A +A0157967D94A808997006F9B21CAC6FEAB7188ACE6AF9E79591DBEAFBA837B22 +60C3EFC0740231310A181E42B7E540472699E6B713676AEBEC0B83B0EEFC361D +43D5386A30BFE026A4B5D7980A8ED6F82B351497B403F3A45ADE77FA6B8D7CDD +7E1DEF73EADB23CC48AEB365AAEE8A1D08A226B46B2C0F37D102BDF46805770D +168EAF28C337D45762A08817672E6616B3BF0ED766D838C9B744BD98D99D79DB +080E9B6A3F3EB3E3186E61A7345E056AC7FC91FDBF0E876A37F59EFE3FA57A30 +97BC5DA3BCA4E403BB2FED2544FB3F4296DFF77444F752EA9759D337AA27CA3A +C791B3E711F632DCA511240C9C731C727899C08555DE5992A22FE5AD2DD1E1E3 +403FAFF41294971E32E3308C07191CBEDAF83E6B7E79F88105C7E99E2F9F2767 +8799F8DE2997DEEBEE1E09D4EC2A41795F2FE7F1ECFC48E2E468F5906DDDB58D +EF05838CD3A34E691EF7A85BFCB2906A4CE19E504733BFBB69DD309853203C0D +E6916573DC22FB6D9E7A10EC504AEC2BA44C3FCB2CC59ACA2CFECE06BF0AFA2B +C108F38C5251EB0D329E38BB46FBA8369C49B092B04B0495057F1AECF7496E29 +F966F1FBE7705D1CCBA78266F22F600BD68F9B52584E34321844272922FA8C88 +BB102545A41129B5EFA4F5C59A0E8FE42912D6658BF3ACCF715E63468B88627A +EBC237DE6FB680D2B6555E8737F330726317DDBC543DBBACDD038E74EE246F6E +98335E02EB4C8198B4F567B91FB6869A6F133B5F190BB105C3D897C3AF61BE5F +03095333797C0F58BF5E25F653498F73754FE0CA8B40DBC4406550C1E159A630 +EA96F88C869DCC73B23098C204B77CB9D1B9D4A51BAF59C6667EB5AE7AD374E4 +B63310DCBE91563855D38CC0646427D3BDFA280E28B55B0A0D22B1CA72EC203D +8AC3B654D95E6C33BCF60A45425F06F442C105B226964D5D235898F90FF7AC24 +764750FB3C48325C552F14CEBBE8B221EB1E6A811CED76FF36E0A79984637CF8 +0B23D3B917C7C0BFA91BDD117E4221691045EC9F9198FC6C87661AE6F9DD0361 +4E88DFCF78074F5379A0716AE84CD419A5F7B4C4AA2E1F10943FA78250AFDEDD +CCF18B706A4D430ADB1F79860309341A1FF65790FFA9579729FC99474F29502A +B14EA4AC3B3B025C2790F8B1187E660B8504678696CDA81C2EA065FA829600A3 +43D563AF32FB564D93E6230236FBD229457E0C257F512CCD5E1F43E987051440 +AAE629BFC367A6004961B9D77739E414174A8695B048596DBC96D8A86415ACD4 +5660016B380CE26B9807513FDB3C39C2B7129C4919F415BC8E43553D8A7C136C +FA0D6BF0E278CC01057534E5049844D6763DAA4FF54DEF7729F81E0CCC8983F5 +48002EA39CDA4C8F5A87BD542BEC39E49ECCE41D0027AF036E899A72532CC982 +DF1C2926EAF7D4C34C8DEF8D4B2054A8A2DCFC11EBBB61FD98C4A3F26557B683 +947D5F785C2060A6B15FCCA56E15D6E646EC386F814076F1BBCC6C2652F8497F +2B33FC182F9653A456D1C2C3F93357460928ECA8A100B1EFCE0E5097C11BC711 +3F02694494590DD7931D3B5BD12BD1ED23B37B085646521D985473E42B5CBA7D +7E7BABD97D866EAC1E5B55BB1251BC4D0556BB49B8019CE51DE790C43FC8DC61 +3D0357B733146DC9A135C88DB3618D77B66A197403F11E398B98EF65759E3A51 +7575414D4BDBAF226878AE09A00761D113BDC4C51077173038091AC805E832F0 +16A7F53D93B3E12DB311E6B39E6F4739DBD89DFF1770033D9C76403AAE6CCD6E +54DB56DB471669580C9AE639399FA0AD809EAB839CAF55E46F84B2E3960DAB18 +D604C70FAF0366ACC825D5DE37506CF77D97024253EFEA2B87DC3C3EB09C1EE7 +DC5CB38400873319150C6CFA0C4EE73CAE558AC738428D6E0AFB268EDBD12F4B +3007E7EE6B95F4F600891540BFCB9618479F0419EF52FD250B1475849FF83B13 +80B290054C79109D4B213512F72CB77F840CC67E07A91DA1D4EC2D9A0176EBDE +252361BD5F0DBF2A9D18AA81BFBA9212E20ACB5BC97EB092E8B1777BB6A9EFEF +D2452D64853844E9033255C013C665DE44ABC6A177654CACE8FD9DEFA73032AE +74E7412DCD454AD5828926E679936C6CE00397625F7AB7394D36BF00C52CA100 +DC53407D2970A1E5094CF27D7D43B9635BDFF798B0898A10BB34DC3834CDCB16 +D1DC69B5C9E935FFFDDC952D0E56C971A6BCD0F27FBE6562B0C6FC4D49CB8061 +654EA2771727EDE33AA2CF3BF2FCF9C2C07EB21EC25B2EF6820E6AC76E11ECB5 +1BA66E64288CB8E6058FB96B788BB641EED244F3743E6E2F2D1FEDFF69CD4A1A +AFADFBB21B7F6629028DCA315D3B55A40ACE981D20A10B0A1ADF85A246A3101A +36D36D7C8A94C8D3ECB6BFDFFBCE3F1808BF0293B8B5B3C8782521314697AE75 +46AE00AF1B5FB4AB5A8720A47BA58EADA5291D61552C4AF430626B12E92D22B7 +53BDA0FC2704E7CB9FF4D2B2665BDCF1E6E96212A43F240B807A063935D717EB +CD44473D6BE313143A452A60C0500292C8A10A919EE91071C43AD27FB1B307CE +C1ADA82C28DB4364166270586D483DA699A40EF8D53C29D00D891A0DD8E10820 +9A37BAFEC0721CD1B766C581569A0C21F5EFD8C0875DABF7E53E30FFD9D3128C +292C3EAE3252DF90C3F0D5533D5F77CCAE24B3FFCC0921CBFE8DC5CEBCEF6776 +B512FB0E11E043C8C2CEDD7401A4A3F997100B33CEA34DB3ADBF680F6370CBB9 +42F7245826F1AF1262E77077684143BD560FF65327A010425AD421DFD310DC5B +FFA477D2AAF14D7C62B15DC40F80868F402AD7824881097544C70A57ABAE9692 +76AE0982B334B2ABFF27B773081D6337C45FAC7CE18B2760904A036D73CCD7AC +8D6636A997421FAA87ABC1BAB270D350FCE65A0C185207D732F179B8FC1B2E79 +8A2DC116435F4EB72A461AC6D7046B81B902AAE3F75213C201A34518CBA39D1A +792927E38B8A0BF4E32F4A4C293D71261F0CC96E0405DD2FBF77A575F65011FE +A13A7D1318350F70A046732B115C4E8026D233EEEA4A2E993DA7E61C1D5C8ACF +1E84500A580786BEEE7D95C8E5D7B4900CD505F47BF1DC1C428C1EDF23397C66 +3DA722FDCCD193456CA3529556776BBDD9BFA0F5CF51A67618CCA79CF0C5819A +9A8CDCF4CD8882D55D5549451434FFC6B9AC8F7C23EABBFD7F19602BAEF05798 +434720C323B78883EE20AE6A7084894FBC7B2DA51DF5E377BBC162AF7FCF1FF3 +98C1933B84265F967FFC460B07448242D6361E999A8D49D7538FB7D61EEF517B +8AE89200263C3C9F1B5328DDCD72661662FFD3394EC65B4FF9ED79C62FA36A90 +BB0F786C450001735E327BDEA8FC50899706F195DBC92377E3895FB8F305D380 +7DA9E5C5CD7622358288840CAA74199CEF1DBC547E65A35D257D03CB03226F4C +4318E4ECF9A0BC1C77E18A241B500D66A8B30FC5A6FF9F0382E9B09FC599792A +D669E4241E5AE467787123E363C508079D3A34331A103667172D0370E7960ED1 +CC6D6B31BA34B9E064A16CB6C043239C9E1A4FDA3C4CEE86402652673CF10A27 +9A203E6BB52F06F6674B3272FFB19BEAE94F1F933DE26AF39106B4610C16C97E +C9C93466FDEF6E490AFFC9B6E29D5D5935DCDF871E158460AD7B821B0202A7C1 +04A1DDF457C8A36AC788D4A7241CFF20023219AAED0FDDF72CD9066A5CC7E07D +913FE27FEDC415684C7B3531EDB0EF85C078EEE8D357D067A939EF60AC18C9C1 +B31E2BD5D77D4D0286680D673FA32388FE9B1572D83DBB5452DED0A860A4A0EB +F1B460D76AB105C995D6136DC7A285D5BF0B5A5946644C1A7ACD112077E8641E +E1F0B542C49A01819DC341467C22F7C7FCB7730751B1037CDEEBBA553FD0B86D +FB40DEFD812F55FFF0D42238F8DF0785006A0F57BF6F0A58B7715409A073F81A +6308DB0525E61CF68C8FACF7DAA182B819D2F33D3A5912F12D071C7C8844E0A5 +8C83C256DF9A3A9D4F041CE4C497D1BED93A6A5CE6673DC971BE5395B606F8D6 +E5F139055FB696F9BA931D2557FD1C7DB065F20CA9ABEED321A07D23CA4654C6 +A49FF76E375676DD7139F018998F21E6748817174AD09B9C92F21E559AAD015A +3C698B2F1DD7DF94D7CC5AAD9D14395ED42DE9B704D723916C117F2DDCDB725B +DE8FE220A378920C9BB9036C10040D7519247CA2EB7EE4627F41E21B6B86F75F +E172D9B26C90D282E3BBB0E22E176CDBD1DC8BE381992C5FC3178918604B9642 +F4B1C765063359AA585DA756D73E4D9A8A395AF413C986EA970836B9E2854A68 +5269F841E744B673756F1BD38C222F66F2E1AEA9A1E80EFBDF83D58479CAE6B9 +7B372AAEB7D2196F2689A9FA78B79C136835FB80A1A1D0AEE7CAD195AA7E57AC +8EEB3811BE2BC948A926FBBBA4A83A0C67D6B2464E75C786A05E8F774AD4E4FD +DB91B9474A8A26496D574C1887F047EB95772C702C4FDA23DB576384D456A566 +581EB1E230695B2DBB19A59311646195484BE3BB66DB74F52FE5DAD8A346D646 +925519922F1910F98071030F9EDF21F4748097450564874A04813215520E44FC +A5F79964B1407B24BB45C466BE5C1BA03B7B042F8FE2480B7AA65ECF2609790F +BC010FB412D7569DC20438DB961A3F4A81FC2BBA58FA22A772E63B498CD052FC +87931B81EA650408B9D98B4BF93D100A98294C95B27305BDD4427C4D82D938E5 +54137254638555229AFA1F913291B1B0504932D227E75213E3B3B1F7FADD18E9 +EC124583D90B9DA03EA411F50374DA8A1592EB66C3B7E95C4C14180F8754B663 +4E8EA3C0579D9536A29293C513AC718C036C5ED6740D79C03800693DF0F76659 +C59621454D6147221744EF2102AF90A7A430D5EFA19E96A5594001DC5B6D3416 +7F67D33AB48AF1205E426FD9D567ABBE767DF8CCE6DDA284C297FEE1246ED0E1 +CAD608172AFE78155BFB319F17E89E4CDAA34854CB84C23C144B8E106C733EFF +49721732630D01EAE7450F90E497A3E146C23041C96B345279F984C53A58D9DE +4629B486D432D61B32A9D94BC30F0517C66650E4FA7096AA032AFE78155BFB31 +9F17E89E4CDAA34855F46E1C14EFB356EDCB5CD1FBB4CDEB5E2AA64CBA6FA50F +46F9927E54CEFC2A3F98A0193BEB6C9D6AE9B1D578D01878C314A5166C150F26 +5D43DFFEF0892B36DF918586B082DDE677E7BAE411F7CB16BCBE5A06689ECDD3 +D76D5AD9812082F4E7AB105F0C7B9A985CE0AB7BE3B19DF0F8BD6849BD36D399 +0FA03DF074E487C942361833C74A1F05D916CBB05AC4C43E1B9E918E2730C558 +416EB73F3CC04D961320F53F6C106FE7784BE1C290E7E1EB317FA798EC8D534D +E9B4181C2E7F9D80E30A8E6202CF330146F527C15DAE54833D1BDA70B1EA8BFD +930B9412163437DCE93061A34A70C274C3CD492EE4DF2ABC9D9975ADA230E03F +FA5B36CEF1F23E2A0576FE020781065DB3350D240836B7377F55DBEDECA19F3F +65FBDD723B8E668827FBD0575AEF4C27BD19C32886971398C4873A0CA67DCD45 +59472F656AF1E76361AA9A2748C5350BE10ADD76F27CD73DE941821B9A74AD6B +19805ACDADD5D39ADFD18C0FEB64435837C21B95488872F42F5BFBFD85DD6CCE +5CA8B407056E084DB29C1D03E2D3F692C2250B19DA566EE66B35E7069A9E7E1D +762485439FFEBDE049F92942A3DB26E92548DA78A1CA1FE7C27C18409596D179 +901D3884966F7897F5314981BF3EB4297689111EB9C0E73F0D4AAA40FB466309 +C9BC0122282CBDA5E25BDD795A3B485C4E8BA1B65C3E6E225BF58F4DDE76A454 +475BD1510E166291FC5FFECB34911D895F050F420D81EA8CDD6EA09D289A5773 +E21EEC6D54CABB0E5A713BD2543A8F5834ABB411B945DDE48767CE4BBFAD0EC5 +65F7DE7F981A5F158B4CB0DA4B09F4079AFD581C3F8F4777479528F7B1BB1D5F +D15C159B840A418074615F70ED83AAB2FC9425FB2032D98BEDAA0E6755D3A100 +09293EA02C5BF3C7BED6B1E29CDB9ADD2B4F32220F1B21972CE96B85A3512E22 +E5635CD7E04FB7B091A5B700D4CE1164AADC5756E6FC44A52E5C75CCD26C3A12 +711F39F39CBA5B4156D8DB312AC8AA4208B951D7DC119B7CD32381D79D60BE6C +C01F83F72A1F00E700B76A069E8F096905876A03EBE0376A1D98FDF0CFA2BDF3 +A5BE51B3A41AA02AAFAC4FD5FEB99C380C11B0D3D8C48421EEE32A702DF8F6DC +B7E1AD9366701BD45FAD5C3053870865F5D27B234163E66B9F947A6851895F33 +A3C5C35CCA51B26402F011B52B57553169C1EEB83718948E036A82040EB14777 +FD7D5D73A6BFE1CAFB5E62CA5DFBA6135B6398AA8C826D42023BE0EA599245E6 +08E64FC61ECC9959A404DCE764F950918C26BACAB4F93253B37B08E03DB3C038 +4FC86EC15CFA7AF146B60F049863F5E6E667E419FBCA21DF5384D6F4DBE64EF2 +27314C69DFC0AA6D07D1BA23B4C55EFBEBA5A63ABE644367E250E664EEC08D5E +63D13D384623CEEA513CECD5679CF430BC88CE2FDBF54C6B5DD4F26BE7E5D75E +B726F41D4504557AAD2B3CF888F09D0F40A4179A625B0CAB449BE5CCF75860E7 +3572CA7C2A2994C64EB0BFC19BAB7BAAC154243580FCB443C7FE8F3F350FC8ED +47A84B487004DD8E5AEAADBD2A6CAA32C910EF599E7195F5FE5654A8D261BE57 +693ECBFC7F94C8534E7604D83DC7A4838AF53C4C76D96008A6B533E7EBAF8EF6 +18AF1B4773980393AD8FB19B13F9A301446DB0DE56D40B76DC8DF7A1BD7F28B1 +523224DA1D9B25C3079B38B287069AB6A403C8A7A52B6F61BB07C99A752D3E1A +75F4E6D4D1E7F57D7D43F8E3C4E290877034C3902F0EA39A679D879FCEE3756B +C5AC1F19AD474DC3A029AF49E7338B42FFA0B2790B0BCBF51E1E647E1F3AC1AB +75928410ECD5574FE761D83A482E959895287ECC73113F08A794E9CBE589540A +D1CED13524413BBE95C2391383A88000FFB4D4FBE792602B4ED49F2CE1B55802 +DAF2FADE062DB87899E76952236B772C473D69B16ABD7E4BF657F596863F93A1 +44170E89A0BEA1A7A8B4471D8FB00F97B4EA47596223F2FF5B521979EAB5212C +C7E7E4E0717284B8EC3835492A58A03F9A7DD2335E9F7C97284940D65CF706D4 +85490AFFE65EB2FADB7A25F04126B366C7C79F5131371E0D1C13D02F8FB82DAD +8EECA20CAA7CF4F1138F534C15749E6DF0469AB691C6AF13ECDC0B9877A29011 +BC122C9A025B6EE3A13A3FDA386BA760FFCFB250DCC80D0AE2A5047A7B6D816F +AD97157B36884BF8BC83DCEA810908F75EE8A4BA51C26BDD9934810CCEB8ACD8 +23CA8A15A8B58416987273AD529B1B976E514621D8780131EBBF8381DD595447 +B9E0D14D1666AEEE2CA32ADD6542A947C44C757F24256DB45C8CD7120FBB7648 +A98B81B98E80520E97C8E06EA26B2C4509D80A1BED14BB6575955C460311FC7B +E6B59373586CA15BCFD8DC6DE7BCD92563CBCA6C2C6B50905C92286EC580D626 +D45748E4706358075F2E4A76E8C16315B254AEA905D779AD278CA8D557E54778 +2230248831757D9168908F0B8E1B36AF9E2A940466DA7B9DE53667A460DF501A +0C415D4F7A0A64E3B93CE5C21B85FC874663A7F30EAAD8B2405587658C5E9C7B +74E90264A6DA55B6D50F05758354B9DFAFEF977570FB932B0C7D0F2760EAB2C3 +8FDE31F2AC9FA9025EF259C4C44BBEF7E503FF24EF44A205AAAF6C29B0C0ABC5 +5E08BDB74C163E5EF22D55FF55617969F85C61327561E279D91DBF3F1AC0969D +CF1ED12E111F01B9EB859F748048180F1F0C26D8C56A0270AA798540DFBAD51C +90A7738F26801307BC60159FBFF46A0A7B99015287DD4746C530F01112306DDF +604EFD195C86B03A5465612881CF9761708AFBAC451C79E3C089DFD6D26F89E6 +170107754225556912C5BD06FEBD3E272043E9248DE095B8695FD0435E3D66D8 +ED27FA12100338D4DB98B45EA419B0974C5A18DA8DBA171724B230CA49F791EE +579801427AEDEBC55EE36342942AAF901661AD78BA441345649B20DAD7F9A2B0 +79916ED7BE07C01C7CA307A2FD1D1076FB2C42C86CEA1DBD6F86878A498FBE8B +174FE5206FFE45FF252995C0EB1DFE5793BE863353B26769ADA2129E7B70D9D7 +DAC2673B920C7C13BD757BD5B251979E467DC6547C99483E2AA1E3A0E36AB090 +6690D41B787C20A359A0CF417AED16E3F2B1D346F644A8126EADC4813F842B0A +4F4E3BD2F8E8F5AC4B5F5EB63C17C627DDF12677F4FEB7F5DF7EB0093FF36C00 +8E44CDAAAD0D1FC5818F220B2C713BA3B6130DA295BE053DA38E53D23F15A776 +E25790E87CEB911B60BDCB44273DF931022D46B9B19C22B22901C4F7B92E7B3F +323E05A262CE8F84D7A543FB1676B10A35D595FD984E0417CF0FCA411345D2C7 +2D57F5D625228E8CD55149D114A9DCD972E677ECB3172F55EEF781AF4E966D31 +3D8B6D636E17D9385708E0F60CFCB319405EF317E49DBC2B8750F9BF6974198F +2E7C03FE5EBF8916009392AE5A15A80C35620B9D92F33A612C3ACC7D92A58355 +04BE0F327FEEE42B483BAC09D0B46065FCB05015D25DA40A9F4634C7DF6E604D +9E54D629A448233A62204C13DAC4C9D1BFA299B86F6E948310A945A761892E4E +C0830B87E08ADD4AAB386E95EB168EDB8E89CE1B3FCB5B7893C8AB2938F7B02A +AE4EF85B2F8799D02004294969999717D017ED44C6EC70746A13929DA61ACA45 +F25A9CFFED5DD578109290476E12D93D56CAB5E48D4D4746A3EC0B8CA261AD6B +74212FCDDA0683D76531C02F77F2C4AE2F15084F5C57B7EF3B0695974667E499 +04EB3499AC0AFC3FD62908058DDFA2AD235FDB8F27314624B955FB346AAC688A +25225752B7BF8F031650373F31486D8792B4F4B099EB919A1D92B4698B0464D5 +6D7C7D7554E118AB6DA3F541B7CC32B884F8B00F6066E6D879752198F2F54C1A +2DA9C7659330AC48D9033EA065C62D070279311E035B1DCA1C1EB6A81029F7FF +378A0EDF1FDA73E668D5837386F411D6972A9B67B0297BA9FB3CA353336FAF9A +4F5497E3DC8DFB4D9F7CF19473F1845718FCFAF2BDE0D460D91E87520447620F +355DFEDB0B92444DC2A6B48D823569E74070726514E6735180291E72DE255479 +D8E1AA7A5B547C3E02689A186C9F3CC6B82649FD0C5EBCD332ED03DDA8E7A138 +C313575624E0B689ED7A5DA2894CB440A7120878838D3128BB6342413DE6FB88 +89601F21C9D354EDF17507C5AB3DCD4A3D172B4A8AC5DE573D507ED95FBE444E +B84F20B11A143840EC16F66285155585A14E30DB40C4929D70140984C82363EB +90FD1EB0B4511473D837EDDC86A92864954FA8D1AD3C72744D2618007F4331A5 +6333463A350C18C4C0BC997193BEC1695D1A4018C5B1D1E6F80934F225F840CA +B7D1AB6E546CD9C09509663797EA6539A83588997C5C3CA85D1A8E81402B32E7 +99CBBC645C3C71C870E2F4D03570FE4972A46BC871A9AF45059EC4A271635872 +BE9544E9F0A0A1DC6276305518DE71EC207A5BD9D56647E5513D0FC052357EE0 +E668886402A70C8EB29852F8C792864C4BB40E21CC100844CD45AD5AC2F89B38 +D7C875E95DF937A1207893DDF43CEAE998733591F7977C9EABE90E685715B1DF +6259B085F75849AF4F70F3506FE53A6685C17437F7B1EB1FD9E60FA69E79DE43 +47ABB15EC3C23600BC5A557AF271E4D69A045A364D2CC5E46BE9689B97DA4287 +5DB98CC14829A7C1A434824D694AF5975F17F4FDB573A92CA29F968D3585E1C2 +D38B99DC4F5B1DBDBC832D60E58A72935303223748B495A817F99137847A2850 +BEDC978EE822C8FE583AF479F1FCD2C6C5783FABBF283963C406C11EE7760D39 +1A38AD6FA6A2D74061F487BFD76EB9E1EFF7555BC0F64E2C469270857D40253B +5FD9B5E7DA4FB16F76AB234165867FBFF5249650807C4303E9A8E48FB8771FD5 +615457814370AE1F93544EF671B66930A14A791E3733EFD9ACF2B0741EFC39C2 +673D8426A6B64EA97F58358EA6707D6B09A92E6FE284C950A2329B8371CAC8CE +84E149E4C84DF4EAD313B89F1444AD37EE4DF669DBEAF2B09F035FC6B18D103B +0988F3E22F6EC580D626D45748E4706358075F2E4A71E04A6C0F30326AB69175 +009AC8DF24B4F54A8E69683648C31022F931B2DF7D29FD8BB1D167B251791CC3 +DD9840CF87F65670B0FEB536F9633DEAE9CB386A900C1CFD1FC840F28C37D191 +52F9B99F98DD697B9DD91F717EA4442DA6778629620B9907E39B68A888BD4BF1 +B1C3732FEB33DB0F0235D303D012B0A93BD9CEAF54746AD6FB4289EC577BEE9F +DF80C9E0F54ABC5BCBA3601D9EA9ECCDA3E528F1FEB29551BD89557FB4E93AB9 +90ACC6154D05EC73E8D9A6F9E71C36ACD9B0268C11D365ED0514155ACBB4AA96 +AB55060C3A2C716D0E106BCBE42D82F098BB7A46AB1954000E454840543F4EFD +67A22B4CB828E2AED0AC4101C0C99E23ED1F8B2991F7CD6AB14C5291EA7962AA +CECD4A1243D31E8214A98E006C52E8DDE95E2AFF9E1DDC3A308229BDC85FECBC +BD66B29DCECEA53E55183B1B4E12B61BB4DAA4B1C2B92F34A4DF8FC2FED46322 +03D25C464C8DE8418139AA51F87754C6F2A5E26F7440CAB36919BA47E2B70914 +43BCA512BED90F03DC4316C2B73675C7B0CD83B1B29767D18B3817C4BB2B1976 +144B8E9DD14E07AB2D37B72E6CBC325E9F1957F990525B85A4FD24540AD71F71 +DBEE4350BC7AD1A7CBCC867CF4C02FF87DE4BD4A284E2E82C45DD1EA7E089057 +584BA4A952442F9E111207C3C885746324E24A7A728CC231836FAD378F7242F1 +A66359B8CC8A7204078742E146CA8985E1FE9D3354C090E6ADA4D11D67B40EFF +47B876544BC1E504502DAD0B214CA14C273F9D31AE417AF4FE98165F639F4498 +0C65A28B6167EC643950AD230D6A140523C78D677396DB667DB10186F6ACF198 +48E882A31E191FF408FF6ECC45E1F62311E8FB24E069ABAB84A2F3BC4A61C147 +BE8CEAE6774A892E3C28CC4BF0CF3FCD614A8EA551387D73101E95C0181842EE +29EAC163090F37A0E323CEBAF16254AC8428A484C821B9C05FD8572EFE8383AB +2420AFB561FD1B83E2308B2C831C25CB177FA2DD90858CA3A619BAF5F11A9AF6 +1B25D6CD2357058F28E62A30BFB4A9759547BF4A8A56A61331A7EFEE4AF882D2 +4AD8FC0984261AB35FE997215E011FBA9458756FA0D72F2B8AE26622FAEDD0C9 +6A2E7036A7675A77CB7718EC1E8F29DD1EC26975E6CBE125E18B41DBADAA9B42 +AB21C31842BF9A2915E7D159A43BC4CB6155E576DDEF073BC2EACB971CDF7093 +D06848077D5A9E4FF5753C55E17E1A6C5A8FC903B6054C9DA620F19CF089361A +5CE2C0799797C31A41021AC53094792BDF922E4039DAFDC37BA11A4FD17F986D +7BC3B3B23CEF1BBDC1987C832F8E6EB7F51726A76F668AD8D00B0D3DF021B550 +31E2ECE16909AB63A40AA076BF784B213539EE6135F0ADF207C34F7F3C819341 +2F69AE7246FCA44E48903F4C33E97C259D5DE3B4D0A48CC3094B1C6FA6326F99 +7372A92C57CBA9B9B3CAC1674DFE708E9507296470859B94B170F45ED6BB3BCC +6524CA31A83F10F123CCEE639A202ABFFB6EF42CB7AAD6679C272737BE270201 +734E8BABA933F519A2FCB73500DFC2F251A7FD5D79C29ADD7544560967020315 +C2E75CA03D1EA1FEA9B00B56BEC93C6437DA09D5EBC6BDC8416D22BCBDADA2B0 +D53A4DC170F260593928B93F6D3B22D9891D72BB34A2E3D238EA59C3B5CFBC66 +77F11BA136780876288C473432926137956FB033A28E54C10D293C24C8EB4199 +C5CA3A43E3449CEBBDE84BF5F535410F82355C2A57257ECB0E6498899CC5E807 +3A19DD82C80647CF1AE73B5979AF6FA991D7AEBB785A7A71D280CAF488DE6C57 +A348CA0BDA0FBC55BD765188C16762064DF25FA32758B6ED119B89705A4C4B59 +FFA6AEB8533ED6CDE03DDBE79CA60616FD824A2C1941F1EE7BAB408549F71EB1 +8A39F7865FF0EA1FF73C43D4FF3A48CF55DCC5AD6FABD9A7430266BC78DB5D11 +E979CADD6C57F0F7961077BFCCD926876A97AD34A22B8DDC97697AC3FEC999B4 +B8304CF158F7769230105D2A6822BE3670FF40FFA01D51643BAFFC5724C4BF21 +16006762D517F3C80A82A30ADE8C4E9ECEBA2EC06F3F0E93E5FE83CC32D3D367 +E9000141EE5B103C5367EC55E72F1EFCFD92D90004AE4F0C393E1F32B9A8FE04 +17DA2D04D026648B12D8FD00263073A8E26B9880367CEB998D5CE6E05E7A98A7 +F8E104CC29E7EA009A6D38A3C6956FB7A910774C0C847680ADBF754B4F0E7EFC +FA401294836F632C79EEA69440902D0983B4EA885CD9DF1211046EC8E75B37F6 +BB1AF8EFA7A66F9D093C3BC2D9C90B5F8881BDC52109A85CF598BEDB2A83B57C +E863809E26EA04C81DADA70468A1A7BB04D5A74A7A95742109B87E6267D1D61F +E57BF62516C1F6896669159AE7D5CDEEB4AC6A8A0475EEBC17D57DCCCB3BE722 +8A2B826D1949CF9E7C3EF30390F88473960289B3DD2B162864ECC96546190ADF +528A90C410881B447BE26F95E1871E7B548FE14929085DBA1C60A1B10C3DF13D +99B984841964645B020CCB33617F9795AC6119CCA9A7F95C1D60F33E4F666482 +749AC4A6A7EA49C5D06D6EB482B1A007BE0DAD70B6338FE51016A419B94EBCAF +9FCA6C29E6C11151BD214B178B98BE56ED641AABA269DCDD24DE122BA6307D2C +7D49C57E35BB6AA673F84DB78BEB121E642648CEC896295143A2525888557F6D +EAB7C0E5E11235B0C7D43D4005E85E3E0F008DD20591BDC507C3FAE5717491AE +B057C1276107A06E28C07F64A2711E42110A8B96D3BC1BFF444DE2BCC21437B0 +85635F9CA946E84E8397A40DAC71495F98E01CA4757961B66368352663365683 +7FD042FF53D2453BED9574E6A9BECA075638114AF40D84CAC64684CDC68DC5B0 +D2CFFDB300BE45AA735813C50E63E2277B7534FB7E32FD8963CD4D15ACF07D06 +5FBB473C3D4EC73A2E9DCB025613E53036DC345459AEFB508960C5A1A6276153 +5B1EB324EDCAD5AF3F35FD1B5068CACB84F80D6C2EB891C506C7AA9A47B69C9C +0A9203332CC21ADA55129652B3A5A21173244E52128A774184F2471881D19E1C +29E1A347A3EFBAB98C638A92412EDC2A15A74776E7F93A37598804B0D5A10AEB +E74F3FE437C52E0BE406AF1FA6DF09F8FC63B1BB85160FB17077A7FE67C22EDB +42939C4A75DB0DBBAAC630653DE9F59D4C43F4754FBF01CDFA2AF49C973FEF0B +4CC9D2B4E609E6BDF94A74ADE0C0CB5DF98F264F1BD94D7E59E4199B8F8C6A4E +7D1BEE5207507B0BD419C0E7ADD3ED66484DC2458A29AA0CCCFA596ECBE0CC57 +40D40667784B9E7E03CB5C00D65658E9578CB6385FFED63B16304AFB4241ABFB +534FFBD0CE5A8C61823F5DC53DFACA03B913D8FF5FA42DCBFA29E149DC998B0E +4426DB864A95A936E72EC763888688C175D5853D89E2036E6ADC3442C0D55E06 +2CDFDE2CE1CCB2DE1E59874E2F702F00CAA693F5D79A999211B1D974028F13C5 +E5088E227228EE19B23657D34685F351CC0D93D513E723BAF89A325D955346B1 +B24094DCC927802EABFE76CEF8EB0845D70EC31DF3A382824A7746B38A4A09E1 +B8A2CCB6FC5784C062BC9868D0BEDE7D8F02032320856A5B7409784A30E69032 +8F06818BF0E80636D9349D6779ACAB88C1E8FE83654B0674457A70FEC56620B9 +EB86E852D130DEA9026BF35856772AFFBEA7029F8D317F7B40CAB36919BB771F +AA31DCF5C1559B318EA43B7CC317DF9887C4956BF9F76F93CF20C262235138EB +E52A94C919A663307CB98E3F9AE062ED5DFCF0EE8AF463252D9E0E38DB134E27 +4855075D26B0A1CD2A33DCB6BD5B6BC8A982535AC2B0A28D3851129093D4363E +5D0A84FD86AEE5F5E07D9CE3B2E7D96244DC6838052817C33ACCB984FF9C3880 +F47FEB8ADC1D5880F304942D59B75400B09FFCC8DDD98BD97D756E944F71742C +964995273E193C8190466B1070F9FB747A6A7C5D52CB8732BD27A09442C7F74B +1CFD2BADAB1F2CB5859B307A2EA0707F9B7C5108E891CF1571EFA7E25549EEB9 +5D0D065E6C850784531EB96AE070C91B876A4AF2DE6986C745B3904541BAEC73 +241984ACC895C1C36DA51B8B3930FF3030F906CBAA719A1276A8317939BD2E0E +CE36626AAEBB97D1C8DB3AC6E2B42100CE2DF4251BECB4BE94BC88D68593E505 +B0F765EB7781590E126CED7225C94F55752CF01456AFC6154D05EC73E8D9A6F9 +E71C36ACD88259F02FD084BFC2D1FBC4CB356B5B756D19293E47D4F7E8A4974C +A1960C6F4A305B83390411009687C4DA5D89A3160110CD4094555161A40FF157 +E88C15584BC7A6769A8B0BF1E756DC1A61705EE6D40DD4CAE2EEB833B554666E +B618477431E8919B9F5A5D3352E34E56037638CFBD070BF388E89B49BBF32032 +5AEC4EF1C0F3954C460C35EB74B8E44B185ECFA13627E199FB80350DBBB55A21 +A1201C1E9D065BAD269F7FBB61505A624845FAEA243A5B05D70B0BC92FA784AB +EAB0CE0149AB9EC20C0D23A66CDC22660A7FD15C99C36DFDC516160A5C2AF896 +49B93DFF796A739D6688EE4BDF04D70A620603167D6A9A21E76C368DEFBEF0AE +C2EC60B05DEE00DDF5844D7F9FA63DDF5A460622B43CB47377A99EBDA17C5892 +409FAF99174A7715FAEBA99A555BFC8610BB6ECB5845C7C148611385468C8192 +DC85118531EDE37A02102D72B4B129BF49AB9E5200443C393935E84F18FAB825 +ECFB6601D509BD10584123AA5D451F5B002C477CCFC1114B03AA6EB9E70A55E3 +AB07981EBE4D7785F983C658C97CEDD1C65A3D5769DF3A646841E898375C20F5 +CC9590B7D0D0D1EBFECAB2F1BF8D6EB6EEEA1134788625B61531A55B99F99354 +D88D27831269D0EA80ADB43290CC59C43AD57D357057B13849FC8598EB4C225C +A2A12E50D312DBDF87101477D08C3D1A6659AE08003F416EFE2B2AF48344316B +AFB51F86F8A8217BDC85C66C396D1ADD8FE9C15419324E20F5E34DC1E2C6351B +E00F3685CA11D23B413805A02CD7833794FA1AC64C262445BB5F0967CA8F70C9 +F45AD4021F3E274FC91EF298B5F60409266C8C14DB80DB172898FB80F81130E6 +16F6DD1EC3F50799E2D565D451763A1ECADD26A15D1A9AC65724E0E620838ED2 +87C7ADCBA1EBC70CC4106C9885414F5E97444065AC974779796CFFF55D0F6123 +C3CD2629486D9658739F6712B28EA65913535B736C8CA8A18A5A3651EEF6D32F +E6F059DA7E1C6E7A336E30C092741BA7FFD4D1A0A62D6D741B717175BB4D23F8 +2F2DEA482F4178381427F5AED3784CB873F37B5749DBD29ECA2271B71AA07AEF +7CB6D89D0481B656EAA018CAC9EC9CE64D66A306A019596CB48671839B56F7A8 +B4F2033A85B201884EF63382E6226C6155543146AF53E436B88F7AD349757E51 +204182AA1E0F812D6BA9869AED4668541480C367CC8C2BD2453BED9574E5FB21 +AA98E50C3DDA1776C145DE69B39119E0465301299ED229962E805BA847A7B946 +D48D116F5E6EF5C5B67F800C4D76F422027618F93EE02DA4E975289C85D5416E +BF3E569BA679C072A1D3ABA2CF401E59460FCFA5A865BF53E3E4B1374DAFE46B +1A7D4CB08936A44F5BF5293BB4A1D1D91614FCEB3D7A2BE4FC4581892C197C7E +35F83ED825CCBF472122FC84A868755F88AF6CCDEE4EEFB8FF73B94633C8EA97 +9D3298970186251198517B5D810E7E0501C5B94BF267E20387D2BF2F7022B38C +B7DA50AAE498A272328926E00054B156921AABFB31BE983DA49DCAE1CDDEE4DC +00372537A52BAF1F79E8B8B0CB7AC783478AD15F40435431DEDC5096CCC5372B +E48A48E44CBCAD20566E4A683EE9107361C63083CC9EB53BCB3CD4D84CC312A5 +82D14C02D98DD85CC57C6F2AFBAD1BC0CFFE79958197A335106DEB6C33E5CEBF +80CC1B25B9585671336628C974003F6AD21BED0DDAA900EC119A9762815FE3D5 +45AF6AD00BBC1154F701F3FA1A0C8392FA1530E1E8E629FA237BDBAABE6A12DC +EA33B011D1C0AAE6369A83881AC2A9EF67E909CB1D5F114EF54C9BCB476ADD85 +8100DAC9101373255BE6EBB8230076EB0E411AE174E4738A851E92CDAEEEC705 +F41DFD9BBA449EA8782FC9D80B9D576708B317AD55FD03B84B01C485C9DFD480 +060647E1C36EDB5C10DE964A8E6F94424263E5C6175031D82802C0F05FF22CE0 +5248DE1C246E4ABD37B53E1C57888E4D56DBA877CA9A32D87D265C7C3E542061 +7503393305F298CF7A0EB87DD9A66422C5E472D5998FCA87B0C2EB4A48EB5AD4 +095A613BC1ABC8DA0E6A1CE0402DF667AF30062551A98F6689070F140F71D797 +6575E5E599ABB051053D4C4AE02CA32ADD6542A947C44C757F242568487C063E +32BCE84B753E9B91158E1FB4FE12DDB9289C93D8803A85120D97E46E70E0CD4D +5CF2816DFB0214A4CA30227E5F97C6F2AE72052F89CF311AFFFD39A687303EE2 +DE3B3A3AD9CEF95966F0ABBA9923561D915BD6E113A38BCF3083831F41EF23D9 +4DCBBF0E8FE7E2CCF20662BCE2D5515C36F279864470ACD7FA7D9B8B06B7809C +E3DE3608AC979639C53E6B411D1122578A7F9D695FE8EB404128562637971E4B +C7068889CF3B54B4740E82716F6B39382C61D87C90185C5DB06D5656F991AE47 +8D74FB31A9A0AEB8F95A25FB33A07D98B06A75CBD7ABF2B6CE50E6E09375AEE8 +2E435EA831B9AA9E9B2A5B4AF4ECC42BF109C9A8C04AC209B68A783EB6F2238D +71E2494FE573C5254B1A80440D487AF2071B816AA4D7914A09C01BD3E8EE2666 +54748C6E6F4D3325DCF159B6B1D40C004DFF009713102FF6F0D8FEE52C6E7188 +4665ADFF665CE8E3518CF9E2DD455A2DA1408073FBFA29230E7F23904838D06A +4A2240595F43DDB661F994C6B911EBCC7E5C059DC2EFC61EEFC10FD101B48FA7 +CC1CB2CE7077B4F22C6C9D82C82A22C9AE96E2F5EFE7E5ACA7C3F48650411AB7 +B0BD14AB39C9C3275E3EFC559D942ABDE315589A0B93FB30AF098158952C0424 +3C3D00DA28982A6882A8D2FE7352DD2619AADB222DE19D4E001D7575DE9D7B6D +9337BA75E6159B0CEE1D0E139E6D430431AC3E49B6071261B62DF9C83D7CAD2A +46E131BA4EB50638949370F8A062C506DE9DBE039CD4FDFA838FA499E24FD86E +7D564F11A839EC8E5B8127AFE5DF5442E4C5F08802111FF320EBF19C83F33602 +BA6119B95B760219E59DD6207BFE6EE644582AC8FBB52A8A4232D15AE1BD495A +FEB935764507CA2A21E19882B5A302822E92F28F86F315E4AE752A259BC950CF +CA377A4D8370FCD254B38AC48919AFEEF7ED94019D124804D0066A9856C3B196 +F12678D48C8EFB77D2B54B5AA49F923426DCAD65C044B2576A5FCE3A9B2CEACC +5F0A844C6B428C70CBA8AA0F3C0F9261C442FAFC51E5F75E219F9C6C69051E69 +3B93490506448C7E6DA81581D5D792D89373203755E9303CE4130049E414CE90 +6934D916A30EC70F18257BDE343C7FCBD09A5F60F7F1D3AC6953185A483D0731 +A0735099D7C4C1678906265C63AFDDFC846DCA4FE510CBA51D8EFA4F91E30D71 +DA4EFE6D0A5137283F3A63DF84AD055A290E9F234767CD62AF33323B053B4DE8 +6E103B762F5A22CE10DCFC74F2D5FF1799FB762E7817AAF4DDC008B69549C9B3 +BAF612794B9E7199889FD2AEDDA5AE910F49CBC51C56EF4C90517EF8AF6C2441 +300D8FE73016C82FB530F59423E14F44F368523E0B4C30F4E981FB52E8BE2AD8 +034CE3E9CC0785AB7CE2E6C544050618A4AD49661BF9C9B95489AF27A7631930 +55D48BE8BFA534C2066761E3121C6EEA3DB2AFF09B4402F274115EAF05E3C20C +F999DBE8BF9DF71EA83912E566FE3DCC37278E742902AAFDA30D9E9D312B1842 +D19530E3C0D286CD92BD54362285E921A1379CB669CD68985E4170A72528AB5C +EF2D59F066C2FE27CC1193497A534FC35053A717FA7411F371B3895C1F78BC1C +6A126A6C76BB597D1EAEAA55B1DBB05E63453D37944C4900E2FE7DD34459EDA6 +C53B4BC420EC7D90299390CF339377C34DF26DF9999E3ABC94000B2D142F654F +82AB9F06C0EF750E0067EF568466C9030C6889D1958999FF76F23CF17109BCA7 +E9D83B2CF9A91AAEA7C1A3F42CE25D70A165C2A24A0BC455A0E3BECED1D740ED +6AC6C1326C5EEC202755B37D4619D7B88222EBF0B9E73B8ADF7E02FCC0C05DD3 +6F778D8BACE289B8B1B32CE1C36E358ADF95A7A9484BCBC063C65836EDEE9953 +BD8A70456AE8507431269AB8C189DD4B02987E508A79C1DE72E3D8BB7F0F8D13 +06D814D93C72678BB307D1CCF20516851DE4F013910ACE10B99E1A5067A05224 +B3B5B09BEBCDFB46C6879342FD6CAA213D771402422DAEB1937B920E81D5776E +37A06055D65C2055D563BDF67455F3F8EDCF144F489EE76A5256A46B87152A89 +F84B1D4EDCC43816AD379AFFDB32CBB2D42D2C7CD5BE6FC40C79C78061B83E03 +5A9698E822FB322869936078AF2252858B37BB58777AF6971F822276AC94DF75 +5F2C308E59C71EBA63959DD3FD42BAAAAF50F332332246F033B8553008DFADFF +F08BD037ABFB5A8E2A6C31619F14354D70BACE74C2004392DF325AEC4EF1C0F3 +954C460C35EB76183635B4C6E6BBFFD8EB673E22288F48AA68409D7D8DD713BA +1357618AFDBAC7A28C6999BE00CAEFC9FA5F5E94B9DA4232E01C24F730AE99DE +7B5BC27F3C464816AE98725B61FB0D2DE04119EF111FC5B27CAEB1C4982664C4 +5EFFAB4130E61EEEDA3DFF2E9A3CA2F94573C0E001E415B6D64BF071A2E3EEA9 +4E8CBC24504CA18448D6298026C402469E35F32422B52E7741204FD93AAC08FF +1334B4CDD122C11509C7174C2C142FB2029FB8279056C98F960372233625D327 +174F3E3C8071E29CBE07BFB4AA814CA0DD22B7E8ACABA7CC4B6859E4D8679F04 +375B9CFC16A2B74D7FE3C08D6384B4295F324F6907FF3018FB10C82BFEC6CFA8 +CD74B34B93D7424DD63C5C887C5D788ACD31D6395DBF43CD89147646AD45F956 +AD78B6395B87FE5B89D7D3BB85DD854DDE2D2E26C3C6F0294C46509DC20438DB +961A3F4A81FC2BBA58FC8D3983A0A116F15F70CC78279E275DBB8FAD8BEA61D8 +1C8E45BB676757B4CAD36A5BBF3CE69D9E052BB70928EFE5A1C1BACFFF5DFB09 +B656F64411D6C17243AC491292EB23D25CDE379CFAA434168464FB37E8F70D40 +82801B6547AE0E154313B214ED307DECE56160C6971F4255BCFA95FF34647199 +222C5CB4F8CADCE8AE21E9224655DB56925B91FCDF56BA20BEC7B949EF559D32 +A3155E80BB6FBBEB709848FF02492BDB5552535E47DB21B3AB6CD3885F001238 +2AA3BBE0C9364AD96FE2982BECAD1F233A909C9E8EC6510338D897A538D89D82 +DC95A1D511491FE1867C0D132FADD456B5527E6A7D1D4D75B111B2194468EF8B +C60CFE6C85AE8813AFB3D62336C6DC98BA2D7218262B37A194E8E9F17A23B198 +3AFC516FB3F028AAB2FAD8522C4AE889EF801ABF8140B75CF243EEB0E9CD1E6F +FF8B5A1ED99E4D0F88651114E6CD21A37A173434E158162D2C07BC08690B0A6B +609123DCE11A9B74CF408D38C8E6AF8FAF6381F593D01036549F1D6B75D752E1 +4A98170AE8D85B5063166D31B11B2B14E2741457E6EF028103BDB5DF9E7D3F4A +4F81647870BAB628486C69CF794D2044E9B8D13436CA62490155D31D3498CF07 +9212CB1BD94D7E59E41B7DF390F7CDBE1922034A56C0247834B4514E82BB7064 +75340FBF623DA5F51C801F29A14C098E970851AE078A351B4CDE8CFD7A7D4B59 +11C4596399D648F19909A74AD6958615F50D7E6BE0C39A7C5664D4A2C86BE836 +03D083667702E4BF06F871DB941811E83FF7B4BFC7C5539A82F80A3FFA92C551 +C88F3B21670C94F707EDEF1D23B50C2B357B1E83A91A90C9CDDA6386C8C89E7D +478FE7CF82CA38173A910DDDC5384D012C63E1449A8F674D57C9AD2003576E39 +D916EC388CE80104B575A46F8A2D9EED1975AC1E3DC21D60DA226312B1B56094 +DC63C4A8A6E5AA9BC3F9ABBD668C8830FEF4D1C6B12C9672F808FC62A8CA385D +13A044A70DE73288AE1CCE707C4A33B34450CA34A3FC100D02EF3A6130D6F436 +D3FC4745A17D81CA8B870F3769E542F0B4F9BCCBE59F2965EB41AFB5827772E9 +9295800421C4D3F63CA50E67321847BD478B324136A5EF2DB39A9240E7906D77 +EF06CD600E5184265F1E5EA297B51AD6ED4022B4BFE699A470FB097BA69E9C97 +D3DE0ACEF1DE06CB1C6FBFC43B21633002692853AB2A486D6C8733383C1187DA +49EBC1B7A68C29D6F793B2922A5F9A01C4BC3FEDAE70D3123E5090DC3D1225EC +2FFCC5E54F73817CC3883C8983DA81ABC1AB2554DA867C0D3AE427ACA64070F0 +6CA78E298C4AAC3E86C87247EFDE103EAFDDA42F926542D10CEC31D4F3F766CC +0FC7209004C77C27028821347D97C0109CDFFE0462374FF9965A84EF52E8E177 +6B07D493CD4CEF0B0084FA5F15D82D3EE3CB13A09644BC8C1A38A8DA2EB3A8BA +36813C173600AF4299DF0B3238BF5A057443BD69FD4D2E65EE48274BEB345D01 +E63EFF014DD80E2346CE9D20323FEEF0927056C35E38D7D1464AE11C952C3684 +E31ACD1E20B5EF2351F2CBD1F84D16A0128E8CC8229B60B6452350C853766C8F +A2050AD5B1AB42E9A4B43F12E86391EC7FCA385EA309A035F576019788ECA8C1 +02A621D44D6F03217383FC77E09A81FF51E095FEBC62F5F9B224EA209B7862CC +EDAF59FBB36E85BCD04DCFB15011196EC406CF27D2CCD3ECD5CF75BEBD0C042F +522D0570762E9EC2E66C3101DBE696ED130AC45128238B4ED9FAAB37428D290C +FE5A36D7167AF1C106A1C943069A26093A8A9D6CDC8774EDEDBD461CD54C3656 +76DB25158A38E12194E6295D9F1F4F255B69714411173CA8FDEC2D448147C708 +CB54E5FF50583F5C8552551C00815BC99F98F93BE821BBAA543509C6BEB45BEF +A7A0D16383607655278D7955CC17158D88CF1CF122480D3B8AD783D441258314 +DB3889D81BB2F59287631BA62503A453F429090E15314494C2BC557B3488EC9D +15B7B4043957895C66AD735CD349A30D1A93D8D3A74EA95C2F8EAFC1DBF4D3E6 +9B21DE04B3127542CF40793CC600517D0F66333DCBF259B69C5C8C788BD0A8CC +81E4673FE07E0D4B04C73085241FE249A32C0E52EAA42EDFF3B3F77F37C2354D +36468A4CD4C7FF438049F7853083DF1E96AA040D820B2B9261F55B4A701C64F7 +8FEE86C8656FA8D6C8039227A96AA92B87F37D692662D431F3165A09341D4B3B +AE0ADE2E61A05E3F5C4F71F280A785B64A829D3F9167EB6E3E1207AF94523304 +DF6CF45595817992254EEC85F96DBE24ECAE0CF246C9C1AE55753E175A6C6F37 +8BF73D063CD5507751BB6049F7229A65A17D449B8C89742E2B5125A739033783 +C4900F6AFD67515B1EDBE4DC2CD7E9A4A8D92296FFAB7BB2A502A9A7B300ED01 +FA4641EC76FD7ECFD4F3443D4213157B47DA9115B8877F6F9CB9E285E0289A0E +6111F0AB463AC39B3B53EBE67AD9B55CC1DE3B585E916DBF35957DD1B90AE9C8 +37BEA43E90212926C41786C8216BDB138E80ECF482EEDB42C60C98E33B983CB2 +868D19C12DA4EFD512D61B9E291E779827B13CEE73BBE912827C99A771090380 +85AF7174A8D1FE78AB73D27147CDEDDA3CB68B4A28121D3D7B06696FAB3816EA +28F0E56743509264F5753B7EC72AC84AB16AF7E6714AA00134B406D9C6F28A70 +288E803887FB0A361111C706645901F090F7539D40A2E1F600FD5FE1557D4BBD +4462285ADF2ABEB66352011B3A87357A50027E4FEB55FA36A2945CD9311D5FBF +FEF4F02F7F92F5CC15966707AEFEFC4C5297BBC78EAC05A0C3559649763D0321 +3294573D0FE523B2698562A3FF3B1DFA4B3AC5233313AB5B083CB41524EF024D +F7C8A6E6ABCA412BCEF00D5B0A58CFEB38C30E429E7AF4D54BFDF494D7F0A9A9 +6533A6494F93BE7164988BC9C48D299BEC25F0885CD43051DB1447F410CFDEEB +C540E8760480326E52FB64C010D5D306D5CF84E5ED0EE52DEE03240AC1C45420 +1E0F2A0C3A9DA0754AC3A8383C6B8E8FB9B1A9071C5D7D975DBA15F8686CECC2 +0EBE51032546241A7C3D2613B5CCBE19A7235EE727E3844629C62F5044DAA954 +A617B0E97B7EE59EAA212109922FDE87ACA61E580E230AFAD918A8456FD1432A +78C4943820F16528854EEC042F9F220C089A78647553CCFC39C1F9B40E13FACD +35E97FEC9C87EFC5F4DEBC3ECB056F3AE93AAFE10A6D0B0EB8C62CBC5402E8A9 +09C2569A3A41C430400B1D3EDD3D50434D6D043BBD0FE23DB661B905283DF7D6 +566713CA68BCC67E0A7F2BBCFDEF1CC5D42D1B581673153C3D4F3BBEA8156856 +E2C086830D73FE0C7BDE2B1C41481CBF229C5D1DC38C470D137D8EDBCC78F5FD +7F7F8B0A6D84F4537B927E2D8AD55ECF4828AB584E509E8B6B07B62CE564C3CD +DAEC635ABB55A49A9BE9911D3CB4E2C2CB78D9115E8B1548CBFB0FDD7F61FC66 +85FD677BECAC48A9806BAFFA0520D4B83C45458D6026B0D374C733DA16829670 +4E0B4E7516B667986E33587348C0C5F431F6016891CC8A1007EA677CE7BFB7DB +9BE18EE6FAA0952B845EC050F9106CDFECC63A6B7AC1BAC45C9EDDB879E6257E +AA199CB435E69906DE65994BE620EDF5EBFBF29455887C0A855301C01CD07A29 +344F19B6F849A59573C248708BF8BFE3A45AA9B83A2A3418D8A0E1452F3C1C9B +E4A92F99FEDA6D7A17878C7E2EEFE083619F7869F4181F8776041840C428E368 +AAAC80432F0FE36C7EA2B4840471582ED41942C4AB0305CFB2982FB1269D1947 +C957F1C74FBD68B47F38412B91FF63E78FE29D8179EF0AF5959757AC5A0FE333 +28911DAC03F7F0E128798E296FE60D1B831BA81F2974F0C321EFC6FCEE19A122 +854B29F6FFFE69C6A50558BD20CFFF1E38E624407C319A46A9EBDF7A21B56605 +D7EC065D6ECC3F1ADB93B3DD52B1700725747C15396DE90532B50073B7D70CFF +7CDAFF64D87A751B6128D7657D013D8050B19B3C32BDF8609580706D79AF921F +2757EAD07E3C959872674686F19A9DBF59CBD8CC5F2CE93980BE4BA66C5C2950 +BE9F8C4A89451AFF2ECFB9303D6A020F822B1E230C31CA0C3AFBEAD2CE6D9220 +1F57CA116B4B4B9D745A191C9468651821EB4566B31521F0AC552B983D9B94FA +4162684EB3C9C58C281960D03E6FF2180214DBF9CA9FEB09E67C739F036D79B4 +4FB3DC868D97C1F31150DC3674E2FB671F0F618B2A41F36015F5D870EC88E0DA +FC9D032C8227DCCF14DA0D649ABA71D12AA52BA9EE4C9D7B928139F7E355A398 +2C0198393563F9812BFF9054D122BB50D021247A367E63EC2389C3757D8D67D1 +F1F12118BAE1012569DBDD9983A90543F6A7D8F49269B70C49B7DD098DFBC384 +3C7B8B5FB75A8CE351C80622D6BF735B710A00F64795D4F621EC85ABD2BEB9AF +A392594BACAA85A7214DEDBC3ADCD2BB4E2F7E9E09B644339769B129D7C24450 +89194C1CA688932689D92CE87401347AAB1D52A54F5592029C7140D1E2A6AFC6 +8948B7F8CA5B3CDFA4D775C3407A61D28E1CDB83225A19B6BB7DC0A4DCE32159 +75D149CB3A16C5F9785F12B77D33F5708422F5D99CDF91605F1334503F686F32 +1B47BF0775E6761FB43E2059C94ECCB6E93E0D16E142A1F6E1619B61A359C6CB +51D1BD8C529722D33E73D57ED735EF834A3429315E231B46C5D0214240058FA3 +A0A6E6EBE3BE85027EF53CD6538EA50951ED0D8982EA9243C6E9B11F2A7DA433 +89DF589316445A1D67164309F0FE2F395E30E8504FFE789F5E0CACBE5741D193 +9E05B4D2E1AAFB2B318424D432D3CF22AD0EE5E46D2A57760C04376F4D52482A +D77D35452059A474296325365A25D607D3C9E055F5A78ECBBBA9A42EDD4E908B +1BB87A6989F7E3614430B651C9F7519D4BA67B946B78BB54243CE047E59FA19D +67D79C83C9A21EF98801C25B5467FEC664F81FD9D6A75955BFDDA33DB0940A6C +24706488DF76666EE38339AAD84AD786B2DEF7A6CC9759BF63B3CE0D74D314B7 +A42A6E82C7F38C8423A1442024BB387D0EFD9D199CB5EBFB45B0DE3CF7E36CCD +B0D17100D697FB35CB60FB9344F1CFFB36DBB9BFA12E81DF50493F8524DD5FA0 +D30E6392F65EB564EED593AA1E08BAEC434D2F9AE145588E15D62090FA8C32F7 +810F0FA34B0610F674161F64349350293DD93AD4B8AF5F64E496E076F667BD27 +65101433DA805EA1AFD7660BF4FD218C0E5B9E233EF82992E1B13A32ADD55CE1 +8ECFEA870A95792684C4C3F14E5ABF01BBCC624EE93F96DE24EA9F767B92D4C6 +A932B1DF70F9BD54A8DFAAFB5A424BBA7D3277613E41F3A0B6252F8C55C9B8BF +895589A6EAD159461FB87E7A1E363CF79EBA824EB89840CA2C455E66ED37A10F +6A42CF3627FF17D5A8916CBBDCB6C12C31530ED7EDE8F65AEA8BC3A44B72CF0A +AD9F9AF5C5B27490010A78A8EBD01723F95422FA239E4DA3C7EA564D1FF6A251 +B670F54069BDEEF2078A2DF12410BFF83E3CE78C77B56A21B39C285DB5147D2D +3D3FFEF378ADD1E11FA15817135D7658C7F201182E13CE1D133FCC4194EDF6D6 +28ABB1AA7930CA756A0A47E2AF0F21479CB1771B5B4E5877715930E3BDCE62A6 +88C3E51AD3DCA43E28521930119B2A2C6D37D43C5612AEE5C9541C8395C56ACD +A96641FC3FAED420848B5BC6FD22093F804B7E2227ABCB72C34AA386C53167CD +C076797B927E0343E438E397CF69CEC901F026862DA797389F74CE0BDC8406D2 +09BE2E29318651B50C2D3400BD02CA404F4384CBB85CE614A47A1E7250B5A8AC +D9FA41030F3F290E133D6F3F5BB2025DA30815FEB1274E7FA167A0BD318BE7FF +989C147EB37F89AFA298C5244CBBDB723A1D2CA98832BB67CBBE021D018F6691 +7992F5F159D4A71F8C5F16B67D87A9201AC5DA5D5E5694C748F1FF875F852934 +BC6EC9E0A906875B800ACCE0DC60413335538AF86A2CE9EB31095F2429C4CB34 +DB1928E1DC80DDCBE0CA4DAE8F4514B8175BE0134E08B6EE34E419780D3CED6A +7937F10F55D6F0D512AA7E60B34E974EC993908B8CE5A76EF1CB3ECC3A57D3E2 +A0CAC7E433522E652F5316AD6A7907559AC09CA643A187D898F2F7FC73F16D2B +1FB1B4EF61C0F5B4CBA803DB7382AD0E28DE8C2FB57422BA5AC7EB3F757282C4 +997CCA187474EEA478C6D4500E38E4066C57FFD9688E3CC7D397E4127BDB5E7E +9871E71C910E3E15FE2B5E30517287EB4E297C0508613B2E207950F1F8CEE7AF +E4E21F4231519DDCCD8562A343AC8FED2D67A768911E753C4B2A4797415A0888 +17781966826F040CC4F200FA138E6C1708D0669CAB36634E290F9D7DD77CF9EA +F6849A35EAB15A71DD875FE75D1B1DE444625113DCB53817088179503B5AD9A7 +A43DCADE63AC6751D8158BAC485C14D5A622466D2526FC5915A09AF13E121750 +7188441C4176A01EF5971176FE70039D128E48D6FD9CD216453C416590DA467B +8C99D359F09C570C0F097BB6DC0613755D3C2744885C6936541D80C85C7F75FB +B7E64E65317455B5386399EBB952683BDBF048F7F0BD45D5D0C0D3E7770C559C +24C3F285FCB5E2C94BC6CF07F80204B43D5B28806BD07A02B233565A037D0643 +F834D3BD249BE512924E6873780D6AB7FCDA5128292BCBF4BBA59593333FCC76 +EF95DA2FCF2608EA6EB6320530EA255898716EFDD4DC8BF6F9BFF4C7405F7DAD +30075866CAF041DEFE709FC20133FD74C28FFF52F4DA829B3EA9B0414E3AC321 +7F337F2A8050A7BDDC03077CA88A45710146991FDC135BD0D4E66639524A79EB +94972995D5064D5A816C33A8294B199F23F9795987001069D580E479163A79A0 +AC1933EDF0921546D93BAD519365AD35B512A64441E789EA5FB4C14104469602 +8D52FC9E7D46FE706741773F8CEE22C22FB495E68203CFCC411C9E0B1303D0D6 +0CC9E46D4B3B982D58B5F8871C25DC1A6884727B6F4D636A7F482646CE300FBE +4EF0D47E858E50D1D9CC8CBE6DE2720072D93C8AF69767E7BC09A3DB25FB17E5 +7FC5E0AC3813E2C0CC2A970643840D613865BDE480382869D8126BC7D0DAEB67 +62E6858512A2E763F46C08E9EDEEF71545CEA7EB1AF0CE66E2E2EE7064281E81 +D62DDD8C1F6221EF5E9B82E724AF5B425C4BFDBDE74BCA82D6133358284C74BD +77A2A1E04AA9BB052AED6D1FD9A7699DDF2B41C05686201D4CA87B59FFB619AF +331FB6131A7CFF4E2470C2A93132469D4810D695B9CCE42BA57F91CF69B44D1E +F726650FC9677A6475C893094B9C8852CB6AC013E55704F1FA1F7A38F0CE713E +B1458AEDE7E0AAD8DEFD23CF01D3F32171CF80D2B069CC94D189CDA65CBBFF70 +60F5CF9E8FF3F4BEFFF533382A438809795A15551D4173F59594CFBA4F433F39 +18D6C00778E3D1E30D7909DC1F83DF6347F3B10ECFF72365529A3102F4908629 +F64A8A77D05896B1D9594767A67A2DE8BED31C56FC4D2F97D35F2F88857A5C18 +3735CFE03C45A7915D2BA33CFA2D4D715216965AD4CC8DD1D6E48199FFDD1E0F +CFA5577AAD6512073AF8975592562BFFD8F95F49C67DF43E2FD0B1BF84A47932 +02828475A25AE03E2DF4860AC57AF8310203D02B1BECBED60CDC2073C5BAE52F +4CB863264A10D0ABE5B34BC75AB5989637AA42030E3380CD22A6A7E5472D4B04 +F66D935048EC8645711D34A2776B1904DD7F9B467F103A109B02B17647A35DDC +1620C3D267173D6BF7CA6FC9BAD31400C1105AF73E96BB3C1F1E550A1B6788F1 +9C73D786153FCF5405B768281E0D24D1114C9179D2B70510C1C752B645CA7F20 +92BDDCA7AC6940778D8F9E9956D3472142EC1CC742EA6D08ECEED82DC0FAEA4F +4840AE5534B0E80BA0EE619771FCAD5C031EF7AA04B38332D389FC2DD33AECB5 +2D87D80E106A98E5A30C783B7B2181CF7732D426CB6588FE331FDB1C67179B23 +DF1C45944DE219AE834EE041FA73795D9A23894350652FBA591DB832DBB4CE1F +4AECAE25EB11C4F497002ACD206E6F36EF393B67F4EA774868CF70CFE2A058A3 +6A4DF2ACE6D8BC99DB1DE0B1867611A6AD96ED7802513CE1752F1BEA646BF406 +D2314D08CE5D1BEF977AAB2229C2BDC370EE5C56340BBC2832C8155EDFEA3799 +D97188945564B8F531556786E9E5ECA5A1725568FB0074AC612A4A4846A8C560 +4A95FB356E6CA0EDA3D200C9E5934A45B10D401C6C03121BFDD2B1203F7EE685 +24FD1C1FE1824B8C1831AE21CA0CCF88350DCA95569CDB760250ABE94945E8C1 +B9D951475BC0BC310F6EF14C758D60A319DCE4B8C97A113D1D8B861693347955 +3952769657CD4AAB9CEB98950BB4955E601397C5245BDEF2A70D87E04D1A58F7 +ED8B727A03B20887CB4B4F6CCFED92F42CC244F3695EB8481D8727814B3D1DF6 +60CC11EC906001BFF5ED54DE34F61C3ACACF788DED2406D9ABF8C48EA1D86CDB +5994598F185D30DFDA2AECA290D34B70B872A80985FDA259DD0C01F9AD01E6B8 +DBFC93E20F1545B3D413C41A8D5A534BCE9A69B256D6119FE8C0D020B81A6F12 +D27E8001F8AD781D1736B80953623BA367B0E0AAA9C64C3358373017AF9FDF0B +9B24AB3ACF05A6605619D51AECC12831EAA0B043B3DCDF954D725C61250073AF +E006FE3DA8B8482213BA91B00F04E75D3A19433A2CF1625A6FB263A6B458718F +CB37FF5C098AA077AE74B7F730F111196EC97AD66FDDC82F62E1C35CF9513A9D +9681535E2ED6A070E3B1043C5E26574E2A44F742654361261D08267755CB2D84 +078F8F879FB48106B11CDC5FB74DBF501232B6BDBE983E01E52CC2291E350375 +DE1CEA3688005E8480747915B3CD85D5B8C5D2247683A09935537B834DC2D0F3 +BA051EB7D810B60F6327EF1BFC03AEB04B5FE7467D0B1F9B0DE2AF077DD16C33 +E121737161B1FCA26AC2B9E9A8D4EBB125D91B300280A0D1F7125F4448D6971F +5EB06FF6DFC6A29FF587BCD1B133EED8FDA44829B42BCE7AF662705905E41783 +B9588B8ADD2867484A905FEAF3EDD9171A8EEF6A3307E68E10EF64D5F693DC04 +406D73810BD632F379D9CCE3E0BCB16E59E5D49B0EC27346D17B6D9CC1B4C8E2 +13C05DBC5E234AAF0B5F0576D757E17D9AA390C71F4A8753256147955B48C02C +D3AB182052161F3DAAD87CFC5816D2066B40C262275A0A0297454E79E079DA42 +3156A6913484A0904A6B66024F4A8C56D9545871278A273FC1457066AE5BCF93 +909990987B4911C52463E3E4224AD0335476DD8951398DB146637CEBC6EC8414 +036560A0C70235BC7E7607126B6EEDE262D9F8EC56E77D861896F48A24830F5F +3345B5CBEBEC02AE51C3E9F54DC2BD541411DD3A7A8CF1C6471779BEF4983B91 +4824B4746D8BD5E5EF56F34806C771B15B13A94F11388690E016F884DD1A9A33 +D3A53FA0229D28A07622B9D111BA58C2E8260F85A8397FD3053A7398BE22C0EE +4B26DE41D44E3583B38166D41125CD0904A080222B275C3BDD8A161A05A7809C +F161B1795594122FD32C1300C4F03267A69E41C57975D72AB33443880286B0F6 +2FFC43BC5CA7794A77983D36C0A558B24EEA0B064B4A136D45D1CC85CA4B615F +222531146E683803DD8FAC716AF632220954F4A44753B682135930AD19CAE6F7 +89D6E418258B5CAEF681223CC3E8FD8F2F30BF51001378924075A47916E0345D +FA7EFEBBE41465B8D6EA52DF448346FE1A411B0BEF83052D6C93B70E6B15631B +A3F937D705BAAC2554926803A891CC87F1E2CA00BAEC7898C1ABB19C88E7BC15 +DCCC1AAC809BB4888F51F25375E6A6EF593536663F60E13FB7614705C1CF834C +8DEF77ACC3370D3C8D49B4E3686E131FFA48C5A1C58AF1F46A2C393100ED91EC +6A4E27967E2DFB783E7CFA612D42256FB74AFAC7E38D3BA44E2D27EAF23A9B6E +E3F8FF9E7DB50C64982DC7B5DB4EF7412CACA3E865A0C47A00E46795B17B2457 +0A6D4F609244868AA06BB426B44DC630BDAEA39BC6C91BCDE29CB23948F07DC5 +632CDD785978D97745E95A107755C874753F73B00CDC8D7D50BFD6959F16784F +2326B66422794D4105DE9CCA4E53F589DCD91D14DE5292BA12DDDE1045A64E84 +3CC4962FE5BCBD60667796E94450786A8DEC257710B54928184E914356E257B0 +4496BBBDBB618686AC2FCC7194B4E3097BA5B00DE65BCB63372A1EFA009BF9F2 +1678296DD05A333508C7BB21F1118F014981969B9B0C2075BC531FEBB67338CB +85505B982E39CBAF3D52F72CDF4A8A7E6317CD2BCCB3A1FFDE9C8B15CFD5E6CB +CA49648675DC81EB119D454A22A2A9025EDD5E03F6855B9282060CC6B4226572 +16A11DB888C59A8C85FA1CCAE07F1BA23535353AB317551192DE9489A360669B +E76F9306AF4AD8F7CD2B480AA0A2D7440DC25503A3CC91F35BF762D0739C5735 +F76D094A23217986DCB14208BBB89AF0A74E21F777E3F004CCB9DD7BBA216D19 +0954D336EE859516724CB3FD02281AD47811C1688854D5D0A3DB4CB4CA1F75DD +46D3D6432FA72976ECA30D24EF8F273D9292AD5A58D525A066283274457D4744 +68F7404CD4FCB309C5E03EEECF8726425229254DCABBCEA14610F538374027F4 +CC9F5B7C7190B73263081053289AD19E6D7A0B366A96C88BEA99390F95209487 +462753E50D1BA2DEDE78A5B6C5BB6185E14B47F7E1C3414525C3123D8852CE34 +E195BBFAA233FD92CBCAD06D2A16454C1147C18B2E892DCB8FD84469DD692FE1 +B435ED5744440808CD825CC657091419F09D86EEB4B58775FAD222123B482D19 +C88C9F5ADE33574C5BB4EA3292E2399E0B8AFDB1EB1895EEBA53864AAF8A4B08 +D3E320DA2E6348A9B79F3A7B28143E768909A437FDCB0223557C4362F57D252C +DF6C652616BD952E3E63B8EC62C435A0A37F2947DB22B5D19338FB7D1ED8ED6D +283BB849C5D2773E7F97AD35C749CE00D04000502B14C3C4B68AFB5E4A8CD7A2 +88E91E82A860300A67973E699633121554F81A09C54719F6321B45CF9A7D1A7F +C42B938210019DD89C06F01158217792093E3734338B67EFD796A97527094752 +A4E0D46B08AD26D7E43695E5931840411BC28A1CF22A9356666F17D121619823 +12416A4157B6AE43B35C134D83E5C6DD70E0482489641ECF0BA37719DB401C3A +99F66E21646DC4E23526EA20A72925CD5F5FB39D4D7B7D5AC6DC6E395F6B2E50 +EA74FB888F9576521DACC7C538A8452F3CFD462D2F53CCDC2BD58E3CA0EF9A2D +468DFC19CDA116D53FB78F238107F96FB7F585041479B4C26E43525E073A1D93 +80542A78C7DD8E7DABDE1EFFCEA5FA216D1AAA0B25DD9BAE6AA240FA3375901B +2BE00F1AD27332EA1415FA315D9FF1E2F2C8F515A185809ED1A0E97EE8A3617F +1C435DB1FDC78C0878CBCE746AE4D26FAC950EB8ED9763E636A4227D51384061 +28D1F7378A85321E1201498482422ED2F8CA0611BE3B0730FF0419A2E6B79977 +CF614EBB49EF259DD9D4535C00A6B0138FC60FEB8EF1AA39E7A7007C3E28CC6D +5C1BCFBBE3D7C1D33418A59617C47A6162A248A4B6959FEDF2D09A1EAB717374 +574154C8416D99CAA0D2FADAB9F251FDBF05A7DD946C5398B27103EECCC35413 +DC0EC12F7D85E2116A92827EEEFE12FF617991B97A2AB117BFC65012A7257835 +DBDDE5E5C0ED339D7FE87F3F98E4785A5ECD6689555E05BD64F8259E1DBD6F8C +08EECB6A841488AC6FFCD2CA6F7D50F669DA6FC788FF2A3249BB42A7E70E4E57 +AC4B99F2E645E12AFDA46FCF62D7E95F368F2455E40CDC82CB0AE9FE5C2DFFEF +B19455469C9439E18A5E4F62AD48C9B881F5FA487F4C940B6D3CECE0777C0198 +2CBC92F42E6E757671E0F0507375C3366B5910F3917172F270B344EF41931993 +8BA7F37A77CCEFA895F5A6B6420613B12441CDB041D442DA83C5DD1C0D93FE68 +30382A9E7AFCC10F5F171DEC3FB7107D6337201E80836C6FD97313A5451B4A23 +ADFBEABC6E3C43E1170A292AA2F6274A979563E681DE6ADFCA49585D1FF611C6 +D827CA9641597B2152A09521D1C7F039DC975D0DD17289A73B9D786CFCF20132 +34554EC17765FC37C765D472F9FFBB0E40A1B95CFA641A01AAE3447A1BE9E190 +022A6A04EEDDB3189B19E995E0D6B3AF3A3236474E66A500EA33AC7C00C2A39C +75918C365D5FA66AA2B6FC0A3D529236D44B3EF1652DCDFEC5A0A410FB751AD6 +110DFA5F7C25B0B9F9AB70350B0AB41ED01CC34FCA945C05443C9CB70FA1FEC6 +8B05CF1BD35822D3DDF3BFB27DDFABB0074598BC44993D19A3763F5EF055AE5C +2AAC12FFC5E4C0F3FD025F0AB3E350A3735F3C72ACF09B9CFBB86D18113CCEFB +FA75A859779178762FE8F0649CD2722435190493044BBB32BDC1635B69CD9202 +984B0F2C531A5E2DC2A8E03AF807687962F4D17B8DB4A8A07C2FA8C408C21DA2 +9AA40DE1EA02F3B189F883032E1E831D3338FA58E841B0C4ABED073B0ADE89C7 +106E53D06800CCE87AA7C5495A0DC71DA033DD7D7C710684C794AEA56B885EBA +796DB4F8B9E1A701AE7980BA0D2537C26B994B31C347CE48AAA0AABC425D18FD +3BE8C583ABCF23AFC8F2C6594817868534988111ACC83335498FEFEBAAE81632 +91739615B2F10BA4BAA9EF79295E1C1792ADF88686C3633921892385C7D31C44 +067E65FD3893EB104D73CFB31FA45BC056804855BA15D2BC739C847C471E138E +A3582FD7AEB8EEEFCA0F3F35B56A849BAF5AF9F5A37D6B021D7BE16D5EB041EF +06DEFCE77766E17309D7E2ECEA4A2E095195D7BD536A231AB066FDE0D3B8AFF6 +3E172208D460E9D21DB48A92D4E25FCEB5F31624E4940B5F57EF80C4BCD764E5 +C82B8E3B15440A93D6301054235E882C57E63685781A6B437624C4422E2FC8B9 +991589B87AC6970D18367CB6F63803F530E7066D74B899A24DF2D31400567189 +46D0DC2D9C0E586985B1C710A3896B451A61FC300F1E2FCF340C9D5CF8B5B200 +99F76CBA9EA5779F9B31AAAA9F45DA8C802B5AA07956B1C57007B0AAAD0D4248 +35376B0B4DE352F6D9220716BA86E44E9B25489AB334E8EE7ECAA84847A48B61 +F14467FC335F5DADEB5A54A95065D73E0BD2CEE68FAAE893FC68BAF182278976 +F7B725B390C097C357538D3910CB2319DA8357AC14A9C57BBC1B11BC9ED55A58 +E98E4111B4E6BF9EF55B447ACD8F961A348CFA61CEC0DEAEC09CA66087334DC8 +D4A61F39B13995BDBDDDECB872787E64CC086E09B629B2810338443630F5295A +05FDDAAB61789E22DCA059E1FBDC688783331381AA68A631CCCCA7AA0C75B983 +06880BC54D7D83B13584F32920EDD07AFF7A81530DA137D8F4BCF91861FA194C +C16404B6BA75FF09B999FC0B8AF4EC949504E4788FE771859D346A21E8718044 +6F591AA968AACBBD2006A63604F163E8BF850B0FF583187CE97AF49EFBDD828A +B3CCBF789B8D3AF95A7AF03A33C3FCCBCB411679E784B7221B3AB691AA0DA338 +E50CC6DA3155657AB91C6C45870F227D52DF17F4D357A8A7F9D355E50944E560 +01D6BB5B4B662D1339A173D3C35DE10AC00FB3275A61E3F7448B141A038D4F48 +2B0845C9E1B2BACA06D09987CD5D907BADE55A8824804FB04CD2211C4812CD28 +D7F0CB257C5C2DC77885AB4006A9E0E38DD21C182618A2B988E6448A39D496A2 +A6895D1E7722897A0E507C5437FA01247F581DCC35ECF5EC1BA3333A7C58324E +0E6ED9291FB967003C6A5A93721FD7C13D8E55ABFEE4FD2DA029B5308C171BA0 +64525FD5D307E002700C9D165E957B1DBBF9D48F0175B2FE24CF82975C120792 +2B3B88326E1BBB29CAC603C6EA3E9DB9F2BE6CC096C2816507DC6DD2F2788415 +4122E980ACE4845A4F7CD3FA4DF10FBA5273541774AE556BBAB68A964EE25D0E +E4FB02A007C42925E4603FA7FE6748DAAA77FDB1B0E1E2C394B7A21FF79154E3 +CE4FA1C9E33490A3F706EDA0D1668FAF72FCE85CA7A2BD75731A0515AF808EC5 +661FFD2E3C2565D97528E994938909EB58880CA5D66C32B7A5E9E7768D797CF9 +D06432495ED40B5BE74DC3748AA227D58CEB19CAA0D1C8D3660C64978EAD626A +088CECEC2285510CEA5AF8E1318FDDCAC469D258138B8F8304D6EFCEF9C0586E +7C76B3A45BE7520CAABB0EE2CD07555BC9BAE798E3703717B6787BAAF5CF6A7D +A49B586D54A334B266595A128BD3D612F139C1C69D9AD6BFEEA6D8EBAB504905 +287716BA7C82E2AA685D098FC3A90ABD501C39CAF209EF468DE9AC27FA299B26 +C2571A8DF8111FA11E1D13A630FA94AEBAF6E5B1DF136E2CD0331AEFCCB8910D +2588380915F22084B14FAB124A52137C5F457D2E1C1D9C14C298D532BCC0CCA2 +8391B539DC198C3B366D3A8F063CF2A4A0C7093E5705000FB2DC05AAC5C4EBE6 +BC2D5BCFCC03A42EE085FB69A5632339965950F9E806C4999D457EA0006759D4 +2B1F2DEF9F24883801AC176D00D34D8CB9ED00AF190DCA6BE03D395A3362A39B +F5A9990AE5722599035CCC7784FCD2A8EDD64E1077294510E12F3443F5E6BE63 +E67C14B73AE7AE6816975553CFCC145AB7710E8259B8435E4A55E894E11BFB33 +458D96F5AFFDE32C49CB2AF01AEC88C743CCF08CA9F86E83BF7299B03C1B16DB +1878DBEB536E512B27620E35B59B534ECFF5F52AB6A65EC4F51DFEB3A025FF92 +8C6FCF3891FC5DA011F20EBEBC7CED234432973504666D943D7AE15003DD6375 +03FEA2D46F6352C32F355DFB5E5B64C0C20B7118E86E6AB01CA3917B270A28E6 +18221578469A9D02BACB0392D6886C5FBA5FBEB71EAD0CB81A245AB482400C4E +4A0DF7B891A77201F90A8169BA36D489D339D1492FC111FFA51CC03DF616DB90 +96643B69E0D0D6172873207DB228308A86717FDAEABA7B439739E178B67B819C +E1B6421C735AC5F53FB305B7D71C48F9A146116897FFEDDE5698FE4A854AF778 +D8732727E631C729D016090318536706285938ED8982732B1D3E4002CDF2FF12 +A03DFF1E1C1ED82CFBC21D109B00FA7127CFE62ABB4F684CDC9503E1C4346B9C +E6272A0F10CA9099E983306B1FBBDD1059494DB7ED4B13AD1820C414E793D8F1 +635224762451A1E72963E1261CC2AAD289BC0F4A6AB07F89ACC05457EC685AF7 +159EC1BD52F596FA1637860BDD01FCC403EE05A0BD2305680BAD6D66CD070E2D +62BEFB18788707F8AC66231871D38043A29BF52B171D0ECC648D50DC0F9978E6 +70D7332872741F011BD8424B7D54D2FDBFC949EB93B8BEC94B1C19B20B6CD2C7 +4ADE7C3B0ED39C5A0211752FC0D4CA5427953172C0C2920490897478E995702C +B5C23CDC75111AE0E5C0DA0B5D03110A2CB4B67B3694D8421AA943894B46F6E9 +FF670C45ACF52DAC763D55C66A899C422077A567AF4E6E436D35A2E601118138 +B812D2E180C765D7B1C6C73463EFF982313DED172523042A162CB9B6478FD012 +9F6B81F3B3CB5F9A7F661C0058A867A2FBCA7C81FA8A5FE34A812CC70C20FBF4 +344A4B52B77C6AA793706196B70E0F0DA08B686965A9DE3CAAA98BEFED16162B +A3C4F6F64074F6D11DAE8159FC668A68F68C0653DBB693F047FCCE71651160D8 +996A220370D6CE471B54624BBD408C67F4237D59B2EE62B2CD8E62393CFD7ABB +028FF793C4CFC3CBCD09F3DD2DBC1D5A9FC2B13A091F46E4017CCA631E8E12B9 +48A7CFF2F941A2583CBEAE924AD08A14ED311EAD340B40E09BEC9AECDDEECDA2 +FD4F17529D534BAC9B77F4CF5AF1348023E88C597AE0DBBE6F49D08DB65ECE78 +340508750E3290FC4B4F08191CA83EA1169B2FE155FBCB01661E6D220FA9BADF +D05FEE8358EE413F71D4A23F05E416524BAD5A14EB656333E3F9CDD8FC40537D +88F26A6AB798B4FB6C1DC32205E50D0017577E9B4830F428728A6CEB4F2CCBAD +F18408860EAC1129332CCF4417D7F260536AD277133F0B50033305FFF7FD9FB5 +AE5605F39645F5CA1191213697D89EEB2DADC9740425A9447CF927AC6AEB19AC +D31A2DF6C25CF8BA12BD68B2AD2F775EB95841B1300F68F5B0D0762D9290A0CF +66DB331D54CD5C15C1893A7D49B7B48D0E7EF39F878866A1344B382F30C978D1 +25469F4E29B3CE0C798192613BB1438648030CCFCDEDA6B00064012A605E2BC0 +C19EBDB81D3CE91CA9FE3408E3561D08F296984EBC824BBD0915B7F538BA4B38 +F3C37052B8897ACD9749F7BB343521BE4669DF63134961E2ED0AF49803A1B369 +90F366727642E8B492079D3F4DA7D67D0F9E125A9683A81D5EADEBFE8CB9089E +D75912C89CC5CBCFE881EE360C1AA58A2C49C65FA570E311DDFF160E8892D74F +917096DB30A13CD66C029C463D4BCBAC39895AAC74332669293DEDBABD36DA31 +BB36A37D2F43EAC230C9BD1CA0E705FA5D917DA53D676128D2A3B4ACF0F0D04C +ED9AECC09C148F0591A72D7EF678ACD53CFA1D75CE510DDADF399B5FA9AB1CA0 +029FD360336E225DDB5B15234392CF1DAB79FD3CC811838FD0FD4263E2F7E4EF +73A9525F03B408C0640709364B8DCBD69528B1E00E13755367D4709F7EB148B3 +D69512F2CF012F877F37010CBF963BD6FA5995C1C1D0F5A599B6EA687F76A066 +4145F2506FFC8DEAD377EAA71CFF6E0AF437D91CA43E4252FEE8CBDAEF24E27A +C07BD9E70C3602058B206AB86E0D3CA3488EEEA377A61D35E98C6EAA8F6B1F07 +86879A01E33E448DD68B71F074D8D3BC834C1838D6AD33F1139B2542C45F99F6 +BFA70CE213EB692900F1FB4FA8B1E9DAC28ADD53E7F2223C27274540323E491A +06404BF9D82399B9897AC24E8CF647D2860D73864D729FB659B6C007F9023969 +C4EB36EBA56887222147BF0FBA119EE4BE338520B53D034D2F4183767303CA45 +33F11EFA35391DD1C77AEC45CDF13521A00DC98A463CAAA6554206B02A8DDC42 +8D5512DD9FCB205C5844F05A719FE8F590AE5C4991646B0995D21D17F422881F +9E6D805D88F7121BE7D203C13BF4411FB2755D0BF7E05CDFB2CD7BF53E61F0AF +A37149B768CE79F0827811EB7CF1E1E90D911E491A1BEC8682C84E26093D81DE +D88FD904FF5EAC540AA73383A1C35DD1098FCD35AB807F673636C4874D477171 +5CFE9BAC79A48DD52F4F86494C39726B9F261706C7DE8A09818905C17E27E244 +6F4340DD93D913C6F0FA4AEA7C387307D0E7B799E7F7CF16A76BCF6DAEDECB0F +554C570F29AD9866765437AFE762F94B06E91E5C7646852788168B3FB85CD737 +FB611683003AB7374EF94FF151866E48FB30E5C6B95DFBEF4D79EB24039FADBC +6A0DA5A135D5550B2C0B0DFE097FCF50B06D19ECB354A85B8EA4F3E0F297822D +322B882F2FF6DD98123E06538488E1525D928D589E9DA4E5CA5FA8D47DEC80E9 +FAA0E07A8FF7C3A5DAC92CF319F2A587DAB434FE742FD95E13598B7796685896 +AD1F6125759C192DE9C6F476096F066A89B7E1698E7F4A28C85B74CD460CA3AA +B1C8F78FD19961B5D4550341355D47079F0DA1CA5A10D1CA171346C65A4E9772 +C9D2481B0E15D5011D1EFC23E4347E48C91E7F92ACF390089929CCCB9B51619E +D552A5BAA1DE1FDDAA705F22269F9A8BCBAAC8A5BD1E1BC6F6BF96E99F8B6AA8 +78BF5F6B28A762A6F03D398A40DC33AC081C3F07341B864A5032E2D83F0AAA1B +C792616D0DE5AB11EF1670361A9D496EC6E5EA44A7EA840FE3CEEC82E5DA49A0 +60FB846E335502CBCA420CE11D3B27B6F7E0B9CF284E4D07B4070AA9051B151E +FA0C8FA2EC3096A71BB653341A5233D5DA97DB0E9BEF4C5B73900A08C4657B09 +203AA6269D0682F71BF46905CF0CCBC0DB6545454240AA65027F209E087771BA +4BC2BD0D11C3DB8A1B57E0117C36B6AD3636B19C82ED9B09B5136D17E3E2385A +A2A816F4327F596F7AADDDD2EF687C293930F0FC12DBA7F218B755BF379D77C8 +973284F02BCC8294B506BD5063C39ACC68D023350D5764E25E6D88C08E4F6A52 +0DD52B8BA36369587DF8E44072391576E6CAA048CE55449DC2BCA9CA1D0AAA0B +8EC763C4DC6E08249E65AC619FB34B63E3681F92DACCDFBE9F227FAD498A7436 +C40C9BEDB516DDCE96EFDCE3C11BF507183A89C853CA3346286271CE6C352480 +7B35F0ED8D2D14BB101769B82CAA2BF0DA8AF7C53ED390D6C7AC397F78940941 +F3ABB79FD38C3CEE5954D86C492387959EB33D1735C0462D1ED65B4342D84E2E +13B0014E642D0F560C84A37D90E2224F207FF4A6624EC46BA44C3E8E471B8B5A +FE71C8BB9422B91F05D4D9FB9B77811E013B0EC5B57E6CAFC71E337136266135 +3E31FBF80F7A623F0F6F2A4B2B5AA7C6E69672D21CA7CEEA8B389B217243CCA1 +75F8580D7816C7E541C33113DF5702D0FE6FF3ADD72D21EFA85CA756EB061BF3 +7962CD05F2C721111F446FE5206022C309EC3A227D9E +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndFont +%%BeginFont: SFRM1440 +%!FontType1-1.0: SFRM1440 0.3 +%%CreationDate: Wed Sep 12 2001 +% Copyright (c) 2001 Vladimir Volovich . +% See the file COPYING (GNU General Public License) for license conditions. +% Converted from METAFONT EC/TC and LH fonts: +% ecrm1440, tcrm1440, larm1440, lbrm1440, lcrm1440, rxrm1440. +11 dict begin +/FontInfo 6 dict dup begin +/version (0.3) def +/FullName (Computer Modern Roman) def +/FamilyName (Computer Modern) def +/ItalicAngle 0 def +/isFixedPitch false def +/Weight (Medium) def +end readonly def +/FontName /SFRM1440 def +/Encoding StandardEncoding def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] def +/FontBBox{-178 -319 1370 944}readonly def +currentdict end +currentfile eexec +D9D66F633B846A97B686A97E45A3D0AA052BD0CE60552BD63101D7CDBEEF5B11 +69C468645FE4ED1AF2541AA0770C1DCF81623DE0ECDF49F2B522618F650CE6CB +CC8C21885DD61AF8A523AA677EAEDDFA51A1F9B1885EEE0456196D634E04EF89 +F17499DAD982502ACC349B9EEAAE4A71A73D1147318C60A8BAC10510DE90D8D3 +F46E47295D27129A5AFE0C65E22BAD10D06885A2EE623FF8E1D90287A083E00C +EF25195F68A2A98170E4875AA6B96583CD5632BAD9EB3D511DF934CD36447A31 +D420FA313B5721C37085F478B27E13191957AD30B8B082BCE733AF8402AA3B7D +EC69807BBAA8142AF1CE151D99F5A59AD18798F94781EFAD48BEC8C62C05C56A +336D71AB584F6DF014C56523108606FADE931125496247870E980A65AB33C0C6 +D5B074864D0F58CBE333EFA1201AF335FBDBFB1CC8B1294856C250F222BFB8BE +5DE74F808904F7678552F213C674497F829E96812D340939F73737731D289801 +54E5A8F7F5067ACD9D768F4649B51E54513F2F7878141FC719627C23FC5FBBB6 +3F663343D902E95C56C559B588088227B22378FAAB29392FA62933283D2FB2EA +FDAEC6C1A94ABA0B5BEFA1E728A2052434BFBF6D9759D02A2C6092D4EF794241 +CC28BC939A424AFA193F96530985EE89E2731F6A99BC84C6551A3FEA1342509D +D389F786C8EAF972B8C98B79003B6C71E6696518BE4CAD2A317C5D29621031B4 +00A035445D8CFB67D6C136B3F6D82396E11A3679BC82498519C27601236F1FCA +073DA7817B529424CAF49A0AEE8FF7520C0F204A3B1725F46C2C6953C20E93B6 +2F3EED0EEDF87A350CB841516107D9571503A3D62A2F81840070D43392160783 +D111F3463760EBE634515DA1A1B6C3A5D14FC475F277BAC792FB69B4219E9BF5 +E6F8520584096A7B7BFE439A1604C2BBBB85471EB8E1E14B362891DC18525949 +E4DF9FD1F089353BD1D79E0E27DD9AB76AC48548BB1CB4FB83132059A4C60AA0 +82796A3641E7AB20C71418E5AF3E18E07BAB3A2952D4DBF39EC35FE37A8A7965 +CD3A8D040A19FB3855671F07AC12FD84BB3D3C7D257FDCA0864314B9EF98E221 +48D27945597DCAACC5C78220CFABDD2F71DF17D2ECB26B273704AF5EFE4A2503 +82DCDB836B55F212F19C2A5D23B0F0F91C29DF4D780CDE769503A43B6824DC95 +6BEBEF4BD42CE5148E2E8A6FABCC3BDCEDF0C0D6DE52905B69143CFC0E3033EB +AF4F1A66927F0A67BB50B46BFEE44785B812D8B5BD126D2F0B0E155DF8B41150 +5C4752C387B9D9597313822A9591068153AD5E1ACF22A8AC8BC6E606A7EDA19F +F235A1B1D92C9048EBA6EE668F1E896F1F9E1E4F6839CF107528644165C4AE6A +9664F798EABE3095AF2CF44C7889A31A4EB49C93B637D314982A922AC80EEDE7 +4532E61F0A414824E7D3D3A541F29C163DD4A6FCA9D574718B98242EB54C02A1 +C171AF3DCC112DE733003275C7B0CD83B1B29767D18B3817C4BD86E452016C9C +47D191A10F10DFE650760F0CC40799D7FC06D16F028A304E0EEECDF6C5C50274 +B4B1C7E6A48D18DE6EE1D7E755F7061E25A1F47DF2767A6BF81F124B923B7814 +539E6D297DBD2C462F673051EC33B6D56F5BD022F4EF4B5B2B09A1C9F485D643 +F072963A85D4F8227772F4EE8AA7BC73BD23FA168AD5390B54C9574B6D9BED63 +F0A8928C0C06829558B665A0255A3696EA7F933FBB8306E5B5A64E5B65CC8020 +2F13851A7D82EF814BD296140C6E7B4CEBF2B60B014CDA35ABE1367341E2EF2E +E5B0E394C5C86283EB497AF713ACAAE06FF9882F2D19862612DDA2981AEC782E +66F22E5ECDBE484B0D2370565E1EF1C37C82CD4F44A84198F452D839BD62C601 +08BF66812654A976F0690B6855DD4D93B75AF627C0356DDB1615315AF28355D2 +6C87EE2BDE151974ED38A0BF7614E76EA86B408D51CB492A28990E43B0D34777 +D170971C0E540D53723E90898543833D5EF0EB03A043886A4285269F53D34BBF +58D467514988BEF2B66CFA2083822F2CDBCA87A1533DB0EDA6440BCF74E52DB1 +8DC8FCB26B3F8299146C93B4B5610F5F1B69B4BABD13F4515A4D1CB249862DB4 +B6DA468475CE4A11679BD279CBDC056EDAE16884CD13FA687EA73B86023CDE55 +15FB84E4061B05B22E8BCA468994FA22D64D75C67AB2ED618FF480358FFF3A08 +B13E2530BBF0E1B4D899A043C64C860DC33BB123FC9D031B2305F0F5F9F766F2 +D67CB10682F8DC836C8D05C11C947FC65350DE088289253B7B34C7410293C807 +480F46C21989A09F9F9B36F8E112E69CCC64B6DBD117EA4C4AEBAF0616FD824A +2C1941F1EE7BAB40854B5C485A06EB118283F7907A829EB9B316C2B256EC3C94 +C6F7FA2D0AAF03297DD579ACAC7E45DF14F44D1AB2A79192EC0D57D02353236A +1BDCDA9D6D0AAC8815F986DBC340E54000DB9B9C9B512A591D6EC06F66AE52DE +02D2EAD21921F975BFF5F70AC946951D3FBDC435116748EF16F5C652DE4BCFF8 +31B9ECB20C9E9896C7615FBFD571194D1220F623191992BADF5FFA28F8467581 +A6FB4A16087A0EBC96511BF4FDB4C1F501BE45F4746B6BCFE2EF18DE8E8272C4 +B9A21962EBD0E9D5EDAC021CDA82ED6B602214112BAF5E8AA09577EC6C89B429 +AFF2077439F378CA63501ACD55AA40B796AFCBC9FAD3E25E00218D05F087180F +CEF26B8C3F9BC4CEF9E178684143BD560FF65327A010425AD427F450946F6F84 +386150F02E45DD3BF0F073DCDED0BB512BF7AED3B59A6F1A07D507EC9FD16BB3 +6D75396C10B860F00BCD5A7C108A688749134752680446F888A9F1D56AF5D466 +0BCDD4369882D4E588043BB5F58F876C6EED19A5987FA54B40DA37378D87A810 +EDC6B4E86385F813B452F25CB85317CFD5AA48A8F8DD351882D1A2835504BE0F +327FEEE42B483BAC09DB560AE4A17AC2985AAC4291517EA4B3F4AF9411819EEC +F84153544AB2F2B4BC8FC5EC7081457123A5B05E94ABE9DB2D73219476ACC1A7 +912313796ED89F984EBE3650F2640205DE9C3DFA592B81F8CDE170201C4BB053 +1D4F530689167B7DCE2E42F32B121C810226CCD80AF416C079A5991AEF9F7955 +85D5FBC9E8A17FFA5B88B256ED641AABA269DCDD24DE122BA63CCF51B070DAFC +00C67B49D501CAA5B86CD25FD07D9B8C9600EE03507397E65DAAF0B0B0749E05 +027D5493A806A353E32D3378C4A9AB5C9B4A7E2D80539C7C4D26E2757240BD50 +608A8314368A21E37A31DB84209BD8885470998982BC0C57E6CAD01C28D09D01 +776436E2F07CD4EC408D5FD8E5A7981AEC782E66F22E5ECDBE484B0D219BDDE0 +82932182F83C4BDDF163BAF4EB9C09ED733CCE3A613073D28515CE6918CEBA17 +4BFF6DA4523F8298CE381D567C22A1B09B5DDC97AC3DCC1FAA14E557CFD01E47 +7F5EBAC8CCA2FA32F58781A04B435841F63123528081675B0B825ED15589CE49 +2D884C08661B1FC11C9598EAEEB20F7CD996E84D5E0A19757F2241781E960EA0 +AEE3CC6E0195274565B5F0CFF08CFE3515DB1B2049FC75A35C4A80904F1CF3C3 +30F68205E2650B94BC0C5D4FEBA843AAC818578EB4A5B62F027CF871A10B59DC +915429233706148979A8B0A3F62B37E3020300719140740EDCCE23F9DD1E844F +CEAA98C5CDF301B370A547F41D67DFAADED4D67583CF1842C75922980FB9F0B6 +94EB8C7E35258572B07B5E6DA03A1CE6577D120C8C884E733C81679A7636CBD8 +9280F31461E586581770F83952F50A94BF6A509F55C87865C661F589080FAE01 +224ABD39ED91B4FF6DFD0411727965C758FAEBCB596771F270BA9A71C33D368C +E03E723B8E9661FB1F7B1128990701A7A98C53ABCD4BBE2B76F03AF839F7B3F6 +4411CA10D20ABE8524481A9DEAEA23BF38625B87358FB2A6564FE7B35105CFF1 +6DCC8B88C78150E60E8853B4E83842417FB91C66ECA1A87669C4B76028C284FF +FE1C626089978C8EBD85D6FDDBD74B6110A081E0D95DEA748A6EDD306601B8FA +5E4FFF3B50336C56A12E941030549DDCFC514DA0699643267D78C262F7C24D57 +B438BF66A2820E6AFFF1E130BB2EA6A8D35E94282B3929BCBA0D2CDC7BD0022C +3378B8399D207AF72F5A50B37FD8E11130240E5483E01637152BA948E1EC459B +EECDDDB17DB2FE123382320756156ACF6FEF2A3D7690B054DBA04D4354E1D423 +DF13C522797B7D71DAE6A6EF1D23B50C2B33937E2C3A6F4F920DE2FAD383A2C4 +705A21F6F12752ACDEDB217369EFA3348F9E2976659A76AD3F388B2FFC563024 +205C9F1796FCD03122D50F769BE27D0EE36E4EF950D6C0B07CEAA48BCFE3525B +3AD83CA1303AFD84F39355EC3E5C1F343AC2F6071317CC36E9BDA5CB7D93FC42 +992345B8793F48CA8C26F80F4824DBE03BBC46DF88DDB70D0535D1BC8D88BBC2 +46E1FDC16AD0B3F60BA1D57833E97CA9643D7EEE4365D5C807298D66CA7B0EB7 +875A1B125267D985B621FC39F609F98956035877BC04A2A6CCC73F7D8B394382 +46610693BD95F7E93B09B7EB900C02C76A1D58AD90A5482C2E444BFE08C9D318 +30EFE9DC7CD4DE6CEA6D5E8BD5EC5A3637F41FC7458FCE101E307F7BF6AE2927 +3EEF30397407B2FF9D23B193235479F0D8437E09AB5ADE38E1160368778A557E +D09C2D35E9B58C7B3BCDF87F6077D8C4423D10F8A736DDB7D2BDFBAAD699C74A +C16305389F1235AA26D3CB39150243AFE6E66913D3A895BDF6980ACD233D8056 +EFD67343990A15C4E2BA17E4FE9A3BD773BB09DA0807D0B38C79688D67132768 +2733F62F3327589A7E03000DB9EE8E65092A2388B652802A64B2E1FF79F1D3FC +07EF85862F0F31939D505D2881EA65620690C78A3DAC4B7E091DCE521CDE7C86 +DD56D65266985B7FB0896667EC7BB2856E1E9905D4982CF6D2B765E134491338 +C808E35FAA43757866ED2CAB51089E2814241A9C997D4E73D4B3B36ECAF512EE +A86DB1E7737DF4D0CAF7AA3D1C010A40A2D678DDC82E586EA67A010AC6052A54 +548AC762C452DA8F2278C22CCBA69C407138837F1D2F109C2D67621B6EF21D2D +BDE76CEAF3DC21E1B0442B568ABECB2594EB11331C72926796BBC93615F1F3E6 +8BF3AA81126A7F5F089E6AE8D58C4E9AC13F1B1DD5E631CD2E8CF306CBF79B11 +A249E1B9C1772CA11C732E14898337FDD1FE54B5EA44570B7FFEF7C5F0618795 +B1B3CB792E49FB9596AB5013806B0051A3DB0EE2F9EFD7EFA3F6906950E1BB75 +A02588E5222A07160D28C438219956AE18C510C3EC9DADBECAF085D96D393D94 +914A40B179135893F2CCE85D4D2DFD6A1599FDADF3C21F161FAA1E28EC28D50F +A1022C3205A1255A9EDBEE23A55FBF610BCD24ACEFA5ED22CD6E28CF38D37645 +0FA9C7C73E2AEAEF83ACC988D73B4C61697016CA5E90658D85A60C9F9385BBAA +F9A808FBECB3E306B060F9DB899852D635506D3978DA797648968C095F790AA8 +8F335B390108BEC571BCEDBF4CA710C8A46B6C45605681AEA11F9DCAC1831DEE +40BBCE64AF9477454205ABF69816E654ABE4CFCD3ED8A1A2F2A4C2CF19F51A76 +E58BDAA87993D2CDE42063AB5FF7FC0EB2EAB05393FA10EA4B6F42F1C29703D8 +0121801D6FCE3BB17ADC8597F0BC87F7605CB4338A6294FDFF0A4DF05BFDF958 +2F5BCED7CEB37EBAFD8206E691FDF7C14714E5677F893E2EA3A50A3520295B06 +FE4C76529E02A585AA57E38AFBB5932AF73944BD875E62BEB43BCF34678484A1 +6ED06FF297082A90A2D14B53245AA757A208C68F61D37B1C1C5C719DDD7E59A7 +58BD72A27F6E8217C72FB291858CA3A619BAF5F735397407B2FF9D23B1932354 +79F0D8437D5EBB49BBF294D1BDD3546C87C041F4CB91165343A525E6038A71F0 +0234920B956EA143394657CC787466CB6229130061A6581B77B91328BDC9D872 +F9879644D6D06B280D928B87B671EFFBDA6FC60D592261A181AF102402A341EC +5660888068E3818EEE8F77F2D24418F03F2D9F06194229D2F9F2FC88CB2B4709 +034E24DB6553A025F760169CBA1E4334D72374D4E8DAE4717F17B86B4C6DDE24 +623FB950B5AD36C5461FEC830E7075AC75B812BE81BAE0196AA209D1CFA5C825 +4E03AA3BD8E5624366E6540FE896E01C68371202ACFCEDA895E30FA0CF17E0FD +80252AD76EA35541881381768E12BD428B67BC897D8F00B2F80D65C960AC4D52 +164DEA4A010969B14DB7E2FF7B2215C3A82BFDB44DA4E54A8F84C92FC373B022 +84F9060C62A29DD19F7E425F4A71E0ABC51FCBA6005E7862DB9018BA8D8C8C77 +1F3B74C0ACC8DDEA1982F0A6F59B670986C6A81009D3C81A0BC8EC91091CB575 +ECBB38CBDCF48A1E0924E284DC8B48AC15D0DA08BC6040842D63C7D876713261 +67A34CB960C26B64702F3F95C202C75FA9D37FB26EB5EE5DD2EFAFC07E0370E3 +FAA1860073F3CCA3F0C3D790FC1982DAC76418CC75C59DB674B8684AA0C7CDD8 +A552F815906BAF60486820AD219033A8F7C8DA92708053B92836CF854B1BBF8B +A8C015686FABF7B8BB808537ECD6F22EAE49EE6A3987451CC34E6B862E07570D +513B0250645AE721572B7DFF5632B9F43E42D7228A61CF7A97DA2D98DA493604 +037C11199B5ACEFB28FA9E324FDA701FD91D90392861A8291CD0D3A0BB041ACB +65B9E6E655AFE53D20E4E73AD17C60343A0D6983DF61299D256A7A727DA6AFDF +0DC109E63E154A5957CD998D2E9B7F145511E28D768768D62E369E54EF876C67 +F7EA5B47910425E1C1A5524BDFE7207889B1A7F1D86D759BBC27CBA2DF59907E +26E783A7E139E8F89A5F4E07FC12A45A73B44A62602FC06D7C37FFED36B3A124 +9A06109FE8002E8949FF0CFACD9BD0534FA02847A4341F88CFC7672BDB5BA9A1 +05C98F893A69874A3F0293D687F8117DA25D3C66FCB01DDF556244251C0A6701 +288589CFACE23E946F6907604A4AE4955F76168F341065F40286D62E664D818D +CDDD6A2AC22E259166D219A2ED688710B6F9F83C58113EB16454B8827E91B67A +AA0AE2654BA6F85AB2A27E9187C3BE89CFCB303E06CB7548EB7573C1A40E6A47 +417D718C37C2FAA6792874076538200DDDF125E9DF1C22D1E15A4F0ED8E1FF88 +240480E405FC436052C1BC4373DFC80D55B6F8AF17DBBF27066BF090199C2BFC +C7ED2059053B7D4B10EFC838870904016187EC0A2FA93CF65FE0F14DA80E080A +417E78F9D6A10A365985F7D9A1C4B124F8B04E98EE2D8B349142CD1675A9D31E +01E1DBD900A74CBE104E972C5181D183CE74AA89474AC1D8ABBA08627423F0B7 +F088438FD286E3584BB89F9F25253FEEE5F0E6080027618E020AC137250A1D33 +0CC17528FC0840FF2DFB499611EE3DBCA777AC4DDFEFB23F41C7C91EEC8A9EB1 +36AD0292B6F005AA6D9F56CBD6D1C649691C3E5A6DD38F336613794A1D78A2ED +8FA6043E519AD508D6DC2F24AF327E4998BDB3FB2C085ECACECCE0234229DB7C +8BFD0309F63FC3832F740B09344274B026E8C2A0F1A167444F3504EDAC2FA6BB +214F06522DE8967A14F6F01C22B7C557E8007B09B95103753BA53A7807453B92 +7361362849D408D6DE27B03FFBEC9976DFC6B634B92086ED9CD83DE07CB476D3 +72ACCD1DBB20192400C26EF0ECDD2D390A27EB60E7C1EB7763E21679120CC4D5 +9A2F64954FA8D1AD3C72744D2618007F4203D2B195A6336D129F42FCE5085DA4 +6C3062464093D1B68FBC0D53C386A53E3314FEBEE945A4EFE90E2781D4F23835 +9C63DB264A067F32CA82E80393FC1442B0C5AEEFECBCC8E27512B968ACC608BB +0F79650251C8A2DD4293CF49F2DEC55106D803396574D71B9319F39812EAFC09 +51F619BBCCF098E188CB2C756C52F8D060AB9C758ACA2BDB1D1DCB1B3FBE79BD +B97D80CF1EF32324EF6A0238572C562073E76C8071C8CEDCEDEDDFFC255D8B77 +CD9080AA75954C0EF4261DB3ADC40E2C3DC6A9B40417E361F92C48D35F258462 +1E0F0E0B70C942F47A9C58BE16CB37F2472B9D0C606D4FB431093136DF6989DB +8CA2E6505611869FAB0C30EB99616DC4FDB29F0B0DD69370170825BD6123AEDC +3799E89B06F5B2166CBD8AF8B8B9DBDF932B5C621FF490AFD5F86DB88FC6C460 +E46A1BA13020FB2234565E56B1C92DC63DA85B3C80DC07348D5C04F3C3D62F90 +C72C60AB4C127E1C112A68C48548BB1CB4F936E8F60D7D07C5D332DC47307876 +77BDB9746B18A2CA1CE94409D9ED56855A3DFCCA882C336876AB2133D97B079C +D0F664D76B5D28FD32E5B86FB5A5E388A2C04E1AFDFE6C6D326AAE5197758559 +FA723C154C900C6F1CD5ECCAD1927B94F2C93F2661518DABF34D29FE78A82ABF +CC1B25B958567133639F2F173D4A52477F7907480874F1BC354B59FBAE79B2F2 +46391AAD905D4E3E633D6BE23E6C8E4BFC0B351AB04308D8BC9DAF2B1F1EEEBD +09365FAD4FA8A79B5C062C6CE535FC2CD23910B38098CFD1568C4B2107E96B7B +04B9129CF2E8A137DF664E20BEA88B377AB140DBAB955C25FEA9827479170AE2 +53C9FCD3A83D7C6B5CE58381EF6581C6AA3192C7AC3F38D6C3C54A10CCB302F2 +F1DCC0C51C1980D5F134F4974AB0989355759A91EABC519A78856099209B9CE5 +CAABAAD46D29A096C1841BB04534A12D66F5AA22A0BF92F00D8FFB4C847A3147 +98EED757504BEEF163222620ED4719F5F9C5EF59A3C0DC7F94A251DFCAB5897C +5A9D8417A0B5EDAD00B037D36562D8F4ECFA8154C9C388ED9D34B023066AC656 +D01D44A1E5F556B5B7EC20CDEB164947FA3CA230E9A488EFD0D6F2033E824922 +5FBA2293F8868A81AB0241384573C74713ED37BF37536A07A7DC287183FCC06B +7A5889FFDB89256567A5326577B6DD6B884E4F0D82C3BFFDF7F6C4CD3674C5C7 +B4C31A0EFDF6A3DF6A13BABB9017E6E272DC03CCD2550A18839A1D143BA01D7D +08EE915CE46704D6CEED368AF9ED2ED65CE0159A7EF34BAC1B0C138B253B0548 +60006C3A4E30EBCDC6C43CD2ED327CA534E449044C63BA826EFD3C36463EF170 +607C4FFA2BCA42CB7924C889595242BFCDD1896E3E2CDA3A69F333B8A0C411AE +C9C185DB2E60922D78FC7FBB43A297C72C3CDE7EA7B13482EB7B589510AD571D +4D9ECD9E12114C8E880014953FE8CC4164BC3652475F29A5573D8A1B8FFB894B +D68AD0BB35BF36A9CBBBDD51AEB66E000AFE49C6E108C7822BE4025EEBD684A9 +0C34E1BECD9D121ADB66C6A31653D4AE60282D97FF314F27F38B70C87E5CACE1 +0F172C7429021B4EA191A19A2C0892226803F981DD806D9A0C73C1316698F13C +840A813C240A07F5ABC6512A91DF1E449D0323C03B4EA48A029434926E013D6B +B6B46C8E5BF1CC56B733595F7A9DC5C166ADC404D79BA2E1760F73F58522EC6F +D339BA6508F8543E08FAA61EB0CF6DD8F3E81B476340F7B6F289460D57F6FA2D +B81749EE49A5AE39BD088F08033E590A628F14FCED37AEF82C97D62FA133F827 +735203744732E3F8D11D6B9B30C1CE30820215C60801C1EF4E0FA9E7C825039F +96DAC19AFC04700848452F663E896E1005E0E5419730E329D80049F4ECAFF3F1 +5741D99C716CCB290B7B1B5A49BE09257DF8A428631192A0049DFC48C4DB4036 +9F75EA8DFBA93BDECC857D09B4DC9C6B19FE345FCF8F1E35448577FCB2A11349 +B69CA07B7CE8B587D7AE2E4A129F7A99BC4514177CA7BE430CF34B9990C8360C +C8DAA8BA59FF936230894C991FA46411F68B506B4741C84569F2A13CE28EBF02 +F158FC5E78E55629228EC140AFB0D94689C3BABF5DA290E875D762DB6199434B +9C1C253024DB79F400D52CBC5FA902E5D90DDCD461BC8FD05C249956C2DD51FE +2F844FB97CE6E4A6C1A3017900EB4719340F8173BE2491842A732E99AB50E8D2 +9D073549BD41231E9AC42E0A23C064543291A490B1CFECC5A6CBAF5223591B38 +C40C1D18D9E19BDA1B9870F628A560B8B129F80EA04A8186D4A61BC0EFC8B74A +2740106141EEBB6040E00B3C8CE8E62A59C4AA33409D7E03ABE65E5C942182AB +71396E9417455C5DF642EB886623FA0804F5B4DD545EEE457EA48C5C3F67DEFF +CCA45E19DE0CFCFC70378DB8C3B6E065D82CBEDBB6BABC3862AECE840AAD98E8 +52CBB461976F46EF112861D3AC2F189948F718AE3F3838F308B512C2ADE58526 +97DB6C7408DCBB56987A5DAC995C0DBC1089ED26631738ECD812C47D7DBBF0DE +CCD45788FA6F01BF27B5A8590223348E5A9F2F2BD14323C751080105AB62872D +AFA57514F66635663629765E30D632FCE69B4E163D02D60CCC228343473848BE +C02304B6E78879DBFB42B66D6A50EEAECA993FD69ED3FEBC8525E334895A1023 +8D433CAEDE95D4B243AC7D552B4467A32DCDC699DB89DC79C0E47AFE926DB032 +6172364A0E923C434128AE2232C2B8E6783BBB0691C9A690A34C836EEFCC8EB1 +F262505D4A0D51DB041BE32A9965D1508B5CB478FD7F861D3F54F8D394C2EE16 +71ED68BE9FCE968EA41F6416CE6BAA1F2F0E516BA1DA695999CB9E589DE954BC +AF292623EB9052C985EF566EE0025D177D87188FE35331DDDE35136EC27F22CB +A45506CC27B03067CC348D8990EFF726F3C29EB76ABFB5677B9AFDE8F78B5782 +616386454D40FD1176F7ECA166BE43F3E699F5D79B42ACAD3608F2D88553CB11 +DE97764ADDF131513EBA3144A8BA2FC377D6DFA832616A6C0B4E1A3B303621EB +B23C5751891305F196BF168367AFC171A11C776391B8FA4438E92AEEF0B90B6E +FEBC708F2729D3D575341E68A6054CA23C078E2665976603A7CA337264858165 +2CF2EC079ED6349CCB9C2B710498752E1CC8D106DE7349D32FD60CA609618DEE +DE0DE95E7ADD7F61D44BDC2B668FA4414EF33E4C34FEF55B42DB0A2538EA7D20 +E51721C8879D908C279F4D79D8D6541D1D3A02FFCB90F9E9A24B4230A0AD0869 +D0B3A5A116E03B230EF8EB3A1425ADDE3EA443D87E143F8A77F4E51DCD903ED9 +9ABF3605E9AFFFF8DB6323E6740428D595149858C2DA5051008FD1EE404AB21B +C4948675227B3C40E10E08B9D3F778A7D98C486D3882EA4A2A2641F698BDF9EB +35D2FC00A0D94702D2F9D1A7E6B0F8CB038A73D413CBBB9F8C3C01E7D3CE8386 +5AC1C1DC4AAAB6C452EE90D2B38F2DA6707EC346530E9A0828FC2A6D8B62831B +3078A7FD03A73D825FB5864428EA3581A374CD8B9FC0159EA688DC47D37F90DA +DD3523C3CF1D6E61512E505E3C95CCA984DF48009838722E7BAAE0B7E225413A +DC7FEBB776D8B7B985B34ED7F090C890687069F7A8CAA138B25CF357BEFB2E11 +071E652BD0F8C80BFFAF39D5E8DA57C9C850205DBA7BA31FCEE0280BD06FEB5F +F08A013BEBF587218C5155414CF3492137013492BE918860C44300B12ABB49BB +7DBF993780D05CD849A61935DDD6A67DFE03960358E3A0A038FC9D65C328A833 +6CE9E023CDF46742DC29BB4CF9DBCBF776018703D691491B08704C6C8436DF47 +1C7E718B13F29CE209E3E7A0FACE223E405F48F339DE67B23AA4C8B47CA18446 +CA4D04C5BE13CC4E508626FF33812EBD1E9BCFF9BD2A6BA58A58BD8D6F6283BA +70F675D496910DD190676D423ABBB9FB8D861EA6C7817D55874870992DD4C818 +EB9C2959845C393CCFB2B652AED1EC42F237D040C767EED2A78950B9DD366BBB +FB39C173CE51529ABFD748E01FCD2159FEFD3FDE38FE81FB83C5EABA639CF2C6 +655A3781425776C950DB79326DC1BB4221C16F28E8E05C0616D794812A101965 +D7D89036D86AF88895E89CA460C074C6916137B195EF274DED64D21F6CE301C4 +F82C1968498A4BEF401F892B346E17798DDDCE4C0CA1E246B3791A9D0410A844 +3A744CB6B2030927BA7EE31B5B4F416BB8E1AD253EE313802FB42108DB3583C9 +3336D7DAF329C786281166CE1AB631BE714BF4B904403F66D2B24163DB7CC4A5 +F5289AE0D4A342952FB532E3C21AFA61B3632D05452724215B7D2BD8ED93C897 +8064CC5F95BEFE11B6299012D31F06CEE810C3DDA53FEB4D8F870C026E27AAAB +81EF03599CB0249C10C8357D3373BC8EDBBC0A1B5C058099AE325102A5C5C85E +70FDC65C1CD75D76CB68500722A66F65951FADEA3108D492EBA0CA5D29E0C38C +82BFCF9C56C910E4D13063FE760FBA6FBF0B32FC12F99CEA93F4DC2C8CC44676 +4BF9EF6C01406108F076B2671FA00B4933E4D0E0A5021122DE2C47CEE44801E8 +169BD815F4DF2B4027FA2DCD62C80F54781D993719D4456A68CC9F3C33531D23 +CC48D8AB7084B26B3A5C18798445C23318185FA8B59763E14D289288320230ED +94AA9001648E5DC48E559F1FB9609D0F6A655438A5ECDB4249BB16701D677D0D +10599A3CB0E6CC6470432FC98B1F42A2CA8D127E9FEC21670BA4CFB81BE18D73 +18FA729832B250F0E0D975CC1933802DE59F63470715258116D5156E48C45A7F +0BB1191FE64EB09F79BB2AE8E2B0FF0D327C6A6CCEE21D0F89449D37DEACF930 +59C240AC0659BACFFACDFF15217C4707320D415D7082C2F2BF75476C8801AC77 +6356DD7BDBC74D656CB3882DD30CC7BAA7A53E6E4E04F2C1ECF8C341F6FA3105 +8AE0067C4901FB487F7E5D08F13EBA343C3EF32EA3F8A12942FCF7BE0B1E6B50 +C0C72734551B00D28808235C73B6A939F8D8F5CAD4D55F8A056E119390C6A9C9 +3A5C1D0CCCD43E392F6288A5B794ADB4C5FA3E9CFBC257CE82776494387EB690 +E531A9F0034C3364205B7866F279CAD84210915DC019A843A947D96B3EB6DDA5 +58E72BECB83D473B91834A5553296D37E56EC6E81CC3BC15366AE3649E301FAD +14116B7F2A88BF0066C14B49F32728FD8C41C38C718E157061681292801703B2 +B058975C02A4F4F5F7ABAEDD9DA188357C9F04EA7D0E290DFEBE141507CB851A +1F3653E42A7694F55F993C60B331712CABD2FFCA7C5D6C83ABBC976D7746900B +1DC173BC2C339547B064B2A69DBB71C7CBEC73C29506195B46FB70D0EFDED303 +39A40CE2A29CC74A1FF3F87B63B193E656304F00F07BFE0361879986EB21B2D3 +DE4A5AA2523F1C4C737FBB211034D24EF117C8EB7873777F509B87D2275328A8 +CD590CB5E6992F9624B1ACBCFAE2B167BDEEE664B94DF4E5B32F55C2F01FFA4F +BFB3F34EA278A80DE94C750DEE60EF0E82E1439F3EDB19B191919AD123F9A317 +EFFE4DB8DD6F993B8BD2C5FF4915AD244A98B2A400D4D646D00FF4BD1392A909 +79A55FD3552D2B5A6ACBA1C7FAC184555816CDC78FA3F986110C5450C10BAF1D +4FC903E3080A9CBE1A3CFDFC562A8C2BDF8F9DE42B20DD02387F5F215A5C4A18 +9B37C4396338654EC7D6CDB079C95FD46D25B61D204A2980C5CC427D48A13405 +94CF5A08AAFC31E8D9AEFD2D81FB8648801D6D30405A60D38967D2F58F46B34D +B7E2FFDE24F9C7240EBC6B63D8F30CC33653264A0A9AE8C4B787ADC051F67364 +621F76974F9DA9E11F480A6389F1ED3174481FA2CA53CC43BB9C988F6367D777 +D30CF8413B3554A8E84F0D9C1EA2261BF1BEF5CC0D17EA9A661E27A73A30F396 +CF096D131620C3CE3824B3BFA190BC4310337E1E836E6FF0A6E87A057E2DEF67 +7C34AF95F455B7E0FA441CA219283B4933BBF8A53991E298E3320108121E306D +73E43E21E231FB5A71F19A33B124CB991A1D80E5350AC5366C88D298A9E2AD57 +F659179C5CF09C2FE0EF9B1B6ED56A251CD928913E06D4528D513368702A49BF +5F58FB8D27E317B7886FEA26FE1231FCD5C5F76D794508AF410AF2AAF5663317 +B9CFDA71D1657296A68BB522DB86B9279724D8C466364902ABCB6FBE95C54848 +23A623DAAEC3BCA3C719F217CDB971E5B481187FB759B59D7AB0DECEF81D6DF2 +319C2FDE41E0944455265AC203B67778BEB662D57AD3A8BDCAA02D8C7256DA07 +82F235523BBAA7870D6314CDB20E0536ABBDAD1A3D328F2F29E3F7C5410A31D1 +5D24B59F375EBAB91332A6D2735221D4BF9DE7C3D926C281ED055E9B4297C8D3 +5243F4280E1AC0739784A57A7BF62D2715205CD6CC32722B26FAADB15E890365 +94CE71A26B5D1517D0B847A076EEC34587F797D06BC7541DAF024D78458A4919 +FEF424DC6EF03FE6B11A3CC858D9AE84DA7DA3A69DF0DAC54B8FAE79A465B2F9 +2A7F1CA9B2539CC7770865E02B4E90C22041393F473CC328576FDFC73861FC2E +2F672CAD47C89CD3FFCB5B6EC6DA71D3E31F25BC4E1F43FE1A2233A4B64EFA8D +B70E8E0F4D48DAA9B81D1B0CA87C70B679A2590D06481FA43D159AEDC23DA6EF +847BD0C2747CD1D70FA1E9A9F904D8FD82DA6CE6BC475B648D33F29BB8A04DB8 +5008004FA7F1ECD023F1F3AA18AC4D26651E7B99CBCC16DEE2DF18599E72D359 +F1F888F49156B57494822827D3364E98CB9049E7F02EE08363F65EF899176CAC +4112915A57C861FB13B784245C84A7B30CE698BF0AB35C47C3E3B6CFC7AE2D25 +A1C275AA37E193AFCDDC66CDF653C31889E965ED0715BF4DFB3C0E7181B79FAB +8158C6EF2539444D32E87D2D6680FBF4C47391AA8EB6FF7F4AEA829448414211 +96C93BE15CD3E7AE523B047492F130A854E93649413C3360FDCB24A61F6AF99C +CF9419AABC1629342DE48FC3FC6B82884DB0A4080675E56E29572CF42B1A4C57 +49C6435B3E3FF8D7C1D86CF726381F5162ECCDED551DD87D72685987CCBEB91B +96987F7F4881199A6BBCB07DFE1F3D26CA30047B2F1B046E2DC1141E2A70BB26 +E4B1D81423937884B42882DADAF9E53B3508022A87850202A20D26EFB5AFF495 +125393472935A3C0CDD3056F6300CE4951577AFC0D22FEC909FD0E9ED18F6178 +C042B70B9A7C9095CF821244DBA136772500A32D76FF9AA2E49AB5411CAF3DE4 +3983D4E15FB55B2CD3E0ECEB16FA05E617219E2950A42E060194B9C2C3298E89 +185669A58A0F8F05908898D3831C94FB0E9FF68543D894DDBC4BB110351B0D7C +26BB68E70AA33813ADA62E0F8E80123A56799F9DA414925D6ABCA6451571AA24 +7DCE37C929292B2DBF5593646151C48510B82C66BF29BEADAF96B91FCE0DAAFD +E94F9C325BDB0313A5E8F32A8346BAD23C9112C2E6FFBC55D56418FB0972E57C +27627BFB53F5A2D979F4A485E95BF6246A483EC1F7517E5C25637C5621262084 +1B3AB36F9BD71E73D2B1FB5071994F890C52FBBE6F46A2489335E7A52E735AE3 +7A8B60A9697E18EBB4C690E47BBBE57D42368B691FB0958382F5AC3DFEE05BB6 +C772814B5ED2DF48F0944432DAF0D6ABD4C7E80733E3C7FA7257347663024320 +A170CD16B27183A30E1942519B6ABCF70FB7EB3942DA5D1A6CD539936CFE9014 +E718F7AE3F57D8F9283E655B9C309785E64D6F56521513B4794CDD1783738A4F +DFDC2B1EE21C11E58EA56E000AFE497C43442DCB4512AC72721FC3302599270C +3EE19F6F2CBB4B6144F370A44DB14A312D839288532C233176EAF39E14A79B65 +E897097922B8DBA14C0702D0944480CCBB55CB81D35884AE1556D7D1D7DF226D +5F62802B3382B902F67ADC83DD50421E15E88B591F8964294866BD2BF2701B70 +D0D5FC0840868812F3E27E15FD4625E7869C4CCF1E867A0E8D8C402DD6D521F8 +8DF6E390DFB4680013B9BA52F44B4DB4630672F9DC5BA49BACDCEA9D9BD2CBE6 +CA006FFC973E98614D7729E4D92F08F6EBD96595E756036C78CE33844B6643CF +F802E2106181E04FEEE58A7B313784E5C89E32287392B850B4C80FA3EEC9DC01 +4232E3520975CDFD80432D332C19DCBA02354C536BC2895E79543C39D042F636 +78E0B86E4D4C69E437CA9FEA1DF9A4825B8CE6F2DD2A342287160CB95730687B +98699B80C3BE39389AE0115BB06A5311632D9CEF7A061EBB6AB70D7BEB843D96 +F5B67833CD25751C72D3F19D7C42948A27907CB66E33EC1603D4FFCF68645A2F +560598842CEC3C28128D8A7F470C07B6C33B70439B7A34B7C77ECFD593F33521 +6D5EAECC9255F5461E26ADFF4BF6F8A6D0D3D19171CC4C7380B30A2123A86E02 +0B4BBA28E6A775A11C98A43FFC986DF84507B653142205E4ECAEEB8810050441 +31C634A7B9B1BE1C725B892E02AB5B4D2FD33B26C8B3296BD77497D524D85BD3 +49073186A13242AB704B777D8E5C72E2C577D9D5AC8A96A07A78390AE4091ACE +739398315C408FF3B7A65EB686B0FE971E1FF26DC5F1271B306EFFF601452387 +B4CD2A75757DBD0116D64EC10861FE758E2E2EF615940203A16D04CDA1BA2D99 +8CDEA61465F7FC42240FC3C2B5960A83933F5EC4B6343B29A4A5B265E15E3D3E +869667BAA969E1BBE76CC58B66935159E51678B03B238D4AE746E7A5556471C3 +E4D1E4D81F449D7326E25E92ABAC8FB5E5AAAD59C73A0CDB0931377E1369B22A +B71C677FF1D7655C0F4B2CE6EE553D04EB2EB056466DA2BB55D1DDB3D5BF551F +98BFC4960CA56B50FE58C3FFDEB0B3600E1A5D7BC0E04DD016EBCA89C6FB4092 +D0E704FF2F86C7F2387547F6CB86D27A6B279A8B5A956DD2B99FD2CD4BF0FD6A +54189D823CB0958D6455CFFF9BE0CE767B7F397360CD6C3C314BA8F7E7462B03 +9E4AD46B0BF3B389FCFAC2E57CE10B67FDDD93ABA8BC458829714B77C3D69701 +1C3156F49FE00625EEA811100B65A860522AB411DD7FB2CAA717291F679C5BEF +39198D792A0161CB5B4A848C10D2DF6D23090320ED30DC7876BC147915227A3A +641492F68FD9301B27A025A5881559964BC235BD5A82665CDF50B192BDF41750 +D760619EF82E0568E94B4A8E08835AB2027675DE96DD900C43220B2315451928 +2E6227E474A60DA2F9F474340E2C626E6D1C95FDBB9AA168C988CD5E760464CD +4CCE4B76D9F7DA782EF4FCC585B4993B235D69809AE7F77F6A63EFB043EDE683 +A6D24D2D1BD574F1DE89A3CDA7C6CD00A9C3059F21C05B4388357FF31B77DC9E +F51CAFE18614E5C8F94215C1B90BB450569F962444E54BE8CF7007AB4880F49B +B3F84D36AFAAD8BCDCA9705C0EACBF7AFE11C1FAB71E5F85D41C3DABEF72A185 +CA900CD87C446E84C983BAC171A8759B89AF29081043653F9F05A72EE1AC8407 +D9D95FE5499D8707AEE1452F7F6CD7EC7EA6B14598BA0BA942269B2C33D94B92 +6043606CC448878DB06FE01152EE62BADCEE4A731FDBBE23126DD25CFA9C971D +7E44BC1344C0B8CF348459CA24C9B925C2793D7E3A7C20530FE322ED082C048A +A3238CDFF20286FC318B721F77215BA366838A327961D5147B68A1F0D4BFFA50 +2622176C9AC97886FD553A46E1C8C6C383FAE61A10ABB1BB5398392BEDBE699D +DC749B7F85C342AE58EEBD3AA4CDC2EB8169BB943BB6FEC124FAE8242738189E +39051E6C07E3111D86111B67E690D021138444BA99E70DB26FECB012B7A9F008 +B58C85F3E92091F6D44C002FCAADF3CAF41403C093D04120E565B0A0CD94C8A8 +F10A8843CE42D2B0416082A65209B68647452C3AD5898C0CE11307849CF5ABE8 +A542FD87BF6403740C170647973F89CC44D062349184D438C5229A274BFD72CF +2620FB55FB7E550049E76D25BECB4B267DD1C1854D09CDF3F290F718BE41825C +5E495F2036F79F152B6F700E7440A446C189EEDB3925B6A83F37D9B7912986A9 +20187EF42F68F97C5BFDEAC50A931ECAB8303C203E909756FED9D17C560A4698 +F4EE18AEF779D4300ED4305A4B21357AE7DE808E11E3420887D162DA42D202A0 +3C369A5B99B0912DB21EA1AE554B1439693686D5B33FDCDFCC6322074A8FECD2 +B9A8982D6F98413ACF94FB433F732CBDA6CE6703825D8CDC620CD089B228E373 +461F2572611C5FC2C784D12E57C125589CC18471C6DFC8125847672A8AD69661 +EEC91BCDB8BA89992FD15C8F03C36696790EA648C3C8367B84A9BC6303368F33 +E395291E5706EB195330C6B2625344BACD8529B98D177919C80E5307A9AE4D5A +21B9AA2F19ACBC22D144F1B4472674F1C733457C959F79A53C7E849AE60B7051 +1BACFDFF5BEC3B733DC226D4F6BD7E717B9DFB6779467E4D953AE4584D96383C +4F24BE4CCC50BF5AC4387D4AD66310B619C8A290373B2FB23898A50D5B172857 +56C8D3EE5D88BC780B6771D19A898CDCF314FEF485588BA01FC51D8CA5E9F9D5 +5B25D03E77A1F75B869B42462319C67438B70ECF6D19B09A8373CA28D8E240DC +B4DF9EB3BCC3B8D97F6780CCD3CF2930805E78F9EEE486E202DA4F81EB416179 +7FF410F227FB53401F04A34E6EFC690786566A06DC1452789877F46060794143 +444794D352A5F4313522FA119BDAA5B9A2473DF6BE6C952593D8DBB00CC1F200 +1BBDF7CC19AD6B7AB952C4DFCABFD720FD32F5C6ECF153F7B976A85E30155EDB +3A821165B38729115838DE7282 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndFont +%%BeginFont: SFSX2074 +%!FontType1-1.0: SFSX2074 0.3 +%%CreationDate: Wed Sep 12 2001 +% Copyright (c) 2001 Vladimir Volovich . +% See the file COPYING (GNU General Public License) for license conditions. +% Converted from METAFONT EC/TC and LH fonts: +% ecsx2074, tcsx2074, lasx2074, lbsx2074, lcsx2074, rxsx2074. +11 dict begin +/FontInfo 6 dict dup begin +/version (0.3) def +/FullName (Computer Modern Sans Serif Bold Extended) def +/FamilyName (Computer Modern) def +/ItalicAngle 0 def +/isFixedPitch false def +/Weight (Bold) def +end readonly def +/FontName /SFSX2074 def +/Encoding StandardEncoding def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] def +/FontBBox{-234 -319 1740 892}readonly def +currentdict end +currentfile eexec +D9D66F633B846A97B686A97E45A3D0AA052BD0CE60552BD63101D7CDBEEF5B11 +69C468645FE4ED1AF2541AA0770C1DCF81623DE0ECDF49F2B522618F650CE6CB +CC8C21885DD61AF8A523AA677EAEDDFA51A1F9B1885EEE0456196D634E04EF89 +F17499DAD982502ACC349B9EEAAE4A71A73D1147318C60A8BAC10510DE90D8D3 +F46E47295D27129A5AFE0C65E22BAD10D06885A2EE623FF8E1D90287A083E00C +EF25195F68A2A98170E4875AA27F17EF728A0C3DF4D0A836E4C5D0D5F628C815 +59FDB4A4E80BE5C0C7C81541C4AA76C1991372DEFB84F8256CDD9019EDF4CC72 +6819992DC185F4D8C3D560873DD54A8E328960BEA5707A1518D90EEA4A504A26 +472C9FEF14F30D8A0D78594D63C9A9DF31448D8E6AA4983145547D67F0E47FB2 +BFF2AFB72633E9387C7B69D390DA4693155A76D118B50B45A11605C608F2A21B +D09354084E7DA03A98364F59D03D9EE05E9F617540418F5FD8B87FFD969AAB0C +C9286793C98D4F2A874E30FFBDA1A5D3DD8630CDDDB59B361A646D1AB1BBE2B2 +42E6A7D4598AA6B0CB27A9DCDCF2AFDF395BB602729ACE078482AA502D45FC12 +26484C5B86659B3925F147E983B51163768F7580F1A0D0ECE4CF6CF5746F9F20 +7987CCBA04EED028A558F7675006910FD4C6B7483022CD938EBF0A0F862942B3 +D31ED2B7621C051FFA9859F0F94A961865F542CB07D64FB727A154C1903EE6B6 +3E474827BECFF591A1D47CE763E2B69CE5A420227DB61E86C4FB920622863368 +D7C1A5BB98584633EC33E4B368D325BF428E6926942C2EEE19F00AFFEE830606 +BE2C53BF076E037E09E659B0801010146BC30DE5EBCE2291B64CF888A4FEF6CB +8BE35698A437DB044EC9F4F79E2EC3D114B43B4E86AF012CADB2A6A200D2AB09 +C5337C52268FE41A172768124EA05107514186A4FDC0DC478C88CC74BEAC367E +1488C875A3ECEFACFF80F870F1147A96798F82C79903087E1ED41A199C054091 +99C70E3C76404AC9066ED68895EE75A168A7159BA8627236D66A416F002F5B27 +4091578A0A7A560DD14E0CA3569C59D057CBF1F23DDCD88F68AE33E998446116 +B3B9D2B58A91DABEAC97904055B312C837B7DC70ED3859609067D72D50FFE60A +55961A47660D2B87DA8ACFC7EB5FCFEAD8AF1AA67CD2C067C0F69FCF23116AE1 +9F25B22A73E8DD1CE2AEE77FD88969A3F3DFF195DDEB15470BD7CAD02B38663E +F87213E05CE0BB57320C77049B6DDB03EFBAC85D345FA637BD1473084BD811ED +29627489A288336909FDAC70BBEBECAE0EC8533878806C1D57B0D64775992A4A +C4126ABC5B7583D0855DF8383C6CBFD51811205AA1489DA1392A2D490C4E79E3 +E69D3826B7F784D3DCA603ABB62E677AB94E200505CDEE573B1C1D3C20FC36DC +A2DC8388DF350C40A598932B1A5045156B453CB90B208F4F0C823FE8A7C64714 +F6B1667B013E69B1A727B84A6F5E70AB0F47CD15D7207C7A825D08BE99AC518C +C7FCE39DB3CA9C1496A8BEA5F8C6B62B4D31605C39D7F66D0C4D01E9C8EEF888 +D3C6DB49B71ED83A216241DA11434D7065787374B4B471B92705101387E6D698 +DCADB9DA45F31345899DBF88B8E8388DBD8AF04BCA05EB103672121A3B8525C0 +23EBC75ABE184E2B3EB75F1BC19EBEF1610EAE9DF274670265FC8FAC56E17D7D +A82F5244AE0680FEE259DC090BC1EA2CA3A9E0B0E72B2C3B40EADF65CF6F67E1 +C066EE2A075F32AC97BE9EEF7114F85A2E1611C514D0A1C73129BA8256A41D56 +4457C768BBA808890ECB590E648F1DF7416A7FE7063A503CDCF91DF4610F6139 +26A512635B2B56403246955BE52A6B412F9FBA2D7218262B37A194EC2CE4E085 +75CB62567EDC3E7872206B3C1DE655F86A39D5FE04C5FDED2C513695C0926BCB +A3AEB4F2F7CF2B82A38A9BADEE61D744F4268D4C9B6DCE7D296F8B51C5280B17 +92E66A173EBA374A4A48ACA3AF2FF478F501EFA71600D3A397BE2BFC33A9D3F3 +61F092773A6268604EBA19A5F15FB29B1B62CB959A1E89D7D7DD157CDDE92378 +3D32885DF72AA5F0EE4D26E27D57B9970705FF8A83B183FD04401EE935A242F3 +117BEA075ECD867EF1C6A5DFCA240A5C9C5B7E4386A2D9B4C13F70E6EB5CC38E +B227E25824071EFE927FF52292D7374260E9C0D73AA511AFF68F29ECBCBA6F78 +1036AE4616AB5DA7945C38CE672669B864E55B03A0715B85524A2FC21D38F2EA +5858472E625387ECEE98C4FF8B8C7D0A61226B3167C7B11C24B08206693ECCCB +C7F0CC1E4F775297184102F05E724DAF075B3CD55944D92C63A0B6D795D09053 +A04549A94E420A83C0FFEA5C36FF0DB46F18A0BEE899DF6BE1D1439441AA2833 +74CAF932D46D885D46542404710B08C69943484CBFF55D6D99B372D230F4591D +3F63B87490338692E1E8CBCE018CE47819A335C90E2787D8EE7D52C33AE746DC +7C672A6C9E1B912FB38808F8A80AA1F8778280F94F3CFE93B8D5FE90D5381258 +6D58C8FBAD9521E6781272F0B1C7D54B1BC1B9AE91F963E1D24F98527C91364D +0FF8EBB611871B3B5FDEC3B8518A830AC48CE592C87CED6667D2D40DF98AB2B3 +9A00DE9EF2C0573B375CF75A0C88485DA32F3F514DF19A62E23446F9F16BBD72 +F77A2A779110249E2405110BB692EE96ED5EDDEED3E4DF9C2D5213CDB47C1BFA +20539CD30B7374815937CB03D8AB6D518EEC5D8C382B31943816E860A2A95244 +2F9E111207C3C885746324E0DA1138EBA92FE0C8C865BF24C35C73E5F23B8847 +4B43720A3FA2E411C90A03F93AB3BD8B709BEF081EA76406056DB3D9B9DFC714 +E3D8A87EC7D1C4FE6EB82173E6E964F5F8A3794EF2A78A2EEBDF2613F8FD3EAF +384695972D837A2804A023763EF97442C7A51FEF65D691E0064860F39DB28BB5 +6BFCBD2FC2B26EC33114CCADB41E8AC3B95B42B22848D182C8DA6CA3CF845512 +CA4B6A91B3CF6E31B027B86933990856DE00A4EB68B4B991D8822847C1232AF8 +383736D82ED85647591803200AC8CCEB19FE905347E44029DC4365DC18229194 +9BF46181AE32B386AB3787C9D0D3A0A9E6CF8B200FB6A5BCD1D7FA7DCB721E4A +C529026DBC56EEAA9623B867479A96317D435F733D362AD9789127D2D4CCEC70 +746A13929DA61ACA45F25A9CF4C8D5FA64F0903F307B37C7E69DD5C472AC5072 +46FD35E3625A47686FBAF266700063A1C01B4BDD1B9B310B5232FF2FF1585ABE +472E2278A1B9CBA4C6AC77CD38FABF692EC3441D1AD42312C32FAE78D9D41F2E +1CBD0471A8F9569C883103BD326DC57D31CEA08D34BA326D8AC3C275E62F6C2A +FD2961237D9DDFF289BB8EE99849171AD4EF68CC5B3C2C095688B66DF84D7C1C +B190F60B4F3A5889CA429749C4D32D36C09D3484710193D79B9B3EACA286A7D2 +6283A483CB46286EE0A9BB4FD38961EE19AF21360E4CCCB8F2BECEC0AF121A39 +8C58EDA6DEE806424A9F151E09844D6665E7C6BE941D0B9C6713342986B4064B +7DB5C2041D5403EDB955A9E3CA7A26F5EFBE6E43CB9CE348EA8B89AC8F826985 +BB71E57C2762C1002D16634DF8773088214567392AECBD0B990D4A94887DC1F9 +05E45A6E47DF0967A2E0D894C2668BB22435EC09D72E5CC4D215864DA47E18CF +ABCDA1F158FEF7D464D473CB96B2FEDC321C756DC701F5C6ABEDC02D4EE27552 +546BC4F4C6772F30BEDA350762BBFE38C28CDCBBA3BCD331F13C5B69D0E77A61 +70E268F1D4B7AB7F58C5E04F1751E4DD3D4F67EACD436BE77B5EA62F5A4B49DE +2FAB14BD90C887E46A2ED4551810F9CD3C55E227BF0DDC551716EF45A4A22A1C +39A83A3B13DE7AD5B63DEBC3E335E3704AD95E94271C4496607F31D6420B799F +0EB54768E2BC40F003E922161BF8703E556A0EFEF88912B215C17570FFC5B2D8 +0E356F46A89D043BCF250FC5195CA95B8053CF87B6298FF3FD822E244D50E153 +381D73F8BC5F26AD901614682E0D74320E4DC640531F5E5B8F702D27757402E8 +33DC86155585A14E30DB40C4929D70140986BF3B89E2036E6ADC3442C0D55E06 +2CDFDAD761C7E66D36F5A15B20077A78B66DD73463938DF18F80DCDDCBFB1BAA +F487936402C818C8BF95F015438E33FD48F1442F1386DE674C2E6F97A069478F +F0D54C3856B0C3A0A132269185F600927CA4D7914A09C01C87146131C2AA1CD2 +823D9C0B0D233256F1DD5D69D375138A2A0A253C2F42CB9955D3585F7DBC0A1B +2D06A565E736CBF058A6C4DAAE27CA9570A634A2901B3488BA0ECC21BF4E49D1 +A83F4B69CBD26B5A0FD680DDA60521AD76FAEB29D0724C0A871276B9BC827E2F +5F9150DC16AA060BA88E5F1C5CA9A2828D73661EFE9566027306C786600CF0E9 +CFC240F43FEBC372F1CADB5E3F384644DEF2B527C563094E1F9233ABC452421E +C8767EABF55420CC812C5F61CADABCC6E1669513DB932C13D3F1E3F88352DB09 +F9C68ED418A9DD4418B525F880402EFBD562D284EC17F2C07680D1A9AD9007EB +369B2A6B80AB343E8D0F5F78F5D188F8247C0A408651B2E10F6855908E36EBEB +88CC2B519493C9EC0ABBF647ACD2FCEE4B184E4148C46F02C3F237E448A263EF +78D32BB0374E832ABFB96F256553E88BB39DDBBAFD1D89F33FF7E2025219689B +22D3B8EBB904BB928CB1E67456D163F9774308744DE7A39EEC6842B79D9896D9 +8C4D7B9B7ADE9319B2A0F95CD0373AECCE3B38F9072EB86D70EAEFF2DCF0078E +EF1169AFB77ABEBD2B1818758E8F6612EDCD7A2C9E8B589AFE944BD226D4263E +EEB12DF697F9E39BA6925BCE4FE4A96A8CFF527C70D61E78B3D6C8D6FFCB26ED +9010DE3561F65798E186F5CCDC08808F4B3E81F7719CC3EEE7488A9BF555A38A +4FBCC99D588641BBE0627932DE3EF3C9ED8E32080536DCA229B41BBE006A4EBC +447DB7121310F673D858E46A51FE0E5D61C8922C000B0534516089D8CA8A2CF4 +64AD68D7D6AF6A8E340E8CAF8BBB11A67E3F57ABE586BF27CA459B99DA1B9870 +F628A560B8B129F80EA0482F6C2EACA33026379BBF46A618D8F66D65BAA725FA +80A8C2EA4B1BF9E57F37B1C076D8AC9083F955C761F9DFBCB2E11A6248C7DCBD +8D8636A7907A6EA8ED9B7B6C6A3BFE846823B4AC8AA3B0C3BE3BA8BC2687640E +D64C2F8E8FD690F7A9C20C8DE516D18013FB635F3F28CFCCFF76EE84451C8758 +731203976FDE971BA80F6E5353D19FD21D6BF932659FFC2805C2783039DA41CC +8CDB1254445F2F2590A31E05E6C8076D2B8A73C45E3C3F60BC5231FDCFB536A0 +004F25CA8ED2901FE74CCF9C5E829B05C8EAAC6A53FD83DA826998863DCB080F +DA85C6C4D28960B3C0ACD71F564A1BF732626B6F55C3A0330EF8A63EAD40298A +6CACB8E2EBBE31163BABEAEEDB6769AA4E337AB0CC12DF0DD8999119E4C8F4D4 +8F9516944D8A6334F85FAFB573E29AFAF476B100EF0997855F61020289AF3E62 +20A21D3A2723D77016F982248B408D83A92AB9F75DBC32A6890252808F6AEEDE +ABEF45867DA4A0F61A347D4A3CA906A329EAA499B70B53E4C056DD53F8E257E4 +1C96E69FC4876E46195F82494D322DE3779C49C2AF461D4311FF54A7BE1BC4B6 +8373252174D381E0D53F3BFEF77F279EEA6062F35DDF05E3A177478C9FACD4DD +FADD039C039F62DEE1B7A76D200015F8DD8E99CEB625BCF99FADCF45ABB366F7 +4F498CF6A50828CBBC2ECCC74DE4830ED08047B935BF6B07DC42D8A9D111E24E +A002ADF2649DBDBED9F9EDB1C3B1D24C285191CBBD78AB420996525ED8D8209A +36F613C68C1E371C456FF57FE8FD7BFFB6E55B168ED5A2E8056EBB3EB4DB4CCF +313732605DBB0FB5F4DD67DD781338BF41F9205329A89F8DC697A6ABC3DED156 +07045AFC5DCF2588057C403B5E2701056727BF4CF6F0D3D3CB71D04EA02FE17D +92237C3D3D70D739648BFA82234879B24356FA543E08FAA61EB0CF6DD8F3E81B +476296B2B50DD1E7DBBE2EF1A45224E44592FAC15473A11BDCD533964E6F75D4 +0A38ED44F10FD050DE539213F78438F7C5A6B6186DD06E49482F924A4795DEA2 +323BFA60B94EEE9CE3DB8A1547D7A6468609DF5554D8FD1F69679EBA584B4BE7 +F24952D7189D4AFABA423F80CDA52DCCE609E4E94C3F932725071CFA2091D41A +1CE3979F8B209A4660C22413201555B26F62DB50DB237D0E6DFD31C7FAD6E70A +6296F807558EC45930779B7BEC538A8052AF673A7E68055997DD487BC7C35628 +688A2972DEA3FA3F1C730D6B8820DF4F524493B37E26A8E16DCA39AA6DDE2612 +FC2C0453585C8EAF1D56633B98C875E936B753BD23C83FE188E64EC7ACB01966 +722D016ADA6BC2591C9772A6BFB6CCA5C90189C633C5801B01628BF65F7AC2C6 +BE8BA93EB59C084609E63EE0E9DF5CCCD180DC4E31999D501CD60CAFEBCCF163 +E43610FC37873DFEF55B42DB0A2538EA7D20E51721CEBF42A35C914610E5A827 +7A669A201DA41ABACC7F978D434444F6A11C4E35363E7136FA8B9FDF9636DB45 +93DA5B156E3C56B377390B977DDE5EE8468C2F0B8EAD6004782014AE61487E99 +C47D1DC5F579BA7BFDEC44F310B9B49CA63F6DF29C2301085AA2E37F74B3AEEE +6F60B7201B996A7C66E0B2E15FB85C2E7D552EC7E68D937AAC4375C0170BCE75 +8736E096A42162C9BDC014875D0B1D057357EA1DA39ADD236A97FDFD3DAC5A6E +01D6A795F9312EA7DA2B62C435BDEF2824FE29145941723005E8C6E420FBA22D +A809F32FDA97AC700A1127E973A03F642F5DE67A22CA8AAEB267F221C6CF7726 +0EF06A3706577ADE42635631351C904EB2423B73B86EED81788E967171781B44 +F45438E630DF7F5298DF1CDB58A3230AE95F1C046E7B342ADA63EE0C174C9521 +F689C09DD0BFD3AF44700DE6305296BEF3B7FB72A9E34E0B842664B911B092F7 +6672EE69AB145767E60707F7C870B7AB7117E7FF50CBA24AF2445E020BABD84E +F62A90114E68ACC86F56DE0C04E649DECBEA3DBB2E5CC46FFC218085FA97FE6C +64A710E7C83A5D7857C9D1A491585195227A916728D6C1D65F381A2A8D1E432A +2C5BD3E84C9472CFB58C1C592AFF7AA54AD78C881E492AC37112816722127029 +A1E4BC97FA84322EFB50FD31EAB0987219CF6777B667DEDDDB48BEF35932F107 +1A79C9C709028B70419842CB112A906FF42C0BFCEE123AF95149E4CE27842C5C +2B88C96F84D2D1A94C87FA0E3046EC508DCFC53C4577F5D688342349201491E5 +11F49C27C9B919A212F823A15F2D855F2F475C5E9BB4C6F79EB00176030FAA95 +1762C0A100E78309079CDE3199721B184DFA3F457C7E2689DF33968A09434714 +1AD506661CFB72E3EBBD5CA2346B469BD62F76E7BBC0581A708D05C1DADAE9A6 +C8F0CC0B3099443CCF46CB4DC451F9C52247FC5154DEE350E912B100AB1F14DC +CA14FCABC874F20395995B78682F72DFB7E665E782524C575AFDABB364DFB521 +FD15326545EA061E304318C3099AD4E5AC2018D72B459D7C0C2C6126A1A526ED +12026312044519B54BFC21D3BA3CDDD85018920ED59611CEACE23E946F690760 +4A4AE4955F76168CAFAF359527465BF16D0894F1D1E7FD1F170B5342752715D2 +B2168EB1E9D619065357683A10F6586C32F3A4A6677F33BD3D1DE5EDEAF226F7 +09204D0F9E6863C0BE3845266E23D6981BEF659248558D449ED19FF8A39F3644 +787FA1C0D224E9FD0C1410329DDF2702FDFA303C01FE415076C1D1FCA8645DAF +9F4EB0DB16A5EAC7876006E6C71C1F5FE888E50493475B97934C2ACCB6B9264A +82AF5946FBC284B3F6468A51466228CDA775AFFBA5C8C5CDDC178E9CCABB25C2 +897159B87DF03926ADA1AAE84955203F7359574B2BDED2507D662F6AB0990778 +DB5A2AFE661A4BD09D3FCB4A121E3F625CE4895B52328AC1739B476B3BDC51FB +0960B0CED4F0FE17ADCB2AB1410282025CBF03F3AD98CD7ACB9E6D171ED5FB5C +06E94A37D77BA61F010A0D2853872EE711DA7B17E5A874BF14E532D888A4021A +85FC21E0EF124786855E0AB86FFB4F8BB8EDD0066D6DBA8CF0A3FEEC357A8C41 +531F789B9A97D64F2FD32F3598C8F095B231DAE7F0A245759BE1FB6B4CE66638 +DFA07913FEFDD318F79FC0593DB67DDB6DCD3BF425D7686F5595F35E6E7FAD20 +D7CFB955946E2DE3580643C2EF4D6A55B5AFA1C3712C5B589DD52EE8C8B058BA +F43FFD6487C9FB33631E2D5D914E9FF192F2621DEFC6E091DD55EE67F825B3B9 +84A1A30D94D51640EC3FEC7E2C27D3C8A91C732C92B79B8A0A36CBB6E3DED186 +C779DBA114B1C32C9736DEA95E9D84A7133D6509C37988A9990DCED7CAC12EEA +5EF98ECFEE6A8B6322EF1EDFA9BB2606CA3442F5D9BA99EA01FAE7EDDD761185 +30C9E5A66071A7DBA5FEA859A1A774261E1FA6AD816ED1D52B0381FC7CB68B2B +95FFFEA0715BBD86FE601397436DF6CD99E6C49BAC44231D6304B956F4FEA9D4 +90254D0B85D0F09452F544143B86F62BE70941CC751FE99AFDACEF3895DF8832 +C91B233C05C095C501454D103A4451F674148E2064C5015D8A5D79BDCAAA72F5 +AB19EABAE6AC640084D27AEB1176A340A1C9D36D3AF0118FBA2F1178CF993A73 +530B77F5FA31B09CE36792F024F153D7CD713F3A6F66CDBF3C81F4433B508F73 +2BACA81F68D94B7E98ECEE64FB023CC3366BFE4D826711710DBB5880CB4DF95F +B8512EC1F7843CBDD076228D148326CC64717A6E9DBBF96BD324DB30CDE844BB +C2D06EFAE177A91AF4CB1A21CA5B4C583641111682F39449AAE476588E9C2D86 +B57AB1597065A98F2C88977249C80BA99D7EF58276C01093188DFD2CEDAC61D6 +CACD64DD28CD502881D30E137838B8BA1C056886760FDFCA271F03284D68CB91 +DE641BEA7C7EAE33C2D9039CC3ACDB83FB1ED13C45C0B1BD98D8D3CADAF119EB +95FB1400333D2EE94A90590C86B70758B295832B4F1BA60DB787E8F12507F7B8 +971FDC4E6E66C5349D0102B7FA0D331B5D0662B4FE3DB2443716730A33E3F20B +E70B1608FFD5E07FC9601BB46B30E7F81D2E542A22718D4EEC9DCA1F4DBD9512 +3306DF4C02C296953F4E33E44A8F84C92FC373B02284F9060C62A34FA98F76FD +3574AAE0696FC136465C5C6F81F15A63950D1B9DB8A6631974ABA413D712B4E3 +09B6125291AADF1D8D4164EE26ECEC1AEB0963A268AF66074797CCCA4FE1A522 +A04B5C7B9A0C066EE7EABA27D325DF0F6FD8EEF1911CABF3F0AE82682B251DF5 +6038F4402286F239F79779483230590C75EE2D2E9CD543DEB5230054BD4B51A0 +5907053AACC512110E0CDDFD04C81B4B91389A2FA3AC852DF8F0748C75CAD042 +E476C754EB95912C06B8B2769C12E223E6E90F17906A065504F5EBE686225628 +910CDE2A337A8EEA09371AFE39987766E2282378912B980D6229014CB7BEABB6 +B6F1BED185524A6F839338690B4B6C0F878949AB5153E235599EDB18F3833F3F +E34DF9CDC70B071382E0124B12C41742B699C5237BC42CB8215A33C8C4BD07E2 +6EF964BA42AF2EA1EADEC08AD8B61695CBBE6677BEE12BC558558DECA4668DF1 +7E4EBA1573E6C3E0C282AC8D02FC2268D05999DD688729F3F0F36AFA2E3B5259 +9EBB9B569B2A3369417AAFF07664985FD115ACAF775CA29A7E73280F22ADC6EE +E73C3A02D169139346C89EE126115DF935E5584F44FEF6EA01CB260405D170E7 +072F78C1BD6A170372CEE5F5594E4237A24FABBDF23271CE408C335B8BBA0C3C +FE750631A17DB096B594B6C033ADC43A65DD20597259E25BA79FE299A30CA2FC +FC6FEF550769AE4BE7C0541599DD68E0DAE7758FD4739E75C3F2DD8AAD744DE1 +D89FA0176FACC6EFCB90ECFC2BAC8FC27E21449B4B83B988AF24B2E354A1ACB8 +29E667D37EE2D075DE45C25091E497EDFB7A553605C454053E1ABE773CBC3661 +D002AB19585E0367BEC7D54B1BC1B9AE91F963E1D24F9854D77FC108ECD290F4 +4490DB9C708B0954C8D030D2E70CF9A8E0B034DBBDA5157CBAA95E0B879CA6E6 +D86A700CC4DDCF6896665B61BF14D5A231A09979BB0513AE174DEA4B34C75EE3 +6342942AAF901661AD78BA4413407E8E242CD2DB8B2D8CA972455534CD88D854 +18BCE537F8F09E9FA393A35D8AA21450EE3D7DF1CFDF7E0CA4183768673F7BCC +AEC30756DE57D9BE9FC2225F392825C68942067EABB568DFECD6E0815C0E438F +9645B02431E34403FF6A5E3EDCB6B9CB302C07F8161B4BDDB7FF0678F0A847F1 +C3DE9F4BF954AB022B4187126B5AE436A798348585261D4FD4D9F110CEE18EC9 +33DCE7F9F228FCBCD8DAE80DEAE0F254DE910791DBB5E08A39F1FC64176ADC20 +CF6BAC140EA51C09226882E8CF3C022BC1A2EED09921102C67D59915DE021415 +355642A5F20DA57681346B22A6953596824A176CE489658B4AD1CC0FA3D7DFED +E05E58CACFF7998C28D5DB4D195E4BCD13688EC59E6191B61BEC3C37C1D52D3F +1182C98D47CD1410C601C40F6066D2AB59F81595312D0F370C82E423A0BB25FB +F5EE455D3FD0F6DD6FCD8BC85E3B8E4877E4A4499749A7126372E76BCCD68832 +7923356F4012386A097AAC9BD5C9A0B72C0CDDFDAEFAB79879360490EC0FA388 +AE91ECFD67C463442638261697EBFC3839F67FDFBEB38BB5502A77D3A14FC940 +C6D4703FA3B131CD5EF63244D82CAA7CE4BFFF8161275024FBCFCA10BC18F936 +A085F6692F098867D4C157510EA2753F0B1E75F67F2B8295095B17088752911C +61704A9CE3AF21ECB1F931B95F0AEC70B39B888036E2FE8607D49D48FECE197F +8DDAFA288DDEDC31F47790B0071FFA27C262D165E998227940EED0C34F6D95D7 +FF795482F7EF54D2A06E2DB42F8F4E29A37D3BFA1F239FFC9B1E5DF302525D56 +A72F565DFD196AC27270E61A71838D96BF128648D193B18CB834F114EFC9D256 +061122F97C868450EF0D03B22BC800235E38CDA069251A0CE2690805ACD606C0 +9D5BD8A605DA24D49AA47248A81A39793CCA76AA3AE79E930331BB6CA78061C4 +CE3E72D2BE1D9D2BD275F52D2032CE0D337BA4F6FEB7A81C329FA299DD94B314 +F9A36381F593D01036549F1D6B75D752E27BFBF6D17409431407C8FCCE805938 +270C2E71CA2C60C50747B072A2F7E6D9C645D7D3B1A3F931210CCA673B8DFBEB +5F020C804FDA0487319E7372E4665FE59E91D2B4E32B4969DA6C2716B28F867A +F11113B1668192D36C6A6B9621F5E3C55757BAC2F85E66E19C944BC000AFFB7E +ADBC360755DFBF7890A5061BFF6289BFC5DBE6592148FDDC519B603BFED6F1D1 +CAEDF7DD625D4A70010E537C38BBFAFD33E099CE574DDAD35470633F2214D0F0 +2A31A2B20F4C03FBBBE1C4B0B00C0CD02F430A18EAF0655635F15C9397B97292 +A1812335ACB32F415F7459CB44876CE406261BD738DF129D14BA6436EC2FD0F6 +41ADAB809207E1DBD900A74CBE104E972C5181D185A4AD844FD3416099D5142C +53B1064BCE1E486012DE9169A2743EB77E52C052698A7EB9D2AE611C8C37C889 +8C8615CD75A5242FFAC045ACD94E89814A7789FD9C2FD58F925C20BB512876A0 +065877E4FC0E664FA678A98E5FB15B2852D3BFA57E417F1D87BCF2BEA719597E +74679783C1316CB7798708FABAB8F0B35952EB91D5195488EBDEBDC24378905B +8B634A2B233EA2F55881B9BC5D60A7D3A58E09065562D1DF151237137B5A5A86 +F511623B6DCEF5A712BCC326331F40C6AC2DF9A91AAEA7C1A3F42CE25D70A165 +C1F6979023275AF5D30C951844B94A006DC9D8CAB7AFE20F344EEC9B918C25CA +1E9C010D3C64D838FDFC9B68197E398C5DDF6D83BA0AAB4857B6B5B2AC21BF52 +52C84E8769EB2CB88C6BF167AE1472CEE87060FC7E391C52D022D2AF881C6083 +22E2F1C8DE42D6FA62E7006DBDAF8EF0FCF6EBAA9E03FA13694E9F00CD4FB093 +0F5F8F9C48091E72170D2451E82A2601FFB05D90A5A823129903F5EDA9FCDABD +706BBE5A33C6003F23292F48A2827B4F3C0A46FB47B6E67A05EF66347841110D +F28ECED7F2D86E91B0003D652A507EBE22592DC9689459562C9A996748926115 +1FEBDF3F1F385260358504330449B6F2B5BEFF9DECE02DF429857C99EDB3FADA +80F28D421998F8DD0DC2ED0F38588227F4EF9EB7E61897F93662D3C124A5AF06 +00052CB81A174AAA943353E49FD4E764B32671840B630F4248ABB4FDA0EB69FD +636A4A1C5FF469647ABFC84016D55A0DEF4C5AD393C631A3DC61DF6C95AE4A75 +66999968A3732429A7835613D02AE3865A34E4948BA21248B44E5006349233ED +E98FA51EEF5326823028A81263A9B1A334176810BE7699FF1F0C2F7BDCFD89DF +D064671A0CB9AD881529AA1B655BD339B6F99A90276FFF3953D092EDE14711AB +32F15930EF89656E64E8E61B4C0DF33B315507BC8642F48A03A679E338061C7F +38FEEB2FFE370EFE6F9BB7E8DE0917D306DE7349D32FD60CA609618DEEDE0DEC +E41790F54FBF5A4F0F33BE8198FE1254630707400C99D41B5C4A40A585804A8A +79813B8303BF092461159C6E265EAD1A9B5EED2E397CBF0758FED6ED30FB66CB +45E6F5BD4E4ACDAE74A3E89A76968DC8C50A59E6874A40ADEB9BC084FE7D1A57 +FFEAEF857C62438B18CB1D6AD0E04891CA92D786D0716F8D8D46D5D8F49295E9 +5FCFBFD2C6957565D524F745A1B9CEB4C3F2D261E3097609AE5666A02FE509C3 +06CD759B2F6F443D3AE8335A8EEB465AA1770AFC3ACD2FADCF15D3EE89F31607 +29306E4F080CE29AD1F7AD26B950DCC80D0AE2A5047A7B6D816FAD90B6D03376 +90B37837A7BEF1AA91F6F0D712C19865A3E895FECACDA7EB54BFFC1C0AB50AF9 +887D75236DF77EAF38F936E27FD9D44356C0129882F8211A177D13FA1453DB44 +80E2B894934F72506B854A6A75B1C69B074B963527C3814C61B14E6465DA6E5E +D754AFD380BD36581D9566AC866281A032BD7320AD37DDD4794B9501705B9C8A +BD0E1D284823FE40329FF3103C0EAF878CE9C3969F85FF7FD73BED3ED3ABBE9F +264DF5FC0C8F36962B20E2B2A0B0C24A136CB29E1EF04F55219301E392ADA904 +567791416861A6D85366B48EA527A6BBE9B4E346F89985CEF5D7BCD8AF11C11B +DAA5C395E558AAC41DE84643E1966D27606AFEC9F2DE4BA2E2353C5CDDF7822A +8B47E423ACEC79E8DA15A08ACB505EAF27D61E85C160B63035E27F66FF588873 +375D3FF093BCB5DE7348B1CDE901A41FB9B44FE2EA7D8506A9FA093624E311F4 +22D5E117C2665FB96C8D5ADCE25EF35651A2DF66E65B2DC0D27E003771D04D15 +0DA35FE0BDEDBED34E0EC10A0DC546841B26C1DB998F9AEBE37DE5068418F41A +007E61C012F9C9BE672D5E887B15376D90BA2035C4249B95BBC859B0E895D32E +ED18FB984B669000A08AEEBB11546ECCA77683212C88CAD07BD342DFBAFB13C3 +2C4E920FEC8047AEE110735BBA4D7398F96553720C98D0DC07FF5E8E5B9278EC +EB87E87F9FA03C6C4F70AA4B41EB7B77C59EE90AF4F02BBEC77A0620F69BB58C +C3CCD29BF15211ACD684EEE8BC2790E31142F43DCE633AE318FCF4DBE4186EC6 +EBF58544822F95F3F2292E68582F0927DAABC7FE33BDB67B41919E08B8D8CF96 +DF930E90B436FC95D85402562F8C07D664D3A541581C2E19404159EAF78BD044 +8833E9FB29D2AE0F97E685BD4C50D434F0D3F1D5B63E099BED65AB4FCBD8A027 +72E3017D59BAE248FAA07EB90AC97E3A9BADB8E3F7A3E022256A83686F17E284 +CD1C0BB78BED316DD9911D646094852E4CB5F4B180619C2643EBEC15D3797221 +7EC944B173EAF093D7AC1107B747249222A49EA47315E9810EA5B01D2226E2C3 +DC4BCFCC14597541CD6B062F163300FDB122230A273C7ED5C6424C6D0E69098F +E6BB00AAB2CB55882EB1C0DCCCD03F19592F65E9A43F1E7D04513F0CF0CC97EE +5053AAE9FA34F8F8F603AC27C1B287AE334A2229CFB8E80DBB018CBE2109D0C3 +55E0B6D017520385FEFCB5E10272E1EA113C2CB0C558A62E1480D636111EC95E +872CFDE4E5781D99113E8F117B57FB4062099DC0ECDDC694F4AA9FE151668A9A +1263BAC18FF3F5AA2C6FE6B8AF8530F236B5E7D92598894BDD2000F77061E57E +AC9D87A4ADAF06DBCD0E833D704FC0FC02B0152FD291ED76EE5D5502B2326E7C +17ECC2047D73B7166399FCCF27C7719017955658B70FBC3523932F3087DB2FF9 +52E940444319417B21881B84309CBAD2E2A78EFA491038CA6094BDDF10E4EF1D +74A2EEEEBE4B9D36E3BB7AF6E132DF6A9819C5D94BC20933089E4A39634492EC +F9B7B2A8C3BE8D8D1C521A5FA4C54BB390512E9729D4DF95E38519C4F0B5872D +1447B9199C4BD168C80F1599D2AE7ABE55F65D41777A16C5C5CA14BF20E58F19 +2AB45EBD660EB9526486E887AEF1B764393560029F7E58E137E272EE83237EA0 +BF7CC738340788E1B9855E3E8B14A3150F0D768B946A83FE1F656219C5BC07C8 +32675C832D09B9EDCA941C2935257C5F594C7A4FC1B9B6077F4A4A80C2CD8A2B +FD280D26306D831FC61B81983AD5138BF4E9E7181F7B00772DF59B5AD0C46F34 +7701E20139DB725B928CAE058DB16B1789D707563FCFAE3B2243051CC1AD69BC +0C55B3A80E74170B20A445E84C3001E1FFC6DA0E7BFF7C5E6F2941EF45DE211D +96ED05AE257548989AB682F0045206081D834A5BC6CB007E05B505532D4969E4 +2D4B03D048DB2C1FD56D534A1A55412266A07DF6F1D6C843C41C12A984EBAF7B +5761C4F36A2CDDD052AFF96E1A916472B4FD50EE65350C10C1AF7AADC753FB52 +BB72746496AC58D85B889CDB0419C521D93242906B60AB013CDE91BB7FFC3F65 +05F2B5BEAA0487D4C4DDF1229657D8A04CE67F3EAF748666AC256E08D86A3CD6 +D7BA771EAC40C94BE94E2D67BC10F10C01C155C45CFE2BAA6B33EF195C2BE9F3 +34F96A91F5AC437BD61F2B882EEF6944BE9403A924B58250ADFA4D077BC2D6A4 +3C97A5C3FB6E365BB6B3444BD5F7811B2191CCAA3FD23174885A5AFB312F846D +134CDC06CDAE238A37CA33D91C39E1CF428488B20F0DE8C7D5CFAC693793A357 +0062196D517FDABC6DF6BE57DB5EE3D7FA1F1B47D7252FA763F2C7D00CE84B1C +ED62C3BCD6C11AC7E937C666A21FAEF82A3436F946B1DA089D9FEA42B3EA3A4D +C6F1CA7EC5E1118BCFC99D9A04C99FD7500781BBE3AC2DF750761172B0BD746D +26A6D5DA966F93635ECE5EC691744235F87FA42C305D57CF40CD7D2B3AD39DF6 +8A41120E089700260D3ECDAC591BC0C74E46B8A7D662D78B842E617A6A67A9CE +E8F8748A791EC0F7CA4963D4E5CDD513B61E2F91CC150D7E9DC66C177D408EAB +2DE97DAEE3BCFEB115E39CAFE3CBDFEA328FB1DA7AD5926CAA496AAAE7FA9F99 +F325624D245A0D38DF2332490F59D290A6B1CFF05F1124492607F32700442A8B +E9D9EA84EAC166C774902C6E75C9612B4F82D53336F28302E27E83E0A5F2139F +99F952911092ED7B7CFF514E3D47F473376E6F80021FCF18D1FE39FCFF1DF953 +7CFC422335B16B0D36D421668F8A0EF18BB4C10A26E9D430040241A656760961 +D3CA3A96427CFA78E3E235B3F5619666F2D08CD162BC6D32764380515F7DB21E +B651D7C033160A1FBFFFD16E1AE654656800FB4E50053FCAFA793A2DAC04FF15 +80C76179541D9271A3BB26DFE6462588DBACDA47BD8668B0FDC65DEF8A42B16A +EC13D6876D34DE24C6F7CC42FA632AB941F3C9CECCA431216D010DA66E3830DC +48814626DBB1385121AC6BCB4D0DAFC12AD4B08FFDB7559926DD78ECA64BE4D9 +EB8B0D0122767EE2209868B7E14251F800C99CC15803EA4759833B1434F35CD6 +07655F5FC7907FFB412981721CFB06922756A516EACFA5A10F9BD97A7F348AFC +5FA1E1A53F5339ECA4A26A3F1F3988D08EE152F8AAD751CBA6EFF11BECC39C6B +DD6FF3FFE4003141F7575B62F8B72043F9B5227139AD5592BF3C6E3DC31C40D4 +DA4EB01FA73A23BC59EAD179D848C9ECCC57BD5B8812A680346286D67453A88C +AA1B61A7DF393B6DE125C8DB17F3600DD858DAD7596D67200B713BD33E14B409 +28B9760C10BA3A251F39EA7047907B95DFA64A129D9AF703AA967FDB58E3AB88 +39F8E3206C40C45150952809F0FFA24CC20CF0EDC22583BCC31BDEE45768AA59 +55DE29D71C6FE4B17A3B4062DB1815CAFE678A1BF50838DBB0F2F1F5536779AA +C5E70346A1CB48722A45982CBE0E5E386A73EC0620F7FBBFFCCBB14DD336D3D6 +EEB2F8D8ABE66B397907B2939D2ECD65D6A8978A80D27ACEC8022EDB14B139BC +55BE8FDBA14DBBE45A15B8F387C4A91CB35482F1E1E7B3E85511946E377BB415 +1807CA9819B3E8B00E583D266182257EBB6CCF1D58B2E6A009F597AD811430B2 +EA4AD3BF6FE09838F13129AF954B185189C4C7910DFAB1C0AE91B7F548B35F6E +1DE68C89FEE712FBAC9ECD2E80E04F584237F3C5D94626CFE82CA87EF276EFD8 +D8DCEED3619454EC1FA9A65C233792043653F2C6740DE695A33420838379CADD +56D8074F91E9F349EE806327014B9922DD9EFA72C4E03B8E82ABE2D6930F2A16 +78FCD683B8E2307AE19057FFF0D0A9A066DC8C2EFF213F7A0027255B19CC42E4 +378E9D70525435E24BD5B6857E3CF6718850F6D879F5EB6BE2A6F5016467BFD4 +D317EB20C7EAC3D00A5991109AA2C4D370FB268A04E20F19D5D36A71271854A7 +00B3BB72018DF8FC3BE588D895DF8E0969E8441249456D6D91D6CE5A94F3F07B +7E86D02E3D6ACA702CBFD772FB6A2F601B86F31461E541142D9C93E11120CFE7 +53171FE9DBD8B225D9598739DDB6F0136BD0DAC8B31083F0D995B0DD4BA4603F +BC50F69F21B87AECC3EE584C71814DE5D6F113C0A024A9D04045BF7CD31EA2F5 +C9C4119F63586BF19C4BBC1D1B0ACF45BC1BE43DE74D713F633357A645CB2C62 +25936ED33342EB4D8527A8DEFB1925F0D651E9FD52A8280CB720B96100C899C7 +DB8C7B80671F23D24FDEDA2EA787D478005F1B5642C3363C7BAD4EFE1604500E +32CC9525447CE44CBC56D298ACA6E4CDB7BC177F65D71BB1DB52B8D85464B9FF +A83F47A7136582B99EF4D4785F1B69DD174BA2E26E0DCF4AC2F07B8D385BAE7F +4B91D0F47B3B1136A8239C5D91997C17D0E480048EC33B2E6AB4EAD25FF1A49E +0AC044ABDAA4709925AAE56D26CF8FCE1FD37EDACED156A4043367BACAEB5A67 +5A16D5E4796C44B606F0F5D786A0CE139EDDFA258F162E279A07216707E5A8B2 +AA27522F850ABA49928B2C4C7AF3DA006F63C85148BC56D60F71F0AD7129C305 +2062C4A0873EE241719C03FB10770AC018B95AA5A4BCFEA7CBB48DE129C391BD +2B517065FA3023A6E8C34D308A0275AFB1127573CBA14E160E5EF8B688F5B0E5 +20E9E932B35D3DB5D517E75BCAABA670F816DA5C43EAD317EC94421ED59CFA6A +26463B0679345E4244AABE4FA0696C30817354C451B82BFD041BEA70C4874D4E +8D46D0E9F3A710B1C4CB01FAB3DD3FF4BAFDFB09AB9ACC8672A56B16E2BDBCD6 +9A5BBFA429B84E875D67848F725601C08C940D05489401C6C9245D2538B841AA +FC418CBB7367F8A169F59DE3145C87CE651BD6FF83D0D7B4A8D4FD5F23DFD053 +3BB400FAAB809EAA6CDF6EFF5E5A0378D9BA6612B65E1EF690D278E63028B02F +689FE6352E3BA3FA6404C8F60F7494B1C0059155F868A70CFA2384082581A428 +05ED4496B36FF1A678123066290E34EF48E77E0C2A4D7547479937809DA2DA47 +CD3B87A29A2327A996AD899D591D3CD610A818D4C205BB34988DD2D621852C51 +11D5BD2AF85DBAFE41161EEA6F04686EE79ACA5A6E1BFF65A9BBA6BBCD1DAFCC +4DC345A105E5FED9EC8FFFE06D292CFEF3C109523AEB54C3D5AE9D0B8C162E23 +F7CD543B2B150D47C0E785F41454C5E099DF5669C3922895354A7E57E88AE77D +F436FC545D04B8786696709A0C02FFCF7D10447BBFD74E234653D4558B4C2C5A +F9ED97454332C085DFD4A7275396C3407D6C8D4A9682F93162F2B5BB0DBE0E03 +9C26A6FEBF1585251226DC9696B16ADA9C0FC34599F3EC9936C740FA916E9458 +67B8C65968DDD9C98A2050B5272B17C4DA4E0D56449965C691E5D39D8245931C +0F1B118C0DB80D0547E489EC637C700E5D6068EF5CD4ED21330035C212260C43 +D33DCA7716CAA1176804B6C4E05ABC02A4294C9BA16BA27EE9794F24AACF40BC +0A79506655E85865E03E10125E5DDD36A171F783F0B839D2B82515D0ADCABB04 +97882869DE74869923D86AC80EEE5F4D3ECEAE70D26482A64045105CA8F8B5D7 +058A839F2EED2976B79D43621353D3DE1B989DC83094B1A21F09161D7C74451A +2FAD74E1475B6E368F6278343458C0190CC36D859904B2C87CA209B2662712CE +558C9CB511D3C3247113A87CDADDDAF9A5DB5640CF894B56BB627CBFE08C2723 +66790DE0209462088C7E069C13100F3BC31E2165242F42B57E3BDA68575587B9 +8B98AFF0C21721BB6B5C5899C70359B0CCC80D4ADFC6E2AB2A71C1D9476E6EF2 +E5F0ED92E65EA9B1847C5F0B41397EC12707710646347749B500CFD61F0C0517 +F51496A9349C74F458A776F0EA47EABF7DBB1EA938984B0B1BF3DE98AF53DEB2 +4A54E003480C0631DCBE940868163D1B744CE8C53EBBCC1B251B2A353444F42B +AE1D860E3BD7AF9B8CEEB17FE8E63E9002590CEE634A60B0AD05B8D1C8900D51 +F1FDB236AE2547065C9123B17A038E4DAF52950B22D78F3D929437EFA85F97F1 +657D355DADFAE3007356950F9159723166D97C9525090BFCACD9D882F55D1697 +E58D6DC5FD8ADC878D16953358B2960DDF69EDD4A2C442A7C1FED08EDEE3B53D +540CD035E23C95520F7A90A6B00D727226310F1129962B94CC7F752ED62870C8 +1513F9808C44930B1A82E364F303555D53EC1D6ECF4158544345E57BCE03E9F6 +F3632FB02AAA369BACE64F23F8D2CDE78796FB0B33DF127A0C11BF9C4447EC25 +7BB19E6041C35D5D24E0BF140963038D492437D4B593520F1C15C69ECCC8F31C +912B12D330583D98063A455F5323A9A7C9EDF8B8981B71EFA0E4F17AC8012206 +1AED7874EAAF52551CD2D7BA04C4984B19E7F003709BE966B361FD46F90BE11E +DFA824D314BB6305A5549B4BABACC8C53EDF1F5BB3D147A3DE283D15DC356F50 +E193BDB491022524C5FF33540A92E130AD5110B756E80D5205FB783D16FE2A63 +0326614BB7D3DA05673C8D96CE37C3D07A398EA3742E623D47800A86B964B885 +D569A942A9A89C557A795D4131D48F61542983463F589A273DDCB5B6F7AD5EA9 +2F3B3067B400AD86CDFB828B74B78D90B12E0638A0A0D1DD8D645E9978361796 +3E8DA3400FF50B6DFE7D6AF2AEED74F1B4C05FDA43A75FA0E52B37629AB9B3DE +70456D80F129E3699726D36B205ACB7ADCE58B28880746DC6C3589DC00F71FBB +5E1AEA88F32E4E9E118EE5154B57E563D037C0D7D82FE288E0B75C48562F8F6E +65B201B5BCF2875657B4DB5B5C2C7BC22C1E556EB5ABAA5F561F7FA18C118DCD +39C093E99B8C634B3A085042ABD060A6179C26FA01ACEBE2F7BF2A7A608237FE +F8E4E0E71C5263EDF3393ABEA8A927F4C3542D70B1AC3C465CE53E022B852B20 +7DFD8C91C6CA009D8E66CDABE833E7B1DBAE09A2BEFA4B7F7727B5CA1D29758E +2C36D508E718F0D4C98EFB8219DE9B5C55A01508DCE830C446E91958DDBBA390 +953395B4074B1606AE1011A8167088F53B566047E5A43DD5B0EA7380F92CE443 +65D3C792882991F53353A7646F91139E00673761AB995D1F67033838E56B0461 +6BDD1AD0F1924F460C592A515ECDF7291025EA3E942D84324B7BFC877EBD6145 +93926ACEB92F9C26AAEF25175E03CF225B2FF2AE70A1D26228FD381D81C548B5 +C3DB251C23B5C16E8B022D013F43F910675D13822EB26D6FF5DB3870A2604196 +1A57003633405381F60950A4EBA7281DEBBA6F7A8DC2C190A410F150E5A9CE3C +39F5F8C4E373A037E97E92CD0DBD8028017F86C2CB8D7F250C145C08DB19A32E +6DD846DA91B5D251E1B96177A73C30EAAF8FCB5B22CDCDDF0DAFB28AE1C394BD +B6211EADADAF1A74B88FD63F5EBC38AB0ED29F4446158DC7CC4E6B5B072BED99 +AFEF833C7B926D171FD834D4A3CD477C7BF55E20F89356BCC4F73B623002ABDA +B2A8DF1535D9DB4C63D22A7DF16270BF749456DB1D6AD999633DB3EACB719224 +492B020776ECACA85F7179A1145AA53054384ECEC5DCB6793D11AFFDCB55341B +02F7F555B76BF60ED47CE4D0EE7964D0DB2A3AFA604F67A3FD52520BACF3F855 +EA1C401A6991D0583B801309AEEDE10E4D5CAA631269D8990F2B438F6E4D31BB +CE48B1760B8E7AF6CC6E386B3313D83E0B90F1C4FCBDCA9E9AB1BE09034F7825 +6AC823C0B50E10E2CF991EDBB4A2F29DE065FE3FE0039EFA817ABCDECA3CBD4A +C0921F36A353213D45E5E201EDD706E62ECEE9190EA2299FC67A0FCF76B35419 +FB1518B7FF5553B48FDA19F52E6B7DA1D26DF0FFC93F9646A63189635AAB0D5F +CD47F0FD130B60DE82CFB1F09A4062AA964C913D98127394DEB6A57D2AA18ADB +A7BD59102FC9064E436E6EEE40DB8CA46787A340C173D4D10B41922D979E4450 +95623E1228C156CDAA4160A444BDB109A6A6453EDA0C62E0FEA30F5AACB7B980 +2811FC0BAFAB864333A04DE8ADFEDE61D7E06E90ADF903E367556F9F9E3AD3E5 +03CFBB7F6BAF6A51081A2EA42DFF1D9C112FB360F9ADACEFC6178FCE99ED1259 +665FA3AAF7D0D0F54047C950F497F47BA922BBA367C99EC77C4B931E9E05F90A +32197050DF6F08438C13380F7E568AA350B0AE11D6FB29AA8D41A1AA8E86A5EC +E68A6CC14A2BE893F2547E7A765B2CB61245D8AD3E74D40769CCAB5E0D327C74 +ABB770854A9D4619C64104790B71262B10F95B164EBF7A075251A422A5771E52 +30BE2D252EBA5D9B21FFC9CDD22754C91936854C3475F4E45A311529E01437E3 +53CFB6485A196AB8E2F348762D1B4D3E8D025C1270F104BC6425B1694FCC17F0 +9297AC8039FB18CFB73816E6A2A1B8E1C6E1B28F871EAB10767CCFC15DC4FC5D +A1D94BC30FEF3506FC4196D4BA4A167B5DB54835D427EBFD11750D08D58E3833 +93E0A15F4D49E4DAD737861F7987199C332A30A68E8D1163A0A0A8A718C59788 +364DF2962B0A5D6D66A650C3C4A2D9BB17F54CE80D1E2BABBAEFC86B584674F8 +6A879463E8F0ECD36F7702C071F3D8A48B0B7FDE2B7C02ABB45185E779AA4C0C +DCDB3FBB8FF3FB1F30790B3A37BD102DCBB7DCF85C4E18310D1D14CF06339F45 +008C0CFCF5F60424CE7BF7757D36E284CB887C0A667F0B412FEA3A370799C8D0 +D7FE873A4D1E5192D3300E7A466DA9D4F62CBD128166B3FE86483B5759A71174 +68DC8DEED3947B62DAC25E5573DE6A3AF05AC19100BFB52E911D739ABADF9376 +5C1E577B235AA35D6C438B095B190BBC127FA3DE5209195B061EBB38A2A0D79A +D210C74AD0F1D4BD082B4199125901779E9E2A1B05BB2F81E0033BC4CE5F2DB0 +ED30E3066F84C336F7059D42287A924F3CCABD604F18D7A6E33E5279173CFB5B +D5C9EC9A6C28C0C55D44942AA894115CAD0E4311C8F9D9B49250C3FDE854C38A +DD810EB1C9A9A9BAC576DFC71603E884334220137D7724655FAEB11557B7100F +4B51AE05055A0066965DE59500FDE064CCF177EC221ABD3B876CA2B50DAA3FCB +47BBB3D5F3FAFC06BD53C62E411AEB37DDC1E4E7F2A1E1A464E7CB318756C376 +BBF6B24838D01CB853E4E20F54A3BEBEF33777D7AA1B20FD2855A9EF5B5AA66A +8AF72B31C7FF19742089D5BC4C9D2087B68573C86285453F4934EF8C88E3CFB2 +E401908FD4C17F285C448694A4A5C51FA4A5356B88E9C2751772DF9E19724E52 +9EF90A427CD9C5EF6071995065B68ACF53A1C24921F6169BB58728362BA15EE5 +19958AE0436809BC5F07F53FDBD9EB1A1C1254CD92A07A20242FFD99EAE0580B +B99DF8A354A3455614B07378B7A2CD4362ED1D6F4B4A8661808E70296A01EDF3 +B6F0E6FCD1535499012F4762FCD408FFC8C20A92FE9171E7D2CC2B8E585CDFA5 +81249BC49B4AE01FDC1126C7FDCD36DFA675121E99E13A0066236BE0467CF909 +CAB089B930C29E6087ECE7A8D8B70B56B3952A56772FE7E07A8E9BB244FE3FAE +317437454447A5665621E061515D6CE7FF229853693B99EA322172364AD13EA6 +85527A36CD8E9B9E0D649AD8A90A2DEA2FD11FFDEDA95C1602E925575AF81C37 +69A50933AC8BC4CC3438E317CFB65D98D8D2366FA4D67E7A25833C1480B0F483 +26B5096F90CA21FF543024C1E912BB378BD41075C77726D265C57691DAB6C4E2 +EF91C6515EDC10DBC9E82588AF6752443D986E6D39274388182D766A132A7EF4 +05123386F15AC0077F02FC98C1337BB587B0CE84EE555AC65FB90F82EE7D382C +9D1E399929B40EB1CFCA8CC9868199EF7A26E0709166CFEA24A18730836CB6AF +AB691E030E2D6E7C39E64CEF283EEBAF3EA55ABB30D756D18545191EF6E34B6A +279994D5358E03D8ED79DEFCAA4AD94ED8EAD60120BD4AA3302C40C9871D3D59 +D3EA42D7006600355D38D29DF450C5B32E8AA173D68DF69E2AA62FBD2AF15A13 +7913FA05351DC1EED57C94E3BD760E29707556016026F9DA98019242967C2CA5 +60E820AAC377A0DC1A4C341D3D0361DCA32FBE62185E0608A96F6726FAF3FC85 +5BCCA9479E5E6192987C4D77216B5644A10414E9FE5C5074865B04252CEDF12D +9A4DDF6F08FF42E161F7242EDD9E7ABF2F6B54A8C45B404495B5DCFCB5AEFADD +3224836405DDD27168BAC755526FC545CAAEEF824AEC3C4AC644BABBEC13A94A +E00474C4E6B2F7B27E0CD946C27574ED50605E6F1F6E779A0CD7FA99D1DFED56 +848BA952B248444B07A7E84FDE163EA9F48EB3471817C71548C919B94579A1AD +70597355E3E554094141097E8BB015F9619B5306E8818488DBFAD739E0AA8AD1 +B3A33E8BE681E1A3B035DE548D15F1EED8ABB70DDB41B57DECE0EB9362435136 +0C5984B30DDFA8FEE6723824232C7EF7F49EA847C4B5DE57F7857D0AD18F3820 +16A61B211BE01F185B100173B130DC545699BC2C598AB6BA9100EE74BEC200F5 +3DA70C1900B0AEDBB3AB1124BCDCEBE875C8761ED8F6C7D1663D1FBB97DA0779 +A1AF365738033DC15BD6C7561436CE6B915E2CC21D76E2524FFA77F12D47E4C5 +8EC1F5B97B3D51D65C28173D3969077AFD222519B20D6FA1E42FD1701FD47148 +97E4E4039DC00428BF74033763E060111F104D0970A38EF7BD1B26FA97119C52 +7820EAB1BAD2ABD23D0B07919420E7E6B84CA859866F38D5D1CAAE02C7EF5AC5 +6E189D3F9DBBFDE3CF92696EEC1DC359999DCA242D83A14C617A81ECEF2C26CC +7162659C29DE3DBE229905C411F8F1884D6E0F836FA6275C88869186E1167DC6 +23EFBE88ACFD43BCDC7064675C86DB7122C08AF2301F80B1425695209EBAE137 +B3F995C1B20F9D8C890051E03E5D45D75800D0F5437C7B637899868C38300A5C +4AF5833B5599A46C85A20350FBFAC3F73D3803372E046CFE3D60E0D5553D84F6 +A69F9058D06853D8C237D3E9F0961C2B2E2C58FC8AB8F46A572D7E844418B15C +5B4E5519F2622F1192D64FE8DA524EBD410826D823BB417BDC418C29934BB682 +C360B191A71EE81E5EEBD57AD98038B625B8CAD85C1B7786F3FC46FE80F71803 +51F187CE88E9BF18DE2D72ED82ED9BFACCF63A756F3625F480D5512BA94E14C0 +A6E75DCFE80AEFE699CEB05B51D2073BD1C983FA361B29679F25EAC7DD862F9D +10401D4FBBEAB5DA4E9810526C81DBC1F41701D0CE47EA4CDBFAFFE8E5FD902A +503BE2BC96D51E250B1DB7C19AE17BCE0422C7A8C6AEF6D1643B5446914D5BCA +C47B02D749471BD85674E2674C94873AD340EE8AF515BD9F35D8C7621057FD84 +4DC1E99538AC088DE55C21F2EE77C033FCA7BFE416F399FD4616C2FF66A04FDE +23F0FEBEEBB2EE1884D12DD01F2214F63C2DC2AE2E748810B55F11CE082C406E +A5BFDA392453F048728CC4EAC35629A8A16FA9D83132B9DBCAFE63BB51635049 +51FD83334EBBD7B4E61ACBCD7FE0032CDC72D88235936573D13A23DA0B0EACFC +B616093DBA17F7AA80C42C2EAA8AA9AB4C1E03FF9891D58ED090A36BCF236628 +C281332108494D53C463C7630DE349D49FFF5E2B39E5FDB0F64210AD10687F32 +06E2CF37C93291AB106A204547AFB38865A689DBE1A3E7AFA1338A8FEEEF696E +25D80B280028B88AB284D556D43312475976763C925972B448320ACA17DA804E +D9B6A88A0734CFA52CF0681AF41EE3F5ABC0D7D55D8E032B5AD3C059571DBA54 +CF360C250D24C025825207C27DFD3920DDDDFC285141FA3477397A04E77FC50A +3F76F72D5742CE4BAFCBA580D4F50DD8AB9DA9AD7473936D8B27F81F36C8DB7A +B2B2EA7A312A8206A496E60B15371BBD92381FC1A88DD59C117C88B8B4DE361D +E2AC34EEA4BCE91D95381F61369CD333ACC8C5274C9B480A322F161BE0D4CE7E +3708F9A4EC04C0813D032F1CD8A5E439AD6C983F7A66CC31068A569E72A00804 +4542DD83BE1C2157DB425C36CD6084D2D4207D91A85CDB50784ABD78511B0DD3 +550893078D0845A43579323C3D1B0F4E8F443BD60D4B1B28FD27779FCE7B6302 +3F7696C3340F55F9E135A5E7759712FB9E18482B4B94B9455B919B47118012DD +327E8BB1E37922BD349FF4CB947AE9095650D0FF9B729D4F7818C4F6DCC1EA97 +001FA501129D5BCDB3EC3842E7E1BC97B144FE28113CCE9625F8647A8442C5AE +50C0879306AA761A7E1995294B4BB0C39904434B3B5A79E1BB1EEC4750B4C370 +B41B19D15F14CD1B77424359A7C987CF409565C0F596F2C0948C822E05E97A3D +81824C7985AC5D076126135E8E318B9D50E387C972EB2A2E6F4A43F6B11C648D +65B8ABE7BBF90E78281ADE388F1E082FF5C2B87FC1906D04FD6E04C3F88BB61D +6E0BE8199D0BFC5068D663CEE38548561161031824808F275A88505467C4EB4E +9D058EA0E35D91DC5127891504050BAC536CFA9D81B176F8093488D011B29A51 +A6D1386F70C35DF2A0D6E7CB8CA202AC1AEB464476E635352CA28FA153787CAC +DD978D8E80C4EFC841F45B077AFB610A795E0DDB3FAA49D5558A11687B756454 +2549634C9E62FD74F227E9CF466C4959F6E0256AE13203B2B62E53A91B4621E2 +A2C00FE61F6D19543E3EB899D82A6AABF547DACF86DFEF56B19E23B062117463 +D760C0DA7D377A8D84160A16AD4B6C911F15D1C77F9A2DAD206789C1E5ED14CA +F19AC8024496AE6FE90E8C5D8ABE5B98EF11B41DFFCC8B00E10DCC502AAFE034 +9B972D17E1A90E9EDE4FDA08CF09AEDEA50D6A9A9DFCEF0CA1FFFEAB59A4C6F8 +96419A610BFD05DFCF9FFA04BD40A8D811FED9366BDB651F881CE58D348D68A7 +687B4896CEBCFD5ECFD68A7A49ED08D7E2B75479E10148F6BAEFCB2255687FD6 +D0C376A257C79251B1645DF5214D6526C38D3FBA4DCD67F20A1ECB227857B492 +CA017142F52D7DE755CAEF969C36A3DAC3BD89AF8C52662ABB759D071C3C37EF +5C6B7DE644D11CFE0493D2E18FD7C2C106F3796211C93D41669A2D1CD782B2C3 +18882E17498EBA84C77DF6CDCCECB4E305BFAD295C8428467780A3BDB6915973 +C5C113B509F98F924C1644D8FACD3D6CAE892926BFD5E15B46EFCB6A5D7E7596 +AA78F607E30A0BF25CE36CC02B35B7CCB6889CE7A515045B8908C20D3B1078AF +FF6BFF7B4FB7BD0C5DAA334F7B54FC2964B411F577992200D493100BF6FD9732 +BD9E4C75EF71E16F3BFCEBE234993CE2C5642904120D8EA71C70DDD760CCED4E +E712BE9FC7B0998F8A85680EB36B4DF6A7291579421D32074721287FAE0B87DA +3E5DC884C72598F247236D0F633517226BD7438FB8C40E214EC3F304C0176E82 +B9DF4C076E86EC761D842DD3F98B5A66F497CB52CFC8AFE2A69DE4DECFBE77CA +9FB7F940E7A7700A8513A6F72E6F7A41AC974D084539D6D3428F298FB8C29AE2 +D8D444CE182DBA0B13ADE3DA708EC912902A9E3B09FB2F7947E343455F1DE93C +4C74FA007CD7CF0425AE08B7E4738B831DC54C679EAFA6B40B1234B88DB95F43 +19C63B03C6DB3C2BC470DD16CD24C386BF0E97F6B4F83423EF9A5F60630343D2 +912AF7899CBF0C9DCC0FCE9AE7627BCEA175CF84A34459268CC6903722E3A6D0 +B29B96359EC6056A3292D5E47051BF261B6C2BE69BD454D09ADE6F71026576EA +93A91876623758377ACD4F16C70B81447BA084C2FDEF2EB1091B4622889FE635 +B70A9EDBD73A05BEF6BFDDCEE6D849062E854B0258DBE9999296DE5A7CE524BF +678498F1E5F2D0ED11ABD0DAD7AA340197CFC23CA3E946E7F080677E6F93C1FE +F4D646FEE1591F9A625E95F3F1DEB331B3943048BFD16968951FEDD02AA25B22 +6E49E8BCED633F86DDE15AAF92C044BA5D7C327CF4398DBB29391527E27645F7 +6464EE9870283109373DAD93A38E1F6F9D45800B2DEF381FEC2F2EABF821DC0E +16F3D71F4024E914AAB6DF261F8B57DAE3F3C1ABF98B747085F4DC3F5566703E +53862CFE945023F5BB5E5EBD7ED008570546DA36E8E48269F3FF7F1591B3C865 +7E77617B827F657A5F516D14A0180FAB545CEC3766D30A997BCDA17F111FB057 +0513E26080A4705FC32319860027AAA15546BC5C9AA61E2B40FB2A39E309653A +7E2A74EA6AB1D972D8BDEB18D9E067746B71A5C0C2C1EC7FF6139DC500A22571 +401A1035CB74B536517C90897EA1F95489567F82482A21C3657612E4E92BFE54 +3F783471ABD6CF611ADA3326E0315C8FC0B0424F7ADFF19ACC8CE8A9BBCAC9AE +F99CCEF7E960BEF63A122193E88FB922C6B411F5275A393E5B19188A6A352793 +006575009E54D7C177B570D5088719E643EFD65EDB8FCD55DA1CB1F279B8F43D +E8B5D0D733A3D59C724D3777CA4138C490EAEBBA1FBE9F6169729E2C63196E66 +C3A0277E8CD550DC0991E62DD73D93953E0ADF911BAB6193B7C6AD3F30B881DC +4D2C29195B99B5B329EA130B0B6D5F5C22CB4D8FDC278DD222039072FEE1CE3B +AA0F85AD5B158801884A3C291CAE60CFA03E9F101D29A13D209BA8A2131F82D2 +47FACF1EECECD0400C3530CAACAF48AAEBCC826AFF13FB9E851E27E2CF0F903E +737D072B1AB6760EAF4FE0D9AE0B18BA99D676FCEEFD001B1C9AE496B895C5B7 +743D9C9527E5946749CB50B019AD8CC959838B4C63341FEF8B02FB46EC8045C6 +B3B80F7E05146E4BFEBC64540E2AAC2E4344260F4AF2FF8760ECC3D3D43D6402 +3DF1D66D7A7F4EE6B8EEE820D2417DB8CAD3B2E9591FF6DB02D5A978F49F77FB +F6EEC9700F715B371DEB7FDA4CB1B43C7C37CCC42FFE071AB7249B01DC13A275 +D17792A20AFAB9F4D0A482C0E88B8C266D104C629F6A19BF655B8DD93B6455CF +C117771E3CA2F9C8C2C8E3BD564265B32C869AC83434A64E3DF09772BF80546A +62CA99E1CB16216D8E19CA967508F2517FB78B4EC3B48DC13AC6B84BA5597E9C +9C2C9C178B8F5DAEE0BA7E6224EA5D4A20FB32FFD60C5737A1E6539AAC12293B +462C634F62B7B85E0756B7BC78FA2A8966CC9600A73A2C71DB31DED056ED3F51 +C2D1FB0EF2C810B819695C36 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndFont +TeXDict begin 39158278 55380994 1000 600 600 (linux.dvi) +@start /Fa 139[37 5[53 4[27 53 4[42 99[{ T1Encoding ReEncodeFont }5 +83.022 /SFBX1000 rf /Fb 119[42 136[{ TS1Encoding ReEncodeFont }1 +83.022 /SFRM1000 rf /Fc 75[44 180[{ TS1Encoding ReEncodeFont }1 +83.022 /SFTT1000 rf /Fd 44 2[44 5[44 17[44 7[44 5[44 +17[44 69[44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 +44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 +44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 +44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 +44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 +44 44 44 44 44 44 44 33[{ T1Encoding ReEncodeFont }101 +83.022 /SFTT1000 rf /Fe 3[71 5[69 17[66 13[100 17[92 +73[60 63 63 94 63 71 50 53 47 71 71 69 71 109 32 67 36 +32 71 69 42 63 71 61 71 66 6[84 1[92 130 92 95 93 76 +88 1[88 100 98 121 74 96 65 38 98 92 78 81 99 88 92 92 +1[65 107 4[69 69 69 69 69 69 69 69 69 69 69 38 46 3[53 +53 10[73 73 80 27[{ T1Encoding ReEncodeFont }75 119.552 +/SFSX1440 rf /Ff 133[106 1[113 167 1[126 88 1[84 2[122 +126 194 1[120 1[59 126 122 1[108 3[117 16[156 1[171 1[134 +10[163 65[{ T1Encoding ReEncodeFont }19 206.559 /SFSX2488 +rf /Fg 190[49 65[{ T1Encoding ReEncodeFont }1 58.1154 +/SFRM0700 rf /Fh 3[46 5[42 31[65 91[37 44 44 60 44 46 +32 33 33 44 46 42 46 69 23 44 25 23 46 42 25 37 46 37 +46 42 6[51 1[62 85 62 62 60 46 61 65 56 65 62 76 52 65 +43 30 62 65 54 56 63 60 59 62 7[42 42 42 42 42 42 42 +42 42 42 42 23 28 1[65 1[32 32 11[46 48 27[{ T1Encoding ReEncodeFont } +72 83.022 /SFSL1000 rf /Fi 3[58 5[56 17[54 7[76 97[49 +51 51 76 51 58 40 43 38 1[58 56 58 89 27 55 30 27 58 +56 34 51 58 50 58 54 6[68 1[74 105 74 76 77 62 72 83 +71 83 78 97 61 77 53 30 78 75 64 67 81 72 74 74 6[31 +56 56 56 56 56 56 56 56 56 56 1[31 37 3[44 44 11[60 65 +27[{ T1Encoding ReEncodeFont }71 99.6264 /SFSX1200 rf +/Fj 3[47 23[44 105[40 42 42 62 42 47 34 35 31 47 47 46 +47 72 21 44 1[21 47 46 28 42 47 41 47 44 6[56 1[61 86 +61 63 61 51 58 66 58 1[66 81 48 1[43 27 66 61 51 53 66 +58 61 61 1[43 4[25 46 46 46 46 46 46 46 46 46 46 46 25 +30 25 71 13[49 49 28[{ T1Encoding ReEncodeFont }69 83.022 +/SFSX1000 rf /Fk 42 2[46 5[42 17[42 7[62 5[65 17[62 73[37 +44 44 60 44 46 32 33 33 44 46 42 46 69 23 44 25 23 46 +42 25 37 46 37 46 42 1[65 1[23 1[23 51 1[62 85 62 62 +60 46 61 65 56 65 62 76 52 65 43 30 62 65 54 56 63 60 +59 62 1[39 65 65 65 23 23 42 42 42 42 42 42 42 42 42 +42 42 23 28 23 65 1[32 32 23 65 2[69 42 23 2[69 46 46 +48 5[42 3[28 28 16[{ T1Encoding ReEncodeFont }96 83.022 +/SFRM1000 rf /Fl 135[60 2[63 44 45 44 2[57 63 95 3[32 +63 1[35 51 63 51 63 57 8[85 3[82 13[74 5[89 6[57 2[57 +57 2[57 57 57 1[32 46[{ T1Encoding ReEncodeFont }27 119.552 +/SFRM1440 rf /Fm 133[88 93 93 138 93 104 73 77 69 104 +104 101 104 160 48 99 1[48 104 101 62 90 104 90 1[97 +8[135 1[135 1[138 112 1[150 129 1[142 175 111 1[95 56 +142 134 2[146 129 134 135 7[101 101 101 101 101 101 101 +101 101 101 101 56 2[157 43[{ T1Encoding ReEncodeFont }54 +172.188 /SFSX2074 rf end +%%EndProlog +%%BeginSetup +%%Feature: *Resolution 600dpi +TeXDict begin +%%BeginPaperSize: a4 +/setpagedevice where +{ pop << /PageSize [595 842] >> setpagedevice } +{ /a4 where { pop a4 } if } +ifelse +%%EndPaperSize + end +%%EndSetup +%%Page: 1 1 +TeXDict begin 1 0 bop 0 0 a +SDict begin [/Producer (dvips + Distiller)/Title ()/Subject ()/Creator +(LaTeX with hyperref)/Author ()/Keywords () /DOCINFO pdfmark end + 0 0 a 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + +12 -5 a 12 -5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.1) cvn /DEST pdfmark end + 12 -5 a 20 277 a +SDict begin [/PageMode /UseOutlines/Page 1/View [/Fit] /DOCVIEW pdfmark +end + 20 277 +a 20 277 a +SDict begin [ {Catalog}<<>> /PUT pdfmark end + 20 277 a 20 277 a +SDict begin H.S end + 20 277 a 20 277 a +SDict begin 12 H.A end + 20 277 +a 20 277 a +SDict begin [/View [/XYZ H.V]/Dest (Doc-Start) cvn /DEST pdfmark end + 20 277 a 1034 1235 a Fm(linux)68 b(v0.1.52)1090 +1634 y Fl(tresix69@freenet.de)1152 1907 y(15.)38 b(F)-9 +b(ebruar)38 b(2025)863 3810 y(b)s(etreut)h(durc)m(h)f(Thomas)g(resiX)p +eop end +%%Page: 2 2 +TeXDict begin 2 1 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 a 632 +-5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.2) cvn /DEST pdfmark end + 632 -5 a eop end +%%Page: 3 3 +TeXDict begin 3 2 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a 12 +-5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.3) cvn /DEST pdfmark end + 12 -5 a 20 277 a +SDict begin H.S end + 20 277 a 20 277 +a +SDict begin 12 H.A end + 20 277 a 20 277 a +SDict begin [/View [/XYZ H.V]/Dest (chapter.1) cvn /DEST pdfmark end + 20 277 a 520 x Fm(1.)100 b(V)-6 b(o)g(rw)g(o)g(rt) +20 1068 y Fk(Hab)r(e)26 b(v)n(ersuc)n(h)n(t)e(alles)h(so)h(kurz)f(wie)h +(m\366glic)n(h)e(ab)r(er)i(denno)r(c)n(h)f(ausf\374hrlic)n(h)g(zu)h +(Besc)n(hreib)r(en)f(und)20 1168 y(wie)j(immer)f(aus)g(v)n(ersc)n +(hiedenen)f(Anleitugen)i(abgesc)n(hrieb)r(en)e(;-\))3079 +5092 y(3)p eop end +%%Page: 4 4 +TeXDict begin 4 3 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 a 632 +-5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.4) cvn /DEST pdfmark end + 632 -5 a eop end +%%Page: 5 5 +TeXDict begin 5 4 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a 12 +-5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.5) cvn /DEST pdfmark end + 12 -5 a 20 277 a +SDict begin H.S end + 20 277 a 20 277 +a +SDict begin 12 H.A end + 20 277 a 20 277 a +SDict begin [/View [/XYZ H.V]/Dest (chapter*.1) cvn /DEST pdfmark end + 20 277 a 522 x Fm(Inhaltsverzeichnis)20 +1077 y +SDict begin H.S end + 20 1077 a Fj(1.)54 b(V)m(o)m(rw)m(o)m(rt)444 1077 +y +SDict begin 12 H.L end + 444 1077 a 444 1077 a +SDict begin [/Subtype /Link/Dest (chapter.1) cvn/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Color [1 0 0] H.B /ANN pdfmark end + 444 1077 a 2631 w Fj(3)20 1263 +y +SDict begin H.S end + 20 1263 a Fj(Inhaltsverzeichnis)684 1263 y +SDict begin 12 H.L end + 684 1263 +a 684 1263 a +SDict begin [/Subtype /Link/Dest (chapter*.1) cvn/H /I/Border [0 0 +1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark end + 684 1263 a 2391 w Fj(5)20 1568 y +SDict begin H.S end + 20 1568 +a Fi(I.)105 b(Linux)441 1568 y +SDict begin 14 H.L end + 441 1568 a 441 1568 a +SDict begin [/Subtype /Link/Dest (part.1) cvn/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Color [1 0 0] H.B /ANN pdfmark end + +441 1568 a 2567 w Fi(15)20 1754 y +SDict begin H.S end + 20 1754 a Fj(2.)54 +b(Linux)350 1754 y +SDict begin 12 H.L end + 350 1754 a 350 1754 a +SDict begin [/Subtype /Link/Dest (chapter.2) cvn/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Color [1 0 0] H.B /ANN pdfmark end + 350 1754 a 2679 +w Fj(17)145 1854 y +SDict begin H.S end + 145 1854 a Fk(2.1.)119 b(W)-7 b(as)27 +b(ist)h(Lin)n(ux?)938 1854 y +SDict begin 12 H.L end + 938 1854 a 938 1854 a +SDict begin [/Subtype /Link/Dest (section.2.1) cvn/H /I/Border [0 0 +1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark end + 938 +1854 a 71 w Fk(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h +(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) +68 b(17)145 1954 y +SDict begin H.S end + 145 1954 a Fk(2.2.)119 b(Kernel)26 +b(und)i(Mo)r(dule)1099 1954 y +SDict begin 12 H.L end + 1099 1954 a 1099 1954 a +SDict begin [/Subtype /Link/Dest (section.2.2) cvn/H /I/Border [0 0 +1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark end + +1099 1954 a 39 w Fk(.)42 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f +(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)68 +b(17)335 2054 y +SDict begin H.S end + 335 2054 a Fk(2.2.1.)137 b(Kernel)27 +b(2.4)1042 2054 y +SDict begin 12 H.L end + 1042 2054 a 1042 2054 a +SDict begin [/Subtype /Link/Dest (subsection.2.2.1) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1042 2054 a +32 w Fk(.)41 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f +(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)68 +b(17)335 2154 y +SDict begin H.S end + 335 2154 a Fk(2.2.2.)137 b(Kernel)27 +b(2.6)g(\(Debian)h(4.0)f(etc)n(h\))1702 2154 y +SDict begin 12 H.L end + 1702 2154 +a 1702 2154 a +SDict begin [/Subtype /Link/Dest (subsection.2.2.2) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1702 2154 a 82 w Fk(.)42 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)68 b(17)20 2340 +y +SDict begin H.S end + 20 2340 a Fj(3.)54 b(Befehle)428 2340 y +SDict begin 12 H.L end + 428 2340 a +428 2340 a +SDict begin [/Subtype /Link/Dest (chapter.3) cvn/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Color [1 0 0] H.B /ANN pdfmark end + 428 2340 a 2601 w Fj(19)145 2440 y +SDict begin H.S end + 145 2440 +a Fk(3.1.)119 b(Standartein-aus-gab)r(e)1165 2440 y +SDict begin 12 H.L end + 1165 +2440 a 1165 2440 a +SDict begin [/Subtype /Link/Dest (section.3.1) cvn/H /I/Border [0 0 +1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark end + 1165 2440 a 38 w Fk(.)42 b(.)f(.)h(.)f(.)h(.)f(.)h +(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) +f(.)h(.)f(.)68 b(19)145 2540 y +SDict begin H.S end + 145 2540 a Fk(3.2.)119 +b(Anmelden)28 b(und)g(Abmelden)1320 2540 y +SDict begin 12 H.L end + 1320 2540 +a 1320 2540 a +SDict begin [/Subtype /Link/Dest (section.3.2) cvn/H /I/Border [0 0 +1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark end + 1320 2540 a 77 w Fk(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) +h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)68 +b(19)145 2640 y +SDict begin H.S end + 145 2640 a Fk(3.3.)119 b(Anhalten)28 +b(des)f(Systems)g(und)h(Bo)r(oten)1646 2640 y +SDict begin 12 H.L end + 1646 2640 +a 1646 2640 a +SDict begin [/Subtype /Link/Dest (section.3.3) cvn/H /I/Border [0 0 +1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark end + 1646 2640 a 74 w Fk(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)68 b(19)145 +2740 y +SDict begin H.S end + 145 2740 a Fk(3.4.)119 b(Die)28 b(Runlev)n(el)860 +2740 y +SDict begin 12 H.L end + 860 2740 a 860 2740 a +SDict begin [/Subtype /Link/Dest (section.3.4) cvn/H /I/Border [0 0 +1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark end + 860 2740 a 20 w Fk(.)42 +b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f +(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)68 +b(20)335 2840 y +SDict begin H.S end + 335 2840 a Fk(3.4.1.)137 b(Upstart)947 +2840 y +SDict begin 12 H.L end + 947 2840 a 947 2840 a +SDict begin [/Subtype /Link/Dest (subsection.3.4.1) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 947 2840 a 62 w Fk(.)42 +b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)68 +b(20)145 2941 y +SDict begin H.S end + 145 2941 a Fk(3.5.)119 b(SuSE-Lin)n(ux)825 +2941 y +SDict begin 12 H.L end + 825 2941 a 825 2941 a +SDict begin [/Subtype /Link/Dest (section.3.5) cvn/H /I/Border [0 0 +1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark end + 825 2941 a 55 w Fk(.)42 +b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f +(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)68 +b(20)145 3041 y +SDict begin H.S end + 145 3041 a Fk(3.6.)119 b(Zur)27 b(Orien)n(tierung)f +(auf)h(einem)h(UNIX-Rec)n(hner)1957 3041 y +SDict begin 12 H.L end + 1957 3041 +a 1957 3041 a +SDict begin [/Subtype /Link/Dest (section.3.6) cvn/H /I/Border [0 0 +1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark end + 1957 3041 a 21 w Fk(.)41 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)g(.)f(.)h(.)f(.)68 b(20)145 3141 y +SDict begin H.S end + 145 3141 +a Fk(3.7.)119 b(Datum)28 b(und)g(Uhrzeit)1110 3141 y +SDict begin 12 H.L end + +1110 3141 a 1110 3141 a +SDict begin [/Subtype /Link/Dest (section.3.7) cvn/H /I/Border [0 0 +1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark end + 1110 3141 a 28 w Fk(.)42 b(.)g(.)f(.)h(.)f(.)h +(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)g(.)f(.)h(.)f(.)68 b(21)145 3241 y +SDict begin H.S end + 145 3241 a Fk(3.8.)119 +b(Au\035isten)719 3241 y +SDict begin 12 H.L end + 719 3241 a 719 3241 a +SDict begin [/Subtype /Link/Dest (section.3.8) cvn/H /I/Border [0 0 +1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark end + 719 3241 +a 32 w Fk(.)42 b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) +g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f +(.)h(.)f(.)68 b(22)145 3341 y +SDict begin H.S end + 145 3341 a Fk(3.9.)119 +b(Dateinamen)831 3341 y +SDict begin 12 H.L end + 831 3341 a 831 3341 a +SDict begin [/Subtype /Link/Dest (section.3.9) cvn/H /I/Border [0 0 +1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark end + 831 3341 +a 49 w Fk(.)42 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) +h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f +(.)68 b(22)145 3441 y +SDict begin H.S end + 145 3441 a Fk(3.10.)77 b(Dateiendungen)937 +3441 y +SDict begin 12 H.L end + 937 3441 a 937 3441 a +SDict begin [/Subtype /Link/Dest (section.3.10) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 937 3441 a 72 w Fk(.)42 +b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)68 +b(22)145 3542 y +SDict begin H.S end + 145 3542 a Fk(3.11.)77 b(Infos)27 b(\374b)r(er)h(Files) +959 3542 y +SDict begin 12 H.L end + 959 3542 a 959 3542 a +SDict begin [/Subtype /Link/Dest (section.3.11) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 959 3542 a 50 w Fk(.)42 +b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)68 +b(22)145 3642 y +SDict begin H.S end + 145 3642 a Fk(3.12.)77 b(Arb)r(eiten\(V)-7 +b(erw\374stungen\))28 b(im)g(und)g(am)f(Filesystem)2126 +3642 y +SDict begin 12 H.L end + 2126 3642 a 2126 3642 a +SDict begin [/Subtype /Link/Dest (section.3.12) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 2126 3642 a 46 w Fk(.)41 +b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)68 b(23)145 +3742 y +SDict begin H.S end + 145 3742 a Fk(3.13.)77 b(K)n(opieren)26 b(und)i(V)-7 +b(ersc)n(hieb)r(en)1343 3742 y +SDict begin 12 H.L end + 1343 3742 a 1343 3742 +a +SDict begin [/Subtype /Link/Dest (section.3.13) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1343 3742 a 54 w Fk(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) +g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)68 +b(23)145 3842 y +SDict begin H.S end + 145 3842 a Fk(3.14.)77 b(L\366sc)n(hen)685 +3842 y +SDict begin 12 H.L end + 685 3842 a 685 3842 a +SDict begin [/Subtype /Link/Dest (section.3.14) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 685 3842 a 66 w Fk(.)42 +b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f +(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)68 +b(23)145 3942 y +SDict begin H.S end + 145 3942 a Fk(3.15.)77 b(Ausgeb)r(en)745 +3942 y +SDict begin 12 H.L end + 745 3942 a 745 3942 a +SDict begin [/Subtype /Link/Dest (section.3.15) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 745 3942 a 71 w Fk(.)41 +b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h +(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)68 +b(23)145 4042 y +SDict begin H.S end + 145 4042 a Fk(3.16.)77 b(Der)27 b(T)-7 +b(exteditor)27 b(vi/vim)1205 4042 y +SDict begin 12 H.L end + 1205 4042 a 1205 +4042 a +SDict begin [/Subtype /Link/Dest (section.3.16) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1205 4042 a 63 w Fk(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f +(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)68 +b(24)145 4143 y +SDict begin H.S end + 145 4143 a Fk(3.17.)77 b(Suc)n(hen)27 +b(nac)n(h)g(Dateien)1153 4143 y +SDict begin 12 H.L end + 1153 4143 a 1153 4143 +a +SDict begin [/Subtype /Link/Dest (section.3.17) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1153 4143 a 50 w Fk(.)42 b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) +h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)68 +b(24)145 4243 y +SDict begin H.S end + 145 4243 a Fk(3.18.)77 b(Suc)n(hen)27 +b(in)h(Dateien)1054 4243 y +SDict begin 12 H.L end + 1054 4243 a 1054 4243 a +SDict begin [/Subtype /Link/Dest (section.3.18) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1054 +4243 a 84 w Fk(.)42 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h +(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)68 +b(24)145 4343 y +SDict begin H.S end + 145 4343 a Fk(3.19.)77 b(V)-7 b(ergleic)n(hen)26 +b(v)n(on)h(Dateien)1271 4343 y +SDict begin 12 H.L end + 1271 4343 a 1271 4343 +a +SDict begin [/Subtype /Link/Dest (section.3.19) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1271 4343 a 61 w Fk(.)42 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) +h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)68 +b(25)145 4443 y +SDict begin H.S end + 145 4443 a Fk(3.20.)77 b(Druc)n(k)n(en)696 +4443 y +SDict begin 12 H.L end + 696 4443 a 696 4443 a +SDict begin [/Subtype /Link/Dest (section.3.20) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 696 4443 a 55 w Fk(.)42 +b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f +(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)68 +b(25)145 4543 y +SDict begin H.S end + 145 4543 a Fk(3.21.)77 b(File-Inhalt)27 +b(b)r(earb)r(eiten)1188 4543 y +SDict begin 12 H.L end + 1188 4543 a 1188 4543 +a +SDict begin [/Subtype /Link/Dest (section.3.21) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1188 4543 a 80 w Fk(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) +f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)68 +b(25)145 4643 y +SDict begin H.S end + 145 4643 a Fk(3.22.)77 b(T)-7 b(AR)28 +b(\(tap)r(e)g(arc)n(hiv)n(er\))d(v)n(erw)n(altet)h(Dateiarc)n(hiv)n(e) +1982 4643 y +SDict begin 12 H.L end + 1982 4643 a 1982 4643 a +SDict begin [/Subtype /Link/Dest (section.3.22) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1982 4643 a 60 w +Fk(.)42 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)68 +b(25)335 4744 y +SDict begin H.S end + 335 4744 a Fk(3.22.1.)95 b(P)n(ac)n(k)n(en)923 +4744 y +SDict begin 12 H.L end + 923 4744 a 923 4744 a +SDict begin [/Subtype /Link/Dest (subsection.3.22.1) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 923 4744 a 22 w Fk(.)41 +b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h +(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)68 +b(27)3079 5092 y(5)p eop end +%%Page: 6 6 +TeXDict begin 6 5 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 a 632 +-5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.6) cvn /DEST pdfmark end + 632 -5 a 640 128 a Fh(Inhaltsv)n(erzeic)n(hnis) +956 360 y +SDict begin H.S end + 956 360 a Fk(3.22.2.)95 b(En)n(tpac)n(k)n(en)1668 +360 y +SDict begin 12 H.L end + 1668 360 a 1668 360 a +SDict begin [/Subtype /Link/Dest (subsection.3.22.2) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1668 360 a 26 w Fk(.)42 b(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) +h(.)g(.)f(.)h(.)f(.)h(.)f(.)69 b(27)765 460 y +SDict begin H.S end + 765 460 +a Fk(3.23.)77 b(Disk)n(etten/F)-7 b(estplatten)1808 460 +y +SDict begin 12 H.L end + 1808 460 a 1808 460 a +SDict begin [/Subtype /Link/Dest (section.3.23) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1808 460 a 80 w Fk(.)41 b(.)h(.)f(.)h(.)f(.)h +(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) +f(.)h(.)f(.)69 b(27)956 560 y +SDict begin H.S end + 956 560 a Fk(3.23.1.)95 +b(Dateisystem)27 b(v)n(ersc)n(hl\374sseln)2227 560 y +SDict begin 12 H.L end + +2227 560 a 2227 560 a +SDict begin [/Subtype /Link/Dest (subsection.3.23.1) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 2227 560 a 48 w Fk(.)42 b(.)f(.)h(.)f(.)h(.)f(.)h +(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)69 +b(28)765 660 y +SDict begin H.S end + 765 660 a Fk(3.24.)77 b(Zugri\033srec)n(h)n(te/Eigen)n +(t\374mer/Grupp)r(e)2286 660 y +SDict begin 12 H.L end + 2286 660 a 2286 660 a +SDict begin [/Subtype /Link/Dest (section.3.24) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + +2286 660 a 54 w Fk(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f +(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)69 b(28)765 760 y +SDict begin H.S end + 765 +760 a Fk(3.25.)77 b(Prozessb)r(efehle)1538 760 y +SDict begin 12 H.L end + 1538 +760 a 1538 760 a +SDict begin [/Subtype /Link/Dest (section.3.25) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1538 760 a 27 w Fk(.)41 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) +g(.)f(.)h(.)f(.)h(.)f(.)69 b(30)765 860 y +SDict begin H.S end + 765 860 a Fk(3.26.)77 +b(Re-install)27 b(Grub)g(with)h(Liv)n(e)f(CD)2099 860 +y +SDict begin 12 H.L end + 2099 860 a 2099 860 a +SDict begin [/Subtype /Link/Dest (section.3.26) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 2099 860 a 47 w Fk(.)41 b(.)h(.)g(.)f(.)h(.)f +(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)69 +b(31)956 960 y +SDict begin H.S end + 956 960 a Fk(3.26.1.)95 b(Chro)r(ot)1545 +960 y +SDict begin 12 H.L end + 1545 960 a 1545 960 a +SDict begin [/Subtype /Link/Dest (subsection.3.26.1) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1545 960 a 20 w Fk(.)41 b(.)h(.)g(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) +h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)69 b(31)956 1060 +y +SDict begin H.S end + 956 1060 a Fk(3.26.2.)95 b(Grub)1478 1060 y +SDict begin 12 H.L end + 1478 1060 +a 1478 1060 a +SDict begin [/Subtype /Link/Dest (subsection.3.26.2) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1478 1060 a 22 w Fk(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h +(.)g(.)f(.)h(.)f(.)h(.)f(.)69 b(31)765 1160 y +SDict begin H.S end + 765 1160 +a Fk(3.27.)77 b(Soft)n(w)n(are)26 b(installieren)1751 +1160 y +SDict begin 12 H.L end + 1751 1160 a 1751 1160 a +SDict begin [/Subtype /Link/Dest (section.3.27) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1751 1160 a 72 w Fk(.)42 +b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f +(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)69 b(31)956 1260 +y +SDict begin H.S end + 956 1260 a Fk(3.27.1.)95 b(rpm-F)-7 b(ormat)1729 1260 +y +SDict begin 12 H.L end + 1729 1260 a 1729 1260 a +SDict begin [/Subtype /Link/Dest (subsection.3.27.1) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1729 1260 a 30 w Fk(.)41 b(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g +(.)f(.)h(.)f(.)h(.)f(.)69 b(31)956 1360 y +SDict begin H.S end + 956 1360 a +Fk(3.27.2.)95 b(deb-F)-7 b(ormat)1710 1360 y +SDict begin 12 H.L end + 1710 1360 +a 1710 1360 a +SDict begin [/Subtype /Link/Dest (subsection.3.27.2) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1710 1360 a 49 w Fk(.)41 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f +(.)h(.)f(.)69 b(32)956 1460 y +SDict begin H.S end + 956 1460 a Fk(3.27.3.)95 +b(P)n(ortage)26 b(Gen)n(to)r(o)1860 1460 y +SDict begin 12 H.L end + 1860 1460 +a 1860 1460 a +SDict begin [/Subtype /Link/Dest (subsection.3.27.3) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1860 1460 a 28 w Fk(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) +h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f +(.)69 b(33)956 1560 y +SDict begin H.S end + 956 1560 a Fk(3.27.4.)95 b(Quelltexte)1664 +1560 y +SDict begin 12 H.L end + 1664 1560 a 1664 1560 a +SDict begin [/Subtype /Link/Dest (subsection.3.27.4) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1664 1560 a 30 w Fk(.)42 +b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f +(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)69 b(34)956 +1660 y +SDict begin H.S end + 956 1660 a Fk(3.27.5.)95 b(Hilfe)1458 1660 y +SDict begin 12 H.L end + 1458 +1660 a 1458 1660 a +SDict begin [/Subtype /Link/Dest (subsection.3.27.5) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1458 1660 a 42 w Fk(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) +f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)69 b(34)765 1760 y +SDict begin H.S end + 765 +1760 a Fk(3.28.)77 b(Im)27 b(Netz)1308 1760 y +SDict begin 12 H.L end + 1308 1760 +a 1308 1760 a +SDict begin [/Subtype /Link/Dest (section.3.28) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1308 1760 a 63 w Fk(.)42 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h +(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)69 b(34)765 1860 y +SDict begin H.S end + +765 1860 a Fk(3.29.)77 b(SSH)1168 1860 y +SDict begin 12 H.L end + 1168 1860 a +1168 1860 a +SDict begin [/Subtype /Link/Dest (section.3.29) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1168 1860 a 74 w Fk(.)42 b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) +f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)69 b(35)956 1960 +y +SDict begin H.S end + 956 1960 a Fk(3.29.1.)95 b(Generierung)26 b(eines)h(DSA)i(Sc)n +(hl\374sselpaares)2717 1960 y +SDict begin 12 H.L end + 2717 1960 a 2717 1960 a +SDict begin [/Subtype /Link/Dest (subsection.3.29.1) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + +2717 1960 a 75 w Fk(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f +(.)69 b(35)956 2060 y +SDict begin H.S end + 956 2060 a Fk(3.29.2.)95 b(Public-Key)27 +b(auf)h(dem)f(Zielrec)n(hner)f(hinzuf\374gen)2861 2060 +y +SDict begin 12 H.L end + 2861 2060 a 2861 2060 a +SDict begin [/Subtype /Link/Dest (subsection.3.29.2) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 2861 2060 a 60 w Fk(.)41 b(.)h(.)f(.)h(.)g(.) +f(.)h(.)f(.)h(.)f(.)69 b(35)956 2160 y +SDict begin H.S end + 956 2160 a Fk(3.29.3.)95 +b(Priv)-5 b(ate-Key)26 b(auf)i(dem)g(Qellrec)n(hner)2486 +2160 y +SDict begin 12 H.L end + 2486 2160 a 2486 2160 a +SDict begin [/Subtype /Link/Dest (subsection.3.29.3) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 2486 2160 a 47 w Fk(.)42 +b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)69 +b(35)956 2260 y +SDict begin H.S end + 956 2260 a Fk(3.29.4.)95 b(Login)26 b(n)n(ur)h(mit)i +(SSH-Keys)d(erlaub)r(en)2521 2260 y +SDict begin 12 H.L end + 2521 2260 a 2521 +2260 a +SDict begin [/Subtype /Link/Dest (subsection.3.29.4) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 2521 2260 a 77 w Fk(.)41 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g +(.)f(.)h(.)f(.)h(.)f(.)69 b(36)765 2360 y +SDict begin H.S end + 765 2360 a +Fk(3.30.)77 b(Gn)n(uPG)1290 2360 y +SDict begin 12 H.L end + 1290 2360 a 1290 2360 +a +SDict begin [/Subtype /Link/Dest (section.3.30) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1290 2360 a 81 w Fk(.)42 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g +(.)f(.)h(.)f(.)h(.)f(.)69 b(36)956 2460 y +SDict begin H.S end + 956 2460 a +Fk(3.30.1.)95 b(Erzeugen)1622 2460 y +SDict begin 12 H.L end + 1622 2460 a 1622 +2460 a +SDict begin [/Subtype /Link/Dest (subsection.3.30.1) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1622 2460 a 72 w Fk(.)42 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g +(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) +h(.)f(.)69 b(36)956 2560 y +SDict begin H.S end + 956 2560 a Fk(3.30.2.)95 b(Ho)r(c)n(hladen) +1669 2560 y +SDict begin 12 H.L end + 1669 2560 a 1669 2560 a +SDict begin [/Subtype /Link/Dest (subsection.3.30.2) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1669 2560 a 25 w +Fk(.)42 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h +(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)69 +b(36)956 2660 y +SDict begin H.S end + 956 2660 a Fk(3.30.3.)95 b(L\366sc)n(hen)1579 +2660 y +SDict begin 12 H.L end + 1579 2660 a 1579 2660 a +SDict begin [/Subtype /Link/Dest (subsection.3.30.3) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1579 2660 a 50 w Fk(.)42 +b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g +(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)69 +b(37)956 2760 y +SDict begin H.S end + 956 2760 a Fk(3.30.4.)95 b(Holen)1498 +2760 y +SDict begin 12 H.L end + 1498 2760 a 1498 2760 a +SDict begin [/Subtype /Link/Dest (subsection.3.30.4) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1498 2760 a 67 w Fk(.)41 +b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h +(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)69 +b(37)956 2859 y +SDict begin H.S end + 956 2859 a Fk(3.30.5.)95 b(Signatur)26 +b(erzeugen)h(und)h(pr\374fen)2365 2859 y +SDict begin 12 H.L end + 2365 2859 a +2365 2859 a +SDict begin [/Subtype /Link/Dest (subsection.3.30.5) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 2365 2859 a 39 w Fk(.)42 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f +(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)69 b(37)956 2959 +y +SDict begin H.S end + 956 2959 a Fk(3.30.6.)95 b(V)-7 b(ersc)n(hl\374sseln)1768 +2959 y +SDict begin 12 H.L end + 1768 2959 a 1768 2959 a +SDict begin [/Subtype /Link/Dest (subsection.3.30.6) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1768 2959 a 55 w Fk(.)42 +b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f +(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)69 b(37)956 3059 +y +SDict begin H.S end + 956 3059 a Fk(3.30.7.)95 b(En)n(tsc)n(hl\374sseln)1775 +3059 y +SDict begin 12 H.L end + 1775 3059 a 1775 3059 a +SDict begin [/Subtype /Link/Dest (subsection.3.30.7) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1775 3059 a 48 w Fk(.)42 +b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f +(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)69 b(37)956 3159 +y +SDict begin H.S end + 956 3159 a Fk(3.30.8.)95 b(Sc)n(hl\374sselv)n(erw)n(altung)2011 +3159 y +SDict begin 12 H.L end + 2011 3159 a 2011 3159 a +SDict begin [/Subtype /Link/Dest (subsection.3.30.8) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 2011 3159 a 70 w Fk(.)42 +b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g +(.)f(.)h(.)f(.)h(.)f(.)69 b(38)956 3259 y +SDict begin H.S end + 956 3259 a +Fk(3.30.9.)95 b(Anzeigen)1618 3259 y +SDict begin 12 H.L end + 1618 3259 a 1618 +3259 a +SDict begin [/Subtype /Link/Dest (subsection.3.30.9) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1618 3259 a 76 w Fk(.)42 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g +(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) +h(.)f(.)69 b(38)956 3359 y +SDict begin H.S end + 956 3359 a Fk(3.30.10.)53 +b(Exp)r(ortieren)1719 3359 y +SDict begin 12 H.L end + 1719 3359 a 1719 3359 a +SDict begin [/Subtype /Link/Dest (subsection.3.30.10) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + +1719 3359 a 40 w Fk(.)41 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f +(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)69 +b(38)765 3459 y +SDict begin H.S end + 765 3459 a Fk(3.31.)77 b(X11)27 b(-)g(Gra\034k)1472 +3459 y +SDict begin 12 H.L end + 1472 3459 a 1472 3459 a +SDict begin [/Subtype /Link/Dest (section.3.31) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1472 3459 a 28 w Fk(.)42 +b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f +(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)69 +b(38)956 3559 y +SDict begin H.S end + 956 3559 a Fk(3.31.1.)95 b(Bildsc)n(hirmsc)n(honer)1950 +3559 y +SDict begin 12 H.L end + 1950 3559 a 1950 3559 a +SDict begin [/Subtype /Link/Dest (subsection.3.31.1) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1950 3559 a 67 w Fk(.)41 +b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h +(.)g(.)f(.)h(.)f(.)h(.)f(.)69 b(39)956 3659 y +SDict begin H.S end + 956 3659 +a Fk(3.31.2.)95 b(X11)26 b(ohne)i(Maus)1856 3659 y +SDict begin 12 H.L end + 1856 +3659 a 1856 3659 a +SDict begin [/Subtype /Link/Dest (subsection.3.31.2) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1856 3659 a 32 w Fk(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g +(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) +h(.)f(.)69 b(39)640 3844 y +SDict begin H.S end + 640 3844 a Fj(4.)54 b(V)m(erzeichnisse)30 +b(und)f(Dateien)1763 3844 y +SDict begin 12 H.L end + 1763 3844 a 1763 3844 a +SDict begin [/Subtype /Link/Dest (chapter.4) cvn/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Color [1 0 0] H.B /ANN pdfmark end + 1763 +3844 a 1886 w Fj(41)765 3944 y +SDict begin H.S end + 765 3944 a Fk(4.1.)119 +b(Dateibaum)1414 3944 y +SDict begin 12 H.L end + 1414 3944 a 1414 3944 a +SDict begin [/Subtype /Link/Dest (section.4.1) cvn/H /I/Border [0 0 +1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark end + 1414 +3944 a 22 w Fk(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) +f(.)h(.)f(.)69 b(41)765 4044 y +SDict begin H.S end + 765 4044 a Fk(4.2.)119 +b(/etc/fstab)1382 4044 y +SDict begin 12 H.L end + 1382 4044 a 1382 4044 a +SDict begin [/Subtype /Link/Dest (section.4.2) cvn/H /I/Border [0 0 +1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark end + 1382 +4044 a 54 w Fk(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) +f(.)h(.)f(.)69 b(48)765 4144 y +SDict begin H.S end + 765 4144 a Fk(4.3.)119 +b(/dev/)1225 4144 y +SDict begin 12 H.L end + 1225 4144 a 1225 4144 a +SDict begin [/Subtype /Link/Dest (section.4.3) cvn/H /I/Border [0 0 +1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark end + 1225 4144 +a 82 w Fk(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h +(.)f(.)h(.)f(.)69 b(48)765 4244 y +SDict begin H.S end + 765 4244 a Fk(4.4.)119 +b(Dateisystem)n(t)n(yp)r(en)27 b(un)n(ter)g(Lin)n(ux)2117 +4244 y +SDict begin 12 H.L end + 2117 4244 a 2117 4244 a +SDict begin [/Subtype /Link/Dest (section.4.4) cvn/H /I/Border [0 0 +1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark end + 2117 4244 a 29 w Fk(.)41 +b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f +(.)h(.)f(.)h(.)f(.)69 b(49)765 4344 y +SDict begin H.S end + 765 4344 a Fk(4.5.)119 +b(/etc/group)1413 4344 y +SDict begin 12 H.L end + 1413 4344 a 1413 4344 a +SDict begin [/Subtype /Link/Dest (section.4.5) cvn/H /I/Border [0 0 +1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark end + 1413 +4344 a 23 w Fk(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) +f(.)h(.)f(.)69 b(49)765 4444 y +SDict begin H.S end + 765 4444 a Fk(4.6.)119 +b(/etc/hosts)1390 4444 y +SDict begin 12 H.L end + 1390 4444 a 1390 4444 a +SDict begin [/Subtype /Link/Dest (section.4.6) cvn/H /I/Border [0 0 +1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark end + 1390 +4444 a 46 w Fk(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) +f(.)h(.)f(.)69 b(50)765 4544 y +SDict begin H.S end + 765 4544 a Fk(4.7.)119 +b(/etc/inittab)1448 4544 y +SDict begin 12 H.L end + 1448 4544 a 1448 4544 a +SDict begin [/Subtype /Link/Dest (section.4.7) cvn/H /I/Border [0 0 +1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark end + 1448 +4544 a 52 w Fk(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g +(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) +h(.)f(.)69 b(50)956 4644 y +SDict begin H.S end + 956 4644 a Fk(4.7.1.)137 b(T)-7 +b(erminal)1614 4644 y +SDict begin 12 H.L end + 1614 4644 a 1614 4644 a +SDict begin [/Subtype /Link/Dest (subsection.4.7.1) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1614 4644 +a 80 w Fk(.)42 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) +f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)69 +b(50)956 4744 y +SDict begin H.S end + 956 4744 a Fk(4.7.2.)137 b(T)-7 b(ermcap)r(ein)n(trag) +1860 4744 y +SDict begin 12 H.L end + 1860 4744 a 1860 4744 a +SDict begin [/Subtype /Link/Dest (subsection.4.7.2) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1860 4744 a 28 w +Fk(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h +(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)69 b(50)640 +5092 y(6)p eop end +%%Page: 7 7 +TeXDict begin 7 6 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a 12 +-5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.7) cvn /DEST pdfmark end + 12 -5 a 2478 128 a Fh(Inhaltsv)n(erzeic)n(hnis)335 +360 y +SDict begin H.S end + 335 360 a Fk(4.7.3.)137 b(Gett)n(yk)n(ommando)1273 +360 y +SDict begin 12 H.L end + 1273 360 a 1273 360 a +SDict begin [/Subtype /Link/Dest (subsection.4.7.3) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1273 360 a 59 w Fk(.)42 b(.)f(.)h(.)f(.)h +(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) +f(.)h(.)f(.)68 b(51)335 461 y +SDict begin H.S end + 335 461 a Fk(4.7.4.)137 +b(K\374rzel)908 461 y +SDict begin 12 H.L end + 908 461 a 908 461 a +SDict begin [/Subtype /Link/Dest (subsection.4.7.4) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 908 461 a 37 +w Fk(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h +(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)68 +b(51)335 561 y +SDict begin H.S end + 335 561 a Fk(4.7.5.)137 b(Arb)r(eitsstufen)1154 +561 y +SDict begin 12 H.L end + 1154 561 a 1154 561 a +SDict begin [/Subtype /Link/Dest (subsection.4.7.5) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1154 561 a 49 w Fk(.)42 b(.)f(.)h(.)f(.)h +(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)g(.)f(.)h(.)f(.)68 b(51)335 662 y +SDict begin H.S end + 335 662 a Fk(4.7.6.)137 +b(Mo)r(dus)912 662 y +SDict begin 12 H.L end + 912 662 a 912 662 a +SDict begin [/Subtype /Link/Dest (subsection.4.7.6) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 912 662 a 33 +w Fk(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h +(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)68 +b(51)335 762 y +SDict begin H.S end + 335 762 a Fk(4.7.7.)137 b(K)n(ommando)1086 +762 y +SDict begin 12 H.L end + 1086 762 a 1086 762 a +SDict begin [/Subtype /Link/Dest (subsection.4.7.7) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1086 762 a 52 w Fk(.)42 b(.)g(.)f(.)h(.)f +(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)g(.)f(.)h(.)f(.)68 b(52)145 863 y +SDict begin H.S end + 145 863 a Fk(4.8.)119 +b(/etc/passwd)844 863 y +SDict begin 12 H.L end + 844 863 a 844 863 a +SDict begin [/Subtype /Link/Dest (section.4.8) cvn/H /I/Border [0 0 +1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark end + 844 863 a +36 w Fk(.)42 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h +(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) +68 b(53)20 1050 y +SDict begin H.S end + 20 1050 a Fj(5.)54 b(Die)31 b(Shells)522 +1050 y +SDict begin 12 H.L end + 522 1050 a 522 1050 a +SDict begin [/Subtype /Link/Dest (chapter.5) cvn/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Color [1 0 0] H.B /ANN pdfmark end + 522 1050 a 2507 w Fj(55)145 +1151 y +SDict begin H.S end + 145 1151 a Fk(5.1.)119 b(Die)28 b(Shells)753 1151 +y +SDict begin 12 H.L end + 753 1151 a 753 1151 a +SDict begin [/Subtype /Link/Dest (section.5.1) cvn/H /I/Border [0 0 +1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark end + 753 1151 a 63 w Fk(.)41 b(.)h(.)f(.)h(.)f(.)h +(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)68 b(55)145 1252 +y +SDict begin H.S end + 145 1252 a Fk(5.2.)119 b(Die)28 b(Start-Scripts)1008 +1252 y +SDict begin 12 H.L end + 1008 1252 a 1008 1252 a +SDict begin [/Subtype /Link/Dest (section.5.2) cvn/H /I/Border [0 0 +1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark end + 1008 1252 a 66 w Fk(.)41 +b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)68 b(55)145 +1352 y +SDict begin H.S end + 145 1352 a Fk(5.3.)119 b(T)-7 b(astenk)n(om)n(binationen)1171 +1352 y +SDict begin 12 H.L end + 1171 1352 a 1171 1352 a +SDict begin [/Subtype /Link/Dest (section.5.3) cvn/H /I/Border [0 0 +1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark end + 1171 1352 a 32 w Fk(.)42 +b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)68 b(55)145 1453 +y +SDict begin H.S end + 145 1453 a Fk(5.4.)119 b(Die)28 b(C-Shell)808 1453 +y +SDict begin 12 H.L end + 808 1453 a 808 1453 a +SDict begin [/Subtype /Link/Dest (section.5.4) cvn/H /I/Border [0 0 +1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark end + 808 1453 a 72 w Fk(.)42 b(.)f(.)h(.)f(.)h(.)g +(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)68 b(56)145 1553 +y +SDict begin H.S end + 145 1553 a Fk(5.5.)119 b(Bash)26 b(rec)n(hnen)880 1553 +y +SDict begin 12 H.L end + 880 1553 a 880 1553 a +SDict begin [/Subtype /Link/Dest (section.5.5) cvn/H /I/Border [0 0 +1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark end + 880 1553 a 65 w Fk(.)41 b(.)h(.)f(.)h(.)g(.)f +(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)68 b(57)20 1861 y +SDict begin H.S end + 20 +1861 a Fi(I)s(I.)k(Programme)728 1861 y +SDict begin 14 H.L end + 728 1861 a 728 +1861 a +SDict begin [/Subtype /Link/Dest (part.2) cvn/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Color [1 0 0] H.B /ANN pdfmark end + 728 1861 a 2280 w Fi(59)20 2049 y +SDict begin H.S end + 20 2049 a Fj(6.)54 +b(Der)30 b(T)-8 b(extedito)m(r)30 b(vi/vim)977 2049 y +SDict begin 12 H.L end + +977 2049 a 977 2049 a +SDict begin [/Subtype /Link/Dest (chapter.6) cvn/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Color [1 0 0] H.B /ANN pdfmark end + 977 2049 a 2052 w Fj(61)145 2149 +y +SDict begin H.S end + 145 2149 a Fk(6.1.)119 b(Aufruf)631 2149 y +SDict begin 12 H.L end + 631 2149 +a 631 2149 a +SDict begin [/Subtype /Link/Dest (section.6.1) cvn/H /I/Border [0 0 +1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark end + 631 2149 a 55 w Fk(.)42 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g +(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)68 b(61)145 2250 +y +SDict begin H.S end + 145 2250 a Fk(6.2.)119 b(Eingab)r(emo)r(dus)27 b(\(input)i(mo)r(de\)) +1435 2250 y +SDict begin 12 H.L end + 1435 2250 a 1435 2250 a +SDict begin [/Subtype /Link/Dest (section.6.2) cvn/H /I/Border [0 0 +1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark end + 1435 2250 a 26 w +Fk(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)68 b(61)145 2351 y +SDict begin H.S end + 145 +2351 a Fk(6.3.)119 b(Befehlsmo)r(dus)27 b(\(visual)g(mo)r(de\))1417 +2351 y +SDict begin 12 H.L end + 1417 2351 a 1417 2351 a +SDict begin [/Subtype /Link/Dest (section.6.3) cvn/H /I/Border [0 0 +1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark end + 1417 2351 a 44 w Fk(.)42 +b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)g(.)f(.)h(.)f(.)68 b(61)335 2451 y +SDict begin H.S end + 335 2451 a +Fk(6.3.1.)137 b(Eingeb)r(en:)1025 2451 y +SDict begin 12 H.L end + 1025 2451 a +1025 2451 a +SDict begin [/Subtype /Link/Dest (subsection.6.3.1) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1025 2451 a 49 w Fk(.)41 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h +(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) +f(.)h(.)f(.)68 b(61)335 2552 y +SDict begin H.S end + 335 2552 a Fk(6.3.2.)137 +b(\334b)r(ersc)n(hreib)r(en:)1208 2552 y +SDict begin 12 H.L end + 1208 2552 a +1208 2552 a +SDict begin [/Subtype /Link/Dest (subsection.6.3.2) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1208 2552 a 60 w Fk(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h +(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) +68 b(61)335 2652 y +SDict begin H.S end + 335 2652 a Fk(6.3.3.)137 b(Bew)n(egen:)1006 +2652 y +SDict begin 12 H.L end + 1006 2652 a 1006 2652 a +SDict begin [/Subtype /Link/Dest (subsection.6.3.3) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1006 2652 a 68 w Fk(.)41 +b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)68 b(62)335 +2753 y +SDict begin H.S end + 335 2753 a Fk(6.3.4.)137 b(L\366sc)n(hen)27 b(und)h(Eingeb)r +(en:)1509 2753 y +SDict begin 12 H.L end + 1509 2753 a 1509 2753 a +SDict begin [/Subtype /Link/Dest (subsection.6.3.4) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1509 2753 a +81 w Fk(.)42 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)g(.)f(.)h(.)f(.)68 b(63)335 2854 y +SDict begin H.S end + 335 2854 +a Fk(6.3.5.)137 b(L\366sc)n(hen:)981 2854 y +SDict begin 12 H.L end + 981 2854 +a 981 2854 a +SDict begin [/Subtype /Link/Dest (subsection.6.3.5) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 981 2854 a 28 w Fk(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f +(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +g(.)f(.)h(.)f(.)68 b(63)335 2954 y +SDict begin H.S end + 335 2954 a Fk(6.3.6.)137 +b(Aufheb)r(en:)1037 2954 y +SDict begin 12 H.L end + 1037 2954 a 1037 2954 a +SDict begin [/Subtype /Link/Dest (subsection.6.3.6) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1037 +2954 a 37 w Fk(.)41 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f +(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)68 +b(63)335 3055 y +SDict begin H.S end + 335 3055 a Fk(6.3.7.)137 b(V)-7 b(ersc)n(hieb)r(en:) +1120 3055 y +SDict begin 12 H.L end + 1120 3055 a 1120 3055 a +SDict begin [/Subtype /Link/Dest (subsection.6.3.7) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1120 3055 a 83 w +Fk(.)42 b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)68 b(63)335 +3155 y +SDict begin H.S end + 335 3155 a Fk(6.3.8.)137 b(Zusammenf\374gen:)1279 +3155 y +SDict begin 12 H.L end + 1279 3155 a 1279 3155 a +SDict begin [/Subtype /Link/Dest (subsection.6.3.8) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1279 3155 a 53 w Fk(.)42 +b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)68 b(64)335 3256 y +SDict begin H.S end + 335 +3256 a Fk(6.3.9.)137 b(Markieren:)1061 3256 y +SDict begin 12 H.L end + 1061 3256 +a 1061 3256 a +SDict begin [/Subtype /Link/Dest (subsection.6.3.9) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1061 3256 a 77 w Fk(.)42 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) +g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f +(.)h(.)f(.)68 b(64)335 3357 y +SDict begin H.S end + 335 3357 a Fk(6.3.10.)95 +b(K)n(opieren:)1017 3357 y +SDict begin 12 H.L end + 1017 3357 a 1017 3357 a +SDict begin [/Subtype /Link/Dest (subsection.6.3.10) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1017 +3357 a 57 w Fk(.)41 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f +(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)68 +b(64)335 3457 y +SDict begin H.S end + 335 3457 a Fk(6.3.11.)95 b(Einf\374gen:)1011 +3457 y +SDict begin 12 H.L end + 1011 3457 a 1011 3457 a +SDict begin [/Subtype /Link/Dest (subsection.6.3.11) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1011 3457 a 63 w Fk(.)41 +b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)68 b(64)335 +3558 y +SDict begin H.S end + 335 3558 a Fk(6.3.12.)95 b(Suc)n(hen:)946 3558 +y +SDict begin 12 H.L end + 946 3558 a 946 3558 a +SDict begin [/Subtype /Link/Dest (subsection.6.3.12) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 946 3558 a 63 w Fk(.)42 b(.)f(.)h(.)g(.)f(.)h +(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)g(.)f(.)h(.)f(.)68 b(64)335 3658 y +SDict begin H.S end + 335 3658 +a Fk(6.3.13.)95 b(Wiederholen:)1145 3658 y +SDict begin 12 H.L end + 1145 3658 +a 1145 3658 a +SDict begin [/Subtype /Link/Dest (subsection.6.3.13) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1145 3658 a 58 w Fk(.)42 b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) +f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h +(.)f(.)68 b(64)335 3759 y +SDict begin H.S end + 335 3759 a Fk(6.3.14.)95 b(Sonstige)27 +b(K)n(ommandos:)1470 3759 y +SDict begin 12 H.L end + 1470 3759 a 1470 3759 a +SDict begin [/Subtype /Link/Dest (subsection.6.3.14) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1470 +3759 a 56 w Fk(.)41 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)68 b(65)145 3860 +y +SDict begin H.S end + 145 3860 a Fk(6.4.)119 b(K)n(ommandomo)r(dus)26 b(\(colon)h(mo)r +(de\))1554 3860 y +SDict begin 12 H.L end + 1554 3860 a 1554 3860 a +SDict begin [/Subtype /Link/Dest (section.6.4) cvn/H /I/Border [0 0 +1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark end + 1554 3860 a +36 w Fk(.)42 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)g(.)f(.)h(.)f(.)68 b(65)335 3960 y +SDict begin H.S end + 335 3960 +a Fk(6.4.1.)137 b(T)-7 b(exteingab)r(e)28 b(K)n(ommandos)1588 +3960 y +SDict begin 12 H.L end + 1588 3960 a 1588 3960 a +SDict begin [/Subtype /Link/Dest (subsection.6.4.1) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1588 3960 a 67 w Fk(.)42 +b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f +(.)h(.)f(.)68 b(65)20 4148 y +SDict begin H.S end + 20 4148 a Fj(7.)54 b(LaT)-8 +b(eX)393 4148 y +SDict begin 12 H.L end + 393 4148 a 393 4148 a +SDict begin [/Subtype /Link/Dest (chapter.7) cvn/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Color [1 0 0] H.B /ANN pdfmark end + 393 4148 a 2636 +w Fj(67)145 4248 y +SDict begin H.S end + 145 4248 a Fk(7.1.)119 b(L)416 4231 +y Fg(A)453 4248 y Fk(T)499 4266 y(E)544 4248 y(X)606 +4248 y +SDict begin 12 H.L end + 606 4248 a 606 4248 a +SDict begin [/Subtype /Link/Dest (section.7.1) cvn/H /I/Border [0 0 +1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark end + 606 4248 a 80 w Fk(.)42 +b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h +(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) +68 b(67)20 4556 y +SDict begin H.S end + 20 4556 a Fi(I)s(I)s(I.)39 b(Linux)d(im)h(Netzw)m +(erk)1065 4556 y +SDict begin 14 H.L end + 1065 4556 a 1065 4556 a +SDict begin [/Subtype /Link/Dest (part.3) cvn/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Color [1 0 0] H.B /ANN pdfmark end + 1065 4556 a +1943 w Fi(69)20 4744 y +SDict begin H.S end + 20 4744 a Fj(8.)54 b(Netzw)m(erk)503 +4744 y +SDict begin 12 H.L end + 503 4744 a 503 4744 a +SDict begin [/Subtype /Link/Dest (chapter.8) cvn/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Color [1 0 0] H.B /ANN pdfmark end + 503 4744 a 2526 w Fj(71)3079 +5092 y Fk(7)p eop end +%%Page: 8 8 +TeXDict begin 8 7 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 a 632 +-5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.8) cvn /DEST pdfmark end + 632 -5 a 640 128 a Fh(Inhaltsv)n(erzeic)n(hnis) +640 360 y +SDict begin H.S end + 640 360 a Fj(9.)54 b(Apache)1047 360 y +SDict begin 12 H.L end + 1047 +360 a 1047 360 a +SDict begin [/Subtype /Link/Dest (chapter.9) cvn/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Color [1 0 0] H.B /ANN pdfmark end + 1047 360 a 2602 w Fj(73)765 462 y +SDict begin H.S end + 765 +462 a Fk(9.1.)119 b(Einleitung)1388 462 y +SDict begin 12 H.L end + 1388 462 a +1388 462 a +SDict begin [/Subtype /Link/Dest (section.9.1) cvn/H /I/Border [0 0 +1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark end + 1388 462 a 48 w Fk(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h +(.)g(.)f(.)h(.)f(.)h(.)f(.)69 b(73)765 565 y +SDict begin H.S end + 765 565 +a Fk(9.2.)119 b(K)n(ompilieren)26 b(und)i(Installieren)2053 +565 y +SDict begin 12 H.L end + 2053 565 a 2053 565 a +SDict begin [/Subtype /Link/Dest (section.9.2) cvn/H /I/Border [0 0 +1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark end + 2053 565 a 28 w Fk(.)42 b(.)f(.)h(.)g(.)f +(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) +f(.)69 b(73)956 667 y +SDict begin H.S end + 956 667 a Fk(9.2.1.)137 b(Anforderungen)1829 +667 y +SDict begin 12 H.L end + 1829 667 a 1829 667 a +SDict begin [/Subtype /Link/Dest (subsection.9.2.1) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1829 667 a 59 w Fk(.)41 b(.)h(.)f(.)h(.)f +(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) +h(.)f(.)h(.)f(.)69 b(73)956 769 y +SDict begin H.S end + 956 769 a Fk(9.2.2.)137 +b(V)-7 b(orb)r(ereitungen)1845 769 y +SDict begin 12 H.L end + 1845 769 a 1845 +769 a +SDict begin [/Subtype /Link/Dest (subsection.9.2.2) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1845 769 a 43 w Fk(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h +(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)69 +b(73)956 872 y +SDict begin H.S end + 956 872 a Fk(9.2.3.)137 b(Op)r(enSSL)1628 +872 y +SDict begin 12 H.L end + 1628 872 a 1628 872 a +SDict begin [/Subtype /Link/Dest (subsection.9.2.3) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1628 872 a 66 w Fk(.)42 b(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) +h(.)g(.)f(.)h(.)f(.)h(.)f(.)69 b(74)956 974 y +SDict begin H.S end + 956 974 +a Fk(9.2.4.)137 b(Apac)n(he)27 b(1.3)f(und)i(SSL)2026 +974 y +SDict begin 12 H.L end + 2026 974 a 2026 974 a +SDict begin [/Subtype /Link/Dest (subsection.9.2.4) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 2026 974 a 55 w Fk(.)42 b(.)f(.)h(.)g(.)f +(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) +f(.)69 b(74)956 1076 y +SDict begin H.S end + 956 1076 a Fk(9.2.5.)137 b(Apac)n(he2)1598 +1076 y +SDict begin 12 H.L end + 1598 1076 a 1598 1076 a +SDict begin [/Subtype /Link/Dest (subsection.9.2.5) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1598 1076 a 31 w Fk(.)42 +b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g +(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)69 +b(76)956 1179 y +SDict begin H.S end + 956 1179 a Fk(9.2.6.)137 b(T)-7 b(esten)1526 +1179 y +SDict begin 12 H.L end + 1526 1179 a 1526 1179 a +SDict begin [/Subtype /Link/Dest (subsection.9.2.6) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1526 1179 a 39 w Fk(.)41 +b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h +(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)69 +b(76)956 1281 y +SDict begin H.S end + 956 1281 a Fk(9.2.7.)137 b(Upgrade)1596 +1281 y +SDict begin 12 H.L end + 1596 1281 a 1596 1281 a +SDict begin [/Subtype /Link/Dest (subsection.9.2.7) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1596 1281 a 33 w Fk(.)42 +b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g +(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)69 +b(77)956 1383 y +SDict begin H.S end + 956 1383 a Fk(9.2.8.)137 b(PureFTPd)1676 +1383 y +SDict begin 12 H.L end + 1676 1383 a 1676 1383 a +SDict begin [/Subtype /Link/Dest (subsection.9.2.8) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1676 1383 a 83 w Fk(.)41 +b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h +(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)69 b(77)765 +1486 y +SDict begin H.S end + 765 1486 a Fk(9.3.)119 b(Apac)n(he)27 b(starten)1564 +1486 y +SDict begin 12 H.L end + 1564 1486 a 1564 1486 a +SDict begin [/Subtype /Link/Dest (section.9.3) cvn/H /I/Border [0 0 +1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark end + 1564 1486 a 65 w Fk(.)42 +b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g +(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)69 +b(78)956 1588 y +SDict begin H.S end + 956 1588 a Fk(9.3.1.)137 b(Apac)n(he)27 +b(starten)1838 1588 y +SDict begin 12 H.L end + 1838 1588 a 1838 1588 a +SDict begin [/Subtype /Link/Dest (subsection.9.3.1) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1838 1588 +a 50 w Fk(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) +f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)69 b(78)956 +1690 y +SDict begin H.S end + 956 1690 a Fk(9.3.2.)137 b(Wie)27 b(der)h(Apac)n(he)f(startet) +2140 1690 y +SDict begin 12 H.L end + 2140 1690 a 2140 1690 a +SDict begin [/Subtype /Link/Dest (subsection.9.3.2) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 2140 1690 a 70 w +Fk(.)42 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g +(.)f(.)h(.)f(.)h(.)f(.)69 b(78)956 1793 y +SDict begin H.S end + 956 1793 a +Fk(9.3.3.)137 b(F)-7 b(ehler)27 b(w)n(\344hrend)g(des)g(Ho)r(c)n +(hfahrens)2465 1793 y +SDict begin 12 H.L end + 2465 1793 a 2465 1793 a +SDict begin [/Subtype /Link/Dest (subsection.9.3.3) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 2465 1793 +a 68 w Fk(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) +h(.)f(.)69 b(79)956 1895 y +SDict begin H.S end + 956 1895 a Fk(9.3.4.)137 b(Automatisc)n(h)27 +b(starten)g(und)h(b)r(eenden)2522 1895 y +SDict begin 12 H.L end + 2522 1895 a +2522 1895 a +SDict begin [/Subtype /Link/Dest (subsection.9.3.4) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 2522 1895 a 76 w Fk(.)41 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h +(.)g(.)f(.)h(.)f(.)h(.)f(.)69 b(79)956 1997 y +SDict begin H.S end + 956 1997 +a Fk(9.3.5.)137 b(W)-7 b(eitere)27 b(Informationen)2105 +1997 y +SDict begin 12 H.L end + 2105 1997 a 2105 1997 a +SDict begin [/Subtype /Link/Dest (subsection.9.3.5) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 2105 1997 a 41 w Fk(.)41 +b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f +(.)h(.)f(.)h(.)f(.)69 b(79)765 2100 y +SDict begin H.S end + 765 2100 a Fk(9.4.)119 +b(Beenden)27 b(und)h(Neustarten)1915 2100 y +SDict begin 12 H.L end + 1915 2100 +a 1915 2100 a +SDict begin [/Subtype /Link/Dest (section.9.4) cvn/H /I/Border [0 0 +1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark end + 1915 2100 a 37 w Fk(.)42 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) +f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)69 +b(80)956 2202 y +SDict begin H.S end + 956 2202 a Fk(9.4.1.)137 b(Einleitung)1662 +2202 y +SDict begin 12 H.L end + 1662 2202 a 1662 2202 a +SDict begin [/Subtype /Link/Dest (subsection.9.4.1) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1662 2202 a 32 w Fk(.)42 +b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f +(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)69 b(80)956 +2304 y +SDict begin H.S end + 956 2304 a Fk(9.4.2.)137 b(Beenden)1596 2304 y +SDict begin 12 H.L end + +1596 2304 a 1596 2304 a +SDict begin [/Subtype /Link/Dest (subsection.9.4.2) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1596 2304 a 33 w Fk(.)42 b(.)g(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) +h(.)g(.)f(.)h(.)f(.)h(.)f(.)69 b(80)956 2407 y +SDict begin H.S end + 956 2407 +a Fk(9.4.3.)137 b(Un)n(terbrec)n(h)n(ungsfreier)25 b(Neustart)2388 +2407 y +SDict begin 12 H.L end + 2388 2407 a 2388 2407 a +SDict begin [/Subtype /Link/Dest (subsection.9.4.3) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 2388 2407 a 81 w Fk(.)41 +b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)69 +b(80)956 2509 y +SDict begin H.S end + 956 2509 a Fk(9.4.4.)137 b(Neustarten)1688 +2509 y +SDict begin 12 H.L end + 1688 2509 a 1688 2509 a +SDict begin [/Subtype /Link/Dest (subsection.9.4.4) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1688 2509 a 71 w Fk(.)41 +b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h +(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)69 b(81)956 +2611 y +SDict begin H.S end + 956 2611 a Fk(9.4.5.)137 b(Anhang:)27 b(Syn)n(tax)g(\374b)r +(erpr\374fen)2298 2611 y +SDict begin 12 H.L end + 2298 2611 a 2298 2611 a +SDict begin [/Subtype /Link/Dest (subsection.9.4.5) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 2298 +2611 a 42 w Fk(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h +(.)g(.)f(.)h(.)f(.)h(.)f(.)69 b(81)765 2714 y +SDict begin H.S end + 765 2714 +a Fk(9.5.)119 b(Anhang)1298 2714 y +SDict begin 12 H.L end + 1298 2714 a 1298 2714 +a +SDict begin [/Subtype /Link/Dest (section.9.5) cvn/H /I/Border [0 0 +1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark end + 1298 2714 a 73 w Fk(.)42 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g +(.)f(.)h(.)f(.)h(.)f(.)69 b(82)956 2816 y +SDict begin H.S end + 956 2816 a +Fk(9.5.1.)137 b(Zu)27 b(den)h(Dateien)1849 2816 y +SDict begin 12 H.L end + 1849 +2816 a 1849 2816 a +SDict begin [/Subtype /Link/Dest (subsection.9.5.1) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1849 2816 a 39 w Fk(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g +(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) +h(.)f(.)69 b(82)765 2918 y +SDict begin H.S end + 765 2918 a Fk(9.6.)119 b(Ben)n(utzerhandbuc) +n(h)1692 2918 y +SDict begin 12 H.L end + 1692 2918 a 1692 2918 a +SDict begin [/Subtype /Link/Dest (section.9.6) cvn/H /I/Border [0 0 +1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark end + 1692 2918 a 67 +w Fk(.)41 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g +(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)69 +b(82)956 3021 y +SDict begin H.S end + 956 3021 a Fk(9.6.1.)137 b(h)n(ttp)r(d.conf)1663 +3021 y +SDict begin 12 H.L end + 1663 3021 a 1663 3021 a +SDict begin [/Subtype /Link/Dest (subsection.9.6.1) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1663 3021 a 31 w Fk(.)42 +b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f +(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)69 b(82)956 +3123 y +SDict begin H.S end + 956 3123 a Fk(9.6.2.)137 b(A)n(ccess)26 b(Con)n(trol)h(List)g +(File)h(\(.h)n(taccess\))2568 3123 y +SDict begin 12 H.L end + 2568 3123 a 2568 +3123 a +SDict begin [/Subtype /Link/Dest (subsection.9.6.2) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 2568 3123 a 30 w Fk(.)41 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g +(.)f(.)h(.)f(.)h(.)f(.)69 b(85)956 3225 y +SDict begin H.S end + 956 3225 a +Fk(9.6.3.)137 b(Grupp)r(endatei)27 b(\(.h)n(tgroup\))2188 +3225 y +SDict begin 12 H.L end + 2188 3225 a 2188 3225 a +SDict begin [/Subtype /Link/Dest (subsection.9.6.3) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 2188 3225 a 22 w Fk(.)42 +b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h +(.)f(.)h(.)f(.)69 b(86)956 3328 y +SDict begin H.S end + 956 3328 a Fk(9.6.4.)137 +b(P)n(assw)n(ort-Datei)25 b(\(.h)n(tpasswd\))2288 3328 +y +SDict begin 12 H.L end + 2288 3328 a 2288 3328 a +SDict begin [/Subtype /Link/Dest (subsection.9.6.4) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 2288 3328 a 52 w Fk(.)41 b(.)h(.)f(.)h(.)f(.) +h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)69 +b(86)956 3430 y +SDict begin H.S end + 956 3430 a Fk(9.6.5.)137 b(Erstellen)27 +b(eines)h(SSL-Zerti\034k)-5 b(ats)2379 3430 y +SDict begin 12 H.L end + 2379 3430 +a 2379 3430 a +SDict begin [/Subtype /Link/Dest (subsection.9.6.5) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 2379 3430 a 25 w Fk(.)42 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) +f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)69 b(86)956 3532 +y +SDict begin H.S end + 956 3532 a Fk(9.6.6.)137 b(LinkIcon)27 b(\(fa)n(vicon.ico\))2081 +3532 y +SDict begin 12 H.L end + 2081 3532 a 2081 3532 a +SDict begin [/Subtype /Link/Dest (subsection.9.6.6) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 2081 3532 a 65 w Fk(.)41 +b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f +(.)h(.)f(.)h(.)f(.)69 b(86)640 3729 y +SDict begin H.S end + 640 3729 a Fj(10.)8 +b(MySQL)1053 3729 y +SDict begin 12 H.L end + 1053 3729 a 1053 3729 a +SDict begin [/Subtype /Link/Dest (chapter.10) cvn/H /I/Border [0 0 +1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark end + 1053 3729 +a 2596 w Fj(89)765 3831 y +SDict begin H.S end + 765 3831 a Fk(10.1.)77 b(Einleitung)1388 +3831 y +SDict begin 12 H.L end + 1388 3831 a 1388 3831 a +SDict begin [/Subtype /Link/Dest (section.10.1) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1388 3831 a 48 w Fk(.)41 +b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h +(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)69 +b(89)765 3933 y +SDict begin H.S end + 765 3933 a Fk(10.2.)77 b(K)n(ompilieren)26 +b(und)i(Installieren)2053 3933 y +SDict begin 12 H.L end + 2053 3933 a 2053 3933 +a +SDict begin [/Subtype /Link/Dest (section.10.2) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 2053 3933 a 28 w Fk(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) +f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)69 b(89)956 +4036 y +SDict begin H.S end + 956 4036 a Fk(10.2.1.)95 b(Anforderungen)1829 +4036 y +SDict begin 12 H.L end + 1829 4036 a 1829 4036 a +SDict begin [/Subtype /Link/Dest (subsection.10.2.1) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1829 4036 a 59 w Fk(.)41 +b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h +(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)69 b(89)956 4138 y +SDict begin H.S end + +956 4138 a Fk(10.2.2.)95 b(V)-7 b(orb)r(ereitungen)1845 +4138 y +SDict begin 12 H.L end + 1845 4138 a 1845 4138 a +SDict begin [/Subtype /Link/Dest (subsection.10.2.2) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1845 4138 a 43 w Fk(.)41 +b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h +(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)69 b(89)956 4240 y +SDict begin H.S end + +956 4240 a Fk(10.2.3.)95 b(MySQL)1571 4240 y +SDict begin 12 H.L end + 1571 4240 +a 1571 4240 a +SDict begin [/Subtype /Link/Dest (subsection.10.2.3) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1571 4240 a 58 w Fk(.)42 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f +(.)h(.)f(.)h(.)f(.)69 b(89)956 4343 y +SDict begin H.S end + 956 4343 a Fk(10.2.4.)95 +b(MySQL)27 b(T)-7 b(esten)1836 4343 y +SDict begin 12 H.L end + 1836 4343 a 1836 +4343 a +SDict begin [/Subtype /Link/Dest (subsection.10.2.4) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1836 4343 a 52 w Fk(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f +(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)69 +b(90)956 4445 y +SDict begin H.S end + 956 4445 a Fk(10.2.5.)95 b(phpMyA)n(dmin)1790 +4445 y +SDict begin 12 H.L end + 1790 4445 a 1790 4445 a +SDict begin [/Subtype /Link/Dest (subsection.10.2.5) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1790 4445 a 33 w Fk(.)42 +b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f +(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)69 b(91)640 4641 +y +SDict begin H.S end + 640 4641 a Fj(11.)8 b(PHP)947 4641 y +SDict begin 12 H.L end + 947 4641 a 947 +4641 a +SDict begin [/Subtype /Link/Dest (chapter.11) cvn/H /I/Border [0 0 +1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark end + 947 4641 a 2702 w Fj(93)765 4744 y +SDict begin H.S end + 765 4744 a +Fk(11.1.)77 b(Einleitung)1388 4744 y +SDict begin 12 H.L end + 1388 4744 a 1388 +4744 a +SDict begin [/Subtype /Link/Dest (section.11.1) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1388 4744 a 48 w Fk(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) +g(.)f(.)h(.)f(.)h(.)f(.)69 b(93)640 5092 y(8)p eop end +%%Page: 9 9 +TeXDict begin 9 8 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a 12 +-5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.9) cvn /DEST pdfmark end + 12 -5 a 2478 128 a Fh(Inhaltsv)n(erzeic)n(hnis)145 +360 y +SDict begin H.S end + 145 360 a Fk(11.2.)77 b(K)n(ompilieren)26 b(und)i(Installieren) +1433 360 y +SDict begin 12 H.L end + 1433 360 a 1433 360 a +SDict begin [/Subtype /Link/Dest (section.11.2) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1433 360 a 28 w Fk(.)42 +b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)g(.)f(.)h(.)f(.)68 b(93)335 460 y +SDict begin H.S end + 335 460 a Fk(11.2.1.)95 +b(Anforderungen)1208 460 y +SDict begin 12 H.L end + 1208 460 a 1208 460 a +SDict begin [/Subtype /Link/Dest (subsection.11.2.1) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1208 +460 a 60 w Fk(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) +g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)68 +b(93)335 561 y +SDict begin H.S end + 335 561 a Fk(11.2.2.)95 b(V)-7 b(orb)r(ereitungen)1224 +561 y +SDict begin 12 H.L end + 1224 561 a 1224 561 a +SDict begin [/Subtype /Link/Dest (subsection.11.2.2) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1224 561 a 44 w Fk(.)41 b(.)h(.)f(.)h(.)f +(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +g(.)f(.)h(.)f(.)68 b(93)335 661 y +SDict begin H.S end + 335 661 a Fk(11.2.3.)95 +b(Libraries)26 b(f\374r)i(Zusatzfunktionen)1775 661 y +SDict begin 12 H.L end + +1775 661 a 1775 661 a +SDict begin [/Subtype /Link/Dest (subsection.11.2.3) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1775 661 a 74 w Fk(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)68 b(94)335 +762 y +SDict begin H.S end + 335 762 a Fk(11.2.4.)95 b(PHP)841 762 y +SDict begin 12 H.L end + 841 762 +a 841 762 a +SDict begin [/Subtype /Link/Dest (subsection.11.2.4) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 841 762 a 39 w Fk(.)42 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) +h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)g(.)f(.)h(.)f(.)68 b(95)145 862 y +SDict begin H.S end + 145 862 a Fk(11.3.)77 +b(Referenz)707 862 y +SDict begin 12 H.L end + 707 862 a 707 862 a +SDict begin [/Subtype /Link/Dest (section.11.3) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 707 862 a 44 +w Fk(.)42 b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f +(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) +f(.)68 b(96)335 963 y +SDict begin H.S end + 335 963 a Fk(11.3.1.)95 b(Grundlagen)1093 +963 y +SDict begin 12 H.L end + 1093 963 a 1093 963 a +SDict begin [/Subtype /Link/Dest (subsection.11.3.1) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1093 963 a 45 w Fk(.)42 b(.)g(.)f(.)h(.)f +(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)g(.)f(.)h(.)f(.)68 b(96)335 1063 y +SDict begin H.S end + 335 1063 a +Fk(11.3.2.)95 b(F)-7 b(unktionen)1076 1063 y +SDict begin 12 H.L end + 1076 1063 +a 1076 1063 a +SDict begin [/Subtype /Link/Dest (subsection.11.3.2) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1076 1063 a 62 w Fk(.)42 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) +g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f +(.)h(.)f(.)68 b(96)20 1250 y +SDict begin H.S end + 20 1250 a Fj(12.)8 b(Squid)358 +1250 y +SDict begin 12 H.L end + 358 1250 a 358 1250 a +SDict begin [/Subtype /Link/Dest (chapter.12) cvn/H /I/Border [0 0 +1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark end + 358 1250 a 2671 w Fj(97)145 +1350 y +SDict begin H.S end + 145 1350 a Fk(12.1.)77 b(Pro)n(xy)611 1350 y +SDict begin 12 H.L end + 611 +1350 a 611 1350 a +SDict begin [/Subtype /Link/Dest (section.12.1) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 611 1350 a 75 w Fk(.)42 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h +(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)68 b(97)145 1451 +y +SDict begin H.S end + 145 1451 a Fk(12.2.)77 b(Einfac)n(her)27 b(Cac)n(he)984 +1451 y +SDict begin 12 H.L end + 984 1451 a 984 1451 a +SDict begin [/Subtype /Link/Dest (section.12.2) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 984 1451 a 25 w Fk(.)42 +b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)68 +b(97)145 1551 y +SDict begin H.S end + 145 1551 a Fk(12.3.)77 b(Pro)n(xy)26 +b(Cac)n(he)857 1551 y +SDict begin 12 H.L end + 857 1551 a 857 1551 a +SDict begin [/Subtype /Link/Dest (section.12.3) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 857 1551 +a 23 w Fk(.)42 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) +h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f +(.)68 b(97)145 1652 y +SDict begin H.S end + 145 1652 a Fk(12.4.)77 b(Aufgab)r(en)742 +1652 y +SDict begin 12 H.L end + 742 1652 a 742 1652 a +SDict begin [/Subtype /Link/Dest (section.12.4) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 742 1652 a 74 w Fk(.)41 +b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h +(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)68 +b(97)145 1752 y +SDict begin H.S end + 145 1752 a Fk(12.5.)77 b(Eigensc)n(haften)894 +1752 y +SDict begin 12 H.L end + 894 1752 a 894 1752 a +SDict begin [/Subtype /Link/Dest (section.12.5) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 894 1752 a 51 w Fk(.)41 +b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h +(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)68 +b(98)145 1853 y +SDict begin H.S end + 145 1853 a Fk(12.6.)77 b(Protok)n(olle)766 +1853 y +SDict begin 12 H.L end + 766 1853 a 766 1853 a +SDict begin [/Subtype /Link/Dest (section.12.6) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 766 1853 a 50 w Fk(.)41 +b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h +(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)68 +b(98)335 1953 y +SDict begin H.S end + 335 1953 a Fk(12.6.1.)95 b(Clien)n(t-K)n(omm)n(unik)-5 +b(ation)1494 1953 y +SDict begin 12 H.L end + 1494 1953 a 1494 1953 a +SDict begin [/Subtype /Link/Dest (subsection.12.6.1) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1494 1953 +a 32 w Fk(.)41 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)68 b(98)335 2054 y +SDict begin H.S end + 335 +2054 a Fk(12.6.2.)95 b(K)n(omm)n(unik)-5 b(ation)27 b(zwisc)n(hen)g +(Pro)n(xy-Cac)n(he-Serv)n(ern)2385 2054 y +SDict begin 12 H.L end + 2385 2054 a +2385 2054 a +SDict begin [/Subtype /Link/Dest (subsection.12.6.2) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 2385 2054 a 45 w Fk(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)68 +b(98)145 2154 y +SDict begin H.S end + 145 2154 a Fk(12.7.)77 b(System)n(v)n(oraussetzungen) +1247 2154 y +SDict begin 12 H.L end + 1247 2154 a 1247 2154 a +SDict begin [/Subtype /Link/Dest (section.12.7) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1247 2154 a 21 w +Fk(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)68 b(99)145 +2255 y +SDict begin H.S end + 145 2255 a Fk(12.8.)77 b(SuSE)28 b(Lin)n(ux)825 +2255 y +SDict begin 12 H.L end + 825 2255 a 825 2255 a +SDict begin [/Subtype /Link/Dest (section.12.8) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 825 2255 a 55 w Fk(.)42 +b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f +(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)68 +b(99)145 2355 y +SDict begin H.S end + 145 2355 a Fk(12.9.)77 b(Automatisc)n(he)27 +b(Starten)g(v)n(on)g(Squit)1563 2355 y +SDict begin 12 H.L end + 1563 2355 a 1563 +2355 a +SDict begin [/Subtype /Link/Dest (section.12.9) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1563 2355 a 27 w Fk(.)42 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)68 b(99)145 +2455 y +SDict begin H.S end + 145 2455 a Fk(12.10.)35 b(Squiddateien)862 2455 +y +SDict begin 12 H.L end + 862 2455 a 862 2455 a +SDict begin [/Subtype /Link/Dest (section.12.10) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 862 2455 a 83 w Fk(.)41 b(.)h(.)f(.)h(.)g(.)f +(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)68 b(99)145 2556 y +SDict begin H.S end + 145 +2556 a Fk(12.11.)35 b(squid.conf)759 2556 y +SDict begin 12 H.L end + 759 2556 +a 759 2556 a +SDict begin [/Subtype /Link/Dest (section.12.11) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 759 2556 a 57 w Fk(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h +(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)g(.)f(.)h(.)f(.)68 b(99)20 2863 y +SDict begin H.S end + 20 2863 +a Fi(IV.)31 b(Programmieren)902 2863 y +SDict begin 14 H.L end + 902 2863 a 902 +2863 a +SDict begin [/Subtype /Link/Dest (part.4) cvn/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Color [1 0 0] H.B /ANN pdfmark end + 902 2863 a 2090 w Fi(103)20 3050 y +SDict begin H.S end + 20 3050 a Fj(13.)8 +b(Bash)332 3050 y +SDict begin 12 H.L end + 332 3050 a 332 3050 a +SDict begin [/Subtype /Link/Dest (chapter.13) cvn/H /I/Border [0 0 +1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark end + 332 3050 a 2660 +w Fj(105)145 3150 y +SDict begin H.S end + 145 3150 a Fk(13.1.)77 b(Einleitung)768 +3150 y +SDict begin 12 H.L end + 768 3150 a 768 3150 a +SDict begin [/Subtype /Link/Dest (section.13.1) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 768 3150 a 48 w Fk(.)41 +b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h +(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)27 +b(105)145 3251 y +SDict begin H.S end + 145 3251 a Fk(13.2.)77 b(Referenz)707 +3251 y +SDict begin 12 H.L end + 707 3251 a 707 3251 a +SDict begin [/Subtype /Link/Dest (section.13.2) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 707 3251 a 44 w Fk(.)42 +b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f +(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)27 +b(105)145 3351 y +SDict begin H.S end + 145 3351 a Fk(13.3.)77 b(Steuer)27 b(und)h(Sonderzeic) +n(hen)e(der)i(Bash)1679 3351 y +SDict begin 12 H.L end + 1679 3351 a 1679 3351 +a +SDict begin [/Subtype /Link/Dest (section.13.3) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1679 3351 a 41 w Fk(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)27 b(106)20 3538 y +SDict begin H.S end + 20 +3538 a Fj(14.)8 b(git)246 3538 y +SDict begin 12 H.L end + 246 3538 a 246 3538 +a +SDict begin [/Subtype /Link/Dest (chapter.14) cvn/H /I/Border [0 0 +1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark end + 246 3538 a 2746 w Fj(107)145 3639 y +SDict begin H.S end + 145 3639 a Fk(14.1.)77 +b(Dokumen)n(tation)956 3639 y +SDict begin 12 H.L end + 956 3639 a 956 3639 a +SDict begin [/Subtype /Link/Dest (section.14.1) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 956 +3639 a 53 w Fk(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h +(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) +27 b(107)145 3739 y +SDict begin H.S end + 145 3739 a Fk(14.2.)77 b(K)n(on\034guration)897 +3739 y +SDict begin 12 H.L end + 897 3739 a 897 3739 a +SDict begin [/Subtype /Link/Dest (section.14.2) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 897 3739 a 48 w Fk(.)41 +b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h +(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)27 +b(107)145 3839 y +SDict begin H.S end + 145 3839 a Fk(14.3.)77 b(K)n(on\034gurationen)25 +b(\374b)r(er)i(Umgebungsv)-5 b(ariablen)1950 3839 y +SDict begin 12 H.L end + 1950 +3839 a 1950 3839 a +SDict begin [/Subtype /Link/Dest (section.14.3) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1950 3839 a 28 w Fk(.)41 b(.)h(.)g(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)27 b(108)145 3940 +y +SDict begin H.S end + 145 3940 a Fk(14.4.)77 b(Der)27 b(Index)757 3940 y +SDict begin 12 H.L end + +757 3940 a 757 3940 a +SDict begin [/Subtype /Link/Dest (section.14.4) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 757 3940 a 59 w Fk(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g +(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)27 b(108)145 4040 +y +SDict begin H.S end + 145 4040 a Fk(14.5.)77 b(Rep)r(ository)789 4040 y +SDict begin 12 H.L end + 789 +4040 a 789 4040 a +SDict begin [/Subtype /Link/Dest (section.14.5) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 789 4040 a 27 w Fk(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f +(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)27 b(109)145 4141 y +SDict begin H.S end + 145 +4141 a Fk(14.6.)77 b(Commit)689 4141 y +SDict begin 12 H.L end + 689 4141 a 689 +4141 a +SDict begin [/Subtype /Link/Dest (section.14.6) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 689 4141 a 62 w Fk(.)42 b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) +f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)g(.)f(.)h(.)f(.)27 b(109)145 4241 y +SDict begin H.S end + 145 4241 +a Fk(14.7.)77 b(Dateien)27 b(en)n(tfernen)1038 4241 y +SDict begin 12 H.L end + +1038 4241 a 1038 4241 a +SDict begin [/Subtype /Link/Dest (section.14.7) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1038 4241 a 36 w Fk(.)41 b(.)h(.)g(.)f(.)h(.)f +(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)g(.)f(.)h(.)f(.)27 b(109)145 4342 y +SDict begin H.S end + 145 4342 +a Fk(14.8.)77 b(Dateien)27 b(v)n(ersc)n(hieb)r(en)1118 +4342 y +SDict begin 12 H.L end + 1118 4342 a 1118 4342 a +SDict begin [/Subtype /Link/Dest (section.14.8) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1118 4342 a 20 w Fk(.)42 +b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)27 b(109)145 +4442 y +SDict begin H.S end + 145 4442 a Fk(14.9.)77 b(\304nderung)27 b(an)g(einer)g(Datei)h +(r\374c)n(kg\344ngig)d(mac)n(hen)2017 4442 y +SDict begin 12 H.L end + 2017 4442 +a 2017 4442 a +SDict begin [/Subtype /Link/Dest (section.14.9) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 2017 4442 a 25 w Fk(.)42 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)g(.)f(.)h(.)f(.)27 b(109)145 4543 y +SDict begin H.S end + 145 4543 +a Fk(14.10.)35 b(Dateien)27 b(ignorieren)1063 4543 y +SDict begin 12 H.L end + +1063 4543 a 1063 4543 a +SDict begin [/Subtype /Link/Dest (section.14.10) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1063 4543 a 75 w Fk(.)42 b(.)g(.)f(.)h(.)f(.)h +(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)g(.)f(.)h(.)f(.)27 b(110)145 4643 y +SDict begin H.S end + 145 4643 a Fk(14.11.)35 +b(Mit)28 b(externen)f(Rep)r(ositorys)f(arb)r(eiten)1644 +4643 y +SDict begin 12 H.L end + 1644 4643 a 1644 4643 a +SDict begin [/Subtype /Link/Dest (section.14.11) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1644 4643 a 76 w Fk(.)41 +b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h +(.)f(.)27 b(110)145 4744 y +SDict begin H.S end + 145 4744 a Fk(14.12.)35 b(T)-7 +b(ags)564 4744 y +SDict begin 12 H.L end + 564 4744 a 564 4744 a +SDict begin [/Subtype /Link/Dest (section.14.12) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 564 4744 a 58 +w Fk(.)41 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h +(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) +f(.)h(.)f(.)27 b(111)3079 5092 y(9)p eop end +%%Page: 10 10 +TeXDict begin 10 9 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 a +632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.10) cvn /DEST pdfmark end + 632 -5 a 640 128 a Fh(Inhaltsv)n(erzeic)n +(hnis)765 360 y +SDict begin H.S end + 765 360 a Fk(14.13.)35 b(Branc)n(h)1275 +360 y +SDict begin 12 H.L end + 1275 360 a 1275 360 a +SDict begin [/Subtype /Link/Dest (section.14.13) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1275 360 a 32 w Fk(.)41 b(.)h(.)f(.)h(.)f +(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) +g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)27 +b(111)765 461 y +SDict begin H.S end + 765 461 a Fk(14.14.)35 b(Git)28 b(Aliase)1382 +461 y +SDict begin 12 H.L end + 1382 461 a 1382 461 a +SDict begin [/Subtype /Link/Dest (section.14.14) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1382 461 a 54 w Fk(.)41 b(.)h(.)f(.)h(.)g +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) +h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)27 b(111)765 +562 y +SDict begin H.S end + 765 562 a Fk(14.15.)35 b(Git)28 b(auf)f(einen)h(Serv)n(er)e(b)r +(ek)n(ommen)2163 562 y +SDict begin 12 H.L end + 2163 562 a 2163 562 a +SDict begin [/Subtype /Link/Dest (section.14.15) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 2163 562 +a 47 w Fk(.)42 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) +h(.)g(.)f(.)h(.)f(.)h(.)f(.)27 b(112)765 662 y +SDict begin H.S end + 765 662 +a Fk(14.16.)35 b(Git)28 b(auf)f(dem)h(SSH-Serv)n(er)e(einric)n(h)n(ten) +2274 662 y +SDict begin 12 H.L end + 2274 662 a 2274 662 a +SDict begin [/Subtype /Link/Dest (section.14.16) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 2274 662 a 66 w Fk(.)41 +b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h +(.)f(.)27 b(112)765 763 y +SDict begin H.S end + 765 763 a Fk(14.17.)35 b(\326\033en)n(tlic)n +(her)26 b(W)-7 b(ebserv)n(er-Zugang)2136 763 y +SDict begin 12 H.L end + 2136 763 +a 2136 763 a +SDict begin [/Subtype /Link/Dest (section.14.17) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 2136 763 a 74 w Fk(.)42 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g +(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)27 +b(113)765 864 y +SDict begin H.S end + 765 864 a Fk(14.18.)35 b(Grundb)r(egri\033e)1518 +864 y +SDict begin 12 H.L end + 1518 864 a 1518 864 a +SDict begin [/Subtype /Link/Dest (section.14.18) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1518 864 a 47 w Fk(.)41 b(.)h(.)g(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) +h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)27 b(114)640 1053 +y +SDict begin H.S end + 640 1053 a Fj(15.)8 b(C/C++)1069 1053 y +SDict begin 12 H.L end + 1069 1053 a +1069 1053 a +SDict begin [/Subtype /Link/Dest (chapter.15) cvn/H /I/Border [0 0 +1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark end + 1069 1053 a 2543 w Fj(117)765 1153 y +SDict begin H.S end + 765 +1153 a Fk(15.1.)77 b(Befehle)27 b(und)h(Grundelemen)n(te)2023 +1153 y +SDict begin 12 H.L end + 2023 1153 a 2023 1153 a +SDict begin [/Subtype /Link/Dest (section.15.1) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 2023 1153 a 58 w Fk(.)42 +b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g +(.)f(.)h(.)f(.)h(.)f(.)27 b(117)765 1254 y +SDict begin H.S end + 765 1254 a +Fk(15.2.)77 b(Steuersequenzen)27 b(f\374r)g(ANSI-Bildsc)n(hirme)g(-)h +(Innerhalb)f(v)n(on)f(T)-7 b(exten)3285 1254 y +SDict begin 12 H.L end + 3285 1254 +a 3285 1254 a +SDict begin [/Subtype /Link/Dest (section.15.2) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 3285 1254 a 23 w Fk(.)42 b(.)f(.)h(.)f(.)27 +b(117)765 1355 y +SDict begin H.S end + 765 1355 a Fk(15.3.)77 b(stdio.h)27 +b(->)g(Standard)g(Ein-)h(und)g(Ausgab)r(e)2423 1355 y +SDict begin 12 H.L end + +2423 1355 a 2423 1355 a +SDict begin [/Subtype /Link/Dest (section.15.3) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 2423 1355 a 46 w Fk(.)41 b(.)h(.)f(.)h(.)g(.)f +(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)27 b(118)765 +1456 y +SDict begin H.S end + 765 1456 a Fk(15.4.)77 b(ct)n(yp)r(e.h)1279 1456 +y +SDict begin 12 H.L end + 1279 1456 a 1279 1456 a +SDict begin [/Subtype /Link/Dest (section.15.4) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1279 1456 a 28 w Fk(.)41 b(.)h(.)f(.)h(.)f(.) +h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g +(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)27 +b(119)765 1557 y +SDict begin H.S end + 765 1557 a Fk(15.5.)77 b(string.h)1292 +1557 y +SDict begin 12 H.L end + 1292 1557 a 1292 1557 a +SDict begin [/Subtype /Link/Dest (section.15.5) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1292 1557 a 79 w Fk(.)42 +b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f +(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)27 +b(119)765 1658 y +SDict begin H.S end + 765 1658 a Fk(15.6.)77 b(K)n(on)n(trollstrukturen)1698 +1658 y +SDict begin 12 H.L end + 1698 1658 a 1698 1658 a +SDict begin [/Subtype /Link/Dest (section.15.6) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1698 1658 a 61 w Fk(.)41 +b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h +(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)27 b(120)765 +1758 y +SDict begin H.S end + 765 1758 a Fk(15.7.)77 b(ASCI)r(I\(American)28 +b(Standart)f(Co)r(de)g(for)g(Information)g(In)n(terc)n(hange\)-T)-7 +b(ab)r(elle)3544 1758 y +SDict begin 12 H.L end + 3544 1758 a 3544 1758 a +SDict begin [/Subtype /Link/Dest (section.15.7) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 3544 +1758 a 22 w Fk(.)27 b(121)956 1859 y +SDict begin H.S end + 956 1859 a Fk(15.7.1.)95 +b(Un)n(terteilung)27 b(der)g(Steuerzeic)n(hen:)2430 1859 +y +SDict begin 12 H.L end + 2430 1859 a 2430 1859 a +SDict begin [/Subtype /Link/Dest (subsection.15.7.1) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 2430 1859 a 39 w Fk(.)41 b(.)h(.)f(.)h(.)g(.) +f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)27 b(122)956 +1960 y +SDict begin H.S end + 956 1960 a Fk(15.7.2.)95 b(Bedeutung)27 b(der)g(Steuerzeic)n +(hen:)2364 1960 y +SDict begin 12 H.L end + 2364 1960 a 2364 1960 a +SDict begin [/Subtype /Link/Dest (subsection.15.7.2) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 2364 1960 a +40 w Fk(.)42 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h +(.)f(.)h(.)f(.)27 b(122)765 2061 y +SDict begin H.S end + 765 2061 a Fk(15.8.)77 +b(Op)r(eratoren)25 b(und)k(Ausdr\374c)n(k)n(e)2001 2061 +y +SDict begin 12 H.L end + 2001 2061 a 2001 2061 a +SDict begin [/Subtype /Link/Dest (section.15.8) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 2001 2061 a 80 w Fk(.)42 b(.)f(.)h(.)g(.)f(.) +h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f +(.)27 b(123)956 2162 y +SDict begin H.S end + 956 2162 a Fk(15.8.1.)95 b(Arithmetisc)n(he)27 +b(Op)r(eratoren:)2261 2162 y +SDict begin 12 H.L end + 2261 2162 a 2261 2162 a +SDict begin [/Subtype /Link/Dest (subsection.15.8.1) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + +2261 2162 a 79 w Fk(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f +(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)27 b(123)956 2262 y +SDict begin H.S end + 956 +2262 a Fk(15.8.2.)95 b(V)-7 b(ergleic)n(hsop)r(eratoren:)2067 +2262 y +SDict begin 12 H.L end + 2067 2262 a 2067 2262 a +SDict begin [/Subtype /Link/Dest (subsection.15.8.2) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 2067 2262 a 79 w Fk(.)41 +b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f +(.)h(.)f(.)h(.)f(.)27 b(123)956 2363 y +SDict begin H.S end + 956 2363 a Fk(15.8.3.)95 +b(Logisc)n(he)25 b(Op)r(eratoren:)2061 2363 y +SDict begin 12 H.L end + 2061 2363 +a 2061 2363 a +SDict begin [/Subtype /Link/Dest (subsection.15.8.3) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 2061 2363 a 20 w Fk(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) +f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)27 +b(123)956 2464 y +SDict begin H.S end + 956 2464 a Fk(15.8.4.)95 b(Zu)n(w)n(eisungsop)r +(eratoren:)2116 2464 y +SDict begin 12 H.L end + 2116 2464 a 2116 2464 a +SDict begin [/Subtype /Link/Dest (subsection.15.8.4) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 2116 2464 +a 30 w Fk(.)41 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) +f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)27 b(124)956 2565 y +SDict begin H.S end + 956 +2565 a Fk(15.8.5.)95 b(P)n(ost-)27 b(und)h(Pre\034x-)f(Op)r(eratoren:) +2379 2565 y +SDict begin 12 H.L end + 2379 2565 a 2379 2565 a +SDict begin [/Subtype /Link/Dest (subsection.15.8.5) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 2379 2565 a 25 w +Fk(.)42 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f +(.)h(.)f(.)27 b(124)956 2666 y +SDict begin H.S end + 956 2666 a Fk(15.8.6.)95 +b(Zeigerop)r(eratoren:)1926 2666 y +SDict begin 12 H.L end + 1926 2666 a 1926 2666 +a +SDict begin [/Subtype /Link/Dest (subsection.15.8.6) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1926 2666 a 26 w Fk(.)42 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) +h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)27 +b(124)956 2766 y +SDict begin H.S end + 956 2766 a Fk(15.8.7.)95 b(Div)n(erse)26 +b(Kategorien:)2004 2766 y +SDict begin 12 H.L end + 2004 2766 a 2004 2766 a +SDict begin [/Subtype /Link/Dest (subsection.15.8.7) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 2004 +2766 a 77 w Fk(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h +(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)27 b(124)765 +2867 y +SDict begin H.S end + 765 2867 a Fk(15.9.)77 b(Inkremen)n(tieren)26 +b(und)i(Dekremen)n(tieren)2326 2867 y +SDict begin 12 H.L end + 2326 2867 a 2326 +2867 a +SDict begin [/Subtype /Link/Dest (section.15.9) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 2326 2867 a 78 w Fk(.)42 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h +(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)27 b(125)765 2968 +y +SDict begin H.S end + 765 2968 a Fk(15.10.)35 b(W)-7 b(erteb)r(ereic)n(h)27 +b(und)h(Genauigk)n(eit)e(elemen)n(tarer)h(Daten)n(t)n(yp)r(en)3018 +2968 y +SDict begin 12 H.L end + 3018 2968 a 3018 2968 a +SDict begin [/Subtype /Link/Dest (section.15.10) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 3018 2968 a 32 w Fk(.)41 +b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)27 b(125)765 3069 y +SDict begin H.S end + 765 +3069 a Fk(15.11.)35 b(V)-7 b(ariableninitialisierung)1856 +3069 y +SDict begin 12 H.L end + 1856 3069 a 1856 3069 a +SDict begin [/Subtype /Link/Dest (section.15.11) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1856 3069 a 32 w Fk(.)41 +b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h +(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)27 b(125)765 3170 +y +SDict begin H.S end + 765 3170 a Fk(15.12.)35 b(K)n(onstan)n(ten)1431 3170 +y +SDict begin 12 H.L end + 1431 3170 a 1431 3170 a +SDict begin [/Subtype /Link/Dest (section.15.12) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1431 3170 a 69 w Fk(.)42 b(.)f(.)h(.)g(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f +(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)27 b(126)956 3271 +y +SDict begin H.S end + 956 3271 a Fk(15.12.1.)53 b(Ganzzahlk)n(onstan)n(ten)2022 +3271 y +SDict begin 12 H.L end + 2022 3271 a 2022 3271 a +SDict begin [/Subtype /Link/Dest (subsection.15.12.1) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 2022 3271 a 59 w Fk(.)42 +b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g +(.)f(.)h(.)f(.)h(.)f(.)27 b(126)956 3371 y +SDict begin H.S end + 956 3371 a +Fk(15.12.2.)53 b(Gleitk)n(ommak)n(onstan)n(ten)2128 3371 +y +SDict begin 12 H.L end + 2128 3371 a 2128 3371 a +SDict begin [/Subtype /Link/Dest (subsection.15.12.2) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 2128 3371 a 82 w Fk(.)42 b(.)g(.)f(.)h(.)f(.) +h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)27 +b(126)956 3472 y +SDict begin H.S end + 956 3472 a Fk(15.12.3.)53 b(Zeic)n(hen-)26 +b(und)i(Zeic)n(henk)n(ettenk)n(onstan)n(ten)2680 3472 +y +SDict begin 12 H.L end + 2680 3472 a 2680 3472 a +SDict begin [/Subtype /Link/Dest (subsection.15.12.3) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 2680 3472 a 47 w Fk(.)42 b(.)f(.)h(.)f(.)h(.) +f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)27 b(126)640 3661 y +SDict begin H.S end + 640 +3661 a Fj(16.)8 b(T)-8 b(cl/Tk)1031 3661 y +SDict begin 12 H.L end + 1031 3661 +a 1031 3661 a +SDict begin [/Subtype /Link/Dest (chapter.16) cvn/H /I/Border [0 0 +1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark end + 1031 3661 a 2581 w Fj(127)640 3849 y +SDict begin H.S end + 640 +3849 a Fj(17.)8 b(P)m(erl)914 3849 y +SDict begin 12 H.L end + 914 3849 a 914 3849 +a +SDict begin [/Subtype /Link/Dest (chapter.17) cvn/H /I/Border [0 0 +1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark end + 914 3849 a 2698 w Fj(129)640 4038 y +SDict begin H.S end + 640 4038 a Fj(18.)g(CGI+P)m(erl) +1131 4038 y +SDict begin 12 H.L end + 1131 4038 a 1131 4038 a +SDict begin [/Subtype /Link/Dest (chapter.18) cvn/H /I/Border [0 0 +1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark end + 1131 4038 a 2481 +w Fj(131)765 4139 y +SDict begin H.S end + 765 4139 a Fk(18.1.)77 b(Einleitung)1388 +4139 y +SDict begin 12 H.L end + 1388 4139 a 1388 4139 a +SDict begin [/Subtype /Link/Dest (section.18.1) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1388 4139 a 48 w Fk(.)41 +b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h +(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)27 +b(131)765 4239 y +SDict begin H.S end + 765 4239 a Fk(18.2.)77 b(P)n(erl)1161 +4239 y +SDict begin 12 H.L end + 1161 4239 a 1161 4239 a +SDict begin [/Subtype /Link/Dest (section.18.2) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1161 4239 a 81 w Fk(.)42 +b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f +(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) +f(.)27 b(131)956 4340 y +SDict begin H.S end + 956 4340 a Fk(18.2.1.)95 b(T)-7 +b(exte)27 b(und)h(Strings)1939 4340 y +SDict begin 12 H.L end + 1939 4340 a 1939 +4340 a +SDict begin [/Subtype /Link/Dest (subsection.18.2.1) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1939 4340 a 78 w Fk(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f +(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)27 +b(131)956 4441 y +SDict begin H.S end + 956 4441 a Fk(18.2.2.)95 b(Rec)n(henop)r(erationen) +1978 4441 y +SDict begin 12 H.L end + 1978 4441 a 1978 4441 a +SDict begin [/Subtype /Link/Dest (subsection.18.2.2) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1978 4441 a 39 w +Fk(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h +(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)27 b(131)956 4542 +y +SDict begin H.S end + 956 4542 a Fk(18.2.3.)95 b(Arra)n(ys)25 b(\(Listen\))1845 +4542 y +SDict begin 12 H.L end + 1845 4542 a 1845 4542 a +SDict begin [/Subtype /Link/Dest (subsection.18.2.3) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1845 4542 a 43 w Fk(.)41 +b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h +(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)27 b(132)956 4643 +y +SDict begin H.S end + 956 4643 a Fk(18.2.4.)95 b(String-)26 b(und)i(Zahlen)n(v)n(ergleic)n +(hsop)r(erratoren)2749 4643 y +SDict begin 12 H.L end + 2749 4643 a 2749 4643 a +SDict begin [/Subtype /Link/Dest (subsection.18.2.4) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + +2749 4643 a 43 w Fk(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f +(.)27 b(132)956 4744 y +SDict begin H.S end + 956 4744 a Fk(18.2.5.)95 b(if-Bedingung)1751 +4744 y +SDict begin 12 H.L end + 1751 4744 a 1751 4744 a +SDict begin [/Subtype /Link/Dest (subsection.18.2.5) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1751 4744 a 72 w Fk(.)42 +b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f +(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)27 b(132)640 5092 +y(10)p eop end +%%Page: 11 11 +TeXDict begin 11 10 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a 12 +-5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.11) cvn /DEST pdfmark end + 12 -5 a 2478 128 a Fh(Inhaltsv)n(erzeic)n(hnis)335 +360 y +SDict begin H.S end + 335 360 a Fk(18.2.6.)95 b(if-else-Bedingung)1288 +360 y +SDict begin 12 H.L end + 1288 360 a 1288 360 a +SDict begin [/Subtype /Link/Dest (subsection.18.2.6) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1288 360 a 44 w Fk(.)42 b(.)f(.)h(.)f(.)h +(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) +f(.)h(.)f(.)27 b(132)335 460 y +SDict begin H.S end + 335 460 a Fk(18.2.7.)95 +b(if-elseif-Bedingung)1336 460 y +SDict begin 12 H.L end + 1336 460 a 1336 460 +a +SDict begin [/Subtype /Link/Dest (subsection.18.2.7) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1336 460 a 61 w Fk(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)27 +b(133)145 560 y +SDict begin H.S end + 145 560 a Fk(18.3.)77 b(F)-7 b(unktionen)803 +560 y +SDict begin 12 H.L end + 803 560 a 803 560 a +SDict begin [/Subtype /Link/Dest (section.18.3) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 803 560 a 77 w Fk(.)42 b(.)f(.)h(.)f(.)h(.)g +(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)27 b(133)335 660 +y +SDict begin H.S end + 335 660 a Fk(18.3.1.)95 b(String)28 b(F)-7 b(unktionen)1326 +660 y +SDict begin 12 H.L end + 1326 660 a 1326 660 a +SDict begin [/Subtype /Link/Dest (subsection.18.3.1) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1326 660 a 71 w Fk(.)41 b(.)h(.)f(.)h(.)g +(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) +h(.)f(.)27 b(133)335 760 y +SDict begin H.S end + 335 760 a Fk(18.3.2.)95 b(Rec)n(hen)28 +b(F)-7 b(unktionen)1366 760 y +SDict begin 12 H.L end + 1366 760 a 1366 760 a +SDict begin [/Subtype /Link/Dest (subsection.18.3.2) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1366 +760 a 31 w Fk(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)27 b(133)335 +860 y +SDict begin H.S end + 335 860 a Fk(18.3.3.)95 b(Arra)n(y)26 b(F)-7 b(unktionen)1314 +860 y +SDict begin 12 H.L end + 1314 860 a 1314 860 a +SDict begin [/Subtype /Link/Dest (subsection.18.3.3) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1314 860 a 83 w Fk(.)41 b(.)h(.)f(.)h(.)g +(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) +h(.)f(.)27 b(133)20 1044 y +SDict begin H.S end + 20 1044 a Fj(19.)8 b(Java)318 +1044 y +SDict begin 12 H.L end + 318 1044 a 318 1044 a +SDict begin [/Subtype /Link/Dest (chapter.19) cvn/H /I/Border [0 0 +1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark end + 318 1044 a 2674 w Fj(135)145 +1144 y +SDict begin H.S end + 145 1144 a Fk(19.1.)77 b(F)-7 b(unktion)27 b(v)n(on)g(Ja)n(v)-5 +b(a)1068 1144 y +SDict begin 12 H.L end + 1068 1144 a 1068 1144 a +SDict begin [/Subtype /Link/Dest (section.19.1) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1068 1144 a 70 +w Fk(.)42 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)27 +b(135)145 1244 y +SDict begin H.S end + 145 1244 a Fk(19.2.)77 b(Sprac)n(he)26 +b(und)i(Syn)n(tax)f(v)n(on)g(Ja)n(v)-5 b(a)1471 1244 +y +SDict begin 12 H.L end + 1471 1244 a 1471 1244 a +SDict begin [/Subtype /Link/Dest (section.19.2) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1471 1244 a 55 w Fk(.)41 b(.)h(.)g(.)f(.)h(.) +f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)27 +b(135)335 1344 y +SDict begin H.S end + 335 1344 a Fk(19.2.1.)95 b(K)n(ommen)n(trare)1168 +1344 y +SDict begin 12 H.L end + 1168 1344 a 1168 1344 a +SDict begin [/Subtype /Link/Dest (subsection.19.2.1) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1168 1344 a 35 w Fk(.)42 +b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)27 b(135)335 1444 +y +SDict begin H.S end + 335 1444 a Fk(19.2.2.)95 b(Daten)n(t)n(yp)r(en)1090 +1444 y +SDict begin 12 H.L end + 1090 1444 a 1090 1444 a +SDict begin [/Subtype /Link/Dest (subsection.19.2.2) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1090 1444 a 48 w Fk(.)42 +b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)27 b(135)335 +1544 y +SDict begin H.S end + 335 1544 a Fk(19.2.3.)95 b(V)-7 b(ariablen)1014 +1544 y +SDict begin 12 H.L end + 1014 1544 a 1014 1544 a +SDict begin [/Subtype /Link/Dest (subsection.19.2.3) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1014 1544 a 60 w Fk(.)41 +b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)27 b(136)145 +1644 y +SDict begin H.S end + 145 1644 a Fk(19.3.)77 b(P)n(ak)n(ete)26 b(und)i(V)-7 +b(erzeic)n(hnisstrukturen)1617 1644 y +SDict begin 12 H.L end + 1617 1644 a 1617 +1644 a +SDict begin [/Subtype /Link/Dest (section.19.3) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1617 1644 a 38 w Fk(.)42 b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)27 b(136)335 +1744 y +SDict begin H.S end + 335 1744 a Fk(19.3.1.)95 b(Sic)n(h)n(tbark)n(eit)27 +b(und)h(Zugri\033srec)n(h)n(te)e(v)n(on)g(Klassen)h(und)h(Metho)r(den) +2807 1744 y +SDict begin 12 H.L end + 2807 1744 a 2807 1744 a +SDict begin [/Subtype /Link/Dest (subsection.19.3.1) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 2807 1744 a 75 w +Fk(.)41 b(.)27 b(136)335 1844 y +SDict begin H.S end + 335 1844 a Fk(19.3.2.)95 +b(Klassen)946 1844 y +SDict begin 12 H.L end + 946 1844 a 946 1844 a +SDict begin [/Subtype /Link/Dest (subsection.19.3.2) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 946 1844 a +63 w Fk(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h +(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)27 +b(136)335 1944 y +SDict begin H.S end + 335 1944 a Fk(19.3.3.)95 b(K)n(onstruktoren)26 +b(und)i(Destruktoren)1866 1944 y +SDict begin 12 H.L end + 1866 1944 a 1866 1944 +a +SDict begin [/Subtype /Link/Dest (subsection.19.3.3) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1866 1944 a 47 w Fk(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)g(.)f(.)h(.)f(.)27 b(137)335 2044 y +SDict begin H.S end + 335 2044 a Fk(19.3.4.)95 +b(Metho)r(den)28 b(\374b)r(erladen)1417 2044 y +SDict begin 12 H.L end + 1417 2044 +a 1417 2044 a +SDict begin [/Subtype /Link/Dest (subsection.19.3.4) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1417 2044 a 44 w Fk(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) +f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)27 +b(137)335 2144 y +SDict begin H.S end + 335 2144 a Fk(19.3.5.)95 b(Ob)5 b(jekte)958 +2144 y +SDict begin 12 H.L end + 958 2144 a 958 2144 a +SDict begin [/Subtype /Link/Dest (subsection.19.3.5) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 958 2144 a 51 w Fk(.)42 +b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)27 +b(137)335 2244 y +SDict begin H.S end + 335 2244 a Fk(19.3.6.)95 b(V)-7 b(ererbung)1042 +2244 y +SDict begin 12 H.L end + 1042 2244 a 1042 2244 a +SDict begin [/Subtype /Link/Dest (subsection.19.3.6) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1042 2244 a 32 w Fk(.)41 +b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)27 b(138)335 +2344 y +SDict begin H.S end + 335 2344 a Fk(19.3.7.)95 b(Sc)n(hnittstellen)1158 +2344 y +SDict begin 12 H.L end + 1158 2344 a 1158 2344 a +SDict begin [/Subtype /Link/Dest (subsection.19.3.7) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1158 2344 a 45 w Fk(.)42 +b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)27 b(138)145 2444 +y +SDict begin H.S end + 145 2444 a Fk(19.4.)77 b(Elemen)n(tare)27 b(Syn)n(tax)g(v)n(on)f(Ja)n +(v)-5 b(a)1430 2444 y +SDict begin 12 H.L end + 1430 2444 a 1430 2444 a +SDict begin [/Subtype /Link/Dest (section.19.4) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1430 2444 +a 31 w Fk(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)27 b(138)335 2544 +y +SDict begin H.S end + 335 2544 a Fk(19.4.1.)95 b(Op)r(erratoren)1115 2544 +y +SDict begin 12 H.L end + 1115 2544 a 1115 2544 a +SDict begin [/Subtype /Link/Dest (subsection.19.4.1) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1115 2544 a 23 w Fk(.)42 b(.)g(.)f(.)h(.)f(.) +h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)g(.)f(.)h(.)f(.)27 b(138)335 2644 y +SDict begin H.S end + 335 2644 a +Fk(19.4.2.)95 b(V)-7 b(erkn)n(\374pfungsop)r(eratoren)1556 +2644 y +SDict begin 12 H.L end + 1556 2644 a 1556 2644 a +SDict begin [/Subtype /Link/Dest (subsection.19.4.2) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1556 2644 a 34 w Fk(.)42 +b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g +(.)f(.)h(.)f(.)27 b(138)335 2744 y +SDict begin H.S end + 335 2744 a Fk(19.4.3.)95 +b(Inkremen)n(t-Op)r(erator)1399 2744 y +SDict begin 12 H.L end + 1399 2744 a 1399 +2744 a +SDict begin [/Subtype /Link/Dest (subsection.19.4.3) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1399 2744 a 62 w Fk(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h +(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)27 +b(138)335 2844 y +SDict begin H.S end + 335 2844 a Fk(19.4.4.)95 b(Dekremen)n(t-Op)r(erator) +1423 2844 y +SDict begin 12 H.L end + 1423 2844 a 1423 2844 a +SDict begin [/Subtype /Link/Dest (subsection.19.4.4) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1423 2844 a 38 w +Fk(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)27 b(139)335 2944 y +SDict begin H.S end + 335 +2944 a Fk(19.4.5.)95 b(Arithmetisc)n(he)28 b(Zu)n(w)n(eisungsop)r +(eratoren)2008 2944 y +SDict begin 12 H.L end + 2008 2944 a 2008 2944 a +SDict begin [/Subtype /Link/Dest (subsection.19.4.5) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 2008 2944 +a 34 w Fk(.)42 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) +27 b(139)335 3044 y +SDict begin H.S end + 335 3044 a Fk(19.4.6.)95 b(Bedingungen)27 +b(und)h(En)n(tsc)n(heidungen)1899 3044 y +SDict begin 12 H.L end + 1899 3044 a +1899 3044 a +SDict begin [/Subtype /Link/Dest (subsection.19.4.6) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1899 3044 a 79 w Fk(.)41 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)g(.)f(.)h(.)f(.)27 b(139)335 3144 y +SDict begin H.S end + 335 3144 +a Fk(19.4.7.)95 b(if)29 b(-)e(else)g(-)g(Bedingungen)1481 +3144 y +SDict begin 12 H.L end + 1481 3144 a 1481 3144 a +SDict begin [/Subtype /Link/Dest (subsection.19.4.7) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1481 3144 a 45 w Fk(.)41 +b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)g(.)f(.)h(.)f(.)27 b(139)335 3244 y +SDict begin H.S end + 335 3244 a Fk(19.4.8.)95 +b(V)-7 b(ersc)n(hac)n(h)n(telte)27 b(Bedingungen)1685 +3244 y +SDict begin 12 H.L end + 1685 3244 a 1685 3244 a +SDict begin [/Subtype /Link/Dest (subsection.19.4.8) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1685 3244 a 35 w Fk(.)41 +b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h +(.)f(.)27 b(139)335 3344 y +SDict begin H.S end + 335 3344 a Fk(19.4.9.)95 b(F)-7 +b(allun)n(tersc)n(heidung)27 b(mit)h(switc)n(h)f(-)h(case)1988 +3344 y +SDict begin 12 H.L end + 1988 3344 a 1988 3344 a +SDict begin [/Subtype /Link/Dest (subsection.19.4.9) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1988 3344 a 54 w Fk(.)42 +b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)27 +b(140)145 3444 y +SDict begin H.S end + 145 3444 a Fk(19.5.)77 b(Sc)n(hleifen)712 +3444 y +SDict begin 12 H.L end + 712 3444 a 712 3444 a +SDict begin [/Subtype /Link/Dest (section.19.5) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 712 3444 a 39 w Fk(.)42 +b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f +(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)27 +b(140)335 3544 y +SDict begin H.S end + 335 3544 a Fk(19.5.1.)95 b(Die)29 b(while)e(-)h(Sc)n +(hleife)1363 3544 y +SDict begin 12 H.L end + 1363 3544 a 1363 3544 a +SDict begin [/Subtype /Link/Dest (subsection.19.5.1) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1363 3544 +a 34 w Fk(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)27 b(140)335 +3644 y +SDict begin H.S end + 335 3644 a Fk(19.5.2.)95 b(Die)29 b(do)e(-)g(while)h(-)f(Sc)n +(hleife)1533 3644 y +SDict begin 12 H.L end + 1533 3644 a 1533 3644 a +SDict begin [/Subtype /Link/Dest (subsection.19.5.2) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1533 3644 +a 57 w Fk(.)42 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)g(.)f(.)h(.)f(.)27 b(140)335 3744 y +SDict begin H.S end + 335 3744 +a Fk(19.5.3.)95 b(Die)29 b(for)e(-)g(Sc)n(hleife)1273 +3744 y +SDict begin 12 H.L end + 1273 3744 a 1273 3744 a +SDict begin [/Subtype /Link/Dest (subsection.19.5.3) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1273 3744 a 59 w Fk(.)42 +b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)27 b(140)335 3844 y +SDict begin H.S end + 335 +3844 a Fk(19.5.4.)95 b(Sc)n(hleifen)28 b(mit)h(break)d(v)n(erlassen) +1720 3844 y +SDict begin 12 H.L end + 1720 3844 a 1720 3844 a +SDict begin [/Subtype /Link/Dest (subsection.19.5.4) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1720 3844 a 64 w +Fk(.)42 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f +(.)h(.)f(.)27 b(140)335 3944 y +SDict begin H.S end + 335 3944 a Fk(19.5.5.)95 +b(Sc)n(hleife)28 b(mit)g(con)n(tin)n(ue)f(wiederholen)1881 +3944 y +SDict begin 12 H.L end + 1881 3944 a 1881 3944 a +SDict begin [/Subtype /Link/Dest (subsection.19.5.5) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1881 3944 a 32 w Fk(.)42 +b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)27 +b(140)145 4044 y +SDict begin H.S end + 145 4044 a Fk(19.6.)77 b(K)n(omplexe)26 +b(Daten)n(t)n(yp)r(en)1204 4044 y +SDict begin 12 H.L end + 1204 4044 a 1204 4044 +a +SDict begin [/Subtype /Link/Dest (section.19.6) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1204 4044 a 64 w Fk(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) +f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)27 +b(141)335 4144 y +SDict begin H.S end + 335 4144 a Fk(19.6.1.)95 b(Arra)n(ys)912 +4144 y +SDict begin 12 H.L end + 912 4144 a 912 4144 a +SDict begin [/Subtype /Link/Dest (subsection.19.6.1) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 912 4144 a 33 w Fk(.)41 +b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h +(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)27 +b(141)145 4244 y +SDict begin H.S end + 145 4244 a Fk(19.7.)77 b(Die)28 b(An)n(w)n(eisung)e +(imp)r(ort)1209 4244 y +SDict begin 12 H.L end + 1209 4244 a 1209 4244 a +SDict begin [/Subtype /Link/Dest (section.19.7) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1209 4244 +a 59 w Fk(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)27 b(141)145 +4344 y +SDict begin H.S end + 145 4344 a Fk(19.8.)77 b(Ja)n(v)-5 b(a)26 b(eigene)h(Klassen) +1112 4344 y +SDict begin 12 H.L end + 1112 4344 a 1112 4344 a +SDict begin [/Subtype /Link/Dest (section.19.8) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1112 4344 a 26 w +Fk(.)42 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)27 +b(141)335 4444 y +SDict begin H.S end + 335 4444 a Fk(19.8.1.)95 b(Die)29 b(Klasse)d(Math)1274 +4444 y +SDict begin 12 H.L end + 1274 4444 a 1274 4444 a +SDict begin [/Subtype /Link/Dest (subsection.19.8.1) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1274 4444 a 58 w Fk(.)42 +b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)27 b(141)145 4544 y +SDict begin H.S end + 145 +4544 a Fk(19.9.)77 b(Die)28 b(Klasse)e(Ob)5 b(ject)1051 +4544 y +SDict begin 12 H.L end + 1051 4544 a 1051 4544 a +SDict begin [/Subtype /Link/Dest (section.19.9) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1051 4544 a 23 w Fk(.)41 +b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)27 b(141)335 +4644 y +SDict begin H.S end + 335 4644 a Fk(19.9.1.)95 b(Die)29 b(Klasse)d(Ob)5 +b(ject)1325 4644 y +SDict begin 12 H.L end + 1325 4644 a 1325 4644 a +SDict begin [/Subtype /Link/Dest (subsection.19.9.1) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1325 4644 +a 72 w Fk(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)27 b(141)145 +4744 y +SDict begin H.S end + 145 4744 a Fk(19.10.)35 b(Die)28 b(Klasse)e(Run)n(time)1116 +4744 y +SDict begin 12 H.L end + 1116 4744 a 1116 4744 a +SDict begin [/Subtype /Link/Dest (section.19.10) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1116 4744 a 22 w Fk(.)42 +b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)27 b(142)3037 +5092 y(11)p eop end +%%Page: 12 12 +TeXDict begin 12 11 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 a +632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.12) cvn /DEST pdfmark end + 632 -5 a 640 128 a Fh(Inhaltsv)n(erzeic)n +(hnis)765 360 y +SDict begin H.S end + 765 360 a Fk(19.11.)35 b(Die)28 b(Klasse)e(String)1646 +360 y +SDict begin 12 H.L end + 1646 360 a 1646 360 a +SDict begin [/Subtype /Link/Dest (section.19.11) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1646 360 a 48 w Fk(.)42 b(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) +h(.)g(.)f(.)h(.)f(.)h(.)f(.)27 b(142)765 460 y +SDict begin H.S end + 765 460 +a Fk(19.12.)35 b(Die)28 b(Klasse)e(Stringbu\033er)1856 +460 y +SDict begin 12 H.L end + 1856 460 a 1856 460 a +SDict begin [/Subtype /Link/Dest (section.19.12) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1856 460 a 32 w Fk(.)41 b(.)h(.)f(.)h(.)f +(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) +h(.)f(.)h(.)f(.)27 b(142)956 560 y +SDict begin H.S end + 956 560 a Fk(19.12.1.)53 +b(Die)28 b(Klasse)e(Stringbu\033er)2130 560 y +SDict begin 12 H.L end + 2130 560 +a 2130 560 a +SDict begin [/Subtype /Link/Dest (subsection.19.12.1) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 2130 560 a 80 w Fk(.)42 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g +(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)27 +b(142)765 660 y +SDict begin H.S end + 765 660 a Fk(19.13.)35 b(Die)28 b(Klasse)e(System)1685 +660 y +SDict begin 12 H.L end + 1685 660 a 1685 660 a +SDict begin [/Subtype /Link/Dest (section.19.13) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1685 660 a 74 w Fk(.)41 b(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) +g(.)f(.)h(.)f(.)h(.)f(.)27 b(142)765 760 y +SDict begin H.S end + 765 760 a +Fk(19.14.)35 b(Das)27 b(P)n(ak)n(et)g(ja)n(v)-5 b(a.util)1706 +760 y +SDict begin 12 H.L end + 1706 760 a 1706 760 a +SDict begin [/Subtype /Link/Dest (section.19.14) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1706 760 a 53 w Fk(.)41 b(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) +g(.)f(.)h(.)f(.)h(.)f(.)27 b(142)956 860 y +SDict begin H.S end + 956 860 a +Fk(19.14.1.)53 b(Die)28 b(Klasse)e(Date)1872 860 y +SDict begin 12 H.L end + 1872 +860 a 1872 860 a +SDict begin [/Subtype /Link/Dest (subsection.19.14.1) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1872 860 a 80 w Fk(.)42 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h +(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) +27 b(143)956 960 y +SDict begin H.S end + 956 960 a Fk(19.14.2.)53 b(Die)28 +b(Klasse)e(Random)2004 960 y +SDict begin 12 H.L end + 2004 960 a 2004 960 a +SDict begin [/Subtype /Link/Dest (subsection.19.14.2) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 2004 +960 a 77 w Fk(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) +f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)27 b(143)956 +1060 y +SDict begin H.S end + 956 1060 a Fk(19.14.3.)53 b(Die)28 b(Klasse)e(Stac)n(k)1897 +1060 y +SDict begin 12 H.L end + 1897 1060 a 1897 1060 a +SDict begin [/Subtype /Link/Dest (subsection.19.14.3) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1897 1060 a 55 w Fk(.)42 +b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f +(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)27 b(143)765 1160 y +SDict begin H.S end + 765 +1160 a Fk(19.15.)35 b(Ausnahmen)27 b(\(Exceptions\))1928 +1160 y +SDict begin 12 H.L end + 1928 1160 a 1928 1160 a +SDict begin [/Subtype /Link/Dest (section.19.15) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1928 1160 a 24 w Fk(.)42 +b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f +(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)27 b(143)956 1260 y +SDict begin H.S end + 956 +1260 a Fk(19.15.1.)53 b(Eigene)27 b(Ausnahme)h(erzeugen)e(\(thro)n(w\)) +2581 1260 y +SDict begin 12 H.L end + 2581 1260 a 2581 1260 a +SDict begin [/Subtype /Link/Dest (subsection.19.15.1) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 2581 1260 a 81 w +Fk(.)42 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)27 +b(144)765 1360 y +SDict begin H.S end + 765 1360 a Fk(19.16.)35 b(Multitasking)27 +b(mit)h(Threads)1952 1360 y +SDict begin 12 H.L end + 1952 1360 a 1952 1360 a +SDict begin [/Subtype /Link/Dest (section.19.16) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1952 +1360 a 65 w Fk(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f +(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)27 b(144)956 +1460 y +SDict begin H.S end + 956 1460 a Fk(19.16.1.)53 b(Arb)r(eiten)28 b(mit)g(Threads)2083 +1460 y +SDict begin 12 H.L end + 2083 1460 a 2083 1460 a +SDict begin [/Subtype /Link/Dest (subsection.19.16.1) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 2083 1460 a 63 w Fk(.)41 +b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f +(.)h(.)f(.)h(.)f(.)27 b(144)765 1560 y +SDict begin H.S end + 765 1560 a Fk(19.17.)35 +b(Applets)1293 1560 y +SDict begin 12 H.L end + 1293 1560 a 1293 1560 a +SDict begin [/Subtype /Link/Dest (section.19.17) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1293 1560 +a 78 w Fk(.)42 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f +(.)h(.)f(.)27 b(145)956 1660 y +SDict begin H.S end + 956 1660 a Fk(19.17.1.)53 +b(Applets)28 b(in)g(eine)f(W)-7 b(ebseite)28 b(ein)n(binden)2561 +1660 y +SDict begin 12 H.L end + 2561 1660 a 2561 1660 a +SDict begin [/Subtype /Link/Dest (subsection.19.17.1) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 2561 1660 a 37 w Fk(.)41 +b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)27 +b(145)956 1760 y +SDict begin H.S end + 956 1760 a Fk(19.17.2.)53 b(Das)27 b(erste)g(Ja)n(v)-5 +b(a)26 b(Applet)2088 1760 y +SDict begin 12 H.L end + 2088 1760 a 2088 1760 a +SDict begin [/Subtype /Link/Dest (subsection.19.17.2) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 2088 +1760 a 58 w Fk(.)41 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f +(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)27 b(145)956 1860 +y +SDict begin H.S end + 956 1860 a Fk(19.17.3.)53 b(Die)28 b(Metho)r(den)g(eines)f(Applets) +2313 1860 y +SDict begin 12 H.L end + 2313 1860 a 2313 1860 a +SDict begin [/Subtype /Link/Dest (subsection.19.17.3) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 2313 1860 a 27 w +Fk(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h +(.)f(.)h(.)f(.)27 b(145)956 1960 y +SDict begin H.S end + 956 1960 a Fk(19.17.4.)53 +b(Ein)28 b(Applet)g(im)g(\334b)r(erblic)n(k)2186 1960 +y +SDict begin 12 H.L end + 2186 1960 a 2186 1960 a +SDict begin [/Subtype /Link/Dest (subsection.19.17.4) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 2186 1960 a 24 w Fk(.)42 b(.)g(.)f(.)h(.)f(.) +h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)27 +b(145)956 2060 y +SDict begin H.S end + 956 2060 a Fk(19.17.5.)53 b(P)n(ak)n(ete)1532 +2060 y +SDict begin 12 H.L end + 1532 2060 a 1532 2060 a +SDict begin [/Subtype /Link/Dest (subsection.19.17.5) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1532 2060 a 33 w Fk(.)41 +b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h +(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)27 +b(146)956 2160 y +SDict begin H.S end + 956 2160 a Fk(19.17.6.)53 b(Die)28 b(Klasse)e +(Graphics)2023 2160 y +SDict begin 12 H.L end + 2023 2160 a 2023 2160 a +SDict begin [/Subtype /Link/Dest (subsection.19.17.6) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 2023 2160 +a 58 w Fk(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) +h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)27 b(146)956 2260 +y +SDict begin H.S end + 956 2260 a Fk(19.17.7.)53 b(Die)28 b(Klasse)e(Color)1898 +2260 y +SDict begin 12 H.L end + 1898 2260 a 1898 2260 a +SDict begin [/Subtype /Link/Dest (subsection.19.17.7) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1898 2260 a 54 w Fk(.)42 +b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f +(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)27 b(146)956 2360 y +SDict begin H.S end + 956 +2360 a Fk(19.17.8.)53 b(Die)28 b(Klasse)e(F)-7 b(on)n(t)1863 +2360 y +SDict begin 12 H.L end + 1863 2360 a 1863 2360 a +SDict begin [/Subtype /Link/Dest (subsection.19.17.8) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1863 2360 a 25 w Fk(.)41 +b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h +(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)27 b(147)956 2460 +y +SDict begin H.S end + 956 2460 a Fk(19.17.9.)53 b(Die)28 b(Klasse)e(Image)1918 +2460 y +SDict begin 12 H.L end + 1918 2460 a 1918 2460 a +SDict begin [/Subtype /Link/Dest (subsection.19.17.9) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1918 2460 a 34 w Fk(.)42 +b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f +(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)27 b(147)956 2560 y +SDict begin H.S end + 956 +2560 a Fk(19.17.10.)11 b(Die)28 b(Klasse)e(Button)1955 +2560 y +SDict begin 12 H.L end + 1955 2560 a 1955 2560 a +SDict begin [/Subtype /Link/Dest (subsection.19.17.10) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1955 2560 a 62 w Fk(.)41 +b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h +(.)g(.)f(.)h(.)f(.)h(.)f(.)27 b(147)765 2660 y +SDict begin H.S end + 765 2660 +a Fk(19.18.)35 b(Ev)n(en)n(thandling)1539 2660 y +SDict begin 12 H.L end + 1539 +2660 a 1539 2660 a +SDict begin [/Subtype /Link/Dest (section.19.18) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1539 2660 a 26 w Fk(.)41 b(.)h(.)g(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) +h(.)g(.)f(.)h(.)f(.)h(.)f(.)27 b(148)956 2760 y +SDict begin H.S end + 956 2760 +a Fk(19.18.1.)53 b(Mouse)27 b(Ev)n(en)n(ts)1793 2760 +y +SDict begin 12 H.L end + 1793 2760 a 1793 2760 a +SDict begin [/Subtype /Link/Dest (subsection.19.18.1) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1793 2760 a 30 w Fk(.)42 b(.)f(.)h(.)f(.)h(.) +f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f +(.)h(.)f(.)h(.)f(.)27 b(148)956 2859 y +SDict begin H.S end + 956 2859 a Fk(19.18.2.)53 +b(A)n(ction)27 b(Ev)n(en)n(ts)1799 2859 y +SDict begin 12 H.L end + 1799 2859 a +1799 2859 a +SDict begin [/Subtype /Link/Dest (subsection.19.18.2) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1799 2859 a 24 w Fk(.)42 b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f +(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) +f(.)27 b(148)956 2959 y +SDict begin H.S end + 956 2959 a Fk(19.18.3.)53 b(P)n(arameter)26 +b(an)h(ein)h(Applet)2188 2959 y +SDict begin 12 H.L end + 2188 2959 a 2188 2959 +a +SDict begin [/Subtype /Link/Dest (subsection.19.18.3) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 2188 2959 a 22 w Fk(.)42 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) +f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)27 b(148)956 +3059 y +SDict begin H.S end + 956 3059 a Fk(19.18.4.)53 b(W)-7 b(eitere)27 b(wic)n(h)n(tige)g +(P)n(ak)n(ete)2159 3059 y +SDict begin 12 H.L end + 2159 3059 a 2159 3059 a +SDict begin [/Subtype /Link/Dest (subsection.19.18.4) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 2159 +3059 a 51 w Fk(.)42 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h +(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)27 b(149)640 3244 +y +SDict begin H.S end + 640 3244 a Fj(20.)8 b(JavaScript)1163 3244 y +SDict begin 12 H.L end + 1163 3244 +a 1163 3244 a +SDict begin [/Subtype /Link/Dest (chapter.20) cvn/H /I/Border [0 0 +1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark end + 1163 3244 a 2449 w Fj(151)765 3344 y +SDict begin H.S end + 765 +3344 a Fk(20.1.)77 b(Ein)n(bindung)28 b(v)n(on)f(Ja)n(v)-5 +b(aScript)1998 3344 y +SDict begin 12 H.L end + 1998 3344 a 1998 3344 a +SDict begin [/Subtype /Link/Dest (section.20.1) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1998 3344 +a 83 w Fk(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) +h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)27 b(151)956 3444 +y +SDict begin H.S end + 956 3444 a Fk(20.1.1.)95 b(Ein)n(bindung)28 b(in)g(den)f(Head)2174 +3444 y +SDict begin 12 H.L end + 2174 3444 a 2174 3444 a +SDict begin [/Subtype /Link/Dest (subsection.20.1.1) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 2174 3444 a 36 w Fk(.)42 +b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h +(.)f(.)h(.)f(.)27 b(151)956 3544 y +SDict begin H.S end + 956 3544 a Fk(20.1.2.)95 +b(Ein)n(bindung)28 b(in)g(den)f(Bo)r(dy)2180 3544 y +SDict begin 12 H.L end + 2180 +3544 a 2180 3544 a +SDict begin [/Subtype /Link/Dest (subsection.20.1.2) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 2180 3544 a 30 w Fk(.)42 b(.)g(.)f(.)h(.)f(.)h(.)f +(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)27 +b(151)956 3644 y +SDict begin H.S end + 956 3644 a Fk(20.1.3.)95 b(Ausf\374hren)27 +b(b)r(ei)h(b)r(estimm)n(ten)h(Aktionen)2610 3644 y +SDict begin 12 H.L end + 2610 +3644 a 2610 3644 a +SDict begin [/Subtype /Link/Dest (subsection.20.1.3) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 2610 3644 a 52 w Fk(.)42 b(.)g(.)f(.)h(.)f(.)h(.)f +(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)27 b(151)765 3744 y +SDict begin H.S end + 765 +3744 a Fk(20.2.)77 b(V)-7 b(ariablen)1361 3744 y +SDict begin 12 H.L end + 1361 +3744 a 1361 3744 a +SDict begin [/Subtype /Link/Dest (section.20.2) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1361 3744 a 75 w Fk(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) +h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)27 b(152)765 3844 +y +SDict begin H.S end + 765 3844 a Fk(20.3.)77 b(Ob)5 b(jekte)1305 3844 y +SDict begin 12 H.L end + 1305 +3844 a 1305 3844 a +SDict begin [/Subtype /Link/Dest (section.20.3) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1305 3844 a 66 w Fk(.)42 b(.)f(.)h(.)f(.)h(.)g(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) +f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)27 b(152)956 +3944 y +SDict begin H.S end + 956 3944 a Fk(20.3.1.)95 b(Standardob)5 b(jekte)1889 +3944 y +SDict begin 12 H.L end + 1889 3944 a 1889 3944 a +SDict begin [/Subtype /Link/Dest (subsection.20.3.1) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1889 3944 a 63 w Fk(.)42 +b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f +(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)27 b(152)956 4044 y +SDict begin H.S end + 956 +4044 a Fk(20.3.2.)95 b(String-Ob)5 b(jekt)1792 4044 y +SDict begin 12 H.L end + +1792 4044 a 1792 4044 a +SDict begin [/Subtype /Link/Dest (subsection.20.3.2) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1792 4044 a 31 w Fk(.)42 b(.)f(.)h(.)f(.)h(.)f +(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) +h(.)f(.)h(.)f(.)27 b(153)956 4144 y +SDict begin H.S end + 956 4144 a Fk(20.3.3.)95 +b(Eigene)27 b(Ob)5 b(jekte)1847 4144 y +SDict begin 12 H.L end + 1847 4144 a 1847 +4144 a +SDict begin [/Subtype /Link/Dest (subsection.20.3.3) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1847 4144 a 41 w Fk(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f +(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)27 +b(154)956 4244 y +SDict begin H.S end + 956 4244 a Fk(20.3.4.)95 b(Arra)n(ys)1533 +4244 y +SDict begin 12 H.L end + 1533 4244 a 1533 4244 a +SDict begin [/Subtype /Link/Dest (subsection.20.3.4) cvn/H /I/Border +[0 0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1533 4244 a 32 w Fk(.)41 +b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h +(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)27 +b(154)765 4344 y +SDict begin H.S end + 765 4344 a Fk(20.4.)77 b(Mathematisc)n(he)27 +b(Op)r(erationen)2042 4344 y +SDict begin 12 H.L end + 2042 4344 a 2042 4344 a +SDict begin [/Subtype /Link/Dest (section.20.4) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + +2042 4344 a 39 w Fk(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f +(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)27 b(154)765 +4444 y +SDict begin H.S end + 765 4444 a Fk(20.5.)77 b(Bedingte)27 b(Ausf\374hrung)1788 +4444 y +SDict begin 12 H.L end + 1788 4444 a 1788 4444 a +SDict begin [/Subtype /Link/Dest (section.20.5) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1788 4444 a 35 w Fk(.)42 +b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f +(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)27 b(154)765 4544 +y +SDict begin H.S end + 765 4544 a Fk(20.6.)77 b(Sc)n(hleifen)1332 4544 y +SDict begin 12 H.L end + 1332 +4544 a 1332 4544 a +SDict begin [/Subtype /Link/Dest (section.20.6) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1332 4544 a 39 w Fk(.)42 b(.)f(.)h(.)f(.)h(.)g(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) +f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)27 b(154)765 +4644 y +SDict begin H.S end + 765 4644 a Fk(20.7.)77 b(Ev)n(en)n(t-Handler)1542 +4644 y +SDict begin 12 H.L end + 1542 4644 a 1542 4644 a +SDict begin [/Subtype /Link/Dest (section.20.7) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1542 4644 a 23 w Fk(.)41 +b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h +(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)27 +b(155)765 4744 y +SDict begin H.S end + 765 4744 a Fk(20.8.)77 b(F)-7 b(unktionen)1423 +4744 y +SDict begin 12 H.L end + 1423 4744 a 1423 4744 a +SDict begin [/Subtype /Link/Dest (section.20.8) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1423 4744 a 77 w Fk(.)42 +b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f +(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)27 +b(155)640 5092 y(12)p eop end +%%Page: 13 13 +TeXDict begin 13 12 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a 12 +-5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.13) cvn /DEST pdfmark end + 12 -5 a 2478 128 a Fh(Inhaltsv)n(erzeic)n(hnis)145 +360 y +SDict begin H.S end + 145 360 a Fk(20.9.)77 b(Reservierte)26 b(W\366rter)1089 +360 y +SDict begin 12 H.L end + 1089 360 a 1089 360 a +SDict begin [/Subtype /Link/Dest (section.20.9) cvn/H /I/Border [0 +0 1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark +end + 1089 360 a 49 w Fk(.)42 b(.)g(.)f(.)h(.)f +(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)g(.)f(.)h(.)f(.)27 b(156)20 663 y +SDict begin H.S end + 20 663 a Fi(V.)61 +b(Anhang)544 663 y +SDict begin 14 H.L end + 544 663 a 544 663 a +SDict begin [/Subtype /Link/Dest (part.5) cvn/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Color [1 0 0] H.B /ANN pdfmark end + 544 663 a 2448 +w Fi(159)20 846 y +SDict begin H.S end + 20 846 a Fj(21.)8 b(Glossa)m(r)415 +846 y +SDict begin 12 H.L end + 415 846 a 415 846 a +SDict begin [/Subtype /Link/Dest (chapter.21) cvn/H /I/Border [0 0 +1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark end + 415 846 a 2577 w Fj(161)20 +1149 y +SDict begin H.S end + 20 1149 a Fi(Stichw)m(o)m(rtverzeichnis)964 1149 +y +SDict begin 14 H.L end + 964 1149 a 964 1149 a +SDict begin [/Subtype /Link/Dest (chapter*.34) cvn/H /I/Border [0 0 +1]BorderArrayPatch/BS <>/Color [1 0 0] H.B /ANN pdfmark end + 964 1149 a 2028 w Fi(164)3037 +5092 y Fk(13)p eop end +%%Page: 14 14 +TeXDict begin 14 13 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 a +632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.14) cvn /DEST pdfmark end + 632 -5 a eop end +%%Page: 15 15 +TeXDict begin 15 14 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a 12 +-5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.15) cvn /DEST pdfmark end + 12 -5 a 20 1610 a +SDict begin H.S end + 20 1610 a 20 1610 +a +SDict begin 12 H.A end + 20 1610 a 20 1610 a +SDict begin [/View [/XYZ H.V]/Dest (part.1) cvn /DEST pdfmark end + 20 1610 a 1327 1788 a Fm(T)-17 +b(eil)68 b(I.)1291 2203 y Ff(Linux)3037 5092 y Fk(15)p +eop end +%%Page: 16 16 +TeXDict begin 16 15 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 a +632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.16) cvn /DEST pdfmark end + 632 -5 a eop end +%%Page: 17 17 +TeXDict begin 17 16 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a 12 +-5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.17) cvn /DEST pdfmark end + 12 -5 a 20 277 a +SDict begin H.S end + 20 277 a 20 277 +a +SDict begin 12 H.A end + 20 277 a 20 277 a +SDict begin [/View [/XYZ H.V]/Dest (chapter.2) cvn /DEST pdfmark end + 20 277 a 521 x Fm(2.)100 b(Linux)20 +971 y +SDict begin H.S end + 20 971 a 20 971 a +SDict begin 12 H.A end + 20 971 a 20 971 a +SDict begin [/View [/XYZ H.V]/Dest (section.2.1) cvn /DEST pdfmark +end + 20 971 a 150 +x Fe(2.1.)68 b(W)l(as)46 b(ist)f(Linux?)20 1305 y Fk(Der)28 +b(Kernel,)e(eine)i(Sc)n(hnittstelle)g(f\374r)g(die)f(Soft)n(w)n(are)g +(zur)g(Hardw)n(are.)20 1450 y +SDict begin H.S end + 20 1450 a 20 1450 a +SDict begin 12 H.A end + 20 +1450 a 20 1450 a +SDict begin [/View [/XYZ H.V]/Dest (section.2.2) cvn /DEST pdfmark +end + 20 1450 a 134 x Fe(2.2.)68 b(Kernel)45 +b(und)g(Mo)t(dule)20 1767 y Fd(http://www.kerne)o(l.)o(org)o(/)430 +b(http-Adresse)38 b(f\374r)k(den)h(Kernel)e(und)h(Kernel-Patches)20 +1867 y(http://www.de.ke)o(rn)o(el.)o(or)o(g/)o(pub)o(/l)o(inu)o(x/)o +(ke)o(rne)o(l/)255 b(Spiegel)40 b(f\374r)j(den)f(Kernel)20 +2006 y +SDict begin H.S end + 20 2006 a 20 2006 a +SDict begin 12 H.A end + 20 2006 a 20 2006 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.2.2.1) cvn /DEST pdfmark +end + 20 2006 +a 98 x Fi(2.2.1.)57 b(Kernel)36 b(2.4)20 2259 y Fd(tar)42 +b(xvfj)g(kernel.tar.bz2)1084 b(entpackt)40 b(den)i(Kernel)20 +2359 y(tar)g(xvfz)g(kernel.tar.gz)1128 b(entpackt)40 +b(den)i(Kernel)20 2459 y(cd)h(kernel)1697 b(Verzeichnis)39 +b(wechseln)20 2558 y(bzip2)j(-dc)g(../patch-2.x.xx)o(.bz)o(2)37 +b(|)44 b(patch)d(-p1)304 b(Kernel)41 b(patchen)20 2658 +y(gzip)h(-dc)g(../patch-2.x.xx.)o(gz)37 b(|)43 b(patch)f(-p1)391 +b(Kernel)41 b(patchen)20 2757 y(zcat)h(/proc/config.gz)37 +b(>)43 b(/usr/src/linux/.c)o(on)o(fi)o(g)125 b(die)42 +b(aktuelle)e(Konfiguration)e(des)2112 2857 y(laufenden)h(Kernels)i +(auslesen)20 2957 y(make)h(menuconfig)737 b(Kernelkonfigura)o(ti)o(on) +37 b(im)43 b(Textmodus)20 3056 y(make)f(dep)1045 b(aktualisiert)38 +b(die)k(Abh\344ngigkeiten)20 3156 y(make)g(clean)957 +b(l\366scht)41 b(die)h(tempor\344ren)d(Dateien)i(und)h(Ausgabedateien) +20 3256 y(make)g(zImage)913 b(\374bersetzt)39 b(und)k(komprimiert)38 +b(den)43 b(Kernel)20 3355 y(make)f(bzImage)869 b(\374bersetzt)39 +b(und)k(komprimiert)38 b(den)43 b(gossen)e(Kernel)20 +3455 y(make)h(dep)g(clean)g(zImage)477 b(aktualisiert,l\366)o(sc)o(ht) +37 b(und)42 b(\374bersetzt)20 3554 y(make)g(modules)869 +b(\374bersetzt)39 b(Module)20 3654 y(make)j(modules_install)517 +b(installiert)38 b(Module)20 3754 y(make)k(zlilo)957 +b(installiert)38 b(den)43 b(Kernel)e(und)h(den)g(Boot-Loader)d(LILO)20 +3853 y(make)j(bzlilo)913 b(installiert)38 b(den)43 b(gossen)e(Kernel)g +(und)1415 3953 y(den)h(Boot-Loader)d(LILO)20 4053 y(make)j(zdisk)957 +b(erzeugt)40 b(eine)i(Bootdiskette)c(mit)43 b(dem)f(neuen)g(Kernel)20 +4152 y(make)g(mrproper)825 b(l\366scht)41 b(alle)g(erzeugten)f +(Dateien,)1415 4252 y(auch)h(die)i(Konfiguration)20 4390 +y +SDict begin H.S end + 20 4390 a 20 4390 a +SDict begin 12 H.A end + 20 4390 a 20 4390 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.2.2.2) cvn /DEST pdfmark +end + 20 4390 a 99 +x Fi(2.2.2.)57 b(Kernel)36 b(2.6)i(\(Debian)d(4.0)i(etch\))20 +4644 y Fd(sudo)42 b(apt-get)f(update)564 b(Paket-Datenbank)37 +b(aktualisieren)20 4744 y(sudo)42 b(apt-get)f(install)f(kernel-package) +e(libncurses5-dev)f(fakeroot)j(wget)i(bzip2)g(\\)3037 +5092 y Fk(17)p eop end +%%Page: 18 18 +TeXDict begin 18 17 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 a +632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.18) cvn /DEST pdfmark end + 632 -5 a 640 128 a Fh(2.)41 +b(Lin)n(ux)858 360 y Fd(build-essential)517 b(ben\366tigte)39 +b(Pakete)i(installieren)640 460 y(cd)i(/usr/src)912 b(in)42 +b(das)h(Verzeichnis)c(zu)j(den)h(Quell-Paketen)38 b(wechseln)640 +559 y(wget)k(-c)h(http://www.kern)o(el.)o(or)o(g/)o(pub)o(/l)o(in)o +(ux/)o(ke)o(rn)o(el/)o(v2)o(.6/)o(li)o(nu)o(x-2)o(.6)o(.2)o(2.1)o(.t)o +(ar)o(.bz)o(2)2035 659 y(den)f(aktuellen)e(Kernel)h(downloaden)640 +758 y(wget)h(-c)h(http://www.kern)o(el.)o(or)o(g/)o(pub)o(/l)o(in)o +(ux/)o(ke)o(rn)o(el/)o(v2)o(.6/)o(li)o(nu)o(x-2)o(.6)o(.2)o(2.1)o(.t)o +(ar)o(.bz)o(2.)o(sig)o(n)2035 858 y(die)f(dazugeh\366rige)c(Signatur)j +(downloaden)640 958 y(gpg)h(--keyserver)d(wwwkeys.de.pgp.ne)o(t)e +(--recv-keys)i(0x517D0F0E)2035 1057 y(Public-Key)g(vom)j(Key-Server)e +(holen)640 1157 y(gpg)i(--verify)f(linux-2.6.22.1.)o(ta)o(r.b)o(z2)o +(.s)o(ign)2035 1257 y(Kernel-Signatur)c(\374berpr\374fen)640 +1356 y(tar)42 b(xvfj)g(linux-2.6.22.1.ta)o(r.)o(bz)o(2)c(Kernel)j +(entpacken)640 1456 y(ln)i(-s)g(linux-2.6.22.1)37 b(linux)260 +b(Soft-Link)39 b(zu)k(den)f(Kernel-Quellen)c(anlegen)640 +1556 y(cd)43 b(/usr/src/linux)648 b(zu)42 b(den)h(aktuellen)c +(Kernel-Quellen)f(wechseln)640 1655 y(bzip2)k(-dc)g(/usr/src/patch.b)o +(z2)37 b(|)43 b(patch)e(-p1)i(--dry-run)2035 1755 y(Aktualisieren)38 +b(pr\374fen)640 1854 y(bzip2)k(-dc)g(/usr/src/patch.b)o(z2)37 +b(|)43 b(patch)e(-p1)2035 1954 y(Kernel-Quellen)c(aktualisieren)h(wenn) +k(n\366tig)640 2054 y(make)g(clean)f(&&)i(make)f(mrproper)215 +b(Kernel)41 b(s\344ubern)f(und)j(korigieren)640 2153 +y(cp)g(/boot/config-`un)o(am)o(e)37 b(-r`)43 b(./.config)2035 +2253 y(laufende)d(Konfiguration)e(holen)640 2353 y(make)k(menuconfig) +737 b(Konfigurations-)o(Pr)o(ogr)o(am)o(m)37 b(starten)2035 +2452 y(Load)k(an)i(Alternate)d(Configuration)e(File)2035 +2552 y(laufende)i(Konfiguration)e(laden)j(und)i(Kernel)2035 +2651 y(konfigurieren)640 2751 y(make-kpkg)d(clean)640 +2851 y(fakeroot)g(make-kpkg)g(--initrd)g(--append-to-vers)o(ion)o(=-)o +(cus)o(to)o(m)d(kernel_image)i(\\)1032 2950 y(kernel_headers)387 +b(Kernel-Pakete)38 b(und)k(Kernel-Headers)c(herstellen)640 +3050 y(sudo)k(dpkg)g(-i)h(linux-image-2.6)o(.2)o(2.1)o(-c)o(us)o(tom)o +(_2)o(.6)o(.22)o(.1)o(-cu)o(st)o(om)o(-10)o(.0)o(0.)o(Cus)o(to)o(m_)o +(i38)o(6.)o(deb)2035 3150 y(den)f(neuen)f(Kernel)g(installieren)640 +3249 y(sudo)h(dpkg)g(-i)h(linux-headers-2)o(.6)o(.22)o(.1)o(-c)o(ust)o +(om)o(_2)o(.6.)o(22)o(.1-)o(cu)o(st)o(om-)o(10)o(.0)o(0.C)o(us)o(to)o +(m_i)o(38)o(6.d)o(eb)2035 3349 y(die)f(neuen)f(Header)g(installieren) +640 3448 y(sudo)h(shutdown)e(-r)j(now)522 b(Neustart)40 +b(um)i(den)h(Kernel)e(zu)i(testen)640 3747 y(uname)f(-a)1045 +b(feststellen)38 b(welcher)j(Kernel)g(gestartet)f(ist)640 +3947 y(dmesg)1175 b(Kernelmeldungen)37 b(vom)42 b(letzten)f(Start)g +(anzeigen)640 4146 y(insmod)g(Modul)870 b(Modul)41 b(laden)640 +4245 y(modprobe)f(Modul)783 b(Modul)41 b(eigenst\344ndig)e(laden)640 +4345 y(lsmod)1175 b(geladene)40 b(Module)h(anzeigen)f(lassen)640 +4445 y(rmmod)i(Modul)913 b(Modul)41 b(entfernen)640 5092 +y Fk(18)p eop end +%%Page: 19 19 +TeXDict begin 19 18 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a 12 +-5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.19) cvn /DEST pdfmark end + 12 -5 a 20 277 a +SDict begin H.S end + 20 277 a 20 277 +a +SDict begin 12 H.A end + 20 277 a 20 277 a +SDict begin [/View [/XYZ H.V]/Dest (chapter.3) cvn /DEST pdfmark end + 20 277 a 520 x Fm(3.)100 b(Befehle)20 +962 y +SDict begin H.S end + 20 962 a 20 962 a +SDict begin 12 H.A end + 20 962 a 20 962 a +SDict begin [/View [/XYZ H.V]/Dest (section.3.1) cvn /DEST pdfmark +end + 20 962 a 150 +x Fe(3.1.)68 b(Standa)l(rtein-aus-gab)t(e)20 1294 y Fk(Jedes)27 +b(UNIX)h(k)n(enn)n(t)g(3)f(sp)r(ezielle)g(Files:)20 1449 +y Fd(stdin)477 b(Standardeingabe,)37 b(normalerweise)h(die)k(Tastatur) +20 1549 y(stdout)433 b(Standardausgabe,)37 b(normalerweise)h(der)k +(Bildschirm)20 1648 y(stderr)433 b(Standardausgabe)38 +b(f\374r)k(Fehlermeldungen)o(,)717 1748 y(normalerweise)c(der)43 +b(Bildschirm)20 1903 y Fk(All)28 b(diese)f(Files)h(k)n(\366nnen)f +(umgelenkt)g(w)n(erden)20 2072 y Fd(setterm)41 b(-blank)g(0)304 +b(Bildschirmschoner)37 b(ausschalten)20 2195 y +SDict begin H.S end + 20 2195 +a 20 2195 a +SDict begin 12 H.A end + 20 2195 a 20 2195 a +SDict begin [/View [/XYZ H.V]/Dest (section.3.2) cvn /DEST pdfmark +end + 20 2195 a 149 x Fe(3.2.)68 +b(Anmelden)44 b(und)h(Abmelden)20 2526 y Fd(login:)c(Benutzername)562 +b(1.)42 b(zum)h(Anmelden)d(den)i(Benutzernamen)c(eingeben)20 +2626 y(Passwort:)i(Benutzerpasswor)o(t)256 b(2.)42 b(zum)h(Anmelden)d +(das)i(Benutzerpasswort)37 b(eingeben)20 2825 y(logout)1131 +b(zum)42 b(Abmelden)e(eingeben)20 2925 y(exit)1219 b(zum)42 +b(Abmelden)e(eingeben)20 3024 y([Strg]+[d])955 b(beendet)40 +b(die)i(Shell)g(\(alle)f(Shells\))20 3166 y +SDict begin H.S end + 20 3166 a +20 3166 a +SDict begin 12 H.A end + 20 3166 a 20 3166 a +SDict begin [/View [/XYZ H.V]/Dest (section.3.3) cvn /DEST pdfmark +end + 20 3166 a 131 x Fe(3.3.)68 +b(Anhalten)44 b(des)h(Systems)f(und)h(Bo)t(oten)20 3478 +y Fk(Un)n(ter)34 b(k)n(einen)g(Umst\344nden)h(darf)f(w)n(\344hrend)g +(des)g(Betriebs)g(einfac)n(h)g(der)g(Strom)g(abgesc)n(haltet)20 +3578 y(o)r(der)26 b(der)h(Resetknopf)g(b)r(et\344tigt)g(w)n(erden.)f +(Da)h(es)g(sonst)g(zu)g(einer)f(Besc)n(h\344digung)f(des)i(Dateisy-)20 +3678 y(stems)h(mit)g(Daten)n(v)n(erlust)e(k)n(ommen)h(k)-5 +b(ann.)20 3847 y Fd(root:)42 b(shutdown)e(-h)i(now)479 +b(h\344lt)41 b(das)i(System)e(an)20 3947 y(root:)h(halt)957 +b(h\344lt)41 b(das)i(System)e(an)20 4046 y(root:)h(init)f(0)872 +b(h\344lt)41 b(das)i(System)e(an)20 4146 y(root:)h(systemctl)d +(poweroff)346 b(h\344lt)41 b(das)i(System)e(an)20 4245 +y(root:)h(shutdown)e(-r)i(now)479 b(startet)40 b(den)i(Computer)f(nach) +g(dem)i(Herunterfahren)37 b(neu)20 4345 y(root:)42 b(reboot)869 +b(startet)40 b(den)i(Computer)f(nach)g(dem)i(Herunterfahren)37 +b(neu)20 4445 y(root:)42 b(init)f(6)872 b(startet)40 +b(den)i(Computer)f(nach)g(dem)i(Herunterfahren)37 b(neu)20 +4544 y(root:)42 b(systemctl)d(reboot)434 b(startet)40 +b(den)i(Computer)f(nach)g(dem)i(Herunterfahren)37 b(neu)20 +4644 y(root:)42 b(systemctl)d(suspend)390 b(Bereitschaft)20 +4744 y(root:)42 b(systemctl)d(hibernate)302 b(Ruhezustand)3037 +5092 y Fk(19)p eop end +%%Page: 20 20 +TeXDict begin 20 19 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 a +632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.20) cvn /DEST pdfmark end + 632 -5 a 640 128 a Fh(3.)41 +b(Befehle)640 277 y +SDict begin H.S end + 640 277 a 640 277 a +SDict begin 12 H.A end + 640 277 a 640 +277 a +SDict begin [/View [/XYZ H.V]/Dest (section.3.4) cvn /DEST pdfmark +end + 640 277 a 85 x Fe(3.4.)68 b(Die)47 b(Runlevel)640 +544 y Fd(root:)42 b(init)f(0)174 b(Systemhalt)640 643 +y(root:)42 b(init)f(S)174 b(Einzelbenutzerbet)o(ri)o(eb)37 +b(\(Single)k(User)h(Mode\))640 743 y(root:)g(init)f(1)174 +b(Einzelbenutzerbet)o(ri)o(eb)37 b(\(Single)k(User)h(Mode\))640 +842 y(root:)g(init)f(2)174 b(Lokaler)41 b(Mehrbenutzerbetr)o(ie)o(b)c +(ohne)42 b(entferntes)e(Netzwerk)1337 942 y(\(Local)h(multiuser)f +(without)h(remote)g(network\))640 1042 y(root:)h(init)f(3)174 +b(Voller)41 b(Mehrbenutzerbetri)o(eb)c(mit)42 b(Netzwerk)1337 +1141 y(\(Full)g(multiuser)e(with)h(network\))640 1241 +y(root:)h(init)f(4)174 b(Frei)42 b(\(Not)g(used\))640 +1341 y(root:)g(init)f(5)174 b(Voller)41 b(Mehrbenutzerbetri)o(eb)c(mit) +42 b(Netzwerk)e(und)j(KDM,)f(GDM)g(oder)g(XDM)1337 1440 +y(\(Full)g(multiuser)e(with)h(network)g(and)h(xdm\))640 +1540 y(root:)g(init)f(6)174 b(Systemneustart)38 b(\(System)j(reboot\)) +640 1639 y(root:)h(init)f(q)174 b(Quit)42 b(zum)h(Neueinlesen)38 +b(der)43 b(inittab)640 1772 y +SDict begin H.S end + 640 1772 a 640 1772 a +SDict begin 12 H.A end + 640 +1772 a 640 1772 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.3.4.1) cvn /DEST pdfmark +end + 640 1772 a 98 x Fi(3.4.1.)57 b(Upsta)m(rt)640 +2023 y Fk(Upstart)18 b(sorgt)f(daf\374r)h(das)g(Dienste)h +(ereignisbasiert)d(parallel)h(gestartet)h(w)n(erden)f(k)n(\366nnen)h +(/etc/inittab)640 2123 y(en)n(tf\344llt)28 b(neu)g(/etc/init/)f(\(bzw.) +h(/etc/ev)n(en)n(t.d/\))640 2295 y Fd(initctl)41 b(list)870 +b(Liste)41 b(aller)g(Init-Jobs)640 2395 y(sudo)h(initctl)f(start/stop) +388 b(Init-Jobs)39 b(\(zB.)j(ssh\))723 2567 y Fk(Im)28 +b(Header)f(der)g(Datei)h(k)-5 b(ann)27 b(dann)h(zum)g(Starten)f(und)h +(Beenden)g(\035ogendes)e(stehen:)640 2739 y Fd(start)42 +b(on)g(runlevel)f([2345])640 2838 y(stop)h(on)h(runlevel)d([!2345])640 +3038 y(sudo)i(initctl)f(reload-configur)o(at)o(ion)298 +b(lie\377t)42 b(die)g(Konfiguration)c(neu)k(ein)h(und)2383 +3137 y(startet/beendet)37 b(die)43 b(Dienste)640 3267 +y +SDict begin H.S end + 640 3267 a 640 3267 a +SDict begin 12 H.A end + 640 3267 a 640 3267 a +SDict begin [/View [/XYZ H.V]/Dest (section.3.5) cvn /DEST pdfmark +end + 640 3267 +a 143 x Fe(3.5.)68 b(SuSE-Linux)640 3592 y Fd(hilfe)1175 +b(Hilfesystem)38 b(starten)640 3691 y(yast)1219 b(Yet)42 +b(another)e(Setup)i(Tool)g(-)2035 3791 y(SuSE)f(Administrationsto)o(ol) +640 3891 y(yast2)1175 b(Yet)42 b(another)e(Setup)i(Tool)g(2)h(-)2035 +3990 y(SuSE)e(Administrationsto)o(ol)640 4090 y(SuSEconfig)955 +b(das)42 b(Skript)f(muss)h(aufgerufen)d(werden)2035 4189 +y(nachdem)h(die)i(/etc/rc.config)c(und)k(/etc/sysconfig/)2035 +4289 y(von)g(Hand)g(ver\344ndert)e(wurden)640 4412 y +SDict begin H.S end + +640 4412 a 640 4412 a +SDict begin 12 H.A end + 640 4412 a 640 4412 a +SDict begin [/View [/XYZ H.V]/Dest (section.3.6) cvn /DEST pdfmark +end + 640 4412 +a 150 x Fe(3.6.)68 b(Zur)46 b(Orientierung)e(auf)h(einem)g +(UNIX-Rechner)640 4744 y Fd(date)521 b(zeigt)42 b(Datum)f(und)i +(Uhrzeit)d(an)640 5092 y Fk(20)p eop end +%%Page: 21 21 +TeXDict begin 21 20 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a 12 +-5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.21) cvn /DEST pdfmark end + 12 -5 a 2234 128 a Fh(3.7.)40 b(Datum)28 +b(und)g(Uhrzeit)20 360 y Fd(df)43 b(-k)478 b(zeigt)42 +b(den)g(feien)g(Platten-Platz)c(in)k(kB)h(an)20 460 y(df)g(-m)478 +b(zeigt)42 b(den)g(feien)g(Platten-Platz)c(in)k(MB)h(an)20 +559 y(df)g(-h)478 b(Ausgabe)41 b(von)h(Gr\366\377en)f(in)i +(Menschen-lesbare)o(m)37 b(Format)20 659 y(du)43 b(-h)478 +b(zeigt)42 b(wie)g(viel)g(Platten-Platz)c(in)43 b(kB)f(bestimmte)e +(Dateien)h(einnehmen)20 758 y(echo)h(Text)303 b(schreibt)40 +b(den)j(Text)f(auf)g(stdout)f(\(Bildschirm\))20 858 y(finger)433 +b(zeigt)42 b(Infos)f(\374ber)h(eingeloggte)d(Benutzer)h(an)20 +958 y(finger)85 b(-l)260 b(zeigt)42 b(ausf\374hrliche)c(Infos)k +(\374ber)g(eingeloggte)c(Benutzer)j(an)20 1057 y(free)h(-t)391 +b(zeigt)42 b(den)g(feien)g(Arbeitsspeicher)37 b(in)42 +b(kB)h(an)20 1157 y(last)521 b(zeigt)42 b(wer)g(sich)g(zuletzt)f(von)h +(wo)h(aus)f(auf)g(dem)g(Rechner)f(eingeloggt)e(hat)20 +1257 y(info)j(Begriff)171 b(Hilfe)42 b(zu)g(dem)h(Begriff)d(im)j +(Infoformat)20 1356 y(man)f(Begriff)215 b(Hilfe)42 b(zu)g(dem)h +(Begriff)20 1456 y(man)f(-a)h(Begriff)84 b(alle)42 b(Kapitel)f(zu)i +(dem)f(Begriff)20 1556 y(man)g(-f)h(Begriff)84 b(listet)41 +b(die)i(gefundenen)c(Seiten)i(zu)i(dem)f(Begriff)f(auf)20 +1655 y(man)h(-k)h(Begriff)84 b(listet)41 b(die)i(Seiten)e(in)h(dem)h +(der)f(Begriff)f(vorkommt)f(auf)20 1755 y(man)i(n)i(Begriff)127 +b(Hilfe)42 b(zum)g(Begriff)f(mit)h(der)g(Sektion)f(n)717 +1854 y(Die)i(Manual-Pages)38 b(sind)k(auf)g(verschiedene)d(Sektionen)h +(aufgeteilt:)717 1954 y(1)j(Shell-Kommandos)717 2054 +y(2)g(System-Aufrufe)717 2153 y(3)g(Funktionen)d(-)j(C-Bibliotheksfun)o +(kt)o(io)o(nen)o(.)717 2253 y(4)g(Die)g(Beschreibung)38 +b(von)43 b(Konfigurationsd)o(at)o(ei)o(en.)717 2353 y(5)g(Die)g(Syntax) +e(wichtiger)f(Dateien.)717 2452 y(6)j(Beschreibung)c(von)j(Spielen.)717 +2552 y(7)h(Alles)f(was)g(mit)h(Text,)e(Textformatierung)c(und)42 +b(anderen)f(Formaten)f(zu)804 2651 y(tun)j(hat.)717 2751 +y(8)g(Die)g(Befehle)d(des)j(Systemverwalter)o(s.)717 +2851 y(9)g(Die)g(Beschreibung)38 b(der)43 b(Linux-Kernelrou)o(ti)o(ne)o +(n.)717 2950 y(n)g(n)h(kommt)d(angeblich)f(von)i(neu,)g(hier)g(sind)g +(sonstige)e(Manual-Pages)804 3050 y(aufgef\374hrt,)f(die)k(in)f(eine)g +(der)h(oberen)e(Sektionen)e(geh\366ren,)i(aber)804 3150 +y(traditionell)e(hier)j(stehen)f(oder)h(zu)g(keiner)f(Sektion)g(genau)h +(passen.)20 3249 y(pwd)565 b(Ausgabe)41 b(des)h(aktuellen)e +(Verzeichnisses)20 3349 y(w)653 b(wer)43 b(ist)f(da)h(und)f(was)g(ist)h +(los)20 3448 y(whatis)e(Befehl)128 b(zeigt)42 b(Kurzerkl\344rung)c +(eines)j(Befehls)20 3548 y(which)h(Befehl)171 b(zeigt,)41 +b(wo)i(Executable)c(liegt,)i(und)i(eventual)d(alias)20 +3648 y(who)565 b(zeigt)42 b(Liste)f(aller)h(eingeloggten)c(Benutzer)20 +3747 y(whoami)433 b(zeigt,)41 b(wem)i(die)f(Shell)f(geh\366rt)20 +3916 y +SDict begin H.S end + 20 3916 a 20 3916 a +SDict begin 12 H.A end + 20 3916 a 20 3916 a +SDict begin [/View [/XYZ H.V]/Dest (section.3.7) cvn /DEST pdfmark +end + 20 3916 +a 137 x Fe(3.7.)68 b(Datum)45 b(und)g(Uhrzeit)20 4245 +y Fd(date)1916 b(Datum)41 b(und)h(Uhrzeit)f(abfragen)20 +4345 y(date)h(-s)h('2000-01-29)c(20:00:00')g(+'\045Y-\045m-\045d)h +(\045T')173 b(Datum)41 b(und)h(Uhrzeit)f(einstellen)20 +4445 y(netdate)g(Rechnername)1259 b(Datum)41 b(und)h(Uhrzeit)f(vom)h +(Rechner-)2112 4544 y(name)g(holen)20 4644 y(clock)g(-u)g(-w)1612 +b(Datum)41 b(und)h(Uhrzeit)f(in)2112 4744 y(das)h(BIOS)g(schreiben)3037 +5092 y Fk(21)p eop end +%%Page: 22 22 +TeXDict begin 22 21 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 a +632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.22) cvn /DEST pdfmark end + 632 -5 a 640 128 a Fh(3.)41 +b(Befehle)640 360 y Fd(timedatectl)e(set-local-rtc)f(1)915 +b(locale)41 b(Zeit)h(einstellen)640 460 y(timedatectl)d(set-local-rtc)f +(0)915 b(UTC)42 b(Zeit)g(einstellen)640 624 y +SDict begin H.S end + 640 624 +a 640 624 a +SDict begin 12 H.A end + 640 624 a 640 624 a +SDict begin [/View [/XYZ H.V]/Dest (section.3.8) cvn /DEST pdfmark +end + 640 624 a 159 x Fe(3.8.)68 +b(Au\035isten)640 982 y Fd(ls)958 b(Auflisten)40 b(der)i(Dateien)f(im)h +(aktuellen)e(Verzeichnis)640 1081 y(ls)j(Verzeichnis)431 +b(Inhalt)41 b(des)h(Verzeichnisses)c(ausgeben)640 1181 +y(ls)43 b(-la)783 b(alles)41 b(Auflisten)f(im)j(aktuellen)d +(Verzeichnis)640 1281 y(ls)j(-laFi)695 b(alles)41 b(ausf\374hrlicher)d +(Auflisten)640 1380 y(ls)43 b(|)g(paste)e(-)j(-)f(-)g(-)261 +b(Dateien)41 b(vierspaltig)d(ausgeben)640 1480 y(ls)43 +b(-1)827 b(untereinander)38 b(ausgeben)640 1580 y(ls)43 +b(-F)827 b(Verzeichnisse)38 b(mit)k(angeh\344ngtem)d(/)k(markieren)640 +1679 y(ls)g(-i)827 b(inode-Nummer)38 b(mit)43 b(ausgeben)640 +1779 y(ls)g(-R)827 b(alle)42 b(Unterverzeichni)o(sse)37 +b(mit)42 b(ausgeben)640 1878 y(ls)h(-r)827 b(Auflisten)40 +b(der)i(Dateien)f(umkehren)640 2043 y +SDict begin H.S end + 640 2043 a 640 +2043 a +SDict begin 12 H.A end + 640 2043 a 640 2043 a +SDict begin [/View [/XYZ H.V]/Dest (section.3.9) cvn /DEST pdfmark +end + 640 2043 a 159 x Fe(3.9.)68 +b(Dateinamen)640 2401 y Fk(UNIX)31 b(un)n(tersc)n(heidet)e(Gro\377-)g +(und)h(Kleinsc)n(hreibung!)f(liesmic)n(h,)h(Liesmic)n(h,)g(LIESMICH)h +(sind)640 2500 y(v)n(ersc)n(hiedene)e(Dateinamen!)h(max.)g(256)f(Zeic)n +(hen,)h(alle)g(Zeic)n(hen)g(sind)h(erlaubt)f(.)g(am)g(Namens-)640 +2600 y(anfang)d(v)n(erstec)n(kt)f(Datei)i(v)n(or)e(ls,)i(cp,)f(rm,)h(m) +n(v)640 2803 y Fd(alias)1175 b(gibt)41 b(alle)h(definierten)d +(Kurznamen)h(aus)640 2902 y(alias)i(la='ls)f(-la')652 +b(definiert)39 b(Kurznamen)h(f\374r)i(ein)h(Kommando)2035 +3002 y(aus)f(ls)h(-la)f(wird)g(ein)g(la)640 3166 y +SDict begin H.S end + 640 +3166 a 640 3166 a +SDict begin 12 H.A end + 640 3166 a 640 3166 a +SDict begin [/View [/XYZ H.V]/Dest (section.3.10) cvn /DEST pdfmark +end + 640 3166 a 159 +x Fe(3.10.)68 b(Dateiendungen)640 3524 y Fd(.a)609 b(Objektbibliotheke) +o(n)640 3624 y(.c)g(C-Quelltextdatei)640 3723 y(.cpp)521 +b(C++-Quellen)640 3823 y(.o)609 b(Objektdatei)640 3923 +y(.p)g(Pascal-Quellen)640 4022 y(.s)g(Assembler)640 4187 +y +SDict begin H.S end + 640 4187 a 640 4187 a +SDict begin 12 H.A end + 640 4187 a 640 4187 a +SDict begin [/View [/XYZ H.V]/Dest (section.3.11) cvn /DEST pdfmark +end + 640 4187 +a 158 x Fe(3.11.)68 b(Infos)45 b(\374b)t(er)f(Files)640 +4544 y Fd(file)e(Datei)608 b(Anzeige)41 b(des)h(Dateitypes)640 +4644 y(wc)h(-lwc)f(Datei)477 b(Ausgabe)41 b(der)h(Zeilen,)e(Worte)i +(und)g(Buchstaben)e(der)i(Datei)640 4744 y(ls)h(-a)g(|)g(wc)f(-l)479 +b(alle)42 b(Dateien)e(im)j(aktuellen)d(Verzeichnis)f(z\344hlen)640 +5092 y Fk(22)p eop end +%%Page: 23 23 +TeXDict begin 23 22 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a 12 +-5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.23) cvn /DEST pdfmark end + 12 -5 a 1176 128 a Fh(3.12.)40 b(Arb)r(eiten\(V)-7 +b(erw\374stungen\))28 b(im)g(und)g(am)g(Filesystem)20 +277 y +SDict begin H.S end + 20 277 a 20 277 a +SDict begin 12 H.A end + 20 277 a 20 277 a +SDict begin [/View [/XYZ H.V]/Dest (section.3.12) cvn /DEST pdfmark +end + 20 277 a 90 +x Fe(3.12.)68 b(Arb)t(eiten\(V)l(erw\374stungen\))40 +b(im)46 b(und)f(am)h(Filesystem)20 551 y Fd(cd)d(Pfad)739 +b(Verzeichnis)39 b(wechseln)20 651 y(mkdir)j(Name)608 +b(Verzeichnis)39 b(erzeugen)20 751 y(mkdir)j(-p)g(Name)478 +b(Verzeichnis)39 b(erzeugen,)h(fehlende)g(Verzeichnisse)e(mit)k +(anlegen)20 901 y +SDict begin H.S end + 20 901 a 20 901 a +SDict begin 12 H.A end + 20 901 a 20 901 a +SDict begin [/View [/XYZ H.V]/Dest (section.3.13) cvn /DEST pdfmark +end + +20 901 a 132 x Fe(3.13.)68 b(K)l(opieren)44 b(und)h(V)l(erschieb)t(en) +20 1218 y Fd(cp)e(Dateien)d(Ziel)391 b(Dateien)41 b(kopieren)20 +1318 y(cp)i(-i)g(Dateien)d(Ziel)260 b(Dateien)41 b(kopieren,)e(vor)k +(dem)f(\334berschreiben)1066 1417 y(einer)f(Datei)h(nachfragen)20 +1517 y(cp)h(-R)g(Quelle*)d(Ziel)260 b(gesamten)40 b(Inhalt)h(eines)h +(Verzeichnises)c(kopieren)20 1617 y(mv)43 b(Quelle)e(Ziel)434 +b(Datei)41 b(verschieben)e(oder)j(umbenennen)20 1716 +y(mv)h(-f)g(Quelle)e(Ziel)303 b(Schreibgesch\374tzt)o(e)37 +b(Datei)42 b(verschieben)d(oder)j(umbenennen)20 1816 +y(mv)h(-i)g(Quelle)e(Ziel)303 b(Datei)41 b(verschieben)e(oder)j +(umbenennen,)1066 1915 y(vor)g(dem)h(\334berschreiben)38 +b(nachfragen)20 2015 y(ln)43 b(Quelle)e(Ziel)434 b(Verkn\374pfung)39 +b(erzeugen)h(\(Hardlink\),)1066 2115 y(beide)h(Dateien)g(haben)g(die)i +(gleiche)d(inode)20 2214 y(ln)j(-s)g(Quelle)e(Ziel)303 +b(Verkn\374pfung)39 b(erzeugen)h(\(Softlink\))20 2314 +y(ln)j(-sf)f(Quelle)f(Ziel)260 b(Verkn\374pfung)39 b(erzeugen)h +(\(Softlink\))1066 2414 y(ohne)i(R\374ckfrage)e(\374berschreiben)20 +2564 y +SDict begin H.S end + 20 2564 a 20 2564 a +SDict begin 12 H.A end + 20 2564 a 20 2564 a +SDict begin [/View [/XYZ H.V]/Dest (section.3.14) cvn /DEST pdfmark +end + 20 2564 +a 132 x Fe(3.14.)68 b(L\366schen)20 2881 y Fd(rm)43 b(Datei)695 +b(l\366schen)41 b(von)h(Daten)20 2981 y(rm)h(-r)g(Dateien)476 +b(l\366schen)41 b(von)h(Dateien)e(mit)j(Verzeichnissen)20 +3080 y(rmdir)f(Verzeichnis)300 b(l\366scht)41 b(Verzeichnis)e(wenn)j +(es)g(leer)g(ist,)1066 3180 y(\374berfl\374ssig)d(rm)k(-r)f(geht)g +(auch)20 3330 y +SDict begin H.S end + 20 3330 a 20 3330 a +SDict begin 12 H.A end + 20 3330 a 20 3330 +a +SDict begin [/View [/XYZ H.V]/Dest (section.3.15) cvn /DEST pdfmark +end + 20 3330 a 133 x Fe(3.15.)68 b(Ausgeb)t(en)20 3648 y +Fd(cat)42 b(Datei)1001 b(Inhalt)41 b(der)h(Datei)f(auf)i(dem)f +(Bildschirm)d(ausgeben)20 3747 y(cat)j(Datei1)f(Datei2)g(>)j(Datei3)259 +b(Dateien1+2)39 b(zusammenf\374gen)f(in)43 b(die)f(Datei3)f(schreiben) +20 3847 y(strings)g(Datei)826 b(Druckbare)39 b(Zeichen)i(der)h(Datei)g +(ausgeben)20 3947 y(more)g(Datei)957 b(Datei)41 b(seitenweise)e +(ausgeben)20 4046 y(less)j(Datei)957 b(Datei)41 b(ausgeben)f(und)i(mit) +h(den)f(Curser)f(scrollen)1415 4146 y(j)i(eine)f(Zeile)f(weiter)1415 +4245 y(k)i(eine)f(Zeile)f(zur\374ck)1415 4345 y(u)i(halbe)e(Seite)h +(zur\374ck)1415 4445 y(/Text)f(sucht)g(den)i(Text)1415 +4544 y(q)g(less)f(verlassen)20 4644 y(nl)h(Datei)1044 +b(Datei)41 b(mit)h(Zeilennummern)c(ausgeben)20 4744 y(tail)k(Datei)957 +b(zeigt)41 b(die)h(letzten)f(10)i(Zeilen)e(einer)g(Datei)h(an)3037 +5092 y Fk(23)p eop end +%%Page: 24 24 +TeXDict begin 24 23 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 a +632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.24) cvn /DEST pdfmark end + 632 -5 a 640 128 a Fh(3.)41 +b(Befehle)640 360 y Fd(tail)h(-n)h(Datei)826 b(zeigt)41 +b(die)h(letzten)f(n)i(Zeilen)e(einer)h(Datei)f(an)640 +460 y(tail)h(-f)h(Datei)826 b(zeigt)41 b(st\344ndig)g(die)h(letzten)f +(10)h(Zeilen)f(der)i(Datei)e(an)640 559 y(tail)h(-f)h(/var/log/messag)o +(es)299 b(Systemmeldungen)37 b(mitverfolgen)640 659 y(head)42 +b(Datei)957 b(zeigt)41 b(die)h(ersten)f(10)i(Zeilen)e(einer)h(Datei)f +(an)640 758 y(head)h(-n)h(Datei)826 b(zeigt)41 b(die)h(ersten)f(n)j +(Zeilen)d(einer)g(Datei)g(an)640 858 y(od)i(-b)g(Datei)913 +b(Datei)41 b(oktal)g(ausgeben)640 958 y(od)i(-c)g(Datei)913 +b(Datei)41 b(als)h(ASCII)g(ausgeben)640 1057 y(od)h(-x)g(Datei)913 +b(Datei)41 b(hexadezimal)e(ausgeben)640 1157 y(ls)k(|)g(paste)e(-)j(-)f +(-)g(-)610 b(Dateien)40 b(vierspaltig)f(ausgeben)640 +1257 y(recode)i(ibmpc:lat1)f(Datei)390 b(Konvertierung)38 +b(der)k(Datei)2035 1356 y(7)h(Bit)f(DOS)g(in)h(das)f(UNICODE/8)e(Bit)i +(Format)640 1493 y +SDict begin H.S end + 640 1493 a 640 1493 a +SDict begin 12 H.A end + 640 1493 a 640 +1493 a +SDict begin [/View [/XYZ H.V]/Dest (section.3.16) cvn /DEST pdfmark +end + 640 1493 a 144 x Fe(3.16.)68 b(Der)46 b(T)-11 +b(extedito)l(r)43 b(vi/vim)640 1821 y Fd(vi)609 b(Editor)41 +b(vi)i(aufrufen)640 1921 y(vi)g(Datei)346 b(Editor)41 +b(vi)i(aufrufen)d(und)j(Datei)e(\366ffnen)640 2020 y(vi)i(-r)478 +b(swap-Dateien)39 b(anzeigen)640 2120 y(vi)k(-r)g(Datei)215 +b(Datei)42 b(nach)g(einem)f(Stromausfall)e(\(oder)i(Absturz\))f(wieder) +h(herstellen)640 2220 y(vi)i(-R)g(Datei)215 b(Datei)42 +b(schreibgesch\374tz)o(t)c(\366ffnen)640 2368 y +SDict begin H.S end + 640 2368 +a 640 2368 a +SDict begin 12 H.A end + 640 2368 a 640 2368 a +SDict begin [/View [/XYZ H.V]/Dest (section.3.17) cvn /DEST pdfmark +end + 640 2368 a 133 x Fe(3.17.)68 +b(Suchen)45 b(nach)g(Dateien)640 2685 y Fd(find)d(Pfad)g(Bedingung)563 +b(nach)41 b(Dateien)g(suchen)640 2784 y(find)h(Pfad)g(|)h(grep)f(name) +478 b(nach)41 b(Dateien)g(suchen,)g(hat)h(sich)g(bew\344hrt)640 +2884 y(find)g(Pfad)g(-name)f(.profile)346 b(nach)41 b(dem)i(Dateinamen) +c(.profile)h(suchen)640 2983 y(find)i(Pfad)g(-user)f(higi)522 +b(nach)41 b(Dateien)g(die)h(dem)h(Benutzer)2035 3083 +y(higi)e(geh\366ren)g(suchen)640 3183 y(find)h(Pfad)g(-size)f(+1024c) +434 b(nach)41 b(Dateien)g(die)h(gr\366\377er)f(als)i(1024)f(Bytes)2035 +3282 y(sind)f(suchen)640 3382 y(find)h(Pfad)g(-atime)f(+7)566 +b(nach)41 b(Dateien)g(suchen)g(die)h(\344lter)g(als)g(7)h(Tage)f(sind) +640 3482 y(find)g(Pfad)g(-print)695 b(alle)41 b(Dateien)g(im)i(Pfad)f +(ausgeben)640 3581 y(find)g(-name)f(*.txt)696 b(alle)41 +b(Dateien)g(im)i(aktuellen)d(Pfad)2035 3681 y(mit)i(der)g(Endung)f +(.txt)h(ausgeben)640 3780 y(find)g(/)h(-size)f(+16000000c)388 +b(alle)41 b(Dateien)g(die)h(mehr)g(als)h(16MB)e(haben)h(ausgeben)640 +3880 y(find)g(/)h(-fstype)e(msdos)g(-name)h(*.zip)346 +b(sucht)42 b(auf)g(MS-DOS-Partition)37 b(nach)42 b(*.zip)640 +3980 y(find)g(/)h(-fstype)e(vfat)h(-name)f(*.txt)390 +b(sucht)42 b(auf)g(Windows-Partitio)o(n)37 b(nach)42 +b(*.txt)640 4128 y +SDict begin H.S end + 640 4128 a 640 4128 a +SDict begin 12 H.A end + 640 4128 a 640 +4128 a +SDict begin [/View [/XYZ H.V]/Dest (section.3.18) cvn /DEST pdfmark +end + 640 4128 a 133 x Fe(3.18.)68 b(Suchen)45 b(in)h(Dateien)640 +4445 y Fd(grep)c(Ausdruck)e(Datei)565 b(sucht)41 b(nach)h(dem)g +(Ausdruck)e(in)j(der)f(Datei)640 4544 y(grep)g(-c)h(Ausdruck)d(Datei) +434 b(Anzahl)41 b(der)h(Zeilen,)f(die)h(den)g(Begriff)2035 +4644 y(enthalten)d(ausgeben)640 4744 y(grep)j(-i)h(Ausdruck)d(Datei)434 +b(gro\377e)41 b(und)h(kleine)f(Buchstaben)f(nicht)h(unterscheiden)640 +5092 y Fk(24)p eop end +%%Page: 25 25 +TeXDict begin 25 24 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a 12 +-5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.25) cvn /DEST pdfmark end + 12 -5 a 2031 128 a Fh(3.19.)40 b(V)-7 +b(ergleic)n(hen)27 b(v)n(on)f(Dateien)20 360 y Fd(grep)42 +b(-l)h(Ausdruck)d(Datei)434 b(meldet)41 b(die)h(Dateien)e(die)j(den)f +(Ausdruck)e(enthalten)20 460 y(grep)i(-n)h(Ausdruck)d(Datei)434 +b(sucht)41 b(nach)h(dem)g(Ausdruck)e(und)1415 559 y(gibt)h(die)i +(Zeilennummer)38 b(mit)k(aus)20 659 y(grep)g(-v)h(Ausdruck)d(Datei)434 +b(Ausgabe)40 b(der)i(Zeilen)f(die)i(den)f(Ausdruck)1415 +758 y(nicht)f(enthalten)20 858 y(egrep)h(Ausdruck)e(Datei)521 +b(sucht)41 b(nach)h(dem)g(Ausdruck)e(in)j(der)f(Datei)20 +958 y(fgrep)g(String)f(Datei)608 b(sucht)41 b(nach)h(dem)g(String)f(in) +i(der)f(Datei)20 1057 y(fgrep)g(-x)g(String)f(Datei)478 +b(sucht)41 b(nach)h(dem)g(String)f(in)i(der)f(Zeile)g(einer)f(Datei)20 +1211 y +SDict begin H.S end + 20 1211 a 20 1211 a +SDict begin 12 H.A end + 20 1211 a 20 1211 a +SDict begin [/View [/XYZ H.V]/Dest (section.3.19) cvn /DEST pdfmark +end + 20 1211 +a 133 x Fe(3.19.)68 b(V)l(ergleichen)44 b(von)h(Dateien)20 +1531 y Fd(diff)d(Datei1)f(Datei2)608 b(zeigt)41 b(die)h(Unterschiede)d +(zwischen)h(zwei)i(Dateien)20 1630 y(comm)g([-123])f(Datei1)g(Datei2) +303 b(zwei)41 b(sortierte)f(Textdateien)f(vergleichen)20 +1730 y(cmp)j(-l)h(Datei1)e(Datei2)521 b(Bin\344r-/Dateien)37 +b(vergleichen)20 1884 y +SDict begin H.S end + 20 1884 a 20 1884 a +SDict begin 12 H.A end + 20 1884 a +20 1884 a +SDict begin [/View [/XYZ H.V]/Dest (section.3.20) cvn /DEST pdfmark +end + 20 1884 a 133 x Fe(3.20.)68 b(Druck)l(en)20 +2203 y Fd(lpr)42 b(Datei)652 b(Datei)41 b(auf)i(dem)f(Drucker)f +(ausgeben)20 2303 y(lpr)h(-#n)h(Datei)477 b(Datei)41 +b(n)j(mal)e(auf)g(dem)g(Drucker)f(ausgeben)20 2402 y(lpr)h(-m)h(Datei) +521 b(Datei)41 b(auf)i(dem)f(Drucker)f(ausgeben,)e(nach)j(dem)h +(Drucken)1066 2502 y(bekommt)e(man)h(eine)g(mail)20 2602 +y(lpq)914 b(Warteschlange)38 b(anschauen)20 2701 y(lprm)k(Jobnummer)432 +b(Druckauftrag/Job)37 b(aus)42 b(der)g(Warteschlange)c(l\366schen)20 +2801 y(pr)958 b(Dateien)41 b(f\374r)h(das)g(Drucken)f(aufbereiten)20 +2955 y +SDict begin H.S end + 20 2955 a 20 2955 a +SDict begin 12 H.A end + 20 2955 a 20 2955 a +SDict begin [/View [/XYZ H.V]/Dest (section.3.21) cvn /DEST pdfmark +end + 20 2955 +a 133 x Fe(3.21.)68 b(File-Inhalt)45 b(b)t(ea)l(rb)t(eiten)20 +3274 y Fd(compress)40 b(Datei)1131 b(Datei)42 b(komprimieren)c(nach)k +(Datei.Z)20 3374 y(uncompress)d(Datei.Z)956 b(Datei.Z)41 +b(dekomprimieren)20 3473 y(expand)g(Datei1)g(>)i(Datei2)782 +b(Tabs)42 b(aus)g(der)h(Datei1)e(entfernen)e(und)1763 +3573 y(zur)j(Datei2)f(schreiben)20 3673 y(unpack)g(Datei.z)1130 +b(Datei.z)41 b(dekomprimieren)20 3772 y(sort)h(Datei1)f(>)i(Datei2)869 +b(die)42 b(Zeilen)f(der)i(Datei1)e(in)1763 3872 y(die)h(Datei2)f +(sortieren)20 3971 y(tr)i([A-Z])e([a-z])h(<)h(Datei1)e(>)i(Datei2)346 +b(Klein)42 b(durch)f(Gro\377buchstaben)d(ersetzen)20 +4071 y(uniq)k(Datei)1305 b(Datei)42 b(ausgeben)e(bis)i(auf)g(doppelte)f +(Zeilen)20 4225 y +SDict begin H.S end + 20 4225 a 20 4225 a +SDict begin 12 H.A end + 20 4225 a 20 4225 +a +SDict begin [/View [/XYZ H.V]/Dest (section.3.22) cvn /DEST pdfmark +end + 20 4225 a 133 x Fe(3.22.)68 b(T)-11 b(AR)45 b(\(tap)t(e)g(a)l +(rchiver\))h(verw)l(altet)e(Dateia)l(rchive)20 4544 y +Fk(Syn)n(tax:)20 4644 y(tar)23 b([-A)n(cdrtux])g([\025delete])h([-b)f +(n])h([-BgGhijklmMoOpPPsSvwW)-7 b(z])24 b([-C)f(V)-7 +b(erzeic)n(hnis])23 b([-f)h(Datei])20 4744 y([-F)g(Datei])g([-K)f +(Datei])h([-L)f(L\344nge])g([-N)h(Datum])g([-T)f(Datei])h([-V)g(Name])g +([-X)f(Datei])h([0-7])f([lmh])3037 5092 y(25)p eop end +%%Page: 26 26 +TeXDict begin 26 25 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 a +632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.26) cvn /DEST pdfmark end + 632 -5 a 640 128 a Fh(3.)41 +b(Befehle)640 360 y Fd(Optionen:)640 460 y(-A)609 b(Archiv)41 +b(an)i(ein)f(Archiv)f(anh\344ngen)640 559 y(-c)609 b(erzeugt)41 +b(ein)h(neues)g(Archiv)640 659 y(-d)609 b(vergleicht)40 +b(das)i(Archiv)f(mit)h(dem)h(Dateisystem)640 758 y(--delete)d(Datei)85 +b(l\366scht)41 b(die)i(Datei)e(aus)h(dem)h(Archiv)e(\(nicht)g(f\374r)h +(Magnetb\344nder\))640 858 y(-r)609 b(h\344ngt)42 b(Dateien)e(an)j(das) +f(Archiv)f(an)i(\(nicht)e(f\374r)i(Magnetb\344nder\))640 +958 y(-t)609 b(zeigt)42 b(den)g(Inhalt)f(des)h(Archivs)640 +1057 y(-u)609 b(ersetzt)41 b(neue)h(Dateien)e(oder)i(f\374gt)g(sie)h +(ein)f(\(nicht)f(f\374r)h(Magnetb\344nder\))640 1157 +y(-x)609 b(kopiert/entpackt)37 b(Datei-en)j(aus)j(dem)f(Archiv)640 +1257 y(--atime-preserve)342 b(Zugriffszeit)38 b(nach)k(der)h +(Archivierung)38 b(zur\374ck)j(setzen)640 1356 y(-b)i(n)522 +b(setzt)42 b(die)g(Blockgr\366\377e)d(n*512Bytes)h(\(Voreinstellung)d +(n=20\))640 1456 y(-B)609 b(unterdr\374ckt)39 b(den)k(Abbruch)d(beim)i +(Lesen)g(unvollst\344ndiger)37 b(Bl\366cke)1337 1556 +y(zum)43 b(Lesen)e(von)h(4.2BSD)f(Pipes)640 1655 y(-C)i(Verzeichnis)82 +b(wechselt)41 b(in)h(das)h(Verzeichnis,)38 b(um)43 b(dort)f(weitere)e +(Dateien)h(zu)1337 1755 y(archivieren)640 1854 y(-f)i(Datei)346 +b(benutzt)41 b(Datei)g(oder)h(das)h(Ger\344t)e(als)h(Archiv)640 +1954 y(-F)h(Datei)346 b(bei)43 b(-M)f(f\374hrt)g(das)g(Shellscript)d +(Datei)j(aus,)f(wenn)h(das)h(Medium)e(voll)h(ist)640 +2054 y(-G)609 b(erzeugt)41 b(am)i(Anfang)e(des)h(Bandarchives)d(einen)i +(speziellen)e(Eintrag)i(f\374r)1337 2153 y(jedes)h(archivierte)d +(Verzeichnis;)f(spezielles)i(GNU)i(Format)640 2253 y(-g)h(Datei)346 +b(erzeugt)41 b(eine)h(Datei)f(mit)i(einer)e(Liste)h(der)g(archivierten) +1337 2353 y(Verzeichnisse)c(als)43 b(Zeitmarke)c(der)k(Archivierung;)38 +b(wenn)k(die)g(Datei)1337 2452 y(bereits)f(existiert,)e(werden)i(nur)i +(die)f(Dateien)f(archiviert,)d(die)43 b(nach)1337 2552 +y(dieser)e(Zeitmarke)f(erzeugt)h(oder)h(ver\344ndert)d(wurden)i +(\(spezielles)e(GNU)1337 2651 y(Format:)i(1.Zeile=Zeitmark)o(e,)c +(1.Feld=Nr.)i(der)k(Partition,)1337 2751 y(2.Feld=Inode)c(des)j +(Verzeichnisses,)37 b(3.Feld=Name)i(des)k(Verzeichisses\))640 +2851 y(-h)609 b(archiviert)40 b(die)i(referenzierten)c(Dateien)i +(anstelle)g(der)j(Links)640 2950 y(-i)609 b(ignoriert)40 +b(Bl\366cke)h(mit)h(Nullbytes)e(im)j(Archiv)640 3050 +y(-j)609 b(erzeugt)41 b(ein)h(mit)h(bzip2)e(komprimiertes)d(Archiv)640 +3150 y(-k)609 b(existierende)39 b(Dateien)h(werden)h(beim)h(Auspacken)e +(von)i(Archiven)f(nicht)1337 3249 y(\374berschrieben)640 +3349 y(-K)i(Datei)346 b(beginnt)41 b(eine)h(Aktion)f(bei)h(Datei)g(im)g +(Archiv)640 3448 y(-l)609 b(verhindert)40 b(Archivierung)e(von)k +(Dateien)f(aus)h(anderen)f(Dateisystemen)640 3548 y(-L)i(L\344nge)346 +b(wartet)41 b(auf)i(Medienwechsel)38 b(nach)k(L\344nge)f(Bytes)640 +3648 y(-m)609 b(das)43 b(Datum)e(der)h(letzten)f(\304nderung)f(wird)i +(nicht)g(mit)g(archiviert)640 3747 y(-M)609 b(das)43 +b(Archiv)e(ist)h(auf)g(mehrere)f(Medien)g(verteilt)f(\(Multi-Volume\)) +640 3847 y(-N)j(Datum)346 b(archiviert)40 b(nur)i(Dateien,)e(die)i +(neuer)g(sind)g(als)g(Datum)640 3947 y(-o)609 b(benutzt)41 +b(das)h(alte)g(V7)h(tar-Format)c(anstelle)h(des)j(ANSI)f(Formates)640 +4046 y(-O)609 b(schreibt)41 b(die)h(Dateien)e(in)j(die)f +(Standardausgabe)640 4146 y(-p)609 b(erh\344lt)41 b(die)i +(Zugriffsrechte)37 b(der)43 b(Dateien)640 4245 y(-P)609 +b(archiviert)40 b(mit)i(absoluten)e(Dateinamen)640 4345 +y(-R)609 b(gibt)42 b(zu)h(jeder)e(Meldung)g(die)h(Blocknummer)d(des)k +(Archivblocks)38 b(aus,)k(von)1337 4445 y(dem)h(die)f(Meldung)f +(verursacht)e(wurde)640 4544 y(-s)609 b(zeigt)42 b(an,)g(dass)g(die)g +(Liste)g(von)g(Dateien)f(im)h(Argument)f(die)h(gleiche)1337 +4644 y(Reihenfolge)d(hat)k(wie)f(die)g(Dateien)f(im)i(Archiv)640 +4744 y(-T)g(Datei)346 b(holt)42 b(die)h(Namen)e(der)h(zu)h +(archivierenden)38 b(Dateien)i(aus)j(Datei)640 5092 y +Fk(26)p eop end +%%Page: 27 27 +TeXDict begin 27 26 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a 12 +-5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.27) cvn /DEST pdfmark end + 12 -5 a 2114 128 a Fh(3.23.)40 b(Disk)n(etten/F)-7 +b(estplatten)20 360 y Fd(-v)609 b(meldet)41 b(jede)h(Aktion)20 +460 y(-V)h(Name)390 b(erzeugt)41 b(ein)h(Archiv)f(mit)i(dem)f +(\(internen\))d(Label)j(Name)20 559 y(-w)609 b(erwartet)40 +b(interaktiv)g(Best\344tigung)f(jeder)i(Aktion)20 659 +y(-W)609 b(verifiziert)39 b(die)k(geschriebenen)38 b(Daten)j(im)i +(Archiv)20 758 y(-X)g(Datei)346 b(liest)42 b(aus)g(der)g(Datei)g(Namen) +f(oder)h(regul\344re)e(Ausdr\374cke)g(von)i(bzw.)g(f\374r)717 +858 y(Dateien,)e(die)j(nicht)e(archiviert)f(werden)h(soll)20 +958 y(-z)609 b(erzeugt)41 b(ein)h(mit)h(gzip)e(komprimiertes)d(Archiv) +20 1057 y(-Z)609 b(erzeugt)41 b(ein)h(mit)h(compress)d(komprimiertes)e +(Archiv)20 1157 y(-{0...7}{lmh})125 b(spezifiziert)39 +b(das)j(Ger\344t)g(und)g(die)g(Dichte)f(des)h(Speichermediums)c +(\(f\374r)717 1257 y(Diskettenarchive)f(ohne)42 b(Bedeutung\);)d(0)k +(ist)f(der)h(erste)e(Streamer,)f(1)717 1356 y(1)j(der)g(zweite)e(und)h +(so)h(weiter;)d(die)j(Dichte)e(bestimmt)f(den)i(Bandtyp)20 +1504 y +SDict begin H.S end + 20 1504 a 20 1504 a +SDict begin 12 H.A end + 20 1504 a 20 1504 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.3.22.1) cvn /DEST pdfmark +end + 20 1504 +a 101 x Fi(3.22.1.)57 b(P)m(ack)m(en)20 1764 y Fd(tar)42 +b(rPvf)g(name.tar)e(/etc/)391 b(Verzeichnis)38 b(zum)43 +b(tar)f(zuf\374gen)20 1864 y(tar)g(rPvf)g(name.tar)e(/etc/inittab*)f +(Datei-en)h(zum)i(tar)g(zuf\374gen)20 1964 y(tar)g(cPvzf)g(name.tgz)e +(name.tar)215 b(tar)42 b(->)h(tgz)20 2063 y(tar)f(cPvMf)g(/dev/fd0)e +(name.tgz)215 b(tgz)42 b(auf)g(Diskette)e(sichern)20 +2263 y(tar)i(cvzf)g(Datei.tgz)e(Verzeichnis)83 b(Packt)41 +b(Verzeichnis)e(in)k(Datei.tgz)20 2411 y +SDict begin H.S end + 20 2411 a 20 +2411 a +SDict begin 12 H.A end + 20 2411 a 20 2411 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.3.22.2) cvn /DEST pdfmark +end + 20 2411 a 101 x Fi(3.22.2.)57 +b(Entpack)m(en)20 2671 y Fd(tar)42 b(xvfpM)g(/dev/fd0)607 +b(tgz)42 b(von)g(Diskette)e(holen)20 2770 y(tar)i(xvfpz)g(name.tgz)607 +b(tgz)42 b(->)h(tar)20 2870 y(tar)f(tvfp)g(name.tar)651 +b(Inhalt)41 b(des)h(Tars)g(anzeigen)20 2970 y(tar)g(xvfp)g(name.tar)651 +b(Tar)42 b(entpacken)20 3127 y +SDict begin H.S end + 20 3127 a 20 3127 a +SDict begin 12 H.A end + 20 +3127 a 20 3127 a +SDict begin [/View [/XYZ H.V]/Dest (section.3.23) cvn /DEST pdfmark +end + 20 3127 a 134 x Fe(3.23.)68 b(Disk)l(etten/F)l +(estplatten)20 3448 y Fd(dd)43 b(if=/dev/zero)38 b(of=/dev/sda)h +(bs=512)i(count=1)259 b(\374berschreibt)38 b(den)43 b(MBR)f(der)g +(ersten)2112 3548 y(SCSI-Platte)d(mit)j(Nullen)20 3747 +y(fdisk)g(Ger\344tedatei)997 b(Partitionstabell)o(en)o(edi)o(to)o(r)20 +3847 y(fdisk)42 b(-l)g(/dev/hda)999 b(zeigt)42 b(die)g +(Partitionstabell)o(e)37 b(der)43 b(ersten)1763 3947 +y(Festplatte)c(an)20 4046 y(fdisk)j(-C)g(12416)g(-H)g(15)h(-S)g(63)g +(/dev/hdb)214 b(Partitionstabell)o(e)37 b(mit)43 b(vorgegebenen)1763 +4146 y(C-Zylinder)c(H-K\366pfe)i(S-Sektoren)e(pro)k(Spur)1763 +4245 y(bearbeiten)20 4345 y(cfdisk)e(Ger\344tedatei)954 +b(Curses-Partition)o(st)o(abe)o(ll)o(ene)o(di)o(to)o(r)20 +4544 y(fdformat)40 b(/dev/fd0u1440)779 b(Diskette)40 +b(Low-Level-Formati)o(er)o(en)20 4644 y(mformat)h(a:)1306 +b(Dateisystem)39 b(DOS-FAT)i(anlegen)20 4744 y(mkdosfs)g(-I)h(/dev/sda) +912 b(Superfloppy-Form)o(at)37 b(mit)42 b(FAT16-Dateisystem)3037 +5092 y Fk(27)p eop end +%%Page: 28 28 +TeXDict begin 28 27 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 a +632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.28) cvn /DEST pdfmark end + 632 -5 a 640 128 a Fh(3.)41 +b(Befehle)2383 360 y Fd(f\374r)h(z.B.)g(USB-Sticks)e(anlegen)640 +460 y(mkdosfs)h(-n)h(Name)g(/dev/sda1)650 b(FAT16-Dateisyste)o(m)38 +b(mit)k(Name)g(anlegen)640 659 y(mkfs)g(-t)h(minix)e(/dev/fd0u1440)d +(1440)347 b(Dateisystem)39 b(minix)j(anlegen)640 758 +y(mke2fs)f(/dev/fd0u1440)866 b(Dateisystem)39 b(ext2)j(anlegen)640 +858 y(mkfs)g(-V)h(-t)f(ext2)g(/dev/sda7)650 b(Dateisystem)39 +b(ext2)j(anlegen)640 1057 y(fsck)g(-V)h(-t)f(ext2)g(/dev/sda7)650 +b(Dateisystem)39 b(Pr\374fung)i(und)h(Reparatur)640 1257 +y(tune2fs)f(Optionen)f(Ger\344t)782 b(Einstellungen)38 +b(zum)43 b(ext2)e(Dateisystem)640 1456 y(mount)h(Ger\344t)f +(Verzeichnis)736 b(Ger\344t)42 b(im)g(Verzeichnis)d(anmelden)640 +1556 y(mount)j(-t)g(minix)g(/dev/fd0)e(/mnt)521 b(Diskette)40 +b(im)j(minix-Format)c(anmelden)640 1655 y(mount)j(-t)g(ext2)g(/dev/fd0) +e(/mnt)565 b(Diskette)40 b(im)j(ext2-Format)c(anmelden)640 +1755 y(mount)j(-t)g(msdos)g(/dev/fd0)e(/mnt)521 b(Diskette)40 +b(im)j(msdos-Format)c(anmelden)640 1854 y(mount)j(-o)g(loop)g(disk.img) +e(/mnt)565 b(Datei)42 b(als)g(Diskette)e(anmelden)640 +2054 y(umount)h(Verzeichnis)954 b(Verzeichnis)39 b(abmelden)640 +2153 y(umount)i(/mnt)1262 b(Diskette)40 b(abmelden)640 +2293 y +SDict begin H.S end + 640 2293 a 640 2293 a +SDict begin 12 H.A end + 640 2293 a 640 2293 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.3.23.1) cvn /DEST pdfmark +end + 640 +2293 a 113 x Fi(3.23.1.)57 b(Dateisystem)37 b(verschl\374sseln)640 +2566 y Fd(modprobe)j(loop_fish2)911 b(Modul)42 b(f\374r)g(die)g +(Verschl\374ssellung)37 b(laden)640 2666 y(dd)43 b(if=/dev/urandom)37 +b(of=datei)j(bs=1024)h(count=10000)387 b(10MB)42 b(Datei)g(anlegen)640 +2765 y(losetup)f(-e)h(twofish)f(/dev/loop0)e(datei)216 +b(Datei)42 b(anmelden)e(\(Passwort)g(anlegen\))640 2865 +y(mkfs)i(-t)h(ext2)f(/dev/loop0)736 b(Dateisystem)39 +b(anlegen)640 2965 y(mount)j(-t)g(ext2)g(/dev/loop0)e(/mnt)477 +b(Dateisystem)39 b(anmelden)640 3064 y(umount)i(/mnt/)1218 +b(Dateisystem)39 b(abmelden)640 3164 y(losetup)i(-d)h(/dev/loop0)824 +b(Datei)42 b(abmelden)640 3264 y(/dev/loop0)d(/datei)j(/mnt)f(ext2)h +(twofish)f(defaults)519 b(/etc/cryptotab)640 3363 y(/datei)41 +b(/mnt)h(ext2)g(loop,encryption=)o(tw)o(of)o(ish)o(,n)o(oa)o(uto)o(,u)o +(ser)167 b(/etc/fstab)640 3523 y +SDict begin H.S end + 640 3523 a 640 3523 +a +SDict begin 12 H.A end + 640 3523 a 640 3523 a +SDict begin [/View [/XYZ H.V]/Dest (section.3.24) cvn /DEST pdfmark +end + 640 3523 a 135 x Fe(3.24.)68 +b(Zugri\033srechte/Eigent\374mer/Grupp)s(e)640 3847 y +Fd(ls)43 b(-l)g(/dev/fd0)640 3947 y(brw-rw-rw-)127 b(1)43 +b(root)216 b(disk)303 b(2,)130 b(0)43 b(Feb)g(16)f(16:30)g(/dev/fd0)640 +4046 y(|)1481 b(|)174 b(|)828 b(+-----)41 b(Ger\344t)640 +4146 y(|)1481 b(|)174 b(+------)41 b(Minor-Device-Nu)o(mme)o(r\()o(Ne)o +(ben)o(nu)o(mme)o(r\))640 4245 y(|)1481 b(+-----------)39 +b(Major-Device-Nu)o(mme)o(r\()o(Ha)o(upt)o(nu)o(mme)o(r\))640 +4345 y(+---------------)o(---)o(--)e(b-blockorientie)o(rte)g(Ger\344te) +k(c-zeichenorient)o(ier)o(te)c(Ger\344te)640 4544 y(ls)43 +b(-laFi)e(linux.txt)640 4644 y(1561)h(-rw-r-----)83 b(1)43 +b(higi)86 b(users)f(26419)41 b(Mar)h(13)h(19:19)f(linux.txt)640 +4744 y(|)174 b(||||||||||)83 b(|)43 b(|)218 b(|)261 b(|)217 +b(|)130 b(|)87 b(|)218 b(+-----)41 b(Datei/Verzeichn)o(is)o(nam)o(e)640 +5092 y Fk(28)p eop end +%%Page: 29 29 +TeXDict begin 29 28 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a 12 +-5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.29) cvn /DEST pdfmark end + 12 -5 a 1639 128 a Fh(3.24.)41 b(Zugri\033srec)n +(h)n(te/Eigen)n(t\374mer/Grupp)r(e)20 360 y Fd(|)174 +b(||||||||||)83 b(|)43 b(|)217 b(|)262 b(|)217 b(|)130 +b(|)87 b(+-----------)38 b(Uhrzeit)20 460 y(|)174 b(||||||||||)83 +b(|)43 b(|)217 b(|)262 b(|)217 b(|)130 b(+--------------)37 +b(Tag)20 559 y(|)174 b(||||||||||)83 b(|)43 b(|)217 b(|)262 +b(|)217 b(+---------------)o(--)o(-)37 b(Monat)20 659 +y(|)174 b(||||||||||)83 b(|)43 b(|)217 b(|)262 b(+--------------)o(--)o +(--)o(---)o(--)o(-)37 b(Gr\366\377e)20 758 y(|)174 b(||||||||||)83 +b(|)43 b(|)217 b(+-----------)39 b(Gruppe)20 858 y(|)174 +b(||||||||||)83 b(|)43 b(+---------------)o(--)37 b(Eigent\374mer)20 +958 y(|)174 b(||||||||||)83 b(+---------------)o(--)o(--)37 +b(Links)20 1057 y(|)174 b(|||||||||+----)38 b(alle)j(Anderen)128 +b(x-ausf\374hren)39 b(oder)j(t-text)f(mit)h(x-bit)20 +1157 y(|)174 b(|||||||||)1696 b(T-text)41 b(ohne)h(x-bit)20 +1257 y(|)174 b(||||||||+-----)38 b(alle)j(Anderen)128 +b(w-schreiben)20 1356 y(|)174 b(|||||||+------)38 b(alle)j(Anderen)128 +b(r-lesen)20 1456 y(|)174 b(||||||+-------)38 b(Gruppe)389 +b(x-ausf\374hren)39 b(oder)j(s-Gruppenkennung)37 b(mit)42 +b(x-bit)20 1556 y(|)174 b(||||||)1828 b(S-Gruppenkennun)o(g)37 +b(ohne)42 b(x-bit)20 1655 y(|)174 b(|||||+--------)38 +b(Gruppe)389 b(w-schreiben)20 1755 y(|)174 b(||||+---------)38 +b(Gruppe)389 b(r-lesen)20 1854 y(|)174 b(|||+----------)38 +b(Eigent\374mer)170 b(x-ausf\374hren)39 b(oder)i(s-Benutzerkennung)c +(mit)42 b(x-bit)20 1954 y(|)174 b(|||)1960 b(S-Benutzerkennu)o(ng)37 +b(ohne)42 b(x-bit)20 2054 y(|)174 b(||+-----------)38 +b(Eigent\374mer)170 b(w-schreiben)20 2153 y(|)k(|+------------)38 +b(Eigent\374mer)170 b(r-lesen)20 2253 y(|)k(+-------------)38 +b(d-Verzeichnis)81 b(l-Verkn\374pfung)20 2353 y(+-------)40 +b(inode)20 2552 y(chmod)i(werwiewas)d(Datei)478 b(Zugriffsrechte)37 +b(einer)42 b(Datei/Verzeichn)o(is)37 b(\344ndern)1415 +2651 y(wer:)k(u-Eigent\374mer)126 b(g-Gruppe)1632 2751 +y(o-alle)41 b(Anderen)g(a-alle)g(3)i(Benutzergruppen)1415 +2851 y(wie:)e(+-hinzuf\374gen)e(--wegnehmen)1632 2950 +y(=-nachfolgendes)f(Muster)j(setzen)1415 3050 y(was:)g(r-lesen)g +(w-schreiben)e(x-ausf\374hren)1545 3150 y(\()k(s-Benutzerkennung)37 +b(oder)42 b(Gruppenkennung)1632 3249 y(t-text)f(\))20 +3349 y(chmod)h(zahl)f(Datei)696 b(Zugriffsrechte)37 b(einer)42 +b(Datei/Verzeichn)o(is)37 b(\344ndern)1415 3448 y(zahl->)k(rwx)h(rwx)g +(rwx)g(->)h(4+2)f(4)i(0)f(->)g(640)1720 3548 y(421)f(421)g(421)1415 +3648 y(640)g(->)h(Eigent\374mer)c(lesen)i(schreiben)1720 +3747 y(Gruppe)215 b(lesen)20 3847 y(chmod)42 b(nzahl)f(Datei)652 +b(Zugriffsrechte)37 b(und)42 b(Kennung)f(einer)h(Datei/)1415 +3947 y(Verzeichnis)c(\344ndern)1415 4046 y(bit)k(4)h(von)f(n,)h(mit)f +(Benutzerkennung/)1415 4146 y(Benutzerrechten)37 b(ausf\374hren)1415 +4245 y(bit)42 b(2)h(von)f(n,)h(mit)f(Gruppenkennung/)1415 +4345 y(Gruppenrechten)37 b(ausf\374hren)1415 4445 y(bit)42 +b(1)h(von)f(n,)h(mit)f(text)g(werden)f(die)i(Dateien)d(vor)1415 +4544 y(dem)i(L\366schen)e(durch)i(fremde)f(Benutzer)f(gesch\374tzt,) +1415 4644 y(macht)h(nur)h(bei)h(Verzeichnissen)37 b(sinn)20 +4744 y(chown)42 b(NeuerEigent\374mer)37 b(Datei)172 b(Eigent\374mer)39 +b(der)k(Datei)e(\344ndern)3037 5092 y Fk(29)p eop end +%%Page: 30 30 +TeXDict begin 30 29 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 a +632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.30) cvn /DEST pdfmark end + 632 -5 a 640 128 a Fh(3.)41 +b(Befehle)640 360 y Fd(chgrp)h(NeueGruppe)d(Datei)434 +b(Gruppenzugeh\366ri)o(gk)o(eit)37 b(der)42 b(Datei)f(\344ndern)640 +559 y(passwd)g(Benutzer)738 b(Benutzerpasswor)o(t)37 +b(\344ndern)640 659 y(useradd)k(Optionen)f(Benutzer)302 +b(Benutzer)40 b(anlegen)2035 758 y(-u)i(Benutzer-ID)d(\(-u)k(500\))2035 +858 y(-g)f(Prim\344re)f(Gruppenzugeh\366rig)o(ke)o(it)c(\(-g)42 +b(users\))2035 958 y(-G)g(weitere)f(Gruppenzugeh\366rig)o(ke)o(it)2035 +1057 y(-d)h(Homeverzeichnis)c(\(-d)k(/home/user500\))2035 +1157 y(-s)g(Shell)g(\(-s)g(/bin/bash\))2035 1257 y(-m)g(legt)g(das)g +(Homeverzeichnis)c(an)k(und)h(kopiert)d(die)2165 1356 +y(Dateien)h(aus)h(/etc/skel)e(in)j(das)f(Homeverzeichnis)2035 +1456 y(-c)g(Kommentar)2035 1556 y(-p)g(Passwort)e(im)j(Klartext!)2035 +1655 y(-e)f(Auslaufdatum)d(\(-e)j(2002.12.24\))2035 1755 +y(-f)g(Pufferzeit)640 1854 y(usermod)f(Optionen)f(Benutzer)302 +b(Benutzerdaten)38 b(ver\344ndern)640 1954 y(userdel)j(Benutzername)518 +b(Benutzer)40 b(l\366schen)640 2054 y(userdel)h(-r)h(Benutzername)388 +b(Benutzer)40 b(und)i(Benutzerverzeich)o(ni)o(s)c(l\366schen)640 +2153 y(vipw)1219 b(Benutzerdatenba)o(nk)37 b(\344ndern)640 +2353 y(su)1307 b(Shell)41 b(mit)h(root-Zugriffsrech)o(te)o(n)37 +b(starten)640 2452 y(su)43 b(-)1220 b(Shell)41 b(im)i(root-Homeverzei)o +(chn)o(is)2035 2552 y(mit)f(root-Zugriffsrec)o(ht)o(en)37 +b(starten)640 2651 y(sux)42 b(-)1177 b(Shell)41 b(im)i(root-Homeverzei) +o(chn)o(is)2035 2751 y(mit)f(root-Zugriffsrec)o(ht)o(en)37 +b(starten)k(und)h(X-Variabeln)640 2851 y(su)h(-l)g(Benutzername)605 +b(Shell)41 b(im)i(Benutzer-Homeve)o(rze)o(ic)o(hn)o(is)2035 +2950 y(mit)f(Benutzer-Rechten)37 b(starten)640 3071 y +SDict begin H.S end + +640 3071 a 640 3071 a +SDict begin 12 H.A end + 640 3071 a 640 3071 a +SDict begin [/View [/XYZ H.V]/Dest (section.3.25) cvn /DEST pdfmark +end + 640 3071 +a 149 x Fe(3.25.)68 b(Prozessb)t(efehle)640 3402 y Fk(S=sc)n(hlafend)27 +b(R=running\(laufend\))h(T=terminiert)e(Z=Zom)n(bie)640 +3548 y Fd([Strg]+[z])257 b(im)43 b(Vordergrund)c(laufendes)h(Programm)g +(anhalten)640 3648 y([1]+)86 b(Stopped)684 3747 y(|)304 +b(+-----)41 b(schlafend)684 3847 y(+-------------)c(Jobnummer)640 +3947 y(bg)43 b(\045JOB)390 b(Job)43 b(im)f(Hintergrund)d(fortsetzen)640 +4046 y(fg)k(\045JOB)390 b(Job)43 b(im)f(Vordergrund)d(fortsetzen)640 +4146 y(Programm)h(&)261 b(Programm)41 b(im)h(eigenem)f(Prozess)f +(starten)640 4245 y([1])i(819)684 4345 y(|)130 b(+---------)39 +b(Prozessnummer)684 4445 y(+-------------)e(Jobnummer)640 +4544 y(ps)609 b(\334berblick)40 b(\374ber)i(die)g(aktuell)f(laufenden)f +(Prozesse)640 4644 y(ps)j(aux)434 b(gibt)42 b(in)h(den)f(meisten)f +(F\344llen)g(eine)h(ausreichende)c(Auskunft)640 4744 +y(pstree)433 b(zeigt)42 b(den)g(kompletten)d(Prozessbaum)g(an)640 +5092 y Fk(30)p eop end +%%Page: 31 31 +TeXDict begin 31 30 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a 12 +-5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.31) cvn /DEST pdfmark end + 12 -5 a 1822 128 a Fh(3.26.)40 b(Re-install)28 +b(Grub)f(with)h(Liv)n(e)f(CD)20 360 y Fd(jobs)521 b(das)43 +b(Schellkommando)37 b(gibt)42 b(eine)g(Liste)f(der)i(aktuellen)d(Jobs)h +(aus)20 460 y(top)565 b(Programm,)40 b(das)i(die)h(aktuellen)c +(Prozesse)i(anzeigt)20 559 y(htop)521 b(Programm,)40 +b(das)i(die)h(aktuellen)c(Prozesse)i(anzeigt)20 659 y(kill)h(PID)347 +b(Prozess)41 b(killen)20 758 y(kill)h(\045JOB)303 b(Job)43 +b(killen)20 858 y(kill)f(-1)h(PID)216 b(Prozess)41 b(initialisieren)20 +958 y(kill)h(-1)h(\045JOB)172 b(Job)43 b(initialisieren)20 +1057 y(kill)f(-9)h(PID)216 b(Prozess)41 b(killen)20 1157 +y(kill)h(-9)h(\045JOB)172 b(Job)43 b(killen)20 1257 y(kill)f(-15)g(PID) +173 b(Prozess)41 b(beenden)20 1356 y(kill)h(-15)g(\045JOB)129 +b(Job)43 b(beenden)20 1456 y(kill)f(-HUP)g(PID)129 b(veranlasst)40 +b(die)i(meisten)f(D\344monen)f(ihre)i(Konfigurationsda)o(te)o(ien)717 +1556 y(erneut)f(zu)i(lesen)20 1690 y +SDict begin H.S end + 20 1690 a 20 1690 +a +SDict begin 12 H.A end + 20 1690 a 20 1690 a +SDict begin [/View [/XYZ H.V]/Dest (section.3.26) cvn /DEST pdfmark +end + 20 1690 a 152 x Fe(3.26.)68 b(Re-install)46 +b(Grub)e(with)h(Live)h(CD)20 1926 y +SDict begin H.S end + 20 1926 a 20 1926 +a +SDict begin 12 H.A end + 20 1926 a 20 1926 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.3.26.1) cvn /DEST pdfmark +end + 20 1926 a 118 x Fi(3.26.1.)57 b(Chro)s(ot)20 +2202 y Fd(sudo)42 b(fdisk)f(-l)1525 b(Patition)40 b(f\374r)i(das)h +(chroot)e(festellen)20 2301 y(sudo)h(mount)f(/dev/sdb3)f(/mnt/gentoo) +693 b(chroot)41 b(z.B.)h(/dev/sdb3)d(auf)k(z.B.)f(/mnt/gentoo)c +(mounten)20 2401 y(sudo)k(mount)f(-t)i(proc)f(none)g(/mnt/gentoo/proc) +342 b(Mounten)40 b(der)j(/proc)e(und)h(/dev)g(Dateisysteme)20 +2500 y(sudo)g(mount)f(--rbind)g(/dev)h(/mnt/gentoo/dev)20 +2600 y(sudo)g(chroot)f(/mnt/gentoo)e(/bin/bash)650 b(Betreten)40 +b(der)i(neuen)g(Umgebung)20 2700 y(env-update)1652 b(Umgebungsvariab)o +(len)37 b(aktualisieren)20 2799 y(source)k(/etc/profile)1259 +b(Profil)41 b(laden)20 2899 y(export)g(PS1="\(chroot\))d($PS1")957 +b(Promt)41 b(anpassen)20 3043 y +SDict begin H.S end + 20 3043 a 20 3043 a +SDict begin 12 H.A end + 20 +3043 a 20 3043 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.3.26.2) cvn /DEST pdfmark +end + 20 3043 a 100 x Fi(3.26.2.)57 b(Grub)20 +3300 y Fd(sudo)42 b(grub)20 3400 y(grub>)g(find)f(/boot/grub/stage1)20 +3500 y(grub>)h(root)f(\(hd0,1\))20 3599 y(grub>)h(setup)f(\(hd0\))20 +3699 y(grub>)h(quit)20 3799 y(reboot)20 3933 y +SDict begin H.S end + 20 3933 +a 20 3933 a +SDict begin 12 H.A end + 20 3933 a 20 3933 a +SDict begin [/View [/XYZ H.V]/Dest (section.3.27) cvn /DEST pdfmark +end + 20 3933 a 152 x Fe(3.27.)68 +b(Soft)l(w)l(a)l(re)45 b(installieren)20 4169 y +SDict begin H.S end + 20 4169 +a 20 4169 a +SDict begin 12 H.A end + 20 4169 a 20 4169 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.3.27.1) cvn /DEST pdfmark +end + 20 4169 a 118 x Fi(3.27.1.)57 +b(rpm-F)m(o)m(rmat)20 4445 y Fd(http://www.rpm.o)o(rg)o(/)561 +b(weiterf\374hrende)37 b(Informationen)20 4544 y(http://www.rpmfi)o(nd) +o(.ne)o(t/)386 b(Hilfe)41 b(zu)i(fehlenden)c(rpms)j(oder)g(Merkmalen)20 +4744 y(/var/lib/rpm/Pac)o(ka)o(ges)473 b(rpm-Datenbank)3037 +5092 y Fk(31)p eop end +%%Page: 32 32 +TeXDict begin 32 31 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 a +632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.32) cvn /DEST pdfmark end + 632 -5 a 640 128 a Fh(3.)41 +b(Befehle)640 360 y Fd(/var/lib/rpm/pac)o(kag)o(es)o(.r)o(pm)299 +b(->)42 b(/var/lib/rpm/Pack)o(ag)o(es)723 554 y Fk(Ge\344nderte)19 +b(K)n(on\034gurationsdateien)f(\374b)r(ersc)n(hreibt)h(rpm)g(b)r(eim)i +(Up)r(date)f(nic)n(h)n(t,)g(sondern)f(hebt)640 654 y(sie)28 +b(als)e(Datei.rpmsa)n(v)n(e)g(auf.)i(di\033)g(hilft)h(die)f(Un)n(tersc) +n(hiede)e(anzuzeigen.)640 851 y Fd(rpm)42 b(-i)h(Paketname.rpm)518 +b(Installiert)38 b(mit)43 b(Pr\374fung)d(auf)j(Abh\344ngigkeiten)640 +950 y(rpm)f(-i)h(--nodeps)d(Paketname.rpm)126 b(Installiert)38 +b(ohne)k(Pr\374fung)f(auf)h(Abh\344ngigkeiten)640 1050 +y(rpm)g(-i)h(--test)e(Paketname.rpm)213 b(Testet)41 b(die)h +(Installation)c(ohne)k(Daten)g(zu)g(ver\344ndern)640 +1149 y(rpm)g(-iv)h(Paketname.rpm)474 b(Installiert)38 +b(mit)43 b(Pr\374fung)d(auf)j(Abh\344ngigkeiten)2035 +1249 y(und)f(R\374ckmeldung)640 1349 y(rpm)g(-ivh)g(Paketname.rpm)431 +b(Installiert,)38 b(pr\374ft,)j(meldet)g(und)2035 1448 +y(zeigt)g(den)h(Vorgang)f(an)640 1648 y(rpm)h(-Uvh)g(Paketname.rpm)431 +b(Update)41 b(eines)g(rpm-Bin\344rpaketes)640 1847 y(rpm)h(-Fvh)g +(Paketname.rpm)431 b(Aktualisiert)38 b(rpm-Bin\344rpaket)640 +1946 y(rpm)k(-Fvh)g(*.rpm)783 b(Aktualisiert)38 b(alle)k +(rpm-Bin\344rpakete)37 b(im)43 b(.)640 2046 y(rpm)f(-e)h(Paket)870 +b(Deinstalliert)38 b(mit)k(Pr\374fung)f(auf)h(Abh\344ngigkeiten)640 +2245 y(rpm)g(-qa)1089 b(zeigt)41 b(die)h(installierten)c(rpm-Pakete)i +(an)640 2345 y(rpm)i(-qa)h(|)g(grep)f(-i)h(Paket)390 +b(zeigt)41 b(ob)i(das)f(Paket)g(installiert)c(ist)640 +2445 y(rpm)k(-qi)h(Paket)826 b(zeigt)41 b(Informationen)d(\374ber)k +(das)g(installierte)d(Paket)640 2544 y(rpm)j(-qip)g(Paketname.rpm)431 +b(zeigt)41 b(Informationen)d(\374ber)k(das)g(rpm-Bin\344rpaket)640 +2644 y(rpm)g(-ql)h(Paket)826 b(zeigt)41 b(die)h(enthaltenen)d(Dateien)i +(des)h(installierten)2035 2743 y(Paketes)e(an)640 2843 +y(rpm)i(-qlp)g(Paketname.rpm)431 b(zeigt)41 b(die)h(enthaltenen)d +(Dateien)i(des)2035 2943 y(rpm-Bin\344rpakete)o(s)640 +3042 y(rpm)h(-qf)h(/Pfad/Datei)562 b(zeigt)41 b(das)h(Paket)g(aus)g +(dem)g(die)h(Datei)e(stammt)640 3142 y(rpm)h(-q)h(--requires)d(Paket) +390 b(zeigt)41 b(die)h(geforderten)d(Merkmale)h(des)j(installierten) +2035 3242 y(Paketes)d(an)640 3341 y(rpm)i(-qp)h(--requires)c +(Paketname.rpm)343 b(zeigt)42 b(die)g(geforderten)d(Merkmale)h(des)2035 +3441 y(rpm-Bin\344rpakete)o(s)640 3588 y +SDict begin H.S end + 640 3588 a 640 +3588 a +SDict begin 12 H.A end + 640 3588 a 640 3588 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.3.27.2) cvn /DEST pdfmark +end + 640 3588 a 100 x Fi(3.27.2.)57 +b(deb-F)m(o)m(rmat)640 3847 y Fd(dpkg)42 b(-i)h(Paketname.deb)474 +b(Installation)38 b(eines)k(deb-Bin\344rpakete)o(s)640 +3947 y(dpkg)g(-P)h(Paket)826 b(Deinstalliert)38 b(mit)k(Pr\374fung)f +(auf)h(Abh\344ngigkeiten)640 4146 y(dpkg)g(-l)1089 b(zeigt)41 +b(die)h(installierten)c(deb-Pakete)i(an)640 4245 y(dpkg)i(-l)h +("*Paket*")650 b(zeigt)41 b(ob)i(das)f(Paket)g(installiert)c(ist)640 +4345 y(dpkg)k(-p)h(Paket)826 b(zeigt)41 b(Informationen)d(\374ber)k +(das)g(installierte)d(Paket)640 4445 y(dpkg)j(-I)h(Paketname.deb)474 +b(zeigt)41 b(Informationen)d(\374ber)k(das)g(deb-Bin\344rpaket)640 +4544 y(dpkg)g(-L)h(Paket)826 b(zeigt)41 b(die)h(enthaltenen)d(Dateien)i +(des)h(installierten)2035 4644 y(Paketes)e(an)640 4744 +y(dpkg)i(-c)h(Paketname.deb)474 b(zeigt)41 b(die)h(enthaltenen)d +(Dateien)i(des)640 5092 y Fk(32)p eop end +%%Page: 33 33 +TeXDict begin 33 32 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a 12 +-5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.33) cvn /DEST pdfmark end + 12 -5 a 2172 128 a Fh(3.27.)40 b(Soft)n(w)n(are)26 +b(installieren)1415 360 y Fd(deb-Bin\344rpakete)o(s)20 +460 y(dpkg)42 b(-S)h(/Pfad/Datei)562 b(zeigt)41 b(das)h(Paket)g(aus)g +(dem)g(die)h(Datei)e(stammt)20 659 y(apt)1263 b(neue)41 +b(Alternative)e(f\374r)k(apt-get)20 758 y(apt-get)e(autoclean)650 +b(Veraltete)39 b(Pakete)i(aus)i(dem)f(Cache)f(l\366schen)20 +858 y(apt-get)g(clean)826 b(alle)41 b(Pakete)g(aus)i(dem)f(Cache)f +(l\366schen)20 958 y(apt-get)g(install)f(Paket)478 b(Installiert)38 +b(mit)43 b(Pr\374fung)d(auf)j(Abh\344ngigkeiten)20 1057 +y(apt-get)e(remove)g(Paket)521 b(Deinstalliert)38 b(mit)k(Pr\374fung)e +(auf)j(Abh\344ngigkeiten)20 1157 y(apt-get)e(--purge)f(remove)h(Paket) +173 b(Deinstalliert)38 b(vollst\344ndig)20 1257 y(apt-get)j(autoremove) +606 b(Deinstalliert)38 b(nicht)j(ben\366tigte)f(Pakete)20 +1356 y(apt-get)h(dist-upgrade)518 b(aktualisiert)38 b(die)k(gesamte)f +(Distribution)20 1456 y(apt-cache)f(search)h(Name)478 +b(durchsucht)39 b(die)j(gesamte)f(Distribution)20 1556 +y(apt-get)g(update)782 b(APT-Datenbank)38 b(auf)k(den)g(aktuellen)e +(Stand)h(bringen)20 1755 y(dpkg)h(--get-selections)37 +b(>)43 b(Paketliste)606 b(Paketliste)39 b(exportieren)20 +1854 y(###sudo)i(dpkg)h(--set-selection)o(s)37 b(<)44 +b(Paketliste)387 b(Paketliste)40 b(importieren)f(geht)j(nicht)20 +1997 y +SDict begin H.S end + 20 1997 a 20 1997 a +SDict begin 12 H.A end + 20 1997 a 20 1997 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.3.27.3) cvn /DEST pdfmark +end + 20 1997 +a 99 x Fi(3.27.3.)57 b(P)m(o)m(rtage)37 b(Gento)s(o)20 +2253 y Fd(emerge)k(--sync)826 b(Aktualisieren)38 b(des)k(Portage-Tree)c +(mit)43 b(rsync)20 2353 y(emerge)e(--webrsync)650 b(Aktualisieren)38 +b(mit)k(dem)g(Portage-Snapshot)o(s)20 2552 y(emerge)f(--search)f +(Pragrammname)170 b(Nach)41 b(Software)g(suchen)20 2651 +y(emerge)g(--searchdesc)e(Name)347 b(Suche)41 b(nach)h(Paketen)e(im)j +(Zusammenhang)c(mit)j(dem)g(Namen)20 2851 y(emerge)f(Programmname)562 +b(Software)40 b(installieren)20 2950 y(emerge)h(-pv)h(Programmname)388 +b(Installation)38 b(von)k(Programmen)e(simulieren,)f(USE-Flags)g +(anzeigen)20 3050 y(emerge)i(--fetchonly)e(Programmname)g(Quellen)h +(herunterzuladen,)d(noch)42 b(nicht)f(kompilieren)20 +3249 y(emerge)g(--unmerge)f(Programmname)126 b(Entfernung)39 +b(von)j(Programm)e(aus)j(dem)f(System)20 3448 y(emerge)f(--update)f +(--ask)i(world)216 b(Aktualisierung)37 b(des)42 b(Systems)20 +3548 y(emerge)f(-f)i(-u)g(-a)f(world)478 b(Aktualisierung)37 +b(herunterzuladen,)g(aber)42 b(nicht)1415 3648 y(kompilieren)c(und)43 +b(installieren)20 3747 y(emerge)e(--update)f(--deep)h(world)173 +b(Aktualisierung)37 b(des)42 b(gesamten)f(Systems)20 +3847 y(emerge)g(--update)f(--newuse)g(world)86 b(Neuerstellung)38 +b(des)k(gesamten)e(System)20 4046 y(emerge)h(--depclean)e(verweiste)h +(Abh\344ngigkeiten)e(entfernen)20 4146 y(revdep-rebuild)779 +b(reverse)40 b(Abh\344ngigkeiten)e(neu)k(erstellen)20 +4245 y(etc-update)955 b(Konfigurationsd)o(at)o(ei)o(en)37 +b(zusammenzuf\374hren)20 4445 y(equery)k(belongs)g(/Pfad/Datei)257 +b(zeigt)41 b(das)h(Paket)g(aus)g(dem)g(die)h(Datei)e(stammt)20 +4544 y(equery)g(depends)g(Programmname)213 b(Abh\344ngigkeiten)37 +b(anzeigen)20 4644 y(equery)k(depgraph)f(Programmname)170 +b(Abh\344ngigkeiten)37 b(als)42 b(Baum)g(anzeigen)20 +4744 y(equery)f(files)h(Programmname)300 b(Dateien)40 +b(auflisten,)f(die)k(zu)f(einem)g(Ebuild)f(geh\366ren)3037 +5092 y Fk(33)p eop end +%%Page: 34 34 +TeXDict begin 34 33 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 a +632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.34) cvn /DEST pdfmark end + 632 -5 a 640 128 a Fh(3.)41 +b(Befehle)640 360 y Fd(equery)g(hasuse)g(USE-Flag)433 +b(Pakete)41 b(suchen,)f(die)j(ein)f(spezifisches)c(USE-Flag)2035 +460 y(benutzen)640 559 y(equery)j(size)h(Programmname)344 +b(Paketgr\366\377e)39 b(anzeigen)640 659 y(equery)i(uses)h +(Programmname)344 b(Gesetzte)40 b(und)i(nicht)g(gesetzte)e(USE-Flags) +640 758 y(equery)h(which)h(Programmname)300 b(Anzeigen)40 +b(des)i(Ebuildpfads)640 858 y(euse)g(-a)1089 b(Alle)41 +b(aktiven)g(USE-Flags)f(anschauen)640 958 y(euse)i(-a)h(-l)958 +b(Aktive)41 b(lokale)g(USE-Flags)e(anschauen)640 1057 +y(euse)j(-E)h(USE-Flag)694 b(Setzen)41 b(von)h(USE-Flags)640 +1157 y(euse)g(-D)h(USE-Flag)694 b(Deaktivieren)38 b(von)k(USE-Flags)640 +1305 y +SDict begin H.S end + 640 1305 a 640 1305 a +SDict begin 12 H.A end + 640 1305 a 640 1305 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.3.27.4) cvn /DEST pdfmark +end + 640 +1305 a 101 x Fi(3.27.4.)57 b(Quelltexte)640 1565 y Fd(tar)42 +b(xvfz)g(Source.tgz)563 b(Quelltext)39 b(entpacken)640 +1665 y(./configure)911 b(Makefile)40 b(konfigurieren)640 +1764 y(make)1219 b(Programm)40 b(\374bersetzen,)2035 +1864 y(wenn)h(Makefile)g(vorhanden)640 1964 y(make)h(install)869 +b(Programm)40 b(installieren)640 2063 y(make)i(uninstall)781 +b(Programm)40 b(deinstallieren)640 2211 y +SDict begin H.S end + 640 2211 a +640 2211 a +SDict begin 12 H.A end + 640 2211 a 640 2211 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.3.27.5) cvn /DEST pdfmark +end + 640 2211 a 101 x Fi(3.27.5.)57 +b(Hilfe)640 2471 y Fd(ldd)42 b(Programm)869 b(zeigt)41 +b(die)h(zu)h(ladenen)e(Bibliotheken)d(des)k(Programms)640 +2571 y(strace)f(-eopen)g(Programm)433 b(zeigt)41 b(die)h(geladenen)e +(Bibliotheken)f(des)j(Programms)640 2728 y +SDict begin H.S end + 640 2728 a +640 2728 a +SDict begin 12 H.A end + 640 2728 a 640 2728 a +SDict begin [/View [/XYZ H.V]/Dest (section.3.28) cvn /DEST pdfmark +end + 640 2728 a 134 x Fe(3.28.)68 +b(Im)46 b(Netz)640 3050 y Fd(#ifconfig)40 b(-a)696 b(->)43 +b(ip)g(link)640 3150 y(ip)g(link)913 b(alle)42 b(aktiven)f +(Netzwerkschnitt)o(ste)o(ll)o(en)c(ausgeben)640 3249 +y(ifconfig)j(|)j(grep)f(eth0)g(|)h(cut)g(-c)f(39-55)129 +b(Ethernet-Adresse)37 b(von)42 b(eth0)g(ausgeben)640 +3448 y(ftp)g(Rechner)913 b(Programm)40 b(zur)i(\334bertragung)d(von)j +(Files)2035 3548 y(via)g(Internet)e(starten)640 3747 +y(host)i(www.suse.de)693 b(befragt)40 b(den)i(DNS-Server)e(nach)2035 +3847 y(der)i(IP-Nummer)e(des)i(Rechners)640 3947 y(host)g(192.168.9.10) +649 b(fragt)41 b(nach)h(dem)g(Namen)g(des)g(Rechners)640 +4046 y(nslookup)e(www.debian.de)431 b(befragt)40 b(den)i(DNS-Server)e +(nach)2035 4146 y(der)i(IP-Nummer)e(des)i(Rechners)640 +4245 y(nslookup)e(192.168.11.12)431 b(fragt)41 b(nach)h(dem)g(Namen)g +(des)g(Rechners)640 4445 y(ping)g(Rechner)869 b(sendet)41 +b(Pakete)g(an)h(Rechner)f(mit)h(Echo)640 4644 y(rlogin)f(Rechner)782 +b(auf)42 b(anderen)e(Rechner)h(anmelden)640 5092 y Fk(34)p +eop end +%%Page: 35 35 +TeXDict begin 35 34 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a 12 +-5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.35) cvn /DEST pdfmark end + 12 -5 a 2754 128 a Fh(3.29.)40 b(SSH)20 +360 y Fd(scp)i(Rechner:Pfad)d(Rechner:Pfad)126 b(Programm)40 +b(zur)i(\334bertragung)d(von)j(Files)20 460 y(ssh)g(Rechner)913 +b(auf)42 b(anderen)e(Rechner)h(anmelden)20 559 y(ssh)h(Rechner)f(-l)i +(root)216 b(oder)173 b(auf)42 b(anderen)e(Rechner)h(als)h(root)g +(anmelden)20 659 y(ssh)g(root@Rechner)20 858 y(telnet)f(Rechner)782 +b(Kommunikation)38 b(ueber)j(das)h(TELNET-Protokoll)20 +1057 y(nmap)g(-sT)g(-PT)h(Rechner)520 b(Scannt)41 b(die)h(Ports)f(von)i +(Rechner)20 1157 y(nmap)f(-sT)g(-p)h(1-65535)e(-PT)h(Rechner)f(Scannt)g +(alle)g(Ports)h(von)g(Rechner)20 1257 y(netcat)f(ip)i(port)783 +b(zeigt)41 b(den)h(angegebenen)d(Port)j(an)20 1400 y +SDict begin H.S end + +20 1400 a 20 1400 a +SDict begin 12 H.A end + 20 1400 a 20 1400 a +SDict begin [/View [/XYZ H.V]/Dest (section.3.29) cvn /DEST pdfmark +end + 20 1400 a 131 +x Fe(3.29.)68 b(SSH)20 1713 y Fk(SSH\(Secure)31 b(shell\))f(ist)h(ein)f +(v)n(ersc)n(hl\374sseltes)f(Netzw)n(erkprotok)n(oll)e(auf)k(TCP-P)n +(ort)f(22,)f(erm\366g-)20 1812 y(lic)n(h)n(t)j(eine)g(sic)n(here)f +(authen)n(ti\034zierte)g(und)h(v)n(ersc)n(hl\374sselte)f(V)-7 +b(erbindung)31 b(zwisc)n(hen)h(zw)n(ei)f(Rec)n(h-)20 +1912 y(nern)c(\374b)r(er)h(ein)g(unsic)n(heres)e(Netzw)n(erk.)20 +2093 y Fd(scp)42 b(Rechner:Pfad)d(Rechner:Pfad)126 b(Programm)40 +b(zur)i(\334bertragung)d(von)j(Files)20 2193 y(ssh)g(Rechner)913 +b(auf)42 b(anderen)e(Rechner)h(anmelden)20 2292 y(ssh)h(Rechner)f(-l)i +(root)216 b(oder)173 b(auf)42 b(anderen)e(Rechner)h(als)h(root)g +(anmelden)20 2392 y(ssh)g(root@Rechner)20 2508 y +SDict begin H.S end + 20 2508 +a 20 2508 a +SDict begin 12 H.A end + 20 2508 a 20 2508 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.3.29.1) cvn /DEST pdfmark +end + 20 2508 a 116 x Fi(3.29.1.)57 +b(Generierung)35 b(eines)h(DSA)i(Schl\374sselpaa)m(res)20 +2777 y Fd(ssh-keygen)h(-t)k(dsa)f(-b)h(2048)696 b(generiert)39 +b(DSA-Schl\374sselpaar)e(mit)1807 2877 y(einer)k(Bit-Tiefe)f(von)i +(2048)194 2977 y(~/.ssh/id_dsa)126 b(-)43 b(private-key)c(mit)j +()f(best\344tigen)194 3076 y(passphrase)258 b(-)43 +b(Passwort)d(f\374r)i(den)h(private-key)38 b(und)43 b(der)f(Anmeldung,) +979 3176 y(f\374r)g(passwortlose)d(SSH-Verbindunge)o(n)e(weg)43 +b(lassen)e(oder)979 3275 y(zu)h(Beginn)g(einer)f(Sitzung)g(mit)h +(ssh-add)e(~/.ssh/id_dsa)979 3375 y(abfragen)g(lassen)20 +3509 y +SDict begin H.S end + 20 3509 a 20 3509 a +SDict begin 12 H.A end + 20 3509 a 20 3509 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.3.29.2) cvn /DEST pdfmark +end + 20 3509 +a 98 x Fi(3.29.2.)57 b(Public-Key)36 b(auf)h(dem)g(Zielrechner)f +(hinzuf\374gen)20 3760 y Fd(cat)42 b(~/.ssh/id_dsa.pub)37 +b(|)43 b(ssh)f(zieluser@zielrec)o(hne)o(r)37 b(\\)194 +3860 y("mkdir)k(-p)i(.ssh;)f(cat)g(>>)h(.ssh/authorized)o(_k)o(eys)o(") +892 3960 y(-)g(public-key)c(auf)j(dem)h(Zielrechner)c(hinzuf\374gen)20 +4159 y(ssh)j(zieluser@zielrech)o(ne)o(r)37 b("chmod)42 +b(600)g(~/.ssh/authoriz)o(ed_)o(ke)o(ys)o(")892 4259 +y(-)h(public-key)c(auf)j(dem)h(Zielrechner)c(sch\374tzen)20 +4393 y +SDict begin H.S end + 20 4393 a 20 4393 a +SDict begin 12 H.A end + 20 4393 a 20 4393 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.3.29.3) cvn /DEST pdfmark +end + 20 4393 +a 98 x Fi(3.29.3.)57 b(Private-Key)38 b(auf)f(dem)g(Qellrechner)20 +4644 y Fd(~/.ssh/id_dsa)300 b(-)43 b(der)f(Private-Key)d(geh\366rt)i +(auf)h(dem)h(Qellrechner)c(in)j(das)979 4744 y(~/.ssh/)e(Verzeichnis) +3037 5092 y Fk(35)p eop end +%%Page: 36 36 +TeXDict begin 36 35 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 a +632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.36) cvn /DEST pdfmark end + 632 -5 a 640 128 a Fh(3.)41 +b(Befehle)640 277 y +SDict begin H.S end + 640 277 a 640 277 a +SDict begin 12 H.A end + 640 277 a 640 +277 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.3.29.4) cvn /DEST pdfmark +end + 640 277 a 83 x Fi(3.29.4.)57 b(Login)36 b(nur)h(mit)g(SSH-Keys)i +(erlaub)s(en)640 515 y Fd(/etc/ssh/sshd_co)o(nfi)o(g)517 +b(-)43 b(folgendes)c(in)k(die)g(Datei)e(sshd_config)814 +615 y(PubkeyAuthenticat)o(io)o(n)d(yes)260 b(eingetragen)814 +714 y(UsePAM)41 b(no)814 814 y(PasswordAuthentic)o(at)o(ion)c(no)640 +1013 y(rcsshd)k(restart)782 b(-)43 b(SSH-D\344mon)c(neu)k(starten)640 +1143 y +SDict begin H.S end + 640 1143 a 640 1143 a +SDict begin 12 H.A end + 640 1143 a 640 1143 a +SDict begin [/View [/XYZ H.V]/Dest (section.3.30) cvn /DEST pdfmark +end + 640 +1143 a 151 x Fe(3.30.)68 b(GnuPG)640 1477 y Fk(Mit)27 +b(Gn)n(uPG)h(k)-5 b(ann)27 b(man)g(Daten)g(signieren)e(und)j(v)n(ersc)n +(hl\374sseln.)d(Gn)n(uPG)i(un)n(terst\374zt)g(symme-)640 +1577 y(trisc)n(he)g(und)h(asymmetrisc)n(he)e(V)-7 b(ersc)n +(hl\374sselung.)640 1765 y Fd(http://www.gnupg)o(.or)o(g/)1126 +b(http-Adresse)39 b(f\374r)j(GnuPG)640 1865 y(http://www.gnupg)o(.or)o +(g/)o(re)o(lat)o(ed)o(_s)o(oft)o(wa)o(re)o(/gp)o(a/)211 +b(Grafische)40 b(Benutzereingabe)640 2064 y(http://www.heise)o(.de)o +(/s)o(ec)o(uri)o(ty)o(/d)o(ien)o(st)o(e/)o(pgp)o(/)255 +b(Krypto-Kampagne,)37 b(bei)42 b(der)2688 2164 y(ein)h(Abgleich)d +(zwischen)2688 2263 y(Person,)h(Personalausweis)2688 +2363 y(und)i(Schl\374ssel)c(erfolgt)640 2562 y(http://kmail.kde)o(.or)o +(g/)1126 b(Mailprogramme)38 b(mit)43 b(GnuPG)640 2662 +y(http://www.mutt.)o(org)o(/)1170 b(Unterst\374tzung)640 +2761 y(http://www.ximia)o(n.c)o(om)o(/p)o(rod)o(uc)o(ts)o(/ev)o(ol)o +(ut)o(ion)o(/)640 2901 y +SDict begin H.S end + 640 2901 a 640 2901 a +SDict begin 12 H.A end + 640 2901 +a 640 2901 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.3.30.1) cvn /DEST pdfmark +end + 640 2901 a 98 x Fi(3.30.1.)57 b(Erzeugen)640 +3155 y Fd(gpg)42 b(--gen-key)825 b(Schl\374ssel-Paar)37 +b(erzeugen)640 3254 y(gpg)42 b(--gen-revoke)d(0xKeyID)346 +b(Widerruf)40 b(Zertifikat)f(erzeugen)2078 3354 y(>)k +(gpg-rev-Will_no_l)o(on)o(ge)o(r_u)o(se)o(_i)o(t)2078 +3454 y(>)g(gpg-rev-Lost_priv)o(at)o(e_)o(key)2078 3553 +y(>)g(gpg-rev-Forgot_pa)o(ss)o(wo)o(rd)2078 3653 y(>)g +(gpg-rev-Key_compr)o(om)o(is)o(ed)640 3792 y +SDict begin H.S end + 640 3792 +a 640 3792 a +SDict begin 12 H.A end + 640 3792 a 640 3792 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.3.30.2) cvn /DEST pdfmark +end + 640 3792 a 99 x Fi(3.30.2.)57 +b(Ho)s(chladen)640 4046 y Fd(gpg)42 b(--keyserver)d(wwwkeys.de.pgp.ne)o +(t)e(--send-keys)i(0xKeyID)2035 4146 y(Public)i(Key)h(auf)g(den)h +(Keyserver)c(hochladen)640 4245 y(gpg)j(-a)h(--export)d(0xKeyID)h(|)i +(mail)f(-s)h("add")e(pgp-public-keys@)o(key)o(s.)o(de)o(.pg)o(p.)o(ne)o +(t)2035 4345 y(Public)g(Key)h(an)h(den)f(Keyserver)e(verschicken)640 +4445 y(Keyserver:)640 4544 y(Land)434 b(eMail-Adresse)823 +b(HTTP-Adresse)640 4644 y(----)434 b(-------------)823 +b(------------)640 4744 y(Deutschland)126 b(pgp-public-keys@)o(key)o +(s.)o(de)o(.pg)o(p.)o(ne)o(t)38 b(http://wwwkeys.)o(de)o(.pg)o(p.)o(ne) +o(t/)640 5092 y Fk(36)p eop end +%%Page: 37 37 +TeXDict begin 37 36 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a 12 +-5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.37) cvn /DEST pdfmark end + 12 -5 a 2632 128 a Fh(3.30.)40 b(Gn)n(uPG)20 +360 y Fd(\326stereich)214 b(pgp-public-keys@)o(key)o(s.)o(at)o(.pg)o +(p.)o(ne)o(t)38 b(http://wwwkeys.)o(at)o(.pg)o(p.)o(ne)o(t/)20 +460 y(Schweiz)302 b(gp-public-keys@k)o(eys)o(.c)o(h.)o(pgp)o(.n)o(et)81 +b(http://wwwkeys.)o(ch)o(.pg)o(p.)o(ne)o(t/)20 614 y +SDict begin H.S end + +20 614 a 20 614 a +SDict begin 12 H.A end + 20 614 a 20 614 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.3.30.3) cvn /DEST pdfmark +end + 20 614 a 102 x Fi(3.30.3.)57 +b(L\366schen)20 878 y Fd(gpg)42 b(--recv-keys)d(0xKeyID)390 +b(Key)42 b(vernichten)20 978 y(gpg)g(--import)869 b(WiderrufZertifi)o +(ka)o(t)20 1077 y(gpg)42 b(--send-keys)d(0xKeyID)20 1277 +y(gpg)j(--delete-key)d(0xKeyID)346 b(l\366scht)41 b(einen)g +(\366ffentlichen)d(Schl\374ssel)20 1476 y(cat)k(gpg-rev-xxx)d(|)k(mail) +f(-s)h("add")f(pgp-public-keys)o(@k)o(ey)o(s.d)o(e.)o(pg)o(p.n)o(et) +1415 1575 y(Widerruf)e(Zertifikat)f(an)k(den)f(Keyserver)1415 +1675 y(verschicken)20 1811 y +SDict begin H.S end + 20 1811 a 20 1811 a +SDict begin 12 H.A end + 20 1811 +a 20 1811 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.3.30.4) cvn /DEST pdfmark +end + 20 1811 a 121 x Fi(3.30.4.)57 b(Holen)20 +2093 y Fd(gpg)42 b(--keyserver)d(wwwkeys.de.pgp.ne)o(t)e(--recv-keys)i +(0xKeyID)1415 2193 y(Public-Key)g(vom)j(Keyserver)e(holen)20 +2293 y(mail)i(-s)h("get)f(thomasb@trash.n)o(et)o(")c(pgp-public-keys)o +(@k)o(ey)o(s.d)o(e.)o(pg)o(p.n)o(et)1415 2392 y(Public-Key)h(per)j +(E-Mail)1415 2492 y(vom)g(Keyserver)e(holen)20 2592 y(gpg)i(--import)f +(Key.txt)520 b(Public-Key)39 b(inportieren)20 2746 y +SDict begin H.S end + +20 2746 a 20 2746 a +SDict begin 12 H.A end + 20 2746 a 20 2746 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.3.30.5) cvn /DEST pdfmark +end + 20 2746 a 102 +x Fi(3.30.5.)57 b(Signatur)36 b(erzeugen)h(und)f(p)m(r\374fen)20 +3010 y Fd(gpg)42 b(-a)h(--sign)e(Datei)565 b(einen)41 +b(Text)h(signieren,)d(erzeugt)i(Datei.asc)20 3110 y(gpg)h(--verify)f +(Datei.asc)e(Datei)173 b(eine)41 b(Signatur)g(pr\374fen)20 +3309 y(gpg)h(--clearsign)d(Datei)478 b(einen)41 b(Text)h(signieren,) +1415 3409 y(erzeugt)e(neue)i(Datei.asc)20 3508 y(gpg)g(--verify)f +(Datei.asc)432 b(eine)41 b(Signatur)g(pr\374fen)20 3662 +y +SDict begin H.S end + 20 3662 a 20 3662 a +SDict begin 12 H.A end + 20 3662 a 20 3662 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.3.30.6) cvn /DEST pdfmark +end + 20 3662 a 103 +x Fi(3.30.6.)57 b(V)m(erschl\374sseln)20 3927 y Fd(gpg)42 +b(-a)h(-r)g(Empf\344nger0xKeyI)o(D)38 b(-e)k(Datei)1415 +4026 y(einen)f(Text)h(verschl\374sseln,)1415 4126 y(erzeugt)e +(Datei.asc)20 4280 y +SDict begin H.S end + 20 4280 a 20 4280 a +SDict begin 12 H.A end + 20 4280 a 20 +4280 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.3.30.7) cvn /DEST pdfmark +end + 20 4280 a 103 x Fi(3.30.7.)57 b(Entschl\374sseln)20 +4544 y Fd(gpg)42 b(Datei.asc)825 b(einen)41 b(versch\374sselten)d(und)k +(signierten)d(Text)1415 4644 y(entschl\374sseln)f(und)k(die)g(Signatur) +e(pr\374fen,)1415 4744 y(erzeugt)g(Datei)3037 5092 y +Fk(37)p eop end +%%Page: 38 38 +TeXDict begin 38 37 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 a +632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.38) cvn /DEST pdfmark end + 632 -5 a 640 128 a Fh(3.)41 +b(Befehle)640 277 y +SDict begin H.S end + 640 277 a 640 277 a +SDict begin 12 H.A end + 640 277 a 640 +277 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.3.30.8) cvn /DEST pdfmark +end + 640 277 a 83 x Fi(3.30.8.)57 b(Schl\374sselverw)m(altung)640 +514 y Fd(gpg)42 b(--edit)f(0xKeyID)608 b(Schl\374sselverwal)o(tu)o(ng) +2078 614 y(help)42 b(-)h(Anzeige)e(aller)g(Befehle)2078 +714 y(quit)h(-)h(Das)f(Menu)g(beenden)640 851 y +SDict begin H.S end + 640 851 +a 640 851 a +SDict begin 12 H.A end + 640 851 a 640 851 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.3.30.9) cvn /DEST pdfmark +end + 640 851 a 98 x Fi(3.30.9.)57 +b(Anzeigen)640 1103 y Fd(gpg)42 b(--list-keys)737 b(zeigt)41 +b(alle)h(\366ffentlichen)c(Schl\374ssel)640 1203 y(gpg)k(--list-sigs) +737 b(zeigt)41 b(alle)h(Unterschriften)640 1303 y(gpg)g(--fingerprint) +649 b(zeigt)41 b(alle)h(Fingerabdr\374cke)640 1440 y +SDict begin H.S end + +640 1440 a 640 1440 a +SDict begin 12 H.A end + 640 1440 a 640 1440 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.3.30.10) cvn /DEST pdfmark +end + 640 1440 +a 98 x Fi(3.30.10.)57 b(Exp)s(o)m(rtieren)640 1693 y +Fd(gpg)42 b(-a)h(--export)d(0xKeyID)h(>)i(Datei)f(exportiert)d(den)j +(Schl\374ssel)e(0xKeyID)2035 1792 y(in)i(Datei)640 1892 +y(gpg)g(-a)h(--export)d(>)k(Datei)390 b(exportiert)39 +b(alle)j(Schl\374ssel)e(in)i(Datei)640 2038 y +SDict begin H.S end + 640 2038 +a 640 2038 a +SDict begin 12 H.A end + 640 2038 a 640 2038 a +SDict begin [/View [/XYZ H.V]/Dest (section.3.31) cvn /DEST pdfmark +end + 640 2038 a 132 x Fe(3.31.)68 +b(X11)45 b(-)h(Gra\034k)640 2353 y Fd(/etc/XF86Config)735 +b(bis)42 b(XFree86.3.3.x)c(Konfigurationsda)o(te)o(i)640 +2452 y(/etc/X11/XF86Con)o(fig)560 b(ab)42 b(XFree86.4.x)d +(Konfigurationsda)o(tei)640 2651 y([Alt]+[F1])g(bis)k([F6])565 +b(Umschalten)39 b(zwischen)h(Textkonsolen)82 b(alle)42 +b(Shells)640 2751 y([AltGr]+[Fn])867 b(Umschalten)39 +b(zwischen)h(den)i(Textkonsolen)d(n+12)640 2851 y([Alt]+[Pfeil)g(links) +i(oder)h(rechts])f(um)h(durch)g(die)g(benutzten)e(Konsolen)g(zu)j +(st\366bern)640 2950 y([Strg]+[Alt]+[F1)o(])38 b(bis)478 +b(Umschalten)39 b(zu)k(Textkonsolen)343 b(alle)42 b(Shells)640 +3050 y([Strg]+[Alt]+[F6)o(])648 b(aus)42 b(X11)g(heraus)640 +3150 y([Strg]+[Alt]+[F7)o(])648 b(Umschalten)39 b(zu)k(X11)f(aus)g +(Textkonsole)d(alle)j(Shells)2035 3249 y(bei)g(Caldera)e(2.2)j +([Alt]+[F8])640 3349 y([Strg]+[Alt]+[<-)o(-])604 b(X-Server)40 +b(sofort)h(beenden)640 3448 y([Strg]+[Alt]+[+])691 b(verschiedene)38 +b(Aufl\366sungen)h(im)k(laufenden)640 3548 y([Strg]+[Alt]+[-])691 +b(Betrieb)40 b(wechseln)640 3747 y(xf86config)955 b(Shell-Konfigura)o +(ti)o(ons)o(pr)o(og)o(ram)o(m)37 b(f\374r)43 b(X)g(3+4)640 +3847 y(XF86Setup)999 b(X-Konfiguration)o(sp)o(rog)o(ra)o(mm)37 +b(bis)42 b(XFree86.3.3.x)640 3947 y(sax)1263 b(X-SuSE-Konfigur)o(at)o +(ion)o(sp)o(ro)o(gra)o(mm)37 b(bis)42 b(XFree86.3.3.x)640 +4046 y(sax2)1219 b(X-SuSE-Konfigur)o(at)o(ion)o(sp)o(ro)o(gra)o(mm)37 +b(ab)43 b(XFree86.4.x)640 4245 y(startx)1131 b(X-Server)40 +b(starten)640 4345 y(startx)h(--)i(-bpp)f(16)653 b(X-Server)40 +b(mit)i(16)h(Bit)f(starten)640 4445 y(startx)f(-)i(--)g(:0)g(vt07)565 +b(X-Server)40 b(auf)i(F7)h(starten)640 4544 y(startx)e(-)i(--)g(:1)g +(vt08)565 b(2.)42 b(X-Server)e(auf)j(F8)g(starten)640 +4744 y(export)e(WINDOWMANAGER=WM)386 b(X-Umgebungsvari)o(ab)o(le)37 +b(auf)42 b(WM\(kde,)f(gnome,)640 5092 y Fk(38)p eop end +%%Page: 39 39 +TeXDict begin 39 38 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a 12 +-5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.39) cvn /DEST pdfmark end + 12 -5 a 2451 128 a Fh(3.31.)40 b(X11)27 +b(-)g(Gra\034k)1415 360 y Fd(fvwm,)41 b(olwm)h(...\))g(\344ndern)20 +488 y +SDict begin H.S end + 20 488 a 20 488 a +SDict begin 12 H.A end + 20 488 a 20 488 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.3.31.1) cvn /DEST pdfmark +end + 20 488 a 104 +x Fi(3.31.1.)57 b(Bildschirmschoner)20 746 y Fd(xset)42 +b(s)1133 b(auf)42 b(Standardeinstel)o(lun)o(ge)o(n)37 +b(zur\374cksetzen)20 845 y(xset)42 b(s)h(60)1002 b(nach)41 +b(1)j(Minute)d(aktivieren)20 945 y(xset)h(s)h(blank)870 +b(schwarzen)39 b(Bildschirm)h(verwenden)20 1044 y(xset)i(s)h(noblank) +782 b(X-Logo)41 b(statt)g(schwarzen)f(Bildschirm)f(anzeigen)20 +1144 y(xset)j(s)h(60)g(3)915 b(X-Logo)41 b(alle)g(3)j(Sekunden)c(neu)i +(platzieren)20 1244 y(xset)g(s)h(off)958 b(Bildschirmschon)o(er)37 +b(deaktivieren)20 1343 y(xset)42 b(s)h(on)1002 b(Bildschirmschon)o(er) +37 b(einschalten)20 1443 y(xset)42 b(s)h(activate)738 +b(Bildschirmschon)o(er)37 b(sofort)k(aktivieren)20 1543 +y(xset)h(q)1133 b(aktuelle)40 b(Einstellungen)e(anzeigen)20 +1642 y(xsetroot)i(-solid)h(blue)522 b(Hintergrund)20 +1777 y +SDict begin H.S end + 20 1777 a 20 1777 a +SDict begin 12 H.A end + 20 1777 a 20 1777 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.3.31.2) cvn /DEST pdfmark +end + 20 1777 +a 98 x Fi(3.31.2.)57 b(X11)37 b(ohne)g(Maus)20 2028 y +Fd([Umschalt]+[Strg)o(]+)o([Nu)o(m])386 b(Maussteuerung)38 +b(am)k(Ziffernblock)d(ein/ausschalten)20 2127 y([4],[6],[8],[8])735 +b(links,)41 b(rechts,)f(oben,)i(unten)20 2227 y([*],[-])1087 +b(auf)42 b(linke,)f(rechte)g(Maustaste)f(umschalten)20 +2327 y([5],[+],[0],[5])735 b(Maustaste,)39 b(Doppelklick,)f(ger\374ckt) +j(halen,)g(l\366sen)3037 5092 y Fk(39)p eop end +%%Page: 40 40 +TeXDict begin 40 39 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 a +632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.40) cvn /DEST pdfmark end + 632 -5 a eop end +%%Page: 41 41 +TeXDict begin 41 40 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a 12 +-5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.41) cvn /DEST pdfmark end + 12 -5 a 20 277 a +SDict begin H.S end + 20 277 a 20 277 +a +SDict begin 12 H.A end + 20 277 a 20 277 a +SDict begin [/View [/XYZ H.V]/Dest (chapter.4) cvn /DEST pdfmark end + 20 277 a 530 x Fm(4.)100 b(V)-6 b(erzeichnisse)68 +b(und)g(Dateien)20 994 y +SDict begin H.S end + 20 994 a 20 994 a +SDict begin 12 H.A end + 20 994 a 20 +994 a +SDict begin [/View [/XYZ H.V]/Dest (section.4.1) cvn /DEST pdfmark +end + 20 994 a 160 x Fe(4.1.)g(Dateibaum)20 1356 y Fd(/)1351 +b(oberste)40 b(Verzeichnis)1415 1456 y(im)i(Dateisystem)d +(\(Root/Wurzel\))20 1556 y(.)1351 b(Verweis)40 b(auf)i(sich)g(selbst)20 +1655 y(..)1307 b(Verweis)40 b(auf)i(das)h(\374bergeordnete)38 +b(Verzeichnis)20 1755 y(/bin/)1175 b(ausf\374hrbare)38 +b(Dateien)j(der)h(wichtigsten)d(Befehle)20 1854 y(#/bin/init)955 +b(->)42 b(/sbin/init)20 1954 y(/boot/)1131 b(enth\344lt)40 +b(die)i(Dateien)f(des)h(LILO)g(Bootloaders)d(und)1415 +2054 y(kann)i(Kernel-Images)d(enthalten)20 2153 y(/boot/boot.b)867 +b(der)42 b(LILO-Maschinenc)o(ode)20 2253 y(/boot/map)999 +b(Informationen)38 b(f\374r)k(LILO)1415 2353 y(um)g(den)h +(Betriebssystemk)o(er)o(n)37 b(zu)43 b(starten)20 2452 +y(/boot/message)823 b(wird)41 b(vor)i(der)f(LILO-Bootauswahl)37 +b(ausgegeben)20 2552 y(/boot/vmlinuz)823 b(der)42 b(Betriebssystemk)o +(ern)37 b(kann)42 b(auch)g(im)g(/)h(liegen)20 2651 y(/cdrom/)1087 +b(dient)41 b(zur)h(CDROM-Einbindung)20 2751 y(/dev/)1175 +b(Sammlung)40 b(der)i(Ger\344tedateien)20 2851 y(/dev/audio)955 +b(\344hnlich)40 b(wie)i(/dev/dsp,)e(Daten)i(werden)f(y-Law)g(codiert)20 +2950 y(/dev/cdrom)955 b(Link)41 b(auf)i(den)f(CD-Rom)f(Treiber)g(oft)h +(/dev/hdc)20 3050 y(/dev/console)867 b(reale)41 b(Console)20 +3150 y(/dev/dsp)1043 b(Link)41 b(auf)i(den)f(A/D-W.)f(der)h(Soundk.)f +(\(->)h(/dev/dsp0\))20 3249 y(/dev/dsp0)999 b(Analog/Digital-)o(Wa)o +(nd)o(ler)37 b(der)42 b(Soundkarte)20 3349 y(/dev/fd0)1043 +b(erstes)41 b(Diskettenlaufwe)o(rk)20 3448 y(/dev/fd1)1043 +b(zweites)40 b(Diskettenlaufwer)o(k)20 3548 y(/dev/full)999 +b(beim)41 b(Schreiben)f(wird)i(der)g(Fehler)f(ENOSPC)g(erzeugt)20 +3648 y(/dev/hda)1043 b(erstes)41 b(\(E\)IDE)g(Ger\344t)20 +3747 y(/dev/hda1)f(->)j(/dev/hda4)432 b(prim\344re)40 +b(Partitionen)20 3847 y(/dev/hda5)g(->)j(/dev/hda?)432 +b(logische)40 b(Partitionen)20 3947 y(/dev/hdb)1043 b(zweites)40 +b(\(E\)IDE)h(Ger\344t)20 4046 y(/dev/hdc)1043 b(drittes)40 +b(\(E\)IDE)h(Ger\344t)20 4146 y(/dev/hdd)1043 b(viertes)40 +b(\(E\)IDE)h(Ger\344t)20 4245 y(/dev/initrd)911 b(zus\344tzliche)38 +b(RAM-Disk)j(mit)h(Kernelmodulen)c(und)1415 4345 y(Bootsystem)h(zur)j +(Initialisierung)37 b(des)43 b(Kernels)20 4445 y(/dev/kmem)999 +b(virtueller)39 b(Arbeitsspeicher)20 4544 y(/dev/loop*)955 +b(erm\366glicht)39 b(eine)j(Datei)f(wie)h(eine)g(Diskette)f(oder)1415 +4644 y(Festplattenpart)o(it)o(io)o(n)d(zu)k(mounten)20 +4744 y(/dev/lp0)1043 b(erste)41 b(parallele)f(Schnittstelle)3037 +5092 y Fk(41)p eop end +%%Page: 42 42 +TeXDict begin 42 41 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 a +632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.42) cvn /DEST pdfmark end + 632 -5 a 640 128 a Fh(4.)41 +b(V)-7 b(erzeic)n(hnisse)27 b(und)h(Dateien)640 360 y +Fd(/dev/lp1)1043 b(zweite)41 b(parallele)e(Schnittstelle)640 +460 y(/dev/lp2)1043 b(dritte)41 b(parallele)e(Schnittstelle)640 +559 y(/dev/md*)1043 b(zusammengelegte)37 b(Festplatten)i(linear,Raid0)f +(oder)k(1)640 659 y(/dev/mem)1043 b(physikalischer)37 +b(Arbeitsspeicher)640 758 y(/dev/midi00)911 b(direkte)40 +b(Kommunikation)e(mit)43 b(einem)e(MIDI-Ger\344t)640 +858 y(/dev/mixer)955 b(Link)41 b(auf)i(den)f(Mixer)g(\(->)g +(/dev/mixer0\))640 958 y(/dev/mixer0)911 b(Mischpult)39 +b(der)k(1.)f(Soundkarte)640 1057 y(/dev/modem)955 b(Link)41 +b(auf)i(den)f(Modemtreiber)d(\(->)j(/dev/ttyS0\))640 +1157 y(/dev/mouse)955 b(Link)41 b(auf)i(den)f(Maustreiber)d(\(->)j +(/dev/psaux\))640 1257 y(/dev/music)955 b(eine)41 b(andere)g(Art)i(von) +f(Sequencer,)d(speziell)i(f\374r)h(die)2035 1356 y(MIDI-Schnittste)o +(ll)o(e)640 1456 y(/dev/nst*)999 b(SCSI-Streamer)38 b(\(No)k(Rewind)f +(On)i(Close\))640 1556 y(/dev/null)999 b(M\374lleimer)39 +b(des)k(Systems)640 1655 y(/dev/port)999 b(zum)42 b(ansprechen)d +(einzelner)h(IO)j(Ports)640 1755 y(/dev/psaux)955 b(PS/2-Maus)640 +1854 y(/dev/pts/)999 b(Unix98)41 b(PTY)h(slaves)640 1954 +y(/dev/ram)1043 b(Link)41 b(auf)i(die)f(RAM-Disk)e(\(->)j(/dev/ram0\)) +640 2054 y(/dev/random)911 b(zur)42 b(Erzeugung)e(kryptografisch)d +(hochwertiger)2035 2153 y(Zufallszahlen)640 2253 y(/dev/rmt*)999 +b(QIC-02-Streamer)640 2353 y(/dev/rtc)1043 b(batteriegepuffe)o(rt)o(e) +38 b(CMOS-Uhr)640 2452 y(/dev/sd*)1043 b(SCSI-Festplatte)o(n)640 +2552 y(/dev/sequencer)779 b(Synthesizer)38 b(der)43 b(Soundkarte)c +(oder)j(ein)g(am)h(MIDI-Port)2035 2651 y(angeschlossenes)37 +b(Ger\344t)640 2751 y(/dev/sndstat)867 b(Informationen)38 +b(\374ber)k(den)g(Status)f(des)h(Soundtreibers)640 2851 +y(/dev/st*)1043 b(SCSI-Streamer)640 2950 y(/dev/tty)g(aktive)41 +b(virtuelle)e(Console)640 3050 y(/dev/tty1)999 b(1.)42 +b(virtuelle)e(Console)640 3150 y(/dev/tty2)999 b(2.)42 +b(virtuelle)e(Console)640 3249 y(/dev/ttyS0)955 b(erste)41 +b(serielle)f(Schnittstelle)e(COM1)640 3349 y(/dev/ttyS1)955 +b(zeite)41 b(serielle)f(Schnittstelle)e(COM2)640 3448 +y(/dev/ttyS2)955 b(dritte)41 b(serielle)f(Schnittstelle)640 +3548 y(/dev/ttyS3)955 b(vierte)41 b(serielle)f(Schnittstelle)640 +3648 y(/dev/urandom)867 b(zur)42 b(Erzeugung)e(von)i(Zufallszahlen)640 +3747 y(/dev/xd*)1043 b(8-Bit)41 b(XT-Festplattenco)o(nt)o(rol)o(le)o(r) +640 3847 y(/dev/zero)999 b(zum)42 b(Lesen)f(beliebig)g(vieler)g +(Nullbytes)640 3947 y(/etc/)1175 b(Konfigurationsd)o(at)o(eie)o(n)640 +4046 y(/etc/adjtime)867 b(zur)42 b(Korrektur)e(der)i(batteriegepuffer)o +(te)o(n)37 b(CMOS-Uhr)2035 4146 y(\(clock\))640 4245 +y(/etc/bash.bashrc)691 b(globale)40 b(bash)i(konfiguration)640 +4345 y(#/etc/conf.modul)o(es)647 b(->)43 b(/etc/modules.con)o(f)640 +4445 y(/etc/cryptotab)779 b(/etc/fstab)39 b(f\374r)j(Krypto-Filesyste)o +(m)640 4544 y(/etc/csh.login)779 b(Startdatei)39 b(f\374r)j(die)h +(C-Shell)640 4644 y(/etc/diphosts)823 b(eine)41 b(Art)i(/etc/passwd)c +(f\374r)j(SLIP)g(Login)640 4744 y(/etc/DIR_COLORS)735 +b(festlegen)39 b(der)k(Farben)e(f\374r)h(ls)640 5092 +y Fk(42)p eop end +%%Page: 43 43 +TeXDict begin 43 42 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a 12 +-5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.43) cvn /DEST pdfmark end + 12 -5 a 2550 128 a Fh(4.1.)40 b(Dateibaum)20 +360 y Fd(/etc/exports)867 b(Verzeichnisse)38 b(und)k(Rchnernamen,)c +(die)43 b(diese)1415 460 y(Verzeichnisse)38 b(per)k(NFS)g(mounten)f +(d\374rfen)1415 559 y(wird)g(hier)h(eingetragen)20 659 +y(/etc/fdprm)955 b(Parameter)39 b(von)k(Diskettenformat)o(en)20 +758 y(/etc/fstab)955 b(um)42 b(Benutzern)e(das)i(An-)h(und)f(Abmelden) +1415 858 y(von)g(Dateisystemen)c(zu)43 b(erlauben)20 +958 y(/etc/ftpaccess)779 b(Woher)41 b(?)i(Wann)f(?)h(Was)f(?)i(...)20 +1057 y(/etc/ftpusers)823 b(...)42 b(und)g(Wer)g(NICHT)g(?)20 +1157 y(/etc/gateways)823 b(Rechner)40 b(des)i(lokalen)f(Netzes)g(die)h +(Kontakt)f(mit)1415 1257 y(anderen)f(Netzen)h(haben)20 +1356 y(/etc/gettydefs)779 b(Beschreibung)38 b(der)k(seriellen)e +(Terminals)20 1456 y(/etc/group)955 b(Benutzergruppen)37 +b(und)42 b(ihre)g(Mitglieder)20 1556 y(/etc/host)999 +b(aufl\366sen)40 b(von)i(Netzwerknamen)1415 1655 y(\374ber)f(die)i +(resolver-Biblio)o(th)o(ek)20 1755 y(/etc/host.allow)735 +b(Rechner)40 b(und)i(Netze)g(mit)g(denen)g(Verbindung)d(aufgebaut)1415 +1854 y(werden)i(darf)20 1954 y(/etc/host.conf)779 b(eine)41 +b(der)i(Konfig.)d(den)j(Domain)e(Name)h(Service)20 2054 +y(/etc/host.deny)779 b(Rechner)40 b(und)i(Netze)g(die)g(sich)g(nicht)g +(mit)g(diesem)1415 2153 y(Rechner)e(verbinden)g(d\374rfen)20 +2253 y(/etc/host.equiv)735 b(Rechner)40 b(die)i("gleichartig")c +(behandelt)i(werden)20 2353 y(/etc/HOSTNAME)823 b(hier)41 +b(steht)h(der)g(Name)g(des)g(Rechners)1415 2452 y(ohne)f(den)i +(Domainnamen)20 2552 y(/etc/hosts)955 b(ordnet)41 b(IP-Adressen)d +(Hostnamen)i(zu)20 2651 y(/etc/inetd.conf)735 b(welche)41 +b(Services)f(gestartet)f(werden)j(\(inetd\))20 2751 y(/etc/init)955 +b(->)43 b(/sbin/init)20 2851 y(/etc/init/)c(Dateien)i(f\374r)h(Upstart) +20 2950 y(/etc/init.d/)867 b(Dateien)40 b(f\374r)i(die)h(Init-Levels)20 +3050 y(/etc/init.d/inet)o(d)648 b(startet)40 b(den)i(inetd,)f(z.B.)h +(zum)h(Anmelden)1415 3150 y(vom)f(Netzwerk)20 3249 y(/etc/init.d/netw)o +(or)o(k)561 b(startet)40 b(die)i(Konfiguration)1415 3349 +y(der)g(Netzwerk)e(Hard-)h(und)i(Software)20 3448 y(/etc/init.d/port)o +(ma)o(p)561 b(starte)41 b(den)h(Portmapper,)1415 3548 +y(um)g(den)h(RPC-Server)c(verwenden)h(zu)i(k\366nnen)20 +3648 y(/etc/init.d/rout)o(e)648 b(setzt)41 b(die)h(statischen)e(Routen) +h(im)h(Netzwerk)20 3747 y(/etc/init.d/send)o(ma)o(il)517 +b(kontrolliert)38 b(den)k(sendmail-Prozess)1415 3847 +y(in)g(Abh\344ngigkeit)20 3947 y(/etc/init.d/rc0.)o(d/)37 +b(bis)42 b(rc6.d/)129 b(init)41 b(0)j(bis)e(6)20 4046 +y(/etc/init.d/rcS.)o(d/)604 b(init)41 b(S)20 4146 y(/etc/initscript)735 +b(init)41 b(f\374hrt)h(die)g(Kommandos)e(durch)h(dieses)g(Script)1415 +4245 y(ondemand)f(und)i(respawn)f(aus)20 4345 y(#/etc/inittab)866 +b(Grunteinstellung)37 b(der)42 b(Init-Levels)d(und)j(Terminals)1415 +4445 y(\(/sbin/init\))20 4544 y(/etc/isdn/)955 b(ISDN-Konfigurat)o(io)o +(ne)o(n)20 4644 y(/etc/issue)g(Begr\374\377ungstext)37 +b(beim)42 b(Login)f(\(getty\))20 4744 y(/etc/ld.so.cache)691 +b(zur)42 b(Shared)f(Libraries)f(identifizierung)d(\(ldconfig\))3037 +5092 y Fk(43)p eop end +%%Page: 44 44 +TeXDict begin 44 43 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 a +632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.44) cvn /DEST pdfmark end + 632 -5 a 640 128 a Fh(4.)41 +b(V)-7 b(erzeic)n(hnisse)27 b(und)h(Dateien)640 360 y +Fd(/etc/ld.so.conf)735 b(Verzeichnisse)38 b(zu)k(neuen)g(Shared)f +(Libraries)2035 460 y(\(ldconfig\))640 559 y(/etc/lilo.conf)779 +b(Konfigurationsd)o(at)o(ei)37 b(des)42 b(LILO)640 659 +y(/etc/login.defs)735 b(Login)41 b(Einstllungen)e(\(login\))640 +758 y(/etc/magic)955 b(Magic)41 b(Numbers)g(zum)h(Erkennen)e(von)i +(Dateien)f(\(file\))640 858 y(#/etc/man.config)691 b(->)42 +b(/etc/manpath.conf)o(ig)640 958 y(/etc/manpath.con)o(fig)560 +b(Verzeichnisse)38 b(in)k(den)h(Manualpages)c(gesucht)h(werden)640 +1057 y(/etc/minicom.use)o(rs)604 b(Benutzer)40 b(die)i(minicom)f +(benutzen)f(d\374rfen)640 1157 y(/etc/modules.con)o(f)648 +b(Modulinformatio)o(ne)o(n)38 b(\(\(f\374r)j(den)h +(Kerneld\(D\344mon\)\)\))640 1257 y(/etc/motd)999 b(Begr\374\377ung)39 +b(nach)j(dem)h(Anmelden)640 1356 y(/etc/mtab)999 b(Liste)41 +b(der)h(aktuell)f(zu)i(Verf\374gung)2035 1456 y(stehenden)c +(Dateisystemen)640 1556 y(/etc/mtools.conf)691 b(\(un\)logische)38 +b(Laufwerksbuchsta)o(be)o(n)2035 1655 y(von)k(MS-DOS)f(f\374r)h(die)h +(M-Befehle)640 1755 y(/etc/named.boot)735 b(f\374r)42 +b(den)g(named)g(D\344mon)f(des)h(DNS)640 1854 y(/etc/networks)823 +b(die)42 b(Namen)f(und)i(IP)f(der)h(lokalen)d(Netze)640 +1954 y(/etc/nntpserver)735 b(der)42 b(Name)g(und)g(die)g(IP)h(des)f +(Newsrechners)640 2054 y(/etc/nologin)867 b(macht)41 +b(jedes)g("normale")f(Einloggen)g(unm\366glich,)f(nur)2035 +2153 y(die)j(root)g(kann)g(sich)g(anmelden,)d(sonst)j(wird)g(der)2035 +2253 y(Inhalt)f(von)h(nologin)f(ausgegeben)e(\(login\))640 +2353 y(/etc/nscd.conf)779 b(Konfiguration)38 b(des)k(Name)g(Service)e +(Cache)i(D\344mon)640 2452 y(/etc/nsswitch.co)o(nf)604 +b(in)42 b(welcher)f(Reihenfolge)e(bestimmte)2035 2552 +y(Informationen)f(abgefragt)h(werden)640 2651 y(/etc/opt/)999 +b(Rechner-spezifi)o(sc)o(he)37 b(Konfigurationsda)o(te)o(ien)2035 +2751 y(der)42 b(Pakete)640 2851 y(/etc/passwd)911 b(Liste)41 +b(aller)g(Benutzer)g(mit)h(Informationen)640 2950 y(/etc/powerstatus) +691 b(Zustand)40 b(der)i(Stromversorgung)640 3050 y(/etc/printcap)823 +b(Beschreibung)38 b(des)k(oder)g(der)h(Drucker)d(des)i(Systems)2035 +3150 y(\(lpd\))640 3249 y(/etc/profile)867 b(Globale)40 +b(Benutzerprofile)640 3349 y(/etc/prtocols)823 b(Liste)41 +b(aller)g(Internetprotokoll)o(e)c(die)43 b(vom)f(Kernel)2035 +3448 y(unterst\374tzt)c(werden)640 3548 y(/etc/psdatabase)735 +b(enth\344lt)40 b(kernelabh\344ngige)d(Daten)42 b(f\374r)g(procps)640 +3648 y(/etc/rc*)1043 b(Systeminitialis)o(ie)o(run)o(gs)o(da)o(tei)o(en) +37 b(\(init\))640 3747 y(/etc/rc.config)779 b(zentrale)40 +b(Konfigurationsd)o(ate)o(i)d(->)43 b(/etc/sysconfig/)640 +3847 y(/etc/rc.config.d)o(/)648 b(weitere)40 b(Dateien)h(mit)h +(rc.config)e(Variablen)640 3947 y(/etc/resolv.conf)691 +b(bestimmt)40 b(ob)i(und)h(wo)g(ein)f(Nameserver)d(erreicht)2035 +4046 y(werden)i(kann)640 4146 y(/etc/rpc)1043 b(enth\344lt)40 +b(die)i(Zuordnung)e(der)j(durch)e(den)h(rpc-Service)2035 +4245 y(bereitgestellte)o(n)37 b(Netzdienste)i(zu)k(Socketnummern)640 +4345 y(/etc/securetty)779 b(Terminals)39 b(von)k(den)f(sich)g(der)g +(Benutzer)2035 4445 y(root)f(anmelden)g(darf)h(\(login\))640 +4544 y(/etc/services)823 b(ordnet)41 b(Portnummern)e(Servicenamen)f(zu) +640 4644 y(/etc/shadow)911 b(hier)41 b(sind)h(die)h(Shadow-Passw\366rt) +o(er)37 b(gespeichert)640 4744 y(/etc/shells)911 b(Liste)41 +b(aller)g(Shells)640 5092 y Fk(44)p eop end +%%Page: 45 45 +TeXDict begin 45 44 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a 12 +-5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.45) cvn /DEST pdfmark end + 12 -5 a 2550 128 a Fh(4.1.)40 b(Dateibaum)20 +360 y Fd(/etc/shutdown.al)o(lo)o(w)561 b(Liste)41 b(der)h(Benutzer)e +(die)j(zum)f(Herunterfahren)c(des)1415 460 y(Systems)i(berechtigt)f +(sind)20 559 y(/etc/skel/)955 b(Dateien)40 b(die)i(beim)g(Anlegen)1415 +659 y(eines)f(Benutzers)f(in)i(das)h(~)g(kopiert)e(werden)20 +758 y(/etc/SuSE-releas)o(e)648 b(Angaben)40 b(zur)i(installierten)c +(SuSE)k(Linux)g(version)20 858 y(/etc/sysconfig/)735 +b(zentrale)40 b(Konfigurationsd)o(at)o(eie)o(n)d(->)43 +b(/etc/rc.config)20 958 y(/etc/syslogd.con)o(f)648 b(legt)41 +b(fest)h(wohin)g(Meldungen)d(geschrieben)g(werden)1415 +1057 y(\(syslogd\))20 1157 y(/etc/termcap)867 b(Beschreibungen)37 +b(f\374r)42 b(Terminaleigenscha)o(ft)o(en)37 b(\(getty\))20 +1257 y(/etc/ttytype)867 b(legt)41 b(den)i(voreingestellte)o(n)37 +b(Terminaltyp)1415 1356 y(f\374r)42 b(die)g(Terminals)e(fest)20 +1456 y(/etc/XF86Config)735 b(bis)42 b(XFree86.3.3.x)c(Konfigurationsda) +o(te)o(i)20 1556 y(/etc/X11/XF86Con)o(fi)o(g)561 b(ab)42 +b(XFree86.4.x)d(Konfigurationsda)o(tei)20 1655 y(/floppy/)1043 +b(dient)41 b(zur)h(Floppy-Einbindun)o(g)20 1755 y(/home/)1131 +b(Heimatverzeichn)o(is)o(se)37 b(der)42 b(Benutzer)20 +1854 y(/home/~/.bash_hi)o(st)o(ory)473 b(gespeicherte)38 +b(Eingaben)i(der)i(bash)20 1954 y(/home/~/.bashrc)735 +b(Konfiguration)38 b(der)k(bash)20 2054 y(/home/~/.ctwmrc)735 +b(Konfiguration)38 b(des)k(ctwm-Fenstermana)o(ge)o(rs)20 +2153 y(/home/~/.exrc)823 b(Konfiguration)38 b(des)k(vi,)g(ex)20 +2253 y(/home/~/.fvwmrc)735 b(Konfiguration)38 b(des)k(fvwm-Fenstermana) +o(ge)o(rs)20 2353 y(/home/~/.openwin)o(-m)o(enu)473 b(Konfiguration)38 +b(des)k(olvwm)f(und)i(olwm-Fensterman)o(ag)o(ers)20 2452 +y(/home/~/.profile)691 b(wird)41 b(nach)h(dem)h(User-Anmelden)38 +b(in)k(der)h(bash)1415 2552 y(ausgef\374hrt)20 2651 y(/home/~/.rhosts) +735 b(erlaubt)40 b(die)i(r-Kommandos)20 2751 y(/home/~/.X.err)779 +b(Meldungen)39 b(des)k(X-Servers)20 2851 y(/home/~/.xinitrc)691 +b(diese)41 b(Datei)g(wird)h(von)h(.xsession)c(ausgef\374hrt)20 +2950 y(/home/~/.xsessio)o(n)648 b(diese)41 b(Datei)g(wird)h(nach)g(dem) +g(Befehl)1415 3050 y(startx)f(ausgef\374hrt)20 3150 y(/lib/)1175 +b(gemeinsam)39 b(genutzte)h(Bibliotheken)f(Shared)i(Libraries)20 +3249 y(/lib/modules/)823 b(nachladbare)38 b(Module)20 +3349 y(/lost+found/)867 b(verlorene)39 b(Daten,)i(ist)i(in)f(jeder)g +(Wurzel)1415 3448 y(des)g(EXT2-Dateisyste)o(ms)20 3548 +y(/media/cdrom/)823 b(dient)41 b(zur)h(CDROM-Einbindung)o(,)c(ist)k +(oft)g(im)h(/)20 3648 y(/media/floppy/)779 b(dient)41 +b(zur)h(Floppy-Einbindun)o(g,)37 b(ist)43 b(oft)f(im)h(/)20 +3747 y(/mnt/)1175 b(f\374r)42 b(tempor\344r)e(einzuh\344ngende)e +(Dateisysteme)20 3847 y(/mnt/cdrom/)911 b(dient)41 b(zur)h +(CDROM-Einbindung)o(,)c(ist)k(oft)g(im)h(/)20 3947 y(/mnt/floppy/)867 +b(dient)41 b(zur)h(Floppy-Einbindun)o(g,)37 b(ist)43 +b(oft)f(im)h(/)20 4046 y(/opt/)1175 b(kommerzielle)38 +b(Systemerweiterun)o(ge)o(n)20 4146 y(/opt/kde/)999 b(grafische)39 +b(Benutzeroberfl\344c)o(he)e(KDE)20 4245 y(/proc/)1131 +b(virtuelles)39 b(Filesystem)g(\374ber)j(laufende)e(Prozesse)20 +4345 y(/proc/cpuinfo)823 b(Informationen)38 b(zur)k(CPU)20 +4445 y(/proc/devices)823 b(Liste)41 b(der)h(wichtigsten)d +(Ger\344tetreiber)20 4544 y(/proc/dma)999 b(Liste)41 +b(der)h(verwendeten)d(DMA-Kan\344le)20 4644 y(/proc/filesystem)o(s)648 +b(Liste)41 b(der)h(bekannten)e(Dateisystemtypen)20 4744 +y(/proc/interrupts)691 b(Liste)41 b(der)h(Interrupts)3037 +5092 y Fk(45)p eop end +%%Page: 46 46 +TeXDict begin 46 45 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 a +632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.46) cvn /DEST pdfmark end + 632 -5 a 640 128 a Fh(4.)41 +b(V)-7 b(erzeic)n(hnisse)27 b(und)h(Dateien)640 360 y +Fd(/proc/ioports)823 b(bekannte)40 b(und)i(definierte)d +(EA-Schnittstellen)640 460 y(/proc/kcore)911 b(Ger\344tedatei)38 +b(f\374r)43 b(den)f(Zugang)2035 559 y(zum)g(physikalischen)c +(Hauptspeicher)640 659 y(/proc/kmsg)955 b(hier)41 b(k\366nnen)g +(Systemfehlermeldu)o(ng)o(en)2035 758 y(ausgelesen)e(werden)640 +858 y(/proc/ksyms)911 b(Liste)41 b(der)h(Kernel-Symbole)c(und)2035 +958 y(ihrer)j(Speicheradressen)640 1057 y(/proc/loadavg)823 +b(durchschnittlic)o(he)37 b(Systembelastung)2035 1157 +y(in)42 b(den)h(letzten)d(1,)j(5)g(und)f(10)h(Min.)640 +1257 y(/proc/meminfo)823 b(Beschreibung)38 b(der)k(aktuellen)e +(Speicherauslastu)o(ng)640 1356 y(/proc/modules)823 b(Liste)41 +b(der)h(geladenen)e(Module)h(und)2035 1456 y(Anzahl)g(der)h(aktuellen)e +(Nutzungen)640 1556 y(/proc/mounts)867 b(Liste)41 b(der)h +(eingeh\344ngten)d(Dateisysteme)640 1655 y(/proc/net/)955 +b(Informationen)38 b(zur)k(Netzwerkauslastu)o(ng)640 +1755 y(/proc/pci)999 b(Liste)41 b(der)h(gefundenen)e(Ger\344te)h(am)h +(PCI-Bus)640 1854 y(/proc/scsi/)911 b(Informationen)38 +b(\374ber)k(SCSI-Ger\344te)640 1954 y(/proc/stat)955 +b(Liste)41 b(allgemeiner)e(Statistiken)g(zum)j(System)640 +2054 y(/proc/uptime)867 b(Sekunden)40 b(seit)i(dem)g(Systemstart)d(und) +2035 2153 y(der)j(Leerlaufzeit)640 2253 y(/proc/version)823 +b(aktuelle)40 b(Version)g(des)j(Linux-Kernels)640 2353 +y(/root/)1131 b(Heimatverzeichn)o(is)37 b(des)42 b(Systemverwalters)37 +b(root)640 2452 y(/sbin/)1131 b(Administrations)o(ko)o(mma)o(nd)o(os) +640 2552 y(/sbin/init)955 b(Nach)41 b(dem)i(Kernelstart)c(wird)j +(versucht)e(das)2035 2651 y(Programm)g(init)i(zu)g(starten)640 +2751 y(#/sbin/init.d/)779 b(->)42 b(/etc/init.d/)640 +2851 y(/tmp/)1175 b(tempor\344re)39 b(Dateien)640 2950 +y(/usr/)1175 b(ausf\374hrbare)38 b(Dateien,)j(Libraries,)e(X)k(Window)e +(u.s.w)640 3050 y(/usr/bin/)999 b(allgemein)39 b(verf\374gbare)h +(Programmdateien)640 3150 y(#/usr/doc/)955 b(->)42 b(/usr/share/doc/) +640 3249 y(/usr/games/)911 b(Spiele)41 b(:-\))640 3349 +y(/usr/include/)823 b(Headerdateien)38 b(f\374r)k(den)g(C-Compiler)640 +3448 y(/usr/include/g++)o(/)648 b(Headerdateien)38 b(f\374r)k(den)g +(C++-Compiler)640 3548 y(/usr/info/)955 b(Infosystem)39 +b(fur)j(GNU-Kommandos)640 3648 y(/usr/lib/)999 b(Programmbibliot)o(he)o +(ken)640 3747 y(/usr/lib/terminf)o(o/)604 b(Verzeichnis)38 +b(mit)43 b(Beschreibungen)2035 3847 y(f\374r)f(Terminaleigensch)o(af)o +(te)o(n)640 3947 y(/usr/local/)911 b(Ablage)41 b(von)h(Dateien)f(und)h +(Kommandos)e(die)i(nicht)2035 4046 y(zur)g(Distribution)c(geh\366ren) +640 4146 y(/usr/man/)999 b(Linux)41 b(Handbuch)640 4245 +y(/usr/sbin/)955 b(Superuser)39 b(Programmdateien)640 +4345 y(/usr/share/doc/)735 b(Dokumentationen)640 4445 +y(/usr/share/doc/p)o(ack)o(ag)o(es)o(/)343 b(Dokumentation)38 +b(der)k(Programme)640 4544 y(/usr/src/)999 b(Quellcode)39 +b(f\374r)k(den)f(Kernel)f(und)h(weitere)f(Programme)640 +4644 y(/usr/src/linux/)735 b(Kernel-Source)640 4744 y(/usr/src/linux/a) +o(rch)o(/)517 b(Hardwarearchite)o(kt)o(ur-)o(ab)o(h\344)o(ngi)o(ge)640 +5092 y Fk(46)p eop end +%%Page: 47 47 +TeXDict begin 47 46 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a 12 +-5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.47) cvn /DEST pdfmark end + 12 -5 a 2550 128 a Fh(4.1.)40 b(Dateibaum)1415 +360 y Fd(Bestandteile)e(des)k(Kerns)20 460 y(/usr/src/linux/a)o(rc)o +(h/a)o(lp)o(ha)o(/)256 b(DEC-Alpha-Proze)o(ss)o(or)o(en)20 +559 y(/usr/src/linux/a)o(rc)o(h/i)o(38)o(6/)299 b(386-Prozessoren)20 +659 y(/usr/src/linux/a)o(rc)o(h/m)o(68)o(k/)g(Motorola)40 +b(68k-Prozessoren)20 758 y(/usr/src/linux/a)o(rc)o(h/m)o(ip)o(s/)299 +b(MIPS-Prozessore)o(n)37 b(R3000,)k(R4000)h(bis)g(R10000)20 +858 y(/usr/src/linux/a)o(rc)o(h/p)o(pc)o(/)343 b(Power-PC-Prozes)o(so)o +(r)37 b(\(urspr\374nglich)i(IBM\))20 958 y(/usr/src/linux/a)o(rc)o(h/s) +o(pa)o(rc)o(/)256 b(SPARC-Prozessor)o(en)37 b(der)42 +b(Firma)g(SUN)20 1057 y(/usr/src/linux/D)o(oc)o(ume)o(nt)o(at)o(ion)o +(/d)o(evi)o(ce)o(s.)o(txt)342 b(offizielle)39 b(Liste)j(der)1415 +1157 y(registrierten)c(Devices)i(mit)i(ihren)g(Ger\344tenummern)20 +1257 y(/usr/src/linux/d)o(ri)o(ver)o(s/)386 b(Zeichen-,)39 +b(Block-orientiert)o(e,)1415 1356 y(Netz-,Soundkart)o(en)o(-G)o(er\344) +o(te)o(tr)o(eib)o(er)20 1456 y(/usr/src/linux/d)o(ri)o(ver)o(s/)o(bl)o +(ock)o(/)125 b(Treiber)40 b(f\374r)i(blockorientierte)37 +b(Ein-/Ausgabeger\344)o(te)1415 1556 y(wie)42 b(Festplatten)20 +1655 y(/usr/src/linux/d)o(ri)o(ver)o(s/)o(cd)o(rom)o(/)125 +b(Treiber)40 b(f\374r)i(CD-ROM)f(Laufwerke)1415 1755 +y(au\377er)g(Atapi/IDE)f(und)i(SCSI)20 1854 y(/usr/src/linux/d)o(ri)o +(ver)o(s/)o(ch)o(ar/)168 b(Zeichen.)40 b(Treiber)g(serielle)g +(Schnittstellen,)1415 1954 y(Bildschirm,)e(Tastatur)j(usw.)20 +2054 y(/usr/src/linux/d)o(ri)o(ver)o(s/)o(ne)o(t/)212 +b(Treiber)40 b(f\374r)i(die)h(Netzwerkkarten)20 2153 +y(/usr/src/linux/d)o(ri)o(ver)o(s/)o(pc)o(i/)212 b(Spezielle)39 +b(Treiber)i(f\374r)h(PCI-Bus-Baustein)o(e)20 2253 y(/usr/src/linux/d)o +(ri)o(ver)o(s/)o(so)o(und)o(/)125 b(Soundkartentrei)o(be)o(r)20 +2353 y(/usr/src/linux/d)o(ri)o(ver)o(s/)o(sc)o(si/)168 +b(SCSI-Treiber)20 2452 y(/usr/src/linux/f)o(s/)604 b(Dateisysteme)20 +2552 y(/usr/src/linux/i)o(pc)o(/)561 b(InterProzessKom)o(mu)o(ni)o(kat) +o(io)o(n,)1415 2651 y(z.B.)41 b(Shared)g(Memory,)g(Semaphoren)20 +2751 y(/usr/src/linux/i)o(nc)o(lud)o(e/)386 b(Header-Dateien)37 +b(mit)42 b(Struktur-)e(und)1415 2851 y(Konstantendefin)o(it)o(io)o(nen) +20 2950 y(/usr/src/linux/i)o(ni)o(t/)517 b(Initialisierung)o(sc)o(od)o +(e)38 b(beim)j(Starten)g(des)h(Systems)20 3050 y(/usr/src/linux/k)o(er) +o(nel)o(/)430 b(zentrale)40 b(Aufgaben,)f(z.B.)j(Prozessverwaltung)37 +b(und)1415 3150 y(Schedulimg)i(usw.)20 3249 y(/usr/src/linux/m)o(m/)604 +b(Speicherverwalt)o(un)o(g)20 3349 y(/usr/src/linux/m)o(od)o(ule)o(s/) +386 b(nachladbarer)38 b(Teil)k(des)g(Kerns)20 3448 y(/usr/src/linux/n)o +(et)o(/)561 b(Implementierung)37 b(der)42 b(Protokolltreiber)1415 +3548 y(f\374r)g(TCP/IP,SPX/IPX)37 b(usw.)20 3648 y(/usr/src/linux/R)o +(EA)o(DME)473 b(Installationsbe)o(sc)o(hr)o(eib)o(un)o(g)37 +b(f\374r)43 b(den)f(Kernel)20 3747 y(/usr/X11R6/)911 +b(f\374r)42 b(Daten)f(zum)i(X-Window-System)20 3847 y(/usr/X11R6/bin/) +735 b(Programmdateien)37 b(die)42 b(mit)g(X-Window-System)c(arbeiten)20 +3947 y(/usr/X11R6/lib/X)o(11)o(/)561 b(Fenstermanager)20 +4046 y(/usr/X11R6/lib/X)o(11)o(/ap)o(p-)o(de)o(fau)o(lt)o(s/)342 +b(voreingestellte)37 b(Konfigurationen)h(der)1415 4146 +y(Anwendungen)20 4245 y(/var/)1175 b(sich)41 b(schnell)g(oder)h +(h\344ufig)f(\344ndernde)f(Daten)20 4345 y(/var/adm/inst-lo)o(g/)604 +b(Protokolldateie)o(n)37 b(zur)43 b(installation)20 4445 +y(/var/lib/rpm/Pac)o(ka)o(ges)473 b(rpm-Datenbank)20 +4544 y(/var/lib/rpm/pac)o(ka)o(ges)o(.r)o(pm)299 b(->)42 +b(/var/lib/rpm/Pac)o(kag)o(es)20 4644 y(/var/log/)999 +b(Protokolldateie)o(n)20 4744 y(/var/log/boot.ms)o(g)648 +b(Kernelmeldungen)37 b(vom)42 b(letzten)f(Start)3037 +5092 y Fk(47)p eop end +%%Page: 48 48 +TeXDict begin 48 47 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 a +632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.48) cvn /DEST pdfmark end + 632 -5 a 640 128 a Fh(4.)41 +b(V)-7 b(erzeic)n(hnisse)27 b(und)h(Dateien)640 360 y +Fd(/var/log/message)o(s)648 b(Datei)41 b(in)i(der)f(die)g(Kernel)f +(Meldungen)2035 460 y(gespeichert)d(werden)640 559 y(/var/log/syslog) +735 b(zeit)41 b(an)i(welches)e(Modul)g(fehlt)640 659 +y(/var/tmp/)999 b(f\374r)42 b(gro\377e)f(tempor\344re)f(Dateien)640 +758 y(/vmlinuz)1043 b(der)42 b(Defaultkernel)c(kann)k(auch)g(in)g +(/boot/)f(liegen)640 949 y +SDict begin H.S end + 640 949 a 640 949 a +SDict begin 12 H.A end + 640 949 +a 640 949 a +SDict begin [/View [/XYZ H.V]/Dest (section.4.2) cvn /DEST pdfmark +end + 640 949 a 142 x Fe(4.2.)68 b(/etc/fstab)640 +1293 y Fd(#Device)128 b(Mountpunkt)39 b(Typ)260 b(Optionen)1261 +b(Dump)42 b(Check)640 1393 y(/dev/hdd1)e(/)435 b(reiserfs)40 +b(defaults)1261 b(1)174 b(1)640 1492 y(/dev/hda1)40 b(/boot)259 +b(ext2)216 b(defaults)1261 b(1)174 b(2)640 1592 y(/dev/sda1)40 +b(swap)303 b(swap)216 b(defaults)1261 b(0)174 b(0)640 +1691 y(none)260 b(/proc)f(proc)216 b(defaults)1261 b(0)174 +b(0)640 1791 y(/dev/hda3)40 b(/temp)259 b(vfat)216 b(defaults,umask=70) +o(00)o(,ui)o(d=)o(50)o(0,g)o(id)o(=1)o(00)81 b(0)174 +b(0)640 1891 y(/dev/hda2)40 b(/windows)127 b(vfat)216 +b(defaults)1261 b(0)174 b(0)640 1990 y(/dev/hdc)84 b(/cdrom)215 +b(auto)h(ro,noauto,user,ex)o(ec)778 b(0)174 b(0)640 2090 +y(/dev/fd0)84 b(/floppy)171 b(auto)216 b(noauto,user)1129 +b(0)174 b(0)640 2190 y(/dev/hda3)40 b(/save)259 b(reiserfs)40 +b(loop,encryption=t)o(wo)o(fis)o(h,)o(no)o(aut)o(o,)o(us)o(ers)d(0)174 +b(0)640 2289 y(server:/)84 b(/server)171 b(nfs)260 b(rw,noauto,user,ex) +o(ec)778 b(0)174 b(0)640 2473 y +SDict begin H.S end + 640 2473 a 640 2473 a +SDict begin 12 H.A end + +640 2473 a 640 2473 a +SDict begin [/View [/XYZ H.V]/Dest (section.4.3) cvn /DEST pdfmark +end + 640 2473 a 149 x Fe(4.3.)68 b(/dev/)640 +2824 y Fd(ls)43 b(-l)g(/dev/fd0)640 2923 y(brw-rw-rw-)c(1)44 +b(root)e(disk)216 b(2,)130 b(0)43 b(Feb)f(16)h(16:30)e(/dev/fd0)640 +3023 y(|)1133 b(|)174 b(|)827 b(+-----)41 b(Ger\344t)640 +3123 y(|)1133 b(|)174 b(+------)40 b(Minor-Device-Num)o(mer)o(\(N)o(eb) +o(enn)o(um)o(me)o(r\))640 3222 y(|)1133 b(+-----------)38 +b(Major-Device-Num)o(mer)o(\(H)o(au)o(ptn)o(um)o(me)o(r\))640 +3322 y(+---------------)o(--)f(b-blockorientier)o(te)g(Ger\344te)k +(c-zeichenorienti)o(er)o(te)c(Ger\344te)723 3548 y Fk(Die)23 +b(V)-7 b(erbindung)21 b(zum)i(Kernel)e(wird)g(\374b)r(er)h(Slots)g(o)r +(der)f(Kan\344le)g(hergestellt,)g(die)h(n)n(ummeriert)640 +3648 y(sind)g(und)h(hin)n(ter)f(denen)h(sic)n(h)e(die)i(T)-7 +b(reib)r(er)21 b(v)n(erb)r(ergen.)g(Die)i(Nummer)f(des)g +(Ger\344tetreib)r(ers)f(wird)640 3747 y(als)26 b(Haupger\344ten)n +(ummer\(Ma)5 b(jor)24 b(Device)j(Num)n(b)r(er\))g(b)r(ezeic)n(hnet.)g +(Ein)g(T)-7 b(reib)r(er)26 b(k)-5 b(ann)27 b(mehrere)640 +3847 y(Ger\344te)i(des)g(gleic)n(hen)f(T)n(yps)h(v)n(erw)n(alten.)f(Um) +i(die)f(einzelnen)g(Ger\344te)g(zu)g(un)n(tersc)n(heiden,)g(wird)640 +3947 y(dem)e(T)-7 b(reib)r(er)26 b(eine)h(zw)n(eite)g(Zahl,)f(die)h(Un) +n(terger\344ten)n(ummer)e(\(Minor)h(Device)h(Num)n(b)r(er\),)g(\374b)r +(er-)640 4046 y(geb)r(en.)22 b(Diese)h(b)r(eiden)f(Zahlen)g(c)n +(harakterisieren)d(jede)k(Datei)f(im)g(/dev)g(V)-7 b(erzeic)n(hnis.)21 +b(Zus\344tzlic)n(h)640 4146 y(w)n(erden)27 b(no)r(c)n(h)g(zw)n(ei)g +(Arten)h(v)n(on)f(Ger\344ten)g(un)n(tersc)n(hieden)g(:)640 +4245 y(Die)22 b(blo)r(c)n(k)n(orien)n(tierten)e(Ger\344te)h(mit)h +(direktem)g(Zugri\033,)f(wie)g(z.B.)h(Disk)n(etten)g(o)r(der)f(F)-7 +b(estplatten,)640 4345 y(und)28 b(die)g(zeic)n(henorien)n(tierten)e +(squen)n(tiellen)h(Ger\344te,)g(wie)h(Druc)n(k)n(er,)e(T)-7 +b(erminal)27 b(o)r(der)g(Maus.)640 4445 y(Damit)32 b(hat)f(jede)h +(Ger\344tedatei)e(drei)h(\020K)n(o)r(ordinaten\020,)e(mit)i(der)g(sie)g +(v)n(om)g(Kernel,)f(unabh\344ngig)640 4544 y(v)n(on)37 +b(ihrem)h(Namen,)g(eindeutig)h(iden)n(ti\034ziert)f(w)n(erden)f(k)-5 +b(ann.)38 b(Die)h(o\036zielle)e(Liste)h(der)g(regi-)640 +4644 y(strierten)e(Devices)g(mit)i(ihren)e(Ger\344ten)n(ummern)g(ist)g +(b)r(ei)h(den)g(Kernelsourcen)d(in)j(der)f(Datei)640 +4744 y(/usr/src/lin)n(ux/Do)r(cumen)n(tation/devices.txt)23 +b(zu)28 b(\034nden.)640 5092 y(48)p eop end +%%Page: 49 49 +TeXDict begin 49 48 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a 12 +-5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.49) cvn /DEST pdfmark end + 12 -5 a 1847 128 a Fh(4.4.)40 b(Dateisystem)n(t)n +(yp)r(en)28 b(un)n(ter)f(Lin)n(ux)20 277 y +SDict begin H.S end + 20 277 a 20 +277 a +SDict begin 12 H.A end + 20 277 a 20 277 a +SDict begin [/View [/XYZ H.V]/Dest (section.4.4) cvn /DEST pdfmark +end + 20 277 a 85 x Fe(4.4.)68 b(Dateisystemt)l(yp)t +(en)43 b(unter)h(Linux)20 555 y Fd(affs)173 b(Ein)42 +b(auf)g(dem)h(Amiga)e(verwendetes)e(Dateisystem)g(\(engl.)i(Amiga)g +(Fast)h(Filesystem\).)20 655 y(ext2)173 b(Das)42 b(Standard-Dateisy)o +(st)o(em)37 b(unter)42 b(Linux)f(\(engl.)g(Second)g(extended)f +(Filesystem\).)20 755 y(ext3)173 b(Journaling)39 b(Filesystem)20 +854 y(hpfs)173 b(Standard-Dateis)o(ys)o(tem)37 b(von)42 +b(IBM)g(OS/2)g(\(engl.)f(High)h(Performance)d(Filesystem\).)369 +954 y(Dieses)i(wird)h(von)g(Linux)f(nur)i(mit)f(Lesezugriff)d +(unterst\374zt.)20 1054 y(iso9660)i(Standard-Dateis)o(ys)o(tem)c(auf)42 +b(CD-ROMs.)20 1153 y(minix)129 b(Dieses)41 b(Dateisystem)e(hat)j +(seinen)f(Ursprung)f(in)j(akademischen)38 b(Lehrprojekten)369 +1253 y(\374ber)k(Betriebssysteme)37 b(und)42 b(war)g(das)h(erste)e +(Dateisystem,)e(welches)h(f\374r)j(Linux)369 1352 y(verwendet)c(wurde.) +i(Heute)h(wird)g(es)h(unter)e(Linux)g(vornehmlich)e(als)k(Dateisystem) +369 1452 y(f\374r)f(Disketten)e(verwendet.)20 1552 y(msdos)129 +b(Urspr\374nglich)38 b(von)k(DOS)h(verwendetes)c(Dateisystem,)f +(welches)j(aber)h(bis)g(heute)f(von)369 1651 y(diversen)f +(Betriebssystemen)d(genutzt)j(wird.)20 1751 y(ncpfs)129 +b(Dateisystem)39 b(f\374r)j(das)g(Novell-Volumes.)20 +1851 y(nfs)217 b(Hier)42 b(sind)f(die)i(Daten)e(auf)i(der)f(Festplatte) +d(eines)j(anderen)e(Rechners)g(und)369 1950 y(werden)h(\374ber)h(das)g +(Netzwerk)e(zug\344nglich)f(gemacht)i(\(engl.)g(Network)g +(Filesystem\).)20 2050 y(proc)173 b(Prozess-Dateisy)o(st)o(em)37 +b(\(virtuell\).)20 2149 y(reiserfs)345 b(Das)43 b(ReiserFS)d(ist)i(ein) +g(hochperformantes)37 b("'Journaling)i(Filesystem"';)717 +2249 y(seit)j(SuSE)g(Linux)g(6.4)g(auf)g(x86-Architekture)o(n)37 +b(verf\374gbar.)20 2349 y(smbfs)129 b(SMB)42 b(\(engl.)f(Server)g +(Message)g(Block\))g(ist)h(ein)g(Protokoll,)e(das)i(von)g(WfW,)369 +2448 y(Windoofs)e(NT)j(und)f(LAN)g(Manager)f(verwendet)f(wird,)h(um)i +(Dateien)d(\374ber)i(ein)h(Netzwerk)369 2548 y(verf\374gbar)c(zu)k +(machen.)20 2648 y(sysv)173 b(Von)42 b(SCO-Unix,)e(Xenix)h(und)i +(Coherent)d(\(kommerzielle)e(UNIX-Systeme)g(f\374r)43 +b(PCs\))369 2747 y(verwendetes)c(Dateisystem.)20 2847 +y(ufs)217 b(Von)42 b(BSD,)g(SunOS)f(und)i(NeXTstep)d(verwendetes)f +(Dateisystem;)f(dies)k(Dateisystem)369 2946 y(wird)g(von)g(Linux)f(nur) +i(mit)f(Lesezugriff)d(unterst\374tzt.)20 3046 y(umsdos)85 +b(Setzt)41 b(auf)h(einem)g(gew\366hnlichen)c(fat-Dateisystem)g(auf)k +(\(engl.)f(UNIX)h(on)h(MSDOS\))369 3146 y(und)f(erreicht)e(durch)i +(Anlegen)e(spezieller)g(Dateien)g(die)i(notwendige)e(UNIX-)369 +3245 y(Funktionalit\344t)d(\(Rechte,)k(Links,)g(lange)g(Dateinamen\);)d +(es)43 b(ist)g(jedoch)e(sehr)369 3345 y(langsamm.)20 +3445 y(vfat)173 b(Erweiterung)39 b(des)j(fat-Dateisystems)37 +b(hinsichtlich)h(der)k(L\344nge)g(der)g(Dateinamen)369 +3544 y(\(engl.)f(Virtual)f(FAT\).)20 3644 y(ntfs)173 +b(Windows)40 b(NT-Dateisystem.)20 3815 y +SDict begin H.S end + 20 3815 a 20 +3815 a +SDict begin 12 H.A end + 20 3815 a 20 3815 a +SDict begin [/View [/XYZ H.V]/Dest (section.4.5) cvn /DEST pdfmark +end + 20 3815 a 137 x Fe(4.5.)68 +b(/etc/group)20 4146 y Fd(#Gruppenname:Pa\377)o(wo)o(rt:)o(Gr)o(up)o +(pen)o(nu)o(mme)o(r:)o(Mi)o(tgl)o(ie)o(de)o(rli)o(st)o(e)20 +4245 y(root:x:0:root)20 4345 y(bin:x:1:root,bin)o(,d)o(aem)o(on)20 +4445 y(daemon:x:2:)20 4544 y(sys:x:3:)20 4644 y(tty:x:5:)20 +4744 y(disk:x:6:higi)3037 5092 y Fk(49)p eop end +%%Page: 50 50 +TeXDict begin 50 49 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 a +632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.50) cvn /DEST pdfmark end + 632 -5 a 640 128 a Fh(4.)41 +b(V)-7 b(erzeic)n(hnisse)27 b(und)h(Dateien)640 360 y +Fd(lp:x:7:)640 460 y(shadow:x:15:root)o(,gd)o(m)640 559 +y(audio:x:17:root,)o(hig)o(i)640 659 y(public:x:32:)640 +758 y(video:x:33:higi)640 858 y(game:x:40:higi)640 958 +y(modem:x:43:)640 1057 y(users:x:100:)640 1157 y(nogroup:x:65534:)o +(roo)o(t)640 1317 y +SDict begin H.S end + 640 1317 a 640 1317 a +SDict begin 12 H.A end + 640 1317 a +640 1317 a +SDict begin [/View [/XYZ H.V]/Dest (section.4.6) cvn /DEST pdfmark +end + 640 1317 a 134 x Fe(4.6.)68 b(/etc/hosts)640 +1640 y Fd(#)43 b(IP-Adresse)d(#Aliasnamen)640 1740 y(127.0.0.1)83 +b(localhost)640 1839 y(127.0.1.1)g(latex)640 1939 y(::1)347 +b(localhost)40 b(ip6-localhost)e(ip6-loopback)640 2039 +y(ff02::1)171 b(ip6-allnodes)640 2138 y(ff02::2)g(ip6-allrouters)640 +2338 y(192.168.0.10)39 b(rechner)h(rechner.loc)f(www.rechner.loc)640 +2479 y +SDict begin H.S end + 640 2479 a 640 2479 a +SDict begin 12 H.A end + 640 2479 a 640 2479 a +SDict begin [/View [/XYZ H.V]/Dest (section.4.7) cvn /DEST pdfmark +end + 640 +2479 a 153 x Fe(4.7.)68 b(/etc/inittab)640 2821 y Fk(Nac)n(h)39 +b(dem)g(Kernelstart)f(wird)h(v)n(ersuc)n(h)n(t)e(das)i(Programm)e(init) +j(zu)f(starten.)g(Dab)r(ei)g(w)n(erden)640 2920 y(nac)n(heinander)23 +b(die)i(V)-7 b(erzeic)n(hnisse)23 b(/etc/,)g(/bin/)h(und)h(/sbin/)f +(nac)n(h)f(init)i(abgesuc)n(h)n(t.)e(Kann)h(init)640 +3020 y(/dev/console)19 b(nic)n(h)n(t)j(\366\033nen)g(wird)f(im)h +(Einzelb)r(en)n(utzerb)r(etrieb)h(\(Single)e(User)h(Mo)r(de\))g +(gestartet.)640 3120 y(Beim)39 b(LILO-Bo)r(otprom)n(t)e(k)-5 +b(ann)38 b(init=/bin/sh)h(angegeb)r(en)e(w)n(erden)i(um)g(die)g(Shell)g +(anstelle)640 3219 y(v)n(on)g(init)g(zu)h(laden.)f(Das)g(Programm)e +(init)j(liest)f(die)h(Datei)f(/etc/inittab)g(und)g(wird)g(durc)n(h)640 +3319 y(die)33 b(Datei)f(das)g(System)h(k)n(on\034gurieren.)d +(/etc/inittab)i(wird)h(v)n(om)e(K)n(ommando)g(init)i(Zeile)g(f\374r)640 +3418 y(Zeile)g(abgearb)r(eitet.)e(In)i(jeder)g(Zeile)g(seh)n(t)f(jew)n +(eils)h(eine)g(An)n(w)n(eisung.)f(Jede)g(Zeile)h(wird)f(durc)n(h)640 +3518 y(Dopp)r(elpunkte)d(un)n(terteilt.)e(Der)h(Aufbau)g(sieh)n(t)f +(wie)h(folgt)f(aus:)640 3719 y Fd(Terminal:Termcap)o(ein)o(tr)o(ag)o +(:Ge)o(tt)o(yk)o(omm)o(an)o(do)124 b(Simpleinit)40 b(von)i(Peter)f +(Orbaek)g(mit)2383 3819 y(Erweiterung)e(von)j(Werner)f(Almesberger)640 +3970 y +SDict begin H.S end + 640 3970 a 640 3970 a +SDict begin 12 H.A end + 640 3970 a 640 3970 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.4.7.1) cvn /DEST pdfmark +end + 640 +3970 a 101 x Fi(4.7.1.)57 b(T)-9 b(erminal)640 4232 y +Fk(Bezeic)n(hnet)27 b(das)g(T)-7 b(erminal)27 b(\(tt)n(y1,)h(tt)n(y2,)f +(tt)n(yS0)h(...\))640 4385 y +SDict begin H.S end + 640 4385 a 640 4385 a +SDict begin 12 H.A end + 640 +4385 a 640 4385 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.4.7.2) cvn /DEST pdfmark +end + 640 4385 a 99 x Fi(4.7.2.)57 b(T)-9 +b(ermcap)s(eintrag)640 4644 y Fk(Wird)26 b(in)f(die)h(TERM)g(V)-7 +b(ariable)25 b(der)g(Shell)h(gesc)n(hrieb)r(en)e(und)i(sollte)f(mit)h +(einem)g(Ein)n(trag)e(in)i(der)640 4744 y(Datei)i(/etc/termcap)e(\374b) +r(ereinstimmen.)640 5092 y(50)p eop end +%%Page: 51 51 +TeXDict begin 51 50 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a 12 +-5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.51) cvn /DEST pdfmark end + 12 -5 a 2516 128 a Fh(4.7.)41 b(/etc/inittab)20 +277 y +SDict begin H.S end + 20 277 a 20 277 a +SDict begin 12 H.A end + 20 277 a 20 277 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.4.7.3) cvn /DEST pdfmark +end + 20 277 a 83 +x Fi(4.7.3.)57 b(Gett)m(yk)m(ommando)20 513 y Fk(Pfad)28 +b(und)g(Optionen)f(zum)h(Gett)n(y-K)n(ommando)103 613 +y(#)19 b(Beispiel)f(einer)g(inittab)g(f\374r)h(simpleinit)g(#)f(F)-7 +b(ormat:)18 b(T)-7 b(erminal:T)g(ermcap)r(ein)n(trag:Gett)n(yk)n +(ommando)20 712 y(tt)n(y1:lin)n(ux:/sbin/gett)n(y)17 +b(9600)f(tt)n(y1)i(tt)n(y2:console:/sbin/gett)n(y)d(9600)i(tt)n(y2)h +(tt)n(y5:con100x40:/sbin/gett)n(y)20 812 y(9600)26 b(tt)n(y5)h(tt)n +(yS1:vt102:/sbin/gett)n(y)d(9600)i(tt)n(yS1)20 985 y +Fd(K\374rzel:Arbeitsst)o(uf)o(en:)o(Mo)o(du)o(s:K)o(om)o(man)o(do)211 +b(Sysvinit)40 b(von)j(Mike)e(Jagdis)h(und)1763 1084 y(Miquel)f(van)h +(Smoorenburg)20 1217 y +SDict begin H.S end + 20 1217 a 20 1217 a +SDict begin 12 H.A end + 20 1217 a +20 1217 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.4.7.4) cvn /DEST pdfmark +end + 20 1217 a 98 x Fi(4.7.4.)57 b(K\374rzel)20 +1468 y Fk(Jede)36 b(Aktion)g(m)n(u\377)g(mit)h(einem)f(eindeutigen)g +(\(maximal)g(vierstelligen,)f(a.out)h(o)r(der)f(Librari-)20 +1568 y(es<5.2.18)18 b(maximal)i(zw)n(eistelligen\))g(K\374rzel)f(v)n +(ersehen)h(w)n(erden,)f(das)h(b)r(ei)h(Ein)n(tr\344gen)f(in)h +(Log\034les)20 1667 y(und)28 b(b)r(ei)g(F)-7 b(ehlermeldungen)27 +b(ausgegeb)r(en)g(wird.)20 1798 y +SDict begin H.S end + 20 1798 a 20 1798 a +SDict begin 12 H.A end + +20 1798 a 20 1798 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.4.7.5) cvn /DEST pdfmark +end + 20 1798 a 100 x Fi(4.7.5.)57 b(Arb)s(eitsstufen)20 +2051 y Fk(Es)27 b(w)n(erden)f(hier)g(die)h(Arb)r(eitsstufen)h(\(Runlev) +n(el\))f(eingetragen.)e(Zul\344ssige)g(Arb)r(eitsstufen)i(sind)20 +2151 y(0)36 b(-)h(9)f(und)h(s.)g(Es)g(k)n(\366nnen)f(auc)n(h)g(die)h +(Pseudoarb)r(eitsstufen\(ondemand\))g(a,)f(b,)h(c)g(und)g(q)f(f\374r)20 +2251 y(einmalig)21 b(auszuf\374hrende)h(K)n(ommandos)e(v)n(erw)n(endet) +g(w)n(erden.)h(Es)h(wird)g(ohne)f(Gro\377)g(und)h(Klein-)20 +2350 y(sc)n(hreibung)33 b(b)r(ezeic)n(hnet.)h(In)g(einer)g(Zeile)f(k)n +(\366nnen)h(bis)g(zu)g(11)f(Runlev)n(el)g(zugeordnet)g(w)n(erden.)20 +2450 y(W)-7 b(enn)37 b(das)g(F)-7 b(eld)37 b(f\374r)g(den)f(Runlev)n +(el)h(leer)f(ist,)h(wird)g(die)f(Aktion)h(b)r(ei)g(jedem)h(Mo)r(dusw)n +(ec)n(hsel)20 2549 y(ausgef\374hrt.)20 2707 y Fd(0)305 +b(Systemhalt)20 2807 y(S)g(Einzelbenutzerb)o(et)o(rie)o(b)37 +b(\(Single)k(User)h(Mode\))20 2907 y(1)305 b(Einzelbenutzerb)o(et)o +(rie)o(b)37 b(\(Single)k(User)h(Mode\))20 3006 y(2)305 +b(Lokaler)40 b(Mehrbenutzerbetri)o(eb)d(ohne)42 b(entferntes)d +(Netzwerk)369 3106 y(\(Local)i(multiuser)e(without)i(remote)g +(network\))20 3205 y(3)305 b(Voller)41 b(Mehrbenutzerbet)o(rie)o(b)c +(mit)43 b(Netzwerk)369 3305 y(\(Full)e(multiuser)f(with)i(network\))20 +3405 y(4)305 b(Frei)42 b(\(Not)f(used\))20 3504 y(5)305 +b(Voller)41 b(Mehrbenutzerbet)o(rie)o(b)c(mit)43 b(Netzwerk)d(und)i +(KDM,)g(GDM)g(oder)g(XDM)369 3604 y(\(Full)f(multiuser)f(with)i +(network)e(and)j(xdm\))20 3704 y(6)305 b(Systemneustart)37 +b(\(System)k(reboot\))20 3803 y(Q)305 b(Quit)42 b(zum)g(Neueinlesen)d +(der)j(inittab)20 3929 y +SDict begin H.S end + 20 3929 a 20 3929 a +SDict begin 12 H.A end + 20 3929 +a 20 3929 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.4.7.6) cvn /DEST pdfmark +end + 20 3929 a 105 x Fi(4.7.6.)57 b(Mo)s(dus)20 +4187 y Fk(Gibt)28 b(an)g(wie)f(das)g(K)n(ommando)f(im)i(letzten)g(F)-7 +b(eld)28 b(ausgef\374hrt)f(w)n(erden)g(soll.)20 4345 +y Fd(initdefault)213 b(Bestimmt)40 b(den)j(Runlevel)d(beim)i +(Systemstart.)20 4445 y(sysinit)389 b(Wird)42 b(einmal)f(nach)h(dem)g +(Kernelstart)d(ausgef\374hrt.)20 4544 y(bootwait)345 +b(Wird)42 b(einmal)f(ausgef\374rt,)f(wenn)h(in)i(einem)f +(Mehrbenutzerbet)o(ri)o(eb)717 4644 y(gestartet)e(wird)i(und)g(wartet)f +(bis)i(das)f(Kommando)e(beendet)h(ist.)20 4744 y(boot)521 +b(Wie)43 b(bootwait)d(nur)i(das)g(nicht)g(gewartet)e(wird.)3037 +5092 y Fk(51)p eop end +%%Page: 52 52 +TeXDict begin 52 51 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 a +632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.52) cvn /DEST pdfmark end + 632 -5 a 640 128 a Fh(4.)41 +b(V)-7 b(erzeic)n(hnisse)27 b(und)h(Dateien)640 360 y +Fd(respawn)389 b(\334berwacht)40 b(das)i(laufende)f(Kommando)f(und)i +(startet)f(es)h(neu,)g(wenn)g(es)1337 460 y(beendet)f(wurde.)g(Wird)h +(es)h(in)f(zwei)g(Minuten)f(10)i(mal)f(neu)g(gestartet,)1337 +559 y(setzt)g(init)g(das)g(Kommando)e(f\374r)i(f\374nf)g(Minuten)f +(aus.)640 659 y(ondemand)345 b(Wie)43 b(respawn,)d(um)j(mit)f +(Buchstaben)d(gekennzeichnete)e(Level)42 b(einzelne)1337 +758 y(Kommandos)e(mit)i(telinit)f(zu)i(starten.)640 858 +y(wait)521 b(Wartet)41 b(bis)i(das)f(Kommando)e(beendet)h(ist.)640 +958 y(once)521 b(Wird)42 b(einmal)f(ausgef\374rt,)f(es)i(wird)g(nicht)g +(gewartet.)640 1057 y(off)565 b(Wenn)42 b(das)h(Kommando)d(l\344uft,)h +(wird)h(es)g(angehalten.)640 1157 y(ctrlaltdel)257 b(Kommando)41 +b(\(Signal)f(SIGINT,)h([Strg]+[Alt]+[E)o(ntf)o(]\))c(z.B.)42 +b(Rebooten)e(des)1337 1257 y(Systems.)640 1356 y(kbrequest)301 +b(Kommando)41 b(wird)g(ausgef\374hrt,)e(wenn)j(das)h(Signal)e(SIGWINCH) +1337 1456 y([Alt]+[Pfeil)e(hoch])i(von)i(der)f(Tastatur)e(kommt.)640 +1556 y(powerwait)301 b(Wenn)42 b(init)g(sich)g(in)h(einem)e(passenden)f +(Runlevel)g(befindet,)g(das)1337 1655 y(Signal)h(SIGPWR)g(erh\344lt)g +(oder)h(\374ber)g(Pipeline)e(/dev/initctrl)e(den)1337 +1755 y(entsprechenden)g(Befehl)j(erh\344lt)g(und)h(wartet)f(auf)i +(Beendigung)c(des)1337 1854 y(Kommandows.)g(Das)k(Signal)e(kann)g(mit)i +(Hilfe)e(eines)h(D\344mons)f(von)h(einer)g(USV)1337 1954 +y(erzeugt)f(werden.)640 2054 y(powerfail)301 b(Wie)43 +b(powerwait)c(wartet)i(jedoch)g(nicht.)640 2153 y(powerfailnow)169 +b(Wie)43 b(powerwait)c(es)k(mu\377)f(die)h(Datei)e(/etc/powerstatus)c +(zus\344tzlich)i(das)1337 2253 y(Wort)j(Low)h(enthalten.)c(So)k(kann)e +(das)i(APM)f(eines)g(Notebooks)d(mit)k(Hilfe)1337 2353 +y(eines)f(D\344mons)f(das)h(System)f(herrunterfahren.)640 +2452 y(powerokwait)213 b(Wie)43 b(powerwait)c(es)k(mu\377)f(die)h +(Datei)e(/etc/powerstatus)c(zus\344tzlich)i(das)1337 +2552 y(Wort)j(OK)h(enthalten.)c(Auf)k(diese)e(weise)h(kann)f(das)i +(System)e(in)h(den)1337 2651 y(normalen)f(Zustand)f(gebracht)g(werden,) +h(nachdem)g(die)h(Stromversorgung)1337 2751 y(wieder)f(hergestellt)e +(ist.)640 2896 y +SDict begin H.S end + 640 2896 a 640 2896 a +SDict begin 12 H.A end + 640 2896 a 640 +2896 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.4.7.7) cvn /DEST pdfmark +end + 640 2896 a 100 x Fi(4.7.7.)57 b(K)m(ommando)640 +3154 y Fk(Pfad)24 b(und)g(Optionen)f(zum)g(K)n(ommando,)f(wird)h(durc)n +(h)g(die)g(Bourne-Again-Shell)f(abgearb)r(eitet.)640 +3254 y(Bei)33 b(jedem)h(K)n(ommandostart)d(wird)h(v)n(ersuc)n(h)n(t)g +(die)h(Datei)h(/etc/initscript)e(abzuarb)r(eiten,)g(die)640 +3353 y(dann)c(das)f(K)n(ommando)f(startet.)640 3548 y +Fd(#)43 b(Beispiel)d(einer)i(inittab)f(f\374r)h(sysvinit)640 +3648 y(#)h(Format:)e(K\374rzel:Arbeitsst)o(uf)o(en)o(:Mo)o(du)o(s:)o +(Kom)o(ma)o(nd)o(o)640 3847 y(#)i(Bestimmt)d(den)j(Runlevel)d(beim)i +(Systemstart)640 3947 y(id:5:initdefault)o(:)640 4146 +y(#)h(Erstes)e(Script,)g(wenn)h(nicht)f(im)i(Notfallsystem)38 +b(\(-b\))k(gestartet)e(wird.)640 4245 y(si::bootwait:/et)o(c/i)o(ni)o +(t.)o(d/b)o(oo)o(t)640 4445 y(#)j(/etc/init.d/rc)38 b(\374bernimmt)i +(die)i(Runlevel)e(Behandlung)640 4544 y(l0:0:wait:/etc/i)o(nit)o(.d)o +(/r)o(c)e(0)640 4644 y(l1:1:wait:/etc/i)o(nit)o(.d)o(/r)o(c)g(1)640 +4744 y(l2:2:wait:/etc/i)o(nit)o(.d)o(/r)o(c)g(2)640 5092 +y Fk(52)p eop end +%%Page: 53 53 +TeXDict begin 53 52 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a 12 +-5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.53) cvn /DEST pdfmark end + 12 -5 a 2502 128 a Fh(4.8.)40 b(/etc/passwd)20 +360 y Fd(l3:3:wait:/etc/i)o(ni)o(t.d)o(/r)o(c)d(3)20 +460 y(#l4:4:wait:/etc/)o(in)o(it.)o(d/)o(rc)g(4)20 559 +y(l5:5:wait:/etc/i)o(ni)o(t.d)o(/r)o(c)g(5)20 659 y(l6:6:wait:/etc/i)o +(ni)o(t.d)o(/r)o(c)g(6)20 858 y(#)43 b(Bestimmt)d(den)j +(Einzelbenutzerb)o(etr)o(ie)o(b)37 b(\(Single)k(User)h(Mode\))20 +958 y(ls:S:wait:/etc/i)o(ni)o(t.d)o(/r)o(c)37 b(S)20 +1057 y(~~:S:respawn:/sb)o(in)o(/su)o(lo)o(gi)o(n)20 1257 +y(#)43 b(Aktion)e(bei)i(Signal)e(SIGINT,)f([Strg]+[Alt]+[En)o(tf])20 +1356 y(ca::ctrlaltdel:/)o(sb)o(in/)o(sh)o(ut)o(dow)o(n)d(-r)43 +b(-t)g(4)g(now)20 1556 y(#)g(Aktion)e(bei)i(Signal)e(SIGWINCH)f +([Alt]+[Pfeil)e(hoch])20 1655 y(kb::kbrequest:/b)o(in)o(/ec)o(ho)f +("'Keyboard)i(Request)i(--)i(edit)e(/etc/inittab)e(to)k(let)f(this)g +(work."')20 1854 y(#)h(Aktion)e(bei)i(Stormausfall)38 +b(und)k(Wiederherstellung)20 1954 y(pf::powerwait:/e)o(tc)o(/in)o(it)o +(.d)o(/po)o(we)o(rfa)o(il)37 b(start)20 2054 y(pn::powerfailnow)o(:/)o +(etc)o(/i)o(ni)o(t.d)o(/p)o(owe)o(rf)o(ai)o(l)h(now)20 +2153 y(#pn::powerfail:/)o(et)o(c/i)o(ni)o(t.)o(d/p)o(ow)o(erf)o(ai)o(l) +f(now)20 2253 y(po::powerokwait:)o(/e)o(tc/)o(in)o(it)o(.d/)o(po)o(wer) +o(fa)o(il)g(stop)20 2452 y(#)43 b(getty-Programme)37 +b(f\374r)43 b(die)f(normalen)e(Runlevels)20 2552 y(1:2345:respawn:/)o +(sb)o(in/)o(mi)o(ng)o(ett)o(y)d(--noclear)j(tty1)20 2651 +y(2:2345:respawn:/)o(sb)o(in/)o(mi)o(ng)o(ett)o(y)d(tty2)20 +2751 y(3:2345:respawn:/)o(sb)o(in/)o(mi)o(ng)o(ett)o(y)g(tty3)20 +2851 y(4:2345:respawn:/)o(sb)o(in/)o(mi)o(ng)o(ett)o(y)g(tty4)20 +2950 y(5:2345:respawn:/)o(sb)o(in/)o(mi)o(ng)o(ett)o(y)g(tty5)20 +3050 y(6:2345:respawn:/)o(sb)o(in/)o(mi)o(ng)o(ett)o(y)g(tty6)20 +3150 y(#S0:12345:respaw)o(n:)o(/sb)o(in)o(/a)o(get)o(ty)g(-L)43 +b(9600)f(ttyS0)f(vt102)20 3293 y +SDict begin H.S end + 20 3293 a 20 3293 a +SDict begin 12 H.A end + +20 3293 a 20 3293 a +SDict begin [/View [/XYZ H.V]/Dest (section.4.8) cvn /DEST pdfmark +end + 20 3293 a 131 x Fe(4.8.)68 b(/etc/passwd)20 +3606 y Fd(#Benutzername:Pa)o(\377w)o(ort)o(:B)o(en)o(utz)o(er)o(num)o +(me)o(r:)o(Gru)o(pp)o(en)o(num)o(me)o(r:)o(GCO)o(S:)o(He)o(ima)o(t:)o +(She)o(ll)20 3705 y(root:x:0:0:root:)o(/r)o(oot)o(:/)o(bi)o(n/b)o(as)o +(h)20 3805 y(bin:x:1:1:bin:/b)o(in)o(:/b)o(in)o(/b)o(ash)20 +3905 y(daemon:x:2:2:dae)o(mo)o(n:/)o(sb)o(in)o(:/b)o(in)o(/ba)o(sh)20 +4004 y(lp:x:4:7:lp)39 b(daemon:/var/spoo)o(l/)o(lpd)o(:/)o(bi)o(n/b)o +(as)o(h)20 4104 y(games:x:12:100::)o(/v)o(ar/)o(ga)o(me)o(s:/)o(bi)o +(n/b)o(as)o(h)20 4204 y(man:x:13:2::/var)o(/c)o(ach)o(e/)o(ma)o(n:/)o +(bi)o(n/b)o(as)o(h)20 4303 y(ftp:x:40:2:ftp)f(account:/usr/lo)o(cal)o +(/f)o(tp)o(:/b)o(in)o(/b)o(ash)20 4403 y(nobody:x:65534:6)o(55)o(34:)o +(no)o(bo)o(dy:)o(/v)o(ar/)o(li)o(b/)o(nob)o(od)o(y:)o(/bi)o(n/)o(ba)o +(sh)20 4503 y(higi:x:500:100:H)o(ig)o(i:/)o(ho)o(me)o(/hi)o(gi)o(:/b)o +(in)o(/b)o(ash)20 4602 y(gast:x:501:100:G)o(as)o(t:/)o(ho)o(me)o(/ga)o +(st)o(:/b)o(in)o(/b)o(ash)3037 5092 y Fk(53)p eop end +%%Page: 54 54 +TeXDict begin 54 53 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 a +632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.54) cvn /DEST pdfmark end + 632 -5 a eop end +%%Page: 55 55 +TeXDict begin 55 54 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a 12 +-5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.55) cvn /DEST pdfmark end + 12 -5 a 20 277 a +SDict begin H.S end + 20 277 a 20 277 +a +SDict begin 12 H.A end + 20 277 a 20 277 a +SDict begin [/View [/XYZ H.V]/Dest (chapter.5) cvn /DEST pdfmark end + 20 277 a 522 x Fm(5.)100 b(Die)68 +b(Shells)20 974 y +SDict begin H.S end + 20 974 a 20 974 a +SDict begin 12 H.A end + 20 974 a 20 974 a +SDict begin [/View [/XYZ H.V]/Dest (section.5.1) cvn /DEST pdfmark +end + +20 974 a 152 x Fe(5.1.)g(Die)47 b(Shells)20 1312 y Fk(Eine)25 +b(Shell)g(ist)g(ein)g(K)n(ommando-In)n(terpreter,)c(ein)k(Programm)e +(das)h(durc)n(h)h(ein)f(anderes)g(ersetzt)20 1412 y(w)n(erden)f(k)-5 +b(ann.)23 b(Es)g(zerlegt)g(die)g(K)n(ommandozeile,)f(f\374hrt)h +(Sonderzeic)n(hen)f(durc)n(h)h(und)h(reic)n(h)n(t)e(das)20 +1511 y(K)n(ommando)k(an)h(UNIX)i(w)n(eiter.)e(Ohne)g(Shell)h(gibt)g(es) +f(k)n(einen)g(Zugang)f(zum)i(Betriebssystem.)20 1705 +y Fd(/bin/sh)389 b(Bourne-Shell)518 b(zum)42 b(programmieren)20 +1805 y(/bin/ksh)345 b(Korn-Shell)606 b(Mischung)40 b(aus)j(C-und)e +(Bourne-Shell)20 1905 y(/bin/csh)345 b(C-Shell)738 b(zum)42 +b(interaktiven)d(Arbeiten)20 2004 y(/bin/bash)301 b(Bourne-Again-Shel)o +(l)20 2104 y(/bin/tcsh)g(TC-Shell)20 2303 y(export)433 +b(Setzt)42 b(Umgebungsvariab)o(len)o(,)37 b(Variablen)j(exportieren)20 +2403 y(locate)433 b(Findet)41 b(Dateien)g(anhand)g(einer)g(Datenbank)20 +2502 y(setenv)433 b(Setzt)42 b(Umgebungsvariab)o(len)37 +b(unter)k(Nicht-Bash)e(Shells,)i(z.B.)h(csh)20 2602 y(unset)477 +b(Variable)40 b(l\366schen)h(in)i(ksh,)f(bsh)g(und)g(bash)20 +2702 y(unsetenv)345 b(Variable)40 b(l\366schen)h(in)i(csh)20 +2837 y +SDict begin H.S end + 20 2837 a 20 2837 a +SDict begin 12 H.A end + 20 2837 a 20 2837 a +SDict begin [/View [/XYZ H.V]/Dest (section.5.2) cvn /DEST pdfmark +end + 20 2837 +a 152 x Fe(5.2.)68 b(Die)47 b(Sta)l(rt-Scripts)20 3175 +y Fd(~/.bashrc)301 b(bash)20 3317 y +SDict begin H.S end + 20 3317 a 20 3317 +a +SDict begin 12 H.A end + 20 3317 a 20 3317 a +SDict begin [/View [/XYZ H.V]/Dest (section.5.3) cvn /DEST pdfmark +end + 20 3317 a 145 x Fe(5.3.)68 b(T)-11 +b(astenk)l(ombinationen)20 3648 y Fd([Strg]+[l])1085 +b(Bildschirm)40 b(l\366schen)476 b(bash)42 b(und)g(csh)20 +3747 y([Strg]+[a])d(oder)j([Pos)g(1])522 b(Zeilenanfang)736 +b(bash)42 b(und)g(csh)20 3847 y([Strg]+[e])d(oder)j([Ende])564 +b(Zeilenende)824 b(bash)42 b(und)g(csh)20 3947 y([Alt]+[f])1129 +b(Wort)42 b(vorw\344ts)738 b(bash)42 b(und)g(csh)20 4046 +y([Alt]+[b])1129 b(Wort)42 b(r\374ckw\344rts)650 b(bash)42 +b(und)g(csh)20 4146 y([Strg]+[c])1085 b(Befehlseingabe)38 +b(verwerfen)214 b(alle)42 b(Shells)20 4245 y([Strg]+[c])1085 +b(Programm)40 b(abbrechen)20 4345 y([Pfeil)h(rechts])g(und)h([Pfeil)f +(links])128 b(Cursor)41 b(bewegen)651 b(bash)42 b(und)g(csh)20 +4445 y([Pfeil)f(hoch])h(und)g([Pfeil)f(runter])171 b(History-Scrollin)o +(g)517 b(bash)42 b(und)g(csh)20 4544 y([Strg]+[r])1085 +b(in)43 b(der)f(History)f(suchen)346 b(bash)20 4644 y([Tab])1305 +b(Komplettierung)648 b(bash)42 b(und)g(csh)20 4744 y([Strg]+[d])1085 +b(beendet)41 b(die)h(Shell)521 b(alle)42 b(Shells)3037 +5092 y Fk(55)p eop end +%%Page: 56 56 +TeXDict begin 56 55 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 a +632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.56) cvn /DEST pdfmark end + 632 -5 a 640 128 a Fh(5.)41 +b(Die)28 b(Shells)640 360 y Fd([Strg]+[d])39 b(oder)j([Entf])564 +b(ein)43 b(Zeichen)d(l\366schen)640 460 y([Strg]+[h])f(oder)j +([Backspace])344 b(Zeichen)41 b(r\374ckw\344rts)f(l\366schen)640 +559 y([Strg]+[k])1085 b(Zeile)42 b(ab)g(Cursor)g(l\366schen)640 +659 y([Alt)g(Gr]+[Umschalt])691 b(zwei)42 b(folgende)e(Zeichen)h +(vereinen)2165 758 y(ae)i(->)g(AE,)f(co)h(->)g(\\texteuro)640 +858 y([Strg]+[z])1085 b(im)43 b(Vordergrund)c(laufendes)h(Programm)g +(anhalten)2165 958 y(Fortsetzung)f(mit)k(fg)640 1057 +y([Umschalt]+[Bild)37 b(hoch])k(und)391 b(vorherige)40 +b(Textausgabe)344 b(alle)42 b(Shells)640 1157 y([Umschalt]+[Bild)37 +b(runter])476 b(zur\374ckholen)640 1257 y([Alt]+[F1])39 +b(bis)k([F6])695 b(Umschalten)40 b(zwischen)g(Textkonsolen)82 +b(alle)42 b(Shells)640 1356 y([AltGr]+[Fn])997 b(Umschalten)40 +b(zwischen)g(den)i(Textkonsolen)d(n+12)640 1456 y([Alt]+[Pfeil)g(links) +i(oder)h(rechts])171 b(um)43 b(durch)e(die)i(benutzten)d(Konsolen)g(zu) +i(st\366bern)640 1556 y([Strg]+[Alt]+[F1)o(])c(bis)608 +b(Umschalten)40 b(zu)i(Textkonsolen)344 b(alle)42 b(Shells)640 +1655 y([Strg]+[Alt]+[F6)o(])778 b(aus)43 b(X11)f(heraus)640 +1755 y([Strg]+[Alt]+[F7)o(])778 b(Umschalten)40 b(zu)i(X11)h(aus)f +(Textkonsole)d(alle)j(Shells)2165 1854 y(bei)h(Caldera)d(2.2)j +([Alt]+[F8])640 1954 y([Strg]+[Alt]+[<-)o(-])734 b(X-Server)40 +b(sofort)i(beenden)640 2054 y([Strg]+[Alt]+[+])821 b(verschiedene)39 +b(Aufl\366sungen)g(im)j(laufenden)e(Betrieb)640 2153 +y([Strg]+[Alt]+[-])821 b(wechseln)640 2253 y([Strg]+[Alt]+[En)o(tf])690 +b(Signal)41 b(SIGINT)g(z.B.)h(reboot)521 b(Shell)640 +2422 y +SDict begin H.S end + 640 2422 a 640 2422 a +SDict begin 12 H.A end + 640 2422 a 640 2422 a +SDict begin [/View [/XYZ H.V]/Dest (section.5.4) cvn /DEST pdfmark +end + 640 +2422 a 136 x Fe(5.4.)68 b(Die)47 b(C-Shell)640 2751 y +Fd(~)653 b(Home-Verzeichnis)640 2851 y(~user)477 b(Home-Verzeichnis)37 +b(des)42 b(Benutzers)e(user)640 2950 y(*)653 b(beliebige)40 +b(Zeichen-kette)640 3050 y(?)653 b(genau)42 b(Zeichen)640 +3150 y({a,b,c})389 b(a)44 b(oder)d(b)j(oder)d(c)640 3249 +y([aceg])433 b(genau)42 b(eines)f(der)i(Zeichen)640 3349 +y([a-z])477 b(a)44 b(bis)e(z)640 3448 y([!adfh])389 b(kein)42 +b(a,)h(d,)g(f,)f(h)640 3548 y Fc(\264\264)609 b Fd(maskiert)41 +b(alles)640 3648 y(\\)653 b(maskiert)41 b(das)h(nachfolgende)c(Zeichen) +640 3747 y("")609 b(maskiert)41 b($)i(`)g(\\)g(nicht)640 +3847 y(>)g(Datei)390 b(Ausgabe)41 b(in)i(die)f(Datei,)f(stdout)640 +3947 y(>&)i(Datei)346 b(Ausgabe)41 b(in)i(die)f(Datei,)f(stdout)g(und)h +(stderr)640 4046 y(>>Datei)389 b(Unlenkung)40 b(in)j(die)f(Datei,)f +(stdout)g(umgelenkt)640 4146 y(<)i(Datei)390 b(von)43 +b(der)f(Datei)f(lesen,)g(anstatt)g(von)h(stdin)g(zu)h(lesen)640 +4245 y(set)f(noclobber)127 b(\334berschreiben)38 b(einer)k(vorhandenen) +d(Datei)i(verhindern)640 4345 y(|)653 b(Ausgabekanal)39 +b(eines)i(Kommandos)f(direkt)h(in)i(den)f(Eingabekanal)d(eines)1337 +4445 y(anderen)i(Kommandos)f(leiten)640 4544 y(#!Programm)257 +b(so)43 b(beginnt)e(eine)h(Datei)f(die)h(vom)h(Progamm)d(ausgef\374hrt) +g(wird)640 4644 y($HISTSIZE)301 b(History-Gr\366\377e)640 +4744 y($LS_OPTIONS)213 b(ls)43 b(Funktionen)640 5092 +y Fk(56)p eop end +%%Page: 57 57 +TeXDict begin 57 56 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a 12 +-5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.57) cvn /DEST pdfmark end + 12 -5 a 2464 128 a Fh(5.5.)40 b(Bash)27 +b(rec)n(hnen)20 360 y Fd($PATH)477 b(Pfad)42 b(zu)h(den)f +(Programmdateien)20 460 y(Programm)e(&)261 b(Programm)40 +b(im)j(eigenem)e(Prozess)f(starten)20 603 y +SDict begin H.S end + 20 603 a +20 603 a +SDict begin 12 H.A end + 20 603 a 20 603 a +SDict begin [/View [/XYZ H.V]/Dest (section.5.5) cvn /DEST pdfmark +end + 20 603 a 131 x Fe(5.5.)68 +b(Bash)45 b(rechnen)20 916 y Fd(echo)d($\(\(1+1\)\))127 +b(gibt)42 b(1)h(aus)20 1115 y(a=4)20 1215 y(b=5)20 1314 +y(echo)f($\(\(a*b\)\))127 b(gibt)42 b(20)h(aus)20 1414 +y(echo)f($\(\(a-b\)\))127 b(gibt)42 b(-1)h(aus)3037 5092 +y Fk(57)p eop end +%%Page: 58 58 +TeXDict begin 58 57 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 a +632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.58) cvn /DEST pdfmark end + 632 -5 a eop end +%%Page: 59 59 +TeXDict begin 59 58 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a 12 +-5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.59) cvn /DEST pdfmark end + 12 -5 a 20 1610 a +SDict begin H.S end + 20 1610 a 20 1610 +a +SDict begin 12 H.A end + 20 1610 a 20 1610 a +SDict begin [/View [/XYZ H.V]/Dest (part.2) cvn /DEST pdfmark end + 20 1610 a 1296 1788 a Fm(T)-17 +b(eil)68 b(I)6 b(I.)980 2203 y Ff(Programme)3037 5092 +y Fk(59)p eop end +%%Page: 60 60 +TeXDict begin 60 59 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 a +632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.60) cvn /DEST pdfmark end + 632 -5 a eop end +%%Page: 61 61 +TeXDict begin 61 60 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a 12 +-5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.61) cvn /DEST pdfmark end + 12 -5 a 20 277 a +SDict begin H.S end + 20 277 a 20 277 +a +SDict begin 12 H.A end + 20 277 a 20 277 a +SDict begin [/View [/XYZ H.V]/Dest (chapter.6) cvn /DEST pdfmark end + 20 277 a 521 x Fm(6.)100 b(Der)67 +b(T)-17 b(extedito)-6 b(r)68 b(vi/vim)20 1090 y Fk(Der)24 +b(vi-Editor)g(ist)h(auf)f(UNIX/Lin)n(ux\(neb)r(en)h(Emacs\))f(der)g +(meistv)n(erw)n(endete)f(T)-7 b(exteditor.)24 b(Die)20 +1189 y(Bedien)n(ung)30 b(erfolgt)g(\374b)r(er)h(den)g(Befehls-)f(und)i +(K)n(ommando-mo)r(dus.)c(Da)j(es)g(nic)n(h)n(t)f(gerade)g(ein-)20 +1289 y(fac)n(h)k(ist)h(sic)n(h)f(diese)h(Optionen)f(zu)g(merk)n(en,)g +(folgt)h(eine)f(Au\035istung)h(der)f(meist)h(gebrauc)n(h)n(ten)20 +1389 y(Optionen.)20 1535 y +SDict begin H.S end + 20 1535 a 20 1535 a +SDict begin 12 H.A end + 20 1535 +a 20 1535 a +SDict begin [/View [/XYZ H.V]/Dest (section.6.1) cvn /DEST pdfmark +end + 20 1535 a 134 x Fe(6.1.)68 b(Aufruf)20 1853 +y Fd(vi)609 b(Editor)41 b(vi)i(aufrufen)20 1953 y(vi)g(Datei)346 +b(Editor)41 b(vi)i(aufrufen)d(und)j(Datei)e(\366ffnen)20 +2053 y(vi)i(-r)478 b(swap-Dateien)39 b(anzeigen)20 2152 +y(vi)k(-r)g(Datei)215 b(Datei)42 b(nach)g(einem)f(Stromausfall)e(oder)i +(Absturz)g(wieder)g(herstellen)20 2252 y(vi)i(-R)g(Datei)215 +b(Datei)42 b(schreibgesch\374tz)o(t)c(\366ffnen)20 2400 +y +SDict begin H.S end + 20 2400 a 20 2400 a +SDict begin 12 H.A end + 20 2400 a 20 2400 a +SDict begin [/View [/XYZ H.V]/Dest (section.6.2) cvn /DEST pdfmark +end + 20 2400 a 133 +x Fe(6.2.)68 b(Eingab)t(emo)t(dus)44 b(\(input)h(mo)t(de\))20 +2717 y Fk(Um)26 b(in)g(den)g(Eingab)r(emo)r(dus)g(zu)f(gelangen)g(m)n +(uss)g(A,)h(C,)g(I,)f(O,)h(R,)f(S,)h(a,)g(i,)f(o)h(o)r(der)f(s)g +(eingegeb)r(en)20 2816 y(w)n(erden.)i(i)h(ist)f(eine)h(gute)f(W)-7 +b(ahl.)28 b(Mit)g()f(wird)h(der)f(Eingab)r(emo)r(dus)g(v)n +(erlassen.)20 2962 y +SDict begin H.S end + 20 2962 a 20 2962 a +SDict begin 12 H.A end + 20 2962 a 20 +2962 a +SDict begin [/View [/XYZ H.V]/Dest (section.6.3) cvn /DEST pdfmark +end + 20 2962 a 135 x Fe(6.3.)68 b(Befehlsmo)t(dus)43 +b(\(visual)j(mo)t(de\))20 3211 y +SDict begin H.S end + 20 3211 a 20 3211 a +SDict begin 12 H.A end + +20 3211 a 20 3211 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.6.3.1) cvn /DEST pdfmark +end + 20 3211 a 87 x Fi(6.3.1.)57 b(Eingeb)s(en:)369 +3453 y Fd(\(n\)i)42 b(eingeben)127 b(f\374gt)42 b(den)g(eingeben)e +(Text)i(\(n)h(mal\))f(vor)g(dem)g(Cursor)f(ein)369 3553 +y(\(n\)a)h(eingeben)127 b(f\374gt)42 b(den)g(eingeben)e(Text)i(\(n)h +(mal\))f(hinter)f(dem)h(Cursor)f(ein)369 3652 y(\(n\)I)h(eingeben)127 +b(f\374gt)42 b(den)g(eingeben)e(Text)i(\(n)h(mal\))f(am)g(Zeilenanfang) +d(ein)369 3752 y(\(n\)A)j(eingeben)127 b(f\374gt)42 b(den)g(eingeben)e +(Text)i(\(n)h(mal\))f(am)g(Zeilenende)e(ein)369 3851 +y(\(n\)o)i(eingeben)127 b(f\374gt)42 b(unter)f(der)i(aktuellen)c(Zeile) +j(\(n)g(neue)g(Zeilen\))1066 3951 y(mit)g(den)h(eingeben)d(Text)i(ein) +369 4051 y(\(n\)O)g(eingeben)127 b(f\374gt)42 b(\374ber)g(der)g +(aktuellen)e(Zeile)h(\(n)i(neue)f(Zeilen\))1066 4150 +y(mit)g(den)h(eingeben)d(Text)i(ein)20 4290 y +SDict begin H.S end + 20 4290 +a 20 4290 a +SDict begin 12 H.A end + 20 4290 a 20 4290 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.6.3.2) cvn /DEST pdfmark +end + 20 4290 a 99 x Fi(6.3.2.)57 +b(\334b)s(erschreib)s(en:)369 4544 y Fd(\(n\)R)42 b(eingeben)127 +b(\374berschreibt)38 b(den)43 b(Text)f(mit)g(eingeben)369 +4644 y()433 b(wechselt)40 b(zwischen)g(INSERT)h(und)i(REPLACE)369 +4744 y(\(n\)r)f(Taste)259 b(\374berschreibt)38 b(den)43 +b(Text)f(mit)g(\(n)h(mal\))e(Taste)3037 5092 y Fk(61)p +eop end +%%Page: 62 62 +TeXDict begin 62 61 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 a +632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.62) cvn /DEST pdfmark end + 632 -5 a 640 128 a Fh(6.)41 +b(Der)28 b(T)-7 b(exteditor)27 b(vi/vim)1686 360 y Fd(von)42 +b(dem)h(Cursor)e(nach)g(rechts)640 484 y +SDict begin H.S end + 640 484 a 640 +484 a +SDict begin 12 H.A end + 640 484 a 640 484 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.6.3.3) cvn /DEST pdfmark +end + 640 484 a 118 x Fi(6.3.3.)57 +b(Bew)m(egen:)989 758 y Fd(\(n\)h)521 b(Cursor)41 b(um)i(\(n\))f +(Zeichen)f(nach)h(links)f(bewegen)989 858 y(\(n\)+h)213 +b(Cursor)41 b(um)i(\(n\))f(Zeichen)f(nach)h(links)f(bewegen)989 +958 y(\(n\)l)521 b(Cursor)41 b(um)i(\(n\))f(Zeichen)f(nach)h(rechts)f +(bewegen)989 1057 y(\(n\))257 b(Cursor)41 b(um)i(\(n\))f +(Zeichen)f(nach)h(rechts)f(bewegen)989 1157 y(\(n\)|)521 +b(Cursor)41 b(zur)h(Spalte)f(\(n\))i(bewegen)989 1257 +y(\(n\)t)f(Taste)259 b(Cursor)41 b(vor)h(das)h(\(n\))f(Zeichen)f(Taste) +g(nach)h(rechts)f(bewegen)989 1356 y(\(n\)f)h(Taste)259 +b(Cursor)41 b(auf)h(das)h(\(n\))f(Zeichen)f(Taste)g(nach)h(rechts)f +(bewegen)989 1456 y(\(n\)T)h(Taste)259 b(Cursor)41 b(vor)h(das)h(\(n\)) +f(Zeichen)f(Taste)g(nach)h(links)f(bewegen)989 1556 y(\(n\)F)h(Taste) +259 b(Cursor)41 b(auf)h(das)h(\(n\))f(Zeichen)f(Taste)g(nach)h(links)f +(bewegen)989 1655 y(\(n\)j)521 b(Cursor)41 b(um)i(\(n\))f(Zeilen)f +(abw\344rts)g(bewegen)989 1755 y(\(n\)k)521 b(Cursor)41 +b(um)i(\(n\))f(Zeilen)f(aufw\344rts)f(bewegen)989 1854 +y(\(n\)w)521 b(Cursor)41 b(um)i(\(n\))f(W\366rter)f(nach)h(rechts)f +(bewegen)989 1954 y(\(n\)W)521 b(Cursor)41 b(um)i(\(n\))f +(W\366rter\(Space\))c(nach)k(rechts)f(bewegen)989 2054 +y(\(n\)b)521 b(Cursor)41 b(um)i(\(n\))f(W\366rter)f(nach)h(links)f +(bewegen)989 2153 y(\(n\)B)521 b(Cursor)41 b(um)i(\(n\))f +(W\366rter\(Space\))c(nach)k(links)f(bewegen)989 2253 +y(\(n\)e)521 b(Cursor)41 b(an)i(das)f(\(n\))g(Wortende)f(nach)g(rechts) +g(bewegen)989 2353 y(\(n\)E)521 b(Cursor)41 b(an)i(das)f(\(n\))g +(Wortende\(Space\))c(nach)j(rechts)g(bewegen)989 2452 +y(^)653 b(Cursor)41 b(auf)h(das)h(erste)e(Zeilenzeichen)d(stellen)989 +2552 y(0)653 b(Cursor)41 b(vor)h(das)h(erste)e(Zeilenzeichen)d(stellen) +989 2651 y(\(n\)_)521 b(Cursor)41 b(auf)h(das)h(erste)e(Zeilenzeichen)d +(stellen)j(und)1686 2751 y(\(n-1\))g(Zeilen)g(nach)h(unten)g(bewegen) +989 2851 y($)653 b(Cursor)41 b(zum)h(Zeilenende)e(bewegen)989 +2950 y(\(n\)+)521 b(Cursor)41 b(auf)h(das)h(erste)e(Zeilenzeichen)d +(stellen)j(und)1686 3050 y(\(n\))h(Zeilen)f(abw\344rts)g(bewegen)989 +3150 y(\(n\)-)521 b(Cursor)41 b(auf)h(das)h(erste)e(Zeilenzeichen)d +(stellen)j(und)1686 3249 y(\(n\))h(Zeilen)f(aufw\344rts)f(bewegen)989 +3349 y(\(n\)\))521 b(Cursor)41 b(um)i(\(n\))f(S\344tze)f(abw\344rts)g +(bewegen)989 3448 y(\(n\)\()521 b(Cursor)41 b(um)i(\(n\))f(S\344tze)f +(aufw\344rts)g(bewegen)989 3548 y(\(n\)})521 b(Cursor)41 +b(um)i(\(n\))f(Abs\344tze)f(abw\344rts)f(bewegen)989 +3648 y(\(n\){)521 b(Cursor)41 b(um)i(\(n\))f(Abs\344tze)f(aufw\344rts)f +(bewegen)989 3747 y(\(n\)+u)213 b(Cursor)41 b(um)i(1/2)f +(Bildschirm)d(oder)j(\(n)h(Zeilen\))1686 3847 y(aufw\344rts)d(bewegen) +989 3947 y(\(n\)+d)213 b(Cursor)41 b(um)i(1/2)f(Bildschirm)d +(oder)j(\(n)h(Zeilen\))1686 4046 y(abw\344rts)e(bewegen)989 +4146 y(+f)345 b(Cursor)41 b(um)i(1)g(Bildschirm)c(abw\344rts)i +(bewegen)989 4245 y()128 b(Cursor)41 b(um)i(1)g +(Bildschirm)c(abw\344rts)i(bewegen)989 4345 y(+b)345 +b(Cursor)41 b(um)i(1)g(Bildschirm)c(aufw\344rts)h(bewegen)989 +4445 y()216 b(Cursor)41 b(um)i(1)g(Bildschirm)c +(aufw\344rts)h(bewegen)989 4544 y(\(n\)+e)213 b(scrollt)41 +b(den)h(Cursor)f(\(n\))h(Zeilen)f(abw\344rts)989 4644 +y(\(n\)+y)213 b(scrollt)41 b(den)h(Cursor)f(\(n\))h(Zeilen)f +(aufw\344rts)989 4744 y(')174 b(Taste)259 b(Cursor)41 +b(zu)i(der)f(mit)g(Taste)g(markierten)d(Zeile)j(bewegen)640 +5092 y Fk(62)p eop end +%%Page: 63 63 +TeXDict begin 63 62 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a 12 +-5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.63) cvn /DEST pdfmark end + 12 -5 a 1926 128 a Fh(6.3.)41 b(Befehlsmo)r(dus)27 +b(\(visual)g(mo)r(de\))369 360 y Fd(`)174 b(Taste)259 +b(Cursor)41 b(zu)i(dem)f(mit)g(Taste)g(markierten)d(Zeichen)i(bewegen) +369 460 y(gg)609 b(Cursor)41 b(zum)h(Textanfang)e(bewegen)369 +559 y(\(n\)G)521 b(Cursor)41 b(zur)h(Zeile)g(\(n\))g(bewegen)369 +659 y(G)653 b(Cursor)41 b(zum)h(Textende)e(bewegen)369 +758 y(H)653 b(Cursor)41 b(an)i(den)f(Anfang)f(der)h(Bildschirmseite)c +(setzen)369 858 y(\(n\)H)521 b(Cursor)41 b(zur)h(Zeile)g(\(n\))g(auf)g +(den)h(Bildschirm)c(bewegen)369 958 y(M)653 b(Cursor)41 +b(auf)h(den)h(Anfang)e(der)h(mittleren)1066 1057 y(Bildschirmzeile)37 +b(bewegen)369 1157 y(L)653 b(Cursor)41 b(an)i(das)f(Ende)g(der)g +(Bildschirmseite)37 b(setzen)369 1257 y(\(n\)L)521 b(Cursor)41 +b(vom)h(Ende)g(zur)g(Zeile)g(\(n\))g(auf)g(den)h(Bildschirm)c(bewegen) +369 1356 y(z)174 b(Taste)259 b(bewegt)41 b(die)h(aktuelle)e(Zeile)i +(zum)g(Anfang\(+\),)e(Ende\(-\))g(oder)1066 1456 y(zur)i(Mitte\(.\))e +(des)j(Bildschirms)20 1587 y +SDict begin H.S end + 20 1587 a 20 1587 a +SDict begin 12 H.A end + 20 1587 +a 20 1587 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.6.3.4) cvn /DEST pdfmark +end + 20 1587 a 111 x Fi(6.3.4.)57 b(L\366schen)36 +b(und)g(Eingeb)s(en:)369 1854 y Fd(\(n\)s)42 b(eingeben)127 +b(l\366scht)41 b(\(n\))h(Zeichen)f(von)h(dem)g(Cursor)f(nach)h(rechts)f +(und)1066 1954 y(f\374gt)h(den)g(eingeben)e(Text)i(ein)369 +2054 y(c)h(Bereich)d(eingeben)259 b(l\366scht)41 b(den)h(markierten)d +(Bereich)i(und)1066 2153 y(f\374gt)h(den)g(eingeben)e(Text)i(ein)369 +2253 y(cc)130 b(eingeben)d(l\366scht)41 b(den)h(Zeilentext)e(und)i +(f\374gt)g(den)g(eingeben)e(Text)i(ein)369 2353 y(cw)130 +b(eingeben)d(l\366scht)41 b(bis)h(zum)h(ende)e(des)i(Wortes)e(und)1066 +2452 y(f\374gt)h(den)g(eingeben)e(Text)i(ein)369 2552 +y(C)174 b(eingeben)127 b(l\366scht)41 b(den)h(Text)g(bis)g(Zeilenende)e +(und)1066 2651 y(f\374gt)i(den)g(eingeben)e(Text)i(ein)369 +2751 y(\(n\)S)g(eingeben)127 b(l\366scht)41 b(\(n\))h(Zeilen)f(nach)h +(unten)g(und)1066 2851 y(f\374gt)g(den)g(eingeben)e(Text)i(ein)g(\()i +(wie)e(\(n\)cc)f(\))20 2993 y +SDict begin H.S end + 20 2993 a 20 2993 a +SDict begin 12 H.A end + 20 +2993 a 20 2993 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.6.3.5) cvn /DEST pdfmark +end + 20 2993 a 100 x Fi(6.3.5.)57 b(L\366schen:)369 +3249 y Fd(d)174 b(Bereich)d(l\366scht)41 b(den)h(markierten)e(Bereich) +369 3349 y(dd)609 b(l\366scht)41 b(die)h(ganze)g(Zeile)369 +3448 y(D)653 b(l\366scht)41 b(den)h(Text)g(bis)g(Zeilenende)369 +3548 y(dw)609 b(l\366scht)41 b(bis)h(zum)h(Ende)e(des)i(Wortes)369 +3648 y(\(n\)x)521 b(l\366scht)41 b(\(n\))h(Zeichen)f(auf)h(den)g(sich)g +(der)h(Cursor)e(befindet)369 3747 y()433 b(l\366scht)41 +b(das)h(Zeichen)f(auf)h(den)g(sich)g(der)h(Cursor)e(befindet)369 +3847 y(\(n\)X)521 b(l\366scht)41 b(\(n\))h(Zeichen)f(links)g(vom)i +(Cursor)20 3978 y +SDict begin H.S end + 20 3978 a 20 3978 a +SDict begin 12 H.A end + 20 3978 a 20 3978 +a +SDict begin [/View [/XYZ H.V]/Dest (subsection.6.3.6) cvn /DEST pdfmark +end + 20 3978 a 111 x Fi(6.3.6.)57 b(Aufheb)s(en:)369 4245 +y Fd(u)653 b(macht)41 b(die)i(letzte)e(\304nderung)f(r\374ckg\344ngig) +369 4345 y(U)653 b(macht)41 b(die)i(letzte)e(\304nderung)f(der)i +(ganzen)f(Zeile)h(r\374ckg\344ngig)20 4487 y +SDict begin H.S end + 20 4487 +a 20 4487 a +SDict begin 12 H.A end + 20 4487 a 20 4487 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.6.3.7) cvn /DEST pdfmark +end + 20 4487 a 100 x Fi(6.3.7.)57 +b(V)m(erschieb)s(en:)369 4744 y Fd(>)174 b(Bereich)d(schiebt)41 +b(die)h(markierten)d(Zeilen)i(nach)h(rechts)3037 5092 +y Fk(63)p eop end +%%Page: 64 64 +TeXDict begin 64 63 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 a +632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.64) cvn /DEST pdfmark end + 632 -5 a 640 128 a Fh(6.)41 +b(Der)28 b(T)-7 b(exteditor)27 b(vi/vim)989 360 y Fd(>>)609 +b(schiebt)41 b(die)h(Zeile)f(auf)i(den)f(sich)g(der)g(Cursor)f +(befindet)1686 460 y(nach)h(rechts)989 559 y(<)174 b(Bereich)d(schiebt) +41 b(die)h(markierten)d(Zeilen)i(nach)h(links)989 659 +y(<<)609 b(schiebt)41 b(die)h(Zeile)f(auf)i(den)f(sich)g(der)g(Cursor)f +(befindet)1686 758 y(nach)h(links)640 871 y +SDict begin H.S end + 640 871 a +640 871 a +SDict begin 12 H.A end + 640 871 a 640 871 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.6.3.8) cvn /DEST pdfmark +end + 640 871 a 116 x Fi(6.3.8.)57 +b(Zusammenf\374gen:)989 1140 y Fd(\(n\)J)521 b(h\344ngt)41 +b(\(n\))i(Zeilen)e(nach)h(unten)f(aneinander)640 1271 +y +SDict begin H.S end + 640 1271 a 640 1271 a +SDict begin 12 H.A end + 640 1271 a 640 1271 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.6.3.9) cvn /DEST pdfmark +end + 640 1271 +a 98 x Fi(6.3.9.)57 b(Ma)m(rkieren:)989 1522 y Fd(m)174 +b(Taste)259 b(markiert)40 b(eine)i(Zeile)f(oder)h(Zeichen)989 +1622 y(v)653 b(setzt)41 b(den)i(Anfang)e(einer)g(Markierung)989 +1722 y(V)653 b(setzt)41 b(den)i(Anfang)e(einer)g(Zeilenmarkierung)640 +1852 y +SDict begin H.S end + 640 1852 a 640 1852 a +SDict begin 12 H.A end + 640 1852 a 640 1852 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.6.3.10) cvn /DEST pdfmark +end + 640 +1852 a 98 x Fi(6.3.10.)57 b(K)m(opieren:)989 2103 y Fd(y)174 +b(Bereich)d(kopiert)41 b(den)h(mit)g(Bereich)f(angegebenen)e(Text)j(in) +g(einen)g(Puffer)989 2203 y(\(n\)Y)521 b(kopiert)41 b(die)h(aktuelle)e +(und)i(\(n\))h(Zeilen)e(in)h(einen)g(Puffer)989 2303 +y(")174 b(Taste)259 b(legt)42 b(den)g(n\344chsten)e(Zwischenpuffer)e +(fest)989 2402 y(@)174 b(Taste)259 b(interpretiert)38 +b(den)k(Inhalt)f(des)i(Zwischenspeiche)o(rs)37 b(als)1686 +2502 y(vi)43 b(Befehle)d(und)j(f\374hrt)e(sie)h(aus)640 +2614 y +SDict begin H.S end + 640 2614 a 640 2614 a +SDict begin 12 H.A end + 640 2614 a 640 2614 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.6.3.11) cvn /DEST pdfmark +end + 640 +2614 a 117 x Fi(6.3.11.)57 b(Einf\374gen:)989 2884 y +Fd(p)653 b(f\374gt)42 b(den)g(aktuellen)e(Puffer)h(hinter)g(dem)h +(Cursor)f(ein)989 2983 y(P)653 b(f\374gt)42 b(den)g(aktuellen)e(Puffer) +h(vor)h(dem)h(Cursor)e(ein)640 3114 y +SDict begin H.S end + 640 3114 a 640 +3114 a +SDict begin 12 H.A end + 640 3114 a 640 3114 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.6.3.12) cvn /DEST pdfmark +end + 640 3114 a 98 x Fi(6.3.12.)57 +b(Suchen:)989 3365 y Fd(\(n\)\045)521 b(platziert)40 +b(den)i(Cursor)f(auf)h(die)h(zugeh\366rige)c(\(\))k({})f([],)h(oder) +1686 3465 y(platziert)d(den)i(Cursor)f(auf)h(\(n\))h(Prozent)d(der)j +(Datei)989 3565 y(/)174 b(Text)303 b(sucht)41 b(den)i(Text)f +(vorw\344rts)989 3664 y(?)174 b(Text)303 b(sucht)41 b(den)i(Text)f +(r\374ckw\344rts)640 3777 y +SDict begin H.S end + 640 3777 a 640 3777 a +SDict begin 12 H.A end + 640 +3777 a 640 3777 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.6.3.13) cvn /DEST pdfmark +end + 640 3777 a 116 x Fi(6.3.13.)57 b(Wiederholen:)989 +4046 y Fd(.)653 b(wiederholt)39 b(das)k(letzte)e(EDIT)h(Kommando)989 +4146 y(n)653 b(wiederholt)39 b(das)k(letzte)e(Suchen)989 +4245 y(N)653 b(wiederholt)39 b(das)k(letzte)e(Suchen)g(in)h +(umgekehrter)d(Richtung)989 4345 y(\(n\);)521 b(wiederholt)39 +b(das)k(vorgehende)c(f,)k(F,)f(t,)h(T)g(Kommando)989 +4445 y(\(n\),)521 b(wiederholt)39 b(das)k(vorgehende)c(f,)k(F,)f(t,)h +(T)g(Kommando)d(in)1686 4544 y(umgekehrter)f(Richtung)989 +4644 y(\(n\)&)521 b(wiederholt)39 b(den)k(letzten)d(:s//)i(Befehl)f(an) +i(der)f(momentanen)1686 4744 y(Position)640 5092 y Fk(64)p +eop end +%%Page: 65 65 +TeXDict begin 65 64 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a 12 +-5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.65) cvn /DEST pdfmark end + 12 -5 a 1790 128 a Fh(6.4.)40 b(K)n(ommandomo)r +(dus)26 b(\(colon)h(mo)r(de\))20 277 y +SDict begin H.S end + 20 277 a 20 277 +a +SDict begin 12 H.A end + 20 277 a 20 277 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.6.3.14) cvn /DEST pdfmark +end + 20 277 a 83 x Fi(6.3.14.)57 b(Sonstige)37 +b(K)m(ommandos:)369 513 y Fd(G)389 b(zeigt)41 b(den)i +(Dateistatus)c(und)j(die)g(momentane)e(Zeilennummer)369 +613 y(ZZ)609 b(speichert)40 b(die)i(Datei)f(und)i(beendet)d(vi)369 +712 y(L)389 b(erneuert)40 b(den)i(Bildschirm)20 +856 y +SDict begin H.S end + 20 856 a 20 856 a +SDict begin 12 H.A end + 20 856 a 20 856 a +SDict begin [/View [/XYZ H.V]/Dest (section.6.4) cvn /DEST pdfmark +end + 20 856 a 131 +x Fe(6.4.)68 b(K)l(ommandomo)t(dus)42 b(\(colon)k(mo)t(de\))20 +1169 y Fk(Um)28 b(in)g(den)g(K)n(ommandomo)r(dus)e(zu)h(gelangen)g(m)n +(uss)g(:)g(eingegeb)r(en)g(w)n(erden.)20 1301 y +SDict begin H.S end + 20 1301 +a 20 1301 a +SDict begin 12 H.A end + 20 1301 a 20 1301 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.6.4.1) cvn /DEST pdfmark +end + 20 1301 a 100 x Fi(6.4.1.)57 +b(T)-9 b(exteingab)s(e)35 b(K)m(ommandos)369 1554 y Fd(q\(!\))521 +b(Editor)41 b(verlassen)369 1654 y(wq)609 b(Editor)41 +b(mit)h(speichern)e(verlassen)369 1754 y(xit)565 b(arbeitet)40 +b(wie)i(wq,)h(speichert)c(nur)k(bei)f(einer)g(\304nderung)369 +1853 y(x\(!\))521 b(Editor)41 b(mit)h(speichern)e(verlassen)369 +1953 y(w\(!\))i(Name)303 b(Datei)41 b(mit)i(Namen)e(speichern)369 +2053 y(h)653 b(Hilfe)41 b(anfordern)369 2252 y(args)h(Dateien)171 +b(Liste)41 b(der)i(Dateien)d(anlegen)369 2351 y(args)521 +b(Dateien)41 b(auflisten)369 2451 y(next\(!\))389 b(schaltet)40 +b(zur)i(n\344chsten)f(Datei)369 2551 y(previous\(!\))213 +b(schaltet)40 b(zur)i(vorhergehenden)c(Datei)369 2650 +y(rewind\(!\))301 b(schaltet)40 b(zur)i(ersten)f(Datei)369 +2850 y(edit\(!\))f(Datei)129 b(dient)41 b(zum)i(wechseln)d(der)i(Datei) +369 3049 y(!Befehl)389 b(externen)40 b(Befehl)h(ausf\374hren)3037 +5092 y Fk(65)p eop end +%%Page: 66 66 +TeXDict begin 66 65 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 a +632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.66) cvn /DEST pdfmark end + 632 -5 a eop end +%%Page: 67 67 +TeXDict begin 67 66 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a 12 +-5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.67) cvn /DEST pdfmark end + 12 -5 a 20 277 a +SDict begin H.S end + 20 277 a 20 277 +a +SDict begin 12 H.A end + 20 277 a 20 277 a +SDict begin [/View [/XYZ H.V]/Dest (chapter.7) cvn /DEST pdfmark end + 20 277 a 520 x Fm(7.)100 b(LaT)-17 +b(eX)20 969 y +SDict begin H.S end + 20 969 a 20 969 a +SDict begin 12 H.A end + 20 969 a 20 969 a +SDict begin [/View [/XYZ H.V]/Dest (section.7.1) cvn /DEST pdfmark +end + 20 +969 a 149 x Fe(7.1.)68 b(L)327 1094 y Fj(A)367 1118 y +Fe(T)437 1145 y(E)501 1118 y(X)20 1300 y Fk(L)42 1283 +y Fg(A)79 1300 y Fk(T)125 1318 y(E)171 1300 y(X)3037 +5092 y(67)p eop end +%%Page: 68 68 +TeXDict begin 68 67 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 a +632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.68) cvn /DEST pdfmark end + 632 -5 a eop end +%%Page: 69 69 +TeXDict begin 69 68 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a 12 +-5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.69) cvn /DEST pdfmark end + 12 -5 a 20 1610 a +SDict begin H.S end + 20 1610 a 20 1610 +a +SDict begin 12 H.A end + 20 1610 a 20 1610 a +SDict begin [/View [/XYZ H.V]/Dest (part.3) cvn /DEST pdfmark end + 20 1610 a 1265 1788 a Fm(T)-17 +b(eil)68 b(I)6 b(I)g(I.)610 2203 y Ff(Linux)82 b(im)g(Netzw)-7 +b(erk)3037 5092 y Fk(69)p eop end +%%Page: 70 70 +TeXDict begin 70 69 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 a +632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.70) cvn /DEST pdfmark end + 632 -5 a eop end +%%Page: 71 71 +TeXDict begin 71 70 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a 12 +-5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.71) cvn /DEST pdfmark end + 12 -5 a 20 277 a +SDict begin H.S end + 20 277 a 20 277 +a +SDict begin 12 H.A end + 20 277 a 20 277 a +SDict begin [/View [/XYZ H.V]/Dest (chapter.8) cvn /DEST pdfmark end + 20 277 a 520 x Fm(8.)100 b(Netzw)-6 +b(erk)20 1057 y Fd(Rechnername)562 b(Name)42 b(den)g(der)g(Rechner)f +(im)i(Netzwerk)d(hat,)1066 1157 y(sollte)h(nicht)g(mehr)h(als)h(acht)e +(Zeichen)g(haben,)1066 1257 y(darf)h(im)h(lokalen)d(Netzwerk)g(noch)i +(nicht)g(vergeben)e(sein)20 1356 y(Domainname)606 b(Name)42 +b(zur)g(Gliederung)d(von)k(Netzwerken)20 1456 y(Top-Level-Domain)342 +b(umfasst)41 b(h\366chstens)e(vier)j(Buchstaben)1066 +1556 y(Beispiel:)e(Rechnername.Dom)o(ai)o(nna)o(me)o(.T)o(op-)o(Le)o +(vel)o(-D)o(om)o(ain)d(->)1502 1655 y(voyager.startre)o(k.)o(foe)20 +1755 y(IP-Adresse)606 b(Adresse)41 b(des)h(Rechners)e(im)j(Netzwerk,) +1066 1854 y(jede)f(Netzwerkschnitt)o(ste)o(ll)o(e\()o(z.B)o(.)37 +b(Netzwerk-)j(oder)1066 1954 y(ISDN-Karte\))f(hat)j(im)h(Netzwerk)d +(mindestens)f(eine)j(Adresse)1066 2054 y(die)g(eindeutig)e(ist,)i(die)g +(Adresse)f(besteht)f(derzeit)h(aus)1066 2153 y(einer)g(Sequenz)g(von)h +(vier)g(Bytes)g(die)g(durch)f(Punkte)g(getrennt)1066 +2253 y(sind)h(z.B.)g(192.168.20.40)c(,)43 b(f\374r)f(private)f(Netze)g +(sind)h(durch)1066 2353 y(das)g(Arbeitspapier)c(RFC)43 +b(1597)e(drei)h(Adressbereiche)1066 2452 y(vorgesehen)d(die)k(nicht)e +(geroutet)f(werden:)1066 2552 y(10.0.0.0)171 b(->)43 +b(10.255.255.255)81 b(\(Class)41 b(A-Netz\))1066 2651 +y(172.16.0.0)83 b(->)43 b(172.31.255.255)81 b(\(Class)41 +b(B-Netz\))1066 2751 y(192.168.0.0)e(->)k(192.168.255.255)37 +b(\(Class)k(C-Netz\))20 2851 y(Gatewayadresse)430 b(IP-Adresse)39 +b(des)k(Ger\344tes)d(die)i(das)h(Weiterleiten)1066 2950 +y(von)f(Netzwerkpaketen)37 b(in)43 b(das)f(fremde)f(Netz)h +(\374bernimmt)20 3050 y(Netzwerkmaske)474 b(sagt)42 b(aus)g(welcher)f +(Teil)h(der)g(IP-Adresse)1066 3150 y(zum)g(lokale)f(Netzwerk)f +(geh\366rt)h(z.B.)h(255.255.255.0)20 3249 y(####)g(in)h(arbeit)e +(###############)o(###)o(##)o(##)o(###)o(##)o(##)o(###)o(##)o(##)o(###) +20 3349 y(OSI)217 b(Open)42 b(System)f(Interconnektion)20 +3448 y(IEEE)20 3548 y(ISO)20 3648 y(MAC-Adresse)562 b(006097)41 +b(370cae)1066 3747 y(------)g(------)1066 3847 y(Herstellerabh\344ng)o +(ig)1415 3947 y(laufendeNr.)20 4046 y(Ethernet-adresse)20 +4146 y(Node-Addresse)20 4245 y(NIC-Adresse)20 4345 y(udp)20 +4445 y(tcp/ip)20 4544 y(nfs)20 4644 y(ftp)20 4744 y(Portnummer/Kanal)o +(nu)o(mme)o(r)3037 5092 y Fk(71)p eop end +%%Page: 72 72 +TeXDict begin 72 71 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 a +632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.72) cvn /DEST pdfmark end + 632 -5 a 640 128 a Fh(8.)41 +b(Netzw)n(erk)640 360 y Fd(16Bit)h(65535)f(pro)h(udp)h(pro)f(tcp/ip)640 +460 y(/etc/services)640 559 y(0-1023)f(well)h(known)g(Ports)f(IANA)640 +659 y(1024-49151)e(registrierte)g(Ports)640 758 y(->65535)i +(dynamische,)e(privat)640 858 y(################)o(###)o(##)o(##)o(###) +o(##)o(##)o(###)o(##)o(##)o(###)o(##)o(##)o(###)o(##)o(###)o(##)640 +5092 y Fk(72)p eop end +%%Page: 73 73 +TeXDict begin 73 72 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a 12 +-5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.73) cvn /DEST pdfmark end + 12 -5 a 20 277 a +SDict begin H.S end + 20 277 a 20 277 +a +SDict begin 12 H.A end + 20 277 a 20 277 a +SDict begin [/View [/XYZ H.V]/Dest (chapter.9) cvn /DEST pdfmark end + 20 277 a 520 x Fm(9.)100 b(Apache)20 +1002 y +SDict begin H.S end + 20 1002 a 20 1002 a +SDict begin 12 H.A end + 20 1002 a 20 1002 a +SDict begin [/View [/XYZ H.V]/Dest (section.9.1) cvn /DEST pdfmark +end + 20 1002 +a 116 x Fe(9.1.)68 b(Einleitung)20 1301 y Fk(Der)26 b(Apac)n(he)f(W)-7 +b(ebserv)n(er)25 b(ist)h(ein)g(Programm)f(das)g(im)h(Netzw)n +(erk\(WWW\),)h(b)r(ei)g(Anfragen)e(mit)20 1400 y(einem)j(W)-7 +b(ebbro)n(wser,)26 b(W)-7 b(ebsites\(HTTP-Protok)n(oll\))27 +b(ausgeb)r(en)g(k)-5 b(ann.)103 1500 y(Die)19 b(Anfragen)f(w)n(erden)f +(als)h(URL)h(angegeb)r(en.)e(Beispiel:)h(Sc)n(hema://Hostname:P)n +(ort/Serv)n(er-)20 1600 y(Pfad)28 b(->)f(h)n(ttp://www.apac)n +(he.org:80/man)n(ual/)20 1746 y +SDict begin H.S end + 20 1746 a 20 1746 a +SDict begin 12 H.A end + 20 +1746 a 20 1746 a +SDict begin [/View [/XYZ H.V]/Dest (section.9.2) cvn /DEST pdfmark +end + 20 1746 a 129 x Fe(9.2.)68 b(K)l(ompilieren)45 +b(und)g(Installieren)20 1980 y +SDict begin H.S end + 20 1980 a 20 1980 a +SDict begin 12 H.A end + 20 +1980 a 20 1980 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.9.2.1) cvn /DEST pdfmark +end + 20 1980 a 94 x Fi(9.2.1.)57 b(Anfo)m(rderungen)145 +2227 y Fb(\210)41 b Fk(Apac)n(he-Quellco)r(de)26 b(1.3,)h(erh\344ltlic) +n(h)f(b)r(ei)i(h)n(ttp://www.apac)n(he.org/)145 2394 +y Fb(\210)41 b Fk(mo)r(d_ssl)26 b(1.3,)h(erh\344ltlic)n(h)g(b)r(ei)h(h) +n(ttp://www.mo)r(dssl.org/)145 2560 y Fb(\210)41 b Fk(Apac)n +(he-Quellco)r(de)26 b(2.0,)h(erh\344ltlic)n(h)f(b)r(ei)i(h)n +(ttp://www.apac)n(he.org/)145 2727 y Fb(\210)41 b Fk(Op)r +(enSSL-Quellco)r(de)26 b(0.9.x,)h(erh\344ltlic)n(h)g(b)r(ei)h(h)n +(ttp://www.op)r(enssl.org/)145 2893 y Fb(\210)41 b Fk(Lin)n(ux)18 +b(ab)g(2.4.xx\(z.B.Debian)f(Sarge)g(3.1\),)h(libgdbm2-dev)n(el\(ndbm.h) +g(->)g(gdbm-ndbm.h\))145 3060 y Fb(\210)41 b Fk(ANSI-C-Compiler)20 +b(und)h(Generierungsw)n(erkzeuge,)c(GNU)22 b(C)e(Compiler)g(\(GCC\))i +(ab)e(V)-7 b(er-)228 3160 y(sion)27 b(2.7.2,)f(w)n(esen)n(tlic)n(he)h +(Generierungsw)n(erkzeuge)d(wie)j(mak)n(e)145 3326 y +Fb(\210)41 b Fk(Zeitgenauigk)n(eit)26 b(b)r(ew)n(ahren,)g(n)n(tp)r +(date)i(o)r(der)f(xn)n(tp)r(d\(NTP\))145 3493 y Fb(\210)41 +b Fk(P)n(erl)27 b(5\(optional\),)g(V)-7 b(ersion)27 b(ab)g(5.003)f(h)n +(ttp://www.p)r(erl.com/)145 3660 y Fb(\210)41 b Fk +(PureFTPd\(optional\),)28 b(V)-7 b(ersion)27 b(ab)g(5.003)f(h)n +(ttp://www.p)r(erl.com/)20 3797 y +SDict begin H.S end + 20 3797 a 20 3797 a +SDict begin 12 H.A end + +20 3797 a 20 3797 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.9.2.2) cvn /DEST pdfmark +end + 20 3797 a 96 x Fi(9.2.2.)57 b(V)m(o)m(rb)s +(ereitungen)20 4046 y Fd(su)1655 b(als)42 b(root)g(anmelden)20 +4146 y(mkdir)g(/usr/local/src)865 b(das)42 b(Verzeichnis)d +(/usr/local/src)f(anlegen,)1763 4245 y(wenn)k(es)h(noch)f(nicht)f +(vorhanden)f(ist)20 4345 y(chmod)i(777)g(/usr/local/src)691 +b(Verzeichnis-Rech)o(te)37 b(setzen)20 4445 y(ln)43 b(-s)g +(/usr/include/gd)o(bm)o(-n)o(dbm)o(.h)37 b(/usr/include/ndb)o(m.)o(h) +1763 4544 y(Link)42 b(zu)h(ndbm.h)20 4644 y(exit)1567 +b(root)42 b(abmelden)20 4744 y(cp)h(Quelldateien)38 b(/usr/local/src) +430 b(Quelldateien)39 b(kopieren)3037 5092 y Fk(73)p +eop end +%%Page: 74 74 +TeXDict begin 74 73 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 a +632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.74) cvn /DEST pdfmark end + 632 -5 a 640 128 a Fh(9.)41 +b(Apac)n(he)640 277 y +SDict begin H.S end + 640 277 a 640 277 a +SDict begin 12 H.A end + 640 277 a 640 +277 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.9.2.3) cvn /DEST pdfmark +end + 640 277 a 83 x Fi(9.2.3.)57 b(Op)s(enSSL)640 523 +y Fd(cd)43 b(/usr/local/src)996 b(Verzeichnis)39 b(wechseln)640 +623 y(tar)j(xvfz)g(openssl-0.9.7d.ta)o(r.)o(gz)429 b(Quelldateien)39 +b(entpacken)640 723 y(cd)k(openssl-0.9.7d)996 b(in)43 +b(das)f(Quelldatei-Verze)o(ich)o(ni)o(s)37 b(wechseln)640 +822 y(./config)j(--help)1087 b(Hilfe)42 b(zu)g(den)h(m\366glichen)c +(Optionen)640 922 y(./config)h(--prefix=/usr/loc)o(al)o(/o)o(pen)o(ss)o +(l/)o(0.9)o(.7)o(d)2383 1022 y(Codebaum)g(konfigurieren)e(und)2383 +1121 y(Installations-Ve)o(rze)o(ic)o(hn)o(is)f(angeben)640 +1221 y(make)1567 b(Programm)40 b(herstellen)640 1320 +y(make)i(test)1349 b(Programm)40 b(testen)640 1420 y(su)1655 +b(als)42 b(root)g(anmelden)640 1520 y(make)g(install)1217 +b(Programm)40 b(installieren)640 1619 y(ln)j(-s)g(/usr/local/open)o(ss) +o(l/0)o(.9)o(.7)o(d)38 b(/usr/local/open)o(ss)o(l/c)o(ur)o(re)o(nt)2383 +1719 y(Link)k(zu)h(OpenSSL)640 1819 y(exit)1567 b(root)42 +b(abmelden)640 1958 y +SDict begin H.S end + 640 1958 a 640 1958 a +SDict begin 12 H.A end + 640 1958 +a 640 1958 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.9.2.4) cvn /DEST pdfmark +end + 640 1958 a 122 x Fi(9.2.4.)57 b(Apache)36 +b(1.3)h(und)f(SSL)640 2243 y Fd(cd)43 b(/usr/local/src)996 +b(Verzeichnis)39 b(wechseln)640 2343 y(tar)j(xvfz)g(apache_1.3.31.tar)o +(.g)o(z)473 b(Quelldateien)39 b(entpacken)640 2443 y(tar)j(xvfz)g +(mod_ssl-2.8.19-1.)o(3.)o(31)o(.ta)o(r.)o(gz)124 b(Quelldateien)39 +b(entpacken)640 2542 y(cd)k(apache_1.3.31)1040 b(in)43 +b(das)f(Quelldatei-Verze)o(ich)o(ni)o(s)37 b(wechseln)640 +2642 y(./configure)i(--help)956 b(Hilfe)42 b(zu)g(den)h(m\366glichen)c +(Optionen)640 2741 y(cd)k(../mod_ssl-2.8.1)o(9-)o(1.)o(3.3)o(1)640 +2841 y(./configure)c(--help)956 b(Hilfe)42 b(zu)g(den)h(m\366glichen)c +(Optionen)640 2941 y(./configure)g(--with-apache=..)o(/a)o(pac)o(he)o +(_1)o(.3.)o(31)1163 3040 y(--with-ssl=../op)o(en)o(ssl)o(-0)o(.9)o(.7d) +1163 3140 y(--prefix=/usr/lo)o(ca)o(l/a)o(pa)o(ch)o(e/1)o(.3)o(.3)o(1) +1163 3240 y(--datadir=/srv/w)o(ww)1163 3339 y(--enable-module=)o(mo)o +(st)1163 3439 y(--enable-shared=)o(ma)o(x)1163 3538 y(--enable-module=) +o(ss)o(l)640 3638 y(cd)k(../apache_1.3.31)908 b(in)43 +b(das)f(Quelldatei-Verze)o(ich)o(ni)o(s)37 b(wechseln)640 +3738 y(make)1567 b(Programm)40 b(herstellen)640 3837 +y(make)i(certificate)d(TYPE=custom)518 b(Zertifikat)40 +b(erzeugen)640 3995 y +SDict begin H.S end + 640 3995 a 640 3995 a +SDict begin 12 H.A end + 640 3995 +a 640 3995 a +SDict begin [/View [/XYZ H.V]/Dest (subsubsection*.3) cvn /DEST pdfmark +end + 640 3995 a 640 4082 a +SDict begin H.S end + 640 4082 a 640 4082 +a +SDict begin 12 H.A end + 640 4082 a 640 4082 a +SDict begin [/View [/XYZ H.V]/Dest (section*.2) cvn /DEST pdfmark end + 640 4082 a Fj(Angab)s(en)28 b(zu)i(der)g +(Certi\034cate)g(Autho)m(rit)m(y)640 4245 y Fd(Signature)40 +b(Algorithm)g(\(\(R\)SA)h(or)h(\(D\)SA\))f([R]:R)640 +4345 y(1.)i(Country)d(Name)565 b(\(2)43 b(letter)e(code\))g([XY]:DE)640 +4445 y(2.)i(State)e(or)i(Province)d(Name)129 b(\(full)42 +b(name\))215 b([Snake)42 b(Desert]:Nieders)o(ac)o(hs)o(en)640 +4544 y(3.)h(Locality)d(Name)521 b(\(eg,)42 b(city\))259 +b([Snake)42 b(Town]:Salzgitte)o(r)640 4644 y(4.)h(Organization)38 +b(Name)347 b(\(eg,)42 b(company\))127 b([Snake)42 b(Oil,)f(Ltd]:Komtek) +640 4744 y(5.)i(Organizational)38 b(Unit)j(Name)h(\(eg,)g(section\))127 +b([Certificate)39 b(Authority]:CA)640 5092 y Fk(74)p +eop end +%%Page: 75 75 +TeXDict begin 75 74 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a 12 +-5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.75) cvn /DEST pdfmark end + 12 -5 a 1911 128 a Fh(9.2.)41 b(K)n(ompilieren)26 +b(und)i(Installieren)20 360 y Fd(6.)43 b(Common)e(Name)608 +b(\(eg,)42 b(CA)h(name\))128 b([Snake)41 b(Oil)i(CA]:Komtek)c(CA)20 +460 y(7.)k(Email)e(Address)520 b(\(eg,)42 b(name@FQDN\))d +([ca@snakeoil.dom])o(:c)o(a@k)o(om)o(te)o(k.d)o(e)20 +559 y(8.)k(Certificate)c(Validity)214 b(\(days\))433 +b([365]:365)20 659 y(Certificate)39 b(Version)i(\(1)h(or)h(3\))g([3]:3) +20 860 y +SDict begin H.S end + 20 860 a 20 860 a +SDict begin 12 H.A end + 20 860 a 20 860 a +SDict begin [/View [/XYZ H.V]/Dest (subsubsection*.5) cvn /DEST pdfmark +end + 20 860 a +20 970 a +SDict begin H.S end + 20 970 a 20 970 a +SDict begin 12 H.A end + 20 970 a 20 970 a +SDict begin [/View [/XYZ H.V]/Dest (section*.4) cvn /DEST pdfmark end + 20 970 a +Fj(Angab)s(en)28 b(zum)i(Serverzerti\034k)m(at)20 1157 +y Fd(1.)43 b(Country)d(Name)565 b(\(2)43 b(letter)e(code\))g([XY]:DE)20 +1257 y(2.)i(State)e(or)i(Province)d(Name)129 b(\(full)42 +b(name\))215 b([Snake)41 b(Desert]:Niedersac)o(hs)o(en)20 +1356 y(3.)i(Locality)d(Name)521 b(\(eg,)42 b(city\))259 +b([Snake)41 b(Town]:Salzgitter)20 1456 y(4.)i(Organization)38 +b(Name)347 b(\(eg,)42 b(company\))127 b([Snake)41 b(Oil,)h(Ltd]:Komtek) +20 1556 y(5.)h(Organizational)37 b(Unit)42 b(Name)g(\(eg,)g(section\)) +127 b([Webserver)40 b(Team]:Webmaster)20 1655 y(6.)j(Common)e(Name)608 +b(\(eg,)42 b(FQDN\))259 b([www.snakeoil.dom)o(]:)o(www)o(.k)o(om)o(tek) +o(.d)o(e)20 1755 y(7.)43 b(Email)e(Address)520 b(\(eg,)42 +b(name@fqdn\))d([www@snakeoil.dom)o(]:)o(www)o(@w)o(ww)o(.ko)o(mt)o(ek) +o(.de)20 1854 y(8.)k(Certificate)c(Validity)214 b(\(days\))433 +b([365]:365)20 1954 y(Certificate)39 b(Version)i(\(1)h(or)h(3\))g +([3]:3)20 2155 y +SDict begin H.S end + 20 2155 a 20 2155 a +SDict begin 12 H.A end + 20 2155 a 20 2155 +a +SDict begin [/View [/XYZ H.V]/Dest (subsubsection*.7) cvn /DEST pdfmark +end + 20 2155 a 20 2265 a +SDict begin H.S end + 20 2265 a 20 2265 a +SDict begin 12 H.A end + 20 2265 a 20 +2265 a +SDict begin [/View [/XYZ H.V]/Dest (section*.6) cvn /DEST pdfmark end + 20 2265 a Fj(Schl\374ssel)30 b(verschl\374sseln)20 +2452 y Fd(Encrypt)41 b(the)h(private)f(key)h(now?)g([Y/n]:)f(n)20 +2552 y(Encrypt)g(the)h(private)f(key)h(now?)g([Y/n]:)f(n)20 +2751 y(su)1655 b(als)42 b(root)g(anmelden)20 2851 y(make)g(install)20 +2950 y(groupadd)e(wwwadmin)999 b(Gruppe)41 b(wwwadmin)f(anlegen)20 +3050 y(chown)i(-R)g(nobody:wwwadmin)37 b(/srv/www)302 +b(Rechte)41 b(f\374r)h(das)h(www-Verzeichnis)37 b(setzen)20 +3150 y(ln)43 b(-s)g(/usr/local/apac)o(he)o(/1)o(.3.)o(31)37 +b(/usr/local/apach)o(e/)o(cu)o(rre)o(nt)1763 3249 y(Link)42 +b(zu)h(Apache)e(1.3)20 3349 y(ln)i(-s)g(/usr/local/apac)o(he)o(/c)o +(urr)o(en)o(t/c)o(on)o(f)37 b(/etc/apache)1763 3448 y(Link)42 +b(zu)h(den)f(Konfigurationen)20 3548 y(ln)h(-s)g(/usr/local/apac)o(he)o +(/c)o(urr)o(en)o(t/l)o(og)o(s)37 b(/var/log/apache)1763 +3648 y(Link)42 b(zu)h(den)f(Logdateien)20 3747 y(ln)h(-s)g +(/usr/local/apac)o(he)o(/c)o(urr)o(en)o(t/b)o(in)o(/a)o(pac)o(he)o(ct)o +(l)38 b(/usr/local/bin)1763 3847 y(Link)k(zu)h(apachectl)20 +3947 y(ln)g(-s)g(/usr/local/apac)o(he)o(/c)o(urr)o(en)o(t/b)o(in)o(/a)o +(pac)o(he)o(ct)o(l)38 b(/etc/init.d/apa)o(ch)o(e)1763 +4046 y(Link)k(zu)h(den)f(Startdateien)20 4146 y(cd)h(/etc/rc5.d)1172 +b(in)43 b(den)f(Start-Runlevel)c(wechseln)20 4245 y(ln)43 +b(-s)g(../init.d/apach)o(e)37 b(S20apache)345 b(Link)42 +b(zum)g(automatischen)c(Starten)20 4345 y(cd)43 b(../rc0.d)1260 +b(in)43 b(den)f(Stopp-Runlevel)c(wechseln)20 4445 y(ln)43 +b(-s)g(../init.d/apach)o(e)37 b(K20apache)345 b(Link)42 +b(zum)g(automatischen)c(Beenden)20 4544 y(cd)43 b(../rc6.d)1260 +b(in)43 b(den)f(Start-Runlevel)c(wechseln)20 4644 y(ln)43 +b(-s)g(../init.d/apach)o(e)37 b(K20apache)345 b(Link)42 +b(zum)g(automatischen)c(Beenden)20 4744 y(exit)1567 b(root)42 +b(abmelden)3037 5092 y Fk(75)p eop end +%%Page: 76 76 +TeXDict begin 76 75 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 a +632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.76) cvn /DEST pdfmark end + 632 -5 a 640 128 a Fh(9.)41 +b(Apac)n(he)640 277 y +SDict begin H.S end + 640 277 a 640 277 a +SDict begin 12 H.A end + 640 277 a 640 +277 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.9.2.5) cvn /DEST pdfmark +end + 640 277 a 83 x Fi(9.2.5.)57 b(Apache2)640 546 y +Fd(cd)43 b(/usr/local/src)996 b(Verzeichnis)39 b(wechseln)640 +646 y(tar)j(xvfz)g(httpd-2.0.51.tar.)o(gz)516 b(Quelldateien)39 +b(entpacken)640 745 y(cd)k(httpd-2.0.51)1084 b(in)43 +b(das)f(Quelldatei-Verze)o(ich)o(ni)o(s)37 b(wechseln)640 +845 y(./configure)i(--help)956 b(Hilfe)42 b(zu)g(den)h(m\366glichen)c +(Optionen)640 944 y(./configure)g(--prefix=/usr/lo)o(ca)o(l/a)o(pa)o +(ch)o(e2/)o(2.)o(0.)o(51)1163 1044 y(--with-ssl=../op)o(en)o(ssl)o(-0)o +(.9)o(.7d)1163 1144 y(--datadir=/srv/w)o(ww)o(2)1163 +1243 y(--enable-module=)o(mo)o(st)1163 1343 y(--enable-shared=)o(ma)o +(x)1163 1443 y(--enable-module=)o(ss)o(l)1163 1542 y(--with-port=81)604 +b(da)43 b(auf)f(80)h(schon)e(der)i(Apache)e(1.3)h(l\344uft)640 +1642 y(make)1567 b(Programm)40 b(herstellen)640 1741 +y(su)1655 b(als)42 b(root)g(anmelden)640 1841 y(make)g(install)1217 +b(Programm)40 b(installieren)f(\(als)j(root!\))640 1941 +y(groupadd)e(wwwadmin)999 b(Gruppe)41 b(wwwadmin)f(anlegen)640 +2040 y(chown)i(-R)g(nobody:wwwadmin)c(/srv/www2)257 b(Rechte)41 +b(f\374r)i(das)f(www-Verzeichnis)37 b(setzen)640 2140 +y(ln)43 b(-s)g(/usr/local/apac)o(he)o(2/2)o(.0)o(.5)o(1)38 +b(/usr/local/apac)o(he)o(2/c)o(ur)o(re)o(nt)2383 2240 +y(Link)k(zu)h(Apache)e(2)640 2339 y(ln)i(-s)g(/usr/local/apac)o(he)o +(2/c)o(ur)o(re)o(nt/)o(co)o(nf)37 b(/etc/apache2)2383 +2439 y(Link)42 b(zu)h(den)f(Konfigurationen)640 2538 +y(ln)h(-s)g(/usr/local/apac)o(he)o(2/c)o(ur)o(re)o(nt/)o(lo)o(gs)37 +b(/var/log/apache2)2383 2638 y(Link)42 b(zu)h(den)f(Logdateien)640 +2738 y(ln)h(-s)g(/usr/local/apac)o(he)o(2/c)o(ur)o(re)o(nt/)o(bi)o(n/)o +(apa)o(ch)o(ec)o(tl)37 b(/usr/local/bin/a)o(pac)o(he)o(ct)o(l2)2383 +2837 y(Link)42 b(zu)h(apachectl)640 2937 y(ln)g(-s)g(/usr/local/apac)o +(he)o(2/c)o(ur)o(re)o(nt/)o(bi)o(n/)o(apa)o(ch)o(ec)o(tl)37 +b(/etc/init.d/apac)o(he2)2383 3037 y(Link)42 b(zu)h(den)f(Startdateien) +640 3136 y(cd)h(/etc/rc5.d)1172 b(in)43 b(den)f(Start-Runlevel)c +(wechseln)640 3236 y(ln)43 b(-s)g(../init.d/apach)o(e2)37 +b(S20apache2)257 b(Link)42 b(zum)g(automatischen)c(Starten)640 +3335 y(cd)43 b(../rc0.d)1260 b(in)43 b(den)f(Stopp-Runlevel)c(wechseln) +640 3435 y(ln)43 b(-s)g(../init.d/apach)o(e2)37 b(K20apache2)257 +b(Link)42 b(zum)g(automatischen)c(Beenden)640 3535 y(cd)43 +b(../rc6.d)1260 b(in)43 b(den)f(Start-Runlevel)c(wechseln)640 +3634 y(ln)43 b(-s)g(../init.d/apach)o(e2)37 b(K20apache2)257 +b(Link)42 b(zum)g(automatischen)c(Beenden)640 3734 y(exit)1567 +b(root)42 b(abmelden)640 3926 y +SDict begin H.S end + 640 3926 a 640 3926 a +SDict begin 12 H.A end + +640 3926 a 640 3926 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.9.2.6) cvn /DEST pdfmark +end + 640 3926 a 134 x Fi(9.2.6.)57 b(T)-9 +b(esten)640 4245 y Fd(/etc/init.d/apac)o(he)37 b(start)695 +b(Apache1.3)40 b(starten)640 4345 y(/etc/init.d/apac)o(he2)d(start)651 +b(Apache2)41 b(starten)640 4445 y(Browser)g(http://localhos)o(t/)647 +b(Apache1.3)40 b(testen)640 4544 y(Browser)h(http://localhos)o(t:8)o +(1/)516 b(Apache2)41 b(testen)640 4644 y(/etc/init.d/apac)o(he)c(stop) +739 b(Apache1.3)40 b(beenden)640 4744 y(/etc/init.d/apac)o(he2)d(stop) +695 b(Apache2)41 b(beenden)640 5092 y Fk(76)p eop end +%%Page: 77 77 +TeXDict begin 77 76 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a 12 +-5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.77) cvn /DEST pdfmark end + 12 -5 a 1911 128 a Fh(9.2.)41 b(K)n(ompilieren)26 +b(und)i(Installieren)20 277 y +SDict begin H.S end + 20 277 a 20 277 a +SDict begin 12 H.A end + 20 277 +a 20 277 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.9.2.7) cvn /DEST pdfmark +end + 20 277 a 83 x Fi(9.2.7.)57 b(Upgrade)20 525 +y Fd(./config.nice)1171 b(aus)42 b(der)h(letzten)d(Installation)f +(entnehmen,)1763 625 y(Apache2)20 788 y +SDict begin H.S end + 20 788 a 20 788 +a +SDict begin 12 H.A end + 20 788 a 20 788 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.9.2.8) cvn /DEST pdfmark +end + 20 788 a 104 x Fi(9.2.8.)57 b(PureFTPd)20 +1057 y Fd(cd)43 b(/usr/local/src)996 b(Verzeichnis)39 +b(wechseln)20 1157 y(tar)j(xvfz)g(pure-ftpd-1.0.20)o(.ta)o(r.)o(gz)342 +b(Quelldateien)39 b(entpacken)20 1257 y(cd)k(pure-ftpd-1.0.2)o(0)909 +b(Verzeichnis)39 b(wechseln)20 1356 y(./configure)g(--prefix=/usr/lo)o +(ca)o(l/p)o(ur)o(e-)o(ftp)o(d/)o(1.)o(0.2)o(0)e(--with-language=g)o(er) +o(ma)o(n)1763 1456 y(Makefile)j(herstellen)20 1556 y(make)1567 +b(Programm)40 b(herstellen)20 1655 y(make)i(check)1305 +b(Programm)40 b(pr\374fen)20 1755 y(su)1655 b(als)42 +b(root)g(anmelden)20 1854 y(make)g(install)1217 b(Programm)40 +b(installieren)20 1954 y(ln)j(-s)g(/usr/local/pure)o(-f)o(tp)o(d/1)o +(.0)o(.20)37 b(/usr/local/pure)o(-f)o(tpd)o(/c)o(ur)o(ren)o(t)1763 +2054 y(Link)42 b(zu)h(pure-ftpd)20 2153 y(mkdir)f(/usr/local/pure)o(-f) +o(tp)o(d/c)o(ur)o(ren)o(t/)o(et)o(c)81 b(Verzeichnis)39 +b(etc)j(anlegen)20 2253 y(cp)h(configuration-f)o(ile)o(/p)o(ur)o(e-f)o +(tp)o(d.c)o(on)o(f)37 b(/usr/local/pure-f)o(tp)o(d/)o(cur)o(re)o(nt/)o +(et)o(c)1763 2353 y(Konfiguration)h(kopieren)20 2452 +y(cp)43 b(pureftpd-*.conf)37 b(/usr/local/pure-)o(ft)o(pd/)o(cu)o(rr)o +(ent)o(/e)o(tc)1763 2552 y(Konfigurationen)g(kopieren)20 +2651 y(ln)43 b(-s)g(/usr/local/pure)o(-f)o(tp)o(d/c)o(ur)o(ren)o(t/)o +(et)o(c)38 b(/etc/pure-ftpd)1763 2751 y(Link)k(zu)h(den)f +(Konfigurationen)20 2950 y(vi)h(/etc/init.d/pur)o(e-f)o(tp)o(d)691 +b(Startdatei)39 b(f\374r)k(pure-ftpd)d(anlegen)64 3050 +y(#!/bin/bash)64 3150 y(case)i("$1")f(in)107 3249 y(start\))151 +3349 y(echo)h("pureftpd)d(wird)j(gestartet)e(...")151 +3448 y(cd)j(/usr/local/pure)o(-f)o(tp)o(d/c)o(ur)o(ren)o(t)151 +3548 y(./sbin/pure-ftp)o(d)38 b(&)107 3648 y(;;)107 3747 +y(stop\))151 3847 y(echo)k("pureftpd)d(wird)j(heruntergefahren)37 +b(...")151 3947 y(kill)42 b(-TERM)f(`cat)h(/var/run/pure-ft)o(pd)o(.pi) +o(d`)107 4046 y(;;)107 4146 y(*\))107 4245 y(echo)g("Usage:)f($0)h +({start|stop}")151 4345 y(exit)g(1)107 4445 y(;;)64 4544 +y(esac)64 4644 y(exit)g(0)3037 5092 y Fk(77)p eop end +%%Page: 78 78 +TeXDict begin 78 77 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 a +632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.78) cvn /DEST pdfmark end + 632 -5 a 640 128 a Fh(9.)41 +b(Apac)n(he)640 360 y Fd(chmod)h(755)g(/etc/init.d/pure)o(-f)o(tp)o(d) +386 b(Rechte)41 b(setzen)640 460 y(cd)i(/etc/rc5.d)1172 +b(Verzechnis)40 b(wechseln)640 559 y(ln)j(-s)g(../init.d/pure-)o(ft)o +(pd)37 b(S20pure-ftpd)82 b(Link)42 b(zum)g(automatischen)c(Starten)640 +659 y(cd)43 b(/etc/rc0.d)1172 b(Verzechnis)40 b(wechseln)640 +758 y(ln)j(-s)g(../init.d/pure-)o(ft)o(pd)37 b(K20pure-ftpd)82 +b(Link)42 b(zum)g(automatischen)c(Beenden)640 858 y(cd)43 +b(/etc/rc6.d)1172 b(Verzechnis)40 b(wechseln)640 958 +y(ln)j(-s)g(../init.d/pure-)o(ft)o(pd)37 b(K20pure-ftpd)82 +b(Link)42 b(zum)g(automatischen)c(Beenden)640 1057 y(useradd)j(-g)h +(wwwadmin)f(-d)h(/srv)g(-s)h(/bin/false)c(wwwadmin)2383 +1157 y(Benutzer)h(wwwadmin)h(anlegen)640 1257 y(passwd)g(wwwadmin)1086 +b(Passwort)40 b(setzen)640 1456 y(NoAnonymous)736 b(yes)640 +1556 y(UnixAuthenticati)o(on)429 b(yes)640 1655 y(MinUID)956 +b(1000)640 1755 y(MinUID)g(1000)640 1854 y(TrustedGID)780 +b(1002)640 2153 y(exit)1567 b(root)42 b(abmelden)640 +2281 y +SDict begin H.S end + 640 2281 a 640 2281 a +SDict begin 12 H.A end + 640 2281 a 640 2281 a +SDict begin [/View [/XYZ H.V]/Dest (section.9.3) cvn /DEST pdfmark +end + 640 +2281 a 150 x Fe(9.3.)68 b(Apache)45 b(sta)l(rten)640 +2537 y +SDict begin H.S end + 640 2537 a 640 2537 a +SDict begin 12 H.A end + 640 2537 a 640 2537 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.9.3.1) cvn /DEST pdfmark +end + 640 +2537 a 94 x Fi(9.3.1.)57 b(Apache)36 b(sta)m(rten)640 +2786 y Fk(Un)n(ter)28 b(UNIX/Lin)n(ux)f(wird)g(das)g(h)n(ttp)r +(d-Progamm)g(als)g(Daemon)h(ausgef\374hrt.)640 2972 y +Fd(apachectl)40 b(start)739 b(Apache)41 b(starten)640 +3071 y(rcapache)f(start)783 b(Apache)41 b(starten\(SuSE-Li)o(nu)o(x\)) +640 3209 y +SDict begin H.S end + 640 3209 a 640 3209 a +SDict begin 12 H.A end + 640 3209 a 640 3209 +a +SDict begin [/View [/XYZ H.V]/Dest (subsection.9.3.2) cvn /DEST pdfmark +end + 640 3209 a 99 x Fi(9.3.2.)57 b(Wie)37 b(der)g(Apache)f(sta)m(rtet)765 +3462 y Fb(\210)41 b Fk(apac)n(hectl)26 b(ist)i(die)g(empfohlene)g +(Metho)r(de,)f(das)g(h)n(ttp)r(d-Programm)g(zu)h(starten)765 +3631 y Fb(\210)41 b Fk(apac)n(hectl)17 b(setzt)i(v)n(ersc)n(hiedene)d +(Umgebungsv)-5 b(ariablen)17 b(und)i(startet)f(das)g(h)n(ttp)r +(d-Programm)765 3800 y Fb(\210)41 b Fk(apac)n(hectl)26 +b(reic)n(h)n(t)h(alle)g(K)n(ommandozeilenargumen)n(te)e(durc)n(h)765 +3969 y Fb(\210)41 b Fk(als)28 b(erstes)g(liest)g(der)h(h)n(ttp)r(d)g +(die)g(K)n(on\034gurationsdatei)d(h)n(ttp)r(d.conf)k(ein,)f(die)g(b)r +(eim)g(K)n(om-)848 4068 y(pilieren)e(festgelegt)g(wurde)765 +4237 y Fb(\210)41 b Fk(zur)18 b(Laufzeit)g(k)-5 b(ann)18 +b(der)g(Ablageort)f(ge\344ndert)h(w)n(erden,)f(z.B.)i(apac)n(hectl)e +(-f)h(/etc/apac)n(he2/h)n(ttp)r(d.conf)765 4406 y Fb(\210)41 +b Fk(b)r(eim)28 b(erfolgreicehn)e(Start,)h(trenn)n(t)h(sic)n(h)f(der)g +(Serv)n(er)f(v)n(om)h(T)-7 b(erminal)27 b(ab)765 4575 +y Fb(\210)41 b Fk(bis)27 b(zum)h(P)n(ort)f(1024)f(m)n(uss)h(der)g(Apac) +n(he)g(ro)r(ot-Berec)n(h)n(tigung)e(b)r(esitzen)765 4744 +y Fb(\210)41 b Fk(der)27 b(Haupt-h)n(ttp)r(d-Prozess)g(l\344uft)h(un)n +(ter)f(dem)h(Ben)n(utzer)f(ro)r(ot)f(w)n(eiter)640 5092 +y(78)p eop end +%%Page: 79 79 +TeXDict begin 79 78 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a 12 +-5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.79) cvn /DEST pdfmark end + 12 -5 a 2400 128 a Fh(9.3.)41 b(Apac)n(he)27 +b(starten)145 360 y Fb(\210)41 b Fk(ist)27 b(der)h(Serv)n(er)e +(gestartet,)g(\366\033net)i(er)f(seine)h(Log-Dateien)145 +554 y Fb(\210)41 b Fk(der)27 b(Apac)n(he)g(startet)g(mehrere)g +(Kind-Prozesse)145 749 y Fb(\210)41 b Fk(die)30 b(Kind-Prozesse)f(w)n +(erden)h(un)n(ter)h(w)n(eniger)e(privilegierten)g(Ben)n(utzerk)n(enn)n +(ungen)g(aus-)228 848 y(gef\374hrt\(z.B.)e(nob)r(o)r(dy)-7 +b(,)28 b(wwwrun)f(...\))145 1042 y Fb(\210)41 b Fk(die)27 +b(Kind-Prozesse)f(lausc)n(hen)h(und)h(b)r(ean)n(t)n(w)n(orten)e +(Anfragen)h(v)n(on)g(Clien)n(ts)145 1237 y Fb(\210)41 +b Fk(die)18 b(Kind-Prozesse)f(w)n(erden)g(v)n(on)h(dem)h(ausgew)n +(\344hlten)d(Multi-Pro)r(cessing-Mo)r(dul\(Apac)n(he-)228 +1336 y(MPM)28 b(prefork)e(UNIX/Lin)n(ux\))i(gesteuert)20 +1504 y +SDict begin H.S end + 20 1504 a 20 1504 a +SDict begin 12 H.A end + 20 1504 a 20 1504 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.9.3.3) cvn /DEST pdfmark +end + 20 1504 +a 102 x Fi(9.3.3.)57 b(F)m(ehler)36 b(w)m(\344hrend)g(des)h(Ho)s +(chfahrens)145 1772 y Fb(\210)k Fk(wird)23 b(w)n(\344hrend)f(des)h(Ho)r +(c)n(hfahrens)f(einen)i(sc)n(h)n(w)n(erer)c(F)-7 b(ehler)24 +b(feststellt,)f(sc)n(hreibt)g(der)g(Apa-)228 1872 y(c)n(he)d(eine)h +(Nac)n(hric)n(h)n(t)e(auf)i(die)g(K)n(onsole)d(o)r(der)i(ins)h +(ErrorLog,)d(b)r(ev)n(or)i(er)g(sic)n(h)g(selbst)h(b)r(eendet)145 +2066 y Fb(\210)41 b Fk(eine)30 b(der)f(h\344u\034gsten)h(F)-7 +b(ehlermeldungen)30 b(ist)g(\334nable)g(to)g(bind)g(to)g(P)n(ort)g +(...",)f(der)h(Serv)n(er)228 2166 y(l\344uft)e(sc)n(hon)e(o)r(der)h +(hat)h(k)n(eine)f(ro)r(ot-Berec)n(h)n(tigung)20 2329 +y +SDict begin H.S end + 20 2329 a 20 2329 a +SDict begin 12 H.A end + 20 2329 a 20 2329 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.9.3.4) cvn /DEST pdfmark +end + 20 2329 a 107 +x Fi(9.3.4.)57 b(Automatisch)36 b(sta)m(rten)h(und)g(b)s(eenden)145 +2602 y Fb(\210)k Fk(apac)n(hectl)20 b(zu)i(den)g(Startdateien)f(des)h +(Systems)f(hinzuf\374gen)h(\(rc.lo)r(cal,)f(rc.x-V)-7 +b(erzeic)n(hnis\))107 2813 y Fd(z.B.)42 b(SuSE-Linux:)194 +2913 y(cd)h(/etc/rc.d/rc3.d/)194 3012 y(ln)g(-s)g(../apache)d +(S16apache)475 b(Link)42 b(zum)g(automatischen)c(Starten)1763 +3112 y(in)43 b(Runlevel)d(3)j(anlegen)194 3212 y(ln)g(-s)g(../apache)d +(K06apache)475 b(Link)42 b(zum)g(automatischen)c(Beenden)1763 +3311 y(in)43 b(Runlevel)d(3)j(anlegen)107 3411 y(z.B.)f(Debian:)194 +3510 y(cd)h(/etc/rc3.d/)194 3610 y(ln)g(-s)g(../init.d/apach)o(e2)37 +b(S20apachectl)1066 3710 y(Link)42 b(zum)g(automatischen)c(Starten)j +(in)h(Runlevel)f(5)i(anlegen)194 3809 y(cd)g(/etc/rc0.d/)194 +3909 y(ln)g(-s)g(../init.d/apach)o(e2)37 b(K20apachectl)1066 +4009 y(Link)42 b(zum)g(automatischen)c(Beenden)j(in)h(Runlevel)f(0)i +(anlegen)20 4173 y +SDict begin H.S end + 20 4173 a 20 4173 a +SDict begin 12 H.A end + 20 4173 a 20 4173 +a +SDict begin [/View [/XYZ H.V]/Dest (subsection.9.3.5) cvn /DEST pdfmark +end + 20 4173 a 105 x Fi(9.3.5.)57 b(W)m(eitere)37 b(Info)m(rmationen)20 +4445 y Fd(http://localhost)o(/m)o(anu)o(al)o(/p)o(rog)o(ra)o(ms/)o(ht)o +(tp)o(d.h)o(tm)o(l)20 4544 y(http://localhost)o(/m)o(anu)o(al)o(/d)o +(e/p)o(ro)o(gra)o(ms)o(/h)o(ttp)o(d.)o(ht)o(ml)20 4644 +y(http://localhost)o(/m)o(anu)o(al)o(/p)o(rog)o(ra)o(ms/)o(ap)o(ac)o +(hec)o(tl)o(.h)o(tml)20 4744 y(http://localhost)o(/m)o(anu)o(al)o(/d)o +(e/p)o(ro)o(gra)o(ms)o(/a)o(pac)o(he)o(ct)o(l.h)o(tm)o(l)3037 +5092 y Fk(79)p eop end +%%Page: 80 80 +TeXDict begin 80 79 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 a +632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.80) cvn /DEST pdfmark end + 632 -5 a 640 128 a Fh(9.)41 +b(Apac)n(he)640 277 y +SDict begin H.S end + 640 277 a 640 277 a +SDict begin 12 H.A end + 640 277 a 640 +277 a +SDict begin [/View [/XYZ H.V]/Dest (section.9.4) cvn /DEST pdfmark +end + 640 277 a 85 x Fe(9.4.)68 b(Beenden)44 b(und)g(Neusta)l(rten)640 +444 y +SDict begin H.S end + 640 444 a 640 444 a +SDict begin 12 H.A end + 640 444 a 640 444 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.9.4.1) cvn /DEST pdfmark +end + 640 444 +a 116 x Fi(9.4.1.)57 b(Einleitung)765 713 y Fb(\210)41 +b Fk(um)21 b(den)g(Apac)n(he)g(zu)g(stopp)r(en)g(o)r(der)f(neu)h(zu)g +(starten,)g(m)n(uss)f(ein)h(Signal)g(an)f(den)h(laufenden)848 +813 y(h)n(ttp)r(d-Prozess)27 b(gesendet)g(w)n(erden)765 +966 y Fb(\210)41 b Fk(es)27 b(gibt)h(zw)n(ei)f(M\366glic)n(hk)n(eiten)f +(Signale)h(zu)h(senden,)f(kill)h(und)g(apac)n(hectl)765 +1118 y Fb(\210)41 b Fk(auf)27 b(dem)h(System)g(laufen)g(mehrere)e(h)n +(ttp)r(d-Programme)765 1271 y Fb(\210)41 b Fk(n)n(ur)18 +b(an)g(den)g(Elternprozess)f(sollte)h(ein)h(Signal)f(gesendet)f(w)n +(erden,)h(/v)-5 b(ar/log/apac)n(he2/h)n(ttp)r(d.pid)765 +1424 y Fb(\210)41 b Fk(es)28 b(gibt)h(drei)f(Signale)g(die)h(an)g(den)g +(Elternprozess)e(gesendet)h(w)n(erden)g(k)n(\366nnen,)g(TERM)i(-)848 +1523 y(b)r(eenden,)e(HUP)h(-)e(neustarten,)g(USR1)h(-)f(un)n(terbrec)n +(h)n(ungsfreier)e(Neustart)765 1676 y Fb(\210)41 b Fk(es)27 +b(wird)g(empfohlen)h(apac)n(hectl)f(zu)g(b)r(en)n(utzen)765 +1829 y Fb(\210)41 b Fk(mit)29 b(tail)g(-f)g(/v)-5 b(ar/log/apac)n +(he2/err)o(or)o(_lo)o(g")o(k)g(ann)23 b(die)29 b(Signalisierung)f(b)r +(eobac)n(h)n(tet)g(w)n(er-)848 1929 y(den)640 2039 y +SDict begin H.S end + +640 2039 a 640 2039 a +SDict begin 12 H.A end + 640 2039 a 640 2039 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.9.4.2) cvn /DEST pdfmark +end + 640 2039 +a 116 x Fi(9.4.2.)57 b(Beenden)640 2308 y Fd(Signal:)41 +b(TERM)640 2508 y(apachectl)f(stop)1480 b(sendet)41 b(das)h +(TERM\(stop\))d(signal)j(an)2732 2607 y(den)g(Elternprozess)640 +2707 y(rcapache)e(stop)1524 b(Apache)41 b(stoppen)2732 +2807 y(bei)h(SuSE-Linux)640 2906 y(kill)g(-TERM)f(`cat)h +(/var/log/apache2/)o(ht)o(tp)o(d.p)o(id)o(`)212 b(sendet)41 +b(das)h(TERM\(stop\))d(signal)j(an)2732 3006 y(den)g(Elternprozess)765 +3155 y Fb(\210)f Fk(das)30 b(Senden)i(des)f(TERM\(stop\)-Signals)g(an)g +(den)g(Elternprozess)f(v)n(eranlasst)f(alle)i(seine)848 +3255 y(Kindprozesse)25 b(sic)n(h)j(zu)f(b)r(eenden)765 +3407 y Fb(\210)41 b Fk(es)27 b(dauert)g(et)n(w)n(as)f(bis)i(alle)f +(Kindprozesse)f(b)r(eendet)i(sind)765 3560 y Fb(\210)41 +b Fk(danac)n(h)26 b(b)r(eendet)j(sic)n(h)e(der)g(Elternprozess)765 +3713 y Fb(\210)41 b Fk(alle)27 b(gerade)f(b)r(earb)r(eiteten)i +(Anfragen)f(w)n(erden)f(abgebro)r(c)n(hen)765 3866 y +Fb(\210)41 b Fk(es)27 b(w)n(erden)g(k)n(eine)g(w)n(eiteren)g(Anfragen)g +(mehr)g(b)r(edien)n(t)640 3992 y +SDict begin H.S end + 640 3992 a 640 3992 +a +SDict begin 12 H.A end + 640 3992 a 640 3992 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.9.4.3) cvn /DEST pdfmark +end + 640 3992 a 100 x Fi(9.4.3.)57 +b(Unterb)m(rechungsfreier)35 b(Neusta)m(rt)640 4245 y +Fd(Signal:)41 b(USR1)640 4445 y(apachectl)f(graceful)1304 +b(sendet)41 b(das)h(USR1)g(signal)f(an)2732 4544 y(den)h(Elternprozess) +640 4644 y(kill)g(-USR1)f(`cat)h(/var/log/apache2/)o(ht)o(tp)o(d.p)o +(id)o(`)212 b(sendet)41 b(das)h(USR1)g(signal)f(an)2732 +4744 y(den)h(Elternprozess)640 5092 y Fk(80)p eop end +%%Page: 81 81 +TeXDict begin 81 80 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a 12 +-5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.81) cvn /DEST pdfmark end + 12 -5 a 2049 128 a Fh(9.4.)40 b(Beenden)28 +b(und)g(Neustarten)145 360 y Fb(\210)41 b Fk(das)32 b(Senden)i(des)f +(USR1-Signals)f(an)h(den)h(Elternprozess)e(v)n(eranlasst)f(alle)i +(seine)g(Kind-)228 460 y(prozesse)26 b(sic)n(h)h(zu)g(b)r(eenden)145 +639 y Fb(\210)41 b Fk(die)27 b(Kindprozesse)f(b)r(earb)r(eiten)i(no)r +(c)n(h)f(die)h(letzten)g(Anfragen)f(und)h(b)r(eenden)g(sic)n(h)f(dann) +145 819 y Fb(\210)41 b Fk(der)27 b(Elternprozess)f(liest,)h(w)n +(\344rend)g(die)g(Kindprozesse)f(no)r(c)n(h)h(laufen,)h(seine)f(K)n +(on\034gurati-)228 919 y(onsdateien)f(erneut)i(ein)g(und)g(\366\033net) +g(seine)f(Logdateien)f(neu)145 1098 y Fb(\210)41 b Fk(die)27 +b(Kindprozesse)f(w)n(erden)h(wieder)g(gestartet)145 1278 +y Fb(\210)41 b Fk(die)27 b(Serv)n(erstatistik)n(en\(mo)r(d_status\))f +(w)n(erden)h(nic)n(h)n(t)g(auf)h(Null)g(zur\374c)n(kgesetzt)145 +1457 y Fb(\210)41 b Fk(ist)25 b(die)g(K)n(on\034gurationsdatei)d +(fehlerhaft,)j(wird)g(der)f(Elternprozess)g(nic)n(h)n(t)h(neu)g +(gestartet)145 1637 y Fb(\210)41 b Fk(die)27 b(Kindprozesse)f(b)r(earb) +r(eiten)i(no)r(c)n(h)f(die)h(letzten)g(Anfragen)f(und)h(b)r(eenden)g +(sic)n(h)f(dann)145 1817 y Fb(\210)41 b Fk(w)n(\344red)17 +b(no)r(c)n(h)i(die)g(letzten)h(Anfragen)e(b)r(earb)r(eitet)h(w)n(erden) +f(k)-5 b(ann)19 b(der)g(h)n(ttp)r(d)h(nic)n(h)n(t)f(gestartet)228 +1916 y(w)n(erden)20 2047 y +SDict begin H.S end + 20 2047 a 20 2047 a +SDict begin 12 H.A end + 20 2047 +a 20 2047 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.9.4.4) cvn /DEST pdfmark +end + 20 2047 a 120 x Fi(9.4.4.)57 b(Neusta)m(rten)20 +2326 y Fd(Signal:)41 b(HUP)20 2526 y(apachectl)f(restart)1348 +b(sendet)41 b(das)h(HUP)g(signal)f(an)2112 2625 y(den)h(Elternprozess) +20 2725 y(rcapache)e(restart)1392 b(Apache)41 b(stoppen)f(und)j(dann)f +(starten)2112 2824 y(bei)g(SuSE-Linux)20 2924 y(kill)g(-HUP)g(`cat)g +(/var/log/apache)o(2/h)o(tt)o(pd)o(.pi)o(d`)255 b(sendet)41 +b(das)h(HUP)g(signal)f(an)2112 3024 y(den)h(Elternprozess)145 +3217 y Fb(\210)f Fk(das)33 b(Senden)i(des)f(HUP\(wie)h(TERM\)-Signals)f +(an)g(den)h(Elternprozess)e(v)n(eranlasst)f(alle)228 +3316 y(seine)27 b(Kindprozesse)f(sic)n(h)h(zu)h(b)r(eenden)145 +3496 y Fb(\210)41 b Fk(der)34 b(Elternprozess)g(liest)h(seine)f(K)n +(on\034gurationsdateien)f(erneut)h(ein)h(und)h(\366\033net)f(seine)228 +3595 y(Logdateien)26 b(neu)145 3775 y Fb(\210)41 b Fk(die)20 +b(Kindprozesse)e(w)n(erden)h(wieder)g(gestartet)g(und)i(setzen)f(die)g +(Bedien)n(ung)f(v)n(on)g(Zugri\033en)228 3875 y(fort)145 +4054 y Fb(\210)41 b Fk(die)27 b(Serv)n(erstatistik)n(en\(mo)r +(d_status\))f(w)n(erden)h(auf)g(Null)h(zur\374c)n(kgesetzt)145 +4234 y Fb(\210)41 b Fk(ist)25 b(die)g(K)n(on\034gurationsdatei)d +(fehlerhaft,)j(wird)g(der)f(Elternprozess)g(nic)n(h)n(t)h(neu)g +(gestartet)20 4381 y +SDict begin H.S end + 20 4381 a 20 4381 a +SDict begin 12 H.A end + 20 4381 a 20 +4381 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.9.4.5) cvn /DEST pdfmark +end + 20 4381 a 103 x Fi(9.4.5.)57 b(Anhang:)36 b(Syntax)i(\374b)s +(erp)m(r\374fen)20 4644 y Fd(apachectl)i(-t)522 b(\374berpr\374ft)40 +b(den)i(Syntax)f(der)h(Konfigurationsdat)o(ei)o(,)37 +b(so)43 b(kann)1066 4744 y(vermieden)d(werden)h(das)h(der)g(Apache)f +(nicht)h(neu)g(startet)3037 5092 y Fk(81)p eop end +%%Page: 82 82 +TeXDict begin 82 81 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 a +632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.82) cvn /DEST pdfmark end + 632 -5 a 640 128 a Fh(9.)41 +b(Apac)n(he)640 277 y +SDict begin H.S end + 640 277 a 640 277 a +SDict begin 12 H.A end + 640 277 a 640 +277 a +SDict begin [/View [/XYZ H.V]/Dest (section.9.5) cvn /DEST pdfmark +end + 640 277 a 85 x Fe(9.5.)68 b(Anhang)640 468 y +SDict begin H.S end + 640 +468 a 640 468 a +SDict begin 12 H.A end + 640 468 a 640 468 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.9.5.1) cvn /DEST pdfmark +end + 640 468 a 95 x Fi(9.5.1.)57 +b(Zu)37 b(den)g(Dateien)640 718 y Fd(/etc/apache/)640 +818 y(/etc/apache2/)640 917 y(/etc/httpd/)640 1017 y(/etc/httpd2/)1337 +1117 y(access.conf)562 b(Zugriffs-Konfigu)o(rat)o(io)o(n)1337 +1216 y(httpd.conf)606 b(Apache)41 b(Konfigurationsda)o(tei)1337 +1316 y(mime.types)606 b(Zuweisung)40 b(von)i(Dateiendungen)1337 +1416 y(srm.conf)694 b(Resource-Konfigu)o(rat)o(io)o(n)640 +1615 y(/var/log/apache/)640 1715 y(/var/log/apach2/)640 +1814 y(/var/log/httpd/)640 1914 y(/var/log/httpd2/)1337 +2013 y(access_log)606 b(Zugriffsmeldunge)o(n)1337 2113 +y(error_log)650 b(Fehlermeldungen)1337 2213 y(httpd.pid)g +(Hauptprozessnumm)o(er)640 2362 y +SDict begin H.S end + 640 2362 a 640 2362 +a +SDict begin 12 H.A end + 640 2362 a 640 2362 a +SDict begin [/View [/XYZ H.V]/Dest (section.9.6) cvn /DEST pdfmark +end + 640 2362 a 132 x Fe(9.6.)68 b(Benutzerhandbuch) +640 2577 y +SDict begin H.S end + 640 2577 a 640 2577 a +SDict begin 12 H.A end + 640 2577 a 640 2577 +a +SDict begin [/View [/XYZ H.V]/Dest (subsection.9.6.1) cvn /DEST pdfmark +end + 640 2577 a 118 x Fi(9.6.1.)57 b(http)s(d.conf)640 2851 +y Fd(ServerType)39 b(standalone)476 b(Apache)41 b(nicht)g(ueber)h(den)g +(inetd)f(starten.)640 3050 y(ServerRoot)e("/www/")608 +b(Diese)41 b(Einstellung)e(sorgt)i(daf\374r,)g(dass)h(der)h(Apache)2035 +3150 y(ausgehend)c(von)k(diesem)e(Verzeichnis)e(die)2035 +3249 y(Verzeichnisse)f(fuer)k(Dokumente,)d(Logfiles)h(und)2035 +3349 y(Konfigurationsd)o(at)o(eie)o(n)d(sucht.)640 3548 +y(LockFile)j(/var/lock/subsys/)o(ht)o(tp)o(d/h)o(tt)o(pd)o(.ac)o(ce)o +(pt)o(.lo)o(ck)298 b(Spezifizert)39 b(das)k(Lock)3080 +3648 y(File.)640 3847 y(PidFile)e(/var/run/httpd.)o(pid)255 +b(Datei,)41 b(in)h(der)h(sich)f(die)g(Prozess)e(ID)j(des)f(Httpd-)2035 +3947 y(Daemons)e(befindet.)640 4146 y(ResourceConfig)e(/etc/httpd/srm.) +o(con)o(f)255 b(Diese)42 b(Datei)f(enthaelt)f(Angaben)h(zur)2383 +4245 y(Formatierung)e(und)j(dem)g(Aussehen)e(der)2035 +4345 y(automatisch)e(erzeugten)i(Verzeichnisindiz)o(es)2035 +4445 y(\(FancyIndexing\))d(sowie)k(Angaben)g(zu)i(den)f(einzelnen)2035 +4544 y(Dateitypen.)640 4744 y(AccessConfig)d(/etc/httpd/acce)o(ss)o +(.co)o(nf)211 b(Datei)42 b(zur)g(Definition)d(der)k(Funktionen)c(und) +640 5092 y Fk(82)p eop end +%%Page: 83 83 +TeXDict begin 83 82 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a 12 +-5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.83) cvn /DEST pdfmark end + 12 -5 a 2273 128 a Fh(9.6.)41 b(Ben)n +(utzerhandbuc)n(h)1763 360 y Fd(Zugriffsrechte)d(bestimmter)h +(Verzeichnisse)20 559 y(Timeout)i(300)914 b(Zeitlimit)39 +b(fuer)j(Client-Anfragen)37 b(in)43 b(Sekunden.)20 758 +y(KeepAlive)d(On)871 b(Unterstuezung)38 b(der)k(HTTP/1.1)e(Persistent) +1415 858 y(Connections.)e(Dardurch)i(koennen)h(ueber)g(eine)h(TCP-)1415 +958 y(Verbindung)d(mehrere)h(Anfragen)h(an)h(den)h(Server)1415 +1057 y(geschickt)c(werden.)20 1257 y(MaxKeepAliveRequ)o(es)o(ts)e(10) +392 b(Es)42 b(werden)f(10)i(aufeinanderfolge)o(nd)o(e)38 +b(Anfragen)1415 1356 y(innerhalb)h(einer)j(Keep-Alive-Verb)o(ind)o(un)o +(g)37 b(erlaubt.)20 1556 y(KeepAliveTimeout)g(15)566 +b(Der)42 b(Server)f(wartet)g(maximal)f(15)j(Sekunden)d(auf)1415 +1655 y(weitere)g(Anfragen)g(des)j(Clients)d(bei)j(einer)e(Keep-)1415 +1755 y(Alive-Verbindun)o(g.)20 1954 y(MinSpareServers)c(5)654 +b(Es)42 b(existieren)e(immer)h(mindestens)e(5)44 b(und)e(hoechstens)20 +2054 y(MaxSpareServers)37 b(10)610 b(10)42 b(leerlaufende)d(Prozesse.) +20 2253 y(StartServers)g(5)784 b(Es)42 b(werden)f(automatisch)e(5)k +(Kindprozesse)c(des)j(Apache)1415 2353 y(gestartet.)20 +2552 y(MaxClients)d(150)784 b(Maximum)40 b(von)i(gleichzeitig)d +(laufenden)1415 2651 y(Server-Prozesse)o(n.)20 2851 y(MaxRequestsPerCh) +o(il)o(d)f(30)435 b(Nach)41 b(30)i(Anfragen)d(wird)i(der)g(Kindprozess) +d(beendet)1415 2950 y(und)j(gegebenfalls)c(ein)43 b(neuer)e(gestartet.) +20 3150 y(Listen)g(12.34.56.78:80)474 b(Falls)41 b(mehrere)g +(Interfaces)e(bzw.)j(IP)h(Adressen)d(fuer)1415 3249 y(den)i(Rechner)e +(vorhanden)g(sind,)i(kann)g(mit)g(Listen)1415 3349 y(festgelegt)d +(werden,)h(welche)h(Ports)h(fuer)g(welche)1415 3448 y(Adresse)e +(abgehoert)g(werden)h(sollen.)20 3648 y(Port)h(80)1089 +b(Standalone)39 b(Server)i(Port)h(80)20 3847 y(User)g(wwwrun)913 +b(Nach)41 b(dem)i(Oeffnen)d(des)j(Ports)e(\(als)h(root\),)f(wechselt)20 +3947 y(Group)h(nogroup)825 b(Apache)41 b(zu)h(der)h(als)f(User)g(und)g +(Group)g(angegebenen)1415 4046 y(UID)g(bzw.)g(GID.)g(Die)g(Zuweisung)e +(kann)i(entweder)e(durch)1415 4146 y(angeben)g(des)i(Namens)f(oder)h +(durch)g(#)h(gefolgt)e(von)h(der)1415 4245 y(ID)g(erfolgen.)20 +4445 y(ServerAdmin)d(dv@mynet.loc)344 b(Bei)42 b(Fehlermeldungen)37 +b(wird)42 b(diese)f(Adresse)g(dem)1415 4544 y(Client)g(zurueckgeliefer) +o(t.)20 4744 y(ServerName)e(www.mynet.loc)344 b(Wird)41 +b(bei)i(Redirects)c(benoetigt)h(\(wenn)i(man)3037 5092 +y Fk(83)p eop end +%%Page: 84 84 +TeXDict begin 84 83 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 a +632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.84) cvn /DEST pdfmark end + 632 -5 a 640 128 a Fh(9.)41 +b(Apac)n(he)2035 360 y Fd(beispielsweise)c(durch)42 b(Eingabe)e(von) +2035 460 y(http://www.myne)o(t.)o(loc)o(/m)o(ai)o(n)e(auf)k(das)g +(Verzeichnis)2035 559 y(main)f(zugreifen)f(will,)i(erzeugt)e(der)j +(Apache)e(einen)2035 659 y(Redirect)f(auf)i(http://www.mynet)o(.l)o +(oc/)o(ma)o(in)o(/)c(.)43 b(Ohne)2035 758 y(ServerName)c(w\374rde)i +(der)i(richtige)d(Hostname)g(des)2035 858 y(Rechners)g +(zur\374ckgeliefert)d(werden.)640 1057 y(DocumentRoot)i("/www/htdocs/") +212 b(Hier)41 b(werden)g(die)i(HTML)f(Seiten)f(abgelegt.)640 +1257 y(AllowOverride)d(All)653 b(Konfigurationsa)o(nw)o(eis)o(un)o(ge)o +(n)38 b(in)k(der)h(.htaccess)2035 1356 y(beachten)640 +1556 y(UserDir)e(public_html)562 b(Homepage-Direct)o(or)o(y)38 +b(der)k(Benutzer)2035 1655 y(http://server/~)o(be)o(nut)o(ze)o(r/)640 +1854 y(DirectoryIndex)c(index.html)h(index.htm)h(index.php)127 +b(Wird)42 b(nur)g(ein)g(Directory)2732 1954 y(angegeben,)d(wird)j +(automatisch)d(die)2035 2054 y(angegebene)g(Datei)i(gesucht)g(und)h +(angezeigt.)640 2253 y(AccessFileName)c(.htaccess)345 +b(Name)41 b(der)i(.htaccess)640 2452 y(DefaultType)c(text/plain)432 +b(Dateien)40 b(ohne)i(Endung)f(werden)g(wie)h(Text-Files)2035 +2552 y(behandelt.)640 2751 y(HostnameLookups)37 b(Off)566 +b(Es)42 b(sollen)f(keine)h(DNS-Lookups)d(ausgefuert)g(werden.)640 +2950 y(ErrorLog)h(/var/log/httpd/er)o(ro)o(r_)o(log)298 +b(Datei)42 b(zur)g(Aufnahme)e(von)i(Fehlermeldungen)2383 +3050 y(und)g(sonstigen)e(Info)i(Meldungen)2035 3150 y(\(mod_log_config) +o(\).)640 3349 y(LogLevel)e(warn)827 b(LogLevel)40 b(:-\))i(debug,)f +(info,)h(notice,)e(warn,)i(error,)2035 3448 y(crit,alert,emer)o(g.)640 +3648 y(LogFormat)e(...)827 b(Legt)41 b(das)i(Format)e(der)h +(Logdatei\(en\))d(fest.)640 3847 y(CustomLog)h(/var/log/httpd/a)o(cc)o +(es)o(s_l)o(og)d(common)259 b(Erzeugt)40 b(die)j(Datei)e(http.access)e +(im)2732 3947 y(Common)i(Log)h(Format.)640 4146 y(ServerSignature)37 +b(Off)566 b(ServerSignature)37 b(kann)42 b(man)g(auf)g("Off")g +(stellen,)2035 4245 y(damit)f(ein)h(Zugriff)f(auf)h(eine)g +(nichtexistente)c(Seite)2035 4345 y(nicht)j(Software)f(und)j +(Versionsnummer)37 b(anzeigt,)2035 4445 y(jedoch)k(bringt)g(das)h +(nicht)f(allzuviel,)f(da)i(im)h(HTTP)2035 4544 y(Header)e(diese)g(und)h +(wesentlich)e(mehr)i(Informationen)2035 4644 y(zu)g(finden)f(sind.)640 +5092 y Fk(84)p eop end +%%Page: 85 85 +TeXDict begin 85 84 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a 12 +-5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.85) cvn /DEST pdfmark end + 12 -5 a 2273 128 a Fh(9.6.)41 b(Ben)n +(utzerhandbuc)n(h)20 360 y Fd(Alias)h(/icons/)e("/www/icons/")213 +b(Alias-Namen)38 b(fuer)k(bestimmte)e(Verzeichnisse.)e(Diese)1415 +460 y(werden)j(anschliessend)d(behandelt,)h(als)j(wenn)g(sie)1415 +559 y(sich)f(unter)h(Document-Root)c(befinden)i(wuerden.)1415 +659 y(Achtung!)g(Die)i(Einstellungen)c(gelten)j(auch)h(fuer)1415 +758 y(virtuelle)d(Hosts.)20 958 y(IndexOptions)g(FancyIndexing)256 +b(Als)42 b(Optionen)e(sind)i(angebbar:)1415 1057 y(Fancyindexing)c(-)43 +b(ausf\374hrliche)38 b(Verzeichnisliste)1502 1157 y(\(Icons,)i(Name,)i +(Gr\366\377e,)f(Kurzbeschreibun)o(g)d(etc.\))1415 1257 +y(SuppressLastMod)o(if)o(ie)o(d)g(-)43 b(keine)e(Angabe)g(der)i +(letzten)1502 1356 y(Modifikationsze)o(it)1415 1456 y(SuppressSize)38 +b(-)43 b(keine)f(Angabe)f(der)h(Filegr\366\377e)1415 +1556 y(SuppressDescrip)o(ti)o(on)37 b(-)43 b(keine)f(Angabe)f(einer) +1502 1655 y(Kurzbeschreibun)o(g)1415 1755 y(ScanHTMLTitles)c(-)43 +b(HTML-Titel)d(als)i(Kurzbeschreibung)1502 1854 y(\(Achtung:)d +(Rechnerlast!\))20 2054 y(ReadmeName)g(README)652 b(Die)42 +b(Datei)f(README)g(wird)h(bei)g(der)h(Ausgabe)d(des)1415 +2153 y(Verzeichnisbaum)o(s)d(angezeigt.)20 2353 y(HeaderName)i(HEADER) +652 b(Die)42 b(Datei)f(HEADER)g(wird)h(am)h(Anfangs-Tag)c(in)k(den)1415 +2452 y(Verzeichnisbaum)o(s)37 b(angezeigt.)20 2651 y(IndexIgnore)i +(.??*)j(*~)h(*#)129 b(RCS)43 b(CVS)f(*,v)g(*,t)348 b(Diese)41 +b(Dateien)g(werden)g(nicht)g(durch)2112 2751 y(FancyIndexing)d +(angezeigt.)20 2950 y(TypesConfig)h(/etc/httpd/mime.)o(ty)o(pes)298 +b(Enthaelt)40 b(die)j(Zuweisungen)c(Dateiendung)1763 +3050 y(zu)k(Mime-Typ)20 3249 y(BrowserMatch)c("Mozilla/2")f +(nokeepalive)170 b(Hiermit)41 b(wird)h(der)g(Apache)f(angewiesen,)e +(auf)1763 3349 y(bestimmte)h(Browser)g(unterschiedlich)e(zu)1763 +3448 y(reagieren.)20 3593 y +SDict begin H.S end + 20 3593 a 20 3593 a +SDict begin 12 H.A end + 20 3593 +a 20 3593 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.9.6.2) cvn /DEST pdfmark +end + 20 3593 a 101 x Fi(9.6.2.)57 b(A)m(ccess)36 +b(Control)h(List)g(File)f(\(.htaccess\))20 3851 y Fk(Die)28 +b(Datei)g(.h)n(taccess)e(m)n(u\377)h(in)h(dem)g(zu)g(sc)n(h)n +(\374tzenden)f(Ordner)f(angelegt)h(w)n(erden.)20 4046 +y Fd(AuthUserFile)39 b(/www/.htpasswd)212 b(Pfad)41 b(zu)i(einer)f +(Passwortdatei)20 4146 y(AuthGroupFile)c(/dev/null)20 +4245 y(AuthName)i("Tux)i(;-\)")20 4345 y(AuthType)e(Basic)20 +4445 y()369 4544 y(require)e(user)i +(webmaster)20 4644 y()3037 5092 y Fk(85)p eop +end +%%Page: 86 86 +TeXDict begin 86 85 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 a +632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.86) cvn /DEST pdfmark end + 632 -5 a 640 128 a Fh(9.)41 +b(Apac)n(he)640 360 y Fd(AuthUserFile)e(/www/.htpasswd)212 +b(Pfad)41 b(zu)i(einer)f(Passwortdatei)640 460 y(AuthGroupFile)c +(/www/.htgroup)213 b(Pfad)41 b(zu)i(einer)f(Gruppendatei)640 +559 y(AuthName)e("Tux)i(;-\)")640 659 y(AuthType)e(Basic)640 +758 y()989 858 y(require)f(group)i(logins)640 +958 y()640 1107 y +SDict begin H.S end + 640 1107 a 640 1107 a +SDict begin 12 H.A end + 640 1107 +a 640 1107 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.9.6.3) cvn /DEST pdfmark +end + 640 1107 a 115 x Fi(9.6.3.)57 b(Grupp)s(endatei)35 +b(\(.htgroup\))640 1386 y Fd(cat)42 b(.htgroup)f(-->)989 +1486 y(logins:)f(benutzer1)g(benutzer2)g(...)640 1647 +y +SDict begin H.S end + 640 1647 a 640 1647 a +SDict begin 12 H.A end + 640 1647 a 640 1647 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.9.6.4) cvn /DEST pdfmark +end + 640 1647 +a 103 x Fi(9.6.4.)57 b(P)m(assw)m(o)m(rt-Datei)37 b(\(.htpasswd\))640 +1915 y Fd(htpasswd)j(-c)j(Passwortdatei)38 b(Benutzername)431 +b(erzeugt)40 b(eine)i(neue)g(Passwortdatei)2732 2014 +y(und)g(ein)g(Benutzer)640 2114 y(htpasswd)e(Passwortdatei)e +(Benutzername)562 b(erzeugt)40 b(ein)j(Benutzer)640 2275 +y +SDict begin H.S end + 640 2275 a 640 2275 a +SDict begin 12 H.A end + 640 2275 a 640 2275 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.9.6.5) cvn /DEST pdfmark +end + 640 2275 +a 103 x Fi(9.6.5.)57 b(Erstellen)36 b(eines)g(SSL-Zerti\034k)m(ats)640 +2543 y Fd(openssl)41 b(req)h(-new)g(>)h(firma.csr)640 +2642 y(openssl)e(rsa)h(-in)g(privkey.pem)d(-out)j(firma.key)640 +2742 y(openssl)f(x509)h(-in)g(firma.csr)e(-out)i(firma.crt)d(-req)j +(-signkey)e(firma.key)g(-days)i(10000)640 2842 y(cp)h(firma.key)d +(/etc/httpd/ssl.)o(ke)o(y/s)o(er)o(ve)o(r.k)o(ey)640 +2941 y(cp)j(firma.crt)d(/etc/httpd/ssl.)o(cr)o(t/s)o(er)o(ve)o(r.c)o +(rt)640 3041 y(cp)j(firma.csr)d(/etc/httpd/ssl.)o(cs)o(r/s)o(er)o(ve)o +(r.c)o(sr)640 3141 y(chown)i(root)f(privkey.pem)640 3240 +y(chmod)h(400)g(privkey.pem)640 3401 y +SDict begin H.S end + 640 3401 a 640 +3401 a +SDict begin 12 H.A end + 640 3401 a 640 3401 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.9.6.6) cvn /DEST pdfmark +end + 640 3401 a 104 x Fi(9.6.6.)57 +b(LinkIcon)35 b(\(favicon.ico\))640 3588 y +SDict begin H.S end + 640 3588 a +640 3588 a +SDict begin 12 H.A end + 640 3588 a 640 3588 a +SDict begin [/View [/XYZ H.V]/Dest (subsubsection*.9) cvn /DEST pdfmark +end + 640 3588 a 640 3669 +a +SDict begin H.S end + 640 3669 a 640 3669 a +SDict begin 12 H.A end + 640 3669 a 640 3669 a +SDict begin [/View [/XYZ H.V]/Dest (section*.8) cvn /DEST pdfmark end + 640 3669 +a Fj(W)m(as)c(ist)f(ein)h(favicon.ico?)640 3833 y Fk(Immer)36 +b(w)n(enn)h(ein)f(IE5)h(Ben)n(utzer)e(eine)i(Seite)f(seinen)h(F)-7 +b(a)n(v)n(oriten)34 b(hinzuf\374gt,)k(suc)n(h)n(t)e(der)g(IE5)640 +3933 y(nac)n(h)25 b(einem)h(Icon)g(das)f(er)g(anstatt)h(des)g +(Standardicons)e(in)i(der)f(F)-7 b(a)n(v)n(oritenliste)25 +b(anzeigen)g(k)-5 b(ann.)640 4033 y(Er)30 b(suc)n(h)n(t)f(zuerst)g(im)h +(aktuellen)f('V)-7 b(erzeic)n(hnis')29 b(und)h(geh)n(t)f(dann)g(Eb)r +(ene)i(f\374r)e(Eb)r(ene)i(w)n(eiter)e(bis)640 4132 y(zum)e(W)-7 +b(urzelv)n(erzeic)n(hnis.)25 b(Nehmen)i(wir)f(mal)h(an,)f(das)g +(aktuelle)g(Dokumen)n(t)h(b)r(e\034ndet)g(sic)n(h)g(un-)640 +4232 y(ter)32 b(h)n(ttp://www.b)5 b(jo)r(ernsw)n(orld.de/suc)n(hmasc)n +(hinen/)27 b(optimieren/aufraeumen.h)n(tml,)k(dann)640 +4332 y(wird)c(der)h(IE)g(5)f(so)g(nac)n(h)g(dem)h(Icon)f(suc)n(hen:)640 +4544 y Fd(http://www.bjoer)o(nsw)o(or)o(ld)o(.de)o(/s)o(uc)o(hma)o(sc)o +(hi)o(nen)o(/o)o(pt)o(imi)o(er)o(en/)o(fa)o(vi)o(con)o(.i)o(co)640 +4644 y(http://www.bjoer)o(nsw)o(or)o(ld)o(.de)o(/s)o(uc)o(hma)o(sc)o +(hi)o(nen)o(/f)o(av)o(ico)o(n.)o(ico)640 4744 y(http://www.bjoer)o(nsw) +o(or)o(ld)o(.de)o(/f)o(av)o(ico)o(n.)o(ic)o(o)640 5092 +y Fk(86)p eop end +%%Page: 87 87 +TeXDict begin 87 86 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a 12 +-5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.87) cvn /DEST pdfmark end + 12 -5 a 2273 128 a Fh(9.6.)41 b(Ben)n +(utzerhandbuc)n(h)103 360 y Fk(Er)33 b(suc)n(h)n(t)f(solange,)e(bis)j +(er)f(eines)g(gefunden)g(hat)h(o)r(der)e(b)r(ei)i(/fa)n(vicon.ico)e +(angek)n(ommen)f(ist.)20 460 y(Das)23 b(gilt)f(n)n(ur)h(f\374r)g(den)g +(In)n(ternet)f(Explorer)g(V)-7 b(ersion)22 b(5.0)g(und)h(5.01;)f(V)-7 +b(ersion)22 b(5.5)g(suc)n(h)n(t)h(n)n(ur)f(no)r(c)n(h)20 +559 y(nac)n(h)28 b(/fa)n(vicon.ico)f(selbstst\344ndig.)h(Hat)h(er)f +(eins)g(gefunden,)h(zeigt)f(er)h(es)f(in)h(der)f(F)-7 +b(a)n(v)n(oritenliste)20 659 y(an)27 b(und)h(b)r(eim)h(erneuten)e +(Besuc)n(h)g(der)g(Seite)h(auc)n(h)f(links)g(neb)r(en)h(der)g(URL)g(in) +f(der)h(A)n(dresszeile:)20 792 y +SDict begin H.S end + 20 792 a 20 792 a +SDict begin 12 H.A end + 20 +792 a 20 792 a +SDict begin [/View [/XYZ H.V]/Dest (subsubsection*.11) cvn /DEST pdfmark +end + 20 792 a 20 895 a +SDict begin H.S end + 20 895 a 20 895 a +SDict begin 12 H.A end + 20 +895 a 20 895 a +SDict begin [/View [/XYZ H.V]/Dest (section*.10) cvn /DEST pdfmark +end + 20 895 a Fj(W)m(elches)j(F)m(o)m(rmat)f(hat)f(das)h +(favicon.ico?)20 1056 y Fk(Das)36 b(fa)n(vicon.ico)e(ist)i(ein)g(Icon)g +(im)g(Microsoft)f(Windo)n(ws)h(Icon)f(File)h(F)-7 b(ormat.)36 +b(Windo)n(ws)f(Be-)20 1155 y(n)n(utzer)29 b(sehen)h(t\344glic)n(h)f +(solc)n(he)f(Icons)h(auf)h(ihrem)g(Desktop,)f(in)h(ihrem)g(Startmen)n +(\374,)f(etc.)h(In)g(der)20 1255 y(F)-7 b(a)n(v)n(oritenliste)27 +b(wird)h(dieses)g(Icon)g(in)g(der)g(Gr\366\377e)f(16x16)f(Pixel)j +(dargestellt,)e(daher)h(sollte)g(man)20 1355 y(das)f(Icon)g(auc)n(h)f +(in)i(dieser)e(Gr\366\377e)g(erstellen.)h(Die)h(F)-7 +b(arbzahl)26 b(b)r(esc)n(hr\344nkt)g(sic)n(h)h(auf)g(16)g(bzw.)g(256)20 +1454 y(F)-7 b(arb)r(en,)27 b(w)n(ob)r(ei)h(eine)f(als)g(transparen)n +(te)f(F)-7 b(arb)r(e)27 b(gilt.)20 1603 y +SDict begin H.S end + 20 1603 a 20 +1603 a +SDict begin 12 H.A end + 20 1603 a 20 1603 a +SDict begin [/View [/XYZ H.V]/Dest (subsubsection*.13) cvn /DEST pdfmark +end + 20 1603 a 20 1691 a +SDict begin H.S end + 20 1691 +a 20 1691 a +SDict begin 12 H.A end + 20 1691 a 20 1691 a +SDict begin [/View [/XYZ H.V]/Dest (section*.12) cvn /DEST pdfmark +end + 20 1691 a Fj(W)m(elchen)k(MIME-T)-8 +b(yp)s(e)31 b(hat)e(das)g(favicon.ico?)20 1851 y Fk(Der)20 +b(k)n(orrekte)d(MIME-T)n(yp)r(e)j(f\374r)g(das)f(fa)n(vicon.ico)g(ist)g +(image/x-icon.)f(Beim)i(Apac)n(he)f(W)-7 b(ebserv)n(er)20 +1951 y(k)i(ann)28 b(man)f(das)g(in)h(einer)f(.h)n(taccess)g(mit)h(der)f +(Zeile:)20 2153 y Fd(AddType)41 b(image/x-icon)d(.ico)103 +2351 y Fk(k)n(on\034gurieren.)20 2500 y +SDict begin H.S end + 20 2500 a 20 +2500 a +SDict begin 12 H.A end + 20 2500 a 20 2500 a +SDict begin [/View [/XYZ H.V]/Dest (subsubsection*.15) cvn /DEST pdfmark +end + 20 2500 a 20 2588 a +SDict begin H.S end + 20 2588 +a 20 2588 a +SDict begin 12 H.A end + 20 2588 a 20 2588 a +SDict begin [/View [/XYZ H.V]/Dest (section*.14) cvn /DEST pdfmark +end + 20 2588 a Fj(Wie)31 b(erstelle)h(ich)e +(ein)g(favicon.ico?)20 2748 y Fk(Man)20 b(brauc)n(h)n(t)f(daf\374r)h +(einen)g(Icon)f(Editor)i(wie)f(man)f(sie)h(zuhauf)g(b)r(ei)h(T)-7 +b(uco)n(ws)19 b(o)r(der)g(Win\034les.)i(com)20 2848 y(\034nden)35 +b(k)-5 b(ann.)34 b(Mit)g(z.B.)g(dem)g(F)-7 b(reew)n(are)33 +b(T)-7 b(o)r(ol)33 b(Irfan)h(View)g(ist)g(es)g(ohne)g(Probleme)f +(m\366glic)n(h,)20 2947 y(eine)38 b(Gifdatei)h(in)f(das)f(Icon)h(F)-7 +b(ormat)37 b(zu)h(k)n(on)n(v)n(ertieren.)e(Macin)n(tosh)h(Ben)n(utzer)g +(k)n(\366nnen)g(den)20 3047 y(GraphicCon)n(v)n(erter)c(v)n(on)h +(Thorsten)h(Lemk)n(e)f(o)r(der)h(den)g(Iconographer)e(v)n(on)h(Mscap)r +(eSoft)n(w)n(are)20 3146 y(b)r(en)n(utzen)k(um)g(das)f(Icon)g(zu)g +(erstellen.)h(Bei)f(fa)n(vicon.com)f(gibt)i(es)f(einen)g(Online)h +(Editor)f(in)20 3246 y(Ja)n(v)-5 b(a,)26 b(mit)j(dem)e(man)h(online)f +(sein)h(eigenes)e(fa)n(vicon.ico)g(erstellen)i(k)-5 b(ann.)20 +3395 y +SDict begin H.S end + 20 3395 a 20 3395 a +SDict begin 12 H.A end + 20 3395 a 20 3395 a +SDict begin [/View [/XYZ H.V]/Dest (subsubsection*.17) cvn /DEST pdfmark +end + 20 3395 +a 20 3483 a +SDict begin H.S end + 20 3483 a 20 3483 a +SDict begin 12 H.A end + 20 3483 a 20 3483 a +SDict begin [/View [/XYZ H.V]/Dest (section*.16) cvn /DEST pdfmark +end + 20 +3483 a Fj(W)m(ohin)30 b(muss)g(das)g(favicon.ico?)20 +3643 y Fk(Wie)21 b(ob)r(en)g(sc)n(hon)f(gesagt,)g(suc)n(h)n(t)g(der)h +(IE5,)g(v)n(or)e(V)-7 b(ersion)21 b(5.5,)f(zuerst)g(im)h(aktuellen)g +('V)-7 b(erzeic)n(hnis')20 3743 y(und)33 b(geh)n(t)g(dann)f(Eb)r(ene)i +(um)f(Eb)r(ene)h(nac)n(h)e(ob)r(en,)h(bis)g(er)f(un)n(ter)g(h)n +(ttp://host/fa)n(vicon.ico)e(ein)20 3842 y(Icon)k(\034ndet)h(o)r(der)f +(eb)r(en)g(nic)n(h)n(t.)h(Man)f(k)-5 b(ann)34 b(en)n(t)n(w)n(eder)f(in) +i(jedes)f(V)-7 b(erzeic)n(hnis)34 b(ein)g(fa)n(vicon.ico)20 +3942 y(plazieren,)27 b(o)r(der)g(im)h()g(einer)f(jeden)h(HTML)g +(Datei)g(auf)f(ein)h(Icon)f(v)n(erw)n(eisen:)20 4144 +y Fd()103 +4342 y Fk(W)-7 b(enn)30 b(der)f(Apac)n(he)h(W)-7 b(ebserv)n(er)28 +b(mit)i(mo)r(d_rewrite)e(b)r(en)n(utzt)j(wird,)e(k)-5 +b(ann)30 b(man)f(mit)h(dieser)20 4442 y(Regel:)20 4644 +y Fd(RewriteEngine)38 b(on)20 4744 y(RewriteRule)h(^\(.+\)/favicon\\.i) +o(co)o($)f(/favicon.ico)g([R=permanent])g([L])3037 5092 +y Fk(87)p eop end +%%Page: 88 88 +TeXDict begin 88 87 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 a +632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.88) cvn /DEST pdfmark end + 632 -5 a 640 128 a Fh(9.)41 +b(Apac)n(he)723 360 y Fk(\(z.B.)g(in)f(der)g(.h)n(taccess\))f(alle)h +(Anfragen)g(f\374r)g(fa)n(vicons)f(in)i(Un)n(terv)n(erzeic)n(hnissen)d +(auf)i(das)640 460 y(fa)n(vicon.ico)26 b(im)i(Ro)r(ot-V)-7 +b(erzeic)n(hnis)26 b(der)i(Domain)f(umleiten.)723 559 +y(W)-7 b(enn)34 b(mo)r(d_rewrite)e(nic)n(h)n(t)h(zur)f(V)-7 +b(erf\374gung)33 b(steh)n(t,)g(w)n(ohl)f(ab)r(er)h(Zugri\033)f(auf)h +(die)g(K)n(on\034gu-)640 659 y(rationsdateien)38 b(Apac)n(he)h(W)-7 +b(eb)39 b(Serv)n(ers,)f(k)-5 b(ann)39 b(man)g(in)g(z.B.)g(der)g +()f(Sektion)640 758 y(folgenden)27 b(Befehl)h +(einf\374gen:)640 941 y Fd(RedirectMatch)38 b(Permanent)i +(^\(.+\)/favicon\\.i)o(co)o($)d(http://server.de/)o(fa)o(vic)o(on)o(.i) +o(co)640 1076 y +SDict begin H.S end + 640 1076 a 640 1076 a +SDict begin 12 H.A end + 640 1076 a 640 +1076 a +SDict begin [/View [/XYZ H.V]/Dest (subsubsection*.19) cvn /DEST pdfmark +end + 640 1076 a 640 1157 a +SDict begin H.S end + 640 1157 a 640 1157 a +SDict begin 12 H.A end + 640 +1157 a 640 1157 a +SDict begin [/View [/XYZ H.V]/Dest (section*.18) cvn /DEST pdfmark +end + 640 1157 a Fj(Wie)31 b(k)m(ann)f(man)g(diese)h(F)m +(unktion)d(abstellen?)640 1310 y Fk(Es)k(gibt)f(meines)g(Wissens)g(nac) +n(h)g(k)n(eine)f(M\366glic)n(hk)n(eit)g(den)i(IE5)f(dazu)g(zu)g +(bringen,)g(nic)n(h)n(t)g(nac)n(h)640 1410 y(dem)d(fa)n(vicon.ico)e(zu) +i(suc)n(hen.)640 1526 y +SDict begin H.S end + 640 1526 a 640 1526 a +SDict begin 12 H.A end + 640 1526 +a 640 1526 a +SDict begin [/View [/XYZ H.V]/Dest (subsubsection*.21) cvn /DEST pdfmark +end + 640 1526 a 640 1626 a +SDict begin H.S end + 640 1626 a 640 1626 +a +SDict begin 12 H.A end + 640 1626 a 640 1626 a +SDict begin [/View [/XYZ H.V]/Dest (section*.20) cvn /DEST pdfmark +end + 640 1626 a Fj(Links)j(zum)e(Thema:)640 +1779 y Fd(http://www.favic)o(on.)o(de)o(/)640 1878 y(http://www.favic)o +(on.)o(co)o(m/)640 1978 y(http://wdvl.com/)o(Aut)o(ho)o(ri)o(ng/)o(De)o +(si)o(gn/)o(Im)o(ag)o(es/)o(Fa)o(vi)o(con)o(/i)o(nde)o(x.)o(ht)o(ml)640 +2078 y(http://msdn.micr)o(oso)o(ft)o(.c)o(om/)o(wo)o(rk)o(sho)o(p/)o +(es)o(sen)o(ti)o(al)o(s/v)o(er)o(sio)o(ns)o(/I)o(CPI)o(E5)o(.a)o(sp)640 +2177 y(http://msdn.micr)o(oso)o(ft)o(.c)o(om/)o(wo)o(rk)o(sho)o(p/)o +(Au)o(tho)o(r/)o(dh)o(tml)o(/h)o(owt)o(o/)o(Sh)o(ort)o(cu)o(tI)o(con)o +(.a)o(sp)640 2277 y(http://www.winfi)o(les)o(.c)o(om)o(/ap)o(ps)o(/9)o +(8/i)o(co)o(ns)o(-ed)o(it)o(.h)o(tml)640 2377 y(http://web.cip.c)o(om.) +o(br)o(/f)o(lav)o(io)o(vs)o(/se)o(c/)o(fa)o(vic)o(on)o(/p)o(riv)o(ac)o +(y.h)o(tm)o(l)640 2476 y(http://web.cip.c)o(om.)o(br)o(/f)o(lav)o(io)o +(vs)o(/se)o(c/)o(fa)o(vic)o(on)o(/i)o(nde)o(x.)o(htm)o(l)640 +2576 y(http://www.bjoer)o(nsw)o(or)o(ld)o(.de)o(/i)o(e/)o(398)o(da)o +(66)o(c.2)o(42)o(34)o(236)o(@n)o(ews)o(.b)o(jo)o(ern)o(.h)o(oe)o(hrm)o +(an)o(n.)o(de.)o(tx)o(t)640 5092 y Fk(88)p eop end +%%Page: 89 89 +TeXDict begin 89 88 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a 12 +-5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.89) cvn /DEST pdfmark end + 12 -5 a 20 277 a +SDict begin H.S end + 20 277 a 20 277 +a +SDict begin 12 H.A end + 20 277 a 20 277 a +SDict begin [/View [/XYZ H.V]/Dest (chapter.10) cvn /DEST pdfmark end + 20 277 a 521 x Fm(10.)100 b(MySQL)20 +1005 y +SDict begin H.S end + 20 1005 a 20 1005 a +SDict begin 12 H.A end + 20 1005 a 20 1005 a +SDict begin [/View [/XYZ H.V]/Dest (section.10.1) cvn /DEST pdfmark +end + 20 1005 +a 117 x Fe(10.1.)68 b(Einleitung)20 1307 y Fk(MySQL)32 +b(ist)h(eine)g(Daten)n(bank)f(und)h(phpMyA)n(dmin)g(eine)g(W)-7 +b(eb-Ob)r(er\035\344c)n(he,)31 b(um)i(MySQL)f(zu)20 1406 +y(k)n(on\034gurieren.)20 1553 y +SDict begin H.S end + 20 1553 a 20 1553 a +SDict begin 12 H.A end + 20 +1553 a 20 1553 a +SDict begin [/View [/XYZ H.V]/Dest (section.10.2) cvn /DEST pdfmark +end + 20 1553 a 135 x Fe(10.2.)68 b(K)l(ompilieren)45 +b(und)f(Installieren)20 1794 y +SDict begin H.S end + 20 1794 a 20 1794 a +SDict begin 12 H.A end + 20 +1794 a 20 1794 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.10.2.1) cvn /DEST pdfmark +end + 20 1794 a 95 x Fi(10.2.1.)57 b(Anfo)m(rderungen)145 +2045 y Fb(\210)41 b Fk(MySQL-Quellco)r(de)26 b(4.x.xx,)h(erh\344ltlic)n +(h)f(b)r(ei)i(h)n(ttp://www.m)n(ysql.com/)145 2216 y +Fb(\210)41 b Fk(Lin)n(ux)27 b(2.x.xx)145 2387 y Fb(\210)41 +b Fk(ANSI-C-Compiler)20 b(und)h(Generierungsw)n(erkzeuge,)c(GNU)22 +b(C)e(Compiler)g(\(GCC\))i(ab)e(V)-7 b(er-)228 2487 y(sion)27 +b(2.95.4,)f(w)n(esen)n(tlic)n(he)g(Generierungsw)n(erkzeuge)e(wie)k +(mak)n(e)145 2658 y Fb(\210)41 b Fk(phpMyA)n(dmin)19 +b(2.x.x\(optional\),)e(erh\344ltlic)n(h)h(b)r(ei)h(h)n(ttp://www.phpm)n +(y)n(admin.net/,)e(W)-7 b(eb-)228 2758 y(Serv)n(er,)26 +b(Apac)n(he)h(1)g(o)r(der)g(2)g(mit)h(PHP)h(4)e(o)r(der)g(5)20 +2896 y +SDict begin H.S end + 20 2896 a 20 2896 a +SDict begin 12 H.A end + 20 2896 a 20 2896 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.10.2.2) cvn /DEST pdfmark +end + 20 2896 +a 101 x Fi(10.2.2.)57 b(V)m(o)m(rb)s(ereitungen)20 3153 +y Fd(su)1655 b(als)42 b(root)g(anmelden)20 3253 y(mkdir)g +(/usr/local/src)865 b(das)42 b(Verzeichnis)d(/usr/local/src)f(anlegen,) +1763 3352 y(wenn)k(es)h(noch)f(nicht)f(vorhanden)f(ist)20 +3452 y(chmod)i(777)g(/usr/local/src)691 b(Verzeichnis-Rech)o(te)37 +b(setzen)20 3551 y(exit)1567 b(root)42 b(abmelden)20 +3651 y(cp)h(Quelldateien)38 b(/usr/local/src)430 b(Quelldateien)39 +b(kopieren)20 3791 y +SDict begin H.S end + 20 3791 a 20 3791 a +SDict begin 12 H.A end + 20 3791 a 20 +3791 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.10.2.3) cvn /DEST pdfmark +end + 20 3791 a 99 x Fi(10.2.3.)57 b(MySQL)20 4046 y +Fd(cd)43 b(/usr/local/src)996 b(Verzeichnis)39 b(wechseln)20 +4146 y(tar)j(xvfz)g(mysql-4.0.21.tar)o(.gz)516 b(Quelldateien)39 +b(entpacken)20 4245 y(cd)k(mysql-4.0.21)1084 b(in)43 +b(das)f(Quelldatei-Verze)o(ich)o(ni)o(s)37 b(wechseln)20 +4345 y(./configure)i(--help)956 b(Hilfe)42 b(zu)g(den)h(mi\366glichen)c +(Optionen)20 4445 y(./configure)g(--prefix=/usr/lo)o(ca)o(l/m)o(ys)o +(ql)o(/4.)o(0.)o(21)e(--localstatedir=)o(/v)o(ar/)o(my)o(sq)o(l/d)o(at) +o(a)1763 4544 y(prefix:)k(Installations-V)o(erz)o(ei)o(ch)o(nis)1763 +4644 y(localstatedir:)d(Daten-Verzeichn)o(is)20 4744 +y(make)1567 b(Programm)40 b(herstellen)3037 5092 y Fk(89)p +eop end +%%Page: 90 90 +TeXDict begin 90 89 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 a +632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.90) cvn /DEST pdfmark end + 632 -5 a 640 128 a Fh(10.)41 +b(MySQL)640 360 y Fd(su)1655 b(als)42 b(root)g(anmelden)640 +460 y(make)g(install)1217 b(Programm)40 b(installieren)f(\(als)j +(root!\))640 559 y(ln)h(-s)g(/usr/local/mysq)o(l/)o(4.0)o(.2)o(1)37 +b(/usr/local/mysql/)o(cu)o(rre)o(nt)2383 659 y(Link)42 +b(zu)h(MySQL)640 758 y(cp)g(support-files/my)o(sq)o(l.)o(ser)o(ve)o(r) +37 b(/etc/init.d/mysql)2383 858 y(Startdatei)j(kopieren)640 +958 y(chmod)i(755)g(/etc/init.d/mysq)o(l)2383 1057 y(Dateirechte)d +(einstellen)640 1157 y(ln)k(-s)g(/etc/init.d/mys)o(ql)37 +b(/etc/rc5.d/S20my)o(sq)o(l)2383 1257 y(Link)42 b(zum)g(Starten)f(in)i +(Runlevel5)c(anlegen)640 1356 y(ln)k(-s)g(/etc/init.d/mys)o(ql)37 +b(/etc/rc6.d/K20my)o(sq)o(l)2383 1456 y(Link)42 b(zum)g(Beenden)f(in)i +(Runlevel6)c(anlegen)640 1556 y(ln)k(-s)g(/etc/init.d/mys)o(ql)37 +b(/etc/rc0.d/K20my)o(sq)o(l)2383 1655 y(Link)42 b(zum)g(Beenden)f(in)i +(Runlevel0)c(anlegen)640 1755 y(groupadd)h(mysql)1131 +b(Gruppe)41 b(mysql)h(anlegen)640 1854 y(useradd)f(-g)h(mysql)g(-d)h +(/usr/local/mysq)o(l/)o(cur)o(re)o(nt)37 b(-s)43 b(/bin/false)c(mysql) +2383 1954 y(Benutzer)h(mysql)i(anlengen)640 2054 y(mkdir)g(-p)g +(/var/mysql/data)691 b(Daten-Verzeichni)o(s)38 b(anlegen)640 +2153 y(./scripts/mysql_)o(ins)o(ta)o(ll)o(_db)f(--user=mysql)h +(initiale)i(Datenbank)g(installieren)640 2253 y(cd)j(/usr/local/mysql)o +(/c)o(ur)o(ren)o(t)560 b(in)43 b(das)f(mysql)g(Verzeichnis)d(wechseln) +640 2353 y(cp)k(share/mysql/my-m)o(ed)o(iu)o(m.c)o(nf)37 +b(/var/mysql/data)o(/my)o(.c)o(nf)2383 2452 y(Konfiguration)h(anlegen) +640 2552 y(chown)k(-R)g(root:mysql)e(.)827 b(Benutzer-Gruppen)o(-Re)o +(ch)o(te)37 b(setzen)640 2651 y(chown)42 b(-R)g(mysql:mysql)d +(/var/mysql/data)168 b(Rechte)41 b(f\374r)i(das)f(Daten-Verzeichn)o(is) +37 b(setzen)640 2751 y(/etc/init.d/mysq)o(l)h(start)738 +b(mysql)42 b(starten)640 2851 y(./bin/mysqladmin)37 b(-u)43 +b(root)f(password)e('geheim')2383 2950 y(Datenbank-Passwo)o(rt)d +(setzen)2383 3050 y(Achtung)k(!)i(das)f(Passwort)e(steht)i(danach)f(in) +2383 3150 y(der)h(~/.bash_history)640 3292 y +SDict begin H.S end + 640 3292 +a 640 3292 a +SDict begin 12 H.A end + 640 3292 a 640 3292 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.10.2.4) cvn /DEST pdfmark +end + 640 3292 a 99 x Fi(10.2.4.)57 +b(MySQL)37 b(T)-9 b(esten)640 3548 y Fd(./bin/mysql)39 +b(-D)k(mysql)e(-u)i(root)f(-p)391 b(Client)41 b(starten)g(und)h +(zugriff)f(auf)h(die)2383 3648 y(Steuerungs-Daten)o(ban)o(k)37 +b(nehmen)640 3847 y(mysql>)k(show)h(tables;)912 b(Tabelle)41 +b(anzeigen)640 3947 y(+---------------)o(--+)640 4046 +y(|)i(Tables_in_mysql)38 b(|)640 4146 y(+---------------)o(--+)640 +4245 y(|)43 b(columns_priv)170 b(|)640 4345 y(|)43 b(db)610 +b(|)640 4445 y(|)43 b(func)522 b(|)640 4544 y(|)43 b(host)522 +b(|)640 4644 y(|)43 b(tables_priv)214 b(|)640 4744 y(|)43 +b(user)522 b(|)640 5092 y Fk(90)p eop end +%%Page: 91 91 +TeXDict begin 91 90 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a 12 +-5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.91) cvn /DEST pdfmark end + 12 -5 a 1870 128 a Fh(10.2.)40 b(K)n(ompilieren)26 +b(und)i(Installieren)20 360 y Fd(+---------------)o(--)o(+)20 +460 y(6)43 b(rows)f(in)h(set)f(\(0.00)g(sec\))20 559 +y(mysql>)f(exit;)1218 b(Client)41 b(beenden)20 659 y(Bye)20 +858 y(exit)1567 b(root)42 b(abmelden)20 982 y +SDict begin H.S end + 20 982 +a 20 982 a +SDict begin 12 H.A end + 20 982 a 20 982 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.10.2.5) cvn /DEST pdfmark +end + 20 982 a 118 x Fi(10.2.5.)57 +b(phpMyA)m(dmin)20 1257 y Fd(su)1655 b(als)42 b(root)g(anmelden)20 +1356 y(cd)h(/srv/www/htdocs)952 b(in)43 b(das)f(Apache1.3-Verzei)o(chn) +o(is)37 b(wechseln)20 1456 y(cd)43 b(/srv/www2/htdoc)o(s)909 +b(in)43 b(das)f(Apache2-Verzeich)o(nis)37 b(wechseln)20 +1556 y(tar)42 b(xvfj)g(/usr/local/src/p)o(hpM)o(yA)o(dmi)o(n-)o(2.)o +(5.7)o(-p)o(l1)o(.ta)o(r.)o(bz)o(2)1763 1655 y(Dateien)f(entpacken)20 +1755 y(ln)i(-s)g(phpMyAdmin-2.5.)o(7-)o(pl)o(1)38 b(phpMyAdmin)126 +b(Link)42 b(zu)h(phpMyAdmin)c(anlegen)20 1954 y(vi)k(phpMyAdmin/conf)o +(ig.)o(in)o(c.)o(php)516 b(phpMyAdmin)39 b(anpassen)64 +2054 y($cfg['PmaAbsolu)o(te)o(Uri)o('])e(=)43 b('http://localhos)o(t/)o +(php)o(My)o(Ad)o(min)o(/')o(;)1763 2153 y(URL)f(zu)h(Apache1.3)64 +2253 y($cfg['PmaAbsolu)o(te)o(Uri)o('])37 b(=)43 b('http://localhos)o +(t:)o(81/)o(ph)o(pM)o(yAd)o(mi)o(n/)o(';)1763 2353 y(URL)f(zu)h +(Apache2)64 2452 y($cfg['Servers'])o([$)o(i][)o('u)o(se)o(r'])429 +b(=)43 b('root';)128 b(//)43 b(MySQL)e(user)64 2552 y($cfg['Servers'])o +([$)o(i][)o('p)o(as)o(swo)o(rd)o('])255 b(=)43 b('geheim';)d(//)j +(MySQL)e(password)20 2751 y(vi)i(phpMyAdmin/.hta)o(cce)o(ss)734 +b(htaccess)40 b(anlegen)64 2851 y(AuthType)g(Basic)64 +2950 y(AuthName)g("PhpMyAdmin")64 3050 y(AuthUserFile)e +(/srv/www/htdocs/)o(php)o(My)o(Ad)o(min)o(/.)o(ht)o(pas)o(sw)o(d)1763 +3150 y(Apache1.3)64 3249 y(AuthUserFile)g(/srv/www2/htdocs)o(/ph)o(pM)o +(yA)o(dmi)o(n/)o(.h)o(tpa)o(ss)o(wd)1763 3349 y(Apache2)64 +3448 y(AuthGroupFile)g(/dev/null)64 3548 y()151 +3648 y(require)e(valid-user)64 3747 y()20 3947 +y(cd)j(/usr/local/apac)o(he/)o(cu)o(rr)o(ent)o(/b)o(in)342 +b(Verzeichnis)39 b(wechseln,)h(Apache1.3)20 4046 y(cd)j +(/usr/local/apac)o(he2)o(/c)o(ur)o(ren)o(t/)o(bin)298 +b(Verzeichnis)39 b(wechseln,)h(Apache2)20 4146 y(./htpasswd)f(--help) +1000 b(Hilfe)42 b(zu)g(htpasswd)20 4245 y(./htpasswd)d(-c)k +(/srv/www/htdocs/)o(php)o(My)o(Ad)o(min)o(/.)o(ht)o(pas)o(sw)o(d)37 +b(root)1763 4345 y(Apache1.3)20 4445 y(./htpasswd)i(-c)k +(/srv/www2/htdocs)o(/ph)o(pM)o(yA)o(dmi)o(n/)o(.h)o(tpa)o(ss)o(wd)37 +b(root)1763 4544 y(Apache2)20 4744 y(vi)43 b(/etc/apache/htt)o(pd.)o +(co)o(nf)647 b(Apache1.3)40 b(anpassen)3037 5092 y Fk(91)p +eop end +%%Page: 92 92 +TeXDict begin 92 91 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 a +632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.92) cvn /DEST pdfmark end + 632 -5 a 640 128 a Fh(10.)41 +b(MySQL)640 360 y Fd(vi)i(/etc/apache2/htt)o(pd)o(.c)o(onf)603 +b(Apache2)41 b(anpassen)684 460 y() +771 559 y(Options)h(Indexes)h(FollowSymLinks)d(MultiViews)771 +659 y(AllowOverride)g(AuthConfig)562 b(None)42 b(->)h(AuthConfig)771 +758 y(Order)e(allow,deny)771 858 y(Allow)g(from)h(all)684 +958 y()640 1157 y(/etc/init.d/apac)o(he)37 +b(graceful)563 b(Einstellungen)38 b(neu)43 b(einlesen,)c(Apache1.3)640 +1257 y(/etc/init.d/apac)o(he2)e(graceful)519 b(Einstellungen)38 +b(neu)43 b(einlesen,)c(Apache2)640 1456 y(exit)1567 b(root)42 +b(abmelden)640 5092 y Fk(92)p eop end +%%Page: 93 93 +TeXDict begin 93 92 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a 12 +-5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.93) cvn /DEST pdfmark end + 12 -5 a 20 277 a +SDict begin H.S end + 20 277 a 20 277 +a +SDict begin 12 H.A end + 20 277 a 20 277 a +SDict begin [/View [/XYZ H.V]/Dest (chapter.11) cvn /DEST pdfmark end + 20 277 a 522 x Fm(11.)100 b(PHP)20 +973 y +SDict begin H.S end + 20 973 a 20 973 a +SDict begin 12 H.A end + 20 973 a 20 973 a +SDict begin [/View [/XYZ H.V]/Dest (section.11.1) cvn /DEST pdfmark +end + 20 973 a 152 +x Fe(11.1.)68 b(Einleitung)20 1310 y Fd(Wer)42 b(hat)h(PHP)f(erfunden)e +(?)436 b(Der)42 b(Kanada-D\344ne)d(Rasmus)i(Lerdorf)f(!)20 +1410 y(Was)i(heist)g(PHP)g(?)741 b(Personal)40 b(Home)i(Page)f(Tools)20 +1509 y(Was)h(ist)h(PHP)f(?)828 b(Eine)41 b(einfache)g(Skriptsprache.)c +(Sie)43 b(wird)e(direkt)1415 1609 y(in)h(HTML-Seiten)d(eingef\374gt)h +(und)i(vom)h(Webserver)1415 1709 y(interpretiert.)20 +1808 y(Wie)f(funktioniert)d(PHP)j(?)436 b(Der)42 b(Browser)e(schickt)h +(einen)g(HTTP-Request)e(an)k(den)1415 1908 y(Webserver.)c(Der)j(Server) +f(reagiert,)f(liest)h(die)1415 2008 y(PHP-Seite)e(ein,)j(und)g +(f\374hrt)g(die)g(Skripte)f(aus)h(und)1415 2107 y(schickt)e(erst)i(das) +g(fertig)f(zusammengesetzte)1415 2207 y(Dokument)f(zur\374ck)h(an)h +(den)h(Browser)d(!)20 2406 y(LAMP)i(-)h(Linux-Apache-MyS)o(QL)o(-PH)o +(P)20 2506 y(WAMP)f(-)h(Windows-Apache-M)o(yS)o(QL-)o(PH)o(P)20 +2658 y +SDict begin H.S end + 20 2658 a 20 2658 a +SDict begin 12 H.A end + 20 2658 a 20 2658 a +SDict begin [/View [/XYZ H.V]/Dest (section.11.2) cvn /DEST pdfmark +end + 20 2658 +a 133 x Fe(11.2.)68 b(K)l(ompilieren)45 b(und)f(Installieren)20 +2898 y +SDict begin H.S end + 20 2898 a 20 2898 a +SDict begin 12 H.A end + 20 2898 a 20 2898 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.11.2.1) cvn /DEST pdfmark +end + 20 2898 +a 95 x Fi(11.2.1.)57 b(Anfo)m(rderungen)145 3150 y Fb(\210)41 +b Fk(PHP)29 b(4)e(o)r(der)g(5,)g(erh\344ltlic)n(h)g(b)r(ei)h(h)n +(ttp://www.php.net/)145 3324 y Fb(\210)41 b Fk(Lin)n(ux)27 +b(ab)g(2.4.xx\(z.B.Debian)g(Sarge)f(3.1\))145 3498 y +Fb(\210)41 b Fk(ANSI-C-Compiler)20 b(und)h(Generierungsw)n(erkzeuge,)c +(GNU)22 b(C)e(Compiler)g(\(GCC\))i(ab)e(V)-7 b(er-)228 +3597 y(sion)27 b(2.7.2,)f(w)n(esen)n(tlic)n(he)h(Generierungsw)n +(erkzeuge)d(wie)j(mak)n(e)145 3771 y Fb(\210)41 b Fk(W)-7 +b(ebserv)n(er)26 b(z.B.)h(Apac)n(he)g(1.3)g(o)r(der)g(2)145 +3945 y Fb(\210)41 b Fk(GD-Library)34 b(ab)i(2.x.x,)f(erh\344ltlic)n(h)h +(b)r(ei)g(h)n(ttp://www.b)r(outell.com/gd/,)e(F)-7 b(reet)n(yp)r(e)36 +b(ab)228 4045 y(2.x.x,)17 b(erh\344ltlic)n(h)h(b)r(ei)h(h)n +(ttp://www.freet)n(yp)r(e.org/,)d(Zlib)i(ab)g(1.x.x,)g(erh\344ltlic)n +(h)f(b)r(ei)i(h)n(ttp://www.gzip.org/zlib/,)228 4145 +y(IJG)27 b(JPEG,)i(erh\344ltlic)n(h)d(b)r(ei)i(h)n(ttp://www.ijg.org/) +20 4290 y +SDict begin H.S end + 20 4290 a 20 4290 a +SDict begin 12 H.A end + 20 4290 a 20 4290 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.11.2.2) cvn /DEST pdfmark +end + 20 +4290 a 97 x Fi(11.2.2.)57 b(V)m(o)m(rb)s(ereitungen)20 +4544 y Fd(su)1655 b(als)42 b(root)g(anmelden)20 4644 +y(mkdir)g(/usr/local/src)865 b(das)42 b(Verzeichnis)d(/usr/local/src)f +(anlegen,)1763 4744 y(wenn)k(es)h(noch)f(nicht)f(vorhanden)f(ist)3037 +5092 y Fk(93)p eop end +%%Page: 94 94 +TeXDict begin 94 93 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 a +632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.94) cvn /DEST pdfmark end + 632 -5 a 640 128 a Fh(11.)41 +b(PHP)640 360 y Fd(chmod)h(777)g(/usr/local/src)691 b(Verzeichnis-Rech) +o(te)37 b(setzen)640 460 y(exit)1567 b(root)42 b(abmelden)640 +559 y(cp)h(Quelldateien)38 b(/usr/local/src)430 b(Quelldateien)39 +b(kopieren)640 701 y +SDict begin H.S end + 640 701 a 640 701 a +SDict begin 12 H.A end + 640 701 a 640 +701 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.11.2.3) cvn /DEST pdfmark +end + 640 701 a 99 x Fi(11.2.3.)57 b(Lib)m(ra)m(ries)35 +b(f\374r)i(Zusatzfunktionen)640 855 y +SDict begin H.S end + 640 855 a 640 855 +a +SDict begin 12 H.A end + 640 855 a 640 855 a +SDict begin [/View [/XYZ H.V]/Dest (subsubsection*.23) cvn /DEST pdfmark +end + 640 855 a 640 956 a +SDict begin H.S end + 640 956 a 640 +956 a +SDict begin 12 H.A end + 640 956 a 640 956 a +SDict begin [/View [/XYZ H.V]/Dest (section*.22) cvn /DEST pdfmark +end + 640 956 a Fj(F)m(reet)m(yp)s(e)640 +1112 y Fd(cd)43 b(/usr/local/src)996 b(Verzeichnis)39 +b(wechseln)640 1212 y(tar)j(xvfj)g(freetype-2.1.9.ta)o(r.)o(bz)o(2)386 +b(Quelldateien)39 b(entpacken)640 1311 y(cd)k(freetype-2.1.9)996 +b(in)43 b(das)f(Quelldatei-Verze)o(ich)o(ni)o(s)37 b(wechseln)640 +1411 y(./configure)1259 b(Codebaum)40 b(konfigurieren)640 +1511 y(make)1567 b(Programm)40 b(herstellen)640 1610 +y(su)1655 b(als)42 b(root)g(anmelden)640 1710 y(make)g(install)1217 +b(Programm)40 b(installieren)640 1810 y(exit)1567 b(root)42 +b(abmelden)640 1932 y +SDict begin H.S end + 640 1932 a 640 1932 a +SDict begin 12 H.A end + 640 1932 +a 640 1932 a +SDict begin [/View [/XYZ H.V]/Dest (subsubsection*.25) cvn /DEST pdfmark +end + 640 1932 a 640 2034 a +SDict begin H.S end + 640 2034 a 640 2034 +a +SDict begin 12 H.A end + 640 2034 a 640 2034 a +SDict begin [/View [/XYZ H.V]/Dest (section*.24) cvn /DEST pdfmark +end + 640 2034 a Fj(Zlib)640 2190 y +Fd(cd)h(/usr/local/src)996 b(Verzeichnis)39 b(wechseln)640 +2289 y(tar)j(xvfz)g(zlib-1.2.1.tar.gz)603 b(Quelldateien)39 +b(entpacken)640 2389 y(cd)k(zlib-1.2.1)1172 b(in)43 b(das)f +(Quelldatei-Verze)o(ich)o(ni)o(s)37 b(wechseln)640 2489 +y(./configure)1259 b(Codebaum)40 b(konfigurieren)640 +2588 y(make)1567 b(Programm)40 b(herstellen)640 2688 +y(su)1655 b(als)42 b(root)g(anmelden)640 2788 y(make)g(install)1217 +b(Programm)40 b(installieren)640 2887 y(exit)1567 b(root)42 +b(abmelden)640 3010 y +SDict begin H.S end + 640 3010 a 640 3010 a +SDict begin 12 H.A end + 640 3010 +a 640 3010 a +SDict begin [/View [/XYZ H.V]/Dest (subsubsection*.27) cvn /DEST pdfmark +end + 640 3010 a 640 3111 a +SDict begin H.S end + 640 3111 a 640 3111 +a +SDict begin 12 H.A end + 640 3111 a 640 3111 a +SDict begin [/View [/XYZ H.V]/Dest (section*.26) cvn /DEST pdfmark +end + 640 3111 a Fj(IJG)31 b(JPEG)640 +3267 y Fd(cd)43 b(/usr/local/src)996 b(Verzeichnis)39 +b(wechseln)640 3367 y(tar)j(xvfz)g(jpegsrc.v6b.tar.g)o(z)560 +b(Quelldateien)39 b(entpacken)640 3467 y(cd)k(jpeg-6b)1304 +b(in)43 b(das)f(Quelldatei-Verze)o(ich)o(ni)o(s)37 b(wechseln)640 +3566 y(./configure)i(--help)956 b(Hilfe)42 b(zu)g(den)h(m\366glichen)c +(Optionen)640 3666 y(./configure)g(--enable-shared)1163 +3766 y(--enable-static)1163 3865 y(--prefix=/usr/lo)o(ca)o(l)640 +3965 y(make)1567 b(Programm)40 b(herstellen)640 4064 +y(make)i(test)1349 b(Programm)40 b(testen)640 4164 y(su)1655 +b(als)42 b(root)g(anmelden)640 4264 y(make)g(install)1217 +b(Programm)40 b(installieren)640 4363 y(exit)1567 b(root)42 +b(abmelden)640 4486 y +SDict begin H.S end + 640 4486 a 640 4486 a +SDict begin 12 H.A end + 640 4486 +a 640 4486 a +SDict begin [/View [/XYZ H.V]/Dest (subsubsection*.29) cvn /DEST pdfmark +end + 640 4486 a 640 4587 a +SDict begin H.S end + 640 4587 a 640 4587 +a +SDict begin 12 H.A end + 640 4587 a 640 4587 a +SDict begin [/View [/XYZ H.V]/Dest (section*.28) cvn /DEST pdfmark +end + 640 4587 a Fj(GD-Lib)m(ra)m(ry)640 +4744 y Fd(cd)h(/usr/local/src)996 b(Verzeichnis)39 b(wechseln)640 +5092 y Fk(94)p eop end +%%Page: 95 95 +TeXDict begin 95 94 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a 12 +-5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.95) cvn /DEST pdfmark end + 12 -5 a 1870 128 a Fh(11.2.)40 b(K)n(ompilieren)26 +b(und)i(Installieren)20 360 y Fd(tar)42 b(xvfz)g(gd-2.0.28.tar.gz)647 +b(Quelldateien)39 b(entpacken)20 460 y(cd)k(gd-2.0.28)1216 +b(in)43 b(das)f(Quelldatei-Verze)o(ich)o(ni)o(s)37 b(wechseln)20 +559 y(./configure)1259 b(Codebaum)40 b(konfigurieren)20 +659 y(make)1567 b(Programm)40 b(herstellen)20 758 y(su)1655 +b(als)42 b(root)g(anmelden)20 858 y(make)g(install)1217 +b(Programm)40 b(installieren)20 958 y(exit)1567 b(root)42 +b(abmelden)20 1141 y +SDict begin H.S end + 20 1141 a 20 1141 a +SDict begin 12 H.A end + 20 1141 a 20 +1141 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.11.2.4) cvn /DEST pdfmark +end + 20 1141 a 132 x Fi(11.2.4.)57 b(PHP)20 1456 y +Fd(cd)43 b(/usr/local/src)996 b(Verzeichnis)39 b(wechseln)20 +1556 y(tar)j(xvfj)g(php-5.0.1.tar.bz)o(2)604 b(Quelldateien)39 +b(entpacken)20 1655 y(cd)k(php-5.0.1)1216 b(in)43 b(das)f +(Quelldatei-Verze)o(ich)o(ni)o(s)37 b(wechseln)20 1755 +y(./configure)i(--help)956 b(Hilfe)42 b(zu)g(den)h(m\366glichen)c +(Optionen)20 1854 y(./configure)g(--with-apxs=/usr)o(/l)o(oca)o(l/)o +(ap)o(ach)o(e/)o(cu)o(rre)o(nt)o(/b)o(in/)o(ap)o(xs)255 +b(Apache)41 b(1.3)h(oder)543 1954 y(--with-apxs2=/us)o(r/)o(loc)o(al)o +(/a)o(pac)o(he)o(2/)o(cur)o(re)o(nt)o(/bi)o(n/)o(ap)o(xs)168 +b(Apache)41 b(2)543 2054 y(--with-mysql=/us)o(r/)o(loc)o(al)o(/m)o(ysq) +o(l/)o(cu)o(rre)o(nt)543 2153 y(--with-zlib)543 2253 +y(--with-ftp)543 2353 y(--with-gd)543 2452 y(--with-jpeg-dir=)o(/u)o +(sr/)o(lo)o(ca)o(l/l)o(ib)543 2552 y(--enable-version)o(in)o(g)543 +2651 y(--enable-track-v)o(ar)o(s=y)o(es)543 2751 y(--enable-url-inc)o +(lu)o(des)543 2851 y(--enable-sysvshm)o(=y)o(es)543 2950 +y(--enable-sysvsem)o(=y)o(es)543 3050 y(--with-config-fi)o(le)o(-pa)o +(th)o(=/)o(etc)20 3150 y(make)1567 b(Programm)40 b(herstellen)20 +3249 y(su)1655 b(als)42 b(root)g(anmelden)20 3349 y(make)g(install)1217 +b(Programm)40 b(installieren)20 3448 y(cp)j(php.ini-dist)38 +b(/etc/php.ini)518 b(PHP-Konfiguratio)o(n)37 b(kopieren)20 +3648 y(vi)43 b(/etc/apache/htt)o(pd.)o(co)o(nf)647 b(Apache1.3)40 +b(anpassen)20 3747 y(vi)j(/etc/apache2/ht)o(tpd)o(.c)o(on)o(f)604 +b(Apache2)41 b(anpassen)64 3847 y(LoadModule)e(php5_module)344 +b(modules/libphp5.)o(so)1763 3947 y(Apache2)64 4046 y(LoadModule)39 +b(php5_module)344 b(libexec/libphp5.)o(so)1763 4146 y(Apache1.3)64 +4245 y(AddModule)39 b(mod_php5.c)824 b(Apache1.3)64 4345 +y(DirectoryIndex)37 b(index.html)j(index.htm)f(index.html.var)f +(index.php)i(index.phtml)64 4445 y(AddType)g(application/x-ht)o(tpd)o +(-p)o(hp)d(.php)64 4544 y(AddType)j(application/x-ht)o(tpd)o(-p)o(hp-)o +(so)o(ur)o(ce)d(.phps)20 4744 y(exit)1567 b(root)42 b(abmelden)3037 +5092 y Fk(95)p eop end +%%Page: 96 96 +TeXDict begin 96 95 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 a +632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.96) cvn /DEST pdfmark end + 632 -5 a 640 128 a Fh(11.)41 +b(PHP)640 277 y +SDict begin H.S end + 640 277 a 640 277 a +SDict begin 12 H.A end + 640 277 a 640 277 +a +SDict begin [/View [/XYZ H.V]/Dest (section.11.3) cvn /DEST pdfmark +end + 640 277 a 85 x Fe(11.3.)68 b(Referenz)640 444 y +SDict begin H.S end + 640 +444 a 640 444 a +SDict begin 12 H.A end + 640 444 a 640 444 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.11.3.1) cvn /DEST pdfmark +end + 640 444 a 116 x Fi(11.3.1.)57 +b(Grundlagen)640 713 y Fd()h(oder)f(\045>)958 +b(Ende)41 b(des)i(PHP-Abschnitts)640 913 y(;)1351 b(Zeilenende)640 +1012 y(//)43 b(Kommentartext)692 b(Einzeiliger)38 b(Kommentartext)640 +1112 y(/*)43 b(Kommentartext)692 b(Einleitung,)38 b(mehrzeiliger)h +(Kommentartext)640 1211 y(Kommentartext)f(*/)697 b(Abschluss,)39 +b(mehrzeiliger)f(Kommentartext)640 1311 y($)1351 b(Variablen)39 +b(anfang)640 1411 y(echo)j("Text")f(;)828 b(Text)41 b(ausgeben)640 +1510 y(echo)h("Text)f($Variable)f(Text")i(;)174 b(Variable)40 +b(ausgeben)640 1610 y(echo)i("Text".$Variable)o(.")o(Tex)o(t")37 +b(;)87 b(.)43 b(Verketten)c(von)k(Zeichenfolgen)640 1710 +y(echo)f("Text\\n")e(;)741 b(\\n)42 b(Erzeugt)f(eine)h(neue)g(Zeile)640 +1809 y(echo)g("Text\\r")e(;)741 b(\\r)42 b(Erzeugt)f(einen)g(neuen)h +(Absatz)f(\(return\))640 1909 y(echo)h("Text\\tText")d(;)566 +b(\\t)42 b(Erzeugt)f(ein)h(Tabulatorschritt)640 2008 +y(echo)g("\\"Text\\"")d(;)654 b(\\")42 b(G\344nsef\374\377chen)d +(ausgeben)640 2108 y(echo)j("\\'Text\\'")d(;)654 b(\\')42 +b(Einfache)e(Anf\374hrungszeichen)d(ausgeben)640 2208 +y(echo)42 b("\\$Text\\$")d(;)654 b(\\$)42 b(Dollar-Zeichen)c(ausgeben) +640 2307 y(echo)k("\\\\Text\\\\")d(;)654 b(\\\\)42 b(Backslash)e +(ausgeben)640 2407 y($Array[Indexwert)o(]=")o(We)o(rt)o(")e(;)261 +b(Wert)41 b(einer)h(Array-Variable)c(zuweisen)i(\(Langform\))640 +2507 y($Array=array\("W0)o(",")o(W1)o("\))d(;)305 b(Werte)41 +b(einer)g(Array-Variable)d(zuweisen)i(\(Kurzform\))640 +2606 y(echo)i($Array[Indexwert)o(])37 b(;)349 b(Wert)41 +b(einer)h(Array-Variable)c(ausgeben)640 2706 y($Array[Index-Ers)o(atz)o +(]=)o("W)o(ert)o(")f(;)131 b(Wert)41 b(eines)h(Assoziativen-Arr)o(ay)o +(s)37 b(zuweisen)k(\(Langf.\))640 2806 y($Array=array\("I-)o(E0")o(=>)o +("W)o(0",)o("I)o(-E)o(1"=)o(>")o(W1)o("\))c(;)2035 2905 +y(Werte)k(eines)g(Assoziativen-Arra)o(ys)c(zuweisen\(Kurzf.\))640 +3005 y(echo)42 b($Array[Index-Ers)o(at)o(z])37 b(;)218 +b(Wert)41 b(eines)h(Assoziativen-Arr)o(ay)o(s)37 b(ausgeben)640 +3104 y($a=$b+$c)j(;)959 b(Addition)40 b(von)i($b)h(und)f($c)h(gleich)e +($a)640 3204 y($a=$b-$c)f(;)959 b(Subtraktion)38 b(von)43 +b($b)g(minus)e($c)i(gleich)e($a)640 3304 y($a=$b*$c)f(;)959 +b(Multiplikation)37 b(von)43 b($b)f(mal)h($c)f(gleich)f($a)640 +3403 y($a=$b/$c)f(;)959 b(Division)40 b($b)i(geteilt)f(durch)h($c)g +(gleich)f($a)640 3503 y($a++)h(;)1133 b($a=$a+1)40 b(;)640 +3603 y($a--)i(;)1133 b($a=$a-1)40 b(;)640 3702 y($a=3.1415)g(;)915 +b(.)43 b(Dezimaltrenner)640 3830 y +SDict begin H.S end + 640 3830 a 640 3830 +a +SDict begin 12 H.A end + 640 3830 a 640 3830 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.11.3.2) cvn /DEST pdfmark +end + 640 3830 a 105 x Fi(11.3.2.)57 +b(F)m(unktionen)640 4088 y Fd(phpinfo\(\))40 b(;)915 +b(PHP-Information)o(en)37 b(ausgeben)640 4187 y($Wochentag=date\()o +("w")o(\))g(;)436 b(Wochentag)39 b(ermitteln)h(0-So)i(bis)g(6-Sa)640 +4287 y($Monatszahl=date)o(\("m)o("\))37 b(;)392 b(Monatszahl)39 +b(ermitteln)640 4387 y($Anzahl=count\($A)o(rra)o(y\))e(;)392 +b(Elemet-Anzahl)38 b(eines)j(Arrays)g(ermitteln)640 4486 +y($Wert=round\($Wer)o(t,N)o(ac)o(hk)o(omm)o(as)o(te)o(lle)o(n\))c(;)130 +b(Rundet)41 b(den)i(Wert)e(mit)i(Nachkommastelle)o(n)640 +4586 y($Wert=sprintf\("\045)o(01.)o(2f)o(",)o($We)o(rt)o(\))37 +b(;)44 b(Rundet)d(den)h(Wert)g(auf)g(2)h(:Nachkommastelle)o(n)640 +5092 y Fk(96)p eop end +%%Page: 97 97 +TeXDict begin 97 96 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a 12 +-5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.97) cvn /DEST pdfmark end + 12 -5 a 20 277 a +SDict begin H.S end + 20 277 a 20 277 +a +SDict begin 12 H.A end + 20 277 a 20 277 a +SDict begin [/View [/XYZ H.V]/Dest (chapter.12) cvn /DEST pdfmark end + 20 277 a 522 x Fm(12.)100 b(Squid)20 +1007 y +SDict begin H.S end + 20 1007 a 20 1007 a +SDict begin 12 H.A end + 20 1007 a 20 1007 a +SDict begin [/View [/XYZ H.V]/Dest (section.12.1) cvn /DEST pdfmark +end + 20 1007 +a 118 x Fe(12.1.)68 b(Pro)l(xy)20 1311 y Fk(Squid)28 +b(=)f(Pro)n(xy-Cac)n(he)e(=)j(Stellv)n(ertreter-Zwisc)n(hensp)r(eic)n +(her)20 1461 y +SDict begin H.S end + 20 1461 a 20 1461 a +SDict begin 12 H.A end + 20 1461 a 20 1461 +a +SDict begin [/View [/XYZ H.V]/Dest (section.12.2) cvn /DEST pdfmark +end + 20 1461 a 136 x Fe(12.2.)68 b(Einfacher)45 b(Cache)64 +1782 y Fd(*--------------)o(-*)211 b(*------------*)82 +b(|)k(*---------*)d(|)j(*------------*)64 1882 y(|)43 +b(lokaler)d(Cache)i(|<--->|)e(WWW-Client)g(|<--->|)g(Intenet)h(|<--->|) +g(WWW-Server)e(|)64 1982 y(*--------------)o(-*)211 b(*------------*)82 +b(|)k(*---------*)d(|)j(*------------*)64 2081 y(Die)42 +b(einfachste)d(form)j(des)g(Caches)347 b(|)653 b(|)20 +2222 y +SDict begin H.S end + 20 2222 a 20 2222 a +SDict begin 12 H.A end + 20 2222 a 20 2222 a +SDict begin [/View [/XYZ H.V]/Dest (section.12.3) cvn /DEST pdfmark +end + 20 2222 +a 145 x Fe(12.3.)68 b(Pro)l(xy)45 b(Cache)64 2553 y Fd(*------------*) +64 2653 y(|)e(WWW-Client)c(|<-+)826 b(|)654 b(|)64 2752 +y(*------------*)81 b(|)827 b(|)654 b(|)761 2852 y(|)827 +b(|)654 b(|)64 2951 y(*------------*)81 b(|)87 b(*-------------*)80 +b(|)87 b(*---------*)c(|)j(*------------*)64 3051 y(|)43 +b(WWW-Client)c(|<-+->|)i(Proxy)g(Cache)h(|<--->|)e(Intenet)h(|<--->|)f +(WWW-Server)g(|)64 3151 y(*------------*)81 b(|)87 b(*-------------*)80 +b(|)87 b(*---------*)c(|)j(*------------*)761 3250 y(|)827 +b(|)654 b(|)64 3350 y(*------------*)81 b(|)827 b(|)654 +b(|)64 3450 y(|)43 b(WWW-Client)c(|<-+)826 b(|)654 b(|)64 +3549 y(*------------*)20 3683 y +SDict begin H.S end + 20 3683 a 20 3683 a +SDict begin 12 H.A end + 20 +3683 a 20 3683 a +SDict begin [/View [/XYZ H.V]/Dest (section.12.4) cvn /DEST pdfmark +end + 20 3683 a 152 x Fe(12.4.)68 b(Aufgab)t(en)145 +4021 y Fb(\210)41 b Fk(Zwisc)n(hensp)r(eic)n(hern)27 +b(v)n(on)h(In)n(ternetseitten)h(->)f(Besc)n(hleunigter)g(Zugri\033)g +(auf)h(In)n(ternetin-)228 4120 y(halte)145 4295 y Fb(\210)41 +b Fk(Abk)n(opp)r(elung)f(v)n(om)g(direkten)h(Zugri\033)f(auf)h(das)f +(In)n(ternet)h(->)f(Erh\366te)h(Sic)n(herheit)f(im)228 +4394 y(lok)-5 b(alem)27 b(Netz)145 4569 y Fb(\210)41 +b Fk(Filterung)27 b(v)n(on)g(In)n(terrnetseiten)145 4744 +y Fb(\210)41 b Fk(Protok)n(ollierung)25 b(des)i(In)n(ternetv)n(erk)n +(ehrs)3037 5092 y(97)p eop end +%%Page: 98 98 +TeXDict begin 98 97 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 a +632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.98) cvn /DEST pdfmark end + 632 -5 a 640 128 a Fh(12.)41 +b(Squid)640 277 y +SDict begin H.S end + 640 277 a 640 277 a +SDict begin 12 H.A end + 640 277 a 640 277 +a +SDict begin [/View [/XYZ H.V]/Dest (section.12.5) cvn /DEST pdfmark +end + 640 277 a 85 x Fe(12.5.)68 b(Eigenschaften)765 556 +y Fb(\210)41 b Fk(Gr\366\377e)26 b(des)h(Cac)n(he)g(k)-5 +b(ann)28 b(frei)f(de\034niert)h(w)n(erden)765 748 y Fb(\210)41 +b Fk(Aufbau)28 b(v)n(on)f(Cac)n(he-Hierarc)n(hien)765 +939 y Fb(\210)41 b Fk(Eigener)27 b(DNS-Cac)n(he)765 1131 +y Fb(\210)41 b Fk(Authen)n(ti\034zierung)27 b(\374b)r(er)h +(zus\344tzlic)n(he)f(Mo)r(dule)g(m\366glic)n(h)765 1323 +y Fb(\210)41 b Fk(F\374r)27 b(Win,)h(OS/2,)f(Lin)n(ux,)g(BSD,)h +(Solaris)e(v)n(erf\374gbar)765 1515 y Fb(\210)41 b Fk(Aus\034lterung)27 +b(und)h(Anon)n(ymisierung)e(der)i(Anfragen)765 1707 y +Fb(\210)41 b Fk(Sehr)27 b(\035exible)h(Zugri\033sk)n(on)n(trolle)765 +1899 y Fb(\210)41 b Fk(Filterung)27 b(\374b)r(er)h(externe)f(Programme) +f(\(Squid-Guard\))640 2073 y +SDict begin H.S end + 640 2073 a 640 2073 a +SDict begin 12 H.A end + 640 +2073 a 640 2073 a +SDict begin [/View [/XYZ H.V]/Dest (section.12.6) cvn /DEST pdfmark +end + 640 2073 a 135 x Fe(12.6.)68 b(Protok)l(olle)640 +2296 y +SDict begin H.S end + 640 2296 a 640 2296 a +SDict begin 12 H.A end + 640 2296 a 640 2296 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.12.6.1) cvn /DEST pdfmark +end + 640 +2296 a 123 x Fi(12.6.1.)57 b(Client-K)m(ommunik)m(ation)765 +2584 y Fb(\210)41 b Fk(Hyp)r(er)27 b(T)-7 b(ext)28 b(T)-7 +b(ransfer)26 b(Proto)r(col)h(\(HTTP\))765 2776 y Fb(\210)41 +b Fk(File)28 b(T)-7 b(ransfer)26 b(Proto)r(col)h(\(FTP\))765 +2968 y Fb(\210)41 b Fk(Gopher)765 3160 y Fb(\210)g Fk(Wide)28 +b(Area)f(Information)f(Service)h(\(W)-9 b(AIS\))765 3352 +y Fb(\210)41 b Fk(Secure)27 b(So)r(c)n(k)n(et)g(La)n(y)n(er)e(\(SSL\)) +640 3517 y +SDict begin H.S end + 640 3517 a 640 3517 a +SDict begin 12 H.A end + 640 3517 a 640 3517 +a +SDict begin [/View [/XYZ H.V]/Dest (subsection.12.6.2) cvn /DEST pdfmark +end + 640 3517 a 101 x Fi(12.6.2.)57 b(K)m(ommunik)m(ation)34 +b(zwischen)i(Pro)m(xy-Cache-Servern)765 3784 y Fb(\210)41 +b Fk(Hyp)r(erT)-7 b(ext)27 b(T)-7 b(ransfer)27 b(Proto)r(col)f +(\(HTTP\))765 3976 y Fb(\210)41 b Fk(In)n(ternet)27 b(Cac)n(he)g(Proto) +r(col)g(\(ICP\(3130\)\))765 4168 y Fb(\210)41 b Fk(Cac)n(he)26 +b(Digests)i(\(Index)g(v)n(on)e(anderen)h(Cac)n(hes)g(abfragen\))765 +4360 y Fb(\210)41 b Fk(Simple)28 b(Net)n(w)n(ork)e(Managemen)n(t)g +(Proto)r(col)h(\(SNMP\))765 4552 y Fb(\210)41 b Fk(Hyp)r(erT)-7 +b(ext)27 b(Cac)n(hing)g(Proto)r(col)f(\(HTCP\(4837\)\))765 +4744 y Fb(\210)41 b Fk(W)-7 b(eb)28 b(Cac)n(he)e(Co)r(ordination)h +(Proto)r(col)f(\(W)n(CCP\))640 5092 y(98)p eop end +%%Page: 99 99 +TeXDict begin 99 98 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a 12 +-5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.99) cvn /DEST pdfmark end + 12 -5 a 2058 128 a Fh(12.7.)40 b(System)n(v)n +(oraussetzungen)20 277 y +SDict begin H.S end + 20 277 a 20 277 a +SDict begin 12 H.A end + 20 277 a 20 +277 a +SDict begin [/View [/XYZ H.V]/Dest (section.12.7) cvn /DEST pdfmark +end + 20 277 a 83 x Fe(12.7.)68 b(Systemvo)l(raussetzungen)145 +542 y Fb(\210)41 b Fk(Langsamme)26 b(CPU)145 705 y Fb(\210)41 +b Fk(Viel)28 b(RAM)145 868 y Fb(\210)41 b Fk(Sc)n(hnelle)27 +b(F)-7 b(estplatte\(n\))145 1031 y Fb(\210)41 b Fk(Gro\377e)26 +b(F)-7 b(estplatte\(n\))20 1175 y +SDict begin H.S end + 20 1175 a 20 1175 a +SDict begin 12 H.A end + +20 1175 a 20 1175 a +SDict begin [/View [/XYZ H.V]/Dest (section.12.8) cvn /DEST pdfmark +end + 20 1175 a 129 x Fe(12.8.)68 b(SuSE)47 +b(Linux)20 1486 y Fd(rcsquid)41 b(start)477 b(Squid)41 +b(starten)20 1585 y(rcsquid)g(stop)521 b(Squid)41 b(stoppen)20 +1685 y(rcsquid)g(restart)389 b(Squid)41 b(stoppen)g(und)h(dann)g +(starten)20 1785 y(rcsquid)f(status)433 b(Squid)41 b(info)20 +1927 y +SDict begin H.S end + 20 1927 a 20 1927 a +SDict begin 12 H.A end + 20 1927 a 20 1927 a +SDict begin [/View [/XYZ H.V]/Dest (section.12.9) cvn /DEST pdfmark +end + 20 1927 +a 131 x Fe(12.9.)68 b(Automatische)43 b(Sta)l(rten)h(von)h(Squit)20 +2240 y Fd(cd)e(/etc/rc.d/rc5.d)o(/)20 2339 y(ln)g(-s)g(../squid)d +(S22squid)389 b(Link)41 b(zum)i(automatischen)38 b(Starten)i(in)j +(Runlevel)d(5)1415 2439 y(anlegen.)20 2538 y(ln)j(-s)g(../squid)d +(K02squid)389 b(Link)41 b(zum)i(automatischen)38 b(Beenden)i(in)j +(Runlevel)d(5)1415 2638 y(anlegen.)20 2780 y +SDict begin H.S end + 20 2780 +a 20 2780 a +SDict begin 12 H.A end + 20 2780 a 20 2780 a +SDict begin [/View [/XYZ H.V]/Dest (section.12.10) cvn /DEST pdfmark +end + 20 2780 a 131 x Fe(12.10.)68 +b(Squiddateien)20 3093 y Fd(/etc/squid.conf)735 b(Squid)41 +b(Konfigurationsda)o(te)o(i)20 3193 y(/usr/share/squid)o(/e)o(rro)o(rs) +o(/)343 b(Fehlermeldungen)37 b(die)42 b(der)g(Squid)g(ausgibt)20 +3292 y(/var/cache/squid)o(/)648 b(Squid-Cache)20 3392 +y(/var/log/squid/a)o(cc)o(ess)o(.l)o(og)299 b(Log-Datei)39 +b(mit)k(allen)e(Zugriffen)20 3492 y(/var/log/squid/c)o(ac)o(he.)o(lo)o +(g)343 b(Cache-Aktivitae)o(te)o(n)20 3634 y +SDict begin H.S end + 20 3634 a +20 3634 a +SDict begin 12 H.A end + 20 3634 a 20 3634 a +SDict begin [/View [/XYZ H.V]/Dest (section.12.11) cvn /DEST pdfmark +end + 20 3634 a 131 x Fe(12.11.)68 +b(squid.conf)20 3947 y Fd(http_port:)39 b(Proxy-Portnummer)20 +4046 y(#)k(http_port)d(3128)20 4146 y(http_port)g(8080)20 +4345 y(cache_mem:)f(Hauptspeicherverb)o(ra)o(uch)e(\(x3\))20 +4445 y(#)43 b(cache_mem)d(8)j(MB)20 4644 y(maximum_object_s)o(iz)o(e:) +37 b(maximale)j(groe\377e)h(einer)h(Datei)f(die)i(der)f(Proxy)f +(speichert)20 4744 y(#)i(maximum_object_s)o(ize)37 b(4096)42 +b(KB)3037 5092 y Fk(99)p eop end +%%Page: 100 100 +TeXDict begin 100 99 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 +a 632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.100) cvn /DEST pdfmark end + 632 -5 a 640 128 a Fh(12.)41 +b(Squid)640 460 y Fd(minimum_object_s)o(ize)o(:)c(minimale)j(groe\377e) +h(einer)h(Datei)f(die)i(der)f(Proxy)f(speichert)640 559 +y(#)i(minimum_object_si)o(ze)37 b(0)43 b(KB)640 758 y(cache_dir:)c +(Verzeichnisname)f(Groe\377eMByte)h(Ebene1)i(Ebene2)640 +858 y(#)i(cache_dir)d(ufs)i(/var/cache/squid)37 b(100)42 +b(16)h(256)640 958 y(cache_dir)d(ufs)i(/var/cache/squid)37 +b(400)42 b(16)h(256)640 1157 y(cache_access_log)o(:)38 +b(Log-Datei)h(mit)k(allen)e(Zugriffen)640 1257 y(#)i(cache_access_log) +37 b(/var/log/squid/a)o(cc)o(ess)o(.l)o(og)640 1456 y(cache_log:)i +(Log-Datei)h(fuer)i(alle)g(Cache-Aktivitaet)o(en)640 +1556 y(#)h(cache_log)d(/var/log/squid/c)o(ac)o(he.)o(lo)o(g)640 +1755 y(debug_options:)e(ALL,1-normal)g(9-maximal)640 +1854 y(#)43 b(debug_options)38 b(ALL,1)640 2054 y(log_fqdn:)i(Bei)i(on) +h(wird)f(der)g(Name)g(und)g(bei)h(off)f(wird)g(die)g(IP-Nummer)1076 +2153 y(in)h(der)f(access.log)d(speichert)640 2253 y(#)k(log_fqdn)d(off) +640 2353 y(log_fqdn)g(off)640 2552 y(client_netmask:)d(Zum)43 +b(Anonymisieren)1337 2651 y(255.255.255.255)38 b(volle)j(IP-Nr.,)1337 +2751 y(255.255.255.0)d(ersten)j(3)j(Stellen)640 2851 +y(#)f(client_netmask)38 b(255.255.255.255)640 3050 y(ftp_user:)i +(Anonymer)g(FTP-Name)640 3150 y(#)j(ftp_user)d(Squid@)640 +3249 y(ftp_user)g(Anonymous@)640 3548 y(dns_children:)e(maximale)i +(Anzahl)h(der)i(DNS)f(Prozesse)640 3648 y(#)h(dns_children)c(5)640 +3847 y(dns_nameservers:)e(Eintrag)k(fuer)g(DNS-Server)640 +3947 y(#dns_nameservers)c(194.25.2.129)h(192.168.6.66)640 +4146 y(reference_age:)g(maximale)i(Alter)h(der)i(Cachefiles)c(\(0.0)j +(week/days/months)o(/h)o(ou)o(rs\))640 4245 y(#)h(reference_age)38 +b(1)44 b(year)640 4445 y(negative_ttl:)38 b(gibt)k(an)h(wie)f(lange)g +(eine)f(negative)g(DNS)h(Aufloesung)d(gueltig)i(ist)640 +4544 y(#)i(negative_ttl)c(5)k(minutes)640 4744 y(http_access:)c +(Zugriffsrechte)e(fuer)42 b(den)g(Cache)640 5092 y Fk(100)p +eop end +%%Page: 101 101 +TeXDict begin 101 100 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a +12 -5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.101) cvn /DEST pdfmark end + 12 -5 a 2502 128 a Fh(12.11.)40 +b(squid.conf)20 360 y Fd(#)j(acl)g(-)g(aclname)d(acltype)h(string)g(-)i +(definiert)d(eine)i(Zuganskontrolle)37 b(und)42 b(Sperrliste)20 +460 y(#)h(src)g(-)g(Client)e(IP-Adresse/Adre)o(ssb)o(er)o(ei)o(ch)20 +559 y(#)i(dst)g(-)g(Zielserver)c(IP-Adresse/Adres)o(sb)o(ere)o(ic)o(h) +20 659 y(#)k(srcdomain)d(-)j(Client)e(\(Domain-\)Name)20 +758 y(#)i(dstdomain)d(-)j(Zielserver)c(\(Domain-\)Name)20 +858 y(#)k(srcdom_regex)c(-)k(Cient)e(\(Domain-\)Name)d(als)43 +b(RegEx)20 958 y(#)g(dstdom_regex)c(-)k(Zielserver)c(\(Domain-\)Name)f +(als)43 b(RegEx)20 1057 y(#)g(port)f(-)h(Port)f(oder)g(-bereich)e +(f\374r)j(Verbindungen)20 1157 y(#)g(proto)f(-)h(Protokoll)d(\(z.B.)h +(HTTP,)h(FTP)g(...\))g(f\374r)g(die)g(Verbindung)20 1257 +y(#)h(method)e(-)i(Methode)e(der)h(Verbindung)e(\(z.B.)h(GET,)h(POST)g +(...\))20 1356 y(#)h(proxy_auth)d(-)j(Benutzernamen)38 +b(bei)k(Authentifizierun)o(g)20 1456 y(#)h(urlpath_regex)38 +b(Teil)k(einer)g(URL)g(als)g(RegEx)20 1556 y(acl)g(all)h(src)f +(0.0.0.0/0.0.0.0)20 1655 y(acl)g(rotten)f(dstdomain)f(www.rotten.com)20 +1755 y(http_access)f(deny)j(rotten)20 1854 y(http_access)d(allow)i(all) +20 2054 y(cache_mgr:)e(E-Mail)i(bei)i(einen)e(Fehler)g(an:)i(E-Mail)e +(oder)g(Alias\(/etc/aliase)o(s\))20 2153 y(#)i(cache_mgr)d(webmaster)20 +2353 y(cache_effective_)o(us)o(er:)d(BenutzerName/ID)20 +2452 y(#)43 b(cache_effective_)o(use)o(r)37 b(squid)20 +2651 y(cache_effective_)o(gr)o(oup)o(:)g(GruppenName/ID)20 +2751 y(#)43 b(cache_effective_)o(gro)o(up)37 b(nogroup)20 +2950 y(visible_hostname)o(:)g(ServerName)j(bei)i(Fehlermeldungen)20 +3050 y(#)h(none)20 3150 y(visible_hostname)37 b(proxy.gelbdmz.lo)o(c)20 +3349 y(logfile_rotate:)g(Zeit)42 b(der)g(Logdateien)e(in)j(Wochen)20 +3448 y(#)g(logfile_rotate)38 b(0)20 3648 y(append_domain:)g(Kein)k +(Punkt)f(in)i(der)f(URL)g(?)i(Dann)d(diesen)g(Domainnamen)e(anhaengen) +20 3747 y(#)k(none)20 3847 y(append_domain)38 b(.meak.de)20 +4046 y(error_directory:)f(Verzeichnis)i(zu)k(den)f(Fehlermeldungen)37 +b(die)42 b(der)h(Squid)e(ausgibt)20 4146 y(#error_directory)c +(/usr/share/squid)o(/e)o(rr)o(ors)2996 5092 y Fk(101)p +eop end +%%Page: 102 102 +TeXDict begin 102 101 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 +a 632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.102) cvn /DEST pdfmark end + 632 -5 a eop end +%%Page: 103 103 +TeXDict begin 103 102 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a +12 -5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.103) cvn /DEST pdfmark end + 12 -5 a 20 1610 a +SDict begin H.S end + 20 1610 a 20 +1610 a +SDict begin 12 H.A end + 20 1610 a 20 1610 a +SDict begin [/View [/XYZ H.V]/Dest (part.4) cvn /DEST pdfmark end + 20 1610 a 1259 1788 a Fm(T)-17 +b(eil)69 b(IV.)791 2203 y Ff(Programmieren)2996 5092 +y Fk(103)p eop end +%%Page: 104 104 +TeXDict begin 104 103 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 +a 632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.104) cvn /DEST pdfmark end + 632 -5 a eop end +%%Page: 105 105 +TeXDict begin 105 104 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a +12 -5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.105) cvn /DEST pdfmark end + 12 -5 a 20 277 a +SDict begin H.S end + 20 277 a 20 +277 a +SDict begin 12 H.A end + 20 277 a 20 277 a +SDict begin [/View [/XYZ H.V]/Dest (chapter.13) cvn /DEST pdfmark end + 20 277 a 533 x Fm(13.)100 b(Bash)20 +1000 y +SDict begin H.S end + 20 1000 a 20 1000 a +SDict begin 12 H.A end + 20 1000 a 20 1000 a +SDict begin [/View [/XYZ H.V]/Dest (section.13.1) cvn /DEST pdfmark +end + 20 1000 +a 162 x Fe(13.1.)68 b(Einleitung)20 1368 y Fd(Was)42 +b(heist)g(BASH)g(?)697 b(Bourne-Again)38 b(SHell)20 1568 +y(Was)k(ist)h(die)f(BASH)g(?)610 b(Standard-Shell)37 +b(der)42 b(meisten)f(Linux-Distributi)o(on)o(en)1415 +1667 y(Eine)g(fast)h(komplette)e(Programmiersprac)o(he)103 +1902 y Fk(BASH-Programme)26 b(w)n(erden)h(auc)n(h)g(SScripte"\(Protok)n +(olle\))f(genann)n(t)h(!)20 2104 y +SDict begin H.S end + 20 2104 a 20 2104 +a +SDict begin 12 H.A end + 20 2104 a 20 2104 a +SDict begin [/View [/XYZ H.V]/Dest (section.13.2) cvn /DEST pdfmark +end + 20 2104 a 142 x Fe(13.2.)68 b(Referenz)20 +2452 y Fd(#!/bin/bash)911 b(Pfad)41 b(zur)i(Shell)e(die)h(das)h +(Programm)d(ausf\374hren)g(soll)20 2552 y(chmod)i(u+x)g(Script)695 +b(Macht)41 b(das)h(Script)f(ausf\374hrbar)20 2651 y(bash)h(Script)f +(oder)h(sh)h(Script)259 b(so)42 b(gehts)g(auch)20 2851 +y(#)1351 b(Kommentar)39 b(bis)k(Zeilenende)20 2950 y(:)1351 +b(Null-Funktion.)37 b(Ein)42 b(Befehl,)f(der)h(nichts)f(tut.)20 +3050 y(\(\()i(oder)f([)20 3150 y(\)\))h(oder)f(])20 3249 +y(echo)g(Text)1001 b(Gibt)41 b(den)i(Text)f(aus)20 3349 +y(echo)g("Text")913 b(Gibt)41 b(den)i(Text)f(aus)20 3448 +y(echo)g(Text)129 b(Text)696 b(Gibt)41 b(den)i(Text)f(mit)g(nur)g +(einer)g(Leerstelle)d(aus)20 3548 y(echo)j("Text)129 +b(Text")608 b(Gibt)41 b(den)i(Text)f(mit)g(allen)f(Leerstellen)e(aus)20 +3648 y(echo)j(Text\\)f(\\)j(\\)f(Text)565 b(Gibt)41 b(den)i(Text)f(mit) +g(allen)f(Leerstellen)e(aus)20 3847 y(Variable=7)955 +b(Speichert)39 b(7)k(in)g(der)f(Variable)20 3947 y(Variable=z)955 +b(Speichert)39 b(z)k(in)g(der)f(Variable)20 4146 y(echo)g($Variable)781 +b(Gibt)41 b(den)i(Inhalt)e(der)h(Variable)e(aus)20 4245 +y(echo)i(${Variable})693 b(Gibt)41 b(den)i(Inhalt)e(der)h(Variable)e +(aus)20 4445 y(Wert=$[$Wert+1])735 b(Wert=Wert+1)20 4544 +y(Wert=$\(\($Wert+1\))o(\))648 b(Wert=Wert+1)20 4644 +y(:)43 b($[Wert+=1])868 b(Wert=Wert+1)20 4744 y(:)43 +b($\(\(Wert+=1\)\))780 b(Wert=Wert+1)2996 5092 y Fk(105)p +eop end +%%Page: 106 106 +TeXDict begin 106 105 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 +a 632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.106) cvn /DEST pdfmark end + 632 -5 a 640 128 a Fh(13.)41 +b(Bash)640 277 y +SDict begin H.S end + 640 277 a 640 277 a +SDict begin 12 H.A end + 640 277 a 640 277 +a +SDict begin [/View [/XYZ H.V]/Dest (section.13.3) cvn /DEST pdfmark +end + 640 277 a 85 x Fe(13.3.)68 b(Steuer)44 b(und)h(Sonderzeichen)e(der)i +(Bash)640 544 y Fd(Zeichen)738 b(Funktion)640 643 y(-------)g(--------) +640 743 y(Leerzeichen)39 b(\(space\))215 b(Trenner)41 +b(zwischen)f(Programm-Parame)o(ter)o(n)640 842 y(Tabulator)g(\(tab\)) +390 b(Trenner)41 b(zwischen)f(Programm-Parame)o(ter)o(n)640 +942 y(Return)h(\(newline\))345 b(Befehlseingabe)640 1042 +y(\\)43 b(\(backslash\))475 b(Escape-Zeichen)640 1141 +y(|)43 b(\(pipe\))695 b(Verkettung)39 b(der)k(Ein-/Ausgabe)38 +b(mehrerer)i(Programme)640 1241 y(&)j(\(ampersand\))475 +b(Programm)40 b(als)i(Hintergrund-Proze)o(ss)37 b(starten,)1686 +1341 y(Ein-/Ausgabeumle)o(it)o(un)o(g)640 1440 y(;)43 +b(\(semikolon\))475 b(Trenner)41 b(zwischen)f(zwei)i(Programmaufrufe)o +(n)640 1540 y(\()h(\))g(\(braces\))520 b(Gruppierung,)38 +b(Berechnung)640 5092 y Fk(106)p eop end +%%Page: 107 107 +TeXDict begin 107 106 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a +12 -5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.107) cvn /DEST pdfmark end + 12 -5 a 20 277 a +SDict begin H.S end + 20 277 a 20 +277 a +SDict begin 12 H.A end + 20 277 a 20 277 a +SDict begin [/View [/XYZ H.V]/Dest (chapter.14) cvn /DEST pdfmark end + 20 277 a 520 x Fm(14.)100 b(git)20 +1001 y +SDict begin H.S end + 20 1001 a 20 1001 a +SDict begin 12 H.A end + 20 1001 a 20 1001 a +SDict begin [/View [/XYZ H.V]/Dest (section.14.1) cvn /DEST pdfmark +end + 20 1001 +a 116 x Fe(14.1.)68 b(Dokumentation)20 1299 y Fd(git)42 +b(help)g(status)1131 b(Manpage)40 b(von)j(git)f(status)f(anzeigen)20 +1398 y(git)h(status)f(--help)1044 b(Manpage)40 b(von)j(git)f(status)f +(anzeigen)20 1498 y(man)h(git-status)1173 b(Manpage)40 +b(von)j(git)f(status)f(anzeigen)20 1641 y +SDict begin H.S end + 20 1641 a 20 +1641 a +SDict begin 12 H.A end + 20 1641 a 20 1641 a +SDict begin [/View [/XYZ H.V]/Dest (section.14.2) cvn /DEST pdfmark +end + 20 1641 a 131 x Fe(14.2.)68 +b(K)l(on\034guration)20 1954 y Fd(git)42 b(config)f(--global)g(...)783 +b(Speichern)39 b(im)k(Homeverzeichnis)37 b(.gitconfig)20 +2054 y(git)42 b(config)f(--system)g(...)783 b(/etc/gitconfig)37 +b(konfigurieren)h(unueblich)20 2153 y(git)k(config)f(...)1176 +b(Arbeitsverzeich)o(ni)o(s)38 b(.git/config)20 2253 y(git)k(config)f +(user.name)f("Max)i(Mustermann")170 b(Name)42 b(konfigurieren)20 +2353 y(git)g(config)f(user.email)f("max.mustermann)o(@ex)o(am)o(le)o +(.co)o(m")1807 2452 y(E-Mail)h(konfigurieren)20 2552 +y(git)h(config)f(--unset)g(user.name)563 b(Name)42 b(l\366schen)20 +2651 y(git)g(config)f(alias.st)g(status)651 b(Alias)41 +b(status)g(->)i(st)86 b(herstellen)20 2751 y([alias])1479 +b(n\374tzliche)39 b(Abk\374rzungen)369 2851 y(st)j(=)i(status)369 +2950 y(ci)e(=)i(commit)369 3050 y(br)e(=)i(branch)369 +3150 y(co)e(=)i(checkout)369 3249 y(df)e(=)i(diff)369 +3349 y(he)e(=)i(help)369 3448 y(cl)e(=)i(clone)20 3548 +y(git)e(config)f(-e)1220 b(startet)40 b(Editor)h(auf)i(der)f +(Konfiguration)20 3648 y(git)g(config)f(color.ui)g(auto)739 +b(Farben)41 b(einstellen)20 3747 y(git)h(config)f(core.eol)g(lf,crlf)f +(oder)i(native)85 b(Zeilenende)39 b(lf-Linux)h(crlf-Windows)1807 +3847 y(native-System-D)o(ef)o(aul)o(t)20 3947 y(git)i(config)f +(core.safecrlf)736 b(Verbietet)39 b(Commit)i(bei)i(vermischung)20 +4046 y(git)f(config)f(core.autocrlf)d(input)478 b(sichere)40 +b(Einstellung)f(bei)k(\344lteren)1807 4146 y(Git-Versionen)38 +b(unter)j(Windows)20 4245 y(git)h(config)f(il8n.commitEncodi)o(ng)c +(ISO-8859-1)1807 4345 y(Zeichenkodierun)o(g)g(ISO-8859-1)1807 +4445 y(Standart)j(UTF-8)20 4544 y(git)i(config)f(core.pager)f('env)i +(LESSCHARSET=iso)o(88)o(59)37 b(less')1807 4644 y(Zeichenkodierun)o(g)g +(f\374r)43 b(den)f(Pager)20 4744 y(git)g(config)f(core.editor)e(vim)653 +b(Vim)42 b(als)g(Editor)f(einstellen)2996 5092 y Fk(107)p +eop end +%%Page: 108 108 +TeXDict begin 108 107 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 +a 632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.108) cvn /DEST pdfmark end + 632 -5 a 640 128 a Fh(14.)41 +b(git)640 360 y Fd(git)h(config)f(core.browser)e(...)609 +b(Browser)40 b(einstellen)640 460 y(git)i(config)f(help.autocorrect)c +(n)523 b(beim)42 b(Vertippen)d(\344hnliches)h(Subkommando)2427 +559 y(ausf\374hren,)f(n)k(Zentelsekunden)38 b(bis)k(zum)2427 +659 y(Ausf\374hren,)d(-1)k(f\374r)f(sofort)f(aus,)h(0)h(zeigt)2427 +758 y(nur)f(M\366glichkeiten)c(an)640 858 y(git)k(config)f(--list)1044 +b(alle)42 b(Einstellungen)c(anzeigen)640 1002 y +SDict begin H.S end + 640 1002 +a 640 1002 a +SDict begin 12 H.A end + 640 1002 a 640 1002 a +SDict begin [/View [/XYZ H.V]/Dest (section.14.3) cvn /DEST pdfmark +end + 640 1002 a 131 x Fe(14.3.)68 +b(K)l(on\034gurationen)43 b(\374b)t(er)h(Umgebungsva)l(riablen)640 +1315 y Fd(GIT_EDITOR)650 b(Editor)41 b(den)h(Git)g(verwendet)1730 +1414 y(sonst)f(greift)g(die)h(Variable)f(EDITOR)640 1514 +y(GIT_PAGER)694 b(der)42 b(wert)g(cat)g(schaltet)e(den)j(Pager)e(aus) +640 1614 y(GIT_AUTHOR_EMAIL)386 b(E-Mail)41 b(f\374r)h(den)g(Autor)g +(des)g(Commits)640 1713 y(GIT_COMMITTER_EM)o(AIL)255 +b(E-Mail)41 b(f\374r)h(das)g(Commiter-Feld)c(des)43 b(Commits)640 +1813 y(GIT_AUTHOR_NAME)430 b(Name)41 b(f\374r)i(den)f(Autor)f(des)i +(Commits)640 1912 y(GIT_COMMITTER_NA)o(ME)299 b(Name)41 +b(f\374r)i(das)f(Commiter-Feld)c(des)k(Commits)640 2012 +y(GIT_DIR)782 b(Verzeichnis,)38 b(in)43 b(dem)f(sich)g(das)g +(Git-Repository)c(befindet)1730 2112 y(macht)j(nur)h(sinn)g(bei)g +(einem)g(Git-Repository)640 2255 y +SDict begin H.S end + 640 2255 a 640 2255 +a +SDict begin 12 H.A end + 640 2255 a 640 2255 a +SDict begin [/View [/XYZ H.V]/Dest (section.14.4) cvn /DEST pdfmark +end + 640 2255 a 131 x Fe(14.4.)68 +b(Der)46 b(Index)640 2568 y Fk(Der)28 b(Inhalt)g(v)n(on)f(Dateinen)i +(liegt)f(f\374r)g(Git)g(auf)g(drei)g(Eb)r(enen,)h(den)f(W)-7 +b(orking)27 b(T)-7 b(ree,)27 b(dem)i(Index)640 2668 y(und)f(dem)g(Rep)r +(ository)-7 b(.)1773 2851 y Fd(clone/fetch/pull)1207 +2950 y(+----------+)38 b(----------------)o(--)o(---)o(--)o(---)o(--)o +(--)o(---)o(--)o(--)o(---)o(--)o(--)o(---)o(--)o(->)f(+)1207 +3050 y(|Repository|)2304 b(|)684 3150 y(--bare)41 b(init)h(|\(origin\)) +83 b(|)43 b(push)2090 b(|)684 3249 y(---------->)39 b(+----------+)f +(<---------------)o(--)o(---)o(--)o(---)o(--)o(--)o(---)o(--)o(--)o +(---)f(+)435 b(|)3560 3349 y(|)g(|)684 3448 y(status)389 +b(add)348 b(status)476 b(commit/--amend)387 b(|)435 b(|)684 +3548 y(+------------+)37 b(--------->)j(+--------------)o(+)d +(-----------------)o(--)o(-->)g(+----------+)684 3648 +y(|Working)j(Tree|)h(diff)304 b(|Index)389 b(|)43 b(diff)f +(--staged/--cached)37 b(|Repository|)684 3747 y(|)522 +b(|)43 b(<-------->)d(|\(Staging)f(Area\)|)i(<----------------)o(--)o +(-->)c(|)435 b(|)684 3847 y(+------------+)37 b(<---------)j +(+--------------)o(+)d(<----------------)o(--)o(---)g(+----------+)1250 +3947 y(|)43 b(reset)f(HEAD)782 b(reset)42 b(HEAD)g(--)435 +b(|)g(|)1250 4046 y(+)43 b(-----------------)o(--)o(--)o(---)o(--)o(--) +o(---)o(--)o(---)o(--)o(--)o(---)o(--)o(--)o(-->)37 b(+)435 +b(|)1337 4146 y(checkout)41 b(--)2221 b(|)684 4245 y(init)3179 +b(|)684 4345 y(---------------)o(---)o(--)o(--)o(---)o(--)o(--)o(---)o +(--)o(--)o(---)o(--)o(--)o(---)o(--)o(---)o(--)o(--)o(---)o(--)o(--)o +(---)o(--)o(--)o(---)o(--)o(->)37 b(+)640 4544 y(git)42 +b(diff)1088 b(zeigt)42 b(den)g(Unterschied)d(zwischen)h(Working)h(Tree) +2078 4644 y(und)h(Index)g(an)640 4744 y(git)g(diff)g(--color-words)474 +b(\304nderugen)40 b(Fablich)h(anzeigen)640 5092 y Fk(108)p +eop end +%%Page: 109 109 +TeXDict begin 109 108 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a +12 -5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.109) cvn /DEST pdfmark end + 12 -5 a 2515 128 a Fh(14.5.)40 +b(Rep)r(ository)1458 360 y Fd(gr\374n-hinzugekomm)o(en)d(rot-entfernt) +20 460 y(git)42 b(diff)g(--word-diff)d(--no-color)83 +b(ohne)42 b(Frabe)f(mit)i(Zeichen)20 559 y(git)f(diff)g(--staged)694 +b(zeigt)42 b(den)g(Unterschied)d(zwischen)1458 659 y(Index\(Staging)f +(Area\))k(und)g(Repository)d(an)20 758 y(git)j(diff)g(--cached)694 +b(zeigt)42 b(den)g(Unterschied)d(zwischen)1458 858 y(Index\(Staging)f +(Area\))k(und)g(Repository)d(an)20 1015 y +SDict begin H.S end + 20 1015 a 20 +1015 a +SDict begin 12 H.A end + 20 1015 a 20 1015 a +SDict begin [/View [/XYZ H.V]/Dest (section.14.5) cvn /DEST pdfmark +end + 20 1015 a 134 x Fe(14.5.)68 +b(Rep)t(osito)l(ry)20 1336 y Fd(git)42 b(init)g(Beispiel)345 +b(Neues)42 b(Repository)d(herstellen,)g(legt)j(Verzeichnis)d(Beispiel) +1109 1436 y(an)k(wenn)f(nicht)g(schon)f(vorhanden)20 +1635 y(git)h(status)651 b(zeigt)42 b(den)g(aktuellen)e(Zustand)h(an)20 +1735 y(git)h(log)783 b(die)43 b(Commit)e(Historie)f(anzeigen)20 +1891 y +SDict begin H.S end + 20 1891 a 20 1891 a +SDict begin 12 H.A end + 20 1891 a 20 1891 a +SDict begin [/View [/XYZ H.V]/Dest (section.14.6) cvn /DEST pdfmark +end + 20 1891 +a 135 x Fe(14.6.)68 b(Commit)20 2213 y Fd(git)42 b(add)h(Datei)869 +b(Datei)42 b(zum)g(Index)f(hinzuf\374gen)20 2313 y(git)h(add)h(-u)f +(oder)g(--update)389 b(Alle)42 b(Ver\344nderungen)c(in)43 +b(den)f(Index)g(\374bertragen)20 2412 y(git)g(reset)g(HEAD)g(Datei)564 +b(aus)42 b(der)h(Staging)d(Area)i(zu)h(entfernen)20 2512 +y(git)f(commit)f(-m)i("Erste)e(Version")171 b(Index)42 +b(zum)g(Working)e(Tree)i(hinzuf\374gen)369 2612 y(git)g(add)g +(forgotten_file)125 b(Datei)42 b(zum)g(Index)f(hinzuf\374gen)369 +2711 y(git)h(commit)f(--amend)302 b(den)42 b(letzten)f(Commit)g +(\344ndern)20 2811 y(git)h(show)1088 b(Commit)41 b(einsehen)20 +2910 y(git)h(log)1132 b(Commits)41 b(anzeigen)20 3067 +y +SDict begin H.S end + 20 3067 a 20 3067 a +SDict begin 12 H.A end + 20 3067 a 20 3067 a +SDict begin [/View [/XYZ H.V]/Dest (section.14.7) cvn /DEST pdfmark +end + 20 3067 a 134 +x Fe(14.7.)68 b(Dateien)45 b(entfernen)20 3389 y Fd(git)d(rm)h(Datei) +564 b(Datei)42 b(in)h(deinem)e(Arbeitsverzeich)o(ni)o(s)d(behalten,) +1109 3488 y(aber)k(aus)h(der)f(Staging)f(Area)g(nehmen)20 +3588 y(git)h(rm)h(-f)g(Datei)433 b(Datei)42 b(aus)g(dem)h +(Arbeitsverzeich)o(is)37 b(und)42 b(Index)g(l\366schen)20 +3688 y(git)g(reset)g(HEAD)g(Datei)215 b(Datei)42 b(in)h(Deinem)e +(Arbeitsverzeich)o(ni)o(s)d(behalten,)1109 3787 y(aber)k(aus)h(der)f +(Staging)f(Area)g(nehmen)20 3944 y +SDict begin H.S end + 20 3944 a 20 3944 +a +SDict begin 12 H.A end + 20 3944 a 20 3944 a +SDict begin [/View [/XYZ H.V]/Dest (section.14.8) cvn /DEST pdfmark +end + 20 3944 a 134 x Fe(14.8.)68 b(Dateien)45 +b(verschieb)t(en)20 4265 y Fd(git)d(mv)h(Datei_alt)d(Datei_neu)693 +b(Datei)42 b(verschieben)20 4422 y +SDict begin H.S end + 20 4422 a 20 4422 +a +SDict begin 12 H.A end + 20 4422 a 20 4422 a +SDict begin [/View [/XYZ H.V]/Dest (section.14.9) cvn /DEST pdfmark +end + 20 4422 a 134 x Fe(14.9.)68 b(\304nderung)43 +b(an)i(einer)g(Datei)h(r\374ckg\344ngig)e(machen)20 4744 +y Fd(git)e(checkout)f(--)h(Datei)172 b(Datei)42 b(zur\374ckversetzen)37 +b(auf)42 b(den)h(letzten)d(Commit)h(oder)h(Klone)2996 +5092 y Fk(109)p eop end +%%Page: 110 110 +TeXDict begin 110 109 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 +a 632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.110) cvn /DEST pdfmark end + 632 -5 a 640 128 a Fh(14.)41 +b(git)640 277 y +SDict begin H.S end + 640 277 a 640 277 a +SDict begin 12 H.A end + 640 277 a 640 277 +a +SDict begin [/View [/XYZ H.V]/Dest (section.14.10) cvn /DEST pdfmark +end + 640 277 a 85 x Fe(14.10.)68 b(Dateien)45 b(igno)l(rieren)640 +555 y Fd(Dateien)c(im)h(Projektverzeichni)o(s)37 b(die)43 +b(nicht)e(versioniert)e(im)k(Repository)c(sein)j(sollen)640 +655 y(kommen)f(in)i(die)f(Datei)g(.gitignore.)640 755 +y(.gitignore)1032 854 y(#)654 b(Zeile)41 b(mit)h(#)h(oder)f(leere)g +(wird)g(ignoriert)1032 954 y(*.o)566 b(ignoriert)39 b(alle)j(Dateien)f +(die)h(mit)g(.o)h(enden)1032 1054 y(!lib.o)434 b(wird)41 +b(nicht)h(ignoriert)1032 1153 y(/TODO)478 b(ignoriert)39 +b(den)k(Ordner)e(TODO)1032 1253 y(build/)434 b(ignoriert)39 +b(alle)j(Dateien)f(im)i(build)e(Verzeichnis)1032 1352 +y(doc/*.txt)302 b(ignoriert)39 b(alle)j(.txt)g(Dateien)f(im)h(doc)h +(Verzeichnis)1032 1452 y(doc/**/*.txt)170 b(ignoriert)39 +b(alle)j(.txt)g(Dateien)f(unterhalb)e(des)k(doc)1730 +1552 y(Verzeichnis)640 1704 y +SDict begin H.S end + 640 1704 a 640 1704 a +SDict begin 12 H.A end + 640 +1704 a 640 1704 a +SDict begin [/View [/XYZ H.V]/Dest (section.14.11) cvn /DEST pdfmark +end + 640 1704 a 156 x Fe(14.11.)68 b(Mit)46 +b(externen)d(Rep)t(osito)l(rys)h(a)l(rb)t(eiten)640 2054 +y Fd(git)e(clone)g(git://git.kernel)o(.o)o(rg)o(/pu)o(b/)o(sc)o(m/g)o +(it)o(/g)o(it.)o(gi)o(t)2427 2153 y(git)g(Repository)d(herunterladen,)f +(Port)k(9418)640 2253 y(git)g(clone)g(file:///home/git)o(/p)o(ro)o(jec) +o(t.)o(gi)o(t)125 b(Repository)39 b(herunterladen,)f(legt)k(harte)2427 +2353 y(Links)f(an)i(wenn)f(m\366glich)640 2452 y(git)g(clone)g +(ssh://user@serve)o(r/)o(pr)o(oje)o(ct)o(.g)o(it)81 b(ssh)42 +b(Repository)d(herunterladen,)f(Port)k(22)640 2552 y(git)g(clone)g +(http\(s\)://exampl)o(e.)o(co)o(m/g)o(it)o(pr)o(oje)o(ct)o(.g)o(it)2427 +2651 y(http\(s\))e(Repository)g(herunterladen,)2427 2751 +y(Port)i(80\(443\))640 2851 y(git)g(remote)f(-v)1220 +b(zeigt)41 b(an,)i(welche)e(externen)f(Server)h(f\374r)2427 +2950 y(das)h(Projekt)f(lokal)g(konfiguriert)e(sind)640 +3050 y(git)j(remote)f(add)i(Name)f(URL)783 b(Remote)41 +b(Repository)e(hinzuf\374gen)640 3150 y(git)j(remote)f(add)i(origin)e +(ssh://git@sonne)o(:/s)o(rv)o(/g)o(it/)o(li)o(nux)o(.g)o(it)2427 +3249 y(Beispiel)640 3349 y(git)h(fetch)g(Name)1175 b(Informationen)38 +b(aus)k(dem)g(Remote)f(Repository)2427 3448 y(herunterladen)640 +3548 y(git)h(pull)g(Name)1219 b(entspricht)39 b(git)j(fetch)g(git)g +(merge)640 3648 y(git)g(checkout)f(-b)h(Branch)f(origin/Branch)213 +b(erstellt)40 b(einen)h(lokalen)g(bearbeitbaren)2427 +3747 y(Branch)640 3847 y(git)h(push)g(origin)f(master)826 +b(\304nderungen)39 b(in)k(ein)f(Remote)f(Repository)2427 +3947 y(hochladen)640 4046 y(git)h(push)g(Remote)f(Branch)826 +b(Brauch)41 b(auf)h(Remote)f(hochladen)640 4146 y(git)h(push)g(Remote)f +(:Branch)782 b(l\366schen)40 b(entfernter)g(Branches)640 +4245 y(git)i(remote)f(show)h(Name)914 b(zeigt)41 b(die)i(URL)f(f\374r)g +(das)g(Remote)2427 4345 y(Repository,)d(die)j(Information)d(welche)2427 +4445 y(Branches)h(verfolgt)g(werden)h(und)h(welcher)2427 +4544 y(Branch)f(aus)h(dem)g(Remote)f(Repository)f(mit)2427 +4644 y(dem)i(eigenen)f(Master)g(zusammengef\374hrt)2427 +4744 y(wird,)g(wenn)h(Du)h(git)f(pull)g(ausf\374hrst)640 +5092 y Fk(110)p eop end +%%Page: 111 111 +TeXDict begin 111 110 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a +12 -5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.111) cvn /DEST pdfmark end + 12 -5 a 2698 128 a Fh(14.12.)40 +b(T)-7 b(ags)20 360 y Fd(git)42 b(remote)f(rename)g(Name_alt)g +(Name_neu)258 b(Name)42 b(des)g(Remote)f(Repository)e(lokal)j +(\344ndern)20 460 y(git)g(remote)f(rm)i(Name)1001 b(Remote)41 +b(Repository)e(entfernen)20 610 y +SDict begin H.S end + 20 610 a 20 610 a +SDict begin 12 H.A end + 20 +610 a 20 610 a +SDict begin [/View [/XYZ H.V]/Dest (section.14.12) cvn /DEST pdfmark +end + 20 610 a 133 x Fe(14.12.)68 b(T)-11 b(ags)20 +927 y Fd(git)42 b(tag)1132 b(vorhandene)39 b(Tags)j(anzeigen)20 +1027 y(git)g(tag)h(-a)f(v1.4)g(-m)h('my)f(version)f(1.4')1458 +1127 y(einen)h(kommentierten)c(Tag)k(anlegen)20 1226 +y(git)g(tag)h(-s)f(v1.5)g(-m)h('my)f(signed)f(1.5)i(tag')1458 +1326 y(einen)f(kommentierten)c(und)k(signierten)d(Tag)k(anlegen)20 +1426 y(git)f(tag)h(-v)f(v1.4.2.1)607 b(einen)42 b(signierten)d(Tag)j +(zu)h(verifizieren)20 1525 y(git)f(tag)h(-a)f(v1.2)g(-m)h('version)d +(1.2')i(Checksumme)1458 1625 y(im)h(Nachhinein)c(taggen,)i(Checksumme)e +(des)j(Commits)1458 1724 y(oder)g(einen)f(Teil)h(davon)g(angeben)20 +1824 y(git)g(log)h(--pretty=onelin)o(e)386 b(Commit)41 +b(Historie)f(mit)j(Checksumme)20 1924 y(git)f(push)g(origin)f(v1.5)565 +b(Tag)42 b(ver\366ffentlichen)20 2023 y(git)g(push)g(origin)f(--tags) +477 b(Tags)42 b(ver\366ffentlichen)20 2123 y(git)g(tag)h(-d)f(v1.5)783 +b(Tag)42 b(l\366schen)20 2223 y(git)g(push)g(origin)f(:refs/tags/v1.5) +81 b(ver\366ffentlichen)37 b(Tag)43 b(l\366schen)20 2373 +y +SDict begin H.S end + 20 2373 a 20 2373 a +SDict begin 12 H.A end + 20 2373 a 20 2373 a +SDict begin [/View [/XYZ H.V]/Dest (section.14.13) cvn /DEST pdfmark +end + 20 2373 a 133 +x Fe(14.13.)68 b(Branch)20 2690 y Fk(W)-7 b(as)22 b(ist)h(ein)g(Branc)n +(h?)e(Ein)j(Zeiger,)d(der)h(auf)h(den)f(gleic)n(hen)g(Commit)h(zeigt,)f +(auf)h(dem)g(Du)g(gerade)20 2790 y(arb)r(eitest.)20 2981 +y Fd(git)42 b(branch)f(testing)302 b(erstellt)41 b(einen)g(neuen)h +(Branch)f(mit)h(dem)g(Namen)g(testing)20 3080 y(git)g(checkout)f +(testing)214 b(um)43 b(zu)g(einem)e(anderen)g(Branch)g(zu)i(wechseln)20 +3180 y(git)f(branch)f(-b)i(testing)171 b(erstellt)41 +b(und)h(wechselt)e(zu)j(dem)f(Branch)20 3279 y(git)g(merge)g(testing) +345 b(f\374hrt)42 b(testing)f(mit)h(dem)g(Master-Branch)c(zusammen)20 +3379 y(git)k(branch)f(-d)i(testing)171 b(entfernt)41 +b(testing)20 3479 y(git)h(merge)g(master)389 b(Deinem)42 +b(Zweig)f(mit)h(dem)h(master)e(kombinieren)20 3578 y(git)h(rebase)f +(master)346 b(alle)42 b(\304nderungen)e(auf)i(einem)f(Branch,)g(auf)h +(einen)g(anderen)1109 3678 y(Branch)g(erneut)f(anwenden)f(\(nur)i(mit)g +(unver\366ffendliche)o(n)1109 3778 y(Branch)g(machen\))20 +3877 y(git)g(mergetool)519 b(grafischen)40 b(Tool)i(zur)g(Bereinigung)d +(von)j(Merge-Konflikten)20 3977 y(git)g(branch)651 b(Liste)42 +b(aller)f(Branches)g(anzeigen)20 4077 y(git)h(branch)f(-v)522 +b(f\374r)43 b(jeden)e(Branch)g(den)i(letzten)d(Commit)h(anzeigen)f +(lassen)20 4176 y(git)i(branch)f(--merged)258 b(Liste)42 +b(gemergter)e(Branches)20 4276 y(git)i(branch)f(--no-merged)126 +b(Liste)42 b(nicht)f(gemergter)f(Branches)20 4426 y +SDict begin H.S end + 20 +4426 a 20 4426 a +SDict begin 12 H.A end + 20 4426 a 20 4426 a +SDict begin [/View [/XYZ H.V]/Dest (section.14.14) cvn /DEST pdfmark +end + 20 4426 a 133 x +Fe(14.14.)68 b(Git)45 b(Aliase)20 4744 y Fd(git)d(config)f(--global)g +(alias.co)f(checkout)171 b(co)42 b(anstelle)f(von)h(checkout)e +(schreiben)2996 5092 y Fk(111)p eop end +%%Page: 112 112 +TeXDict begin 112 111 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 +a 632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.112) cvn /DEST pdfmark end + 632 -5 a 640 128 a Fh(14.)41 +b(git)640 360 y Fd(git)h(config)f(--global)g(alias.br)f(branch)259 +b(br)42 b(anstelle)f(von)h(branch)f(schreiben)640 460 +y(git)h(config)f(--global)g(alias.ci)f(commit)259 b(ci)42 +b(anstelle)f(von)h(commit)f(schreiben)640 559 y(git)h(config)f +(--global)g(alias.st)f(status)259 b(st)42 b(anstelle)f(von)h(status)f +(schreiben)640 700 y +SDict begin H.S end + 640 700 a 640 700 a +SDict begin 12 H.A end + 640 700 a 640 +700 a +SDict begin [/View [/XYZ H.V]/Dest (section.14.15) cvn /DEST pdfmark +end + 640 700 a 131 x Fe(14.15.)68 b(Git)45 b(auf)g(einen)g(Server)g(b) +t(ek)l(ommen)640 1013 y Fd(git)d(clone)g(--bare)f(my_project)e +(my_project.git)2078 1112 y(Projekt)i(zu)h(Projekt.git)d(klonen)640 +1212 y(scp)j(-r)h(my_project.git)38 b(user@git.exampl)o(e.c)o(om)o(:/)o +(opt)o(/g)o(it)2078 1311 y(Projekt)j(per)h(ssh)g(hochladen)640 +1411 y(git)g(clone)g(user@git.example)o(.c)o(om)o(:/o)o(pt)o(/g)o(it/)o +(my)o(_p)o(roj)o(ec)o(t.g)o(it)2078 1511 y(Projekt)f(per)h(ssh)g(zum)h +(Arbeiten)d(herunterladen)640 1610 y(ssh)i(user@git.example.)o(co)o(m) +386 b(auf)42 b(dem)h(Server)e(anmelden)640 1710 y(cd)i +(/opt/git/my_proj)o(ec)o(t.)o(git)298 b(Projektverzeichn)o(is)37 +b(betreten)640 1810 y(git)42 b(init)g(--bare)f(--shared)389 +b(Gruppenschreibre)o(cht)o(e)37 b(zu)43 b(einem)e(Repository)2078 +1909 y(hinzuf\374gen)640 2050 y +SDict begin H.S end + 640 2050 a 640 2050 a +SDict begin 12 H.A end + +640 2050 a 640 2050 a +SDict begin [/View [/XYZ H.V]/Dest (section.14.16) cvn /DEST pdfmark +end + 640 2050 a 131 x Fe(14.16.)68 b(Git)45 +b(auf)g(dem)g(SSH-Server)h(einrichten)640 2363 y Fk(Einric)n(h)n(tung) +30 b(des)g(SSH-Zugangs)f(auf)i(dem)f(Serv)n(er)f(mit)i(der)f +(Authorized-Keys-Metho)r(de)f(zur)640 2462 y(Authen)n(ti\034zierung)f +(der)f(Ben)n(utzer.)640 2627 y Fd(sudo)42 b(adduser)f(git)739 +b(Benutzer)40 b(git)j(anlegen)640 2727 y(su)g(git)1175 +b(Rechte)41 b(von)h(User)g(git)h(erlagen)640 2827 y(cd)1350 +b(ins)42 b(Home)g(~)h(Verzeichnis)c(des)k(Users)e(wechseln)640 +2926 y(mkdir)h(.ssh)1000 b(Verzeichnis)39 b(.ssh)j(anlegen)723 +3092 y Fk(-)25 b(\366\033en)n(tlic)n(he)g(SSH-Sc)n(hl\374ssel)f(der)h +(En)n(t)n(wic)n(kler)f(zu)h(der)g(Authorized-Keys-Datei)e(des)i(Ben)n +(ut-)640 3191 y(zers)i(git)g(hinzuzuf\374gen.)640 3343 +y Fd(cat)42 b(/tmp/id_rsa.user1)o(.p)o(ub)37 b(>)43 b(~/.ssh/authorize) +o(d_k)o(ey)o(s)2078 3443 y(authorized_keys)37 b(erstellen)j(und)i +(User1)g(einf\374gen)640 3543 y(cat)g(/tmp/id_rsa.user2)o(.p)o(ub)37 +b(>>)43 b(~/.ssh/authoriz)o(ed_)o(ke)o(ys)2078 3642 y(User2)f +(einf\374gen)640 3742 y(cat)g(/tmp/id_rsa.user3)o(.p)o(ub)37 +b(>>)43 b(~/.ssh/authoriz)o(ed_)o(ke)o(ys)2078 3842 y(User3)f +(einf\374gen)723 3994 y Fk(-)24 b(Leeren)f(Ordner)g(anlegen)h(und)g +(mit)h(der)f(Option)g(\025bare)e(ein)j(Rep)r(ository)e(ohne)g(ein)i +(Arb)r(eits-)640 4093 y(v)n(erzeic)n(hnis)h(erzeugen.)640 +4245 y Fd(cd)43 b(/srv)1131 b(in)43 b(den)f(Ordner)f(srv)i(wechseln)640 +4345 y(mkdir)f(git)1044 b(git)42 b(Ordner)f(anlegen)640 +4445 y(cd)i(git)1175 b(in)43 b(den)f(Ordner)f(git)i(wechseln)640 +4544 y(mkdir)f(project.git)692 b(project.git)39 b(Ordner)i(anlegen)640 +4644 y(cd)i(project.git)823 b(in)43 b(den)f(Ordner)f(project.git)e +(wechseln)640 4744 y(git)j(--bare)f(init)783 b(Repository)39 +b(ohne)j(ein)h(Arbeitsverzeich)o(ni)o(s)38 b(erzeugen)640 +5092 y Fk(112)p eop end +%%Page: 113 113 +TeXDict begin 113 112 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a +12 -5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.113) cvn /DEST pdfmark end + 12 -5 a 1747 128 a Fh(14.17.)40 +b(\326\033en)n(tlic)n(her)27 b(W)-7 b(ebserv)n(er-Zugang)103 +360 y Fk(-)27 b(Die)h(erste)f(V)-7 b(ersion)27 b(des)h(Pro)5 +b(jektes)26 b(in)i(das)f(Rep)r(ository)g(ho)r(c)n(hladen)20 +521 y Fd(cd)43 b(project)999 b(in)43 b(das)f(Projekt)f(wechseln)20 +621 y(git)h(init)1088 b(Projekt)41 b(Repository)e(herstellen)20 +721 y(git)j(add)h(.)1045 b(alle)42 b(Dateien)f(um)h(Index)g +(hinzuf\374gen)20 820 y(git)g(commit)f(-m)i('initial)d(commit')128 +b(Index)42 b(zum)g(Working)e(Tree)i(hinzuf\374gen)20 +920 y(git)g(remote)f(add)i(origin)e(git@gitserver:/)o(srv)o(/g)o(it)o +(/pr)o(oj)o(ec)o(t.g)o(it)1458 1020 y(Server)g(hinzuf\374gen)20 +1119 y(git)h(push)g(origin)f(master)477 b(Commits)41 +b(und)h(Referenzen)d(auf)k(den)f(Server)f(hochladen)103 +1281 y Fk(-)27 b(Rep)r(ository)g(klonen)g(und)h(\304nderungen)f(ho)r(c) +n(hladen)20 1442 y Fd(git)42 b(clone)g(git@gitserver:/)o(srv)o(/g)o +(it/)o(pr)o(oj)o(ect)o(.g)o(it)211 b(Repository)40 b(klonen)20 +1542 y(cd)j(project)1696 b(ins)43 b(Projekt)d(wechseln)20 +1641 y(vim)i(README)1697 b(Projekt)41 b(bearbeiten)20 +1741 y(git)h(commit)f(-am)i('fix)f(for)g(the)g(README)f(file')390 +b(\304nderung)40 b(speichern)20 1841 y(git)i(push)g(origin)f(master) +1174 b(\304nderung)40 b(hochladen)103 2002 y Fk(-)27 +b(Git-Zugang)g(absic)n(hen)20 2163 y Fd(/etc/passwd)412 +2263 y(git:x:1000:1000:)o(:/h)o(om)o(e/g)o(it)o(:/)o(bin)o(/s)o(h)255 +b(/bin/sh)41 b(auf)412 2363 y(git:x:1000:1000:)o(:/h)o(om)o(e/g)o(it)o +(:/)o(usr)o(/b)o(in)o(/gi)o(t-)o(sh)o(ell)2155 2462 y +(/usr/bin/git-shel)o(l)c(\344ndern)20 2605 y +SDict begin H.S end + 20 2605 +a 20 2605 a +SDict begin 12 H.A end + 20 2605 a 20 2605 a +SDict begin [/View [/XYZ H.V]/Dest (section.14.17) cvn /DEST pdfmark +end + 20 2605 a 131 x Fe(14.17.)68 +b(\326\033entlicher)45 b(W)l(ebserver-Zugang)20 2918 +y Fk(Anon)n(ymen)18 b(Lese-Zugri\033)f(zu)h(Deinem)h(Pro)5 +b(jekt)18 b(erm\366glic)n(hen,)f(p)r(er)h(git)h(clone)f(h)n +(ttp://git.gitserv)n(er.lo)r(c/pro)5 b(ject.git.)103 +3017 y(-)27 b(Ho)r(ok)g(aktivieren)20 3194 y Fd(cd)43 +b(project.git)1520 b(in)43 b(das)f(Projekt)f(wechseln)20 +3294 y(mv)i(hooks/post-upda)o(te.)o(sa)o(mp)o(le)37 b(hooks/post-updat) +o(e)168 b(post-update)39 b(umbenennen)20 3393 y(chmod)j(a+x)g +(hooks/post-upda)o(te)952 b(post-update)39 b(ausf\374rbar)h(machen)103 +3570 y Fk(-)27 b(VirtualHost)h(Ein)n(trag)e(zur)i(Apac)n(he-K)n +(on\034guration)c(hinzuf\374gen)20 3747 y Fd()369 3847 y(ServerName)g(git.gitserver.lo)o(c)369 +3947 y(ServerAdmin)g(webmaster@local)o(ho)o(st)369 4046 +y(DocumentRoot)f(/srv/git)20 4146 y(#)305 b()20 4245 y(#)653 b(Order)42 b(allow,)f(deny)20 +4345 y(#)653 b(allow)42 b(from)g(all)20 4445 y(#)305 +b()369 4544 y()674 +4644 y(Options)h(Indexes)h(FollowSymLinks)674 4744 y(AllowOverride)d +(None)2996 5092 y Fk(113)p eop end +%%Page: 114 114 +TeXDict begin 114 113 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 +a 632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.114) cvn /DEST pdfmark end + 632 -5 a 640 128 a Fh(14.)41 +b(git)1294 360 y Fd(Require)f(all)j(granted)989 460 y()989 +559 y(ErrorLog)d(${APACHE_LOG_DIR)o(}/)o(gi)o(t.g)o(it)o(se)o(rve)o(r.) +o(loc)o(-e)o(rr)o(or.)o(lo)o(g)989 659 y(CustomLog)g(${APACHE_LOG_DI)o +(R})o(/g)o(it.)o(gi)o(ts)o(erv)o(er)o(.lo)o(c-)o(ac)o(ces)o(s.)o(lo)o +(g)e(combined)640 758 y()723 962 y Fk(Nac)n(h)23 +b(dem)g(n\344c)n(hsten)f(push)h(k)-5 b(ann)23 b(p)r(er)f("git)h(clone)f +(h)n(ttp://git.gitserv)n(er.lo)r(c/pro)5 b(ject.git"das)640 +1062 y(Pro)g(jekt)27 b(anon)n(ym)g(herun)n(ter)g(geladen)f(w)n(erden.) +640 1225 y +SDict begin H.S end + 640 1225 a 640 1225 a +SDict begin 12 H.A end + 640 1225 a 640 1225 +a +SDict begin [/View [/XYZ H.V]/Dest (section.14.18) cvn /DEST pdfmark +end + 640 1225 a 139 x Fe(14.18.)68 b(Grundb)t(egri\033e)640 +1556 y Fd(Versionkontrolls)o(yst)o(em)37 b(\(Version)j(Control)h +(System,)f(VCS\))989 1655 y(Eine)i(Versionsverwalt)o(un)o(g)c(ist)k +(ein)g(System,)f(das)h(zur)g(Erfassung)e(von)i(\304nderungen)989 +1755 y(an)g(Dokumenten)e(oder)i(Dateien)e(verwendet)g(wird.)989 +1854 y(Zum)i(Beispiel:)989 1954 y(Zentrale)e(Systeme)h(-)i(zentraler)c +(Server)1337 2054 y(RCS-Revision)g(Control)h(System,)h(CVS-Concurrent)d +(Versions)i(System,)1337 2153 y(SVN-Subversion)989 2253 +y(Verteilte)g(Systeme)g(-)j(Kein)f(zentraler)e(Server)1337 +2353 y(Bazaar,)h(Darcs,)g(Fossil,)g(Git,)g(GNU)i(arch,)e(Mercurial,)f +(Monotone)640 2452 y(Repository)989 2552 y(Nutzt)h(Git)i(als)f +(Dantenbank)d(in)k(der)f(die)g(verschiedenen)d(Zust\344nde)h(jeder)h +(Datei)989 2651 y(eines)g(Projektes)f(\374ber)i(die)g(Zeit)g(hinweg)f +(ablegt.)g(Jede)h(\304nderrung)d(wird)j(als)989 2751 +y(Commit)f(verpackt)f(und)i(abgespeichert.)640 2851 y(Working)f(Tree) +989 2950 y(Das)h(Arbeitsverzeichn)o(is)37 b(von)42 b(Git,)g(oft)g(auch) +g(Working)f(Directory)f(genannt.)640 3050 y(Commit)989 +3150 y(Das)i(speichern)e(der)i(ver\344nderten)d(Dateien)i(im)h +(Repository.)640 3249 y(HEAD)989 3349 y(Eine)g(symbolische)d(Referenz)h +(auf)i(den)g(neusten)f(Commit)g(im)i(aktuellen)c(Branch.)640 +3448 y(SHA-1)989 3548 y(Der)j(Secure)f(Hash)h(Algorithm)e(erstellt)g +(eine)i(eindeutige,)d(160)j(Bit)g(lange)989 3648 y(Pr\374fsumme.)d +(Alle)j(Commits)f(in)h(Git)h(werden)e(nach)h(ihrer)f(SHA-1-Summe)e +(benannt,)989 3747 y(die)j(aus)g(dem)h(Inhalt)e(und)h(den)g(Metadaten)e +(des)i(Commits)f(errechnet)f(wird.)640 3847 y(Objektmodell)989 +3947 y(Ein)i(Git-Repository)c(l\344sst)j(sich)h(als)g(Graph)g(von)g +(Commits)f(modellieren,)d(der)989 4046 y(durch)j(Git-Kommandos)d +(manipuliert)h(wird.)640 4146 y(Index)989 4245 y(Der)j(Index)g(ist)g +(eine)g(Zwischenstufe)c(zwischen)i(Working)h(Tree)g(und)i(Repository,) +989 4345 y(in)f(der)h(Sie)f(einen)g(Commit)f(vorbereiten.)d(Enth\344lt) +j(also)h(die)g(Dateien)e(f\374r)j(den)989 4445 y(n\344sten)e(Commit.) +640 4544 y(Clone)989 4644 y(Wenn)h(Sie)g(sich)g(ein)g(Git-Repository)c +(aus)k(dem)g(Internet)f(herrunterladen.)989 4744 y(Enth\344lt)f(die)j +(gesamte)d(Versionsgeschich)o(te)d(einschlie\377lich)h(aller)j +(Commits.)640 5092 y Fk(114)p eop end +%%Page: 115 115 +TeXDict begin 115 114 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a +12 -5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.115) cvn /DEST pdfmark end + 12 -5 a 2363 128 a Fh(14.18.)40 +b(Grundb)r(egri\033e)20 360 y Fd(Branch)369 460 y(Eine)i(Abzweigung)d +(in)k(der)f(Entwicklung.)c(Zum)43 b(Beispiel)d(f\374r)i(neue)g +(Featurs,)369 559 y(Release)e(vorbereitung)f(oder)j(alte)g(Versionen)d +(mit)k(Bugfixes)d(zu)j(versorgen.)20 659 y(master)369 +758 y(Beim)f(Initialisieren)37 b(eines)42 b(neuen)f(Repositorys)e(wird) +j(der)g(Branch)f(master)369 858 y(erstellt)f(analog)h(trunk)g(in)i +(anderen)e(Systemen.)20 958 y(Tag)369 1057 y(Tags)h(sind)f(symbolische) +e(Namen)j(f\374r)g(schwer)f(zu)i(merkende)d(SHA-1-Summen.)369 +1157 y(Wichtige)g(Commits,)g(wie)i(zum)h(Beispiel)d(Releases)g(v1.2.3.) +h(oder)h(k\366nnen)369 1257 y(zus\344tzliche)d(Metadateien)g(wie)j +(Autor,)f(Beschreibung)d(und)43 b(GPG-Signatur)369 1356 +y(enthalten.)2996 5092 y Fk(115)p eop end +%%Page: 116 116 +TeXDict begin 116 115 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 +a 632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.116) cvn /DEST pdfmark end + 632 -5 a eop end +%%Page: 117 117 +TeXDict begin 117 116 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a +12 -5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.117) cvn /DEST pdfmark end + 12 -5 a 20 277 a +SDict begin H.S end + 20 277 a 20 +277 a +SDict begin 12 H.A end + 20 277 a 20 277 a +SDict begin [/View [/XYZ H.V]/Dest (chapter.15) cvn /DEST pdfmark end + 20 277 a 524 x Fm(15.)100 b(C/C++)20 +1025 y +SDict begin H.S end + 20 1025 a 20 1025 a +SDict begin 12 H.A end + 20 1025 a 20 1025 a +SDict begin [/View [/XYZ H.V]/Dest (section.15.1) cvn /DEST pdfmark +end + 20 1025 +a 106 x Fe(15.1.)68 b(Befehle)44 b(und)h(Grundelemente)20 +1320 y Fd(gcc)d(Datei.c)1261 b(Programm)40 b(\374bersetzen)g(->)i +(a.out)20 1420 y(g++)g(Datei.cpp)1173 b(Programm)40 b(\374bersetzen)g +(->)i(a.out)g(\(C++\))20 1520 y(gcc)g(-c)h(Datei.c)1130 +b(Objektdatei)39 b(herstellen)g(->)k(Datei.o)20 1619 +y(g++)f(-c)h(Datei.cpp)1042 b(Objektdatei)39 b(herstellen)g(->)k +(Datei.o)e(\(C++\))20 1719 y(gcc)h(-o)h(Programmname)c(Datei1.o)h +(Datei2.o)127 b(Datei1.o+Datei2.)o(o)37 b(->)43 b(Programmname)20 +1818 y(g++)f(-o)h(Programmname)c(Datei1.o)h(Datei2.o)127 +b(Datei1.o+Datei2.)o(o)37 b(->)43 b(Programmname)c(\(C++\))20 +1918 y(gcc)j(-o)h(Programmname)c(Datei.c)563 b(Programm)40 +b(\374bersetzen)g(->)i(Programmname)20 2018 y(g++)g(-o)h(Programmname)c +(Datei.cpp)475 b(Programm)40 b(\374bersetzen)g(->)i +(Programmname\(C++\))20 2117 y(Programmname)1215 b(Programm)40 +b(starten)20 2317 y(configure)1347 b(Makefile)40 b(konfigurieren)20 +2416 y(make)1567 b(Programm)40 b(\374bersetzen,)1763 +2516 y(wenn)i(Makefile)e(vorhanden)20 2615 y(make)i(install)1217 +b(Programm)40 b(installieren)20 2815 y(/*)609 b(Kommentar)40 +b(einleiten)20 2914 y(*/)609 b(Kommentar)40 b(abschlie\377en)20 +3014 y(//)609 b(Kommentar)40 b(einleiten)g(bis)i(zum)g(Zeilenende)e +(\(C++\))20 3114 y({)653 b(Blockbeginn)20 3213 y(})g(Blockende)20 +3313 y(,)g(mehrere)41 b(Variablen)f(vom)i(gleichen)e(Typ)i(deklarieren) +d(z.B.)j(int)h(a,)f(b,)h(c;)20 3412 y(;)653 b(Funktions-,Operat)o(io)o +(ns)o(-)38 b(und)k(Zeilen-ende)d(\(leere)i(Anweisung\))20 +3612 y(#include)c(Datei)42 b(aus)g(/usr/include/)c(bei)k(UNIX)g +(einlesen)20 3711 y(#include"Datei")37 b(Datei)42 b(aus)g(dem)g +(aktuellen)e(Verzeichnis)f(einlesen)20 3811 y(char)521 +b(Variablentyp)39 b(character)h(-)j(Zeichen)20 3911 y(int)565 +b(Variablentyp)39 b(integer)h(-)k(ganzzahlig)39 b(mit)j(Vorzeichen)20 +4010 y(main\(\))433 b(Hauptfunktion)20 4110 y(return\(\))345 +b(Wert)42 b(aus)g(einer)g(Funktion)e(zur\374ckliefern)20 +4259 y +SDict begin H.S end + 20 4259 a 20 4259 a +SDict begin 12 H.A end + 20 4259 a 20 4259 a +SDict begin [/View [/XYZ H.V]/Dest (section.15.2) cvn /DEST pdfmark +end + 20 4259 +a 146 x Fe(15.2.)68 b(Steuersequenzen)41 b(f\374r)k(ANSI-Bildschirme)g +(-)371 4554 y(Innerhalb)f(von)h(T)-11 b(exten)20 4744 +y Fd(\\a)609 b(BEL)217 b(bell)870 b(Alarm/Piepton)2996 +5092 y Fk(117)p eop end +%%Page: 118 118 +TeXDict begin 118 117 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 +a 632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.118) cvn /DEST pdfmark end + 632 -5 a 640 128 a Fh(15.)41 +b(C/C++)640 360 y Fd(\\b)609 b(BS)261 b(backspace)650 +b(R\374cksetzen)39 b(um)k(ein)f(Zeichen)640 460 y(\\f)609 +b(FF)261 b(formfeed)694 b(Seitenvorschub)640 559 y(\\n)609 +b(NL)261 b(new)42 b(line)696 b(Zeilenvorschub)640 659 +y(\\r)609 b(CR)261 b(carriage)40 b(return)390 b(Wagenr\374cklauf)640 +758 y(\\t)609 b(HT)261 b(horizontal)39 b(tabulation)127 +b(horizontaler)38 b(Tabulator)640 858 y(\\v)609 b(VT)261 +b(vertical)40 b(tabulation)214 b(vertikaler)39 b(Tabulator)640 +958 y(\\0)609 b(NULL)173 b(null)870 b(kein)42 b(Zeichen)e(Textende)640 +1057 y(\\?)609 b(?)305 b(Fragezeichen)38 b(\(kein)k(Dreierzeichen\))640 +1157 y(\\')609 b(')305 b(Hochkomma)640 1257 y(\\")609 +b(")305 b(Anf\374hrungszeiche)o(n)640 1356 y(\\\\)609 +b(\\)305 b(umgekehrter)39 b(Schr\344gstrich)640 1456 +y(\\ddd)521 b(Zeichencode)39 b(in)k(oktaler)e(Notation)640 +1556 y(\\xdd)521 b(Zeichencode)39 b(in)k(hexadezimaler)38 +b(Notation)640 1655 y(\\e[1;1H)389 b(Cursor)41 b(auf)i(x1)f(und)h(y1)f +(setzen)640 1755 y(\\e[1;1f)389 b(->)43 b(\\e[1;1H)640 +1854 y(\\e[5A)477 b(Cursor)41 b(5)j(Zeilen)d(aufw\344rts)f(bewegen)640 +1954 y(\\e[5B)477 b(Cursor)41 b(5)j(Zeilen)d(abw\344rts)f(bewegen)640 +2054 y(\\e[5C)477 b(Cursor)41 b(5)j(Spalten)c(vorw\344rts\(rechts\))d +(bewegen)640 2153 y(\\e[5D)477 b(Cursor)41 b(5)j(Spalten)c +(r\374ckw\344rts\(links\))d(bewegen)640 2253 y(\\e[2J)477 +b(Bildschirm)40 b(l\366schen)640 2353 y(\\e[6n)477 b(Ausgabe)41 +b(der)h(Cursor)f(position)f(z.B.)i(^[[32;6R)640 2452 +y(\\e[s)521 b(merkt)42 b(die)g(aktuelle)e(Cursor)h(Position)640 +2552 y(\\e[u)521 b(Cursor)41 b(auf)i(gemerkte)d(Position)g(setzen)640 +2651 y(\\e[Schrift;Vorde)o(rgr)o(un)o(d;)o(Hin)o(te)o(rg)o(run)o(dm)o +(er)o(kma)o(le)124 b(setzt)42 b(Bildschirmmerkm)o(al)o(e)771 +2751 y(Schrift)476 b(Vordergrund)83 b(Hintergrund)771 +2851 y(0)k(normal)389 b(30)87 b(schwarz)d(40)771 2950 +y(1)j(grell)433 b(31)87 b(rot)260 b(41)771 3050 y(4)87 +b(unterstrichen)81 b(32)87 b(gr\374n)216 b(42)771 3150 +y(5)87 b(blinken)345 b(33)87 b(gelb)216 b(43)86 b(braun)771 +3249 y(7)h(reverse)345 b(34)87 b(blau)216 b(44)1555 3349 +y(35)87 b(magenta)d(45)1555 3448 y(36)j(cyan)216 b(46)1555 +3548 y(37)87 b(wei\377)216 b(47)86 b(grau)640 3717 y +SDict begin H.S end + +640 3717 a 640 3717 a +SDict begin 12 H.A end + 640 3717 a 640 3717 a +SDict begin [/View [/XYZ H.V]/Dest (section.15.3) cvn /DEST pdfmark +end + 640 3717 +a 136 x Fe(15.3.)68 b(stdio.h)45 b(->)g(Standa)l(rd)f(Ein-)i(und)f +(Ausgab)t(e)640 4046 y Fd(c=getchar\(\);)518 b(Eingabe)41 +b(eines)g(Zeichens,)f(ohne)i(Wagenr\374cklauf)640 4146 +y(putchar\('a'\);)474 b(Ausgabe)41 b(eines)g(Zeichens,)f(ohne)i +(Wagenr\374cklauf)640 4245 y(puts\("Text"\);)474 b(Zeichenkette)38 +b(ausgeben,)i(mit)j(Wagenr\374cklauf)640 4345 y(fputs\("Text",std)o +(oun)o(t\))o(;)81 b(Zeichenkette)38 b(ausgeben,)i(ohne)i +(Wagenr\374cklauf)640 4445 y(fputs\("Text",std)o(err)o(\);)124 +b(Zeichenkette)38 b(ausgeben,)i(ohne)i(Wagenr\374cklauf)640 +4544 y(printf\("Text)d(\045d",Zahl\);)g(Zeichenkette)f(formatiert)i +(ausgeben,)g(ohne)h(Wagenr\374cklauf)989 4644 y(\045)i(F)g(Z1)g(.)g(Z2) +g(L)g(U)989 4744 y(|)g(|)g(|)87 b(|)43 b(|)87 b(|)43 +b(+)g(Umwandlungszeich)o(en)o(:)37 b(\045d-dezimal)258 +b(\045u-unsigned)640 5092 y Fk(118)p eop end +%%Page: 119 119 +TeXDict begin 119 118 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a +12 -5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.119) cvn /DEST pdfmark end + 12 -5 a 2643 128 a Fh(15.4.)40 +b(ct)n(yp)r(e.h)369 360 y Fd(|)j(|)g(|)87 b(|)43 b(|)87 +b(|)1001 b(\045o-oktal)346 b(\045s-Text)40 b(\045c-Zeichen)369 +460 y(|)j(|)g(|)87 b(|)43 b(|)87 b(|)1001 b(\045f-Flieskomma)126 +b(\045e-Expotential)369 559 y(|)43 b(|)g(|)87 b(|)43 +b(|)87 b(|)1001 b(\045x-hexadezimal)82 b(\045p-pointer)369 +659 y(|)43 b(|)g(|)87 b(|)43 b(|)87 b(+--)42 b(Long-Ausgabe:)c +(notwendig)i(f\374r)i(long)g(int)369 758 y(|)h(|)g(|)87 +b(|)43 b(+-----)e(Nachkommastellen)o(:)c(z.B)43 b(3)g(f\374r)f(drei)g +(stellen)369 858 y(|)h(|)g(|)87 b(+-------)40 b(Trenzeichen,)e(falls)k +(Z1)h(und)f(Z2)369 958 y(|)h(|)g(+----------)c(Gr\366\377e)i(des)i +(Ausgabefensters)o(:)37 b(z.B)43 b(7)g(f\374r)f(sieben)f(stellen)369 +1057 y(|)i(+------------)38 b(Ausrichtung:)g(ohne)k(Angabe)f +(rechtsb\374ndig,)369 1157 y(|)1219 b(mit)43 b(Minuszeichen)38 +b(linksb\374ndig)369 1257 y(+--------------)f(Fluchtsymbol)20 +1356 y(scanf\("\045c",&text)o(\);)255 b(Zeichen)41 b(in)h(&text)g +(einlesen)369 1456 y(\045)h(*)g(Z)g(L)g(U)369 1556 y(|)g(|)g(|)g(|)g +(+------)e(Umwandlungszeich)o(en)369 1655 y(|)i(|)g(|)g(+--------)d +(Long-Ausgabe)369 1755 y(|)j(|)g(+----------)c(Gr\366\377e)i(des)i +(Eingabefensters)369 1854 y(|)g(+------------)38 b(Wegwerfen)369 +1954 y(+--------------)f(Fluchtsymbol)20 2123 y +SDict begin H.S end + 20 2123 +a 20 2123 a +SDict begin 12 H.A end + 20 2123 a 20 2123 a +SDict begin [/View [/XYZ H.V]/Dest (section.15.4) cvn /DEST pdfmark +end + 20 2123 a 136 x Fe(15.4.)68 +b(ct)l(yp)t(e.h)20 2452 y Fd(if\(isascii\(zeich)o(en)o(\)\))168 +b(\374berpr\374ft)40 b(ob)i(es)h(sich)f(um)h(ein)f(ASCII-Zeichen)c +(handelt)20 2552 y(if\(isxdigit\(zeic)o(he)o(n\)\))124 +b(\374berpr\374ft)40 b(ob)i(es)h(sich)f(um)h(ein)f(Hex-Zeichen)d +(handelt)20 2720 y +SDict begin H.S end + 20 2720 a 20 2720 a +SDict begin 12 H.A end + 20 2720 a 20 2720 +a +SDict begin [/View [/XYZ H.V]/Dest (section.15.5) cvn /DEST pdfmark +end + 20 2720 a 137 x Fe(15.5.)68 b(string.h)20 3050 y Fd(char)42 +b(*strcat\(char)c(text1,)j(char)h(text2\))f(;)87 b(h\344ngt)42 +b(Text2\(mit)d(\\0\))k(an)f(Text1)20 3150 y(char)g(*strchr\(const)c +(char)k(*text,)20 3249 y(int)g(zeichen\))f(;)1132 b(sucht)42 +b(das)g(erste)f(vorkommende)1763 3349 y(Zeichen)g(im)h(Text,)g(liefert) +f(Adresse)1763 3448 y(oder)h(NULL)20 3548 y(char)g(*strcpy\(char)c +(text1,)j(char)h(text2\))f(;)87 b(kopiert)41 b(Text2\(mit)e(\\0\))k +(zum)f(Text1)20 3648 y(sitze_t)f(strlen\(const)d(char)k(*text\))f(;)261 +b(liefert)41 b(die)h(L\344nge)f(von)i(Text\(ohne)d(\\0\))20 +3747 y(char)i(*strncat\(char)c(*text1,)20 3847 y(const)k(char)f +(*text2,)g(sitze_t)g(n\))h(;)392 b(h\344ngt)42 b(Text2)f(mit)h(n)h +(Zeichen)1763 3947 y(an)g(Text1\(mit)d(\\0\))20 4046 +y(char)i(*strtok\(char)c(*text,)20 4146 y(const)k(char)f(*kette\))g(;) +871 b(1.Aufruf:)40 b(sucht)h(im)i(Text)f(das)g(erste)1763 +4245 y(Zeichen)f(das)h(nicht)f(in)i(Kette)f(vorkommt)1763 +4345 y(\(wird)g(kein)f(Zeichen)g(gefunden)f(gibt)i(strtok)1763 +4445 y(einen)g(NULL-Zeiger)c(zur\374ck\),)j(wird)h(ein)1763 +4544 y(Zeichen)f(gefunden)f(gibt)i(strtok)f(den)h(Zeiger)1763 +4644 y(zur\374ck,)f(dann)h(sucht)f(strtok)g(ab)i(Zeiger)e(das)1763 +4744 y(erste)h(Zeichen)e(das)i(in)h(der)g(Kette)e(vorkommt)2996 +5092 y Fk(119)p eop end +%%Page: 120 120 +TeXDict begin 120 119 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 +a 632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.120) cvn /DEST pdfmark end + 632 -5 a 640 128 a Fh(15.)41 +b(C/C++)2383 360 y Fd(und)h(\374berschreibt)d(es)k(mit)f(\\0,)g(strtok) +f(merkt)2383 460 y(sich)h(den)g(Zeiger)f(auf)i(das)f(n\344chste)f +(Zeichen)640 559 y(char)h(*strtok\(NULL,)c(const)k(char)f(*kette\))g(;) +i(2.-n.Aufruf:)c(wie)j(1.Aufruf)e(ab)j(gemerkten)2383 +659 y(Zeiger)640 827 y +SDict begin H.S end + 640 827 a 640 827 a +SDict begin 12 H.A end + 640 827 a +640 827 a +SDict begin [/View [/XYZ H.V]/Dest (section.15.6) cvn /DEST pdfmark +end + 640 827 a 137 x Fe(15.6.)68 b(K)l(ontrollstrukturen)640 +1157 y Fd(if\(Ausdruck\))867 b(wenn)41 b(der)i(Ausdruck)d(stimmt,)640 +1257 y({)989 1356 y(Anweisung-en1;)430 b(Anweisung-en1)640 +1456 y(})640 1556 y(else)1219 b(sonst)640 1655 y({)989 +1755 y(Anweisung-en2;)430 b(Anweisung-en2)640 1854 y(})640 +2054 y(switch\(Ausdruck\))691 b(gehe)41 b(zum)i(Ausdruck)640 +2153 y({)989 2253 y(case)f(1:)86 b(Anweisung-en1;)81 +b(Ausdruck1:)780 b(Anweisung-en1)989 2353 y(case)42 b(2:)86 +b(Anweisung-en2;)81 b(Ausdruck2:)780 b(Anweisung-en2)1381 +2452 y(break;)1653 b(Anweisungen)39 b(beenden)989 2552 +y(case)j(n:)86 b(Anweisung-enn;)81 b(Ausdruckn:)780 b(Anweisung-enn) +1381 2651 y(break;)1653 b(Anweisungen)39 b(beenden)989 +2751 y(default:)h(Anweisung-en;)125 b(Ausdruck)40 b(nicht)i(vorhanden:) +126 b(Aneisung-en)640 2851 y(})640 3050 y(continue;)301 +b(unterbricht)39 b(die)k(Abarbeitung)38 b(und)43 b(geht)f(zur)g +(Ausdrucksbedingu)o(ng)640 3150 y(break;)433 b(verl\344sst)41 +b(die)h(Schleife)e(oder)i(Verbundsanweisun)o(g)640 3349 +y(for\(Ausdruck1;Au)o(sdr)o(uc)o(k2)o(;Au)o(sd)o(ru)o(ck3)o(\))255 +b(Ausdruck1)40 b(einmal)h(ausf\374hren)640 3448 y({)1699 +b(so)43 b(lange)e(der)i(Ausdruck2)c(stimmt,)2383 3548 +y(vorher)i(noch)h(Ausdruck3)989 3648 y(Anweisug-en;)866 +b(Anweisung-en)640 3747 y(})640 3947 y(while\(Ausdruck\))735 +b(so)42 b(lange)g(der)g(Ausdruck)e(stimmt,)640 4046 y({)989 +4146 y(Anweisung-en;)474 b(Anweisung-en)640 4245 y(})640 +4445 y(do)1307 b(mach)640 4544 y({)989 4644 y(Anweisung-en;)474 +b(Anweisung-en)640 4744 y(})640 5092 y Fk(120)p eop end +%%Page: 121 121 +TeXDict begin 121 120 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a +12 -5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.121) cvn /DEST pdfmark end + 12 -5 a 380 128 a Fh(15.7.)40 +b(ASCI)r(I\(American)28 b(Standart)f(Co)r(de)h(for)f(Information)g(In)n +(terc)n(hange\)-T)-7 b(ab)r(elle)20 360 y Fd(while\(Ausdruck\);)691 +b(so)42 b(lange)g(der)g(Ausdruck)e(stimmt)20 559 y +SDict begin H.S end + 20 +559 a 20 559 a +SDict begin 12 H.A end + 20 559 a 20 559 a +SDict begin [/View [/XYZ H.V]/Dest (section.15.7) cvn /DEST pdfmark +end + 20 559 a 143 x Fe(15.7.)68 +b(ASCI)t(I\(American)45 b(Standa)l(rt)f(Co)t(de)h(fo)l(r)g(Info)l +(rmation)371 852 y(Interchange\)-T)-11 b(ab)t(elle)20 +1057 y Fd(654)217 b(000)f(001)h(010)g(011)f(100)h(101)f(110)h(111)20 +1157 y(Bit)20 1257 y(3210)369 1356 y(NUL)f(DLE)h(SP)261 +b(0)304 b(@)h(P)f(`)h(p)20 1456 y(0000)173 b($0)42 b(0)174 +b($10)43 b(16)86 b($20)42 b(32)87 b($30)42 b(48)86 b($40)42 +b(64)87 b($50)42 b(80)86 b($60)43 b(96)86 b($70)42 b(112)369 +1655 y(SOH)216 b(DC1)h(!)305 b(1)f(A)h(Q)f(a)h(q)20 1755 +y(0001)173 b($1)42 b(1)174 b($11)43 b(17)86 b($21)42 +b(33)87 b($31)42 b(49)86 b($41)42 b(65)87 b($51)42 b(81)86 +b($61)43 b(97)86 b($71)42 b(113)369 1954 y(STX)216 b(DC2)h(")305 +b(2)f(B)h(R)f(b)h(r)20 2054 y(0010)173 b($2)42 b(2)174 +b($12)43 b(18)86 b($22)42 b(34)87 b($32)42 b(50)86 b($42)42 +b(66)87 b($52)42 b(82)86 b($62)43 b(98)86 b($72)42 b(114)369 +2253 y(ETX)216 b(DC3)h(#)305 b(3)f(C)h(S)f(c)h(s)20 2353 +y(0011)173 b($3)42 b(3)174 b($13)43 b(19)86 b($23)42 +b(35)87 b($33)42 b(51)86 b($43)42 b(67)87 b($53)42 b(83)86 +b($63)43 b(99)86 b($73)42 b(115)369 2552 y(EOT)216 b(DC4)h($)305 +b(4)f(D)h(T)f(d)h(t)20 2651 y(0100)173 b($4)42 b(4)174 +b($14)43 b(20)86 b($24)42 b(36)87 b($34)42 b(52)86 b($44)42 +b(68)87 b($54)42 b(84)86 b($64)43 b(100)f($74)g(116)369 +2851 y(ENQ)216 b(NAK)h(\045)305 b(5)f(E)h(U)f(e)h(u)20 +2950 y(0101)173 b($5)42 b(5)174 b($15)43 b(21)86 b($25)42 +b(37)87 b($35)42 b(53)86 b($45)42 b(69)87 b($55)42 b(85)86 +b($65)43 b(101)f($75)g(117)369 3150 y(ACK)216 b(SYN)h(&)305 +b(6)f(F)h(V)f(f)h(v)20 3249 y(0110)173 b($6)42 b(6)174 +b($16)43 b(22)86 b($26)42 b(38)87 b($36)42 b(54)86 b($46)42 +b(70)87 b($56)42 b(86)86 b($66)43 b(102)f($76)g(118)369 +3448 y(BEL)216 b(ETB)h(')305 b(7)f(G)h(W)f(g)h(w)20 3548 +y(0111)173 b($7)42 b(7)174 b($17)43 b(23)86 b($27)42 +b(39)87 b($37)42 b(55)86 b($47)42 b(71)87 b($57)42 b(87)86 +b($67)43 b(103)f($77)g(119)369 3747 y(BS)260 b(CAN)217 +b(\()305 b(8)f(H)h(X)f(h)h(x)20 3847 y(1000)173 b($8)42 +b(8)174 b($18)43 b(24)86 b($28)42 b(40)87 b($38)42 b(56)86 +b($48)42 b(72)87 b($58)42 b(88)86 b($68)43 b(104)f($78)g(120)369 +4046 y(HT)260 b(EM)h(\))305 b(9)f(I)h(Y)f(i)h(y)20 4146 +y(1001)173 b($9)42 b(9)174 b($19)43 b(25)86 b($29)42 +b(41)87 b($39)42 b(57)86 b($49)42 b(73)87 b($59)42 b(89)86 +b($69)43 b(105)f($79)g(121)369 4345 y(LF)260 b(SUB)217 +b(*)305 b(:)f(J)h(Z)f(j)h(z)20 4445 y(1010)173 b($A)42 +b(10)130 b($1A)43 b(26)86 b($2A)42 b(42)87 b($3A)42 b(58)86 +b($4A)42 b(74)87 b($5A)42 b(90)86 b($6A)43 b(106)f($7A)g(122)369 +4644 y(VT)260 b(ESC)217 b(+)305 b(;)f(K)h([\304)260 b(k)305 +b({\344)20 4744 y(1011)173 b($B)42 b(11)130 b($1B)43 +b(27)86 b($2B)42 b(43)87 b($3B)42 b(59)86 b($4B)42 b(75)87 +b($5B)42 b(91)86 b($6B)43 b(107)f($7B)g(123)2996 5092 +y Fk(121)p eop end +%%Page: 122 122 +TeXDict begin 122 121 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 +a 632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.122) cvn /DEST pdfmark end + 632 -5 a 640 128 a Fh(15.)41 +b(C/C++)989 460 y Fd(FF)260 b(FS)h(,)305 b(<)f(L)h(\\\366)260 +b(l)305 b(|\366)640 559 y(1100)173 b($C)42 b(12)130 b($1C)43 +b(28)86 b($2C)42 b(44)87 b($3C)42 b(60)86 b($4C)42 b(76)87 +b($5C)42 b(92)86 b($6C)43 b(108)f($7C)g(124)989 758 y(CR)260 +b(GS)h(-)305 b(=)f(M)h(]\334)260 b(m)305 b(}\374)640 +858 y(1101)173 b($D)42 b(13)130 b($1D)43 b(29)86 b($2D)42 +b(45)87 b($3D)42 b(61)86 b($4D)42 b(77)87 b($5D)42 b(93)86 +b($7D)43 b(109)f($7D)g(125)989 1057 y(SO)260 b(RS)h(.)305 +b(>)f(N)h(^)f(n)h(~\377)640 1157 y(1110)173 b($E)42 b(14)130 +b($1E)43 b(30)86 b($2E)42 b(46)87 b($3E)42 b(62)86 b($4E)42 +b(78)87 b($5E)42 b(94)86 b($7E)43 b(110)f($7E)g(126)989 +1356 y(SI)260 b(US)h(/)305 b(?)f(O)h(_)f(o)h(DEL)640 +1456 y(1111)173 b($F)42 b(15)130 b($1F)43 b(31)86 b($2F)42 +b(47)87 b($3F)42 b(63)86 b($4F)42 b(79)87 b($5F)42 b(95)86 +b($7F)43 b(111)f($7F)g(127)640 1587 y +SDict begin H.S end + 640 1587 a 640 +1587 a +SDict begin 12 H.A end + 640 1587 a 640 1587 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.15.7.1) cvn /DEST pdfmark +end + 640 1587 a 111 x Fi(15.7.1.)57 +b(Unterteilung)36 b(der)h(Steuerzeichen:)640 1854 y Fd(TC)261 +b(transmission)38 b(control)172 b(\334bertragungsste)o(ue)o(rze)o(ic)o +(he)o(n)640 1954 y(FE)261 b(format)41 b(effects)433 b(Formatsteuerzei)o +(ch)o(en)640 2054 y(IS)261 b(information)39 b(separators)83 +b(Informationstre)o(nn)o(zei)o(ch)o(en)640 2153 y(DC)261 +b(device)41 b(control)433 b(Ger\344testeuerzei)o(ch)o(en)640 +2277 y +SDict begin H.S end + 640 2277 a 640 2277 a +SDict begin 12 H.A end + 640 2277 a 640 2277 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.15.7.2) cvn /DEST pdfmark +end + 640 +2277 a 118 x Fi(15.7.2.)57 b(Bedeutung)36 b(der)h(Steuerzeichen:)640 +2552 y Fd(NUL)565 b(null)1219 b(kein)42 b(Zeichen)640 +2651 y(SOH)217 b(TC)260 b(start)42 b(of)h(heading)694 +b(Anfang)41 b(des)h(Kopfes)640 2751 y(STX)217 b(TC)260 +b(start)42 b(of)h(text)826 b(Anfang)41 b(des)h(Textes)640 +2851 y(ETX)217 b(TC)260 b(end)43 b(of)f(text)914 b(Ende)42 +b(des)g(Textes)640 2950 y(EOT)217 b(TC)260 b(end)43 b(of)f +(transmission)562 b(Ende)42 b(der)g(\334bertragung)640 +3050 y(ENQ)217 b(TC)260 b(enquiry)1087 b(Stationsaufford)o(eru)o(ng)640 +3150 y(ACK)217 b(TC)260 b(acknowledge)911 b(positive)40 +b(R\374ckmeldung)640 3249 y(BEL)565 b(bell)1219 b(Alarm)41 +b(/)i(Piepton)640 3349 y(BS)261 b(FE)f(backspace)999 +b(R\374ckw\344rtsschrit)o(t)640 3448 y(HT)261 b(FE)f(horizontal)40 +b(tabulation)475 b(horizontaler)38 b(Tabulator)640 3548 +y(LF)261 b(FE)f(line)42 b(feed)1001 b(Zeilenvorschub)640 +3648 y(VT)261 b(FE)f(vertical)41 b(tabulation)562 b(vertikaler)39 +b(Tabulator)640 3747 y(FF)261 b(FE)f(form)42 b(feed)1001 +b(Seitenvorschub)640 3847 y(CR)261 b(FE)f(carriage)41 +b(return)738 b(Wagenr\374cklauf)640 3947 y(SO)609 b(shift)42 +b(out)1001 b(Dauerumschaltun)o(g)640 4046 y(SI)609 b(shift)42 +b(in)1045 b(R\374ckschaltung)640 4146 y(DLE)217 b(TC)260 +b(data)42 b(link)g(escape)695 b(Daten\374bertragun)o(gsu)o(ms)o(ch)o +(alt)o(un)o(g)640 4245 y(DCn)217 b(DC)260 b(device)41 +b(control)782 b(Ger\344testeuerzei)o(che)o(n)640 4345 +y(NAK)217 b(TC)260 b(negative)41 b(acknowledge)518 b(negative)40 +b(R\374ckmeldung)640 4445 y(SYN)217 b(TC)260 b(synchronous)39 +b(idle)696 b(Synchronisierun)o(g)640 4544 y(ETB)217 b(TC)260 +b(end)43 b(of)f(transmission)d(block)303 b(Ende)42 b(des)g +(\334bertragungsbloc)o(ks)640 4644 y(CAN)565 b(cancel)1131 +b(ung\374ltig)640 4744 y(EM)609 b(end)43 b(of)f(medium)826 +b(Ende)42 b(der)g(Aufzeichnung)640 5092 y Fk(122)p eop +end +%%Page: 123 123 +TeXDict begin 123 122 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a +12 -5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.123) cvn /DEST pdfmark end + 12 -5 a 1923 128 a Fh(15.8.)40 +b(Op)r(eratoren)26 b(und)i(Ausdr\374c)n(k)n(e)20 360 +y Fd(SUB)565 b(substitute)40 b(character)519 b(Substitution)20 +460 y(ESC)565 b(escape)1131 b(Umschaltung)20 559 y(FS)261 +b(IS)f(file)42 b(separator)781 b(Hauptgruppentre)o(nnu)o(ng)20 +659 y(GS)261 b(IS)f(group)42 b(separator)737 b(Gruppentrennung)20 +758 y(RS)261 b(IS)f(record)41 b(separator)694 b(Untergruppentre)o(nnu)o +(ng)20 858 y(US)261 b(IS)f(unit)42 b(separator)781 b(Teilgruppentren)o +(nun)o(g)20 958 y(SP)609 b(space)1175 b(Leerzeichen)20 +1057 y(DEL)565 b(delete)1131 b(l\366schen)20 1182 y +SDict begin H.S end + 20 +1182 a 20 1182 a +SDict begin 12 H.A end + 20 1182 a 20 1182 a +SDict begin [/View [/XYZ H.V]/Dest (section.15.8) cvn /DEST pdfmark +end + 20 1182 a 149 x +Fe(15.8.)68 b(Op)t(erato)l(ren)43 b(und)i(Ausdr\374ck)l(e)20 +1436 y +SDict begin H.S end + 20 1436 a 20 1436 a +SDict begin 12 H.A end + 20 1436 a 20 1436 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.15.8.1) cvn /DEST pdfmark +end + 20 1436 +a 93 x Fi(15.8.1.)57 b(Arithmetische)36 b(Op)s(erato)m(ren:)20 +1683 y Fd(Operator)345 b(Bedeutung)650 b(Assoziativit\344t)81 +b(Rang)173 b(Beispiel)20 1782 y(--------)345 b(---------)650 +b(--------------)81 b(----)173 b(--------)20 1882 y(+)653 +b(Addition)1043 b(>)304 b(5)h(a+b)20 1982 y(-)653 b(Subtraktion)911 +b(>)304 b(5)h(a-b)20 2081 y(*)653 b(Multiplikation)779 +b(>)304 b(4)h(a*b)20 2181 y(/)653 b(Division)1043 b(>)304 +b(4)h(a/b)20 2280 y(\045)653 b(Modulo)1131 b(>)304 b(4)h(a\045b)20 +2403 y +SDict begin H.S end + 20 2403 a 20 2403 a +SDict begin 12 H.A end + 20 2403 a 20 2403 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.15.8.2) cvn /DEST pdfmark +end + 20 2403 +a 109 x Fi(15.8.2.)57 b(V)m(ergleichsop)s(erato)m(ren:)20 +2665 y Fd(Operator)345 b(Bedeutung)650 b(Assoziativit\344t)81 +b(Rang)173 b(Beispiel)20 2765 y(--------)345 b(---------)650 +b(--------------)81 b(----)173 b(--------)20 2864 y(<)653 +b(kleiner)41 b(als)914 b(>)304 b(7)h(a)304 b(7)h(a<=b)20 +3064 y(>)653 b(gr\366\377er)1131 b(>)304 b(7)h(a>b)20 +3163 y(>=)609 b(gr\366\377er)41 b(oder)h(gleich)608 b(>)304 +b(7)h(a>=b)20 3263 y(==)609 b(gleich)1131 b(>)304 b(8)h(a==b)20 +3363 y(!=)609 b(ungleich)1043 b(>)304 b(8)h(a!=b)20 3496 +y +SDict begin H.S end + 20 3496 a 20 3496 a +SDict begin 12 H.A end + 20 3496 a 20 3496 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.15.8.3) cvn /DEST pdfmark +end + 20 3496 a 98 +x Fi(15.8.3.)57 b(Logische)35 b(Op)s(erato)m(ren:)20 +3747 y Fd(Operator)345 b(Bedeutung)650 b(Assoziativit\344t)81 +b(Rang)173 b(Beispiel)20 3847 y(--------)345 b(---------)650 +b(--------------)81 b(----)173 b(--------)20 3947 y(&)653 +b(bitweises)40 b(AND)827 b(>)304 b(9)h(a&b)20 4046 y(|)653 +b(bitweises)40 b(OR)871 b(>)304 b(11)261 b(a|b)20 4146 +y(^)653 b(bitweises)40 b(XOR)827 b(>)304 b(10)261 b(a^b)20 +4245 y(<<)609 b(bitweises)40 b(Linksschieben)387 b(>)304 +b(6)h(a<>)609 b(bitweises)40 b(Rechtsschieben)343 +b(>)304 b(6)h(a>>n)20 4445 y(~)653 b(Einerkomplement)735 +b(<)304 b(2)h(~a)20 4544 y(&&)609 b(logisches)40 b(AND)827 +b(>)304 b(12)261 b(a&&b)20 4644 y(||)609 b(logisches)40 +b(OR)871 b(>)304 b(13)261 b(a||b)20 4744 y(!)653 b(logische)40 +b(Negation)651 b(<)304 b(2)h(!a)2996 5092 y Fk(123)p +eop end +%%Page: 124 124 +TeXDict begin 124 123 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 +a 632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.124) cvn /DEST pdfmark end + 632 -5 a 640 128 a Fh(15.)41 +b(C/C++)640 277 y +SDict begin H.S end + 640 277 a 640 277 a +SDict begin 12 H.A end + 640 277 a 640 277 +a +SDict begin [/View [/XYZ H.V]/Dest (subsection.15.8.4) cvn /DEST pdfmark +end + 640 277 a 83 x Fi(15.8.4.)57 b(Zu)m(w)m(eisungsop)s(erato)m(ren:)640 +520 y Fd(Operator)345 b(Bedeutung)650 b(Assoziativit\344t)81 +b(Rang)173 b(Beispiel)640 620 y(--------)345 b(---------)650 +b(--------------)81 b(----)173 b(--------)640 719 y(=)653 +b(Zuweisung)999 b(<)304 b(15)261 b(a=b)640 819 y(+=)609 +b(Zuweisung)40 b(nach)i(Addition)389 b(<)304 b(15)261 +b(a+=b)640 918 y(-=)609 b(Zuweisung)40 b(nach)i(Subtraktion)257 +b(<)304 b(15)261 b(a-=b)640 1018 y(*=)609 b(Zuweisung)40 +b(nach)i(Multiplikation)125 b(<)304 b(15)261 b(a*=b)640 +1118 y(/=)609 b(Zuweisung)40 b(nach)i(Division)389 b(<)304 +b(15)261 b(a/=b)640 1217 y(\045=)609 b(Zuweisung)40 b(nach)i(Modulo)477 +b(<)304 b(15)261 b(a\045=b)640 1317 y(<<=)565 b(Zuweisung)40 +b(nach)i(bitweisem)345 b(<)304 b(15)261 b(a<<=b)1337 +1417 y(Linksschieben)640 1516 y(>>=)565 b(Zuweisung)40 +b(nach)i(bitweisem)345 b(<)304 b(15)261 b(a>>=b)1337 +1616 y(Rechtsschieben)640 1715 y(&=)609 b(Zuweisung)40 +b(nach)i(bitweisem)e(AND)173 b(<)304 b(15)261 b(a&=b)640 +1815 y(|=)609 b(Zuweisung)40 b(nach)i(bitweisem)e(OR)217 +b(<)304 b(15)261 b(a|=b)640 1915 y(^=)609 b(Zuweisung)40 +b(nach)i(bitweisem)e(XOR)173 b(<)304 b(15)261 b(a^=b)640 +2065 y +SDict begin H.S end + 640 2065 a 640 2065 a +SDict begin 12 H.A end + 640 2065 a 640 2065 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.15.8.5) cvn /DEST pdfmark +end + 640 +2065 a 101 x Fi(15.8.5.)57 b(P)m(ost-)38 b(und)e(Pre\034x-)j(Op)s +(erato)m(ren:)640 2326 y Fd(Operator)345 b(Bedeutung)650 +b(Assoziativit\344t)81 b(Rang)173 b(Beispiel)640 2426 +y(--------)345 b(---------)650 b(--------------)81 b(----)173 +b(--------)640 2526 y(++)609 b(Inkrement)999 b(>)43 b(<)217 +b(1)44 b(2)217 b(a++)42 b(++a)640 2625 y(--)609 b(Dekrement)999 +b(>)43 b(<)217 b(1)44 b(2)217 b(a--)42 b(--a)640 2725 +y(\(\))609 b(Funktionsaufruf)735 b(>)304 b(1)h(sqrt\(a\))640 +2824 y([])609 b(Arrayelement)867 b(>)304 b(1)h(feld[a])640 +2924 y(.)653 b(Feld)42 b(einer)g(structur)e(oder)i(union)85 +b(>)304 b(1)h(tag.dat)640 3024 y(->)609 b(Zeiger)41 b(auf)i(structur) +563 b(>)304 b(1)h(zeig->ele)640 3123 y(\()43 b(type)f(\))348 +b(expl.)42 b(Typenumwandlung)473 b(<)304 b(2)h(double\(a\))640 +3274 y +SDict begin H.S end + 640 3274 a 640 3274 a +SDict begin 12 H.A end + 640 3274 a 640 3274 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.15.8.6) cvn /DEST pdfmark +end + 640 +3274 a 101 x Fi(15.8.6.)57 b(Zeigerop)s(erato)m(ren:)640 +3535 y Fd(Operator)345 b(Bedeutung)650 b(Assoziativit\344t)81 +b(Rang)173 b(Beispiel)640 3635 y(--------)345 b(---------)650 +b(--------------)81 b(----)173 b(--------)640 3734 y(&)653 +b(Adresse)41 b(von)914 b(<)304 b(2)h(&a)640 3834 y(*)653 +b(Indirektion)911 b(<)304 b(2)h(*a)640 3933 y(.*)609 +b(Dereferenzzeiger)691 b(>)304 b(3)h(tag.*dat)640 4033 +y(->*)565 b(Dereferenzzeiger)691 b(>)304 b(3)h(tag->dat)640 +4183 y +SDict begin H.S end + 640 4183 a 640 4183 a +SDict begin 12 H.A end + 640 4183 a 640 4183 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.15.8.7) cvn /DEST pdfmark +end + 640 +4183 a 102 x Fi(15.8.7.)57 b(Diverse)36 b(Katego)m(rien:)640 +4445 y Fd(Operator)345 b(Bedeutung)650 b(Assoziativit\344t)81 +b(Rang)173 b(Beispiel)640 4544 y(--------)345 b(---------)650 +b(--------------)81 b(----)173 b(--------)640 4644 y(?:)609 +b(Bedinung)1043 b(<)304 b(14)261 b(a?b:c)989 4744 y(i)43 +b(=)g(x)304 b(16)261 +b(a,b,)42 b(...)20 460 y(-)653 b(un\344res)41 b(Minus)870 +b(<)304 b(2)h(-n)20 559 y(+)653 b(un\344res)41 b(Plus)914 +b(<)304 b(2)h(+n)20 659 y(sizeof\(typ\))213 b(Gr\366\377e)42 +b(des)g(Types)g(in)g(Byte)391 b(<)304 b(2)h(sizeof\(a\))20 +758 y(new)565 b(dynam.)41 b(Objekt)g(erzeugen)433 b(<)304 +b(2)h(b)43 b(=)g(new)g(float[a])20 858 y(delete)433 b(dynam.)41 +b(Objekt)g(l\366schen)477 b(<)304 b(2)h(delete)41 b(b)20 +958 y(::)609 b(Zugiffs-/Bereichs)o(op)o(er)o(ato)o(r)299 +b(<)304 b(2)h(adr::nam)20 1100 y +SDict begin H.S end + 20 1100 a 20 1100 a +SDict begin 12 H.A end + +20 1100 a 20 1100 a +SDict begin [/View [/XYZ H.V]/Dest (section.15.9) cvn /DEST pdfmark +end + 20 1100 a 131 x Fe(15.9.)68 b(Inkrementieren)43 +b(und)h(Dekrementieren)20 1413 y Fd(i++)e(;)828 b(i)43 +b(=)g(i)g(+)h(1)20 1513 y(++i)e(;)828 b(i)43 b(=)g(i)g(+)h(1)20 +1612 y(x)f(=)g(i++)g(;)653 b(1.)43 b(x)g(=)g(i)348 b(2.)43 +b(i)g(=)g(i)g(+)g(1)20 1712 y(x)g(=)g(++i)g(;)653 b(1.)43 +b(i)g(=)g(i)g(+)g(1)174 b(2.)43 b(x)g(=)g(i)20 1812 y(i--)f(;)828 +b(i)43 b(=)g(i)g(-)h(1)20 1911 y(--i)e(;)828 b(i)43 b(=)g(i)g(-)h(1)20 +2011 y(x)f(=)g(i--)g(;)653 b(1.)43 b(x)g(=)g(i)348 b(2.)43 +b(i)g(=)g(i)g(-)g(1)20 2111 y(x)g(=)g(--i)g(;)653 b(2.)43 +b(i)g(=)g(i)g(-)g(1)174 b(2.)43 b(x)g(=)g(i)20 2246 y +SDict begin H.S end + +20 2246 a 20 2246 a +SDict begin 12 H.A end + 20 2246 a 20 2246 a +SDict begin [/View [/XYZ H.V]/Dest (section.15.10) cvn /DEST pdfmark +end + 20 2246 a 138 +x Fe(15.10.)68 b(W)l(erteb)t(ereich)43 b(und)h(Genauigk)l(eit)g +(elementa)l(rer)440 2534 y(Datent)l(yp)t(en)20 2716 y +Fd(Datentyp)476 b(Bit)435 b(Min.Wert)345 b(Max.Wert)g(Genauigkeit)20 +2815 y(--------)476 b(---)435 b(--------)345 b(--------)g(-----------) +20 2915 y(char)652 b(8)523 b(-128)e(127)20 3014 y(unsigned)40 +b(char)260 b(8)523 b(0)653 b(255)20 3114 y(short)42 b(int)434 +b(16)479 b(-32768)433 b(32767)20 3214 y(unsigned)40 b(short)i(int)g(16) +479 b(0)653 b(65535)20 3313 y(int)696 b(\(16\)32\(64\))127 +b(-2147483648)213 b(2147483647)20 3413 y(unsigned)40 +b(int)304 b(16)479 b(0)653 b(65535)20 3513 y(long)42 +b(int)478 b(32\(64\))303 b(-2147483648)213 b(2147483647)20 +3612 y(unsigned)40 b(long)i(int)86 b(32)479 b(0)653 b(4294967295)20 +3712 y(float)608 b(32)479 b(ca.)42 b(3.4E-38)215 b(3.4E38)433 +b(>=)43 b(6)g(Ziffern)20 3811 y(double)564 b(64)479 b(ca.)42 +b(1.7E-308)171 b(1.7E308)389 b(>=)43 b(10)f(Ziffern)20 +3911 y(long)g(double)346 b(80)479 b(ca.)42 b(1.2E-4932)127 +b(1.2E4932)345 b(>=)43 b(double)20 4054 y +SDict begin H.S end + 20 4054 a 20 +4054 a +SDict begin 12 H.A end + 20 4054 a 20 4054 a +SDict begin [/View [/XYZ H.V]/Dest (section.15.11) cvn /DEST pdfmark +end + 20 4054 a 131 x Fe(15.11.)68 +b(V)l(a)l(riableninitialisierung)20 4367 y Fk(Nic)n(h)n +(tinitialisierte)27 b(V)-7 b(ariab)r(eln)27 b(hab)r(en)h +Fa(nic)m(h)m(t)g Fk(automatisc)n(h)f(den)h(W)-7 b(ert)27 +b(0!)20 4544 y Fd(short)42 b(faktor=10)d(;)20 4744 y(short)j(laktor,)e +(messwert)g(;)2996 5092 y Fk(125)p eop end +%%Page: 126 126 +TeXDict begin 126 125 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 +a 632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.126) cvn /DEST pdfmark end + 632 -5 a 640 128 a Fh(15.)41 +b(C/C++)640 460 y Fd(messwert=faktor)c(;)640 596 y +SDict begin H.S end + 640 +596 a 640 596 a +SDict begin 12 H.A end + 640 596 a 640 596 a +SDict begin [/View [/XYZ H.V]/Dest (section.15.12) cvn /DEST pdfmark +end + 640 596 a 138 x Fe(15.12.)68 +b(K)l(onstanten)640 916 y Fk(K)n(onstan)n(ten)26 b(w)n(erden)g(mit)i +(dem)f(v)n(orangestellten)e(Sc)n(hl\374sselw)n(ort)h(const)h(wie)g(V)-7 +b(ariab)r(eln)27 b(dekla-)640 1016 y(riert.)c(Der)h(dem)g(Namen)f +(\374b)r(er)h(das)f(=-Zeic)n(hen)g(zugeordnete)f(W)-7 +b(ert)24 b(k)-5 b(ann)24 b(nic)n(h)n(t)f(im)h(Programm)640 +1115 y(v)n(er\344ndert)i(w)n(erden.)h(F\374r)g(eine)h(fehlende)g(T)n +(yp)r(enangab)r(e)f(wird)g(in)n(t)h(angenommen.)640 1298 +y Fd(cont)42 b(float)259 b(PI)43 b(=)174 b(3.14159)41 +b(;)304 b(//)43 b(bevorzugen)640 1397 y(#define)389 b(PI)261 +b(3.14159)41 b(;)640 1525 y +SDict begin H.S end + 640 1525 a 640 1525 a +SDict begin 12 H.A end + 640 +1525 a 640 1525 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.15.12.1) cvn /DEST pdfmark +end + 640 1525 a 105 x Fi(15.12.1.)57 b(Ganzzahlk)m +(onstanten)640 1783 y Fk(dezimal)31 b(=)g(30)f(;)h(oktal)f(=)h(036)e(;) +i(hexadezimal)f(=)h(0x1E)f(;)i(Zus\344tzlic)n(h)e(k)-5 +b(ann)31 b(frau)f(eine)h(Ganz-)640 1883 y(zahlk)n(onstan)n(te)36 +b(durc)n(h)h(das)g(Su\036x)g(L)h(o)r(der)e(l)i(als)f(long)f(und)i(durc) +n(h)f(U)h(o)r(der)f(u)g(als)g(unsigned)640 1982 y(k)n(ennzeic)n(hnen)27 +b(\(z.B.)h(30U\).)640 2119 y +SDict begin H.S end + 640 2119 a 640 2119 a +SDict begin 12 H.A end + 640 +2119 a 640 2119 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.15.12.2) cvn /DEST pdfmark +end + 640 2119 a 96 x Fi(15.12.2.)57 b(Gleitk)m(ommak)m +(onstanten)640 2368 y Fk(0.033)32 b(+.033)g(33E-3)h(+33.0e-03)d +(Zus\344tzlic)n(h)j(k)-5 b(ann)34 b(frau)f(eine)h(Gleitk)n(ommak)n +(onstan)n(te)e(durc)n(h)640 2468 y(das)i(Su\036x)i(F)f(o)r(der)f(f)h +(als)f(\035oat)h(und)g(durc)n(h)f(L)h(o)r(der)f(l)h(als)g(long)f +(double)g(k)n(ennzeic)n(hnen)g(\(z.B.)640 2567 y(0.033L\).)640 +2704 y +SDict begin H.S end + 640 2704 a 640 2704 a +SDict begin 12 H.A end + 640 2704 a 640 2704 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.15.12.3) cvn /DEST pdfmark +end + 640 +2704 a 96 x Fi(15.12.3.)57 b(Zeichen-)36 b(und)h(Zeichenk)m(ettenk)m +(onstanten)640 2953 y Fk('n')640 3052 y(\020zeic)n(henk)n(ette'")640 +5092 y(126)p eop end +%%Page: 127 127 +TeXDict begin 127 126 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a +12 -5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.127) cvn /DEST pdfmark end + 12 -5 a 20 277 a +SDict begin H.S end + 20 277 a 20 +277 a +SDict begin 12 H.A end + 20 277 a 20 277 a +SDict begin [/View [/XYZ H.V]/Dest (chapter.16) cvn /DEST pdfmark end + 20 277 a 520 x Fm(16.)100 b(T)-17 +b(cl/Tk)20 1081 y Fd(wish)173 b(startet)40 b(den)j(Tcl/Tk-Interpet)o +(er)20 1181 y(exit)173 b(beendet)40 b(den)j(Tcl/Tk-Interpet)o(er)20 +1380 y(wish)f(Programm.tcl)300 b(startet)41 b(das)h(Programm.tcl)20 +1579 y(button)f(.name)h(Option/en)83 b(Knopf)41 b(definieren)f +(Optionen:)717 1679 y(-text)i("Aufschrift")256 b(Knopf-Aufschrift)717 +1779 y(-text)42 b([Befehl])432 b(Knopf-Aufschrift)37 +b(vom)42 b(Befehl)717 1878 y(-command)e({Befehl})302 +b(Knopf-Befehl)717 1978 y(Befehl:)41 b(z.B.)h(exec)g(ls)g(oder)g(exec)g +(xterm)g(-e)g(vi)h(&)717 2078 y(-relief)e(flat)521 b(Knopf)42 +b(flach)717 2177 y(-relief)f(raised)433 b(Knopf)42 b(erhoben)717 +2277 y(-relief)f(sunken)433 b(Knopf)42 b(eingedr\374ckt)717 +2376 y(-relief)f(ridge)477 b(Knopf)42 b(Band)f(erhoben)717 +2476 y(-relief)g(groove)433 b(Knopf)42 b(Band)f(eingedr\374ckt)717 +2576 y(-padx)h(Pixelzahl)388 b(Abstand)41 b(zum)h(Rand)g(in)h +(x-Richtung)717 2675 y(-pady)f(Pixelzahl)388 b(Abstand)41 +b(zum)h(Rand)g(in)h(y-Richtung)717 2775 y(-image)e([)i(image)f(create)f +(photo)g(-file)h(Bildname)e(])1763 2875 y(Knopf)i(mit)g(gif,)g(ppm)g +(oder)g(pgm)717 2974 y(-foreground)d(Farbe)303 b(Schriftfarbe)39 +b("#rgb"->"#ff000)o(0")e(oder)42 b(red)717 3074 y(-fg)h(Farbe)651 +b(Abk\374rzung)40 b(f\374r)i(-foreground)d(Farbe)717 +3173 y(-background)g(Farbe)303 b(Knopffarbe)717 3273 +y(-bg)43 b(Farbe)651 b(Abk\374rzung)40 b(f\374r)i(-background)d(Farbe) +717 3373 y(-width)i(Pixelbreite)257 b(Knopfbreite)717 +3472 y(-height)41 b(Pixelh\366he)301 b(Knopfh\366he)717 +3572 y(-font)42 b(Zeichensatz)300 b(Schrift)41 b(f\374r)h(den)g(Knopf) +20 3771 y(pack)g(.name)f(Option/en)171 b(Knopf)41 b(anzeigen)g(Option:) +717 3871 y(-fill)h(x)740 b(Knopf)42 b(an)g(die)h(Fensterbreite)38 +b(anpassen)717 3970 y(-expand)j(true)521 b(Knopf)42 b(im)g(gro\377en)f +(Fenster)g(aufteilen)2996 5092 y Fk(127)p eop end +%%Page: 128 128 +TeXDict begin 128 127 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 +a 632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.128) cvn /DEST pdfmark end + 632 -5 a eop end +%%Page: 129 129 +TeXDict begin 129 128 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a +12 -5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.129) cvn /DEST pdfmark end + 12 -5 a 20 277 a +SDict begin H.S end + 20 277 a 20 +277 a +SDict begin 12 H.A end + 20 277 a 20 277 a +SDict begin [/View [/XYZ H.V]/Dest (chapter.17) cvn /DEST pdfmark end + 20 277 a 520 x Fm(17.)100 b(P)-6 +b(erl)20 1068 y Fd(perl)42 b(-v)1089 b(\374berpr\374fen)39 +b(ob)k(Perl)e(installiert)e(ist)2996 5092 y Fk(129)p +eop end +%%Page: 130 130 +TeXDict begin 130 129 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 +a 632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.130) cvn /DEST pdfmark end + 632 -5 a eop end +%%Page: 131 131 +TeXDict begin 131 130 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a +12 -5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.131) cvn /DEST pdfmark end + 12 -5 a 20 277 a +SDict begin H.S end + 20 277 a 20 +277 a +SDict begin 12 H.A end + 20 277 a 20 277 a +SDict begin [/View [/XYZ H.V]/Dest (chapter.18) cvn /DEST pdfmark end + 20 277 a 522 x Fm(18.)100 b(CGI+P)-6 +b(erl)20 999 y +SDict begin H.S end + 20 999 a 20 999 a +SDict begin 12 H.A end + 20 999 a 20 999 a +SDict begin [/View [/XYZ H.V]/Dest (section.18.1) cvn /DEST pdfmark +end + 20 +999 a 125 x Fe(18.1.)68 b(Einleitung)20 1310 y Fd(Was)42 +b(ist)h(CGI?)172 b(Common)41 b(Gateway)g(Interface.)e(Web-Server-Schni) +o(tts)o(te)o(lle)o(,)e(um)43 b(mit)717 1409 y(anderen)e(Programmen)e +(zusammenzuarbeit)o(en.)20 1609 y(Was)j(ist)h(Perl?)128 +b(Practical)40 b(Extraction)f(and)k(Report)e(Language.)e +(Interpreter-Skrip)o(t-)717 1708 y(Sprache,)h(die)j(h\344ufig)e(zur)h +(Programmierung)c(von)k(CGI-Anwendungen)717 1808 y(benutzt)f(wird.)20 +1941 y +SDict begin H.S end + 20 1941 a 20 1941 a +SDict begin 12 H.A end + 20 1941 a 20 1941 a +SDict begin [/View [/XYZ H.V]/Dest (section.18.2) cvn /DEST pdfmark +end + 20 1941 +a 152 x Fe(18.2.)68 b(P)l(erl)20 2176 y +SDict begin H.S end + 20 2176 a 20 +2176 a +SDict begin 12 H.A end + 20 2176 a 20 2176 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.18.2.1) cvn /DEST pdfmark +end + 20 2176 a 119 x Fi(18.2.1.)57 +b(T)-9 b(exte)37 b(und)f(Strings)20 2451 y Fd(#)43 b(Kommentartext)736 +b(\(Hash\))41 b(Einzeiliger)d(Kommentartext)20 2551 y(print)k("Text")f +(;)784 b(Text)41 b(ausgeben)20 2651 y(print)h("Text\\n")e(;)697 +b(\\n)42 b(Neue)g(Zeile)20 2750 y(print)g("Text\\r")e(;)697 +b(\\r)42 b(Wagenr\374cklauf)20 2850 y(print)g("Text\\t")e(;)697 +b(\\t)42 b(Tabulator)20 2949 y(print)g("Text\\v")e(;)697 +b(\\v)42 b(Vertikalzeichen)20 3049 y(print)g("Text\\f")e(;)697 +b(\\f)42 b(Papiereinzugszei)o(che)o(n)20 3149 y(print)g("Text\\b")e(;) +697 b(\\b)42 b(R\374cksetzzeichen)20 3248 y(print)g("Text\\a")e(;)697 +b(\\a)42 b(Piepton)20 3348 y(print)g("Text\\e")e(;)697 +b(\\e)42 b(Unterbrechungsze)o(ich)o(en)20 3448 y(print)g($Variable)d(;) +654 b(Variable)40 b(ausgeben)20 3547 y(print)i("Text\\"")e(;)697 +b(\\")42 b(G\344nsef\374\377chen)d(ausgeben)20 3647 y(print)j +("Text\\'")e(;)697 b(\\')42 b(Einfache)e(Anf\374hrungszeichen)d +(ausgeben)20 3747 y(print)42 b("Text\\$")e(;)697 b(\\$)42 +b(Dollar-Zeichen)c(ausgeben)20 3846 y(print)k("Text\\\\")e(;)697 +b(\\\\)42 b(Backslash)e(ausgeben)20 3946 y(print)i("Text".$Var."Te)o +(xt)o(")37 b(;)262 b(.)43 b(Verketten)c(von)k(Zeichenfolgen)20 +4045 y(print)f("Text"x10)d(;)654 b(Text)41 b(10)i(mal)f(zusgeben)20 +4188 y +SDict begin H.S end + 20 4188 a 20 4188 a +SDict begin 12 H.A end + 20 4188 a 20 4188 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.18.2.2) cvn /DEST pdfmark +end + 20 4188 +a 100 x Fi(18.2.2.)57 b(Rechenop)s(erationen)20 4445 +y Fd($a=$b+$c)40 b(;)959 b(Addition)40 b(von)i($b)h(und)f($c)h(gleich)e +($a)20 4544 y($a=$b-$c)f(;)959 b(Subtraktion)38 b(von)43 +b($b)f(minus)g($c)h(gleich)e($a)20 4644 y($a=$b*$c)f(;)959 +b(Multiplikation)37 b(von)42 b($b)h(mal)f($c)h(gleich)e($a)20 +4744 y($a=$b/$c)f(;)959 b(Division)40 b($b)i(geteilt)f(durch)g($c)i +(gleich)e($a)2996 5092 y Fk(131)p eop end +%%Page: 132 132 +TeXDict begin 132 131 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 +a 632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.132) cvn /DEST pdfmark end + 632 -5 a 640 128 a Fh(18.)41 +b(CGI+P)n(erl)640 360 y Fd($a=$b**$c)f(;)915 b(Potenz)41 +b($b)h(hoch)g($c)h(gleich)e($a)640 460 y($a=$b\045$c)f(;)959 +b(Modulo)41 b($b)h(geteilt)f(durch)g($c)i(Rest)f(gleich)f($a)640 +559 y($a++)h(;)1133 b($a=$a+1)40 b(;)640 659 y($a--)i(;)1133 +b($a=$a-1)40 b(;)640 758 y($a=3.1415)g(;)915 b(.)43 b(Dezimaltrenner) +640 939 y +SDict begin H.S end + 640 939 a 640 939 a +SDict begin 12 H.A end + 640 939 a 640 939 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.18.2.3) cvn /DEST pdfmark +end + 640 +939 a 117 x Fi(18.2.3.)57 b(Arra)m(ys)37 b(\(Listen\))640 +1232 y Fd(@Array=\("W0","W1)o("\))g(;)523 b(Werte)41 +b(einer)g(Array-Variable)d(zuweisen)i(\(Kurzform\))640 +1331 y($Array[Indexwert)o(]=")o(We)o(rt)o(")e(;)261 b(Wert)41 +b(einer)h(Array-Variable)c(zuweisen)i(\(Langform\))640 +1431 y(@Array=$Liste[2,)o(4,8)o(])d(;)436 b(Werte)41 +b(eines)g(Arrays)h(eines)f(Arrays)g(zuweisen)640 1531 +y(print)h(@Array)f(;)784 b(Gesamtes)40 b(Array)h(ausgeben)640 +1630 y(print)h($Array[Indexwer)o(t])37 b(;)305 b(Wert)41 +b(einer)h(Array-Variable)c(ausgeben)640 1730 y(print)k($#Array)e(;)741 +b(Nummer)41 b(des)h(letzten)f(Listenelements)c(ausgeben)640 +1917 y +SDict begin H.S end + 640 1917 a 640 1917 a +SDict begin 12 H.A end + 640 1917 a 640 1917 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.18.2.4) cvn /DEST pdfmark +end + 640 +1917 a 110 x Fi(18.2.4.)57 b(String-)37 b(und)g(Zahlenvergleichsop)s +(errato)m(ren)640 2203 y Fd(Vergleich)301 b(Zahlenvergleich)38 +b(Stringvergleich)640 2303 y(Gleich)782 b(==)609 b(eq)640 +2402 y(Ungleich)694 b(!=)609 b(ne)640 2502 y(Kleiner)41 +b(als)565 b(<)653 b(lt)640 2602 y(Gr\366\377er)41 b(als)609 +b(>)653 b(gt)640 2701 y(Kleiner)41 b(oder)h(gleich)215 +b(<=)609 b(le)640 2801 y(Gr\366\377er)41 b(oder)h(gleich)259 +b(>=)609 b(ge)640 2988 y +SDict begin H.S end + 640 2988 a 640 2988 a +SDict begin 12 H.A end + 640 2988 +a 640 2988 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.18.2.5) cvn /DEST pdfmark +end + 640 2988 a 110 x Fi(18.2.5.)57 b(if-Bedingung)640 +3274 y Fd(if)43 b(\(Bedingung\))780 b(Wenn)41 b(die)i(Bedingung)d +(Wahr,)640 3374 y({)989 3473 y(Befehle)g(;)654 b(Befehle)40 +b(ausf\374hren)640 3573 y(})640 3749 y +SDict begin H.S end + 640 3749 a 640 +3749 a +SDict begin 12 H.A end + 640 3749 a 640 3749 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.18.2.6) cvn /DEST pdfmark +end + 640 3749 a 121 x Fi(18.2.6.)57 +b(if-else-Bedingung)640 4046 y Fd(if)43 b(\(Bedingung\))780 +b(Wenn)41 b(die)i(Bedingung)d(Wahr,)640 4146 y({)989 +4245 y(Befehle)g(;)654 b(Befehle)40 b(ausf\374hren)640 +4345 y(})640 4445 y(else)1219 b(sonst)640 4544 y({)989 +4644 y(Befehle)40 b(;)654 b(Befehle)40 b(ausf\374hren)640 +4744 y(})640 5092 y Fk(132)p eop end +%%Page: 133 133 +TeXDict begin 133 132 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a +12 -5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.133) cvn /DEST pdfmark end + 12 -5 a 2499 128 a Fh(18.3.)40 +b(F)-7 b(unktionen)20 277 y +SDict begin H.S end + 20 277 a 20 277 a +SDict begin 12 H.A end + 20 277 +a 20 277 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.18.2.7) cvn /DEST pdfmark +end + 20 277 a 83 x Fi(18.2.7.)57 b(if-elseif-Bedingung)20 +513 y Fd(if)43 b(\(Bedingung\))780 b(Wenn)41 b(die)i(Bedingung)c(Wahr,) +20 613 y({)369 712 y(Befehle)h(;)654 b(Befehle)40 b(ausf\374hren)20 +812 y(})20 912 y(elseif)h(\(Bedingung\))606 b(sonst)41 +b(Wenn)h(die)g(Bedingung)e(Wahr,)20 1011 y({)369 1111 +y(Befehle)g(;)654 b(Befehle)40 b(ausf\374hren)20 1211 +y(})20 1343 y +SDict begin H.S end + 20 1343 a 20 1343 a +SDict begin 12 H.A end + 20 1343 a 20 1343 a +SDict begin [/View [/XYZ H.V]/Dest (section.18.3) cvn /DEST pdfmark +end + +20 1343 a 142 x Fe(18.3.)68 b(F)l(unktionen)20 1567 y +SDict begin H.S end + +20 1567 a 20 1567 a +SDict begin 12 H.A end + 20 1567 a 20 1567 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.18.3.1) cvn /DEST pdfmark +end + 20 1567 a 117 +x Fi(18.3.1.)57 b(String)37 b(F)m(unktionen)20 1837 y +Fd($Var=chop\($Strin)o(g\))g(;)523 b(L\366scht)41 b(das)h(letzte)f +(Zeichen)f(von)j(String)e(und)1415 1936 y(gibt)g(es)i(an)g(Var)20 +2071 y +SDict begin H.S end + 20 2071 a 20 2071 a +SDict begin 12 H.A end + 20 2071 a 20 2071 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.18.3.2) cvn /DEST pdfmark +end + 20 2071 +a 98 x Fi(18.3.2.)57 b(Rechen)36 b(F)m(unktionen)20 2322 +y Fd($a=sqrt\($b\))j(;)828 b(Quadratwurzel)38 b(von)k($b)h(nach)e($a)20 +2422 y($a=log\($b\))e(;)872 b(Logarithmus)20 2521 y($a=exp\($b\))39 +b(;)872 b(Exponenten)20 2621 y($a=abs\($b\))39 b(;)872 +b(Absoluterwert)20 2721 y($a=int\($b\))39 b(;)872 b(Ganzzahlwert)20 +2848 y +SDict begin H.S end + 20 2848 a 20 2848 a +SDict begin 12 H.A end + 20 2848 a 20 2848 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.18.3.3) cvn /DEST pdfmark +end + 20 2848 +a 105 x Fi(18.3.3.)57 b(Arra)m(y)37 b(F)m(unktionen)20 +3106 y Fd(push\(@Liste,@Ele)o(me)o(nte)o(\))g(;)349 b(Setzt)41 +b(ein)h(oder)g(mehrere)f(Elemente)f(an)1415 3206 y(das)i(Ende)g(der)g +(Liste)20 3305 y(unshift\(@Liste,")o(We)o(rt")o(\))37 +b(;)349 b(Setzt)41 b(ein)h(oder)g(mehrere)f(Elemente)f(an)1415 +3405 y(den)i(Anfang)f(der)h(Liste)20 3505 y($a=shift\(@Liste\))37 +b(;)610 b(Entfernt)40 b(das)i(erste)f(Element)g(aus)h(der)h(Liste)1415 +3604 y(und)f(gibt)g(es)g(an)h($a)20 3704 y($a=pop\(@Liste\))38 +b(;)697 b(Entfernt)40 b(das)i(letzte)f(Element)g(aus)h(der)g(Liste)1415 +3804 y(und)g(gibt)g(es)g(an)h($a)20 3903 y(splice\(@Liste,St)o(ar)o +(t,A)o(nz)o(ah)o(l,E)o(le)o(men)o(t\))37 b(;)130 b(Entfernt)40 +b(die)j(Anzahl)e(vom)h(Start)f(der)i(Liste)1415 4003 +y(und)f(f\374gt)g(Element)e(ein)2996 5092 y Fk(133)p +eop end +%%Page: 134 134 +TeXDict begin 134 133 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 +a 632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.134) cvn /DEST pdfmark end + 632 -5 a eop end +%%Page: 135 135 +TeXDict begin 135 134 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a +12 -5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.135) cvn /DEST pdfmark end + 12 -5 a 20 277 a +SDict begin H.S end + 20 277 a 20 +277 a +SDict begin 12 H.A end + 20 277 a 20 277 a +SDict begin [/View [/XYZ H.V]/Dest (chapter.19) cvn /DEST pdfmark end + 20 277 a 522 x Fm(19.)100 b(Java)20 +973 y +SDict begin H.S end + 20 973 a 20 973 a +SDict begin 12 H.A end + 20 973 a 20 973 a +SDict begin [/View [/XYZ H.V]/Dest (section.19.1) cvn /DEST pdfmark +end + 20 973 a 151 +x Fe(19.1.)68 b(F)l(unktion)44 b(von)h(Java)64 1310 y +Fd(+--------------)o(-+)81 b(+--------------)o(--)o(---)o(--)o(--)o +(---)o(+)g(+---------------)o(--)o(--)o(--+)64 1409 y(|)43 +b(Programm)d(Code)i(|->|)g(Java)g(Compiler)e(\(java.exe\))f(|->|)j +(Bytecode)e(\(01010011\))g(|)64 1509 y(+--------------)o(-+)81 +b(+--------------)o(--)o(---)o(--)o(--)o(---)o(+)g(+---------------)o +(--)o(--)o(--+)2199 1609 y(|)915 b(|)2199 1708 y(V)g(V)1850 +1808 y(+--------------+)255 b(+--------------+)1850 1908 +y(|)43 b(Ineterpreter)c(|)261 b(|)43 b(Browser/)215 b(|)1850 +2007 y(|)43 b(\(java.exe\))127 b(|)261 b(|)43 b(Appletviewer)c(|)1850 +2107 y(+--------------+)255 b(+--------------+)20 2306 +y(javac.exe)40 b(progammcode.jav)o(a)e(->)k(programmcode.clas)o(s)342 +b(Programm)41 b(compilieren)20 2406 y(java.exe)f(programmcode)1520 +b(Programm)41 b(ausf\374hren)20 2505 y(appletviewer.exe)1736 +b(Applets)41 b(ausf\374hren)20 2657 y +SDict begin H.S end + 20 2657 a 20 2657 +a +SDict begin 12 H.A end + 20 2657 a 20 2657 a +SDict begin [/View [/XYZ H.V]/Dest (section.19.2) cvn /DEST pdfmark +end + 20 2657 a 133 x Fe(19.2.)68 b(Sp)l(rache)45 +b(und)g(Syntax)g(von)g(Java)20 2897 y +SDict begin H.S end + 20 2897 a 20 2897 +a +SDict begin 12 H.A end + 20 2897 a 20 2897 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.19.2.1) cvn /DEST pdfmark +end + 20 2897 a 95 x Fi(19.2.1.)57 b(K)m(ommentra)m(re) +20 3149 y Fd(/*)261 b(Kommentar-Anfan)o(g)20 3248 y(*/)g +(Kommentar-Ende)20 3348 y(//)g(Einzeiliger)39 b(Kommentar)g(ohne)j +(Ende)20 3547 y(;)305 b(Anweisung)39 b(abschlie\377en)20 +3690 y +SDict begin H.S end + 20 3690 a 20 3690 a +SDict begin 12 H.A end + 20 3690 a 20 3690 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.19.2.2) cvn /DEST pdfmark +end + 20 3690 +a 100 x Fi(19.2.2.)57 b(Datent)m(yp)s(en)20 3947 y Fd(Typ)217 +b(Inhalt)782 b(Standdartwert)125 b(Gr\366\377e)j(Wertebereich)20 +4046 y(boolean)41 b(True)h(oder)f(False)391 b(False)520 +b(1)43 b(Bit)86 b(-)20 4146 y(char)173 b(Unicode)40 b(Zeichen)390 +b(0000)521 b(16)42 b(Bit)173 b(0000)42 b(bis)h(FFFF)f(\(Hex.\))20 +4245 y(byte)173 b(Ganzzahl)40 b(mit)i(Vorzeichen)e(0)696 +b(8)43 b(Bit)173 b(-256)42 b(bis)h(255)20 4345 y(short)129 +b(Ganzzahl)40 b(mit)i(Vorzeichen)e(0)653 b(16)42 b(Bit)86 +b(-32768)41 b(bis)i(32767)20 4445 y(int)217 b(Ganzzahl)40 +b(mit)i(Vorzeichen)e(0)653 b(32)42 b(Bit)130 b(-2^31)41 +b(bis)i(2^31-1)20 4544 y(long)173 b(Ganzzahl)40 b(mit)i(Vorzeichen)e(0) +653 b(64)42 b(Bit)130 b(-2^63)41 b(bis)i(2^63-1)20 4644 +y(float)129 b(Kommazahl)650 b(0.0)565 b(32)42 b(Bit)86 +b(-)20 4744 y(double)f(Kommazahl)650 b(0.0)565 b(64)42 +b(Bit)86 b(-)2996 5092 y Fk(135)p eop end +%%Page: 136 136 +TeXDict begin 136 135 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 +a 632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.136) cvn /DEST pdfmark end + 632 -5 a 640 128 a Fh(19.)41 +b(Ja)n(v)-5 b(a)640 277 y +SDict begin H.S end + 640 277 a 640 277 a +SDict begin 12 H.A end + 640 277 +a 640 277 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.19.2.3) cvn /DEST pdfmark +end + 640 277 a 83 x Fi(19.2.3.)57 b(V)m(a)m(riablen)640 +416 y +SDict begin H.S end + 640 416 a 640 416 a +SDict begin 12 H.A end + 640 416 a 640 416 a +SDict begin [/View [/XYZ H.V]/Dest (subsubsection*.31) cvn /DEST pdfmark +end + 640 416 +a 640 519 a +SDict begin H.S end + 640 519 a 640 519 a +SDict begin 12 H.A end + 640 519 a 640 519 a +SDict begin [/View [/XYZ H.V]/Dest (section*.30) cvn /DEST pdfmark +end + 640 +519 a Fj(V)m(a)m(riable)31 b(dekla)m(rieren)640 679 y +Fd(boolean)41 b(myBool;)640 778 y(int)h(x)i(=)f(32;)640 +878 y(double)e(y)i(=)g(3.2;)640 978 y(char)f(buchstabe;)640 +1120 y +SDict begin H.S end + 640 1120 a 640 1120 a +SDict begin 12 H.A end + 640 1120 a 640 1120 a +SDict begin [/View [/XYZ H.V]/Dest (subsubsection*.33) cvn /DEST pdfmark +end + 640 +1120 a 640 1211 a +SDict begin H.S end + 640 1211 a 640 1211 a +SDict begin 12 H.A end + 640 1211 a 640 +1211 a +SDict begin [/View [/XYZ H.V]/Dest (section*.32) cvn /DEST pdfmark +end + 640 1211 a Fj(V)m(a)m(riab)s(eln)30 b(ansp)m(rechen)640 +1370 y Fd(this.buchstabe;)386 b(bezieht)41 b(sich)g(auf)i(die)f +(aktuelle)e(Klasse)640 1521 y +SDict begin H.S end + 640 1521 a 640 1521 a +SDict begin 12 H.A end + 640 +1521 a 640 1521 a +SDict begin [/View [/XYZ H.V]/Dest (section.19.3) cvn /DEST pdfmark +end + 640 1521 a 141 x Fe(19.3.)68 b(P)l(ak)l(ete)45 +b(und)f(V)l(erzeichnisstrukturen)640 1747 y +SDict begin H.S end + 640 1747 +a 640 1747 a +SDict begin 12 H.A end + 640 1747 a 640 1747 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.19.3.1) cvn /DEST pdfmark +end + 640 1747 a 120 x Fi(19.3.1.)57 +b(Sichtba)m(rk)m(eit)35 b(und)i(Zugri\033srechte)g(von)g(Klassen)g(und) +1014 1983 y(Metho)s(den)640 2143 y Fd(public)782 b(Klasse,)41 +b(Methode)f(oder)i(Variable)e(die)j(\374berall)d(sichtbar)g(ist)640 +2242 y(protected)650 b(Methode)41 b(oder)g(Variable)g(die)h(nur)g(im)h +(eigenen)e(Paket)g(und)1686 2342 y(abgeleiteten)d(Klassen)j(sichtbar)f +(ist)640 2441 y(default)738 b(Klasse,)41 b(Methode)f(oder)i(Variable)e +(die)j(Sichtbarkei)38 b(beschr\344ngt)1686 2541 y(sich)k(auf)g(das)g +(eigen)g(Paket)640 2641 y(private)f(protected)301 b(Methode)41 +b(oder)g(Variable)g(die)h(nur)g(in)h(abgeleiteten)38 +b(Klassen)1686 2740 y(sichtbar)i(ist)640 2840 y(private)738 +b(Methode)41 b(oder)g(Variable)g(die)h(nur)g(in)h(der)f(eigenen)f +(Klasse)1686 2940 y(sichtbar)f(ist)640 3139 y(Zugriff)999 +b(public)41 b(protected)f(default)h(private)f(protected)g(private)640 +3238 y(-------)999 b(------)41 b(---------)f(-------)h(---------------) +o(--)c(-------)640 3338 y(Zugriff)k(...)640 3438 y(...)h(im)h(selben)e +(Paket)477 b(Ja)217 b(Ja)348 b(Ja)261 b(Nein)608 b(Nein)640 +3537 y(...)42 b(von)h(anderen)d(Paketen)302 b(Ja)217 +b(Nein)260 b(Nein)173 b(Nein)608 b(Nein)640 3637 y(Vererbt)41 +b(...)640 3737 y(...)h(Klassen)f(im)i(selben)e(Paket)128 +b(Ja)217 b(Ja)348 b(Ja)261 b(Ja)696 b(Nein)640 3836 y(...)42 +b(Klassen)f(an)i(andere)e(Pakete)84 b(Ja)217 b(Ja)348 +b(Nein)173 b(Ja)696 b(Nein)640 3967 y +SDict begin H.S end + 640 3967 a 640 +3967 a +SDict begin 12 H.A end + 640 3967 a 640 3967 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.19.3.2) cvn /DEST pdfmark +end + 640 3967 a 119 x Fi(19.3.2.)57 +b(Klassen)640 4245 y Fd(class)42 b(Klasse)520 b(Klassendeklarati)o(on) +640 4345 y({)989 4445 y(...)640 4544 y(})640 4744 y(public)41 +b(class)h(Klasse)215 b(\366ffendliche)39 b(Klassendeklarati)o(on)640 +5092 y Fk(136)p eop end +%%Page: 137 137 +TeXDict begin 137 136 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a +12 -5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.137) cvn /DEST pdfmark end + 12 -5 a 1686 128 a Fh(19.3.)40 +b(P)n(ak)n(ete)27 b(und)h(V)-7 b(erzeic)n(hnisstrukturen)20 +360 y Fd({)1002 b(-ohne)41 b(public)g(ist)i(die)f(Klasse)f(automatisch) +e("privat")369 460 y(...)20 559 y(})20 758 y(package)i(Paketklasse;)169 +b(Klassen)41 b(zusammenfassen)c(d.h.)42 b(Paketklasse.Klas)o(se)20 +858 y(public)f(class)h(Klasse)20 958 y({)369 1057 y(...)20 +1157 y(})20 1356 y(package)f(Paket.Paketklas)o(se)299 +b(Oberklassen)38 b(zusammenfassen)g(d.h.)1415 1456 y(Paket.Paketklas)o +(se)o(.K)o(las)o(se)20 1580 y +SDict begin H.S end + 20 1580 a 20 1580 a +SDict begin 12 H.A end + 20 +1580 a 20 1580 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.19.3.3) cvn /DEST pdfmark +end + 20 1580 a 118 x Fi(19.3.3.)57 b(K)m(onstrukto)m(ren)36 +b(und)h(Destrukto)m(ren)20 1854 y Fd(class)42 b(Klasse)869 +b(Konstruktor)20 1954 y({)1351 b(-----------)369 2054 +y(public)41 b(Klasse\(\))389 b(Methode)40 b(die)i(beim)g(Erschaffen)e +(eines)h(neuen)h(Objektes)369 2153 y({)1002 b(automatisch)38 +b(aufgerufen)i(wird)717 2253 y(...)369 2353 y(})1350 +b(Destruktor)1763 2452 y(----------)369 2552 y(protected)39 +b(void)j(finalize\(\))301 b(Methode)41 b(die)h(beim)g(L\366schen)f +(eines)g(alten)369 2651 y({)1350 b(Objektes)40 b(automatisch)f +(aufgerufen)h(wird)717 2751 y(...)369 2851 y(})20 2950 +y(})20 3081 y +SDict begin H.S end + 20 3081 a 20 3081 a +SDict begin 12 H.A end + 20 3081 a 20 3081 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.19.3.4) cvn /DEST pdfmark +end + +20 3081 a 111 x Fi(19.3.4.)57 b(Metho)s(den)36 b(\374b)s(erladen)20 +3349 y Fd(class)42 b(Klasse)20 3448 y({)369 3548 y(Methode\(\))650 +b(Dieselbe)40 b(Metode)h(mehrmals)f(mit)i(unterschielichen)369 +3648 y({)1002 b(Parametern)39 b(schaffen)717 3747 y(...)369 +3847 y(})369 3947 y(Methode\(int)g(var\))347 b(Dieselbe)40 +b(Metode)h(mehrmals)f(mit)i(unterschielichen)369 4046 +y({)1002 b(Parametern)39 b(schaffen)717 4146 y(...)369 +4245 y(})20 4345 y(})20 4476 y +SDict begin H.S end + 20 4476 a 20 4476 a +SDict begin 12 H.A end + 20 +4476 a 20 4476 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.19.3.5) cvn /DEST pdfmark +end + 20 4476 a 111 x Fi(19.3.5.)57 b(Objekte)20 +4744 y Fd(objekt)41 b(Neuobjekt)f(=)j(new)f(objekt\(\);)345 +b(Neues)42 b(Objekt)f(Neuobjekt)e(von)k(der)f(Klasse)2996 +5092 y Fk(137)p eop end +%%Page: 138 138 +TeXDict begin 138 137 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 +a 632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.138) cvn /DEST pdfmark end + 632 -5 a 640 128 a Fh(19.)41 +b(Ja)n(v)-5 b(a)2383 360 y Fd(objekt)41 b(erstellen)640 +531 y +SDict begin H.S end + 640 531 a 640 531 a +SDict begin 12 H.A end + 640 531 a 640 531 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.19.3.6) cvn /DEST pdfmark +end + 640 531 +a 107 x Fi(19.3.6.)57 b(V)m(ererbung)640 807 y Fd(public)41 +b(class)h(NeuKlasse)d(extends)i(Klasse)g({})348 b(neue)42 +b(Klasse)f(NeuKlasse)e(herstellen)2732 906 y(alle)j(sichtbaren)d +(Eigenschaften)2732 1006 y(und)j(Methoden)e(werden)h(\374bernommen)640 +1159 y +SDict begin H.S end + 640 1159 a 640 1159 a +SDict begin 12 H.A end + 640 1159 a 640 1159 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.19.3.7) cvn /DEST pdfmark +end + 640 +1159 a 125 x Fi(19.3.7.)57 b(Schnittstellen)640 1453 +y Fd(public)41 b(interface)f(Klasse)h({)653 b(Schnittstelle)38 +b(erschaffen)989 1553 y(Methodenkopf\(\);)989 1652 y(Variablen;)640 +1752 y(})640 1951 y(class)k(NeuKlasse)d(extends)i(Klasse)g(implements)e +(IntKlasse)214 b(neue)42 b(Klasse)f(NeuKlasse)3080 2051 +y(herstellen)2732 2150 y(alle)h(sichtbaren)d(Eigenschaften)2732 +2250 y(und)j(Methoden)e(werden)h(\374bernommen)2732 2350 +y(und)h(die)g(Schnittstelle)c(IntKlasse)2732 2449 y(hinzuf\374gen)640 +2629 y +SDict begin H.S end + 640 2629 a 640 2629 a +SDict begin 12 H.A end + 640 2629 a 640 2629 a +SDict begin [/View [/XYZ H.V]/Dest (section.19.4) cvn /DEST pdfmark +end + 640 +2629 a 140 x Fe(19.4.)68 b(Elementa)l(re)45 b(Syntax)g(von)g(Java)640 +2882 y +SDict begin H.S end + 640 2882 a 640 2882 a +SDict begin 12 H.A end + 640 2882 a 640 2882 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.19.4.1) cvn /DEST pdfmark +end + 640 +2882 a 101 x Fi(19.4.1.)57 b(Op)s(errato)m(ren)640 3152 +y Fd(x)43 b(=)g(10;)391 b(Das)43 b(Gleichheitszeic)o(he)o(n)38 +b(weist)j(immer)h(den)g(rechten)e(Wert)i(dem)h(auf)1337 +3252 y(der)g(linken)e(Seite)g(zu)640 3405 y +SDict begin H.S end + 640 3405 +a 640 3405 a +SDict begin 12 H.A end + 640 3405 a 640 3405 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.19.4.2) cvn /DEST pdfmark +end + 640 3405 a 125 x Fi(19.4.2.)57 +b(V)m(erkn\374pfungsop)s(erato)m(ren)640 3699 y Fd(Operator)345 +b(Bedeutung)302 b(Beispiel)640 3799 y(--------)345 b(---------)302 +b(--------)640 3898 y(+)653 b(Addition)346 b(7)43 b(=)g(3)g(+)g(4;)640 +3998 y(-)653 b(Subtraktion)214 b(1)43 b(=)g(7)g(-)g(6;)640 +4097 y(*)653 b(Multiplikation)82 b(6)43 b(=)g(2)g(*)g(3;)640 +4197 y(/)653 b(Division)346 b(3)43 b(=)g(9)g(/)g(3;)640 +4297 y(\045)653 b(Modulo\(Rest\))170 b(1)43 b(=)g(9)g(\045)g(4;)640 +4461 y +SDict begin H.S end + 640 4461 a 640 4461 a +SDict begin 12 H.A end + 640 4461 a 640 4461 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.19.4.3) cvn /DEST pdfmark +end + 640 +4461 a 113 x Fi(19.4.3.)57 b(Inkrement-Op)s(erato)m(r)640 +4744 y Fd(x++;)521 b(x)44 b(=)f(x)g(+)g(1;)640 5092 y +Fk(138)p eop end +%%Page: 139 139 +TeXDict begin 139 138 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a +12 -5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.139) cvn /DEST pdfmark end + 12 -5 a 1873 128 a Fh(19.4.)40 +b(Elemen)n(tare)27 b(Syn)n(tax)g(v)n(on)g(Ja)n(v)-5 b(a)20 +277 y +SDict begin H.S end + 20 277 a 20 277 a +SDict begin 12 H.A end + 20 277 a 20 277 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.19.4.4) cvn /DEST pdfmark +end + 20 277 a 83 +x Fi(19.4.4.)57 b(Dekrement-Op)s(erato)m(r)20 513 y Fd(x--;)521 +b(x)43 b(=)h(x)f(-)g(1;)20 640 y +SDict begin H.S end + 20 640 a 20 640 a +SDict begin 12 H.A end + 20 +640 a 20 640 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.19.4.5) cvn /DEST pdfmark +end + 20 640 a 105 x Fi(19.4.5.)57 b(Arithmetische)36 +b(Zu)m(w)m(eisungsop)s(erato)m(ren)20 898 y Fd(Operator)345 +b(Beispiel)h(Bedeutung)20 998 y(--------)f(--------)h(---------)20 +1098 y(+=)609 b(x)43 b(+=)g(3;)392 b(x)43 b(=)g(x)g(+)g(3;)20 +1197 y(-=)609 b(x)43 b(-=)g(3;)392 b(x)43 b(=)g(x)g(-)g(3;)20 +1297 y(*=)609 b(x)43 b(*=)g(3;)392 b(x)43 b(=)g(x)g(*)g(3;)20 +1396 y(/=)609 b(x)43 b(/=)g(3;)392 b(x)43 b(=)g(x)g(/)g(3;)20 +1496 y(\045=)609 b(x)43 b(\045=)g(3;)392 b(x)43 b(=)g(x)g(\045)g(3;)20 +1623 y +SDict begin H.S end + 20 1623 a 20 1623 a +SDict begin 12 H.A end + 20 1623 a 20 1623 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.19.4.6) cvn /DEST pdfmark +end + 20 1623 +a 105 x Fi(19.4.6.)57 b(Bedingungen)35 b(und)h(Entscheidungen)20 +1881 y Fd(if\(Bedingung\))i({)392 b(wenn)42 b(Bedingung)e(wahr)h(dann)h +(Anweisungen)369 1981 y(Anweisungen;)169 b(if)43 b(\()g(x)g(!=)g(y)g +(\))g({)g(z++;)f(})20 2080 y(})20 2280 y(Operator)345 +b(Beschreibung)20 2379 y(--------)g(------------)20 2479 +y(==)609 b(Gleichheit)20 2579 y(!=)g(Ungleichheit)20 +2678 y(<)653 b(kleiner)41 b(als)20 2778 y(>)653 b(gr\366\377er)41 +b(als)20 2877 y(<=)609 b(kleiner)41 b(gleich)20 2977 +y(>=)609 b(gr\366\377er)41 b(gleich)20 3111 y +SDict begin H.S end + 20 3111 +a 20 3111 a +SDict begin 12 H.A end + 20 3111 a 20 3111 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.19.4.7) cvn /DEST pdfmark +end + 20 3111 a 98 x Fi(19.4.7.)57 +b(if)37 b(-)g(else)g(-)h(Bedingungen)20 3362 y Fd(if\(Bedingung\))g({) +392 b(wenn)42 b(Bedingung)e(wahr)h(dann)h(Anweisungen1)d(sonst)i +(Anweisungen2)369 3462 y(Anweisungen1;)125 b(if)43 b(\()g(x)g(!=)g(y)g +(\))g({)g(z++;)f(})h(else)f({)h(z--;)f(})20 3561 y(})h(else)f({)369 +3661 y(Anweisungen2;)20 3761 y(})20 3883 y +SDict begin H.S end + 20 3883 a +20 3883 a +SDict begin 12 H.A end + 20 3883 a 20 3883 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.19.4.8) cvn /DEST pdfmark +end + 20 3883 a 110 x Fi(19.4.8.)57 +b(V)m(erschachtelte)36 b(Bedingungen)20 4146 y Fd(if\(Bedingung1\))i({) +697 b(wenn)41 b(Bedingung1)f(und)i(Bedingung2)d(dann)j(Anweisungen1)369 +4245 y(if\(Bedingung2\){)386 b(sonst)41 b(Anweisungen2)717 +4345 y(Anweisungen1;)126 b(if\()42 b(x)h(!=)g(y)g(\))g({)g(if\()f(a)i +(<)f(b)g(\){z++;})e(})i(else)f({)h(z--;)f(})369 4445 +y(})20 4544 y(})h(else)f({)369 4644 y(Anweisungen2)20 +4744 y(})2996 5092 y Fk(139)p eop end +%%Page: 140 140 +TeXDict begin 140 139 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 +a 632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.140) cvn /DEST pdfmark end + 632 -5 a 640 128 a Fh(19.)41 +b(Ja)n(v)-5 b(a)640 277 y +SDict begin H.S end + 640 277 a 640 277 a +SDict begin 12 H.A end + 640 277 +a 640 277 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.19.4.9) cvn /DEST pdfmark +end + 640 277 a 83 x Fi(19.4.9.)57 b(F)m(allunterscheidung)33 +b(mit)k(switch)g(-)h(case)640 516 y Fd(switch\(Ausdruck\))f({)958 +b(switch\(2\))40 b({)566 b(Route)41 b(2)j(also)989 616 +y(case)e(Wert1:)f(Anweisungen1;)648 b(case)42 b(1:)g(x++;)173 +b(x)43 b(=)g(x)g(-)h(1;)1337 716 y(break;)1479 b(break;)989 +815 y(case)42 b(Wert2:)f(Anweisungen2;)648 b(case)42 +b(2:)g(x--;)1337 915 y(break;)1479 b(break;)989 1015 +y(case)42 b(Wert3:)f(Anweisungen3;)299 b(})1337 1114 +y(break;)640 1214 y(})640 1353 y +SDict begin H.S end + 640 1353 a 640 1353 +a +SDict begin 12 H.A end + 640 1353 a 640 1353 a +SDict begin [/View [/XYZ H.V]/Dest (section.19.5) cvn /DEST pdfmark +end + 640 1353 a 145 x Fe(19.5.)68 +b(Schleifen)640 1581 y +SDict begin H.S end + 640 1581 a 640 1581 a +SDict begin 12 H.A end + 640 1581 +a 640 1581 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.19.5.1) cvn /DEST pdfmark +end + 640 1581 a 118 x Fi(19.5.1.)57 b(Die)36 +b(while)g(-)i(Schleife)640 1856 y Fd(while\(Bedingung\))f({)610 +b(int)42 b(x=0;)695 b(solange)41 b(Bedingung)f(wahr)989 +1955 y(Anweisungen;)518 b(while\(x<10\))38 b({)479 b(Anweisungen)640 +2055 y(})1699 b(x++;)2035 2155 y(})640 2285 y +SDict begin H.S end + 640 2285 +a 640 2285 a +SDict begin 12 H.A end + 640 2285 a 640 2285 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.19.5.2) cvn /DEST pdfmark +end + 640 2285 a 111 x Fi(19.5.2.)57 +b(Die)36 b(do)h(-)h(while)e(-)i(Schleife)640 2553 y Fd(do)43 +b({)1220 b(int)42 b(x=0;)695 b(Anweisungen)39 b(dann)j(solange)989 +2652 y(Anweisungen;)518 b(do)42 b({)871 b(Bedingung)40 +b(wahr)640 2752 y(})j(while\(Bedingung\);)908 b(x++;)521 +b(Anweisungen)2035 2852 y(})43 b(while\(x<10\);)640 2987 +y +SDict begin H.S end + 640 2987 a 640 2987 a +SDict begin 12 H.A end + 640 2987 a 640 2987 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.19.5.3) cvn /DEST pdfmark +end + 640 2987 +a 106 x Fi(19.5.3.)57 b(Die)36 b(fo)m(r)i(-)f(Schleife)640 +3250 y Fd(for\(Initialisier)o(ung)o(;)g(Bedingung;)j(Schleifenschrit)o +(t\))d({)217 b(solange)41 b(Bedingung)f(wahr)989 3350 +y(Anweisungen;)1563 b(Anweisungen)640 3449 y(})1351 b(for\(x=0;x<10;x+) +o(+\))37 b({)2383 3549 y(y++;)2035 3648 y(})640 3779 +y +SDict begin H.S end + 640 3779 a 640 3779 a +SDict begin 12 H.A end + 640 3779 a 640 3779 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.19.5.4) cvn /DEST pdfmark +end + 640 3779 +a 111 x Fi(19.5.4.)57 b(Schleifen)35 b(mit)j(b)m(reak)e(verlassen)640 +4047 y Fd(for\(x=0;x<10;x++)o(\))i({)566 b(Die)42 b(Schleife)e(wird)i +(vor)g(dem)h(y++)f(verlassen)989 4146 y(break;)989 4246 +y(y++;)640 4345 y(})640 4476 y +SDict begin H.S end + 640 4476 a 640 4476 a +SDict begin 12 H.A end + +640 4476 a 640 4476 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.19.5.5) cvn /DEST pdfmark +end + 640 4476 a 111 x Fi(19.5.5.)57 +b(Schleife)36 b(mit)h(continue)f(wiederholen)640 4744 +y Fd(for\(x=0;x<10;x++)o(\))i({)566 b(Die)42 b(Schleife)e(wird)i(vor)g +(dem)h(y++)f(wiederholt)640 5092 y Fk(140)p eop end +%%Page: 141 141 +TeXDict begin 141 140 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a +12 -5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.141) cvn /DEST pdfmark end + 12 -5 a 2098 128 a Fh(19.6.)40 +b(K)n(omplexe)26 b(Daten)n(t)n(yp)r(en)369 360 y Fd(continue;)369 +460 y(y++;)20 559 y(})20 711 y +SDict begin H.S end + 20 711 a 20 711 a +SDict begin 12 H.A end + 20 711 +a 20 711 a +SDict begin [/View [/XYZ H.V]/Dest (section.19.6) cvn /DEST pdfmark +end + 20 711 a 147 x Fe(19.6.)68 b(K)l(omplexe)44 +b(Datent)l(yp)t(en)20 967 y +SDict begin H.S end + 20 967 a 20 967 a +SDict begin 12 H.A end + 20 967 +a 20 967 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.19.6.1) cvn /DEST pdfmark +end + 20 967 a 98 x Fi(19.6.1.)57 b(Arra)m(ys)20 +1226 y Fd(int)42 b(liste[])f(=)i(new)f(int[10];)259 b(schafft)40 +b(ein)i(Array)g(dass)g(zehn)g(verschiedene)c(int-)1415 +1326 y(Werte)j(speichern)f(kann)20 1426 y(int)i(Array[][])e(=)j(new)g +(int[3][3];)83 b(schafft)40 b(ein)i(zweidimensionales)37 +b(Array)20 1525 y(int)42 b(liste[])f(=)i({3,)f(5,)h(7};)348 +b(schaft)41 b(ein)h(Array)f(mit)i(3)g(Werten)20 1625 +y(liste[0])d(=)j(Wert;)696 b(Wert)41 b(des)i(1.)f(Elements)f(zuweisen) +20 1725 y(liste[0][0])e(=)k(Wert;)565 b(Wert)41 b(des)i(1.)f(Elements)f +(zuweisen)20 1824 y(Wert)h(=)h(liste[0];)694 b(Wert)41 +b(des)i(1.)f(Elements)f(abrufen)20 1924 y(Wert)h(=)h(liste[0][0];)562 +b(Wert)41 b(des)i(1.)f(Elements)f(abrufen)20 2023 y(liste.length)867 +b(enth\344lt)40 b(die)i(L\344nge)g(des)g(Arrays)f(liste)20 +2187 y +SDict begin H.S end + 20 2187 a 20 2187 a +SDict begin 12 H.A end + 20 2187 a 20 2187 a +SDict begin [/View [/XYZ H.V]/Dest (section.19.7) cvn /DEST pdfmark +end + 20 2187 +a 135 x Fe(19.7.)68 b(Die)46 b(Anw)l(eisung)e(imp)t(o)l(rt)20 +2512 y Fd(import)d(haus.wand.stein;)386 b(import)41 b(erlaubt)f(es)j +(Klassen)d(im)j(Sourcecode)20 2612 y(getAnzahl\(\);)867 +b(\374ber)41 b(einen)h(gek\374rzten)e(Namen)h(anzuspechen)1415 +2712 y(haus.wand.stein)o(.g)o(et)o(Anz)o(ah)o(l\()o(\))d(->)k +(getAnzahl\(\))20 2911 y(import)f(java.lang.*;)562 b(importiert)39 +b(alle)j(Bestandteile)c(ins)43 b(Programm)20 3074 y +SDict begin H.S end + 20 +3074 a 20 3074 a +SDict begin 12 H.A end + 20 3074 a 20 3074 a +SDict begin [/View [/XYZ H.V]/Dest (section.19.8) cvn /DEST pdfmark +end + 20 3074 a 136 x +Fe(19.8.)68 b(Java)45 b(eigene)g(Klassen)20 3319 y +SDict begin H.S end + 20 +3319 a 20 3319 a +SDict begin 12 H.A end + 20 3319 a 20 3319 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.19.8.1) cvn /DEST pdfmark +end + 20 3319 a 97 x Fi(19.8.1.)57 +b(Die)36 b(Klasse)g(Math)20 3578 y Fd(Math.*)1131 b(bietet)41 +b(mathematische)d(Funktionen)20 3678 y(Math.E)1131 b(Eulersche)39 +b(Zahl)20 3777 y(Math.PI)1087 b(PI)20 3877 y(Math.random\(\))823 +b(Zufallszahl)38 b(zwischen)j(0)i(und)f(1)20 3977 y(Math.round\(\))867 +b(rundet)41 b(zu)h(Ganzzahlen)20 4128 y +SDict begin H.S end + 20 4128 a 20 +4128 a +SDict begin 12 H.A end + 20 4128 a 20 4128 a +SDict begin [/View [/XYZ H.V]/Dest (section.19.9) cvn /DEST pdfmark +end + 20 4128 a 147 x Fe(19.9.)68 +b(Die)46 b(Klasse)f(Object)20 4385 y +SDict begin H.S end + 20 4385 a 20 4385 +a +SDict begin 12 H.A end + 20 4385 a 20 4385 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.19.9.1) cvn /DEST pdfmark +end + 20 4385 a 97 x Fi(19.9.1.)57 b(Die)36 +b(Klasse)g(Object)20 4644 y Fd(getClass\(\))955 b(liefert)40 +b(die)i(Klasse)f(eines)h(Objektes)e(zur\374ck)20 4744 +y(equals\(\))1043 b(vergleicht)39 b(zwei)j(Objekte)e(gibt)i(true)g +(oder)g(false)2996 5092 y Fk(141)p eop end +%%Page: 142 142 +TeXDict begin 142 141 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 +a 632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.142) cvn /DEST pdfmark end + 632 -5 a 640 128 a Fh(19.)41 +b(Ja)n(v)-5 b(a)640 277 y +SDict begin H.S end + 640 277 a 640 277 a +SDict begin 12 H.A end + 640 277 +a 640 277 a +SDict begin [/View [/XYZ H.V]/Dest (section.19.10) cvn /DEST pdfmark +end + 640 277 a 85 x Fe(19.10.)68 b(Die)46 b(Klasse)f(Runtime)640 +546 y Fd(Um)e(diese)e(Klasse)g(zu)i(nutzen,muss)c(mit)j(getRuntime\(\)) +d(erst)j(ein)g(Objekt)f(erstellt)f(werden!)640 646 y(Runtime)h +(mySystem)f(=)j(Runtime.getRunti)o(me)o(\(\);)342 b(Objekt)41 +b(Runtime)f(erstellen)640 845 y(freeMemory\(\))867 b(freier)41 +b(Speicher)640 945 y(totalMemory\(\))823 b(gesamter)40 +b(Speicher)640 1044 y(exit\(0\))1087 b(Programm)40 b(sofort)h(mit)h +(Wert)g(verlassen)640 1144 y(exec\(\))1131 b(Systemprogramme)37 +b(starten)j(\(s.)j(Exceptions\))640 1294 y +SDict begin H.S end + 640 1294 a +640 1294 a +SDict begin 12 H.A end + 640 1294 a 640 1294 a +SDict begin [/View [/XYZ H.V]/Dest (section.19.11) cvn /DEST pdfmark +end + 640 1294 a 133 x Fe(19.11.)68 +b(Die)46 b(Klasse)f(String)640 1611 y Fd(String)c(s)i(=)g("Hallo")e(+)i +(")g(Du)g(!";)130 b(Strings)40 b(zusammenfassen)640 1711 +y(charAt\(\))1043 b(gibt)41 b(einen)h(Buchstaben)d(aus)k(dem)f(String)f +(zur\374ck)640 1811 y(indexOf\(\))999 b(Position)40 b(von)i +(Buchstaben/kette)o(n)37 b(feststellen)640 1910 y(substring\(\))911 +b(String)41 b(auseinanderschn)o(ei)o(den)640 2010 y(lenght\(\))1043 +b(L\344nge)41 b(eines)g(Strings)g(bestimmen)640 2160 +y +SDict begin H.S end + 640 2160 a 640 2160 a +SDict begin 12 H.A end + 640 2160 a 640 2160 a +SDict begin [/View [/XYZ H.V]/Dest (section.19.12) cvn /DEST pdfmark +end + 640 2160 +a 132 x Fe(19.12.)68 b(Die)46 b(Klasse)f(Stringbu\033er)640 +2399 y +SDict begin H.S end + 640 2399 a 640 2399 a +SDict begin 12 H.A end + 640 2399 a 640 2399 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.19.12.1) cvn /DEST pdfmark +end + 640 +2399 a 95 x Fi(19.12.1.)57 b(Die)36 b(Klasse)h(Stringbu\033er)640 +2650 y Fk(Um)28 b(diese)g(Klasse)e(zu)h(n)n(utzen,)h(m)n(uss)f(erst)g +(ein)h(Ob)5 b(jekt)27 b(erstellt)h(w)n(erden!)640 2822 +y Fd(Stringbuffer)39 b(buffer)i(=)i(newStringbuffer)o(\("")o(\);)255 +b(Objekt)41 b(Stringbuffer)d(erstellen)640 3021 y(setCharAt\(\))911 +b(\344nderrung)39 b(eines)j(bestimmten)d(Buchstaben)g(im)k(String)640 +3121 y(delete\(\))1043 b(l\366scht)41 b(Teile)g(aus)h(dem)h(String)640 +3220 y(replace\(\))999 b(ersetzt)40 b(Teile)i(im)g(String)640 +3320 y(insert\(\))1043 b(setzt)41 b(Teile)g(im)i(String)e(ein)640 +3470 y +SDict begin H.S end + 640 3470 a 640 3470 a +SDict begin 12 H.A end + 640 3470 a 640 3470 a +SDict begin [/View [/XYZ H.V]/Dest (section.19.13) cvn /DEST pdfmark +end + 640 +3470 a 133 x Fe(19.13.)68 b(Die)46 b(Klasse)f(System)640 +3787 y Fk(Standardeingab)r(e)26 b(-)i(in,)g(Standardausgab)r(e)d(-)j +(out,)f(F)-7 b(ehlerausgab)r(e)26 b(-)i(err)640 3977 +y Fd(System.out.print)o(ln\()o("T)o(ex)o(t"\))255 b(Text)41 +b(ausgeben)640 4177 y(byte[])g(b)i(=)g(new)g(byte[80];)640 +4276 y(System.in.read\(b)o(\);)604 b(Einlesen)40 b(von)i(Daten)640 +4426 y +SDict begin H.S end + 640 4426 a 640 4426 a +SDict begin 12 H.A end + 640 4426 a 640 4426 a +SDict begin [/View [/XYZ H.V]/Dest (section.19.14) cvn /DEST pdfmark +end + 640 +4426 a 133 x Fe(19.14.)68 b(Das)45 b(P)l(ak)l(et)g(java.util)640 +4744 y Fd(import)c(java.util.*;)562 b(Paket)41 b(einbinden)640 +5092 y Fk(142)p eop end +%%Page: 143 143 +TeXDict begin 143 142 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a +12 -5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.143) cvn /DEST pdfmark end + 12 -5 a 1952 128 a Fh(19.15.)39 +b(Ausnahmen)28 b(\(Exceptions\))20 277 y +SDict begin H.S end + 20 277 a 20 +277 a +SDict begin 12 H.A end + 20 277 a 20 277 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.19.14.1) cvn /DEST pdfmark +end + 20 277 a 83 x Fi(19.14.1.)57 +b(Die)36 b(Klasse)g(Date)20 515 y Fd(Date)42 b(myDate)f(=)i(new)f +(Date\(\);)303 b(Objekt)41 b(Date)g(erstellen)20 715 +y(toString\(\))955 b(Datum)41 b(in)i(einen)e(String)g(umwandeln)20 +814 y(getTime\(\))999 b(UNIX-Timestamp,)37 b(der)42 b(die)g(Sekunden)f +(seit)g(dem)1415 914 y(1.1.1970)f(ausgibt)20 1013 y(before\(\))1043 +b(vergleicht)39 b(das)j(Datumsobjekt)d(od)j(es)h(davor)f(ist)20 +1113 y(after\(\))1087 b(vergleicht)39 b(das)j(Datumsobjekt)d(od)j(es)h +(danach)e(ist)103 1300 y Fk(Erw)n(eiterte)c(F)-7 b(unktionen)38 +b(rund)f(um)h(das)e(Datum)i(gibt)g(es)f(in)g(der)g(Klasse)f(Calendar)g +(bzw.)20 1400 y(DateF)-7 b(ormat)27 b(in)h(der)f(Ja)n(v)-5 +b(a-API)20 1521 y +SDict begin H.S end + 20 1521 a 20 1521 a +SDict begin 12 H.A end + 20 1521 a 20 1521 +a +SDict begin [/View [/XYZ H.V]/Dest (subsection.19.14.2) cvn /DEST pdfmark +end + 20 1521 a 117 x Fi(19.14.2.)57 b(Die)36 b(Klasse)g(Random)20 +1793 y Fd(Random)41 b(zz)i(=)g(new)f(Random\(\);)302 +b(Objekt)41 b(Random)g(erstellen)20 1993 y(Methode)389 +b(Bereich)738 b(Typ)20 2092 y(-------)389 b(-------)738 +b(---)20 2192 y(nextInt\(\))301 b(-2^31)42 b(bis)g(2^31-1)346 +b(int)20 2292 y(nextLong\(\))257 b(-2^63)42 b(bis)g(2^63-1)346 +b(long)20 2391 y(nextFloat\(\))213 b(0.0)43 b(bis)f(1.0)565 +b(float)20 2491 y(nextDouble\(\))169 b(0.0)43 b(bis)f(1.0)565 +b(double)20 2690 y(nextGaussian\(\))430 b(gibt)42 b(eine)g(Zufallszahl) +d(zur\374ck,)h(die)i(nach)g(dem)h(Gau\377-)1066 2790 +y(Verfahren)d(ermittelt)f(wurde)20 2911 y +SDict begin H.S end + 20 2911 a 20 +2911 a +SDict begin 12 H.A end + 20 2911 a 20 2911 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.19.14.3) cvn /DEST pdfmark +end + 20 2911 a 117 x Fi(19.14.3.)57 +b(Die)36 b(Klasse)g(Stack)20 3183 y Fd(Stack)42 b(myStack)e(=)j(new)g +(Stack\(\);)171 b(Objekt)41 b(Stack)g(erstellen)20 3383 +y(push\(\))1131 b(legt)41 b(ein)i(Objekt)e(auf)h(dem)g(Stack)g(ab)20 +3482 y(pop\(\))1175 b(holt)41 b(das)i(oberste)d(Objekt)h(vom)i(Stack)e +(und)h(l\366scht)f(es)20 3582 y(peek\(\))1131 b(holt)41 +b(das)i(oberste)d(Objekt)h(vom)i(Stack)20 3730 y +SDict begin H.S end + 20 3730 +a 20 3730 a +SDict begin 12 H.A end + 20 3730 a 20 3730 a +SDict begin [/View [/XYZ H.V]/Dest (section.19.15) cvn /DEST pdfmark +end + 20 3730 a 132 x Fe(19.15.)68 +b(Ausnahmen)43 b(\(Exceptions\))20 4046 y Fd(import)e(java.io.*;)20 +4146 y(public)g(class)h(trycatchfinally)37 b({)107 4245 +y(public)k(static)g(void)h(main\(String)d(args[]\))i({)194 +4345 y(Runtime)g(mySystem)f(=)j(Runtime.getRuntim)o(e\()o(\);)168 +b(//Objekt)40 b(Runtime)h(erstellen)194 4445 y(try{)1742 +b(//unsichere)39 b(Anweisungen)282 4544 y(mySystem.exec\(")o(xa)o(os)o +("\);)194 4644 y(})44 b(catch\(IOExcepti)o(on)37 b(e\))43 +b({)871 b(//Fehlerbehandl)o(ung)282 4744 y(System.err.prin)o(tl)o(n\()o +("Es)37 b(ist)42 b(ein)g(Fehler)f(aufgetreten:)e(")k(+)g(e\);)2996 +5092 y Fk(143)p eop end +%%Page: 144 144 +TeXDict begin 144 143 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 +a 632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.144) cvn /DEST pdfmark end + 632 -5 a 640 128 a Fh(19.)41 +b(Ja)n(v)-5 b(a)814 360 y Fd(})44 b(finally)c({)1089 +b(//Anweisungen)38 b(werden)j(immer)h(ausgef\374hrt)902 +460 y(System.out.prin)o(tl)o(n\(")o(Kr)o(it)o(isc)o(he)o(r)37 +b(Bereich)k(wurde)h(ausgef\374hrt!"\);)814 559 y(})727 +659 y(})640 758 y(})640 904 y +SDict begin H.S end + 640 904 a 640 904 a +SDict begin 12 H.A end + 640 +904 a 640 904 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.19.15.1) cvn /DEST pdfmark +end + 640 904 a 114 x Fi(19.15.1.)57 b(Eigene)36 +b(Ausnahme)f(erzeugen)i(\(thro)m(w\))640 1181 y Fd(Methode\(int)i +(zahl\))j({)989 1281 y(if\(zahl<0\))d({)1337 1381 y(throw\(new)h +(Exception\("Fehle)o(r!)o("\)\))o(;)989 1480 y(})j(elese)e({)1337 +1580 y(zahl++;)989 1679 y(})640 1779 y(})640 1933 y +SDict begin H.S end + 640 +1933 a 640 1933 a +SDict begin 12 H.A end + 640 1933 a 640 1933 a +SDict begin [/View [/XYZ H.V]/Dest (section.19.16) cvn /DEST pdfmark +end + 640 1933 a 148 +x Fe(19.16.)68 b(Multitasking)44 b(mit)i(Threads)640 +2191 y +SDict begin H.S end + 640 2191 a 640 2191 a +SDict begin 12 H.A end + 640 2191 a 640 2191 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.19.16.1) cvn /DEST pdfmark +end + 640 +2191 a 98 x Fi(19.16.1.)57 b(Arb)s(eiten)36 b(mit)h(Threads)640 +2452 y Fd(java.lang)650 b(die)42 b(Klasse)f(Thread)g(ist)i(ein)f +(Bestandteil)d(des)j(Paketes)640 2651 y(public)f(class)h(Klasse)f +(implements)e(Runnable)h({})261 b(neue)42 b(Klasse)f(\374ber)h(die)2732 +2751 y(Schnittstelle)c(Runnable)i(erstellen)640 2950 +y(run\(\))1872 b(Methode)40 b(run\(\))i(\(Code)f(des)i(Threads\))2732 +3050 y(muss)f(\374berschrieben)c(werden)640 3249 y(Klasse)j(test)h(=)h +(new)g(Klasse\(\);)562 b(In)43 b(main\(\):)e(Objekt)g(der)h(eigenen)e +(Klasse)640 3349 y(test.start\(\);)1520 b(erstellen)40 +b(und)i(Startmethode)2732 3448 y(aufrufen)640 3648 y(public)f(void)h +(start\(\))f({)989 3747 y(Thread)g(myThread)f(=)j(new)f +(Thread\(this\);)213 b(Objekt)41 b(aus)h(der)g(Klasse)f(Thrad)2732 +3847 y(erstellen)f(und)i(deren)f(Konstruktor)2732 3947 +y(das)h(aktuelle)e(Objekt)h(als)2732 4046 y(parameter)f(\374bergeben) +989 4146 y(myThread.start\()o(\);)996 b(Thread)41 b(starten)989 +4245 y(...;)989 4345 y(myThread.stop\(\))o(;)1040 b(Thread)41 +b(beenden)640 4445 y(})640 4644 y(myThread.sleep\(x)o(\);)1301 +b(Thread)41 b(x)i(Milisekunden)38 b(pausieren)2732 4744 +y(muss)k(mit)g(Ausnahme)e(abgefangen)640 5092 y Fk(144)p +eop end +%%Page: 145 145 +TeXDict begin 145 144 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a +12 -5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.145) cvn /DEST pdfmark end + 12 -5 a 2587 128 a Fh(19.17.)40 +b(Applets)2112 360 y Fd(werden)h(InterruptedExce)o(pti)o(on)20 +460 y(myThread.suspend)o(\(\))o(;)1258 b(Thraed)41 b(anhalten)20 +559 y(myThread.resume\()o(\);)1301 b(Thread)41 b(wieder)g(starten)20 +659 y(myThread.destroy)o(\(\))o(;)1258 b(Thread)41 b +(zerst\366ren/anhal)o(ten)20 804 y +SDict begin H.S end + 20 804 a 20 804 a +SDict begin 12 H.A end + +20 804 a 20 804 a +SDict begin [/View [/XYZ H.V]/Dest (section.19.17) cvn /DEST pdfmark +end + 20 804 a 131 x Fe(19.17.)68 b(Applets)20 +1041 y +SDict begin H.S end + 20 1041 a 20 1041 a +SDict begin 12 H.A end + 20 1041 a 20 1041 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.19.17.1) cvn /DEST pdfmark +end + 20 1041 +a 93 x Fi(19.17.1.)57 b(Applets)36 b(in)h(eine)f(W)m(ebseite)h +(einbinden)20 1288 y Fd()107 1388 y()194 +1487 y(Mein)i(erstes)i(Applet)107 1587 +y()107 1687 y()194 1786 y()282 1886 y()282 1985 y()194 +2085 y()107 2185 y()20 2284 y()20 +2409 y +SDict begin H.S end + 20 2409 a 20 2409 a +SDict begin 12 H.A end + 20 2409 a 20 2409 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.19.17.2) cvn /DEST pdfmark +end + 20 2409 +a 110 x Fi(19.17.2.)57 b(Das)36 b(erste)i(Java)f(Applet)20 +2672 y Fd(import)k(java.applet.*;)20 2772 y(import)g(java.awt.*;)20 +2872 y(public)g(class)h(MyApplet)e(extends)g(Applet)h({)369 +2971 y(public)g(void)h(paint\(Graphics)37 b(g\))43 b({)717 +3071 y(g.drawString\("Mei)o(n)37 b(erstes)k(Applet)g(!",)i(20,)f(40\);) +369 3171 y(})20 3270 y(})20 3395 y +SDict begin H.S end + 20 3395 a 20 3395 +a +SDict begin 12 H.A end + 20 3395 a 20 3395 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.19.17.3) cvn /DEST pdfmark +end + 20 3395 a 109 x Fi(19.17.3.)57 +b(Die)36 b(Metho)s(den)h(eines)f(Applets)20 3658 y Fd(init\(\))433 +b(wird)42 b(automatisch)d(bei)j(der)h(Initialisierung)37 +b(des)42 b(Applets)f(aufgerufen)20 3758 y(start\(\))389 +b(wird)42 b(automatisch)d(aufgerufen,)g(wenn)j(das)g(Applet)f(im)i +(sichtbaren)717 3857 y(Browser-Bereich)38 b(erscheint)20 +3957 y(stop\(\))433 b(wird)42 b(automatisch)d(aufgerufen,)g(wenn)j(das) +g(Applet)f(den)i(sichtbaren)717 4057 y(Bereich)e(verl\344\377t)20 +4156 y(destroy\(\))301 b(wird)42 b(automatisch)d(beim)j(verlassen)e +(der)i(Seite)f(oder)h(schlie\377en)e(des)717 4256 y(Browsers)g +(aufgerufen)20 4392 y +SDict begin H.S end + 20 4392 a 20 4392 a +SDict begin 12 H.A end + 20 4392 a 20 +4392 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.19.17.4) cvn /DEST pdfmark +end + 20 4392 a 98 x Fi(19.17.4.)57 b(Ein)36 b(Applet)g(im)h(\334b)s +(erblick)20 4644 y Fd(import)k(java.applet.*;)20 4744 +y(import)g(java.awt.*;)2996 5092 y Fk(145)p eop end +%%Page: 146 146 +TeXDict begin 146 145 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 +a 632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.146) cvn /DEST pdfmark end + 632 -5 a 640 128 a Fh(19.)41 +b(Ja)n(v)-5 b(a)640 360 y Fd(public)41 b(class)h(newApplet)d(extends)i +(Applet)g({)989 460 y(public)g(void)h(init\(\))f({)1337 +559 y(//initialisierung)c(aller)k(n\366tigen)g(Werte)g(f\374r)i(das)f +(Programm)989 659 y(})989 758 y(public)f(void)h(start\(\))e({)1337 +858 y(//Start)h(des)h(Applets)989 958 y(})989 1057 y(public)f(void)h +(paint\(Graphics)37 b(g\))43 b({)1337 1157 y(//Grafikausgabe)38 +b(\374ber)j(das)i(Objekt)e(g)i(!)989 1257 y(})989 1356 +y(public)e(void)h(stop\(\))f({)1337 1456 y(//Stop)g(des)i(Applets)989 +1556 y(})989 1655 y(public)e(void)h(destroy\(\))d({)1337 +1755 y(//Ende)i(des)i(Applets)1337 1854 y(//Speicher)d(wird)i +(freigegeben)989 1954 y(})640 2054 y(})640 2184 y +SDict begin H.S end + 640 +2184 a 640 2184 a +SDict begin 12 H.A end + 640 2184 a 640 2184 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.19.17.5) cvn /DEST pdfmark +end + 640 2184 a 112 +x Fi(19.17.5.)57 b(P)m(ak)m(ete)640 2452 y Fd(java.awt)694 +b(dient)41 b(zur)i(Bearbeitung)c(und)j(Ausgabe)f(von)h(Grafiken)e(und) +1686 2552 y(Fensterelementen)d(in)42 b(Applikationen)d(und)j(Applets) +1686 2651 y(\(advanced)e(window)h(toolkit\))640 2751 +y(java.applet)562 b(eine)42 b(Grundvoraussetz)o(ung)37 +b(f\374r)42 b(ein)g(Applet)640 2893 y +SDict begin H.S end + 640 2893 a 640 +2893 a +SDict begin 12 H.A end + 640 2893 a 640 2893 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.19.17.6) cvn /DEST pdfmark +end + 640 2893 a 100 x Fi(19.17.6.)57 +b(Die)36 b(Klasse)h(Graphics)640 3150 y Fd(public)k(void)h +(paint\(Graphics)c(g\))k({)392 b(um)43 b(in)g(das)f(Applet)f(zu)i +(zeichnen)989 3249 y(drawString\("Tex)o(t",)o(x,)o(y\))o(;)386 +b(Text)42 b(im)h(Applet)e(ausgeben)640 3349 y(})640 3548 +y(drawLine\(\))1303 b(Linie)42 b(zeichnen)640 3648 y(drawRect\(\))1303 +b(Rechteck)40 b(zeichnen)640 3747 y(fillRect\(\))1303 +b(gef\374lltes)40 b(Rechteck)g(zeichen)640 3847 y(drawRoundRect\(\)) +1083 b(Rechteck)40 b(mit)j(abgerundeten)38 b(Ecken)k(zeichnen)640 +3947 y(fillRoundRect\(\))1083 b(gef\374lltes)40 b(Rundeck)h(zeichnen) +640 4046 y(drawOval\(\))1303 b(Kreis/Elipse)39 b(zeichnen)640 +4146 y(fillOval\(\))1303 b(gef\374llte/r)40 b(Kreis/Elipse)e(zeichnen) +640 4245 y(copyArea\(\))1303 b(kopieren)40 b(eines)i(sichtbaren)d +(Bereiches)640 4388 y +SDict begin H.S end + 640 4388 a 640 4388 a +SDict begin 12 H.A end + 640 4388 +a 640 4388 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.19.17.7) cvn /DEST pdfmark +end + 640 4388 a 99 x Fi(19.17.7.)57 b(Die)36 +b(Klasse)h(Colo)m(r)640 4644 y Fd(Color)42 b(farbe)f(=)i(new)g +(Color\(r,g,b\);)386 b(Farben)41 b(erzeugen)f(r=0-255)h(g=0-255)g +(r=0-255)640 4744 y(Color)h(dfarbe)f(=)i(farbe.darker\(\);)429 +b(n\344chst)41 b(dunklere)f(Farbe)640 5092 y Fk(146)p +eop end +%%Page: 147 147 +TeXDict begin 147 146 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a +12 -5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.147) cvn /DEST pdfmark end + 12 -5 a 2587 128 a Fh(19.17.)40 +b(Applets)20 360 y Fd(Color)i(hfarbe)f(=)i(farbe.brighter\()o(\);)342 +b(n\344chst)41 b(hellere)g(Farbe)20 559 y(Konstante)650 +b(Frabe)20 659 y(---------)g(-----)20 758 y(Clolor.white)518 +b(weiss)20 858 y(Clolor.yellow)474 b(gelb)20 958 y(Clolor.orange)g +(orange)20 1057 y(Clolor.grey)562 b(grau)20 1157 y(Clolor.pink)g(pink) +20 1257 y(Clolor.red)606 b(rot)20 1356 y(Clolor.magenta)430 +b(magenta)20 1456 y(Clolor.green)518 b(gr\374n)20 1556 +y(Clolor.blue)562 b(blau)20 1655 y(Clolor.darkGray)386 +b(dunkelgrau)20 1755 y(Clolor.lightGray)342 b(hellgrau)20 +1854 y(Clolor.black)518 b(schwarz)20 1998 y +SDict begin H.S end + 20 1998 a +20 1998 a +SDict begin 12 H.A end + 20 1998 a 20 1998 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.19.17.8) cvn /DEST pdfmark +end + 20 1998 a 123 x Fi(19.17.8.)57 +b(Die)36 b(Klasse)g(F)m(ont)20 2286 y Fd(Windows)389 +b(Java)20 2386 y(-------)g(----)20 2485 y(Arial)477 b(Helvetica)20 +2585 y(Courier)41 b(New)216 b(Corier)20 2685 y(MS)43 +b(Sans)f(Serif)128 b(Dialog)20 2784 y(Times)42 b(New)g(Roman)f +(TimesRoman)20 2884 y(WingDings)301 b(ZapfDingbats)20 +2983 y(Arial)477 b(default)20 3183 y(Font)42 b(f)h(=)g(new)g +(Font\("art",)38 b(stil,)k(gr\366\377e\);)433 b(neue)42 +b(Schrift)e(erstellen)2112 3282 y(stil:)h(plain\(normal\),)2112 +3382 y(italic\(kursiv\),)c(blod\(fett\))20 3537 y +SDict begin H.S end + 20 +3537 a 20 3537 a +SDict begin 12 H.A end + 20 3537 a 20 3537 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.19.17.9) cvn /DEST pdfmark +end + 20 3537 a 111 x +Fi(19.17.9.)57 b(Die)36 b(Klasse)g(Image)20 3814 y Fd(Image)42 +b(myImage)e(=)j(getImage\(getCodeB)o(as)o(e\()o(\),)37 +b("Bild.jpg"\);)169 b(Bildobjekt)40 b(erschaffen)20 4013 +y(drawImage\(\))1956 b(Bild)42 b(anzeigen)20 4175 y +SDict begin H.S end + 20 +4175 a 20 4175 a +SDict begin 12 H.A end + 20 4175 a 20 4175 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.19.17.10) cvn /DEST +pdfmark end + 20 4175 a 104 x +Fi(19.17.10.)57 b(Die)36 b(Klasse)g(Button)20 4445 y +Fd(Button)41 b(myButton)f(=)j(new)g(Button\("Klick"\))o(;)430 +b(Buttonobjekt)38 b(erschaffen)20 4644 y(setLabel\(\))1303 +b(Beschriftung)39 b(des)j(Buttons)f(\344ndern)20 4744 +y(getLabel\(\))1303 b(Beschriftung)39 b(des)j(Buttons)f(auslesen)2996 +5092 y Fk(147)p eop end +%%Page: 148 148 +TeXDict begin 148 147 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 +a 632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.148) cvn /DEST pdfmark end + 632 -5 a 640 128 a Fh(19.)41 +b(Ja)n(v)-5 b(a)640 277 y +SDict begin H.S end + 640 277 a 640 277 a +SDict begin 12 H.A end + 640 277 +a 640 277 a +SDict begin [/View [/XYZ H.V]/Dest (section.19.18) cvn /DEST pdfmark +end + 640 277 a 85 x Fe(19.18.)68 b(Eventhandling)640 +548 y Fd(java.awt.event.*)o(;)648 b(Paket)41 b(zur)h(Ereignisbehandlun) +o(g)37 b(einbinden)640 692 y +SDict begin H.S end + 640 692 a 640 692 a +SDict begin 12 H.A end + 640 +692 a 640 692 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.19.18.1) cvn /DEST pdfmark +end + 640 692 a 101 x Fi(19.18.1.)57 b(Mouse)37 +b(Events)640 950 y Fd(public)k(class)h(myApplet)e(extends)g(Applet)h +(implements)f(MouseListener)e({})2035 1050 y(Schnittstelle)g +(MouseListener)g(implementieren)640 1249 y(Methode)389 +b(Aufgabe)640 1349 y(-------)g(-------)640 1448 y(mousePressed\(\))81 +b(Maustaste)40 b(wird)i(gedr\374ckt)640 1548 y(mouseReleased\(\))37 +b(Maustaste)j(wird)i(losgelassen)640 1648 y(mouseClicked\(\))81 +b(Mausklick)640 1747 y(mouseEntered\(\))g(Maus)42 b(bewegt)f(sich)h(in) +h(das)f(Applet)640 1847 y(mouseExited\(\))125 b(Maus)42 +b(verl\344sst)e(das)j(Applet)640 2046 y(addMouseListener)o(\(th)o(is)o +(\);)386 b(Listener)40 b(soll)i(auf)g(das)g(gesamte)f(Applet)g(achten) +640 2245 y(public)g(void)h(mousePressed\(mou)o(se)o(Eve)o(nt)37 +b(e\))43 b({)989 2345 y(int)f(x)h(=)g(e.getX\(\);)999 +b(Maustaste)40 b(an)i(X)h(gedr\374ckt)989 2445 y(int)f(y)h(=)g +(e.getY\(\);)999 b(Maustaste)40 b(an)i(Y)h(gedr\374ckt)640 +2544 y(})640 2743 y(addMouseMotionLi)o(ste)o(ne)o(r\()o(thi)o(s\))o(;) +125 b(MotionListener)37 b(soll)42 b(auf)g(das)h(Applet)e(achten)640 +2943 y(mouseMoved\(\))867 b(bewegte)40 b(Mausereignisse)640 +3042 y(mouseDragged\(\))640 3187 y +SDict begin H.S end + 640 3187 a 640 3187 +a +SDict begin 12 H.A end + 640 3187 a 640 3187 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.19.18.2) cvn /DEST pdfmark +end + 640 3187 a 100 x Fi(19.18.2.)57 +b(A)m(ction)36 b(Events)640 3445 y Fd(public)41 b(class)h(myApplet)e +(extends)g(Applet)h(implements)f(ActionListener)d({})2035 +3544 y(Schnittstelle)h(ActionListener)f(implementieren)640 +3743 y(Button)k(myButton)f(=)k(new)e(Button\("Knopf"\))o(;)81 +b(Button)41 b(erstellen)640 3843 y(this.add\(myButto)o(n\);)908 +b(Button)41 b(setzen)640 3943 y(myButton.addActi)o(onL)o(is)o(te)o(ner) +o(\(t)o(hi)o(s\);)298 b(Button)41 b(mit)i(ActionListener)37 +b(versehen)640 4142 y(public)k(void)h(actionPerformed\()o(Ac)o(tio)o +(nE)o(ve)o(nt)37 b(e\))43 b({)174 b(Aufruf)41 b(beim)h(Anklicken)d(des) +k(Button)989 4242 y(String)e(Klick)g(=)i(e.getActionComman)o(d\()o(\);) +168 b(gibt)42 b(die)g(Aufschift)e(des)i(Button)640 4341 +y(})640 4474 y +SDict begin H.S end + 640 4474 a 640 4474 a +SDict begin 12 H.A end + 640 4474 a 640 4474 +a +SDict begin [/View [/XYZ H.V]/Dest (subsection.19.18.3) cvn /DEST pdfmark +end + 640 4474 a 112 x Fi(19.18.3.)57 b(P)m(a)m(rameter)37 +b(an)g(ein)f(Applet)640 4744 y Fd()640 5092 y Fk(148)p +eop end +%%Page: 149 149 +TeXDict begin 149 148 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a +12 -5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.149) cvn /DEST pdfmark end + 12 -5 a 2342 128 a Fh(19.18.)40 +b(Ev)n(en)n(thandling)369 360 y Fd()343 b(Parameter1)369 460 y()343 b(Parameter2)20 559 y()20 +858 y(String)41 b(var1)h(=)h(getParameter\("va)o(r1")o(\);)560 +b(Parameter1)39 b(an)k(den)f(String)f(var1)20 958 y(String)g(var2)h(=)h +(getParameter\("va)o(r2")o(\);)560 b(und)42 b(var2)g(\374bergeben)20 +1092 y +SDict begin H.S end + 20 1092 a 20 1092 a +SDict begin 12 H.A end + 20 1092 a 20 1092 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.19.18.4) cvn /DEST pdfmark +end + 20 1092 +a 98 x Fi(19.18.4.)57 b(W)m(eitere)37 b(wichtige)f(P)m(ak)m(ete)20 +1343 y Fd(java.net)694 b(Klassen)41 b(und)h(Schnittstellen)37 +b(f\374r)43 b(Netzwerkentwick)o(lun)o(g)20 1443 y(java.beans)606 +b(wieder)41 b(verwentbare)e(Komponenten)20 1543 y(java.security)474 +b(erh\366te)41 b(Sicherheit)e(innerhalb)h(von)i(Applikationen/App)o(le) +o(ts)20 1642 y(java.rmi)694 b(Verteilung)39 b(eines)j(Programms)d(auf)k +(mehrere)d(Rechner)20 1742 y(java.sql)694 b(Anbindung)40 +b(an)i(SQL-Datenbanken)20 1841 y(java.servlet)518 b(Applikationen)38 +b(die)k(serverseitig)d(laufen)2996 5092 y Fk(149)p eop +end +%%Page: 150 150 +TeXDict begin 150 149 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 +a 632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.150) cvn /DEST pdfmark end + 632 -5 a eop end +%%Page: 151 151 +TeXDict begin 151 150 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a +12 -5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.151) cvn /DEST pdfmark end + 12 -5 a 20 277 a +SDict begin H.S end + 20 277 a 20 +277 a +SDict begin 12 H.A end + 20 277 a 20 277 a +SDict begin [/View [/XYZ H.V]/Dest (chapter.20) cvn /DEST pdfmark end + 20 277 a 520 x Fm(20.)100 b(JavaScript)20 +1003 y +SDict begin H.S end + 20 1003 a 20 1003 a +SDict begin 12 H.A end + 20 1003 a 20 1003 a +SDict begin [/View [/XYZ H.V]/Dest (section.20.1) cvn /DEST pdfmark +end + 20 1003 +a 117 x Fe(20.1.)68 b(Einbindung)45 b(von)g(JavaScript)20 +1226 y +SDict begin H.S end + 20 1226 a 20 1226 a +SDict begin 12 H.A end + 20 1226 a 20 1226 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.20.1.1) cvn /DEST pdfmark +end + 20 1226 +a 93 x Fi(20.1.1.)57 b(Einbindung)34 b(in)i(den)h(Head)20 +1474 y Fd()107 1573 y()194 1673 y()194 +1773 y()255 +b(Leitet)41 b(den)h(JavaScript-Quellt)o(ex)o(t)c(ein)282 +1872 y()1261 b(Kommentar)40 +b(ende)194 2271 y()1173 b(Beendet)41 b(den)h(JavaScript-Quell) +o(te)o(xt)107 2370 y()107 2470 y()107 2570 +y()20 2669 y()20 2795 y +SDict begin H.S end + 20 2795 a 20 2795 +a +SDict begin 12 H.A end + 20 2795 a 20 2795 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.20.1.2) cvn /DEST pdfmark +end + 20 2795 a 110 x Fi(20.1.2.)57 b(Einbindung)34 +b(in)i(den)h(Bo)s(dy)20 3059 y Fd()107 3158 y()194 +3258 y()107 3358 y()107 3457 y()194 +3557 y()1173 b(Beendet)41 b(den)h(JavaScript-Quell)o +(te)o(xt)107 3856 y()20 3955 y()20 4081 +y +SDict begin H.S end + 20 4081 a 20 4081 a +SDict begin 12 H.A end + 20 4081 a 20 4081 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.20.1.3) cvn /DEST pdfmark +end + 20 4081 a 110 +x Fi(20.1.3.)57 b(Ausf\374hren)36 b(b)s(ei)g(b)s(estimmten)h(Aktionen) +20 4345 y Fd()107 4445 y()194 4544 y()107 +4644 y()107 4744 y()81 b(Beim)42 b(Laden)f(wird)h(der)h(JavaScript-Quel) +o(lt)o(ext)2996 5092 y Fk(151)p eop end +%%Page: 152 152 +TeXDict begin 152 151 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 +a 632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.152) cvn /DEST pdfmark end + 632 -5 a 640 128 a Fh(20.)41 +b(Ja)n(v)-5 b(aScript)2383 360 y Fd(ausgef\374hrt)727 +460 y()640 559 y()640 695 y +SDict begin H.S end + 640 695 a 640 +695 a +SDict begin 12 H.A end + 640 695 a 640 695 a +SDict begin [/View [/XYZ H.V]/Dest (section.20.2) cvn /DEST pdfmark +end + 640 695 a 143 x Fe(20.2.)68 +b(V)l(a)l(riablen)640 1022 y Fd(var)42 b(GlobaleVariable)212 +b(Globale)41 b(Variable)f(deklarieren)640 1121 y(function\(\))f({)727 +1221 y(var)k(LokaleVariable)168 b(Lokale)41 b(Variable)f(deklarieren) +640 1320 y(})640 1520 y(var)i(variable)520 b(Variable)40 +b(deklarieren)640 1619 y(variable)g(=)j("Wert")303 b(Wert)42 +b(zuweisen)640 1719 y(var)g(zahl=9)608 b(Variable)40 +b(deklarieren)f(und)j(Wert)g(zuweisen)640 1918 y(+)1002 +b(Verketten)640 2047 y +SDict begin H.S end + 640 2047 a 640 2047 a +SDict begin 12 H.A end + 640 2047 +a 640 2047 a +SDict begin [/View [/XYZ H.V]/Dest (section.20.3) cvn /DEST pdfmark +end + 640 2047 a 150 x Fe(20.3.)68 b(Objekte)640 +2303 y +SDict begin H.S end + 640 2303 a 640 2303 a +SDict begin 12 H.A end + 640 2303 a 640 2303 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.20.3.1) cvn /DEST pdfmark +end + 640 +2303 a 94 x Fi(20.3.1.)57 b(Standa)m(rdobjekte)640 2552 +y Fd(document.write\(")o(Hal)o(lo)o("\))734 b(Hallo)42 +b(auf)g(der)g(Seite)g(ausgeben)640 2651 y(document.writeln)o(\("H)o(al) +o(lo)o("\))647 b(Hallo)42 b(auf)g(der)g(Seite)g(mit)g(Zeilenumruch)2383 +2751 y(ausgeben)640 2851 y(document.close\(\))1039 b(Schreiben)40 +b(schlie\377en)640 3050 y(document.bgColor)o(=\(")o(ff)o(ff)o(ff")o(\)) +560 b(Hintergrunffarbe)640 3150 y(document.fgColor)o(=\(")o(00)o(00)o +(00")o(\))g(Fordergrundfarbe)640 3249 y(document.linkCol)o(or=)o(\(")o +(00)o(ff0)o(0")o(\))473 b(Neuer)42 b(Link)640 3349 y(document.vlinkCo)o +(lor)o(=\()o("f)o(fff)o(00)o("\))429 b(Besuchter)40 b(Link)640 +3448 y(document.alinkCo)o(lor)o(=\()o("f)o(f00)o(00)o("\))429 +b(Aktiver)41 b(Link)640 3648 y(document.referre)o(r)996 +b(URL)42 b(von)h(der)f(aufgerufen)d(wurde)640 3747 y(document.locatio)o +(n)996 b(URL)42 b(der)h(Datei)e(selber)640 3847 y(document.title)1127 +b(Titel)42 b(der)g(Seite)640 4046 y(document.Name.sr)o(c=")o(bi)o(ld)o +(2.g)o(if)o(")473 b()g(um)43 +b(auf)2383 4146 y(das)f(Bild)g(zuzugreifen)640 4345 y(document.forms[0) +o(].N)o(am)o(e.)o(val)o(ue)516 b(Formular)40 b(1\(0\);)i(aktueller)e +(Text)h(im)2383 4445 y(Eingabefeld)e(auslesen)h(oder)i +(\374berschreiben)640 4544 y(document.forms[0)o(].N)o(am)o(e.)o(def)o +(au)o(lt)o(Val)o(ue)211 b(Defaultwert)39 b(auslesen)h(oder)i +(\374berschreiben)640 4644 y(document.forms[0)o(].N)o(am)o(e.)o(sel)o +(ec)o(t\()o(\))386 b(Text)42 b(im)h(Eingabefeld)c(makieren)640 +4744 y(document.forms[0)o(].N)o(am)o(e.)o(foc)o(us)o(\(\))429 +b(Cursor)41 b(in)i(das)f(Eingabefeld)d(setzen)640 5092 +y Fk(152)p eop end +%%Page: 153 153 +TeXDict begin 153 152 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a +12 -5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.153) cvn /DEST pdfmark end + 12 -5 a 2618 128 a Fh(20.3.)40 +b(Ob)5 b(jekte)20 460 y Fd(document.forms[0)o(].)o(Nam)o(e[)o(0])o(.ch) +o(ec)o(ked)298 b(Radio-Checkbutto)o(ns)37 b(liest)42 +b(oder)f(schreibt,)1763 559 y(ob)i(ein)f(Button)f(ausgew\344hlt)f(ist) +20 659 y(document.forms[0)o(].)o(Nam)o(e[)o(0])o(.de)o(fa)o(ult)o(Ch)o +(ec)o(ked)1763 758 y(Voreinstellung)e(eines)j(Button)g(lesen)h(oder) +1763 858 y(schreiben)1763 958 y(nicht)g(markiert)432 +b(markiert)1763 1057 y(0)1002 b(1)1763 1157 y(false)826 +b(true)20 1356 y(document.forms[0)o(].)o(Nam)o(e.)o(op)o(tio)o(ns)o +([0])o(.s)o(el)o(ect)o(ed)o(In)o(dex)1763 1456 y(Auswahlliste)39 +b(auslesen)h(oder)i(schreiben)20 1556 y(document.forms[0)o(].)o(Nam)o +(e.)o(op)o(tio)o(ns)o([0])o(.v)o(al)o(ue)37 b(Wert)42 +b(auslesen)e(oder)i(schreiben)20 1755 y(parent.frames[0])o(.l)o(oca)o +(ti)o(on)o(.hr)o(ef)o(=)386 b(Frameinhalt)39 b(\344ndern)i(0)i(->)g +(Frame)e(1)20 1854 y("frame.htm")20 1954 y(parent.)1435 +b(verzweigt)40 b(in)j(den)f(n\344chsth\366heren)c(Frame)20 +2054 y(top.)1567 b(verzweigt)40 b(in)j(den)f(h\366chsten)e(Frame)i(im) +1763 2153 y(Browser)20 2253 y(frames[n])1347 b(verzweigt)40 +b(auf)i(die)g(n\344chstniedrigere)37 b(Stufe)1763 2353 +y(in)43 b(den)f(Frame)g(mit)g(dem)g(Index)g(n)20 2552 +y(window.status=\(")o(Ha)o(llo)o("\))734 b(Hallo)42 b(in)g(der)h +(Statusleiste)38 b(ausgeben)20 2751 y(myWindow=window.)o(op)o(en\()o +("D)o(at)o(ein)o(am)o(e",)o("F)o(en)o(ste)o(rn)o(am)o(e",)o("E)o(ig)o +(ens)o(ch)o(af)o(ten)o("\))1763 2851 y(\326ffnet)j(ein)h(neues)g +(Fenster)20 2950 y(Eigenschaften:)81 b(width=\(Pixel\))474 +b(gibt)42 b(die)g(Breite)f(an)717 3050 y(height=\(Pixel\))430 +b(gibt)42 b(die)g(H\366he)g(an)717 3150 y(resizable=yes/no)342 +b(gr\366\377e)42 b(des)g(Fensters)e(ver\344nderbar)f(?)717 +3249 y(menubar=yes/no)430 b(Men\374leiste)39 b(vorhanden)h(?)717 +3349 y(toolbar=yes/no)430 b(Buttonleiste)39 b(vorhanden)g(?)717 +3448 y(location=yes/no)386 b(Adresszeile)39 b(vorhanden)h(?)717 +3548 y(status=yes/no)474 b(Statuszeile)39 b(vorhanden)h(?)717 +3648 y(scrollbars=yes/no)298 b(Bildlaufleiste)38 b(vorhanden)i(?)717 +3747 y(dependent=yes/no)342 b(Vom)42 b(aktuellen)e(Fenster)h +(abh\344ngig)f(?)20 3947 y(myWindow.close\(\))1039 b(Schlie\377t)40 +b(das)j(neue)e(Fenster)20 4046 y(myWindow.closed)1083 +b(Zugriff)41 b(auf)h(den)g(Fensterzustand)20 4189 y +SDict begin H.S end + 20 +4189 a 20 4189 a +SDict begin 12 H.A end + 20 4189 a 20 4189 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.20.3.2) cvn /DEST pdfmark +end + 20 4189 a 99 x Fi(20.3.2.)57 +b(String-Objekt)20 4445 y Fd(String.length)823 b(Anzahl)41 +b(der)h(Zeichen)e(des)j(Strings)20 4544 y(String.substring)o(\(A)o(nfa) +o(ng)o(,E)o(nde)o(\))125 b(Gibt)41 b(den)i(Anfang)e(bis)h(Ende)g(des)g +(Strings)f(zur\374ck)20 4644 y(String.toLowerCa)o(se)604 +b(Wandelt)40 b(alle)i(Buchstaben)d(in)k(Kleinbuchstaben)20 +4744 y(String.toUpperCa)o(se)604 b(Wandelt)40 b(alle)i(Buchstaben)d(in) +k(Gro\377buchstaben)2996 5092 y Fk(153)p eop end +%%Page: 154 154 +TeXDict begin 154 153 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 +a 632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.154) cvn /DEST pdfmark end + 632 -5 a 640 128 a Fh(20.)41 +b(Ja)n(v)-5 b(aScript)640 277 y +SDict begin H.S end + 640 277 a 640 277 a +SDict begin 12 H.A end + 640 +277 a 640 277 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.20.3.3) cvn /DEST pdfmark +end + 640 277 a 83 x Fi(20.3.3.)57 b(Eigene)36 +b(Objekte)640 518 y Fd(function)k(person\(name,)f(alter\))i({)784 +b(Funktion)727 618 y(this.name)40 b(=)j(name)1306 b(zum)727 +718 y(this.alter)40 b(=)j(alter)1218 b(Objekt)640 817 +y(})2048 b(anlegen)640 1017 y(var)42 b(meier)g(=)h(new)f +(person\("Geier)c(Meier",)j(18\))304 b(Objekt)41 b(erzeugen)640 +1116 y(meier.name)e(=)44 b("Mr.)e(Geier)f(Meier")782 +b(Wert)42 b(\344ndern)640 1216 y(meier.alter)d(=)k(20)1394 +b(Wert)42 b(\344ndern)640 1415 y(meier)g(=)h(new)f(Object)1305 +b(Objekt)41 b(erzeugen)640 1515 y(meier.vorname)d(=)43 +b("Geier")1087 b(Wert)42 b(zuweisen)640 1614 y(meier.nachname)c(=)43 +b("Meier")1043 b(Wert)42 b(zuweisen)640 1742 y +SDict begin H.S end + 640 1742 +a 640 1742 a +SDict begin 12 H.A end + 640 1742 a 640 1742 a +SDict begin [/View [/XYZ H.V]/Dest (subsection.20.3.4) cvn /DEST pdfmark +end + 640 1742 a 119 x Fi(20.3.4.)57 +b(Arra)m(ys)640 2020 y Fd(Variable)40 b(=)j(new)g(Array)1218 +b(Array)41 b(erzeugen)640 2119 y(Variable[0])e(=)k("hallo")1174 +b(Wert)42 b(zuweisen)640 2263 y +SDict begin H.S end + 640 2263 a 640 2263 a +SDict begin 12 H.A end + +640 2263 a 640 2263 a +SDict begin [/View [/XYZ H.V]/Dest (section.20.4) cvn /DEST pdfmark +end + 640 2263 a 146 x Fe(20.4.)68 b(Mathematische)43 +b(Op)t(erationen)640 2596 y Fd(c)g(=)g(a)h(+)f(b)653 +b(Addition)640 2695 y(a++)42 b(;)i(a)f(=)g(a)g(+)g(1)640 +2795 y(c)g(=)g(a)h(-)f(b)653 b(Subtraktion)640 2894 y(a--)42 +b(;)i(a)f(=)g(a)g(-)g(1)640 2994 y(c)g(=)g(a)h(*)f(b)653 +b(Multiplikation)640 3094 y(c)43 b(=)g(a)h(/)f(b)653 +b(Division)640 3193 y(a)43 b(=)g(Math.round\(b\))300 +b(Ganzzahlige)39 b(Rundung)640 3349 y +SDict begin H.S end + 640 3349 a 640 +3349 a +SDict begin 12 H.A end + 640 3349 a 640 3349 a +SDict begin [/View [/XYZ H.V]/Dest (section.20.5) cvn /DEST pdfmark +end + 640 3349 a 134 x Fe(20.5.)68 +b(Bedingte)44 b(Ausf\374hrung)640 3670 y Fd(if\(Ausdruck\))867 +b(wenn)41 b(der)i(Ausdruck)d(stimmt,)640 3769 y({)989 +3869 y(Anweisung-en1)474 b(Anweisung-en1)640 3968 y(})640 +4112 y +SDict begin H.S end + 640 4112 a 640 4112 a +SDict begin 12 H.A end + 640 4112 a 640 4112 a +SDict begin [/View [/XYZ H.V]/Dest (section.20.6) cvn /DEST pdfmark +end + 640 +4112 a 146 x Fe(20.6.)68 b(Schleifen)640 4445 y Fd(for\(Ausdruck1;Au)o +(sdr)o(uc)o(k2)o(;Au)o(sd)o(ru)o(ck3)o(\))255 b(Ausdruck1)40 +b(einmal)h(ausf\374hren)640 4544 y({)1699 b(so)43 b(lange)e(der)i +(Ausdruck2)c(stimmt,)2383 4644 y(vorher)i(noch)h(Ausdruck3)989 +4744 y(Anweisug-en)910 b(Anweisung-en)640 5092 y Fk(154)p +eop end +%%Page: 155 155 +TeXDict begin 155 154 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a +12 -5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.155) cvn /DEST pdfmark end + 12 -5 a 2381 128 a Fh(20.7.)40 +b(Ev)n(en)n(t-Handler)20 360 y Fd(})20 559 y(while\(Ausdruck\))1083 +b(so)43 b(lange)e(der)i(Ausdruck)d(stimmt,)20 659 y({)369 +758 y(Anweisung-en)866 b(Anweisung-en)20 858 y(})20 1105 +y +SDict begin H.S end + 20 1105 a 20 1105 a +SDict begin 12 H.A end + 20 1105 a 20 1105 a +SDict begin [/View [/XYZ H.V]/Dest (section.20.7) cvn /DEST pdfmark +end + 20 1105 a 169 +x Fe(20.7.)68 b(Event-Handler)20 1506 y Fd(onLoad="Aktion")386 +b(Beim)42 b(Laden)f(Aktion)g(ausf\374hren)20 1605 y(onUnload="Aktion)o +(")299 b(Beim)42 b(Schlie\377en)e(Aktion)h(ausf\374hren)20 +1705 y(onMouseOver="Akt)o(io)o(n")168 b(Beim)42 b(\334berfahren)d +(Aktion)i(ausf\374hren)20 1805 y(onMouseOut="Akti)o(on)o(")212 +b(Beim)42 b(Verlassen)e(Aktion)h(ausf\374hren)20 1904 +y(onFocus="Aktion")342 b(Beim)42 b(Setzen)f(des)h(Cursors)f(auf)h(das)g +(Element)1066 2004 y(\(Einsatz)e(in)j(Formularen\))20 +2103 y(onBlur="Aktion")386 b(Beim)42 b(Verlassen)e(des)i(Elementes)20 +2203 y(onChange="Aktion)o(")299 b(Beim)42 b(Verlassen)e(des)i +(Elementes)e(wenn)h(ver\344ndert)20 2303 y(onClick="Aktion")342 +b(Beim)42 b(Anklicken)e(eines)h(Formularelements)20 2402 +y(Ve)o(rw)o(ei)o(ste)o(xt)o()20 2502 y(onSubmit="Aktion)o(")299 +b(Beim)42 b(Senden)f(eines)g(Formulares)f(Aktion)h(ausf\374hren)20 +2742 y +SDict begin H.S end + 20 2742 a 20 2742 a +SDict begin 12 H.A end + 20 2742 a 20 2742 a +SDict begin [/View [/XYZ H.V]/Dest (section.20.8) cvn /DEST pdfmark +end + 20 2742 +a 176 x Fe(20.8.)68 b(F)l(unktionen)20 3150 y Fd(function)40 +b(Name\(var1,var2\))343 b(Definiert)39 b(eine)j(Funktion)e(mit)j(dem)f +(Name)20 3249 y({)107 3349 y(alert\(var2\))824 b(Hier)41 +b(kommt)h(der)g(Funktionsinhalt)37 b(rein)20 3448 y(})20 +3648 y(return\("Hallo"\))735 b(Hallo)41 b(zur\374ck)g(geben)20 +3847 y(alert\("Text"\))823 b(\326ffnet)41 b(ein)h(Fenster)e(und)j(gibt) +f(den)g(Text)g(aus)20 3947 y(uhrzeit=new)d(Date\(\))608 +b(Datum)41 b(und)h(Uhrzeit)f(in)i(das)f(Objekt)f(uhrzeit)1415 +4046 y(schreiben)20 4146 y(st=uhrzeit.getHo)o(ur)o(s\(\))473 +b(Stunden)40 b(aus)i(dem)h(Objekt)e(uhrzeit)f(der)j(Variable)1415 +4245 y(st)f(zuweisen)20 4345 y(min=uhrzeit.getM)o(in)o(ute)o(s\()o(\)) +343 b(Minuten)40 b(aus)i(dem)h(Objekt)e(uhrzeit)f(der)j(Variable)1415 +4445 y(min)f(zuweisen)20 4544 y(setTimeout\("Funk)o(ti)o(on")o(,M)o(il) +o(lis)o(ek)o(und)o(en)o(\))168 b(Funktion)40 b(nach)i(Millisekunden)c +(aufrufen)20 4744 y(Math.random\(\))2996 5092 y Fk(155)p +eop end +%%Page: 156 156 +TeXDict begin 156 155 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 +a 632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.156) cvn /DEST pdfmark end + 632 -5 a 640 128 a Fh(20.)41 +b(Ja)n(v)-5 b(aScript)640 277 y +SDict begin H.S end + 640 277 a 640 277 a +SDict begin 12 H.A end + 640 +277 a 640 277 a +SDict begin [/View [/XYZ H.V]/Dest (section.20.9) cvn /DEST pdfmark +end + 640 277 a 85 x Fe(20.9.)68 b(Reservierte)44 +b(W\366)l(rter)640 559 y Fd(abstract)640 659 y(boolean)640 +758 y(break)640 858 y(byte)640 958 y(case)640 1057 y(catch)640 +1157 y(char)640 1257 y(class)640 1356 y(const)640 1456 +y(continue)640 1556 y(debugger)640 1655 y(default)640 +1755 y(delete)640 1854 y(else)640 1954 y(enum)640 2054 +y(export)640 2153 y(extends)640 2253 y(false)640 2353 +y(final)640 2452 y(finally)640 2552 y(float)640 2651 +y(for)640 2751 y(function)640 2851 y(goto)640 2950 y(if)640 +3050 y(implements)640 3150 y(import)640 3249 y(in)640 +3349 y(instanceof)640 3448 y(int)640 3548 y(interface)640 +3648 y(long)640 3747 y(native)640 3847 y(new)640 3947 +y(null)640 4046 y(package)640 4146 y(private)640 4245 +y(protected)640 4345 y(public)640 4445 y(return)640 4544 +y(short)640 4644 y(static)640 4744 y(super)640 5092 y +Fk(156)p eop end +%%Page: 157 157 +TeXDict begin 157 156 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a +12 -5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.157) cvn /DEST pdfmark end + 12 -5 a 2214 128 a Fh(20.9.)40 +b(Reservierte)26 b(W\366rter)20 360 y Fd(switch)20 460 +y(synchronized)20 559 y(this)20 659 y(throw)20 758 y(throws)20 +858 y(transient)20 958 y(true)20 1057 y(try)20 1157 y(typeof)20 +1257 y(var)20 1356 y(void)20 1456 y(volatile)20 1556 +y(while)20 1655 y(with)2996 5092 y Fk(157)p eop end +%%Page: 158 158 +TeXDict begin 158 157 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 +a 632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.158) cvn /DEST pdfmark end + 632 -5 a eop end +%%Page: 159 159 +TeXDict begin 159 158 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a +12 -5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.159) cvn /DEST pdfmark end + 12 -5 a 20 1610 a +SDict begin H.S end + 20 1610 a 20 +1610 a +SDict begin 12 H.A end + 20 1610 a 20 1610 a +SDict begin [/View [/XYZ H.V]/Dest (part.5) cvn /DEST pdfmark end + 20 1610 a 1287 1788 a Fm(T)-17 +b(eil)69 b(V.)1179 2203 y Ff(Anhang)2996 5092 y Fk(159)p +eop end +%%Page: 160 160 +TeXDict begin 160 159 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 +a 632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.160) cvn /DEST pdfmark end + 632 -5 a eop end +%%Page: 161 161 +TeXDict begin 161 160 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a +12 -5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.161) cvn /DEST pdfmark end + 12 -5 a 20 277 a +SDict begin H.S end + 20 277 a 20 +277 a +SDict begin 12 H.A end + 20 277 a 20 277 a +SDict begin [/View [/XYZ H.V]/Dest (chapter.21) cvn /DEST pdfmark end + 20 277 a 520 x Fm(21.)100 b(Glossa)-6 +b(r)20 1071 y Fj(Abh\344ngigk)m(eiten)40 b Fk(Ein)e(v)n(on)f(rpm)g(v)n +(erw)n(endetes)g(System,)g(um)h(die)g(V)-7 b(erw)n(altung)37 +b(installierter)228 1170 y(Soft)n(w)n(are)30 b(zu)h(v)n(ereinfac)n +(hen.)f(Jedes)h(P)n(ak)n(et)f(en)n(th\344lt)i(ein)f(Skript,)h(das)e +(dem)i(lok)-5 b(alen)31 b(rpm)228 1270 y(mitteilt,)d(w)n(elc)n(he)e +(anderen)h(P)n(ak)n(ete)f(es)h(zur)g(Ausf\374hrung)g(b)r(en\366tigt.)g +(Sind)h(die)f(erforderli-)228 1369 y(c)n(hen)e(P)n(ak)n(ete)g(nic)n(h)n +(t)h(installiert,)f(wird)h(die)g(Installation)f(abgebro)r(c)n(hen.)f +(Gleic)n(hes)h(gilt)g(f\374r)228 1469 y(die)i(Deinstallation.)20 +1638 y Fj(Andere,)k(others)40 b Fk(In)30 b(UNIX)h(die)f(Grupp)r(e)g +(der)f(Ben)n(utzer,)g(die)h(w)n(eder)f(Eiget\374mer)h(einer)f(Datei)228 +1738 y(sind,)d(no)r(c)n(h)f(zur)h(Besitzergrupp)r(e)e(geh\366ren.)h(Es) +h(ist)g(generell)f(eine)g(gute)h(Idee,)g(die)g(Rec)n(h)n(te)228 +1837 y(dieser)f(Grupp)r(e)g(so)g(restriktiv)g(wie)h(m\366glic)n(h)e(zu) +i(handhab)r(en.)g(Siehe)g(auc)n(h)f(Besitzergrup-)228 +1937 y(p)r(e.)20 2106 y Fj(alias)41 b Fk(Ein)31 b(Shell-Mec)n(hanism)n +(us,)d(um)j(eine)f(Zeic)n(henk)n(ette)f(durc)n(h)g(einen)h(anderen)f +(zu)h(ersetzen,)228 2205 y(b)r(ev)n(or)40 b(ein)h(K)n(ommando)f +(ausgef\374hrt)g(wird.)h(Einen)h(\334b)r(erblic)n(k)f(\374b)r(er)h +(alle)f(de\034nierten)228 2305 y(Aliasse)27 b(erhalten)g(Sie)g(mit)h +(dem)g(K)n(ommando)e(alias.)20 2474 y Fj(Anzeigehilfe)42 +b Fk(Programm)27 b(zum)i(Anzeigen)f(einer)g(\(T)-7 b(ext-\))29 +b(Datei.)g(Es)g(bietet)g(die)g(M\366glic)n(hk)n(eit)228 +2574 y(einfac)n(h)34 b(v)n(orw)n(\344rts)e(und)k(r\374c)n(kw)n(\344rts) +c(durc)n(h)j(das)f(Dokumen)n(t)h(zu)g(na)n(vigieren)e(so)n(wie)h(Zei-) +228 2673 y(c)n(henk)n(etten)g(zu)h(suc)n(hen.)f(Wir)h(empfehlen)g +(Ihnen)g(das)g(Programm)e(less)h(zu)h(v)n(erw)n(enden)228 +2773 y(\(u.a.)27 b(da)h(es)f(die)h(selb)r(en)f(T)-7 b(astaturk\374rzel) +26 b(wie)i(vim)g(v)n(erw)n(endet\).)20 2942 y Fj(APM)42 +b Fk(A)n(dv)-5 b(anced)28 b(P)n(o)n(w)n(er)e(Managemen)n(t)g(\(\021F)-7 +b(ortgesc)n(hrittenes)26 b(Energiemanagemen)n(t\021\).)g(Wird)228 +3041 y(v)n(on)f(einigen)h(BIOSsen)g(dazu)g(b)r(en)n(utzt,)h(die)g(Masc) +n(hine)e(nac)n(h)h(einer)g(P)n(erio)r(de)g(v)n(on)f(Inakti-)228 +3141 y(vit\344t)j(in)g(einen)h(energiesparenden)d(Ruhezustand)i(zu)h +(bringen.)f(Auf)h(Laptops)e(ist)i(APM)228 3241 y(auc)n(h)k(daf\374r)h +(zust\344ndig,)f(Informationen)g(\374b)r(er)h(den)h(Batteriestatus)e +(bzw.)h(die)g(v)n(erblei-)228 3340 y(b)r(ende)28 b(Arb)r(eitszeit)g(b)r +(ereit)f(zu)h(stellen.)20 3509 y Fj(Arb)s(eits\035\344che)39 +b Fk(W)-7 b(enn)30 b(Sie)f(das)f(X-Windo)n(ws-System)h(v)n(erw)n +(enden,)e(ist)i(die)h(Arb)r(eits\035\344c)n(he)e(der)228 +3609 y(teil)19 b(des)g(Bildsc)n(hirmes,)g(auf)g(dem)h(Sie)f(arb)r +(eiten)g(und)h(auf)f(dem)h(Ihre)f(Sym)n(b)r(ole)g(und)h(F)-7 +b(enster)228 3708 y(dargestellt)34 b(w)n(erden.)g(Mansc)n(hmal)g(wird)h +(auc)n(h)g(lac)n(hs)f(v)n(om)g(\021Hitergrund\021)41 +b(gespro)r(c)n(hen.)228 3808 y(Siehe)27 b(auc)n(h:)g(virtuelle)h(Arb)r +(eits\035\344c)n(he.)20 3977 y Fj(ARP)42 b Fk(A)n(ddress)21 +b(Resolution)g(Proto)r(col.)g(\(\021Protok)n(oll)f(zur)h(A)n +(dress-Au\035\366sungs\021\).)f(Das)h(Protok)n(oll)228 +4077 y(um)i(IP-A)n(dressen)f(dynamisc)n(h)g(in)h(ph)n(ysik)-5 +b(alisc)n(he)21 b(\(Hardw)n(are-\)A)n(dressen)f(umzu)n(w)n(andeln.)228 +4176 y(Nur)27 b(m\366glic)n(h)g(auf)g(direkt)h(v)n(erbundenen)f(Netzw)n +(erk)n(en)f(im)i(Hardw)n(are-)d(Broadcasting.)20 4345 +y Fj(ASCI)s(I)41 b Fk(Abk\374rzung)27 b(f\374r)h(American)f(Standart)g +(Co)r(de)g(for)g(Information)g(In)n(terc)n(hange.)f(Es)i(han-)228 +4445 y(delt)40 b(sic)n(h)g(um)g(den)g(meistv)n(ervw)n(endeten)f +(7-Bit-K)n(o)r(de)f(zur)i(Darstellung)f(v)n(on)h(Zi\033ern,)228 +4544 y(Buc)n(hstab)r(en)30 b(und)h(Sonderzeic)n(hen.)f(Der)g(ASCI)r +(I-Co)r(de)h(ist)g(mittlerw)n(eile)f(p)r(er)h(\021normati-)228 +4644 y(v)n(er)h(Kraft)g(des)h(F)-7 b(aktisc)n(hen\021)39 +b(durc)n(h)33 b(den)g(ISO)g(Standart)f(8859-1)f(abgel\366st)g(\(Siehe)j +(ISO)228 4744 y(8859\).)2996 5092 y(161)p eop end +%%Page: 162 162 +TeXDict begin 162 161 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 +a 632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.162) cvn /DEST pdfmark end + 632 -5 a 640 128 a Fh(21.)41 +b(Glossar)640 360 y Fj(Assembler)h Fk(Masc)n(hinensprac)n(he.)28 +b(V)-7 b(orstufe)29 b(des)h(Ob)5 b(jekt-K)n(o)r(des.)28 +b(Programme)g(w)n(erden)h(meist)848 460 y(in)e(sogenann)n(ten)e(Ho)r(c) +n(hsprac)n(hen)g(\(wie)j(C\))f(gesc)n(hrieb)r(en,)e(die)i(dann)g(p)r +(er)g(K)n(ompilation)e(in)848 559 y(Assem)n(bler)h(umgew)n(andelt)h(w)n +(erden.)640 725 y Fj(A)-8 b(T)g(API)42 b Fk(eine)23 b(F)-7 +b(amilie)23 b(v)n(on)e(CD-R)n(OM-Laufw)n(erk)n(en,)f(die)j(an)f(den)h +(IDE-Con)n(troller)e(angesc)n(hlos-)848 825 y(sen)h(w)n(erden.)g(Es)h +(gibt)g(auc)n(h)f(SCSI-Laufw)n(erk)n(e,)f(die)i(am)f(SCSI-Con)n(troler) +f(b)r(etrieb)r(en)i(w)n(er-)848 925 y(den,)i(so)n(wie)g(propriet\344re) +e(Laufw)n(erk)n(e,)h(die)h(ihren)g(eigenen)g(Con)n(troller)e(b)r(en)n +(utzen)j(o)r(der)f(an)848 1024 y(die)i(Soundk)-5 b(arte)27 +b(angesc)n(hlossen)f(w)n(erden.)640 1190 y Fj(atoma)m(r)40 +b Fk(Eine)29 b(Grupp)r(e)e(v)n(on)g(Op)r(erationen,)g(die)g(nic)n(h)n +(t)h(w)n(eiter)f(aufgeteilt)g(w)n(erden)g(k)-5 b(ann.)640 +1356 y Fj(ausf\374hrlicher)29 b(Mo)s(dus)40 b Fk(Befehle)27 +b(pro)r(duzieren)g(im)h(ausf\374hrlic)n(hen)f(Mo)r(dus)h +(Zusatzinformatio-)848 1456 y(nen,)f(die)g(auf)f(die)h(Standardausgab)r +(e)e(o)r(der)h(Standart-F)-7 b(ehlerausgab)r(e)24 b(ausgegeb)r(en)i(w)n +(er-)848 1556 y(den.)e(Einige)g(Programme)e(bieten)i(die)g(M\366glic)n +(hk)n(eit)f(einzustellen)h(wie)f(\021redselig\021)29 +b(sie)24 b(sein)848 1655 y(sollen.)640 1821 y Fj(HTTP)42 +b Fk(Hyp)r(erT)-7 b(ext)25 b(T)-7 b(ransfer)24 b(Protok)n(oll\(Hyp)r +(ertext-\334b)r(ertragungsprotok)n(oll\).)d(Ist)26 b(ein)f(Pro-)848 +1921 y(tok)n(oll)d(zur)g(\334b)r(ertragung)g(v)n(on)g(Daten)h(\374b)r +(er)g(ein)g(Netzw)n(erk.)f(Es)h(wird)g(haupts\344c)n(hlic)n(h)f(ein-) +848 2020 y(gesetzt,)i(um)g(W)-7 b(ebseiten)25 b(aus)f(dem)h(W)-7 +b(orld)24 b(Wide)g(W)-7 b(eb)25 b(\(WWW\))h(in)f(einen)f(W)-7 +b(ebbro)n(wser)848 2120 y(zu)27 b(laden.)640 2286 y Fj(URL)43 +b Fk(Uniform)33 b(Resource)e(Lo)r(cator)h(\(Einheitlic)n(her)h +(Quellenanzeiger\).)f(Bezeic)n(hnet)g(man)h(ei-)848 2386 +y(ne)e(Un)n(terart)g(v)n(on)g(Uniform)g(Resource)g(Iden)n(ti\034ern)g +(\(URIs\).)h(URLs)g(iden)n(ti\034zieren)f(und)848 2485 +y(lok)-5 b(alisieren)28 b(eine)h(Ressource)f(\374b)r(er)i(die)f(zu)h(v) +n(erw)n(endende)e(Zugri\033smetho)r(de)h(\(z.)h(B.)f(das)848 +2585 y(v)n(erw)n(endete)d(Netzw)n(erkprotok)n(oll)f(wie)j(HTTP)g(o)r +(der)g(FTP\))g(und)g(den)g(Ort)g(\(engl.)f(lo)r(cati-)848 +2685 y(on\))c(der)g(Ressource)f(in)i(Computernetzw)n(erk)n(en.)e(Im)i +(allgemeinen)f(Sprac)n(hgebrauc)n(h)e(w)n(er-)848 2784 +y(den)i(sie)g(auc)n(h)f(als)g(In)n(ternetadresse)g(b)r(ezeic)n(hnet,)h +(w)n(ob)r(ei)f(damit)i(\(der)f(umgangssprac)n(hlic)n(h)848 +2884 y(h\344u\034gen)34 b(Gleic)n(hsetzung)h(v)n(on)f(In)n(ternet)h +(und)h(WWW)g(folgend\))f(meist)g(sp)r(eziell)h(URLs)848 +2983 y(v)n(on)26 b(W)-7 b(ebseiten)29 b(gemein)n(t)e(sind.)640 +3150 y Fj(USV)42 b Fk(Un)n(terbrec)n(h)n(ungsfreie)37 +b(Strom)n(v)n(ersorgung.)f(Sehr)j(gro\377er)e(Akku)i(\(au\035adbare)f +(Baterie\))848 3249 y(der)27 b(b)r(ei)h(einem)g(Stromausfall)e(den)i +(Rec)n(hner)f(mit)h(Strom)f(v)n(ersorgt.)640 3415 y Fj(WWW)42 +b Fk(W)-7 b(orld)18 b(Wide)h(W)-7 b(eb\(W)g(elt)n(w)n(eites)19 +b(Netz\).)g(Ist)g(ein)f(\374b)r(er)h(das)e(In)n(ternet)i(abrufbares)d +(Hyp)r(ertext-)848 3515 y(System,)34 b(b)r(estehend)h(aus)e +(elektronisc)n(hen)g(Dokumen)n(ten,)h(die)h(durc)n(h)e(Hyp)r(erlinks)h +(mit-)848 3614 y(einander)27 b(v)n(erkn)n(\374pft)g(sind.)640 +5092 y(162)p eop end +%%Page: 163 163 +TeXDict begin 163 162 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 12 -5 a +SDict begin H.S end + 12 -5 a +12 -5 a +SDict begin H.R end + 12 -5 a 12 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.163) cvn /DEST pdfmark end + 12 -5 a 20 277 a +SDict begin H.S end + 20 277 a 20 +277 a +SDict begin 12 H.A end + 20 277 a 20 277 a +SDict begin [/View [/XYZ H.V]/Dest (chapter*.34) cvn /DEST pdfmark +end + 20 277 a 520 x Fm(Stichw)-6 b(o)g +(rtverzeichnis)20 1168 y Fk(&,)135 1168 y +SDict begin H.S end + 135 1168 a +Fk(30)218 1115 y +SDict begin H.R end + 218 1115 a 218 1168 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.30) cvn H.B /ANN pdfmark end + 218 1168 a 20 +1345 a Fk(a\033s,)193 1345 y +SDict begin H.S end + 193 1345 a Fk(49)276 1292 +y +SDict begin H.R end + 276 1292 a 276 1345 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.49) cvn H.B /ANN pdfmark end + 276 1345 a 20 1445 a Fk(alias,)233 +1445 y +SDict begin H.S end + 233 1445 a Fk(22)316 1391 y +SDict begin H.R end + 316 1391 a 316 1445 +a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.22) cvn H.B /ANN pdfmark end + 316 1445 a 20 1544 a Fk(apt,)191 1544 y +SDict begin H.S end + 191 1544 a +Fk(32)274 1491 y +SDict begin H.R end + 274 1491 a 274 1544 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.32) cvn H.B /ANN pdfmark end + 274 1544 a 20 +1644 a Fk(apt-get,)329 1644 y +SDict begin H.S end + 329 1644 a Fk(32)412 1591 +y +SDict begin H.R end + 412 1591 a 412 1644 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.32) cvn H.B /ANN pdfmark end + 412 1644 a 20 1821 a Fk(bash,)237 +1821 y +SDict begin H.S end + 237 1821 a Fk(55)320 1768 y +SDict begin H.R end + 320 1768 a 320 1821 +a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.55) cvn H.B /ANN pdfmark end + 320 1821 a 20 1921 a Fk(bg,)158 1921 y +SDict begin H.S end + 158 1921 a Fk(30)241 +1867 y +SDict begin H.R end + 241 1867 a 241 1921 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.30) cvn H.B /ANN pdfmark end + 241 1921 a 20 2020 a Fk(Bildsc)n(hirmsc)n +(honer,)730 2020 y +SDict begin H.S end + 730 2020 a Fk(19)813 1967 y +SDict begin H.R end + 813 1967 +a 813 2020 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.19) cvn H.B /ANN pdfmark end + 813 2020 a Fk(,)352 2120 y +SDict begin H.S end + 352 2120 a Fk(39)435 +2067 y +SDict begin H.R end + 435 2067 a 435 2120 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.39) cvn H.B /ANN pdfmark end + 435 2120 a 20 2220 a Fk(blo)r(c)n(k)n +(orien)n(tiert,)595 2220 y +SDict begin H.S end + 595 2220 a Fk(28)678 2166 +y +SDict begin H.R end + 678 2166 a 678 2220 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.28) cvn H.B /ANN pdfmark end + 678 2220 a 20 2319 a Fk(bzip2,)264 +2319 y +SDict begin H.S end + 264 2319 a Fk(17)347 2266 y +SDict begin H.R end + 347 2266 a 347 2319 +a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.17) cvn H.B /ANN pdfmark end + 347 2319 a 20 2496 a Fk(cat,)181 2496 y +SDict begin H.S end + 181 2496 a +Fk(23)264 2443 y +SDict begin H.R end + 264 2443 a 264 2496 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.23) cvn H.B /ANN pdfmark end + 264 2496 a 20 +2596 a Fk(cd,)154 2596 y +SDict begin H.S end + 154 2596 a Fk(23)237 2543 y +SDict begin H.R end + +237 2543 a 237 2596 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.23) cvn H.B /ANN pdfmark end + 237 2596 a 20 2696 a Fk(cfdsik,)279 +2696 y +SDict begin H.S end + 279 2696 a Fk(27)362 2642 y +SDict begin H.R end + 362 2642 a 362 2696 +a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.27) cvn H.B /ANN pdfmark end + 362 2696 a 20 2795 a Fk(c)n(hgrp,)272 2795 y +SDict begin H.S end + 272 2795 +a Fk(28)355 2742 y +SDict begin H.R end + 355 2742 a 355 2795 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.28) cvn H.B /ANN pdfmark end + 355 2795 a 20 +2895 a Fk(c)n(hmo)r(d,)311 2895 y +SDict begin H.S end + 311 2895 a Fk(28)394 +2842 y +SDict begin H.R end + 394 2842 a 394 2895 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.28) cvn H.B /ANN pdfmark end + 394 2895 a 20 2994 a Fk(c)n(ho)n(wn,)297 +2994 y +SDict begin H.S end + 297 2994 a Fk(28)380 2941 y +SDict begin H.R end + 380 2941 a 380 2994 +a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.28) cvn H.B /ANN pdfmark end + 380 2994 a 20 3094 a Fk(c)n(hro)r(ot,)302 3094 y +SDict begin H.S end + 302 +3094 a Fk(31)385 3041 y +SDict begin H.R end + 385 3041 a 385 3094 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.31) cvn H.B /ANN pdfmark end + 385 3094 +a 20 3194 a Fk(clo)r(c)n(k,)253 3194 y +SDict begin H.S end + 253 3194 a Fk(21)336 +3140 y +SDict begin H.R end + 336 3140 a 336 3194 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.21) cvn H.B /ANN pdfmark end + 336 3194 a 20 3293 a Fk(cmp,)223 +3293 y +SDict begin H.S end + 223 3293 a Fk(25)306 3240 y +SDict begin H.R end + 306 3240 a 306 3293 +a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.25) cvn H.B /ANN pdfmark end + 306 3293 a 20 3393 a Fk(comm,)288 3393 y +SDict begin H.S end + 288 3393 a +Fk(25)371 3340 y +SDict begin H.R end + 371 3340 a 371 3393 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.25) cvn H.B /ANN pdfmark end + 371 3393 a 20 +3493 a Fk(compress,)399 3493 y +SDict begin H.S end + 399 3493 a Fk(25)482 3439 +y +SDict begin H.R end + 482 3439 a 482 3493 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.25) cvn H.B /ANN pdfmark end + 482 3493 a 20 3592 a Fk(cp,)154 +3592 y +SDict begin H.S end + 154 3592 a Fk(23)237 3539 y +SDict begin H.R end + 237 3539 a 237 3592 +a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.23) cvn H.B /ANN pdfmark end + 237 3592 a 20 3692 a Fk(csh,)187 3692 y +SDict begin H.S end + 187 3692 a +Fk(55)270 3639 y +SDict begin H.R end + 270 3639 a 270 3692 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.55) cvn H.B /ANN pdfmark end + 270 3692 a 20 +3869 a Fk(date,)228 3869 y +SDict begin H.S end + 228 3869 a Fk(20)311 3816 +y +SDict begin H.R end + 311 3816 a 311 3869 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.20) cvn H.B /ANN pdfmark end + 311 3869 a Fk(,)361 3869 y +SDict begin H.S end + 361 +3869 a Fk(21)444 3816 y +SDict begin H.R end + 444 3816 a 444 3869 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.21) cvn H.B /ANN pdfmark end + 444 3869 +a 20 3969 a Fk(Datum,)323 3969 y +SDict begin H.S end + 323 3969 a Fk(21)406 +3915 y +SDict begin H.R end + 406 3915 a 406 3969 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.21) cvn H.B /ANN pdfmark end + 406 3969 a 20 4068 a Fk(dd,)163 +4068 y +SDict begin H.S end + 163 4068 a Fk(27)246 4015 y +SDict begin H.R end + 246 4015 a 246 4068 +a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.27) cvn H.B /ANN pdfmark end + 246 4068 a 20 4168 a Fk(df,)142 4168 y +SDict begin H.S end + 142 4168 a Fk(20)225 +4115 y +SDict begin H.R end + 225 4115 a 225 4168 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.20) cvn H.B /ANN pdfmark end + 225 4168 a 20 4268 a Fk(di\033,)188 +4268 y +SDict begin H.S end + 188 4268 a Fk(25)271 4214 y +SDict begin H.R end + 271 4214 a 271 4268 +a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.25) cvn H.B /ANN pdfmark end + 271 4268 a 20 4367 a Fk(dmesg,)297 4367 y +SDict begin H.S end + 297 4367 +a Fk(17)380 4314 y +SDict begin H.R end + 380 4314 a 380 4367 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.17) cvn H.B /ANN pdfmark end + 380 4367 a 20 +4467 a Fk(dpkg,)248 4467 y +SDict begin H.S end + 248 4467 a Fk(17)331 4413 +y +SDict begin H.R end + 331 4413 a 331 4467 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.17) cvn H.B /ANN pdfmark end + 331 4467 a Fk(,)382 4467 y +SDict begin H.S end + 382 +4467 a Fk(32)465 4413 y +SDict begin H.R end + 465 4413 a 465 4467 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.32) cvn H.B /ANN pdfmark end + 465 4467 +a 20 4644 a Fk(ec)n(ho,)230 4644 y +SDict begin H.S end + 230 4644 a Fk(20)313 +4591 y +SDict begin H.R end + 313 4591 a 313 4644 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.20) cvn H.B /ANN pdfmark end + 313 4644 a 20 4744 a Fk(egrep,)265 +4744 y +SDict begin H.S end + 265 4744 a Fk(24)348 4690 y +SDict begin H.R end + 348 4690 a 348 4744 +a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.24) cvn H.B /ANN pdfmark end + 348 4744 a 1150 1168 a Fk(Eigen)n(t\374mer,)1620 1168 +y +SDict begin H.S end + 1620 1168 a Fk(28)1703 1115 y +SDict begin H.R end + 1703 1115 a 1703 1168 +a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.28) cvn H.B /ANN pdfmark end + 1703 1168 a 1150 1268 a Fk(emerge,)1455 1268 y +SDict begin H.S end + 1455 +1268 a Fk(33)1538 1215 y +SDict begin H.R end + 1538 1215 a 1538 1268 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.33) cvn H.B /ANN pdfmark end + 1538 +1268 a 1150 1368 a Fk(en)n(v-up)r(date,)1605 1368 y +SDict begin H.S end + 1605 +1368 a Fk(31)1688 1315 y +SDict begin H.R end + 1688 1315 a 1688 1368 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.31) cvn H.B /ANN pdfmark end + 1688 +1368 a 1150 1468 a Fk(equery)f(,)1434 1468 y +SDict begin H.S end + 1434 1468 +a Fk(33)1517 1415 y +SDict begin H.R end + 1517 1415 a 1517 1468 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.33) cvn H.B /ANN pdfmark end + 1517 1468 +a 1150 1568 a Fk(etc-up)r(date,)1586 1568 y +SDict begin H.S end + 1586 1568 +a Fk(33)1669 1515 y +SDict begin H.R end + 1669 1515 a 1669 1568 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.33) cvn H.B /ANN pdfmark end + 1669 1568 +a 1150 1668 a Fk(euse,)1354 1668 y +SDict begin H.S end + 1354 1668 a Fk(33)1437 +1615 y +SDict begin H.R end + 1437 1615 a 1437 1668 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.33) cvn H.B /ANN pdfmark end + 1437 1668 a 1150 1768 +a Fk(expand,)1462 1768 y +SDict begin H.S end + 1462 1768 a Fk(25)1545 1715 +y +SDict begin H.R end + 1545 1715 a 1545 1768 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.25) cvn H.B /ANN pdfmark end + 1545 1768 a 1150 1868 a Fk(exp)r(ort,)1437 +1868 y +SDict begin H.S end + 1437 1868 a Fk(31)1520 1815 y +SDict begin H.R end + 1520 1815 a 1520 +1868 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.31) cvn H.B /ANN pdfmark end + 1520 1868 a Fk(,)1570 1868 y +SDict begin H.S end + 1570 1868 a Fk(38)1653 +1815 y +SDict begin H.R end + 1653 1815 a 1653 1868 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.38) cvn H.B /ANN pdfmark end + 1653 1868 a Fk(,)1704 +1868 y +SDict begin H.S end + 1704 1868 a Fk(55)1787 1815 y +SDict begin H.R end + 1787 1815 a 1787 +1868 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.55) cvn H.B /ANN pdfmark end + 1787 1868 a 1150 1969 a Fk(ext2,)1356 1969 y +SDict begin H.S end + 1356 +1969 a Fk(49)1439 1915 y +SDict begin H.R end + 1439 1915 a 1439 1969 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.49) cvn H.B /ANN pdfmark end + 1439 +1969 a 1150 2069 a Fk(ext3,)1356 2069 y +SDict begin H.S end + 1356 2069 a Fk(49)1439 +2015 y +SDict begin H.R end + 1439 2015 a 1439 2069 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.49) cvn H.B /ANN pdfmark end + 1439 2069 a 1150 2260 +a Fk(fak)n(ero)r(ot,)1496 2260 y +SDict begin H.S end + 1496 2260 a Fk(17)1579 +2206 y +SDict begin H.R end + 1579 2206 a 1579 2260 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.17) cvn H.B /ANN pdfmark end + 1579 2260 a 1150 2360 +a Fk(fdformat,)1515 2360 y +SDict begin H.S end + 1515 2360 a Fk(27)1598 2306 +y +SDict begin H.R end + 1598 2306 a 1598 2360 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.27) cvn H.B /ANN pdfmark end + 1598 2360 a 1150 2460 a Fk(fdisk,)1372 +2460 y +SDict begin H.S end + 1372 2460 a Fk(27)1455 2407 y +SDict begin H.R end + 1455 2407 a 1455 +2460 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.27) cvn H.B /ANN pdfmark end + 1455 2460 a 1150 2560 a Fk(fg,)1268 2560 y +SDict begin H.S end + 1268 +2560 a Fk(30)1351 2507 y +SDict begin H.R end + 1351 2507 a 1351 2560 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.30) cvn H.B /ANN pdfmark end + 1351 +2560 a 1150 2660 a Fk(fgrep,)1383 2660 y +SDict begin H.S end + 1383 2660 a +Fk(24)1467 2607 y +SDict begin H.R end + 1467 2607 a 1467 2660 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.24) cvn H.B /ANN pdfmark end + 1467 2660 a +1150 2760 a Fk(\034le,)1307 2760 y +SDict begin H.S end + 1307 2760 a Fk(22)1390 +2707 y +SDict begin H.R end + 1390 2707 a 1390 2760 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.22) cvn H.B /ANN pdfmark end + 1390 2760 a 1150 2860 +a Fk(\034nd,)1339 2860 y +SDict begin H.S end + 1339 2860 a Fk(24)1422 2807 +y +SDict begin H.R end + 1422 2807 a 1422 2860 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.24) cvn H.B /ANN pdfmark end + 1422 2860 a 1150 2960 a Fk(\034nger,)1404 +2960 y +SDict begin H.S end + 1404 2960 a Fk(20)1487 2907 y +SDict begin H.R end + 1487 2907 a 1487 +2960 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.20) cvn H.B /ANN pdfmark end + 1487 2960 a 1150 3060 a Fk(free,)1333 3060 y +SDict begin H.S end + 1333 +3060 a Fk(20)1416 3007 y +SDict begin H.R end + 1416 3007 a 1416 3060 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.20) cvn H.B /ANN pdfmark end + 1416 +3060 a 1150 3160 a Fk(fsc)n(k,)1338 3160 y +SDict begin H.S end + 1338 3160 +a Fk(27)1421 3107 y +SDict begin H.R end + 1421 3107 a 1421 3160 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.27) cvn H.B /ANN pdfmark end + 1421 3160 +a 1150 3261 a Fk(fstab,)1379 3261 y +SDict begin H.S end + 1379 3261 a Fk(48)1462 +3207 y +SDict begin H.R end + 1462 3207 a 1462 3261 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.48) cvn H.B /ANN pdfmark end + 1462 3261 a 1150 3361 +a Fk(ftp,)1305 3361 y +SDict begin H.S end + 1305 3361 a Fk(34)1388 3307 y +SDict begin H.R end + 1388 +3307 a 1388 3361 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.34) cvn H.B /ANN pdfmark end + 1388 3361 a 1150 3552 a Fk(gpg,)1330 +3552 y +SDict begin H.S end + 1330 3552 a Fk(17)1413 3498 y +SDict begin H.R end + 1413 3498 a 1413 +3552 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.17) cvn H.B /ANN pdfmark end + 1413 3552 a Fk(,)1464 3552 y +SDict begin H.S end + 1464 3552 a Fk(36)1547 +3498 y +SDict begin H.R end + 1547 3498 a 1547 3552 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.36) cvn H.B /ANN pdfmark end + 1547 3552 a 1150 3652 +a Fk(grep,)1358 3652 y +SDict begin H.S end + 1358 3652 a Fk(24)1441 3598 y +SDict begin H.R end + +1441 3598 a 1441 3652 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.24) cvn H.B /ANN pdfmark end + 1441 3652 a 1150 3752 a Fk(group,)1409 +3752 y +SDict begin H.S end + 1409 3752 a Fk(49)1492 3699 y +SDict begin H.R end + 1492 3699 a 1492 +3752 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.49) cvn H.B /ANN pdfmark end + 1492 3752 a 1150 3852 a Fk(grub,)1367 3852 y +SDict begin H.S end + 1367 +3852 a Fk(31)1450 3799 y +SDict begin H.R end + 1450 3799 a 1450 3852 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.31) cvn H.B /ANN pdfmark end + 1450 +3852 a 1150 3952 a Fk(Grupp)r(e,)1476 3952 y +SDict begin H.S end + 1476 3952 +a Fk(28)1559 3899 y +SDict begin H.R end + 1559 3899 a 1559 3952 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.28) cvn H.B /ANN pdfmark end + 1559 3952 +a 1150 4052 a Fk(gzip,)1349 4052 y +SDict begin H.S end + 1349 4052 a Fk(17)1432 +3999 y +SDict begin H.R end + 1432 3999 a 1432 4052 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.17) cvn H.B /ANN pdfmark end + 1432 4052 a 1150 4243 +a Fk(halt,)1344 4243 y +SDict begin H.S end + 1344 4243 a Fk(19)1427 4190 y +SDict begin H.R end + +1427 4190 a 1427 4243 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.19) cvn H.B /ANN pdfmark end + 1427 4243 a 1150 4343 a Fk(Hardlink,)1520 +4343 y +SDict begin H.S end + 1520 4343 a Fk(23)1603 4290 y +SDict begin H.R end + 1603 4290 a 1603 +4343 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.23) cvn H.B /ANN pdfmark end + 1603 4343 a 1150 4443 a Fk(head,)1372 4443 y +SDict begin H.S end + 1372 +4443 a Fk(23)1455 4390 y +SDict begin H.R end + 1455 4390 a 1455 4443 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.23) cvn H.B /ANN pdfmark end + 1455 +4443 a 1150 4543 a Fk(host,)1354 4543 y +SDict begin H.S end + 1354 4543 a Fk(34)1437 +4490 y +SDict begin H.R end + 1437 4490 a 1437 4543 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.34) cvn H.B /ANN pdfmark end + 1437 4543 a 1150 4643 +a Fk(hosts,)1386 4643 y +SDict begin H.S end + 1386 4643 a Fk(50)1469 4590 y +SDict begin H.R end + +1469 4590 a 1469 4643 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.50) cvn H.B /ANN pdfmark end + 1469 4643 a 1150 4744 a Fk(hpfs,)1351 +4744 y +SDict begin H.S end + 1351 4744 a Fk(49)1434 4690 y +SDict begin H.R end + 1434 4690 a 1434 +4744 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.49) cvn H.B /ANN pdfmark end + 1434 4744 a 2281 1168 a Fk(h)n(top,)2495 1168 +y +SDict begin H.S end + 2495 1168 a Fk(30)2578 1115 y +SDict begin H.R end + 2578 1115 a 2578 1168 +a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.30) cvn H.B /ANN pdfmark end + 2578 1168 a 2281 1345 a Fk(ifcon\034g,)2592 1345 y +SDict begin H.S end + +2592 1345 a Fk(34)2675 1292 y +SDict begin H.R end + 2675 1292 a 2675 1345 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.34) cvn H.B /ANN pdfmark end + +2675 1345 a 2281 1445 a Fk(info,)2467 1445 y +SDict begin H.S end + 2467 1445 +a Fk(20)2550 1391 y +SDict begin H.R end + 2550 1391 a 2550 1445 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.20) cvn H.B /ANN pdfmark end + 2550 1445 +a 2281 1544 a Fk(init,)2456 1544 y +SDict begin H.S end + 2456 1544 a Fk(19)2539 +1491 y +SDict begin H.R end + 2539 1491 a 2539 1544 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.19) cvn H.B /ANN pdfmark end + 2539 1544 a Fk(,)2590 +1544 y +SDict begin H.S end + 2590 1544 a Fk(20)2673 1491 y +SDict begin H.R end + 2673 1491 a 2673 +1544 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.20) cvn H.B /ANN pdfmark end + 2673 1544 a 2281 1644 a Fk(initctl,)2548 1644 +y +SDict begin H.S end + 2548 1644 a Fk(20)2631 1591 y +SDict begin H.R end + 2631 1591 a 2631 1644 +a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.20) cvn H.B /ANN pdfmark end + 2631 1644 a 2281 1743 a Fk(insmo)r(d,)2592 1743 y +SDict begin H.S end + 2592 +1743 a Fk(17)2675 1690 y +SDict begin H.R end + 2675 1690 a 2675 1743 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.17) cvn H.B /ANN pdfmark end + 2675 +1743 a 2281 1843 a Fk(ip,)2401 1843 y +SDict begin H.S end + 2401 1843 a Fk(34)2484 +1790 y +SDict begin H.R end + 2484 1790 a 2484 1843 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.34) cvn H.B /ANN pdfmark end + 2484 1843 a 2281 1943 +a Fk(iso9660,)2595 1943 y +SDict begin H.S end + 2595 1943 a Fk(49)2678 1889 +y +SDict begin H.R end + 2678 1889 a 2678 1943 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.49) cvn H.B /ANN pdfmark end + 2678 1943 a 2281 2120 a Fk(jobs,)2477 +2120 y +SDict begin H.S end + 2477 2120 a Fk(30)2560 2067 y +SDict begin H.R end + 2560 2067 a 2560 +2120 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.30) cvn H.B /ANN pdfmark end + 2560 2120 a 2281 2297 a Fk(Kernel,)2571 2297 y +SDict begin H.S end + +2571 2297 a Fk(17)2654 2244 y +SDict begin H.R end + 2654 2244 a 2654 2297 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.17) cvn H.B /ANN pdfmark end + +2654 2297 a 2281 2397 a Fk(kill,)2444 2397 y +SDict begin H.S end + 2444 2397 +a Fk(30)2527 2343 y +SDict begin H.R end + 2527 2343 a 2527 2397 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.30) cvn H.B /ANN pdfmark end + 2527 2397 +a 2281 2496 a Fk(ksh,)2454 2496 y +SDict begin H.S end + 2454 2496 a Fk(55)2537 +2443 y +SDict begin H.R end + 2537 2443 a 2537 2496 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.55) cvn H.B /ANN pdfmark end + 2537 2496 a 2281 2673 +a Fk(last,)2461 2673 y +SDict begin H.S end + 2461 2673 a Fk(20)2544 2620 y +SDict begin H.R end + +2544 2620 a 2544 2673 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.20) cvn H.B /ANN pdfmark end + 2544 2673 a 2281 2773 a Fk(ldd,)2447 +2773 y +SDict begin H.S end + 2447 2773 a Fk(34)2530 2720 y +SDict begin H.R end + 2530 2720 a 2530 +2773 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.34) cvn H.B /ANN pdfmark end + 2530 2773 a 2281 2873 a Fk(less,)2457 2873 y +SDict begin H.S end + 2457 +2873 a Fk(23)2540 2819 y +SDict begin H.R end + 2540 2819 a 2540 2873 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.23) cvn H.B /ANN pdfmark end + 2540 +2873 a 2281 2972 a Fk(ln,)2401 2972 y +SDict begin H.S end + 2401 2972 a Fk(23)2484 +2919 y +SDict begin H.R end + 2484 2919 a 2484 2972 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.23) cvn H.B /ANN pdfmark end + 2484 2972 a 2281 3072 +a Fk(lo)r(cate,)2546 3072 y +SDict begin H.S end + 2546 3072 a Fk(55)2629 3019 +y +SDict begin H.R end + 2629 3019 a 2629 3072 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.55) cvn H.B /ANN pdfmark end + 2629 3072 a 2281 3172 a Fk(login,)2507 +3172 y +SDict begin H.S end + 2507 3172 a Fk(19)2590 3118 y +SDict begin H.R end + 2590 3118 a 2590 +3172 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.19) cvn H.B /ANN pdfmark end + 2590 3172 a 2281 3271 a Fk(logout,)2557 3271 y +SDict begin H.S end + +2557 3271 a Fk(19)2640 3218 y +SDict begin H.R end + 2640 3218 a 2640 3271 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.19) cvn H.B /ANN pdfmark end + +2640 3271 a 2281 3371 a Fk(losetup,)2590 3371 y +SDict begin H.S end + 2590 +3371 a Fk(28)2673 3318 y +SDict begin H.R end + 2673 3318 a 2673 3371 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.28) cvn H.B /ANN pdfmark end + 2673 +3371 a 2281 3470 a Fk(lp)r(q,)2447 3470 y +SDict begin H.S end + 2447 3470 a +Fk(25)2530 3417 y +SDict begin H.R end + 2530 3417 a 2530 3470 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.25) cvn H.B /ANN pdfmark end + 2530 3470 a +2281 3570 a Fk(lpr,)2433 3570 y +SDict begin H.S end + 2433 3570 a Fk(25)2516 +3517 y +SDict begin H.R end + 2516 3517 a 2516 3570 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.25) cvn H.B /ANN pdfmark end + 2516 3570 a 2281 3670 +a Fk(lprm,)2502 3670 y +SDict begin H.S end + 2502 3670 a Fk(25)2585 3616 y +SDict begin H.R end + +2585 3616 a 2585 3670 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.25) cvn H.B /ANN pdfmark end + 2585 3670 a 2281 3769 a Fk(ls,)2387 +3769 y +SDict begin H.S end + 2387 3769 a Fk(22)2470 3716 y +SDict begin H.R end + 2470 3716 a 2470 +3769 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.22) cvn H.B /ANN pdfmark end + 2470 3769 a 2281 3869 a Fk(lsmo)r(d,)2546 3869 +y +SDict begin H.S end + 2546 3869 a Fk(17)2629 3816 y +SDict begin H.R end + 2629 3816 a 2629 3869 +a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.17) cvn H.B /ANN pdfmark end + 2629 3869 a 2281 4046 a Fk(mail,)2488 4046 y +SDict begin H.S end + 2488 4046 +a Fk(37)2571 3993 y +SDict begin H.R end + 2571 3993 a 2571 4046 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.37) cvn H.B /ANN pdfmark end + 2571 4046 +a 2281 4146 a Fk(mak)n(e,)2521 4146 y +SDict begin H.S end + 2521 4146 a Fk(17)2604 +4093 y +SDict begin H.R end + 2604 4093 a 2604 4146 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.17) cvn H.B /ANN pdfmark end + 2604 4146 a Fk(,)2654 +4146 y +SDict begin H.S end + 2654 4146 a Fk(34)2737 4093 y +SDict begin H.R end + 2737 4093 a 2737 +4146 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.34) cvn H.B /ANN pdfmark end + 2737 4146 a 2281 4245 a Fk(mak)n(e-kpkg,)2723 +4245 y +SDict begin H.S end + 2723 4245 a Fk(17)2806 4192 y +SDict begin H.R end + 2806 4192 a 2806 +4245 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.17) cvn H.B /ANN pdfmark end + 2806 4245 a 2281 4345 a Fk(man,)2488 4345 y +SDict begin H.S end + 2488 +4345 a Fk(20)2571 4292 y +SDict begin H.R end + 2571 4292 a 2571 4345 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.20) cvn H.B /ANN pdfmark end + 2571 +4345 a 2281 4445 a Fk(mfomat,)2610 4445 y +SDict begin H.S end + 2610 4445 a +Fk(27)2693 4391 y +SDict begin H.R end + 2693 4391 a 2693 4445 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.27) cvn H.B /ANN pdfmark end + 2693 4445 a +2281 4544 a Fk(minix,)2537 4544 y +SDict begin H.S end + 2537 4544 a Fk(49)2620 +4491 y +SDict begin H.R end + 2620 4491 a 2620 4544 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.49) cvn H.B /ANN pdfmark end + 2620 4544 a 2281 4644 +a Fk(mkdir,)2546 4644 y +SDict begin H.S end + 2546 4644 a Fk(23)2629 4591 y +SDict begin H.R end + +2629 4591 a 2629 4644 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.23) cvn H.B /ANN pdfmark end + 2629 4644 a 2281 4744 a Fk(mkdosfs,)2623 +4744 y +SDict begin H.S end + 2623 4744 a Fk(27)2706 4690 y +SDict begin H.R end + 2706 4690 a 2706 +4744 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.27) cvn H.B /ANN pdfmark end + 2706 4744 a 2996 5092 a Fk(163)p eop end +%%Page: 164 164 +TeXDict begin 164 163 bop 0 0 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + 0 0 a 632 -5 a +SDict begin H.S end + 632 -5 +a 632 -5 a +SDict begin H.R end + 632 -5 a 632 -5 a +SDict begin [/View [/XYZ H.V]/Dest (page.164) cvn /DEST pdfmark end + 632 -5 a 640 128 a Fh(STICHW)n(OR)-7 +b(TVERZEICHNIS)640 360 y Fk(mk)n(e2fs,)938 360 y +SDict begin H.S end + 938 +360 a Fk(27)1021 307 y +SDict begin H.R end + 1021 307 a 1021 360 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.27) cvn H.B /ANN pdfmark end + 1021 360 +a 640 460 a Fk(mkfs,)862 460 y +SDict begin H.S end + 862 460 a Fk(27)945 406 +y +SDict begin H.R end + 945 406 a 945 460 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.27) cvn H.B /ANN pdfmark end + 945 460 a 640 559 a Fk(mo)r(dprob)r(e,)1055 +559 y +SDict begin H.S end + 1055 559 a Fk(28)1138 506 y +SDict begin H.R end + 1138 506 a 1138 559 +a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.28) cvn H.B /ANN pdfmark end + 1138 559 a 640 659 a Fk(more,)871 659 y +SDict begin H.S end + 871 659 a Fk(23)954 +606 y +SDict begin H.R end + 954 606 a 954 659 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.23) cvn H.B /ANN pdfmark end + 954 659 a 640 758 a Fk(moun)n(t,)924 +758 y +SDict begin H.S end + 924 758 a Fk(27)1007 705 y +SDict begin H.R end + 1007 705 a 1007 758 +a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.27) cvn H.B /ANN pdfmark end + 1007 758 a 640 858 a Fk(msdos,)913 858 y +SDict begin H.S end + 913 858 a +Fk(49)996 805 y +SDict begin H.R end + 996 805 a 996 858 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.49) cvn H.B /ANN pdfmark end + 996 858 a 640 958 +a Fk(m)n(v,)802 958 y +SDict begin H.S end + 802 958 a Fk(23)885 904 y +SDict begin H.R end + 885 904 +a 885 958 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.23) cvn H.B /ANN pdfmark end + 885 958 a 640 1136 a Fk(ncpfs,)878 1136 y +SDict begin H.S end + +878 1136 a Fk(49)961 1083 y +SDict begin H.R end + 961 1083 a 961 1136 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.49) cvn H.B /ANN pdfmark end + 961 +1136 a 640 1236 a Fk(netcat,)917 1236 y +SDict begin H.S end + 917 1236 a Fk(34)1000 +1183 y +SDict begin H.R end + 1000 1183 a 1000 1236 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.34) cvn H.B /ANN pdfmark end + 1000 1236 a 640 1335 a +Fk(netdate,)963 1335 y +SDict begin H.S end + 963 1335 a Fk(21)1046 1282 y +SDict begin H.R end + 1046 +1282 a 1046 1335 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.21) cvn H.B /ANN pdfmark end + 1046 1335 a 640 1435 a Fk(nfs,)795 +1435 y +SDict begin H.S end + 795 1435 a Fk(49)878 1382 y +SDict begin H.R end + 878 1382 a 878 1435 +a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.49) cvn H.B /ANN pdfmark end + 878 1435 a 640 1535 a Fk(nl,)760 1535 y +SDict begin H.S end + 760 1535 a +Fk(23)843 1481 y +SDict begin H.R end + 843 1481 a 843 1535 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.23) cvn H.B /ANN pdfmark end + 843 1535 a 640 +1634 a Fk(nmap,)894 1634 y +SDict begin H.S end + 894 1634 a Fk(34)977 1581 +y +SDict begin H.R end + 977 1581 a 977 1634 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.34) cvn H.B /ANN pdfmark end + 977 1634 a 640 1734 a Fk(nslo)r(okup,)1014 +1734 y +SDict begin H.S end + 1014 1734 a Fk(34)1097 1681 y +SDict begin H.R end + 1097 1681 a 1097 +1734 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.34) cvn H.B /ANN pdfmark end + 1097 1734 a 640 1834 a Fk(n)n(tfs,)825 1834 y +SDict begin H.S end + +825 1834 a Fk(49)908 1780 y +SDict begin H.R end + 908 1780 a 908 1834 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.49) cvn H.B /ANN pdfmark end + 908 +1834 a 640 2012 a Fk(o)r(d,)781 2012 y +SDict begin H.S end + 781 2012 a Fk(23)864 +1959 y +SDict begin H.R end + 864 1959 a 864 2012 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.23) cvn H.B /ANN pdfmark end + 864 2012 a 640 2191 a Fk(passwd,)950 +2191 y +SDict begin H.S end + 950 2191 a Fk(28)1033 2137 y +SDict begin H.R end + 1033 2137 a 1033 +2191 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.28) cvn H.B /ANN pdfmark end + 1033 2191 a Fk(,)1084 2191 y +SDict begin H.S end + 1084 2191 a Fk(53)1167 +2137 y +SDict begin H.R end + 1167 2137 a 1167 2191 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.53) cvn H.B /ANN pdfmark end + 1167 2191 a 640 2290 a +Fk(ping,)848 2290 y +SDict begin H.S end + 848 2290 a Fk(34)931 2237 y +SDict begin H.R end + 931 2237 +a 931 2290 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.34) cvn H.B /ANN pdfmark end + 931 2290 a 640 2390 a Fk(pr,)770 2390 y +SDict begin H.S end + +770 2390 a Fk(25)853 2337 y +SDict begin H.R end + 853 2337 a 853 2390 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.25) cvn H.B /ANN pdfmark end + 853 +2390 a 640 2490 a Fk(pro)r(c,)850 2490 y +SDict begin H.S end + 850 2490 a Fk(49)933 +2436 y +SDict begin H.R end + 933 2436 a 933 2490 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.49) cvn H.B /ANN pdfmark end + 933 2490 a 640 2589 a Fk(ps,)770 +2589 y +SDict begin H.S end + 770 2589 a Fk(30)853 2536 y +SDict begin H.R end + 853 2536 a 853 2589 +a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.30) cvn H.B /ANN pdfmark end + 853 2589 a 640 2689 a Fk(pstree,)908 2689 y +SDict begin H.S end + 908 2689 +a Fk(30)991 2635 y +SDict begin H.R end + 991 2635 a 991 2689 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.30) cvn H.B /ANN pdfmark end + 991 2689 a 640 +2788 a Fk(p)n(wd,)841 2788 y +SDict begin H.S end + 841 2788 a Fk(20)924 2735 +y +SDict begin H.R end + 924 2735 a 924 2788 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.20) cvn H.B /ANN pdfmark end + 924 2788 a 640 2967 a Fk(rcsshd,)918 +2967 y +SDict begin H.S end + 918 2967 a Fk(36)1001 2914 y +SDict begin H.R end + 1001 2914 a 1001 +2967 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.36) cvn H.B /ANN pdfmark end + 1001 2967 a 640 3067 a Fk(reb)r(o)r(ot,)926 3067 +y +SDict begin H.S end + 926 3067 a Fk(19)1009 3013 y +SDict begin H.R end + 1009 3013 a 1009 3067 +a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.19) cvn H.B /ANN pdfmark end + 1009 3067 a 640 3166 a Fk(reco)r(de,)924 3166 y +SDict begin H.S end + 924 +3166 a Fk(23)1007 3113 y +SDict begin H.R end + 1007 3113 a 1007 3166 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.23) cvn H.B /ANN pdfmark end + 1007 +3166 a 640 3266 a Fk(reiserfs,)944 3266 y +SDict begin H.S end + 944 3266 a +Fk(49)1027 3213 y +SDict begin H.R end + 1027 3213 a 1027 3266 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.49) cvn H.B /ANN pdfmark end + 1027 3266 a +640 3365 a Fk(revdep-rebuild,)1215 3365 y +SDict begin H.S end + 1215 3365 a +Fk(33)1298 3312 y +SDict begin H.R end + 1298 3312 a 1298 3365 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.33) cvn H.B /ANN pdfmark end + 1298 3365 a +640 3465 a Fk(rlogin,)899 3465 y +SDict begin H.S end + 899 3465 a Fk(34)982 +3412 y +SDict begin H.R end + 982 3412 a 982 3465 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.34) cvn H.B /ANN pdfmark end + 982 3465 a 640 3565 a Fk(rm,)793 +3565 y +SDict begin H.S end + 793 3565 a Fk(23)876 3511 y +SDict begin H.R end + 876 3511 a 876 3565 +a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.23) cvn H.B /ANN pdfmark end + 876 3565 a 640 3664 a Fk(rmdir,)894 3664 y +SDict begin H.S end + 894 3664 +a Fk(23)977 3611 y +SDict begin H.R end + 977 3611 a 977 3664 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.23) cvn H.B /ANN pdfmark end + 977 3664 a 640 +3764 a Fk(rmmo)r(d,)952 3764 y +SDict begin H.S end + 952 3764 a Fk(17)1035 +3711 y +SDict begin H.R end + 1035 3711 a 1035 3764 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.17) cvn H.B /ANN pdfmark end + 1035 3764 a 1770 360 a +Fk(rpm,)1969 360 y +SDict begin H.S end + 1969 360 a Fk(32)2052 307 y +SDict begin H.R end + 2052 307 +a 2052 360 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.32) cvn H.B /ANN pdfmark end + 2052 360 a 1770 557 a Fk(sax,)1939 557 y +SDict begin H.S end + +1939 557 a Fk(38)2022 504 y +SDict begin H.R end + 2022 504 a 2022 557 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.38) cvn H.B /ANN pdfmark end + 2022 +557 a 1770 658 a Fk(scp,)1937 658 y +SDict begin H.S end + 1937 658 a Fk(34)2020 +604 y +SDict begin H.R end + 2020 604 a 2020 658 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.34) cvn H.B /ANN pdfmark end + 2020 658 a Fk(,)2071 658 +y +SDict begin H.S end + 2071 658 a Fk(35)2154 604 y +SDict begin H.R end + 2154 604 a 2154 658 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.35) cvn H.B /ANN pdfmark end + 2154 +658 a 1770 758 a Fk(seten)n(v,)2048 758 y +SDict begin H.S end + 2048 758 a +Fk(55)2131 705 y +SDict begin H.R end + 2131 705 a 2131 758 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.55) cvn H.B /ANN pdfmark end + 2131 758 a 1770 +858 a Fk(settherm,)2140 858 y +SDict begin H.S end + 2140 858 a Fk(19)2223 805 +y +SDict begin H.R end + 2223 805 a 2223 858 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.19) cvn H.B /ANN pdfmark end + 2223 858 a 1770 959 a Fk(sh,)1900 +959 y +SDict begin H.S end + 1900 959 a Fk(55)1983 906 y +SDict begin H.R end + 1983 906 a 1983 959 +a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.55) cvn H.B /ANN pdfmark end + 1983 959 a 1770 1059 a Fk(sh)n(utdo)n(wn,)2168 1059 +y +SDict begin H.S end + 2168 1059 a Fk(19)2251 1006 y +SDict begin H.R end + 2251 1006 a 2251 1059 +a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.19) cvn H.B /ANN pdfmark end + 2251 1059 a 1770 1160 a Fk(sm)n(bfs,)2025 1160 y +SDict begin H.S end + 2025 +1160 a Fk(49)2108 1107 y +SDict begin H.R end + 2108 1107 a 2108 1160 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.49) cvn H.B /ANN pdfmark end + 2108 +1160 a 1770 1260 a Fk(Softlink,)2102 1260 y +SDict begin H.S end + 2102 1260 +a Fk(23)2185 1207 y +SDict begin H.R end + 2185 1207 a 2185 1260 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.23) cvn H.B /ANN pdfmark end + 2185 1260 +a 1770 1361 a Fk(source,)2048 1361 y +SDict begin H.S end + 2048 1361 a Fk(31)2131 +1307 y +SDict begin H.R end + 2131 1307 a 2131 1361 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.31) cvn H.B /ANN pdfmark end + 2131 1361 a 1770 1461 +a Fk(ssh,)1933 1461 y +SDict begin H.S end + 1933 1461 a Fk(34)2016 1408 y +SDict begin H.R end + 2016 +1408 a 2016 1461 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.34) cvn H.B /ANN pdfmark end + 2016 1461 a Fk(,)2067 1461 y +SDict begin H.S end + 2067 +1461 a Fk(35)2150 1408 y +SDict begin H.R end + 2150 1408 a 2150 1461 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.35) cvn H.B /ANN pdfmark end + 2150 +1461 a 1770 1562 a Fk(ssh-k)n(eygen,)2207 1562 y +SDict begin H.S end + 2207 +1562 a Fk(35)2290 1508 y +SDict begin H.R end + 2290 1508 a 2290 1562 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.35) cvn H.B /ANN pdfmark end + 2290 +1562 a 1770 1662 a Fk(startx,)2036 1662 y +SDict begin H.S end + 2036 1662 a +Fk(38)2119 1609 y +SDict begin H.R end + 2119 1609 a 2119 1662 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.38) cvn H.B /ANN pdfmark end + 2119 1662 a +1770 1762 a Fk(stderr,)2034 1762 y +SDict begin H.S end + 2034 1762 a Fk(19)2117 +1709 y +SDict begin H.R end + 2117 1709 a 2117 1762 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.19) cvn H.B /ANN pdfmark end + 2117 1762 a 1770 1863 +a Fk(stdin,)2002 1863 y +SDict begin H.S end + 2002 1863 a Fk(19)2085 1810 y +SDict begin H.R end + +2085 1810 a 2085 1863 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.19) cvn H.B /ANN pdfmark end + 2085 1863 a Fk(,)2135 1863 y +SDict begin H.S end + +2135 1863 a Fk(56)2218 1810 y +SDict begin H.R end + 2218 1810 a 2218 1863 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.56) cvn H.B /ANN pdfmark end + +2218 1863 a 1770 1963 a Fk(stdout,)2052 1963 y +SDict begin H.S end + 2052 1963 +a Fk(19)2135 1910 y +SDict begin H.R end + 2135 1910 a 2135 1963 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.19) cvn H.B /ANN pdfmark end + 2135 1963 +a 1770 2064 a Fk(strace,)2034 2064 y +SDict begin H.S end + 2034 2064 a Fk(34)2117 +2011 y +SDict begin H.R end + 2117 2011 a 2117 2064 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.34) cvn H.B /ANN pdfmark end + 2117 2064 a 1770 2164 +a Fk(strings,)2062 2164 y +SDict begin H.S end + 2062 2164 a Fk(23)2145 2111 +y +SDict begin H.R end + 2145 2111 a 2145 2164 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.23) cvn H.B /ANN pdfmark end + 2145 2164 a 1770 2265 a Fk(su,)1900 +2265 y +SDict begin H.S end + 1900 2265 a Fk(28)1983 2211 y +SDict begin H.R end + 1983 2211 a 1983 +2265 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.28) cvn H.B /ANN pdfmark end + 1983 2265 a 1770 2365 a Fk(sux,)1944 2365 y +SDict begin H.S end + 1944 +2365 a Fk(28)2027 2312 y +SDict begin H.R end + 2027 2312 a 2027 2365 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.28) cvn H.B /ANN pdfmark end + 2027 +2365 a 1770 2466 a Fk(systemctl,)2161 2466 y +SDict begin H.S end + 2161 2466 +a Fk(19)2244 2412 y +SDict begin H.R end + 2244 2412 a 2244 2466 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.19) cvn H.B /ANN pdfmark end + 2244 2466 +a 1770 2566 a Fk(sysv,)1974 2566 y +SDict begin H.S end + 1974 2566 a Fk(49)2057 +2513 y +SDict begin H.R end + 2057 2513 a 2057 2566 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.49) cvn H.B /ANN pdfmark end + 2057 2566 a 1770 2763 +a Fk(tail,)1941 2763 y +SDict begin H.S end + 1941 2763 a Fk(23)2024 2710 y +SDict begin H.R end + +2024 2710 a 2024 2763 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.23) cvn H.B /ANN pdfmark end + 2024 2763 a 1770 2864 a Fk(tar,)1927 +2864 y +SDict begin H.S end + 1927 2864 a Fk(27)2010 2810 y +SDict begin H.R end + 2010 2810 a 2010 +2864 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.27) cvn H.B /ANN pdfmark end + 2010 2864 a 1770 2964 a Fk(tcsh,)1969 2964 y +SDict begin H.S end + 1969 +2964 a Fk(55)2052 2911 y +SDict begin H.R end + 2052 2911 a 2052 2964 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.55) cvn H.B /ANN pdfmark end + 2052 +2964 a 1770 3065 a Fk(telnet,)2029 3065 y +SDict begin H.S end + 2029 3065 a +Fk(34)2112 3011 y +SDict begin H.R end + 2112 3011 a 2112 3065 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.34) cvn H.B /ANN pdfmark end + 2112 3065 a +1770 3165 a Fk(timedatectl,)2232 3165 y +SDict begin H.S end + 2232 3165 a Fk(21)2315 +3112 y +SDict begin H.R end + 2315 3112 a 2315 3165 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.21) cvn H.B /ANN pdfmark end + 2315 3165 a 1770 3265 +a Fk(top,)1941 3265 y +SDict begin H.S end + 1941 3265 a Fk(30)2024 3212 y +SDict begin H.R end + 2024 +3212 a 2024 3265 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.30) cvn H.B /ANN pdfmark end + 2024 3265 a 1770 3366 a Fk(tr,)1886 +3366 y +SDict begin H.S end + 1886 3366 a Fk(25)1969 3313 y +SDict begin H.R end + 1969 3313 a 1969 +3366 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.25) cvn H.B /ANN pdfmark end + 1969 3366 a 1770 3466 a Fk(tune2fs,)2082 3466 +y +SDict begin H.S end + 2082 3466 a Fk(27)2165 3413 y +SDict begin H.R end + 2165 3413 a 2165 3466 +a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.27) cvn H.B /ANN pdfmark end + 2165 3466 a 1770 3663 a Fk(ufs,)1925 3663 y +SDict begin H.S end + 1925 3663 +a Fk(49)2008 3610 y +SDict begin H.R end + 2008 3610 a 2008 3663 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.49) cvn H.B /ANN pdfmark end + 2008 3663 +a 1770 3764 a Fk(Uhrzeit,)2091 3764 y +SDict begin H.S end + 2091 3764 a Fk(21)2174 +3711 y +SDict begin H.R end + 2174 3711 a 2174 3764 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.21) cvn H.B /ANN pdfmark end + 2174 3764 a 2901 360 a +Fk(umoun)n(t,)3231 360 y +SDict begin H.S end + 3231 360 a Fk(27)3314 307 y +SDict begin H.R end + +3314 307 a 3314 360 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.27) cvn H.B /ANN pdfmark end + 3314 360 a 2901 460 a Fk(umsdos,)3220 +460 y +SDict begin H.S end + 3220 460 a Fk(49)3303 406 y +SDict begin H.R end + 3303 406 a 3303 460 +a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.49) cvn H.B /ANN pdfmark end + 3303 460 a 2901 559 a Fk(uname,)3191 559 y +SDict begin H.S end + 3191 559 +a Fk(17)3274 506 y +SDict begin H.R end + 3274 506 a 3274 559 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.17) cvn H.B /ANN pdfmark end + 3274 559 a 2901 +659 a Fk(uncompress,)3372 659 y +SDict begin H.S end + 3372 659 a Fk(25)3455 +606 y +SDict begin H.R end + 3455 606 a 3455 659 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.25) cvn H.B /ANN pdfmark end + 3455 659 a 2901 758 a Fk(uniq,)3111 +758 y +SDict begin H.S end + 3111 758 a Fk(25)3194 705 y +SDict begin H.R end + 3194 705 a 3194 758 +a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.25) cvn H.B /ANN pdfmark end + 3194 758 a 2901 858 a Fk(unpac)n(k,)3210 858 y +SDict begin H.S end + 3210 +858 a Fk(25)3293 805 y +SDict begin H.R end + 3293 805 a 3293 858 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.25) cvn H.B /ANN pdfmark end + 3293 858 +a 2901 958 a Fk(unset,)3146 958 y +SDict begin H.S end + 3146 958 a Fk(55)3229 +904 y +SDict begin H.R end + 3229 904 a 3229 958 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.55) cvn H.B /ANN pdfmark end + 3229 958 a 2901 1057 a Fk(unseten)n(v,)3270 +1057 y +SDict begin H.S end + 3270 1057 a Fk(55)3353 1004 y +SDict begin H.R end + 3353 1004 a 3353 +1057 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.55) cvn H.B /ANN pdfmark end + 3353 1057 a 2901 1157 a Fk(Upstart,)3231 1157 +y +SDict begin H.S end + 3231 1157 a Fk(20)3314 1104 y +SDict begin H.R end + 3314 1104 a 3314 1157 +a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.20) cvn H.B /ANN pdfmark end + 3314 1157 a 2901 1257 a Fk(useradd,)3234 1257 y +SDict begin H.S end + 3234 +1257 a Fk(28)3317 1203 y +SDict begin H.R end + 3317 1203 a 3317 1257 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.28) cvn H.B /ANN pdfmark end + 3317 +1257 a 2901 1356 a Fk(userdel,)3206 1356 y +SDict begin H.S end + 3206 1356 +a Fk(28)3289 1303 y +SDict begin H.R end + 3289 1303 a 3289 1356 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.28) cvn H.B /ANN pdfmark end + 3289 1356 +a 2901 1456 a Fk(usermo)r(d,)3259 1456 y +SDict begin H.S end + 3259 1456 a +Fk(28)3342 1403 y +SDict begin H.R end + 3342 1403 a 3342 1456 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.28) cvn H.B /ANN pdfmark end + 3342 1456 a +2901 1556 a Fk(UTC,)3134 1556 y +SDict begin H.S end + 3134 1556 a Fk(21)3217 +1502 y +SDict begin H.R end + 3217 1502 a 3217 1556 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.21) cvn H.B /ANN pdfmark end + 3217 1556 a 2901 1738 +a Fk(vfat,)3094 1738 y +SDict begin H.S end + 3094 1738 a Fk(49)3177 1685 y +SDict begin H.R end + +3177 1685 a 3177 1738 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.49) cvn H.B /ANN pdfmark end + 3177 1738 a 2901 1838 a Fk(vi,)3018 +1838 y +SDict begin H.S end + 3018 1838 a Fk(24)3101 1785 y +SDict begin H.R end + 3101 1785 a 3101 +1838 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.24) cvn H.B /ANN pdfmark end + 3101 1838 a Fk(,)3152 1838 y +SDict begin H.S end + 3152 1838 a Fk(61)3235 +1785 y +SDict begin H.R end + 3235 1785 a 3235 1838 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.61) cvn H.B /ANN pdfmark end + 3235 1838 a 2901 1937 +a Fk(vip)n(w,)3122 1937 y +SDict begin H.S end + 3122 1937 a Fk(28)3205 1884 +y +SDict begin H.R end + 3205 1884 a 3205 1937 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.28) cvn H.B /ANN pdfmark end + 3205 1937 a 2901 2120 a Fk(w,)3011 +2120 y +SDict begin H.S end + 3011 2120 a Fk(20)3094 2067 y +SDict begin H.R end + 3094 2067 a 3094 +2120 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.20) cvn H.B /ANN pdfmark end + 3094 2120 a 2901 2220 a Fk(w)n(c,)3046 2220 y +SDict begin H.S end + +3046 2220 a Fk(22)3129 2166 y +SDict begin H.R end + 3129 2166 a 3129 2220 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.22) cvn H.B /ANN pdfmark end + +3129 2220 a 2901 2319 a Fk(wget,)3122 2319 y +SDict begin H.S end + 3122 2319 +a Fk(17)3205 2266 y +SDict begin H.R end + 3205 2266 a 3205 2319 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.17) cvn H.B /ANN pdfmark end + 3205 2319 +a 2901 2419 a Fk(whatis,)3187 2419 y +SDict begin H.S end + 3187 2419 a Fk(20)3270 +2366 y +SDict begin H.R end + 3270 2366 a 3270 2419 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.20) cvn H.B /ANN pdfmark end + 3270 2419 a 2901 2519 +a Fk(whic)n(h,)3161 2519 y +SDict begin H.S end + 3161 2519 a Fk(20)3244 2465 +y +SDict begin H.R end + 3244 2465 a 3244 2519 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.20) cvn H.B /ANN pdfmark end + 3244 2519 a 2901 2618 a Fk(who,)3099 +2618 y +SDict begin H.S end + 3099 2618 a Fk(20)3182 2565 y +SDict begin H.R end + 3182 2565 a 3182 +2618 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.20) cvn H.B /ANN pdfmark end + 3182 2618 a 2901 2718 a Fk(whoami,)3233 2718 y +SDict begin H.S end + +3233 2718 a Fk(20)3316 2665 y +SDict begin H.R end + 3316 2665 a 3316 2718 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.20) cvn H.B /ANN pdfmark end + +3316 2718 a 2901 2900 a Fk(xf86con\034g,)3316 2900 y +SDict begin H.S end + +3316 2900 a Fk(38)3399 2847 y +SDict begin H.R end + 3399 2847 a 3399 2900 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.38) cvn H.B /ANN pdfmark end + +3399 2900 a 2901 3000 a Fk(XF86Setup,)3358 3000 y +SDict begin H.S end + 3358 +3000 a Fk(38)3441 2947 y +SDict begin H.R end + 3441 2947 a 3441 3000 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.38) cvn H.B /ANN pdfmark end + 3441 +3000 a 2901 3100 a Fk(xset,)3097 3100 y +SDict begin H.S end + 3097 3100 a Fk(39)3180 +3046 y +SDict begin H.R end + 3180 3046 a 3180 3100 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.39) cvn H.B /ANN pdfmark end + 3180 3100 a 2901 3199 +a Fk(xsetro)r(ot,)3247 3199 y +SDict begin H.S end + 3247 3199 a Fk(39)3330 +3146 y +SDict begin H.R end + 3330 3146 a 3330 3199 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.39) cvn H.B /ANN pdfmark end + 3330 3199 a 2901 3382 +a Fk(y)n(ast,)3100 3382 y +SDict begin H.S end + 3100 3382 a Fk(20)3183 3329 +y +SDict begin H.R end + 3183 3329 a 3183 3382 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.20) cvn H.B /ANN pdfmark end + 3183 3382 a 2901 3565 a Fk(zcat,)3099 +3565 y +SDict begin H.S end + 3099 3565 a Fk(17)3182 3511 y +SDict begin H.R end + 3182 3511 a 3182 +3565 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.17) cvn H.B /ANN pdfmark end + 3182 3565 a 2901 3664 a Fk(zeic)n(henorien)n(tiert,)3547 +3664 y +SDict begin H.S end + 3547 3664 a Fk(28)3630 3611 y +SDict begin H.R end + 3630 3611 a 3630 +3664 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.28) cvn H.B /ANN pdfmark end + 3630 3664 a 2901 3764 a Fk(Zeit,)3094 3764 y +SDict begin H.S end + 3094 +3764 a Fk(21)3177 3711 y +SDict begin H.R end + 3177 3711 a 3177 3764 a +SDict begin [/Color [1 0 0]/H /I/Border [0 0 1]BorderArrayPatch/BS +<>/Subtype /Link/Dest (page.21) cvn H.B /ANN pdfmark end + 3177 +3764 a 640 5092 a Fk(164)0 0 y @beginspecial @setspecial +%%BeginDocument: linux.out.ps +%! +/pdfmark where{pop} +{/globaldict where{pop globaldict}{userdict}ifelse/pdfmark/cleartomark load put} +ifelse +[ +/Title(\376\377\000V\000o\000r\000w\000o\000r\000t) +/Action/GoTo/Dest(chapter.1)cvn +/OUT pdfmark +[ +/Title(\376\377\000I\000n\000h\000a\000l\000t\000s\000v\000e\000r\000z\000e\000i\000c\000h\000n\000i\000s) +/Action/GoTo/Dest(chapter*.1)cvn +/OUT pdfmark +[ +/Title(\376\377\000L\000i\000n\000u\000x) +/Count -4 +/Action/GoTo/Dest(part.1)cvn +/OUT pdfmark +[ +/Title(\376\377\000L\000i\000n\000u\000x) +/Count -2 +/Action/GoTo/Dest(chapter.2)cvn +/OUT pdfmark +[ +/Title(\376\377\000W\000a\000s\000\040\000i\000s\000t\000\040\000L\000i\000n\000u\000x\000?) +/Action/GoTo/Dest(section.2.1)cvn +/OUT pdfmark +[ +/Title(\376\377\000K\000e\000r\000n\000e\000l\000\040\000u\000n\000d\000\040\000M\000o\000d\000u\000l\000e) +/Count -2 +/Action/GoTo/Dest(section.2.2)cvn +/OUT pdfmark +[ +/Title(\376\377\000K\000e\000r\000n\000e\000l\000\040\0002\000.\0004) +/Action/GoTo/Dest(subsection.2.2.1)cvn +/OUT pdfmark +[ +/Title(\376\377\000K\000e\000r\000n\000e\000l\000\040\0002\000.\0006\000\040\000\050\000D\000e\000b\000i\000a\000n\000\040\0004\000.\0000\000\040\000e\000t\000c\000h\000\051) +/Action/GoTo/Dest(subsection.2.2.2)cvn +/OUT pdfmark +[ +/Title(\376\377\000B\000e\000f\000e\000h\000l\000e) +/Count -31 +/Action/GoTo/Dest(chapter.3)cvn +/OUT pdfmark +[ +/Title(\376\377\000S\000t\000a\000n\000d\000a\000r\000t\000e\000i\000n\000-\000a\000u\000s\000-\000g\000a\000b\000e) +/Action/GoTo/Dest(section.3.1)cvn +/OUT pdfmark +[ +/Title(\376\377\000A\000n\000m\000e\000l\000d\000e\000n\000\040\000u\000n\000d\000\040\000A\000b\000m\000e\000l\000d\000e\000n) +/Action/GoTo/Dest(section.3.2)cvn +/OUT pdfmark +[ +/Title(\376\377\000A\000n\000h\000a\000l\000t\000e\000n\000\040\000d\000e\000s\000\040\000S\000y\000s\000t\000e\000m\000s\000\040\000u\000n\000d\000\040\000B\000o\000o\000t\000e\000n) +/Action/GoTo/Dest(section.3.3)cvn +/OUT pdfmark +[ +/Title(\376\377\000D\000i\000e\000\040\000R\000u\000n\000l\000e\000v\000e\000l) +/Count -1 +/Action/GoTo/Dest(section.3.4)cvn +/OUT pdfmark +[ +/Title(\376\377\000U\000p\000s\000t\000a\000r\000t) +/Action/GoTo/Dest(subsection.3.4.1)cvn +/OUT pdfmark +[ +/Title(\376\377\000S\000u\000S\000E\000-\000L\000i\000n\000u\000x) +/Action/GoTo/Dest(section.3.5)cvn +/OUT pdfmark +[ +/Title(\376\377\000Z\000u\000r\000\040\000O\000r\000i\000e\000n\000t\000i\000e\000r\000u\000n\000g\000\040\000a\000u\000f\000\040\000e\000i\000n\000e\000m\000\040\000U\000N\000I\000X\000-\000R\000e\000c\000h\000n\000e\000r) +/Action/GoTo/Dest(section.3.6)cvn +/OUT pdfmark +[ +/Title(\376\377\000D\000a\000t\000u\000m\000\040\000u\000n\000d\000\040\000U\000h\000r\000z\000e\000i\000t) +/Action/GoTo/Dest(section.3.7)cvn +/OUT pdfmark +[ +/Title(\376\377\000A\000u\000f\000l\000i\000s\000t\000e\000n) +/Action/GoTo/Dest(section.3.8)cvn +/OUT pdfmark +[ +/Title(\376\377\000D\000a\000t\000e\000i\000n\000a\000m\000e\000n) +/Action/GoTo/Dest(section.3.9)cvn +/OUT pdfmark +[ +/Title(\376\377\000D\000a\000t\000e\000i\000e\000n\000d\000u\000n\000g\000e\000n) +/Action/GoTo/Dest(section.3.10)cvn +/OUT pdfmark +[ +/Title(\376\377\000I\000n\000f\000o\000s\000\040\000\374\000b\000e\000r\000\040\000F\000i\000l\000e\000s) +/Action/GoTo/Dest(section.3.11)cvn +/OUT pdfmark +[ +/Title(\376\377\000A\000r\000b\000e\000i\000t\000e\000n\000\050\000V\000e\000r\000w\000\374\000s\000t\000u\000n\000g\000e\000n\000\051\000\040\000i\000m\000\040\000u\000n\000d\000\040\000a\000m\000\040\000F\000i\000l\000e\000s\000y\000s\000t\000e\000m) +/Action/GoTo/Dest(section.3.12)cvn +/OUT pdfmark +[ +/Title(\376\377\000K\000o\000p\000i\000e\000r\000e\000n\000\040\000u\000n\000d\000\040\000V\000e\000r\000s\000c\000h\000i\000e\000b\000e\000n) +/Action/GoTo/Dest(section.3.13)cvn +/OUT pdfmark +[ +/Title(\376\377\000L\000\366\000s\000c\000h\000e\000n) +/Action/GoTo/Dest(section.3.14)cvn +/OUT pdfmark +[ +/Title(\376\377\000A\000u\000s\000g\000e\000b\000e\000n) +/Action/GoTo/Dest(section.3.15)cvn +/OUT pdfmark +[ +/Title(\376\377\000D\000e\000r\000\040\000T\000e\000x\000t\000e\000d\000i\000t\000o\000r\000\040\000v\000i\000/\000v\000i\000m) +/Action/GoTo/Dest(section.3.16)cvn +/OUT pdfmark +[ +/Title(\376\377\000S\000u\000c\000h\000e\000n\000\040\000n\000a\000c\000h\000\040\000D\000a\000t\000e\000i\000e\000n) +/Action/GoTo/Dest(section.3.17)cvn +/OUT pdfmark +[ +/Title(\376\377\000S\000u\000c\000h\000e\000n\000\040\000i\000n\000\040\000D\000a\000t\000e\000i\000e\000n) +/Action/GoTo/Dest(section.3.18)cvn +/OUT pdfmark +[ +/Title(\376\377\000V\000e\000r\000g\000l\000e\000i\000c\000h\000e\000n\000\040\000v\000o\000n\000\040\000D\000a\000t\000e\000i\000e\000n) +/Action/GoTo/Dest(section.3.19)cvn +/OUT pdfmark +[ +/Title(\376\377\000D\000r\000u\000c\000k\000e\000n) +/Action/GoTo/Dest(section.3.20)cvn +/OUT pdfmark +[ +/Title(\376\377\000F\000i\000l\000e\000-\000I\000n\000h\000a\000l\000t\000\040\000b\000e\000a\000r\000b\000e\000i\000t\000e\000n) +/Action/GoTo/Dest(section.3.21)cvn +/OUT pdfmark +[ +/Title(\376\377\000T\000A\000R\000\040\000\050\000t\000a\000p\000e\000\040\000a\000r\000c\000h\000i\000v\000e\000r\000\051\000\040\000v\000e\000r\000w\000a\000l\000t\000e\000t\000\040\000D\000a\000t\000e\000i\000a\000r\000c\000h\000i\000v\000e) +/Count -2 +/Action/GoTo/Dest(section.3.22)cvn +/OUT pdfmark +[ +/Title(\376\377\000P\000a\000c\000k\000e\000n) +/Action/GoTo/Dest(subsection.3.22.1)cvn +/OUT pdfmark +[ +/Title(\376\377\000E\000n\000t\000p\000a\000c\000k\000e\000n) +/Action/GoTo/Dest(subsection.3.22.2)cvn +/OUT pdfmark +[ +/Title(\376\377\000D\000i\000s\000k\000e\000t\000t\000e\000n\000/\000F\000e\000s\000t\000p\000l\000a\000t\000t\000e\000n) +/Count -1 +/Action/GoTo/Dest(section.3.23)cvn +/OUT pdfmark +[ +/Title(\376\377\000D\000a\000t\000e\000i\000s\000y\000s\000t\000e\000m\000\040\000v\000e\000r\000s\000c\000h\000l\000\374\000s\000s\000e\000l\000n) +/Action/GoTo/Dest(subsection.3.23.1)cvn +/OUT pdfmark +[ +/Title(\376\377\000Z\000u\000g\000r\000i\000f\000f\000s\000r\000e\000c\000h\000t\000e\000/\000E\000i\000g\000e\000n\000t\000\374\000m\000e\000r\000/\000G\000r\000u\000p\000p\000e) +/Action/GoTo/Dest(section.3.24)cvn +/OUT pdfmark +[ +/Title(\376\377\000P\000r\000o\000z\000e\000s\000s\000b\000e\000f\000e\000h\000l\000e) +/Action/GoTo/Dest(section.3.25)cvn +/OUT pdfmark +[ +/Title(\376\377\000R\000e\000-\000i\000n\000s\000t\000a\000l\000l\000\040\000G\000r\000u\000b\000\040\000w\000i\000t\000h\000\040\000L\000i\000v\000e\000\040\000C\000D) +/Count -2 +/Action/GoTo/Dest(section.3.26)cvn +/OUT pdfmark +[ +/Title(\376\377\000C\000h\000r\000o\000o\000t) +/Action/GoTo/Dest(subsection.3.26.1)cvn +/OUT pdfmark +[ +/Title(\376\377\000G\000r\000u\000b) +/Action/GoTo/Dest(subsection.3.26.2)cvn +/OUT pdfmark +[ +/Title(\376\377\000S\000o\000f\000t\000w\000a\000r\000e\000\040\000i\000n\000s\000t\000a\000l\000l\000i\000e\000r\000e\000n) +/Count -5 +/Action/GoTo/Dest(section.3.27)cvn +/OUT pdfmark +[ +/Title(\376\377\000r\000p\000m\000-\000F\000o\000r\000m\000a\000t) +/Action/GoTo/Dest(subsection.3.27.1)cvn +/OUT pdfmark +[ +/Title(\376\377\000d\000e\000b\000-\000F\000o\000r\000m\000a\000t) +/Action/GoTo/Dest(subsection.3.27.2)cvn +/OUT pdfmark +[ +/Title(\376\377\000P\000o\000r\000t\000a\000g\000e\000\040\000G\000e\000n\000t\000o\000o) +/Action/GoTo/Dest(subsection.3.27.3)cvn +/OUT pdfmark +[ +/Title(\376\377\000Q\000u\000e\000l\000l\000t\000e\000x\000t\000e) +/Action/GoTo/Dest(subsection.3.27.4)cvn +/OUT pdfmark +[ +/Title(\376\377\000H\000i\000l\000f\000e) +/Action/GoTo/Dest(subsection.3.27.5)cvn +/OUT pdfmark +[ +/Title(\376\377\000I\000m\000\040\000N\000e\000t\000z) +/Action/GoTo/Dest(section.3.28)cvn +/OUT pdfmark +[ +/Title(\376\377\000S\000S\000H) +/Count -4 +/Action/GoTo/Dest(section.3.29)cvn +/OUT pdfmark +[ +/Title(\376\377\000G\000e\000n\000e\000r\000i\000e\000r\000u\000n\000g\000\040\000e\000i\000n\000e\000s\000\040\000D\000S\000A\000\040\000S\000c\000h\000l\000\374\000s\000s\000e\000l\000p\000a\000a\000r\000e\000s) +/Action/GoTo/Dest(subsection.3.29.1)cvn +/OUT pdfmark +[ +/Title(\376\377\000P\000u\000b\000l\000i\000c\000-\000K\000e\000y\000\040\000a\000u\000f\000\040\000d\000e\000m\000\040\000Z\000i\000e\000l\000r\000e\000c\000h\000n\000e\000r\000\040\000h\000i\000n\000z\000u\000f\000\374\000g\000e\000n) +/Action/GoTo/Dest(subsection.3.29.2)cvn +/OUT pdfmark +[ +/Title(\376\377\000P\000r\000i\000v\000a\000t\000e\000-\000K\000e\000y\000\040\000a\000u\000f\000\040\000d\000e\000m\000\040\000Q\000e\000l\000l\000r\000e\000c\000h\000n\000e\000r) +/Action/GoTo/Dest(subsection.3.29.3)cvn +/OUT pdfmark +[ +/Title(\376\377\000L\000o\000g\000i\000n\000\040\000n\000u\000r\000\040\000m\000i\000t\000\040\000S\000S\000H\000-\000K\000e\000y\000s\000\040\000e\000r\000l\000a\000u\000b\000e\000n) +/Action/GoTo/Dest(subsection.3.29.4)cvn +/OUT pdfmark +[ +/Title(\376\377\000G\000n\000u\000P\000G) +/Count -10 +/Action/GoTo/Dest(section.3.30)cvn +/OUT pdfmark +[ +/Title(\376\377\000E\000r\000z\000e\000u\000g\000e\000n) +/Action/GoTo/Dest(subsection.3.30.1)cvn +/OUT pdfmark +[ +/Title(\376\377\000H\000o\000c\000h\000l\000a\000d\000e\000n) +/Action/GoTo/Dest(subsection.3.30.2)cvn +/OUT pdfmark +[ +/Title(\376\377\000L\000\366\000s\000c\000h\000e\000n) +/Action/GoTo/Dest(subsection.3.30.3)cvn +/OUT pdfmark +[ +/Title(\376\377\000H\000o\000l\000e\000n) +/Action/GoTo/Dest(subsection.3.30.4)cvn +/OUT pdfmark +[ +/Title(\376\377\000S\000i\000g\000n\000a\000t\000u\000r\000\040\000e\000r\000z\000e\000u\000g\000e\000n\000\040\000u\000n\000d\000\040\000p\000r\000\374\000f\000e\000n) +/Action/GoTo/Dest(subsection.3.30.5)cvn +/OUT pdfmark +[ +/Title(\376\377\000V\000e\000r\000s\000c\000h\000l\000\374\000s\000s\000e\000l\000n) +/Action/GoTo/Dest(subsection.3.30.6)cvn +/OUT pdfmark +[ +/Title(\376\377\000E\000n\000t\000s\000c\000h\000l\000\374\000s\000s\000e\000l\000n) +/Action/GoTo/Dest(subsection.3.30.7)cvn +/OUT pdfmark +[ +/Title(\376\377\000S\000c\000h\000l\000\374\000s\000s\000e\000l\000v\000e\000r\000w\000a\000l\000t\000u\000n\000g) +/Action/GoTo/Dest(subsection.3.30.8)cvn +/OUT pdfmark +[ +/Title(\376\377\000A\000n\000z\000e\000i\000g\000e\000n) +/Action/GoTo/Dest(subsection.3.30.9)cvn +/OUT pdfmark +[ +/Title(\376\377\000E\000x\000p\000o\000r\000t\000i\000e\000r\000e\000n) +/Action/GoTo/Dest(subsection.3.30.10)cvn +/OUT pdfmark +[ +/Title(\376\377\000X\0001\0001\000\040\000-\000\040\000G\000r\000a\000f\000i\000k) +/Count -2 +/Action/GoTo/Dest(section.3.31)cvn +/OUT pdfmark +[ +/Title(\376\377\000B\000i\000l\000d\000s\000c\000h\000i\000r\000m\000s\000c\000h\000o\000n\000e\000r) +/Action/GoTo/Dest(subsection.3.31.1)cvn +/OUT pdfmark +[ +/Title(\376\377\000X\0001\0001\000\040\000o\000h\000n\000e\000\040\000M\000a\000u\000s) +/Action/GoTo/Dest(subsection.3.31.2)cvn +/OUT pdfmark +[ +/Title(\376\377\000V\000e\000r\000z\000e\000i\000c\000h\000n\000i\000s\000s\000e\000\040\000u\000n\000d\000\040\000D\000a\000t\000e\000i\000e\000n) +/Count -8 +/Action/GoTo/Dest(chapter.4)cvn +/OUT pdfmark +[ +/Title(\376\377\000D\000a\000t\000e\000i\000b\000a\000u\000m) +/Action/GoTo/Dest(section.4.1)cvn +/OUT pdfmark +[ +/Title(\376\377\000/\000e\000t\000c\000/\000f\000s\000t\000a\000b) +/Action/GoTo/Dest(section.4.2)cvn +/OUT pdfmark +[ +/Title(\376\377\000/\000d\000e\000v\000/) +/Action/GoTo/Dest(section.4.3)cvn +/OUT pdfmark +[ +/Title(\376\377\000D\000a\000t\000e\000i\000s\000y\000s\000t\000e\000m\000t\000y\000p\000e\000n\000\040\000u\000n\000t\000e\000r\000\040\000L\000i\000n\000u\000x) +/Action/GoTo/Dest(section.4.4)cvn +/OUT pdfmark +[ +/Title(\376\377\000/\000e\000t\000c\000/\000g\000r\000o\000u\000p) +/Action/GoTo/Dest(section.4.5)cvn +/OUT pdfmark +[ +/Title(\376\377\000/\000e\000t\000c\000/\000h\000o\000s\000t\000s) +/Action/GoTo/Dest(section.4.6)cvn +/OUT pdfmark +[ +/Title(\376\377\000/\000e\000t\000c\000/\000i\000n\000i\000t\000t\000a\000b) +/Count -7 +/Action/GoTo/Dest(section.4.7)cvn +/OUT pdfmark +[ +/Title(\376\377\000T\000e\000r\000m\000i\000n\000a\000l) +/Action/GoTo/Dest(subsection.4.7.1)cvn +/OUT pdfmark +[ +/Title(\376\377\000T\000e\000r\000m\000c\000a\000p\000e\000i\000n\000t\000r\000a\000g) +/Action/GoTo/Dest(subsection.4.7.2)cvn +/OUT pdfmark +[ +/Title(\376\377\000G\000e\000t\000t\000y\000k\000o\000m\000m\000a\000n\000d\000o) +/Action/GoTo/Dest(subsection.4.7.3)cvn +/OUT pdfmark +[ +/Title(\376\377\000K\000\374\000r\000z\000e\000l) +/Action/GoTo/Dest(subsection.4.7.4)cvn +/OUT pdfmark +[ +/Title(\376\377\000A\000r\000b\000e\000i\000t\000s\000s\000t\000u\000f\000e\000n) +/Action/GoTo/Dest(subsection.4.7.5)cvn +/OUT pdfmark +[ +/Title(\376\377\000M\000o\000d\000u\000s) +/Action/GoTo/Dest(subsection.4.7.6)cvn +/OUT pdfmark +[ +/Title(\376\377\000K\000o\000m\000m\000a\000n\000d\000o) +/Action/GoTo/Dest(subsection.4.7.7)cvn +/OUT pdfmark +[ +/Title(\376\377\000/\000e\000t\000c\000/\000p\000a\000s\000s\000w\000d) +/Action/GoTo/Dest(section.4.8)cvn +/OUT pdfmark +[ +/Title(\376\377\000D\000i\000e\000\040\000S\000h\000e\000l\000l\000s) +/Count -5 +/Action/GoTo/Dest(chapter.5)cvn +/OUT pdfmark +[ +/Title(\376\377\000D\000i\000e\000\040\000S\000h\000e\000l\000l\000s) +/Action/GoTo/Dest(section.5.1)cvn +/OUT pdfmark +[ +/Title(\376\377\000D\000i\000e\000\040\000S\000t\000a\000r\000t\000-\000S\000c\000r\000i\000p\000t\000s) +/Action/GoTo/Dest(section.5.2)cvn +/OUT pdfmark +[ +/Title(\376\377\000T\000a\000s\000t\000e\000n\000k\000o\000m\000b\000i\000n\000a\000t\000i\000o\000n\000e\000n) +/Action/GoTo/Dest(section.5.3)cvn +/OUT pdfmark +[ +/Title(\376\377\000D\000i\000e\000\040\000C\000-\000S\000h\000e\000l\000l) +/Action/GoTo/Dest(section.5.4)cvn +/OUT pdfmark +[ +/Title(\376\377\000B\000a\000s\000h\000\040\000r\000e\000c\000h\000n\000e\000n) +/Action/GoTo/Dest(section.5.5)cvn +/OUT pdfmark +[ +/Title(\376\377\000P\000r\000o\000g\000r\000a\000m\000m\000e) +/Count -2 +/Action/GoTo/Dest(part.2)cvn +/OUT pdfmark +[ +/Title(\376\377\000D\000e\000r\000\040\000T\000e\000x\000t\000e\000d\000i\000t\000o\000r\000\040\000v\000i\000/\000v\000i\000m) +/Count -4 +/Action/GoTo/Dest(chapter.6)cvn +/OUT pdfmark +[ +/Title(\376\377\000A\000u\000f\000r\000u\000f) +/Action/GoTo/Dest(section.6.1)cvn +/OUT pdfmark +[ +/Title(\376\377\000E\000i\000n\000g\000a\000b\000e\000m\000o\000d\000u\000s\000\040\000\050\000i\000n\000p\000u\000t\000\040\000m\000o\000d\000e\000\051) +/Action/GoTo/Dest(section.6.2)cvn +/OUT pdfmark +[ +/Title(\376\377\000B\000e\000f\000e\000h\000l\000s\000m\000o\000d\000u\000s\000\040\000\050\000v\000i\000s\000u\000a\000l\000\040\000m\000o\000d\000e\000\051) +/Count -14 +/Action/GoTo/Dest(section.6.3)cvn +/OUT pdfmark +[ +/Title(\376\377\000E\000i\000n\000g\000e\000b\000e\000n\000:) +/Action/GoTo/Dest(subsection.6.3.1)cvn +/OUT pdfmark +[ +/Title(\376\377\000\334\000b\000e\000r\000s\000c\000h\000r\000e\000i\000b\000e\000n\000:) +/Action/GoTo/Dest(subsection.6.3.2)cvn +/OUT pdfmark +[ +/Title(\376\377\000B\000e\000w\000e\000g\000e\000n\000:) +/Action/GoTo/Dest(subsection.6.3.3)cvn +/OUT pdfmark +[ +/Title(\376\377\000L\000\366\000s\000c\000h\000e\000n\000\040\000u\000n\000d\000\040\000E\000i\000n\000g\000e\000b\000e\000n\000:) +/Action/GoTo/Dest(subsection.6.3.4)cvn +/OUT pdfmark +[ +/Title(\376\377\000L\000\366\000s\000c\000h\000e\000n\000:) +/Action/GoTo/Dest(subsection.6.3.5)cvn +/OUT pdfmark +[ +/Title(\376\377\000A\000u\000f\000h\000e\000b\000e\000n\000:) +/Action/GoTo/Dest(subsection.6.3.6)cvn +/OUT pdfmark +[ +/Title(\376\377\000V\000e\000r\000s\000c\000h\000i\000e\000b\000e\000n\000:) +/Action/GoTo/Dest(subsection.6.3.7)cvn +/OUT pdfmark +[ +/Title(\376\377\000Z\000u\000s\000a\000m\000m\000e\000n\000f\000\374\000g\000e\000n\000:) +/Action/GoTo/Dest(subsection.6.3.8)cvn +/OUT pdfmark +[ +/Title(\376\377\000M\000a\000r\000k\000i\000e\000r\000e\000n\000:) +/Action/GoTo/Dest(subsection.6.3.9)cvn +/OUT pdfmark +[ +/Title(\376\377\000K\000o\000p\000i\000e\000r\000e\000n\000:) +/Action/GoTo/Dest(subsection.6.3.10)cvn +/OUT pdfmark +[ +/Title(\376\377\000E\000i\000n\000f\000\374\000g\000e\000n\000:) +/Action/GoTo/Dest(subsection.6.3.11)cvn +/OUT pdfmark +[ +/Title(\376\377\000S\000u\000c\000h\000e\000n\000:) +/Action/GoTo/Dest(subsection.6.3.12)cvn +/OUT pdfmark +[ +/Title(\376\377\000W\000i\000e\000d\000e\000r\000h\000o\000l\000e\000n\000:) +/Action/GoTo/Dest(subsection.6.3.13)cvn +/OUT pdfmark +[ +/Title(\376\377\000S\000o\000n\000s\000t\000i\000g\000e\000\040\000K\000o\000m\000m\000a\000n\000d\000o\000s\000:) +/Action/GoTo/Dest(subsection.6.3.14)cvn +/OUT pdfmark +[ +/Title(\376\377\000K\000o\000m\000m\000a\000n\000d\000o\000m\000o\000d\000u\000s\000\040\000\050\000c\000o\000l\000o\000n\000\040\000m\000o\000d\000e\000\051) +/Count -1 +/Action/GoTo/Dest(section.6.4)cvn +/OUT pdfmark +[ +/Title(\376\377\000T\000e\000x\000t\000e\000i\000n\000g\000a\000b\000e\000\040\000K\000o\000m\000m\000a\000n\000d\000o\000s) +/Action/GoTo/Dest(subsection.6.4.1)cvn +/OUT pdfmark +[ +/Title(\376\377\000L\000a\000T\000e\000X) +/Count -1 +/Action/GoTo/Dest(chapter.7)cvn +/OUT pdfmark +[ +/Title(\376\377\000L\000a\000T\000e\000X) +/Action/GoTo/Dest(section.7.1)cvn +/OUT pdfmark +[ +/Title(\376\377\000L\000i\000n\000u\000x\000\040\000i\000m\000\040\000N\000e\000t\000z\000w\000e\000r\000k) +/Count -5 +/Action/GoTo/Dest(part.3)cvn +/OUT pdfmark +[ +/Title(\376\377\000N\000e\000t\000z\000w\000e\000r\000k) +/Action/GoTo/Dest(chapter.8)cvn +/OUT pdfmark +[ +/Title(\376\377\000A\000p\000a\000c\000h\000e) +/Count -6 +/Action/GoTo/Dest(chapter.9)cvn +/OUT pdfmark +[ +/Title(\376\377\000E\000i\000n\000l\000e\000i\000t\000u\000n\000g) +/Action/GoTo/Dest(section.9.1)cvn +/OUT pdfmark +[ +/Title(\376\377\000K\000o\000m\000p\000i\000l\000i\000e\000r\000e\000n\000\040\000u\000n\000d\000\040\000I\000n\000s\000t\000a\000l\000l\000i\000e\000r\000e\000n) +/Count -8 +/Action/GoTo/Dest(section.9.2)cvn +/OUT pdfmark +[ +/Title(\376\377\000A\000n\000f\000o\000r\000d\000e\000r\000u\000n\000g\000e\000n) +/Action/GoTo/Dest(subsection.9.2.1)cvn +/OUT pdfmark +[ +/Title(\376\377\000V\000o\000r\000b\000e\000r\000e\000i\000t\000u\000n\000g\000e\000n) +/Action/GoTo/Dest(subsection.9.2.2)cvn +/OUT pdfmark +[ +/Title(\376\377\000O\000p\000e\000n\000S\000S\000L) +/Action/GoTo/Dest(subsection.9.2.3)cvn +/OUT pdfmark +[ +/Title(\376\377\000A\000p\000a\000c\000h\000e\000\040\0001\000.\0003\000\040\000u\000n\000d\000\040\000S\000S\000L) +/Action/GoTo/Dest(subsection.9.2.4)cvn +/OUT pdfmark +[ +/Title(\376\377\000A\000p\000a\000c\000h\000e\0002) +/Action/GoTo/Dest(subsection.9.2.5)cvn +/OUT pdfmark +[ +/Title(\376\377\000T\000e\000s\000t\000e\000n) +/Action/GoTo/Dest(subsection.9.2.6)cvn +/OUT pdfmark +[ +/Title(\376\377\000U\000p\000g\000r\000a\000d\000e) +/Action/GoTo/Dest(subsection.9.2.7)cvn +/OUT pdfmark +[ +/Title(\376\377\000P\000u\000r\000e\000F\000T\000P\000d) +/Action/GoTo/Dest(subsection.9.2.8)cvn +/OUT pdfmark +[ +/Title(\376\377\000A\000p\000a\000c\000h\000e\000\040\000s\000t\000a\000r\000t\000e\000n) +/Count -5 +/Action/GoTo/Dest(section.9.3)cvn +/OUT pdfmark +[ +/Title(\376\377\000A\000p\000a\000c\000h\000e\000\040\000s\000t\000a\000r\000t\000e\000n) +/Action/GoTo/Dest(subsection.9.3.1)cvn +/OUT pdfmark +[ +/Title(\376\377\000W\000i\000e\000\040\000d\000e\000r\000\040\000A\000p\000a\000c\000h\000e\000\040\000s\000t\000a\000r\000t\000e\000t) +/Action/GoTo/Dest(subsection.9.3.2)cvn +/OUT pdfmark +[ +/Title(\376\377\000F\000e\000h\000l\000e\000r\000\040\000w\000\344\000h\000r\000e\000n\000d\000\040\000d\000e\000s\000\040\000H\000o\000c\000h\000f\000a\000h\000r\000e\000n\000s) +/Action/GoTo/Dest(subsection.9.3.3)cvn +/OUT pdfmark +[ +/Title(\376\377\000A\000u\000t\000o\000m\000a\000t\000i\000s\000c\000h\000\040\000s\000t\000a\000r\000t\000e\000n\000\040\000u\000n\000d\000\040\000b\000e\000e\000n\000d\000e\000n) +/Action/GoTo/Dest(subsection.9.3.4)cvn +/OUT pdfmark +[ +/Title(\376\377\000W\000e\000i\000t\000e\000r\000e\000\040\000I\000n\000f\000o\000r\000m\000a\000t\000i\000o\000n\000e\000n) +/Action/GoTo/Dest(subsection.9.3.5)cvn +/OUT pdfmark +[ +/Title(\376\377\000B\000e\000e\000n\000d\000e\000n\000\040\000u\000n\000d\000\040\000N\000e\000u\000s\000t\000a\000r\000t\000e\000n) +/Count -5 +/Action/GoTo/Dest(section.9.4)cvn +/OUT pdfmark +[ +/Title(\376\377\000E\000i\000n\000l\000e\000i\000t\000u\000n\000g) +/Action/GoTo/Dest(subsection.9.4.1)cvn +/OUT pdfmark +[ +/Title(\376\377\000B\000e\000e\000n\000d\000e\000n) +/Action/GoTo/Dest(subsection.9.4.2)cvn +/OUT pdfmark +[ +/Title(\376\377\000U\000n\000t\000e\000r\000b\000r\000e\000c\000h\000u\000n\000g\000s\000f\000r\000e\000i\000e\000r\000\040\000N\000e\000u\000s\000t\000a\000r\000t) +/Action/GoTo/Dest(subsection.9.4.3)cvn +/OUT pdfmark +[ +/Title(\376\377\000N\000e\000u\000s\000t\000a\000r\000t\000e\000n) +/Action/GoTo/Dest(subsection.9.4.4)cvn +/OUT pdfmark +[ +/Title(\376\377\000A\000n\000h\000a\000n\000g\000:\000\040\000S\000y\000n\000t\000a\000x\000\040\000\374\000b\000e\000r\000p\000r\000\374\000f\000e\000n) +/Action/GoTo/Dest(subsection.9.4.5)cvn +/OUT pdfmark +[ +/Title(\376\377\000A\000n\000h\000a\000n\000g) +/Count -1 +/Action/GoTo/Dest(section.9.5)cvn +/OUT pdfmark +[ +/Title(\376\377\000Z\000u\000\040\000d\000e\000n\000\040\000D\000a\000t\000e\000i\000e\000n) +/Action/GoTo/Dest(subsection.9.5.1)cvn +/OUT pdfmark +[ +/Title(\376\377\000B\000e\000n\000u\000t\000z\000e\000r\000h\000a\000n\000d\000b\000u\000c\000h) +/Count -6 +/Action/GoTo/Dest(section.9.6)cvn +/OUT pdfmark +[ +/Title(\376\377\000h\000t\000t\000p\000d\000.\000c\000o\000n\000f) +/Action/GoTo/Dest(subsection.9.6.1)cvn +/OUT pdfmark +[ +/Title(\376\377\000A\000c\000c\000e\000s\000s\000\040\000C\000o\000n\000t\000r\000o\000l\000\040\000L\000i\000s\000t\000\040\000F\000i\000l\000e\000\040\000\050\000.\000h\000t\000a\000c\000c\000e\000s\000s\000\051) +/Action/GoTo/Dest(subsection.9.6.2)cvn +/OUT pdfmark +[ +/Title(\376\377\000G\000r\000u\000p\000p\000e\000n\000d\000a\000t\000e\000i\000\040\000\050\000.\000h\000t\000g\000r\000o\000u\000p\000\051) +/Action/GoTo/Dest(subsection.9.6.3)cvn +/OUT pdfmark +[ +/Title(\376\377\000P\000a\000s\000s\000w\000o\000r\000t\000-\000D\000a\000t\000e\000i\000\040\000\050\000.\000h\000t\000p\000a\000s\000s\000w\000d\000\051) +/Action/GoTo/Dest(subsection.9.6.4)cvn +/OUT pdfmark +[ +/Title(\376\377\000E\000r\000s\000t\000e\000l\000l\000e\000n\000\040\000e\000i\000n\000e\000s\000\040\000S\000S\000L\000-\000Z\000e\000r\000t\000i\000f\000i\000k\000a\000t\000s) +/Action/GoTo/Dest(subsection.9.6.5)cvn +/OUT pdfmark +[ +/Title(\376\377\000L\000i\000n\000k\000I\000c\000o\000n\000\040\000\050\000f\000a\000v\000i\000c\000o\000n\000.\000i\000c\000o\000\051) +/Action/GoTo/Dest(subsection.9.6.6)cvn +/OUT pdfmark +[ +/Title(\376\377\000M\000y\000S\000Q\000L) +/Count -2 +/Action/GoTo/Dest(chapter.10)cvn +/OUT pdfmark +[ +/Title(\376\377\000E\000i\000n\000l\000e\000i\000t\000u\000n\000g) +/Action/GoTo/Dest(section.10.1)cvn +/OUT pdfmark +[ +/Title(\376\377\000K\000o\000m\000p\000i\000l\000i\000e\000r\000e\000n\000\040\000u\000n\000d\000\040\000I\000n\000s\000t\000a\000l\000l\000i\000e\000r\000e\000n) +/Count -5 +/Action/GoTo/Dest(section.10.2)cvn +/OUT pdfmark +[ +/Title(\376\377\000A\000n\000f\000o\000r\000d\000e\000r\000u\000n\000g\000e\000n) +/Action/GoTo/Dest(subsection.10.2.1)cvn +/OUT pdfmark +[ +/Title(\376\377\000V\000o\000r\000b\000e\000r\000e\000i\000t\000u\000n\000g\000e\000n) +/Action/GoTo/Dest(subsection.10.2.2)cvn +/OUT pdfmark +[ +/Title(\376\377\000M\000y\000S\000Q\000L) +/Action/GoTo/Dest(subsection.10.2.3)cvn +/OUT pdfmark +[ +/Title(\376\377\000M\000y\000S\000Q\000L\000\040\000T\000e\000s\000t\000e\000n) +/Action/GoTo/Dest(subsection.10.2.4)cvn +/OUT pdfmark +[ +/Title(\376\377\000p\000h\000p\000M\000y\000A\000d\000m\000i\000n) +/Action/GoTo/Dest(subsection.10.2.5)cvn +/OUT pdfmark +[ +/Title(\376\377\000P\000H\000P) +/Count -3 +/Action/GoTo/Dest(chapter.11)cvn +/OUT pdfmark +[ +/Title(\376\377\000E\000i\000n\000l\000e\000i\000t\000u\000n\000g) +/Action/GoTo/Dest(section.11.1)cvn +/OUT pdfmark +[ +/Title(\376\377\000K\000o\000m\000p\000i\000l\000i\000e\000r\000e\000n\000\040\000u\000n\000d\000\040\000I\000n\000s\000t\000a\000l\000l\000i\000e\000r\000e\000n) +/Count -4 +/Action/GoTo/Dest(section.11.2)cvn +/OUT pdfmark +[ +/Title(\376\377\000A\000n\000f\000o\000r\000d\000e\000r\000u\000n\000g\000e\000n) +/Action/GoTo/Dest(subsection.11.2.1)cvn +/OUT pdfmark +[ +/Title(\376\377\000V\000o\000r\000b\000e\000r\000e\000i\000t\000u\000n\000g\000e\000n) +/Action/GoTo/Dest(subsection.11.2.2)cvn +/OUT pdfmark +[ +/Title(\376\377\000L\000i\000b\000r\000a\000r\000i\000e\000s\000\040\000f\000\374\000r\000\040\000Z\000u\000s\000a\000t\000z\000f\000u\000n\000k\000t\000i\000o\000n\000e\000n) +/Action/GoTo/Dest(subsection.11.2.3)cvn +/OUT pdfmark +[ +/Title(\376\377\000P\000H\000P) +/Action/GoTo/Dest(subsection.11.2.4)cvn +/OUT pdfmark +[ +/Title(\376\377\000R\000e\000f\000e\000r\000e\000n\000z) +/Count -2 +/Action/GoTo/Dest(section.11.3)cvn +/OUT pdfmark +[ +/Title(\376\377\000G\000r\000u\000n\000d\000l\000a\000g\000e\000n) +/Action/GoTo/Dest(subsection.11.3.1)cvn +/OUT pdfmark +[ +/Title(\376\377\000F\000u\000n\000k\000t\000i\000o\000n\000e\000n) +/Action/GoTo/Dest(subsection.11.3.2)cvn +/OUT pdfmark +[ +/Title(\376\377\000S\000q\000u\000i\000d) +/Count -11 +/Action/GoTo/Dest(chapter.12)cvn +/OUT pdfmark +[ +/Title(\376\377\000P\000r\000o\000x\000y) +/Action/GoTo/Dest(section.12.1)cvn +/OUT pdfmark +[ +/Title(\376\377\000E\000i\000n\000f\000a\000c\000h\000e\000r\000\040\000C\000a\000c\000h\000e) +/Action/GoTo/Dest(section.12.2)cvn +/OUT pdfmark +[ +/Title(\376\377\000P\000r\000o\000x\000y\000\040\000C\000a\000c\000h\000e) +/Action/GoTo/Dest(section.12.3)cvn +/OUT pdfmark +[ +/Title(\376\377\000A\000u\000f\000g\000a\000b\000e\000n) +/Action/GoTo/Dest(section.12.4)cvn +/OUT pdfmark +[ +/Title(\376\377\000E\000i\000g\000e\000n\000s\000c\000h\000a\000f\000t\000e\000n) +/Action/GoTo/Dest(section.12.5)cvn +/OUT pdfmark +[ +/Title(\376\377\000P\000r\000o\000t\000o\000k\000o\000l\000l\000e) +/Count -2 +/Action/GoTo/Dest(section.12.6)cvn +/OUT pdfmark +[ +/Title(\376\377\000C\000l\000i\000e\000n\000t\000-\000K\000o\000m\000m\000u\000n\000i\000k\000a\000t\000i\000o\000n) +/Action/GoTo/Dest(subsection.12.6.1)cvn +/OUT pdfmark +[ +/Title(\376\377\000K\000o\000m\000m\000u\000n\000i\000k\000a\000t\000i\000o\000n\000\040\000z\000w\000i\000s\000c\000h\000e\000n\000\040\000P\000r\000o\000x\000y\000-\000C\000a\000c\000h\000e\000-\000S\000e\000r\000v\000e\000r\000n) +/Action/GoTo/Dest(subsection.12.6.2)cvn +/OUT pdfmark +[ +/Title(\376\377\000S\000y\000s\000t\000e\000m\000v\000o\000r\000a\000u\000s\000s\000e\000t\000z\000u\000n\000g\000e\000n) +/Action/GoTo/Dest(section.12.7)cvn +/OUT pdfmark +[ +/Title(\376\377\000S\000u\000S\000E\000\040\000L\000i\000n\000u\000x) +/Action/GoTo/Dest(section.12.8)cvn +/OUT pdfmark +[ +/Title(\376\377\000A\000u\000t\000o\000m\000a\000t\000i\000s\000c\000h\000e\000\040\000S\000t\000a\000r\000t\000e\000n\000\040\000v\000o\000n\000\040\000S\000q\000u\000i\000t) +/Action/GoTo/Dest(section.12.9)cvn +/OUT pdfmark +[ +/Title(\376\377\000S\000q\000u\000i\000d\000d\000a\000t\000e\000i\000e\000n) +/Action/GoTo/Dest(section.12.10)cvn +/OUT pdfmark +[ +/Title(\376\377\000s\000q\000u\000i\000d\000.\000c\000o\000n\000f) +/Action/GoTo/Dest(section.12.11)cvn +/OUT pdfmark +[ +/Title(\376\377\000P\000r\000o\000g\000r\000a\000m\000m\000i\000e\000r\000e\000n) +/Count -8 +/Action/GoTo/Dest(part.4)cvn +/OUT pdfmark +[ +/Title(\376\377\000B\000a\000s\000h) +/Count -3 +/Action/GoTo/Dest(chapter.13)cvn +/OUT pdfmark +[ +/Title(\376\377\000E\000i\000n\000l\000e\000i\000t\000u\000n\000g) +/Action/GoTo/Dest(section.13.1)cvn +/OUT pdfmark +[ +/Title(\376\377\000R\000e\000f\000e\000r\000e\000n\000z) +/Action/GoTo/Dest(section.13.2)cvn +/OUT pdfmark +[ +/Title(\376\377\000S\000t\000e\000u\000e\000r\000\040\000u\000n\000d\000\040\000S\000o\000n\000d\000e\000r\000z\000e\000i\000c\000h\000e\000n\000\040\000d\000e\000r\000\040\000B\000a\000s\000h) +/Action/GoTo/Dest(section.13.3)cvn +/OUT pdfmark +[ +/Title(\376\377\000g\000i\000t) +/Count -18 +/Action/GoTo/Dest(chapter.14)cvn +/OUT pdfmark +[ +/Title(\376\377\000D\000o\000k\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +/Action/GoTo/Dest(section.14.1)cvn +/OUT pdfmark +[ +/Title(\376\377\000K\000o\000n\000f\000i\000g\000u\000r\000a\000t\000i\000o\000n) +/Action/GoTo/Dest(section.14.2)cvn +/OUT pdfmark +[ +/Title(\376\377\000K\000o\000n\000f\000i\000g\000u\000r\000a\000t\000i\000o\000n\000e\000n\000\040\000\374\000b\000e\000r\000\040\000U\000m\000g\000e\000b\000u\000n\000g\000s\000v\000a\000r\000i\000a\000b\000l\000e\000n) +/Action/GoTo/Dest(section.14.3)cvn +/OUT pdfmark +[ +/Title(\376\377\000D\000e\000r\000\040\000I\000n\000d\000e\000x) +/Action/GoTo/Dest(section.14.4)cvn +/OUT pdfmark +[ +/Title(\376\377\000R\000e\000p\000o\000s\000i\000t\000o\000r\000y) +/Action/GoTo/Dest(section.14.5)cvn +/OUT pdfmark +[ +/Title(\376\377\000C\000o\000m\000m\000i\000t) +/Action/GoTo/Dest(section.14.6)cvn +/OUT pdfmark +[ +/Title(\376\377\000D\000a\000t\000e\000i\000e\000n\000\040\000e\000n\000t\000f\000e\000r\000n\000e\000n) +/Action/GoTo/Dest(section.14.7)cvn +/OUT pdfmark +[ +/Title(\376\377\000D\000a\000t\000e\000i\000e\000n\000\040\000v\000e\000r\000s\000c\000h\000i\000e\000b\000e\000n) +/Action/GoTo/Dest(section.14.8)cvn +/OUT pdfmark +[ +/Title(\376\377\000\304\000n\000d\000e\000r\000u\000n\000g\000\040\000a\000n\000\040\000e\000i\000n\000e\000r\000\040\000D\000a\000t\000e\000i\000\040\000r\000\374\000c\000k\000g\000\344\000n\000g\000i\000g\000\040\000m\000a\000c\000h\000e\000n) +/Action/GoTo/Dest(section.14.9)cvn +/OUT pdfmark +[ +/Title(\376\377\000D\000a\000t\000e\000i\000e\000n\000\040\000i\000g\000n\000o\000r\000i\000e\000r\000e\000n) +/Action/GoTo/Dest(section.14.10)cvn +/OUT pdfmark +[ +/Title(\376\377\000M\000i\000t\000\040\000e\000x\000t\000e\000r\000n\000e\000n\000\040\000R\000e\000p\000o\000s\000i\000t\000o\000r\000y\000s\000\040\000a\000r\000b\000e\000i\000t\000e\000n) +/Action/GoTo/Dest(section.14.11)cvn +/OUT pdfmark +[ +/Title(\376\377\000T\000a\000g\000s) +/Action/GoTo/Dest(section.14.12)cvn +/OUT pdfmark +[ +/Title(\376\377\000B\000r\000a\000n\000c\000h) +/Action/GoTo/Dest(section.14.13)cvn +/OUT pdfmark +[ +/Title(\376\377\000G\000i\000t\000\040\000A\000l\000i\000a\000s\000e) +/Action/GoTo/Dest(section.14.14)cvn +/OUT pdfmark +[ +/Title(\376\377\000G\000i\000t\000\040\000a\000u\000f\000\040\000e\000i\000n\000e\000n\000\040\000S\000e\000r\000v\000e\000r\000\040\000b\000e\000k\000o\000m\000m\000e\000n) +/Action/GoTo/Dest(section.14.15)cvn +/OUT pdfmark +[ +/Title(\376\377\000G\000i\000t\000\040\000a\000u\000f\000\040\000d\000e\000m\000\040\000S\000S\000H\000-\000S\000e\000r\000v\000e\000r\000\040\000e\000i\000n\000r\000i\000c\000h\000t\000e\000n) +/Action/GoTo/Dest(section.14.16)cvn +/OUT pdfmark +[ +/Title(\376\377\000\326\000f\000f\000e\000n\000t\000l\000i\000c\000h\000e\000r\000\040\000W\000e\000b\000s\000e\000r\000v\000e\000r\000-\000Z\000u\000g\000a\000n\000g) +/Action/GoTo/Dest(section.14.17)cvn +/OUT pdfmark +[ +/Title(\376\377\000G\000r\000u\000n\000d\000b\000e\000g\000r\000i\000f\000f\000e) +/Action/GoTo/Dest(section.14.18)cvn +/OUT pdfmark +[ +/Title(\376\377\000C\000/\000C\000+\000+) +/Count -12 +/Action/GoTo/Dest(chapter.15)cvn +/OUT pdfmark +[ +/Title(\376\377\000B\000e\000f\000e\000h\000l\000e\000\040\000u\000n\000d\000\040\000G\000r\000u\000n\000d\000e\000l\000e\000m\000e\000n\000t\000e) +/Action/GoTo/Dest(section.15.1)cvn +/OUT pdfmark +[ +/Title(\376\377\000S\000t\000e\000u\000e\000r\000s\000e\000q\000u\000e\000n\000z\000e\000n\000\040\000f\000\374\000r\000\040\000A\000N\000S\000I\000-\000B\000i\000l\000d\000s\000c\000h\000i\000r\000m\000e\000\040\000-\000\040\000I\000n\000n\000e\000r\000h\000a\000l\000b\000\040\000v\000o\000n\000\040\000T\000e\000x\000t\000e\000n) +/Action/GoTo/Dest(section.15.2)cvn +/OUT pdfmark +[ +/Title(\376\377\000s\000t\000d\000i\000o\000.\000h\000\040\000-\000>\000\040\000S\000t\000a\000n\000d\000a\000r\000d\000\040\000E\000i\000n\000-\000\040\000u\000n\000d\000\040\000A\000u\000s\000g\000a\000b\000e) +/Action/GoTo/Dest(section.15.3)cvn +/OUT pdfmark +[ +/Title(\376\377\000c\000t\000y\000p\000e\000.\000h) +/Action/GoTo/Dest(section.15.4)cvn +/OUT pdfmark +[ +/Title(\376\377\000s\000t\000r\000i\000n\000g\000.\000h) +/Action/GoTo/Dest(section.15.5)cvn +/OUT pdfmark +[ +/Title(\376\377\000K\000o\000n\000t\000r\000o\000l\000l\000s\000t\000r\000u\000k\000t\000u\000r\000e\000n) +/Action/GoTo/Dest(section.15.6)cvn +/OUT pdfmark +[ +/Title(\376\377\000A\000S\000C\000I\000I\000\050\000A\000m\000e\000r\000i\000c\000a\000n\000\040\000S\000t\000a\000n\000d\000a\000r\000t\000\040\000C\000o\000d\000e\000\040\000f\000o\000r\000\040\000I\000n\000f\000o\000r\000m\000a\000t\000i\000o\000n\000\040\000I\000n\000t\000e\000r\000c\000h\000a\000n\000g\000e\000\051\000-\000T\000a\000b\000e\000l\000l\000e) +/Count -2 +/Action/GoTo/Dest(section.15.7)cvn +/OUT pdfmark +[ +/Title(\376\377\000U\000n\000t\000e\000r\000t\000e\000i\000l\000u\000n\000g\000\040\000d\000e\000r\000\040\000S\000t\000e\000u\000e\000r\000z\000e\000i\000c\000h\000e\000n\000:) +/Action/GoTo/Dest(subsection.15.7.1)cvn +/OUT pdfmark +[ +/Title(\376\377\000B\000e\000d\000e\000u\000t\000u\000n\000g\000\040\000d\000e\000r\000\040\000S\000t\000e\000u\000e\000r\000z\000e\000i\000c\000h\000e\000n\000:) +/Action/GoTo/Dest(subsection.15.7.2)cvn +/OUT pdfmark +[ +/Title(\376\377\000O\000p\000e\000r\000a\000t\000o\000r\000e\000n\000\040\000u\000n\000d\000\040\000A\000u\000s\000d\000r\000\374\000c\000k\000e) +/Count -7 +/Action/GoTo/Dest(section.15.8)cvn +/OUT pdfmark +[ +/Title(\376\377\000A\000r\000i\000t\000h\000m\000e\000t\000i\000s\000c\000h\000e\000\040\000O\000p\000e\000r\000a\000t\000o\000r\000e\000n\000:) +/Action/GoTo/Dest(subsection.15.8.1)cvn +/OUT pdfmark +[ +/Title(\376\377\000V\000e\000r\000g\000l\000e\000i\000c\000h\000s\000o\000p\000e\000r\000a\000t\000o\000r\000e\000n\000:) +/Action/GoTo/Dest(subsection.15.8.2)cvn +/OUT pdfmark +[ +/Title(\376\377\000L\000o\000g\000i\000s\000c\000h\000e\000\040\000O\000p\000e\000r\000a\000t\000o\000r\000e\000n\000:) +/Action/GoTo/Dest(subsection.15.8.3)cvn +/OUT pdfmark +[ +/Title(\376\377\000Z\000u\000w\000e\000i\000s\000u\000n\000g\000s\000o\000p\000e\000r\000a\000t\000o\000r\000e\000n\000:) +/Action/GoTo/Dest(subsection.15.8.4)cvn +/OUT pdfmark +[ +/Title(\376\377\000P\000o\000s\000t\000-\000\040\000u\000n\000d\000\040\000P\000r\000e\000f\000i\000x\000-\000\040\000O\000p\000e\000r\000a\000t\000o\000r\000e\000n\000:) +/Action/GoTo/Dest(subsection.15.8.5)cvn +/OUT pdfmark +[ +/Title(\376\377\000Z\000e\000i\000g\000e\000r\000o\000p\000e\000r\000a\000t\000o\000r\000e\000n\000:) +/Action/GoTo/Dest(subsection.15.8.6)cvn +/OUT pdfmark +[ +/Title(\376\377\000D\000i\000v\000e\000r\000s\000e\000\040\000K\000a\000t\000e\000g\000o\000r\000i\000e\000n\000:) +/Action/GoTo/Dest(subsection.15.8.7)cvn +/OUT pdfmark +[ +/Title(\376\377\000I\000n\000k\000r\000e\000m\000e\000n\000t\000i\000e\000r\000e\000n\000\040\000u\000n\000d\000\040\000D\000e\000k\000r\000e\000m\000e\000n\000t\000i\000e\000r\000e\000n) +/Action/GoTo/Dest(section.15.9)cvn +/OUT pdfmark +[ +/Title(\376\377\000W\000e\000r\000t\000e\000b\000e\000r\000e\000i\000c\000h\000\040\000u\000n\000d\000\040\000G\000e\000n\000a\000u\000i\000g\000k\000e\000i\000t\000\040\000e\000l\000e\000m\000e\000n\000t\000a\000r\000e\000r\000\040\000D\000a\000t\000e\000n\000t\000y\000p\000e\000n) +/Action/GoTo/Dest(section.15.10)cvn +/OUT pdfmark +[ +/Title(\376\377\000V\000a\000r\000i\000a\000b\000l\000e\000n\000i\000n\000i\000t\000i\000a\000l\000i\000s\000i\000e\000r\000u\000n\000g) +/Action/GoTo/Dest(section.15.11)cvn +/OUT pdfmark +[ +/Title(\376\377\000K\000o\000n\000s\000t\000a\000n\000t\000e\000n) +/Count -3 +/Action/GoTo/Dest(section.15.12)cvn +/OUT pdfmark +[ +/Title(\376\377\000G\000a\000n\000z\000z\000a\000h\000l\000k\000o\000n\000s\000t\000a\000n\000t\000e\000n) +/Action/GoTo/Dest(subsection.15.12.1)cvn +/OUT pdfmark +[ +/Title(\376\377\000G\000l\000e\000i\000t\000k\000o\000m\000m\000a\000k\000o\000n\000s\000t\000a\000n\000t\000e\000n) +/Action/GoTo/Dest(subsection.15.12.2)cvn +/OUT pdfmark +[ +/Title(\376\377\000Z\000e\000i\000c\000h\000e\000n\000-\000\040\000u\000n\000d\000\040\000Z\000e\000i\000c\000h\000e\000n\000k\000e\000t\000t\000e\000n\000k\000o\000n\000s\000t\000a\000n\000t\000e\000n) +/Action/GoTo/Dest(subsection.15.12.3)cvn +/OUT pdfmark +[ +/Title(\376\377\000T\000c\000l\000/\000T\000k) +/Action/GoTo/Dest(chapter.16)cvn +/OUT pdfmark +[ +/Title(\376\377\000P\000e\000r\000l) +/Action/GoTo/Dest(chapter.17)cvn +/OUT pdfmark +[ +/Title(\376\377\000C\000G\000I\000+\000P\000e\000r\000l) +/Count -3 +/Action/GoTo/Dest(chapter.18)cvn +/OUT pdfmark +[ +/Title(\376\377\000E\000i\000n\000l\000e\000i\000t\000u\000n\000g) +/Action/GoTo/Dest(section.18.1)cvn +/OUT pdfmark +[ +/Title(\376\377\000P\000e\000r\000l) +/Count -7 +/Action/GoTo/Dest(section.18.2)cvn +/OUT pdfmark +[ +/Title(\376\377\000T\000e\000x\000t\000e\000\040\000u\000n\000d\000\040\000S\000t\000r\000i\000n\000g\000s) +/Action/GoTo/Dest(subsection.18.2.1)cvn +/OUT pdfmark +[ +/Title(\376\377\000R\000e\000c\000h\000e\000n\000o\000p\000e\000r\000a\000t\000i\000o\000n\000e\000n) +/Action/GoTo/Dest(subsection.18.2.2)cvn +/OUT pdfmark +[ +/Title(\376\377\000A\000r\000r\000a\000y\000s\000\040\000\050\000L\000i\000s\000t\000e\000n\000\051) +/Action/GoTo/Dest(subsection.18.2.3)cvn +/OUT pdfmark +[ +/Title(\376\377\000S\000t\000r\000i\000n\000g\000-\000\040\000u\000n\000d\000\040\000Z\000a\000h\000l\000e\000n\000v\000e\000r\000g\000l\000e\000i\000c\000h\000s\000o\000p\000e\000r\000r\000a\000t\000o\000r\000e\000n) +/Action/GoTo/Dest(subsection.18.2.4)cvn +/OUT pdfmark +[ +/Title(\376\377\000i\000f\000-\000B\000e\000d\000i\000n\000g\000u\000n\000g) +/Action/GoTo/Dest(subsection.18.2.5)cvn +/OUT pdfmark +[ +/Title(\376\377\000i\000f\000-\000e\000l\000s\000e\000-\000B\000e\000d\000i\000n\000g\000u\000n\000g) +/Action/GoTo/Dest(subsection.18.2.6)cvn +/OUT pdfmark +[ +/Title(\376\377\000i\000f\000-\000e\000l\000s\000e\000i\000f\000-\000B\000e\000d\000i\000n\000g\000u\000n\000g) +/Action/GoTo/Dest(subsection.18.2.7)cvn +/OUT pdfmark +[ +/Title(\376\377\000F\000u\000n\000k\000t\000i\000o\000n\000e\000n) +/Count -3 +/Action/GoTo/Dest(section.18.3)cvn +/OUT pdfmark +[ +/Title(\376\377\000S\000t\000r\000i\000n\000g\000\040\000F\000u\000n\000k\000t\000i\000o\000n\000e\000n) +/Action/GoTo/Dest(subsection.18.3.1)cvn +/OUT pdfmark +[ +/Title(\376\377\000R\000e\000c\000h\000e\000n\000\040\000F\000u\000n\000k\000t\000i\000o\000n\000e\000n) +/Action/GoTo/Dest(subsection.18.3.2)cvn +/OUT pdfmark +[ +/Title(\376\377\000A\000r\000r\000a\000y\000\040\000F\000u\000n\000k\000t\000i\000o\000n\000e\000n) +/Action/GoTo/Dest(subsection.18.3.3)cvn +/OUT pdfmark +[ +/Title(\376\377\000J\000a\000v\000a) +/Count -18 +/Action/GoTo/Dest(chapter.19)cvn +/OUT pdfmark +[ +/Title(\376\377\000F\000u\000n\000k\000t\000i\000o\000n\000\040\000v\000o\000n\000\040\000J\000a\000v\000a) +/Action/GoTo/Dest(section.19.1)cvn +/OUT pdfmark +[ +/Title(\376\377\000S\000p\000r\000a\000c\000h\000e\000\040\000u\000n\000d\000\040\000S\000y\000n\000t\000a\000x\000\040\000v\000o\000n\000\040\000J\000a\000v\000a) +/Count -3 +/Action/GoTo/Dest(section.19.2)cvn +/OUT pdfmark +[ +/Title(\376\377\000K\000o\000m\000m\000e\000n\000t\000r\000a\000r\000e) +/Action/GoTo/Dest(subsection.19.2.1)cvn +/OUT pdfmark +[ +/Title(\376\377\000D\000a\000t\000e\000n\000t\000y\000p\000e\000n) +/Action/GoTo/Dest(subsection.19.2.2)cvn +/OUT pdfmark +[ +/Title(\376\377\000V\000a\000r\000i\000a\000b\000l\000e\000n) +/Action/GoTo/Dest(subsection.19.2.3)cvn +/OUT pdfmark +[ +/Title(\376\377\000P\000a\000k\000e\000t\000e\000\040\000u\000n\000d\000\040\000V\000e\000r\000z\000e\000i\000c\000h\000n\000i\000s\000s\000t\000r\000u\000k\000t\000u\000r\000e\000n) +/Count -7 +/Action/GoTo/Dest(section.19.3)cvn +/OUT pdfmark +[ +/Title(\376\377\000S\000i\000c\000h\000t\000b\000a\000r\000k\000e\000i\000t\000\040\000u\000n\000d\000\040\000Z\000u\000g\000r\000i\000f\000f\000s\000r\000e\000c\000h\000t\000e\000\040\000v\000o\000n\000\040\000K\000l\000a\000s\000s\000e\000n\000\040\000u\000n\000d\000\040\000M\000e\000t\000h\000o\000d\000e\000n) +/Action/GoTo/Dest(subsection.19.3.1)cvn +/OUT pdfmark +[ +/Title(\376\377\000K\000l\000a\000s\000s\000e\000n) +/Action/GoTo/Dest(subsection.19.3.2)cvn +/OUT pdfmark +[ +/Title(\376\377\000K\000o\000n\000s\000t\000r\000u\000k\000t\000o\000r\000e\000n\000\040\000u\000n\000d\000\040\000D\000e\000s\000t\000r\000u\000k\000t\000o\000r\000e\000n) +/Action/GoTo/Dest(subsection.19.3.3)cvn +/OUT pdfmark +[ +/Title(\376\377\000M\000e\000t\000h\000o\000d\000e\000n\000\040\000\374\000b\000e\000r\000l\000a\000d\000e\000n) +/Action/GoTo/Dest(subsection.19.3.4)cvn +/OUT pdfmark +[ +/Title(\376\377\000O\000b\000j\000e\000k\000t\000e) +/Action/GoTo/Dest(subsection.19.3.5)cvn +/OUT pdfmark +[ +/Title(\376\377\000V\000e\000r\000e\000r\000b\000u\000n\000g) +/Action/GoTo/Dest(subsection.19.3.6)cvn +/OUT pdfmark +[ +/Title(\376\377\000S\000c\000h\000n\000i\000t\000t\000s\000t\000e\000l\000l\000e\000n) +/Action/GoTo/Dest(subsection.19.3.7)cvn +/OUT pdfmark +[ +/Title(\376\377\000E\000l\000e\000m\000e\000n\000t\000a\000r\000e\000\040\000S\000y\000n\000t\000a\000x\000\040\000v\000o\000n\000\040\000J\000a\000v\000a) +/Count -9 +/Action/GoTo/Dest(section.19.4)cvn +/OUT pdfmark +[ +/Title(\376\377\000O\000p\000e\000r\000r\000a\000t\000o\000r\000e\000n) +/Action/GoTo/Dest(subsection.19.4.1)cvn +/OUT pdfmark +[ +/Title(\376\377\000V\000e\000r\000k\000n\000\374\000p\000f\000u\000n\000g\000s\000o\000p\000e\000r\000a\000t\000o\000r\000e\000n) +/Action/GoTo/Dest(subsection.19.4.2)cvn +/OUT pdfmark +[ +/Title(\376\377\000I\000n\000k\000r\000e\000m\000e\000n\000t\000-\000O\000p\000e\000r\000a\000t\000o\000r) +/Action/GoTo/Dest(subsection.19.4.3)cvn +/OUT pdfmark +[ +/Title(\376\377\000D\000e\000k\000r\000e\000m\000e\000n\000t\000-\000O\000p\000e\000r\000a\000t\000o\000r) +/Action/GoTo/Dest(subsection.19.4.4)cvn +/OUT pdfmark +[ +/Title(\376\377\000A\000r\000i\000t\000h\000m\000e\000t\000i\000s\000c\000h\000e\000\040\000Z\000u\000w\000e\000i\000s\000u\000n\000g\000s\000o\000p\000e\000r\000a\000t\000o\000r\000e\000n) +/Action/GoTo/Dest(subsection.19.4.5)cvn +/OUT pdfmark +[ +/Title(\376\377\000B\000e\000d\000i\000n\000g\000u\000n\000g\000e\000n\000\040\000u\000n\000d\000\040\000E\000n\000t\000s\000c\000h\000e\000i\000d\000u\000n\000g\000e\000n) +/Action/GoTo/Dest(subsection.19.4.6)cvn +/OUT pdfmark +[ +/Title(\376\377\000i\000f\000\040\000-\000\040\000e\000l\000s\000e\000\040\000-\000\040\000B\000e\000d\000i\000n\000g\000u\000n\000g\000e\000n) +/Action/GoTo/Dest(subsection.19.4.7)cvn +/OUT pdfmark +[ +/Title(\376\377\000V\000e\000r\000s\000c\000h\000a\000c\000h\000t\000e\000l\000t\000e\000\040\000B\000e\000d\000i\000n\000g\000u\000n\000g\000e\000n) +/Action/GoTo/Dest(subsection.19.4.8)cvn +/OUT pdfmark +[ +/Title(\376\377\000F\000a\000l\000l\000u\000n\000t\000e\000r\000s\000c\000h\000e\000i\000d\000u\000n\000g\000\040\000m\000i\000t\000\040\000s\000w\000i\000t\000c\000h\000\040\000-\000\040\000c\000a\000s\000e) +/Action/GoTo/Dest(subsection.19.4.9)cvn +/OUT pdfmark +[ +/Title(\376\377\000S\000c\000h\000l\000e\000i\000f\000e\000n) +/Count -5 +/Action/GoTo/Dest(section.19.5)cvn +/OUT pdfmark +[ +/Title(\376\377\000D\000i\000e\000\040\000w\000h\000i\000l\000e\000\040\000-\000\040\000S\000c\000h\000l\000e\000i\000f\000e) +/Action/GoTo/Dest(subsection.19.5.1)cvn +/OUT pdfmark +[ +/Title(\376\377\000D\000i\000e\000\040\000d\000o\000\040\000-\000\040\000w\000h\000i\000l\000e\000\040\000-\000\040\000S\000c\000h\000l\000e\000i\000f\000e) +/Action/GoTo/Dest(subsection.19.5.2)cvn +/OUT pdfmark +[ +/Title(\376\377\000D\000i\000e\000\040\000f\000o\000r\000\040\000-\000\040\000S\000c\000h\000l\000e\000i\000f\000e) +/Action/GoTo/Dest(subsection.19.5.3)cvn +/OUT pdfmark +[ +/Title(\376\377\000S\000c\000h\000l\000e\000i\000f\000e\000n\000\040\000m\000i\000t\000\040\000b\000r\000e\000a\000k\000\040\000v\000e\000r\000l\000a\000s\000s\000e\000n) +/Action/GoTo/Dest(subsection.19.5.4)cvn +/OUT pdfmark +[ +/Title(\376\377\000S\000c\000h\000l\000e\000i\000f\000e\000\040\000m\000i\000t\000\040\000c\000o\000n\000t\000i\000n\000u\000e\000\040\000w\000i\000e\000d\000e\000r\000h\000o\000l\000e\000n) +/Action/GoTo/Dest(subsection.19.5.5)cvn +/OUT pdfmark +[ +/Title(\376\377\000K\000o\000m\000p\000l\000e\000x\000e\000\040\000D\000a\000t\000e\000n\000t\000y\000p\000e\000n) +/Count -1 +/Action/GoTo/Dest(section.19.6)cvn +/OUT pdfmark +[ +/Title(\376\377\000A\000r\000r\000a\000y\000s) +/Action/GoTo/Dest(subsection.19.6.1)cvn +/OUT pdfmark +[ +/Title(\376\377\000D\000i\000e\000\040\000A\000n\000w\000e\000i\000s\000u\000n\000g\000\040\000i\000m\000p\000o\000r\000t) +/Action/GoTo/Dest(section.19.7)cvn +/OUT pdfmark +[ +/Title(\376\377\000J\000a\000v\000a\000\040\000e\000i\000g\000e\000n\000e\000\040\000K\000l\000a\000s\000s\000e\000n) +/Count -1 +/Action/GoTo/Dest(section.19.8)cvn +/OUT pdfmark +[ +/Title(\376\377\000D\000i\000e\000\040\000K\000l\000a\000s\000s\000e\000\040\000M\000a\000t\000h) +/Action/GoTo/Dest(subsection.19.8.1)cvn +/OUT pdfmark +[ +/Title(\376\377\000D\000i\000e\000\040\000K\000l\000a\000s\000s\000e\000\040\000O\000b\000j\000e\000c\000t) +/Count -1 +/Action/GoTo/Dest(section.19.9)cvn +/OUT pdfmark +[ +/Title(\376\377\000D\000i\000e\000\040\000K\000l\000a\000s\000s\000e\000\040\000O\000b\000j\000e\000c\000t) +/Action/GoTo/Dest(subsection.19.9.1)cvn +/OUT pdfmark +[ +/Title(\376\377\000D\000i\000e\000\040\000K\000l\000a\000s\000s\000e\000\040\000R\000u\000n\000t\000i\000m\000e) +/Action/GoTo/Dest(section.19.10)cvn +/OUT pdfmark +[ +/Title(\376\377\000D\000i\000e\000\040\000K\000l\000a\000s\000s\000e\000\040\000S\000t\000r\000i\000n\000g) +/Action/GoTo/Dest(section.19.11)cvn +/OUT pdfmark +[ +/Title(\376\377\000D\000i\000e\000\040\000K\000l\000a\000s\000s\000e\000\040\000S\000t\000r\000i\000n\000g\000b\000u\000f\000f\000e\000r) +/Count -1 +/Action/GoTo/Dest(section.19.12)cvn +/OUT pdfmark +[ +/Title(\376\377\000D\000i\000e\000\040\000K\000l\000a\000s\000s\000e\000\040\000S\000t\000r\000i\000n\000g\000b\000u\000f\000f\000e\000r) +/Action/GoTo/Dest(subsection.19.12.1)cvn +/OUT pdfmark +[ +/Title(\376\377\000D\000i\000e\000\040\000K\000l\000a\000s\000s\000e\000\040\000S\000y\000s\000t\000e\000m) +/Action/GoTo/Dest(section.19.13)cvn +/OUT pdfmark +[ +/Title(\376\377\000D\000a\000s\000\040\000P\000a\000k\000e\000t\000\040\000j\000a\000v\000a\000.\000u\000t\000i\000l) +/Count -3 +/Action/GoTo/Dest(section.19.14)cvn +/OUT pdfmark +[ +/Title(\376\377\000D\000i\000e\000\040\000K\000l\000a\000s\000s\000e\000\040\000D\000a\000t\000e) +/Action/GoTo/Dest(subsection.19.14.1)cvn +/OUT pdfmark +[ +/Title(\376\377\000D\000i\000e\000\040\000K\000l\000a\000s\000s\000e\000\040\000R\000a\000n\000d\000o\000m) +/Action/GoTo/Dest(subsection.19.14.2)cvn +/OUT pdfmark +[ +/Title(\376\377\000D\000i\000e\000\040\000K\000l\000a\000s\000s\000e\000\040\000S\000t\000a\000c\000k) +/Action/GoTo/Dest(subsection.19.14.3)cvn +/OUT pdfmark +[ +/Title(\376\377\000A\000u\000s\000n\000a\000h\000m\000e\000n\000\040\000\050\000E\000x\000c\000e\000p\000t\000i\000o\000n\000s\000\051) +/Count -1 +/Action/GoTo/Dest(section.19.15)cvn +/OUT pdfmark +[ +/Title(\376\377\000E\000i\000g\000e\000n\000e\000\040\000A\000u\000s\000n\000a\000h\000m\000e\000\040\000e\000r\000z\000e\000u\000g\000e\000n\000\040\000\050\000t\000h\000r\000o\000w\000\051) +/Action/GoTo/Dest(subsection.19.15.1)cvn +/OUT pdfmark +[ +/Title(\376\377\000M\000u\000l\000t\000i\000t\000a\000s\000k\000i\000n\000g\000\040\000m\000i\000t\000\040\000T\000h\000r\000e\000a\000d\000s) +/Count -1 +/Action/GoTo/Dest(section.19.16)cvn +/OUT pdfmark +[ +/Title(\376\377\000A\000r\000b\000e\000i\000t\000e\000n\000\040\000m\000i\000t\000\040\000T\000h\000r\000e\000a\000d\000s) +/Action/GoTo/Dest(subsection.19.16.1)cvn +/OUT pdfmark +[ +/Title(\376\377\000A\000p\000p\000l\000e\000t\000s) +/Count -10 +/Action/GoTo/Dest(section.19.17)cvn +/OUT pdfmark +[ +/Title(\376\377\000A\000p\000p\000l\000e\000t\000s\000\040\000i\000n\000\040\000e\000i\000n\000e\000\040\000W\000e\000b\000s\000e\000i\000t\000e\000\040\000e\000i\000n\000b\000i\000n\000d\000e\000n) +/Action/GoTo/Dest(subsection.19.17.1)cvn +/OUT pdfmark +[ +/Title(\376\377\000D\000a\000s\000\040\000e\000r\000s\000t\000e\000\040\000J\000a\000v\000a\000\040\000A\000p\000p\000l\000e\000t) +/Action/GoTo/Dest(subsection.19.17.2)cvn +/OUT pdfmark +[ +/Title(\376\377\000D\000i\000e\000\040\000M\000e\000t\000h\000o\000d\000e\000n\000\040\000e\000i\000n\000e\000s\000\040\000A\000p\000p\000l\000e\000t\000s) +/Action/GoTo/Dest(subsection.19.17.3)cvn +/OUT pdfmark +[ +/Title(\376\377\000E\000i\000n\000\040\000A\000p\000p\000l\000e\000t\000\040\000i\000m\000\040\000\334\000b\000e\000r\000b\000l\000i\000c\000k) +/Action/GoTo/Dest(subsection.19.17.4)cvn +/OUT pdfmark +[ +/Title(\376\377\000P\000a\000k\000e\000t\000e) +/Action/GoTo/Dest(subsection.19.17.5)cvn +/OUT pdfmark +[ +/Title(\376\377\000D\000i\000e\000\040\000K\000l\000a\000s\000s\000e\000\040\000G\000r\000a\000p\000h\000i\000c\000s) +/Action/GoTo/Dest(subsection.19.17.6)cvn +/OUT pdfmark +[ +/Title(\376\377\000D\000i\000e\000\040\000K\000l\000a\000s\000s\000e\000\040\000C\000o\000l\000o\000r) +/Action/GoTo/Dest(subsection.19.17.7)cvn +/OUT pdfmark +[ +/Title(\376\377\000D\000i\000e\000\040\000K\000l\000a\000s\000s\000e\000\040\000F\000o\000n\000t) +/Action/GoTo/Dest(subsection.19.17.8)cvn +/OUT pdfmark +[ +/Title(\376\377\000D\000i\000e\000\040\000K\000l\000a\000s\000s\000e\000\040\000I\000m\000a\000g\000e) +/Action/GoTo/Dest(subsection.19.17.9)cvn +/OUT pdfmark +[ +/Title(\376\377\000D\000i\000e\000\040\000K\000l\000a\000s\000s\000e\000\040\000B\000u\000t\000t\000o\000n) +/Action/GoTo/Dest(subsection.19.17.10)cvn +/OUT pdfmark +[ +/Title(\376\377\000E\000v\000e\000n\000t\000h\000a\000n\000d\000l\000i\000n\000g) +/Count -4 +/Action/GoTo/Dest(section.19.18)cvn +/OUT pdfmark +[ +/Title(\376\377\000M\000o\000u\000s\000e\000\040\000E\000v\000e\000n\000t\000s) +/Action/GoTo/Dest(subsection.19.18.1)cvn +/OUT pdfmark +[ +/Title(\376\377\000A\000c\000t\000i\000o\000n\000\040\000E\000v\000e\000n\000t\000s) +/Action/GoTo/Dest(subsection.19.18.2)cvn +/OUT pdfmark +[ +/Title(\376\377\000P\000a\000r\000a\000m\000e\000t\000e\000r\000\040\000a\000n\000\040\000e\000i\000n\000\040\000A\000p\000p\000l\000e\000t) +/Action/GoTo/Dest(subsection.19.18.3)cvn +/OUT pdfmark +[ +/Title(\376\377\000W\000e\000i\000t\000e\000r\000e\000\040\000w\000i\000c\000h\000t\000i\000g\000e\000\040\000P\000a\000k\000e\000t\000e) +/Action/GoTo/Dest(subsection.19.18.4)cvn +/OUT pdfmark +[ +/Title(\376\377\000J\000a\000v\000a\000S\000c\000r\000i\000p\000t) +/Count -9 +/Action/GoTo/Dest(chapter.20)cvn +/OUT pdfmark +[ +/Title(\376\377\000E\000i\000n\000b\000i\000n\000d\000u\000n\000g\000\040\000v\000o\000n\000\040\000J\000a\000v\000a\000S\000c\000r\000i\000p\000t) +/Count -3 +/Action/GoTo/Dest(section.20.1)cvn +/OUT pdfmark +[ +/Title(\376\377\000E\000i\000n\000b\000i\000n\000d\000u\000n\000g\000\040\000i\000n\000\040\000d\000e\000n\000\040\000H\000e\000a\000d) +/Action/GoTo/Dest(subsection.20.1.1)cvn +/OUT pdfmark +[ +/Title(\376\377\000E\000i\000n\000b\000i\000n\000d\000u\000n\000g\000\040\000i\000n\000\040\000d\000e\000n\000\040\000B\000o\000d\000y) +/Action/GoTo/Dest(subsection.20.1.2)cvn +/OUT pdfmark +[ +/Title(\376\377\000A\000u\000s\000f\000\374\000h\000r\000e\000n\000\040\000b\000e\000i\000\040\000b\000e\000s\000t\000i\000m\000m\000t\000e\000n\000\040\000A\000k\000t\000i\000o\000n\000e\000n) +/Action/GoTo/Dest(subsection.20.1.3)cvn +/OUT pdfmark +[ +/Title(\376\377\000V\000a\000r\000i\000a\000b\000l\000e\000n) +/Action/GoTo/Dest(section.20.2)cvn +/OUT pdfmark +[ +/Title(\376\377\000O\000b\000j\000e\000k\000t\000e) +/Count -4 +/Action/GoTo/Dest(section.20.3)cvn +/OUT pdfmark +[ +/Title(\376\377\000S\000t\000a\000n\000d\000a\000r\000d\000o\000b\000j\000e\000k\000t\000e) +/Action/GoTo/Dest(subsection.20.3.1)cvn +/OUT pdfmark +[ +/Title(\376\377\000S\000t\000r\000i\000n\000g\000-\000O\000b\000j\000e\000k\000t) +/Action/GoTo/Dest(subsection.20.3.2)cvn +/OUT pdfmark +[ +/Title(\376\377\000E\000i\000g\000e\000n\000e\000\040\000O\000b\000j\000e\000k\000t\000e) +/Action/GoTo/Dest(subsection.20.3.3)cvn +/OUT pdfmark +[ +/Title(\376\377\000A\000r\000r\000a\000y\000s) +/Action/GoTo/Dest(subsection.20.3.4)cvn +/OUT pdfmark +[ +/Title(\376\377\000M\000a\000t\000h\000e\000m\000a\000t\000i\000s\000c\000h\000e\000\040\000O\000p\000e\000r\000a\000t\000i\000o\000n\000e\000n) +/Action/GoTo/Dest(section.20.4)cvn +/OUT pdfmark +[ +/Title(\376\377\000B\000e\000d\000i\000n\000g\000t\000e\000\040\000A\000u\000s\000f\000\374\000h\000r\000u\000n\000g) +/Action/GoTo/Dest(section.20.5)cvn +/OUT pdfmark +[ +/Title(\376\377\000S\000c\000h\000l\000e\000i\000f\000e\000n) +/Action/GoTo/Dest(section.20.6)cvn +/OUT pdfmark +[ +/Title(\376\377\000E\000v\000e\000n\000t\000-\000H\000a\000n\000d\000l\000e\000r) +/Action/GoTo/Dest(section.20.7)cvn +/OUT pdfmark +[ +/Title(\376\377\000F\000u\000n\000k\000t\000i\000o\000n\000e\000n) +/Action/GoTo/Dest(section.20.8)cvn +/OUT pdfmark +[ +/Title(\376\377\000R\000e\000s\000e\000r\000v\000i\000e\000r\000t\000e\000\040\000W\000\366\000r\000t\000e\000r) +/Action/GoTo/Dest(section.20.9)cvn +/OUT pdfmark +[ +/Title(\376\377\000A\000n\000h\000a\000n\000g) +/Count -1 +/Action/GoTo/Dest(part.5)cvn +/OUT pdfmark +[ +/Title(\376\377\000G\000l\000o\000s\000s\000a\000r) +/Action/GoTo/Dest(chapter.21)cvn +/OUT pdfmark +[ +/Title(\376\377\000S\000t\000i\000c\000h\000w\000o\000r\000t\000v\000e\000r\000z\000e\000i\000c\000h\000n\000i\000s) +/Action/GoTo/Dest(chapter*.34)cvn +/OUT pdfmark + +%%EndDocument + @endspecial eop end +%%Trailer + +userdict /end-hook known{end-hook}if +%%EOF diff --git a/linux.tex b/linux.tex new file mode 100644 index 0000000..7f5dcdb --- /dev/null +++ b/linux.tex @@ -0,0 +1,51 @@ +% master: linux.tex +% linux.tex v0.30 +% 2022-05-09 (Rx) + +\NeedsTeXFormat{LaTeX2e} +\documentclass[10pt,a4paper,titlepage]{scrbook} % das Papierformat zuerst + +\RedeclareSectionCommand[% +tocnumwidth=3em,]{section} +\RedeclareSectionCommand[% +tocnumwidth=4em,]{subsection} + +\usepackage[T1]{fontenc} +%\usepackage{ucs} +\usepackage[utf8x]{inputenc} +\usepackage{imakeidx} % Stichwortverzeichnis +\makeindex[title=Stichwortverzeichnis,columns=3] % Stichwortverzeichis +\usepackage[german]{babel} +\usepackage{datetime} +\usepackage[pdfborderstyle={/S/U/W 1}]{hyperref} + +% Titelseite +%----------- +\title{linux v0.1.52} +\author{tresix69@freenet.de} +\newdateformat{myformat}{\THEDAY{. }\monthname[\THEMONTH] \THEYEAR} +\date{\myformat\today} +\publishers{betreut durch Thomas resiX} + +\begin{document} % Dokumentanfang + +% Verzeichnise +%------------- +\maketitle % Titelseite + +% Seiten +%------- +\input{vorwort/vorwort} +\setuptoc{toc}{totoc} +%\renewcommand{\contentsname}{Inhalt} +\tableofcontents % Inhaltsverzeichnis +\input{linux/linux} +\input{programme/programme} +\input{netzwerk/netzwerk} +\input{programmieren/programmieren} +\input{anhang/anhang} +\printindex % Stichwortverzeichnis +\addcontentsline{toc}{part}{Stichwortverzeichnis} + +\end{document} % Dokumentende + diff --git a/linux.txt b/linux.txt new file mode 100644 index 0000000..dea12ef --- /dev/null +++ b/linux.txt @@ -0,0 +1,4814 @@ + linux v0.1.52 + tresix69@freenet.de + 15. Februar 2025 + betreut durch Thomas resiX + 1. Vorwort + Habe versucht alles so kurz wie möglich aber dennoch ausführlich zu Beschreiben und + wie immer aus verschiedenen Anleitugen abgeschrieben ;-) + 3 + Inhaltsverzeichnis + 1. Vorwort 3 + Inhaltsverzeichnis 5 + I. Linux 15 + 2. Linux 17 + 2.1. Was ist Linux? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 + 2.2. Kernel und Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 + 2.2.1. Kernel 2.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 + 2.2.2. Kernel 2.6 (Debian 4.0 etch) . . . . . . . . . . . . . . . . . . . 17 + 3. Befehle 19 + 3.1. Standartein-aus-gabe . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 + 3.2. Anmelden und Abmelden . . . . . . . . . . . . . . . . . . . . . . . . . 19 + 3.3. Anhalten des Systems und Booten . . . . . . . . . . . . . . . . . . . . 19 + 3.4. Die Runlevel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 + 3.4.1. Upstart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 + 3.5. SuSE-Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 + 3.6. Zur Orientierung auf einem UNIX-Rechner . . . . . . . . . . . . . . . . 20 + 3.7. Datum und Uhrzeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 + 3.8. Auflisten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 + 3.9. Dateinamen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 + 3.10. Dateiendungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 + 3.11. Infos über Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 + 3.12. Arbeiten(Verwüstungen) im und am Filesystem . . . . . . . . . . . . . 23 + 3.13. Kopieren und Verschieben . . . . . . . . . . . . . . . . . . . . . . . . . 23 + 3.14. Löschen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 + 3.15. Ausgeben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 + 3.16. Der Texteditor vi/vim . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 + 3.17. Suchen nach Dateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 + 3.18. Suchen in Dateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 + 3.19. Vergleichen von Dateien . . . . . . . . . . . . . . . . . . . . . . . . . . 25 + 3.20. Drucken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 + 3.21. File-Inhalt bearbeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 + 3.22. TAR(tape archiver) verwaltet Dateiarchive . . . . . . . . . . . . . . . 25 + 3.22.1. Packen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 + 5 + Inhaltsverzeichnis + 3.22.2. Entpacken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 + 3.23. Disketten/Festplatten . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 + 3.23.1. Dateisystem verschlüsseln . . . . . . . . . . . . . . . . . . . . . 28 + 3.24. Zugriffsrechte/Eigentümer/Gruppe . . . . . . . . . . . . . . . . . . . . 28 + 3.25. Prozessbefehle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 + 3.26. Re-install Grub with Live CD . . . . . . . . . . . . . . . . . . . . . . . 31 + 3.26.1. Chroot. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 + 3.26.2. Grub. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 + 3.27. Software installieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 + 3.27.1. rpm-Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 + 3.27.2. deb-Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 + 3.27.3. Portage Gentoo . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 + 3.27.4. Quelltexte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 + 3.27.5. Hilfe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 + 3.28. Im Netz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 + 3.29. SSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 + 3.29.1. Generierung eines DSA Schlüsselpaares . . . . . . . . . . . . . 35 + 3.29.2. Public-Key auf dem Zielrechner hinzufügen . . . . . . . . . . . 35 + 3.29.3. Private-Key auf dem Qellrechner . . . . . . . . . . . . . . . . . 35 + 3.29.4. Login nur mit SSH-Keys erlauben . . . . . . . . . . . . . . . . 36 + 3.30. GnuPG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 + 3.30.1. Erzeugen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 + 3.30.2. Hochladen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 + 3.30.3. Löschen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 + 3.30.4. Holen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 + 3.30.5. Signatur erzeugen und prüfen . . . . . . . . . . . . . . . . . . . 37 + 3.30.6. Verschlüsseln . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 + 3.30.7. Entschlüsseln . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 + 3.30.8. Schlüsselverwaltung . . . . . . . . . . . . . . . . . . . . . . . . 38 + 3.30.9. Anzeigen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 + 3.30.10. Exportieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 + 3.31. X11 - Grafik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 + 3.31.1. Bildschirmschoner . . . . . . . . . . . . . . . . . . . . . . . . . 39 + 3.31.2. X11 ohne Maus . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 + 4. Verzeichnisse und Dateien 41 + 4.1. Dateibaum. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 + 4.2. /etc/fstab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 + 4.3. /dev/ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 + 4.4. Dateisystemtypen unter Linux . . . . . . . . . . . . . . . . . . . . . . . 49 + 4.5. /etc/group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 + 4.6. /etc/hosts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 + 4.7. /etc/inittab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 + 4.7.1. Terminal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 + 4.7.2. Termcapeintrag . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 + 6 + Inhaltsverzeichnis + 4.7.3. Gettykommando . . . . . . . . . . . . . . . . . . . . . . . . . . 51 + 4.7.4. Kürzel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 + 4.7.5. Arbeitsstufen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 + 4.7.6. Modus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 + 4.7.7. Kommando . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 + 4.8. /etc/passwd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 + 5. Die Shells 55 + 5.1. Die Shells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 + 5.2. Die Start-Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 + 5.3. Tastenkombinationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 + 5.4. Die C-Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 + 5.5. Bash rechnen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 + II. Programme 59 + 6. Der Texteditor vi/vim 61 + 6.1. Aufruf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 + 6.2. Eingabemodus (input mode) . . . . . . . . . . . . . . . . . . . . . . . . 61 + 6.3. Befehlsmodus (visual mode) . . . . . . . . . . . . . . . . . . . . . . . . 61 + 6.3.1. Eingeben: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 + 6.3.2. Überschreiben: . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 + 6.3.3. Bewegen: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 + 6.3.4. Löschen und Eingeben: . . . . . . . . . . . . . . . . . . . . . . 63 + 6.3.5. Löschen: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 + 6.3.6. Aufheben: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 + 6.3.7. Verschieben: . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 + 6.3.8. Zusammenfügen: . . . . . . . . . . . . . . . . . . . . . . . . . . 64 + 6.3.9. Markieren: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 + 6.3.10. Kopieren: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 + 6.3.11. Einfügen: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 + 6.3.12. Suchen: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 + 6.3.13. Wiederholen: . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 + 6.3.14. Sonstige Kommandos: . . . . . . . . . . . . . . . . . . . . . . . 65 + 6.4. Kommandomodus (colon mode) . . . . . . . . . . . . . . . . . . . . . . 65 + 6.4.1. Texteingabe Kommandos . . . . . . . . . . . . . . . . . . . . . 65 + 7. LaTeX 67 + A + 7.1. LT X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 + E + III. Linux im Netzwerk 69 + 8. Netzwerk 71 + 7 + Inhaltsverzeichnis + 9. Apache 73 + 9.1. Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 + 9.2. Kompilieren und Installieren . . . . . . . . . . . . . . . . . . . . . . . . 73 + 9.2.1. Anforderungen . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 + 9.2.2. Vorbereitungen . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 + 9.2.3. OpenSSL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 + 9.2.4. Apache 1.3 und SSL . . . . . . . . . . . . . . . . . . . . . . . . 74 + 9.2.5. Apache2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 + 9.2.6. Testen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 + 9.2.7. Upgrade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 + 9.2.8. PureFTPd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 + 9.3. Apache starten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 + 9.3.1. Apache starten . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 + 9.3.2. Wie der Apache startet . . . . . . . . . . . . . . . . . . . . . . 78 + 9.3.3. Fehler während des Hochfahrens . . . . . . . . . . . . . . . . . 79 + 9.3.4. Automatisch starten und beenden . . . . . . . . . . . . . . . . 79 + 9.3.5. Weitere Informationen . . . . . . . . . . . . . . . . . . . . . . . 79 + 9.4. Beenden und Neustarten . . . . . . . . . . . . . . . . . . . . . . . . . . 80 + 9.4.1. Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 + 9.4.2. Beenden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 + 9.4.3. Unterbrechungsfreier Neustart . . . . . . . . . . . . . . . . . . 80 + 9.4.4. Neustarten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 + 9.4.5. Anhang: Syntax überprüfen . . . . . . . . . . . . . . . . . . . . 81 + 9.5. Anhang . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 + 9.5.1. Zu den Dateien . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 + 9.6. Benutzerhandbuch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 + 9.6.1. httpd.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 + 9.6.2. Access Control List File (.htaccess) . . . . . . . . . . . . . . . . 85 + 9.6.3. Gruppendatei (.htgroup) . . . . . . . . . . . . . . . . . . . . . . 86 + 9.6.4. Passwort-Datei (.htpasswd) . . . . . . . . . . . . . . . . . . . . 86 + 9.6.5. Erstellen eines SSL-Zertifikats . . . . . . . . . . . . . . . . . . . 86 + 9.6.6. LinkIcon (favicon.ico) . . . . . . . . . . . . . . . . . . . . . . . 86 + 10.MySQL 89 + 10.1. Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 + 10.2. Kompilieren und Installieren . . . . . . . . . . . . . . . . . . . . . . . . 89 + 10.2.1. Anforderungen . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 + 10.2.2. Vorbereitungen . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 + 10.2.3. MySQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 + 10.2.4. MySQLTesten . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 + 10.2.5. phpMyAdmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 + 11.PHP 93 + 11.1. Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 + 8 + Inhaltsverzeichnis + 11.2. Kompilieren und Installieren . . . . . . . . . . . . . . . . . . . . . . . . 93 + 11.2.1. Anforderungen . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 + 11.2.2. Vorbereitungen . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 + 11.2.3. Libraries für Zusatzfunktionen . . . . . . . . . . . . . . . . . . 94 + 11.2.4. PHP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 + 11.3. Referenz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 + 11.3.1. Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 + 11.3.2. Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 + 12.Squid 97 + 12.1. Proxy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 + 12.2. Einfacher Cache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 + 12.3. Proxy Cache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 + 12.4. Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 + 12.5. Eigenschaften . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 + 12.6. Protokolle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 + 12.6.1. Client-Kommunikation . . . . . . . . . . . . . . . . . . . . . . . 98 + 12.6.2. Kommunikation zwischen Proxy-Cache-Servern . . . . . . . . . 98 + 12.7. Systemvoraussetzungen . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 + 12.8. SuSE Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 + 12.9. Automatische Starten von Squit . . . . . . . . . . . . . . . . . . . . . . 99 + 12.10. Squiddateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 + 12.11. squid.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 + IV. Programmieren 103 + 13.Bash 105 + 13.1. Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 + 13.2. Referenz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 + 13.3. Steuer und Sonderzeichen der Bash . . . . . . . . . . . . . . . . . . . . 106 + 14.git 107 + 14.1. Dokumentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 + 14.2. Konfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 + 14.3. Konfigurationen über Umgebungsvariablen . . . . . . . . . . . . . . . . 108 + 14.4. Der Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 + 14.5. Repository . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 + 14.6. Commit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 + 14.7. Dateien entfernen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 + 14.8. Dateien verschieben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 + 14.9. Änderung an einer Datei rückgängig machen . . . . . . . . . . . . . . . 109 + 14.10. Dateien ignorieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 + 14.11. Mit externen Repositorys arbeiten . . . . . . . . . . . . . . . . . . . . 110 + 14.12. Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 + 9 + Inhaltsverzeichnis + 14.13. Branch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 + 14.14. Git Aliase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 + 14.15. Git auf einen Server bekommen . . . . . . . . . . . . . . . . . . . . . . 112 + 14.16. Git auf dem SSH-Server einrichten . . . . . . . . . . . . . . . . . . . . 112 + 14.17. Öffentlicher Webserver-Zugang . . . . . . . . . . . . . . . . . . . . . . 113 + 14.18. Grundbegriffe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 + 15.C/C++ 117 + 15.1. Befehle und Grundelemente . . . . . . . . . . . . . . . . . . . . . . . . 117 + 15.2. Steuersequenzen für ANSI-Bildschirme - Innerhalb von Texten . . . . . 117 + 15.3. stdio.h -> Standard Ein- und Ausgabe . . . . . . . . . . . . . . . . . . 118 + 15.4. ctype.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 + 15.5. string.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 + 15.6. Kontrollstrukturen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 + 15.7. ASCII(American Standart Code for Information Interchange)-Tabelle . 121 + 15.7.1. Unterteilung der Steuerzeichen: . . . . . . . . . . . . . . . . . . 122 + 15.7.2. Bedeutung der Steuerzeichen: . . . . . . . . . . . . . . . . . . . 122 + 15.8. Operatoren und Ausdrücke . . . . . . . . . . . . . . . . . . . . . . . . 123 + 15.8.1. Arithmetische Operatoren: . . . . . . . . . . . . . . . . . . . . 123 + 15.8.2. Vergleichsoperatoren: . . . . . . . . . . . . . . . . . . . . . . . 123 + 15.8.3. Logische Operatoren: . . . . . . . . . . . . . . . . . . . . . . . . 123 + 15.8.4. Zuweisungsoperatoren: . . . . . . . . . . . . . . . . . . . . . . . 124 + 15.8.5. Post- und Prefix- Operatoren: . . . . . . . . . . . . . . . . . . . 124 + 15.8.6. Zeigeroperatoren: . . . . . . . . . . . . . . . . . . . . . . . . . . 124 + 15.8.7. Diverse Kategorien: . . . . . . . . . . . . . . . . . . . . . . . . 124 + 15.9. Inkrementieren und Dekrementieren . . . . . . . . . . . . . . . . . . . 125 + 15.10. Wertebereich und Genauigkeit elementarer Datentypen . . . . . . . . . 125 + 15.11. Variableninitialisierung . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 + 15.12. Konstanten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 + 15.12.1. Ganzzahlkonstanten . . . . . . . . . . . . . . . . . . . . . . . . 126 + 15.12.2. Gleitkommakonstanten . . . . . . . . . . . . . . . . . . . . . . 126 + 15.12.3. Zeichen- und Zeichenkettenkonstanten . . . . . . . . . . . . . . 126 + 16.Tcl/Tk 127 + 17.Perl 129 + 18.CGI+Perl 131 + 18.1. Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 + 18.2. Perl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 + 18.2.1. Texte und Strings . . . . . . . . . . . . . . . . . . . . . . . . . 131 + 18.2.2. Rechenoperationen . . . . . . . . . . . . . . . . . . . . . . . . . 131 + 18.2.3. Arrays (Listen) . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 + 18.2.4. String- und Zahlenvergleichsoperratoren . . . . . . . . . . . . . 132 + 18.2.5. if-Bedingung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 + 10 + Inhaltsverzeichnis + 18.2.6. if-else-Bedingung . . . . . . . . . . . . . . . . . . . . . . . . . . 132 + 18.2.7. if-elseif-Bedingung . . . . . . . . . . . . . . . . . . . . . . . . . 133 + 18.3. Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 + 18.3.1. String Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . 133 + 18.3.2. Rechen Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . 133 + 18.3.3. Array Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . 133 + 19.Java 135 + 19.1. Funktion von Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 + 19.2. Sprache und Syntax von Java . . . . . . . . . . . . . . . . . . . . . . . 135 + 19.2.1. Kommentrare . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 + 19.2.2. Datentypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 + 19.2.3. Variablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 + 19.3. Pakete und Verzeichnisstrukturen . . . . . . . . . . . . . . . . . . . . . 136 + 19.3.1. Sichtbarkeit und Zugriffsrechte von Klassen und Methoden . . 136 + 19.3.2. Klassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 + 19.3.3. Konstruktoren und Destruktoren . . . . . . . . . . . . . . . . . 137 + 19.3.4. Methoden überladen . . . . . . . . . . . . . . . . . . . . . . . . 137 + 19.3.5. Objekte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 + 19.3.6. Vererbung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 + 19.3.7. Schnittstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 + 19.4. Elementare Syntax von Java . . . . . . . . . . . . . . . . . . . . . . . . 138 + 19.4.1. Operratoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 + 19.4.2. Verknüpfungsoperatoren . . . . . . . . . . . . . . . . . . . . . . 138 + 19.4.3. Inkrement-Operator . . . . . . . . . . . . . . . . . . . . . . . . 138 + 19.4.4. Dekrement-Operator . . . . . . . . . . . . . . . . . . . . . . . . 139 + 19.4.5. Arithmetische Zuweisungsoperatoren . . . . . . . . . . . . . . . 139 + 19.4.6. Bedingungen und Entscheidungen . . . . . . . . . . . . . . . . 139 + 19.4.7. if - else - Bedingungen . . . . . . . . . . . . . . . . . . . . . . . 139 + 19.4.8. Verschachtelte Bedingungen . . . . . . . . . . . . . . . . . . . . 139 + 19.4.9. Fallunterscheidung mit switch - case . . . . . . . . . . . . . . . 140 + 19.5. Schleifen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 + 19.5.1. Die while - Schleife . . . . . . . . . . . . . . . . . . . . . . . . . 140 + 19.5.2. Die do - while - Schleife . . . . . . . . . . . . . . . . . . . . . . 140 + 19.5.3. Die for - Schleife . . . . . . . . . . . . . . . . . . . . . . . . . . 140 + 19.5.4. Schleifen mit break verlassen . . . . . . . . . . . . . . . . . . . 140 + 19.5.5. Schleife mit continue wiederholen . . . . . . . . . . . . . . . . . 140 + 19.6. Komplexe Datentypen . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 + 19.6.1. Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 + 19.7. Die Anweisung import . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 + 19.8. Java eigene Klassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 + 19.8.1. Die Klasse Math . . . . . . . . . . . . . . . . . . . . . . . . . . 141 + 19.9. Die Klasse Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 + 19.9.1. Die Klasse Object . . . . . . . . . . . . . . . . . . . . . . . . . 141 + 19.10. Die Klasse Runtime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 + 11 + Inhaltsverzeichnis + 19.11. Die Klasse String . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 + 19.12. Die Klasse Stringbuffer . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 + 19.12.1. Die Klasse Stringbuffer . . . . . . . . . . . . . . . . . . . . . . 142 + 19.13. Die Klasse System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 + 19.14. Das Paket java.util . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 + 19.14.1. Die Klasse Date . . . . . . . . . . . . . . . . . . . . . . . . . . 143 + 19.14.2. Die Klasse Random . . . . . . . . . . . . . . . . . . . . . . . . 143 + 19.14.3. Die Klasse Stack . . . . . . . . . . . . . . . . . . . . . . . . . . 143 + 19.15. Ausnahmen (Exceptions) . . . . . . . . . . . . . . . . . . . . . . . . . . 143 + 19.15.1. Eigene Ausnahme erzeugen (throw) . . . . . . . . . . . . . . . 144 + 19.16. Multitasking mit Threads . . . . . . . . . . . . . . . . . . . . . . . . . 144 + 19.16.1. Arbeiten mit Threads . . . . . . . . . . . . . . . . . . . . . . . 144 + 19.17. Applets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 + 19.17.1. Applets in eine Webseite einbinden . . . . . . . . . . . . . . . . 145 + 19.17.2. Das erste Java Applet . . . . . . . . . . . . . . . . . . . . . . . 145 + 19.17.3. Die Methoden eines Applets . . . . . . . . . . . . . . . . . . . . 145 + 19.17.4. Ein Applet im Überblick . . . . . . . . . . . . . . . . . . . . . . 145 + 19.17.5. Pakete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 + 19.17.6. Die Klasse Graphics . . . . . . . . . . . . . . . . . . . . . . . . 146 + 19.17.7. Die Klasse Color . . . . . . . . . . . . . . . . . . . . . . . . . . 146 + 19.17.8. Die Klasse Font . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 + 19.17.9. Die Klasse Image . . . . . . . . . . . . . . . . . . . . . . . . . . 147 + 19.17.10.Die Klasse Button . . . . . . . . . . . . . . . . . . . . . . . . . 147 + 19.18. Eventhandling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 + 19.18.1. Mouse Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 + 19.18.2. Action Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 + 19.18.3. Parameter an ein Applet . . . . . . . . . . . . . . . . . . . . . . 148 + 19.18.4. Weitere wichtige Pakete . . . . . . . . . . . . . . . . . . . . . . 149 + 20.JavaScript 151 + 20.1. Einbindung von JavaScript . . . . . . . . . . . . . . . . . . . . . . . . 151 + 20.1.1. Einbindung in den Head . . . . . . . . . . . . . . . . . . . . . . 151 + 20.1.2. Einbindung in den Body . . . . . . . . . . . . . . . . . . . . . . 151 + 20.1.3. Ausführen bei bestimmten Aktionen . . . . . . . . . . . . . . . 151 + 20.2. Variablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 + 20.3. Objekte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 + 20.3.1. Standardobjekte . . . . . . . . . . . . . . . . . . . . . . . . . . 152 + 20.3.2. String-Objekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 + 20.3.3. Eigene Objekte . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 + 20.3.4. Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 + 20.4. Mathematische Operationen . . . . . . . . . . . . . . . . . . . . . . . . 154 + 20.5. Bedingte Ausführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 + 20.6. Schleifen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 + 20.7. Event-Handler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 + 20.8. Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 + 12 + Inhaltsverzeichnis + 20.9. Reservierte Wörter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 + V. Anhang 159 + 21.Glossar 161 + Stichwortverzeichnis 164 + 13 + Teil I. + Linux + 15 + 2. Linux + 2.1. Was ist Linux? + Der Kernel, eine Schnittstelle für die Software zur Hardware. + 2.2. Kernel und Module + http://www.kernel.org/ http-Adresse für den Kernel und Kernel-Patches + http://www.de.kernel.org/pub/linux/kernel/ Spiegel für den Kernel + 2.2.1. Kernel 2.4 + tar xvfj kernel.tar.bz2 entpackt den Kernel + tar xvfz kernel.tar.gz entpackt den Kernel + cd kernel Verzeichnis wechseln + bzip2 -dc ../patch-2.x.xx.bz2 | patch -p1 Kernel patchen + gzip -dc ../patch-2.x.xx.gz | patch -p1 Kernel patchen + zcat /proc/config.gz > /usr/src/linux/.config die aktuelle Konfiguration des + laufenden Kernels auslesen + make menuconfig Kernelkonfiguration im Textmodus + make dep aktualisiert die Abhängigkeiten + make clean löscht die temporären Dateien und Ausgabedateien + make zImage übersetzt und komprimiert den Kernel + make bzImage übersetzt und komprimiert den gossen Kernel + make dep clean zImage aktualisiert,löscht und übersetzt + make modules übersetzt Module + make modules_install installiert Module + make zlilo installiert den Kernel und den Boot-Loader LILO + make bzlilo installiert den gossen Kernel und + den Boot-Loader LILO + make zdisk erzeugt eine Bootdiskette mit dem neuen Kernel + make mrproper löscht alle erzeugten Dateien, + auch die Konfiguration + 2.2.2. Kernel 2.6 (Debian 4.0 etch) + sudo apt-get update Paket-Datenbank aktualisieren + sudo apt-get install kernel-package libncurses5-dev fakeroot wget bzip2 \ + 17 + 2. Linux + build-essential benötigte Pakete installieren + cd /usr/src in das Verzeichnis zu den Quell-Paketen wechseln + wget -c http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.22.1.tar.bz2 + den aktuellen Kernel downloaden + wget -c http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.22.1.tar.bz2.sign + die dazugehörige Signatur downloaden + gpg --keyserver wwwkeys.de.pgp.net --recv-keys 0x517D0F0E + Public-Key vom Key-Server holen + gpg --verify linux-2.6.22.1.tar.bz2.sign + Kernel-Signatur überprüfen + tar xvfj linux-2.6.22.1.tar.bz2 Kernel entpacken + ln -s linux-2.6.22.1 linux Soft-Link zu den Kernel-Quellen anlegen + cd /usr/src/linux zu den aktuellen Kernel-Quellen wechseln + bzip2 -dc /usr/src/patch.bz2 | patch -p1 --dry-run + Aktualisieren prüfen + bzip2 -dc /usr/src/patch.bz2 | patch -p1 + Kernel-Quellen aktualisieren wenn nötig + make clean && make mrproper Kernel säubern und korigieren + cp /boot/config-‘uname -r‘ ./.config + laufende Konfiguration holen + make menuconfig Konfigurations-Programm starten + Load an Alternate Configuration File + laufende Konfiguration laden und Kernel + konfigurieren + make-kpkg clean + fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image \ + kernel_headers Kernel-Pakete und Kernel-Headers herstellen + sudo dpkg -i linux-image-2.6.22.1-custom_2.6.22.1-custom-10.00.Custom_i386.deb + den neuen Kernel installieren + sudo dpkg -i linux-headers-2.6.22.1-custom_2.6.22.1-custom-10.00.Custom_i386.deb + die neuen Header installieren + sudo shutdown -r now Neustart um den Kernel zu testen + uname -a feststellen welcher Kernel gestartet ist + dmesg Kernelmeldungen vom letzten Start anzeigen + insmod Modul Modul laden + modprobe Modul Modul eigenständig laden + lsmod geladene Module anzeigen lassen + rmmod Modul Modul entfernen + 18 + 3. Befehle + 3.1. Standartein-aus-gabe + Jedes UNIX kennt 3 spezielle Files: + stdin Standardeingabe, normalerweise die Tastatur + stdout Standardausgabe, normalerweise der Bildschirm + stderr Standardausgabe für Fehlermeldungen, + normalerweise der Bildschirm + All diese Files können umgelenkt werden + setterm -blank 0 Bildschirmschoner ausschalten + 3.2. Anmelden und Abmelden + login: Benutzername 1. zum Anmelden den Benutzernamen eingeben + Passwort: Benutzerpasswort 2. zum Anmelden das Benutzerpasswort eingeben + logout zum Abmelden eingeben + exit zum Abmelden eingeben + [Strg]+[d] beendet die Shell (alle Shells) + 3.3. Anhalten des Systems und Booten + Unter keinen Umständen darf während des Betriebs einfach der Strom abgeschaltet + oder der Resetknopf betätigt werden. Da es sonst zu einer Beschädigung des Dateisy- + stems mit Datenverlust kommen kann. + root: shutdown -h now hält das System an + root: halt hält das System an + root: init 0 hält das System an + root: systemctl poweroff hält das System an + root: shutdown -r now startet den Computer nach dem Herunterfahren neu + root: reboot startet den Computer nach dem Herunterfahren neu + root: init 6 startet den Computer nach dem Herunterfahren neu + root: systemctl reboot startet den Computer nach dem Herunterfahren neu + root: systemctl suspend Bereitschaft + root: systemctl hibernate Ruhezustand + 19 + 3. Befehle + 3.4. Die Runlevel + root: init 0 Systemhalt + root: init S Einzelbenutzerbetrieb (Single User Mode) + root: init 1 Einzelbenutzerbetrieb (Single User Mode) + root: init 2 Lokaler Mehrbenutzerbetrieb ohne entferntes Netzwerk + (Local multiuser without remote network) + root: init 3 Voller Mehrbenutzerbetrieb mit Netzwerk + (Full multiuser with network) + root: init 4 Frei (Not used) + root: init 5 Voller Mehrbenutzerbetrieb mit Netzwerk und KDM, GDM oder XDM + (Full multiuser with network and xdm) + root: init 6 Systemneustart (System reboot) + root: init q Quit zum Neueinlesen der inittab + 3.4.1. Upstart + UpstartsorgtdafürdasDiensteereignisbasiertparallelgestartetwerdenkönnen/etc/inittab + entfällt neu /etc/init/ (bzw. /etc/event.d/) + initctl list Liste aller Init-Jobs + sudo initctl start/stop Init-Jobs (zB. ssh) + Im Header der Datei kann dann zum Starten und Beenden flogendes stehen: + start on runlevel [2345] + stop on runlevel [!2345] + sudo initctl reload-configuration ließt die Konfiguration neu ein und + startet/beendet die Dienste + 3.5. SuSE-Linux + hilfe Hilfesystem starten + yast Yet another Setup Tool - + SuSE Administrationstool + yast2 Yet another Setup Tool 2 - + SuSE Administrationstool + SuSEconfig das Skript muss aufgerufen werden + nachdem die /etc/rc.config und /etc/sysconfig/ + von Hand verändert wurden + 3.6. Zur Orientierung auf einem UNIX-Rechner + date zeigt Datum und Uhrzeit an + 20 + 3.7. Datum und Uhrzeit + df -k zeigt den feien Platten-Platz in kB an + df -m zeigt den feien Platten-Platz in MB an + df -h Ausgabe von Größen in Menschen-lesbarem Format + du -h zeigt wie viel Platten-Platz in kB bestimmte Dateien einnehmen + echo Text schreibt den Text auf stdout (Bildschirm) + finger zeigt Infos über eingeloggte Benutzer an + finger -l zeigt ausführliche Infos über eingeloggte Benutzer an + free -t zeigt den feien Arbeitsspeicher in kB an + last zeigt wer sich zuletzt von wo aus auf dem Rechner eingeloggt hat + info Begriff Hilfe zu dem Begriff im Infoformat + man Begriff Hilfe zu dem Begriff + man -a Begriff alle Kapitel zu dem Begriff + man -f Begriff listet die gefundenen Seiten zu dem Begriff auf + man -k Begriff listet die Seiten in dem der Begriff vorkommt auf + man n Begriff Hilfe zum Begriff mit der Sektion n + Die Manual-Pages sind auf verschiedene Sektionen aufgeteilt: + 1 Shell-Kommandos + 2 System-Aufrufe + 3 Funktionen - C-Bibliotheksfunktionen. + 4 Die Beschreibung von Konfigurationsdateien. + 5 Die Syntax wichtiger Dateien. + 6 Beschreibung von Spielen. + 7 Alles was mit Text, Textformatierung und anderen Formaten zu + tun hat. + 8 Die Befehle des Systemverwalters. + 9 Die Beschreibung der Linux-Kernelroutinen. + n n kommt angeblich von neu, hier sind sonstige Manual-Pages + aufgeführt, die in eine der oberen Sektionen gehören, aber + traditionell hier stehen oder zu keiner Sektion genau passen. + pwd Ausgabe des aktuellen Verzeichnisses + w wer ist da und was ist los + whatis Befehl zeigt Kurzerklärung eines Befehls + which Befehl zeigt, wo Executable liegt, und eventual alias + who zeigt Liste aller eingeloggten Benutzer + whoami zeigt, wem die Shell gehört + 3.7. Datum und Uhrzeit + date Datum und Uhrzeit abfragen + date -s ’2000-01-29 20:00:00’ +’%Y-%m-%d %T’ Datum und Uhrzeit einstellen + netdate Rechnername Datum und Uhrzeit vom Rechner- + name holen + clock -u -w Datum und Uhrzeit in + das BIOS schreiben + 21 + 3. Befehle + timedatectl set-local-rtc 1 locale Zeit einstellen + timedatectl set-local-rtc 0 UTC Zeit einstellen + 3.8. Auflisten + ls Auflisten der Dateien im aktuellen Verzeichnis + ls Verzeichnis Inhalt des Verzeichnisses ausgeben + ls -la alles Auflisten im aktuellen Verzeichnis + ls -laFi alles ausführlicher Auflisten + ls | paste - - - - Dateien vierspaltig ausgeben + ls -1 untereinander ausgeben + ls -F Verzeichnisse mit angehängtem / markieren + ls -i inode-Nummer mit ausgeben + ls -R alle Unterverzeichnisse mit ausgeben + ls -r Auflisten der Dateien umkehren + 3.9. Dateinamen + UNIX unterscheidet Groß- und Kleinschreibung! liesmich, Liesmich, LIESMICH sind + verschiedene Dateinamen! max. 256 Zeichen, alle Zeichen sind erlaubt . am Namens- + anfang versteckt Datei vor ls, cp, rm, mv + alias gibt alle definierten Kurznamen aus + alias la=’ls -la’ definiert Kurznamen für ein Kommando + aus ls -la wird ein la + 3.10. Dateiendungen + .a Objektbibliotheken + .c C-Quelltextdatei + .cpp C++-Quellen + .o Objektdatei + .p Pascal-Quellen + .s Assembler + 3.11. Infos über Files + file Datei Anzeige des Dateitypes + wc -lwc Datei Ausgabe der Zeilen, Worte und Buchstaben der Datei + ls -a | wc -l alle Dateien im aktuellen Verzeichnis zählen + 22 + 3.12. Arbeiten(Verwüstungen) im und am Filesystem + 3.12. Arbeiten(Verwüstungen) im und am Filesystem + cd Pfad Verzeichnis wechseln + mkdir Name Verzeichnis erzeugen + mkdir -p Name Verzeichnis erzeugen, fehlende Verzeichnisse mit anlegen + 3.13. Kopieren und Verschieben + cp Dateien Ziel Dateien kopieren + cp -i Dateien Ziel Dateien kopieren, vor dem Überschreiben + einer Datei nachfragen + cp -R Quelle* Ziel gesamten Inhalt eines Verzeichnises kopieren + mv Quelle Ziel Datei verschieben oder umbenennen + mv -f Quelle Ziel Schreibgeschützte Datei verschieben oder umbenennen + mv -i Quelle Ziel Datei verschieben oder umbenennen, + vor dem Überschreiben nachfragen + ln Quelle Ziel Verknüpfung erzeugen (Hardlink), + beide Dateien haben die gleiche inode + ln -s Quelle Ziel Verknüpfung erzeugen (Softlink) + ln -sf Quelle Ziel Verknüpfung erzeugen (Softlink) + ohne Rückfrage überschreiben + 3.14. Löschen + rm Datei löschen von Daten + rm -r Dateien löschen von Dateien mit Verzeichnissen + rmdir Verzeichnis löscht Verzeichnis wenn es leer ist, + überflüssig rm -r geht auch + 3.15. Ausgeben + cat Datei Inhalt der Datei auf dem Bildschirm ausgeben + cat Datei1 Datei2 > Datei3 Dateien1+2 zusammenfügen in die Datei3 schreiben + strings Datei Druckbare Zeichen der Datei ausgeben + more Datei Datei seitenweise ausgeben + less Datei Datei ausgeben und mit den Curser scrollen + j eine Zeile weiter + k eine Zeile zurück + u halbe Seite zurück + /Text sucht den Text + q less verlassen + nl Datei Datei mit Zeilennummern ausgeben + tail Datei zeigt die letzten 10 Zeilen einer Datei an + 23 + 3. Befehle + tail -n Datei zeigt die letzten n Zeilen einer Datei an + tail -f Datei zeigt ständig die letzten 10 Zeilen der Datei an + tail -f /var/log/messages Systemmeldungen mitverfolgen + head Datei zeigt die ersten 10 Zeilen einer Datei an + head -n Datei zeigt die ersten n Zeilen einer Datei an + od -b Datei Datei oktal ausgeben + od -c Datei Datei als ASCII ausgeben + od -x Datei Datei hexadezimal ausgeben + ls | paste - - - - Dateien vierspaltig ausgeben + recode ibmpc:lat1 Datei Konvertierung der Datei + 7 Bit DOS in das UNICODE/8 Bit Format + 3.16. Der Texteditor vi/vim + vi Editor vi aufrufen + vi Datei Editor vi aufrufen und Datei öffnen + vi -r swap-Dateien anzeigen + vi -r Datei Datei nach einem Stromausfall (oder Absturz) wieder herstellen + vi -R Datei Datei schreibgeschützt öffnen + 3.17. Suchen nach Dateien + find Pfad Bedingung nach Dateien suchen + find Pfad | grep name nach Dateien suchen, hat sich bewährt + find Pfad -name .profile nach dem Dateinamen .profile suchen + find Pfad -user higi nach Dateien die dem Benutzer + higi gehören suchen + find Pfad -size +1024c nach Dateien die größer als 1024 Bytes + sind suchen + find Pfad -atime +7 nach Dateien suchen die älter als 7 Tage sind + find Pfad -print alle Dateien im Pfad ausgeben + find -name *.txt alle Dateien im aktuellen Pfad + mit der Endung .txt ausgeben + find / -size +16000000c alle Dateien die mehr als 16MB haben ausgeben + find / -fstype msdos -name *.zip sucht auf MS-DOS-Partition nach *.zip + find / -fstype vfat -name *.txt sucht auf Windows-Partition nach *.txt + 3.18. Suchen in Dateien + grep Ausdruck Datei sucht nach dem Ausdruck in der Datei + grep -c Ausdruck Datei Anzahl der Zeilen, die den Begriff + enthalten ausgeben + grep -i Ausdruck Datei große und kleine Buchstaben nicht unterscheiden + 24 + 3.19. Vergleichen von Dateien + grep -l Ausdruck Datei meldet die Dateien die den Ausdruck enthalten + grep -n Ausdruck Datei sucht nach dem Ausdruck und + gibt die Zeilennummer mit aus + grep -v Ausdruck Datei Ausgabe der Zeilen die den Ausdruck + nicht enthalten + egrep Ausdruck Datei sucht nach dem Ausdruck in der Datei + fgrep String Datei sucht nach dem String in der Datei + fgrep -x String Datei sucht nach dem String in der Zeile einer Datei + 3.19. Vergleichen von Dateien + diff Datei1 Datei2 zeigt die Unterschiede zwischen zwei Dateien + comm [-123] Datei1 Datei2 zwei sortierte Textdateien vergleichen + cmp -l Datei1 Datei2 Binär-/Dateien vergleichen + 3.20. Drucken + lpr Datei Datei auf dem Drucker ausgeben + lpr -#n Datei Datei n mal auf dem Drucker ausgeben + lpr -m Datei Datei auf dem Drucker ausgeben, nach dem Drucken + bekommt man eine mail + lpq Warteschlange anschauen + lprm Jobnummer Druckauftrag/Job aus der Warteschlange löschen + pr Dateien für das Drucken aufbereiten + 3.21. File-Inhalt bearbeiten + compress Datei Datei komprimieren nach Datei.Z + uncompress Datei.Z Datei.Z dekomprimieren + expand Datei1 > Datei2 Tabs aus der Datei1 entfernen und + zur Datei2 schreiben + unpack Datei.z Datei.z dekomprimieren + sort Datei1 > Datei2 die Zeilen der Datei1 in + die Datei2 sortieren + tr [A-Z] [a-z] < Datei1 > Datei2 Klein durch Großbuchstaben ersetzen + uniq Datei Datei ausgeben bis auf doppelte Zeilen + 3.22. TAR (tape archiver) verwaltet Dateiarchive + Syntax: + tar [-Acdrtux] [–delete] [-b n] [-BgGhijklmMoOpPPsSvwWz] [-C Verzeichnis] [-f Datei] + [-F Datei] [-K Datei] [-L Länge] [-N Datum] [-T Datei] [-V Name] [-X Datei] [0-7] [lmh] + 25 + 3. Befehle + Optionen: + -A Archiv an ein Archiv anhängen + -c erzeugt ein neues Archiv + -d vergleicht das Archiv mit dem Dateisystem + --delete Datei löscht die Datei aus dem Archiv (nicht für Magnetbänder) + -r hängt Dateien an das Archiv an (nicht für Magnetbänder) + -t zeigt den Inhalt des Archivs + -u ersetzt neue Dateien oder fügt sie ein (nicht für Magnetbänder) + -x kopiert/entpackt Datei-en aus dem Archiv + --atime-preserve Zugriffszeit nach der Archivierung zurück setzen + -b n setzt die Blockgröße n*512Bytes (Voreinstellung n=20) + -B unterdrückt den Abbruch beim Lesen unvollständiger Blöcke + zum Lesen von 4.2BSD Pipes + -C Verzeichnis wechselt in das Verzeichnis, um dort weitere Dateien zu + archivieren + -f Datei benutzt Datei oder das Gerät als Archiv + -F Datei bei -M führt das Shellscript Datei aus, wenn das Medium voll ist + -G erzeugt am Anfang des Bandarchives einen speziellen Eintrag für + jedes archivierte Verzeichnis; spezielles GNU Format + -g Datei erzeugt eine Datei mit einer Liste der archivierten + Verzeichnisse als Zeitmarke der Archivierung; wenn die Datei + bereits existiert, werden nur die Dateien archiviert, die nach + dieser Zeitmarke erzeugt oder verändert wurden (spezielles GNU + Format: 1.Zeile=Zeitmarke, 1.Feld=Nr. der Partition, + 2.Feld=Inode des Verzeichnisses, 3.Feld=Name des Verzeichisses) + -h archiviert die referenzierten Dateien anstelle der Links + -i ignoriert Blöcke mit Nullbytes im Archiv + -j erzeugt ein mit bzip2 komprimiertes Archiv + -k existierende Dateien werden beim Auspacken von Archiven nicht + überschrieben + -K Datei beginnt eine Aktion bei Datei im Archiv + -l verhindert Archivierung von Dateien aus anderen Dateisystemen + -L Länge wartet auf Medienwechsel nach Länge Bytes + -m das Datum der letzten Änderung wird nicht mit archiviert + -M das Archiv ist auf mehrere Medien verteilt (Multi-Volume) + -N Datum archiviert nur Dateien, die neuer sind als Datum + -o benutzt das alte V7 tar-Format anstelle des ANSI Formates + -O schreibt die Dateien in die Standardausgabe + -p erhält die Zugriffsrechte der Dateien + -P archiviert mit absoluten Dateinamen + -R gibt zu jeder Meldung die Blocknummer des Archivblocks aus, von + dem die Meldung verursacht wurde + -s zeigt an, dass die Liste von Dateien im Argument die gleiche + Reihenfolge hat wie die Dateien im Archiv + -T Datei holt die Namen der zu archivierenden Dateien aus Datei + 26 + 3.23. Disketten/Festplatten + -v meldet jede Aktion + -V Name erzeugt ein Archiv mit dem (internen) Label Name + -w erwartet interaktiv Bestätigung jeder Aktion + -W verifiziert die geschriebenen Daten im Archiv + -X Datei liest aus der Datei Namen oder reguläre Ausdrücke von bzw. für + Dateien, die nicht archiviert werden soll + -z erzeugt ein mit gzip komprimiertes Archiv + -Z erzeugt ein mit compress komprimiertes Archiv + -{0...7}{lmh} spezifiziert das Gerät und die Dichte des Speichermediums (für + Diskettenarchive ohne Bedeutung); 0 ist der erste Streamer, 1 + 1 der zweite und so weiter; die Dichte bestimmt den Bandtyp + 3.22.1. Packen + tar rPvf name.tar /etc/ Verzeichnis zum tar zufügen + tar rPvf name.tar /etc/inittab* Datei-en zum tar zufügen + tar cPvzf name.tgz name.tar tar -> tgz + tar cPvMf /dev/fd0 name.tgz tgz auf Diskette sichern + tar cvzf Datei.tgz Verzeichnis Packt Verzeichnis in Datei.tgz + 3.22.2. Entpacken + tar xvfpM /dev/fd0 tgz von Diskette holen + tar xvfpz name.tgz tgz -> tar + tar tvfp name.tar Inhalt des Tars anzeigen + tar xvfp name.tar Tar entpacken + 3.23. Disketten/Festplatten + dd if=/dev/zero of=/dev/sda bs=512 count=1 überschreibt den MBR der ersten + SCSI-Platte mit Nullen + fdisk Gerätedatei Partitionstabelleneditor + fdisk -l /dev/hda zeigt die Partitionstabelle der ersten + Festplatte an + fdisk -C 12416 -H 15 -S 63 /dev/hdb Partitionstabelle mit vorgegebenen + C-Zylinder H-Köpfe S-Sektoren pro Spur + bearbeiten + cfdisk Gerätedatei Curses-Partitionstabelleneditor + fdformat /dev/fd0u1440 Diskette Low-Level-Formatieren + mformat a: Dateisystem DOS-FAT anlegen + mkdosfs -I /dev/sda Superfloppy-Format mit FAT16-Dateisystem + 27 + 3. Befehle + für z.B. USB-Sticks anlegen + mkdosfs -n Name /dev/sda1 FAT16-Dateisystem mit Name anlegen + mkfs -t minix /dev/fd0u1440 1440 Dateisystem minix anlegen + mke2fs /dev/fd0u1440 Dateisystem ext2 anlegen + mkfs -V -t ext2 /dev/sda7 Dateisystem ext2 anlegen + fsck -V -t ext2 /dev/sda7 Dateisystem Prüfung und Reparatur + tune2fs Optionen Gerät Einstellungen zum ext2 Dateisystem + mount Gerät Verzeichnis Gerät im Verzeichnis anmelden + mount -t minix /dev/fd0 /mnt Diskette im minix-Format anmelden + mount -t ext2 /dev/fd0 /mnt Diskette im ext2-Format anmelden + mount -t msdos /dev/fd0 /mnt Diskette im msdos-Format anmelden + mount -o loop disk.img /mnt Datei als Diskette anmelden + umount Verzeichnis Verzeichnis abmelden + umount /mnt Diskette abmelden + 3.23.1. Dateisystem verschlüsseln + modprobe loop_fish2 Modul für die Verschlüssellung laden + dd if=/dev/urandom of=datei bs=1024 count=10000 10MB Datei anlegen + losetup -e twofish /dev/loop0 datei Datei anmelden (Passwort anlegen) + mkfs -t ext2 /dev/loop0 Dateisystem anlegen + mount -t ext2 /dev/loop0 /mnt Dateisystem anmelden + umount /mnt/ Dateisystem abmelden + losetup -d /dev/loop0 Datei abmelden + /dev/loop0 /datei /mnt ext2 twofish defaults /etc/cryptotab + /datei /mnt ext2 loop,encryption=twofish,noauto,user /etc/fstab + 3.24. Zugriffsrechte/Eigentümer/Gruppe + ls -l /dev/fd0 + brw-rw-rw- 1 root disk 2, 0 Feb 16 16:30 /dev/fd0 + | | | +----- Gerät + | | +------ Minor-Device-Nummer(Nebennummer) + | +----------- Major-Device-Nummer(Hauptnummer) + +-------------------- b-blockorientierte Geräte c-zeichenorientierte Geräte + ls -laFi linux.txt + 1561 -rw-r----- 1 higi users 26419 Mar 13 19:19 linux.txt + | |||||||||| | | | | | | | +----- Datei/Verzeichnisname + 28 + 3.24. Zugriffsrechte/Eigentümer/Gruppe + | |||||||||| | | | | | | +----------- Uhrzeit + | |||||||||| | | | | | +-------------- Tag + | |||||||||| | | | | +------------------ Monat + | |||||||||| | | | +------------------------ Größe + | |||||||||| | | +----------- Gruppe + | |||||||||| | +----------------- Eigentümer + | |||||||||| +------------------- Links + | |||||||||+---- alle Anderen x-ausführen oder t-text mit x-bit + | ||||||||| T-text ohne x-bit + | ||||||||+----- alle Anderen w-schreiben + | |||||||+------ alle Anderen r-lesen + | ||||||+------- Gruppe x-ausführen oder s-Gruppenkennung mit x-bit + | |||||| S-Gruppenkennung ohne x-bit + | |||||+-------- Gruppe w-schreiben + | ||||+--------- Gruppe r-lesen + | |||+---------- Eigentümer x-ausführen oder s-Benutzerkennung mit x-bit + | ||| S-Benutzerkennung ohne x-bit + | ||+----------- Eigentümer w-schreiben + | |+------------ Eigentümer r-lesen + | +------------- d-Verzeichnis l-Verknüpfung + +------- inode + chmod werwiewas Datei Zugriffsrechte einer Datei/Verzeichnis ändern + wer: u-Eigentümer g-Gruppe + o-alle Anderen a-alle 3 Benutzergruppen + wie: +-hinzufügen --wegnehmen + =-nachfolgendes Muster setzen + was: r-lesen w-schreiben x-ausführen + ( s-Benutzerkennung oder Gruppenkennung + t-text ) + chmod zahl Datei Zugriffsrechte einer Datei/Verzeichnis ändern + zahl-> rwx rwx rwx -> 4+2 4 0 -> 640 + 421 421 421 + 640 -> Eigentümer lesen schreiben + Gruppe lesen + chmod nzahl Datei Zugriffsrechte und Kennung einer Datei/ + Verzeichnis ändern + bit 4 von n, mit Benutzerkennung/ + Benutzerrechten ausführen + bit 2 von n, mit Gruppenkennung/ + Gruppenrechten ausführen + bit 1 von n, mit text werden die Dateien vor + dem Löschen durch fremde Benutzer geschützt, + macht nur bei Verzeichnissen sinn + chown NeuerEigentümer Datei Eigentümer der Datei ändern + 29 + 3. Befehle + chgrp NeueGruppe Datei Gruppenzugehörigkeit der Datei ändern + passwd Benutzer Benutzerpasswort ändern + useradd Optionen Benutzer Benutzer anlegen + -u Benutzer-ID (-u 500) + -g Primäre Gruppenzugehörigkeit (-g users) + -G weitere Gruppenzugehörigkeit + -d Homeverzeichnis (-d /home/user500) + -s Shell (-s /bin/bash) + -m legt das Homeverzeichnis an und kopiert die + Dateien aus /etc/skel in das Homeverzeichnis + -c Kommentar + -p Passwort im Klartext! + -e Auslaufdatum (-e 2002.12.24) + -f Pufferzeit + usermod Optionen Benutzer Benutzerdaten verändern + userdel Benutzername Benutzer löschen + userdel -r Benutzername Benutzer und Benutzerverzeichnis löschen + vipw Benutzerdatenbank ändern + su Shell mit root-Zugriffsrechten starten + su - Shell im root-Homeverzeichnis + mit root-Zugriffsrechten starten + sux - Shell im root-Homeverzeichnis + mit root-Zugriffsrechten starten und X-Variabeln + su -l Benutzername Shell im Benutzer-Homeverzeichnis + mit Benutzer-Rechten starten + 3.25. Prozessbefehle + S=schlafend R=running(laufend) T=terminiert Z=Zombie + [Strg]+[z] im Vordergrund laufendes Programm anhalten + [1]+ Stopped + | +----- schlafend + +------------- Jobnummer + bg %JOB Job im Hintergrund fortsetzen + fg %JOB Job im Vordergrund fortsetzen + Programm & Programm im eigenem Prozess starten + [1] 819 + | +--------- Prozessnummer + +------------- Jobnummer + ps Überblick über die aktuell laufenden Prozesse + ps aux gibt in den meisten Fällen eine ausreichende Auskunft + pstree zeigt den kompletten Prozessbaum an + 30 + 3.26. Re-install Grub with Live CD + jobs das Schellkommando gibt eine Liste der aktuellen Jobs aus + top Programm, das die aktuellen Prozesse anzeigt + htop Programm, das die aktuellen Prozesse anzeigt + kill PID Prozess killen + kill %JOB Job killen + kill -1 PID Prozess initialisieren + kill -1 %JOB Job initialisieren + kill -9 PID Prozess killen + kill -9 %JOB Job killen + kill -15 PID Prozess beenden + kill -15 %JOB Job beenden + kill -HUP PID veranlasst die meisten Dämonen ihre Konfigurationsdateien + erneut zu lesen + 3.26. Re-install Grub with Live CD + 3.26.1. Chroot + sudo fdisk -l Patition für das chroot festellen + sudo mount /dev/sdb3 /mnt/gentoo chroot z.B. /dev/sdb3 auf z.B. /mnt/gentoo mounten + sudo mount -t proc none /mnt/gentoo/proc Mounten der /proc und /dev Dateisysteme + sudo mount --rbind /dev /mnt/gentoo/dev + sudo chroot /mnt/gentoo /bin/bash Betreten der neuen Umgebung + env-update Umgebungsvariablen aktualisieren + source /etc/profile Profil laden + export PS1="(chroot) $PS1" Promt anpassen + 3.26.2. Grub + sudo grub + grub> find /boot/grub/stage1 + grub> root (hd0,1) + grub> setup (hd0) + grub> quit + reboot + 3.27. Software installieren + 3.27.1. rpm-Format + http://www.rpm.org/ weiterführende Informationen + http://www.rpmfind.net/ Hilfe zu fehlenden rpms oder Merkmalen + /var/lib/rpm/Packages rpm-Datenbank + 31 + 3. Befehle + /var/lib/rpm/packages.rpm -> /var/lib/rpm/Packages + GeänderteKonfigurationsdateienüberschreibtrpmbeimUpdatenicht,sondernhebt + sie als Datei.rpmsave auf. diff hilft die Unterschiede anzuzeigen. + rpm -i Paketname.rpm Installiert mit Prüfung auf Abhängigkeiten + rpm -i --nodeps Paketname.rpm Installiert ohne Prüfung auf Abhängigkeiten + rpm -i --test Paketname.rpm Testet die Installation ohne Daten zu verändern + rpm -iv Paketname.rpm Installiert mit Prüfung auf Abhängigkeiten + und Rückmeldung + rpm -ivh Paketname.rpm Installiert, prüft, meldet und + zeigt den Vorgang an + rpm -Uvh Paketname.rpm Update eines rpm-Binärpaketes + rpm -Fvh Paketname.rpm Aktualisiert rpm-Binärpaket + rpm -Fvh *.rpm Aktualisiert alle rpm-Binärpakete im . + rpm -e Paket Deinstalliert mit Prüfung auf Abhängigkeiten + rpm -qa zeigt die installierten rpm-Pakete an + rpm -qa | grep -i Paket zeigt ob das Paket installiert ist + rpm -qi Paket zeigt Informationen über das installierte Paket + rpm -qip Paketname.rpm zeigt Informationen über das rpm-Binärpaket + rpm -ql Paket zeigt die enthaltenen Dateien des installierten + Paketes an + rpm -qlp Paketname.rpm zeigt die enthaltenen Dateien des + rpm-Binärpaketes + rpm -qf /Pfad/Datei zeigt das Paket aus dem die Datei stammt + rpm -q --requires Paket zeigt die geforderten Merkmale des installierten + Paketes an + rpm -qp --requires Paketname.rpm zeigt die geforderten Merkmale des + rpm-Binärpaketes + 3.27.2. deb-Format + dpkg -i Paketname.deb Installation eines deb-Binärpaketes + dpkg -P Paket Deinstalliert mit Prüfung auf Abhängigkeiten + dpkg -l zeigt die installierten deb-Pakete an + dpkg -l "*Paket*" zeigt ob das Paket installiert ist + dpkg -p Paket zeigt Informationen über das installierte Paket + dpkg -I Paketname.deb zeigt Informationen über das deb-Binärpaket + dpkg -L Paket zeigt die enthaltenen Dateien des installierten + Paketes an + dpkg -c Paketname.deb zeigt die enthaltenen Dateien des + 32 + 3.27. Software installieren + deb-Binärpaketes + dpkg -S /Pfad/Datei zeigt das Paket aus dem die Datei stammt + apt neue Alternative für apt-get + apt-get autoclean Veraltete Pakete aus dem Cache löschen + apt-get clean alle Pakete aus dem Cache löschen + apt-get install Paket Installiert mit Prüfung auf Abhängigkeiten + apt-get remove Paket Deinstalliert mit Prüfung auf Abhängigkeiten + apt-get --purge remove Paket Deinstalliert vollständig + apt-get autoremove Deinstalliert nicht benötigte Pakete + apt-get dist-upgrade aktualisiert die gesamte Distribution + apt-cache search Name durchsucht die gesamte Distribution + apt-get update APT-Datenbank auf den aktuellen Stand bringen + dpkg --get-selections > Paketliste Paketliste exportieren + ###sudo dpkg --set-selections < Paketliste Paketliste importieren geht nicht + 3.27.3. Portage Gentoo + emerge --sync Aktualisieren des Portage-Tree mit rsync + emerge --webrsync Aktualisieren mit dem Portage-Snapshots + emerge --search Pragrammname Nach Software suchen + emerge --searchdesc Name Suche nach Paketen im Zusammenhang mit dem Namen + emerge Programmname Software installieren + emerge -pv Programmname Installation von Programmen simulieren, USE-Flags anzeigen + emerge --fetchonly Programmname Quellen herunterzuladen, noch nicht kompilieren + emerge --unmerge Programmname Entfernung von Programm aus dem System + emerge --update --ask world Aktualisierung des Systems + emerge -f -u -a world Aktualisierung herunterzuladen, aber nicht + kompilieren und installieren + emerge --update --deep world Aktualisierung des gesamten Systems + emerge --update --newuse world Neuerstellung des gesamten System + emerge --depclean verweiste Abhängigkeiten entfernen + revdep-rebuild reverse Abhängigkeiten neu erstellen + etc-update Konfigurationsdateien zusammenzuführen + equery belongs /Pfad/Datei zeigt das Paket aus dem die Datei stammt + equery depends Programmname Abhängigkeiten anzeigen + equery depgraph Programmname Abhängigkeiten als Baum anzeigen + equery files Programmname Dateien auflisten, die zu einem Ebuild gehören + 33 + 3. Befehle + equery hasuse USE-Flag Pakete suchen, die ein spezifisches USE-Flag + benutzen + equery size Programmname Paketgröße anzeigen + equery uses Programmname Gesetzte und nicht gesetzte USE-Flags + equery which Programmname Anzeigen des Ebuildpfads + euse -a Alle aktiven USE-Flags anschauen + euse -a -l Aktive lokale USE-Flags anschauen + euse -E USE-Flag Setzen von USE-Flags + euse -D USE-Flag Deaktivieren von USE-Flags + 3.27.4. Quelltexte + tar xvfz Source.tgz Quelltext entpacken + ./configure Makefile konfigurieren + make Programm übersetzen, + wenn Makefile vorhanden + make install Programm installieren + make uninstall Programm deinstallieren + 3.27.5. Hilfe + ldd Programm zeigt die zu ladenen Bibliotheken des Programms + strace -eopen Programm zeigt die geladenen Bibliotheken des Programms + 3.28. Im Netz + #ifconfig -a -> ip link + ip link alle aktiven Netzwerkschnittstellen ausgeben + ifconfig | grep eth0 | cut -c 39-55 Ethernet-Adresse von eth0 ausgeben + ftp Rechner Programm zur Übertragung von Files + via Internet starten + host www.suse.de befragt den DNS-Server nach + der IP-Nummer des Rechners + host 192.168.9.10 fragt nach dem Namen des Rechners + nslookup www.debian.de befragt den DNS-Server nach + der IP-Nummer des Rechners + nslookup 192.168.11.12 fragt nach dem Namen des Rechners + ping Rechner sendet Pakete an Rechner mit Echo + rlogin Rechner auf anderen Rechner anmelden + 34 + 3.29. SSH + scp Rechner:Pfad Rechner:Pfad Programm zur Übertragung von Files + ssh Rechner auf anderen Rechner anmelden + ssh Rechner -l root oder auf anderen Rechner als root anmelden + ssh root@Rechner + telnet Rechner Kommunikation ueber das TELNET-Protokoll + nmap -sT -PT Rechner Scannt die Ports von Rechner + nmap -sT -p 1-65535 -PT Rechner Scannt alle Ports von Rechner + netcat ip port zeigt den angegebenen Port an + 3.29. SSH + SSH(Secure shell) ist ein verschlüsseltes Netzwerkprotokoll auf TCP-Port 22, ermög- + licht eine sichere authentifizierte und verschlüsselte Verbindung zwischen zwei Rech- + nern über ein unsicheres Netzwerk. + scp Rechner:Pfad Rechner:Pfad Programm zur Übertragung von Files + ssh Rechner auf anderen Rechner anmelden + ssh Rechner -l root oder auf anderen Rechner als root anmelden + ssh root@Rechner + 3.29.1. Generierung eines DSA Schlüsselpaares + ssh-keygen -t dsa -b 2048 generiert DSA-Schlüsselpaar mit + einer Bit-Tiefe von 2048 + ~/.ssh/id_dsa - private-key mit bestätigen + passphrase - Passwort für den private-key und der Anmeldung, + für passwortlose SSH-Verbindungen weg lassen oder + zu Beginn einer Sitzung mit ssh-add ~/.ssh/id_dsa + abfragen lassen + 3.29.2. Public-Key auf dem Zielrechner hinzufügen + cat ~/.ssh/id_dsa.pub | ssh zieluser@zielrechner \ + "mkdir -p .ssh; cat >> .ssh/authorized_keys" + - public-key auf dem Zielrechner hinzufügen + ssh zieluser@zielrechner "chmod 600 ~/.ssh/authorized_keys" + - public-key auf dem Zielrechner schützen + 3.29.3. Private-Key auf dem Qellrechner + ~/.ssh/id_dsa - der Private-Key gehört auf dem Qellrechner in das + ~/.ssh/ Verzeichnis + 35 + 3. Befehle + 3.29.4. Login nur mit SSH-Keys erlauben + /etc/ssh/sshd_config - folgendes in die Datei sshd_config + PubkeyAuthentication yes eingetragen + UsePAM no + PasswordAuthentication no + rcsshd restart - SSH-Dämon neu starten + 3.30. GnuPG + Mit GnuPG kann man Daten signieren und verschlüsseln. GnuPG unterstüzt symme- + trische und asymmetrische Verschlüsselung. + http://www.gnupg.org/ http-Adresse für GnuPG + http://www.gnupg.org/related_software/gpa/ Grafische Benutzereingabe + http://www.heise.de/security/dienste/pgp/ Krypto-Kampagne, bei der + ein Abgleich zwischen + Person, Personalausweis + und Schlüssel erfolgt + http://kmail.kde.org/ Mailprogramme mit GnuPG + http://www.mutt.org/ Unterstützung + http://www.ximian.com/products/evolution/ + 3.30.1. Erzeugen + gpg --gen-key Schlüssel-Paar erzeugen + gpg --gen-revoke 0xKeyID Widerruf Zertifikat erzeugen + > gpg-rev-Will_no_longer_use_it + > gpg-rev-Lost_private_key + > gpg-rev-Forgot_password + > gpg-rev-Key_compromised + 3.30.2. Hochladen + gpg --keyserver wwwkeys.de.pgp.net --send-keys 0xKeyID + Public Key auf den Keyserver hochladen + gpg -a --export 0xKeyID | mail -s "add" pgp-public-keys@keys.de.pgp.net + Public Key an den Keyserver verschicken + Keyserver: + Land eMail-Adresse HTTP-Adresse + ---- ------------- ------------ + Deutschland pgp-public-keys@keys.de.pgp.net http://wwwkeys.de.pgp.net/ + 36 + 3.30. GnuPG + Östereich pgp-public-keys@keys.at.pgp.net http://wwwkeys.at.pgp.net/ + Schweiz gp-public-keys@keys.ch.pgp.net http://wwwkeys.ch.pgp.net/ + 3.30.3. Löschen + gpg --recv-keys 0xKeyID Key vernichten + gpg --import WiderrufZertifikat + gpg --send-keys 0xKeyID + gpg --delete-key 0xKeyID löscht einen öffentlichen Schlüssel + cat gpg-rev-xxx | mail -s "add" pgp-public-keys@keys.de.pgp.net + Widerruf Zertifikat an den Keyserver + verschicken + 3.30.4. Holen + gpg --keyserver wwwkeys.de.pgp.net --recv-keys 0xKeyID + Public-Key vom Keyserver holen + mail -s "get thomasb@trash.net" pgp-public-keys@keys.de.pgp.net + Public-Key per E-Mail + vom Keyserver holen + gpg --import Key.txt Public-Key inportieren + 3.30.5. Signatur erzeugen und prüfen + gpg -a --sign Datei einen Text signieren, erzeugt Datei.asc + gpg --verify Datei.asc Datei eine Signatur prüfen + gpg --clearsign Datei einen Text signieren, + erzeugt neue Datei.asc + gpg --verify Datei.asc eine Signatur prüfen + 3.30.6. Verschlüsseln + gpg -a -r Empfänger0xKeyID -e Datei + einen Text verschlüsseln, + erzeugt Datei.asc + 3.30.7. Entschlüsseln + gpg Datei.asc einen verschüsselten und signierten Text + entschlüsseln und die Signatur prüfen, + erzeugt Datei + 37 + 3. Befehle + 3.30.8. Schlüsselverwaltung + gpg --edit 0xKeyID Schlüsselverwaltung + help - Anzeige aller Befehle + quit - Das Menu beenden + 3.30.9. Anzeigen + gpg --list-keys zeigt alle öffentlichen Schlüssel + gpg --list-sigs zeigt alle Unterschriften + gpg --fingerprint zeigt alle Fingerabdrücke + 3.30.10. Exportieren + gpg -a --export 0xKeyID > Datei exportiert den Schlüssel 0xKeyID + in Datei + gpg -a --export > Datei exportiert alle Schlüssel in Datei + 3.31. X11 - Grafik + /etc/XF86Config bis XFree86.3.3.x Konfigurationsdatei + /etc/X11/XF86Config ab XFree86.4.x Konfigurationsdatei + [Alt]+[F1] bis [F6] Umschalten zwischen Textkonsolen alle Shells + [AltGr]+[Fn] Umschalten zwischen den Textkonsolen n+12 + [Alt]+[Pfeil links oder rechts] um durch die benutzten Konsolen zu stöbern + [Strg]+[Alt]+[F1] bis Umschalten zu Textkonsolen alle Shells + [Strg]+[Alt]+[F6] aus X11 heraus + [Strg]+[Alt]+[F7] Umschalten zu X11 aus Textkonsole alle Shells + bei Caldera 2.2 [Alt]+[F8] + [Strg]+[Alt]+[<--] X-Server sofort beenden + [Strg]+[Alt]+[+] verschiedene Auflösungen im laufenden + [Strg]+[Alt]+[-] Betrieb wechseln + xf86config Shell-Konfigurationsprogramm für X 3+4 + XF86Setup X-Konfigurationsprogramm bis XFree86.3.3.x + sax X-SuSE-Konfigurationsprogramm bis XFree86.3.3.x + sax2 X-SuSE-Konfigurationsprogramm ab XFree86.4.x + startx X-Server starten + startx -- -bpp 16 X-Server mit 16 Bit starten + startx - -- :0 vt07 X-Server auf F7 starten + startx - -- :1 vt08 2. X-Server auf F8 starten + export WINDOWMANAGER=WM X-Umgebungsvariable auf WM(kde, gnome, + 38 + 3.31. X11 - Grafik + fvwm, olwm ...) ändern + 3.31.1. Bildschirmschoner + xset s auf Standardeinstellungen zurücksetzen + xset s 60 nach 1 Minute aktivieren + xset s blank schwarzen Bildschirm verwenden + xset s noblank X-Logo statt schwarzen Bildschirm anzeigen + xset s 60 3 X-Logo alle 3 Sekunden neu platzieren + xset s off Bildschirmschoner deaktivieren + xset s on Bildschirmschoner einschalten + xset s activate Bildschirmschoner sofort aktivieren + xset q aktuelle Einstellungen anzeigen + xsetroot -solid blue Hintergrund + 3.31.2. X11 ohne Maus + [Umschalt]+[Strg]+[Num] Maussteuerung am Ziffernblock ein/ausschalten + [4],[6],[8],[8] links, rechts, oben, unten + [*],[-] auf linke, rechte Maustaste umschalten + [5],[+],[0],[5] Maustaste, Doppelklick, gerückt halen, lösen + 39 + 4. Verzeichnisse und Dateien + 4.1. Dateibaum + / oberste Verzeichnis + im Dateisystem (Root/Wurzel) + . Verweis auf sich selbst + .. Verweis auf das übergeordnete Verzeichnis + /bin/ ausführbare Dateien der wichtigsten Befehle + #/bin/init -> /sbin/init + /boot/ enthält die Dateien des LILO Bootloaders und + kann Kernel-Images enthalten + /boot/boot.b der LILO-Maschinencode + /boot/map Informationen für LILO + um den Betriebssystemkern zu starten + /boot/message wird vor der LILO-Bootauswahl ausgegeben + /boot/vmlinuz der Betriebssystemkern kann auch im / liegen + /cdrom/ dient zur CDROM-Einbindung + /dev/ Sammlung der Gerätedateien + /dev/audio ähnlich wie /dev/dsp, Daten werden y-Law codiert + /dev/cdrom Link auf den CD-Rom Treiber oft /dev/hdc + /dev/console reale Console + /dev/dsp Link auf den A/D-W. der Soundk. (-> /dev/dsp0) + /dev/dsp0 Analog/Digital-Wandler der Soundkarte + /dev/fd0 erstes Diskettenlaufwerk + /dev/fd1 zweites Diskettenlaufwerk + /dev/full beim Schreiben wird der Fehler ENOSPC erzeugt + /dev/hda erstes (E)IDE Gerät + /dev/hda1 -> /dev/hda4 primäre Partitionen + /dev/hda5 -> /dev/hda? logische Partitionen + /dev/hdb zweites (E)IDE Gerät + /dev/hdc drittes (E)IDE Gerät + /dev/hdd viertes (E)IDE Gerät + /dev/initrd zusätzliche RAM-Disk mit Kernelmodulen und + Bootsystem zur Initialisierung des Kernels + /dev/kmem virtueller Arbeitsspeicher + /dev/loop* ermöglicht eine Datei wie eine Diskette oder + Festplattenpartition zu mounten + /dev/lp0 erste parallele Schnittstelle + 41 + 4. Verzeichnisse und Dateien + /dev/lp1 zweite parallele Schnittstelle + /dev/lp2 dritte parallele Schnittstelle + /dev/md* zusammengelegte Festplatten linear,Raid0 oder 1 + /dev/mem physikalischer Arbeitsspeicher + /dev/midi00 direkte Kommunikation mit einem MIDI-Gerät + /dev/mixer Link auf den Mixer (-> /dev/mixer0) + /dev/mixer0 Mischpult der 1. Soundkarte + /dev/modem Link auf den Modemtreiber (-> /dev/ttyS0) + /dev/mouse Link auf den Maustreiber (-> /dev/psaux) + /dev/music eine andere Art von Sequencer, speziell für die + MIDI-Schnittstelle + /dev/nst* SCSI-Streamer (No Rewind On Close) + /dev/null Mülleimer des Systems + /dev/port zum ansprechen einzelner IO Ports + /dev/psaux PS/2-Maus + /dev/pts/ Unix98 PTY slaves + /dev/ram Link auf die RAM-Disk (-> /dev/ram0) + /dev/random zur Erzeugung kryptografisch hochwertiger + Zufallszahlen + /dev/rmt* QIC-02-Streamer + /dev/rtc batteriegepufferte CMOS-Uhr + /dev/sd* SCSI-Festplatten + /dev/sequencer Synthesizer der Soundkarte oder ein am MIDI-Port + angeschlossenes Gerät + /dev/sndstat Informationen über den Status des Soundtreibers + /dev/st* SCSI-Streamer + /dev/tty aktive virtuelle Console + /dev/tty1 1. virtuelle Console + /dev/tty2 2. virtuelle Console + /dev/ttyS0 erste serielle Schnittstelle COM1 + /dev/ttyS1 zeite serielle Schnittstelle COM2 + /dev/ttyS2 dritte serielle Schnittstelle + /dev/ttyS3 vierte serielle Schnittstelle + /dev/urandom zur Erzeugung von Zufallszahlen + /dev/xd* 8-Bit XT-Festplattencontroller + /dev/zero zum Lesen beliebig vieler Nullbytes + /etc/ Konfigurationsdateien + /etc/adjtime zur Korrektur der batteriegepufferten CMOS-Uhr + (clock) + /etc/bash.bashrc globale bash konfiguration + #/etc/conf.modules -> /etc/modules.conf + /etc/cryptotab /etc/fstab für Krypto-Filesystem + /etc/csh.login Startdatei für die C-Shell + /etc/diphosts eine Art /etc/passwd für SLIP Login + /etc/DIR_COLORS festlegen der Farben für ls + 42 + 4.1. Dateibaum + /etc/exports Verzeichnisse und Rchnernamen, die diese + Verzeichnisse per NFS mounten dürfen + wird hier eingetragen + /etc/fdprm Parameter von Diskettenformaten + /etc/fstab um Benutzern das An- und Abmelden + von Dateisystemen zu erlauben + /etc/ftpaccess Woher ? Wann ? Was ? ... + /etc/ftpusers ... und Wer NICHT ? + /etc/gateways Rechner des lokalen Netzes die Kontakt mit + anderen Netzen haben + /etc/gettydefs Beschreibung der seriellen Terminals + /etc/group Benutzergruppen und ihre Mitglieder + /etc/host auflösen von Netzwerknamen + über die resolver-Bibliothek + /etc/host.allow Rechner und Netze mit denen Verbindung aufgebaut + werden darf + /etc/host.conf eine der Konfig. den Domain Name Service + /etc/host.deny Rechner und Netze die sich nicht mit diesem + Rechner verbinden dürfen + /etc/host.equiv Rechner die "gleichartig" behandelt werden + /etc/HOSTNAME hier steht der Name des Rechners + ohne den Domainnamen + /etc/hosts ordnet IP-Adressen Hostnamen zu + /etc/inetd.conf welche Services gestartet werden (inetd) + /etc/init -> /sbin/init + /etc/init/ Dateien für Upstart + /etc/init.d/ Dateien für die Init-Levels + /etc/init.d/inetd startet den inetd, z.B. zum Anmelden + vom Netzwerk + /etc/init.d/network startet die Konfiguration + der Netzwerk Hard- und Software + /etc/init.d/portmap starte den Portmapper, + um den RPC-Server verwenden zu können + /etc/init.d/route setzt die statischen Routen im Netzwerk + /etc/init.d/sendmail kontrolliert den sendmail-Prozess + in Abhängigkeit + /etc/init.d/rc0.d/ bis rc6.d/ init 0 bis 6 + /etc/init.d/rcS.d/ init S + /etc/initscript init führt die Kommandos durch dieses Script + ondemand und respawn aus + #/etc/inittab Grunteinstellung der Init-Levels und Terminals + (/sbin/init) + /etc/isdn/ ISDN-Konfigurationen + /etc/issue Begrüßungstext beim Login (getty) + /etc/ld.so.cache zur Shared Libraries identifizierung (ldconfig) + 43 + 4. Verzeichnisse und Dateien + /etc/ld.so.conf Verzeichnisse zu neuen Shared Libraries + (ldconfig) + /etc/lilo.conf Konfigurationsdatei des LILO + /etc/login.defs Login Einstllungen (login) + /etc/magic Magic Numbers zum Erkennen von Dateien (file) + #/etc/man.config -> /etc/manpath.config + /etc/manpath.config Verzeichnisse in den Manualpages gesucht werden + /etc/minicom.users Benutzer die minicom benutzen dürfen + /etc/modules.conf Modulinformationen ((für den Kerneld(Dämon))) + /etc/motd Begrüßung nach dem Anmelden + /etc/mtab Liste der aktuell zu Verfügung + stehenden Dateisystemen + /etc/mtools.conf (un)logische Laufwerksbuchstaben + von MS-DOS für die M-Befehle + /etc/named.boot für den named Dämon des DNS + /etc/networks die Namen und IP der lokalen Netze + /etc/nntpserver der Name und die IP des Newsrechners + /etc/nologin macht jedes "normale" Einloggen unmöglich, nur + die root kann sich anmelden, sonst wird der + Inhalt von nologin ausgegeben (login) + /etc/nscd.conf Konfiguration des Name Service Cache Dämon + /etc/nsswitch.conf in welcher Reihenfolge bestimmte + Informationen abgefragt werden + /etc/opt/ Rechner-spezifische Konfigurationsdateien + der Pakete + /etc/passwd Liste aller Benutzer mit Informationen + /etc/powerstatus Zustand der Stromversorgung + /etc/printcap Beschreibung des oder der Drucker des Systems + (lpd) + /etc/profile Globale Benutzerprofile + /etc/prtocols Liste aller Internetprotokolle die vom Kernel + unterstützt werden + /etc/psdatabase enthält kernelabhängige Daten für procps + /etc/rc* Systeminitialisierungsdateien (init) + /etc/rc.config zentrale Konfigurationsdatei -> /etc/sysconfig/ + /etc/rc.config.d/ weitere Dateien mit rc.config Variablen + /etc/resolv.conf bestimmt ob und wo ein Nameserver erreicht + werden kann + /etc/rpc enthält die Zuordnung der durch den rpc-Service + bereitgestellten Netzdienste zu Socketnummern + /etc/securetty Terminals von den sich der Benutzer + root anmelden darf (login) + /etc/services ordnet Portnummern Servicenamen zu + /etc/shadow hier sind die Shadow-Passwörter gespeichert + /etc/shells Liste aller Shells + 44 + 4.1. Dateibaum + /etc/shutdown.allow Liste der Benutzer die zum Herunterfahren des + Systems berechtigt sind + /etc/skel/ Dateien die beim Anlegen + eines Benutzers in das ~ kopiert werden + /etc/SuSE-release Angaben zur installierten SuSE Linux version + /etc/sysconfig/ zentrale Konfigurationsdateien -> /etc/rc.config + /etc/syslogd.conf legt fest wohin Meldungen geschrieben werden + (syslogd) + /etc/termcap Beschreibungen für Terminaleigenschaften (getty) + /etc/ttytype legt den voreingestellten Terminaltyp + für die Terminals fest + /etc/XF86Config bis XFree86.3.3.x Konfigurationsdatei + /etc/X11/XF86Config ab XFree86.4.x Konfigurationsdatei + /floppy/ dient zur Floppy-Einbindung + /home/ Heimatverzeichnisse der Benutzer + /home/~/.bash_history gespeicherte Eingaben der bash + /home/~/.bashrc Konfiguration der bash + /home/~/.ctwmrc Konfiguration des ctwm-Fenstermanagers + /home/~/.exrc Konfiguration des vi, ex + /home/~/.fvwmrc Konfiguration des fvwm-Fenstermanagers + /home/~/.openwin-menu Konfiguration des olvwm und olwm-Fenstermanagers + /home/~/.profile wird nach dem User-Anmelden in der bash + ausgeführt + /home/~/.rhosts erlaubt die r-Kommandos + /home/~/.X.err Meldungen des X-Servers + /home/~/.xinitrc diese Datei wird von .xsession ausgeführt + /home/~/.xsession diese Datei wird nach dem Befehl + startx ausgeführt + /lib/ gemeinsam genutzte Bibliotheken Shared Libraries + /lib/modules/ nachladbare Module + /lost+found/ verlorene Daten, ist in jeder Wurzel + des EXT2-Dateisystems + /media/cdrom/ dient zur CDROM-Einbindung, ist oft im / + /media/floppy/ dient zur Floppy-Einbindung, ist oft im / + /mnt/ für temporär einzuhängende Dateisysteme + /mnt/cdrom/ dient zur CDROM-Einbindung, ist oft im / + /mnt/floppy/ dient zur Floppy-Einbindung, ist oft im / + /opt/ kommerzielle Systemerweiterungen + /opt/kde/ grafische Benutzeroberfläche KDE + /proc/ virtuelles Filesystem über laufende Prozesse + /proc/cpuinfo Informationen zur CPU + /proc/devices Liste der wichtigsten Gerätetreiber + /proc/dma Liste der verwendeten DMA-Kanäle + /proc/filesystems Liste der bekannten Dateisystemtypen + /proc/interrupts Liste der Interrupts + 45 + 4. Verzeichnisse und Dateien + /proc/ioports bekannte und definierte EA-Schnittstellen + /proc/kcore Gerätedatei für den Zugang + zum physikalischen Hauptspeicher + /proc/kmsg hier können Systemfehlermeldungen + ausgelesen werden + /proc/ksyms Liste der Kernel-Symbole und + ihrer Speicheradressen + /proc/loadavg durchschnittliche Systembelastung + in den letzten 1, 5 und 10 Min. + /proc/meminfo Beschreibung der aktuellen Speicherauslastung + /proc/modules Liste der geladenen Module und + Anzahl der aktuellen Nutzungen + /proc/mounts Liste der eingehängten Dateisysteme + /proc/net/ Informationen zur Netzwerkauslastung + /proc/pci Liste der gefundenen Geräte am PCI-Bus + /proc/scsi/ Informationen über SCSI-Geräte + /proc/stat Liste allgemeiner Statistiken zum System + /proc/uptime Sekunden seit dem Systemstart und + der Leerlaufzeit + /proc/version aktuelle Version des Linux-Kernels + /root/ Heimatverzeichnis des Systemverwalters root + /sbin/ Administrationskommandos + /sbin/init Nach dem Kernelstart wird versucht das + Programm init zu starten + #/sbin/init.d/ -> /etc/init.d/ + /tmp/ temporäre Dateien + /usr/ ausführbare Dateien, Libraries, X Window u.s.w + /usr/bin/ allgemein verfügbare Programmdateien + #/usr/doc/ -> /usr/share/doc/ + /usr/games/ Spiele :-) + /usr/include/ Headerdateien für den C-Compiler + /usr/include/g++/ Headerdateien für den C++-Compiler + /usr/info/ Infosystem fur GNU-Kommandos + /usr/lib/ Programmbibliotheken + /usr/lib/terminfo/ Verzeichnis mit Beschreibungen + für Terminaleigenschaften + /usr/local/ Ablage von Dateien und Kommandos die nicht + zur Distribution gehören + /usr/man/ Linux Handbuch + /usr/sbin/ Superuser Programmdateien + /usr/share/doc/ Dokumentationen + /usr/share/doc/packages/ Dokumentation der Programme + /usr/src/ Quellcode für den Kernel und weitere Programme + /usr/src/linux/ Kernel-Source + /usr/src/linux/arch/ Hardwarearchitektur-abhängige + 46 + 4.1. Dateibaum + Bestandteile des Kerns + /usr/src/linux/arch/alpha/ DEC-Alpha-Prozessoren + /usr/src/linux/arch/i386/ 386-Prozessoren + /usr/src/linux/arch/m68k/ Motorola 68k-Prozessoren + /usr/src/linux/arch/mips/ MIPS-Prozessoren R3000, R4000 bis R10000 + /usr/src/linux/arch/ppc/ Power-PC-Prozessor (ursprünglich IBM) + /usr/src/linux/arch/sparc/ SPARC-Prozessoren der Firma SUN + /usr/src/linux/Documentation/devices.txt offizielle Liste der + registrierten Devices mit ihren Gerätenummern + /usr/src/linux/drivers/ Zeichen-, Block-orientierte, + Netz-,Soundkarten-Gerätetreiber + /usr/src/linux/drivers/block/ Treiber für blockorientierte Ein-/Ausgabegeräte + wie Festplatten + /usr/src/linux/drivers/cdrom/ Treiber für CD-ROM Laufwerke + außer Atapi/IDE und SCSI + /usr/src/linux/drivers/char/ Zeichen. Treiber serielle Schnittstellen, + Bildschirm, Tastatur usw. + /usr/src/linux/drivers/net/ Treiber für die Netzwerkkarten + /usr/src/linux/drivers/pci/ Spezielle Treiber für PCI-Bus-Bausteine + /usr/src/linux/drivers/sound/ Soundkartentreiber + /usr/src/linux/drivers/scsi/ SCSI-Treiber + /usr/src/linux/fs/ Dateisysteme + /usr/src/linux/ipc/ InterProzessKommunikation, + z.B. Shared Memory, Semaphoren + /usr/src/linux/include/ Header-Dateien mit Struktur- und + Konstantendefinitionen + /usr/src/linux/init/ Initialisierungscode beim Starten des Systems + /usr/src/linux/kernel/ zentrale Aufgaben, z.B. Prozessverwaltung und + Schedulimg usw. + /usr/src/linux/mm/ Speicherverwaltung + /usr/src/linux/modules/ nachladbarer Teil des Kerns + /usr/src/linux/net/ Implementierung der Protokolltreiber + für TCP/IP,SPX/IPX usw. + /usr/src/linux/README Installationsbeschreibung für den Kernel + /usr/X11R6/ für Daten zum X-Window-System + /usr/X11R6/bin/ Programmdateien die mit X-Window-System arbeiten + /usr/X11R6/lib/X11/ Fenstermanager + /usr/X11R6/lib/X11/app-defaults/ voreingestellte Konfigurationen der + Anwendungen + /var/ sich schnell oder häufig ändernde Daten + /var/adm/inst-log/ Protokolldateien zur installation + /var/lib/rpm/Packages rpm-Datenbank + /var/lib/rpm/packages.rpm -> /var/lib/rpm/Packages + /var/log/ Protokolldateien + /var/log/boot.msg Kernelmeldungen vom letzten Start + 47 + 4. Verzeichnisse und Dateien + /var/log/messages Datei in der die Kernel Meldungen + gespeichert werden + /var/log/syslog zeit an welches Modul fehlt + /var/tmp/ für große temporäre Dateien + /vmlinuz der Defaultkernel kann auch in /boot/ liegen + 4.2. /etc/fstab + #Device Mountpunkt Typ Optionen Dump Check + /dev/hdd1 / reiserfs defaults 1 1 + /dev/hda1 /boot ext2 defaults 1 2 + /dev/sda1 swap swap defaults 0 0 + none /proc proc defaults 0 0 + /dev/hda3 /temp vfat defaults,umask=7000,uid=500,gid=100 0 0 + /dev/hda2 /windows vfat defaults 0 0 + /dev/hdc /cdrom auto ro,noauto,user,exec 0 0 + /dev/fd0 /floppy auto noauto,user 0 0 + /dev/hda3 /save reiserfs loop,encryption=twofish,noauto,users 0 0 + server:/ /server nfs rw,noauto,user,exec 0 0 + 4.3. /dev/ + ls -l /dev/fd0 + brw-rw-rw- 1 root disk 2, 0 Feb 16 16:30 /dev/fd0 + | | | +----- Gerät + | | +------ Minor-Device-Nummer(Nebennummer) + | +----------- Major-Device-Nummer(Hauptnummer) + +----------------- b-blockorientierte Geräte c-zeichenorientierte Geräte + Die Verbindung zum Kernel wird über Slots oder Kanäle hergestellt, die nummeriert + sind und hinter denen sich die Treiber verbergen. Die Nummer des Gerätetreibers wird + als Haupgerätenummer(Major Device Number) bezeichnet. Ein Treiber kann mehrere + Geräte des gleichen Typs verwalten. Um die einzelnen Geräte zu unterscheiden, wird + dem Treiber eine zweite Zahl, die Untergerätenummer (Minor Device Number), über- + geben. Diese beiden Zahlen charakterisieren jede Datei im /dev Verzeichnis. Zusätzlich + werden noch zwei Arten von Geräten unterschieden : + Die blockorientierten Geräte mit direktem Zugriff, wie z.B. Disketten oder Festplatten, + und die zeichenorientierten squentiellen Geräte, wie Drucker, Terminal oder Maus. + Damit hat jede Gerätedatei drei “Koordinaten“, mit der sie vom Kernel, unabhängig + von ihrem Namen, eindeutig identifiziert werden kann. Die offizielle Liste der regi- + strierten Devices mit ihren Gerätenummern ist bei den Kernelsourcen in der Datei + /usr/src/linux/Documentation/devices.txt zu finden. + 48 + 4.4. Dateisystemtypen unter Linux + 4.4. Dateisystemtypen unter Linux + affs Ein auf dem Amiga verwendetes Dateisystem (engl. Amiga Fast Filesystem). + ext2 Das Standard-Dateisystem unter Linux (engl. Second extended Filesystem). + ext3 Journaling Filesystem + hpfs Standard-Dateisystem von IBM OS/2 (engl. High Performance Filesystem). + Dieses wird von Linux nur mit Lesezugriff unterstüzt. + iso9660 Standard-Dateisystem auf CD-ROMs. + minix Dieses Dateisystem hat seinen Ursprung in akademischen Lehrprojekten + über Betriebssysteme und war das erste Dateisystem, welches für Linux + verwendet wurde. Heute wird es unter Linux vornehmlich als Dateisystem + für Disketten verwendet. + msdos Ursprünglich von DOS verwendetes Dateisystem, welches aber bis heute von + diversen Betriebssystemen genutzt wird. + ncpfs Dateisystem für das Novell-Volumes. + nfs Hier sind die Daten auf der Festplatte eines anderen Rechners und + werden über das Netzwerk zugänglich gemacht (engl. Network Filesystem). + proc Prozess-Dateisystem (virtuell). + reiserfs Das ReiserFS ist ein hochperformantes "’Journaling Filesystem"’; + seit SuSE Linux 6.4 auf x86-Architekturen verfügbar. + smbfs SMB (engl. Server Message Block) ist ein Protokoll, das von WfW, + Windoofs NT und LAN Manager verwendet wird, um Dateien über ein Netzwerk + verfügbar zu machen. + sysv Von SCO-Unix, Xenix und Coherent (kommerzielle UNIX-Systeme für PCs) + verwendetes Dateisystem. + ufs Von BSD, SunOS und NeXTstep verwendetes Dateisystem; dies Dateisystem + wird von Linux nur mit Lesezugriff unterstützt. + umsdos Setzt auf einem gewöhnlichen fat-Dateisystem auf (engl. UNIX on MSDOS) + und erreicht durch Anlegen spezieller Dateien die notwendige UNIX- + Funktionalität (Rechte, Links, lange Dateinamen); es ist jedoch sehr + langsamm. + vfat Erweiterung des fat-Dateisystems hinsichtlich der Länge der Dateinamen + (engl. Virtual FAT). + ntfs Windows NT-Dateisystem. + 4.5. /etc/group + #Gruppenname:Paßwort:Gruppennummer:Mitgliederliste + root:x:0:root + bin:x:1:root,bin,daemon + daemon:x:2: + sys:x:3: + tty:x:5: + disk:x:6:higi + 49 + 4. Verzeichnisse und Dateien + lp:x:7: + shadow:x:15:root,gdm + audio:x:17:root,higi + public:x:32: + video:x:33:higi + game:x:40:higi + modem:x:43: + users:x:100: + nogroup:x:65534:root + 4.6. /etc/hosts + # IP-Adresse #Aliasnamen + 127.0.0.1 localhost + 127.0.1.1 latex + ::1 localhost ip6-localhost ip6-loopback + ff02::1 ip6-allnodes + ff02::2 ip6-allrouters + 192.168.0.10 rechner rechner.loc www.rechner.loc + 4.7. /etc/inittab + Nach dem Kernelstart wird versucht das Programm init zu starten. Dabei werden + nacheinander die Verzeichnisse /etc/, /bin/ und /sbin/ nach init abgesucht. Kann init + /dev/consolenicht öffnen wird im Einzelbenutzerbetrieb (Single User Mode) gestartet. + Beim LILO-Bootpromt kann init=/bin/sh angegeben werden um die Shell anstelle + von init zu laden. Das Programm init liest die Datei /etc/inittab und wird durch + die Datei das System konfigurieren. /etc/inittab wird vom Kommando init Zeile für + Zeile abgearbeitet. In jeder Zeile seht jeweils eine Anweisung. Jede Zeile wird durch + Doppelpunkte unterteilt. Der Aufbau sieht wie folgt aus: + Terminal:Termcapeintrag:Gettykommando Simpleinit von Peter Orbaek mit + Erweiterung von Werner Almesberger + 4.7.1. Terminal + Bezeichnet das Terminal (tty1, tty2, ttyS0 ...) + 4.7.2. Termcapeintrag + Wird in die TERM Variable der Shell geschrieben und sollte mit einem Eintrag in der + Datei /etc/termcap übereinstimmen. + 50 + 4.7. /etc/inittab + 4.7.3. Gettykommando + Pfad und Optionen zum Getty-Kommando + #Beispieleinerinittabfürsimpleinit#Format:Terminal:Termcapeintrag:Gettykommando + tty1:linux:/sbin/getty9600tty1tty2:console:/sbin/getty9600tty2tty5:con100x40:/sbin/getty + 9600 tty5 ttyS1:vt102:/sbin/getty 9600 ttyS1 + Kürzel:Arbeitsstufen:Modus:Kommando Sysvinit von Mike Jagdis und + Miquel van Smoorenburg + 4.7.4. Kürzel + Jede Aktion muß mit einem eindeutigen (maximal vierstelligen, a.out oder Librari- + es<5.2.18maximalzweistelligen) Kürzelversehen werden,das bei Einträgen in Logfiles + und bei Fehlermeldungen ausgegeben wird. + 4.7.5. Arbeitsstufen + Es werden hier die Arbeitsstufen (Runlevel) eingetragen. Zulässige Arbeitsstufen sind + 0 - 9 und s. Es können auch die Pseudoarbeitsstufen(ondemand) a, b, c und q für + einmalig auszuführende Kommandosverwendetwerden. Es wird ohne Groß und Klein- + schreibung bezeichnet. In einer Zeile können bis zu 11 Runlevel zugeordnet werden. + Wenn das Feld für den Runlevel leer ist, wird die Aktion bei jedem Moduswechsel + ausgeführt. + 0 Systemhalt + S Einzelbenutzerbetrieb (Single User Mode) + 1 Einzelbenutzerbetrieb (Single User Mode) + 2 Lokaler Mehrbenutzerbetrieb ohne entferntes Netzwerk + (Local multiuser without remote network) + 3 Voller Mehrbenutzerbetrieb mit Netzwerk + (Full multiuser with network) + 4 Frei (Not used) + 5 Voller Mehrbenutzerbetrieb mit Netzwerk und KDM, GDM oder XDM + (Full multiuser with network and xdm) + 6 Systemneustart (System reboot) + Q Quit zum Neueinlesen der inittab + 4.7.6. Modus + Gibt an wie das Kommando im letzten Feld ausgeführt werden soll. + initdefault Bestimmt den Runlevel beim Systemstart. + sysinit Wird einmal nach dem Kernelstart ausgeführt. + bootwait Wird einmal ausgefürt, wenn in einem Mehrbenutzerbetrieb + gestartet wird und wartet bis das Kommando beendet ist. + boot Wie bootwait nur das nicht gewartet wird. + 51 + 4. Verzeichnisse und Dateien + respawn Überwacht das laufende Kommando und startet es neu, wenn es + beendet wurde. Wird es in zwei Minuten 10 mal neu gestartet, + setzt init das Kommando für fünf Minuten aus. + ondemand Wie respawn, um mit Buchstaben gekennzeichnete Level einzelne + Kommandos mit telinit zu starten. + wait Wartet bis das Kommando beendet ist. + once Wird einmal ausgefürt, es wird nicht gewartet. + off Wenn das Kommando läuft, wird es angehalten. + ctrlaltdel Kommando (Signal SIGINT, [Strg]+[Alt]+[Entf]) z.B. Rebooten des + Systems. + kbrequest Kommando wird ausgeführt, wenn das Signal SIGWINCH + [Alt]+[Pfeil hoch] von der Tastatur kommt. + powerwait Wenn init sich in einem passenden Runlevel befindet, das + Signal SIGPWR erhält oder über Pipeline /dev/initctrl den + entsprechenden Befehl erhält und wartet auf Beendigung des + Kommandows. Das Signal kann mit Hilfe eines Dämons von einer USV + erzeugt werden. + powerfail Wie powerwait wartet jedoch nicht. + powerfailnow Wie powerwait es muß die Datei /etc/powerstatus zusätzlich das + Wort Low enthalten. So kann das APM eines Notebooks mit Hilfe + eines Dämons das System herrunterfahren. + powerokwait Wie powerwait es muß die Datei /etc/powerstatus zusätzlich das + Wort OK enthalten. Auf diese weise kann das System in den + normalen Zustand gebracht werden, nachdem die Stromversorgung + wieder hergestellt ist. + 4.7.7. Kommando + Pfad und Optionen zum Kommando, wird durch die Bourne-Again-Shell abgearbeitet. + Bei jedem Kommandostart wird versucht die Datei /etc/initscript abzuarbeiten, die + dann das Kommando startet. + # Beispiel einer inittab für sysvinit + # Format: Kürzel:Arbeitsstufen:Modus:Kommando + # Bestimmt den Runlevel beim Systemstart + id:5:initdefault: + # Erstes Script, wenn nicht im Notfallsystem (-b) gestartet wird. + si::bootwait:/etc/init.d/boot + # /etc/init.d/rc übernimmt die Runlevel Behandlung + l0:0:wait:/etc/init.d/rc 0 + l1:1:wait:/etc/init.d/rc 1 + l2:2:wait:/etc/init.d/rc 2 + 52 + 4.8. /etc/passwd + l3:3:wait:/etc/init.d/rc 3 + #l4:4:wait:/etc/init.d/rc 4 + l5:5:wait:/etc/init.d/rc 5 + l6:6:wait:/etc/init.d/rc 6 + # Bestimmt den Einzelbenutzerbetrieb (Single User Mode) + ls:S:wait:/etc/init.d/rc S + ~~:S:respawn:/sbin/sulogin + # Aktion bei Signal SIGINT, [Strg]+[Alt]+[Entf] + ca::ctrlaltdel:/sbin/shutdown -r -t 4 now + # Aktion bei Signal SIGWINCH [Alt]+[Pfeil hoch] + kb::kbrequest:/bin/echo "’Keyboard Request -- edit /etc/inittab to let this work."’ + # Aktion bei Stormausfall und Wiederherstellung + pf::powerwait:/etc/init.d/powerfail start + pn::powerfailnow:/etc/init.d/powerfail now + #pn::powerfail:/etc/init.d/powerfail now + po::powerokwait:/etc/init.d/powerfail stop + # getty-Programme für die normalen Runlevels + 1:2345:respawn:/sbin/mingetty --noclear tty1 + 2:2345:respawn:/sbin/mingetty tty2 + 3:2345:respawn:/sbin/mingetty tty3 + 4:2345:respawn:/sbin/mingetty tty4 + 5:2345:respawn:/sbin/mingetty tty5 + 6:2345:respawn:/sbin/mingetty tty6 + #S0:12345:respawn:/sbin/agetty -L 9600 ttyS0 vt102 + 4.8. /etc/passwd + #Benutzername:Paßwort:Benutzernummer:Gruppennummer:GCOS:Heimat:Shell + root:x:0:0:root:/root:/bin/bash + bin:x:1:1:bin:/bin:/bin/bash + daemon:x:2:2:daemon:/sbin:/bin/bash + lp:x:4:7:lp daemon:/var/spool/lpd:/bin/bash + games:x:12:100::/var/games:/bin/bash + man:x:13:2::/var/cache/man:/bin/bash + ftp:x:40:2:ftp account:/usr/local/ftp:/bin/bash + nobody:x:65534:65534:nobody:/var/lib/nobody:/bin/bash + higi:x:500:100:Higi:/home/higi:/bin/bash + gast:x:501:100:Gast:/home/gast:/bin/bash + 53 + 5. Die Shells + 5.1. Die Shells + Eine Shell ist ein Kommando-Interpreter, ein Programm das durch ein anderes ersetzt + werden kann. Es zerlegt die Kommandozeile, führt Sonderzeichen durch und reicht das + Kommandoan UNIX weiter. Ohne Shell gibt es keinen Zugang zum Betriebssystem. + /bin/sh Bourne-Shell zum programmieren + /bin/ksh Korn-Shell Mischung aus C-und Bourne-Shell + /bin/csh C-Shell zum interaktiven Arbeiten + /bin/bash Bourne-Again-Shell + /bin/tcsh TC-Shell + export Setzt Umgebungsvariablen, Variablen exportieren + locate Findet Dateien anhand einer Datenbank + setenv Setzt Umgebungsvariablen unter Nicht-Bash Shells, z.B. csh + unset Variable löschen in ksh, bsh und bash + unsetenv Variable löschen in csh + 5.2. Die Start-Scripts + ~/.bashrc bash + 5.3. Tastenkombinationen + [Strg]+[l] Bildschirm löschen bash und csh + [Strg]+[a] oder [Pos 1] Zeilenanfang bash und csh + [Strg]+[e] oder [Ende] Zeilenende bash und csh + [Alt]+[f] Wort vorwäts bash und csh + [Alt]+[b] Wort rückwärts bash und csh + [Strg]+[c] Befehlseingabe verwerfen alle Shells + [Strg]+[c] Programm abbrechen + [Pfeil rechts] und [Pfeil links] Cursor bewegen bash und csh + [Pfeil hoch] und [Pfeil runter] History-Scrolling bash und csh + [Strg]+[r] in der History suchen bash + [Tab] Komplettierung bash und csh + [Strg]+[d] beendet die Shell alle Shells + 55 + 5. Die Shells + [Strg]+[d] oder [Entf] ein Zeichen löschen + [Strg]+[h] oder [Backspace] Zeichen rückwärts löschen + [Strg]+[k] Zeile ab Cursor löschen + [Alt Gr]+[Umschalt] zwei folgende Zeichen vereinen + ae -> AE, co -> \texteuro + [Strg]+[z] im Vordergrund laufendes Programm anhalten + Fortsetzung mit fg + [Umschalt]+[Bild hoch] und vorherige Textausgabe alle Shells + [Umschalt]+[Bild runter] zurückholen + [Alt]+[F1] bis [F6] Umschalten zwischen Textkonsolen alle Shells + [AltGr]+[Fn] Umschalten zwischen den Textkonsolen n+12 + [Alt]+[Pfeil links oder rechts] um durch die benutzten Konsolen zu stöbern + [Strg]+[Alt]+[F1] bis Umschalten zu Textkonsolen alle Shells + [Strg]+[Alt]+[F6] aus X11 heraus + [Strg]+[Alt]+[F7] Umschalten zu X11 aus Textkonsole alle Shells + bei Caldera 2.2 [Alt]+[F8] + [Strg]+[Alt]+[<--] X-Server sofort beenden + [Strg]+[Alt]+[+] verschiedene Auflösungen im laufenden Betrieb + [Strg]+[Alt]+[-] wechseln + [Strg]+[Alt]+[Entf] Signal SIGINT z.B. reboot Shell + 5.4. Die C-Shell + ~ Home-Verzeichnis + ~user Home-Verzeichnis des Benutzers user + * beliebige Zeichen-kette + ? genau Zeichen + {a,b,c} a oder b oder c + [aceg] genau eines der Zeichen + [a-z] a bis z + [!adfh] kein a, d, f, h + ´´ maskiert alles + \ maskiert das nachfolgende Zeichen + "" maskiert $ ‘ \ nicht + > Datei Ausgabe in die Datei, stdout + >& Datei Ausgabe in die Datei, stdout und stderr + >>Datei Unlenkung in die Datei, stdout umgelenkt + < Datei von der Datei lesen, anstatt von stdin zu lesen + set noclobber Überschreiben einer vorhandenen Datei verhindern + | Ausgabekanal eines Kommandos direkt in den Eingabekanal eines + anderen Kommandos leiten + #!Programm so beginnt eine Datei die vom Progamm ausgeführt wird + $HISTSIZE History-Größe + $LS_OPTIONS ls Funktionen + 56 + 5.5. Bash rechnen + $PATH Pfad zu den Programmdateien + Programm & Programm im eigenem Prozess starten + 5.5. Bash rechnen + echo $((1+1)) gibt 1 aus + a=4 + b=5 + echo $((a*b)) gibt 20 aus + echo $((a-b)) gibt -1 aus + 57 + Teil II. + Programme + 59 + 6. Der Texteditor vi/vim + Der vi-Editor ist auf UNIX/Linux(neben Emacs) der meistverwendete Texteditor. Die + Bedienung erfolgt über den Befehls- und Kommando-modus. Da es nicht gerade ein- + fach ist sich diese Optionen zu merken, folgt eine Auflistung der meist gebrauchten + Optionen. + 6.1. Aufruf + vi Editor vi aufrufen + vi Datei Editor vi aufrufen und Datei öffnen + vi -r swap-Dateien anzeigen + vi -r Datei Datei nach einem Stromausfall oder Absturz wieder herstellen + vi -R Datei Datei schreibgeschützt öffnen + 6.2. Eingabemodus (input mode) + UmindenEingabemodus zu gelangen muss A, C, I, O, R, S, a, i, o oder s eingegeben + werden. i ist eine gute Wahl. Mit wird der Eingabemodus verlassen. + 6.3. Befehlsmodus (visual mode) + 6.3.1. Eingeben: + (n)i eingeben fügt den eingeben Text (n mal) vor dem Cursor ein + (n)a eingeben fügt den eingeben Text (n mal) hinter dem Cursor ein + (n)I eingeben fügt den eingeben Text (n mal) am Zeilenanfang ein + (n)A eingeben fügt den eingeben Text (n mal) am Zeilenende ein + (n)o eingeben fügt unter der aktuellen Zeile (n neue Zeilen) + mit den eingeben Text ein + (n)O eingeben fügt über der aktuellen Zeile (n neue Zeilen) + mit den eingeben Text ein + 6.3.2. Überschreiben: + (n)R eingeben überschreibt den Text mit eingeben + wechselt zwischen INSERT und REPLACE + (n)r Taste überschreibt den Text mit (n mal) Taste + 61 + 6. Der Texteditor vi/vim + von dem Cursor nach rechts + 6.3.3. Bewegen: + (n)h Cursor um (n) Zeichen nach links bewegen + (n)+h Cursor um (n) Zeichen nach links bewegen + (n)l Cursor um (n) Zeichen nach rechts bewegen + (n) Cursor um (n) Zeichen nach rechts bewegen + (n)| Cursor zur Spalte (n) bewegen + (n)t Taste Cursor vor das (n) Zeichen Taste nach rechts bewegen + (n)f Taste Cursor auf das (n) Zeichen Taste nach rechts bewegen + (n)T Taste Cursor vor das (n) Zeichen Taste nach links bewegen + (n)F Taste Cursor auf das (n) Zeichen Taste nach links bewegen + (n)j Cursor um (n) Zeilen abwärts bewegen + (n)k Cursor um (n) Zeilen aufwärts bewegen + (n)w Cursor um (n) Wörter nach rechts bewegen + (n)W Cursor um (n) Wörter(Space) nach rechts bewegen + (n)b Cursor um (n) Wörter nach links bewegen + (n)B Cursor um (n) Wörter(Space) nach links bewegen + (n)e Cursor an das (n) Wortende nach rechts bewegen + (n)E Cursor an das (n) Wortende(Space) nach rechts bewegen + ^ Cursor auf das erste Zeilenzeichen stellen + 0 Cursor vor das erste Zeilenzeichen stellen + (n)_ Cursor auf das erste Zeilenzeichen stellen und + (n-1) Zeilen nach unten bewegen + $ Cursor zum Zeilenende bewegen + (n)+ Cursor auf das erste Zeilenzeichen stellen und + (n) Zeilen abwärts bewegen + (n)- Cursor auf das erste Zeilenzeichen stellen und + (n) Zeilen aufwärts bewegen + (n)) Cursor um (n) Sätze abwärts bewegen + (n)( Cursor um (n) Sätze aufwärts bewegen + (n)} Cursor um (n) Absätze abwärts bewegen + (n){ Cursor um (n) Absätze aufwärts bewegen + (n)+u Cursor um 1/2 Bildschirm oder (n Zeilen) + aufwärts bewegen + (n)+d Cursor um 1/2 Bildschirm oder (n Zeilen) + abwärts bewegen + +f Cursor um 1 Bildschirm abwärts bewegen + Cursor um 1 Bildschirm abwärts bewegen + +b Cursor um 1 Bildschirm aufwärts bewegen + Cursor um 1 Bildschirm aufwärts bewegen + (n)+e scrollt den Cursor (n) Zeilen abwärts + (n)+y scrollt den Cursor (n) Zeilen aufwärts + ’ Taste Cursor zu der mit Taste markierten Zeile bewegen + 62 + 6.3. Befehlsmodus (visual mode) + ‘ Taste Cursor zu dem mit Taste markierten Zeichen bewegen + gg Cursor zum Textanfang bewegen + (n)G Cursor zur Zeile (n) bewegen + G Cursor zum Textende bewegen + H Cursor an den Anfang der Bildschirmseite setzen + (n)H Cursor zur Zeile (n) auf den Bildschirm bewegen + M Cursor auf den Anfang der mittleren + Bildschirmzeile bewegen + L Cursor an das Ende der Bildschirmseite setzen + (n)L Cursor vom Ende zur Zeile (n) auf den Bildschirm bewegen + z Taste bewegt die aktuelle Zeile zum Anfang(+), Ende(-) oder + zur Mitte(.) des Bildschirms + 6.3.4. Löschen und Eingeben: + (n)s eingeben löscht (n) Zeichen von dem Cursor nach rechts und + fügt den eingeben Text ein + c Bereich eingeben löscht den markierten Bereich und + fügt den eingeben Text ein + cc eingeben löscht den Zeilentext und fügt den eingeben Text ein + cw eingeben löscht bis zum ende des Wortes und + fügt den eingeben Text ein + C eingeben löscht den Text bis Zeilenende und + fügt den eingeben Text ein + (n)S eingeben löscht (n) Zeilen nach unten und + fügt den eingeben Text ein ( wie (n)cc ) + 6.3.5. Löschen: + d Bereich löscht den markierten Bereich + dd löscht die ganze Zeile + D löscht den Text bis Zeilenende + dw löscht bis zum Ende des Wortes + (n)x löscht (n) Zeichen auf den sich der Cursor befindet + löscht das Zeichen auf den sich der Cursor befindet + (n)X löscht (n) Zeichen links vom Cursor + 6.3.6. Aufheben: + u macht die letzte Änderung rückgängig + U macht die letzte Änderung der ganzen Zeile rückgängig + 6.3.7. Verschieben: + > Bereich schiebt die markierten Zeilen nach rechts + 63 + 6. Der Texteditor vi/vim + >> schiebt die Zeile auf den sich der Cursor befindet + nach rechts + < Bereich schiebt die markierten Zeilen nach links + << schiebt die Zeile auf den sich der Cursor befindet + nach links + 6.3.8. Zusammenfügen: + (n)J hängt (n) Zeilen nach unten aneinander + 6.3.9. Markieren: + m Taste markiert eine Zeile oder Zeichen + v setzt den Anfang einer Markierung + V setzt den Anfang einer Zeilenmarkierung + 6.3.10. Kopieren: + y Bereich kopiert den mit Bereich angegebenen Text in einen Puffer + (n)Y kopiert die aktuelle und (n) Zeilen in einen Puffer + " Taste legt den nächsten Zwischenpuffer fest + @ Taste interpretiert den Inhalt des Zwischenspeichers als + vi Befehle und führt sie aus + 6.3.11. Einfügen: + p fügt den aktuellen Puffer hinter dem Cursor ein + P fügt den aktuellen Puffer vor dem Cursor ein + 6.3.12. Suchen: + (n)% platziert den Cursor auf die zugehörige () {} [], oder + platziert den Cursor auf (n) Prozent der Datei + / Text sucht den Text vorwärts + ? Text sucht den Text rückwärts + 6.3.13. Wiederholen: + . wiederholt das letzte EDIT Kommando + n wiederholt das letzte Suchen + N wiederholt das letzte Suchen in umgekehrter Richtung + (n); wiederholt das vorgehende f, F, t, T Kommando + (n), wiederholt das vorgehende f, F, t, T Kommando in + umgekehrter Richtung + (n)& wiederholt den letzten :s// Befehl an der momentanen + Position + 64 + 6.4. Kommandomodus (colon mode) + 6.3.14. Sonstige Kommandos: + G zeigt den Dateistatus und die momentane Zeilennummer + ZZ speichert die Datei und beendet vi + L erneuert den Bildschirm + 6.4. Kommandomodus (colon mode) + Uminden Kommandomodus zu gelangen muss : eingegeben werden. + 6.4.1. Texteingabe Kommandos + q(!) Editor verlassen + wq Editor mit speichern verlassen + xit arbeitet wie wq, speichert nur bei einer Änderung + x(!) Editor mit speichern verlassen + w(!) Name Datei mit Namen speichern + h Hilfe anfordern + args Dateien Liste der Dateien anlegen + args Dateien auflisten + next(!) schaltet zur nächsten Datei + previous(!) schaltet zur vorhergehenden Datei + rewind(!) schaltet zur ersten Datei + edit(!) Datei dient zum wechseln der Datei + !Befehl externen Befehl ausführen + 65 + 7. LaTeX + A + 7.1. LT X + E + A + LT X + E + 67 + Teil III. + Linux im Netzwerk + 69 + 8. Netzwerk + Rechnername Name den der Rechner im Netzwerk hat, + sollte nicht mehr als acht Zeichen haben, + darf im lokalen Netzwerk noch nicht vergeben sein + Domainname Name zur Gliederung von Netzwerken + Top-Level-Domain umfasst höchstens vier Buchstaben + Beispiel: Rechnername.Domainname.Top-Level-Domain -> + voyager.startrek.foe + IP-Adresse Adresse des Rechners im Netzwerk, + jede Netzwerkschnittstelle(z.B. Netzwerk- oder + ISDN-Karte) hat im Netzwerk mindestens eine Adresse + die eindeutig ist, die Adresse besteht derzeit aus + einer Sequenz von vier Bytes die durch Punkte getrennt + sind z.B. 192.168.20.40 , für private Netze sind durch + das Arbeitspapier RFC 1597 drei Adressbereiche + vorgesehen die nicht geroutet werden: + 10.0.0.0 -> 10.255.255.255 (Class A-Netz) + 172.16.0.0 -> 172.31.255.255 (Class B-Netz) + 192.168.0.0 -> 192.168.255.255 (Class C-Netz) + Gatewayadresse IP-Adresse des Gerätes die das Weiterleiten + von Netzwerkpaketen in das fremde Netz übernimmt + Netzwerkmaske sagt aus welcher Teil der IP-Adresse + zum lokale Netzwerk gehört z.B. 255.255.255.0 + #### in arbeit ####################################### + OSI Open System Interconnektion + IEEE + ISO + MAC-Adresse 006097 370cae + ------ ------ + Herstellerabhängig + laufendeNr. + Ethernet-adresse + Node-Addresse + NIC-Adresse + udp + tcp/ip + nfs + ftp + Portnummer/Kanalnummer + 71 + 8. Netzwerk + 16Bit 65535 pro udp pro tcp/ip + /etc/services + 0-1023 well known Ports IANA + 1024-49151 registrierte Ports + ->65535 dynamische, privat + ###################################################### + 72 + 9. Apache + 9.1. Einleitung + Der Apache Webserver ist ein Programm das im Netzwerk(WWW), bei Anfragen mit + einem Webbrowser, Websites(HTTP-Protokoll) ausgeben kann. + DieAnfragenwerdenalsURLangegeben.Beispiel:Schema://Hostname:Port/Server- + Pfad -> http://www.apache.org:80/manual/ + 9.2. Kompilieren und Installieren + 9.2.1. Anforderungen + • Apache-Quellcode 1.3, erhältlich bei http://www.apache.org/ + • mod_ssl 1.3, erhältlich bei http://www.modssl.org/ + • Apache-Quellcode 2.0, erhältlich bei http://www.apache.org/ + • OpenSSL-Quellcode 0.9.x, erhältlich bei http://www.openssl.org/ + • Linuxab2.4.xx(z.B.DebianSarge3.1),libgdbm2-devel(ndbm.h->gdbm-ndbm.h) + • ANSI-C-CompilerundGenerierungswerkzeuge,GNUCCompiler(GCC)abVer- + sion 2.7.2, wesentliche Generierungswerkzeuge wie make + • Zeitgenauigkeit bewahren, ntpdate oder xntpd(NTP) + • Perl 5(optional), Version ab 5.003 http://www.perl.com/ + • PureFTPd(optional), Version ab 5.003 http://www.perl.com/ + 9.2.2. Vorbereitungen + su als root anmelden + mkdir /usr/local/src das Verzeichnis /usr/local/src anlegen, + wenn es noch nicht vorhanden ist + chmod 777 /usr/local/src Verzeichnis-Rechte setzen + ln -s /usr/include/gdbm-ndbm.h /usr/include/ndbm.h + Link zu ndbm.h + exit root abmelden + cp Quelldateien /usr/local/src Quelldateien kopieren + 73 + 9. Apache + 9.2.3. OpenSSL + cd /usr/local/src Verzeichnis wechseln + tar xvfz openssl-0.9.7d.tar.gz Quelldateien entpacken + cd openssl-0.9.7d in das Quelldatei-Verzeichnis wechseln + ./config --help Hilfe zu den möglichen Optionen + ./config --prefix=/usr/local/openssl/0.9.7d + Codebaum konfigurieren und + Installations-Verzeichnis angeben + make Programm herstellen + make test Programm testen + su als root anmelden + make install Programm installieren + ln -s /usr/local/openssl/0.9.7d /usr/local/openssl/current + Link zu OpenSSL + exit root abmelden + 9.2.4. Apache 1.3 und SSL + cd /usr/local/src Verzeichnis wechseln + tar xvfz apache_1.3.31.tar.gz Quelldateien entpacken + tar xvfz mod_ssl-2.8.19-1.3.31.tar.gz Quelldateien entpacken + cd apache_1.3.31 in das Quelldatei-Verzeichnis wechseln + ./configure --help Hilfe zu den möglichen Optionen + cd ../mod_ssl-2.8.19-1.3.31 + ./configure --help Hilfe zu den möglichen Optionen + ./configure --with-apache=../apache_1.3.31 + --with-ssl=../openssl-0.9.7d + --prefix=/usr/local/apache/1.3.31 + --datadir=/srv/www + --enable-module=most + --enable-shared=max + --enable-module=ssl + cd ../apache_1.3.31 in das Quelldatei-Verzeichnis wechseln + make Programm herstellen + make certificate TYPE=custom Zertifikat erzeugen + Angaben zu der Certificate Authority + Signature Algorithm ((R)SA or (D)SA) [R]:R + 1. Country Name (2 letter code) [XY]:DE + 2. State or Province Name (full name) [Snake Desert]:Niedersachsen + 3. Locality Name (eg, city) [Snake Town]:Salzgitter + 4. Organization Name (eg, company) [Snake Oil, Ltd]:Komtek + 5. Organizational Unit Name (eg, section) [Certificate Authority]:CA + 74 + 9.2. Kompilieren und Installieren + 6. Common Name (eg, CA name) [Snake Oil CA]:Komtek CA + 7. Email Address (eg, name@FQDN) [ca@snakeoil.dom]:ca@komtek.de + 8. Certificate Validity (days) [365]:365 + Certificate Version (1 or 3) [3]:3 + Angaben zum Serverzertifikat + 1. Country Name (2 letter code) [XY]:DE + 2. State or Province Name (full name) [Snake Desert]:Niedersachsen + 3. Locality Name (eg, city) [Snake Town]:Salzgitter + 4. Organization Name (eg, company) [Snake Oil, Ltd]:Komtek + 5. Organizational Unit Name (eg, section) [Webserver Team]:Webmaster + 6. Common Name (eg, FQDN) [www.snakeoil.dom]:www.komtek.de + 7. Email Address (eg, name@fqdn) [www@snakeoil.dom]:www@www.komtek.de + 8. Certificate Validity (days) [365]:365 + Certificate Version (1 or 3) [3]:3 + Schlüssel verschlüsseln + Encrypt the private key now? [Y/n]: n + Encrypt the private key now? [Y/n]: n + su als root anmelden + make install + groupadd wwwadmin Gruppe wwwadmin anlegen + chown -R nobody:wwwadmin /srv/www Rechte für das www-Verzeichnis setzen + ln -s /usr/local/apache/1.3.31 /usr/local/apache/current + Link zu Apache 1.3 + ln -s /usr/local/apache/current/conf /etc/apache + Link zu den Konfigurationen + ln -s /usr/local/apache/current/logs /var/log/apache + Link zu den Logdateien + ln -s /usr/local/apache/current/bin/apachectl /usr/local/bin + Link zu apachectl + ln -s /usr/local/apache/current/bin/apachectl /etc/init.d/apache + Link zu den Startdateien + cd /etc/rc5.d in den Start-Runlevel wechseln + ln -s ../init.d/apache S20apache Link zum automatischen Starten + cd ../rc0.d in den Stopp-Runlevel wechseln + ln -s ../init.d/apache K20apache Link zum automatischen Beenden + cd ../rc6.d in den Start-Runlevel wechseln + ln -s ../init.d/apache K20apache Link zum automatischen Beenden + exit root abmelden + 75 + 9. Apache + 9.2.5. Apache2 + cd /usr/local/src Verzeichnis wechseln + tar xvfz httpd-2.0.51.tar.gz Quelldateien entpacken + cd httpd-2.0.51 in das Quelldatei-Verzeichnis wechseln + ./configure --help Hilfe zu den möglichen Optionen + ./configure --prefix=/usr/local/apache2/2.0.51 + --with-ssl=../openssl-0.9.7d + --datadir=/srv/www2 + --enable-module=most + --enable-shared=max + --enable-module=ssl + --with-port=81 da auf 80 schon der Apache 1.3 läuft + make Programm herstellen + su als root anmelden + make install Programm installieren (als root!) + groupadd wwwadmin Gruppe wwwadmin anlegen + chown -R nobody:wwwadmin /srv/www2 Rechte für das www-Verzeichnis setzen + ln -s /usr/local/apache2/2.0.51 /usr/local/apache2/current + Link zu Apache 2 + ln -s /usr/local/apache2/current/conf /etc/apache2 + Link zu den Konfigurationen + ln -s /usr/local/apache2/current/logs /var/log/apache2 + Link zu den Logdateien + ln -s /usr/local/apache2/current/bin/apachectl /usr/local/bin/apachectl2 + Link zu apachectl + ln -s /usr/local/apache2/current/bin/apachectl /etc/init.d/apache2 + Link zu den Startdateien + cd /etc/rc5.d in den Start-Runlevel wechseln + ln -s ../init.d/apache2 S20apache2 Link zum automatischen Starten + cd ../rc0.d in den Stopp-Runlevel wechseln + ln -s ../init.d/apache2 K20apache2 Link zum automatischen Beenden + cd ../rc6.d in den Start-Runlevel wechseln + ln -s ../init.d/apache2 K20apache2 Link zum automatischen Beenden + exit root abmelden + 9.2.6. Testen + /etc/init.d/apache start Apache1.3 starten + /etc/init.d/apache2 start Apache2 starten + Browser http://localhost/ Apache1.3 testen + Browser http://localhost:81/ Apache2 testen + /etc/init.d/apache stop Apache1.3 beenden + /etc/init.d/apache2 stop Apache2 beenden + 76 + 9.2. Kompilieren und Installieren + 9.2.7. Upgrade + ./config.nice aus der letzten Installation entnehmen, + Apache2 + 9.2.8. PureFTPd + cd /usr/local/src Verzeichnis wechseln + tar xvfz pure-ftpd-1.0.20.tar.gz Quelldateien entpacken + cd pure-ftpd-1.0.20 Verzeichnis wechseln + ./configure --prefix=/usr/local/pure-ftpd/1.0.20 --with-language=german + Makefile herstellen + make Programm herstellen + make check Programm prüfen + su als root anmelden + make install Programm installieren + ln -s /usr/local/pure-ftpd/1.0.20 /usr/local/pure-ftpd/current + Link zu pure-ftpd + mkdir /usr/local/pure-ftpd/current/etc Verzeichnis etc anlegen + cp configuration-file/pure-ftpd.conf /usr/local/pure-ftpd/current/etc + Konfiguration kopieren + cp pureftpd-*.conf /usr/local/pure-ftpd/current/etc + Konfigurationen kopieren + ln -s /usr/local/pure-ftpd/current/etc /etc/pure-ftpd + Link zu den Konfigurationen + vi /etc/init.d/pure-ftpd Startdatei für pure-ftpd anlegen + #!/bin/bash + case "$1" in + start) + echo "pureftpd wird gestartet ..." + cd /usr/local/pure-ftpd/current + ./sbin/pure-ftpd & + ;; + stop) + echo "pureftpd wird heruntergefahren ..." + kill -TERM ‘cat /var/run/pure-ftpd.pid‘ + ;; + *) + echo "Usage: $0 {start|stop}" + exit 1 + ;; + esac + exit 0 + 77 + 9. Apache + chmod 755 /etc/init.d/pure-ftpd Rechte setzen + cd /etc/rc5.d Verzechnis wechseln + ln -s ../init.d/pure-ftpd S20pure-ftpd Link zum automatischen Starten + cd /etc/rc0.d Verzechnis wechseln + ln -s ../init.d/pure-ftpd K20pure-ftpd Link zum automatischen Beenden + cd /etc/rc6.d Verzechnis wechseln + ln -s ../init.d/pure-ftpd K20pure-ftpd Link zum automatischen Beenden + useradd -g wwwadmin -d /srv -s /bin/false wwwadmin + Benutzer wwwadmin anlegen + passwd wwwadmin Passwort setzen + NoAnonymous yes + UnixAuthentication yes + MinUID 1000 + MinUID 1000 + TrustedGID 1002 + exit root abmelden + 9.3. Apache starten + 9.3.1. Apache starten + Unter UNIX/Linux wird das httpd-Progamm als Daemon ausgeführt. + apachectl start Apache starten + rcapache start Apache starten(SuSE-Linux) + 9.3.2. Wie der Apache startet + • apachectl ist die empfohlene Methode, das httpd-Programm zu starten + • apachectlsetztverschiedeneUmgebungsvariablenundstartetdashttpd-Programm + • apachectl reicht alle Kommandozeilenargumente durch + • als erstes liest der httpd die Konfigurationsdatei httpd.conf ein, die beim Kom- + pilieren festgelegt wurde + • zurLaufzeitkannderAblageortgeändertwerden,z.B.apachectl-f/etc/apache2/httpd.conf + • beim erfolgreicehn Start, trennt sich der Server vom Terminal ab + • bis zum Port 1024 muss der Apache root-Berechtigung besitzen + • der Haupt-httpd-Prozess läuft unter dem Benutzer root weiter + 78 + 9.3. Apache starten + • ist der Server gestartet, öffnet er seine Log-Dateien + • der Apache startet mehrere Kind-Prozesse + • die Kind-Prozesse werden unter weniger privilegierten Benutzerkennungen aus- + geführt(z.B. nobody, wwwrun ...) + • die Kind-Prozesse lauschen und beantworten Anfragen von Clients + • dieKind-ProzessewerdenvondemausgewähltenMulti-Processing-Modul(Apache- + MPMprefork UNIX/Linux) gesteuert + 9.3.3. Fehler während des Hochfahrens + • wird während des Hochfahrens einen schwerer Fehler feststellt, schreibt der Apa- + che eine Nachricht auf die Konsole oder ins ErrorLog, bevor er sich selbst beendet + • eine der häufigsten Fehlermeldungen ist Ünable to bind to Port ...", der Server + läuft schon oder hat keine root-Berechtigung + 9.3.4. Automatisch starten und beenden + • apachectl zu den Startdateien des Systems hinzufügen (rc.local, rc.x-Verzeichnis) + z.B. SuSE-Linux: + cd /etc/rc.d/rc3.d/ + ln -s ../apache S16apache Link zum automatischen Starten + in Runlevel 3 anlegen + ln -s ../apache K06apache Link zum automatischen Beenden + in Runlevel 3 anlegen + z.B. Debian: + cd /etc/rc3.d/ + ln -s ../init.d/apache2 S20apachectl + Link zum automatischen Starten in Runlevel 5 anlegen + cd /etc/rc0.d/ + ln -s ../init.d/apache2 K20apachectl + Link zum automatischen Beenden in Runlevel 0 anlegen + 9.3.5. Weitere Informationen + http://localhost/manual/programs/httpd.html + http://localhost/manual/de/programs/httpd.html + http://localhost/manual/programs/apachectl.html + http://localhost/manual/de/programs/apachectl.html + 79 + 9. Apache + 9.4. Beenden und Neustarten + 9.4.1. Einleitung + • umdenApachezustoppenoderneuzustarten,musseinSignalandenlaufenden + httpd-Prozess gesendet werden + • es gibt zwei Möglichkeiten Signale zu senden, kill und apachectl + • auf dem System laufen mehrere httpd-Programme + • nurandenElternprozesssollteeinSignalgesendetwerden,/var/log/apache2/httpd.pid + • es gibt drei Signale die an den Elternprozess gesendet werden können, TERM - + beenden, HUP - neustarten, USR1 - unterbrechungsfreier Neustart + • es wird empfohlen apachectl zu benutzen + • mit tail -f /var/log/apache2/error_log"kann die Signalisierung beobachtet wer- + den + 9.4.2. Beenden + Signal: TERM + apachectl stop sendet das TERM(stop) signal an + den Elternprozess + rcapache stop Apache stoppen + bei SuSE-Linux + kill -TERM ‘cat /var/log/apache2/httpd.pid‘ sendet das TERM(stop) signal an + den Elternprozess + • das Senden des TERM(stop)-Signals an den Elternprozess veranlasst alle seine + Kindprozesse sich zu beenden + • es dauert etwas bis alle Kindprozesse beendet sind + • danach beendet sich der Elternprozess + • alle gerade bearbeiteten Anfragen werden abgebrochen + • es werden keine weiteren Anfragen mehr bedient + 9.4.3. Unterbrechungsfreier Neustart + Signal: USR1 + apachectl graceful sendet das USR1 signal an + den Elternprozess + kill -USR1 ‘cat /var/log/apache2/httpd.pid‘ sendet das USR1 signal an + den Elternprozess + 80 + 9.4. Beenden und Neustarten + • das Senden des USR1-Signals an den Elternprozess veranlasst alle seine Kind- + prozesse sich zu beenden + • die Kindprozesse bearbeiten noch die letzten Anfragen und beenden sich dann + • der Elternprozess liest, wärend die Kindprozesse noch laufen, seine Konfigurati- + onsdateien erneut ein und öffnet seine Logdateien neu + • die Kindprozesse werden wieder gestartet + • die Serverstatistiken(mod_status) werden nicht auf Null zurückgesetzt + • ist die Konfigurationsdatei fehlerhaft, wird der Elternprozess nicht neu gestartet + • die Kindprozesse bearbeiten noch die letzten Anfragen und beenden sich dann + • wärednochdieletztenAnfragenbearbeitetwerdenkannderhttpdnichtgestartet + werden + 9.4.4. Neustarten + Signal: HUP + apachectl restart sendet das HUP signal an + den Elternprozess + rcapache restart Apache stoppen und dann starten + bei SuSE-Linux + kill -HUP ‘cat /var/log/apache2/httpd.pid‘ sendet das HUP signal an + den Elternprozess + • das Senden des HUP(wie TERM)-Signals an den Elternprozess veranlasst alle + seine Kindprozesse sich zu beenden + • der Elternprozess liest seine Konfigurationsdateien erneut ein und öffnet seine + Logdateien neu + • die Kindprozessewerdenwiedergestartetund setzen die BedienungvonZugriffen + fort + • die Serverstatistiken(mod_status) werden auf Null zurückgesetzt + • ist die Konfigurationsdatei fehlerhaft, wird der Elternprozess nicht neu gestartet + 9.4.5. Anhang: Syntax überprüfen + apachectl -t überprüft den Syntax der Konfigurationsdatei, so kann + vermieden werden das der Apache nicht neu startet + 81 + 9. Apache + 9.5. Anhang + 9.5.1. Zu den Dateien + /etc/apache/ + /etc/apache2/ + /etc/httpd/ + /etc/httpd2/ + access.conf Zugriffs-Konfiguration + httpd.conf Apache Konfigurationsdatei + mime.types Zuweisung von Dateiendungen + srm.conf Resource-Konfiguration + /var/log/apache/ + /var/log/apach2/ + /var/log/httpd/ + /var/log/httpd2/ + access_log Zugriffsmeldungen + error_log Fehlermeldungen + httpd.pid Hauptprozessnummer + 9.6. Benutzerhandbuch + 9.6.1. httpd.conf + ServerType standalone Apache nicht ueber den inetd starten. + ServerRoot "/www/" Diese Einstellung sorgt dafür, dass der Apache + ausgehend von diesem Verzeichnis die + Verzeichnisse fuer Dokumente, Logfiles und + Konfigurationsdateien sucht. + LockFile /var/lock/subsys/httpd/httpd.accept.lock Spezifizert das Lock + File. + PidFile /var/run/httpd.pid Datei, in der sich die Prozess ID des Httpd- + Daemons befindet. + ResourceConfig /etc/httpd/srm.conf Diese Datei enthaelt Angaben zur + Formatierung und dem Aussehen der + automatisch erzeugten Verzeichnisindizes + (FancyIndexing) sowie Angaben zu den einzelnen + Dateitypen. + AccessConfig /etc/httpd/access.conf Datei zur Definition der Funktionen und + 82 + 9.6. Benutzerhandbuch + Zugriffsrechte bestimmter Verzeichnisse + Timeout 300 Zeitlimit fuer Client-Anfragen in Sekunden. + KeepAlive On Unterstuezung der HTTP/1.1 Persistent + Connections. Dardurch koennen ueber eine TCP- + Verbindung mehrere Anfragen an den Server + geschickt werden. + MaxKeepAliveRequests 10 Es werden 10 aufeinanderfolgende Anfragen + innerhalb einer Keep-Alive-Verbindung erlaubt. + KeepAliveTimeout 15 Der Server wartet maximal 15 Sekunden auf + weitere Anfragen des Clients bei einer Keep- + Alive-Verbindung. + MinSpareServers 5 Es existieren immer mindestens 5 und hoechstens + MaxSpareServers 10 10 leerlaufende Prozesse. + StartServers 5 Es werden automatisch 5 Kindprozesse des Apache + gestartet. + MaxClients 150 Maximum von gleichzeitig laufenden + Server-Prozessen. + MaxRequestsPerChild 30 Nach 30 Anfragen wird der Kindprozess beendet + und gegebenfalls ein neuer gestartet. + Listen 12.34.56.78:80 Falls mehrere Interfaces bzw. IP Adressen fuer + den Rechner vorhanden sind, kann mit Listen + festgelegt werden, welche Ports fuer welche + Adresse abgehoert werden sollen. + Port 80 Standalone Server Port 80 + User wwwrun Nach dem Oeffnen des Ports (als root), wechselt + Group nogroup Apache zu der als User und Group angegebenen + UID bzw. GID. Die Zuweisung kann entweder durch + angeben des Namens oder durch # gefolgt von der + ID erfolgen. + ServerAdmin dv@mynet.loc Bei Fehlermeldungen wird diese Adresse dem + Client zurueckgeliefert. + ServerName www.mynet.loc Wird bei Redirects benoetigt (wenn man + 83 + 9. Apache + beispielsweise durch Eingabe von + http://www.mynet.loc/main auf das Verzeichnis + main zugreifen will, erzeugt der Apache einen + Redirect auf http://www.mynet.loc/main/ . Ohne + ServerName würde der richtige Hostname des + Rechners zurückgeliefert werden. + DocumentRoot "/www/htdocs/" Hier werden die HTML Seiten abgelegt. + AllowOverride All Konfigurationsanweisungen in der .htaccess + beachten + UserDir public_html Homepage-Directory der Benutzer + http://server/~benutzer/ + DirectoryIndex index.html index.htm index.php Wird nur ein Directory + angegeben, wird automatisch die + angegebene Datei gesucht und angezeigt. + AccessFileName .htaccess Name der .htaccess + DefaultType text/plain Dateien ohne Endung werden wie Text-Files + behandelt. + HostnameLookups Off Es sollen keine DNS-Lookups ausgefuert werden. + ErrorLog /var/log/httpd/error_log Datei zur Aufnahme von Fehlermeldungen + und sonstigen Info Meldungen + (mod_log_config). + LogLevel warn LogLevel :-) debug, info, notice, warn, error, + crit,alert,emerg. + LogFormat ... Legt das Format der Logdatei(en) fest. + CustomLog /var/log/httpd/access_log common Erzeugt die Datei http.access im + Common Log Format. + ServerSignature Off ServerSignature kann man auf "Off" stellen, + damit ein Zugriff auf eine nichtexistente Seite + nicht Software und Versionsnummer anzeigt, + jedoch bringt das nicht allzuviel, da im HTTP + Header diese und wesentlich mehr Informationen + zu finden sind. + 84 + 9.6. Benutzerhandbuch + Alias /icons/ "/www/icons/" Alias-Namen fuer bestimmte Verzeichnisse. Diese + werden anschliessend behandelt, als wenn sie + sich unter Document-Root befinden wuerden. + Achtung! Die Einstellungen gelten auch fuer + virtuelle Hosts. + IndexOptions FancyIndexing Als Optionen sind angebbar: + Fancyindexing - ausführliche Verzeichnisliste + (Icons, Name, Größe, Kurzbeschreibung etc.) + SuppressLastModified - keine Angabe der letzten + Modifikationszeit + SuppressSize - keine Angabe der Filegröße + SuppressDescription - keine Angabe einer + Kurzbeschreibung + ScanHTMLTitles - HTML-Titel als Kurzbeschreibung + (Achtung: Rechnerlast!) + ReadmeName README Die Datei README wird bei der Ausgabe des + Verzeichnisbaums angezeigt. + HeaderName HEADER Die Datei HEADER wird am Anfangs-Tag in den + Verzeichnisbaums angezeigt. + IndexIgnore .??* *~ *# RCS CVS *,v *,t Diese Dateien werden nicht durch + FancyIndexing angezeigt. + TypesConfig /etc/httpd/mime.types Enthaelt die Zuweisungen Dateiendung + zu Mime-Typ + BrowserMatch "Mozilla/2" nokeepalive Hiermit wird der Apache angewiesen, auf + bestimmte Browser unterschiedlich zu + reagieren. + 9.6.2. Access Control List File (.htaccess) + Die Datei .htaccess muß in dem zu schützenden Ordner angelegt werden. + AuthUserFile /www/.htpasswd Pfad zu einer Passwortdatei + AuthGroupFile /dev/null + AuthName "Tux ;-)" + AuthType Basic + + require user webmaster + + 85 + 9. Apache + AuthUserFile /www/.htpasswd Pfad zu einer Passwortdatei + AuthGroupFile /www/.htgroup Pfad zu einer Gruppendatei + AuthName "Tux ;-)" + AuthType Basic + + require group logins + + 9.6.3. Gruppendatei (.htgroup) + cat .htgroup --> + logins: benutzer1 benutzer2 ... + 9.6.4. Passwort-Datei (.htpasswd) + htpasswd -c Passwortdatei Benutzername erzeugt eine neue Passwortdatei + und ein Benutzer + htpasswd Passwortdatei Benutzername erzeugt ein Benutzer + 9.6.5. Erstellen eines SSL-Zertifikats + openssl req -new > firma.csr + openssl rsa -in privkey.pem -out firma.key + openssl x509 -in firma.csr -out firma.crt -req -signkey firma.key -days 10000 + cp firma.key /etc/httpd/ssl.key/server.key + cp firma.crt /etc/httpd/ssl.crt/server.crt + cp firma.csr /etc/httpd/ssl.csr/server.csr + chown root privkey.pem + chmod 400 privkey.pem + 9.6.6. LinkIcon (favicon.ico) + Was ist ein favicon.ico? + Immer wenn ein IE5 Benutzer eine Seite seinen Favoriten hinzufügt, sucht der IE5 + nach einem Icon das er anstatt des Standardicons in der Favoritenliste anzeigen kann. + Er sucht zuerst im aktuellen ’Verzeichnis’ und geht dann Ebene für Ebene weiter bis + zum Wurzelverzeichnis. Nehmen wir mal an, das aktuelle Dokument befindet sich un- + ter http://www.bjoernsworld.de/suchmaschinen/ optimieren/aufraeumen.html, dann + wird der IE 5 so nach dem Icon suchen: + http://www.bjoernsworld.de/suchmaschinen/optimieren/favicon.ico + http://www.bjoernsworld.de/suchmaschinen/favicon.ico + http://www.bjoernsworld.de/favicon.ico + 86 + 9.6. Benutzerhandbuch + Er sucht solange, bis er eines gefunden hat oder bei /favicon.ico angekommen ist. + Das gilt nur für den Internet Explorer Version 5.0 und 5.01; Version 5.5 sucht nur noch + nach /favicon.ico selbstständig. Hat er eins gefunden, zeigt er es in der Favoritenliste + an und beim erneuten Besuch der Seite auch links neben der URL in der Adresszeile: + Welches Format hat das favicon.ico? + Das favicon.ico ist ein Icon im Microsoft Windows Icon File Format. Windows Be- + nutzer sehen täglich solche Icons auf ihrem Desktop, in ihrem Startmenü, etc. In der + Favoritenliste wird dieses Icon in der Größe 16x16 Pixel dargestellt, daher sollte man + das Icon auch in dieser Größe erstellen. Die Farbzahl beschränkt sich auf 16 bzw. 256 + Farben, wobei eine als transparente Farbe gilt. + Welchen MIME-Type hat das favicon.ico? + DerkorrekteMIME-Typefürdasfavicon.icoistimage/x-icon.BeimApacheWebserver + kann man das in einer .htaccess mit der Zeile: + AddType image/x-icon .ico + konfigurieren. + Wie erstelle ich ein favicon.ico? + ManbrauchtdafüreinenIconEditorwiemansiezuhaufbeiTucowsoderWinfiles.com + finden kann. Mit z.B. dem Freeware Tool Irfan View ist es ohne Probleme möglich, + eine Gifdatei in das Icon Format zu konvertieren. Macintosh Benutzer können den + GraphicConverter von Thorsten Lemke oder den Iconographer von MscapeSoftware + benutzen um das Icon zu erstellen. Bei favicon.com gibt es einen Online Editor in + Java, mit dem man online sein eigenes favicon.ico erstellen kann. + Wohin muss das favicon.ico? + Wieobenschongesagt,suchtderIE5,vorVersion5.5,zuerstimaktuellen’Verzeichnis’ + und geht dann Ebene um Ebene nach oben, bis er unter http://host/favicon.ico ein + Icon findet oder eben nicht. Man kann entweder in jedes Verzeichnis ein favicon.ico + plazieren, oder im einer jeden HTML Datei auf ein Icon verweisen: + + Wenn der Apache Webserver mit mod_rewrite benutzt wird, kann man mit dieser + Regel: + RewriteEngine on + RewriteRule ^(.+)/favicon\.ico$ /favicon.ico [R=permanent] [L] + 87 + 9. Apache + (z.B. in der .htaccess) alle Anfragen für favicons in Unterverzeichnissen auf das + favicon.ico im Root-Verzeichnis der Domain umleiten. + Wenn mod_rewrite nicht zur Verfügung steht, wohl aber Zugriff auf die Konfigu- + rationsdateien Apache Web Servers, kann man in z.B. der Sektion + folgenden Befehl einfügen: + RedirectMatch Permanent ^(.+)/favicon\.ico$ http://server.de/favicon.ico + Wie kann man diese Funktion abstellen? + Es gibt meines Wissens nach keine Möglichkeit den IE5 dazu zu bringen, nicht nach + dem favicon.ico zu suchen. + Links zum Thema: + http://www.favicon.de/ + http://www.favicon.com/ + http://wdvl.com/Authoring/Design/Images/Favicon/index.html + http://msdn.microsoft.com/workshop/essentials/versions/ICPIE5.asp + http://msdn.microsoft.com/workshop/Author/dhtml/howto/ShortcutIcon.asp + http://www.winfiles.com/apps/98/icons-edit.html + http://web.cip.com.br/flaviovs/sec/favicon/privacy.html + http://web.cip.com.br/flaviovs/sec/favicon/index.html + http://www.bjoernsworld.de/ie/398da66c.24234236@news.bjoern.hoehrmann.de.txt + 88 + 10. MySQL + 10.1. Einleitung + MySQL ist eine Datenbank und phpMyAdmin eine Web-Oberfläche, um MySQL zu + konfigurieren. + 10.2. Kompilieren und Installieren + 10.2.1. Anforderungen + • MySQL-Quellcode 4.x.xx, erhältlich bei http://www.mysql.com/ + • Linux 2.x.xx + • ANSI-C-CompilerundGenerierungswerkzeuge,GNUCCompiler(GCC)abVer- + sion 2.95.4, wesentliche Generierungswerkzeuge wie make + • phpMyAdmin2.x.x(optional),erhältlichbeihttp://www.phpmyadmin.net/,Web- + Server, Apache 1 oder 2 mit PHP 4 oder 5 + 10.2.2. Vorbereitungen + su als root anmelden + mkdir /usr/local/src das Verzeichnis /usr/local/src anlegen, + wenn es noch nicht vorhanden ist + chmod 777 /usr/local/src Verzeichnis-Rechte setzen + exit root abmelden + cp Quelldateien /usr/local/src Quelldateien kopieren + 10.2.3. MySQL + cd /usr/local/src Verzeichnis wechseln + tar xvfz mysql-4.0.21.tar.gz Quelldateien entpacken + cd mysql-4.0.21 in das Quelldatei-Verzeichnis wechseln + ./configure --help Hilfe zu den miöglichen Optionen + ./configure --prefix=/usr/local/mysql/4.0.21 --localstatedir=/var/mysql/data + prefix: Installations-Verzeichnis + localstatedir: Daten-Verzeichnis + make Programm herstellen + 89 + 10. MySQL + su als root anmelden + make install Programm installieren (als root!) + ln -s /usr/local/mysql/4.0.21 /usr/local/mysql/current + Link zu MySQL + cp support-files/mysql.server /etc/init.d/mysql + Startdatei kopieren + chmod 755 /etc/init.d/mysql + Dateirechte einstellen + ln -s /etc/init.d/mysql /etc/rc5.d/S20mysql + Link zum Starten in Runlevel5 anlegen + ln -s /etc/init.d/mysql /etc/rc6.d/K20mysql + Link zum Beenden in Runlevel6 anlegen + ln -s /etc/init.d/mysql /etc/rc0.d/K20mysql + Link zum Beenden in Runlevel0 anlegen + groupadd mysql Gruppe mysql anlegen + useradd -g mysql -d /usr/local/mysql/current -s /bin/false mysql + Benutzer mysql anlengen + mkdir -p /var/mysql/data Daten-Verzeichnis anlegen + ./scripts/mysql_install_db --user=mysql initiale Datenbank installieren + cd /usr/local/mysql/current in das mysql Verzeichnis wechseln + cp share/mysql/my-medium.cnf /var/mysql/data/my.cnf + Konfiguration anlegen + chown -R root:mysql . Benutzer-Gruppen-Rechte setzen + chown -R mysql:mysql /var/mysql/data Rechte für das Daten-Verzeichnis setzen + /etc/init.d/mysql start mysql starten + ./bin/mysqladmin -u root password ’geheim’ + Datenbank-Passwort setzen + Achtung ! das Passwort steht danach in + der ~/.bash_history + 10.2.4. MySQL Testen + ./bin/mysql -D mysql -u root -p Client starten und zugriff auf die + Steuerungs-Datenbank nehmen + mysql> show tables; Tabelle anzeigen + +-----------------+ + | Tables_in_mysql | + +-----------------+ + | columns_priv | + | db | + | func | + | host | + | tables_priv | + | user | + 90 + 10.2. Kompilieren und Installieren + +-----------------+ + 6 rows in set (0.00 sec) + mysql> exit; Client beenden + Bye + exit root abmelden + 10.2.5. phpMyAdmin + su als root anmelden + cd /srv/www/htdocs in das Apache1.3-Verzeichnis wechseln + cd /srv/www2/htdocs in das Apache2-Verzeichnis wechseln + tar xvfj /usr/local/src/phpMyAdmin-2.5.7-pl1.tar.bz2 + Dateien entpacken + ln -s phpMyAdmin-2.5.7-pl1 phpMyAdmin Link zu phpMyAdmin anlegen + vi phpMyAdmin/config.inc.php phpMyAdmin anpassen + $cfg[’PmaAbsoluteUri’] = ’http://localhost/phpMyAdmin/’; + URL zu Apache1.3 + $cfg[’PmaAbsoluteUri’] = ’http://localhost:81/phpMyAdmin/’; + URL zu Apache2 + $cfg[’Servers’][$i][’user’] = ’root’; // MySQL user + $cfg[’Servers’][$i][’password’] = ’geheim’; // MySQL password + vi phpMyAdmin/.htaccess htaccess anlegen + AuthType Basic + AuthName "PhpMyAdmin" + AuthUserFile /srv/www/htdocs/phpMyAdmin/.htpasswd + Apache1.3 + AuthUserFile /srv/www2/htdocs/phpMyAdmin/.htpasswd + Apache2 + AuthGroupFile /dev/null + + require valid-user + + cd /usr/local/apache/current/bin Verzeichnis wechseln, Apache1.3 + cd /usr/local/apache2/current/bin Verzeichnis wechseln, Apache2 + ./htpasswd --help Hilfe zu htpasswd + ./htpasswd -c /srv/www/htdocs/phpMyAdmin/.htpasswd root + Apache1.3 + ./htpasswd -c /srv/www2/htdocs/phpMyAdmin/.htpasswd root + Apache2 + vi /etc/apache/httpd.conf Apache1.3 anpassen + 91 + 10. MySQL + vi /etc/apache2/httpd.conf Apache2 anpassen + + Options Indexes FollowSymLinks MultiViews + AllowOverride AuthConfig None -> AuthConfig + Order allow,deny + Allow from all + + /etc/init.d/apache graceful Einstellungen neu einlesen, Apache1.3 + /etc/init.d/apache2 graceful Einstellungen neu einlesen, Apache2 + exit root abmelden + 92 + 11. PHP + 11.1. Einleitung + Wer hat PHP erfunden ? Der Kanada-Däne Rasmus Lerdorf ! + Was heist PHP ? Personal Home Page Tools + Was ist PHP ? Eine einfache Skriptsprache. Sie wird direkt + in HTML-Seiten eingefügt und vom Webserver + interpretiert. + Wie funktioniert PHP ? Der Browser schickt einen HTTP-Request an den + Webserver. Der Server reagiert, liest die + PHP-Seite ein, und führt die Skripte aus und + schickt erst das fertig zusammengesetzte + Dokument zurück an den Browser ! + LAMP - Linux-Apache-MySQL-PHP + WAMP - Windows-Apache-MySQL-PHP + 11.2. Kompilieren und Installieren + 11.2.1. Anforderungen + • PHP 4 oder 5, erhältlich bei http://www.php.net/ + • Linux ab 2.4.xx(z.B.Debian Sarge 3.1) + • ANSI-C-CompilerundGenerierungswerkzeuge,GNUCCompiler(GCC)abVer- + sion 2.7.2, wesentliche Generierungswerkzeuge wie make + • Webserver z.B. Apache 1.3 oder 2 + • GD-Library ab 2.x.x, erhältlich bei http://www.boutell.com/gd/, Freetype ab + 2.x.x, erhältlich bei http://www.freetype.org/,Zlib ab 1.x.x, erhältlichbei http://www.gzip.org/zlib/, + IJG JPEG, erhältlich bei http://www.ijg.org/ + 11.2.2. Vorbereitungen + su als root anmelden + mkdir /usr/local/src das Verzeichnis /usr/local/src anlegen, + wenn es noch nicht vorhanden ist + 93 + 11. PHP + chmod 777 /usr/local/src Verzeichnis-Rechte setzen + exit root abmelden + cp Quelldateien /usr/local/src Quelldateien kopieren + 11.2.3. Libraries für Zusatzfunktionen + Freetype + cd /usr/local/src Verzeichnis wechseln + tar xvfj freetype-2.1.9.tar.bz2 Quelldateien entpacken + cd freetype-2.1.9 in das Quelldatei-Verzeichnis wechseln + ./configure Codebaum konfigurieren + make Programm herstellen + su als root anmelden + make install Programm installieren + exit root abmelden + Zlib + cd /usr/local/src Verzeichnis wechseln + tar xvfz zlib-1.2.1.tar.gz Quelldateien entpacken + cd zlib-1.2.1 in das Quelldatei-Verzeichnis wechseln + ./configure Codebaum konfigurieren + make Programm herstellen + su als root anmelden + make install Programm installieren + exit root abmelden + IJG JPEG + cd /usr/local/src Verzeichnis wechseln + tar xvfz jpegsrc.v6b.tar.gz Quelldateien entpacken + cd jpeg-6b in das Quelldatei-Verzeichnis wechseln + ./configure --help Hilfe zu den möglichen Optionen + ./configure --enable-shared + --enable-static + --prefix=/usr/local + make Programm herstellen + make test Programm testen + su als root anmelden + make install Programm installieren + exit root abmelden + GD-Library + cd /usr/local/src Verzeichnis wechseln + 94 + 11.2. Kompilieren und Installieren + tar xvfz gd-2.0.28.tar.gz Quelldateien entpacken + cd gd-2.0.28 in das Quelldatei-Verzeichnis wechseln + ./configure Codebaum konfigurieren + make Programm herstellen + su als root anmelden + make install Programm installieren + exit root abmelden + 11.2.4. PHP + cd /usr/local/src Verzeichnis wechseln + tar xvfj php-5.0.1.tar.bz2 Quelldateien entpacken + cd php-5.0.1 in das Quelldatei-Verzeichnis wechseln + ./configure --help Hilfe zu den möglichen Optionen + ./configure --with-apxs=/usr/local/apache/current/bin/apxs Apache 1.3 oder + --with-apxs2=/usr/local/apache2/current/bin/apxs Apache 2 + --with-mysql=/usr/local/mysql/current + --with-zlib + --with-ftp + --with-gd + --with-jpeg-dir=/usr/local/lib + --enable-versioning + --enable-track-vars=yes + --enable-url-includes + --enable-sysvshm=yes + --enable-sysvsem=yes + --with-config-file-path=/etc + make Programm herstellen + su als root anmelden + make install Programm installieren + cp php.ini-dist /etc/php.ini PHP-Konfiguration kopieren + vi /etc/apache/httpd.conf Apache1.3 anpassen + vi /etc/apache2/httpd.conf Apache2 anpassen + LoadModule php5_module modules/libphp5.so + Apache2 + LoadModule php5_module libexec/libphp5.so + Apache1.3 + AddModule mod_php5.c Apache1.3 + DirectoryIndex index.html index.htm index.html.var index.php index.phtml + AddType application/x-httpd-php .php + AddType application/x-httpd-php-source .phps + exit root abmelden + 95 + 11. PHP + 11.3. Referenz + 11.3.1. Grundlagen + oder %> Ende des PHP-Abschnitts + ; Zeilenende + // Kommentartext Einzeiliger Kommentartext + /* Kommentartext Einleitung, mehrzeiliger Kommentartext + Kommentartext */ Abschluss, mehrzeiliger Kommentartext + $ Variablen anfang + echo "Text" ; Text ausgeben + echo "Text $Variable Text" ; Variable ausgeben + echo "Text".$Variable."Text" ; . Verketten von Zeichenfolgen + echo "Text\n" ; \n Erzeugt eine neue Zeile + echo "Text\r" ; \r Erzeugt einen neuen Absatz (return) + echo "Text\tText" ; \t Erzeugt ein Tabulatorschritt + echo "\"Text\"" ; \" Gänsefüßchen ausgeben + echo "\’Text\’" ; \’ Einfache Anführungszeichen ausgeben + echo "\$Text\$" ; \$ Dollar-Zeichen ausgeben + echo "\\Text\\" ; \\ Backslash ausgeben + $Array[Indexwert]="Wert" ; Wert einer Array-Variable zuweisen (Langform) + $Array=array("W0","W1") ; Werte einer Array-Variable zuweisen (Kurzform) + echo $Array[Indexwert] ; Wert einer Array-Variable ausgeben + $Array[Index-Ersatz]="Wert" ; Wert eines Assoziativen-Arrays zuweisen (Langf.) + $Array=array("I-E0"=>"W0","I-E1"=>"W1") ; + Werte eines Assoziativen-Arrays zuweisen(Kurzf.) + echo $Array[Index-Ersatz] ; Wert eines Assoziativen-Arrays ausgeben + $a=$b+$c ; Addition von $b und $c gleich $a + $a=$b-$c ; Subtraktion von $b minus $c gleich $a + $a=$b*$c ; Multiplikation von $b mal $c gleich $a + $a=$b/$c ; Division $b geteilt durch $c gleich $a + $a++ ; $a=$a+1 ; + $a-- ; $a=$a-1 ; + $a=3.1415 ; . Dezimaltrenner + 11.3.2. Funktionen + phpinfo() ; PHP-Informationen ausgeben + $Wochentag=date("w") ; Wochentag ermitteln 0-So bis 6-Sa + $Monatszahl=date("m") ; Monatszahl ermitteln + $Anzahl=count($Array) ; Elemet-Anzahl eines Arrays ermitteln + $Wert=round($Wert,Nachkommastellen) ; Rundet den Wert mit Nachkommastellen + $Wert=sprintf("%01.2f",$Wert) ; Rundet den Wert auf 2 :Nachkommastellen + 96 + 12. Squid + 12.1. Proxy + Squid = Proxy-Cache = Stellvertreter-Zwischenspeicher + 12.2. Einfacher Cache + *---------------* *------------* | *---------* | *------------* + | lokaler Cache |<--->| WWW-Client |<--->| Intenet |<--->| WWW-Server | + *---------------* *------------* | *---------* | *------------* + Die einfachste form des Caches | | + 12.3. Proxy Cache + *------------* + | WWW-Client |<-+ | | + *------------* | | | + | | | + *------------* | *-------------* | *---------* | *------------* + | WWW-Client |<-+->| Proxy Cache |<--->| Intenet |<--->| WWW-Server | + *------------* | *-------------* | *---------* | *------------* + | | | + *------------* | | | + | WWW-Client |<-+ | | + *------------* + 12.4. Aufgaben + • Zwischenspeichern von Internetseitten -> Beschleunigter Zugriff auf Internetin- + halte + • Abkoppelung vom direkten Zugriff auf das Internet -> Erhöte Sicherheit im + lokalem Netz + • Filterung von Interrnetseiten + • Protokollierung des Internetverkehrs + 97 + 12. Squid + 12.5. Eigenschaften + • Größe des Cache kann frei definiert werden + • Aufbau von Cache-Hierarchien + • Eigener DNS-Cache + • Authentifizierung über zusätzliche Module möglich + • Für Win, OS/2, Linux, BSD, Solaris verfügbar + • Ausfilterung und Anonymisierung der Anfragen + • Sehr flexible Zugriffskontrolle + • Filterung über externe Programme (Squid-Guard) + 12.6. Protokolle + 12.6.1. Client-Kommunikation + • Hyper Text Transfer Protocol (HTTP) + • File Transfer Protocol (FTP) + • Gopher + • Wide Area Information Service (WAIS) + • Secure Socket Layer (SSL) + 12.6.2. Kommunikation zwischen Proxy-Cache-Servern + • HyperText Transfer Protocol (HTTP) + • Internet Cache Protocol (ICP(3130)) + • Cache Digests (Index von anderen Caches abfragen) + • Simple Network Management Protocol (SNMP) + • HyperText Caching Protocol (HTCP(4837)) + • Web Cache Coordination Protocol (WCCP) + 98 + 12.7. Systemvoraussetzungen + 12.7. Systemvoraussetzungen + • Langsamme CPU + • Viel RAM + • Schnelle Festplatte(n) + • Große Festplatte(n) + 12.8. SuSE Linux + rcsquid start Squid starten + rcsquid stop Squid stoppen + rcsquid restart Squid stoppen und dann starten + rcsquid status Squid info + 12.9. Automatische Starten von Squit + cd /etc/rc.d/rc5.d/ + ln -s ../squid S22squid Link zum automatischen Starten in Runlevel 5 + anlegen. + ln -s ../squid K02squid Link zum automatischen Beenden in Runlevel 5 + anlegen. + 12.10. Squiddateien + /etc/squid.conf Squid Konfigurationsdatei + /usr/share/squid/errors/ Fehlermeldungen die der Squid ausgibt + /var/cache/squid/ Squid-Cache + /var/log/squid/access.log Log-Datei mit allen Zugriffen + /var/log/squid/cache.log Cache-Aktivitaeten + 12.11. squid.conf + http_port: Proxy-Portnummer + # http_port 3128 + http_port 8080 + cache_mem: Hauptspeicherverbrauch (x3) + # cache_mem 8 MB + maximum_object_size: maximale groeße einer Datei die der Proxy speichert + # maximum_object_size 4096 KB + 99 + 12. Squid + minimum_object_size: minimale groeße einer Datei die der Proxy speichert + # minimum_object_size 0 KB + cache_dir: Verzeichnisname GroeßeMByte Ebene1 Ebene2 + # cache_dir ufs /var/cache/squid 100 16 256 + cache_dir ufs /var/cache/squid 400 16 256 + cache_access_log: Log-Datei mit allen Zugriffen + # cache_access_log /var/log/squid/access.log + cache_log: Log-Datei fuer alle Cache-Aktivitaeten + # cache_log /var/log/squid/cache.log + debug_options: ALL,1-normal 9-maximal + # debug_options ALL,1 + log_fqdn: Bei on wird der Name und bei off wird die IP-Nummer + in der access.log speichert + # log_fqdn off + log_fqdn off + client_netmask: Zum Anonymisieren + 255.255.255.255 volle IP-Nr., + 255.255.255.0 ersten 3 Stellen + # client_netmask 255.255.255.255 + ftp_user: Anonymer FTP-Name + # ftp_user Squid@ + ftp_user Anonymous@ + dns_children: maximale Anzahl der DNS Prozesse + # dns_children 5 + dns_nameservers: Eintrag fuer DNS-Server + #dns_nameservers 194.25.2.129 192.168.6.66 + reference_age: maximale Alter der Cachefiles (0.0 week/days/months/hours) + # reference_age 1 year + negative_ttl: gibt an wie lange eine negative DNS Aufloesung gueltig ist + # negative_ttl 5 minutes + http_access: Zugriffsrechte fuer den Cache + 100 + 12.11. squid.conf + # acl - aclname acltype string - definiert eine Zuganskontrolle und Sperrliste + # src - Client IP-Adresse/Adressbereich + # dst - Zielserver IP-Adresse/Adressbereich + # srcdomain - Client (Domain-)Name + # dstdomain - Zielserver (Domain-)Name + # srcdom_regex - Cient (Domain-)Name als RegEx + # dstdom_regex - Zielserver (Domain-)Name als RegEx + # port - Port oder -bereich für Verbindungen + # proto - Protokoll (z.B. HTTP, FTP ...) für die Verbindung + # method - Methode der Verbindung (z.B. GET, POST ...) + # proxy_auth - Benutzernamen bei Authentifizierung + # urlpath_regex Teil einer URL als RegEx + acl all src 0.0.0.0/0.0.0.0 + acl rotten dstdomain www.rotten.com + http_access deny rotten + http_access allow all + cache_mgr: E-Mail bei einen Fehler an: E-Mail oder Alias(/etc/aliases) + # cache_mgr webmaster + cache_effective_user: BenutzerName/ID + # cache_effective_user squid + cache_effective_group: GruppenName/ID + # cache_effective_group nogroup + visible_hostname: ServerName bei Fehlermeldungen + # none + visible_hostname proxy.gelbdmz.loc + logfile_rotate: Zeit der Logdateien in Wochen + # logfile_rotate 0 + append_domain: Kein Punkt in der URL ? Dann diesen Domainnamen anhaengen + # none + append_domain .meak.de + error_directory: Verzeichnis zu den Fehlermeldungen die der Squid ausgibt + #error_directory /usr/share/squid/errors + 101 + Teil IV. + Programmieren + 103 + 13. Bash + 13.1. Einleitung + Was heist BASH ? Bourne-Again SHell + Was ist die BASH ? Standard-Shell der meisten Linux-Distributionen + Eine fast komplette Programmiersprache + BASH-Programme werden auch SScripte"(Protokolle) genannt ! + 13.2. Referenz + #!/bin/bash Pfad zur Shell die das Programm ausführen soll + chmod u+x Script Macht das Script ausführbar + bash Script oder sh Script so gehts auch + # Kommentar bis Zeilenende + : Null-Funktion. Ein Befehl, der nichts tut. + (( oder [ + )) oder ] + echo Text Gibt den Text aus + echo "Text" Gibt den Text aus + echo Text Text Gibt den Text mit nur einer Leerstelle aus + echo "Text Text" Gibt den Text mit allen Leerstellen aus + echo Text\ \ \ Text Gibt den Text mit allen Leerstellen aus + Variable=7 Speichert 7 in der Variable + Variable=z Speichert z in der Variable + echo $Variable Gibt den Inhalt der Variable aus + echo ${Variable} Gibt den Inhalt der Variable aus + Wert=$[$Wert+1] Wert=Wert+1 + Wert=$(($Wert+1)) Wert=Wert+1 + : $[Wert+=1] Wert=Wert+1 + : $((Wert+=1)) Wert=Wert+1 + 105 + 13. Bash + 13.3. Steuer und Sonderzeichen der Bash + Zeichen Funktion + ------- -------- + Leerzeichen (space) Trenner zwischen Programm-Parametern + Tabulator (tab) Trenner zwischen Programm-Parametern + Return (newline) Befehlseingabe + \ (backslash) Escape-Zeichen + | (pipe) Verkettung der Ein-/Ausgabe mehrerer Programme + & (ampersand) Programm als Hintergrund-Prozess starten, + Ein-/Ausgabeumleitung + ; (semikolon) Trenner zwischen zwei Programmaufrufen + ( ) (braces) Gruppierung, Berechnung + 106 + 14. git + 14.1. Dokumentation + git help status Manpage von git status anzeigen + git status --help Manpage von git status anzeigen + man git-status Manpage von git status anzeigen + 14.2. Konfiguration + git config --global ... Speichern im Homeverzeichnis .gitconfig + git config --system ... /etc/gitconfig konfigurieren unueblich + git config ... Arbeitsverzeichnis .git/config + git config user.name "Max Mustermann" Name konfigurieren + git config user.email "max.mustermann@examle.com" + E-Mail konfigurieren + git config --unset user.name Name löschen + git config alias.st status Alias status -> st herstellen + [alias] nützliche Abkürzungen + st = status + ci = commit + br = branch + co = checkout + df = diff + he = help + cl = clone + git config -e startet Editor auf der Konfiguration + git config color.ui auto Farben einstellen + git config core.eol lf,crlf oder native Zeilenende lf-Linux crlf-Windows + native-System-Default + git config core.safecrlf Verbietet Commit bei vermischung + git config core.autocrlf input sichere Einstellung bei älteren + Git-Versionen unter Windows + git config il8n.commitEncoding ISO-8859-1 + Zeichenkodierung ISO-8859-1 + Standart UTF-8 + git config core.pager ’env LESSCHARSET=iso8859 less’ + Zeichenkodierung für den Pager + git config core.editor vim Vim als Editor einstellen + 107 + 14. git + git config core.browser ... Browser einstellen + git config help.autocorrect n beim Vertippen ähnliches Subkommando + ausführen, n Zentelsekunden bis zum + Ausführen, -1 für sofort aus, 0 zeigt + nur Möglichkeiten an + git config --list alle Einstellungen anzeigen + 14.3. Konfigurationen über Umgebungsvariablen + GIT_EDITOR Editor den Git verwendet + sonst greift die Variable EDITOR + GIT_PAGER der wert cat schaltet den Pager aus + GIT_AUTHOR_EMAIL E-Mail für den Autor des Commits + GIT_COMMITTER_EMAIL E-Mail für das Commiter-Feld des Commits + GIT_AUTHOR_NAME Name für den Autor des Commits + GIT_COMMITTER_NAME Name für das Commiter-Feld des Commits + GIT_DIR Verzeichnis, in dem sich das Git-Repository befindet + macht nur sinn bei einem Git-Repository + 14.4. Der Index + Der Inhalt von Dateinen liegt für Git auf drei Ebenen, den Working Tree, dem Index + und dem Repository. + clone/fetch/pull + +----------+ --------------------------------------------------> + + |Repository| | + --bare init |(origin) | push | + ----------> +----------+ <--------------------------------------- + | + | | + status add status commit/--amend | | + +------------+ ---------> +--------------+ ---------------------> +----------+ + |Working Tree| diff |Index | diff --staged/--cached |Repository| + | | <--------> |(Staging Area)| <--------------------> | | + +------------+ <--------- +--------------+ <--------------------- +----------+ + | reset HEAD reset HEAD -- | | + + -------------------------------------------------> + | + checkout -- | + init | + ---------------------------------------------------------------------------> + + git diff zeigt den Unterschied zwischen Working Tree + und Index an + git diff --color-words Änderugen Fablich anzeigen + 108 + 14.5. Repository + grün-hinzugekommen rot-entfernt + git diff --word-diff --no-color ohne Frabe mit Zeichen + git diff --staged zeigt den Unterschied zwischen + Index(Staging Area) und Repository an + git diff --cached zeigt den Unterschied zwischen + Index(Staging Area) und Repository an + 14.5. Repository + git init Beispiel Neues Repository herstellen, legt Verzeichnis Beispiel + an wenn nicht schon vorhanden + git status zeigt den aktuellen Zustand an + git log die Commit Historie anzeigen + 14.6. Commit + git add Datei Datei zum Index hinzufügen + git add -u oder --update Alle Veränderungen in den Index übertragen + git reset HEAD Datei aus der Staging Area zu entfernen + git commit -m "Erste Version" Index zum Working Tree hinzufügen + git add forgotten_file Datei zum Index hinzufügen + git commit --amend den letzten Commit ändern + git show Commit einsehen + git log Commits anzeigen + 14.7. Dateien entfernen + git rm Datei Datei in deinem Arbeitsverzeichnis behalten, + aber aus der Staging Area nehmen + git rm -f Datei Datei aus dem Arbeitsverzeichis und Index löschen + git reset HEAD Datei Datei in Deinem Arbeitsverzeichnis behalten, + aber aus der Staging Area nehmen + 14.8. Dateien verschieben + git mv Datei_alt Datei_neu Datei verschieben + 14.9. Änderung an einer Datei rückgängig machen + git checkout -- Datei Datei zurückversetzen auf den letzten Commit oder Klone + 109 + 14. git + 14.10. Dateien ignorieren + Dateien im Projektverzeichnis die nicht versioniert im Repository sein sollen + kommen in die Datei .gitignore. + .gitignore + # Zeile mit # oder leere wird ignoriert + *.o ignoriert alle Dateien die mit .o enden + !lib.o wird nicht ignoriert + /TODO ignoriert den Ordner TODO + build/ ignoriert alle Dateien im build Verzeichnis + doc/*.txt ignoriert alle .txt Dateien im doc Verzeichnis + doc/**/*.txt ignoriert alle .txt Dateien unterhalb des doc + Verzeichnis + 14.11. Mit externen Repositorys arbeiten + git clone git://git.kernel.org/pub/scm/git/git.git + git Repository herunterladen, Port 9418 + git clone file:///home/git/project.git Repository herunterladen, legt harte + Links an wenn möglich + git clone ssh://user@server/project.git ssh Repository herunterladen, Port 22 + git clone http(s)://example.com/gitproject.git + http(s) Repository herunterladen, + Port 80(443) + git remote -v zeigt an, welche externen Server für + das Projekt lokal konfiguriert sind + git remote add Name URL Remote Repository hinzufügen + git remote add origin ssh://git@sonne:/srv/git/linux.git + Beispiel + git fetch Name Informationen aus dem Remote Repository + herunterladen + git pull Name entspricht git fetch git merge + git checkout -b Branch origin/Branch erstellt einen lokalen bearbeitbaren + Branch + git push origin master Änderungen in ein Remote Repository + hochladen + git push Remote Branch Brauch auf Remote hochladen + git push Remote :Branch löschen entfernter Branches + git remote show Name zeigt die URL für das Remote + Repository, die Information welche + Branches verfolgt werden und welcher + Branch aus dem Remote Repository mit + dem eigenen Master zusammengeführt + wird, wenn Du git pull ausführst + 110 + 14.12. Tags + git remote rename Name_alt Name_neu Name des Remote Repository lokal ändern + git remote rm Name Remote Repository entfernen + 14.12. Tags + git tag vorhandene Tags anzeigen + git tag -a v1.4 -m ’my version 1.4’ + einen kommentierten Tag anlegen + git tag -s v1.5 -m ’my signed 1.5 tag’ + einen kommentierten und signierten Tag anlegen + git tag -v v1.4.2.1 einen signierten Tag zu verifizieren + git tag -a v1.2 -m ’version 1.2’ Checksumme + im Nachhinein taggen, Checksumme des Commits + oder einen Teil davon angeben + git log --pretty=oneline Commit Historie mit Checksumme + git push origin v1.5 Tag veröffentlichen + git push origin --tags Tags veröffentlichen + git tag -d v1.5 Tag löschen + git push origin :refs/tags/v1.5 veröffentlichen Tag löschen + 14.13. Branch + Wasist ein Branch? Ein Zeiger, der auf den gleichen Commit zeigt, auf dem Du gerade + arbeitest. + git branch testing erstellt einen neuen Branch mit dem Namen testing + git checkout testing um zu einem anderen Branch zu wechseln + git branch -b testing erstellt und wechselt zu dem Branch + git merge testing führt testing mit dem Master-Branch zusammen + git branch -d testing entfernt testing + git merge master Deinem Zweig mit dem master kombinieren + git rebase master alle Änderungen auf einem Branch, auf einen anderen + Branch erneut anwenden (nur mit unveröffendlichen + Branch machen) + git mergetool grafischen Tool zur Bereinigung von Merge-Konflikten + git branch Liste aller Branches anzeigen + git branch -v für jeden Branch den letzten Commit anzeigen lassen + git branch --merged Liste gemergter Branches + git branch --no-merged Liste nicht gemergter Branches + 14.14. Git Aliase + git config --global alias.co checkout co anstelle von checkout schreiben + 111 + 14. git + git config --global alias.br branch br anstelle von branch schreiben + git config --global alias.ci commit ci anstelle von commit schreiben + git config --global alias.st status st anstelle von status schreiben + 14.15. Git auf einen Server bekommen + git clone --bare my_project my_project.git + Projekt zu Projekt.git klonen + scp -r my_project.git user@git.example.com:/opt/git + Projekt per ssh hochladen + git clone user@git.example.com:/opt/git/my_project.git + Projekt per ssh zum Arbeiten herunterladen + ssh user@git.example.com auf dem Server anmelden + cd /opt/git/my_project.git Projektverzeichnis betreten + git init --bare --shared Gruppenschreibrechte zu einem Repository + hinzufügen + 14.16. Git auf dem SSH-Server einrichten + Einrichtung des SSH-Zugangs auf dem Server mit der Authorized-Keys-Methode zur + Authentifizierung der Benutzer. + sudo adduser git Benutzer git anlegen + su git Rechte von User git erlagen + cd ins Home ~ Verzeichnis des Users wechseln + mkdir .ssh Verzeichnis .ssh anlegen + - öffentliche SSH-Schlüssel der Entwickler zu der Authorized-Keys-Datei des Benut- + zers git hinzuzufügen. + cat /tmp/id_rsa.user1.pub > ~/.ssh/authorized_keys + authorized_keys erstellen und User1 einfügen + cat /tmp/id_rsa.user2.pub >> ~/.ssh/authorized_keys + User2 einfügen + cat /tmp/id_rsa.user3.pub >> ~/.ssh/authorized_keys + User3 einfügen + - Leeren Ordner anlegen und mit der Option –bare ein Repository ohne ein Arbeits- + verzeichnis erzeugen. + cd /srv in den Ordner srv wechseln + mkdir git git Ordner anlegen + cd git in den Ordner git wechseln + mkdir project.git project.git Ordner anlegen + cd project.git in den Ordner project.git wechseln + git --bare init Repository ohne ein Arbeitsverzeichnis erzeugen + 112 + 14.17. Öffentlicher Webserver-Zugang + - Die erste Version des Projektes in das Repository hochladen + cd project in das Projekt wechseln + git init Projekt Repository herstellen + git add . alle Dateien um Index hinzufügen + git commit -m ’initial commit’ Index zum Working Tree hinzufügen + git remote add origin git@gitserver:/srv/git/project.git + Server hinzufügen + git push origin master Commits und Referenzen auf den Server hochladen + - Repository klonen und Änderungen hochladen + git clone git@gitserver:/srv/git/project.git Repository klonen + cd project ins Projekt wechseln + vim README Projekt bearbeiten + git commit -am ’fix for the README file’ Änderung speichern + git push origin master Änderung hochladen + - Git-Zugang absichen + /etc/passwd + git:x:1000:1000::/home/git:/bin/sh /bin/sh auf + git:x:1000:1000::/home/git:/usr/bin/git-shell + /usr/bin/git-shell ändern + 14.17. Öffentlicher Webserver-Zugang + AnonymenLese-ZugriffzuDeinemProjektermöglichen,pergitclonehttp://git.gitserver.loc/project.git. + - Hook aktivieren + cd project.git in das Projekt wechseln + mv hooks/post-update.sample hooks/post-update post-update umbenennen + chmod a+x hooks/post-update post-update ausfürbar machen + - VirtualHost Eintrag zur Apache-Konfiguration hinzufügen + + ServerName git.gitserver.loc + ServerAdmin webmaster@localhost + DocumentRoot /srv/git + # + # Order allow, deny + # allow from all + # + + Options Indexes FollowSymLinks + AllowOverride None + 113 + 14. git + Require all granted + + ErrorLog ${APACHE_LOG_DIR}/git.gitserver.loc-error.log + CustomLog ${APACHE_LOG_DIR}/git.gitserver.loc-access.log combined + + Nachdemnächstenpushkannper"gitclonehttp://git.gitserver.loc/project.git"das + Projekt anonym herunter geladen werden. + 14.18. Grundbegriffe + Versionkontrollsystem (Version Control System, VCS) + Eine Versionsverwaltung ist ein System, das zur Erfassung von Änderungen + an Dokumenten oder Dateien verwendet wird. + Zum Beispiel: + Zentrale Systeme - zentraler Server + RCS-Revision Control System, CVS-Concurrent Versions System, + SVN-Subversion + Verteilte Systeme - Kein zentraler Server + Bazaar, Darcs, Fossil, Git, GNU arch, Mercurial, Monotone + Repository + Nutzt Git als Dantenbank in der die verschiedenen Zustände jeder Datei + eines Projektes über die Zeit hinweg ablegt. Jede Änderrung wird als + Commit verpackt und abgespeichert. + Working Tree + Das Arbeitsverzeichnis von Git, oft auch Working Directory genannt. + Commit + Das speichern der veränderten Dateien im Repository. + HEAD + Eine symbolische Referenz auf den neusten Commit im aktuellen Branch. + SHA-1 + Der Secure Hash Algorithm erstellt eine eindeutige, 160 Bit lange + Prüfsumme. Alle Commits in Git werden nach ihrer SHA-1-Summe benannt, + die aus dem Inhalt und den Metadaten des Commits errechnet wird. + Objektmodell + Ein Git-Repository lässt sich als Graph von Commits modellieren, der + durch Git-Kommandos manipuliert wird. + Index + Der Index ist eine Zwischenstufe zwischen Working Tree und Repository, + in der Sie einen Commit vorbereiten. Enthält also die Dateien für den + nästen Commit. + Clone + Wenn Sie sich ein Git-Repository aus dem Internet herrunterladen. + Enthält die gesamte Versionsgeschichte einschließlich aller Commits. + 114 + 14.18. Grundbegriffe + Branch + Eine Abzweigung in der Entwicklung. Zum Beispiel für neue Featurs, + Release vorbereitung oder alte Versionen mit Bugfixes zu versorgen. + master + Beim Initialisieren eines neuen Repositorys wird der Branch master + erstellt analog trunk in anderen Systemen. + Tag + Tags sind symbolische Namen für schwer zu merkende SHA-1-Summen. + Wichtige Commits, wie zum Beispiel Releases v1.2.3. oder können + zusätzliche Metadateien wie Autor, Beschreibung und GPG-Signatur + enthalten. + 115 + 15. C/C++ + 15.1. Befehle und Grundelemente + gcc Datei.c Programm übersetzen -> a.out + g++ Datei.cpp Programm übersetzen -> a.out (C++) + gcc -c Datei.c Objektdatei herstellen -> Datei.o + g++ -c Datei.cpp Objektdatei herstellen -> Datei.o (C++) + gcc -o Programmname Datei1.o Datei2.o Datei1.o+Datei2.o -> Programmname + g++ -o Programmname Datei1.o Datei2.o Datei1.o+Datei2.o -> Programmname (C++) + gcc -o Programmname Datei.c Programm übersetzen -> Programmname + g++ -o Programmname Datei.cpp Programm übersetzen -> Programmname(C++) + Programmname Programm starten + configure Makefile konfigurieren + make Programm übersetzen, + wenn Makefile vorhanden + make install Programm installieren + /* Kommentar einleiten + */ Kommentar abschließen + // Kommentar einleiten bis zum Zeilenende (C++) + { Blockbeginn + } Blockende + , mehrere Variablen vom gleichen Typ deklarieren z.B. int a, b, c; + ; Funktions-,Operations- und Zeilen-ende (leere Anweisung) + #include Datei aus /usr/include/ bei UNIX einlesen + #include"Datei" Datei aus dem aktuellen Verzeichnis einlesen + char Variablentyp character - Zeichen + int Variablentyp integer - ganzzahlig mit Vorzeichen + main() Hauptfunktion + return() Wert aus einer Funktion zurückliefern + 15.2. Steuersequenzen für ANSI-Bildschirme - + Innerhalb von Texten + \a BEL bell Alarm/Piepton + 117 + 15. C/C++ + \b BS backspace Rücksetzen um ein Zeichen + \f FF formfeed Seitenvorschub + \n NL new line Zeilenvorschub + \r CR carriage return Wagenrücklauf + \t HT horizontal tabulation horizontaler Tabulator + \v VT vertical tabulation vertikaler Tabulator + \0 NULL null kein Zeichen Textende + \? ? Fragezeichen (kein Dreierzeichen) + \’ ’ Hochkomma + \" " Anführungszeichen + \\ \ umgekehrter Schrägstrich + \ddd Zeichencode in oktaler Notation + \xdd Zeichencode in hexadezimaler Notation + \e[1;1H Cursor auf x1 und y1 setzen + \e[1;1f -> \e[1;1H + \e[5A Cursor 5 Zeilen aufwärts bewegen + \e[5B Cursor 5 Zeilen abwärts bewegen + \e[5C Cursor 5 Spalten vorwärts(rechts) bewegen + \e[5D Cursor 5 Spalten rückwärts(links) bewegen + \e[2J Bildschirm löschen + \e[6n Ausgabe der Cursor position z.B. ^[[32;6R + \e[s merkt die aktuelle Cursor Position + \e[u Cursor auf gemerkte Position setzen + \e[Schrift;Vordergrund;Hintergrundmerkmale setzt Bildschirmmerkmale + Schrift Vordergrund Hintergrund + 0 normal 30 schwarz 40 + 1 grell 31 rot 41 + 4 unterstrichen 32 grün 42 + 5 blinken 33 gelb 43 braun + 7 reverse 34 blau 44 + 35 magenta 45 + 36 cyan 46 + 37 weiß 47 grau + 15.3. stdio.h -> Standard Ein- und Ausgabe + c=getchar(); Eingabe eines Zeichens, ohne Wagenrücklauf + putchar(’a’); Ausgabe eines Zeichens, ohne Wagenrücklauf + puts("Text"); Zeichenkette ausgeben, mit Wagenrücklauf + fputs("Text",stdount); Zeichenkette ausgeben, ohne Wagenrücklauf + fputs("Text",stderr); Zeichenkette ausgeben, ohne Wagenrücklauf + printf("Text %d",Zahl); Zeichenkette formatiert ausgeben, ohne Wagenrücklauf + % F Z1 . Z2 L U + | | | | | | + Umwandlungszeichen: %d-dezimal %u-unsigned + 118 + 15.4. ctype.h + | | | | | | %o-oktal %s-Text %c-Zeichen + | | | | | | %f-Flieskomma %e-Expotential + | | | | | | %x-hexadezimal %p-pointer + | | | | | +-- Long-Ausgabe: notwendig für long int + | | | | +----- Nachkommastellen: z.B 3 für drei stellen + | | | +------- Trenzeichen, falls Z1 und Z2 + | | +---------- Größe des Ausgabefensters: z.B 7 für sieben stellen + | +------------ Ausrichtung: ohne Angabe rechtsbündig, + | mit Minuszeichen linksbündig + +-------------- Fluchtsymbol + scanf("%c",&text); Zeichen in &text einlesen + % * Z L U + | | | | +------ Umwandlungszeichen + | | | +-------- Long-Ausgabe + | | +---------- Größe des Eingabefensters + | +------------ Wegwerfen + +-------------- Fluchtsymbol + 15.4. ctype.h + if(isascii(zeichen)) überprüft ob es sich um ein ASCII-Zeichen handelt + if(isxdigit(zeichen)) überprüft ob es sich um ein Hex-Zeichen handelt + 15.5. string.h + char *strcat(char text1, char text2) ; hängt Text2(mit \0) an Text1 + char *strchr(const char *text, + int zeichen) ; sucht das erste vorkommende + Zeichen im Text, liefert Adresse + oder NULL + char *strcpy(char text1, char text2) ; kopiert Text2(mit \0) zum Text1 + sitze_t strlen(const char *text) ; liefert die Länge von Text(ohne \0) + char *strncat(char *text1, + const char *text2, sitze_t n) ; hängt Text2 mit n Zeichen + an Text1(mit \0) + char *strtok(char *text, + const char *kette) ; 1.Aufruf: sucht im Text das erste + Zeichen das nicht in Kette vorkommt + (wird kein Zeichen gefunden gibt strtok + einen NULL-Zeiger zurück), wird ein + Zeichen gefunden gibt strtok den Zeiger + zurück, dann sucht strtok ab Zeiger das + erste Zeichen das in der Kette vorkommt + 119 + 15. C/C++ + und überschreibt es mit \0, strtok merkt + sich den Zeiger auf das nächste Zeichen + char *strtok(NULL, const char *kette) ; 2.-n.Aufruf: wie 1.Aufruf ab gemerkten + Zeiger + 15.6. Kontrollstrukturen + if(Ausdruck) wenn der Ausdruck stimmt, + { + Anweisung-en1; Anweisung-en1 + } + else sonst + { + Anweisung-en2; Anweisung-en2 + } + switch(Ausdruck) gehe zum Ausdruck + { + case 1: Anweisung-en1; Ausdruck1: Anweisung-en1 + case 2: Anweisung-en2; Ausdruck2: Anweisung-en2 + break; Anweisungen beenden + case n: Anweisung-enn; Ausdruckn: Anweisung-enn + break; Anweisungen beenden + default: Anweisung-en; Ausdruck nicht vorhanden: Aneisung-en + } + continue; unterbricht die Abarbeitung und geht zur Ausdrucksbedingung + break; verlässt die Schleife oder Verbundsanweisung + for(Ausdruck1;Ausdruck2;Ausdruck3) Ausdruck1 einmal ausführen + { so lange der Ausdruck2 stimmt, + vorher noch Ausdruck3 + Anweisug-en; Anweisung-en + } + while(Ausdruck) so lange der Ausdruck stimmt, + { + Anweisung-en; Anweisung-en + } + do mach + { + Anweisung-en; Anweisung-en + } + 120 + 15.7. ASCII(American Standart Code for Information Interchange)-Tabelle + while(Ausdruck); so lange der Ausdruck stimmt + 15.7. ASCII(American Standart Code for Information + Interchange)-Tabelle + 654 000 001 010 011 100 101 110 111 + Bit + 3210 + NUL DLE SP 0 @ P ‘ p + 0000 $0 0 $10 16 $20 32 $30 48 $40 64 $50 80 $60 96 $70 112 + SOH DC1 ! 1 A Q a q + 0001 $1 1 $11 17 $21 33 $31 49 $41 65 $51 81 $61 97 $71 113 + STX DC2 " 2 B R b r + 0010 $2 2 $12 18 $22 34 $32 50 $42 66 $52 82 $62 98 $72 114 + ETX DC3 # 3 C S c s + 0011 $3 3 $13 19 $23 35 $33 51 $43 67 $53 83 $63 99 $73 115 + EOT DC4 $ 4 D T d t + 0100 $4 4 $14 20 $24 36 $34 52 $44 68 $54 84 $64 100 $74 116 + ENQ NAK % 5 E U e u + 0101 $5 5 $15 21 $25 37 $35 53 $45 69 $55 85 $65 101 $75 117 + ACK SYN & 6 F V f v + 0110 $6 6 $16 22 $26 38 $36 54 $46 70 $56 86 $66 102 $76 118 + BEL ETB ’ 7 G W g w + 0111 $7 7 $17 23 $27 39 $37 55 $47 71 $57 87 $67 103 $77 119 + BS CAN ( 8 H X h x + 1000 $8 8 $18 24 $28 40 $38 56 $48 72 $58 88 $68 104 $78 120 + HT EM ) 9 I Y i y + 1001 $9 9 $19 25 $29 41 $39 57 $49 73 $59 89 $69 105 $79 121 + LF SUB * : J Z j z + 1010 $A 10 $1A 26 $2A 42 $3A 58 $4A 74 $5A 90 $6A 106 $7A 122 + VT ESC + ; K [Ä k {ä + 1011 $B 11 $1B 27 $2B 43 $3B 59 $4B 75 $5B 91 $6B 107 $7B 123 + 121 + 15. C/C++ + FF FS , < L \ö l |ö + 1100 $C 12 $1C 28 $2C 44 $3C 60 $4C 76 $5C 92 $6C 108 $7C 124 + CR GS - = M ]Ü m }ü + 1101 $D 13 $1D 29 $2D 45 $3D 61 $4D 77 $5D 93 $7D 109 $7D 125 + SO RS . > N ^ n ~ß + 1110 $E 14 $1E 30 $2E 46 $3E 62 $4E 78 $5E 94 $7E 110 $7E 126 + SI US / ? O _ o DEL + 1111 $F 15 $1F 31 $2F 47 $3F 63 $4F 79 $5F 95 $7F 111 $7F 127 + 15.7.1. Unterteilung der Steuerzeichen: + TC transmission control Übertragungssteuerzeichen + FE format effects Formatsteuerzeichen + IS information separators Informationstrennzeichen + DC device control Gerätesteuerzeichen + 15.7.2. Bedeutung der Steuerzeichen: + NUL null kein Zeichen + SOH TC start of heading Anfang des Kopfes + STX TC start of text Anfang des Textes + ETX TC end of text Ende des Textes + EOT TC end of transmission Ende der Übertragung + ENQ TC enquiry Stationsaufforderung + ACK TC acknowledge positive Rückmeldung + BEL bell Alarm / Piepton + BS FE backspace Rückwärtsschritt + HT FE horizontal tabulation horizontaler Tabulator + LF FE line feed Zeilenvorschub + VT FE vertical tabulation vertikaler Tabulator + FF FE form feed Seitenvorschub + CR FE carriage return Wagenrücklauf + SO shift out Dauerumschaltung + SI shift in Rückschaltung + DLE TC data link escape Datenübertragungsumschaltung + DCn DC device control Gerätesteuerzeichen + NAK TC negative acknowledge negative Rückmeldung + SYN TC synchronous idle Synchronisierung + ETB TC end of transmission block Ende des Übertragungsblocks + CAN cancel ungültig + EM end of medium Ende der Aufzeichnung + 122 + 15.8. Operatoren und Ausdrücke + SUB substitute character Substitution + ESC escape Umschaltung + FS IS file separator Hauptgruppentrennung + GS IS group separator Gruppentrennung + RS IS record separator Untergruppentrennung + US IS unit separator Teilgruppentrennung + SP space Leerzeichen + DEL delete löschen + 15.8. Operatoren und Ausdrücke + 15.8.1. Arithmetische Operatoren: + Operator Bedeutung Assoziativität Rang Beispiel + -------- --------- -------------- ---- -------- + + Addition > 5 a+b + - Subtraktion > 5 a-b + * Multiplikation > 4 a*b + / Division > 4 a/b + % Modulo > 4 a%b + 15.8.2. Vergleichsoperatoren: + Operator Bedeutung Assoziativität Rang Beispiel + -------- --------- -------------- ---- -------- + < kleiner als > 7 a 7 a<=b + > größer > 7 a>b + >= größer oder gleich > 7 a>=b + == gleich > 8 a==b + != ungleich > 8 a!=b + 15.8.3. Logische Operatoren: + Operator Bedeutung Assoziativität Rang Beispiel + -------- --------- -------------- ---- -------- + & bitweises AND > 9 a&b + | bitweises OR > 11 a|b + ^ bitweises XOR > 10 a^b + << bitweises Linksschieben > 6 a<> bitweises Rechtsschieben > 6 a>>n + ~ Einerkomplement < 2 ~a + && logisches AND > 12 a&&b + || logisches OR > 13 a||b + ! logische Negation < 2 !a + 123 + 15. C/C++ + 15.8.4. Zuweisungsoperatoren: + Operator Bedeutung Assoziativität Rang Beispiel + -------- --------- -------------- ---- -------- + = Zuweisung < 15 a=b + += Zuweisung nach Addition < 15 a+=b + -= Zuweisung nach Subtraktion < 15 a-=b + *= Zuweisung nach Multiplikation < 15 a*=b + /= Zuweisung nach Division < 15 a/=b + %= Zuweisung nach Modulo < 15 a%=b + <<= Zuweisung nach bitweisem < 15 a<<=b + Linksschieben + >>= Zuweisung nach bitweisem < 15 a>>=b + Rechtsschieben + &= Zuweisung nach bitweisem AND < 15 a&=b + |= Zuweisung nach bitweisem OR < 15 a|=b + ^= Zuweisung nach bitweisem XOR < 15 a^=b + 15.8.5. Post- und Prefix- Operatoren: + Operator Bedeutung Assoziativität Rang Beispiel + -------- --------- -------------- ---- -------- + ++ Inkrement > < 1 2 a++ ++a + -- Dekrement > < 1 2 a-- --a + () Funktionsaufruf > 1 sqrt(a) + [] Arrayelement > 1 feld[a] + . Feld einer structur oder union > 1 tag.dat + -> Zeiger auf structur > 1 zeig->ele + ( type ) expl. Typenumwandlung < 2 double(a) + 15.8.6. Zeigeroperatoren: + Operator Bedeutung Assoziativität Rang Beispiel + -------- --------- -------------- ---- -------- + & Adresse von < 2 &a + * Indirektion < 2 *a + .* Dereferenzzeiger > 3 tag.*dat + ->* Dereferenzzeiger > 3 tag->dat + 15.8.7. Diverse Kategorien: + Operator Bedeutung Assoziativität Rang Beispiel + -------- --------- -------------- ---- -------- + ?: Bedinung < 14 a?b:c + i = x 16 a,b, ... + - unäres Minus < 2 -n + + unäres Plus < 2 +n + sizeof(typ) Größe des Types in Byte < 2 sizeof(a) + new dynam. Objekt erzeugen < 2 b = new float[a] + delete dynam. Objekt löschen < 2 delete b + :: Zugiffs-/Bereichsoperator < 2 adr::nam + 15.9. Inkrementieren und Dekrementieren + i++ ; i = i + 1 + ++i ; i = i + 1 + x = i++ ; 1. x = i 2. i = i + 1 + x = ++i ; 1. i = i + 1 2. x = i + i-- ; i = i - 1 + --i ; i = i - 1 + x = i-- ; 1. x = i 2. i = i - 1 + x = --i ; 2. i = i - 1 2. x = i + 15.10. Wertebereich und Genauigkeit elementarer + Datentypen + Datentyp Bit Min.Wert Max.Wert Genauigkeit + -------- --- -------- -------- ----------- + char 8 -128 127 + unsigned char 8 0 255 + short int 16 -32768 32767 + unsigned short int 16 0 65535 + int (16)32(64) -2147483648 2147483647 + unsigned int 16 0 65535 + long int 32(64) -2147483648 2147483647 + unsigned long int 32 0 4294967295 + float 32 ca. 3.4E-38 3.4E38 >= 6 Ziffern + double 64 ca. 1.7E-308 1.7E308 >= 10 Ziffern + long double 80 ca. 1.2E-4932 1.2E4932 >= double + 15.11. Variableninitialisierung + Nichtinitialisierte Variabeln haben nicht automatisch den Wert 0! + short faktor=10 ; + short laktor, messwert ; + 125 + 15. C/C++ + messwert=faktor ; + 15.12. Konstanten + Konstanten werden mit dem vorangestellten Schlüsselwort const wie Variabeln dekla- + riert. Der dem Namen über das =-Zeichen zugeordnete Wert kann nicht im Programm + verändert werden. Für eine fehlende Typenangabe wird int angenommen. + cont float PI = 3.14159 ; // bevorzugen + #define PI 3.14159 ; + 15.12.1. Ganzzahlkonstanten + dezimal = 30 ; oktal = 036 ; hexadezimal = 0x1E ; Zusätzlich kann frau eine Ganz- + zahlkonstante durch das Suffix L oder l als long und durch U oder u als unsigned + kennzeichnen (z.B. 30U). + 15.12.2. Gleitkommakonstanten + 0.033 +.033 33E-3 +33.0e-03 Zusätzlich kann frau eine Gleitkommakonstante durch + das Suffix F oder f als float und durch L oder l als long double kennzeichnen (z.B. + 0.033L). + 15.12.3. Zeichen- und Zeichenkettenkonstanten + ’n’ + “zeichenkette’" + 126 + 16. Tcl/Tk + wish startet den Tcl/Tk-Interpeter + exit beendet den Tcl/Tk-Interpeter + wish Programm.tcl startet das Programm.tcl + button .name Option/en Knopf definieren Optionen: + -text "Aufschrift" Knopf-Aufschrift + -text [Befehl] Knopf-Aufschrift vom Befehl + -command {Befehl} Knopf-Befehl + Befehl: z.B. exec ls oder exec xterm -e vi & + -relief flat Knopf flach + -relief raised Knopf erhoben + -relief sunken Knopf eingedrückt + -relief ridge Knopf Band erhoben + -relief groove Knopf Band eingedrückt + -padx Pixelzahl Abstand zum Rand in x-Richtung + -pady Pixelzahl Abstand zum Rand in y-Richtung + -image [ image create photo -file Bildname ] + Knopf mit gif, ppm oder pgm + -foreground Farbe Schriftfarbe "#rgb"->"#ff0000" oder red + -fg Farbe Abkürzung für -foreground Farbe + -background Farbe Knopffarbe + -bg Farbe Abkürzung für -background Farbe + -width Pixelbreite Knopfbreite + -height Pixelhöhe Knopfhöhe + -font Zeichensatz Schrift für den Knopf + pack .name Option/en Knopf anzeigen Option: + -fill x Knopf an die Fensterbreite anpassen + -expand true Knopf im großen Fenster aufteilen + 127 + 17. Perl + perl -v überprüfen ob Perl installiert ist + 129 + 18. CGI+Perl + 18.1. Einleitung + Was ist CGI? Common Gateway Interface. Web-Server-Schnittstelle, um mit + anderen Programmen zusammenzuarbeiten. + Was ist Perl? Practical Extraction and Report Language. Interpreter-Skript- + Sprache, die häufig zur Programmierung von CGI-Anwendungen + benutzt wird. + 18.2. Perl + 18.2.1. Texte und Strings + # Kommentartext (Hash) Einzeiliger Kommentartext + print "Text" ; Text ausgeben + print "Text\n" ; \n Neue Zeile + print "Text\r" ; \r Wagenrücklauf + print "Text\t" ; \t Tabulator + print "Text\v" ; \v Vertikalzeichen + print "Text\f" ; \f Papiereinzugszeichen + print "Text\b" ; \b Rücksetzzeichen + print "Text\a" ; \a Piepton + print "Text\e" ; \e Unterbrechungszeichen + print $Variable ; Variable ausgeben + print "Text\"" ; \" Gänsefüßchen ausgeben + print "Text\’" ; \’ Einfache Anführungszeichen ausgeben + print "Text\$" ; \$ Dollar-Zeichen ausgeben + print "Text\\" ; \\ Backslash ausgeben + print "Text".$Var."Text" ; . Verketten von Zeichenfolgen + print "Text"x10 ; Text 10 mal zusgeben + 18.2.2. Rechenoperationen + $a=$b+$c ; Addition von $b und $c gleich $a + $a=$b-$c ; Subtraktion von $b minus $c gleich $a + $a=$b*$c ; Multiplikation von $b mal $c gleich $a + $a=$b/$c ; Division $b geteilt durch $c gleich $a + 131 + 18. CGI+Perl + $a=$b**$c ; Potenz $b hoch $c gleich $a + $a=$b%$c ; Modulo $b geteilt durch $c Rest gleich $a + $a++ ; $a=$a+1 ; + $a-- ; $a=$a-1 ; + $a=3.1415 ; . Dezimaltrenner + 18.2.3. Arrays (Listen) + @Array=("W0","W1") ; Werte einer Array-Variable zuweisen (Kurzform) + $Array[Indexwert]="Wert" ; Wert einer Array-Variable zuweisen (Langform) + @Array=$Liste[2,4,8] ; Werte eines Arrays eines Arrays zuweisen + print @Array ; Gesamtes Array ausgeben + print $Array[Indexwert] ; Wert einer Array-Variable ausgeben + print $#Array ; Nummer des letzten Listenelements ausgeben + 18.2.4. String- und Zahlenvergleichsoperratoren + Vergleich Zahlenvergleich Stringvergleich + Gleich == eq + Ungleich != ne + Kleiner als < lt + Größer als > gt + Kleiner oder gleich <= le + Größer oder gleich >= ge + 18.2.5. if-Bedingung + if (Bedingung) Wenn die Bedingung Wahr, + { + Befehle ; Befehle ausführen + } + 18.2.6. if-else-Bedingung + if (Bedingung) Wenn die Bedingung Wahr, + { + Befehle ; Befehle ausführen + } + else sonst + { + Befehle ; Befehle ausführen + } + 132 + 18.3. Funktionen + 18.2.7. if-elseif-Bedingung + if (Bedingung) Wenn die Bedingung Wahr, + { + Befehle ; Befehle ausführen + } + elseif (Bedingung) sonst Wenn die Bedingung Wahr, + { + Befehle ; Befehle ausführen + } + 18.3. Funktionen + 18.3.1. String Funktionen + $Var=chop($String) ; Löscht das letzte Zeichen von String und + gibt es an Var + 18.3.2. Rechen Funktionen + $a=sqrt($b) ; Quadratwurzel von $b nach $a + $a=log($b) ; Logarithmus + $a=exp($b) ; Exponenten + $a=abs($b) ; Absoluterwert + $a=int($b) ; Ganzzahlwert + 18.3.3. Array Funktionen + push(@Liste,@Elemente) ; Setzt ein oder mehrere Elemente an + das Ende der Liste + unshift(@Liste,"Wert") ; Setzt ein oder mehrere Elemente an + den Anfang der Liste + $a=shift(@Liste) ; Entfernt das erste Element aus der Liste + und gibt es an $a + $a=pop(@Liste) ; Entfernt das letzte Element aus der Liste + und gibt es an $a + splice(@Liste,Start,Anzahl,Element) ; Entfernt die Anzahl vom Start der Liste + und fügt Element ein + 133 + 19. Java + 19.1. Funktion von Java + +---------------+ +--------------------------+ +---------------------+ + | Programm Code |->| Java Compiler (java.exe) |->| Bytecode (01010011) | + +---------------+ +--------------------------+ +---------------------+ + | | + V V + +--------------+ +--------------+ + | Ineterpreter | | Browser/ | + | (java.exe) | | Appletviewer | + +--------------+ +--------------+ + javac.exe progammcode.java -> programmcode.class Programm compilieren + java.exe programmcode Programm ausführen + appletviewer.exe Applets ausführen + 19.2. Sprache und Syntax von Java + 19.2.1. Kommentrare + /* Kommentar-Anfang + */ Kommentar-Ende + // Einzeiliger Kommentar ohne Ende + ; Anweisung abschließen + 19.2.2. Datentypen + Typ Inhalt Standdartwert Größe Wertebereich + boolean True oder False False 1 Bit - + char Unicode Zeichen 0000 16 Bit 0000 bis FFFF (Hex.) + byte Ganzzahl mit Vorzeichen 0 8 Bit -256 bis 255 + short Ganzzahl mit Vorzeichen 0 16 Bit -32768 bis 32767 + int Ganzzahl mit Vorzeichen 0 32 Bit -2^31 bis 2^31-1 + long Ganzzahl mit Vorzeichen 0 64 Bit -2^63 bis 2^63-1 + float Kommazahl 0.0 32 Bit - + double Kommazahl 0.0 64 Bit - + 135 + 19. Java + 19.2.3. Variablen + Variable deklarieren + boolean myBool; + int x = 32; + double y = 3.2; + char buchstabe; + Variabeln ansprechen + this.buchstabe; bezieht sich auf die aktuelle Klasse + 19.3. Pakete und Verzeichnisstrukturen + 19.3.1. Sichtbarkeit und Zugriffsrechte von Klassen und + Methoden + public Klasse, Methode oder Variable die überall sichtbar ist + protected Methode oder Variable die nur im eigenen Paket und + abgeleiteten Klassen sichtbar ist + default Klasse, Methode oder Variable die Sichtbarkei beschrängt + sich auf das eigen Paket + private protected Methode oder Variable die nur in abgeleiteten Klassen + sichtbar ist + private Methode oder Variable die nur in der eigenen Klasse + sichtbar ist + Zugriff public protected default private protected private + ------- ------ --------- ------- ----------------- ------- + Zugriff ... + ... im selben Paket Ja Ja Ja Nein Nein + ... von anderen Paketen Ja Nein Nein Nein Nein + Vererbt ... + ... Klassen im selben Paket Ja Ja Ja Ja Nein + ... Klassen an andere Pakete Ja Ja Nein Ja Nein + 19.3.2. Klassen + class Klasse Klassendeklaration + { + ... + } + public class Klasse öffendliche Klassendeklaration + 136 + 19.3. Pakete und Verzeichnisstrukturen + { -ohne public ist die Klasse automatisch "privat" + ... + } + package Paketklasse; Klassen zusammenfassen d.h. Paketklasse.Klasse + public class Klasse + { + ... + } + package Paket.Paketklasse Oberklassen zusammenfassen d.h. + Paket.Paketklasse.Klasse + 19.3.3. Konstruktoren und Destruktoren + class Klasse Konstruktor + { ----------- + public Klasse() Methode die beim Erschaffen eines neuen Objektes + { automatisch aufgerufen wird + ... + } Destruktor + ---------- + protected void finalize() Methode die beim Löschen eines alten + { Objektes automatisch aufgerufen wird + ... + } + } + 19.3.4. Methoden überladen + class Klasse + { + Methode() Dieselbe Metode mehrmals mit unterschielichen + { Parametern schaffen + ... + } + Methode(int var) Dieselbe Metode mehrmals mit unterschielichen + { Parametern schaffen + ... + } + } + 19.3.5. Objekte + objekt Neuobjekt = new objekt(); Neues Objekt Neuobjekt von der Klasse + 137 + 19. Java + objekt erstellen + 19.3.6. Vererbung + public class NeuKlasse extends Klasse {} neue Klasse NeuKlasse herstellen + alle sichtbaren Eigenschaften + und Methoden werden übernommen + 19.3.7. Schnittstellen + public interface Klasse { Schnittstelle erschaffen + Methodenkopf(); + Variablen; + } + class NeuKlasse extends Klasse implements IntKlasse neue Klasse NeuKlasse + herstellen + alle sichtbaren Eigenschaften + und Methoden werden übernommen + und die Schnittstelle IntKlasse + hinzufügen + 19.4. Elementare Syntax von Java + 19.4.1. Operratoren + x = 10; Das Gleichheitszeichen weist immer den rechten Wert dem auf + der linken Seite zu + 19.4.2. Verknüpfungsoperatoren + Operator Bedeutung Beispiel + -------- --------- -------- + + Addition 7 = 3 + 4; + - Subtraktion 1 = 7 - 6; + * Multiplikation 6 = 2 * 3; + / Division 3 = 9 / 3; + % Modulo(Rest) 1 = 9 % 4; + 19.4.3. Inkrement-Operator + x++; x = x + 1; + 138 + 19.4. Elementare Syntax von Java + 19.4.4. Dekrement-Operator + x--; x = x - 1; + 19.4.5. Arithmetische Zuweisungsoperatoren + Operator Beispiel Bedeutung + -------- -------- --------- + += x += 3; x = x + 3; + -= x -= 3; x = x - 3; + *= x *= 3; x = x * 3; + /= x /= 3; x = x / 3; + %= x %= 3; x = x % 3; + 19.4.6. Bedingungen und Entscheidungen + if(Bedingung) { wenn Bedingung wahr dann Anweisungen + Anweisungen; if ( x != y ) { z++; } + } + Operator Beschreibung + -------- ------------ + == Gleichheit + != Ungleichheit + < kleiner als + > größer als + <= kleiner gleich + >= größer gleich + 19.4.7. if - else - Bedingungen + if(Bedingung) { wenn Bedingung wahr dann Anweisungen1 sonst Anweisungen2 + Anweisungen1; if ( x != y ) { z++; } else { z--; } + } else { + Anweisungen2; + } + 19.4.8. Verschachtelte Bedingungen + if(Bedingung1) { wenn Bedingung1 und Bedingung2 dann Anweisungen1 + if(Bedingung2){ sonst Anweisungen2 + Anweisungen1; if( x != y ) { if( a < b ){z++;} } else { z--; } + } + } else { + Anweisungen2 + } + 139 + 19. Java + 19.4.9. Fallunterscheidung mit switch - case + switch(Ausdruck) { switch(2) { Route 2 also + case Wert1: Anweisungen1; case 1: x++; x = x - 1; + break; break; + case Wert2: Anweisungen2; case 2: x--; + break; break; + case Wert3: Anweisungen3; } + break; + } + 19.5. Schleifen + 19.5.1. Die while - Schleife + while(Bedingung) { int x=0; solange Bedingung wahr + Anweisungen; while(x<10) { Anweisungen + } x++; + } + 19.5.2. Die do - while - Schleife + do { int x=0; Anweisungen dann solange + Anweisungen; do { Bedingung wahr + } while(Bedingung); x++; Anweisungen + } while(x<10); + 19.5.3. Die for - Schleife + for(Initialisierung; Bedingung; Schleifenschritt) { solange Bedingung wahr + Anweisungen; Anweisungen + } for(x=0;x<10;x++) { + y++; + } + 19.5.4. Schleifen mit break verlassen + for(x=0;x<10;x++) { Die Schleife wird vor dem y++ verlassen + break; + y++; + } + 19.5.5. Schleife mit continue wiederholen + for(x=0;x<10;x++) { Die Schleife wird vor dem y++ wiederholt + 140 + 19.6. Komplexe Datentypen + continue; + y++; + } + 19.6. Komplexe Datentypen + 19.6.1. Arrays + int liste[] = new int[10]; schafft ein Array dass zehn verschiedene int- + Werte speichern kann + int Array[][] = new int[3][3]; schafft ein zweidimensionales Array + int liste[] = {3, 5, 7}; schaft ein Array mit 3 Werten + liste[0] = Wert; Wert des 1. Elements zuweisen + liste[0][0] = Wert; Wert des 1. Elements zuweisen + Wert = liste[0]; Wert des 1. Elements abrufen + Wert = liste[0][0]; Wert des 1. Elements abrufen + liste.length enthält die Länge des Arrays liste + 19.7. Die Anweisung import + import haus.wand.stein; import erlaubt es Klassen im Sourcecode + getAnzahl(); über einen gekürzten Namen anzuspechen + haus.wand.stein.getAnzahl() -> getAnzahl() + import java.lang.*; importiert alle Bestandteile ins Programm + 19.8. Java eigene Klassen + 19.8.1. Die Klasse Math + Math.* bietet mathematische Funktionen + Math.E Eulersche Zahl + Math.PI PI + Math.random() Zufallszahl zwischen 0 und 1 + Math.round() rundet zu Ganzzahlen + 19.9. Die Klasse Object + 19.9.1. Die Klasse Object + getClass() liefert die Klasse eines Objektes zurück + equals() vergleicht zwei Objekte gibt true oder false + 141 + 19. Java + 19.10. Die Klasse Runtime + Um diese Klasse zu nutzen,muss mit getRuntime() erst ein Objekt erstellt werden! + Runtime mySystem = Runtime.getRuntime(); Objekt Runtime erstellen + freeMemory() freier Speicher + totalMemory() gesamter Speicher + exit(0) Programm sofort mit Wert verlassen + exec() Systemprogramme starten (s. Exceptions) + 19.11. Die Klasse String + String s = "Hallo" + " Du !"; Strings zusammenfassen + charAt() gibt einen Buchstaben aus dem String zurück + indexOf() Position von Buchstaben/ketten feststellen + substring() String auseinanderschneiden + lenght() Länge eines Strings bestimmen + 19.12. Die Klasse Stringbuffer + 19.12.1. Die Klasse Stringbuffer + Umdiese Klasse zu nutzen, muss erst ein Objekt erstellt werden! + Stringbuffer buffer = newStringbuffer(""); Objekt Stringbuffer erstellen + setCharAt() änderrung eines bestimmten Buchstaben im String + delete() löscht Teile aus dem String + replace() ersetzt Teile im String + insert() setzt Teile im String ein + 19.13. Die Klasse System + Standardeingabe - in, Standardausgabe - out, Fehlerausgabe - err + System.out.println("Text") Text ausgeben + byte[] b = new byte[80]; + System.in.read(b); Einlesen von Daten + 19.14. Das Paket java.util + import java.util.*; Paket einbinden + 142 + 19.15. Ausnahmen (Exceptions) + 19.14.1. Die Klasse Date + Date myDate = new Date(); Objekt Date erstellen + toString() Datum in einen String umwandeln + getTime() UNIX-Timestamp, der die Sekunden seit dem + 1.1.1970 ausgibt + before() vergleicht das Datumsobjekt od es davor ist + after() vergleicht das Datumsobjekt od es danach ist + Erweiterte Funktionen rund um das Datum gibt es in der Klasse Calendar bzw. + DateFormat in der Java-API + 19.14.2. Die Klasse Random + Random zz = new Random(); Objekt Random erstellen + Methode Bereich Typ + ------- ------- --- + nextInt() -2^31 bis 2^31-1 int + nextLong() -2^63 bis 2^63-1 long + nextFloat() 0.0 bis 1.0 float + nextDouble() 0.0 bis 1.0 double + nextGaussian() gibt eine Zufallszahl zurück, die nach dem Gauß- + Verfahren ermittelt wurde + 19.14.3. Die Klasse Stack + Stack myStack = new Stack(); Objekt Stack erstellen + push() legt ein Objekt auf dem Stack ab + pop() holt das oberste Objekt vom Stack und löscht es + peek() holt das oberste Objekt vom Stack + 19.15. Ausnahmen (Exceptions) + import java.io.*; + public class trycatchfinally { + public static void main(String args[]) { + Runtime mySystem = Runtime.getRuntime(); //Objekt Runtime erstellen + try{ //unsichere Anweisungen + mySystem.exec("xaos"); + } catch(IOException e) { //Fehlerbehandlung + System.err.println("Es ist ein Fehler aufgetreten: " + e); + 143 + 19. Java + } finally { //Anweisungen werden immer ausgeführt + System.out.println("Kritischer Bereich wurde ausgeführt!"); + } + } + } + 19.15.1. Eigene Ausnahme erzeugen (throw) + Methode(int zahl) { + if(zahl<0) { + throw(new Exception("Fehler!")); + } elese { + zahl++; + } + } + 19.16. Multitasking mit Threads + 19.16.1. Arbeiten mit Threads + java.lang die Klasse Thread ist ein Bestandteil des Paketes + public class Klasse implements Runnable {} neue Klasse über die + Schnittstelle Runnable erstellen + run() Methode run() (Code des Threads) + muss überschrieben werden + Klasse test = new Klasse(); In main(): Objekt der eigenen Klasse + test.start(); erstellen und Startmethode + aufrufen + public void start() { + Thread myThread = new Thread(this); Objekt aus der Klasse Thrad + erstellen und deren Konstruktor + das aktuelle Objekt als + parameter übergeben + myThread.start(); Thread starten + ...; + myThread.stop(); Thread beenden + } + myThread.sleep(x); Thread x Milisekunden pausieren + muss mit Ausnahme abgefangen + 144 + 19.17. Applets + werden InterruptedException + myThread.suspend(); Thraed anhalten + myThread.resume(); Thread wieder starten + myThread.destroy(); Thread zerstören/anhalten + 19.17. Applets + 19.17.1. Applets in eine Webseite einbinden + + + Mein erstes Applet + + + + + + + + + 19.17.2. Das erste Java Applet + import java.applet.*; + import java.awt.*; + public class MyApplet extends Applet { + public void paint(Graphics g) { + g.drawString("Mein erstes Applet !", 20, 40); + } + } + 19.17.3. Die Methoden eines Applets + init() wird automatisch bei der Initialisierung des Applets aufgerufen + start() wird automatisch aufgerufen, wenn das Applet im sichtbaren + Browser-Bereich erscheint + stop() wird automatisch aufgerufen, wenn das Applet den sichtbaren + Bereich verläßt + destroy() wird automatisch beim verlassen der Seite oder schließen des + Browsers aufgerufen + 19.17.4. Ein Applet im Überblick + import java.applet.*; + import java.awt.*; + 145 + 19. Java + public class newApplet extends Applet { + public void init() { + //initialisierung aller nötigen Werte für das Programm + } + public void start() { + //Start des Applets + } + public void paint(Graphics g) { + //Grafikausgabe über das Objekt g ! + } + public void stop() { + //Stop des Applets + } + public void destroy() { + //Ende des Applets + //Speicher wird freigegeben + } + } + 19.17.5. Pakete + java.awt dient zur Bearbeitung und Ausgabe von Grafiken und + Fensterelementen in Applikationen und Applets + (advanced window toolkit) + java.applet eine Grundvoraussetzung für ein Applet + 19.17.6. Die Klasse Graphics + public void paint(Graphics g) { um in das Applet zu zeichnen + drawString("Text",x,y); Text im Applet ausgeben + } + drawLine() Linie zeichnen + drawRect() Rechteck zeichnen + fillRect() gefülltes Rechteck zeichen + drawRoundRect() Rechteck mit abgerundeten Ecken zeichnen + fillRoundRect() gefülltes Rundeck zeichnen + drawOval() Kreis/Elipse zeichnen + fillOval() gefüllte/r Kreis/Elipse zeichnen + copyArea() kopieren eines sichtbaren Bereiches + 19.17.7. Die Klasse Color + Color farbe = new Color(r,g,b); Farben erzeugen r=0-255 g=0-255 r=0-255 + Color dfarbe = farbe.darker(); nächst dunklere Farbe + 146 + 19.17. Applets + Color hfarbe = farbe.brighter(); nächst hellere Farbe + Konstante Frabe + --------- ----- + Clolor.white weiss + Clolor.yellow gelb + Clolor.orange orange + Clolor.grey grau + Clolor.pink pink + Clolor.red rot + Clolor.magenta magenta + Clolor.green grün + Clolor.blue blau + Clolor.darkGray dunkelgrau + Clolor.lightGray hellgrau + Clolor.black schwarz + 19.17.8. Die Klasse Font + Windows Java + ------- ---- + Arial Helvetica + Courier New Corier + MS Sans Serif Dialog + Times New Roman TimesRoman + WingDings ZapfDingbats + Arial default + Font f = new Font("art", stil, größe); neue Schrift erstellen + stil: plain(normal), + italic(kursiv), blod(fett) + 19.17.9. Die Klasse Image + Image myImage = getImage(getCodeBase(), "Bild.jpg"); Bildobjekt erschaffen + drawImage() Bild anzeigen + 19.17.10. Die Klasse Button + Button myButton = new Button("Klick"); Buttonobjekt erschaffen + setLabel() Beschriftung des Buttons ändern + getLabel() Beschriftung des Buttons auslesen + 147 + 19. Java + 19.18. Eventhandling + java.awt.event.*; Paket zur Ereignisbehandlung einbinden + 19.18.1. Mouse Events + public class myApplet extends Applet implements MouseListener {} + Schnittstelle MouseListener implementieren + Methode Aufgabe + ------- ------- + mousePressed() Maustaste wird gedrückt + mouseReleased() Maustaste wird losgelassen + mouseClicked() Mausklick + mouseEntered() Maus bewegt sich in das Applet + mouseExited() Maus verlässt das Applet + addMouseListener(this); Listener soll auf das gesamte Applet achten + public void mousePressed(mouseEvent e) { + int x = e.getX(); Maustaste an X gedrückt + int y = e.getY(); Maustaste an Y gedrückt + } + addMouseMotionListener(this); MotionListener soll auf das Applet achten + mouseMoved() bewegte Mausereignisse + mouseDragged() + 19.18.2. Action Events + public class myApplet extends Applet implements ActionListener {} + Schnittstelle ActionListener implementieren + Button myButton = new Button("Knopf"); Button erstellen + this.add(myButton); Button setzen + myButton.addActionListener(this); Button mit ActionListener versehen + public void actionPerformed(ActionEvent e) { Aufruf beim Anklicken des Button + String Klick = e.getActionCommand(); gibt die Aufschift des Button + } + 19.18.3. Parameter an ein Applet + + 148 + 19.18. Eventhandling + Parameter1 + Parameter2 + + String var1 = getParameter("var1"); Parameter1 an den String var1 + String var2 = getParameter("var2"); und var2 übergeben + 19.18.4. Weitere wichtige Pakete + java.net Klassen und Schnittstellen für Netzwerkentwicklung + java.beans wieder verwentbare Komponenten + java.security erhöte Sicherheit innerhalb von Applikationen/Applets + java.rmi Verteilung eines Programms auf mehrere Rechner + java.sql Anbindung an SQL-Datenbanken + java.servlet Applikationen die serverseitig laufen + 149 + 20. JavaScript + 20.1. Einbindung von JavaScript + 20.1.1. Einbindung in den Head + + + + Beendet den JavaScript-Quelltext + + + + + 20.1.2. Einbindung in den Body + + + + + + Beendet den JavaScript-Quelltext + + + 20.1.3. Ausführen bei bestimmten Aktionen + + + + + Beim Laden wird der JavaScript-Quelltext + 151 + 20. JavaScript + ausgeführt + + + 20.2. Variablen + var GlobaleVariable Globale Variable deklarieren + function() { + var LokaleVariable Lokale Variable deklarieren + } + var variable Variable deklarieren + variable = "Wert" Wert zuweisen + var zahl=9 Variable deklarieren und Wert zuweisen + + Verketten + 20.3. Objekte + 20.3.1. Standardobjekte + document.write("Hallo") Hallo auf der Seite ausgeben + document.writeln("Hallo") Hallo auf der Seite mit Zeilenumruch + ausgeben + document.close() Schreiben schließen + document.bgColor=("ffffff") Hintergrunffarbe + document.fgColor=("000000") Fordergrundfarbe + document.linkColor=("00ff00") Neuer Link + document.vlinkColor=("ffff00") Besuchter Link + document.alinkColor=("ff0000") Aktiver Link + document.referrer URL von der aufgerufen wurde + document.location URL der Datei selber + document.title Titel der Seite + document.Name.src="bild2.gif" um auf + das Bild zuzugreifen + document.forms[0].Name.value Formular 1(0); aktueller Text im + Eingabefeld auslesen oder überschreiben + document.forms[0].Name.defaultValue Defaultwert auslesen oder überschreiben + document.forms[0].Name.select() Text im Eingabefeld makieren + document.forms[0].Name.focus() Cursor in das Eingabefeld setzen + 152 + 20.3. Objekte + document.forms[0].Name[0].checked Radio-Checkbuttons liest oder schreibt, + ob ein Button ausgewählt ist + document.forms[0].Name[0].defaultChecked + Voreinstellung eines Button lesen oder + schreiben + nicht markiert markiert + 0 1 + false true + document.forms[0].Name.options[0].selectedIndex + Auswahlliste auslesen oder schreiben + document.forms[0].Name.options[0].value Wert auslesen oder schreiben + parent.frames[0].location.href= Frameinhalt ändern 0 -> Frame 1 + "frame.htm" + parent. verzweigt in den nächsthöheren Frame + top. verzweigt in den höchsten Frame im + Browser + frames[n] verzweigt auf die nächstniedrigere Stufe + in den Frame mit dem Index n + window.status=("Hallo") Hallo in der Statusleiste ausgeben + myWindow=window.open("Dateiname","Fenstername","Eigenschaften") + Öffnet ein neues Fenster + Eigenschaften: width=(Pixel) gibt die Breite an + height=(Pixel) gibt die Höhe an + resizable=yes/no größe des Fensters veränderbar ? + menubar=yes/no Menüleiste vorhanden ? + toolbar=yes/no Buttonleiste vorhanden ? + location=yes/no Adresszeile vorhanden ? + status=yes/no Statuszeile vorhanden ? + scrollbars=yes/no Bildlaufleiste vorhanden ? + dependent=yes/no Vom aktuellen Fenster abhängig ? + myWindow.close() Schließt das neue Fenster + myWindow.closed Zugriff auf den Fensterzustand + 20.3.2. String-Objekt + String.length Anzahl der Zeichen des Strings + String.substring(Anfang,Ende) Gibt den Anfang bis Ende des Strings zurück + String.toLowerCase Wandelt alle Buchstaben in Kleinbuchstaben + String.toUpperCase Wandelt alle Buchstaben in Großbuchstaben + 153 + 20. JavaScript + 20.3.3. Eigene Objekte + function person(name, alter) { Funktion + this.name = name zum + this.alter = alter Objekt + } anlegen + var meier = new person("Geier Meier", 18) Objekt erzeugen + meier.name = "Mr. Geier Meier" Wert ändern + meier.alter = 20 Wert ändern + meier = new Object Objekt erzeugen + meier.vorname = "Geier" Wert zuweisen + meier.nachname = "Meier" Wert zuweisen + 20.3.4. Arrays + Variable = new Array Array erzeugen + Variable[0] = "hallo" Wert zuweisen + 20.4. Mathematische Operationen + c = a + b Addition + a++ ; a = a + 1 + c = a - b Subtraktion + a-- ; a = a - 1 + c = a * b Multiplikation + c = a / b Division + a = Math.round(b) Ganzzahlige Rundung + 20.5. Bedingte Ausführung + if(Ausdruck) wenn der Ausdruck stimmt, + { + Anweisung-en1 Anweisung-en1 + } + 20.6. Schleifen + for(Ausdruck1;Ausdruck2;Ausdruck3) Ausdruck1 einmal ausführen + { so lange der Ausdruck2 stimmt, + vorher noch Ausdruck3 + Anweisug-en Anweisung-en + 154 + 20.7. Event-Handler + } + while(Ausdruck) so lange der Ausdruck stimmt, + { + Anweisung-en Anweisung-en + } + 20.7. Event-Handler + onLoad="Aktion" Beim Laden Aktion ausführen + onUnload="Aktion" Beim Schließen Aktion ausführen + onMouseOver="Aktion" Beim Überfahren Aktion ausführen + onMouseOut="Aktion" Beim Verlassen Aktion ausführen + onFocus="Aktion" Beim Setzen des Cursors auf das Element + (Einsatz in Formularen) + onBlur="Aktion" Beim Verlassen des Elementes + onChange="Aktion" Beim Verlassen des Elementes wenn verändert + onClick="Aktion" Beim Anklicken eines Formularelements + Verweistext + onSubmit="Aktion" Beim Senden eines Formulares Aktion ausführen + 20.8. Funktionen + function Name(var1,var2) Definiert eine Funktion mit dem Name + { + alert(var2) Hier kommt der Funktionsinhalt rein + } + return("Hallo") Hallo zurück geben + alert("Text") Öffnet ein Fenster und gibt den Text aus + uhrzeit=new Date() Datum und Uhrzeit in das Objekt uhrzeit + schreiben + st=uhrzeit.getHours() Stunden aus dem Objekt uhrzeit der Variable + st zuweisen + min=uhrzeit.getMinutes() Minuten aus dem Objekt uhrzeit der Variable + min zuweisen + setTimeout("Funktion",Millisekunden) Funktion nach Millisekunden aufrufen + Math.random() + 155 + 20. JavaScript + 20.9. Reservierte Wörter + abstract + boolean + break + byte + case + catch + char + class + const + continue + debugger + default + delete + else + enum + export + extends + false + final + finally + float + for + function + goto + if + implements + import + in + instanceof + int + interface + long + native + new + null + package + private + protected + public + return + short + static + super + 156 + 20.9. Reservierte Wörter + switch + synchronized + this + throw + throws + transient + true + try + typeof + var + void + volatile + while + with + 157 + Teil V. + Anhang + 159 + 21. Glossar + Abhängigkeiten Ein von rpm verwendetes System, um die Verwaltung installierter + Software zu vereinfachen. Jedes Paket enthält ein Skript, das dem lokalen rpm + mitteilt, welche anderen Pakete es zur Ausführung benötigt. Sind die erforderli- + chen Pakete nicht installiert, wird die Installation abgebrochen. Gleiches gilt für + die Deinstallation. + Andere, others In UNIX die Gruppe der Benutzer, die weder Eigetümer einer Datei + sind, noch zur Besitzergruppe gehören. Es ist generell eine gute Idee, die Rechte + dieser Gruppe so restriktiv wie möglich zu handhaben. Siehe auch Besitzergrup- + pe. + alias Ein Shell-Mechanismus, um eine Zeichenkette durch einen anderen zu ersetzen, + bevor ein Kommando ausgeführt wird. Einen Überblick über alle definierten + Aliasse erhalten Sie mit dem Kommando alias. + Anzeigehilfe Programm zum Anzeigen einer (Text-) Datei. Es bietet die Möglichkeit + einfach vorwärts und rückwärts durch das Dokument zu navigieren sowie Zei- + chenketten zu suchen. Wir empfehlen Ihnen das Programm less zu verwenden + (u.a. da es die selben Tastaturkürzel wie vim verwendet). + APM Advanced Power Management (”Fortgeschrittenes Energiemanagement”). Wird + von einigen BIOSsen dazu benutzt, die Maschine nach einer Periode von Inakti- + vität in einen energiesparenden Ruhezustand zu bringen. Auf Laptops ist APM + auch dafür zuständig, Informationen über den Batteriestatus bzw. die verblei- + bende Arbeitszeit bereit zu stellen. + Arbeitsfläche Wenn Sie das X-Windows-System verwenden, ist die Arbeitsfläche der + teil des Bildschirmes, auf dem Sie arbeiten und auf dem Ihre Symbole und Fenster + dargestellt werden. Manschmal wird auch lachs vom ”Hitergrund” gesprochen. + Siehe auch: virtuelle Arbeitsfläche. + ARP AddressResolutionProtocol.(”Protokollzur Adress-Auflösungs”).Das Protokoll + umIP-Adressendynamischin physikalische (Hardware-)Adressenumzuwandeln. + Nur möglich auf direkt verbundenen Netzwerken im Hardware- Broadcasting. + ASCII Abkürzung für American Standart Code for Information Interchange. Es han- + delt sich um den meistvervwendeten 7-Bit-Kode zur Darstellung von Ziffern, + Buchstaben und Sonderzeichen. Der ASCII-Code ist mittlerweile per ”normati- + ver Kraft des Faktischen” durch den ISO Standart 8859-1 abgelöst (Siehe ISO + 8859). + 161 + 21. Glossar + Assembler Maschinensprache. Vorstufe des Objekt-Kodes. Programme werden meist + in sogenannten Hochsprachen (wie C) geschrieben, die dann per Kompilation in + Assembler umgewandelt werden. + ATAPI eine Familie von CD-ROM-Laufwerken,die an den IDE-Controller angeschlos- + sen werden. Es gibt auch SCSI-Laufwerke, die am SCSI-Controler betrieben wer- + den, sowie proprietäre Laufwerke, die ihren eigenen Controller benutzen oder an + die Soundkarte angeschlossen werden. + atomar Eine Gruppe von Operationen, die nicht weiter aufgeteilt werden kann. + ausführlicher Modus Befehle produzieren im ausführlichen Modus Zusatzinformatio- + nen, die auf die Standardausgabe oder Standart-Fehlerausgabe ausgegeben wer- + den. Einige Programme bieten die Möglichkeit einzustellen wie ”redselig” sie sein + sollen. + HTTP HyperText Transfer Protokoll(Hypertext-Übertragungsprotokoll). Ist ein Pro- + tokoll zur Übertragung von Daten über ein Netzwerk. Es wird hauptsächlich ein- + gesetzt, um Webseiten aus dem World Wide Web (WWW) in einen Webbrowser + zu laden. + URL Uniform Resource Locator (Einheitlicher Quellenanzeiger). Bezeichnet man ei- + ne Unterart von Uniform Resource Identifiern (URIs). URLs identifizieren und + lokalisieren eine Ressource über die zu verwendende Zugriffsmethode (z. B. das + verwendete Netzwerkprotokoll wie HTTP oder FTP) und den Ort (engl. locati- + on) der Ressource in Computernetzwerken. Im allgemeinen Sprachgebrauch wer- + den sie auch als Internetadresse bezeichnet, wobei damit (der umgangssprachlich + häufigen Gleichsetzung von Internet und WWW folgend) meist speziell URLs + von Webseiten gemeint sind. + USV Unterbrechungsfreie Stromversorgung. Sehr großer Akku (aufladbare Baterie) + der bei einem Stromausfall den Rechner mit Strom versorgt. + WWWWorldWideWeb(WeltweitesNetz).IsteinüberdasInternetabrufbaresHypertext- + System, bestehend aus elektronischen Dokumenten, die durch Hyperlinks mit- + einander verknüpft sind. + 162 + Stichwortverzeichnis + &, 30 Eigentümer, 28 htop, 30 + affs, 49 emerge, 33 ifconfig, 34 + alias, 22 env-update, 31 info, 20 + apt, 32 equery, 33 init, 19, 20 + apt-get, 32 etc-update, 33 initctl, 20 + euse, 33 insmod, 17 + bash, 55 expand, 25 ip, 34 + bg, 30 export, 31, 38, 55 iso9660, 49 + Bildschirmschoner, 19, ext2, 49 + 39 ext3, 49 jobs, 30 + blockorientiert, 28 fakeroot, 17 Kernel, 17 + bzip2, 17 fdformat, 27 kill, 30 + cat, 23 fdisk, 27 ksh, 55 + cd, 23 fg, 30 + cfdsik, 27 fgrep, 24 last, 20 + chgrp, 28 file, 22 ldd, 34 + chmod, 28 find, 24 less, 23 + chown, 28 finger, 20 ln, 23 + chroot, 31 free, 20 locate, 55 + clock, 21 fsck, 27 login, 19 + cmp, 25 fstab, 48 logout, 19 + comm, 25 ftp, 34 losetup, 28 + compress, 25 lpq, 25 + cp, 23 gpg, 17, 36 lpr, 25 + csh, 55 grep, 24 lprm, 25 + group, 49 ls, 22 + date, 20, 21 grub, 31 lsmod, 17 + Datum, 21 Gruppe, 28 + dd, 27 gzip, 17 mail, 37 + df, 20 make, 17, 34 + diff, 25 halt, 19 make-kpkg, 17 + dmesg, 17 Hardlink, 23 man, 20 + dpkg, 17, 32 head, 23 mfomat, 27 + host, 34 minix, 49 + echo, 20 hosts, 50 mkdir, 23 + egrep, 24 hpfs, 49 mkdosfs, 27 + 163 + STICHWORTVERZEICHNIS + mke2fs, 27 rpm, 32 umount, 27 + mkfs, 27 umsdos, 49 + modprobe, 28 sax, 38 uname, 17 + more, 23 scp, 34, 35 uncompress, 25 + mount, 27 setenv, 55 uniq, 25 + msdos, 49 settherm, 19 unpack, 25 + mv, 23 sh, 55 unset, 55 + shutdown, 19 unsetenv, 55 + ncpfs, 49 smbfs, 49 Upstart, 20 + netcat, 34 Softlink, 23 useradd, 28 + netdate, 21 source, 31 userdel, 28 + nfs, 49 ssh, 34, 35 usermod, 28 + nl, 23 ssh-keygen, 35 UTC, 21 + nmap, 34 startx, 38 + nslookup, 34 stderr, 19 vfat, 49 + ntfs, 49 stdin, 19, 56 vi, 24, 61 + od, 23 stdout, 19 vipw, 28 + strace, 34 w, 20 + passwd, 28, 53 strings, 23 wc, 22 + ping, 34 su, 28 wget, 17 + pr, 25 sux, 28 whatis, 20 + proc, 49 systemctl, 19 which, 20 + ps, 30 sysv, 49 who, 20 + pstree, 30 tail, 23 whoami, 20 + pwd, 20 tar, 27 + rcsshd, 36 tcsh, 55 xf86config, 38 + reboot, 19 telnet, 34 XF86Setup, 38 + recode, 23 timedatectl, 21 xset, 39 + reiserfs, 49 top, 30 xsetroot, 39 + revdep-rebuild, 33 tr, 25 yast, 20 + rlogin, 34 tune2fs, 27 + rm, 23 zcat, 17 + rmdir, 23 ufs, 49 zeichenorientiert, 28 + rmmod, 17 Uhrzeit, 21 Zeit, 21 + 164 diff --git a/linux/befehle/anhalten_des_systems_und_booten.tex b/linux/befehle/anhalten_des_systems_und_booten.tex new file mode 100644 index 0000000..2d7796a --- /dev/null +++ b/linux/befehle/anhalten_des_systems_und_booten.tex @@ -0,0 +1,24 @@ +% master: anhalten_des_systems_und_booten.tex +% Befehle v0.4 +% 2022-05-09 (Rx) + +\section{Anhalten des Systems und Booten} +%---------------------------------------- +Unter keinen Umständen darf während des Betriebs einfach der Strom abgeschaltet +oder der Resetknopf betätigt werden. Da es sonst zu einer Beschädigung des +Dateisystems mit Datenverlust kommen kann. + +\index{shutdown}\index{halt}\index{init}\index{systemctl}\index{reboot} +\begin{verbatim} +root: shutdown -h now hält das System an +root: halt hält das System an +root: init 0 hält das System an +root: systemctl poweroff hält das System an +root: shutdown -r now startet den Computer nach dem Herunterfahren neu +root: reboot startet den Computer nach dem Herunterfahren neu +root: init 6 startet den Computer nach dem Herunterfahren neu +root: systemctl reboot startet den Computer nach dem Herunterfahren neu +root: systemctl suspend Bereitschaft +root: systemctl hibernate Ruhezustand +\end{verbatim} + diff --git a/linux/befehle/anmelden_und_abmelden.tex b/linux/befehle/anmelden_und_abmelden.tex new file mode 100644 index 0000000..552977c --- /dev/null +++ b/linux/befehle/anmelden_und_abmelden.tex @@ -0,0 +1,16 @@ +% master: anmelden_und_abmelden.tex +% Befehle v0.2 +% 2022-05-09 (Rx) + +\section{Anmelden und Abmelden} +%------------------------------ +\index{login}\index{logout} +\begin{verbatim} +login: Benutzername 1. zum Anmelden den Benutzernamen eingeben +Passwort: Benutzerpasswort 2. zum Anmelden das Benutzerpasswort eingeben + +logout zum Abmelden eingeben +exit zum Abmelden eingeben +[Strg]+[d] beendet die Shell (alle Shells) +\end{verbatim} + diff --git a/linux/befehle/arbeiten_im_und_am_Filesystem.tex b/linux/befehle/arbeiten_im_und_am_Filesystem.tex new file mode 100644 index 0000000..3db2970 --- /dev/null +++ b/linux/befehle/arbeiten_im_und_am_Filesystem.tex @@ -0,0 +1,13 @@ +% master: arbeiten_im_und_am_Filesystem.tex +% Arbeiten(Verwüstungen) im und am Filesystem v0.3 +% 2022-05-09 (Rx) + +\section{Arbeiten(Verwüstungen) im und am Filesystem} +%----------------------------------------------------- +\index{cd}\index{mkdir} +\begin{verbatim} +cd Pfad Verzeichnis wechseln +mkdir Name Verzeichnis erzeugen +mkdir -p Name Verzeichnis erzeugen, fehlende Verzeichnisse mit anlegen +\end{verbatim} + diff --git a/linux/befehle/auflisten.tex b/linux/befehle/auflisten.tex new file mode 100644 index 0000000..d1893fc --- /dev/null +++ b/linux/befehle/auflisten.tex @@ -0,0 +1,20 @@ +% master: auflisten.tex +% Auflisten v0.3 +% 2022-05-09 (Rx) + +\section{Auflisten} +%-------------------------- +\index{ls} +\begin{verbatim} +ls Auflisten der Dateien im aktuellen Verzeichnis +ls Verzeichnis Inhalt des Verzeichnisses ausgeben +ls -la alles Auflisten im aktuellen Verzeichnis +ls -laFi alles ausführlicher Auflisten +ls | paste - - - - Dateien vierspaltig ausgeben +ls -1 untereinander ausgeben +ls -F Verzeichnisse mit angehängtem / markieren +ls -i inode-Nummer mit ausgeben +ls -R alle Unterverzeichnisse mit ausgeben +ls -r Auflisten der Dateien umkehren +\end{verbatim} + diff --git a/linux/befehle/ausgeben.tex b/linux/befehle/ausgeben.tex new file mode 100644 index 0000000..baa9d49 --- /dev/null +++ b/linux/befehle/ausgeben.tex @@ -0,0 +1,33 @@ +% master: ausgeben.tex +% Ausgeben v0.3 +% 2022-05-09 (Rx) + +\section{Ausgeben} +%----------------- +\index{cat}\index{strings}\index{more}\index{less}\index{nl}\index{tail}\index{head}\index{od}\index{recode} +\begin{verbatim} +cat Datei Inhalt der Datei auf dem Bildschirm ausgeben +cat Datei1 Datei2 > Datei3 Dateien1+2 zusammenfügen in die Datei3 schreiben +strings Datei Druckbare Zeichen der Datei ausgeben +more Datei Datei seitenweise ausgeben +less Datei Datei ausgeben und mit den Curser scrollen + j eine Zeile weiter + k eine Zeile zurück + u halbe Seite zurück + /Text sucht den Text + q less verlassen +nl Datei Datei mit Zeilennummern ausgeben +tail Datei zeigt die letzten 10 Zeilen einer Datei an +tail -n Datei zeigt die letzten n Zeilen einer Datei an +tail -f Datei zeigt ständig die letzten 10 Zeilen der Datei an +tail -f /var/log/messages Systemmeldungen mitverfolgen +head Datei zeigt die ersten 10 Zeilen einer Datei an +head -n Datei zeigt die ersten n Zeilen einer Datei an +od -b Datei Datei oktal ausgeben +od -c Datei Datei als ASCII ausgeben +od -x Datei Datei hexadezimal ausgeben +ls | paste - - - - Dateien vierspaltig ausgeben +recode ibmpc:lat1 Datei Konvertierung der Datei + 7 Bit DOS in das UNICODE/8 Bit Format +\end{verbatim} + diff --git a/linux/befehle/befehle.tex b/linux/befehle/befehle.tex new file mode 100644 index 0000000..f536ec9 --- /dev/null +++ b/linux/befehle/befehle.tex @@ -0,0 +1,42 @@ +% master: befehle.tex +% Befehle v0.14 +% 2025-01-29 (rX) + +\chapter{Befehle} + +% Seiten +%------- +%\clearpage +\input{linux/befehle/standartein_aus_gabe} +\input{linux/befehle/anmelden_und_abmelden} +\input{linux/befehle/anhalten_des_systems_und_booten} +\input{linux/befehle/die_runlevel} +\input{linux/befehle/upstart} +\input{linux/befehle/suse_linux} +\input{linux/befehle/zur_orientierung_auf_einem_unix-rechner} +\input{linux/befehle/datum_und_uhrzeit} +\input{linux/befehle/auflisten} +\input{linux/befehle/dateinamen} +\input{linux/befehle/dateiendungen} +\input{linux/befehle/infos_ueber_files} +\input{linux/befehle/arbeiten_im_und_am_Filesystem} +\input{linux/befehle/kopieren_und_verschieben} +\input{linux/befehle/loeschen} +\input{linux/befehle/ausgeben} +\input{linux/befehle/der_texteditor_vi_vim} +\input{linux/befehle/suchen_nach_dateien} +\input{linux/befehle/suchen_in_dateien} +\input{linux/befehle/vergleichen_von_dateien} +\input{linux/befehle/drucken} +\input{linux/befehle/file_inhalt_bearbeiten} +\input{linux/befehle/tar_verwaltet_dateiarchive} +\input{linux/befehle/disketten_festplatten} +\input{linux/befehle/zugriffsrechte_eigentuemer_gruppe} +\input{linux/befehle/prozessbefehle} +\input{linux/befehle/re_install_grub_with_live_cd} +\input{linux/befehle/software_installieren} +\input{linux/befehle/im_netz} +\input{linux/befehle/ssh} +\input{linux/befehle/gnupg} +\input{linux/befehle/x11_grafik} + diff --git a/linux/befehle/dateiendungen.tex b/linux/befehle/dateiendungen.tex new file mode 100644 index 0000000..f1e315a --- /dev/null +++ b/linux/befehle/dateiendungen.tex @@ -0,0 +1,15 @@ +% master: dateiendungen.tex +% Dateiendungen v0.1 +% 2010-07-25 (Rx) + +\section{Dateiendungen} +%---------------------- +\begin{verbatim} +.a Objektbibliotheken +.c C-Quelltextdatei +.cpp C++-Quellen +.o Objektdatei +.p Pascal-Quellen +.s Assembler +\end{verbatim} + diff --git a/linux/befehle/dateinamen.tex b/linux/befehle/dateinamen.tex new file mode 100644 index 0000000..9a244f6 --- /dev/null +++ b/linux/befehle/dateinamen.tex @@ -0,0 +1,17 @@ +% master: dateinamen.tex +% Dateinamen v0.3 +% 2022-05-09 (Rx) + +\section{Dateinamen} +%-------------------------- +UNIX unterscheidet Groß- und Kleinschreibung! liesmich, Liesmich, LIESMICH sind +verschiedene Dateinamen! +max. 256 Zeichen, alle Zeichen sind erlaubt +. am Namensanfang versteckt Datei vor ls, cp, rm, mv +\index{alias} +\begin{verbatim} +alias gibt alle definierten Kurznamen aus +alias la='ls -la' definiert Kurznamen für ein Kommando + aus ls -la wird ein la +\end{verbatim} + diff --git a/linux/befehle/datum_und_uhrzeit.tex b/linux/befehle/datum_und_uhrzeit.tex new file mode 100644 index 0000000..03db7f4 --- /dev/null +++ b/linux/befehle/datum_und_uhrzeit.tex @@ -0,0 +1,17 @@ +% master: datum_und_uhrzeit.tex +% Datum und Uhrzeit v0.3 +% 2022-05-09 (Rx) + +\section{Datum und Uhrzeit} +%-------------------------- +\index{date}\index{netdate}\index{clock}\index{timedatectl}\index{Datum}\index{Uhrzeit}\index{Zeit}\index{UTC} +\begin{verbatim} +date Datum und Uhrzeit abfragen +date -s '2000-01-29 20:00:00' +'%Y-%m-%d %T' Datum und Uhrzeit einstellen +netdate Rechnername Datum und Uhrzeit vom Rechner- + name holen +clock -u -w Datum und Uhrzeit in + das BIOS schreiben +timedatectl set-local-rtc 1 locale Zeit einstellen +timedatectl set-local-rtc 0 UTC Zeit einstellen +\end{verbatim} diff --git a/linux/befehle/der_texteditor_vi_vim.tex b/linux/befehle/der_texteditor_vi_vim.tex new file mode 100644 index 0000000..97ed171 --- /dev/null +++ b/linux/befehle/der_texteditor_vi_vim.tex @@ -0,0 +1,15 @@ +% master: der_texteditor_vi_vim.tex +% Der Texteditor vi/vim v0.3 +% 2022-05-09 (Rx) + +\section{Der Texteditor vi/vim} +%------------------------------ +\index{vi} +\begin{verbatim} +vi Editor vi aufrufen +vi Datei Editor vi aufrufen und Datei öffnen +vi -r swap-Dateien anzeigen +vi -r Datei Datei nach einem Stromausfall (oder Absturz) wieder herstellen +vi -R Datei Datei schreibgeschützt öffnen +\end{verbatim} + diff --git a/linux/befehle/die_runlevel.tex b/linux/befehle/die_runlevel.tex new file mode 100644 index 0000000..4772727 --- /dev/null +++ b/linux/befehle/die_runlevel.tex @@ -0,0 +1,22 @@ +% master: die_runlevel.tex +% Die Runlevel v0.2 +% 2022-05-09 (Rx) + +\section{Die Runlevel} +%---------------------------------------- +\index{init} +\begin{verbatim} +root: init 0 Systemhalt +root: init S Einzelbenutzerbetrieb (Single User Mode) +root: init 1 Einzelbenutzerbetrieb (Single User Mode) +root: init 2 Lokaler Mehrbenutzerbetrieb ohne entferntes Netzwerk + (Local multiuser without remote network) +root: init 3 Voller Mehrbenutzerbetrieb mit Netzwerk + (Full multiuser with network) +root: init 4 Frei (Not used) +root: init 5 Voller Mehrbenutzerbetrieb mit Netzwerk und KDM, GDM oder XDM + (Full multiuser with network and xdm) +root: init 6 Systemneustart (System reboot) +root: init q Quit zum Neueinlesen der inittab +\end{verbatim} + diff --git a/linux/befehle/disketten_festplatten.tex b/linux/befehle/disketten_festplatten.tex new file mode 100644 index 0000000..9fa2af5 --- /dev/null +++ b/linux/befehle/disketten_festplatten.tex @@ -0,0 +1,58 @@ +% master: disketten_festplatten.tex +% Disketten/Festplatten v0.3 +% 2022-05-09 (Rx) + +\section{Disketten/Festplatten} +%------------------------------ +\index{dd}\index{fdisk}\index{cfdsik}\index{fdformat}\index{mfomat}\index{mkdosfs}\index{mkfs}\index{mke2fs}\index{fsck}\index{tune2fs}\index{mount}\index{umount} +\begin{verbatim} +dd if=/dev/zero of=/dev/sda bs=512 count=1 überschreibt den MBR der ersten + SCSI-Platte mit Nullen + +fdisk Gerätedatei Partitionstabelleneditor +fdisk -l /dev/hda zeigt die Partitionstabelle der ersten + Festplatte an +fdisk -C 12416 -H 15 -S 63 /dev/hdb Partitionstabelle mit vorgegebenen + C-Zylinder H-Köpfe S-Sektoren pro Spur + bearbeiten +cfdisk Gerätedatei Curses-Partitionstabelleneditor + +fdformat /dev/fd0u1440 Diskette Low-Level-Formatieren +mformat a: Dateisystem DOS-FAT anlegen +mkdosfs -I /dev/sda Superfloppy-Format mit FAT16-Dateisystem + für z.B. USB-Sticks anlegen +mkdosfs -n Name /dev/sda1 FAT16-Dateisystem mit Name anlegen + +mkfs -t minix /dev/fd0u1440 1440 Dateisystem minix anlegen +mke2fs /dev/fd0u1440 Dateisystem ext2 anlegen +mkfs -V -t ext2 /dev/sda7 Dateisystem ext2 anlegen + +fsck -V -t ext2 /dev/sda7 Dateisystem Prüfung und Reparatur + +tune2fs Optionen Gerät Einstellungen zum ext2 Dateisystem + +mount Gerät Verzeichnis Gerät im Verzeichnis anmelden +mount -t minix /dev/fd0 /mnt Diskette im minix-Format anmelden +mount -t ext2 /dev/fd0 /mnt Diskette im ext2-Format anmelden +mount -t msdos /dev/fd0 /mnt Diskette im msdos-Format anmelden +mount -o loop disk.img /mnt Datei als Diskette anmelden + +umount Verzeichnis Verzeichnis abmelden +umount /mnt Diskette abmelden +\end{verbatim} + +\subsection{Dateisystem verschlüsseln} +%-------------------------------------- +\index{modprobe}\index{losetup} +\begin{verbatim} +modprobe loop_fish2 Modul für die Verschlüssellung laden +dd if=/dev/urandom of=datei bs=1024 count=10000 10MB Datei anlegen +losetup -e twofish /dev/loop0 datei Datei anmelden (Passwort anlegen) +mkfs -t ext2 /dev/loop0 Dateisystem anlegen +mount -t ext2 /dev/loop0 /mnt Dateisystem anmelden +umount /mnt/ Dateisystem abmelden +losetup -d /dev/loop0 Datei abmelden +/dev/loop0 /datei /mnt ext2 twofish defaults /etc/cryptotab +/datei /mnt ext2 loop,encryption=twofish,noauto,user /etc/fstab +\end{verbatim} + diff --git a/linux/befehle/drucken.tex b/linux/befehle/drucken.tex new file mode 100644 index 0000000..151672b --- /dev/null +++ b/linux/befehle/drucken.tex @@ -0,0 +1,17 @@ +% master: drucken.tex +% Drucken v0.3 +% 2022-05-09 (Rx) + +\section{Drucken} +%---------------- +\index{lpr}\index{lpq}\index{lprm}\index{pr} +\begin{verbatim} +lpr Datei Datei auf dem Drucker ausgeben +lpr -#n Datei Datei n mal auf dem Drucker ausgeben +lpr -m Datei Datei auf dem Drucker ausgeben, nach dem Drucken + bekommt man eine mail +lpq Warteschlange anschauen +lprm Jobnummer Druckauftrag/Job aus der Warteschlange löschen +pr Dateien für das Drucken aufbereiten +\end{verbatim} + diff --git a/linux/befehle/file_inhalt_bearbeiten.tex b/linux/befehle/file_inhalt_bearbeiten.tex new file mode 100644 index 0000000..899a8c8 --- /dev/null +++ b/linux/befehle/file_inhalt_bearbeiten.tex @@ -0,0 +1,19 @@ +% master: file_inhalt_bearbeiten.tex +% File-Inhalt bearbeiten v0.3 +% 2022-05-09 (Rx) + +\section{File-Inhalt bearbeiten} +%------------------------------- +\index{compress}\index{uncompress}\index{expand}\index{unpack}\index{tr}\index{uniq} +\begin{verbatim} +compress Datei Datei komprimieren nach Datei.Z +uncompress Datei.Z Datei.Z dekomprimieren +expand Datei1 > Datei2 Tabs aus der Datei1 entfernen und + zur Datei2 schreiben +unpack Datei.z Datei.z dekomprimieren +sort Datei1 > Datei2 die Zeilen der Datei1 in + die Datei2 sortieren +tr [A-Z] [a-z] < Datei1 > Datei2 Klein durch Großbuchstaben ersetzen +uniq Datei Datei ausgeben bis auf doppelte Zeilen +\end{verbatim} + diff --git a/linux/befehle/gnupg.tex b/linux/befehle/gnupg.tex new file mode 100644 index 0000000..24e60ff --- /dev/null +++ b/linux/befehle/gnupg.tex @@ -0,0 +1,117 @@ +% master: gnupg.tex +% GnuPG v0.3 +% 2022-05-10 (Rx) + +\section{GnuPG} +%-------------- +Mit GnuPG kann man Daten signieren und verschlüsseln. GnuPG unterstüzt +symmetrische und asymmetrische Verschlüsselung. + +\begin{verbatim} +http://www.gnupg.org/ http-Adresse für GnuPG +http://www.gnupg.org/related_software/gpa/ Grafische Benutzereingabe + +http://www.heise.de/security/dienste/pgp/ Krypto-Kampagne, bei der + ein Abgleich zwischen + Person, Personalausweis + und Schlüssel erfolgt + +http://kmail.kde.org/ Mailprogramme mit GnuPG +http://www.mutt.org/ Unterstützung +http://www.ximian.com/products/evolution/ +\end{verbatim} + +\subsection{Erzeugen} +\index{gpg} +\begin{verbatim} +gpg --gen-key Schlüssel-Paar erzeugen +gpg --gen-revoke 0xKeyID Widerruf Zertifikat erzeugen + > gpg-rev-Will_no_longer_use_it + > gpg-rev-Lost_private_key + > gpg-rev-Forgot_password + > gpg-rev-Key_compromised +\end{verbatim} + +\subsection{Hochladen} +\begin{verbatim} +gpg --keyserver wwwkeys.de.pgp.net --send-keys 0xKeyID + Public Key auf den Keyserver hochladen +gpg -a --export 0xKeyID | mail -s "add" pgp-public-keys@keys.de.pgp.net + Public Key an den Keyserver verschicken +Keyserver: +Land eMail-Adresse HTTP-Adresse +---- ------------- ------------ +Deutschland pgp-public-keys@keys.de.pgp.net http://wwwkeys.de.pgp.net/ +Östereich pgp-public-keys@keys.at.pgp.net http://wwwkeys.at.pgp.net/ +Schweiz gp-public-keys@keys.ch.pgp.net http://wwwkeys.ch.pgp.net/ +\end{verbatim} + +\subsection{Löschen} +\begin{verbatim} +gpg --recv-keys 0xKeyID Key vernichten +gpg --import WiderrufZertifikat +gpg --send-keys 0xKeyID + +gpg --delete-key 0xKeyID löscht einen öffentlichen Schlüssel + +cat gpg-rev-xxx | mail -s "add" pgp-public-keys@keys.de.pgp.net + Widerruf Zertifikat an den Keyserver + verschicken +\end{verbatim} + +\subsection{Holen} +\index{mail} +\begin{verbatim} +gpg --keyserver wwwkeys.de.pgp.net --recv-keys 0xKeyID + Public-Key vom Keyserver holen +mail -s "get thomasb@trash.net" pgp-public-keys@keys.de.pgp.net + Public-Key per E-Mail + vom Keyserver holen +gpg --import Key.txt Public-Key inportieren +\end{verbatim} + +\subsection{Signatur erzeugen und prüfen} +\begin{verbatim} +gpg -a --sign Datei einen Text signieren, erzeugt Datei.asc +gpg --verify Datei.asc Datei eine Signatur prüfen + +gpg --clearsign Datei einen Text signieren, + erzeugt neue Datei.asc +gpg --verify Datei.asc eine Signatur prüfen +\end{verbatim} + +\subsection{Verschlüsseln} +\begin{verbatim} +gpg -a -r Empfänger0xKeyID -e Datei + einen Text verschlüsseln, + erzeugt Datei.asc +\end{verbatim} + +\subsection{Entschlüsseln} +\begin{verbatim} +gpg Datei.asc einen verschüsselten und signierten Text + entschlüsseln und die Signatur prüfen, + erzeugt Datei +\end{verbatim} + +\subsection{Schlüsselverwaltung} +\begin{verbatim} +gpg --edit 0xKeyID Schlüsselverwaltung + help - Anzeige aller Befehle + quit - Das Menu beenden +\end{verbatim} + +\subsection{Anzeigen} +\begin{verbatim} +gpg --list-keys zeigt alle öffentlichen Schlüssel +gpg --list-sigs zeigt alle Unterschriften +gpg --fingerprint zeigt alle Fingerabdrücke +\end{verbatim} + +\subsection{Exportieren} +\begin{verbatim} +gpg -a --export 0xKeyID > Datei exportiert den Schlüssel 0xKeyID + in Datei +gpg -a --export > Datei exportiert alle Schlüssel in Datei +\end{verbatim} + diff --git a/linux/befehle/im_netz.tex b/linux/befehle/im_netz.tex new file mode 100644 index 0000000..2215cb2 --- /dev/null +++ b/linux/befehle/im_netz.tex @@ -0,0 +1,38 @@ +% master: im_netz.tex +% Im Netz v0.4 +% 2022-05-10 (Rx) + +\section{Im Netz} +%---------------- +\index{ifconfig}\index{ip}\index{ftp}\index{host}\index{nslookup}\index{ping}\index{rlogin}\index{scp}\index{ssh}\index{telnet}\index{nmap}\index{netcat} +\begin{verbatim} +#ifconfig -a -> ip link +ip link alle aktiven Netzwerkschnittstellen ausgeben +ifconfig | grep eth0 | cut -c 39-55 Ethernet-Adresse von eth0 ausgeben + +ftp Rechner Programm zur Übertragung von Files + via Internet starten + +host www.suse.de befragt den DNS-Server nach + der IP-Nummer des Rechners +host 192.168.9.10 fragt nach dem Namen des Rechners +nslookup www.debian.de befragt den DNS-Server nach + der IP-Nummer des Rechners +nslookup 192.168.11.12 fragt nach dem Namen des Rechners + +ping Rechner sendet Pakete an Rechner mit Echo + +rlogin Rechner auf anderen Rechner anmelden + +scp Rechner:Pfad Rechner:Pfad Programm zur Übertragung von Files +ssh Rechner auf anderen Rechner anmelden +ssh Rechner -l root oder auf anderen Rechner als root anmelden +ssh root@Rechner + +telnet Rechner Kommunikation ueber das TELNET-Protokoll + +nmap -sT -PT Rechner Scannt die Ports von Rechner +nmap -sT -p 1-65535 -PT Rechner Scannt alle Ports von Rechner +netcat ip port zeigt den angegebenen Port an +\end{verbatim} + diff --git a/linux/befehle/infos_ueber_files.tex b/linux/befehle/infos_ueber_files.tex new file mode 100644 index 0000000..ef82fa2 --- /dev/null +++ b/linux/befehle/infos_ueber_files.tex @@ -0,0 +1,13 @@ +% master: infos_ueber_files.tex +% Infos über Files v0.3 +% 2022-05-09 (Rx) + +\section{Infos über Files} +%------------------------- +\index{file}\index{wc} +\begin{verbatim} +file Datei Anzeige des Dateitypes +wc -lwc Datei Ausgabe der Zeilen, Worte und Buchstaben der Datei +ls -a | wc -l alle Dateien im aktuellen Verzeichnis zählen +\end{verbatim} + diff --git a/linux/befehle/kopieren_und_verschieben.tex b/linux/befehle/kopieren_und_verschieben.tex new file mode 100644 index 0000000..392b892 --- /dev/null +++ b/linux/befehle/kopieren_und_verschieben.tex @@ -0,0 +1,23 @@ +% master: kopieren_und_verschieben.tex +% Kopieren und Verschieben v0.3 +% 2022-05-09 (Rx) + +\section{Kopieren und Verschieben} +%---------------------------------------------------- +\index{cp}\index{mv}\index{ln}\index{Hardlink}\index{Softlink} +\begin{verbatim} +cp Dateien Ziel Dateien kopieren +cp -i Dateien Ziel Dateien kopieren, vor dem Überschreiben + einer Datei nachfragen +cp -R Quelle* Ziel gesamten Inhalt eines Verzeichnises kopieren +mv Quelle Ziel Datei verschieben oder umbenennen +mv -f Quelle Ziel Schreibgeschützte Datei verschieben oder umbenennen +mv -i Quelle Ziel Datei verschieben oder umbenennen, + vor dem Überschreiben nachfragen +ln Quelle Ziel Verknüpfung erzeugen (Hardlink), + beide Dateien haben die gleiche inode +ln -s Quelle Ziel Verknüpfung erzeugen (Softlink) +ln -sf Quelle Ziel Verknüpfung erzeugen (Softlink) + ohne Rückfrage überschreiben +\end{verbatim} + diff --git a/linux/befehle/loeschen.tex b/linux/befehle/loeschen.tex new file mode 100644 index 0000000..d0fdc60 --- /dev/null +++ b/linux/befehle/loeschen.tex @@ -0,0 +1,14 @@ +% master: loeschen.tex +% Löschen v0.3 +% 2022-05-09 (Rx) + +\section{Löschen} +%---------------- +\index{rm}\index{rmdir} +\begin{verbatim} +rm Datei löschen von Daten +rm -r Dateien löschen von Dateien mit Verzeichnissen +rmdir Verzeichnis löscht Verzeichnis wenn es leer ist, + überflüssig rm -r geht auch +\end{verbatim} + diff --git a/linux/befehle/prozessbefehle.tex b/linux/befehle/prozessbefehle.tex new file mode 100644 index 0000000..1eed246 --- /dev/null +++ b/linux/befehle/prozessbefehle.tex @@ -0,0 +1,37 @@ +% master: prozessbefehle.tex +% Prozessbefehle v0.3 +% 2022-05-09 (Rx) + +\section{Prozessbefehle} +%----------------------- +S=schlafend R=running(laufend) T=terminiert Z=Zombie +\index{bg}\index{fg}\index{\&}\index{ps}\index{pstree}\index{jobs}\index{top}\index{htop}\index{kill} +\begin{verbatim} +[Strg]+[z] im Vordergrund laufendes Programm anhalten +[1]+ Stopped + | +----- schlafend + +------------- Jobnummer +bg %JOB Job im Hintergrund fortsetzen +fg %JOB Job im Vordergrund fortsetzen +Programm & Programm im eigenem Prozess starten +[1] 819 + | +--------- Prozessnummer + +------------- Jobnummer +ps Überblick über die aktuell laufenden Prozesse +ps aux gibt in den meisten Fällen eine ausreichende Auskunft +pstree zeigt den kompletten Prozessbaum an +jobs das Schellkommando gibt eine Liste der aktuellen Jobs aus +top Programm, das die aktuellen Prozesse anzeigt +htop Programm, das die aktuellen Prozesse anzeigt +kill PID Prozess killen +kill %JOB Job killen +kill -1 PID Prozess initialisieren +kill -1 %JOB Job initialisieren +kill -9 PID Prozess killen +kill -9 %JOB Job killen +kill -15 PID Prozess beenden +kill -15 %JOB Job beenden +kill -HUP PID veranlasst die meisten Dämonen ihre Konfigurationsdateien + erneut zu lesen +\end{verbatim} + diff --git a/linux/befehle/re_install_grub_with_live_cd.tex b/linux/befehle/re_install_grub_with_live_cd.tex new file mode 100644 index 0000000..ce93b5d --- /dev/null +++ b/linux/befehle/re_install_grub_with_live_cd.tex @@ -0,0 +1,33 @@ +% master: re_install_grub_with_live_cd.tex +% Re-install Grub with Live CD v0.4 +% 2022-05-09 (Rx) + +\section{Re-install Grub with Live CD} +%------------------------------------- + +\subsection{Chroot} +%------------------ +\index{chroot}\index{env-update}\index{source}\index{export} +\begin{verbatim} +sudo fdisk -l Patition für das chroot festellen +sudo mount /dev/sdb3 /mnt/gentoo chroot z.B. /dev/sdb3 auf z.B. /mnt/gentoo mounten +sudo mount -t proc none /mnt/gentoo/proc Mounten der /proc und /dev Dateisysteme +sudo mount --rbind /dev /mnt/gentoo/dev +sudo chroot /mnt/gentoo /bin/bash Betreten der neuen Umgebung +env-update Umgebungsvariablen aktualisieren +source /etc/profile Profil laden +export PS1="(chroot) $PS1" Promt anpassen +\end{verbatim} + +\subsection{Grub} +%---------------- +\index{grub} +\begin{verbatim} +sudo grub +grub> find /boot/grub/stage1 +grub> root (hd0,1) +grub> setup (hd0) +grub> quit +reboot +\end{verbatim} + diff --git a/linux/befehle/software_installieren.tex b/linux/befehle/software_installieren.tex new file mode 100644 index 0000000..d22e0bc --- /dev/null +++ b/linux/befehle/software_installieren.tex @@ -0,0 +1,138 @@ +% master: software_installieren.tex +% Software installieren v0.5 +% 2022-05-09 (Rx) + +\section{Software installieren} +%------------------------------ +\subsection{rpm-Format} +\begin{verbatim} +http://www.rpm.org/ weiterführende Informationen +http://www.rpmfind.net/ Hilfe zu fehlenden rpms oder Merkmalen + +/var/lib/rpm/Packages rpm-Datenbank +/var/lib/rpm/packages.rpm -> /var/lib/rpm/Packages +\end{verbatim} + +Geänderte Konfigurationsdateien überschreibt rpm beim Update nicht, sondern +hebt sie als Datei.rpmsave auf. diff hilft die Unterschiede anzuzeigen. + +\index{rpm} +\begin{verbatim} +rpm -i Paketname.rpm Installiert mit Prüfung auf Abhängigkeiten +rpm -i --nodeps Paketname.rpm Installiert ohne Prüfung auf Abhängigkeiten +rpm -i --test Paketname.rpm Testet die Installation ohne Daten zu verändern +rpm -iv Paketname.rpm Installiert mit Prüfung auf Abhängigkeiten + und Rückmeldung +rpm -ivh Paketname.rpm Installiert, prüft, meldet und + zeigt den Vorgang an + +rpm -Uvh Paketname.rpm Update eines rpm-Binärpaketes + +rpm -Fvh Paketname.rpm Aktualisiert rpm-Binärpaket +rpm -Fvh *.rpm Aktualisiert alle rpm-Binärpakete im . +rpm -e Paket Deinstalliert mit Prüfung auf Abhängigkeiten + +rpm -qa zeigt die installierten rpm-Pakete an +rpm -qa | grep -i Paket zeigt ob das Paket installiert ist +rpm -qi Paket zeigt Informationen über das installierte Paket +rpm -qip Paketname.rpm zeigt Informationen über das rpm-Binärpaket +rpm -ql Paket zeigt die enthaltenen Dateien des installierten + Paketes an +rpm -qlp Paketname.rpm zeigt die enthaltenen Dateien des + rpm-Binärpaketes +rpm -qf /Pfad/Datei zeigt das Paket aus dem die Datei stammt +rpm -q --requires Paket zeigt die geforderten Merkmale des installierten + Paketes an +rpm -qp --requires Paketname.rpm zeigt die geforderten Merkmale des + rpm-Binärpaketes +\end{verbatim} + +\subsection{deb-Format} +\index{dpkg}\index{apt-get}\index{apt} +\begin{verbatim} +dpkg -i Paketname.deb Installation eines deb-Binärpaketes +dpkg -P Paket Deinstalliert mit Prüfung auf Abhängigkeiten + +dpkg -l zeigt die installierten deb-Pakete an +dpkg -l "*Paket*" zeigt ob das Paket installiert ist +dpkg -p Paket zeigt Informationen über das installierte Paket +dpkg -I Paketname.deb zeigt Informationen über das deb-Binärpaket +dpkg -L Paket zeigt die enthaltenen Dateien des installierten + Paketes an +dpkg -c Paketname.deb zeigt die enthaltenen Dateien des + deb-Binärpaketes +dpkg -S /Pfad/Datei zeigt das Paket aus dem die Datei stammt + +apt neue Alternative für apt-get +apt-get autoclean Veraltete Pakete aus dem Cache löschen +apt-get clean alle Pakete aus dem Cache löschen +apt-get install Paket Installiert mit Prüfung auf Abhängigkeiten +apt-get remove Paket Deinstalliert mit Prüfung auf Abhängigkeiten +apt-get --purge remove Paket Deinstalliert vollständig +apt-get autoremove Deinstalliert nicht benötigte Pakete +apt-get dist-upgrade aktualisiert die gesamte Distribution +apt-cache search Name durchsucht die gesamte Distribution +apt-get update APT-Datenbank auf den aktuellen Stand bringen + +dpkg --get-selections > Paketliste Paketliste exportieren +###sudo dpkg --set-selections < Paketliste Paketliste importieren geht nicht +\end{verbatim} + +\subsection{Portage Gentoo} +\index{emerge}\index{revdep-rebuild}\index{etc-update}\index{equery}\index{euse} +\begin{verbatim} +emerge --sync Aktualisieren des Portage-Tree mit rsync +emerge --webrsync Aktualisieren mit dem Portage-Snapshots + +emerge --search Pragrammname Nach Software suchen +emerge --searchdesc Name Suche nach Paketen im Zusammenhang mit dem Namen + +emerge Programmname Software installieren +emerge -pv Programmname Installation von Programmen simulieren, USE-Flags anzeigen +emerge --fetchonly Programmname Quellen herunterzuladen, noch nicht kompilieren + +emerge --unmerge Programmname Entfernung von Programm aus dem System + +emerge --update --ask world Aktualisierung des Systems +emerge -f -u -a world Aktualisierung herunterzuladen, aber nicht + kompilieren und installieren +emerge --update --deep world Aktualisierung des gesamten Systems +emerge --update --newuse world Neuerstellung des gesamten System + +emerge --depclean verweiste Abhängigkeiten entfernen +revdep-rebuild reverse Abhängigkeiten neu erstellen +etc-update Konfigurationsdateien zusammenzuführen + +equery belongs /Pfad/Datei zeigt das Paket aus dem die Datei stammt +equery depends Programmname Abhängigkeiten anzeigen +equery depgraph Programmname Abhängigkeiten als Baum anzeigen +equery files Programmname Dateien auflisten, die zu einem Ebuild gehören +equery hasuse USE-Flag Pakete suchen, die ein spezifisches USE-Flag + benutzen +equery size Programmname Paketgröße anzeigen +equery uses Programmname Gesetzte und nicht gesetzte USE-Flags +equery which Programmname Anzeigen des Ebuildpfads +euse -a Alle aktiven USE-Flags anschauen +euse -a -l Aktive lokale USE-Flags anschauen +euse -E USE-Flag Setzen von USE-Flags +euse -D USE-Flag Deaktivieren von USE-Flags +\end{verbatim} + +\subsection{Quelltexte} +\index{make} +\begin{verbatim} +tar xvfz Source.tgz Quelltext entpacken +./configure Makefile konfigurieren +make Programm übersetzen, + wenn Makefile vorhanden +make install Programm installieren +make uninstall Programm deinstallieren +\end{verbatim} + +\subsection{Hilfe} +\index{ldd}\index{strace} +\begin{verbatim} +ldd Programm zeigt die zu ladenen Bibliotheken des Programms +strace -eopen Programm zeigt die geladenen Bibliotheken des Programms +\end{verbatim} + diff --git a/linux/befehle/ssh.tex b/linux/befehle/ssh.tex new file mode 100644 index 0000000..a744dde --- /dev/null +++ b/linux/befehle/ssh.tex @@ -0,0 +1,57 @@ +% master: ssh.tex +% SSH v0.3 +% 2022-05-10 (Rx) + +\section{SSH} +%------------ +SSH(Secure shell) ist ein verschlüsseltes Netzwerkprotokoll auf TCP-Port 22, +ermöglicht eine sichere authentifizierte und verschlüsselte Verbindung zwischen +zwei Rechnern über ein unsicheres Netzwerk. + +\index{ssh}\index{scp} +\begin{verbatim} +scp Rechner:Pfad Rechner:Pfad Programm zur Übertragung von Files +ssh Rechner auf anderen Rechner anmelden +ssh Rechner -l root oder auf anderen Rechner als root anmelden +ssh root@Rechner +\end{verbatim} + +\subsection{Generierung eines DSA Schlüsselpaares} +\index{ssh-keygen} +\begin{verbatim} +ssh-keygen -t dsa -b 2048 generiert DSA-Schlüsselpaar mit + einer Bit-Tiefe von 2048 + ~/.ssh/id_dsa - private-key mit bestätigen + passphrase - Passwort für den private-key und der Anmeldung, + für passwortlose SSH-Verbindungen weg lassen oder + zu Beginn einer Sitzung mit ssh-add ~/.ssh/id_dsa + abfragen lassen +\end{verbatim} + +\subsection{Public-Key auf dem Zielrechner hinzufügen} +\begin{verbatim} +cat ~/.ssh/id_dsa.pub | ssh zieluser@zielrechner \ + "mkdir -p .ssh; cat >> .ssh/authorized_keys" + - public-key auf dem Zielrechner hinzufügen + +ssh zieluser@zielrechner "chmod 600 ~/.ssh/authorized_keys" + - public-key auf dem Zielrechner schützen +\end{verbatim} + +\subsection{Private-Key auf dem Qellrechner} +\begin{verbatim} +~/.ssh/id_dsa - der Private-Key gehört auf dem Qellrechner in das + ~/.ssh/ Verzeichnis +\end{verbatim} + +\subsection{Login nur mit SSH-Keys erlauben} +\index{rcsshd} +\begin{verbatim} +/etc/ssh/sshd_config - folgendes in die Datei sshd_config + PubkeyAuthentication yes eingetragen + UsePAM no + PasswordAuthentication no + +rcsshd restart - SSH-Dämon neu starten +\end{verbatim} + diff --git a/linux/befehle/standartein_aus_gabe.tex b/linux/befehle/standartein_aus_gabe.tex new file mode 100644 index 0000000..4f9048f --- /dev/null +++ b/linux/befehle/standartein_aus_gabe.tex @@ -0,0 +1,21 @@ +% master: standartein-aus-gabe.tex +% Befehle v0.5 +% 2025-01-29 (rX) + +\section{Standartein-aus-gabe} +%----------------------------- + +Jedes UNIX kennt 3 spezielle Files: +\index{stdin}\index{stdout}\index{stderr} +\begin{verbatim} +stdin Standardeingabe, normalerweise die Tastatur +stdout Standardausgabe, normalerweise der Bildschirm +stderr Standardausgabe für Fehlermeldungen, + normalerweise der Bildschirm +\end{verbatim} +All diese Files können umgelenkt werden + +\index{settherm}\index{Bildschirmschoner} +\begin{verbatim} +setterm -blank 0 Bildschirmschoner ausschalten +\end{verbatim} diff --git a/linux/befehle/suchen_in_dateien.tex b/linux/befehle/suchen_in_dateien.tex new file mode 100644 index 0000000..2f78981 --- /dev/null +++ b/linux/befehle/suchen_in_dateien.tex @@ -0,0 +1,22 @@ +% master: suchen_in_dateien.tex +% Suchen in Dateien v0.3 +% 2022-05-09 (Rx) + +\section{Suchen in Dateien} +%-------------------------- +\index{grep}\index{egrep}\index{fgrep} +\begin{verbatim} +grep Ausdruck Datei sucht nach dem Ausdruck in der Datei +grep -c Ausdruck Datei Anzahl der Zeilen, die den Begriff + enthalten ausgeben +grep -i Ausdruck Datei große und kleine Buchstaben nicht unterscheiden +grep -l Ausdruck Datei meldet die Dateien die den Ausdruck enthalten +grep -n Ausdruck Datei sucht nach dem Ausdruck und + gibt die Zeilennummer mit aus +grep -v Ausdruck Datei Ausgabe der Zeilen die den Ausdruck + nicht enthalten +egrep Ausdruck Datei sucht nach dem Ausdruck in der Datei +fgrep String Datei sucht nach dem String in der Datei +fgrep -x String Datei sucht nach dem String in der Zeile einer Datei +\end{verbatim} + diff --git a/linux/befehle/suchen_nach_dateien.tex b/linux/befehle/suchen_nach_dateien.tex new file mode 100644 index 0000000..c1a777f --- /dev/null +++ b/linux/befehle/suchen_nach_dateien.tex @@ -0,0 +1,24 @@ +% master: suchen_nach_dateien.tex +% Suchen nach Dateien v0.3 +% 2022-05-09 (Rx) + +\section{Suchen nach Dateien} +%---------------------------- +\index{find} +\begin{verbatim} +find Pfad Bedingung nach Dateien suchen +find Pfad | grep name nach Dateien suchen, hat sich bewährt +find Pfad -name .profile nach dem Dateinamen .profile suchen +find Pfad -user higi nach Dateien die dem Benutzer + higi gehören suchen +find Pfad -size +1024c nach Dateien die größer als 1024 Bytes + sind suchen +find Pfad -atime +7 nach Dateien suchen die älter als 7 Tage sind +find Pfad -print alle Dateien im Pfad ausgeben +find -name *.txt alle Dateien im aktuellen Pfad + mit der Endung .txt ausgeben +find / -size +16000000c alle Dateien die mehr als 16MB haben ausgeben +find / -fstype msdos -name *.zip sucht auf MS-DOS-Partition nach *.zip +find / -fstype vfat -name *.txt sucht auf Windows-Partition nach *.txt +\end{verbatim} + diff --git a/linux/befehle/suse_linux.tex b/linux/befehle/suse_linux.tex new file mode 100644 index 0000000..7948d86 --- /dev/null +++ b/linux/befehle/suse_linux.tex @@ -0,0 +1,18 @@ +% master: suse_linux.tex +% SuSE-Linux v0.2 +% 2022-05-09 (Rx) + +\section{SuSE-Linux} +%---------------------------------------- +\index{yast} +\begin{verbatim} +hilfe Hilfesystem starten +yast Yet another Setup Tool - + SuSE Administrationstool +yast2 Yet another Setup Tool 2 - + SuSE Administrationstool +SuSEconfig das Skript muss aufgerufen werden + nachdem die /etc/rc.config und /etc/sysconfig/ + von Hand verändert wurden +\end{verbatim} + diff --git a/linux/befehle/tar_verwaltet_dateiarchive.tex b/linux/befehle/tar_verwaltet_dateiarchive.tex new file mode 100644 index 0000000..5ffb74d --- /dev/null +++ b/linux/befehle/tar_verwaltet_dateiarchive.tex @@ -0,0 +1,88 @@ +% master: tar_verwaltet_dateiarchive.tex +% TAR (tape archiver) verwaltet Dateiarchive v0.4 +% 2022-05-09 (Rx) + +\section{TAR (tape archiver) verwaltet Dateiarchive} +%---------------------------------------------------} +Syntax:\\ +tar [-Acdrtux] [--delete] [-b n] [-BgGhijklmMoOpPPsSvwWz] [-C Verzeichnis] [-f +Datei] [-F Datei] [-K Datei] [-L Länge] [-N Datum] [-T Datei] [-V Name] [-X Datei] [{0-7}] [{lmh}] + +\begin{verbatim} +Optionen: +-A Archiv an ein Archiv anhängen +-c erzeugt ein neues Archiv +-d vergleicht das Archiv mit dem Dateisystem +--delete Datei löscht die Datei aus dem Archiv (nicht für Magnetbänder) +-r hängt Dateien an das Archiv an (nicht für Magnetbänder) +-t zeigt den Inhalt des Archivs +-u ersetzt neue Dateien oder fügt sie ein (nicht für Magnetbänder) +-x kopiert/entpackt Datei-en aus dem Archiv +--atime-preserve Zugriffszeit nach der Archivierung zurück setzen +-b n setzt die Blockgröße n*512Bytes (Voreinstellung n=20) +-B unterdrückt den Abbruch beim Lesen unvollständiger Blöcke + zum Lesen von 4.2BSD Pipes +-C Verzeichnis wechselt in das Verzeichnis, um dort weitere Dateien zu + archivieren +-f Datei benutzt Datei oder das Gerät als Archiv +-F Datei bei -M führt das Shellscript Datei aus, wenn das Medium voll ist +-G erzeugt am Anfang des Bandarchives einen speziellen Eintrag für + jedes archivierte Verzeichnis; spezielles GNU Format +-g Datei erzeugt eine Datei mit einer Liste der archivierten + Verzeichnisse als Zeitmarke der Archivierung; wenn die Datei + bereits existiert, werden nur die Dateien archiviert, die nach + dieser Zeitmarke erzeugt oder verändert wurden (spezielles GNU + Format: 1.Zeile=Zeitmarke, 1.Feld=Nr. der Partition, + 2.Feld=Inode des Verzeichnisses, 3.Feld=Name des Verzeichisses) +-h archiviert die referenzierten Dateien anstelle der Links +-i ignoriert Blöcke mit Nullbytes im Archiv +-j erzeugt ein mit bzip2 komprimiertes Archiv +-k existierende Dateien werden beim Auspacken von Archiven nicht + überschrieben +-K Datei beginnt eine Aktion bei Datei im Archiv +-l verhindert Archivierung von Dateien aus anderen Dateisystemen +-L Länge wartet auf Medienwechsel nach Länge Bytes +-m das Datum der letzten Änderung wird nicht mit archiviert +-M das Archiv ist auf mehrere Medien verteilt (Multi-Volume) +-N Datum archiviert nur Dateien, die neuer sind als Datum +-o benutzt das alte V7 tar-Format anstelle des ANSI Formates +-O schreibt die Dateien in die Standardausgabe +-p erhält die Zugriffsrechte der Dateien +-P archiviert mit absoluten Dateinamen +-R gibt zu jeder Meldung die Blocknummer des Archivblocks aus, von + dem die Meldung verursacht wurde +-s zeigt an, dass die Liste von Dateien im Argument die gleiche + Reihenfolge hat wie die Dateien im Archiv +-T Datei holt die Namen der zu archivierenden Dateien aus Datei +-v meldet jede Aktion +-V Name erzeugt ein Archiv mit dem (internen) Label Name +-w erwartet interaktiv Bestätigung jeder Aktion +-W verifiziert die geschriebenen Daten im Archiv +-X Datei liest aus der Datei Namen oder reguläre Ausdrücke von bzw. für + Dateien, die nicht archiviert werden soll +-z erzeugt ein mit gzip komprimiertes Archiv +-Z erzeugt ein mit compress komprimiertes Archiv +-{0...7}{lmh} spezifiziert das Gerät und die Dichte des Speichermediums (für + Diskettenarchive ohne Bedeutung); 0 ist der erste Streamer, 1 + 1 der zweite und so weiter; die Dichte bestimmt den Bandtyp +\end{verbatim} + +\subsection{Packen} +\index{tar} +\begin{verbatim} +tar rPvf name.tar /etc/ Verzeichnis zum tar zufügen +tar rPvf name.tar /etc/inittab* Datei-en zum tar zufügen +tar cPvzf name.tgz name.tar tar -> tgz +tar cPvMf /dev/fd0 name.tgz tgz auf Diskette sichern + +tar cvzf Datei.tgz Verzeichnis Packt Verzeichnis in Datei.tgz +\end{verbatim} + +\subsection{Entpacken} +\begin{verbatim} +tar xvfpM /dev/fd0 tgz von Diskette holen +tar xvfpz name.tgz tgz -> tar +tar tvfp name.tar Inhalt des Tars anzeigen +tar xvfp name.tar Tar entpacken +\end{verbatim} + diff --git a/linux/befehle/upstart.tex b/linux/befehle/upstart.tex new file mode 100644 index 0000000..21a37c1 --- /dev/null +++ b/linux/befehle/upstart.tex @@ -0,0 +1,26 @@ +% master: die_runlevel.tex +% Die Runlevel v0.5 +% 2022-05-09 (Rx) + +\subsection{Upstart} +%---------------------------------------- +\index{Upstart} +Upstart sorgt dafür das Dienste ereignisbasiert parallel gestartet werden können +/etc/inittab entfällt neu /etc/init/ (bzw. /etc/event.d/) + +\index{initctl} +\begin{verbatim} +initctl list Liste aller Init-Jobs +sudo initctl start/stop Init-Jobs (zB. ssh) +\end{verbatim} + +Im Header der Datei kann dann zum Starten und Beenden flogendes stehen: + +\begin{verbatim} +start on runlevel [2345] +stop on runlevel [!2345] + +sudo initctl reload-configuration ließt die Konfiguration neu ein und + startet/beendet die Dienste +\end{verbatim} + diff --git a/linux/befehle/vergleichen_von_dateien.tex b/linux/befehle/vergleichen_von_dateien.tex new file mode 100644 index 0000000..6a2a169 --- /dev/null +++ b/linux/befehle/vergleichen_von_dateien.tex @@ -0,0 +1,13 @@ +% master: vergleichen_von_dateien.tex +% Vergleichen von Dateien v0.3 +% 2022-05-09 (Rx) + +\section{Vergleichen von Dateien} +%-------------------------------- +\index{diff}\index{comm}\index{cmp} +\begin{verbatim} +diff Datei1 Datei2 zeigt die Unterschiede zwischen zwei Dateien +comm [-123] Datei1 Datei2 zwei sortierte Textdateien vergleichen +cmp -l Datei1 Datei2 Binär-/Dateien vergleichen +\end{verbatim} + diff --git a/linux/befehle/x11_grafik.tex b/linux/befehle/x11_grafik.tex new file mode 100644 index 0000000..ad7a8d4 --- /dev/null +++ b/linux/befehle/x11_grafik.tex @@ -0,0 +1,61 @@ +% master: x11_gafik.tex +% X11 - Grafik v0.3 +% 2022-05-10 (Rx) + +\section{X11 - Grafik} +%--------------------- +\index{xf86config}\index{XF86Setup}\index{sax}\index{startx}\index{export} +\begin{verbatim} +/etc/XF86Config bis XFree86.3.3.x Konfigurationsdatei +/etc/X11/XF86Config ab XFree86.4.x Konfigurationsdatei + +[Alt]+[F1] bis [F6] Umschalten zwischen Textkonsolen alle Shells +[AltGr]+[Fn] Umschalten zwischen den Textkonsolen n+12 +[Alt]+[Pfeil links oder rechts] um durch die benutzten Konsolen zu stöbern +[Strg]+[Alt]+[F1] bis Umschalten zu Textkonsolen alle Shells +[Strg]+[Alt]+[F6] aus X11 heraus +[Strg]+[Alt]+[F7] Umschalten zu X11 aus Textkonsole alle Shells + bei Caldera 2.2 [Alt]+[F8] +[Strg]+[Alt]+[<--] X-Server sofort beenden +[Strg]+[Alt]+[+] verschiedene Auflösungen im laufenden +[Strg]+[Alt]+[-] Betrieb wechseln + +xf86config Shell-Konfigurationsprogramm für X 3+4 +XF86Setup X-Konfigurationsprogramm bis XFree86.3.3.x +sax X-SuSE-Konfigurationsprogramm bis XFree86.3.3.x +sax2 X-SuSE-Konfigurationsprogramm ab XFree86.4.x + +startx X-Server starten +startx -- -bpp 16 X-Server mit 16 Bit starten +startx - -- :0 vt07 X-Server auf F7 starten +startx - -- :1 vt08 2. X-Server auf F8 starten + +export WINDOWMANAGER=WM X-Umgebungsvariable auf WM(kde, gnome, + fvwm, olwm ...) ändern +\end{verbatim} + +\subsection{Bildschirmschoner} +%----------------------------- +\index{Bildschirmschoner}\index{xset}\index{xsetroot} +\begin{verbatim} +xset s auf Standardeinstellungen zurücksetzen +xset s 60 nach 1 Minute aktivieren +xset s blank schwarzen Bildschirm verwenden +xset s noblank X-Logo statt schwarzen Bildschirm anzeigen +xset s 60 3 X-Logo alle 3 Sekunden neu platzieren +xset s off Bildschirmschoner deaktivieren +xset s on Bildschirmschoner einschalten +xset s activate Bildschirmschoner sofort aktivieren +xset q aktuelle Einstellungen anzeigen +xsetroot -solid blue Hintergrund +\end{verbatim} + +\subsection{X11 ohne Maus} +%------------------------- +\begin{verbatim} +[Umschalt]+[Strg]+[Num] Maussteuerung am Ziffernblock ein/ausschalten +[4],[6],[8],[8] links, rechts, oben, unten +[*],[-] auf linke, rechte Maustaste umschalten +[5],[+],[0],[5] Maustaste, Doppelklick, gerückt halen, lösen +\end{verbatim} + diff --git a/linux/befehle/zugriffsrechte_eigentuemer_gruppe.tex b/linux/befehle/zugriffsrechte_eigentuemer_gruppe.tex new file mode 100644 index 0000000..97ec84d --- /dev/null +++ b/linux/befehle/zugriffsrechte_eigentuemer_gruppe.tex @@ -0,0 +1,93 @@ +% master: zugriffsrechte_eigentuemer_gruppe.tex +% Zugriffsrechte/Eigentümer/Gruppe v0.3 +% 2022-05-09 (Rx) + +\section{Zugriffsrechte/Eigentümer/Gruppe} +%----------------------------------------- +\index{blockorientiert}\index{zeichenorientiert}\index{Gruppe}\index{Eigentümer} +\index{chmod}\index{chown}\index{chgrp}\index{passwd}\index{useradd}\index{usermod}\index{userdel}\index{vipw}\index{su}\index{sux} +\begin{verbatim} +ls -l /dev/fd0 +brw-rw-rw- 1 root disk 2, 0 Feb 16 16:30 /dev/fd0 +| | | +----- Gerät +| | +------ Minor-Device-Nummer(Nebennummer) +| +----------- Major-Device-Nummer(Hauptnummer) ++-------------------- b-blockorientierte Geräte c-zeichenorientierte Geräte + +ls -laFi linux.txt +1561 -rw-r----- 1 higi users 26419 Mar 13 19:19 linux.txt +| |||||||||| | | | | | | | +----- Datei/Verzeichnisname +| |||||||||| | | | | | | +----------- Uhrzeit +| |||||||||| | | | | | +-------------- Tag +| |||||||||| | | | | +------------------ Monat +| |||||||||| | | | +------------------------ Größe +| |||||||||| | | +----------- Gruppe +| |||||||||| | +----------------- Eigentümer +| |||||||||| +------------------- Links +| |||||||||+---- alle Anderen x-ausführen oder t-text mit x-bit +| ||||||||| T-text ohne x-bit +| ||||||||+----- alle Anderen w-schreiben +| |||||||+------ alle Anderen r-lesen +| ||||||+------- Gruppe x-ausführen oder s-Gruppenkennung mit x-bit +| |||||| S-Gruppenkennung ohne x-bit +| |||||+-------- Gruppe w-schreiben +| ||||+--------- Gruppe r-lesen +| |||+---------- Eigentümer x-ausführen oder s-Benutzerkennung mit x-bit +| ||| S-Benutzerkennung ohne x-bit +| ||+----------- Eigentümer w-schreiben +| |+------------ Eigentümer r-lesen +| +------------- d-Verzeichnis l-Verknüpfung ++------- inode + +chmod werwiewas Datei Zugriffsrechte einer Datei/Verzeichnis ändern + wer: u-Eigentümer g-Gruppe + o-alle Anderen a-alle 3 Benutzergruppen + wie: +-hinzufügen --wegnehmen + =-nachfolgendes Muster setzen + was: r-lesen w-schreiben x-ausführen + ( s-Benutzerkennung oder Gruppenkennung + t-text ) +chmod zahl Datei Zugriffsrechte einer Datei/Verzeichnis ändern + zahl-> rwx rwx rwx -> 4+2 4 0 -> 640 + 421 421 421 + 640 -> Eigentümer lesen schreiben + Gruppe lesen +chmod nzahl Datei Zugriffsrechte und Kennung einer Datei/ + Verzeichnis ändern + bit 4 von n, mit Benutzerkennung/ + Benutzerrechten ausführen + bit 2 von n, mit Gruppenkennung/ + Gruppenrechten ausführen + bit 1 von n, mit text werden die Dateien vor + dem Löschen durch fremde Benutzer geschützt, + macht nur bei Verzeichnissen sinn +chown NeuerEigentümer Datei Eigentümer der Datei ändern +chgrp NeueGruppe Datei Gruppenzugehörigkeit der Datei ändern + +passwd Benutzer Benutzerpasswort ändern +useradd Optionen Benutzer Benutzer anlegen + -u Benutzer-ID (-u 500) + -g Primäre Gruppenzugehörigkeit (-g users) + -G weitere Gruppenzugehörigkeit + -d Homeverzeichnis (-d /home/user500) + -s Shell (-s /bin/bash) + -m legt das Homeverzeichnis an und kopiert die + Dateien aus /etc/skel in das Homeverzeichnis + -c Kommentar + -p Passwort im Klartext! + -e Auslaufdatum (-e 2002.12.24) + -f Pufferzeit +usermod Optionen Benutzer Benutzerdaten verändern +userdel Benutzername Benutzer löschen +userdel -r Benutzername Benutzer und Benutzerverzeichnis löschen +vipw Benutzerdatenbank ändern + +su Shell mit root-Zugriffsrechten starten +su - Shell im root-Homeverzeichnis + mit root-Zugriffsrechten starten +sux - Shell im root-Homeverzeichnis + mit root-Zugriffsrechten starten und X-Variabeln +su -l Benutzername Shell im Benutzer-Homeverzeichnis + mit Benutzer-Rechten starten +\end{verbatim} + diff --git a/linux/befehle/zur_orientierung_auf_einem_unix-rechner.tex b/linux/befehle/zur_orientierung_auf_einem_unix-rechner.tex new file mode 100644 index 0000000..57694fb --- /dev/null +++ b/linux/befehle/zur_orientierung_auf_einem_unix-rechner.tex @@ -0,0 +1,46 @@ +% master: zur_orientierung_auf_einem_unix-rechner.tex +% Zur Orientierung auf einem UNIX-Rechner v0.4 +% 2022-05-09 (Rx) + +\section{Zur Orientierung auf einem UNIX-Rechner} +%------------------------------------------------ +\index{date}\index{df}\index{echo}\index{finger}\index{free}\index{last}\index{info}\index{man}\index{pwd}\index{w}\index{whatis}\index{which}\index{who}\index{whoami} +\begin{verbatim} +date zeigt Datum und Uhrzeit an +df -k zeigt den feien Platten-Platz in kB an +df -m zeigt den feien Platten-Platz in MB an +df -h Ausgabe von Größen in Menschen-lesbarem Format +du -h zeigt wie viel Platten-Platz in kB bestimmte Dateien einnehmen +echo Text schreibt den Text auf stdout (Bildschirm) +finger zeigt Infos über eingeloggte Benutzer an +finger -l zeigt ausführliche Infos über eingeloggte Benutzer an +free -t zeigt den feien Arbeitsspeicher in kB an +last zeigt wer sich zuletzt von wo aus auf dem Rechner eingeloggt hat +info Begriff Hilfe zu dem Begriff im Infoformat +man Begriff Hilfe zu dem Begriff +man -a Begriff alle Kapitel zu dem Begriff +man -f Begriff listet die gefundenen Seiten zu dem Begriff auf +man -k Begriff listet die Seiten in dem der Begriff vorkommt auf +man n Begriff Hilfe zum Begriff mit der Sektion n + Die Manual-Pages sind auf verschiedene Sektionen aufgeteilt: + 1 Shell-Kommandos + 2 System-Aufrufe + 3 Funktionen - C-Bibliotheksfunktionen. + 4 Die Beschreibung von Konfigurationsdateien. + 5 Die Syntax wichtiger Dateien. + 6 Beschreibung von Spielen. + 7 Alles was mit Text, Textformatierung und anderen Formaten zu + tun hat. + 8 Die Befehle des Systemverwalters. + 9 Die Beschreibung der Linux-Kernelroutinen. + n n kommt angeblich von neu, hier sind sonstige Manual-Pages + aufgeführt, die in eine der oberen Sektionen gehören, aber + traditionell hier stehen oder zu keiner Sektion genau passen. +pwd Ausgabe des aktuellen Verzeichnisses +w wer ist da und was ist los +whatis Befehl zeigt Kurzerklärung eines Befehls +which Befehl zeigt, wo Executable liegt, und eventual alias +who zeigt Liste aller eingeloggten Benutzer +whoami zeigt, wem die Shell gehört +\end{verbatim} + diff --git a/linux/dateien/dateibaum.tex b/linux/dateien/dateibaum.tex new file mode 100644 index 0000000..4a5054b --- /dev/null +++ b/linux/dateien/dateibaum.tex @@ -0,0 +1,320 @@ +% master: dateibaum.tex +% Befehle v0.4 +% 2011-05-27 (Rx) + +\section{Dateibaum} +%------------------ + +\begin{verbatim} +/ oberste Verzeichnis + im Dateisystem (Root/Wurzel) +. Verweis auf sich selbst +.. Verweis auf das übergeordnete Verzeichnis +/bin/ ausführbare Dateien der wichtigsten Befehle +#/bin/init -> /sbin/init +/boot/ enthält die Dateien des LILO Bootloaders und + kann Kernel-Images enthalten +/boot/boot.b der LILO-Maschinencode +/boot/map Informationen für LILO + um den Betriebssystemkern zu starten +/boot/message wird vor der LILO-Bootauswahl ausgegeben +/boot/vmlinuz der Betriebssystemkern kann auch im / liegen +/cdrom/ dient zur CDROM-Einbindung +/dev/ Sammlung der Gerätedateien +/dev/audio ähnlich wie /dev/dsp, Daten werden y-Law codiert +/dev/cdrom Link auf den CD-Rom Treiber oft /dev/hdc +/dev/console reale Console +/dev/dsp Link auf den A/D-W. der Soundk. (-> /dev/dsp0) +/dev/dsp0 Analog/Digital-Wandler der Soundkarte +/dev/fd0 erstes Diskettenlaufwerk +/dev/fd1 zweites Diskettenlaufwerk +/dev/full beim Schreiben wird der Fehler ENOSPC erzeugt +/dev/hda erstes (E)IDE Gerät +/dev/hda1 -> /dev/hda4 primäre Partitionen +/dev/hda5 -> /dev/hda? logische Partitionen +/dev/hdb zweites (E)IDE Gerät +/dev/hdc drittes (E)IDE Gerät +/dev/hdd viertes (E)IDE Gerät +/dev/initrd zusätzliche RAM-Disk mit Kernelmodulen und + Bootsystem zur Initialisierung des Kernels +/dev/kmem virtueller Arbeitsspeicher +/dev/loop* ermöglicht eine Datei wie eine Diskette oder + Festplattenpartition zu mounten +/dev/lp0 erste parallele Schnittstelle +/dev/lp1 zweite parallele Schnittstelle +/dev/lp2 dritte parallele Schnittstelle +/dev/md* zusammengelegte Festplatten linear,Raid0 oder 1 +/dev/mem physikalischer Arbeitsspeicher +/dev/midi00 direkte Kommunikation mit einem MIDI-Gerät +/dev/mixer Link auf den Mixer (-> /dev/mixer0) +/dev/mixer0 Mischpult der 1. Soundkarte +/dev/modem Link auf den Modemtreiber (-> /dev/ttyS0) +/dev/mouse Link auf den Maustreiber (-> /dev/psaux) +/dev/music eine andere Art von Sequencer, speziell für die + MIDI-Schnittstelle +/dev/nst* SCSI-Streamer (No Rewind On Close) +/dev/null Mülleimer des Systems +/dev/port zum ansprechen einzelner IO Ports +/dev/psaux PS/2-Maus +/dev/pts/ Unix98 PTY slaves +/dev/ram Link auf die RAM-Disk (-> /dev/ram0) +/dev/random zur Erzeugung kryptografisch hochwertiger + Zufallszahlen +/dev/rmt* QIC-02-Streamer +/dev/rtc batteriegepufferte CMOS-Uhr +/dev/sd* SCSI-Festplatten +/dev/sequencer Synthesizer der Soundkarte oder ein am MIDI-Port + angeschlossenes Gerät +/dev/sndstat Informationen über den Status des Soundtreibers +/dev/st* SCSI-Streamer +/dev/tty aktive virtuelle Console +/dev/tty1 1. virtuelle Console +/dev/tty2 2. virtuelle Console +/dev/ttyS0 erste serielle Schnittstelle COM1 +/dev/ttyS1 zeite serielle Schnittstelle COM2 +/dev/ttyS2 dritte serielle Schnittstelle +/dev/ttyS3 vierte serielle Schnittstelle +/dev/urandom zur Erzeugung von Zufallszahlen +/dev/xd* 8-Bit XT-Festplattencontroller +/dev/zero zum Lesen beliebig vieler Nullbytes +/etc/ Konfigurationsdateien +/etc/adjtime zur Korrektur der batteriegepufferten CMOS-Uhr + (clock) +/etc/bash.bashrc globale bash konfiguration +#/etc/conf.modules -> /etc/modules.conf +/etc/cryptotab /etc/fstab für Krypto-Filesystem +/etc/csh.login Startdatei für die C-Shell +/etc/diphosts eine Art /etc/passwd für SLIP Login +/etc/DIR_COLORS festlegen der Farben für ls +/etc/exports Verzeichnisse und Rchnernamen, die diese + Verzeichnisse per NFS mounten dürfen + wird hier eingetragen +/etc/fdprm Parameter von Diskettenformaten +/etc/fstab um Benutzern das An- und Abmelden + von Dateisystemen zu erlauben +/etc/ftpaccess Woher ? Wann ? Was ? ... +/etc/ftpusers ... und Wer NICHT ? +/etc/gateways Rechner des lokalen Netzes die Kontakt mit + anderen Netzen haben +/etc/gettydefs Beschreibung der seriellen Terminals +/etc/group Benutzergruppen und ihre Mitglieder +/etc/host auflösen von Netzwerknamen + über die resolver-Bibliothek +/etc/host.allow Rechner und Netze mit denen Verbindung aufgebaut + werden darf +/etc/host.conf eine der Konfig. den Domain Name Service +/etc/host.deny Rechner und Netze die sich nicht mit diesem + Rechner verbinden dürfen +/etc/host.equiv Rechner die "gleichartig" behandelt werden +/etc/HOSTNAME hier steht der Name des Rechners + ohne den Domainnamen +/etc/hosts ordnet IP-Adressen Hostnamen zu +/etc/inetd.conf welche Services gestartet werden (inetd) +/etc/init -> /sbin/init +/etc/init/ Dateien für Upstart +/etc/init.d/ Dateien für die Init-Levels +/etc/init.d/inetd startet den inetd, z.B. zum Anmelden + vom Netzwerk +/etc/init.d/network startet die Konfiguration + der Netzwerk Hard- und Software +/etc/init.d/portmap starte den Portmapper, + um den RPC-Server verwenden zu können +/etc/init.d/route setzt die statischen Routen im Netzwerk +/etc/init.d/sendmail kontrolliert den sendmail-Prozess + in Abhängigkeit +/etc/init.d/rc0.d/ bis rc6.d/ init 0 bis 6 +/etc/init.d/rcS.d/ init S +/etc/initscript init führt die Kommandos durch dieses Script + ondemand und respawn aus +#/etc/inittab Grunteinstellung der Init-Levels und Terminals + (/sbin/init) +/etc/isdn/ ISDN-Konfigurationen +/etc/issue Begrüßungstext beim Login (getty) +/etc/ld.so.cache zur Shared Libraries identifizierung (ldconfig) +/etc/ld.so.conf Verzeichnisse zu neuen Shared Libraries + (ldconfig) +/etc/lilo.conf Konfigurationsdatei des LILO +/etc/login.defs Login Einstllungen (login) +/etc/magic Magic Numbers zum Erkennen von Dateien (file) +#/etc/man.config -> /etc/manpath.config +/etc/manpath.config Verzeichnisse in den Manualpages gesucht werden +/etc/minicom.users Benutzer die minicom benutzen dürfen +/etc/modules.conf Modulinformationen ((für den Kerneld(Dämon))) +/etc/motd Begrüßung nach dem Anmelden +/etc/mtab Liste der aktuell zu Verfügung + stehenden Dateisystemen +/etc/mtools.conf (un)logische Laufwerksbuchstaben + von MS-DOS für die M-Befehle +/etc/named.boot für den named Dämon des DNS +/etc/networks die Namen und IP der lokalen Netze +/etc/nntpserver der Name und die IP des Newsrechners +/etc/nologin macht jedes "normale" Einloggen unmöglich, nur + die root kann sich anmelden, sonst wird der + Inhalt von nologin ausgegeben (login) +/etc/nscd.conf Konfiguration des Name Service Cache Dämon +/etc/nsswitch.conf in welcher Reihenfolge bestimmte + Informationen abgefragt werden +/etc/opt/ Rechner-spezifische Konfigurationsdateien + der Pakete +/etc/passwd Liste aller Benutzer mit Informationen +/etc/powerstatus Zustand der Stromversorgung +/etc/printcap Beschreibung des oder der Drucker des Systems + (lpd) +/etc/profile Globale Benutzerprofile +/etc/prtocols Liste aller Internetprotokolle die vom Kernel + unterstützt werden +/etc/psdatabase enthält kernelabhängige Daten für procps +/etc/rc* Systeminitialisierungsdateien (init) +/etc/rc.config zentrale Konfigurationsdatei -> /etc/sysconfig/ +/etc/rc.config.d/ weitere Dateien mit rc.config Variablen +/etc/resolv.conf bestimmt ob und wo ein Nameserver erreicht + werden kann +/etc/rpc enthält die Zuordnung der durch den rpc-Service + bereitgestellten Netzdienste zu Socketnummern +/etc/securetty Terminals von den sich der Benutzer + root anmelden darf (login) +/etc/services ordnet Portnummern Servicenamen zu +/etc/shadow hier sind die Shadow-Passwörter gespeichert +/etc/shells Liste aller Shells +/etc/shutdown.allow Liste der Benutzer die zum Herunterfahren des + Systems berechtigt sind +/etc/skel/ Dateien die beim Anlegen + eines Benutzers in das ~ kopiert werden +/etc/SuSE-release Angaben zur installierten SuSE Linux version +/etc/sysconfig/ zentrale Konfigurationsdateien -> /etc/rc.config +/etc/syslogd.conf legt fest wohin Meldungen geschrieben werden + (syslogd) +/etc/termcap Beschreibungen für Terminaleigenschaften (getty) +/etc/ttytype legt den voreingestellten Terminaltyp + für die Terminals fest +/etc/XF86Config bis XFree86.3.3.x Konfigurationsdatei +/etc/X11/XF86Config ab XFree86.4.x Konfigurationsdatei +/floppy/ dient zur Floppy-Einbindung +/home/ Heimatverzeichnisse der Benutzer +/home/~/.bash_history gespeicherte Eingaben der bash +/home/~/.bashrc Konfiguration der bash +/home/~/.ctwmrc Konfiguration des ctwm-Fenstermanagers +/home/~/.exrc Konfiguration des vi, ex +/home/~/.fvwmrc Konfiguration des fvwm-Fenstermanagers +/home/~/.openwin-menu Konfiguration des olvwm und olwm-Fenstermanagers +/home/~/.profile wird nach dem User-Anmelden in der bash + ausgeführt +/home/~/.rhosts erlaubt die r-Kommandos +/home/~/.X.err Meldungen des X-Servers +/home/~/.xinitrc diese Datei wird von .xsession ausgeführt +/home/~/.xsession diese Datei wird nach dem Befehl + startx ausgeführt +/lib/ gemeinsam genutzte Bibliotheken Shared Libraries +/lib/modules/ nachladbare Module +/lost+found/ verlorene Daten, ist in jeder Wurzel + des EXT2-Dateisystems +/media/cdrom/ dient zur CDROM-Einbindung, ist oft im / +/media/floppy/ dient zur Floppy-Einbindung, ist oft im / +/mnt/ für temporär einzuhängende Dateisysteme +/mnt/cdrom/ dient zur CDROM-Einbindung, ist oft im / +/mnt/floppy/ dient zur Floppy-Einbindung, ist oft im / +/opt/ kommerzielle Systemerweiterungen +/opt/kde/ grafische Benutzeroberfläche KDE +/proc/ virtuelles Filesystem über laufende Prozesse +/proc/cpuinfo Informationen zur CPU +/proc/devices Liste der wichtigsten Gerätetreiber +/proc/dma Liste der verwendeten DMA-Kanäle +/proc/filesystems Liste der bekannten Dateisystemtypen +/proc/interrupts Liste der Interrupts +/proc/ioports bekannte und definierte EA-Schnittstellen +/proc/kcore Gerätedatei für den Zugang + zum physikalischen Hauptspeicher +/proc/kmsg hier können Systemfehlermeldungen + ausgelesen werden +/proc/ksyms Liste der Kernel-Symbole und + ihrer Speicheradressen +/proc/loadavg durchschnittliche Systembelastung + in den letzten 1, 5 und 10 Min. +/proc/meminfo Beschreibung der aktuellen Speicherauslastung +/proc/modules Liste der geladenen Module und + Anzahl der aktuellen Nutzungen +/proc/mounts Liste der eingehängten Dateisysteme +/proc/net/ Informationen zur Netzwerkauslastung +/proc/pci Liste der gefundenen Geräte am PCI-Bus +/proc/scsi/ Informationen über SCSI-Geräte +/proc/stat Liste allgemeiner Statistiken zum System +/proc/uptime Sekunden seit dem Systemstart und + der Leerlaufzeit +/proc/version aktuelle Version des Linux-Kernels +/root/ Heimatverzeichnis des Systemverwalters root +/sbin/ Administrationskommandos +/sbin/init Nach dem Kernelstart wird versucht das + Programm init zu starten +#/sbin/init.d/ -> /etc/init.d/ +/tmp/ temporäre Dateien +/usr/ ausführbare Dateien, Libraries, X Window u.s.w +/usr/bin/ allgemein verfügbare Programmdateien +#/usr/doc/ -> /usr/share/doc/ +/usr/games/ Spiele :-) +/usr/include/ Headerdateien für den C-Compiler +/usr/include/g++/ Headerdateien für den C++-Compiler +/usr/info/ Infosystem fur GNU-Kommandos +/usr/lib/ Programmbibliotheken +/usr/lib/terminfo/ Verzeichnis mit Beschreibungen + für Terminaleigenschaften +/usr/local/ Ablage von Dateien und Kommandos die nicht + zur Distribution gehören +/usr/man/ Linux Handbuch +/usr/sbin/ Superuser Programmdateien +/usr/share/doc/ Dokumentationen +/usr/share/doc/packages/ Dokumentation der Programme +/usr/src/ Quellcode für den Kernel und weitere Programme +/usr/src/linux/ Kernel-Source +/usr/src/linux/arch/ Hardwarearchitektur-abhängige + Bestandteile des Kerns +/usr/src/linux/arch/alpha/ DEC-Alpha-Prozessoren +/usr/src/linux/arch/i386/ 386-Prozessoren +/usr/src/linux/arch/m68k/ Motorola 68k-Prozessoren +/usr/src/linux/arch/mips/ MIPS-Prozessoren R3000, R4000 bis R10000 +/usr/src/linux/arch/ppc/ Power-PC-Prozessor (ursprünglich IBM) +/usr/src/linux/arch/sparc/ SPARC-Prozessoren der Firma SUN +/usr/src/linux/Documentation/devices.txt offizielle Liste der + registrierten Devices mit ihren Gerätenummern +/usr/src/linux/drivers/ Zeichen-, Block-orientierte, + Netz-,Soundkarten-Gerätetreiber +/usr/src/linux/drivers/block/ Treiber für blockorientierte Ein-/Ausgabegeräte + wie Festplatten +/usr/src/linux/drivers/cdrom/ Treiber für CD-ROM Laufwerke + außer Atapi/IDE und SCSI +/usr/src/linux/drivers/char/ Zeichen. Treiber serielle Schnittstellen, + Bildschirm, Tastatur usw. +/usr/src/linux/drivers/net/ Treiber für die Netzwerkkarten +/usr/src/linux/drivers/pci/ Spezielle Treiber für PCI-Bus-Bausteine +/usr/src/linux/drivers/sound/ Soundkartentreiber +/usr/src/linux/drivers/scsi/ SCSI-Treiber +/usr/src/linux/fs/ Dateisysteme +/usr/src/linux/ipc/ InterProzessKommunikation, + z.B. Shared Memory, Semaphoren +/usr/src/linux/include/ Header-Dateien mit Struktur- und + Konstantendefinitionen +/usr/src/linux/init/ Initialisierungscode beim Starten des Systems +/usr/src/linux/kernel/ zentrale Aufgaben, z.B. Prozessverwaltung und + Schedulimg usw. +/usr/src/linux/mm/ Speicherverwaltung +/usr/src/linux/modules/ nachladbarer Teil des Kerns +/usr/src/linux/net/ Implementierung der Protokolltreiber + für TCP/IP,SPX/IPX usw. +/usr/src/linux/README Installationsbeschreibung für den Kernel +/usr/X11R6/ für Daten zum X-Window-System +/usr/X11R6/bin/ Programmdateien die mit X-Window-System arbeiten +/usr/X11R6/lib/X11/ Fenstermanager +/usr/X11R6/lib/X11/app-defaults/ voreingestellte Konfigurationen der + Anwendungen +/var/ sich schnell oder häufig ändernde Daten +/var/adm/inst-log/ Protokolldateien zur installation +/var/lib/rpm/Packages rpm-Datenbank +/var/lib/rpm/packages.rpm -> /var/lib/rpm/Packages +/var/log/ Protokolldateien +/var/log/boot.msg Kernelmeldungen vom letzten Start +/var/log/messages Datei in der die Kernel Meldungen + gespeichert werden +/var/log/syslog zeit an welches Modul fehlt +/var/tmp/ für große temporäre Dateien +/vmlinuz der Defaultkernel kann auch in /boot/ liegen +\end{verbatim} + diff --git a/linux/dateien/dateien.tex b/linux/dateien/dateien.tex new file mode 100644 index 0000000..0607e7d --- /dev/null +++ b/linux/dateien/dateien.tex @@ -0,0 +1,18 @@ +% master: dateien.tex +% Verzeichnisse und Dateien v0.8 +% 2010-08-06 (Rx) + +\chapter{Verzeichnisse und Dateien} + +% Seiten +%------- +%\clearpage +\input{linux/dateien/dateibaum} +\input{linux/dateien/fstab} +\input{linux/dateien/dev} +\input{linux/dateien/dateisystemtypen_unter_linux} +\input{linux/dateien/group} +\input{linux/dateien/hosts} +\input{linux/dateien/inittab} +\input{linux/dateien/passwd} + diff --git a/linux/dateien/dateisystemtypen_unter_linux.tex b/linux/dateien/dateisystemtypen_unter_linux.tex new file mode 100644 index 0000000..97c1beb --- /dev/null +++ b/linux/dateien/dateisystemtypen_unter_linux.tex @@ -0,0 +1,46 @@ +% master: dateisystemtypen_unter_linux.tex +% Befehle v0.3 +% 2022-05-10 (Rx) + +\section{Dateisystemtypen unter Linux} +%------------------------------------- + +\index{affs}\index{ext2}\index{ext3}\index{hpfs}\index{iso9660} +\index{minix}\index{msdos}\index{ncpfs}\index{nfs}\index{proc} +\index{reiserfs}\index{smbfs}\index{sysv}\index{ufs}\index{umsdos} +\index{vfat}\index{ntfs} +\begin{verbatim} +affs Ein auf dem Amiga verwendetes Dateisystem (engl. Amiga Fast Filesystem). +ext2 Das Standard-Dateisystem unter Linux (engl. Second extended Filesystem). +ext3 Journaling Filesystem +hpfs Standard-Dateisystem von IBM OS/2 (engl. High Performance Filesystem). + Dieses wird von Linux nur mit Lesezugriff unterstüzt. +iso9660 Standard-Dateisystem auf CD-ROMs. +minix Dieses Dateisystem hat seinen Ursprung in akademischen Lehrprojekten + über Betriebssysteme und war das erste Dateisystem, welches für Linux + verwendet wurde. Heute wird es unter Linux vornehmlich als Dateisystem + für Disketten verwendet. +msdos Ursprünglich von DOS verwendetes Dateisystem, welches aber bis heute von + diversen Betriebssystemen genutzt wird. +ncpfs Dateisystem für das Novell-Volumes. +nfs Hier sind die Daten auf der Festplatte eines anderen Rechners und + werden über das Netzwerk zugänglich gemacht (engl. Network Filesystem). +proc Prozess-Dateisystem (virtuell). +reiserfs Das ReiserFS ist ein hochperformantes "'Journaling Filesystem"'; + seit SuSE Linux 6.4 auf x86-Architekturen verfügbar. +smbfs SMB (engl. Server Message Block) ist ein Protokoll, das von WfW, + Windoofs NT und LAN Manager verwendet wird, um Dateien über ein Netzwerk + verfügbar zu machen. +sysv Von SCO-Unix, Xenix und Coherent (kommerzielle UNIX-Systeme für PCs) + verwendetes Dateisystem. +ufs Von BSD, SunOS und NeXTstep verwendetes Dateisystem; dies Dateisystem + wird von Linux nur mit Lesezugriff unterstützt. +umsdos Setzt auf einem gewöhnlichen fat-Dateisystem auf (engl. UNIX on MSDOS) + und erreicht durch Anlegen spezieller Dateien die notwendige UNIX- + Funktionalität (Rechte, Links, lange Dateinamen); es ist jedoch sehr + langsamm. +vfat Erweiterung des fat-Dateisystems hinsichtlich der Länge der Dateinamen + (engl. Virtual FAT). +ntfs Windows NT-Dateisystem. +\end{verbatim} + diff --git a/linux/dateien/dev.tex b/linux/dateien/dev.tex new file mode 100644 index 0000000..c022b2e --- /dev/null +++ b/linux/dateien/dev.tex @@ -0,0 +1,33 @@ +% master: dev.tex +% Befehle v0.3 +% 2022-05-10 (Rx) + +\section{/dev/} +%-------------- + +\begin{verbatim} +ls -l /dev/fd0 +brw-rw-rw- 1 root disk 2, 0 Feb 16 16:30 /dev/fd0 +| | | +----- Gerät +| | +------ Minor-Device-Nummer(Nebennummer) +| +----------- Major-Device-Nummer(Hauptnummer) ++----------------- b-blockorientierte Geräte c-zeichenorientierte Geräte +\end{verbatim} + +Die Verbindung zum Kernel wird über Slots oder Kanäle hergestellt, die +nummeriert sind und hinter denen sich die Treiber verbergen. Die Nummer +des Gerätetreibers wird als Haupgerätenummer(Major Device Number) bezeichnet. +Ein Treiber kann mehrere Geräte des gleichen Typs verwalten. Um die einzelnen +Geräte zu unterscheiden, wird dem Treiber eine zweite Zahl, die +Untergerätenummer (Minor Device Number), übergeben. Diese beiden Zahlen +charakterisieren jede Datei im /dev Verzeichnis. Zusätzlich werden noch zwei +Arten von Geräten unterschieden : \\ +Die blockorientierten Geräte mit direktem Zugriff, wie z.B. Disketten oder +Festplatten, und die zeichenorientierten squentiellen Geräte, wie Drucker, +Terminal oder Maus. \\ +Damit hat jede Gerätedatei drei "'Koordinaten"', mit der sie vom Kernel, +unabhängig von ihrem Namen, eindeutig identifiziert werden kann. +Die offizielle Liste der registrierten Devices mit ihren Gerätenummern ist bei +den Kernelsourcen in der Datei /usr/src/linux/Documentation/devices.txt zu +finden. + diff --git a/linux/dateien/fstab.tex b/linux/dateien/fstab.tex new file mode 100644 index 0000000..749cb26 --- /dev/null +++ b/linux/dateien/fstab.tex @@ -0,0 +1,22 @@ +% master: fstab.tex +% Befehle v0.3 +% 2022-05-10 (Rx) + +\section{/etc/fstab} +%------------------- + +\index{fstab} +\begin{verbatim} +#Device Mountpunkt Typ Optionen Dump Check +/dev/hdd1 / reiserfs defaults 1 1 +/dev/hda1 /boot ext2 defaults 1 2 +/dev/sda1 swap swap defaults 0 0 +none /proc proc defaults 0 0 +/dev/hda3 /temp vfat defaults,umask=7000,uid=500,gid=100 0 0 +/dev/hda2 /windows vfat defaults 0 0 +/dev/hdc /cdrom auto ro,noauto,user,exec 0 0 +/dev/fd0 /floppy auto noauto,user 0 0 +/dev/hda3 /save reiserfs loop,encryption=twofish,noauto,users 0 0 +server:/ /server nfs rw,noauto,user,exec 0 0 +\end{verbatim} + diff --git a/linux/dateien/group.tex b/linux/dateien/group.tex new file mode 100644 index 0000000..9e2db97 --- /dev/null +++ b/linux/dateien/group.tex @@ -0,0 +1,27 @@ +% master: group.tex +% Befehle v0.3 +% 2022-05-10 (Rx) + +\section{/etc/group} +%------------------- + +\index{group} +\begin{verbatim} +#Gruppenname:Paßwort:Gruppennummer:Mitgliederliste +root:x:0:root +bin:x:1:root,bin,daemon +daemon:x:2: +sys:x:3: +tty:x:5: +disk:x:6:higi +lp:x:7: +shadow:x:15:root,gdm +audio:x:17:root,higi +public:x:32: +video:x:33:higi +game:x:40:higi +modem:x:43: +users:x:100: +nogroup:x:65534:root +\end{verbatim} + diff --git a/linux/dateien/hosts.tex b/linux/dateien/hosts.tex new file mode 100644 index 0000000..1d121dd --- /dev/null +++ b/linux/dateien/hosts.tex @@ -0,0 +1,19 @@ +% master: hosts.tex +% Befehle v0.3 +% 2022-05-10 (Rx) + +\section{/etc/hosts} +%------------------- + +\index{hosts} +\begin{verbatim} +# IP-Adresse #Aliasnamen +127.0.0.1 localhost +127.0.1.1 latex +::1 localhost ip6-localhost ip6-loopback +ff02::1 ip6-allnodes +ff02::2 ip6-allrouters + +192.168.0.10 rechner rechner.loc www.rechner.loc +\end{verbatim} + diff --git a/linux/dateien/inittab.tex b/linux/dateien/inittab.tex new file mode 100644 index 0000000..654109d --- /dev/null +++ b/linux/dateien/inittab.tex @@ -0,0 +1,163 @@ +% master: inittab.tex +% Befehle v0.3 +% 2011-05-26 (Rx) + +\section{/etc/inittab} +%--------------------- + +Nach dem Kernelstart wird versucht das Programm init zu starten. Dabei werden +nacheinander die Verzeichnisse /etc/, /bin/ und /sbin/ nach init abgesucht. Kann +init /dev/console nicht öffnen wird im Einzelbenutzerbetrieb (Single User Mode) +gestartet. Beim LILO-Bootpromt kann init=/bin/sh angegeben werden um die Shell +anstelle von init zu laden. Das Programm init liest die Datei /etc/inittab und +wird durch die Datei das System konfigurieren. /etc/inittab wird vom Kommando +init Zeile für Zeile abgearbeitet. In jeder Zeile seht jeweils eine Anweisung. +Jede Zeile wird durch Doppelpunkte unterteilt. Der Aufbau sieht wie folgt aus: + +\begin{verbatim} +Terminal:Termcapeintrag:Gettykommando Simpleinit von Peter Orbaek mit + Erweiterung von Werner Almesberger +\end{verbatim} + +\subsection{Terminal} +%-------------------- + +Bezeichnet das Terminal (tty1, tty2, ttyS0 ...) + +\subsection{Termcapeintrag} +%-------------------------- +Wird in die TERM Variable der Shell geschrieben und sollte mit einem Eintrag in +der Datei /etc/termcap übereinstimmen. + +\subsection{Gettykommando} +%------------------------- +Pfad und Optionen zum Getty-Kommando + +\# Beispiel einer inittab für simpleinit +\# Format: Terminal:Termcapeintrag:Gettykommando +tty1:linux:/sbin/getty 9600 tty1 +tty2:console:/sbin/getty 9600 tty2 +tty5:con100x40:/sbin/getty 9600 tty5 +ttyS1:vt102:/sbin/getty 9600 ttyS1 + +\begin{verbatim} +Kürzel:Arbeitsstufen:Modus:Kommando Sysvinit von Mike Jagdis und + Miquel van Smoorenburg +\end{verbatim} + +\subsection{Kürzel} +%------------------- +Jede Aktion muß mit einem eindeutigen (maximal vierstelligen, a.out oder +Libraries\textless5.2.18 maximal zweistelligen) Kürzel versehen werden, das bei +Einträgen in Logfiles und bei Fehlermeldungen ausgegeben wird. + +\subsection{Arbeitsstufen} +%------------------------- +Es werden hier die Arbeitsstufen (Runlevel) eingetragen. Zulässige +Arbeitsstufen sind 0 - 9 und s. Es können auch die Pseudoarbeitsstufen(ondemand) +a, b, c und q für einmalig auszuführende Kommandos verwendet werden. Es wird +ohne Groß und Kleinschreibung bezeichnet. In einer Zeile können bis zu 11 +Runlevel zugeordnet werden. Wenn das Feld für den Runlevel leer ist, wird die +Aktion bei jedem Moduswechsel ausgeführt. +\begin{verbatim} +0 Systemhalt +S Einzelbenutzerbetrieb (Single User Mode) +1 Einzelbenutzerbetrieb (Single User Mode) +2 Lokaler Mehrbenutzerbetrieb ohne entferntes Netzwerk + (Local multiuser without remote network) +3 Voller Mehrbenutzerbetrieb mit Netzwerk + (Full multiuser with network) +4 Frei (Not used) +5 Voller Mehrbenutzerbetrieb mit Netzwerk und KDM, GDM oder XDM + (Full multiuser with network and xdm) +6 Systemneustart (System reboot) +Q Quit zum Neueinlesen der inittab +\end{verbatim} + +\subsection{Modus} +%----------------- +Gibt an wie das Kommando im letzten Feld ausgeführt werden soll. +\begin{verbatim} +initdefault Bestimmt den Runlevel beim Systemstart. +sysinit Wird einmal nach dem Kernelstart ausgeführt. +bootwait Wird einmal ausgefürt, wenn in einem Mehrbenutzerbetrieb + gestartet wird und wartet bis das Kommando beendet ist. +boot Wie bootwait nur das nicht gewartet wird. +respawn Überwacht das laufende Kommando und startet es neu, wenn es + beendet wurde. Wird es in zwei Minuten 10 mal neu gestartet, + setzt init das Kommando für fünf Minuten aus. +ondemand Wie respawn, um mit Buchstaben gekennzeichnete Level einzelne + Kommandos mit telinit zu starten. +wait Wartet bis das Kommando beendet ist. +once Wird einmal ausgefürt, es wird nicht gewartet. +off Wenn das Kommando läuft, wird es angehalten. +ctrlaltdel Kommando (Signal SIGINT, [Strg]+[Alt]+[Entf]) z.B. Rebooten des + Systems. +kbrequest Kommando wird ausgeführt, wenn das Signal SIGWINCH + [Alt]+[Pfeil hoch] von der Tastatur kommt. +powerwait Wenn init sich in einem passenden Runlevel befindet, das + Signal SIGPWR erhält oder über Pipeline /dev/initctrl den + entsprechenden Befehl erhält und wartet auf Beendigung des + Kommandows. Das Signal kann mit Hilfe eines Dämons von einer USV + erzeugt werden. +powerfail Wie powerwait wartet jedoch nicht. +powerfailnow Wie powerwait es muß die Datei /etc/powerstatus zusätzlich das + Wort Low enthalten. So kann das APM eines Notebooks mit Hilfe + eines Dämons das System herrunterfahren. +powerokwait Wie powerwait es muß die Datei /etc/powerstatus zusätzlich das + Wort OK enthalten. Auf diese weise kann das System in den + normalen Zustand gebracht werden, nachdem die Stromversorgung + wieder hergestellt ist. +\end{verbatim} + +\subsection{Kommando} +%-------------------- +Pfad und Optionen zum Kommando, wird durch die Bourne-Again-Shell abgearbeitet. +Bei jedem Kommandostart wird versucht die Datei /etc/initscript abzuarbeiten, +die dann das Kommando startet. + +\begin{verbatim} +# Beispiel einer inittab für sysvinit +# Format: Kürzel:Arbeitsstufen:Modus:Kommando + +# Bestimmt den Runlevel beim Systemstart +id:5:initdefault: + +# Erstes Script, wenn nicht im Notfallsystem (-b) gestartet wird. +si::bootwait:/etc/init.d/boot + +# /etc/init.d/rc übernimmt die Runlevel Behandlung +l0:0:wait:/etc/init.d/rc 0 +l1:1:wait:/etc/init.d/rc 1 +l2:2:wait:/etc/init.d/rc 2 +l3:3:wait:/etc/init.d/rc 3 +#l4:4:wait:/etc/init.d/rc 4 +l5:5:wait:/etc/init.d/rc 5 +l6:6:wait:/etc/init.d/rc 6 + +# Bestimmt den Einzelbenutzerbetrieb (Single User Mode) +ls:S:wait:/etc/init.d/rc S +~~:S:respawn:/sbin/sulogin + +# Aktion bei Signal SIGINT, [Strg]+[Alt]+[Entf] +ca::ctrlaltdel:/sbin/shutdown -r -t 4 now + +# Aktion bei Signal SIGWINCH [Alt]+[Pfeil hoch] +kb::kbrequest:/bin/echo "'Keyboard Request -- edit /etc/inittab to let this work."' + +# Aktion bei Stormausfall und Wiederherstellung +pf::powerwait:/etc/init.d/powerfail start +pn::powerfailnow:/etc/init.d/powerfail now +#pn::powerfail:/etc/init.d/powerfail now +po::powerokwait:/etc/init.d/powerfail stop + +# getty-Programme für die normalen Runlevels +1:2345:respawn:/sbin/mingetty --noclear tty1 +2:2345:respawn:/sbin/mingetty tty2 +3:2345:respawn:/sbin/mingetty tty3 +4:2345:respawn:/sbin/mingetty tty4 +5:2345:respawn:/sbin/mingetty tty5 +6:2345:respawn:/sbin/mingetty tty6 +#S0:12345:respawn:/sbin/agetty -L 9600 ttyS0 vt102 +\end{verbatim} + diff --git a/linux/dateien/passwd.tex b/linux/dateien/passwd.tex new file mode 100644 index 0000000..06a5151 --- /dev/null +++ b/linux/dateien/passwd.tex @@ -0,0 +1,22 @@ +% master: inittab.tex +% Befehle v0.4 +% 2022-05-10 (Rx) + +\section{/etc/passwd} +%-------------------- + +\index{passwd} +\begin{verbatim} +#Benutzername:Paßwort:Benutzernummer:Gruppennummer:GCOS:Heimat:Shell +root:x:0:0:root:/root:/bin/bash +bin:x:1:1:bin:/bin:/bin/bash +daemon:x:2:2:daemon:/sbin:/bin/bash +lp:x:4:7:lp daemon:/var/spool/lpd:/bin/bash +games:x:12:100::/var/games:/bin/bash +man:x:13:2::/var/cache/man:/bin/bash +ftp:x:40:2:ftp account:/usr/local/ftp:/bin/bash +nobody:x:65534:65534:nobody:/var/lib/nobody:/bin/bash +higi:x:500:100:Higi:/home/higi:/bin/bash +gast:x:501:100:Gast:/home/gast:/bin/bash +\end{verbatim} + diff --git a/linux/linux.tex b/linux/linux.tex new file mode 100644 index 0000000..5aa5dfc --- /dev/null +++ b/linux/linux.tex @@ -0,0 +1,10 @@ +% master: linux.tex +% Befehle v0.7 +% 2025-01-29 (rX) + +\part{Linux} +\input{linux/linux/linux} +\input{linux/befehle/befehle} +\input{linux/dateien/dateien} +\input{linux/shells/shells} + diff --git a/linux/linux/kernel_und_module.tex b/linux/linux/kernel_und_module.tex new file mode 100644 index 0000000..f283525 --- /dev/null +++ b/linux/linux/kernel_und_module.tex @@ -0,0 +1,88 @@ +% master: kernel_und_module.tex +% Kernel und Module v0.3 +% 2022-05-09 (Rx) + +\section{Kernel und Module} +%-------------------------- +\begin{verbatim} +http://www.kernel.org/ http-Adresse für den Kernel und Kernel-Patches +http://www.de.kernel.org/pub/linux/kernel/ Spiegel für den Kernel +\end{verbatim} + +\subsection{Kernel 2.4} +%---------------------- +\index{bzip2}\index{gzip}\index{zcat}\index{make} +\begin{verbatim} +tar xvfj kernel.tar.bz2 entpackt den Kernel +tar xvfz kernel.tar.gz entpackt den Kernel +cd kernel Verzeichnis wechseln +bzip2 -dc ../patch-2.x.xx.bz2 | patch -p1 Kernel patchen +gzip -dc ../patch-2.x.xx.gz | patch -p1 Kernel patchen +zcat /proc/config.gz > /usr/src/linux/.config die aktuelle Konfiguration des + laufenden Kernels auslesen +make menuconfig Kernelkonfiguration im Textmodus +make dep aktualisiert die Abhängigkeiten +make clean löscht die temporären Dateien und Ausgabedateien +make zImage übersetzt und komprimiert den Kernel +make bzImage übersetzt und komprimiert den gossen Kernel +make dep clean zImage aktualisiert,löscht und übersetzt +make modules übersetzt Module +make modules_install installiert Module +make zlilo installiert den Kernel und den Boot-Loader LILO +make bzlilo installiert den gossen Kernel und + den Boot-Loader LILO +make zdisk erzeugt eine Bootdiskette mit dem neuen Kernel +make mrproper löscht alle erzeugten Dateien, + auch die Konfiguration +\end{verbatim} + +\subsection{Kernel 2.6 (Debian 4.0 etch)} +%---------------------------------------- +\index{wget}\index{gpg}\index{make-kpkg}\index{fakeroot}\index{dpkg}\index{uname}\index{dmesg}\index{insmod}\index{lsmod}\index{rmmod} +\begin{verbatim} +sudo apt-get update Paket-Datenbank aktualisieren +sudo apt-get install kernel-package libncurses5-dev fakeroot wget bzip2 \ + build-essential benötigte Pakete installieren +cd /usr/src in das Verzeichnis zu den Quell-Paketen wechseln +wget -c http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.22.1.tar.bz2 + den aktuellen Kernel downloaden +wget -c http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.22.1.tar.bz2.sign + die dazugehörige Signatur downloaden +gpg --keyserver wwwkeys.de.pgp.net --recv-keys 0x517D0F0E + Public-Key vom Key-Server holen +gpg --verify linux-2.6.22.1.tar.bz2.sign + Kernel-Signatur überprüfen +tar xvfj linux-2.6.22.1.tar.bz2 Kernel entpacken +ln -s linux-2.6.22.1 linux Soft-Link zu den Kernel-Quellen anlegen +cd /usr/src/linux zu den aktuellen Kernel-Quellen wechseln +bzip2 -dc /usr/src/patch.bz2 | patch -p1 --dry-run + Aktualisieren prüfen +bzip2 -dc /usr/src/patch.bz2 | patch -p1 + Kernel-Quellen aktualisieren wenn nötig +make clean && make mrproper Kernel säubern und korigieren +cp /boot/config-`uname -r` ./.config + laufende Konfiguration holen +make menuconfig Konfigurations-Programm starten + Load an Alternate Configuration File + laufende Konfiguration laden und Kernel + konfigurieren +make-kpkg clean +fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image \ + kernel_headers Kernel-Pakete und Kernel-Headers herstellen +sudo dpkg -i linux-image-2.6.22.1-custom_2.6.22.1-custom-10.00.Custom_i386.deb + den neuen Kernel installieren +sudo dpkg -i linux-headers-2.6.22.1-custom_2.6.22.1-custom-10.00.Custom_i386.deb + die neuen Header installieren +sudo shutdown -r now Neustart um den Kernel zu testen + + +uname -a feststellen welcher Kernel gestartet ist + +dmesg Kernelmeldungen vom letzten Start anzeigen + +insmod Modul Modul laden +modprobe Modul Modul eigenständig laden +lsmod geladene Module anzeigen lassen +rmmod Modul Modul entfernen +\end{verbatim} + diff --git a/linux/linux/linux.tex b/linux/linux/linux.tex new file mode 100644 index 0000000..d8d693c --- /dev/null +++ b/linux/linux/linux.tex @@ -0,0 +1,12 @@ +% master: linux.tex +% Befehle v0.1 +% 2025-01-29 (rX) + +\chapter{Linux} + +% Seiten +%------- +%\clearpage +\input{linux/linux/was_ist_linux} +\input{linux/linux/kernel_und_module} + diff --git a/linux/linux/was_ist_linux.tex b/linux/linux/was_ist_linux.tex new file mode 100644 index 0000000..8744919 --- /dev/null +++ b/linux/linux/was_ist_linux.tex @@ -0,0 +1,9 @@ +% master: was_ist_linux.tex +% Linux v0.1 +% 2025-01-29 (rX) + +\section{Was ist Linux?} +%----------------------------- +\index{Kernel} +Der Kernel, eine Schnittstelle für die Software zur Hardware. + diff --git a/linux/shells/bash_rechnen.tex b/linux/shells/bash_rechnen.tex new file mode 100644 index 0000000..c22773f --- /dev/null +++ b/linux/shells/bash_rechnen.tex @@ -0,0 +1,16 @@ +% master: bash_rechnen.tex +% Bash rechnen v0.1 +% 2010-08-06 (Rx) + +\section{Bash rechnen} +%----------------i---- + +\begin{verbatim} +echo $((1+1)) gibt 1 aus + +a=4 +b=5 +echo $((a*b)) gibt 20 aus +echo $((a-b)) gibt -1 aus +\end{verbatim} + diff --git a/linux/shells/die_c-shell.tex b/linux/shells/die_c-shell.tex new file mode 100644 index 0000000..c73c8d6 --- /dev/null +++ b/linux/shells/die_c-shell.tex @@ -0,0 +1,34 @@ +% master: die_c-shell.tex +% Die C-Shell v0.3 +% 2022-05-09 (Rx) + +\section{Die C-Shell} +%-------------------- + +\index{stdin} +\begin{verbatim} +~ Home-Verzeichnis +~user Home-Verzeichnis des Benutzers user +* beliebige Zeichen-kette +? genau Zeichen +{a,b,c} a oder b oder c +[aceg] genau eines der Zeichen +[a-z] a bis z +[!adfh] kein a, d, f, h +´´ maskiert alles +\ maskiert das nachfolgende Zeichen +"" maskiert $ ` \ nicht +> Datei Ausgabe in die Datei, stdout +>& Datei Ausgabe in die Datei, stdout und stderr +>>Datei Unlenkung in die Datei, stdout umgelenkt +< Datei von der Datei lesen, anstatt von stdin zu lesen +set noclobber Überschreiben einer vorhandenen Datei verhindern +| Ausgabekanal eines Kommandos direkt in den Eingabekanal eines + anderen Kommandos leiten +#!Programm so beginnt eine Datei die vom Progamm ausgeführt wird +$HISTSIZE History-Größe +$LS_OPTIONS ls Funktionen +$PATH Pfad zu den Programmdateien +Programm & Programm im eigenem Prozess starten +\end{verbatim} + diff --git a/linux/shells/die_shells.tex b/linux/shells/die_shells.tex new file mode 100644 index 0000000..b8d8633 --- /dev/null +++ b/linux/shells/die_shells.tex @@ -0,0 +1,28 @@ +% master: die_shells.tex +% Befehle v0.3 +% 2022-05-10 (Rx) + +\section{Die Shells} +%------------------- + +Eine Shell ist ein Kommando-Interpreter, ein Programm das durch ein anderes +ersetzt werden kann. Es zerlegt die Kommandozeile, führt Sonderzeichen durch +und reicht das Kommando an UNIX weiter. +Ohne Shell gibt es keinen Zugang zum Betriebssystem. + +\index{sh}\index{ksh}\index{csh}\index{bash}\index{tcsh} +\index{export}\index{locate}\index{setenv}\index{unset}\index{unsetenv} +\begin{verbatim} +/bin/sh Bourne-Shell zum programmieren +/bin/ksh Korn-Shell Mischung aus C-und Bourne-Shell +/bin/csh C-Shell zum interaktiven Arbeiten +/bin/bash Bourne-Again-Shell +/bin/tcsh TC-Shell + +export Setzt Umgebungsvariablen, Variablen exportieren +locate Findet Dateien anhand einer Datenbank +setenv Setzt Umgebungsvariablen unter Nicht-Bash Shells, z.B. csh +unset Variable löschen in ksh, bsh und bash +unsetenv Variable löschen in csh +\end{verbatim} + diff --git a/linux/shells/die_start-scripts.tex b/linux/shells/die_start-scripts.tex new file mode 100644 index 0000000..7270f08 --- /dev/null +++ b/linux/shells/die_start-scripts.tex @@ -0,0 +1,11 @@ +% master: die_start-scripts.tex +% Befehle v0.3 +% 2022-05-10 (Rx) + +\section{Die Start-Scripts} +%-------------------------- + +\begin{verbatim} +~/.bashrc bash +\end{verbatim} + diff --git a/linux/shells/shells.tex b/linux/shells/shells.tex new file mode 100644 index 0000000..dc985f1 --- /dev/null +++ b/linux/shells/shells.tex @@ -0,0 +1,15 @@ +% master: shells.tex +% Die Shells v0.3 +% 2010-08-06 (Rx) + +\chapter{Die Shells} + +% Seiten +%------- +%\clearpage +\input{linux/shells/die_shells} +\input{linux/shells/die_start-scripts} +\input{linux/shells/tastenkombinationen} +\input{linux/shells/die_c-shell} +\input{linux/shells/bash_rechnen} + diff --git a/linux/shells/tastenkombinationen.tex b/linux/shells/tastenkombinationen.tex new file mode 100644 index 0000000..25f447b --- /dev/null +++ b/linux/shells/tastenkombinationen.tex @@ -0,0 +1,42 @@ +% master: tastenkombinationen.tex +% Befehle v0.2 +% 2011-05-27 (Rx) + +\section{Tastenkombinationen} +%---------------------------- + +\begin{verbatim} +[Strg]+[l] Bildschirm löschen bash und csh +[Strg]+[a] oder [Pos 1] Zeilenanfang bash und csh +[Strg]+[e] oder [Ende] Zeilenende bash und csh +[Alt]+[f] Wort vorwäts bash und csh +[Alt]+[b] Wort rückwärts bash und csh +[Strg]+[c] Befehlseingabe verwerfen alle Shells +[Strg]+[c] Programm abbrechen +[Pfeil rechts] und [Pfeil links] Cursor bewegen bash und csh +[Pfeil hoch] und [Pfeil runter] History-Scrolling bash und csh +[Strg]+[r] in der History suchen bash +[Tab] Komplettierung bash und csh +[Strg]+[d] beendet die Shell alle Shells +[Strg]+[d] oder [Entf] ein Zeichen löschen +[Strg]+[h] oder [Backspace] Zeichen rückwärts löschen +[Strg]+[k] Zeile ab Cursor löschen +[Alt Gr]+[Umschalt] zwei folgende Zeichen vereinen + ae -> AE, co -> \texteuro +[Strg]+[z] im Vordergrund laufendes Programm anhalten + Fortsetzung mit fg +[Umschalt]+[Bild hoch] und vorherige Textausgabe alle Shells +[Umschalt]+[Bild runter] zurückholen +[Alt]+[F1] bis [F6] Umschalten zwischen Textkonsolen alle Shells +[AltGr]+[Fn] Umschalten zwischen den Textkonsolen n+12 +[Alt]+[Pfeil links oder rechts] um durch die benutzten Konsolen zu stöbern +[Strg]+[Alt]+[F1] bis Umschalten zu Textkonsolen alle Shells +[Strg]+[Alt]+[F6] aus X11 heraus +[Strg]+[Alt]+[F7] Umschalten zu X11 aus Textkonsole alle Shells + bei Caldera 2.2 [Alt]+[F8] +[Strg]+[Alt]+[<--] X-Server sofort beenden +[Strg]+[Alt]+[+] verschiedene Auflösungen im laufenden Betrieb +[Strg]+[Alt]+[-] wechseln +[Strg]+[Alt]+[Entf] Signal SIGINT z.B. reboot Shell +\end{verbatim} + diff --git a/linux_ind.html b/linux_ind.html new file mode 100644 index 0000000..5b55565 --- /dev/null +++ b/linux_ind.html @@ -0,0 +1,171 @@ + + + + + +Outline
Page 1
+Page 2
+Page 3
+Page 4
+Page 5
+Page 6
+Page 7
+Page 8
+Page 9
+Page 10
+Page 11
+Page 12
+Page 13
+Page 14
+Page 15
+Page 16
+Page 17
+Page 18
+Page 19
+Page 20
+Page 21
+Page 22
+Page 23
+Page 24
+Page 25
+Page 26
+Page 27
+Page 28
+Page 29
+Page 30
+Page 31
+Page 32
+Page 33
+Page 34
+Page 35
+Page 36
+Page 37
+Page 38
+Page 39
+Page 40
+Page 41
+Page 42
+Page 43
+Page 44
+Page 45
+Page 46
+Page 47
+Page 48
+Page 49
+Page 50
+Page 51
+Page 52
+Page 53
+Page 54
+Page 55
+Page 56
+Page 57
+Page 58
+Page 59
+Page 60
+Page 61
+Page 62
+Page 63
+Page 64
+Page 65
+Page 66
+Page 67
+Page 68
+Page 69
+Page 70
+Page 71
+Page 72
+Page 73
+Page 74
+Page 75
+Page 76
+Page 77
+Page 78
+Page 79
+Page 80
+Page 81
+Page 82
+Page 83
+Page 84
+Page 85
+Page 86
+Page 87
+Page 88
+Page 89
+Page 90
+Page 91
+Page 92
+Page 93
+Page 94
+Page 95
+Page 96
+Page 97
+Page 98
+Page 99
+Page 100
+Page 101
+Page 102
+Page 103
+Page 104
+Page 105
+Page 106
+Page 107
+Page 108
+Page 109
+Page 110
+Page 111
+Page 112
+Page 113
+Page 114
+Page 115
+Page 116
+Page 117
+Page 118
+Page 119
+Page 120
+Page 121
+Page 122
+Page 123
+Page 124
+Page 125
+Page 126
+Page 127
+Page 128
+Page 129
+Page 130
+Page 131
+Page 132
+Page 133
+Page 134
+Page 135
+Page 136
+Page 137
+Page 138
+Page 139
+Page 140
+Page 141
+Page 142
+Page 143
+Page 144
+Page 145
+Page 146
+Page 147
+Page 148
+Page 149
+Page 150
+Page 151
+Page 152
+Page 153
+Page 154
+Page 155
+Page 156
+Page 157
+Page 158
+Page 159
+Page 160
+Page 161
+Page 162
+Page 163
+Page 164
+ + diff --git a/linuxs.html b/linuxs.html new file mode 100644 index 0000000..e1e72a1 --- /dev/null +++ b/linuxs.html @@ -0,0 +1,8467 @@ + + + + + + +linux v0.1.52
+tresix69@freenet.de
+15. Februar 2025
+betreut durch Thomas resiX
+