diff --git a/.gitignore b/.gitignore index 656bf23c..6c92308f 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,8 @@ task_slowdown/?_state_changes.json.gz **/*.gz +**/.DS_Store + figure_9/*.parquet/ figure_9/?_task_count/ figure_9/?_machine_locality/ diff --git a/.~lock.status.ods# b/.~lock.status.ods# new file mode 100644 index 00000000..cf69a43f --- /dev/null +++ b/.~lock.status.ods# @@ -0,0 +1 @@ +,maggicl,Apple2gs.local,10.05.2021 18:02,file:///Users/maggicl/Library/Application%20Support/LibreOffice/4; \ No newline at end of file diff --git a/figure_8/figure_8.ipynb b/figure_8/figure_8.ipynb index 44f4e441..1ca171c2 100644 --- a/figure_8/figure_8.ipynb +++ b/figure_8/figure_8.ipynb @@ -3,7 +3,6 @@ { "cell_type": "code", "execution_count": 9, - "id": "black-funeral", "metadata": {}, "outputs": [], "source": [ @@ -20,7 +19,6 @@ { "cell_type": "code", "execution_count": 10, - "id": "68c2f54a-f838-4d41-af1e-d63f13f3d894", "metadata": {}, "outputs": [], "source": [ @@ -30,7 +28,6 @@ { "cell_type": "code", "execution_count": 11, - "id": "87bfcdfc-6fee-4cb5-8054-d278700bbbee", "metadata": {}, "outputs": [], "source": [ @@ -89,7 +86,6 @@ { "cell_type": "code", "execution_count": 31, - "id": "fe6f1eb5-bf36-49b7-854f-6b9dfa51f766", "metadata": {}, "outputs": [], "source": [ @@ -124,7 +120,6 @@ { "cell_type": "code", "execution_count": 36, - "id": "2eb1f8de-81ef-4301-abd3-262fdfd29eda", "metadata": {}, "outputs": [], "source": [ @@ -150,7 +145,6 @@ { "cell_type": "code", "execution_count": 37, - "id": "a9a09b9c-4281-41f4-a069-eb954e0a018f", "metadata": {}, "outputs": [ { @@ -480,7 +474,6 @@ { "cell_type": "code", "execution_count": null, - "id": "f388dc45-2649-479d-a3dc-4ee2ccbd0bbd", "metadata": {}, "outputs": [], "source": [] @@ -488,9 +481,9 @@ ], "metadata": { "kernelspec": { - "display_name": "venv", + "display_name": "Python 3", "language": "python", - "name": "venv" + "name": "python3" }, "language_info": { "codemirror_mode": { @@ -502,7 +495,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.4" + "version": "3.8.3" } }, "nbformat": 4, diff --git a/figure_9/figure_9.ipynb b/figure_9/figure_9.ipynb index 43abae50..abd2baf9 100644 --- a/figure_9/figure_9.ipynb +++ b/figure_9/figure_9.ipynb @@ -3,7 +3,6 @@ { "cell_type": "code", "execution_count": 1, - "id": "black-funeral", "metadata": {}, "outputs": [], "source": [ @@ -20,7 +19,6 @@ { "cell_type": "code", "execution_count": 2, - "id": "68c2f54a-f838-4d41-af1e-d63f13f3d894", "metadata": {}, "outputs": [], "source": [ @@ -30,7 +28,6 @@ { "cell_type": "code", "execution_count": 15, - "id": "fe6f1eb5-bf36-49b7-854f-6b9dfa51f766", "metadata": {}, "outputs": [], "source": [ @@ -65,7 +62,6 @@ { "cell_type": "code", "execution_count": 27, - "id": "a9a09b9c-4281-41f4-a069-eb954e0a018f", "metadata": {}, "outputs": [ { @@ -419,7 +415,6 @@ { "cell_type": "code", "execution_count": null, - "id": "a81da964-f539-49df-8fa3-7b358ea642e1", "metadata": {}, "outputs": [], "source": [] @@ -427,9 +422,9 @@ ], "metadata": { "kernelspec": { - "display_name": "venv", + "display_name": "Python 3", "language": "python", - "name": "venv" + "name": "python3" }, "language_info": { "codemirror_mode": { @@ -441,7 +436,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.4" + "version": "3.8.3" } }, "nbformat": 4, diff --git a/report/Claudio_Maggioni_report.md b/report/Claudio_Maggioni_report.md new file mode 100644 index 00000000..2004dd1e --- /dev/null +++ b/report/Claudio_Maggioni_report.md @@ -0,0 +1,104 @@ +--- +documentclass: usiinfbachelorproject +title: Understanding and Comparing Unsuccessful Executions in Large Datacenters +author: Claudio Maggioni +header-includes: +- | + ```{=latex} + \captionsetup{labelfont={bf}} + %\subtitle{The (optional) subtitle} + + \versiondate{\today} + + \begin{committee} + \advisor[Universit\`a della Svizzera Italiana, + Switzerland]{Prof.}{Walter}{Binder} + \assistant[Universit\`a della Svizzera Italiana, + Switzerland]{Dr.}{Andrea}{Ros\'a} + \end{committee} + + \abstract{The project aims at comparing two different traces coming from large + datacenters, focusing in particular on unsuccessful executions of jobs and + tasks submitted by users. The objective of this project is to compare the + resource waste caused by unsuccessful executions, their impact on application + performance, and their root causes. We will show the strong negative impact on + CPU and RAM usage and on task slowdown. We will analyze patterns of + unsuccessful jobs and tasks, particularly focusing on their interdependency. + Moreover, we will uncover their root causes by inspecting key workload and + system attributes such asmachine locality and concurrency level.} + ``` +--- + +Introduction +============ + +General issues +-------------- + +Latex is not so complex. If you aren't familiar with it just spend some +time in googling for latex commands (e.g. font formats, tables, figures, +items,...). + +Getting started +--------------- + +In order to use the bachelor thesis template, be sure that the following +files are present in your working directory: + +- usiinfbachelorproject.cls (The latex template) + +- logo-info.pdf (The logo figure) + +- references.bib (The references file)\ + +Compilation issues +------------------ + +If you are not familiar with Tex, I advise you to download TexShop for +Mac OS.\ +To include the references and display them in the final pdf, you have +first to typeset this file with *LaTex* (ComboBox upper left, if you use +TexShop), then with *BibTex* and finally again with *LaTex*.\ +In order to resolve figures/table/... references you have to run 2 times +the (latex) typeset. + +Document structure +------------------ + +Some basic sections: + +- Introduction (including Motivation) + +- State of the Art + +- Project requirements and analysis + +- Project design (top-down) + +- Implementation issues (bottom-up) + +- Tests (methodology, results, comments) + +- Conclusions and future work or possible developments + +Some examples +------------- + +**Figure  [1](#fig:USILogo){reference-type="ref" +reference="fig:USILogo"}** shows how to insert figures in the document. + +![Caption of the figure](logo-info.pdf){#fig:USILogo width="50%"} + +**Table  [1](#tab:numbers){reference-type="ref" +reference="tab:numbers"}** shows how to insert tables in the document. + +::: {#tab:numbers} + **Col 1** **Col 2** **Col 3** **Col 4** + ----------- ----------- ----------- ----------- + 1 2 3 Goofy + 4 5 6 Mickey + + : Caption of the table +::: + + diff --git a/report/Claudio_Maggioni_report.pdf b/report/Claudio_Maggioni_report.pdf new file mode 100644 index 00000000..e54f7ebc Binary files /dev/null and b/report/Claudio_Maggioni_report.pdf differ diff --git a/report/logo-info.pdf b/report/logo-info.pdf new file mode 100644 index 00000000..4781672f --- /dev/null +++ b/report/logo-info.pdf @@ -0,0 +1,915 @@ +%PDF-1.4 % +1 0 obj <> endobj 22 0 obj <>stream + + + + + application/pdf + + + Logo_info_color-ingle + + + + + Adobe Illustrator CS3 + 2008-11-18T11:33:03+02:00 + 2008-11-18T11:33:03+01:00 + 2008-11-18T11:33:03+01:00 + + + + 256 + 48 + JPEG + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAMAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A8/4sn6BebPPuneWpTFdR mWX0luIbeNwJpo19Q3BiQgcjCkYY70+IVI64sUA/5raNDc38FxY3yPYOqyqkSuV/ulkDFXZaxyzB WoadKVw0rcn5oWJn9GLT7kMoieb1jAnGK4eNYpaiVhxIkBoxB6Y0rIfK+v23mDy/ZaxbbRXcfIru QrqSkigmlQrqRXv1wKmmKsA/Pv8A8lD5k/4wR/8AJ+PFXnv5PavLpH5KWV/Fb/W5Y55Ujt+fp82l vTEBy4vTd/DOV7Qw+Jq+EmtufuFufilw47ZIPzW0JTMk9tcxS2k0lvdgqgRHgjDykSOyKwG9APiI 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 irsVdir/AP/Z + + + + + + uuid:4774D4435BB5DD119C24CFDA7BB0B554 + uuid:4f9228db-3f48-4f01-b8ab-a2598cab2246 + + uuid:0ACCDBDA59B5DD119C24CFDA7BB0B554 + uuid:08CCDBDA59B5DD119C24CFDA7BB0B554 + + + + 1 + False + False + + 165.000017 + 30.000010 + Millimeters + + + + Black + PANTONE 113 U + + + + + + Default Swatch Group + 0 + + + + White + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + Black + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 100.000000 + + + 80% Black + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 80.000001 + + + 60% Black + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 60.000002 + + + 40% Black + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 39.999998 + + + 20% Black + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 19.999999 + + + Red M=100 Y=100 + CMYK + PROCESS + 0.000000 + 100.000000 + 100.000000 + 0.000000 + + + 75% Red M=75 Y=75 + CMYK + PROCESS + 0.000000 + 75.000000 + 75.000000 + 0.000000 + + + 50% Red M=50 Y=50 + CMYK + PROCESS + 0.000000 + 50.000000 + 50.000000 + 0.000000 + + + 25% Red M=25 Y=25 + CMYK + PROCESS + 0.000000 + 25.000000 + 25.000000 + 0.000000 + + + Green C=80 Y=100 + CMYK + PROCESS + 80.000001 + 0.000000 + 100.000000 + 0.000000 + + + 75% Green C=60 Y=75 + CMYK + PROCESS + 60.000002 + 0.000000 + 75.000000 + 0.000000 + + + 50% Green C=40 Y=50 + CMYK + PROCESS + 39.999998 + 0.000000 + 50.000000 + 0.000000 + + + 25% Green C=20 Y=25 + CMYK + PROCESS + 19.999999 + 0.000000 + 25.000000 + 0.000000 + + + Blue C=100 M=50 + CMYK + PROCESS + 100.000000 + 50.000000 + 0.000000 + 0.000000 + + + 75% Blue C=75 M=37.5 + CMYK + PROCESS + 75.000000 + 37.500000 + 0.000000 + 0.000000 + + + 50% Blue C=50 M=25 + CMYK + PROCESS + 50.000000 + 25.000000 + 0.000000 + 0.000000 + + + 25% Blue C=25 M=12.5 + CMYK + PROCESS + 25.000000 + 12.500000 + 0.000000 + 0.000000 + + + Orange M=50 Y=100 + CMYK + PROCESS + 0.000000 + 50.000000 + 100.000000 + 0.000000 + + + 75% Orange M=37.5 Y=75 + CMYK + PROCESS + 0.000000 + 37.500000 + 75.000000 + 0.000000 + + + 50% Orange M=25 Y=50 + CMYK + PROCESS + 0.000000 + 25.000000 + 50.000000 + 0.000000 + + + 25% Orange M=12.5 Y=25 + CMYK + PROCESS + 0.000000 + 12.500000 + 25.000000 + 0.000000 + + + Violet C=50 M=90 + CMYK + PROCESS + 50.000000 + 90.000004 + 0.000000 + 0.000000 + + + 75% Violet C=37.5 M=67.5 + CMYK + PROCESS + 37.500000 + 67.500001 + 0.000000 + 0.000000 + + + 50% Violet C=25 M=45 + CMYK + PROCESS + 25.000000 + 44.999999 + 0.000000 + 0.000000 + + + 25% Violet C=12.5 M=22.5 + CMYK + PROCESS + 12.500000 + 22.500002 + 0.000000 + 0.000000 + + + Azure C=80 + CMYK + PROCESS + 80.000001 + 0.000000 + 0.000000 + 0.000000 + + + 75% Azure C=60 + CMYK + PROCESS + 60.000002 + 0.000000 + 0.000000 + 0.000000 + + + 50% Azure C=40 + CMYK + PROCESS + 39.999998 + 0.000000 + 0.000000 + 0.000000 + + + 25% Azure C=20 + CMYK + PROCESS + 19.999999 + 0.000000 + 0.000000 + 0.000000 + + + Yellow + CMYK + PROCESS + 0.000000 + 0.000000 + 100.000000 + 0.000000 + + + 75% Yellow + CMYK + PROCESS + 0.000000 + 0.000000 + 75.000000 + 0.000000 + + + 50% Yellow + CMYK + PROCESS + 0.000000 + 0.000000 + 50.000000 + 0.000000 + + + 25% Yellow + CMYK + PROCESS + 0.000000 + 0.000000 + 25.000000 + 0.000000 + + + PANTONE 559 CVC + SPOT + 100.000000 + CMYK + 11.000000 + 0.000000 + 9.000000 + 6.000000 + + + PANTONE 657 CVC + SPOT + 100.000000 + CMYK + 27.059999 + 10.980000 + 0.000000 + 0.000000 + + + PANTONE 292 CVU + SPOT + 100.000000 + CMYK + 71.999997 + 26.999998 + 0.000000 + 0.000000 + + + PANTONE 113 U + SPOT + 100.000000 + CMYK + 0.000000 + 7.000000 + 65.999997 + 0.000000 + + + + + + + + + Adobe PDF library 8.00 + + + + + + + + + + + + + + + + + + + + + + + + + +endstream endobj 2 0 obj <> endobj 5 0 obj <>/ArtBox[0.0 0.0 467.587 85.0391]/MediaBox[0.0 0.0 467.717 85.0394]/Thumb 21 0 R/TrimBox[0.0 0.0 467.717 85.0394]/Resources<>/Properties<>>>/ExtGState<>>>/Type/Page/LastModified(D:20081118113303+02'00')>> endobj 17 0 obj <>stream +HWM- _`Tۼ@ʼn!c!>:Gs'< =ꮮRHO_}N~y}u_6ٶ/o`߿$]6\??~s-mDR4Â9Qw~ënǖK^پ?v-yV]tM>ix_|w[ۥϗOIzz%I;?Iۋm/Ws%ﵮ7k De}){B:"e{YĶYכ bEۧ5>\-7ESĶlm _]y-QUݵ8N> GP=o[=G{} ;,@-tlf|9Xq9-ַ^4 U[d)5ƶDͶvݺh8Oo4U'B]3"[i}\:Qݡ`po` {*/! Iv/Ѵ0w7y/Q(j0kLB;w/hF#5JF;rhF fϒ\ՌG'Ȍ0JvixK07|:y! I zp鎸}qgL4amNK@TXj^aDJԓ +dR^njA7= #.9GVSOLALa'1 09 7_NeUB5̰DǛ7ANy*\f Q8BoǬrF7񆌇PuWŨ(Β'<.'ҪYٹYL0_GK3ؘ&EB6BB]'pAe]]މFX1Λz܃M;Շ2-$m|b]) ǤԽ<;* btٕ1GiY/dQN^ޢ%~ћrE-#`%80{,И4ne߲N#fY*k\V +tyEUfKCģX'0>M=nM#W R0 f`8n!\wWC.K, ;~Y hyiqYn do6m2<3pըngBlw{HY48(0XV119" /a]"$zpRZ)V %|Lsu<6]A@u]7߿ѣ]Nv%V-']+/W΀?g$g055Nvk3.O!mVj Xci +_4/M9|6C aGVQ C^Ux-|oQyԚm' HO4W xdybcEqAه@oMœעͪu@Q~:w1T򩢧f 9$ю,{[sH)'={)`=A+/A +2²M|3f)x_נּme"Kb az8*"hfb4\m_l`pEb{cÛD#_de,#}zI|iDl5N&n9ҵ!|xǪ81anDyrܒK03Ӹ!:)85 =" UF+P~`}D"{s^3Ʋ>mץ1- 5-HV S xDe4.=oNd)pG|&b񉖥w :A`hI1F<;AD2oDCϩ >sWZB!GM_hwn;z@2d:7],%$XJPJ+?qvL]eI!e#"XܘF^.9o$j0#*^ RUFL#%g +-7*, sp e!L'}C{\ޥ#n+uEIs [i%u +ק\*CηϟNPeSw. /*3UFè;vKnj{`U͸Oa\ª4ǭ\0^ԅWgAh=lVǓhޛ#MsAe(,œh ]y@n5zζa 2dXBZ8yj@ZkB)C,iR\ueC?jz.4%aB#6n:%w)oK7Վ99/ypO(ϦՒ( +|fiTRn,#7D[TIQ"WtZȸ .6(@y[4(ѡŮN'ȇ0=: w]{:!pC;/_Z MHlNbl WƽY\kڡLyw_ʸsnvCZЎ. %j ۴暑BM x# i-( /#}N2gVX_/hlMdńj蹉ΖcޅE(Rn-׾3%W(:#. blr--۴ﳰ 82_ٲm3vyX>p} LKCAf@!@JwV R&S`Ӏ$ ;r`{(ҟG˴w)NRf8 ázLJEGH>kW=;_+S9lv㇟ Wf+rb!4ZcVwʶ.1+ Eu + al'Uʶ|`X#jnI]9b0?؍>Ak`4f@+{6hEB+E( w2Nj.E?|}@>@22xe|3"Yd8 ˩ +n +E6M&^Wpfhp͘lکƟ*.!.uq+1ݫHΌc󱓈#m' FT0[ h"<Bm'S_ltRMA׽G .ly7FА x۾-%ґ)J#^-V=뷫K*l=B'|Xk;A|; l`ƀƅ,>stream +8;Wju5n8E!#R#Pa\,$%_HE-4R"MmY$!6U%,%jdDg+=q'f!!Dq'=ljIE;P/7plUuX5 +\bgQ<&&*$&9]7i$mZ*o%URRrqK?7tVrG.af]@%lTVYo0b1JDTH0`^:lH0#~> +endstream endobj 15 0 obj <> endobj 16 0 obj [/Separation/PANTONE#20113#20U/DeviceCMYK<>] endobj 19 0 obj [/Indexed/DeviceRGB 255 20 0 R] endobj 20 0 obj <>stream +8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0 +b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup` +E1r!/,*0[*9.aFIR2&b-C#soRZ7Dl%MLY\.?d>Mn +6%Q2oYfNRF$$+ON<+]RUJmC0InDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j$XKrcYp0n+Xl_nU*O( +l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~> +endstream endobj 6 0 obj <> endobj 7 0 obj <> endobj 8 0 obj <>stream +%!PS-Adobe-3.0 +%%Creator: Adobe Illustrator(R) 13.0 +%%AI8_CreatorVersion: 13.0.2 +%%For: (Vanetti Tania) () +%%Title: (Logo_info_color-ingle.eps) +%%CreationDate: 11/18/2008 11:33 AM +%%BoundingBox: 0 -86 468 0 +%%HiResBoundingBox: 0 -85.0391 467.7168 0 +%%DocumentProcessColors: Black +%AI5_FileFormat 9.0 +%AI12_BuildNumber: 434 +%AI3_ColorUsage: Color +%AI7_ImageSettings: 0 +%%DocumentCustomColors: (PANTONE 113 U) +%%CMYKCustomColor: 0 0.07 0.66 0 (PANTONE 113 U) +%%+ 0.72 0.27 0 0 (PANTONE 292 CVU) +%%+ 0.11 0 0.09 0.06 (PANTONE 559 CVC) +%%+ 0.2706 0.1098 0 0 (PANTONE 657 CVC) +%%CMYKProcessColor: 1 1 1 1 ([Registration]) +%AI3_TemplateBox: 234.6299 -43.5 234.6299 -43.5 +%AI3_TileBox: -49.4761 -99.2129 517.4531 14.1733 +%AI3_DocumentPreview: None +%AI5_ArtSize: 467.7166 85.0394 +%AI5_RulerUnits: 1 +%AI9_ColorModel: 2 +%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 +%AI5_TargetResolution: 800 +%AI5_NumLayers: 1 +%AI9_OpenToView: -285.8701 234 2 952 1086 18 1 1 509 82 0 0 1 0 1 0 1 +%AI5_OpenViewLayers: 7 +%%PageOrigin:-40.8701 -464 +%AI7_GridSettings: 72 8 72 8 1 0 0.8 0.8 0.8 0.9 0.9 0.9 +%AI9_Flatten: 1 +%AI12_CMSettings: 00.MS +%%EndComments + +endstream endobj 9 0 obj <>stream +%%BoundingBox: 0 -86 468 0 +%%HiResBoundingBox: 0 -85.0391 467.7168 0 +%AI7_Thumbnail: 128 24 8 +%%BeginData: 3832 Hex Bytes +%0000330000660000990000CC0033000033330033660033990033CC0033FF +%0066000066330066660066990066CC0066FF009900009933009966009999 +%0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66 +%00FF9900FFCC3300003300333300663300993300CC3300FF333300333333 +%3333663333993333CC3333FF3366003366333366663366993366CC3366FF +%3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99 +%33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033 +%6600666600996600CC6600FF6633006633336633666633996633CC6633FF +%6666006666336666666666996666CC6666FF669900669933669966669999 +%6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33 +%66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF +%9933009933339933669933999933CC9933FF996600996633996666996699 +%9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33 +%99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF +%CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399 +%CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933 +%CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF +%CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC +%FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699 +%FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33 +%FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100 +%000011111111220000002200000022222222440000004400000044444444 +%550000005500000055555555770000007700000077777777880000008800 +%000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB +%DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF +%00FF0000FFFFFF0000FF00FFFFFF00FFFFFF +%524C45FD0427FD17FF2727A6CDC8CEC8CEC8CEC8CEC8CEC8CEC8CEC8CEC8 +%CEC8CEC8CFFD4BFFF827F827A8FD0BFFAFFD0AFF52F8C9C8C8C8CDC8CDC8 +%C9C8CDC8CEC8CDC8CEC8CDC8CEC8CDCAFD4BFF27F82727FFA8FF7DA87DA8 +%A8A87DA87DA8FD0AFF2727A6CE527C7CA7A0A1527DA0CEC8CEC8CEC8CEC8 +%CEC8CEC8CFFD4BFFF827F827FFA8527D7D52FD067D52FD09FFA852F8A6A6 +%7CFD0452517C5152A6CDC8CDC8CDC8CDC8CDC8CDCAFD4BFF27202727FD17 +%FF2727A6CEC8CEC8CEC8CEC8C9A6CDC8CEC8CDC8CEC8CDC8CEC8CFFD4BFF +%F827F827FFFF7DFF7EA8A8FD10FF52F8A6C8C9A07CA0A7A67CA6C9A0A6A0 +%C9A07C7CC9A6CDC8CDCFFD4BFFFD0427FFA87D597D7D7DFD10FF2727A6CD +%527CA0A7517C7652527CFD05527C527CC8CDC8CFFD4BFFF827F827A8FFA8 +%A8A8FFA8FD10FF52F8A7C8A6A6CDA6A6A6C9A6A6A6C9A6A6A0A7A6A6A0CD +%C8CDC9FD4BFFFD0427FFFFA8FD14FF2727A6CEC8CEC8CEC8CEC8CEC8CEC8 +%CEC8CEC8CEC8CEC8CEC8CFFD4BFFF827F827FFA8537D527D527D527D7DFD +%0CFF52F8C9C8CDC8CEC8CDC8CEC8CDC8CEC8CDC8CEC8CDC8CEC8CDCAFD4B +%FF27F82727FFA9A87EA87DFD05A8FD0CFF2727A6CEC8CEC8CEC8CEC8CEC8 +%CEC8CEC8CEC8CEC8CEC8CEC8CFFD4BFFF827F827A8FFA8FFA8FD11FFA852 +%F8A6C8CDC8CDC8CDC8CDC8CDC8CDC8CDC8CDC8CDC8CDC8CDCAFD4BFF2720 +%2727FFA87DA884A8A87DA8A8FD0DFF2727A6CEC8CEC8CEC8CEC8CEC8CEC8 +%CEC8CEC8CEC8CEC8CEC8CFFD4BFFF827F827FFA87D7D7DA8527E7D7DFD0D +%FF52F8A6C8CEC8CDC8CEC8CDC8CEC8CDC8CEC8CDC8CEC8CDC8CDCFFD4BFF +%FD0427FD17FF2727A6CDC8CEC8CEC8CEC8CEC8CEC8CEC8CEC8CEC8CEC8CE +%C8CFFD4BFFF827F827A8FD16FF52F8A7C8CDC8CDC8CDC8CDC8CDC8CDC8CD +%C8CDC8CDC8CDC8CDC9FD4BFFFD0427FD17FF2727A6CDC8CEC8CEC8CEC8CE +%C8CEC8CEC8CEC8CEC8CEC8CEC8CFFD4BFFF827F827A8FD16FF52F8C9C8CD +%C8CDC8CDC8CDC8CDC8CDC8CDC8CDC8CDC8CDC8CDCAFD4BFF27F82727FD17 +%FF2727A6CEC8CEC8CEC8CEC8CEC8CEC8CEC8CEC8CEC8CEC8CEC8CFFD4BFF +%F827F827A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA852F8A6 +%A6C9A6C8A6C9A6C8A6C9A6C8A6C9A6C8A6C9A6C8A6C8A7FFA8FFA8FFA8FF +%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF +%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF +%A8FFA8FFA8FFA8FF27202727FD17FF2727A6CEC8CEC8CEC8CEC8CEC8CEC8 +%CEC8CEC8CEC8CEC8CEC8CFFD4BFFF827F827A9FD16FF52F8A6C8CDC8CDC8 +%CDC8CDC8CDC8CDC8CDC8CDC8CDC8CDC8CDCFFD4BFF272727F8FD17FF2727 +%A6CDC8CDC8CDC8CDC8CDC8CDC8CDC8CDC8CDC8CDC8CDC8CFFD4BFF7D7E7D +%7EA8FD16FFA87DCFCACFC9CFCACFC9CFCACFC9CFCACFC9CFCACFC9CFCACF +%CAFD4AFFFF +%%EndData + +endstream endobj 10 0 obj <>stream +HWioNaD[XC^cyjF )o_$^y6)Q}{ş/OU:8^H7Uk7GgvA3le]msJu ?zW6nWGWeS1V]ջuڛvY7un7'usx84f;fqlT(y|{߬osщՑ6OE,VfaX4kofwi6lO#. əZ5ݖ3Ɨ^߾`RH*Krö;-]47)q{}tz&Պ臰!I#\N |i {z /n؄;FgN)ҡ7P cg: qӍ觋ꦦPq[WNΈ ܹDzgAO[HYt܂3"B*3Bt=>ϧћM6pR]L(/懦0*s_j 3Ε]rsS *bULy{W5W; IY3ܑGN*8;ˇyF7wo!n꛺9=q|"^q +1dW;M`~$K?oVi{G%C\44PDK8MݠM=Tܴwg,Qr\5-P( J_՟EYϷuNK縺ڔװU;ozsM +o?FWm&5誆C>A߯\MyO0ЁFO~?NmߌV C<Cݬ gAtblYLZ>gY$64o>UnrCI Xnuٔ*L%#ѭZsN˜#L[ܔHD?~].\ {Z_g?ggEQEV/0.T! Qq^yi$wMs\5q <_m{o뱏q=f=` k6ؿ_e!& #u?~H*~籏q(PS(L-IRAE){ :'k' ?A:)7yL?_xw~&?bwpx<><κ$z@0ӫ^頷"7zQ( 4TP*(ZL)iAi)&br)AT0Ci*&p{C*&2 +WL]1yؐbi,&!dYJh!)h!bbR[LnCz nHqC(T Z4&! .Y򆤗.aI0)p͝n ~QNlx2 +6243p,>G 0rnL>N";(URSm:rՔ@5,W#[U +60"BfJq8H41KB8$ܳ.3Fx Ȉ 9, %Ț yP +IR2\*V=F@h:+/G߿ef,zu2r]3pm7\ \hFk.Ļő1L.#GG⡠;qTl 'o^g,NH=8촠KOvJ}q$>3go!p9G8^O + BAcHPD0"H1.Y1י#|z5_~Μ&PHdȃ. GI[?fxxW0B\[AO{>t#n!J +F\&D,etqpIcOګ&!)Dn$6F;U4$1ɫIS +vd +5UZ񦎇IjU6!SG IN5&}ҔtP,,KAo*m%( E b^bL#Pe +jŽzsuE Ž+h,? +;ƿxxDONSUB<ѹb9eO=tPWG^z!VK_~H+ؤz +vxa  8PI0j rrI!y9ɁR?!G!O!W_!g!o!w!!c*UnC~#CCC#CCCsbS֖Ӄj:r0GqGH~;d|2,\6+* <l%{=6 +qJgdAKG--- $E ""wx¼H=N+eO ( d +*BPLӫQ|V)4l_5X) Pz榐<?Ss9ON*St5)s<ʪZ%QpObҬ'P0ʫFS ^թ8`VeT16A)!xY9 +zEWu*j*1(}<$T(I !MjU&)Ʀa2qO:P~LC&4 g}r49Nsd=Iь|5{䵦q9| 5}ݍfniqFF?8aKn\8O9KM1Awf́i1{#g=Ԡ&Fw2xTp-jP0ѬT `=rКF!['?`ɈEoo[ x5WA}XiZأlCآEwo|ESO(6he|5Mt}!ouζ؆>*KE6fn|Lpe_vw{><~3kNצ+3߿~yOyl7bǑ q[Wu-̲YCˬ=&3{tn'؁LI]T*˷nn#g$/ J~M{Bo~w~}ﺮN֧D-OgY&3-k庒pI츴K0lcՋR~a& Vrݣp TLo#nPi":^>3iR o|(d#h|L𝎘u ?9cR}1t9̈{!P Hbx6 ws]0t56:amR=zz5氼Iu==`;n}Bm&r ,Qn\ L<" `6IV|fC"lGݵ&ww=$W'-Cn'Y`$1k{0iw@{27L.b&@$agX|9;ׄmHE3k=&1v?>~D+Z6Oono޿@2t% WY@JV(h K']J/@4Km?G9=tB0&FOGs?K\|GӼ %[3D2h#^7gzLgjҤ佬'z;gJj^fۉsۘveՉ3A ^a/[%+zA֍DuT-/ŰB0jQS뛓#@y[>AOĘ.X]2HO>wRVN$GVJsșhLU=4*;1TlMaC&Ƅhij uXTcҾlCm; %.*З2ξ/A4e?$24JCFb)9\&ZC^a<5Q^N)&zjsnP=9ss!Z"JSꇥWۗD4E j,wq` +y; +e}%&GqTm,}TsV;Yy +:b V; X@7 X:싺0䗔vsO^]{.Lk=ŮЌ +Nwzr::5S?c;&qqjŧN }؀}}=Wz,Tli\1Qm:LpWz)m3FMl6(1Z-̬̽JJdlg%3u'O_pp^{e}u_uwoǏawbG1HVQ784#()N!?׾;!R]mp0xgXCRQ:tsNjCHG>iHԣuN!#p8t0n:)U{=੓66} Gb_PwT|} ~t#-W]2jjGR׶_6qciڈ!c[m {h^mqG]a^F[%y"<$aCbA`!3 WMԥ3Kٻ˳=էN~Yslw fžBb$o6\ƨo:wijrS(i_ff~)m޾y|3'߆߉{F +sW9mzDžOpu2By>{ +% ߼b7_?^6\3՛廪]<<øىO^'>{ N&fv$B6|FîW#@08ؓ O^AA LV.xevqb*5^ {}QA 6Oq>s̡2 +`'ZAr6O<x;xφ/NӋ󛛧ڳ᷼i$'d|S>O.M"&>HFY~WŢӐPWu"qNR3з6lM4l)[ݺeo"d:ƼGK +REr-@R]7FJH^&M,Apz6\s<X*tq,cY&8 aS<APȹ`sh7+;-qbk +Hs¤B}Hlq5*Hi <ό7]jѝ.טmQvܼ)3NԑEbHqG8$Uj?f1նJIw#R i5#+$b'N0.~W;XŸ.ف݅]Et eTlX7,RS0A2桌$ k2f (1tr5)|n+MŰV&7Kb3dcʼnbO!w}\60-$bgI0'S>UǑDa1$KꉖUW=1$VH7 s A^$T4l - u4`PQ|Arc;7' L{mS_ZbiBGC㐥;n6v+>n_`&9NN*Q+ mg<''_7;/Y)~:xIfo,k$?{- \L1Nj~xf]a|п1:۴[J [XEEpۮ)pN2kܯ3 @QIeѷd 5I 0'>(̰dP%rD<_ͨ+q訁n Nz%6)TV}>!H ԕnj!1䠖(g9$]zl"AyoJ%ቮj{b`a4wA|~o'X[YȂgVlq- 䒁%c+&޻8O^{UJ`)9 xBx%YS2abGKjV +R^r P"J;G.>4 Ht< +%x5Lw5 +Ujr!Zz:Zؕ_g[&ڐMZyȓNΪMImp㔊`+ҫt%/ɭjE,SC m1TQfD:/fBգbR^^TR9鑬ԑf#'2GT1Zᑤ$6Jbά_ht,7yW[ZʭTqT?UcJDɦ;bqlZ8_^KoXO?|ao퇻?}s<_g'n8b~>yXן4e?~ IBNfkW&sl} -_N;-666]ts[zF]gRMKC}6 ~Ն9W[Ѩ ErA :{m~}~y5FV0V2Yh\#.iRD V3q20ؐdŏBZx I4W<4jEfϚ7YK;dR 7]Ujr +b9XWt1d"66$An糜g@6q!% R&QTqKX UsTRz=[,II((%_CT OY2}_/۴dp1s*TiNN!l|b1j<`VҸμ,l7GhoWљg Fig C'b0V-̋L3s + ܬߌ85-<W .װd0]XIUb%5FKL+buIc9pC]!*h`pj8ZјmA`FcJqIcpҘ,hFcNZh 0ъPy1ώ!;Ac.ՐV4"88Lh 8-}nmIc޶L*4xɗ4X41kYxUw,igVʊ8FbKnٯiгBQz>$F^glxyBVF=.:,ĒC*vqH3R҇hr<-F} RE+zt!w}پO9By0ϑ鶉!@R _'4b6OrEk|W&i83f2`/.ik2[.raBvmSZ~Y)i ϵ0b([\ +VSi*|psuC{'uUL[VjdeCsc| eN?!u_SedSXz1h$u'NQu @w΂—:9W]Ky 0io$Akrc2~/?leջx _eƃjj^@Y%q4# `O*h&}%p9@ -+N4 `S 5 +LM4u%@LsuT51adSl9NFMZ#g Nr⧹"2FZ2SY&Cu`ݯ+dētzmINpC&iǞ󲋃ajG&cQ`,\uz%]qa`(q\ em8("X0;{P}.`,nt^n `%lQb !eP +%]!3>YGAfTE]Wp!>7m$Ww \Iõh<r3R4H"V-T֯Z;eCOh=ɾ9"+Vbqg#s'3&WZTn۩5=f/dmnRIŋ"&ŰF7X t끄`泚*C#xOzGT bl;Ve]!61fsx55%pMce81ab];I TSWR͢-/!TCĹdeC`>RR9.2vs5o2` Hߒw6IJIZ':xϔsz\~zwӵ-D&"4/g)g2e\=7#Yt]@]>]ּ~/M~~ݻρ~>|wo9Ez|xË?#o~?~-ś?b΢WrDs mC6` ,i3zuW{?!:1FH9ǩSUA~ |[x/#{҈BMDt/owoI:hFagZTr#ZNg'QiB]q1qщ藐Еi9K^ 5"G<7  +G\[ͱ_rmZWx5LޫgƸͳ\Tg DD1QM\Bx5O$jqWn?zhڒJֽdsҝp~s@c|P׸,`N@b|pEV?^NjιڱFWR_Mh珄~w=x [>ڗLcͷé^'8+ sf@ =UL:f?_δAbSa%ңlzATʐj"ۨ_4J67cTVFkrJ]{jO,lx*Q@z3Pܪ+~% o.cYr %ąW;c$ߣgdY)> +M5`M@.V֮zY@;oeZ*@6U~7PaHDRw8CQlZV1u!R|Ə` <~*Qf';ʲiHHicHtCWr}/8m.9#ئHrDIѷ6NLb`WeiµQ1oKf]>[+Ux҆溕&m-+E.Y a;M fhHv :W+E\Ҙ̀{+?C.X6-GFRL6f_=2C'#'D-^'YGY9V%5_3=3*z~L72xOsa%P*1/S[?/2R^H]`?ǘK6Qk + - yc}=b=Mw,P+\8G+|CaY: iEwQo֑usG4hz4cl$0KDE&< J@_!ɃE4Z8t`GfC;4ZW:)PvMs8w5[sI с+RsE'ȹXpSK mTϹO=GMB +b֣YQ86RpPF˷p1Q? [Mz mpV vEDLtʸ }t$tb%fo3ZIģX-e08vPI(ePTn ff Ոc1dUh` {umt9\!2CǗE4}ālavk^JD6$ЩEwOvk'VKYnaY5C3}K>X=y%&! +HpuOxT[J4/ɫ_$E8"nNQaϥ1_c0 :ւ= +avv7is]q(-_7bU%V$na'<賰{P+~5CFNy32dpVaKzu\v ,mu!}>J5>UI%b\| +4i_w<cHw%g<ͺn3w-i{ܹnPk E4_E!dHx+ J5z5 + 5dwL@@ک|]Mi, + `VPOdq|ʬQ ޡYy /*I̓=̖>Of%R6L {|q6d}yZh6 +;kœ&BcI>Gb#/ǔ;=΢1i~,pT1l2mKCr̙8.Oxp^8)CH_z"})/! /WROû/#0&>40#rT mCٮUE?1z9 `(7 0nU ݆@AGXKq GަӕO6X07áM6q5Ĺ!D2C1m3*L S]K943Q B0a(Rl|(C"O(7(/r7E)kpH]"|doF;an,hݻl +o{Ŧ!I-P dBj~S!*",6 nŐeC^ELc=R&@v_#EqfQ&xSBqF;&+8E`YiHˬ?(2hC"EF~Q."KF~΍∨&PudTM"MnE[UQdcPw]7EOw軜 "2&ߊAz\"RC.2zh[EtsSV#ܡlF(į@d &SD{yRR@DzPa8r]{ _K T-W_~/m 0^ +endstream endobj 11 0 obj <>stream +H[oE#; vV/O PVc'dE>u/eNjV=*?^;0Yyr3)57sp%{}o^Afu7 +}l\_xsLclxQ[YF柘8G,Ɉ5w&L:3V{J8}#O<Yۡ$Ök!י)ؕnu!M>#v{&Uz:",.`ÚPkI16f.vk5z@qK..7gE5~ 쑞.a˥i; /5o>^גbm̠!A>#v+&>{_\~o=]=}뷟nB߽?,px7iuqK٫5QjOow~~UMw!Jf#kmQiwW9#Ivf!|=xOq}>  kf^~M)C0vTpR6iC-A+s$K;x}x&涋DY⺊RnbE1-M#`UιHj.Wd)UXy) @:2y[ KE 捨lP9(j60bk#WuU]a\ajX#m$ .KsOΣw +{R'$Ê`AIs i+k 9!ٮE0@ ]yyޔX%M{> "s-FzݒhxsvK7%sONgy(oҤWS\15z>Aa "%:衬^Gu8$^2;q$۶/ t[>4֪1޵x($C4].<"^]%}15{n(屎2,xxa))n11iy9HܜkȆ;p;"3"$58obrkÉVaOˌuqW[mTRR[E)$c/O~qpw~}~:ׇݤLM)o>PC?}>NvaW5w7WyXrvG䃧׽n>MIܧ_L_t~uux|m:{1+:'ӵNtM ㅼ-iyp|7`Ǭϧ8 >EPtʽsh֠2Bul!û) ʒ +{BZ^HɴI$}ֿ ;0Rj=LjR,-SJmEamEKæ"o%WxzuTNc"!鰭*bmR|${xyr+VP,ٗ҃*H~ZgޤmMA( |}ⲷaӡrG'|ƚ![@ЗkqRUl>9[/ØYOYaST("rYrTۇ__ ziu=1Vf.M:ƗЕ/[)8Mg喝jy4(kVBQ{EЦ |Qۚ)y9}:D,}a V, ZyxL_1KAsC#!Ԣ40+uT,7Ɔά,Pځ ++c Io*JPL*B@2;@L>P9*Nt .}H^ #uH^BH=c [ mਁG?eqArLH l986">OuU.A~jU[]S͘A!X3 +HN06YB |Cu*ZXuOUy+o=#9sDEW|xryv=dوg'<~>BO+>\EKFs*\ dPW[k͟Ώ󢱺u@c|䮸y˥=\Dy$] ͈ힱª@2(G +V+<ƬIz߆VWϿ^{W_Oo~oxZzz͹/^Km{g??f-1ozT5n7[MOGOy$VBq۸Sxb ptOvq; SiPt9JchJC?CW`VPmes;o| CשY{s {Ԕl >۔;v +CVXqOlxDUYwUy +ZO]A^E'd̖*y@Y]U),DGM+_UL1Fg⤛@|6."85 +d{a{n3@, hn?Ypm-$x:=OA,w^}`=bmS 3} 3)Cf]ـٚ:,(xKP0Z7TSm;Q4Iã*䓥~*Q^9^T\ɷz~~C}⋸֢ @SԮaC7S}zi_Lt8*~)|]G!K0G5*&.'ɠ.Qw^]gKZHոv>@B>Ip۴T5[>8&rcA=7i#Y\lM .#n:aFI>Tc6z:Ƨ>R8LUA,puaU1 x&ѵpUhqbX`N%:cݪ''ψ#'SXMvU>2&:CJi=͇aYj{u"0B(aǦCY#Нhze\5^eZl7q;'!`ʡgY$c߉ZA>ө!Kzso TkUbM/Բ~~H_%V {oP~EdaJf{W5/"JT4~"Tg+' Ucre3BDl,M<5n\QWƝΔaW/!ԯ&V-2hQHdzӷLc;=_IYgl(@[,]V`<xjO2dnH3J䭮t,M4Ysa pnBw?_^vВ#X,0$ǠQ#:=S SØ}T>CT4vH~Է덇~ڔ?qr7:}ͫߥU&yUUi=eҜ!w#=ۧn?.~<|RoFxNԥYvbq}G/N}kC uW98GLo^ÅoQҎx0E5fi$a=/ߧ%npW|3$b{mW|VJiNW|wӽ&#-o"C(g;?CDyԗ-֜`LD3\-4 L>14CMw<.짻 pUmK9+)CޫUI٤!vS{V%@}K@pϺM듉~V{BS5_ \ k3 Ri~;kL}K"@M" ψȔpvIbQ ;FvSdojZ4I[I(r\R8Y0DX, :䤫hay2t~c )vCY0,ѬMCa$i3 -v$nD(ŝz;oLuuy(‰6Y?#ߏNH(E.Y)-&~9[@U9dzOK:*a~%&N12f%yx'"(pp>n=WXBO#FaExj&GJ_zܒm_oidU2탙wuz^(jwp%';;_¾$e] *8LZuނX/M9y!xf n[dmn=$u 2 kyZ!ș<`yWyhc0\yvp5^mM +9.XvQPg,AՌ";#zw_l{e5wN.xν[}p)R z5/,%hg͢Dj;{?#,rLsax"<>uGxZiOOXq잎t2Ɲ_dbtx1lYi>j/Bmҹ"݆UB |g6餜g3(??3`~wqk zۊ\Q +z/sP:~E",;A_n nnd{fй3h鎒 +M/ _uz3p6B_~415G[Jt؎3R[D-|FtvGn9q8ِxm g-q:^zgY)8ܰ n1Ql+~vUd7ثgpSuyxL\i3gc@Iђ}~]SXrǫܮD)-$S k~Џ"؞MG}rpWr`A 'ힳl ~nؔ;naÙ:?NJ<1h .A3WIJsCnP^I`p-9GCn'dƝ|Dt4r]7IۓDK2#XY`icoV1Rgj!g)v()> +=sK>s/#}5ej wx] 1ȭ1N]ObK 5fGry!cs0v蔌^TO{z[:j<8Gw EwץwNPU+^J[ɵ&Ş> <|f O%mA6j.6ܜzRP +|o[dRȔ93"rE:Fh2Dm%,&ሉk M'y* bAF؏B^΋g +ΉA#YW>#' \Cۄ=bXC΋Ix;3ij˪b̢Xjk9cqudq[fKOt"V4 eiPZ%LPFa]WKJ>T9 ]%2:㉮Rɲc33^pj~\Lkjfʰ>2[' IӟCaQyW>S=#C0EY94ڞV>n!17(t 4j8i\޲E(B&[ߢgwc=D˙s}]G\нkr#" ޚ8[>*gbKʷm"ՙk=. $.1oKyX/jEÖurpO0m,Ub蟢}!v.E2;IЍ򷩕5(eo,nQȔD598M= 521nnyC7#J3b} L,Ƭ؋V[+Bq}VрOBk2 Zb[UJ;?6Zpneͫv(nϢdOĐh)!1~}7>wVh"?zˆoQ!nݹ"E2@F?6vDh"aeP!^Eα\}aVgIPei^%5 +=);=`rqK6_FWr:`53tN +WZNi4e8,G7Wm--yUe  *b?Ւ$W1w C,ѻAr3;(@\%<ꈫ)ܻ>kx/P,COXe$64MD3N ®hBn<8b3Nz=vqSv/̄ϩ mP&ώtѦ tkkFiCjkN)3FD2Zr]{ҍz5t猉h,c&`<[up"v49ZsȮb_a\Sr˰#״t%fcCRD/))0$pN87ZQk@moqOiϣcs߹klZ&=^q ]EZ?<XUi} +<;d-){=rCpe[em3=90 WܢuV8-|'ڼCZZ{֤].pVRcz>G;N6t 9l>,ߟ4 + 6Xvd..K^!Az#Fq`; r{i8S3 izn %Wޮ.*{~tF=Jxu7XZa)4}κ](z÷kjF+Tk];?{ƻi@+y?jq@{,Fl̥>5ۅˡq;)P'VW{C-#Xnj튔a%zm_ns-ѻJ}? 4;rNl^.jm'G䏡A~Xg=9=B;ިj(C6}H/zUKCc{Ws\92{xᶔ^RphMbd5:~JB2UWk_"aeDVɌ`aIt:#BKMUļəEZ~]pBS=L6C6^FK ,7[by PsW;N\a*o'TU=G:Q.i4 (1[UF/. 'oޜؙ( kΣGuETzB]p򰭭zva98 mD/\RjljT*##HݹoS6TOq% }Jee4ulKO_ T ] pf, WW98-T2 RюT@{"&8>9ٹ׃gtKf~Mqp+tP y+j>ʤyʎ V~vz"*-+4rba﵈X\d:, PWm1Jºo5ޢ Xm(_}W^m /)[>k(T 6y3w#nʐ'=ci pϹ].FSnYh+`{rB13 m^rcuz*SQ5׎-[VhzLO_)ziPr!EХV-0=PUsq\bV?>P"+фP`qP_U.6Sx]B8zQQPn{pֳEE{K-@4죜c@ك?S{y!p=B\Jv^Ŗp4"=5v9ڷo/JW)ZV U*qr:AUXiv!kZbs`d^k)zXί&.\$cw8"v>)v{$5t;x&y>Me,ndF"9vs)>ħA[3']V62fX;N[xu?̷) XOE]ڔs޼5SY2>&4Fzķ89-n;)>ev~X`X`vdNǴhI cS|dIQXEbJetoo5ƓC2fne9(qwo's ivTYrb5R(7L#~K^7>GgiUGϟ4Иy5*BaL7LLIwXw9$kR^=[_p-5Ys>4(Zu={c1=ؾw sZHS-<}}n'T5}P%7,ykG`Gv!Ywn 5U K\)7 M >J8gWzG0՛h51rب%=j$/ YBڛHr]gʁl[ + Á̋Jw-n֋e( Q䂎%r83_0+Vޘ4k2Mq~ڇAܐVxe%[8 +[ɡ'x`P't/>,nck"=ayM!ݍl wqA*ff2Ys|*%)>@H{SKXHZhaڔ0U%{SOlcPZ^uD 9SŰ]ZܲU6\fT#Nk GήLvx0PB%ث\ em +>70M-ɘ`+qur?]6wW(*h2o)J1Ћ!rhÓHV3lA#-Ez{׷m4snTcIvX`ŦҶmx +'X[] mgj;mWl`'6V<JfFp C]Qs ;IP$z/';SeS&O%F.%, HOfB^ePhzUS*9ARq: Aome<\*\ٽf{t3*Ik!Q Th@g댈~x-lD4':,R,mAJ}} {z{kf !t +Uc%0e ?{џ}شStu9Bb\.mI-L2y 1TO($pbCc y]kf68lc'z|].5]SP[pi7Qs\|Eyts+$ X-1ba,-tUSu,nmUF; -casa!X_,g08'#+|Z.K(y)+ o읢4u.,Y3]3)t3crM 'NOKyobbe{攮-frvrT%Go.I#ѲCZiߴZVHwoMу̒#J_,S‡4ZwѾCMMB?R$kȢ秸n\</%J;p).+ۻwmP6Zj*YASg=8q`jκŸ~"oѳ_`m%e/SX[[犥NY[3% ,q3(^^&ḇĪ+hEfh ËksKaNІ'WX-'Zؠ> ͽ< wsc0 9'Ks,h`\,>sHvD^=HPkF8UB1L%3\O;&8FiaRΥ?_%΃Clj5.i@[g[k Ov +B'z:4dR'"q^Xħ>ygvG,^I Fgw7i'Ne[d_ʌO+bȅKۼd#g[>\ܫjn&p,xܢά4&U.ͨ|K(N U).uq%ʷu@pGʈ$y0JZc)tVӕL}=qhC s]&IVuDk/3IdY\l}xčgH*h(mڙ^Lu!l4+ g Ǘzl/- Fqh7;OBCdvRr;O6O&os4z߂Q r W{țg;]Ķ-*%Ĕ*C+ 4tvSZ + 'avuD&z!1SEcěYhDOm#6tjq[ٮ_ 8o_soOw_?ۇ_?ÿz˭oJL{I7^uv7?$wO-BNiqk'`B}F3s.u1ν˳5FZZ~?د| \o$jݹi "bK߿oӏWx]>曯_}?_,,8?bSEK}~L,  Ob?:QM Tj+?p^zr7!tuR FJϾ=M|[#錏jY +F{o0}C/'H7\Dxo6ßops`^,xfcVHBjGG,qsmx|G^[]}Bv`P<:>M6^iıς€b7w5TO15g)0ͽV,?)?fC۔Efkfr +;t!J`YE:-;]P5 @|׋[wzSC[l PM +pgH&턻^_CaQnم4) +ANJ[U]4 r.|bCm+ +'p'@rM݂R."7*)S8jas\Y1ⵐ|?ꑼiUXMC0"f}(7dx-IY +xٟpM|Ey$(>,԰0I~HiO=5v: +S(y?E@D >,(cvRS Tc3 !iugv-Q8'Yhyh@v]H'npH4/WbpVb]8rqG'Gsza`Ke}]iS-E^\ Ta244|fE&1aMB&F3瀃+LφƠF`Y2q핹M\GQZTݘ g;?oCMцͭŲ2Fu>7 xwht U{Hr4׭9+L<@+ +n(rCUnw)H#*'+ñY09\& Kjhe^xe:r^%1G}zm\歃/`$ܭאm +l|^/RZ fy&NXxNnA`Ё!%kJBsg >s:d#I98* (`L\;^K{:J< 68p_Ѐ[V ])n: û38OpM9HWN꒏7n9^Kѳ '>9+A}g{\Z AȆ#`B6`: [ ףߗ!eW]4fmKeHP!)lC +$!=_:8ř8| ) pigyCO7y*LZfÅîZ 448<ȣ,v尦/X + ̶W* Gá7P5u.m 1I8K.5&g$OzP9XMfqذ];(1kLSO<8kr|٠p|gJb#4.`[P]of;S'hd x|ǘ.-,/^NZ?m~s:ۧ0V&Wߟv]R?]Τ^[HiGG+yj.>tsŒ rޚw{.HKܼ 6_ez eă{}ٹ?Av5>GzBOCXɓ005:AyaD5H DRjPe9> Qn 9| +-v%'OT&8CԴoƓKCPRxS=v >Q/GC2q'!`^_c9F)&p3{d~ v2iC6Zlw4!KQ-Qӿr; xx}E˜3Tù%LjStC U=Ȟk h$Ξ\sU~ &{c,pGA/gr[)gCskأ­WUZ\Nwh^]CD`wȣZ:X%O6Q70ҋf hc/=B""`oifgb_Au%x@w&1%<ʼ\LÛ/b/0BvC<0ͷsZdv)MԻb75V]uګyqpJ5as؀Vb;= u;OnjYs~i# {NfWܶnͫ{4!zSF?[[DWJ)jz|1ۑ)ȄK$ e EAgf'@_ +Z"goj#@d,^6/>W%\mͅ[- }4ȱ3{ !,ev CGxSڴnqodg<"#pGͧ1KSN1x3vg9skpX1k00N qr ڬ{b[w}r8?p=T $5d[!-;Vv0G_ƻ0s%rnO!qY-e#j瑱 ੠aCs|oeUһ,";Vu Z´'R܆ p%4p߲ K;wkvs"3Sl~[̳H]/GpB$]1ֈVk͊Zx5jr[`ͣ!8pMRs3ڌmjuwڏ=\嘯8-e"G/T83 \lw6Bx7.eTQauvMf0ƛs^b?l.2jt5s^n1r05݅tva.1P7wpDln}\mC^7K(6JhcUP۱aٶDdMhԃ\9'0iUc3pFN[ N󑪤_u[²{ `+=S1eޅS2ޛ'ԕ7;& +FI8iKʘˌiբfV/IÉR0Ve3xQPSjx;괤:0鑯ȵLFġњwz'#VB8*@.c~xݮHڅ{r8Bѐ޶m'|x$GVWcb>stream +HKe9 +%b2=ӻz瞓UJ)c<~\K)RI AT'\+}ٿEq|_?TN دopvٟzolmE\ s)eK1!WN|eKhJJjK.[~}aV<_!PB^F<5 O*A"zҴIZ<~ r%ȭo^%`*3*y ߽41XT],%Kv86t[KA(Ko ^Gy*xd )fCsAzK;4;fdOiwؐ׆fA5z\.~oٞae+#$KjЀhpMG9МFw%gB dvp[ۚkm|y+ii#܎.^yc􏴸kupJ?{2 XV!BUp&>ɥa’,g?4 B50C½ +'!TovLS j xeX:[_5#74| I1$jw|_ brVSa)šXe7X) 4;z oͲҷtWPg2+䯨j!@?9A:dQ4VBC8: 8ZQf!TX9<'?@Ixo5 +xi϶Zn~eTUh|9Q=G 鸵$ ^}nK?hJ:\P'*,#laUD:EP_DNyXZz .v[5X$[t2Xfp[snس_\(7pTZ9_o-r.9Ȑ\yS ڹ)qMI;{i4Sk?U.vʼnC:-J,[Ԕ2|1Lv@Fcmo)v@u&ҚWEUڃP"J6xC3nk)~} 5{2?{.5K+*a>̹ʩlj1>0nc|Wv6ȩaki.ى%|Q^yhVuCLU؆"u:>檰p1l[X>GU"0à8\!ʇOXs!^^/am-ũV̋wvۑA+ng!-ozVC"^tOplxIiA*!ٴFZ{ǨxNg$OEB-hCmm9@XU Br j6laiyUtTyÑ8ldYpUt? ȃ~D{'*Wbl: ev+s<$V $,ÒmhkK} yǾivփ[)ǚQ'P*~zz{ Y.#n1usYaSrm,,[Cnʺ0=g pz^XM筡f ?S:di[?gq0~?O{n>_R$fb,7"y}Rl~Wk>:ʾoT + hx\\gLu=[:0l>RbUzh͆-X2O|$rX+F΅SZYnщI"i_[UR<9ۼ"3Tnm;,6Yo- +̪qհmKCiCè9iðKC$6I{{)h2!ÒAIhpj3 ?%6LbUUذ_ #5 IvƸs0H/B8mfKbޚؐ.,RnVG5]OOGDI-}Ǎ^*eˤg Rst}a@(9d6jn1U ֝7J(RTm7)LZ5 ^ K]^-޲ris"|]1$^= oR$p{0p֔'{&Փ 5Ue;'^\8yJ:Nݵ;=,d(vt43?qkaڒx2>Zj}a*٫P>gsmZC>.~л6_=ڡ WC^VS%zٷ&|Z@#JA;ߡvr{8{y +]1y-a©j_7ɋJQh0޶xG90"@#<4O2N Ft%~YɈ=Ɠ0ٯqa/4*Mfp pT'[%[ \ ZOrn_۾;* [7T* LJiLC,=RurI[N]1CQ0|{~ĦSN}MSC<'\4I4F0FGV_ Zȱmv<$jp% 4\,Ctٔ\ʰЦ +movr̵ +ZNż/^v#u@>hfew5h:x?1 kI9<p4vHb-a.Zۂsqe:x g&8 + 6#Ģ +Ě_ό7U='6in;u<=D,@kW^ӥt;2y_:)^ +$))owSy/e9^plpivTjd(ӮF`l1n fɊK4a>[uAV* r= s|zC)H"IC^^|8 Ku)= $}^yp`ЗFPʫCfY,՜2ֈ+^wTwWC} M}вH#ڏp%ʇoÀ-qOQ?@x+Ȭ9 +p] R$ݎ-$=oJ<.TTft }"bh ||u#`Febsk|NS9 ^sǮi2$}"y +K}'UB_1;)0"dH= <[ܢd7KG35C0tÇ +~|#c}q=C-t3A m5A^@ힶ0P(!gn]ſ. ]o|#վF]ەGCk{\4 +A1m0HSb>@վ`U ܓxZ/B)'H6 `~1!Z'&.0 \_fwrjFW3KdYoYjhPg\.2u@عY6;Rtdp S1Z 7WU ZԎUԃ')ݧ +]\rLQZZasKd.%[u8˳MLowqw38 Fd-*sqE>VT9YG=Ԯ1Z5uxN5&yo c5X=TÌRm .v1S ^eu{RZ2JF]\) /VWa.fwՖ?*H<^9pznj/<$m[ +PRG0xpoEA[&mCنпq. _vq + RbDz\VAE(ë;J+0_\y1L au2`À9W]tLPU>})S9ë́ |kBզR񎧎fe'Z +1֭:н^ &wC3O;;a8;4*.3ּU*=J`d3#(:(ԟ/nEW[Ao)uU=0"AK2]8NpJΌoaB2g$Hg -,@iGOWÀ̒EG1,y-c*cCK7gd߂ʺ˩-ZE(re|p(ǫqR=8;F)OvZFqHv/!XW(Vo`kg8ޟ7)9Y% r1!Yh%ъ7HuP3v0gs[|sg量: >7Xr8$n> )a.b^3*~!%ֆ>=9A 9(l0n%Hv"葜24` +YMit0lr!8m08[kiRĎf>@cw+<TsZv; JZ4o6<}吐ch0\bFS] E~$J6(ëbY7l5#3adֲQ4ho0佚 -i.7M#c-d͇7F[&:PكHy݁Cs`^)'#oH)ҿ_Hf0Ltx*$9_ C2ck־ z@fh ٹxo4J-CWn~xyHlMZip)pk1dmc4Y $x̓96|yCe Y&46v8جstX Qk;]Ilfإ,Y$ 7%>.58]21)j6! p^@29L5xi^ + x^ۿg 2=>m&8oF$1[uHbNYƕ-vBhfON%mn=Sƽ: tc뺭LBpYF•eFp6+ؓKɧ{LuSq 3 sn!:Jt/aM[bEqMsMɄe,9N`5<:eƜ͌>u6LayqYhSS3L'KC$D.[&#=ux,6DԖM:u*y@Ýa(_3Z"ݫFM jEx3)ɦP +;T06 .L4U@`["h4Եʮ)f܂Eg$S֡y4mW\%˲oj43yr [K$iFE;zA0sa/gjgze*}XcY? 'Oٷ*5~u0?֣O|sy1Ϟf|ۗOqЧ{}{?ͫ2\^oC<?C9翄K|휕2D3ʼnz18lzzniW ,C9F $Gyƿ'~{yJ+'hПx`iUe`xJ8 2YSNKA bnaN)ro.,^S +ЙQp`6&B y]E40UK^HOD4 9!o[sqѿ6. +x0wn.M.~Dd-`eekY-l ~K 5ű%R>#{y ՀZ"~#?l%cbor1uG42wG#aqdc…+Sk&sgvrI +&Ԓl`5\nDmb ͲtpDB5ҤBkQQ=he1K4d=kؕQaM$xGP&*A:yeF]u{sqS^8}1ΛC.cԘ>A!*ε:~&[|B-^"}VV}T#qВxsbG?'wz}}w stLJϿ{}ӧO<e~F_/}ߌb, '}a|Fvˇ9±Pp's/ʌ/[wx}}{oVIMP;xzHTe;~u;Ʊ<ܚ_m"=*D-[ӣ/L8L$-%K\(jn*K/G^(nAkݾS 斁%ɒ[jGK% @o!22*>r/7ap CQ%yA։pzY >'4O7o4FܪX&< seٞZIĆC5ge@[P'^-%%zݥ<UJi68?^ {{.c7Qh S{`W{1 lD 8XH^FD-J9)چqd>դlȤa;sJyQ J82$z Cq +^/s%im_LC +x!ڵ:\AhrZU %'Q)|T% a߅AE~׈_ vky1܇ij5i<=pas78*$R^yr+l]X\CUih6K-1: +I:Q}wCA x g /ةK!t9_4`'nԒxWʘa5 +yg5nh98ՈUOv*&I/4!dň [&0A#TLm +K?p~!%}s.( +v9cøy@ڂoZ`l}oTWz/nޞA6/%3W܈-eFy_Ԗ ͏w`BES`.(` _sS{}:}<`JTI!<`+oV4,Y87F҆iMNԁep"JT㌋1Tblc:)yb流=L +Vݴۘ:: Aҕne?4rL(5-q,1jP˃|O_,P5"?נWS)E['"dy8=:fҰ ,rL< z~`zeQMWo_<<~}uxuw{q#c8Q9Z^pun9<==9?p-`?c %Src8ș$XP*hĉdGi-!\ +>.jDQz@ qFO쬹G /rx_|o_=>^>*zzv?bс[N>~q7oO}I˷˿ ƛﷸ!XՍ-l]F~ +/'+$/Rɻ9XQUdt5dbmEh}'t +܎v*X৛+P{;Ψ21. +Wh|LϾ˩5-VHo` ޾Dyjc**vTnZ/Ĭ{9&PYbz7/{W|gF~wwD?W<~^_~KUߞݞ|X^=\\>}חgW_ww/?.>{\^1=Zq_mK~E/))E>qҺC6+rmriwE.ةZ˒3gfgfgmw8]%ЄztK4$5ʕUeoӮtQ4P| 7%YS:?1\(1٤gŹ؄9A_@)2>GS&r9]S&DRRрvaU(ƾczVk|[n::VbY4bTHS4!f(sU,!נB!࠲2oSRIzui7C߲ / 2p 3-]\|u8ЮTK?#ɷlW`ri 2yP@=Li $P  , $ +z.v? ksxNM#ו^~HO!~ GCq 3|a4kl9 ~k*HdL i?v\w?--jv+N^L u;e{ Q!ϲ ZgM]֝")A[2Fp#޷Ԧ=kyH!q0>,dk .*[/r +U=ѫ4F:'FH^䕵`CPtm9hryiS4PϱIћZB'xf.5P`={{5;5O 饚,a֫zBdypvC47_ +.k{zwy+ yTPNq^E8lKgBǒƠJ@&+frtZ2v sɈfZd $tj3A+L-FY.ISW+M]1Nⷯk2En#S)J1h.U}$ i^%9儤3trU[Ps |M5͂0٪6*(e$J)hו#WIimI\tRK8;*qL9KrM^CTg*hH-xAta"lg,>B79<wqIx5\Պ#2lUC쬐7扌6eڲfЖu]-IA%79[1zFS*Wî&MqP]&}LrA2~9?f@g.=dh"pJN %1]<*.'iHQpq:WU?{ˊ?0+~ps5w&ifS4]ьtRJ[wr$H)Қ ow)\3Sft=(^v7^(O/ S"P=f*J~Pɋ4=e lf)+Nn'1w2N#w¶[m{dî4ao4tܭ}Vv0M(\ yB;M29%-x7 8vǂpCdL1ɺx ݈Ó1 gE\nX"ld}1Y-%K.q K>c4-ţrL.2KیFo-s-Ac3R̿R}0 FOv5:23>()e|խF= +f$0D_um[_֦66a 쎠wGoY&V cbh7Mh^c80fܑNq-UؖL&9!.6b"WiTpFo¹nܘO!{xWerI"\'7:M8?48n[meS41 My3Q dX]/Oaid;c )Eb+=ݵ6%ϘNiSBV%丁߉+Xz׌懌`[RM񻺮D$^aSe{W)è_w}bJ ++nLXMc:=~f !E#d6pܤB(jzY60Y/Y@!LuCrj +V7v7u1r]珂f mb =7o\k&Cr%RL7wۑ:I7Z, o*[q/"A梮m+U%8f9/m +HEnړtDct EBG E +!o_x 쫗"wЊ0j&jT?,Pő_]I`tpTW,L5iG Zg9<]Ό:9 6ͨgGܛxrdr?8ۢu:->k{][?W܌Ԝ+lNF$%k*6 /$U_n?YޮPVڱ͎ 0dX UGUvrʨp *-|mAȓӹ\t` ;v[b׷-Rn" zj9_%4''.;$f@@i5Q(olVg.Uț^w}"y0jyӝ74sCK2F}9h/ ٢GJBl|Z P3 E͏_Q'ke}Owef{Dzmlj!EYh/JEE"ue!'a?{rDGCm~;Rs*$L2Fw[{Q=44Glhy^fOs5մQODQ:,oMp!:Q)jZ@*q7W )y-DװS8 -2}3c.s^~dd=>D h`X +*Nz g2и ܃׎X5O}c=~SC%$!-,]N+ &lxemprBA\Z_V:s\Y;=Iv$9x'Uugɴ! y_+d [];_[.DvIyQ3=>XSMO} 36wA%q=c7^q_Ch_|`ˀ={]3BlBPI@a^Vxf3ի/[zb+n֜e0&'0$TW=3n 0.Ev<\^ք>sak=)GC}?R U%RW +endstream endobj 13 0 obj <>stream +HV1;A(w~U* " khyis(07oIN!_0w#aai)G|C.NǼj'rFu> # h0^ʁoV686W'zЎ/wNpj U%WT>:[ +T[Ap +QSA8]m8 ̳MBiER-*m×;Ǩ#aun&"~oh_Y}B +/ | 47MLઢ,w%a*`!6EٮUlb PłESǗDgbjw58*['fou5xn._'kX$agVUh,6|khXp^fָANX)"8UdMڴAf^yӀ49(pbh n*f\v&O G>yc6*PUq%τ0r&1l^^)fs,d; +64- Ec8RF 4lH@ +FEtOPGm+}6gP=L bU$*a,"cboŽGCȀl"NfS (i"Ƥhi8)&^V5CS㸴r$;.%֪ ,;!GujWgr4Bt{oiM,Y2gPJ&UiJ~-72mg@#&g%w&"~q96_3);E/3p#x6̏Io]@ izkN޹۷1ީ((H\+a5hp+7iXܓrZsWnVZXj'ŷc)RɨDN ib{;L|z͊X6:&b˻M׃霬ן6T?,c_*$z0 $yReYX w[6xe +u +w?97>ybyX$o@uSjZ"33b$ 3j%|y]ɓ3QYag|h?dfkn=#_T R.`&wHDEKiŔJ0g7<2K[zSb\]mMf!/tjwK;DBIÆ +FJ G݌:E6^tߢڝN%=jWr%3j%lj5$nEh.wpe1eBJP#4ui &N^I-_huSd,*%m~*M*ӱ&9Sk`CxNmө(>-K;>fڰaRO*ojlioE;7XT8]{@T[ ^`&3N't~[̨y|5y{TZ@6Mr/f[2&Դ%fmJoB} +ƽkJ1kpPHLZǭ$0md\hULj5+~uY>40z6OÞpVcBFgw۱./;⌿Gt+;G͇ԗ;zEg{GKQN'rMM/tI-[j8ٝ]Or}CSjgZHHә_|VӳN N ?<.NpJADzNC/4wT$_}`T?3jR u(]Ns2FDJtIeD%g4ޞ, JDqn>Bc+%DI驗>ycՌcگP J~s_Ikk(A8L05fp8TGIGMCZܕ+fNI$aS[Ρ(ʹ&!>Ji1AЈa 0 -d&AݸG0kVfXδ2tFM52j_ 4CdhAIǽ⯡~RvQHK}/\s$9qnɘ%V$|:0B$G +-odM}\Ko#꼛H!4``C f-9Nx5ZM=FYvt9SxP0mدh&CT+ìW3M(LJFԙ Zm(VX3,V~]VuUE~j✸ ,ƓyyYH4t6Ċ, !h>E^w*@3/a73k{:qh=-Ċ^(֛좼5n.{uM!eKtZCsPh{>5h4ilj݀le8JmL`(} 1Ҡ&nX  A{UZ~ PnaR=9 1y`{ˤgn"] +Əx"!Uɞŏ\L9ʆY$罕TV?-O +\ +!kVmʆ$AubB1͙~y$*J^&BsK־e-C[KP.?/׌8 +/ +^ s/r؋_h`3W·C}hP*rv'b?1hanVPC ) "uG߳ݮN`܊G`q`v3d` &!΅:F"Ⱥp~[&%\̎0#"-0.I_r`h}4JR_r0.rCf\CkZu}FJxDN|g8)(<Dn| '_wp@2X[Qq-Gkr z+gі#lh5)r6Tp\YA-6(Z;&c6Z*6:8D1ڝ^FdZCǣ7 ,dZ:5E00\ݍ-?'w .I +9^7 'o +!*ӫxj^O!hE~FO77zxf*xEdC8ơ d+KUW8IPI7{М=S{P xMLf¬zUvM0"' KէlEBXTu%Xu(YX-+cw!p%=KoiºX+mÂ]%*ǚ`I7zĺ4tdA C!PY1EELk6? }(cy"TZSkt=d S1%VA?UޗE? @7^A"-ō'OJYl33m˹{.xPmJCEюh24MBַN~ }qYD&Zu.G/nlъ"xȫar"@h𐞣dyYƕLGJ^/:|b/StDʡ"Rr2Z@nEOVTmߞ:COõxj_NPdU۹zڴŀׇN]' +{al h6:yi~-V7Etx$kyxM+4ZP-@p[@1N\ă0pAVb-2 1FYR|%l4W;:a]l?& "@"*4Ū5,*#QÏX5tMGXW/e +eArmh$mv9|w qi)=ee$w pqm\#U9#Hu21\I<LVn8 -4qm *W 04,KBU4[/tZ"R ""=N//r8DȊ v\42cb&x}ERhIO$w+'4݋BuZk-WO4w!,dh-#fؗ;R6e~{ݓQ/,,/p_:-ɡb[л ._cvWP\v_F/ǭqi.~Ϯ[oFQ޵Un>rG/V|7ÇsY?OyJXOI8p$dHџe{-!}xz95GNdɇ^* ׋E53,T._.O5 +܄KRzL22ўW|Jd%o^ie/{^aiI dX[^+?t}k5Pt'Rx=JWB0:{~&9^O:{N΀}j7 ~Xgϊd p4K)[`2W\2Y;UZ?)8ȽHq p=@bksVmgs\rzeM3p%f0V\ +bJ|͏Z^ "LzC΍"7 I|\Z3^Tg͍2$[ohXnn% )QW9D*_АXefJeF@gxW?9$A7d~굟=٥sϕּOuM)F!sˡ;.d%, gl0UZ@z05Okv$\OmZ8D]uIOõI#c3B/()شi@T -TuoCBxJՆZVFfń+)`11: +k"bTHBE^ +d#kϟM!z2w Q g>!vkܞ ݞl hz&=*ZA]Ȧ c64+9XJ0r2FfP ]@;IJ5)%+\l+ӿUq)`pqKbCz66`%8 yiF + sǻ&+^]i$QNC1Q ["(eq$zj/uOs~}u:uDŽ[G6\ RV87}n*pn覠b:PA=m=v|9jST +Ap8/8(w<Lt[ۙCWr~Ƅu{{-z&=K=sC'':7ׂ1Fgoim ~rChD˯ +[-2CKm>P[DMhh~`wB&/37jVbߞ z 0x)n︐QBV6?I]YL#z3@}~ѯ9 k"( 4e&$)& qlJTq d*if5Mה}xFIf:><:hG^XPO: +5V885Y`5-UЇIL`g (ec4%,RRgT}:szɛ'}{, Gɒ<:=ߟ#[h<#@Qӄ؟ΣLÜ)VX&7FaJVqyxȠF.&rf9F_\|~iR$ɣ3MMg%xb6 +?Pu@G6lG.5\@9ڕ(AA@ 3qF\k@#هWeǝCLznxEV?ʻտMlH)-Gz3N <09Q5j-%؄r œRxl<~h cel*'w +^nOPPu.i@V4O1Bp[f`Dbj-XڈD}b$I.wt{VE +eiUnB3BQ~m7ϤFkb"#ݮl~8G#Bq j?U:^v aF.M֏R[d9 <ɹlc0T˲~x]Ǫ~ѿ=֗?/jEZdEi[:b໫O-:tjuezGho?PJ"0RSj 5Z3?-AHޓ?B3U`f,{0k5x +wQ idĪ9!Flu*V +̠${S'\/pZ=Vg]ZM8!A 78 V*gg&J.mN_EV'bǿ;=:psC`p:Yl(jh%ާN+P4Ѷg#G nl2ԒgK!9aWM}ANl骶5=Yh.|l|oG;;qì[H;>68ƈ`Z7DRTLOCԦ8* +\>Zh {-;YJf`⥮* m4y͈NL͍[>A3[>R5YclɁݺ<>hf[Oυ2Q?u25ÌLν@ +Rqr5NZ=UMl-z;3! ppj6wUoύГeԥ~\(?2sCBfKFTܤE$Je_y+Ǯ}*^5 hB(L N ԔGL6F^eE%} qhQW)mcN!0C6.$0`zzJ :i+ tА_M+R3 +|jH֥*)u*2pF0:d#Zu|%$ nM":M'K]TњM=UCx +5(h +kuG/L}I5i&(D@6X6~_"jᅲl3fh,P=O'";zqW.c;ְ[H2ՙQŃFY@ihai9_y]NP *J5/ىAvǞIpxu׆ +5DOO)+iJ3i5hQ[T"͍h(V_!gX>+,D/y!Q42ᓐ^FX+Lw(a?tyMk|{"P<2(DG#- ]Hӆ4&?~pQ885 +)ߧ 7_P$ϼ[Zh-rdA3@+HHjS }Μ^rW͸-<\LwZf䬕OViK>stream +HWY~ +*.펭qo b=&26S:1Dw1i)dQV|GF8c*n?pLpJFTNp|Gjj^Z~낊l`r|D>%enjEmHgmBVM*S WkX\wx0r@&kZ#Ö k%r +#Vl9Ix>uF]n% Sw^G<ʀ;…&&荂Q}ќ}WGoU>CECL+ "0괄ciZ5v\;Mi>k:[z1-m~pU&T(D¹ C {ZCږ%g_Y>rZuekk\Wf3h:g8E_phZ\mۢF06z:UOGX&48Xŋ*w>*hiV`5,b FVDˠL÷:'PجƁ^L-9ې +[O2@O!SGKBe:.! c,K}w z=ǝtَ&&ԡ*ֽ`AJ\5t2KŽBP'l `c` +5AS=@ |SO?d&E @7|p8dmO :sg/wev:JhR Hљ!+9E$; ̬΀  x)̃7 E)3y@Y,31؏R5+a_*@%.~4x.v~xay_E$Wq[&<?9XqUP*M= Q`l^l)^cG\p7h|bNԑcLs2i9QA;X@;i==F6C>D'z v0sKѼjl{\K](C7`}OnQZK mw5 +qĻYbik]nvAe\ܚ2X>t7?Fe-Ol(!CN.@~[1\ࢼysLWrQ|*ȿqX\ +dQ3{?H xWX¿u5cb% /YC_.a~˯/.J +ဦ 4Gi![B_ye$ɿ4Smdj~ڟO^bF .vق,rx (EFa*V*X@{`;˜~d>uj +&U* + s/1ѤsoV:u8WM(iM..W%hHAkH-,H0 G`iҦy-3dU,[l +H[h(KP4ler=GGv;aDo|],Mc'z0<8hz&ownUFoCmX_(F0^?~M;׷aYg2t2H-huzngG]b ? rgDHZL7F{#9m@^,๙+ȖrUlԞ}mͫex]N 6vZBRF7ejs  fktP*p偢[&wB۫SS[*yUrFG4Zޟ=wq3{К_F}ZXO~" M##9sAwiH6iZ77&uVv)jDFt՛2}/}7UN:]%5inAjba>5Lur M?,m-U`K.4} ~gJUZOWj^ j="%>P:y4kGH腪mme i>%z{:ā &JJGm, +hCHbqΤRs`c*K[)'˕MW7@ AQix߾%R]Q2 XdMzys>sӼ_8{vްq?}խ6i43Jis2~cv;pED>B>nECn[#"l0_D7ea7W$j +>vIc. aTY]Gg7RWY=qz\i^6JŷGW̟'еtEAm 7WPl]4nhXX}(.nqGWښQF@5UZ +f'o3՜:FtU9_Gj +8`T47׻ImMx72i0#c ~ ;c&,\4N\g_ys\,wr*/p?)6Κd?R'#)Z}hǣGwLw̹ãswR,ɦ^Z[84uGY85d;KtNFuE:Q# 7zؼܼlpdy]Ev^_F)k}F^J~aSeuta8bo?~ݺ@ ޏ8U>,|T*=jxgjSœC{k#u݀>}WGMsx?{~e (Eh&:׾"cۛOoNaFӛtN ߃UpP+[OīЇ=:/nn<JGH`W`?{^Y&WK")ciW諕_.?8)XEg1Et}r FilO1ji +7_<7 @.~P֮I?PE,qpkoL(eOFܭBcD3.d8gi?\,Meš L( d1w3(OpX@[,L¤xa!D02!KR8ɩ(XHDse2v"GJd `HY)W(yxmXB+ÄNdzARI'!0$'s4;Ҙ`J8+=Ϥ D9$` r +=-YX&Sqv`޿!zd$Z +ǵ‚BvÐ3watQ'",Z#ZI$*dHi G!bbF%\cpJSMge!j7@rh^6`m}*XrMPX$"aiE]0#aPf)L<y $WeAp]XG(XH@"tLHP4p f* +J1c5s5Ֆ z9b>җYb7+IHY` H? hV1+jJiΩNj8$$<9wYtQR4k*ݦ8KЌJ\a,:{{}8Bwz[J4RcI]gJ;vj[8VieĉKP+O% h2:}]1p>gl'nh9" +ߍ6U⇉XM=?qwX=aKd%NnSȯXe @=O^kUչK|k0[{=!s:v:`HOOC&;3bL8fNmV DbiHԛAGjHez`Md7YyMàwH UH%U-`&LLy+/ӤTy:ި7͙C l (胙IYuOT)ꦟA^UBM3SSX?8rjBqG\"ҷ-`wx:s){17R4aV1v@B"uNYdq0b T,ɗ%M} &g+T#yXTxf@3>]~3s&NDVh>}4x ~RAw>e9Vf35근l]̿o?t:Ng2֤f`vTee@b ꡗc] +jyzCX9]:ٚs\*Ѳ8ޅ\*fl +.LI[yta~0XӋq `HebQ'Lv~Rz^C-xƽn"I`S2dz`Cl|+n|Ӈ <zK5X !7/Ep 7PTM<5xrjBLΩ"ݦow;fFNvÎ/u{ 1rmءg@/A1L;aҒ,d2*f>Nv2`E"7WsdV0uLOXRs| 0:d>7=To4ؖݰq#VN< ~ugjQzYL1{'BV-4\l,[*yRV"i .al"^'驞0[?z!%{ª +Q ԫ4f@gH*Sx)G b}@늡 mVNlHqG՘W;և8zɪT _: T 7x>޸^C]1^ypZ 3t1fIDLh9|H|qO9=("߻EjB#X#Yk$8oEZXĸ\M> +gxv^GրhP<}Ӏ=KlkoIj٫AڶgfZIn%UjX*fyN*twKYXӁ7[)9x\t9$ 2C)a! fx_L`ϕV VvBƖs_+Y(6_ Zf`J{Px V67wZ{k+$T ٶ-oD|_L} :YͿrҩhK ˠ\et|"שn pLmr#W+TJ +W%ɬՎI7|NY/` *EOi_lKDXW(&n!ֳjW/c/qY2zUR)H#1$dգ`L‡|D+tFLYND~.UV?AIq342 Τ'MIAJN2^uTXZPg_u*IT{p݂#uyeBbTh1ۆ6*2i~AnƁvhv)^?W9HT'`# qԫr%LJ 4* P"&-4ThƉ<SvD=+Y+Ik~Z$^|C?I}*Z\&H\1E!r6\矷~t"k4 %B>T+\džj:X +ZpXMۯ(U_0[ԒI3y ŨJIϻabj^W]WY_!fXnډ&Fzq;%0Zv2VK&!S|@  \:W+`dL:5h? ,yRSh}V'"A;k򲏇'!*%B=!iMHHU8v JFr4Wk!8iU;^FBJ n+_#?{)B&;aU5H {Y5a&H.3t > +ҳњpԛT%Bk?LoW7W"ѥ\ h rBL?˪+s&nH\ڣ+w~dC4IVc*[lbU@)2IeK" q: a$ HR}$I>x,U m4Fy7FL?&GfX 'АԤzK HV>2$ZIՓ)}CY4e=D1"̸lDj pȕ{cHW^ Ķ)OIGp&/]:•4Afܸ<_{:W[T12Z޲mžXY~wG!0) B3R"k|cD6 %o{G ^nFՄH @,:Vaȫu FS7ܦbfuۣ 0[XdQm,W@Ȋ֏M)m rЍ2_\WM 0 z)au +wdn({ckҼ׼d#Y6tuҕBX"EwO8 +MH,.bn +FRE!}ogD݃0Ii(+Y2zUİ*{rG= +Y}J[,Y}Q·y+_c ~ҭ9[xKI;aQGf{kp?`RL<) 0 +endstream endobj 18 0 obj <> endobj xref +0 23 +0000000003 65535 f +0000000016 00000 n +0000030036 00000 n +0000000004 00001 f +0000000000 00000 f +0000030087 00000 n +0000035707 00000 n +0000035779 00000 n +0000036033 00000 n +0000037239 00000 n +0000041259 00000 n +0000059343 00000 n +0000078610 00000 n +0000096276 00000 n +0000108348 00000 n +0000034846 00000 n +0000034959 00000 n +0000030556 00000 n +0000119727 00000 n +0000035145 00000 n +0000035193 00000 n +0000034578 00000 n +0000000077 00000 n +trailer +<]>> +startxref +119912 +%%EOF diff --git a/report/references.bib b/report/references.bib new file mode 100644 index 00000000..66b03c41 --- /dev/null +++ b/report/references.bib @@ -0,0 +1,8 @@ +@book{Stru1899a, + Author = {William Strunk and E. B. White}, + Title = {The Elements of Style}, + Edition = {4th}, + ISBN = {0-205-30902-X}, + Keywords = {}, + Publisher = {Longman Publishers}, + Year = {1899}} \ No newline at end of file diff --git a/report/usiinfbachelorproject.cls b/report/usiinfbachelorproject.cls new file mode 100644 index 00000000..d877c97a --- /dev/null +++ b/report/usiinfbachelorproject.cls @@ -0,0 +1,265 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% LaTeX class for the Bachelor Thesis at the Faculty of Informatics of Universita' della Svizzera Italiana +% +% Contributors: +% Andrea Adamoli, Domenico Bianculli, Michele Lanza (original design), Jochen Wuttke +% +% +% ----------------------------------------------------------------------------- +%% +%% This file is 'usiinfbachelorproject.cls' +%% +%% It may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3c of this license or (at your option) any later version. The latest version of this license is in http://www.latex-project.org/lppl.txt and version 1.3c or later is part of all distributions of LaTeX version 2005/12/01 or later. + +%%% identification +\NeedsTeXFormat{LaTeX2e}[1995/12/01] +\ProvidesClass{usiinfbachelorproject}[2009/11/06 v. 1.1% + USI Informatics Bachelor Project class] +%%% initial code +\RequirePackage{xifthen} +%%% true to produce a version suitable for printing +\newboolean{@printversion} +%%% true to enable automatic loading of hyperref package +\newboolean{@hypermode} +%%% true if a subtitle is provided +\newboolean{@subtitle} +%%% declaration of options +\DeclareOption{print}{\setboolean{@printversion}{true}} + {%redefine margins to match oneside layout + } +%%% enable/disable hyperref +\DeclareOption{hyper}{\setboolean{@hypermode}{true}} +\DeclareOption{nohyper}{\setboolean{@hypermode}{false}} + +\DeclareOption{a5paper}{\OptionNotUsed} +\DeclareOption{letterpaper}{\OptionNotUsed} +\DeclareOption{b5paper}{\OptionNotUsed} +\DeclareOption{legalpaper}{\OptionNotUsed} +\DeclareOption{executivepaper}{\OptionNotUsed} +\DeclareOption{landscape}{\OptionNotUsed} +\DeclareOption{openany}{\OptionNotUsed} +\DeclareOption{twocolumn}{\OptionNotUsed} +\DeclareOption{oneside}{\OptionNotUsed} +\DeclareOption{twoside}{\OptionNotUsed} + +%%% +\DeclareOption*{% +\PassOptionsToClass{\CurrentOption}{document}% +} +%%% execution of options +\ExecuteOptions{hyper} +\ProcessOptions \relax +\typeout{*** Please report bugs, comments, suggestions, and improvements + to: } +\typeout{*** Domenico Bianculli } +%%% package loading +\LoadClass[a4paper,10pt,twoside,onecolumn,final,titlepage,top=0.2]{article} +%%% main code + +%font settings +\RequirePackage[T1]{fontenc} +\RequirePackage[charter]{mathdesign} +\RequirePackage[scaled]{beramono} +\renewcommand{\sfdefault}{uop} +\renewcommand{\scshape}{% +\not@math@alphabet\scshape\relax +\ifthenelse{\equal{\f@family}{uop}}% +{\fontshape{sc}\selectfont}% +{\fontshape{fsc}\selectfont}% +} + + +%sans-serif titles +\RequirePackage{sectsty} +\allsectionsfont{\normalfont} + +%geometry +\RequirePackage[a4paper,total={170mm,257mm}]{geometry} +\geometry{hscale=0.67} +\ifthenelse{\boolean{@printversion}}{}% +{ \geometry{asymmetric} + \geometry{bindingoffset=0pt,hmarginratio=1:1} +} + +%%% fancy headers +\RequirePackage{fancyhdr} +\setlength{\headheight}{15pt} +\fancypagestyle{cover}{% +\fancyhf{} + \fancyhead{\mbox{ }} +} +\fancypagestyle{hrulefpage}{% + \fancyhf{} + \fancyhead{\mbox{ }} + \fancyfoot[C]{\thepage} +} +%modifying captions +\RequirePackage[font=footnotesize,labelsep=period,sc]{caption} +\setlength{\captionmargin}{30pt} +%datatool +\RequirePackage{datatool} +\RequirePackage{calc} + +%commands to print empty values in the database +\newcommand{\print@blank}[1]{\ifthenelse{\equal{#1}{!blank!}}{}{#1\ }} +\newcommand{\print@empty}[1]{\ifthenelse{\equal{#1}{!blank!}}{}{#1}} + +%utilities +\newcommand{\TODO}[1]{\noindent{\textbf{TODO: #1}}} +\newcommand{\CONTRIBUTION}[1]{ +\hspace{-0.82cm} +\begin{tabular}{p{3.85cm}p{12.7cm}} +\textbf{Envisioned contribution:}&{#1} +\end{tabular} +} +\newcommand{\PATI}[1]{\vspace{0.1cm}\textbf{#1}} + +%%% populate the committee database +%%% format of the rows (name of the columns in brackets) : +%%% Title [title], First and Middle [first], Last [last], Affiliation [aff], Type ([a]dvisor, phd [d]irector, [i]nternal) [type] +\newenvironment{committee}{% +\DTLnewdb{committee} +}% +{% +\DTLsort{type,last,first,aff}{committee} +} + +\newcounter{advisors} +\newcommand*{\advisor}[4][Universit\`a della Svizzera Italiana, Switzerland]{% +\DTLnewrow{committee} +\ifthenelse{\isempty{#2}}{\DTLnewdbentry{committee}{title}{!blank!}}{% +\DTLnewdbentry{committee}{title}{#2}} +\DTLnewdbentry{committee}{first}{#3} +\DTLnewdbentry{committee}{last}{#4} +\DTLnewdbentry{committee}{aff}{#1} +\DTLnewdbentry{committee}{type}{r} +\stepcounter{advisors} +} + +\newcounter{assistants} +\newcommand*{\assistant}[4][Universit\`a della Svizzera Italiana, Switzerland]{% +\DTLnewrow{committee} +\ifthenelse{\isempty{#2}}{\DTLnewdbentry{committee}{title}{!blank!}}{% +\DTLnewdbentry{committee}{title}{#2}} +\DTLnewdbentry{committee}{first}{#3} +\DTLnewdbentry{committee}{last}{#4} +\DTLnewdbentry{committee}{aff}{#1} +\DTLnewdbentry{committee}{type}{a} +\stepcounter{assistants} +} + +%%% additional titlepage content commands +\newcommand{\subtitle}[1]{\gdef\@subtitle{#1}\setboolean{@subtitle}{true}} +\renewcommand\abstract[1]{\def\@abstract{\\#1}} +%%% submission and acceptance dates +%%% true if the dissertation has been accepted +\newboolean{@accepted} +\newcommand{\versiondate}[1]{\setboolean{@accepted}{true}\gdef\@dateaccepted{#1}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%% TITLE PAGE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%% PAGE HEADER %%%%%%%%%%%%%%%% + +\renewcommand{\maketitle}{% +\pagenumbering{Alph}\begin{titlepage} +\thispagestyle{empty} +\noindent \includegraphics[width=123mm]{logo-info.pdf} +\hspace{-0.8mm}\rule[3.6mm]{\textwidth-123mm}{0.2pt} +\vspace{-20mm} +\begin{flushright} +{\Large \textsf{Bachelor Thesis}} +\end{flushright} +\vspace{1mm} +\hfill {% +\ifthenelse{\boolean{@accepted}}{% +\textsf{\@dateaccepted}% +}{% +\textsf{Submitted on \@datesubmitted}% +}% +}\\ +\vspace{16mm} + +%%%%%%%%%%%%%%%% TITLE, SUBTITLE, AUTHOR %%%%%%%%%%%%%%%% + +%%% TITLE %%% +\noindent {\huge {\textsf{\@title}}} +%%% (OPTIONAL SUBTITLE) %%% +\ifthenelse{\boolean{@subtitle}}{ \noindent{\large \\[0.5em]\textsf{\textbf{\@subtitle}}}\\[12mm]}{\\[12mm]} +%%% AUTHOR %%% +\hfill { \Large {\textsf{\textbf{\@author}}}}\\ + +%%%%%%%%%%%%%%%% ABSTRACT %%%%%%%%%%%%%%%% + +\hrule height 0.2pt \vspace{4mm} +\noindent{{\textit{Abstract}}}\\ +\@abstract +\vfill \hrule height 0.2pt \vspace{2mm} + +%%%%%%%%%%%%%%%% ADVISOR AND ASSISTANT(S) %%%%%%%%%%%%%%%% + +\noindent\textsf{\textbf{Advisor}~} \\ +\DTLforeach*[\DTLiseq{\type}{r}]{committee} +{\actitle=title,\first=first,\last=last,\type=type}{ +\hspace{-0.1cm}\textsf{\print@blank{\actitle}\first \ \last~}% +} +\ifthenelse{\value{assistants} > 0}{\hfill \textsf{\textbf{\\Assistant}\ifthenelse{\value{assistants} > 1}{\textsf{\textbf{s}}{}}}}{}\\ +\DTLforeach*[\DTLiseq{\type}{a}]{committee}% +{\actitle=title,\first=first,\last=last,\type=type}{\DTLiffirstrow{}{, }\textsf{\print@blank{\actitle}\first \ \last}% +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\vspace{2mm} +\hrule height 0.2pt +\vspace{5mm} + +\SIGNATURES + +\end{titlepage} +\setcounter{footnote}{0} +} + +\renewenvironment{titlepage} + {% + \cleardoublepage + \pagenumbering{arabic} + \setcounter{page}\z@ + }% + {\newpage } + {\textwidth 5cm} + +%%% put ToC, LoF, LoT and Index entries in the ToC use of \phantomsection is required for dealing with the hyperref package and depends on the nohyper option + +%%% other useful packages + +\RequirePackage{booktabs} +\RequirePackage{graphicx} +\RequirePackage{textcomp} +\RequirePackage{url} +\let\circledS\undefined% +\RequirePackage{amsmath} +%%% switch on hyperref support +\ifthenelse{\boolean{@hypermode}}{% +\RequirePackage[unicode,plainpages=false,pdfpagelabels,breaklinks]{hyperref} +\RequirePackage[all]{hypcap} + +}{} + +%%% other formatting stuff + +\renewcommand{\baselinestretch}{1.05} + +\newcommand{\SIGNATURES}{ + \begin{tabular}{ll} + \hspace{-0.82cm} + \textsf{Advisor's approval}{} + (\DTLforeach*[\DTLiseq{\type}{r}]{committee}% + {\actitle=title,\first=first,\last=last,\type=type}{% + \DTLiffirstrow{}{, }\textsf{\print@blank{\actitle}\first \ \last}):% + \hspace{4cm} + & \textsf{Date: } + } + \end{tabular} + % +} diff --git a/status.ods b/status.ods index f06eea5a..4862dc59 100644 Binary files a/status.ods and b/status.ods differ