From dd75cbf32d9238944731b2fb059bddce03bb64eb Mon Sep 17 00:00:00 2001
From: "G. Richardson"
aptitude install texlive-base-bin texlive-latex-recommended texlive-fonts-recommended \ texlive-latex-extra texlive-lang-german texlive-generic-extra
-
TODO: RPM-Pakete.
kivitendo bringt drei alternative Vorlagensätze mit:
Standard
f-tex
RB
Es lässt sich ein initialer Vorlagensatz erstellen. Die LaTeX-System-Abhängigkeiten hierfür kann man prüfen mit:
./scripts/installation_check.pl -lv
Der Angemeldete Benutzer muss in einer Gruppe sein, die über das +
TODO: RPM-Pakete.
kivitendo bringt drei alternative Vorlagensätze mit:
RB
f-tex
rev-odt
Der ehemalige Druckvorlagensatz "Standard" wurde mit der Version 3.3 entfernt, da er nicht mehr gepflegt wurde.
Es lässt sich ein initialer Vorlagensatz erstellen. Die LaTeX-System-Abhängigkeiten hierfür kann man prüfen mit:
./scripts/installation_check.pl -lv
Der Angemeldete Benutzer muss in einer Gruppe sein, die über das Recht "Konfiguration -> Mandantenverwaltung" verfügt. Siehe auch Abschnitt 2.9.4, âGruppen anlegenâ.
Im Userbereich lässt sich unter: "
-> -> " die Option "Neue Druckvorlagen aus Vorlagensatz erstellen" auswählen.
Vorlagen auswählen
: Wählen Sie hier den Vorlagensatz aus, der kopiert werden soll
- (Standard
, f-tex
oder RB
.)
+ (RB
, f-tex
oder odt-rev
.)
Neuer Name
: Der Verzeichnisname für den neuen Vorlagensatz. Dieser kann im Rahmen der üblichen
Bedingungen für Verzeichnisnamen frei gewählt werden.
Nach dem Speichern wird das Vorlagenverzeichnis angelegt und ist für den aktuellen Mandanten ausgewählt.
Der gleiche Vorlagensatz kann, wenn er mal angelegt ist, bei mehreren Mandanten verwendet werden.
Eventuell müssen Anpassungen (Logo, Erscheinungsbild, etc) noch vorgenommen werden. Den Ordner findet man im Dateisystem unter
./templates/[Neuer Name]
-
Der Standard-Vorlagensatz von kivitendo. Wie unter https://www.kivitendo.de zu - sehen.
Ein Vorlagensatz, der in wenigen Minuten alle Dokumente zur Verfügung stellt.
Keine Redundanz. Es wird ein- und dieselbe LaTeX-Vorlage für alle briefartigen Dokumente verwendet. Also +
Hierbei handelt es sich um einen vollständigen LaTeX Dokumentensatz mit alternativem Design. Die odt oder html-Varianten sind nicht gepflegt.
Die konzeptionelle Idee der Vorlagen wird hier + auf Folie 5 bis 10 vorgestellt. Informationen zur Anpassung an die eigenen Firmendaten finden sich in der Datei Readme.tex im Vorlagenverzeichnis.
Eine kurze Ãbersicht der Features:
Mehrsprachenfähig, mit Deutscher und Englischer Ãbersetzung
Zentrale Konfigurationsdateien, die für alle Belege benutzt werden, z.B. für Kopf- und FuÃzeilen, und Infos wie Bankdaten
mehrere vordefinierte Varianten für Logos/Hintergrundbilder
Berücksichtigung für Steuerzonen "EU mit USt-ID Nummer" oder "AuÃerhalb EU"
Ein Vorlagensatz, der in wenigen Minuten alle Dokumente zur Verfügung stellt.
Keine Redundanz. Es wird ein- und dieselbe LaTeX-Vorlage für alle briefartigen Dokumente verwendet. Also Angebot, Rechnung, Proformarechnung, Lieferschein, aber eben nicht für Paketaufkleber etc.
Leichte Anpassung an das Firmen-Layout durch Verwendung eines Hintergrund-PDFs. Dieses kann leicht mit dem eigenen Lieblingsprogramm erstellt werden (Openoffice, Inkscape, Gimp, Adobe*)
Hintergrund-PDF umschaltbar auf "nur erste Seite" (Standard) oder "alle Seiten" (Option
"bgPdfFirstPageOnly
" in Datei letter.lco
)
Hintergrund-PDF für Ausdruck auf bereits bedrucktem Briefpapier abschaltbar. Es wird dann nur bei per E-Mail
@@ -78,8 +78,34 @@
shipto*
-Variable leer ist, wird die entsprechende Adressvariable eingesetzt. Wenn also die Lieferadresse in
StraÃe, Hausnummer und Ort abweicht, müssen auch nur diese Felder in der Lieferadresse ausgefüllt werden. Für den Firmenname wird
der Wert der Hauptadresse angezeigt.
-
Hierbei handelt es sich um einen vollständigen \LaTeX Dokumentensatz mit alternativem Design. Die odt oder html-Varianten sind nicht gepflegt.
Die konzeptionelle Idee der Vorlagen wird hier - auf Folie 5 bis 10 vorgestellt. Informationen zur Anpassung an die eigenen Firmendaten finden sich in der Datei Readme.tex im Vorlagenverzeichnis.
Eine kurze Ãbersicht der Features:
Mehrsprachenfähig, mit Deutscher und Englischer Ãbersetzung
Zentrale Konfigurationsdateien, die für alle Belege benutzt werden, z.B. für Kopf- und FuÃzeilen, und Infos wie Bankdaten
mehrere vordefinierte Varianten für Logos/Hintergrundbilder
Berücksichtigung für Steuerzonen "EU mit USt-ID Nummer" oder "AuÃerhalb EU"
Hierbei handelt es sich um einen Dokumentensatz der mit odt-Vorlagen erstellt wurde. Es gibt in dem Verzeichnis eine Readme-Datei, die eventuell aktueller als die Dokumentation hier ist. +Die odt-Vorlagen in diesem Verzeichnis "rev-odt" wurden von revamp-it, Zürich erstellt +und werden laufend aktualisiert. Ein paar der Formulierungen in den Druckvorlagen entsprechen dem Schweizer Sprachgebrauch, z.B. "Offerte" oder "allfällig". +
+Hinweis zum Einsatz des Feldes "Land" bei den Stammdaten für KundInnen und LieferantInnen, +sowie bei Lieferadressen: +Die in diesem Vorlagensatz vorhandenen Vorlagen erwarten für "Land" das entsprechende +Kürzel, das in Adressen vor die Postleitzahl gesetzt wird. +Das Feld kann auch komplett leer bleiben. +Wer dies anders handhaben möchte, muss die Vorlagen entsprechend anpassen. +
+odt-Vorlagen können mit LibreOffice oder OpenOffice editiert +und den eigenen Bedürfnissen angepasst werden. +Wichtig beim Editieren von if-Blöcken ist, dass immer der gesamte Block +überschrieben werden muss und nicht nur Teile davon, da dies sonst oft +zu einer odt-Datei führt, die vom Parser nicht korrekt gelesen werden kann. +
+Zur Zeit gibt es in kivitendo noch keine Möglichkeit, odt-Vorlagen bei Mahnungen +einzusetzen. Entsprechende Vorlagen sind deshalb nicht vorhanden. +
+Inwieweit es möglich ist, für die in Version 3.2.0 neu eingeführten Pflichtenhefte +odt-Vorlagen zu erstellen, sind wir am abklären. +Wenn dies möglich ist, werden wir in Zukunft auch eine odt-Vorlage für Pflichtenhefte +in diesem Vorlagensatz zur Verfügung stellen. +
+Fehlermeldungen, Anregungen und Wünsche bitte senden an: +empfang@revamp-it.ch +
In den allermeisten Installationen sollte das Drucken jetzt schon
funktionieren. Sollte ein Fehler auftreten, wirft TeX sehr lange
Fehlerbeschreibungen, der eigentliche Fehler ist immer die erste Zeile,
die mit einem Ausrufezeichen anfängt. Häufig auftretende Fehler sind zum
diff --git a/doc/html/ch03s03.html b/doc/html/ch03s03.html
index 1dea2a90b..f38b7eb2d 100644
--- a/doc/html/ch03s03.html
+++ b/doc/html/ch03s03.html
@@ -574,7 +574,7 @@
invdate
Rechnungsdatum
invnumber
- Rechnungsnummer
Die Variablen in anderen Vorlagen sind ähnlich wie in der
Rechnung. Allerdings heiÃen die Variablen, die mit
inv
beginnen, jetzt anders. Bei den Angeboten
fangen sie mit quo
für "quotation" an:
diff --git a/doc/html/ch04.html b/doc/html/ch04.html
index 20b33d94c..430f22418 100644
--- a/doc/html/ch04.html
+++ b/doc/html/ch04.html
@@ -1,6 +1,6 @@
Globale Variablen liegen in einem speziellen namespace namens +
Globale Variablen liegen in einem speziellen namespace namens "main", der von überall erreichbar ist. Darüber hinaus sind bareword globs global und die meisten speziellen Variablen sind... speziell.
Daraus ergeben sich folgende Formen:
$PACKAGE::form
.local $form
Alle Ãnderungen an $form
werden am Ende
- des scopes zurückgesetzt
Das erste Problem ist FCGIâ¢.
SQL-Ledger⢠hat fast alles im globalen namespace abgelegt, und erwartet, dass es da auch wiederzufinden ist. Unter FCGI⢠müssen diese Sachen aber wieder @@ -39,7 +39,7 @@ dies hat, seit der Einführung, u.a. schon so manche langwierige Bug-Suche verkürzt. Da globale Variablen aber implizit mit Package angegeben werden, werden die nicht geprüft, und somit kann sich - schnell ein Tippfehler einschleichen.
Um dieses Problem im Griff zu halten gibt es einige wenige + schnell ein Tippfehler einschleichen.
Um dieses Problem im Griff zu halten gibt es einige wenige globale Variablen, die kanonisch sind, d.h. sie haben bestimmte vorgegebenen Eigenschaften, und alles andere sollte anderweitig umhergereicht werden.
Diese Variablen sind im Moment die folgenden neun:
@@ -62,7 +62,7 @@
$::request
Damit diese nicht erneut als Müllhalde missbraucht werden, im Folgenden eine kurze Erläuterung der bestimmten vorgegebenen - Eigenschaften (Konventionen):
Ist ein Objekt der Klasse + Eigenschaften (Konventionen):
Ist ein Objekt der Klasse
"Form
"
Wird nach jedem Request gelöscht
Muss auch in Tests und Konsolenscripts vorhanden sein.
Enthält am Anfang eines Requests die Requestparameter vom User
Kann zwar intern über Requestgrenzen ein Datenbankhandle @@ -110,7 +110,7 @@ push @{ $form->{TEMPLATE_ARRAYS}{number} }, $form->{"partnumber_$i"}; push @{ $form->{TEMPLATE_ARRAYS}{description} }, $form->{"description_$i"}; # ... -}
Das einzige Hash unter den globalen Variablen
Wird spätestens benötigt wenn auf die Datenbank +}
Das einzige Hash unter den globalen Variablen
Wird spätestens benötigt wenn auf die Datenbank zugegriffen wird
Wird bei jedem Request neu erstellt.
Enthält die Userdaten des aktuellen Logins
Sollte nicht ohne Filterung irgendwo gedumpt werden oder extern serialisiert werden, weil da auch der Datenbankzugriff für diesen user drinsteht.
Enthält unter anderem Listenbegrenzung vclimit, @@ -122,10 +122,10 @@ überwiegend die Daten, die sich unter
-> befinden, bzw. die Informationen über den Benutzer die über die - Administrator-Schnittstelle eingegeben wurden.Objekt der Klasse "Locale"
Wird pro Request erstellt
Muss auch für Tests und Scripte immer verfügbar + Administrator-Schnittstelle eingegeben wurden.
Objekt der Klasse "Locale"
Wird pro Request erstellt
Muss auch für Tests und Scripte immer verfügbar sein.
Cached intern über Requestgrenzen hinweg benutzte Locales
Lokalisierung für den aktuellen User. Alle Ãbersetzungen, - Zahlen- und Datumsformatierungen laufen über dieses Objekt.
Objekt der Klasse "LXDebug"
Wird global gecached
Muss immer verfügbar sein, in nahezu allen + Zahlen- und Datumsformatierungen laufen über dieses Objekt.
Objekt der Klasse "LXDebug"
Wird global gecached
Muss immer verfügbar sein, in nahezu allen Funktionen
$::lxdebug
stellt Debuggingfunktionen
bereit, wie "enter_sub
" und
@@ -135,14 +135,14 @@
"message
" und "dump
" mit
denen man flott Informationen ins Log (tmp/kivitendo-debug.log)
packen kann.
Beispielsweise so:
$main::lxdebug->message(0, 'Meine Konfig:' . Dumper (%::myconfig)); -$main::lxdebug->message(0, 'Wer bin ich? Kunde oder Lieferant:' . $form->{vc});
Objekt der Klasse "SL::Auth"
Wird global gecached
Hat eine permanente DB Verbindung zur Authdatenbank
Wird nach jedem Request resettet.
+$main::lxdebug->message(0, 'Wer bin ich? Kunde oder Lieferant:' . $form->{vc});
Objekt der Klasse "SL::Auth"
Wird global gecached
Hat eine permanente DB Verbindung zur Authdatenbank
Wird nach jedem Request resettet.
$::auth
stellt Funktionen bereit um die
Rechte des aktuellen Users abzufragen. Obwohl diese Informationen
vom aktuellen User abhängen wird das Objekt aus
Geschwindigkeitsgründen nur einmal angelegt und dann nach jedem
Request kurz resettet.
Dieses Objekt kapselt auch den gerade aktiven Mandanten. Dessen Einstellungen können über
$::auth->client
abgefragt werden; Rückgabewert ist ein Hash mit den Werten aus der Tabelle
- auth.clients
.
Objekt der Klasse
+ auth.clients
.
Objekt der Klasse
"SL::LxOfficeConf
"
Global gecached
Repräsentation der
config/kivitendo.conf[.default]
-Dateien
Globale Konfiguration. Configdateien werden zum Start gelesen und danach nicht mehr angefasst. Es ist derzeit nicht geplant, dass @@ -152,16 +152,16 @@ $main::lxdebug->message(0, 'Wer bin ich? Kunde oder Lieferant:' . $form->{ file_name = /tmp/kivitendo-debug.log
ist der Key file
im Programm als
$::lx_office_conf->{debug}{file}
erreichbar.
Warnung | |
---|---|
Zugriff auf die Konfiguration erfolgt im Moment über - Hashkeys, sind also nicht gegen Tippfehler abgesichert. |
Objekt der Klasse + Hashkeys, sind also nicht gegen Tippfehler abgesichert.
Objekt der Klasse
"SL::InstanceConfiguration
"
wird pro Request neu erstellt
Funktioniert wie $::lx_office_conf
,
speichert aber Daten die von der Instanz abhängig sind. Eine Instanz
ist hier eine Mandantendatenbank. Beispielsweise überprüft
$::instance_conf->get_inventory_system eq 'perpetual'
- ob die berüchtigte Bestandsmethode zur Anwendung kommt.
Objekt der Klasse + ob die berüchtigte Bestandsmethode zur Anwendung kommt.
Objekt der Klasse
"SL::Dispatcher
"
wird pro Serverprozess erstellt.
enthält Informationen über die technische Verbindung zum Server
Der dritte Punkt ist auch der einzige Grund warum das Objekt global gespeichert wird. Wird vermutlich irgendwann in einem anderen - Objekt untergebracht.
Hashref (evtl später Objekt)
Wird pro Request neu initialisiert.
Keine Unterstruktur garantiert.
+ Objekt untergebracht.
Hashref (evtl später Objekt)
Wird pro Request neu initialisiert.
Keine Unterstruktur garantiert.
$::request
ist ein generischer Platz um
Daten "für den aktuellen Request" abzulegen. Sollte nicht für action
at a distance benutzt werden, sondern um lokales memoizing zu
@@ -174,20 +174,20 @@ file_name = /tmp/kivitendo-debug.log
ist der Key f
$::request
Muss ich von anderen Teilen des Programms lesend drauf
zugreifen? Dann $::request
, aber Zugriff über
- Wrappermethode
Die folgenden Variablen waren einmal im Programm, und wurden - entfernt.
Die folgenden Variablen waren einmal im Programm, und wurden + entfernt.
war nötig, weil cookie Methoden nicht als Klassenfunktionen funktionieren
Aufruf als Klasse erzeugt Dummyobjekt was im Klassennamespace gehalten wird und über Requestgrenzen leaked
liegt jetzt unter
$::request->{cgi}
-
war nötig, weil einige Funktionen in Schleifen zum Teil ein paar hundert mal pro Request eine Liste der Einheiten brauchen, und de als Parameter durch einen Riesenstack von Funktionen geschleift werden müssten.
Liegt jetzt unter
$::request->{cache}{all_units}
Wird nur in
AM->retrieve_all_units()
gesetzt oder
- gelesen.
Inhaltsverzeichnis
Inhaltsverzeichnis
v|YmnMy>v0_iFgeOt?3SReOV2WqX~c@GqAbKxr#O;=^h% zxIq(w*$1dOBu2%QK^B7MQ0LYqZN^+>d}uk88v~9w)R6Q+q!Bu_ly~3taHEk%%{k1F z5bY5^r$*ivm(qRS`5iMXWv9+sI(4zqTE)KQN$MWM-jM>k2|lF=N#Tg;+d2cWnS96J zk|roE@y`yvm``4GA1{ z+>O#cAir@SW 11p$uM fgL@IP zidq%}oi9 ~F&ZNw+jjcHsn3d4w`9S5*~) zTK{>z1#Raq@xO9C_G}hhW^tR``c=|;70LmKpzBnris5oI%x3XyLrf{8#VI2@&Rf)Z z!j%iCY+ZPDhewbE1t=c80fId!TkFFa^zSY{3w&lh2MY0wbkxP=pP97C0E74?Zum8z zqH{VPSb-LjorT(lTXPLtTdgjOrp0Y79)j(5erh04BF-TE)#WBVSq%dy+$(j>+)5Yj zLoo6$bUN#B(~Kws=idJ6E>0CToLZA;Nbo}rS9|jx@N^dV&s3&ha8xFy{~-$<7*@vr zU `;HSo`0W&7%C_rMcGO^GzGXBE?HWqpo4rU@&W@dUu&i}#!kbg<_HW2@f zApeU7-2danOng^>OT}k~h6G__{U1EgvDaxw{@0e@{R<+sfp_ N`l$=(>t3PoGV$T0@T{T(Y@1j)x7`cqYZMzWGN8vVa &XwMfuv=AkC|!T9NHNYO90K(zY$h}w5A G2^YH|0XS!`%htw&>?N43RSmUNEXLN5q9gr-x8HxXT5!+YH%Ni> z9X1x}0ypSC+@$-lz-MM%PX@c^9eVv u;hwH6V8*w zU^-?&X_Msy8j@?87;$wS0kanK=KtcZ{_x35Mf&^a@hm5D8 iDnGa6&2@~IAX~Issxiox_$eT#H;{-(ys7%Sa z!;KQ@*DGpC`(MB>) C?W6Qkw&a9)b+j&obcqrELhc5ElR$QYS79MkYG>i#5z43vRfwU{7ZS7p zv{~UmgMi_rx_;tpW8SC+LF#gl1}P83cwhcmdTpL4fh54$r~WSfsJnDy6;Y0Igizkr znKUZ_6>eglLVq Q+N?rAnfzsY^NqR3ni`AlET7?!gd++92+ z s?M}8&7SQ^tUn`uLD?(H=o_`-Nh^MfnOM=Gfo}@XV#a@~7oR;7_ z^WWkBgd_oQ>g19zj@O%3OB@B`>Mb%QLHRO|DMH6KCY{Bqvmz{YXDuI*hJVXPp#-WM z73r%@-Hu +;k$A1jQjHLbVHkA}Sz&)}!y-MP57%eS>hTKS zpaD`V_-#6fzbVoNH2A5G@%vwgtzs!22qQiu;vsog9H$yMMlhV6?Lef>$>T6e5Yc}` zM2`X2&DV0ED!mNAWiU`l&{kk9#WU~9WIIM%>cY?quFVD4vW|5_+PKJJ=atefZV?wE z%T(^75oVE4a=-c6v|_bglOJ7*C*OP W{jg)@Nexw$NO1ADO%P1r)hlfE;OhO7i0hhNZ6DdBq(^wxP7@G-{U0D)<;I zw-;`;7=$gwAKxo`o32=W#fUrYNBHb(OxVd;rH#4nHa@^-;!QXK4FRy#?qvFVFFC;0 zG$@#IhdiVEJvV-B12X*b2g9|mK#(`Urlne2q0ROZ2jSG25EWfz%E1=9$;SQL2HWPJ zVj1nY(M$ujd^VvYK~W_q;X|>EkNbyN&m+scW5#y1bbjJ)^NmaRg?AJTq|u&evbvUG z_f@#FkPRo(ddkGS5_)^h#rg$_dkH`>xo>xghc))>{HhzZqW?!|nC_&+`Lw)bSYy$| zVeRR0$S(Nc%`f&-Q3BnXb_h@bSwgT$pWi_H1d-<}(>dkR137%iO7^IoUm)ho$P>Nf z35CUb>sKEZ4noxb9v=YZ^q%PYNCXR0B@j=bz5&Ioy1k?99_?3(y-avfj0Rw-J5Zq5 z9WK{QlO0wXWjGrOT~EzXMoOOmlNHkhsBIr8>8bMa`T1&a@>2M0?3aT-U!H&pPI8wL zoy?x}Uzdcx#kf>K&ldR%O5i<)dLAc9P uR+dS(R($0F z6J4En 5eG-c>Du4|+F%i;i>C^;22J z5}NK15Qd3`RM3Q;qpVcyymqntyr7)>&?Vij?RaF?6zTL+-X`{QoFtWV-E27YHcj9 z%+7JFESgX!Svu;?B{+Syx_;aZra*A@Lbr={arDvkTgUIkA{*&wKmCPxxewD`%Tj4- z-Y;WLg@c`)G#v^>2pI4?tPd`N8J$KDg2@nlKIMTPHH(rEKPXEU@8qDmRpOn%nA36# zP#%yPTjd~1Kv4fTzH1b(iD~si%6q5uQR*qwZbrcuyr7hmK3GP%AVN(d>{*8we2Y{u zx`Z4foj8qzzM=U-DNWjFf}e+39&}B?rTTo6M?-V$cu!Xm4qz1-)bNzHA_C&Zqlg`+ z!j=HGg|NBYF7oq&Sr%GWPUveSdMNBZBv<-7Nk$MHJCql3%9X=PysU7NBFvuwToLDP zOr@OcRimkbzV6>qU8(MDtc?!B<9qaL;S6f*FGBST{=F6dJOr3ON`H_;xG)z~q~CYe zqzEtxl0@bjCV-o1#h4iKK^ND42Rfwn1Y#a$-3Vlpg*L7UcP>{LImA;?K%F-rniXE` z%mR-_vpBQH$_5Ng`K9c99J0Nqr=#7FaE5^c^8jCM+Ujhbq2+o-&P5WXSZ4FUN)qv- z_lReV{EJx>ViCn<8WowKOd)n^NUPg**9+D^7r8973jjTMU|-Y3XDg)(g$%JJp r`Ad5f+1*D;lsRP$G;h^6KMB5<-5(}rHgyTG@)G{^m%61%HP|& z_Qf D)M zWqa#d!<%~s-;iM>HduwwDSs0^gZfNn&IO4IQ)MFO2C}%EtoV)6lullgL$q7vbr`A- zQdQ6kE&zlQgy?HCBTDa{vY$|~`8-3qrRHqo4*+~huJ^J +vHBQBEJLIk4ET*<|P6qYG1%XN|o>=mpk|3B{_b zrY&QfME4mQ_j5k@^+xe*T`{SzwBXh&zw`5!YEZF37s=~| 9qdY%pM6@U(O|UUYvQSar64U(p*>$`zZgtm{>|@eu;J^bABo z;LPW5Pbda{?xYsZq?<;x;X0iF8p78fvI2try^NO17mR-{=KmGIY{S!fm>=cYiW<`( z8zpujc6#fTv $a(L2MliCZ41ct3e*TS3B_nK%Ojbh+y2o7O70u z5NIU-12Q@=Z2yfy{}hk^5@P-jepoqEl}I2bQ<3E%P$^jcbMF5UY1saYnEnfdSeTeO z{uhMU{(F>&?SCW yP3r7On8`4)^iH`-|AhGG<3XlDkIb;dTY~6&go77z3h1{IY z9#)E_ l5E^bl&mKTR+!*Q_MZVs5dId@&9^73uU+58chIPlH;EnK%I zh2#0ToP|JcmlgF{b}mbeCFf xaugBucR1Bt{$V6bm*aSKZVTfaAA`HNTVG-9 z%${MaV{>yy+hwzzuCd2gn16ag;U+cLi xFM5i*Cbc3e2{ zm@n<-Hs4g~rjKUXbdP{{3p#RQSLs1sr)ny7hsWaPg5cQAAEmPr@Dee}_i%5d zpmCwrY3(P>6G&;B4-Q+$Bv_|yOeiET{fN5{zzbIQ_ll1a%8K)=jD%6Toxpes99qeh z*28Wkyy314Amv&KAv==L={oXfx-eT9rn2#mb6S;44Fgg#-`#HnqfUjvd1kV#5VWRQ z-UY5p8)D7F*vl|Vu}l1ysA((S#}%dIw2k`?bc_6a!Hvzsv^Xa krXr0+yyCPhTiHkQ4fNz$}`9xVebMy|T%4z$t1wEquB=abA_OM$Z z5=f#xzkB}XnQ4d{&|h5&QKK@qu4UTd1jd6y0+Tmi4w1o%TyuWobANJZ|GY&yCqrNC z39Duherj)TfkqRb7(OnYd)HHyZnc2UByy{CBp}J1Nb&_v&d{(N=24GnQjU>t19;b* zwr8mXpA1CZu4_?u_(k<46;BS~zNj9oxRMG~WbdHop{7QCQ|ovc{bO4ia42N+RoH}} zu-I01CrM3LH}$$M=3l5{YgREolU5XLE)g&4={l_V8+@8-dN)X-h73>YcP5Y=50wJH zPMZ89>e!UB!Cvj&>W+r>fkJ|t0An!l*u0@6fA?Nq_pR7{T))@$+jQ-HsW2I3tke!& zFk`@j=e5-BsRBlp!|9uto3yBb2Sw!RX6psyM__k2Zf&9RytEMOSq>T)wa+TB_^@P4 z1+p1RoT1!Pmyts+B9|`zh&24&Fasy0-78nfota)y8-6nX@nyR)px2NZ2Rt3me0LIV z_e|NH=!vblwDdHSOsIWSNVil=S162Dkoj_B*wTZh=k-hmj`cOlov+!7t>+8NsL81O zyf@vy8@Fpum6%%VQE8nMO8#!mTyv@?PnT0@|@7 vw@l46@Vc?8Hc^0PNLdANj^-yxKnXEb5tEQ@$2kX0&(iYuJP)w;kFeGD(NY zwrlF4-7U>w4WA*s4tz)ry$jpK81q`g7~^t@kiAXhx#bjId9wW(ZLvw%f0|p>MtZp? zF^1(D2xb2(Z*4PFGu%BbRHA2$#PtLOK8=J0d9{YFgG+~>4@b~O4tPlcqt|XS=}u{S zh(lnC&gYn?A2fytkWze {%t7b{5`al8;`KDq_dMs1i!p) z=t)c4yAJFQhE)}-EeTn*szt+rM`Xpp)o-Z(kF9r%uH@afwqx5y#~s_YZQC|FE4FRh z?yzIKqmFIc$&>!?v-f$=d(NlzVf|{<8e@&Bn)ke~ISUF3a;~}XT34b0a9L{#g#uUI zMM5y-+V8*0d~r_Nz=@s?9J)8O1Pl4~M82q1YaExpQA4}oEppo8olJd@A-g3wNFaS~ zQjR`Q>T{{^U|x;O+`pq2Zv)uKsaDC3XY;(yjJ~+FWFMBB6F$W0d&^I)%egt}nq+-9 z7ODB26=I#wLewIjaG{Q6NbcNt9?K9-hR78WZr7DgBI;Tv(pXj_6Z;Q0{MSdTc| z;!rnC3_&QUYDgALk}Wo0dzb6yvmfF>_2{-`h-x}S%1jOA>aDdmDT)8Fo=*DUW13W` zZ!Yik36%1xzy4Q9pr+2AgHKVi{x6J!^* `%?uH`da6EYGa^MS_ z+jlE4+h14qV_hBxr%Cj|e4PoGH6C9H*8!XI2ozPXx1$}8b`!3{Yn_0cI_w?)`RTs~ ztfQan=9dAh;qKhv>+SRly UKQBS!M^X8@=0+obrTdF0_POK7d%5Le80i|Fh9>&3Y~K(1!P z>~~7Uy-w_33)bYzf<@?`Y5bi5N`;- hKE)^qa$?D`r^*pM!%mxOF9}iide(76y ztYfe0id-UuG4(ka;b5nbH-dlwy##Gq|AEPi-ZT<`+g(6#_Iy*uL$WBdgn{2=57N_m zZB8`Xa#`=8!@iaWSp+9uwqzZ{7mpx<<)5xSJG2sYu$R4>tL|l=s{! i}UY9H1gu38N95InEl7B;}T4JX+kSuP$v-P94L)PQZ6* zKLz-@TD}5^OFz2+4AX51ZYhi4)&Z0kJ*Sb{1=Kqq&`3+R%JT&pVPc_hnQ$Vhzdgn@ zJXyCBaLhyxQwUV-TUW1%I3>=;ece6MFyp0_o-A%8Hvr&7%ut*N5rcU7Yv)a?X!N`V zlt|9$0K+v9 87 63-758VbGxCqa~FWxM$meUitl`=fN;l+L1QChD~P(#7V=U>(Z4 JJn8YeUu{2Gx=i{uFpY*w+9_duzxgZaL#5S3)!s-63rVtPP$ovwrDJJg; zaqE2nl|K9`d?*#I- t3L&@i Szp#fFcSl;pQieEI=Y%hd4T`ocu=e**E& z`tD%eI^mTU^@|>tvKM ?F4Bhxlv;5QLRyn+PQFE9a}Nu_9SmqcO8=$a@V_fOMM`9t*;VK%oH|)X}I)1J7i! zS`XVtLsF}IY+xC-tm6;BKiZHcH48Ef=WpO96{y%<7Pr3f6qs16&CcbFUyeKD$tf@g z-_edP2ojFA)?eh6Nm`$Sm%i~D_yJ }F(*zfk zb98Ab&_PcZj%@xM{mJI-+W6tqsX0X@7C+rad4;eZ4K_ GDR=xv)`VZb!{}$6Ntt9Iub>Z`mI&Z_Dyoxt zkQgEa1W7M4lzEoTkQUX46}nohNN&U`4bJ-!?13#}$cHvxh@UpV^q=W8`7U2OU}U$5 zYRcyYx63cXNYn|gWK3J#U?`{$ZAG<^*5g+Qxs2T5^^e1u1f%*4egz_E=81A~Q@*;9 zs>T8?^G?vOCDT$LU>ssX^#B 95yh`eF;sGI7A>Wh@=FOS ;+QfjKmgAR}oI znva`925=yV&*T&@`#?R~n`tX~^Cf^fi;V^3db?FL(@jaL<7W!WHUJvT)@P{B$}ARv zhj|&_h}c$z $-Y}m92socx)e*SXo^)N-2*Cn 9XdOadQ=t zLm5WvvZ*)2(GkqVj?IXelIvrU(ZJaG;rTstUeKBf`|&I_Z^1^RQ6{cVI%K=GQ%=Zp z^rcf&S8dB2S}PedSpe`eXvuVWSEes_Foj&u3rdq2Zdq@#PTyrNaYVwR;zIfjG3$L4 zl>;ZieBkmpIOHg0{~)P2s3P^lPAFy3!qVGXOk6Qmen0STQH(?TdM#`;%m;y-(Y=2a zS3}*9Ae576c^Qw^Ybww+5eo{@0Ul}Eg9C?$!`;D!b+(9IvJ+4!#dnSB;U|G@Kg41e z)Rv`X$&H2yc9??Hbm%x*B2CV80+$O;vLM}7N}x&Ke7&Sf&hGbJXeLI^UrwlQZErl# zKt$+wo2JFM<}#w*d_ZMJ@!YGt`|IY{V~2lZgD-3I^Yp{;@&4@9MR{jp^PVHpofkvP zJ!6>FXS1l;77Wn;wz%a(;W*Q^{UJn!37<3Vj+i_382T;@h|bFCs<^WgWjz109#xSe zQ}Y7~>~#l1UD`Er7-lz$Dyg@k{6efMgb3LqPzW`Ux`cq9+SP&z*Y4Zz%ou2Q%%;&7 z0jaVO6M6Q^%I=TzQvUmk&ELs*jRJ*7U}OW-%Hi0D5e *1y1PA=cVA>YE$LqJ0X*Jr96l>H3Jt-V z`Ca&VH(UXP?yq)@udSaBN4_5qt*h_eOS}X%9sL)M?vKL|>4In`524=O9+~-`?v6!O zC*VRi32r#Mq#M8MgYPW0L7KK%iQp|j6l*QqCpSE CuTwwbbut91CqYcCMFPoC>Up6J%zZ}W`xRtE`LN&PmIYJ4B zh=^X;-p<9;&c&IC?O$-m|Hr&!`^$O!7sc_P93)$+AS(naFk33}DHsLdTx;~J%>t?G zl=_7M^3b4yoo(6ASfHT__yA*|2QR^3D?WK3?5Bnl&+VgfmrA1q8`ZKL1RtqjPj#x6 z-a@6-{;3E90swKnc(I_&dR%QOvG%&lpqMHuStk9deFwbO%37M-g;?5ca-~+vZT}!1 zH{9L9GCKHh`fPf1GN=)-NpZ>7lLk9vxX~YkNOO_u#qBA)2MbEG)=m1%@ye2(D_bI6 zp0;&%W^8Ou9QnHs%-UKFbIj@KFKc0T8N-2zLy+o#?htHW5OgZ}ba=V`q} p|A9m7F+ pT8XJJUDp& zdUk5n+yv-vb^~t6M>Ug}$zY7psx)w#3NwcDbV4c}{KJ9u**6)WpNMjYdqT}s@tKX6 z6|-pjXb_G?$IObF&NUn0sQgwRDn7bk%KJ-06Vvz(NCziyzofhGx@ISxF^=*iPsYyM zhhj<-yS+)_>FEhaM#CZQl$5SUEv3iGt6BR-O-U+yDqwZTDB~V>)n@wg=Mlak4^Q=Z zmG-#M@t9|s5TYcyO|fa~4zpet{#JzmGI8Nj0em98%vYK#(;`;0skh1&@sOI+e$nZ2 zU-DMB(!!iVcp;_tGSFJgYi9o%iWHn(bf3{u*=GFcy@~5vsFxnwCQ87Fb06!}trCLQ z{P#EzF@OY7SdIi_=ED2_x*PNR>w_EjyW1ge`lHh}hzkdps%pp&8&y-)N5du9LBV=M zC&Qq?$T;jaR7%A^{X{s;-DTW~1jTU<4<~evXo4jm5{!&b0(g%3-Gma%8tQjMv;LwR z=jj9fk|j1L*u|g@jL^Ka&BZ~`k7N^y2@*~LD*yy9G&TA+B_(qj@4653E+g QpZ79DV-TITNfT1dlV9%R}^(qBB`X^P0n zodC~accvtj_89`ZitW8Y#vly$9=RS~V(h8|{^Y7LA#ePoBk3jb%E|7`^B1o?QmSv? z#h=D($%s8AfSjg~V)v+NZMF-$=v>8Irqzj@a!ZQXvg`G#^EO;GfXf=Zl>xJJbH|d& zuEKObO0z(CyIe=l?h#@@YOwVn92dCku>eC!*xJ-#Nx*271)`RxN?}lCs~t y(_-2!O6k z5Z`^Sgxiw<+3ws;c|rmLi2|L?O Sq5uW<;&;_j-by)TG4z!M%at;ToQ;plbJeoZn|rNPcHKcW!QMlV`VLT*6s^TL zh6#m9F>6*#evQCljzO>CXG=k=W&o2{*rJH4cV`%@)`L#Zko5$5`J!?@`JRQT7U<4X zB9ZykAC3DWT~MQbNfy!5+u1{2Unw5BjpBh>QG?K0&ngr~^%Ah9?JGqzPNv%&XVGYJ z#dwrZ;YodDR(ExqUmvYsagcE$oEPw7;y?>z^*qqV;Phj8p%ot6g5p8uG(cQEc`2R% ztg_WEFNp?jpZcA7pd6Y~_GvqVpFFXP(GOlimd23@4vTwP?7peX1T0h1?7gVO3&}ha zfVid@c@YG #Cx0^LFpPv*RMYA3J*3qiSXqfNyS^#)}O-4^0D8_ z9>U=M!A`_8d%Z|i!qwOws$%5zNqM8na8c)s4 - <
COY*^&< zpxJi_qf^)3-HUZ)*OPbWS*;=qT7%dA1Xv6E*>fYh@ZnD~Dsv2D4Q&OrHnv_fUSKg2 zBgOgoLq0%d{n3B?1MoAcBn%rrWNp^S$^LL+qD|IH>11F?n63aCbKowWFy4y{ZWK`h z+Cu5GN?gljPs1t|3i~nwUlxX7sL7<*G~KdRR{lzS6|r#bGKq|`AY=tGIPQm#H?c9U zpDi!}xHs &mB^l@VZwas2n_V6Zifr*E8!5< zJ4kVE+V^E=Pp+qMPDZL3UW!6!Q1A4vPiv*M(r=p*pCa<)D2IQ{rq!6jz C4(4fcX&~v;wNo5eI@sE>opDJ4~MP-S8YZn?QI|3;#6f$RCh>A|Fle@t4!P zWB(trg)NoX6MT}2?XLy;KeBCXe^YG#C=Ukq|7@GGGo;SCeieuIGEo2~wY2S5IWT-5 zYiEoP@?kE&`4jn_|B2K!z@#Ma;X@njNo=iVwEP{up5EO}Iw*{ pmOMqLq1Yal7;AkjtjjJXZJh{Olm1J#J!b$S*K$cwQ^|X>z+Y zl#d9 PBY#wW@AQb=JJn}+xQ!(xwB(~x z`x!Y-y9-Y?c^)b_oz(pM5Ae{D*v~bj*VxE|2j|<12&C_4OVwRU-p$ixO-rtyhx{Fn z><^76n cYhARM}87pf`mzk>oTDG5n@Rl|r+T<6=xrbGe zA-_L0r&CKekgW-ecMg i#GI4|;1?_;rApV9gVcLRjkD$E<8SyI?;T>Dr-0%h-#aT+^?)NL+FF zln(Kk{l&eLLpmwOSE*r5yYNW&()H_~`Z2GE{14NY02t*Ya r;tI^xsi}*0iszUeVD2D U&+} zS^zy;?Y Jua}KV7OJdjW@6h?{m$&@;@RLO{FN1xI&!{3 zk2smxad2^b-M_uNKY8PJJN-%X*=4y7?+2lZ0EX|5ViJjEtoi5pkHL2gs9<}Dh8t2$ zC%kTG-qw6|4Dm tz;1x#p8L;&j+A0@v>yVMW#A_@%n>;&hNsu0-VraU nWsZs;AX~z;|wGw z+D^XF0A+_PCvFR-3Grq$d= cMTxnU>St-l=0Ts8l(-|BL0D?PUJx0n{(iaDM$uJ^X&i(<@2u((J zTX sx|~(_Nf!YKNBcCeB~lEC*=UOr*gEL%ojcq *K+btNd`5Dy-6;;D>1Tt+w8@rmK zp>!|~--LotCWI7;J~Sb)3j@)^wIExPBxRx;xb#C5CJ$WRerKR`=stakIAyXL_Q-Gb zq;kKn)M23V9?O>ERLSDP8j=)_+CgAg0rv)I;;M^yX+-mK>edhEYK;3r!*wjMzgImu z#I-7bcro-F+-2G;I@JX?I3@bGkzx3`P?!#B#v3?&to^@z3>W!va8xjf HK`pwme0(bgAOU;Kyi47kncp>*9_FAEDSjz7 zGAp*Fka^i-cHPas5?6}0@#$(+-irm6U@NRQ@KwrtZS?>}i08FJhn6pFv{rZ{3n(~b z!g*D?@M+NhzS3|_4)$y72gvyRLC&n#-28T++YCyg?B{1%EHwM898JShQOow)B;UB| z*> !#U# zXi0J1rJKHd?$?dDfBnM6!z+v9#Y{(5#zl0h$ia5-*ybt0>n-gfgcR+gYuFL(gfs8u zY9cud?M*^Xv4gatIAirEJns9x7+HKkG*DS%28;k^_D%DtwGd1WEkfKa!98aTI4MS( z$D25IQcJ`i6DcRn3IJ#5;r{zY)2pldn*6(nu tgC)ZF~&! Fl?Q%r^0;G)db8mB-Co)z zFo%ej-!Vi|R)AlS!D-6{*-K$${oDy5U6pyMM6nvN;v|w<2aRDh)c3a8j~*{io&0hx z4N*C1TVu3#;Ks^5GZRx=Q$?PbYT1*d_#9CZp+AJLp^3{lHbnCeY5Jp+e{A?2Vg9nm z`~+pxS^WKf2sY0Dl4YrqoRA|F|9{o?)iLm2s*RcBKW*>q%>PRLR3C$3CEi7_rZ)6_ zh5U&^ARy7$ndw+qnTeSHZb^S(bsS7z9RaC^{J`WO?97S&=orB4e?d94)Pe(W3c!N4 zw*6iU`d9Kl|10?)XW@x1+QZ1e+yaZXUJ%)S)Nh2$(c RWhK{8D{NnZR0)vYSq_6963+b;QY4WuY<#efr6N*KWBz z9e%Vt>Zf&gZ1eR^b~h6ihFmtWf4Vqz5f0BZ=NdDw3A GNQ)+1y{YQ_W6ySKFo+ zEqeBI`8g^i`B1#Zx~JX*-MDXml?^(0oY0?}NhB^4=AgWH0wJs2{);vJ4!pkEjo~6h z!4u(}S8rJ;fD*>Mkp0hJ) `RqzOiz2md)o&(k70#_C}NguL%*@-dk-N|fVv&6GbU2MX|ZOo530KmPa(XFw8;S z&^cQ9lj<#pM`Vt`g!);_Tu5dm8x>#3rW_g7lq2g=uCJxPRJlT( P-fZKgq; ${cTh_N3P*AQ#KA~h2^i=`_hqeFU1 z3b?)zFOU>K wpgq|3%sZf$ zk}5bL=8Xu19JmPNmuSSr`Z2o^(8ABnL;wY(?ty)yJV>7;3Jx3&!UMlt?0NrFK_N~G zO(Mt|DCa(3U^onrUY_c)uGqx2*C!6rv5Vks^3suw6M<_ $38ieO2BRw zn3Sebls&NV1AB|;kgyyASzg!04&2^K0*$#5XB9*sbBXEqD}^RGt>Xbn3oZ{Ugb&(d z{N|)7a(p`H*XXyYgr8ZviVI|*2(RjoKbLZ?XlkcJ4e4otl+k9Ifz%RTSsG4$q4$|- ze23KJC&-DJbNanO>WqTu{{YtzyagapP)wo&CM6L_0~%mS*3^e3I#IR&5;+^kiaKhd zf5#R$+w-@w6K-gQf5Y;q5pfG~fwQI5xuzI}Ri8GrMJt@m5lvvPj>aCh$ubmBzos^W zA+@_wqUOBwlH @uunfJ*vqX^dy%hY*nxd)i6Ce^sB zECiouR|H{C@DSi#=AKl{kP^hl+pV#i9GZvViu uB3)9!`Pj&jQ* zT@JXn( ?!+76*KnfSXt`y&>cV#W|a*;) a(kt&BH zGGY!9atIFE@p J`d zGf~K&E}dp(_TPRyJ)VYU@JIY&ibhN{Sa+>jHrlc;;ceCGqAgRPUSa5NnWvq@Z1TP7 z?5GCHFCQow22tr`QM% SU<_jLz!dRJ*_ArT-p*ph *&T%gyVONFX8 zsEz6 J%_UKmBWnUh!BM1C`vsf}0@31X6tV@JNbj_K1SX!zYH?vf$9EitG; zt-A?eg}Ah@ZUWTi$_<_=J=#(6A<_=KgRw(g`E~hu-+eu*81Ss?V$3S#)z>0*x`)D1 z-G_;>CmQkBaZ@)MkL$KBfNVY9?PXD=C^F8%Ne%?6wwzfsElE7VBsk6;lwF7RK z(EHjY#>WB)L g^_?HbYm};AkDc#}7vYEi9;i@4U%A9vMQ;|Cu2-Ec{E?8K^dqeX zrXhFj4B++S-DB-Mb7@*W1eIUs@{vC+^3$u`+vjEb;h^-fV>q
q`Z=&XwHt~Cw6J1|Ze)}3&^14h?QPqqWX^|7@jSVSecIWPNq3V|xaTQo~ z6s=(qYA#6`vn=1oe3IP`L_k!H|qT6 zp`InEr~u4$H)F2Ox=+IkUGR~1Z`oo**_N7Q2ZePT+6)T2`t@y-17S@#qY?xL>!g3W z&G{{Cb=t%}t3^Ga`}OK%X&vAuF72xAZODa_UQ~Trsg 9ji-JFz)bO;&=0o2#qv8pJoPZ26NTa#a5+bsi>p5Ey zVt^nSrv nXGUdlkdOLqz{y1S#=qO83C+&X8;Aq^7mZyfbF0J z9umbyfNm2?KzHnUYgWU!+gewn1yTo2F*jm|&i%q}W$R|{Q_tDw^qQffj}8X2&*#G( zU)EuNk+|&ukt+vpWBgNmrye8u+j`PDgQl%r|4-g*3LVb>6aH;+Bwqp{=Di2wAQkNkYo*u!k&*X`g(`q^6p ze?MVA)~OpJdvQJCFWj7NF5MhdfUWeP7$0q|%&I*KHmK2|CxK>+8Gq8+)H3sG*@e YZ|sHpL1$TJ)G!=&LW NuBU+J{!qANv8LL(`2#_2k94CQo1ed43MyIM5XY{~p(z543CDnRVmBky{obe-K za0KyBgW dH6s52B0>r@jys(W;0He%IT=9^ss zE;4vWj<%3sEEu2BP zNu;v9m0T=l)8ATR%~oOv&80~Rmc>p!0pl%Qt|DlINWulNj9sm+C}1H76i)*QGBOqx zzBa?>p)+&i7xXOv>OLA!qp$`Yh $;oO_m$~J4ZX1)H-PMdZhH4X`ytDt_cgkQMigfnVFDOm5R zt#z1l3y}dO7=|nn(xmE+MBB3+dgA4HRCO5-FMEYt7(m1TB=#+#Eoa36SQ&$ qys{I2iDCd@YGZmK?SA*;iJMxu-whK3e^tZ gK9 zcHte~1VF_$bC!bvrGkQ!2;pKfF2;!2)TeygC$3rELCT08`coRMQNfEaQz(MQ5+oeU z-ZKq(&pE&popQoqSXN3rfFG}Z)ad#+&SfE+gM7<{5fJGoL^MB8&+aebNII*)UO16H z0WTPFIX!$s_=pQ*EkCM5D&p@VQqJHyH75+51-R&F?EZPnIT1A6{cZI24bd@5d6S8m z(I<=GN$KFGK0tVzHUWBVqU~bZd$t$pS)&OrZY|0vL9MDt9ih5O=bbSXEOCdtK9|v2 z6dku1>RSQ{xbS?dSzUmLL1hwI%Ru5xuDdx xgu7It+Av!>T3 z4uEvZPYK8oX5OA?kFhdKB0}anc?9^VGfh&0mCNqb0Qo@+>rD}4zQ}i%_weAF@&3Hz zVL!Rtq__*lzL*NSwX}0P6ScDm;c}+X`GP-@cRvb#(!M(P`C&w)&_C%I)lP83=%SUA z3JTe=Qa9?j*^sLqXeDrJ7upleq~EhhaRRU#WxPKj*1&J1#OPv2B;9k1>cjK?eCte{ zX Qruh(OP*ZseNM zwiq2BR?5ZKKdjQiVSQ%W)53^R&?AV;!2s^;LK_# A?*bgu zsI3Khzxo$)xNNWd`4MgkV5sE23fK0IQ7kt{Ye__sP$ }7hCkQ`r%=A|UHA>}qIJGP-XW~0 zGyfM0Js24KxkrC|2MLW^_xKPo>MJvyL;Xr#U!ZL$2eX`iBWReG&jmx$;s#(Obt~C^ zATr*fSaLhX)=3wmVpNox-V_U15DnCmjJO|en~V5QaJHvWk`J4h)4LK_E%m`C;VAy9 z>GY^h?9>HKh_h^gg+k97DH`wqZ?j5ahGp3{5(Ff-We0Un^R*E_K=Uy|((uyjnr|y% zwzx#BJDyXGYMYvR%idFRMIF%Ne$}tu(3WrF)r>T^DNU%Ivmj4 Hxx9 z-%7u^N@6fdA`G7IM=gYGz*cf7X}1-jcjO63;TCN(UvNW=>P^Kcod=}6NL8ODdI8qU ze?P81-tcFkfdvVV1j=`$lZXV2l6-3{z(YY;mWcty74j&D=(&ONI0pr9T^^37{=F4E z2*Rtj=zdfLCj5AzyS1ccjrFsXH$VB+bJPffWJF$w;q2`Y;py4{4w(Ci@Fz(R-9}^3 z>Bl|*Rj-lkyH AOSZ=?9()mgKjpUg!get~%aj^4Z3gbZTP~6@moHyKiB~+NQ+hi3?^T9()-{ zovfQ1d9!#5lDJKsFkqPqLfMTQ`WtB8qR)#FO6D+|!>0`kTY@SDR6Y1#=7r?cDX W8Xa)BF|o&0Ga8Z$;cq6P?LkVv};CCQ}FL>CHwWVf-= zwRdP07mNts#3_BcC1g8%e(vc{5P2KhJnkOO* P+x3=pPov7O X!k&Wc!KuCC@+OGbX zjkkX4`V4#d{?y^kPrDoB1~~MX?)<7yde?MX-}Bz%oO0A0k{F+S{|LR )Gz& mg4-q0#j_ z5*GgU=44%w+MT-f7`%&pcK_`aK-`}9DmVG; v2BGiQ9E5ih+hy$1k3n39*YQjy6+vALSjJpov~&{=dkG!Ry>`f zlE+AISt-v<%{cG&FX<1t3J?7#-z&Ze)M0q0DUzA4L(?b%fnSg7MD6aL0G62Q4FxN@ zTp8o~UwP;QjyEBsOd?KkFDSM8g`}w*p@bw252U^yNx9fP?xPv;M4w~;ISl{$*f%(U ztf+w3)ze|nv^$0X9i>7?B!_bYRi Z}`4my)JdmF LuefJAKg z*0T=Ur21Vdx+{a{VyKAH)qAr|6jBmsR!HSRickKG@a-<^9J_A~0J?pQa|l%1$>LCa zdw4~$6Hx%~zIz?RlWr6(77#~3l%|Cvy} yvVSN~*!? o6VJhmVD92e2D9JO^ih;KuceoSx= Y!X>90fb!p0-(W_MhFI$7{ZSZ z^ghj*7f>R7!2P9JM77|S6CSuf5V^tZ4S__`$OnkVg(eu@cTn!MK{pR>oJFmQC}}yy z(4v4O2tQllm<{ZZ$UBf5gP}pBChZmwGWEK7Bs~&aiS5|9JJyCGzn)7wb>uk)L&0g* zZx4=) %UJdW0V-nCz&!;A}~*I%?D=N54ms10OvDfVX8`i!72?-78>|QX~1Q( z-VMxmf8~)8cdeMQ8(gGwfhvR(K_8m 8f zcUV<^XYe!jbed@}6!hfxjv9y`KQ1Fa e%RBydx5#gdTB`<+&jkDCp+t>pu z-3KM0YX{Kb3mvmSA9=c3A=R#tWc#%CG|I%W&cQex2|-zmFvhnr$bmR*v<0{XW9CjW z-?}4#D(n&9Ly<&5HL|Ch8_-eQ+>A1yE4M2-j>$`$sSnqJ4<)$3Rpzy!X&hE ZXk(_c3Q>gZjc+|_PiK6*DPG6Pr242(; zs0I)L?)=XfiV1lU5BBx+sxSF3enBzbL~*h;1w!9lvQPpH@NpTh(%~YP28oU4(U8wh z9BIR^f0h>4MxRV-U^J*I6M{sskH^Sf1J-eOa0C&Rgq@jvY@H2|oNK%6mlg4s@p|w# z%{7SXI!#pI>eN@qF?_H#=aR{$;!yaF%JXbx@)K^iNn;lS_NBZ%Q3D97p>{m|tfsq5 zgaf4m60uY8YXe_-fDQ7@vfv%=hJ(6H$zz~*;RDqCZwDNqvha_c*&eGE*e1b$0LBhk z9xt{!!6ADDYzER)8W=JlugGk14> ~Z$M5opy0=|AD8cZ6v()@P`0G3K#;KC+Bj?&X1wd)eKFXVQ@B0=o}&9YTueu*ry zw~H} 5yE_*+vH|BA*YNDZRXCyh3Mf#9c#R6qU)d1cP?2wI@dZU~_;i%DIV^N@V zQ+_fj%q8x#gE*w**G;-vepG*`6q3ZoA&qMsf(~1h+)FLu_K2Tch6E8}0FE=t+!i(S zW`FVyY;+2dlSc%9!dZZAas}VHoH;uyCC$tX=P;AzUqE%pIt?o%_4$j2^@4Ne-BEkB z)0$}=dxnblyqzt>5By=&>;>o9kmXLmj8w9#p4gyVth-NkVpLkzlz(=)9AaGTOE0G? zc=4~hq~jB?9ns}rM>yH}1Gx6rZ9fE6XwLSW_IBVf_l!u5$<5$NSskI|(uT{I@-J6K ztjfCIDz|_K;hiS}`Yu=of+y{5W?y*aJy2lCQvx<=OxB7M#MxTm;4b5XIvaz+ 2i6?$pzrz9 -uX;%aK1g&rthF%x z!Hz1mvM3k`%n4~02w1b{K8j&4Ehh<02nAKyUDk)dH_V@Y!?CC?4oSBt kc4?(PsAf(Hf?T!IIe z;O_43E+KeuclU3SbIyIQe7^>&_tV`&6;*rfz2u7eCHXOU<`sg(5WVSt8+qQ}QmWtW zx^A39J_6qF3AG9$?_VS5f9b1u0e`G; ~!t@Bg_-OvQg za3wm5>B63*d~-keuAccfy}lk9TJ#Ngg4quPV-x4z0#+OZjIh=l^O%GSoVq1& +f zY|7~1u<2m_7!i`5Z*7J(CLFKV?y| O+K%J1Ixx{9 z4!cKmwIZRtXV8&Y`EpDMSH4ao(;6<#CWG5sEln`dauwTmoK0Q-4HsJHUOn!{2?cO( zvx+PcI5&1t(yn_$;2Rm6Bs(F(vM1s9);69zPZlWzzGcyzwZ0Sy^oYPXM18IjZi2t= zBDZDGKF{Rw5%*TcmTJoc(}9r=Ri&?6$edCU9(_La4S6Z1`3FnZP& {+na3u3+2Fc%^i|jrr9+fCz-QVJgcA>tdev1NFggTL% z?eZxQmk5+B(osrz3sPSf4nstv2fJmuUz|fOd=+yHbNuq;2QNec-%{9cyS73o$zf4p z_LdM@uoHqd02qYCEh#7VQ;qynbU1`PeT0<9x>)pV_krE~d|&|Pi5(RlH~C&wV}S 8rSIzjkeq9v<7k@sRO%k{HDK-tAx zz(__p+OkuZH5TXvRbeQWq%NhDODA^`uj^ojK?t(_%NFI+a24u3*Bh9|M+K2ah*Uod z+O6F^jXV3373hZst&EzeoRYyvrP_fgKtS)MSVAw*D%fYH!TdDw`7%- Wrc2cl3r-Yzk_}nUW1KDAzYF!)RSfS#0 zsgW-s9&6jKT?R<1#o6DGl)JLCyIM-CaTy)CgvCzq&=IRyobYuz*yG0h!yC3`5|SHf z-|>C-p&2pWI##@bRmt0SI{L0QsHDxrhaGS-3r#kY8|xbW!vQ@6dSkc2{3<_|7ZcyA zV~Bbw?GO{>Y~7#ke3gFS9JWZdM3zpzsFdrG3Z*Q&qFZZuQks>YdxUq6DumKeL_pNe zL-UI+iJ*`Bt+iu@IbE(+mkBQ~ilGCU{%o FcWmEG8F6K51S zGJmRoR1TnpIOK%h5Eifj$=)l#17R~vJi`58F%Vbs6H9P(I=45jqL0*b`Gm;UZ|(X^ zUWu+Srxqbn=-Z)=zj*sip2RFu P|1@r!?}BAQJO^pWn!J^WWx&xX{dd#t`r90AccT@8}1 zUydR}ktYCiSk{{IzHY}|pLr#xRK-Z8mVQ*v$G3HyqH48#`LD&|U9HY}hPWPhAu_N@ zxnzFvxx}HTwf)S)+*=tCiT%8UIuSc(Nf px)P)V3-%jrDqrW3h>1 zL4?* @zTwel09D1!yxz0 #n! zCZ9g_5Dm~C6PU>la+V2oj2}ptvSci%1??Rj<)>k7CYv(Ag_Q67EUgkajJaG`DbJ68 zAlRZ*4zqSjv%KS5glL9DwM54WBzg+U$9z&+OmKtMiT{p5ITEk);&B9rcp#~xYQ~Oh z((LIG%m7ttn1=t$HvfP#uDnW_RqQQU$+{~rcr)SQZJ>NkOt(&YsII4kR^E&1Cy*rR zHzPZ3dSAXE{_W_k_=_I|E j+_Lb@ C<+i4tiW)BZZQl0 zk`=6U0b_SW?O=Nw2ZWWZ2F=gD8TDA~tCCwz14aowp5pk^@_8(uH0-si@_EP=m z3r*~fGa2E9aU(Z*ZzMo(S}Aw(KgkG9^T{i%AmWrU#0+$HEDlfI*-d6%PF8==cV8H6 zVpK>8_d?SI%L+cVyxcy|T%XI)*6v9)8;_Yv%e78tMY)OlX@4oF=C$x3`^hWb9AMS8 z*-*6F7wlDdbam!XqHPb+mqb9 mAA|CHyJr=uM_Rd=v?kIyCG>6y_U7nANVW}7rvGY>&cwHzH5nl z*D`EhSmXWaxoBq2dM4%q&fT?$|9~G3^}S`J!#po%gysiTkf;V{Cf4AO1v}Tqp2<@! z0gXo}p+f7qA$u2*ud0I=GZ#&t^t Q5wx#5G0dS9V>?)Rzn{L#`;PPlJ4qz#0-3sq z!n{o)I%9u5NgKEpSp1Q&i6)2yD9AvPx;G2)RmYS>^7xKE#o*R{%<9)uzH|KHs^Ig* z@yj(&qElu@CSO<4P6kn$Q}`s6_QV%+oJjBaN7Hu-z92W7z+#8KgARe#k3z#+d&fIi zvy23_uc$>SFdhRueDSKC4Ef UT051!WgBNV52TmjbCy{WlgR>I>f09Umf0iy_ zv%KGnlQ{W4IBX6!@IArByc~a$6FC6jK*WEqjbrR#BmU>&-?d=L!XL52{}$Kv{MqJU zGV%WAC;eB1BR3Zd2Y~DU^Y&n$KvohC@R#ERoBFYXb5wYLzx{7pz~8@vT?2uC-Y9W0 z6BaKnrWXKyad<57p67QN4-l-s_ `nwXy%fb!Liu~`&ygopjVLv<$ zfQOd_{1+qR`kf&Owjl)Y@_-jff216LJ(#8c_k-cE0o>ew3je-6fQRcp>stE%_2_>} z|9 lMrwj(dc+9wXZS8fXIAkbP;_y!DpUdc%6l!I@Y zTDC-8K6c4-WiPyJUR@!)q?#I!I!H>5kP>%g(h)9kRnOx^<(aLSc>Ms>x3@`~ XrSw*gHE30=r9OiYBdr> t~GtjQ)(Rlu+dyw>GC^Pj8mz?MW=o-d(d#^JBj0;KSEUM^1j=BH#($n_i^N zEWXst>GPaeiZB%m@G=3d`mQbINS4N9tYeM2(eLyd^_G1wxaN)%;FE7dw+w7KS>_&h zi` V)HtZ;;YQRy5cu zD?@}aOT|V-3eZgIp}$jVa*|MBkY}Jop_eNn+!lHhe~%T6MS}#&tncMd1>Urs?XTX& zXEb?QjFxsum#-{eN=4z kc1m(jq_vXMFM}n+h)~? z6l+mzXr?h*%OPmEF2qPQ2RQY~5;?#y V zXMpqTSJQ%x`&fty8M7%Fj0>Y7?O0Pi)W$@QudYt^mJ%Pq;(Vmc9!=mBjTDkdM86XcmM4oL8i;mG; zADas8Do0tL7`otuN8z=AtujjCf@J>zEO4%rjRG03Od4~?ygyV;4g{&XxgxP19Z!1D zuH#8XgTy5#?AAj=g(aI!b@P2vO|*2is2|~d5q%rZLZ>Ge1+Pz2t&Xipp{SP{k^5wJ z>%w9QgfWDN2FeQvb9R?Tg0G)9Z|)!59zCiS^xl`B+Jl;(s+*s%R~#}>umpxVP4d5Q zG%|0O?(6= nE^EvcOgIW_OF={P_ K>?T!pdAwvS*1S^T=?qTX&772MYXN&5E5`R&z$7(B)8aej#uhSktvb0~= zy_vHYe{PUzSRt7t1bG}Dt3At))FCr3*Xznfd$>Aft6FOx7%cYCtmCl}o^WAxJ@P_9 zNul3`maMQQFp}l5u?7-}1X=geZ(4tX-1eFoz3e8?rwpXbTx?ANKrzV%wqRzx?twSU zIP3T)0<28U3c7{4d)&%#ooN-z1x3M! G}X{O+~=tSuKy-=uzM;|Rb8 z^nmC(mP_MmY1^_fuyGG$tLU%0MC*kTnwuM+f>e%ONt`|}o*$=HkMAxF^^lc;`jh9S zW=GG&DMZ)lzK%tehIju^9}x=ySYeIg`W6j~)XPzce2R+hgv6P5vJ=h6b_=0H*nShj z__Y#ClFf<+U{KDZ cudK*ywY>fGH`7HidGIZlG-#4v!Ma_wm{igI*co>zt+sR)L9#-;lfuu z-z9G8JkoR5PFmZ{h>hu4&GZ!2$bD-QHC^w-R)D_2gj|sP7_5quc}yWL!4-Q0oj~Wk zZ&=OFPjWjB_QAooFp$3jREx=G