From 289e60939ece4216c5038ca381863538cdac6ce3 Mon Sep 17 00:00:00 2001 From: noah Date: Sun, 20 Mar 2022 14:53:24 -0500 Subject: [PATCH] Bibliography ordering by appearance --- Appendices.aux | 16 +-- Chapter1.aux | 2 + Chapter1.tex | 2 +- Chapter5.aux | 10 +- Chapter5.tex | 2 +- Chapter6.aux | 36 +++--- Chapter7.aux | 6 +- Schrick-Noah_MS-Thesis.aux | 56 ++++----- Schrick-Noah_MS-Thesis.bbl | 251 +++++++++++++++++-------------------- Schrick-Noah_MS-Thesis.blg | 66 +++++----- Schrick-Noah_MS-Thesis.log | 36 +++--- Schrick-Noah_MS-Thesis.pdf | Bin 598425 -> 599307 bytes Schrick-Noah_MS-Thesis.tex | 3 +- Schrick-Noah_MS-Thesis.toc | 60 ++++----- 14 files changed, 261 insertions(+), 285 deletions(-) diff --git a/Appendices.aux b/Appendices.aux index ffbb693..a1323e1 100644 --- a/Appendices.aux +++ b/Appendices.aux @@ -1,13 +1,13 @@ \relax -\@writefile{toc}{\contentsline {section}{\hspace {-\parindent }APPENDIX A:\ \ {\bf \uppercase {THE FIRST APPENDIX}} }{41}{}\protected@file@percent } -\newlabel{App:A}{{A}{41}} -\@writefile{toc}{\contentsline {section}{\hspace {-\parindent }APPENDIX B:\ \ {\bf \uppercase {THE SECOND APPENDIX}} }{42}{}\protected@file@percent } -\newlabel{App:B}{{B}{42}} -\@writefile{toc}{\contentsline {section}{\numberline {B.1}\bf A Heading in an Appendix}{42}{}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {B.1.1}\it A Subheading in an Appendix}{42}{}\protected@file@percent } -\@writefile{toc}{\contentsline {subsubsection}{A Sub-subsection in an Appendix}{42}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\hspace {-\parindent }APPENDIX A:\ \ {\bf \uppercase {THE FIRST APPENDIX}} }{42}{}\protected@file@percent } +\newlabel{App:A}{{A}{42}} +\@writefile{toc}{\contentsline {section}{\hspace {-\parindent }APPENDIX B:\ \ {\bf \uppercase {THE SECOND APPENDIX}} }{43}{}\protected@file@percent } +\newlabel{App:B}{{B}{43}} +\@writefile{toc}{\contentsline {section}{\numberline {B.1}\bf A Heading in an Appendix}{43}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {B.1.1}\it A Subheading in an Appendix}{43}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{A Sub-subsection in an Appendix}{43}{}\protected@file@percent } \@setckpt{Appendices}{ -\setcounter{page}{43} +\setcounter{page}{44} \setcounter{equation}{0} \setcounter{enumi}{4} \setcounter{enumii}{0} diff --git a/Chapter1.aux b/Chapter1.aux index f13ea1e..41636da 100644 --- a/Chapter1.aux +++ b/Chapter1.aux @@ -7,6 +7,7 @@ \citation{zhang_boosting_2017} \@writefile{toc}{\contentsline {chapter}{\numberline {CHAPTER 1: }{\bf \uppercase {INTRODUCTION}}}{1}{}\protected@file@percent } \@writefile{toc}{\contentsline {section}{\numberline {1.1}\bf Introduction to Attack Graphs}{1}{}\protected@file@percent } +\newlabel{sec:Intro}{{1.1}{1}} \citation{j_hale_compliance_nodate} \citation{baloyi_guidelines_2019} \citation{allman_complying_2006} @@ -18,6 +19,7 @@ \newlabel{CG-alter}{{1.2.2}{2}} \citation{cook_rage_2018} \@writefile{toc}{\contentsline {subsection}{\numberline {1.2.3}\it Difficulties of Compliance Graphs and Introduction to Thesis Work}{3}{}\protected@file@percent } +\newlabel{sec:CG-diff}{{1.2.3}{3}} \@writefile{toc}{\contentsline {section}{\numberline {1.3}\bf Objectives and Contributions}{4}{}\protected@file@percent } \@setckpt{Chapter1}{ \setcounter{page}{5} diff --git a/Chapter1.tex b/Chapter1.tex index 72c74ed..5e49734 100644 --- a/Chapter1.tex +++ b/Chapter1.tex @@ -1,5 +1,5 @@ \TUchapter{INTRODUCTION} -\TUsection{Introduction to Attack Graphs} \label{sec:Into} +\TUsection{Introduction to Attack Graphs} \label{sec:Intro} Cybersecurity has been at the forefront of computing for decades, and vulnerability analysis modeling has been utilized to mitigate threats to aid in this effort. One such modeling approach is to represent a system or a set of systems through graphical means, and encode information into the nodes and edges of the graph. Even as early as the late 1990s, experts have composed various graphical models to map devices and vulnerabilities through attack trees, and this work can be seen through the works published by the authors of \cite{phillips_graph-based_1998}. diff --git a/Chapter5.aux b/Chapter5.aux index 2cc666a..9514e70 100644 --- a/Chapter5.aux +++ b/Chapter5.aux @@ -29,18 +29,18 @@ \newlabel{table:tasking-tag}{{5.3.2}{33}} \@writefile{lot}{\contentsline {table}{\numberline {5.1}{\ignorespaces MPI Tags for the MPI Tasking Approach}}{33}{}\protected@file@percent } \@writefile{toc}{\contentsline {subsubsection}{MPI Tags}{33}{}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {5.3.3}\it Performance Expectations}{33}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {5.3.3}\it Performance Expectations}{34}{}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {5.3.4}\it Results}{34}{}\protected@file@percent } \@writefile{toc}{\contentsline {section}{\numberline {5.4}\bf Subgraphing Approach}{34}{}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {5.4.1}\it Introduction to the Subgraphing Approach}{34}{}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {5.4.2}\it Algorithm Design}{34}{}\protected@file@percent } \@writefile{toc}{\contentsline {subsubsection}{Communication Structure}{34}{}\protected@file@percent } \@writefile{toc}{\contentsline {subsubsection}{Worker Nodes}{34}{}\protected@file@percent } -\@writefile{toc}{\contentsline {subsubsection}{Root Node}{34}{}\protected@file@percent } -\@writefile{toc}{\contentsline {subsubsection}{Database Node}{34}{}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {5.4.3}\it Performance Expectations}{34}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{Root Node}{35}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{Database Node}{35}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {5.4.3}\it Performance Expectations}{35}{}\protected@file@percent } \@setckpt{Chapter5}{ -\setcounter{page}{35} +\setcounter{page}{36} \setcounter{equation}{0} \setcounter{enumi}{4} \setcounter{enumii}{0} diff --git a/Chapter5.tex b/Chapter5.tex index 2cd14df..518f5ea 100644 --- a/Chapter5.tex +++ b/Chapter5.tex @@ -128,7 +128,7 @@ To ensure that the intended message is received by each node, the MPI message en \end{table} \TUsubsection{Performance Expectations} -Due to the amount of communication between nodes to distribute the necessary data through all stages of the tasking pipeline, this approach is not expected to outperform the serial approach in all cases. This tasking approach was specifically designed to reduce the computation time when the generation of each individual state increases in time. This approach does not offer any guarantees of processing through the frontier at an increased rate; it's main objective is to distribute the workload of individual state generation. As discussed in Section \ref{sec:Intro}, the amount of entries in the National Vulnerability database and any custom vulnerability testing to ensure adequate examination of all assets in the network sums to large number of exploits in the exploit list. Likewise for compliance graphs and compliance examinations, Section \ref{sec:CG-diff} mentioned the number of compliance checks for SOX, HIPAA, GDPR, PCI DSS, and/or any other regulatory compliance also sums to a large number of exploits in the exploit list. Since the generation of each state is largely dependent on the number of exploits present in the exploit list, this approach is best-suited for when the exploit list grows in size. +Due to the amount of communication between nodes to distribute the necessary data through all stages of the tasking pipeline, this approach is not expected to outperform the serial approach in all cases. This tasking approach was specifically designed to reduce the computation time when the generation of each individual state increases in time. This approach does not offer any guarantees of processing through the frontier at an increased rate; it's main objective is to distribute the workload of individual state generation. As discussed in Section \ref{sec:Intro}, the amount of entries in the National Vulnerability database and any custom vulnerability testing to ensure adequate examination of all assets in the network sums to large number of exploits in the exploit list. Likewise for compliance graphs and compliance examinations, Section \ref{sec:CG-diff} discussed that the number of compliance checks for SOX, HIPAA, GDPR, PCI DSS, and/or any other regulatory compliance also sums to a large number of exploits in the exploit list. Since the generation of each state is largely dependent on the number of exploits present in the exploit list, this approach is best-suited for when the exploit list grows in size. \TUsubsection{Results} Communication cost of asynchronous send for T4 and T5 is less than the time requirement of a database storage by root. diff --git a/Chapter6.aux b/Chapter6.aux index dcd0569..477f05a 100644 --- a/Chapter6.aux +++ b/Chapter6.aux @@ -1,23 +1,23 @@ \relax -\@writefile{toc}{\contentsline {chapter}{\numberline {CHAPTER 6: }{\bf \uppercase {PERFORMANCE ANALYSIS}}}{35}{}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{\numberline {6.1}\bf Small Networks}{35}{}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {6.1.1}\it Test Information}{35}{}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {6.1.2}\it Results}{35}{}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {6.1.3}\it Analysis}{35}{}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{\numberline {6.2}\bf Large Networks}{35}{}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {6.2.1}\it Test Information}{35}{}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {6.2.2}\it Results}{35}{}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {6.2.3}\it Analysis}{35}{}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{\numberline {6.3}\bf Large Exploit Lists}{35}{}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {6.3.1}\it Test Information}{35}{}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {6.3.2}\it Results}{35}{}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {6.3.3}\it Analysis}{35}{}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{\numberline {6.4}\bf Distributed Hash Tables}{35}{}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {6.4.1}\it Test Information}{36}{}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {6.4.2}\it Results}{36}{}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {6.4.3}\it Analysis}{36}{}\protected@file@percent } +\@writefile{toc}{\contentsline {chapter}{\numberline {CHAPTER 6: }{\bf \uppercase {PERFORMANCE ANALYSIS}}}{36}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {6.1}\bf Small Networks}{36}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {6.1.1}\it Test Information}{36}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {6.1.2}\it Results}{36}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {6.1.3}\it Analysis}{36}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {6.2}\bf Large Networks}{36}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {6.2.1}\it Test Information}{36}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {6.2.2}\it Results}{36}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {6.2.3}\it Analysis}{36}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {6.3}\bf Large Exploit Lists}{36}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {6.3.1}\it Test Information}{36}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {6.3.2}\it Results}{36}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {6.3.3}\it Analysis}{36}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {6.4}\bf Distributed Hash Tables}{36}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {6.4.1}\it Test Information}{37}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {6.4.2}\it Results}{37}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {6.4.3}\it Analysis}{37}{}\protected@file@percent } \@setckpt{Chapter6}{ -\setcounter{page}{37} +\setcounter{page}{38} \setcounter{equation}{0} \setcounter{enumi}{4} \setcounter{enumii}{0} diff --git a/Chapter7.aux b/Chapter7.aux index 3f824a1..1269324 100644 --- a/Chapter7.aux +++ b/Chapter7.aux @@ -1,8 +1,8 @@ \relax -\@writefile{toc}{\contentsline {chapter}{\numberline {CHAPTER 7: }{\bf \uppercase {CONCLUSIONS AND FUTURE WORKS}}}{37}{}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{\numberline {7.1}\bf Future Work}{37}{}\protected@file@percent } +\@writefile{toc}{\contentsline {chapter}{\numberline {CHAPTER 7: }{\bf \uppercase {CONCLUSIONS AND FUTURE WORKS}}}{38}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {7.1}\bf Future Work}{38}{}\protected@file@percent } \@setckpt{Chapter7}{ -\setcounter{page}{38} +\setcounter{page}{39} \setcounter{equation}{0} \setcounter{enumi}{4} \setcounter{enumii}{0} diff --git a/Schrick-Noah_MS-Thesis.aux b/Schrick-Noah_MS-Thesis.aux index 63d1e46..0644fdb 100644 --- a/Schrick-Noah_MS-Thesis.aux +++ b/Schrick-Noah_MS-Thesis.aux @@ -21,37 +21,37 @@ \@input{Chapter6.aux} \@input{Chapter7.aux} \bibdata{Bibliography} -\bibcite{noauthor_boost_nodate}{1} -\bibcite{noauthor_overview_nodate}{2} -\bibcite{ainsworth_graph_2016}{3} -\bibcite{allman_complying_2006}{4} -\bibcite{arifuzzaman_fast_2015}{5} -\bibcite{balaji_graph_2016}{6} +\bibcite{phillips_graph-based_1998}{1} +\bibcite{schneier_modeling_1999}{2} +\bibcite{ou_scalable_2006}{3} +\bibcite{sheyner_automated_2002}{4} +\bibcite{zhang_boosting_2017}{5} +\bibcite{j_hale_compliance_nodate}{6} \bibcite{baloyi_guidelines_2019}{7} -\bibcite{berry_graph_2007}{8} +\bibcite{allman_complying_2006}{8} \bibcite{cook_rage_2018}{9} -\bibcite{cook_scalable_2016}{10} +\bibcite{berry_graph_2007}{10} \@writefile{toc}{{\hfill \ }} -\@writefile{toc}{\contentsline {section}{\hspace {-\parindent }NOMENCLATURE}{38}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\hspace {-\parindent }NOMENCLATURE}{39}{}\protected@file@percent } \@writefile{toc}{\addvspace {10pt}} -\@writefile{toc}{\contentsline {section}{\hspace {-\parindent }BIBLIOGRAPHY}{38}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\hspace {-\parindent }BIBLIOGRAPHY}{39}{}\protected@file@percent } \@writefile{toc}{{\hfill \ }} -\bibcite{CVE-2019-10747}{11} -\bibcite{dai_fpgp_2016}{12} -\bibcite{j_hale_compliance_nodate}{13} -\bibcite{7087377}{14} -\bibcite{li_combining_2019}{15} -\bibcite{li_concurrency_2019}{16} -\bibcite{9150145}{17} -\bibcite{liakos_memory-optimized_2016}{18} -\bibcite{louthan_hybrid_2011}{19} -\bibcite{ou_scalable_2006}{20} -\bibcite{phillips_graph-based_1998}{21} -\bibcite{schneier_modeling_1999}{22} -\bibcite{sheyner_automated_2002}{23} -\bibcite{yao_efficient_2018}{24} -\bibcite{yu_construction_2018}{25} -\bibcite{zhang_boosting_2017}{26} -\bibstyle{plain} +\bibcite{ainsworth_graph_2016}{11} +\bibcite{yao_efficient_2018}{12} +\bibcite{dai_fpgp_2016}{13} +\bibcite{arifuzzaman_fast_2015}{14} +\bibcite{yu_construction_2018}{15} +\bibcite{liakos_memory-optimized_2016}{16} +\bibcite{balaji_graph_2016}{17} +\bibcite{noauthor_overview_nodate}{18} +\bibcite{noauthor_boost_nodate}{19} +\bibcite{cook_scalable_2016}{20} +\bibcite{li_concurrency_2019}{21} +\bibcite{9150145}{22} +\bibcite{7087377}{23} +\bibcite{li_combining_2019}{24} +\bibcite{CVE-2019-10747}{25} +\bibcite{louthan_hybrid_2011}{26} +\bibstyle{ieeetr} \@input{Appendices.aux} -\gdef \@abspage@last{52} +\gdef \@abspage@last{53} diff --git a/Schrick-Noah_MS-Thesis.bbl b/Schrick-Noah_MS-Thesis.bbl index ca9b042..36adeef 100644 --- a/Schrick-Noah_MS-Thesis.bbl +++ b/Schrick-Noah_MS-Thesis.bbl @@ -1,158 +1,133 @@ \begin{thebibliography}{10} -\bibitem{noauthor_boost_nodate} -The {Boost} {Graph} {Library} - 1.75.0. +\bibitem{phillips_graph-based_1998} +C.~Phillips and L.~P. Swiler, ``A graph-based system for network-vulnerability + analysis,'' {\em Proceedings New Security Paradigms Workshop}, vol.~Part + F1292, pp.~71--79, 1998. -\bibitem{noauthor_overview_nodate} -An {Overview} of the {Parallel} {Boost} {Graph} {Library} - 1.75.0. +\bibitem{schneier_modeling_1999} +B.~Schneier, ``Modeling {Security} {Threats},'' 1999. +\newblock Publication Title: Dr. Dobb's Journal. -\bibitem{ainsworth_graph_2016} -Sam Ainsworth and Timothy~M. Jones. -\newblock Graph prefetching using data structure knowledge. -\newblock {\em Proceedings of the International Conference on Supercomputing}, - 01-03-June, 2016. +\bibitem{ou_scalable_2006} +X.~Ou, W.~F. Boyer, and M.~A. Mcqueen, ``A {Scalable} {Approach} to {Attack} + {Graph} {Generation},'' pp.~336--345, 2006. -\bibitem{allman_complying_2006} -Eric Allman. -\newblock Complying with {Compliance}: {Blowing} it off is not an option. -\newblock {\em ACM Queue}, 4(7), 2006. +\bibitem{sheyner_automated_2002} +O.~Sheyner, J.~Haines, S.~Jha, R.~Lippmann, and J.~Wing, ``Automated + {Generation} and {Analysis} of {Attack} {Graphs},'' {\em Proceeding of 2002 + IEEE Symposium on Security and Privacy}, pp.~254--265, 2002. -\bibitem{arifuzzaman_fast_2015} -Shaikh Arifuzzaman and Maleq Khan. -\newblock Fast parallel conversion of edge list to adjacency list for - large-scale graphs. -\newblock In {\em {HPC} '15: {Proceedings} of the {Symposium} on {High} - {Performance} {Computing}}, pages 17--24, April 2015. - -\bibitem{balaji_graph_2016} -Janani Balaji and Rajshekhar Sunderraman. -\newblock Graph {Topology} {Abstraction} for {Distributed} {Path} {Queries}. -\newblock In {\em {HPGP} '16: {Proceedings} of the {ACM} {Workshop} on {High} - {Performance} {Graph} {Processing}}, pages 27--34, May 2016. - -\bibitem{baloyi_guidelines_2019} -Ntsako Baloyi and Paula Kotzé. -\newblock Guidelines for {Data} {Privacy} {Compliance}: {A} {Focus} on - {Cyberphysical} {Systems} and {Internet} of {Things}. -\newblock In {\em {SAICSIT} '19: {Proceedings} of the {South} {African} - {Institute} of {Computer} {Scientists} and {Information} {Technologists} - 2019}, Skukuza South Africa, 2019. Association for Computing Machinery. - -\bibitem{berry_graph_2007} -Jonathan Berry and Bruce Hendrickson. -\newblock Graph {Analysis} with {High} {Performance} {Computing}. -\newblock {\em Computing in Science and Engineering}, 2007. - -\bibitem{cook_rage_2018} -Kyle Cook. -\newblock {\em {RAGE}: {The} {Rage} {Attack} {Graph} {Engine}}. -\newblock PhD thesis, 2018. - -\bibitem{cook_scalable_2016} -Kyle Cook, Thomas Shaw, John Hale, and Peter Hawrylak. -\newblock Scalable attack graph generation. -\newblock {\em Proceedings of the 11th Annual Cyber and Information Security - Research Conference, CISRC 2016}, 2016. - -\bibitem{CVE-2019-10747} -{set-value is vulnerable to Prototype Pollution in versions lower than 3.0.1. - The function mixin-deep could be tricked into adding or modifying properties - of Object.prototype using any of the constructor, prototype and $\_$proto$\_$ - payloads.} -\newblock National Vulnerability Database, August 2019. - -\bibitem{dai_fpgp_2016} -Guohao Dai, Yuze Chi, Yu~Wang, and Huazhong Yang. -\newblock {FPGP}: {Graph} processing framework on {FPGA}: {A} case study of - breadth-first search. -\newblock {\em FPGA 2016 - Proceedings of the 2016 ACM/SIGDA International - Symposium on Field-Programmable Gate Arrays}, pages 105--110, 2016. +\bibitem{zhang_boosting_2017} +J.~Zhang, S.~Khoram, and J.~Li, ``Boosting the performance of {FPGA}-based + graph processor using hybrid memory cube: {A} case for breadth first + search,'' {\em FPGA 2017 - Proceedings of the 2017 ACM/SIGDA International + Symposium on Field-Programmable Gate Arrays}, pp.~207--216, 2017. \bibitem{j_hale_compliance_nodate} -{J. Hale}, P.~Hawrylak, and M.~Papa. -\newblock Compliance {Method} for a {Cyber}-{Physical} {System}. +{J. Hale}, P.~Hawrylak, and M.~Papa, ``Compliance {Method} for a + {Cyber}-{Physical} {System}.'' -\bibitem{7087377} -Kerem Kaynar and Fikret Sivrikaya. -\newblock Distributed attack graph generation. -\newblock {\em IEEE Transactions on Dependable and Secure Computing}, - 13(5):519--532, 2016. +\bibitem{baloyi_guidelines_2019} +N.~Baloyi and P.~Kotzé, ``Guidelines for {Data} {Privacy} {Compliance}: {A} + {Focus} on {Cyberphysical} {Systems} and {Internet} of {Things},'' in {\em + {SAICSIT} '19: {Proceedings} of the {South} {African} {Institute} of + {Computer} {Scientists} and {Information} {Technologists} 2019}, (Skukuza + South Africa), Association for Computing Machinery, 2019. -\bibitem{li_combining_2019} -Ming Li, Peter Hawrylak, and John Hale. -\newblock Combining {OpenCL} and {MPI} to support heterogeneous computing on a - cluster. -\newblock {\em ACM International Conference Proceeding Series}, 2019. +\bibitem{allman_complying_2006} +E.~Allman, ``Complying with {Compliance}: {Blowing} it off is not an option.,'' + {\em ACM Queue}, vol.~4, no.~7, 2006. -\bibitem{li_concurrency_2019} -Ming Li, Peter Hawrylak, and John Hale. -\newblock Concurrency {Strategies} for {Attack} {Graph} {Generation}. -\newblock {\em Proceedings - 2019 2nd International Conference on Data - Intelligence and Security, ICDIS 2019}, pages 174--179, 2019. +\bibitem{cook_rage_2018} +K.~Cook, {\em {RAGE}: {The} {Rage} {Attack} {Graph} {Engine}}. +\newblock PhD thesis, 2018. -\bibitem{9150145} -Ming Li, Peter~J. Hawrylak, and John Hale. -\newblock Implementing an attack graph generator in cuda. -\newblock In {\em 2020 IEEE International Parallel and Distributed Processing - Symposium Workshops (IPDPSW)}, pages 730--738, 2020. +\bibitem{berry_graph_2007} +J.~Berry and B.~Hendrickson, ``Graph {Analysis} with {High} {Performance} + {Computing}.,'' {\em Computing in Science and Engineering}, 2007. + +\bibitem{ainsworth_graph_2016} +S.~Ainsworth and T.~M. Jones, ``Graph prefetching using data structure + knowledge,'' {\em Proceedings of the International Conference on + Supercomputing}, vol.~01-03-June, 2016. + +\bibitem{yao_efficient_2018} +P.~Yao, L.~Zheng, X.~Liao, H.~Jin, and B.~He, ``An efficient graph accelerator + with parallel data conflict management,'' {\em Parallel Architectures and + Compilation Techniques - Conference Proceedings, PACT}, 2018. + +\bibitem{dai_fpgp_2016} +G.~Dai, Y.~Chi, Y.~Wang, and H.~Yang, ``{FPGP}: {Graph} processing framework on + {FPGA}: {A} case study of breadth-first search,'' {\em FPGA 2016 - + Proceedings of the 2016 ACM/SIGDA International Symposium on + Field-Programmable Gate Arrays}, pp.~105--110, 2016. + +\bibitem{arifuzzaman_fast_2015} +S.~Arifuzzaman and M.~Khan, ``Fast parallel conversion of edge list to + adjacency list for large-scale graphs,'' in {\em {HPC} '15: {Proceedings} of + the {Symposium} on {High} {Performance} {Computing}}, pp.~17--24, Apr. 2015. + +\bibitem{yu_construction_2018} +X.~Yu, W.~Chen, J.~Miao, J.~Chen, H.~Mao, Q.~Luo, and L.~Gu, ``The + {Construction} of {Large} {Graph} {Data} {Structures} in a {Scalable} + {Distributed} {Message} {System},'' in {\em {HPCCT} 2018: {Proceedings} of + the 2018 2nd {High} {Performance} {Computing} and {Cluster} {Technologies} + {Conference}}, pp.~6--10, June 2018. \bibitem{liakos_memory-optimized_2016} -Panagiotis Liakos, Katia Papakonstantinopoulou, and Alex Delis. -\newblock Memory-{Optimized} {Distributed} {Graph} {Processing} through {Novel} - {Compression} {Techniques}. -\newblock In {\em {CIKM} '16: {Proceedings} of the 25th {ACM} {International} - {Conference} on {Information} and {Knowledge} {Management}}, pages - 2317--2322, October 2016. +P.~Liakos, K.~Papakonstantinopoulou, and A.~Delis, ``Memory-{Optimized} + {Distributed} {Graph} {Processing} through {Novel} {Compression} + {Techniques},'' in {\em {CIKM} '16: {Proceedings} of the 25th {ACM} + {International} {Conference} on {Information} and {Knowledge} {Management}}, + pp.~2317--2322, Oct. 2016. + +\bibitem{balaji_graph_2016} +J.~Balaji and R.~Sunderraman, ``Graph {Topology} {Abstraction} for + {Distributed} {Path} {Queries},'' in {\em {HPGP} '16: {Proceedings} of the + {ACM} {Workshop} on {High} {Performance} {Graph} {Processing}}, pp.~27--34, + May 2016. + +\bibitem{noauthor_overview_nodate} +``An {Overview} of the {Parallel} {Boost} {Graph} {Library} - 1.75.0.'' + +\bibitem{noauthor_boost_nodate} +``The {Boost} {Graph} {Library} - 1.75.0.'' + +\bibitem{cook_scalable_2016} +K.~Cook, T.~Shaw, J.~Hale, and P.~Hawrylak, ``Scalable attack graph + generation,'' {\em Proceedings of the 11th Annual Cyber and Information + Security Research Conference, CISRC 2016}, 2016. + +\bibitem{li_concurrency_2019} +M.~Li, P.~Hawrylak, and J.~Hale, ``Concurrency {Strategies} for {Attack} + {Graph} {Generation},'' {\em Proceedings - 2019 2nd International Conference + on Data Intelligence and Security, ICDIS 2019}, pp.~174--179, 2019. + +\bibitem{9150145} +M.~Li, P.~J. Hawrylak, and J.~Hale, ``Implementing an attack graph generator in + cuda,'' in {\em 2020 IEEE International Parallel and Distributed Processing + Symposium Workshops (IPDPSW)}, pp.~730--738, 2020. + +\bibitem{7087377} +K.~Kaynar and F.~Sivrikaya, ``Distributed attack graph generation,'' {\em IEEE + Transactions on Dependable and Secure Computing}, vol.~13, no.~5, + pp.~519--532, 2016. + +\bibitem{li_combining_2019} +M.~Li, P.~Hawrylak, and J.~Hale, ``Combining {OpenCL} and {MPI} to support + heterogeneous computing on a cluster,'' {\em ACM International Conference + Proceeding Series}, 2019. + +\bibitem{CVE-2019-10747} +``{set-value is vulnerable to Prototype Pollution in versions lower than 3.0.1. + The function mixin-deep could be tricked into adding or modifying properties + of Object.prototype using any of the constructor, prototype and $\_$proto$\_$ + payloads.}.'' National Vulnerability Database, Aug. 2019. \bibitem{louthan_hybrid_2011} -G~Louthan. -\newblock {\em Hybrid {Attack} {Graphs} for {Modeling} {Cyber}-{Physical} +G.~Louthan, {\em Hybrid {Attack} {Graphs} for {Modeling} {Cyber}-{Physical} {Systems}}. \newblock PhD thesis, 2011. -\bibitem{ou_scalable_2006} -Xinming Ou, Wayne~F Boyer, and Miles~A Mcqueen. -\newblock A {Scalable} {Approach} to {Attack} {Graph} {Generation}. -\newblock pages 336--345, 2006. - -\bibitem{phillips_graph-based_1998} -Cynthia Phillips and Laura~Painton Swiler. -\newblock A graph-based system for network-vulnerability analysis. -\newblock {\em Proceedings New Security Paradigms Workshop}, Part F1292:71--79, - 1998. - -\bibitem{schneier_modeling_1999} -Bruce Schneier. -\newblock Modeling {Security} {Threats}, 1999. -\newblock Publication Title: Dr. Dobb's Journal. - -\bibitem{sheyner_automated_2002} -O.~Sheyner, J.~Haines, S.~Jha, R.. Lippmann, and J.~Wing. -\newblock Automated {Generation} and {Analysis} of {Attack} {Graphs}. -\newblock {\em Proceeding of 2002 IEEE Symposium on Security and Privacy}, - pages 254--265, 2002. - -\bibitem{yao_efficient_2018} -Pengcheng Yao, Long Zheng, Xiaofei Liao, Hai Jin, and Bingsheng He. -\newblock An efficient graph accelerator with parallel data conflict - management. -\newblock {\em Parallel Architectures and Compilation Techniques - Conference - Proceedings, PACT}, 2018. - -\bibitem{yu_construction_2018} -Xinjie Yu, Wentao Chen, Jiajia Miao, Jian Chen, Handong Mao, Qiong Luo, and Lin - Gu. -\newblock The {Construction} of {Large} {Graph} {Data} {Structures} in a - {Scalable} {Distributed} {Message} {System}. -\newblock In {\em {HPCCT} 2018: {Proceedings} of the 2018 2nd {High} - {Performance} {Computing} and {Cluster} {Technologies} {Conference}}, pages - 6--10, June 2018. - -\bibitem{zhang_boosting_2017} -Jialiang Zhang, Soroosh Khoram, and Jing Li. -\newblock Boosting the performance of {FPGA}-based graph processor using hybrid - memory cube: {A} case for breadth first search. -\newblock {\em FPGA 2017 - Proceedings of the 2017 ACM/SIGDA International - Symposium on Field-Programmable Gate Arrays}, pages 207--216, 2017. - \end{thebibliography} diff --git a/Schrick-Noah_MS-Thesis.blg b/Schrick-Noah_MS-Thesis.blg index 806eef1..13762a3 100644 --- a/Schrick-Noah_MS-Thesis.blg +++ b/Schrick-Noah_MS-Thesis.blg @@ -8,55 +8,53 @@ A level-1 auxiliary file: Chapter4.aux A level-1 auxiliary file: Chapter5.aux A level-1 auxiliary file: Chapter6.aux A level-1 auxiliary file: Chapter7.aux -The style file: plain.bst +The style file: ieeetr.bst A level-1 auxiliary file: Appendices.aux Database file #1: Bibliography.bib Warning--entry type for "j_hale_compliance_nodate" isn't style-file defined --line 272 of file Bibliography.bib -Warning--to sort, need author or key in noauthor_overview_nodate -Warning--to sort, need author or key in noauthor_boost_nodate +Warning--empty journal in ou_scalable_2006 Warning--empty school in cook_rage_2018 Warning--empty school in louthan_hybrid_2011 -Warning--empty journal in ou_scalable_2006 You've used 26 entries, - 2118 wiz_defined-function locations, - 632 strings with 9141 characters, -and the built_in function-call counts, 8609 in all, are: -= -- 845 -> -- 388 -< -- 10 -+ -- 160 -- -- 128 -* -- 527 -:= -- 1360 -add.period$ -- 73 + 1876 wiz_defined-function locations, + 611 strings with 8617 characters, +and the built_in function-call counts, 6036 in all, are: += -- 571 +> -- 237 +< -- 0 ++ -- 90 +- -- 64 +* -- 401 +:= -- 842 +add.period$ -- 26 call.type$ -- 26 -change.case$ -- 141 +change.case$ -- 24 chr.to.int$ -- 0 -cite$ -- 31 -duplicate$ -- 358 -empty$ -- 679 -format.name$ -- 128 -if$ -- 1858 +cite$ -- 29 +duplicate$ -- 317 +empty$ -- 623 +format.name$ -- 64 +if$ -- 1474 int.to.chr$ -- 0 int.to.str$ -- 26 missing$ -- 19 -newline$ -- 127 -num.names$ -- 46 -pop$ -- 177 +newline$ -- 84 +num.names$ -- 23 +pop$ -- 119 preamble$ -- 1 -purify$ -- 117 +purify$ -- 0 quote$ -- 0 -skip$ -- 312 +skip$ -- 210 stack$ -- 0 -substring$ -- 471 -swap$ -- 114 -text.length$ -- 10 +substring$ -- 347 +swap$ -- 108 +text.length$ -- 0 text.prefix$ -- 0 top$ -- 0 -type$ -- 104 -warning$ -- 5 -while$ -- 78 +type$ -- 0 +warning$ -- 3 +while$ -- 57 width$ -- 28 -write$ -- 262 -(There were 6 warnings) +write$ -- 223 +(There were 4 warnings) diff --git a/Schrick-Noah_MS-Thesis.log b/Schrick-Noah_MS-Thesis.log index fa491d2..7e86b30 100644 --- a/Schrick-Noah_MS-Thesis.log +++ b/Schrick-Noah_MS-Thesis.log @@ -1,4 +1,4 @@ -This is pdfTeX, Version 3.141592653-2.6-1.40.23 (TeX Live 2021/Arch Linux) (preloaded format=pdflatex 2022.2.14) 20 MAR 2022 13:08 +This is pdfTeX, Version 3.141592653-2.6-1.40.23 (TeX Live 2021/Arch Linux) (preloaded format=pdflatex 2022.2.14) 20 MAR 2022 14:51 entering extended mode restricted \write18 enabled. %&-line parsing enabled. @@ -316,39 +316,39 @@ Package pdftex.def Info: ./Chapter5_img/Task1-Case2.png used on input line 86. LaTeX Warning: No positions in optional float specifier. Default added (so using `tbp') on input line 104. -[33]) [34] +[33] [34]) [35] \openout2 = `Chapter6.aux'. (./Chapter6.tex CHAPTER 6. -[35 +[36 -]) [36] +]) [37] \openout2 = `Chapter7.aux'. (./Chapter7.tex CHAPTER 7. -) [37 +) [38 -] (./Schrick-Noah_MS-Thesis.bbl [38 +] (./Schrick-Noah_MS-Thesis.bbl [39 -] [39]) +] [40]) \c@appendixno=\count269 - [40] + [41] \openout2 = `Appendices.aux'. - (./Appendices.tex [41 + (./Appendices.tex [42 ]) -[42] (./Schrick-Noah_MS-Thesis.aux (./Chapter1.aux) (./Chapter2.aux) +[43] (./Schrick-Noah_MS-Thesis.aux (./Chapter1.aux) (./Chapter2.aux) (./Chapter3.aux) (./Chapter4.aux) (./Chapter5.aux) (./Chapter6.aux) (./Chapter7.aux) (./Appendices.aux)) ) (\end occurred inside a group at level 6) @@ -361,13 +361,13 @@ CHAPTER 7. ### semi simple group (level 1) entered at line 52 (\begingroup) ### bottom level Here is how much of TeX's memory you used: - 2226 strings out of 478353 - 40184 string characters out of 5854635 - 345111 words of memory out of 5000000 - 20288 multiletter control sequences out of 15000+600000 + 2228 strings out of 478353 + 40208 string characters out of 5854635 + 345133 words of memory out of 5000000 + 20290 multiletter control sequences out of 15000+600000 407326 words of font info for 40 fonts, out of 8000000 for 9000 1141 hyphenation exceptions out of 8191 - 55i,8n,62p,1109b,1305s stack positions out of 5000i,500n,10000p,200000b,80000s + 55i,8n,62p,1290b,1305s stack positions out of 5000i,500n,10000p,200000b,80000s {/usr/share/texmf-dist/fonts/enc/dvips/cm-super/cm-super-ts1.en c} -Output written on Schrick-Noah_MS-Thesis.pdf (52 pages, 598425 bytes). +Output written on Schrick-Noah_MS-Thesis.pdf (53 pages, 599307 bytes). PDF statistics: - 232 PDF objects out of 1000 (max. 8388607) - 143 compressed objects within 2 object streams + 235 PDF objects out of 1000 (max. 8388607) + 145 compressed objects within 2 object streams 0 named destinations out of 1000 (max. 500000) 51 words of extra memory for PDF output out of 10000 (max. 10000000) diff --git a/Schrick-Noah_MS-Thesis.pdf b/Schrick-Noah_MS-Thesis.pdf index e630214ef9eeb3d77368d493892510aff38dcfea..a0d196d91364a89279a7deda33e4b79eee540990 100644 GIT binary patch delta 34958 zcmV)9K*hhA!z7E!B(O{m0yr>}0Tn5ecMlkUjpp>UJ-uKJF`Ovm0Cto8^nHdIaM3Z6 zt!WeSMi6;%e)GKipJ(_uIr(r#ybi|5=bUsVw;j(%ockS@P~_px9CgwlwkfvqG_kv|y;)B4D2df&^#`~fVjeFqLw1)t&Kun@-{1Q^F%`sr z!mcFK>1q~T%n)O|qFwR!zXwNM#9(GLxbagwy-RKGSV^2LGoTK;XHgo(GqoSZYI_mo zVR2rNFNJhGkY+`rk!)s-KS0AG+(IyteH`@N@;iHi#Jjh$!<4q%dj%*zw zCx~KilOowoag=2FOnKw@*9#Le;UO2(_eAVRgJuDhI2x)W5O&EXRJt4LX|i}I0^+i? z$IIe-8UB(qJ9y(Hc!zPa1}?66J=`gX=V4qD+>+9LftZ62F<@3Wg@as=t!HX~x;yps zAA`liJXDEi80JzXeU%?cdY`GIDtyAuRhTX3x!FiTml66tWRoIiV~c2b`oFK)B5jgx zR`|dG0pHgGn+cG^k)ZG1iE9W;exQ3C&)?+NAkkbE0dT8XF^n7{+AYQj)0hcCzJQPk z4vZz9BB%V^8%_FGV1Gnd{3nxtzk9IDNXhVeGPoH0(X)MKO$L`k<=B^JYWulA9`~g4 zpZC>)kvy+A9uJ1+>cC(KPdl?Q0hKCGJnfsNjk+-Xym}_#Y6OgeXjpeN{^QkK@sILE z|M$^A?Of;4Jo*-_&bUodt*eWh?95q26KSXUU*OuhMOV`uUIxJM8h-+DuXyG*@~%2$?|69 z!KWY(RLVPr8a2xDFrGfOOnC{D@~SX4P+k)mTZ8Ogbwp%%dU!|^8Jw_nXD$Rd&?Il0 z=D$pXb+&rI>uj62{UFYNRrg7LtP%!%DH4X<-f7u3v8Bi@Cjt)0iKwm(rsm1;U6{-_ zFc~#sAY&2r@FuYaPTjL1sn2Ig8s&Ej1>#efMYFh_j;%*nOF58=7dCONWgJaQfdRT} zoTp%5%M|R%eFYWxdVZ!lMNZvZCbmbUJIJxQmIIgg?t4m$`*f>+27vGp(DQ&un*mX0 zHz3+-Kx8){royc1L%|OGipyW2>b1K*bq|t;PCKf!tp+~JAkQ$|9uuJ|BWt;`p=}zp z-bZ12o1}{%o~jkbLf!NqRr_6jO!H^f+ZaKdx$jALD{f`u$a9e6h)r;;P5rsoXw%g( zJF;5YuurzT5*#mozszJ0s(B@NfW4jyqp6z=824QC0dslMtXxZaQSnExfHLdcpgLB2FGbmcYEKV!O=L4p_>rI26M$B%L^lyD>eQk zR}yqs;*g#A7D+E|Vk6tXUxF;u*0Mt5y7UnHk($C50m_bl0(6@I)!YaHU^1m|UAYtu zRxU?!;Sm(k<<;lj@Ki5Q_J+L+*+>6G>1_!c%Oyo@ zWm^)c&swp@RGa@*D^-rZ<~O3*YotYQKFo6EFoU>oqV~P#Q<5~j7%54TVJ-%hWRt)Z zrV90#Souk;FSGEKlW-PL0ko6B7A1e)jeA zbV$298pow$s;AhBHz^Q4)Gc&FhEucZC{$!b?bH!VVYRdCH};W!Sl0MyGR@{!<{+D!HYwZi<_0>%P3P0>*2+dzi|b3$tVJN= z=j%zHe%t)>fpf|bfon-#oPRH~c^y!Y_-jc;}@UVX^wn>5`t+iiBUd$`G}bW>*OO_|r5EH7?$ z-Oa6f`}^xZckjQh)_GQ{bal7;L@JS%r;)4EAFb+RSpiYynKp6^%dtWw5#(@xHY6hMO-U@DfVA^&(o~B@j{Y=S+&a}ES{w3ZTrH78ek5fMw zr|)eaH6dr^C1{;*nxtl}^`QG_Z$Z7H-l`*5J(7x@=}A;k7py&^#X!^^;h;@#|1}*W z(VGZ8+Fp+7+mEAS;qf z8;&FCHLINDN}o<{gn$D0zz`AuU(x}-&YYa_CVHA4@y9>=V2*r7CofS(NHHj9+Q|Cg z#%V9|_Lx23PTT69AxEPJ2-DJlDh2_A)|AQ&ZM1~}c7Qk^HRLR?8X}Bz9{I+p1BW5L z^n4elTV=X^gi$Une;<*S;Onx;)%!=}Yeb5cCq}#enHfdU{JO_5UkOOsGzleSohbAD zBxQkFkXH$$6UuqSa2keSY7^1uF`E$dxY~k1XU9oik*4g-ylfUR7d-g`5&Fb{&OF+d z3@>9@Am2qrPM%V7Sl-{}5RWSczQJNEGHI^d?%^sNCCHa`;I{XRf4|nuK%$%5YMv*`2OTD=85pk= zdKkA)RQ`R>H-^oaz8H-w%57>+4%Uux#kBFbOi4b{Ll; zOV6Va&Y;}f$+2?+P?SOJ#Wbj{sXPR-K{RmD_t)r9X<=D+g8(q!}sgtHPbppgL6pO6} zux&*5h8HCVrv8R)D5XV@_)amILA&jQf1A=3Yi8+nCb?L{3^44kFkAC~zng?ZQT z1J?KQk6ZEbk0n?)>TfD@g!-1}&b5D$i-q?rD{E>VEErF22m<6KwBk*urcDUcrX9J6 zJ@A=3NWbI z)OGwBLDY-)yBGffNuGt_lS(5f0yH_30Tn2Joma_n<2Dez&sX?JRYeL{Q9Mr8njCT& zS1yhZFbRpM;i3UZdo*94*9#@tR&q#{N^CS5jo!QQ)BT4Ze@l0FNwTSmBE7rc-<2tT z*=CpA-8Xj+QNK#dXznIA&5d2Hv#g57J-&GywPTpV4+LkC85%*(lk42~RT8=3AegCt zwF20Icum;z&IZAC<7y3LZ6>P>+;Dvi*ZpZGHx8x~^k1u83V8g;B<&eLu5+4Zh7UUnOQ_jjCZYqI2Wz<38?^{jloUB8lkC(?Ino-~WV zCAVF}c2D!@rM2G5PEb=iHWd(qWkp_A5OnlkmLpGYTtn8;_b_a|V8wxaYW4;`>IBbB zcEqG4CPL%w(c7T@WcLKwFdd}0p#Z3%xrB;1IExN^&9M!#d~s7N5UkcIOROY++MpgT z0=-rAL-9yv-W3uNu;n=GmW7S7(NDUZTEjP|xT5O>_r#{MvS?gDAOs1(i+rDLO`6?O zC*5S^;v{Np4?!mn{|KVDQ!9RGf?(LN1WdLjOSXgiI$PZo*$Ao;n8LwL?r`RZEC>p| ziJ(`!U4Qf=aerR1UN>YuiprjU9Y53vQV{+4TlOmXldRg5S#`J0flD(vnQYS4I!V$Z z`glBcu4aeBMr9FAqkMlJd+ZQfM7n{8H}*=`arj^jA`G)#U~#L-B9&0OmZ zSnv(_o^K!uE4bhJjG++XTVEHlYzqVAn|x8@BO8q(UBBIA{QzauW{jkN>v(gTOilPN zvPQ6Sq!J7Z5>Q0;8v@ewZs1x+nCF=?hwDgZ1x0adfeo@$m*t2Q6J}2*$ysZb_R3xL zNn_LpTZ8Ug=ytif64iG`UQzy5J1v(xl1|D1X9Lz8SOi>R9*e(4 zBb9bGeBYZ%!WCtGMU9~oGRB;@xEGT7vMNWf2CdZvLZ7x7Mh2lCorD25HX!L}t1_U0 zN#_U5;c^iOVM3$YoAPrdxAdl4-a5x`UKG*O%q^~x;b5JAXFA&vsvZ%OevpOKRcr^d zw|W?*Nx{%&o&f@IDcKfXgprZ7r~+l0E`X23o@%?Nue>a@5fF_RiJFA zorF%iMgXS>D(b!aeqpoB?yqN-8?tjOp$IJ|hZY(=Qj*`c#gEV}PNKbi5rCWcGJ!IJ zG$VkDA_oXy?&`F8-PN&XlPD-HkL%v`k^MaAG{Ovjbhmyr@4WBc$~eobE5=k6mnf#4 zMd!Rat3l@H!I$P5ubZ#tQ#Cri%Y4cU8m3Y>zKGvAKBq?o^5gBxLNj2=8jikXiSRgj z@}mT^4w(czuL{b6lRk%N>XxloL!-Pl7avu&l+fo2f;BaGDoo-yW!4*~6?RxMWHI#3 zM-dT!(a|L5!68f1%i}IfU`W_k@t!If&lICS3F_j(jTD_vgB+9C1w}Bu71Z8@R&=5} zf*`MBiPn-{EKu<_KH?kEL2R~5CT^)Gw+7j+(X34_Oo;(qLc&?JWrR(N}K?K zrF!$ip!%G?Tjj%*3E0LW;E=Xfr8uGx9KEApneSFXpX@O#iOS^wGV;_RxKX~B36tN2 z(q{+RljZ^dFUM!y(AVShN~OhGredp?Vd&W0dQimgUlOUlBz~dSUoJD||9dy2S+a@C z97&yT(tLUG5#@(p??3zl=ZU^7lXfa70yi_4q2>Z9e;CV-+eY#}U!hwlz(bR4J_GE* zi684ANW7j2vVhlz9`cCX>(wMBGm9MNB2`xvyX#%m{lopu^Vd-H@Ufa=j74D{BHG7qIO;X$$h~@;Cf^T&&fU0kD7M?TF3w8;{(ZH`oWY_ zZ)v-WueyO^!r#*Bmz6`}I3eNVIQ29yXD{zVj1Z)_;6bu(hK`{tS0IX1M8LU%V06VZ ze}J>ZtGiiq!!g*;Up_J>>NIu|H}>xw`3A78w|F}a3h%)Dg=1iw*0yZSe|G~@PADPRdo-;`1juzN^LlD3-r|A7ju#Ll zWp5?gsx1}t@I9iRzgES%bVZ>bMiDR*Q@Kw-hyHsgS|bD!@ZY?;zxjL<0z{Xz)w=OD^E8cJ_frAXmFmdihTE#I8Qs}CwT@?v%9}gf=o|!vBnw0DRduA=7v@(rnj3W%`$?=W zyETmpbQrdwtl(CYQC-2mrL_igYt81?nqg~&sbVzMGwx<5=`r>{K^O~GQE@}&$}|Re zFHX29ZHORdIBs3jANNovLCd6wz26`lj$0Lp`)n3@rKa~>F1IPx< z#B`~Ch`gRJGS|0(O;?r0dd+C+`G7s`F?)msQ$ru+{7#NP2^qGsCt<``Hh(QW7^~64 zC}y)VRV-e@mZ1{w*LG$GDf*+V$n47WqK4HXHSTqgabqs zFRw;OL@h4PX>I|O-qNG&+SZg}x>!sH|MP4I@T?RO_^+}@JL-lPCsWz!1p38!vgn7D zbqmJztc%(jWRRonMv>=2CsHJQHZO%C)OoOR5C;u0iMnQO)MnT}NTu3?^6pRnWwP}yGH4O8GMFz!C zJdY5KzVHtRGjKUx!li`DlRkk4{lF+^SNi@h>?+0st)kS!e@@b{tw3^)L_qVP&W3;` zdHbtHL2!APT9?7F8Z6Xj-P2t%;@Kb3oDl%5l}83Fetk#tFoYuCrmp)oh#Uugsw9v@ zKl0W7HiUldy~Hw{mQy3wNElr>s{-%G`I1HR4B_7NG+%LfMTp8U0B_roNFDxElT#=O zB*g-}Y!6mGfBPM8EgPc(UC?7chN+w+{n>tUj{rrAApy!RPXTrUKVPnSa^suGM-LJ^_ww#eP+aPLY+ZUJ-1`PG*U>o z>LNzM6I@6QJdqU9*e17=#I^?{LjfS+WAEie`o}Um$F0G zpRm(#l>!C~qKUH`m#+Av%3F;^0~4W1o94hUO&F>2*mp51%__kiW&6@Gn*~xx-gEA2 ze=AQgtH&gKsY2#fhWFs#jBOB z2H2|Ypt_BJ|(Z-z5M&|`ongY%PNuEFNfb=yvc8l?PQtm zWe(pW6rgxoy<6Yn(>6< zMWTYD@`;f$@lNY0-R_EJpBzAaZ&>hEuP$CYI_>m#qwgnHMW3U-CrNuG2Hhx-`g107 z>-==WIL=w(&vP?Q`zYht_>1I8YdX2*+S2xQSRNJ!+@Cv17Uh8X@Ym zD2mMvum<9!U8VwjD`c6x9}zBp-l1NRbaRV}2uQ&eeBZJyB(Jts!PN*d1^6taBvaSZ z`QoOu4j!t>x3Ii(R&_*rdoeAMeUv&QN}GUEScP!*Y8do*(k$TtkMI^+Tp)Y|Opye5 zGygab1DkLCtOoP1+N~psFPcdTb_OuC=gaKX^JW{^y4_)(Oq2A$9(=%FI75<3nLL@D}^ ziySiti_3djaQ3=Z(`D63vyvlyjc2X;2lyDp!BFclvzO5w#=_xU1Z6jXIsl)1dFSg3_$Gc*^E?VJq94pGO&KO?t!9ur>0O3 zf&846SwK9{_QG(v?uL|v!;1r!!EFuksi~9 zjLWb~L2`F%*VP>qX?${(UtL?4G4f>v#nD0Qnc=(()f`!WGxpQaj6sy^YZ>cG^ds?F zYVRR>WvF8z6@DtFV4jc!8n5uh1JIWda8FDjd{;AinQFVMs|3_%bs<7wmqB8BEUH3q zF%q|h9M?;o#Oa(mD<8px97b;eaA(X`Fu;7&?V}o*%C#GJW@_hYLf6VBv?$pKD!aIj z!^T8>=%b#0Hd+X2VBJx5r^OtK5AJ(Q9COC|FJ{58*|R)H9C^!U6d;uS z2x#E9t<)u%<~08--iDKrA}$STKrG&d%P>=N_Ou2NRs*1B>o$%;&tpwLj0N3JT zP{)Ti{O~jP%4vNRlUcfNej3Fjk7Da{R#?9eW^x>Vts(fq3{Gv+`V>}>l`w_nWaSNJ z0A`ECnVaW$C{2)a4hIy8gMV;*fn$~Hg4+}}3f%JCD$V$94j=-lBdM!zV+tEfFf@-o z!SF)<5i0N&@qY#`pzN&9V2E=JmW*M>MN|UZ-e6rq)}jR9@@z;}CU7-uN3!AE$K5{W zBnr@f{Rdh=w?1kgUwb0vpjF3~JHo4G<)ih)H)Dt#Jh3y1DZoUp4pT#cx14n#vR z1jcB`-K4?WqX`3K^*9Cs$>ox2WflLXp&qEHyPGx|M_<^yHff+QfOG9e0_xM;dbeml z6hs$1SVhNIi|D}ux=S!aW9`f$m?)OWMewRUSYGOdwi^hc_Tglm@%@>WhEIMSL$2Mk zl!?;a_ic$YLJNV$=g3^7S&b>MPn(9FU*guY*N12S0fiVh6_dg}C;~G!mvIaUDSsHt zZreEU-mmac0bF{cuMpPv z6(XMn1q_Gvk4=AP6mB9OGIIlG6)oR7zY1H(fuF z332;yVQ4)1maS)n`XQF;8K0qfH9EZ{0((^q%B*ywtr|f6WR+a3l1DSE0HHtd5XFxS zfy+76SwT8OUY&d|o`{@4_kX+EdMK!Z0I0oH#{-jrjIF5{-i=)~n7$*KH*xSmSdDHvDO{J&F$qNnUf8*7 zz@+m-qPvBskArE&igEpqqjBQkpcRKT3BiZ~#Dh=PB}9Tx;4$L#Gh3ZKMD;Ks=< zWAFmUSkQyhjPgc9m^6j^lb0bDy$q2L*`sjjYQaRwqukR-B6Z&9xW7y**H=}=SU78bn~sszr6r-4f9=EO%a{@E>%q<=APaLZ@i*i2if7{vNS z1$>Yi&9U&-ne3U@QX2H#n!N@6A9tP_aZ|)TGts{{ch|hjw#WiBJ><5ISCc2uL-E9y z(~~td@7{@85dJtyOgN_7d4~OQ@EK|0?dSMNAl_M7ArU6qOUhe}7~8kNHHGlUPl~ZA z5SV4Gh7n_#mw({cY>wV=-9bU~L=*%hQ(WKz;{y3UMCqfj)~>Q<3UowGM@_fW%9$s~ zGlPVjFu|9vUq4;d|AC`+73RQv3-x2LrlOnzE6Nn`ZIs>XwS(lK89`A&d9T=Vm?D-d z8$v!i@MDg3W_r<`ji^yNATemU(O{Uzpy$iDfAiK`RkO!a>x}io7$^^oMY+r z*np&)vw!6=Qn{@Fi;+OMeYO!SNU!h}gWxu#S27b}bHRF*QiDbZCHDY0Xzsf@^K;a~ zmt;U--f`f%>f08np~GG@LFFyBNr0Agg5XrTHgO=W4K$$46}As%fAD8oe5;$7SY#+% zUJix|6EJCAf`Hi|z}w>~ihooKXj6c_;K?|%!Igdkm~NgjOQoZ4fPnkGf?nTi)x zGg$p?o~)t_38WMo2n_!4H*P#70lsCI13TfB&v_NnfAoXw`99m!!g&^6uM@8XG9)m} zmZ-N#vULIzgLf^~80<(-4Or}LzZE|1(eWQ3PL1g2fj2qB(L)UQPodb0W zVt?L<+9foV200=cDA2K$`WkbKz|$~^s3A07Tl7b6{leuC;Y4%EMlB0(>UgC zhe0Z9uw&ZEMW~R&7FHT{QNd>PirxpBf9Ca6i&Ec%r}NHoe)J)EWW+^AL4fFPATnOhq_m^g+Z3(E|s86hIz4u9Qd ztgJgdaB6@XskSm}A@(!Zf)7H&F=+HDm}#HDiAPMMS?MQHs2NM*Aq7leLecbl91a+b z3^6PDvDpc~et{dK6jMmoW6w8G4FCcTQb2Ub*bB;~WI-fFV`q65n^v9IB-PPU`f1$p zUz~5K2m-A5(_mbSaD<*23)f_GDk*Bckok zLB_vf%tpA&A47hQsz%C6(5Cgjn^40A0Nt!*G5B9x$S@;SLg^vtXA|%$(8P|xNtJS^ z>0UA6set=~t)G*Y8w1W@**sT7X_(|G&=So*OX;Kxi_8MnWHqYYVOFucI3?LR`DM@|&B(q;V_!l6+ z)crJa;L_@!BLy-pU@{R%L5esz&xI=;08lF>_ILbi2GP#)9>ZJn)-?dmc4Fc{xSyWSLam56b)Ml|cZPCCYnRysMX^D6POWz-4DZ+wQU;pXH! zV;uwL8Grx#sp?XE{hK zxTf=B_Nw~HDI4R(S5WH=IoSkr0CI*hw?iY5<3Vs2@p+F4d(v{nw)-(z>~5-S=RNkgmr zf`qLV)at;~3NLQiJvpfHc@)bq@_*llW(^(*H-*_<#VMbq-@_~qMFdqcGRLBKZCEQ^ zSO`v9g&CrCq0a_VhE3XE>#vvkt9gq&=K0et53ZMGRg#JD3%!GZWyEsO5Z|J388bPa z`EdOB&nHa7hxH~)aNAXL%^}tCo|Gt^9S0=sG5DL47iyq@0W?o4HtmK3T7Os^GbOAT za%1XI^NBTBCQy07|J^Kv8pAuLst(D+y3RQ9KoI$~_{A8;TB*`7?U5FP zzSQ@a7f*b;3N!1t^~jJM&q2N5E1*ns9`t2egh9jw4Im5!h#s?FFDM{(w3kDa?FJan zR*W4JA+w(9eU?Qp7*r-0et%WgPgrS)bC|;pL&{?LkD{sc`nGnFBpJM!5?JoDY4qCksc0!8E9(bj)es7%6)tYv6%P} z0>)0Xe1O#TDpV+NK|VmBySY)HX;s1| zPqS?qORqxO-RI-o|96T%$+Iy_wv+-mG?M`pD3cN36MyK#b+>!yp@(g61N4Aw9=H-? z6SXCuNX6Oy^_?%ucGl@Fa6k|bhvaZLAHNyuhr65a-s@(iRN9uMUfn&eY7KvR+NjlC zzq(J1U*8s4n;8B%tZ#Lbj6NKu5y(2}toLr%@N8h-xZ~mDI5F|>zpsJ)j~`PW{&#AA1OJ-Cf$o#<;3t36yT~&`&n&vaGMir9rQy5W zts9+ysf&WHKCZzfM;@}tiv}#~XS@&6z5A4@+)nYLCb)4x)75R#jk~y|WAF9s5M-Ev zrOK6w*2|3M1X>-jmsazA|Xr;kX~-{xR_%xgL^_FKrP}_fjlki{4!Mr zsa{k$z*Da#d0JHi8l5!$a9z(fEi-+d=0#RO1Loakpn98?$!Fu4ERu2HUvF8_3Ca~! zMraNoHmj;V#U`!`+bB}jdlyA;TU9R2KvtX=X1UzOISrgcc4;fnzqvFEpHqTelQ`ru ze|BThjcYm(W``hor8Y_`s;@6j+`ToP>#5WMJk?C} z&L4JETEBRaGw`o{HgIiOFRct83IKCO@muaGC=Qw0ZPS(g0E?#BsrhTiEdcpDHMDC35}ym#0OSKYir(7l$0 zc?H&lGNVQKFOz+8#uPo#8%ylOg59v9rYURo3H&bRKwgw)|FR8*=RdLUI71*&cgARi03jFqfKU_U}e=9-;&=Nqf`@$=z^4RCI5{u=g zRLQ|i@B{~4{XVWVlLzy7DoBVu=p>wp#zES2>~f?z6Y=!>^5M<3j~Dlf1H8?E%rLIY zrk1B6JXkqBm?lraFJuQ3Jx3Us5{6*^abnK^$_9~e_6q&@>(3%pb{PIacMtT1q^>Cy zD130Rf43b58d#f*fGokL7ly~!wOmdXSb%3QVlkRq>d{i+pbQNZi6Mea#nl~G4P#tF zU=|CC#Fjo+5myQ7jJN=rw4?J8{Klc5yI_0%(()2af7?2&yt);Ybz2H{Gqbmy<30*! zD0zW9z&XU2y=;D=rbt?J#3cg!=qQ}~Di>+df1`Xx`3m(HtK|qXXol%zw<6(+pg9^E zjs_U|nZFG2M)@iMd?O5dWCFt5FthA>>Iqj&Zu1CmtWScKBZipJz2kUUn8|JVZrhh2I-~rb+1Y7eOVZ>`a99 z5)+-1&zHaq(`=bKvNJM*PVPPt{lC0&3MsGQwWSJpHo_ylsHEdjD!$_X1lQo&FteTL zBGv&glK~Yde}!0CkJ~m7e$TJimjW`d>*_v=qCnF$JpK@^c`KlR0g=PuTpWHg^y`OLU%yT3n4A4XnMro~ z`O!~m#Ql>|Jrf5#SogfE(`diD%ab(vd3TpYc9+)C6KVRy`fhjsJp6hS-`s)iO&v-~a2s>nK~UW801&4Z&;=MxW&7g@?3HSH{e z%|vgNe{B9Zn-)#|(96mrDJO|()a{Z;pL>n*T{}{F##REj8lSq!4vUx#R=Tz_JOYNb0md;+5`s;j%O{aXResA2zCIj~5_$N`gi2yshM1O- zf9{Uj?@3ZtUW=kUOY4`1h?J|eM}ow;wFA0?6vdyjvyVNYLj5vXm?lV3H&G9_1@9Zr zUc^hJ^0DKn6`LS&m@qKNJd-bXi!%Zmz2ZfJ6%cGq+ z!%BzI0?5jvH?tEq!4TvZJf%az1#q9ye@J^optLHY_ur$6pMK;GYyV0HF(fOVz6OiB z>9lzd-x}xf3e-h(ua%?oIPqMaL9e)Si?=zJ?1HsXKk;D6J=}m1z(I(rp<6lI*%PqA zN@sj)aZR9Ei#!V1qIoiKh=T}ID@8nnOd7U)k#wy7gBKM;@#^wo^s_qpW#nbme-G9R z5-89eprBP=6Xv6^QxGy}#V}JX00KI#KvSqX&rAE|Kt1Qy!Pi_yI zP|BL-+7ANo<_d*GBF*PPJ8(#Jc&{hS#XPB^fH1to;3sMb^kK+Oj9aZwe+X*@Z4Joe z5n+0Ty@=`!oG+z4v{r06vYIdYnss$)aa|I6AFB29Ur+)scVNH}UX==uRe^*rB$gKW`z1@S^8%P58;j}(6}p`k&6aTZZQg5H?U z9wQ~i8Q3t}nB7V#&$v;>eT>;a=+IO$llI77D2E?J=X9-GPokJ}O}kIKB8NKlqA!ti zAi&J1UBVCTrUBepyvKQXpnm}EXz5LpNmoR8mPxM*-|l%-gMoJsT~(AZQ7KvTEV3?M z;mnRU@Iw=cEf?*C z(iKkV#FMkrXT@iMT+%!PlQYsMC+teXCqVspe&K`5$0cQiID}R?U4OKJF|D(H6PzxP zgF>@7^dt=_XOmzO9u|E5I5Lyh{XsTyo0Tre4kM>0XY?mX2e{hI1-Xis?w-^*JMXwp zX_M^pBHL=x^MWA~asj~z3ZOsPx$k&s_QLbXCh*$|371R&@Y>u7cI4%Y zGeruo@S6grfT{S{p0BlCUW}UZ3RYqfIEsPszG)U4w*K8XOBv_D#f0nhKMB)a8|uhW z)BiCkSibz*!hh#|^$(0022F*p7kNv=jFU_Ikw!`Ul}LPxbs4WD3Ap_CfF<1=m<%bq zDBAFYvz`9B$_Y%;hQWlsYnxJNV;7rnm5vv_@xH*bNlWn%X{wz(Z&885pU3&{ILW9Y z!;J6*x#)jGK;NU&_kaAh=T)vEH2gSg07v#9P3wJgj9WFkS4*>^_b7twr$%xwr$&Z#jsq%*! z{_%<@VQJl#d*D#ap%piN!2Qwt<=LtBvU2vQyz;n}ZzL@&P+PBJ!Gp*j6}oPd|Ll=6 zr7UyWn}LqSQ{i!aR@GB~MP>MWZevHY-(J%?b%03%BP`W9k3(73*Wj}|`d)>z#k0bS zOkPDWg@fyADZ&-=(?%0G$V9yvI65PG_}<>IM4o_`CF#93ETPZ*V(HprJoopZ;*oL= z?v{;}cEL7cRBt)M=>QZR7?20YoEersWA#Qhh421T>d;}Q96CYXV#PW=FW1FK6iGrm zS53ZUqPl~Te?UmNH*eDd`_c#8t)?Q%UA>dp%TOI=!&VV63xd9`7VljmsLQ@rBcuW2 zdAA=3X|%Hk60H2MAB`9}^7KswE%bOvAjM*v88@$y6MvASC!60Sd8!8<~Y(E~dNOG*^P?)wSZ z)gU{$hjlos9=wwuW9dUN*#ej4Pz7Jo*W!zH_@x)Xl1ElRI#7&aV?wE49db7CXD56% z-XP^c@HUYzRSKu*)iggC%(Ay&1^eo!VE)awxluA#P$Tpalbt_yf{}N+Sg;C)2u$r+Vsa^@ zrh*IcYT=s$GV3)4Z3cmyi;PSgSbxL{<-EmwFT1h#>o*H1@Qx(J!WEP&50GY zrRGS0R_=JbP$B_q5KmS(sy59^qvK0xA;mq8(6A%ABus@NQE6iI<)ZTIaz5-1cg>fr z_5Q$ozK!B2n&r9|kC!iZ0gEGy?I*WQ183hgi*losZR=}j3|#M?urDd z=qyIY!VxG2@W`2wt?$e}4)d^AGN@b$J#AIY#o4KfH>mlSt7f{1BUq6Iwhh@5x+3xi z`PAHRRkVle6N)%r_n`dsg^S9fI}D0vR;`4RJm@QwpAn&+IPQGX$hcf-KaZ+WBRU;< zvf}Q&l6w1df(yDw(&42-Xr%9Ns+};i6ylh-Vrt=*fr(CYHDh~aitKP77-p*_vBAoT z2@quipwl(Q$+SiW$y*+9DHvLCiQQ3$0S^knTynT)7{fzn-C)$6?>RkZ7`|mOwah#I z)foG+BXC?POj^t!gJhlA(R+r zX;0}b*Q8Xa5^zOlN+C=o@`TZuZ#LwG}-6XKFyrDnkAge=l@x#YE7s%*K&^|&LgM?5VoE{ zSA5cGrJED4NqjBWrJOV<)SO({SpuQw9==CquH-!T{|qA5-CWqsQ4y`+ahKxw9)|Jh zcrJ)q^L?FNuPkS8|Lni`)*7inu$L}=;`-zn90NWiG^lr9(dPQs(YgsK5^aXf-&dEdQa^HR-Q~>T=F)H6v ztomdN8V+WgwXx5E3^2hh#CnOMp7*i7p=h>SlG~ijEwiBJ#q7*kze3_?3?1grLLK~G z$f_E#k^XJ-hZ$8q6nlxIYvsy>_s=$)#LMC0!p!f?ZEtRzWY-4)<{bbT#9Q@z-n+}ZWJ>i_98$|;TOgm1X7_QHkqLC{ByZI zj+rMh1#JR01^ZiduF1$T;5AJ2#R_mxye{#6U(6P8_^ZSVh-v2z(*{KLL1jR;@c+rQ z5kKP)S$G=rfpI4{O**DS1~f>N?Tb8FrML z6!ohl5t@UNYjMcvhy++~Y0N~@oqAMmmwm{hhtB;3a7_g@V)+Jv$>P|=TqsdNM&l8m zAdC+utGgRI)aD0A`V0P#h&&LRY;h}RotrXW3a}xTiA3jPjRy-Dv~Pw+MA8D1J-2Ak zivIGN4RwFG4c8Rfh`)p3hgu?FKJd;+lX&ARM_s_s>j<$7Kn2<$zN|gTc;Xsh3Pt{S zI=AjWCO6eJXsUhf>pU5OXgXF?+A0gimDfx;t>!h0v0>F$pIE9dnd@eXwQ?srNJq&F zFfp>|h&ej&n)`dr73udK-&p?l+L6id?ulhQSJUJVLxt;Bo--ZHP-%V{MGx24oj$Vj z`RFW2kNAuTlr0d}QaBGAv=jc5mwU!mC4pNRA8Z&4(rEHWlZnvZVh+OzD8qjw<6;=v~zL`L)6mZ6wOzxfXbNS>_i3bs)!gLzXzx*HNmmJ5IbJJJv zOx&t$?d&^8K^x!}9Bv{8RCYoT(}(Nv8l!5%+C=S@jyb@k08-tRW=23F(&z*y>@Fc< zk9sK!OKLjglR8Me2Qo+ftlo`=Rh7I3<0Jh|K07WEDz01TPnvM%tsfH4Jr|PTL5Qnn zK?^T3p=Lk4Vc0y4MyF&V?L2$7B7W6M;RLzTQeywPMHOj_KMIrih&Lodj4NfKN zy+t{q>oNexVvqBb0;VyhgwxID>JiBwu=n1R4BD?16@YK>EidG_|#s+Y5juZhQfZWA{IW2X2B>c$N(VGUzVe>#iY{XZX-a?z^j#0?UaRqi_l5X z<90biRS>Na=(2T!#f^F`T;)`cpcP&dNmTK)2cJO9LC`>M9(MsYg{BMY%d?AOM`nwL zqzM)+X@jgHvO{wE{0?newx-x-tbpf#VM|<)e-f65Y2{c&=SQ;`UUu#`J#bbF)O=S# z(M-gYqxU0G%HzHQ>A<^(q1k4dcmu*k8h>oz9qGG}WB;V?)-Lm(=0!Xq@pOg?Y_E(Q z=_#;wy7bUNka7SHZ)3(sN3^}00s7(SA|aa`d~6Wt>=ZNkk1OxuBob{-}f zGc$PbZSsUp)WG$kfk-bfpExp~88nF0(4{AdhJbbn$6T^lmYe2)s%~!yoO0X75d+V| z5*w;Uk-_3qr7LM|B)u|Ga5MKYZTX)1t>fL9_e67k+|3l>Dw{E}D@lu|VOoW9_n+Hz zEP}b@!rtXhVxeTmSWi4V;fLc}s%Q41{OW~=c_I~deqW4o;iQ)NW(EPZYI0&bovQJ+ zOw|=hm3@aks_0FY_T!Eaf-X}9U2UT9jdbWwxP|BJtlTCJtOqU*lgo?$)Azf7qhX(Gn5lx@+S zvgg&FDd=2qYp$A{)HmJyVTtHk`jddE2Bnr3BK!kgsWG4)?sRnfWiUzbL?koDyjDvw zXNQE9Tt?7o5~kj3TU#PxFv-#95$$f)j$0LUBpums?FQEr-illosXZCJ_H?^AeqMpQ;A(c= zvOUFYVr3us#|-6KG)HIegV>!hRx~c6-aBgY0Qj9$w7X~+gtNAD)_DsbK*>v(z!fhw z0*w=Ig!J`w4M;$@3bFDiVvk#R%@@AGFD@WfVPGvX<*yeIJi$D!?VNJ1gh&{B13TY0Lq#7Plm8Mx-oUU8obi7$Ei1`8!0fa5T z>*JfLK2xbzl(@h`%caZQ^NQ*dLxxTvfC_s!>afE-LOHSa4{mJ;a|1iS=7doaw%u2HAR9w0;XSas-uThQGqXH3O z0({Q)EtWiUv^SmO2-6}?6L@=A0ioL+sTN+*ci0K!>ourSM4~4$A3Q(DyI6x1b8hpq z<;bF}aj)3R^ZNevB3SF!lIFpynG^Hx4J1z+^w|!n)~~^GRobJMVY(3w;;9}Xv)5`U?ZDJjFD;@hF;^E~j|j?dmtCZW}UNh|UVAh~7;k#^x{7LpUA@#zF>(hlS>(Rl~ z426EI*?HEa1Vj^xe%E+H4}*$#Nx^NXgO575$0_mBnJMuDJ_C8~Fq6g#Bq zyA|aKH!Hbdot(c!JT_;NQTP37xO84R6wyn!CcKn{pBpB<);bKyJqOEuKU&BtWY>M~ z13r(4q&>s!Qk)^sB1WRY{|$(L1G0T28j7Y4lr4n?j)tmEXD4N&4JDwzKRDs{G=W$k z2<+30``@-K%B9haBa#{L_+c4*)#3~xZfJa9jLORxDdl9TTukM-8Rj7IfI3Q<=A>nK{e3w8U#dpB_F^XXl}D?2qe3^Qnt6os^ckNoxb@)k$!cR z(AGcYXyO>bOKZV+lUX4@ZFlnG(R&1mHtLJiZg=9bRT1>Rvzvf!U*a{ydCvqwCcPz5 zGsd%9UV&>PzBy!&Z8!#h6SC5(rJHX4T%Bj7Q9yzGG)oW2T6b59TBig4hAnt~jDl1~ zQE28NqTkKlAN#(*-P?R;b)14M(B%2cwGC-Dh^AcYhLs383Ud$#>7@(leqbN{HmbuW z_i@MJPT=H8<{o2Su)@pa(1R?kP43;c7$$tg2&3dM3-;XMt|WC_g- za%>G(^itftNwPc*FZj7rBF2k#l>B>ejtUMf}aL}lD}=YJ8Az?A(qwatK$KRa(`@Re#fX#=+&ow zPyLR7_aj2&KISbXt3sPM&&?K-Ptaxb&n;me*u4{&rV~ozI(h|5rCt5u-KT_2b92cp zzDHXrzK3CRgX3~=akuM5AT1WkknUx$lDn0;8>2_TYDhDP1qlV}$BBs226raCivC!$ z9k&y*k)*nx_Vx%gjRG*YYdv_ES-uvlSvY({rjno_iw;)Xy!9rUD4c_R)F{Z$o`dXu$nN|x0EK^@2McNAg1jDOURmZlN#Ry-lzTBfhVot z7Y_P&3ahi#hbJb*UoruErMJbCHvhqV*pSuvvjEvC?Lq~hW1KuE63<^t9EK-2{GYvs zq9P`2bfNaW}YfXpM)kf*&sPfPTZ!8R(c=MhJ)I6^NE<VLE>6aak{X9pDw zd<#uK*~xkS784bS)yd2gMEB6Lso4Gck??1WhvxvTm4b%>U4vth%6L0V4B859VD$h_ zB^b4|T|FPLmauEjh6(a&cnnSrC?q9YX(ic%o8>u0+I$K8AqqM6<_^0)1t2Bk6 z;pnjrui6{U6*BX*3B|BSj(}IM?(Au788CX8SoPv8CFZ;G^8+ulMqzqNoi5Q+?}K?P zxs54ea-#XXTg|} zhs8ytW|y8Yk+s!6V=d==6j)Sg9n}pA!M@1-@NK?+!y3C4@F^lh%CmVA-$i|@C&pT^?F&hoW1Q}9T0^W({@moTfaIAD{hZXK=tzQm{=hG zl1cJ%u*6ytl~3Kqx{qAV_w6>MXQT^3lL8Hpq%l{~V%k?DB@^?vCSDO@Uk8DQffk#= zbgyD`=45p={SXB0h`7GIx6HU@V`vzV9fDlHyqv0)H3Q@g z%Fz3!&PUS}mb1t;%cKf+U_PVZ%e_X<(V50VVuKk8k#lQ8qey)M?NSo7Jv_cbYQ90& z9ZhckgD5f@grU(PSlC&a|F70y_^;Lg0A5#&Z=e_6uB8)DZ7kKTI1of%%|mPi+9UDm z9$Ou2Rgv!$_`f9;A8^;f17Jv_OJ$-zqV^NsH8rnaJd(^O+UV~`z5R#lG z6x7Oj4Q15O%d2|O&Gd3gEv!tjn!9xFH}v=mE+Br{P~|T6>VNfq9|F(x`?A&#&qrvP zl1b+#Ze~EB?(9c%M>))|kg@kGBLcECr;~(t(E69h$eJPy{%j*fT^m(px>5TK3DNkz z6&hLq;vBWe?462bep8>vcH!v(f^#csGg@0TGBXOPatD^^H3S3l?UoQmt`Q}XE1?yLo4aw!3w*^J?j8Bd2C9l^MwILEN-j zm#t*seuz*uR5`mc&~qVtudcG-Gy~aTAjGKraz5VZbaAL&fziNIZ0>5LWX8(hLqBrp zHOPQUb|eL+jYYVBvYXG>bOLvL8qymwpm&e$B5uzbCVbdq3zfcAf?O_289z!k3(!jpKe$b**JXA0A0XT-nrAbJ5LJzA`Vy59i z#z4SABF06C&&~B{N|Okh4kgN}+CKnO{->2us@8@lvV836qHj{w_-HS&P*;&I`DFo zF@ZYzlD9)CTq|K_Ubyd)qb!lf%utUlsF;D7W1<+Tce^pVptKa_NEXQmnWB(n34Mz@_YVxsR3NH1iT0NJIs8hlM==BHgpa* zuSceyx`6o}e4|0rBuZO@Jm^(YKtsVtDbOZj_VXvoz~7-Ff%!d6=w)BnArC2&Xf<;D->>GMFSlZDj&3Dscj&>HIXhRzr!#QAVZWc+A0fuf?DMP$s*b}f$h-JyIzNS=K-r;K z){!4cNPoZU75E8}0nI=wCmjSj}b zmBNBe3$#xVfFEK;4uAfN#!Dfw?n~i~zT71yT^lBO0>`&2o!On^qKFBe>g{owbKTt5 zbf?01QoyT&e1YY5H3}<@4xZb zfl^s?8>^%WqoHgciJMaQ%69vUV+;J*N%OxFrcRqkNMI_FQF-!tOY&4-Nvem$H2 zgzYJhwYTO4v!%3qtvARn9)L!u)L7w1DkV;(1YY&$CK3RerB;zQ#{4Tz^H%xuo=t+T z4o+$Xk%qz0%vZVV7#&YZ;77>DLS*KCcgxFS=htOJcKkrFt9ip@bBoVJy_$n_-kDQb zGe4v+pBT^*^mod|W|krESi!YK*2?7={mLWJvXs$S_V-HmbNkU}9jAauSx?7ierq3x zhkD=o%39Z-ywbN;f7O}z(i+m{&8u{%qb3|$q$&vA7@{W^hob2Nmsq|r&J_B#FDdh=lmTiH@#t4_tLf*C=6Qfh+w&6q2ocUKFm4Z^%QNA7Nz zLWM--pp=4Z|I^`4zMuuQy)D4Bj~qf2?AvAcE~Q=1~*UuY@=*n{jq#`)6&( z9us}z1{fM3N;({@v*N~@8A%Ds`n&ccNf}%KwJO9`nj*+hc$fKS?)YnP*Q-qAV`}mR zVm*puq`1=$y99&$$!m2reN0WZR^YtUd3CBJ?=fcDtRKUdJe z^bH1N^lQ}9EyLR{)s)k1ajty_kt&Lr%%{v+E4XN0WMm%WI$EW&OeN@;Vx&Lovc$LmuFsyYuI}=rmyG z6^-=m&RD_k;$~G{Wm{o%CW9{O=1Zh*1w)xp4){`>BZ?653}TT5EhUM+sJQ*m(2!Sj z$X~Q{PGU_-<>l&S&2(+^Le}W3;)?iy&v3R`%Q~$m`e?FVJd$DjJK3H!{IY5}X^=4% z_Vq#oOA1zbe>hR*CjXr2i=9t3)sX0vcK+h+u5B?Z`wk7szt%P6Rr(V{dR{{Uu?+dG z_`_`()1CdOFm^)9%%FKb)3H+_z)c5>el#l*EJpm$Ce0QVPg7l=)&=c$Bbi4UXsf#~ zfb6JKL(3tFFZ;8Kkyw6#;iM%5`v(qx(76Kj^pG=H_fOF-OQC2&z5{rSA}SIr)n0~i zE2Y25RYd9i!jq@J;j{<%|5ns9a8>`If3*8k z6P|-tMpws@L4FmgzRmI&MwMjA4}8@*4UZ@AHa6ty|EbfV5dM%FJKr2k-F$!VTFlUv zGr2i$wiP}CZ$XgG?KF=L2cWwJ6K*P?T_dFPz*$p9?x}Q-7ZTrm&KKWh!)ZNuc`v#Q z{WAXWkMECC+|>qFM1!G^p_>=_|CrLT&y+@iv;pqZnj((6ivBU+taHx50={VE*r3(| zWLH4?6G>oI7jmdQSPDepM7KJYtsv=w9S%0X+mH)Or+cFuaEIM-!ZcQt8Va#hRYz-h zb(aD{UixUx8SGOWBy>QFUjibp|3bp{DAaU+&0-M$?vl55J?}8sYH^b)QP10DJH16u zDQY0=lx1N?Ul<&m?;xp@1fmxj+!VB~gC=Xr-9ud!~>R7sM654*suiqrA-=y;3G%1AppRcr^gI zKYLE$g?!T}W6ojx6`#igTQcGm|KgDCK|HWd&y)*p`hj@*VONGY2RLfz=!%a)s1*!_ zXk>VQ%JZWNP6UyXAZ4%OuzZqj(vYlrBUKk4#i}dtSM*bbu0o>^yQ2J@ZDG;juwG{4 zaDZ=%c9`8i4G@^Q?8+W?EVC9WYKY^f^u0ILwJ*^kU8(URENR&SWbm{Ck1XrqE)raG zE`@h zfAP=J%cGt1fnu^Ecs;$eTZ_Z6A7g;Wkw31l0mRe=O7a3%X2#4M-xPs8p%k$c+-Ag8 z)Vicb)NyiQlavYI526K;m4(a=;50<;L~%9uZX& z^txgdni`G$T#PTw*McH0wjRIY!_TZFv}kq#GWjBq+mPC86o>D+eF;uLwvmOMZ+v0% zV(LK7{b3Fegg~wl^1o50SPdEzjFa_0=`JmB!)09>*?&$`>Aguzz0}IWZ3eH+l&@_q zkwaaEb0P!)ZUv57Bda$o)W5aF5X-z;^+WqtR=)0Y){+1ZPQQ<9{eFI`11dx{SNOYu}w)G)28me<>=R+{~s;qa`eB!LrdP*&W#w#VNZ*&7>D)j8|JA zHcikvL5IAI@o6Z57 zDb=}Tsg>BDS{mGqvNjR{WW2a(NGMO!`=u_g(?upl-h7Yx?9J6H7*Q%Q#Jndmt_8t} z`ncTv@wm6frlNbYTgVOTAkZjMXVV3xk7nlA+{QUO@03PuYDS!{Nf*vyr(fe}S6%Fz zAuQn?h;Q-eJZqVb4XUM#`4yBvyIJPe5=DZvXCZ9|aRz&@|4TC6Uo02e+aHP7TTWVTl^f3ty-6mobd#@yx zuHFcv7%VPbopPnQ4kAeLh6&QSFI%I~IIV8CW4qb=O`o8ipKEZMExv+40;1nR%r0d< zq~NR;j1%HrtQx+0i_>NB8bRdfmex=u-~=&DvAK*-Ns6D?t;UEYc8WvOGGL?_nSRD- zgi#+nMEbGY$?9}iMjebXec*$+nbDA71KL^j0NVv5T(Ei}Ny1F8Kr}ie*fTmBN^5hN z$}@{D5@bk_qVC1gC7(SYNaIIS_1bJH1?)1*+O2+B@bX{>IpFv57)cvxEE^b8G|KvV zZ(t(^8N>xU`D%~KaU}ZdUe3ldmgOowG2KT6DrV%y%%qK)viVGOt#mJ#bAHz0@3pm^ zT!&Gcv~322HG|St65B3fv&JgKGu>i+B$a!_(-ze8R#}8oNF;ioncXT+a_TmjyzYeU zuMOj>of&o7pbcG%=A)IL=nsJ)vch(NwSAwY;@Yav2}=yrlDNDCmymv8Gv+%XnmNs< zbh3DnAtp*P8-`|&@UC6=itlo?j(NO~(@SjOPN&p{sg_*4itN(m^CZ%(+CcC4cn(ac z2s4B$7u4apb|xucg;o^xZ3SR^pJJ&HrEr$1TvQMnu}lpn&VLcaOa^?X4N=9Ur7p-y zVG(0n{n)Q!&U}Q}Da6dMDv});0!M(lU~sU@tsMZHNuswn`7X_5oqWQ&oRscqd}LA3 zJ5alH!fYgUiY4J1M?M(UplkG&^hR-cW|)S6-&m|79Zyd&N?kn0Tpd}#l>%d$x~Q+3 zNev_!xBnqKV3$+PNmp#>78=l3p+|9u_(_fOnA=w23L+;^IkEm8cP8iJPPuUgz~u&Q zx5EvGQbhskysNeBI(Rc|T*SRJ1^rF?SNQIXG2dHd^V*u3V^bxNUx%i)=kZQm-20_* z+A!;zoh@)F=~A$`XOLAPGG6HQZk$4zwjIN;;Npj&Y2I zHoJ$>i?nX0`#^I6juO+A)DhxLH8t04gnM3HlVLcp&NIs`wwJ+t4=(m;i7%LgzK=S_ zVpbA}QQMzXct_thNbd~LPlo`54q#3#t~zM)d;EjaXS0gUAHQCh+t*JR>`g7gBt~vg zYDi9b`0tN)70$sCRoI~oeIVFPfhC#!{b0%@MCMir7{;+%Y!st!mZ3l{oQ8@!@98+k zUA_W3&yq#h%j*&CmtXrjU|;hipU$$bGYqZNZQ7(7*P-{z2x?V17w{_~TAW)Qhh2>| za)S~C+e7agW>SdNGGGo4WzIF4sBLMQPwzQK_0S*T1w(rdjHYs61ZDX< z4D08w6Lt|bL|EpN5aD@Qp*5?W5EyGz>R$pW5=6aNhV)+<8cY4OZ|65%VETqh3jdP1 zf_y@RIkpyp+mcHC{;Gf=RYXVbW~$WDT>>T8KDk#k?@EujYjHuVN{GsiCUncGh@k26 zXf~Xl0LjO{`3Qs9d%K}-x_=>j>h<9YcoYhD53GbUcQA8xb1^rz|BvNpVgtuPoYAEV z&Hg{l4Vam%IR$(kk9LW&@ukg{x-LAj$Y-Is>`hOcuSWRNDbX>iW*X6R^W zY$M50;1p;kMY#*KDJ_;^r2=d!DI~1g^yuIi_2?J^G!jKRa1=dgYSbET)RHtPW2rO} z`=RABx3+1h;p3xXqI^+ai0I}NyA7D-u_805<}GxnAYyvA%%%g#u`YPPevM@5BzYNO zqEH&r zrOioIA%W;jI_wBJZV`m&uR_R6Ky(_WirjBt6Y z4e~1X_J#RI+~FUj<51WV#WTl|?Q-5m)Kp~%(TSy;Y=f1cS8Q_Xhz-!KxJlHTW^zTX zRr6T%fM;}J>Wm_NXiVTA^rk`vme|-jb0~<2ZU%{6WII#!rcGv}N*OzjG&wQsL_um{ z!SIN1TJ#%@B#n^K8FPnONbxlvrlL07kO-%!Ju{KX!oZL4F@|p=sxf0rOYDSzTt)T( z{x3`1(cb2zsndtMVAP|fL1scZEKALrlvA)2Tm9Sjhv$sHTg_(I4>X0MMUj7Aya&$d zdZfA>9kyUTzBj?8wX`nd;Gdzl&}X&jz42&G1dzLF{^IL7Ombf@Q-D@(Kyp05 z8mSUjR60m4=wfg|x*y}@dFD6X@So_%IMz890>5roR!$F&@%sIL8TMK(V#NjazRS@c zd5FhsnP~HlO<%@S8tbCGdB|LX=x^THlp(dufjtbkHW^*>ShO!-ykBHcEos^~IhrGk9oy(q#BGok4+xAr_)r;zV>!EP}GBz!@h7Wtda=^GAzj?))(F3G-M%}acqP+7}u z{l2d4m`m-*lhdBf{)lse)6L8h@TfU(C7ziMDurj$-ZQ=gCQq!*jj0*Zz=;u+DWWHA zE+1n_-1d7nKV%1v)a168+=;EfN4F<*RmJS@Hyawzz1zMEZc@PkgHe3Ts5|^cuT#Fx zkl18OzEg7b?d=2=Uy?@5N-@0$j&M-}-x9`4> z`X%_OwK7-{bkZ2!juo-qbG!NDwQlJ>aLMrB)1D&k0JCFJtNx3>uZ{lg@^El-{YT!O z7WnTFGD+m#b2=p+Q1xN#W@DboR6Es1lTot~=nZIO2nliG0i&d$ySWNqA7SSdf0?u& znWtB4Z@mUD9s!R>d65LO+QqF-M|4!EH&oiwd9RDFX90(|o^zTqy8(Yyyf=HF{H`?e znIujEeD1^#j%HMogi=Zk7TR@>xg$5LsDLJ1_KQu^vdKMl0z`uD8%d|{lw0-IFO6F4 z*3D#m1!lPt*^n1p*Y6**u=s{UTg7`06SrGOzp8%bqY&hyd_BYtf|52we9Z3Rja{ue zd~x6TA^gnIeYMLg=F5-ccD}BC5z{$ZX01yn&+%dLeD-OsUQ0V|AQQAqFEj6=b_KHj z=w_Umze+kndLU+-uIZ8KF0Pk60(IP;I6zh^(n5wCgH}oz@Nro8;&rn9$k^-m`*ze; zLt?PQhk%mBa2i5|%=NUz)%O+cR{v8$F*DX3wpLVx@t}~XSgpQgH+?A0%obthuj(JN_-C$N6DA1td90dcn0`o`{91VX5!q~B~fsI*+xDeJJ zgof+28voFY$UIFH-BZT%5(l-?!Bs>=_C}3&5-S$c=eX?@+VVJi-V+$%k_QAJzEY5p z4;(B(_oQoC=2!+>sknQq;uI#KQS(M597sccY?tc4HDO~0$!PQAW0R4EgG24l%liAi zlBtkYNVeFq_GL{!`AIY0k|1i6zrqr==}Kw`OPxU{Bx7Zhr&H!a)BiZ2Q5*(U93DV} zEn>bA2hs3+it&pwd?Ag9^aeI6gBvPE_+{C(nfFc5i9vyc#x6!<5?DZ|Zd?S?<`5*x zSJGTW*BX|K$HdfvHp9p6C08-y>QREB3_zB7P_?(WbHmM9flSgsy4!$qs)NwOYR&JU z+pnO<^pQ0sJ;lb^+Y-jXTXfGXTWu8YB%a7_@wc7(Z0N+ENDd+ebcF%vP5?J>~?$AV$T2qZ!jNEar1CwaiuSIe_)4tA;0!el5B zH4lrkV(%R2!rfC~)B-aG{y^h=6IYKtT5RCq8V&?eB~Ne*f)2Uix=+{*rjrGiRo96Z zfR%gSiOD+WpFk#LE{?^8Dn)o3P;mzQvNEhv_DVihmY)NFPu`D)?{mgRltU24Okqk$ zphJ}?>Ox@Rb3%Petq<_hJ6~6z;kt2HuLpFO#h08)H_wtxp8+F29$O3#-FNm$kk5QA zf3dR{7IBwZYdkU7d1O)ZL%76%!m2)uJv%{Cn^YtrQrwyhK`#|#VCwKq;nDkJoe--H zskvlUvLq0gnNeUYEoe(FkJTB+*xMq8%mP`JHJ+RViaK-)3sRj5-cWx*$pNC2LtzRh zTB^Fc*qmjgSAk`!q~>d?A*TPp(*{mEW$3hpxqXx1#6+cT4gm27>?M^YIfp(yqK3b@ z$ql~w)Q0@6qw?z%{{9?0h4xm)s<-nYW4P}=1Z#vnk&*?&ZaMJ~)jqvGDs~3~CVZ-W z<$^wDP2L|G&yC;9kn)z<7|li!lZsBXFHhI}=c`YfmO!lR_U$A0Fb1@3ODVK_J}?w! z0)ZD&a3K%*0uhQ|H!4MZ_{dA3jkXLdiMypW8?S$aG{-z$b zaw(|y6yzuy@9pHc;?1(jj%6)99*_TQ+#5=(kjvRLtHa!yY#TGW?rBlevI4#fOp8L~ zMZH}Z)qych3KP>ep-*@|K7LB)eMG3&i1VPE?@)B zBk>UwE8*e%yyT{D0;@&kR)Tv1K9T+pMp#SZj)ZfhZV6Q*s8|jPTzba@cAz4Kb+?1H zLN5#8N?t|#h$0Dw{GEvO%dOWo#?DGWiEBfooNq%w~?wad?~ z1KdcGUK)MZ%YIr%gq2e3Vk8?KEpqcI;uT+<`*rKa09O>7zSDzwSRph-F|3n=`c%2H z-a$klsbKzpK%D}FfCS^=OldqpYhN~oCIf|&&yYZiF^s#geaP#vY&=rEHs^d_R9aPah@R;2tD@Z&Qzz%+RQLKi6nK5RssxEiysf z-opsHv!Y~Zk>sN>W^c`7PFmMkmA)j-h4%{Si&m2nr7`F28mb>Vj2uyD1tg*45O= z{GqEhAb%eE14LI$OhyYsxH7e2S!o0&hd3Ijp}>t{B1KngO_Hi1(_zJ;Pq!z7u8*_F zP;TP`9b&x4LRxzRYQsaFp+-ThQJEXWO=@HyRm6mC3xNrrPK-?aEGmUEkBRxPU?Yc0 zg2SXjVFKx#)eC!gue$J2Wi$oIti}4`)1~K(8nn@=OUQBoK zP4hY(?I(OxF@ZIK5g;wtPh0Q_eb5aQN+-%~(r5Z&_-5$j50b+EBhjGC$b#AfMj)z_ zA-djkm3mDX?H%bEZlnIkJ<>c9xbA_%5qGL`v!oyGG`tW@wqK{NFU|zPcr9Qv0ToNa z?SUbo@LS+S2?_Bd*!{PvwNjVxxmWa15!iL8JGW0VyP!$DRKFx);etn&XmJ{_qotaZ z23dlEJy1<2D5i$=q?Rnpo;)5CU*uRGD+^L*ebN|GlVW;7rihCd2{uVcNv9S+(IPT~ zqcou+!d`aN8*#~arJ(_FDg=@j3HgYM|Im=ZFO%`ICOpWgroR&JFJOwJj! zH1lIoc=RA~N6B3S4RS{CQ4YeTSQG-a<+5}sJ8!+3xfYA9XO_B%mkvzeT%kY>kqqq_ zo7z2n*|Cq4S*V<4@G(M~yU}h3VW-d%vZl}y>kYT@_~v6SW9zXQO?9V(g^WivTJ`eG zd3km_9RV|(K=mq8u z3_5UIS^zHV|ORJf=f zV^y9z0?puYOn#<)G*%cbGC?q9o*qq-mS8A28sZ;9V*y$XxLzTe$IqsQS>k(s)ody5wD zP2S{RcL2VM{l-|O`i$hyxa8Wu=u#y~s94V@;?>|1(booL`9Ix5NtyjtSI0G zvX(UM-clB-oXD}>1E%W4=`iCx;hw|wRZ9>*jOtU%gqT9qB6g>$47~SE<8o%o-u1YY zIsg}>%XesL$5Kl`28OcYY(w2eoRC#cx3#c!%Oq@>z|@C}*r6UVwh)b+l_T^^HqrOc zU#2iZZ6klBCM9uwqBjk&-d7jJbdqVZ8BpnuSp~_wQ$BZ?F|t6d_RDc!+(cdxbs28y zmu{xm;2pg}EHB_4f0dJA-8DmbYwPZftoKORHSrv^w&7F(Jsos-DJ31y9{5cq)5dVg zUe*@u1=B}n9`)Mr_e$MQi@O&T1bFbC9m`9c`{;U4^-T|6Z~t0G%mLQ|J`bd=0RW#2 zG-I|Av_4<^J;MGn0z~Rbr|Kbui`#=(2P45Cmu}Dd+ABkYA{>9IMOOBr8)bLk!C*_@7kEc`JU?wpEd`-wFN^-@7a7qMm5c7xxPB*9!KCF~ryq^s#L8Wq zAKlJ`zc(?`;q_fFfAZKJu!&0XFpEEnl{{^N8S@?bYeMSw}NO>u*WMBSYev|`w zEr)U>N5fj)$eViHADzpwoXAQ2xgN?%|BIZ;>D9Qd<@C>yynmIS<)8A4{3`$YZ$@FS z57~9)+jq_Hq59%@@5SD4K=t+Wb*LIesM29i`|qG?zJ=4eK^Qd<)Qe zfQ!Jo9M`>RJqAVtIjAR-0@6)JX3(2l0Tp1eh(X*0gYDg&qvK;>u)h`pn;k2~_#+5Z z_t1aUtzIlR)_-p^*ZQO7T)nf~X$==U9rw;Y*3&_KF>UH&S_NR9jRvD3%IoVM`ysC` z>)|;;Sbw_h4aha=5AJy}n0x79?x63>(~B zHz@kB-EOP3+P#&%3E6t`@wzv?YBqcJM%wMUcHJM|P8QX+o2b2Ww7=Yw&N7C&({nS!xOOR>JxQ>P_@x zsHX+g+u?aVo}7)wHSlG0SFqhE$-R7eu)Fj2mw$u3{nzwM$QpE`6I=Xs$D&A9&jDW8 z`_&xWY7Me(VbfP_WKVAq^^uZBH(wcm1+DZQp?Y_CHahPQFR^O>;sWtuNWZ>+P{tQt zxU-}=zmru=Al2>Zl$+EELqF+FYW^X9xeaJ$GEOf|g#RA&Hx##cWB7bE@ z+3)Dbmh!gc9Ur`a%I9~OwD8u2clrLSbm=!6nO7~WVG1u>co&N(SK6+OyZG=me9^=E z^3Eopf8faPvS#@18gA_xvG{##9KWnl%tQZ?@*Uo$t$<$eqr8c-y=?|PWPDPADc?E1 z#a@MV?3HP7DOl(K2>2!rX0|`e&KA^nI>B}i$FI?4C(oWO44S_If91bwm!ZK369O|e zm--zEB7Zhr3NKS>dSxIoGd2n@S0Gz4ATuB_T?#K!Z*O!UGBYzEFd$M2FG+4@Zy+)= zG$1e_QVK6gL?Bx{MKw4?FhnvpL@+}$I50CbGB`vtGe$K;Ha0XwGek8wJ|H|rH8?~t zL^3x-FhesqFf%kVI7BluMm0n>HZ(*tL^U`*T?`5@Ol59obZ8(pH#d`E0x5qb(@Shk zQ4|K?^`HCLr?=%+U#g0}wN=lSdKC5OyQr%uT5lbfq(MVMNF(T|6NyL+L_&yJBaSo% ztw9qpBT`8R5a;Ce%X#Jeb$P zUMxnUu;>kqEMs&e4vRm~NE(0fVg8t6I!VA11=^8MmasREWWbUev{1~LB=cc8KeTrN z$%N$>DrS=`*rGDUT#^GT>{VPy@?fQ1ii=1-ta?z7FJW9v3ShN6HKJn_!s@FO^<$R8 zw(8(PA>mU3ZPWRRU`>C*Z`D(y9i^lM){&)HPRd}ZZattB_Whm~mXm)9*vE^CRiqL& z^H6aGsfK;Kq_~pQ0ORKsSCdu1+joj<$r|8&hTc)eSWDIcA7>5tc13gbWId?^KBv^% zNHzdpY7E{$k9wQQCU_T~hP~m}>NSup@P_98nWc=|$X0mQYt<`<_iIwajbuB#ubqlJ z$qslw9~&Zr3H5f9U5I~NoZHb%nh?2K6^`6_plm8vJbJ5RM>Nu)k~56h$lwE-cX); z-Q)n`SLzI|ZbrRB;ql|&0?;P#(1q~%R(!6Sg{n^KID2;AAdig6NyJ6EL0D;fBNw=qZ% zUc?}S@TLU3e!+aW{<-^+gnKrmDidz{m#PKu>prQMc09ka5 zWNX?)yb(lRoZmbz|K}M#`X?XGh||Luxtx=pf75eZ#JStE2}KU>`PaQa4TiA!m;cL$ zGuk+l2;>shv(!nW*reFV)5Pq<_IfqTqa;?BH6LI*h&jBv44HjyS#Na1TzBvH#8eOi zf7_BwuV1q0V}=;xHSLv3wJ&V#Po~!*RR@;jx z4~z4Hd{t~i-K=2SMNH7QHZ6*lqi7KZHpxVZOH{bXZsQz>voOno^bwHQ+!!nXNgxe0 z)3TuO9C2V4sz|zuWI4ihkZtVle0-(sf9hkDC8dc4@pWl`i||296dvR}-Q!IoeU5As zA}5GqXOkk?O>vTB`CNIU_v?iYnQ)Me>3bsfqd~KPN~{v9B@njBCRDl`>S?mPF9PDK zvd7EfdlmkYG&^|XBzT8$vKB6`c-`MBi05Hk5!{l}U4fW|4>4fYIE965hplI7f4V#M z3?G8!{UTI}XB_5IC4H42NqU#5qbhvD&NR$ci(GG{pvwq-AF@f2GqFKRc;$azvqjn_ z-8|s~0|b0u3v4<-7Ds}6INm-1i1o2 zCO9ybc#53z^I+l+r(l0X82l%lf4@7h%SgrW${$^f{ur1pGyKuzSUL9Pnc99Hdfq@f z|M^fIn8@=6o;Mnws{^AkJnhWH1XQX#@pP!0HfqE4^ZJ>Ds}V2?qG8?9_>Wg_#XriE z^1n|;YUe7C7SXrh>5Q8sEp>HqlRTK2lo)sNm@v*E4x}oVz!^m@*_ubFe=UnnXRA4? z>8b{6K}cp~eXuXD1`63Ahn>Ws!k`Z@r57GlgyFgf!)unU3ehl)g4!UCO15UIQ?k5W zdGIO71C{blp+=3eJd9_L9aCOHr@U&6EtHopV{4Gzsg8&YPxtp}B7+k)ZuNx#2b$z< z)BKldu*tR@@H*QzZa<21f7N}GA5RGbz7z>VZf{H3=9^OFRucgSm+F_5u{I(U;<3#T5Kkkl9RB#rXhr2_FO%%XYRO~)=r*ho2$ikBv_ja3}YDuDsI z%ga+RuvH57WWRz6d_6x?og%AgF23my=?-#iwqd~~uKk|U;y&G~e+3|X1oS*0(q%x@ z+6{tj_2*urO{Xwd z{W(ikD;xI7c2|Plf9lIz_MqBVf(O{^sWIxh$$)XsMISJiC(Wz1q!$%`1Pds${tx^O zRD@IHPz|bMwf9n#9jNxop{^;d-=xw?(mOfOFjXTQ!xdoveK>R-g4kfTIAnRDToX>*Oj&-|!pJ?lsb)Hy>uXa+pzEI8pcB^QlPcUW}9^$+42#N4Ddd z*Pg$lOk2w8QaD&VW|0;%w-DjHdzhP63}6Ly)&aM8HR2*j=iA;@JBHoo!fu`8$T95h zDeRJC*!>T}E;)wX{qS|6R1pNK7#9?=0`Yeg$)8S!{>eY9Sik&}*c9jiM3cc4rV9C( zSouk;FSGEalW`VM0hE)%7A1e$jeK3{o!--jS6e=>JcIt>apoSfggo^k9pK$~(ZtZ^oNOOeo;V92A zp%oK`u-e)68~aEah5)KLgCHovxL?I2EasJG*thjs@#b>_(uk145 zvkDk!1ecwI11f)YS4)%IHVnS!SM06yOzh}sN$n}`riY}Hai@oL4_t|Bb0SL~lG?=m z^~H;_yyKn(f*=Thzz68f?!~JQS$&tLo2D$YyWQhmR;8P5mfmgidXweF-LAX)rr!Sk z`p@0_ud8*QZB@Fu-~I9GLwz zag{2kPY2J&UHi0d(oLO|WL%Nu;?wzIwazMKoHy;{Y*@kK4BE2V*W|ed~{*6f*^k<>dPQ{{M4?%tOI$GT>Eew$*$St zBv<-$aw9w_un)|k3*bvOz}K0RGv35V(;@!&vk&ITGzNLOWkeJo; z4}{aUx@XSO=mDN-=|B}90Uxc|Dl@dv7iQQ2-ub8@XF=5vd1Uj*D^49ChIrERT9lT` zbo+nEqg+}ZA}b-*+ag!*pHQ!nTeKW8+Vy8v6j}4>9-sNfgQQK9P(s#;GCxmJ7MKNj zl|VY-Jx}hLG z^)AZ78h^|B`580xnQ#Ga`p)a%4A)wcveJKy0)p9v+doirbRyj9fe9%bUU(`XKDW4u zqPo-}Do@ixZ~eh^Q5D0=)e${~!{}~$!-RDig3_@Iqf(gHiMTpe26|5Wx{_x z7iB6wGm~xx-nT5fM_=j;U8~hN^&RhEsyZg;$H0>Sx5hamQUngbCHr74$&V!GtBdXe zhc8Vy6%jGruj@&* z;~>Hrst1NkV2lD(7)Rz{LT^aV^G5ob++Bc0)u@m1zDR3lguvp5*M(Q(U~7MFTeNr8 zwvglP(8@t@^ejiCuJJJtmH-L3Z}$VC1j>#qc>x|^nx6+f`StBVAXs+vSHOr28Xmq& zk)@Yz2s9WsgE@jHFvS?$z3Qk`QMem;)6xup!~npnp-iHFNDYITQ52U;uRsU1jHe)V zhnsw1q8_KdKi_&(wqZH~(1U*=R1)G*4q=Ec97!l>QJu%Y<`gPQvH2{e9tuPy*SS(l z|3L}fpY!TUE4O#VijFyRFTYV@@ZJ_7tEf2IamDVLn!pS&A^N7yAQK7AK9)KG|;4J)s}U;h4yy9tm^by4gI@*SvqmT%kBa3-%i{ zCxgBtd$C>7f@YGu0RYVJWxMwyQ_^BsU{(TF67=pWPr? zRnv?QYlh#Kx7?7( z0CyLLMXZ6{Hg5Munh$@t`Wxa)Q9(k+mSw?kj#WUOI8H3QcN^TjHl zq#5L@?WaIplg`PH0?rUH%)T@JWP_-ZOeL}BZ$rZpqW3cRb-w6*nd-)yR!{gZK=*@2 z_$$J4Dsk$8N8k%##h^y$g$2RcRzhfA`zUT$!zJrr!GBdHwOxPaNXetQThM7 zz?oP6$S?rpV5qZRMz&kIWCNy2RmC)c%1jgH9H3iyX32Fa%XFLk(^_Q zwLag%x@-6m>wEdvt@tMZBU3l(Z>n|V`j(r|%?7_5d@pxpP0ihfIx?YxFnJiQmh%vp zO|xkOnlhdf*vp*Z9}x>xTr(l1r*6)YH?`)9>#2_2I+EukmgXMeBUCi5Cxt zMHb_itas7kp;|l!?J~}Su^H?zR%W?Ml04`S_@-e{_kQrd5S#=>R|#?)Y-4{eqri4Y z!3=-35x{iBYrvkf#tW|Lmn$I4Vlc|UcGt&n-Jiu^`>tpN{r7SgL!QpKVvm~!VtE$A zFU3&o3vZTB4}UDe#R^*FVJ2#@d~u!w&=a&MM?dtfz%TEa5_&LxfGVVBm_jJ)1;58< z7nrhdjbdzfFon1K#;ljCG~Nb(+156Nlih#H{u4&qk}NqLD4d0`dRD&9tlmh!6X_c@ zPn-nclA5MsyT@tpS{r9%$EztVn+k}|up+NZ2->^n>B!#pE6Ccr7KSY+tT>QQjjn)? z8o@J@9Wlv>iO@K6a>lDa**#u1iUv~LQ2^A?95hiZ4vwPW=!#SA1@~%)S|FIL0Y85T zpj#Ym_?%E{B?w8K!HRMxZ_0%E+R!9+BYL#8IRI z#=&2vB-QTe6R#8UaTHXhh4O=gY=UUbP>UlfFBrBg0fQ;Ylyzsnk485k-XKtk$P^BC zu*aDn(!eWt6GCrz+xFyo;{LK^z3zX=d=ix%d%i0Xr6BtFHF=Z$QIfB-Bwwsj;NnD1 zM(cRFilTTEd^(*PTe8Ptqiholy?j6SEp~{la?P)~t}blD^)|_7w(AIt!!QiKb%R@O z!l0+WYAp2zEcga|=NpK^2<~@2!(qg?zO7`*76wSy>7>RdHX4Pxew)F#4$6P1%@|47 z@#ZiTCE=fCJw+?Qupj}O!2CdL6|L>K*b(Msq}1U;(ilN;;7UBxQeBoJQVKshI!Vr2 zv9wq2D$g3D&YKc+bEVs*>PnQ~5s5_!obR+=?npYR1Dp_8b6^p0iFqu#!co9vlGz;k zJJFuLM?)$MN=v#!fm#`AvJ!v!bmwVwlT3<1+TJO{=ErQUc)JP8OVnV!4aly9cjh=Y z8fCO56OP_^%K2y$JV;K^iK8PAuxDslI3p*XJ5jDvyx5<>w|8#TvFm#o^ZA-|m(MXk zFk6*?*{X4lxb&K3RE3+fP(bp-*a*y_!{=xBu1+<()+4c$%AfsUTJnEvoI{Bk(sP-o zD~d@L1OF(q&cK0p6p-7t;f>Oe^M^(6W^<;T7ldSQ5>Sk&VNS7Bf8%WwJVwbA36v$l zVm&ryv4@B&O?ou7JKd} zJnw11)ue`GraMxS`tZNU`~nJVmz#tkTlHo<>>no3Pha0u3t1D&l6XYt0n+2H?-Evw2mc( zM$f+Q8zohNlAX2^I&CWftRkqYxAy0S%{0Bg9a`?l&as4Pc``Y)(CCqxeA^d4LANjp z4(3$=?&8x7$_Ubo0IG@{Ab`28)8=(s4|NDtPQZ4}-nyC75-}B;aMap&U5tgNPzUjk6VwavA zMQa3gD10qC(H&lp*RgbY(6B(8+xQ6YLMD&-tfOK3tiAtqcMVX={H}iW3UK$yplu?iKXGocxriTn->3 zj~#;R<$D=1`DG}5wv#<+E&%X$e9;YkKfWwgTC8O(HhLLN9qW5fitzngBG$LW7kUDw zGG+e1mqVOH>o7}^)#*A;r#Bx_e)#R-!@s${z77gyZe(+Ga%Ev{3T19&Z(?c+G&UeG zAa9d_zw{WYpG|48}q^oj}tw)q{#fo=bPL-lVFWEEG z5r-V{A$jxl!K+Emh)I0d%M5@98$bgMpz*`Q&3A8-Vi(6@nPtiDVZV!`Vy6=o7V++( z-hBujj`sF0DRfYEr&HH5ytihYdOI-I?fKt~qp5Ba9eiT^(0`lrQFsR1f59c|(X;8z zDA;-G&j7(r1MgV`uAQZx8)w?euJ;UYKR*0*cc=2*9jIDHdZnu>%AoCNyBc>>up4TK zbkoW|Yg(YDh|{hNj!1qwyUH}p6O(#-23u{5`j5Qf=p_wL!)Q-T97eK;b~&1nA=g&T zG%GTH_jxkS9e-I7i46tY;6_KxWenQZ2qeMS$?-JZVO}MhkgI8!%M61ZWf6~$z9e}- zXzhsVe?{xM{*(WL7lG@EA(T@DwjT}e0BarpS5J?mgY5@fO}(S-F23ppiivQ`s=uuq zlBO9cpQd?W7@fU*8)JmviVq%KHqFp6bma;pk%vVEGJLx4C3VLVziQ8d>p=V*2geeGQkYrBl){G zs$8e8Bo5;w0cK*VZZoi<{~nUo2!RCrH?JRVKHtQ^5bfe!oR(ox?6M*Xvs~?})6IvE z(XNIykQb`5*nK6=(@uq1p#f@k_cwpP`2ln0rGMZ!Q(>BG+DpM+B!7UQLKWqq$J)G|W8WygkB#SHm1cekbBjvJ6|flQ3c|+yAaT99Cn7QI5??SFv~rONPpVpWB%k zwCE3l(XlJriy6*{*0|SR+Kp9zh;(1#5td#@QI&vweWAGKtKcLzERbq}g$w#HYk#pm zDy*G-Hyw_GTo!5!+`L#-K((sUiaSuEt+Ym*wZRmYXB)*IzPxH7k+itDpuPo2X3LJM zYg=2%(WP>9@IUu<0MACz0{_+S;6~FhacvM#}h&$g(oMg}?BZWK*g zuw_Hz*3zZQ3ckMCx9xJ~+g?~(^nV2EV(h>KvKF}5T2w2~gU4wUDs_R#=Vg{~%b>*= zmL0qf5b2$NQ_wqOt-0i%qv>mExlB);2ezkQTt!|4WSBVg88e;=;<}#P53V%TIGNGo zdhVp)(Bj}|1+$+gcRnr72hxXFeZ>2ub?~lblE3M)6=;ncY~EJNCV3i6lz)y0G-q&Z zWgZ*Lxc&XybdEv>F!Dcy>zAo%ZEqeyJIBo|9cW*Z=RiCV#mc2*3~4mbbmNEtx) zQ|m7?uni7Uwdv_u35!mo@#RS713>5aPtH9THHb=nSY4NJupy1YTuDsFVG=6P6H0gR z3NvzEO^v)Lp^M=Q76m`f?=5O=i1xOpR*N$&LX?pKc-M}!)ZtG(d4GelNN!t%@9x3L zXTRYCW}|DMw|W|;(4dp1KexbiTz@4FL2 zbgsxO%>(hCO(h^Xc_3Sm2~HX=&*^%yAhB`pBxjaaIka4=6Tp;72;f|mVum`JX&4>9 zlF*z?-mJI^i4y%ow|^MWt5>=lX+?2KqB>mpx;p)oa$OG@|8YA%L%?x~#`ya;mAyPI zmI#nFd@k~hADAF*Rykj`Qp+qrFVz;h&4A`8M=P%5Hyd&J@2&BPl$7vY9m3MpmFsLv zpAK85-2aR$|B!O^mv`^6w7q;O_}f?Se<834-v9WHX|L|@g@42qu)szPi?a|Z6%eP` z-}SO|>1BSiGrj%S)IzMzMH>9!#v^l?|KWiI^A;K~olpfyn>{bk2rXY45QNzS$(-(p zhK(PC^P3rwO()O-#ts59`FLUsDiY7X8X@>Z1NYl{@pce!Wx*1#8x_?L=inKjWN?UO zzPFOq6R6B&X@6GE+h@xSN~lwi<^~rG|3R1UuxB9B88qeDoiH_$NI2^vMZyzYNYlhj zu86^ExqV4oyT@fn0Hk~xyqd_~ltP~Vj}CKDqJ3Tg+R+`b%-{K;*}m&f*b{S>%DJje ze7h0#$tPFAszVxh5o)z<_6(bWx!8A9+}R{}u57>D)kse{$>B{ z`72Rx(ll<0LTvVjji}PN6zQhS)3_>&&A!{bk6ylh@z4JL?RJ-mG7{U5``@3x$`;pl zqKF%j!8ec7q@rtY@Be&%v2F5bfB!37t%~U1ZI(uVzy0GKiCAjhrCAl1O}*J=SzNP- zzoglUDtd(bc@@dYpR5~kQ%BNtM0ILZ(zVEUQgjL{iTkhkqlmv#+ms2tJ#Tlo=;+8g zx}?5&WxAOvy_X=hjy}`==;Zmt;^C7<+JMBC#ru=e4()>Xm*9tgEN+sTjQB*#j@lS) zj>w)zG6*W3C@CWElp5phF0Y$t58_Xn8DE~{*(*o4o%*WP!^ooOb5IY&X%9r87lozz zkffP)eq1UCj>lPGFTLV>cD@g~(V%2$&I9_;y3Yg$3Ii;{H8=@wBGOSA<)qiv#A~2Q z(<;vMe6s_r0Xs>57jX){O+^vCF$fp$P;MG^Q;UKKNI@5Te`8&^yy#j5SDlh7z-KN5 zsk+?GZeB|J;Gv3q3)@f5%8r)ao^?yh)66v>O6!19*oAPOWZx@uRLtQ4k6;UJ&JaEV zW*P-}GyO32J*#j1Bzyf`?$!~-4^0FGI{_Hl;XHYHJs6dLGIVrsb|9K00)*W<<#j82 z=JgOoN(rm!MF>IozF`^sAWz9yi|7vN*I)z7!iC{wkW6d%k(8<$olr-LGs>bf`T)n0 zAYF2{IwtlOw-2=81a_^W_sXN9144fpX##r*NzJ^ir_8=yK3E5#Yx(B;`XgEm1?vS7 zIHO9)4mnzX!}1PPEy|zfhYix(c5*7n7IhN!V4X%&aRV*}jt1jEgb9j{>mNgLz=J`N zi=@%xFcJ;zLSFVbl5W!ratI2>EbulK$f;Q~Ag{B-Ztd0DP^tAH29SP(8f>f4O)KnpI1ZzsLPRRcYQ zUjzX&?VJcGD3n1GB;5$^pOwu*&eCB?=pmv+0Jz<)1>(IZKcdhISh9e~wBX2=Qum^I;hKc=-8C~x$ejzdq*c!;fa0hxb!fn=uhqUpt*kyLDX86Tt3G_R8riBbG zC&{A`LtBUPn&c!mFfOWk_5@_e+BrGEgQTC~g~R}ESOpBjX=o>P^iH)`Q6d(!==9is zPUEOppd>0*-~X9Dkh#DFme@TD=z!7?iN`IXPE?1G(-K7wXafz0^~^^07MJphw1w$K zvM?QuD=LN*oLvoriz3d5dNpjNN=Yha)MO~B>e(>Zj&s-20JXeb&RC17@n-hT_SU6K|1iCrOUrH!VW5ZNLMvunPF5hjKU$~#X`rp< zo1YC;Q|8h$clUK$V4ZIj^?s41aZ+I_G;v+C^9wwBcE5l2A5QH$ahHKu2NRRGJrw~p zlMzNKe{C4cZreEU-mmac0czEHS<*2rnzoA#HrVEt=0Hod&5a%|DK&M!e&F{cu zMpQ(zqM-wB6Sc0T7ngfX1N*J&lF)y{CoLs#+nwac(Su&t?ux5 ze-M6qx$Hu}LiDp>fZ@3Qv58Xa;6$=10;iQ_$#|_!z+SOO81rlfg3trTF|O61IZ0Tf zQQ|VV?)rgTh}*{tN8{1AY&|Qq53y8FD2C?M==72b991zGv(k;WY5?<-S90-69?iT0 zg#N%ooIWxHA?MI$1=$RFb@F>5B60%TfAdyrI@6jz65O#5#W-*npNWeMdTP;^3pO8r^hKxGtY# z63Py|uygMLlgl zzDxr*PChTTfkL4QjP>4WMomsDd=WyrDar~-J3v0f+eg{%YTkN?;zzltk<_|`$dqy~c=&{OlV5y|s!lJiAmB1MZH84rtocSmg0FDbJe`$;x-11pB zHq#aw2C=?U0UxABcPz*{(>?Q6N`t;zbGTpv;Lfg*I7RFe6a9OA`<{2%7g>O=hvL@p zYKjCB6i<9T@2shL_g2h;@TXCd!ZF?6Gwe@;FG&lsza&Tk3D3p~i7?q-Qr=+7*uDkI z6!M>cAUOpBw~W;=QW>Wue*`wWqc{BUpl#EV4MZ$_V&DQ31AiZ~N8zkpWzCf6h?-8C zZm*RyJE${*q}-f`s@J5!`n3xGLAZ96P`7HZrqXo(mVz9yjj{*5c2FbaF3Jsxi)_Qm znou2t95Hg%*9p0uX|gGJn4+Lc!poOJLI<2zj|vGA?2!KKuhL8TfBa&-IAzV_1j-7T z4=^kR01r_isM@${bdD+6mPmN=Nz=@E5&2+tP|PVs;D}8px_oI=f?o})|2CLNi~4M zy}wR5d>Hv{%%(3R?_zq`8i`B7t&bB&0~ znc|P2q$1_P?dSV%-x>EnEe}D_BRTlPO>!|#Znt5aL@Ov1VHu}j|YVw`xHKM}QfL$PELor{^f$r2GnL z<}JmO;sV#6!9%=xWXKm6ngLnR%U4n&veVBvscmQFJ)g=u;vJ8HU~VXQc>;4TwFas- zNQ3VPe^SjQPyM9g7=~gjL!o8_ry}jpZN|#F(*u_XDYU{`i2V?@5R1@&3>t$AhTI*P zWkjX3(vPO_bS$Zd6flwrMbjT}T3|FXM05K&+6ljYfg7U~Q%DzNUv41Z00Ac}AUb61 z73E%HK_x|VX!)WxtvYW>dQMB}uW`r!;=n_1e<8q%e;UkhQI60vXW^Qh^@ic=!58>2 z-$K5{lz!kXxq+8aGB0JkF5h%BqT1ml-T0%%Y^J;XI`VT=HBwfBHm(1VLW2|lbhDPl z;6K5TW5yQaNSaFejsj5yme?~mnNsdF-76+MC2*Ut^>fp5f55dYn^%n}4U;?tTB7-9 zf2pvPVUc+PoY;g-Jf}&+EK59*l&55~%EL0>L{u}wvdDofNlGc0OIM{~4t&=$GMo(2 z=UE(l?WbUrfy81iC8^J!WcC?^KM4V*?xzt1msbBADUopjlZrqJO2pZDF8tyF0B@$` z{+>T?5G}`LLFEtD+?ZATH3tnJm76fj6m!rc3G-6Szs0S0pYPxO4|c?u>XYb2DFHQ; zK{qLX7R!#?Ht@b*;ag>3?doMyKBh?)NP!|fxTmcTv_xA(C{asN>ukTiGaOPYCkh}y zoCoLq;2+0_-=Feom1Wz*ZkMl)mlez5E4Ed(IyS54egzB`)4K>(lYiRl3@M?T3_+@t|I!>1CC?j9f`4g(VO#zyY-BVZ8x^wbIu>1>KR0 ze%5g(9^t$zlbc*;Aoq^`GKx{q(OU=qu@~P5rHv0t6k)gPO?fyZ$5sXfH*{E=Z!-vg zbk9Ah$dg)AY-Eqo9Z78V9_um-u`bhDtN|c{Qi%2b^z$9r4d9LvorvPEK?c!VZd*b) zepXR_rz2ae4LDu|ccUR68B0E6nJ_4m1!vHva#x|nR?sm9!V=gB&|#f{pb>)i^aq2D zMh9N;!entI8fg7%rQ1ZWE&ZbQF$q|x? zo_O`43ee8YkA`9fa^Hbi6?jtO6)gp`u7WUMu`$4!{;$6Y;WYi zKtw&97@xj8p<`bO>DvY^&$G}H_tHtuLR)iX(G-?LMrt)S*tQ6f9dH<(obG#sw*&q& zpMDFMnzx>JvL?V%(TZkNP#b7l#*#066feV_DYd}+h-Mdwi1i*=jo{5v4H;1jNohu5 zG(>WkIetPA#s?byVT7QDeUaRMpt8j5N|nH1bP{TvAS>$NFi4X@xadFxbpfhuh#D2N zFa}jr+D73{Q#^q2GWK4m{bd{HholqcN}U8iFK%=Q{**=P`vxjAv<~5Jt@M+JAU?IU zmdzxq)=Ei>>L0N?cZuP(h@`%eZbrh^3Tjp0X}IG{c8?Znd>X|fjQsb1p;>`P+>T*( zvpD6m^m~})p@^VL2I83Yt_f?U4GX~vBQZmMU8t*ulwp&0_xh{3el~59=Zu|}Jh)$$ ztn?QwHHTD7ds3iuavYF;kHKG` z9hbci7(mmcBGVQeP~6~um?>e!csIrlHJ?d?A%ZV2_`jQlP_1dlFm_0u)>TG{2Lh*G zBVldG^XQ)=9zPqySSu_I(;jIt=yQF~S$U$YY&O7nHGF7^2$^-h-X~f91%t{s!LQPPxDhK2aTasff(Y)b z80j6XRP(l!41UH<8-_;#lLp5_u`khoS_)IC0TFVqVCZ0PBhL*P=mi7NIrxK&olmTC za_|oa!1R7<_UJ&<9)v)DQK8v(W}gRd?sddZ$mG9s>w~9 zh2IF@YWpjHYN!^Ap+ah2WZRULu*uVGTgK93NPGBveE1*3VL#NeOSY5(IWUt!Hz9YeJ23U+?2$}&t1JoIwMs10;~Wli;6DYTcI|LbKV5wpfbM0V0?`+QlCo95MW~X^z!grH91n_v1spKu4 za>bM{&V+cHC(^S?0(uBpkMq!>#-4|t(FmGzF17>#?{eGToH}CqP0YwN_LXXls>?d zUwt2g%vLY?&Rky#nf5=un%z@%*-ZrZvt=zBj zv{V|X-Rk4bFE`&Kid`P9n<_0zMWS>qSoQ?!f>%e+%3k80F4D3nqOO0xYL89}UB)H< zy(UFvX;m&u{>C@l|qn109`a`s23{ZP(L*!X+nS=r=)ny8fO9L-pLU5T$D!RRcd_*$?Jd1ns;onDo!E80mBvHt6Of;w)%!VTpaOseOv3~1Ks6MS0w@zRBc@TAU6`i%umQl=a?45!_alOEZua=Y?5} zyEvzTbLd{$3iNL-uZ7Pk;a-ymFLDO{wa*63mi5xg@Sy-OR}|kxea(ik zs5+rZb=h&{*bk080roiRPk=r(#gD=PxPq>4&s!MgQi=3S#MO1GTga0Fcv^oTI!}xB zty18fABQ!zDG(O6ciiaKW%AAhgOSank6}dBujSG0xp;*<5uYkJAj`7k-*!Jvs5A6V zZ^7Gu=s+1a1m?ZNUbyP!9fIz)EX*soO(-*3g#SF*CpXS`kyVBbXM+uA9J;V&3ST4* zyhwQTMUMm=321!y;IOwbtMh*nP#L0!Ix(2pn`gIozq5PF_~Nn?Ak-c)pMoD3hEb5I z`ojINJ&0>Lgd1q@h7Gj>z{C!nT)Vf-=*&!@f(v7cp6#xeCkf2^gXx58pAWmy^GkxJ z<_w0 z9RY>t6daJXNZ>nzky=XE1t^;{dnvusFGQAr*e&ypRUNVpf?Q@W;LB?cv&dRPGT@MMR*-9?1p^GDA1D=;u z;jF5-=e-K-)R;B$IEUXJ@CPaIp??*v;Vn0GFFZ|U$3CCcSB#vtP7Y>*_cti&_q@Fu z%>?FwvS=f;YoH#j6B3#JB3*|XHoH?Iamfo^;8 z0h^72>lOBFv6c{v;1DV540+MOAAwLlC`nx)(y~CZj(g)e$Go976@UFfX??)&fAq;o zU!)5PAy3kAjMm*e@%Xs4!=K@No=Mnc^(oGHh>FSzzc>6?6IA5yf=XcHOoa6k6P=Tf zn7|CvY?(T;Gcp2D?m@8zyu5M>DX-zpr3!dF!c)Ddr0-EGzUBW9pp)BQ3T19&b98cL zVQmU!Ze(v_Y6>_oAhUbu4b}lMlR-Bqe}!0CZ`?Kze$TJ)O93rlZ*(6;QJ|N5pat66 zKpvVr&=S2%SQ0m+6vz4Xor_wnE1NIZ-`~G^dz;o*NwRN>BE7nQysA?8 zW&1k0y6>+3iImg3o3yB-gC4b0lkRwGNB%1ORM9WyaAd-tyR?e5d$ev)V=J3~f3U-8 zp3HdQsekd49(d=onPjJ*AN-_7+&>xBGjY&^buYU*jrO~nJV~Qpb~j06cWE6x(@CHB zyzAYE``@nOs~gb0i7QtA`KUq7EKVXfk0TwA6D!2t!WmW6;#oLnwfr^Cs>nK~o`p;d&O~pOe{B9Zn-*1l>Sg7D4kw9e)a{Z;pL&h{T^mxfA>9mo zIq*%Ezu>4zNdBZ+8S2lc-g;w4@KsqR(fv^tf<`#*=p2Jiz$qF)X4S_mg+ z1{I{NCAN0F+0xq2!-)^dK+1{iwT1)izlOb8BR+-YM`tDU+A-z%h#spWfAnrUsJ`bV`^bbv7`ev>qM8EL@QykfH6}7GTb6MS2N21TPIuQ^W~mXkCWRcAluJGU z4V0TO?=cmUOB;akX#37HBP$OyQhqIM)YFpQ);;m+Vi7Q`6)=uzk`Sx{T|V(V9_6>p z;OoN``m(~9HDme6AVFq!BYwnE`a%re@5CP0;N?E{rw#t z@$*l-VQpW@Ackbc)9*o}ZaQw>!&~D#UV*xZ?zD0gk0a033CSrD- zxrZCj12_m?HFPUyJ9`2)Sm}&!Ev^YPYmrATTTY$~1aS~yYIP6~A(MtJTO=K;|KLT% zP`tXl=>4pYejRyPL-m98f&>cA4p7i4uL<)}*f9thv|^a4765@Wtw2+#IxkEQdasyk zQKy1b8G<)p<0ib5u@J^8q(?BXCi5sAn#hM!m+ip;9)ELiq}}tvxjs24MOUe;xSHW$ zv_c86xrLLR{y2kUC@)HML^rpT3}tX-S##lJ8eQZ{5*;E0xehTbiYB@<17%qc*s3|z z>LkLTRpK+;A7B`y1{mfA3Po9M8@;7D@;A*n@nOt~4}(>Dl|>r8K7$(tms&v;%|W4Da=XxtJ$a6cC1&82scI0(}^=5#v_t6Wm%sTLUtAM3`P-FQR$_ z@ujqf)`~SpR`W$)vaT*Iu1lg<$txU33gm=owR)gh`Qe)5Wdwy^`L4#A-2#AnFgBp*Jd$z%8G$0uQioOn z2H-(3>?DxNz2;fIAnDu(39A+=fHLNlk!{kJZ`iQz!eROCZPu*c48Wbo`!bW<%l7#` zg?~0ZhHCPM`fLXCg?sNJj{aPp20NH(CQ5R{=+|-54)Ozro#9-A;g4!k4@gs9D0dU! z2NDjN6}o)HP)*PG5MtKoZv`$xG|MpA3B)okof-Gi(4@dPi>N3;e@yYm1e5{|Y?yJ( zZl#=O+$`fh#%&;Us4A&Rdt@(^#3wm(x_>-dPjWCvM!QeDB8OV_syC515NKx9GU11I z(*W)*=2#vcDL^||de>yq84;#s((l5zdl}VW;O#@nfifm4Cu^QX*4ZkY*)i;qw^4=- zH8w8zJOE(E%3DE@3?lG$5vQXPc|XCkj#3xq0D#W}ds59)K&@2vpNkfOT zN-znJ3ywdI%;a_dD4V#|N*8p8k<*hi`V*uB;3IQ^F_@K}XWT0Uq1QpGe7!7bZyX@8 zzEp!lyiqMEIVylXa>p6*DKFuBet+*FjcYd$!?xa%!7GaN@7^0$q7r0A9!Vb{fv>=_ zNf;!VU^Jq^m-$pwc__6YB0T3eB7;qH1x+&{Jl&L>-h0nDz%qWA1GqDVP!o9;)WpdN zYjL*)c4-1oS7vZ7o%cR2;u|H5=>=oFPxB`5eX}L2*(Y%kI66C{vo<7UFn_EA+qeHK z2vkb8P!SZ*iX?E+J0D-gC%SLsa`X7YPT>NF{u}HZ9$`4Ax|=Tl%MePXO|s96Y^zbv z3x-I@1q7oU9;!z>_Z=_IUU(i@1%6*4;e3lk0)8>!5n7rIUYt9@j=X#oQ>5?;zbjx0 zn2HbX`SP^$t5H*4!AdLwM}JW;-Z#yn!`43>C#mG@xR`LA{wra+YeOA5X!=hk1I61cF1o5tw*-1%H?xV4(!VhfAP!VHd9M9mhcSH zyWb`$xavLa=<(maqtQgc_0M4sAk$4Kdk`3iS;)5EfrOxj(`&i}Xl4##?u{oc|s z1ZoKl`d?C@MQ$222%4~b0btF6f^RDc<>RF1T=WxVAWh9Im0o{GaFwUNx8-sfR0A$u zc@Ua5-F_bw4hUMWQA93#R%6v66h)}Bz+K8c!(xY)D6U?#$JNt)M{IXl3yy9;C)vMy zoz1!Jps6_B5Z6FwHKro5E~+N|Jf6%G-TZcv%w>6aq&$4CXFp&zRbM@@!M$k1tGLNt zTPn3Ty}qs4W2dQ|(#I%@QJNy1%c<;R@X;X?6>DpG1yq=oNc-ta;b6Z}j&#iTx>)-e zWT?~%6?+~!_T*q}VU@_n5*;OdRlRtSA)+N=Dzvq^izGq>kRHgj~ z5$#0D%PVmE^v6N@fNf1+3IcmVWcnxDN1}OL`*N{!i^F{IFh%1z+qi-PH-BMx5ufxg z3Y}wh6<|8yPJYFff<1o>hXMHJnU#sYItl!iW@_K#8d@+bNGM0D=~l%wru_3+d}?2A zCzlcEiU-$U6E5jahI2JrMPE^p=hv)Si>c6r$<4fix;y!%uxiV>tUyr;_*`zi-31D? zs%=*0vyTnyG8ib7BYdg{$i=ffK_qwIA64Fq`anvtP(#`BPSGl4-k8Z~G7^wxpicxh zqr9{s&Ys+Ipk896)hFeob8H4IHDWP8D-g%z-5@MuDp3)|Xcd~BIhkQm*lp*`LDWLB zPTHHyzXG*Stt9n%Mp5C{M~CD!M)t}%9BQQ!_(~m@jn}VGbS3?AzmPO;d6?L85s~E1 zGhk+0am>s+v!ZZda_=tKB~^O*pQM@>&L;K)C?lk-}BIzw(r#hv~=25u+@N zy2Bx->t6Sk%0cP-&=t%WcY0AvdEu)lh|)chePY4n3#n-9!w>d$RNTNU!jEg|2DczYCYcr_%Bb^*pQ&vGR2AiCdy3Q9 z{w+d!TT3<;hmC0hZClfOz40&k9OFIt$vej@)`f#+S}T3oHB-4J{KiLZbB3cYJ~q+c zH|U%7xNzl!v%)n)8%JENLrx8j)PIMC_!#gbGWr!M@6-|Z6PlyP1euUi{XjG_z(`et zxl6ieR?VpXs}iswPxn;pf!b-@pj1bUsj-bAG`hKcpkB8Eq}4YIefg(agKj~m(K-qr z-!V%Hon3WAjBbVS0Gmht_SD=sOgoJm64J3%J~8k!Qf}CS)<1z5a1kOsbE@Q=5TG!cN=q&2DRJI?NS(-Ti)ybjK@o1H-$0bA;4bMa9XR@_YrQoZ3cM@K+9|A+XIQOR{yJ=R>VtxC8?V+n;ps!>*S7Rx~%EbqH6JeVK$swzx2u! zynUn2u@`nH8mPr1K|X5ZpFuCw`E2((>uR*hY|ws~yQgHkV>_Ttt{b?9;T59t7|DQ7 zn4sZ~yt{4=1@Vb&HnuTeveYsV9l^6vAWhe? zk1bK0E7Q1Tdbog-V4~gsUWFxm55`7!SP&ba@<4Ur2cz7#>y7`kGj#kwi1z87{a)N< zk5cU74_DPCg2643ktC6ZM%x*}dF3NXCpwLYN8AcikqyvWvK3{_fPG6b*r3GPdpTkg zP!W^J_ajv+W7^dGeuPb9j3J1>V#^#|Xs!xIpoJT7)e7rH_5be3NRbLg4`CoX(K#V_BP- za^Hl`WeE-3Sb>!t>DN)LGEjAgIkLCRDj`9HjSZejGAHKgBT5j`0P2`1N{~>hn2jRJ zek7GSR~?EAh=#iv2p+R?%_}te{=~*YZpRVDq=K$D2JAZZF^1T=_c{emY9cDmTZvbM zGD>Md0rgH#%4^N>d(D4e=BXI`9MnqcQLVz!-}wuquYFN2{jqB?FFB99LDz;HI+fn? zA}my9V@BmOd3?D_2R5QmP|zA2l%%KGa2_>REbio@uY9t|5UdD>!4*)c-ian*lNXx7 z{m&Kx|H|$CAudA@h+J!T_%?sO%;Is5e{zOfOY}%ASh(o)~gr z=Jf9Ryk%_skyB2yM}@9Yz1|ZGnV0X>kyOrs?8)Z0)?PG(4BuuCM)7qoy6FDu%Tj3? zJf(P8BZOI`g0RAg{EGN}EX(SZSsL0&z9ikf(6}Rjy1IZ+6^JRn{XlE=)U(CiDQ z-bW^B(WK~Kr{LKfyWhd$Ji>#OEbb@@ZvC{VfKW-tJ>ulPcRnwTa0yNqt9(Q=@KAZ$i+N3oM+BDK_A zCu%%L;D$DqIC1v<3uW1D%n^>^7&)mmCn=3Xv^jqyI|I-BwzyFKEtu8y5Ad@gvYv+Y z9JGGp3@v+1+y%pngQ!y`EXfPELhcIaa0CuARA0wHxl28!(4qfo&&-j+x-e3bLf2`S zr$p@b18RDX?hwYO>}tyS%H`Bt%hz`fqun5$v6OB3XE-H1;0w}!N=!kl8N z<<0_3V&Nq2El}3VpLWGb7*aQy^5k?E1c$-z*?G56I%V}|HA0C^kIK`WLgzA+@51xM zpX*)AM8Y`F)SuTLe@XKK(q9(jv~77G-UhD!*pi9%Ch>hH(%&(8e~IY4`?R3x%*Cnk z@uDPFNugB@sZHGyfcQN+AOhL zS*hx?7#}IV=|MQdySEsM8#c$XKe)VKmw|+Qi6sl&h@c`xGw| zWN}@i$@t#jyY$PZ5jsy=KtYT@;a(|n80wcLDit9eWpnRS0xs=TGpz??RWo3@p zJyu|V!qsF&30CyJGg|3jKMx$IRc!>Ooz=g^@XcRepcpkUn8{8MXyKgRU@e^9;Fj>f zG(#A$JqR;uGdfG5VFAh)O>WOHFCFCyOQ53LvHZGD6Wp6jp#WJj*0hvG$+?{8-MRtT zvR`|?y0q9M-S|nl;8x-*uYm@cmO3>23w43XhaSdUY}ZXNncqw>6V|v^eI7@TsF_rf z?@kJe-c4s?6k;&h_Wc>YP75TIr$N9S0EcGEiY?iQ^(Fq0E{uQA}3eO

Ni+fVB%V^2lOOTe*!DeF0WhVSb~aPB3L}732MbxY%0V;n)O<=y`)Wtwzaa*9O#* zuhHfLGPp>n-MRaXp4$ilM^7aweO}^>PN@qsOb>RptT38xO;&{6zimVKEGzX1EEHd< zm1_&_A)w_GWzKm-^+^Ds^Dw}iKGrJK2rnQ9&icuzEuNHnD{cofc3lm``N^7w!lgM= z#opb^6sjfO7wNc!w`Hl_>+3+IfLxd%e5MMg>SyW*3zYwqB0dY*taEJmP+?T}zw?t71&ZvoG*RW|!}BNV#4kn!VCGl??qsQIraeF7d@0=q9JIJL4z) zjugTNKaVTDB6QsOL5@OD>icegy++!RcM^ld0fS`*?X7AhN-?mpztUxFhcwBGibNa1 zi|DZ?5s1NpF3(k_Y)HzusqnSw`L+!Dwd%h19CQ&)zhW>SQm_N%PpU_N*g$m%<^Kst z5vNzA#XC2D8FOtT95TqS^d9}rS2PFv2s~idP}DVGT&(}uV@TiN1i%7C;uj_eL<2xz9w*)Qn=>hrhn9~> zCc)zdr14ctM3kEAfPPpjrDFP)1Jzu4_1AB@7cCuH0Z;1$>*Uw*b{SNAq@$c(G^Uy6 z*|&~Q<8`BDK~q;8(m9ycccV!BwkkuWWh_*j*-su{oo|;<(bwb*TyXSY{o-_D5;pHI zH~)ay9+hiMm{=;ellymJ(m1p~jF@p;s5#>okJ3+^bR(p$ntKHNJ)SQ2(RE7e(Vc%- zst+XH*_`xX>png>RdhT)U6bxRsg!&H-a8+ig?eIx$fJ|_466VFilDM4z1U}gfRrBC zlZtohlYNaFsdc3F@RVa>uy?cBj`l_Q4?|$^pQi`JDo|@oIL>l)C8=8bVhUQViFsE7 z>jtooMH}i57WVT1RCdjRD?awafCWAe{<#}YyCEz5kgjHSu()P+Cka)QipcEUl{BixZ!3ZqmD3&8NXO~fdf5Vh zkM{^BRTG2U?e|s9Ze+@}D41zH2Y-TcXa?Z7<%o3iKXeIik}=ke5(I3rwh3lhfcMMt zY)%or+Wjd;aqubbUmcmto%r>o0i_DWq@~u}`?mhs#mEA1>3zT436_V@LvaoFjmF!+ zf|^ul!sO=YA!`(m^&#fasc%K*z|qySjuL~|0%ImIhq}TA(dUrq1%p~UA!X2H@{~0i zql4LF8WlUS2IGPFG8LwDRy-i(yBAc-3V@d#^NB&r$ENd(DKww!D5hhD=RiZ%$M~sy z%O53o-TRc)9&GjY#~ZPL4E@d)ZWW{KUG~om?aEs&1jEbjJZ)_wkZYNrqv@6UfYgdE zk=*M{{d_HCj9s?uyI%ZSYXA4?T9m0S#=B;{Yp+yR|9yR-BRG{BA!q%ZJf1EI&mulL8f<~&v#T;C|qb;f(Hz%$xTU;r>tUps~~NhxlY*Y zm+Cbi!+;ETo7}AYjT@6IVoeZF1CzM^u{C62oIZ;I~`=hz~OopSxEm? z>`M=o+QgyEOOKpy>))r{0GC>Do+KVn{h>-LTJH_#(|!C>P^k1PV}qB-PUdN>0<~U^ zvAfVdsX&Ke5?D>)A3)eTrQqoVGK+M;@VO8!scrqhUHj3+5QL!_P1>pqO!o*g^iHEw z#P9E}>np1;e6W8f+=$CTty`!gk~Irx8!Vcp<)6eXWpR0%E`*N^K!(*&pT7!4ce#}s zx=>sPaQ!U00=~a3NO(M|BRcxi<|E$IRIU?r{U(a{E0<087rM#~;y@DL{oyGkK7qzF zrsLaKvEfX^8_r7gNoibE^WlN{qnM1}PU%(Uyv(aN4<>kJ=EPreT)RNwDkioC2`4>= z4}c4decTOrvOquSZKmXW8g$@X<-5Kwvc6kQDF^*ShOMPy?x={2X{qWjIkU{)VW?#7t~P|+MV+v>Hz_k!?D)fV<~+u-&?m$NAg2T zNtFAAjFgOy*z_k{VjrVew|Kni8KxYV`oEv9EAp)BCAk*(J`LoSmdch1N#bcs4GTbX zIrA!?l2Y547BB$w3ik`r(aZy5+`iAf2tOgu;YFyYH8<0VD*r_Xnm!`UyrmgdS~R~- zmK~uOn5G#E#J#_UTwjP3Sp*5)C|VOckr>)+A*iAtzrI1G1!m_Oc} z?z*-Y@>XZ@3KdS++&PSRu?xnRa$Ue>2r{}8N0B$r19z92PF8X=T?74yMb`so%(uta zxp4a5o|mGgutV+r99VzlRA=#JWmEn*)aC4!k-o0t6y=vYZLkryTNR-Cum_ZM4ogfR z&o7U!bGNv`QAvQcgWZCZHUvkL(9e<(D?PzXpumICqF-h_InyccnB{fx-PQxO#hb_p zG3-yRSq@B;;(4z97WB^a2k9er^QOzKGHqlhwfVKoGPb z;`*@MFyWRClc4M8@W=1?oZTX-%z+gv{5yUGQ#FXl7;@JFD^mQ&=4j5>DzMz|=~$(_ zt`y*6ynGI>krR2L)3fcGRoNzhBg&!JZ|zeeWLG~ZdkJfq_Otdt1$O(;ZC{4+TrTNX zU-7g<$mam0YUjIKRQj&4gzz#E@^+_ewAEbZjFa#a8Kv79BH;R#NFM1gfQzDq<%SR- z=y*Da`>u)j+1NGcR+p?jr9L5sNb;?g&|ZGIYX1aKTl#kV2YjSU3IWi;**IB~jlrma zZmPZZ>rC)n$F#mFh#K^xak*P-e;}JhnVX>8vE7yM2RSfhGs(fvw-w=2tG`+11gflf zU+x+}g8)i9;^6HV*n-+f}^34#Y*YqEA)#MtIjykDeZ$*9uSqc&bl?$#haw-;i z#iyLpVf~;D6*{5hl~-FZ<1j7nvqYE#j%SoM3KW<>{dOsO&pst~c3fIn-8Zb8M6Bs@ z!(K@{QF^B2p>d5NoCaK?@xYH2Fv9b+4M`V|pW-tl98!)Y*?ps@uPn)OO1l6#a_YfX zF;sU*U3qt!ike&8Tmh}}SJxG=GXy&eD+XK>tLkYbIXJVwMP)n||GX#F8J&CnauFC(y%NaYDe%Kg+uSe~G~!6p2{| z2=PN;NXjR0RY_X^0lRHU7U3qS16o7Smq+#kj6afK!5=i6+@}{C@Avw&#mMj?VJ(yi z=(XXm&n{{yiexjxKhg67mCuAbHHDV(J@KAVvRDcxbOJ&oxI^PS8dMx|5%)pnF!jHN z-5&tj{U74#C=vk5bWTYC7jQgKre_W_Zo=5rY08Lkya8NdV?+rvYW49-vt+hVH>e{a z$@gmh$!ZOc9XpOhC?zSuMaVi>NQE?jw3ob)PRKeo@7fZTUM+`<0X#7DuKHh?=~Cpk zr}j*O-ZjjF8J_OI=!!AAAo-}$nA$NcJsc7Q-(IV{|^qrIaHl6&mnS9l4{9NiLRx!}C z-`3g2?VvHdJh$CEQ&9O>t5v&`m{U*Gwtq^6I%>e7fs2IDjlTKmi2SRUv+C>I^*=p~ zo=z?aKubTD0<^+8Ib;)xd#84&4;S0a4J`$AkS}46K7_pq##Ingg^grRWo0nYBW_Hl9S`fu{2cAZyOk{nhbw{%12tIFt7Lw2-eQdJ5dL4Equgows@1r-8m%yU} z34|^5L^nRP4Q@in{RZW-l-ODsZLV2yb%vBKxztYzpE4TY=4;cYPUWhgx?QtfaI?;j zc;hiEOqDSn`t832(wN9R#J-O6LFuxG<}ot^kjQ_t`beDMe~pCS%vo}!^%rVE^cSs+ zpa%C-S$3~t@}9e5miGn^&FqaZSZW`g5roA-6&Lks@n1Zh4f*|Y2ytet+C(!yTsAv> zvYpkZ6zyvSa!nLfH@dG_I5|2+`^yIP=qy&LGRR=(NayjH=_8Ai%ZWL|ho0a?O2Z1? z#|HD0mE36qaz)bz32rram@Aie;vy(}XHLZ5o~bx3QDEurog8W59vBh#clO6#+2y6K z3mJE~evYEA+<`gRyr>DjYh|e$INb;2v)5q9uA8#XPM8uoD9d6RoZKV3(l}d<)KLJt-RR2`OH7!mkC|_;Ji3E%OSTNT6`)V2&7oY0uy9-ycx+XXD<@%$#1Y= z-jw0qc<<6BTB{t#wKNy=7*}a(h*K?8EQ^R@>+^`NiZotI!Yy#>u}-HI(C_RN#I5sJ z2m!u!yyB~Mi9!zPAPfi=bTmSX1RDw6B1~ok;Lr!?^@OyTm=kv70St;JnlCrF6gfyF zy4I(-)Q)?!J4j(D1ngsG{9F%hW38rT>!xn|6)0OLCZp*77|s3|BK&8$u6};7d`=il z>{NePX^$r$TX$7m0Fc8!C=`nkBM7c=7I@cId59aGIcXm>QcvC?y7Rl53}-LeFS@l4 zcsg9=HQ=`mz5hYA8z{0CspYtM)<)wRNwWuui0Qc3RZ~Wlh5gZpw39M|PQ_*NN?wEv z?E^s-Q)qJSjCgH--q>W?4-Q~-f5NO73uxJ0sa@hulhVuncP3$H&FSPW4j~PAH04*1 z)ou74kcz_r88O5bJMD-zE`@FJ#=}hjjAJa@$H5Or_mO99q96f+NUR{%tvR}B5?aLm zptlq&Q@7zIvJJzOSU>+wxU<$;jkhV}+*bL6Zw)1x#bitOQJ6oP9{i=n>z@c_` z`k%GD>e`xyMlX>eelo6;xj|ECzg?@&+;K>FXlm$EIcU!{uP2}@W;s)Q9AXQI?)|$p z4)MuAk!ox%nBvyt;L+Kv0{Yh`31^xZ!qVg~EcayUDUpEe87_I>Zi$q5SrK6{T&v+b zGt|hU`t5b%eI)YS`$mr1485kcKz+VpIqh$YEUzKCnU#{Q!Dq?vsN?EnFCyT^D%4+z z35>J{X;BDn+lha4f`!XkiUF|ttuSja}iI)FAFE-f+0w#S(27m$1&GsM7 z9~H1hQ`Tjj3-#L^_M}-!eFOxeSJIx4+bJc6axKwDRW}pg2nMySObUT$lVAs`MKoa*a`VqrE@zr zwE|x*NlY%w3AwbW4akfbld{)r$t1s?UWS->e2AAT=kcI*QSB@@_lKDax)hyce7BlA^6#+AWxy%zI29x2+r`U1gK#pEE(> zCZ{K~?xj`h@R{4P%mL;$&kALC+sf52ie#0jOa1kS>M5a#kxyBFCzVAuNVY5G(5+Kr zz!09LkU*3PiF40)m3!0cBSUMTlz{Rn;zbwFZ{`&1Q3ih?!)9o7>d+Qk$HX# zp)P-)WIsagF<@CRTp!cjltnMMU;z!NT9x7!q-Z5ago(u#l31<4gc z<@o&2=f2WT@Ap3O#xFlH zZ+mLs$BxgXyH#*UVBla26}Rj?)NCGzz?Hr+OghXqeJ$ZCBU6uzHw8X7KCCf1F@epk z_xjV~29Yq$BkuI=WK-@gt>iluv?@nTDc{=e%*0cHS z>rJoo^c>BHqzaeR7o_vZ^BdgmSXwnVgaArm1f%Mx=|hOPP3@)32|IE8mE^|83fKe3 z+k(?crHD$WF0x;R~-;rC^_8$ofq<{Guf&)*aghK%51S2_5%%^YW zB9yh8#7KWrS%NloGKLbvTw7K(N^7vD8r!-Ha!B91F@|(DEWP3?xeDM>0#+J>I{(mO zmG~KDU$t-9_4!eidR*kATtyRymqxA=KmPHY1}$pNaG8q`AL`A%?RMjjKR!%v?kq1E zxd9dX%Xz|uq6z!~v2|;IvYDiKABs?hmgQnBdi-7z6=^OuJA>!?`uboKLYwk)AN{wG zQbk9AUFkes2+h^XR2r(uusGPhLKJPwVU$VRaArIn7Z*C+1%;k%fHtv(ixii*e#owV zIpvSAIiM67!h5Br#Nl>qTplJ-f^i?)wBm(Hr@lS$J`J#5LLTRacBq?*H9lIlglwb% zkU$dNqIL00?WhVrlXAGFVD#Tu77O*Q-}TGyy!SB(U=RvtBeiNpL!bkvZ3{#z)V}Jp zUg&wSMR2JNUXwFx0t#^}p{ulNv$TvSN2Zoqf`Fb6CIZd4h!@o%6~3JPkmVDl6XoQz zTHM6zz9VqN=eTxI=P;+fP)}|Th;HJa^@-Z#0;M2;m_k+WUY12|tUJtee6oWFlbW-J z%gwdfn{_1>5pA0*6UqZZ+)@xgP&fI8i6(os)Qu_2RkX8%%ILEZ408Dz&Oh>?=$(); z77tttIayH}3qq=ziXWlhFVFlD_pNZ!f>F61oC6*hyM)STRg66_H`aX?yck)<%RRSx z-S`c=Iz+M1b4UKKSO7d0TA zd66%#I2emxilfDXf`M~~NQzg2a2IcUkcR62baiLX1`ezMF^Q1BlF9uEi7L~!RdWfh zQAYU%h^I+}){8GjLI5LHeAu+-Q9xKmuKcXL>6c#PY>wOCT^z~D7R--(%UGrQgeY#0 zGUT>RRYqf<(`5{D8x0Fs2q-9^SVx%R*stbay0hQ#c8BUC{>%CpD+4e=S^sO~6Z@Z8 zn*;g#Xp$2R%OMkJWZ%Q1a(qqu1sPW9>?086-w|P?>H>SS&(j`QaAVCP>s?aggJ3Je z;YiVqhaFFv!aRE$vi(XiX&%LFx9?IhCMcdTMD)wWb+!iaqWS92$-D6a@73~cRzu0e z2i5JxUmVNi5x*y;c?hBta<}Jz!@~`WZk0N!sa3>_Ug}#`9pMa{P)%m5ifzBnYH~$j z)oYcJFP0nHi4=__g#X#zKd;~ZJcy^*@jn|r_^P2|b$m7JjrwSn~8&<|_z3PJ3--Y9kv}#9Zp_3FE zOiQztjlPiI$h|M$u5C}lY7OO`?>2U}wJtce;YGHFLv|qqr2j?a$xZ?QCSHYOnvn@T z5Yj=;MWh!{fA8yf7 zu0JfPRQY2dJTiFzz{elnGe;7_RMH?A%;LuG2!5;Z1x%{?o4Pv?=9Ywn6lx6rjOj;I z5T=~+$}&(F9GC(|W!Tr~7qlW0Y!kyoDs}ZP36oV8w+ltT{IkIaSKj95Hz5d{d z2;`VDrp>C_?^KSPY^s20>Xm#WNt4f=DWMF{#E86p5(R=rp|E64SvtMQX`{vVapWY> z97VX6&V?aNnK5i6Zk3tcl;YIp*~b^iNtQbHqgFe|FQFaaXQe)|@twVT27F+oxZ`6P z{XGCb{Q}HGwF32Gp*y#Npr<6Cp8j z7Nc^+(&rz*(`L~cei;DEZyujpLm`(GPnO6}qMSr~(lu(>L|h0f0Rsbrq^1=I5BJa^ zS6!AyO>#v3VF61fRNc(2NDHSan>$hSH{nmkPVy*&He%5i;-c%49vHt}Vq_S`(9$?! zVgiUGDV+8Vdq9{gXPGNaIMnD= z0x@Ar+Y% zMVh3Bst`MoWZL#RRetNrii-s>z-nO6 zUSlh8>euBIdN|>@#kdnbDrRHnH(Sn8l0UQUIDOPJI72xFi&ft2$Su`rwG+xB(1(AI z!tVxl=be~OXiDq5B=v6kmm0KCSI+HsRDfoyoCEewmrzhvhtbk{s_e8f&q^>f&t->H~2Yw68NUzGrx-X#JvYe zhbcK65Rbp(0KcP;5ukX$NeHG-Q#20pFQ`f)M>KeeSkP(IfAW`(-KFCNRg&(KYoi4e z4PGhposQZ6Kw-X z{pFb>;v-M1RxA{Mhll2>CvuBipJdQx6DwVxOrc35B9_*3EInbxCi~4ep^*lAomb1I zs#6hM^8I4b0MNd)>zyExK`O|R_zF+770c+q5~kTIYWL$2pOf$YH%{JxMeD~W$`3Iv zaakZuB58jMX^W#D%ub#KoE${4#@x>%Km^KWNE5}LV6`s*hT-^Y!D?fgYv4qA(|q0s z*BQvMSN3lT3Z1P$aw($lEq#XV55Pb_d)j}T>ZHCWx9=q>^kinQ0zUV*rt4Mfds_#n z2m%Tz%X%4@Q?_{7-1GY7yt*HU9#N@AGr*msEGIXCE=z%!A{PN41*ct|jp^3V)98r3a}*=JHMbwgwoeU#F#J&#UPL%U38+uwNyhhn1n>g2QtJ9bbuo%ZhoNZ zays*1I7J8>_Z9Wp*wSDvaABmNvBsHVd={3pFdxje$!fZI6_nr9e-Cs6s6?XW9rqr+ zDk1imv{f)EdF7-WlXbw`w+A@*MX!FW6uLc2+02^S2^?ma4=k}>K|QeqREzaFPW>+& ziEvAu9cZ}M%F<10Ghtm5Y#@&AI6O3>hi=qgl9iz#5K*pOY>&t3+G+Y$t$1TEx9kK??b0+~28;@Z4NuzE>xK+2@<* zd@JmyDFw#z`EfXz3`Ib{CzF1TevLvIoLucg>~?ui5B^o2U%4VEry)rA?EW!mUEMX| zY5QV_$9de-EY9V{Oe>O;i;svWi@#oOF1|wgJxp--cKMCvtG{%OGz&i z(jbh!rz4ER94UvJ?Th>$=cSu$Z>(I8`g9K}FXm0X;&fMC05vcwe17hFdl$Riy<4}%dKxY9cgv3g(}lKZ z(7v87*Yrq3GTEpG+D})7R|refpyodCQ9FRpQvvgWfB1sNZr5I98^hytfwop6WkYd8 zK0uG2>dso&uh5wvPRq?*a|`x9dC(T^WUt^4-u;~Pbngdb)x!_h{qV)rMK4~$4s-o@ zS3h97pB{i1xXr#*M;dAUPg#7eK9d(+`h)-MH{fVznp~tMavky7pAf*`He)+B`Kc6l zJgMI;0I|j~pOf=_#`B%4ooV8rD94=B=dX6(M$N zW99_S{B8@eV8568mzRe2hL42Bgv{p$@Hy(J71h8R4Z{R_&w_1P5hKpTvMsfMjLjVq!@r#)KjK zzfcqtrUi=?mQljW*~OKZm4gMAQO?}n!qt+Pg*`14k|v!O3kC~FzN&|{f{=rb1O;^+ zSs!WFF#7rW(Oz0V%t4WH;PeYyK7PU44Y+x>egWJ{30@_Hk`zP3wtW#Nn3tlTd1Y=86A>g)Gy$>?b zOTv;CY*JN=yaKu=7Fwb_4y(5hnLyl;X#)zycfkmg1Ohw4XCOF;hQte+$zUJ~Is*d( zB>|Hi8bPVZsj8TSUI(s{C-S7Ahyx>HhgUJr^ zdD@>{73Rkv3ia)2q&zVGaHCP+!6pR_-?q1gzh^j)+X(yZ&6NxC5mn}K;Lne<88>|f z11 zfwF^cmwgE$*O8Lz(_UO0!5T5#3YOt8q7z$JPeAX;S&l$NybbzBT~?0mLg$_b;#f2z z3R>Z2=L{Co6T(4|`H^gE_Nr1%s4W`mC6KpSp^(5C8CoePb%=bolEzr_SrO9b&QmC3 zqtY6D4M+7p{9JVJ;=7p{VVCfC?ZRP-By)sS6Z-XwQ62EMnc2irObx9*c8KcIw#lYn zRTyU^HC2EAjXhjjAt8@VZgx$2-{oQ6y|2>Vn%iHQE%st4h>23!#f13TQ?v3MV+&fd z0QLLGh0Um- z?o@{Dh-!vQ*9z%aM!zqBM`z(;Z^h)8#7I5d=|kfJtK5nq?yQ#DP+47Sm1C9gWzxo? ziC=MU)5y1)^gc1y!6L%eVF`Y;^(U{Xm_`O3YRgW$Iv#{fSOgs-q}mznWW;Ucdr4L0 zYvXw4FqxftPo=N9G+-`na5R?i&W2RExvZ((9fwV0n!!jeH>4iZ+!ok%hDUq*C0c{W z_wIAK&i2ZZqqWQ1c-GdZkm5`BwR5a3(AT3-af>Yu$P;REJZoZ3o{ZEd7rm<=xmY*mY>)B>Lq*qprK)ugIr zY>f}pV&`c)YaQpvGcp1nEsFN3!AE(Q$j4}!GD(-Q95NZ1!wj%kS_G#2#Lt^%Ep-p* zhILo_eI;|UAiq?uf|k+J0qjq()7ikABd46{Q9-``sWwkKvXs*~=T7BBH@!VeHkI8y z!rT$p0x9kJL%qQjr3bPm;w&SHc99<@J1*yRiyT)Yc4JUM%t)Tqumh-|nakI41MF<_ z1z<-qy03RERBlq;dS|JW+)J&idg`FBLZ>W_5nAI|TZGSh>G>&9R{nOf7VtpS_3J}q z>wIw&a!8fAMpoEy#7TG^JB3N^HH(l(nDF5Qe_Pq1_@-D6SB$PMhR^!a@M>~RHeGV9 zT615CTZ-WxV+LpNE^6Go%C;@zUqAB9alO2LCdOJ`$M_}Mt+=6!_&*9MFL8J#W(g){ zT*PrNx|2Oj>B|lej7&rDPiFv~4(o?t{M}u%m1gG9cxuVj8Nn(2eK>ch~^ zll?0=s!oY9S+5^&w_mr(_#-ylDP-KZOSckR3;UlZdU1zh3TKQDN(!%rhiVFSLvHlt zz}SPDchavU!$Z!OCm@g&*2nLp_E)IKquL%lx3k=kH z2e0Jt@LwY!Jp>0pBkD#Hxq{H>%UbKB8Ck1mTI76M!|`Ftz8uIda^bqc`=+J{co=Ld z9BzXB%ZG;`A=7icO6g3a*n9)&V(s`u9r`#u6t9D1bzL6=YmYn zLRhxP<9bi-uoPu9L=tV5Gk87nolbB&uI%CEG@vazoG&n+CA0slJwG+yA!O*r!yfSB z!B0p(B)URQxCIp07V!3$xBA$dch6o$*awz zTPZ)W#l5z@xgEY5ex97;AOlF<&rd#>fXaUVNB+r3vWZz4GT?SqF;t zgj5T2@&M}xw`J(E%pUM}Lc0tndux`6&oMdt79}3=P1NUF`mJ%=zznE$E4F$tR7QYo;26?t8j^!m^U0UqWH_QM=A&-O@Rc>Kya# z%T1y8a=LfZUpt3cr7U%h(-ylRr*B(dFQ&e!2U=B=_iLr$0~5PX3!?d_(c^BrY4v$b0H>Yem=lG`kQZ+L-0j~&Cz3lA~5-7p`;eCDjyE(6y^u6Ey%zE|~ zqu}buWsj$1hNY$c^q6cGsNxh7#x1y*oy{>?{B71%rBg4OLRbQ&JDGS}loY2N%5@63 z``>)F{PX{F-`ngkc6WI)Up1+j!^P=Q?;V{P^Te&R9<=mF2(0cky{%T)Q6CfiNs^b- zfhqV_y^y<1$LE;GQbH{(#U-w6CsTDBk2pJ(T5X(W=pv+;d3u-GOclpXMW)LpiFlNC z9xIu|cJlSb8JZ!(>^&bi@>&+k{Bx;MFW?p(WN7R0W@ z$GPU=@2K03+YU=be#tTq-@2{)O^d13qVy+*@6>oV9Mj8M%W{ot%g%{!8oxU4-+b5Q z+o4}yV;}4mxf<1CQh&Hyb(@k`)PvoH*Rps14$l64((cEx`x!P4Q4e>24)fP;t&d{) zH#4HxIBZer-5#<=DT{<0lPg{IcBJ{qMxxCoDe6Z`7?_{SKMbUcBL5UzMOVS?af^ zywB;>UgjqzJ|!WKC5<>P+pWDlU3jiU)5|K24)49ogvA)o9O!bh|9FsR-=!1fFWETa z7rz#;b20b$5flTY)hx;myq*fm(uWpIjI`jO2wF)(ic@l-1&-dK? pbN`e4wW=O3)V?L?Uc};(#G;alqSQ1lQ%iFbOH(dYRabvEE&y||Zx#Rm diff --git a/Schrick-Noah_MS-Thesis.tex b/Schrick-Noah_MS-Thesis.tex index 25b74dc..a5551e9 100644 --- a/Schrick-Noah_MS-Thesis.tex +++ b/Schrick-Noah_MS-Thesis.tex @@ -217,7 +217,8 @@ over the place. \addcontentsline{toc}{section}{\contentsadj NOMENCLATURE} \bibliographyp \bibliography{Bibliography} -\bibliographystyle{plain} +%\bibliographystyle{plain} +\bibliographystyle{ieeetr} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % APPENDICES AS NECESSARY diff --git a/Schrick-Noah_MS-Thesis.toc b/Schrick-Noah_MS-Thesis.toc index bc60046..2d8dff6 100644 --- a/Schrick-Noah_MS-Thesis.toc +++ b/Schrick-Noah_MS-Thesis.toc @@ -56,42 +56,42 @@ \contentsline {subsubsection}{Task 3}{32}{}% \contentsline {subsubsection}{Task 4 and Task 5}{32}{}% \contentsline {subsubsection}{MPI Tags}{33}{}% -\contentsline {subsection}{\numberline {5.3.3}\it Performance Expectations}{33}{}% +\contentsline {subsection}{\numberline {5.3.3}\it Performance Expectations}{34}{}% \contentsline {subsection}{\numberline {5.3.4}\it Results}{34}{}% \contentsline {section}{\numberline {5.4}\bf Subgraphing Approach}{34}{}% \contentsline {subsection}{\numberline {5.4.1}\it Introduction to the Subgraphing Approach}{34}{}% \contentsline {subsection}{\numberline {5.4.2}\it Algorithm Design}{34}{}% \contentsline {subsubsection}{Communication Structure}{34}{}% \contentsline {subsubsection}{Worker Nodes}{34}{}% -\contentsline {subsubsection}{Root Node}{34}{}% -\contentsline {subsubsection}{Database Node}{34}{}% -\contentsline {subsection}{\numberline {5.4.3}\it Performance Expectations}{34}{}% -\contentsline {chapter}{\numberline {CHAPTER 6: }{\bf \uppercase {PERFORMANCE ANALYSIS}}}{35}{}% -\contentsline {section}{\numberline {6.1}\bf Small Networks}{35}{}% -\contentsline {subsection}{\numberline {6.1.1}\it Test Information}{35}{}% -\contentsline {subsection}{\numberline {6.1.2}\it Results}{35}{}% -\contentsline {subsection}{\numberline {6.1.3}\it Analysis}{35}{}% -\contentsline {section}{\numberline {6.2}\bf Large Networks}{35}{}% -\contentsline {subsection}{\numberline {6.2.1}\it Test Information}{35}{}% -\contentsline {subsection}{\numberline {6.2.2}\it Results}{35}{}% -\contentsline {subsection}{\numberline {6.2.3}\it Analysis}{35}{}% -\contentsline {section}{\numberline {6.3}\bf Large Exploit Lists}{35}{}% -\contentsline {subsection}{\numberline {6.3.1}\it Test Information}{35}{}% -\contentsline {subsection}{\numberline {6.3.2}\it Results}{35}{}% -\contentsline {subsection}{\numberline {6.3.3}\it Analysis}{35}{}% -\contentsline {section}{\numberline {6.4}\bf Distributed Hash Tables}{35}{}% -\contentsline {subsection}{\numberline {6.4.1}\it Test Information}{36}{}% -\contentsline {subsection}{\numberline {6.4.2}\it Results}{36}{}% -\contentsline {subsection}{\numberline {6.4.3}\it Analysis}{36}{}% -\contentsline {chapter}{\numberline {CHAPTER 7: }{\bf \uppercase {CONCLUSIONS AND FUTURE WORKS}}}{37}{}% -\contentsline {section}{\numberline {7.1}\bf Future Work}{37}{}% +\contentsline {subsubsection}{Root Node}{35}{}% +\contentsline {subsubsection}{Database Node}{35}{}% +\contentsline {subsection}{\numberline {5.4.3}\it Performance Expectations}{35}{}% +\contentsline {chapter}{\numberline {CHAPTER 6: }{\bf \uppercase {PERFORMANCE ANALYSIS}}}{36}{}% +\contentsline {section}{\numberline {6.1}\bf Small Networks}{36}{}% +\contentsline {subsection}{\numberline {6.1.1}\it Test Information}{36}{}% +\contentsline {subsection}{\numberline {6.1.2}\it Results}{36}{}% +\contentsline {subsection}{\numberline {6.1.3}\it Analysis}{36}{}% +\contentsline {section}{\numberline {6.2}\bf Large Networks}{36}{}% +\contentsline {subsection}{\numberline {6.2.1}\it Test Information}{36}{}% +\contentsline {subsection}{\numberline {6.2.2}\it Results}{36}{}% +\contentsline {subsection}{\numberline {6.2.3}\it Analysis}{36}{}% +\contentsline {section}{\numberline {6.3}\bf Large Exploit Lists}{36}{}% +\contentsline {subsection}{\numberline {6.3.1}\it Test Information}{36}{}% +\contentsline {subsection}{\numberline {6.3.2}\it Results}{36}{}% +\contentsline {subsection}{\numberline {6.3.3}\it Analysis}{36}{}% +\contentsline {section}{\numberline {6.4}\bf Distributed Hash Tables}{36}{}% +\contentsline {subsection}{\numberline {6.4.1}\it Test Information}{37}{}% +\contentsline {subsection}{\numberline {6.4.2}\it Results}{37}{}% +\contentsline {subsection}{\numberline {6.4.3}\it Analysis}{37}{}% +\contentsline {chapter}{\numberline {CHAPTER 7: }{\bf \uppercase {CONCLUSIONS AND FUTURE WORKS}}}{38}{}% +\contentsline {section}{\numberline {7.1}\bf Future Work}{38}{}% {\hfill \ } -\contentsline {section}{\hspace {-\parindent }NOMENCLATURE}{38}{}% +\contentsline {section}{\hspace {-\parindent }NOMENCLATURE}{39}{}% \addvspace {10pt} -\contentsline {section}{\hspace {-\parindent }BIBLIOGRAPHY}{38}{}% +\contentsline {section}{\hspace {-\parindent }BIBLIOGRAPHY}{39}{}% {\hfill \ } -\contentsline {section}{\hspace {-\parindent }APPENDIX A:\ \ {\bf \uppercase {THE FIRST APPENDIX}} }{41}{}% -\contentsline {section}{\hspace {-\parindent }APPENDIX B:\ \ {\bf \uppercase {THE SECOND APPENDIX}} }{42}{}% -\contentsline {section}{\numberline {B.1}\bf A Heading in an Appendix}{42}{}% -\contentsline {subsection}{\numberline {B.1.1}\it A Subheading in an Appendix}{42}{}% -\contentsline {subsubsection}{A Sub-subsection in an Appendix}{42}{}% +\contentsline {section}{\hspace {-\parindent }APPENDIX A:\ \ {\bf \uppercase {THE FIRST APPENDIX}} }{42}{}% +\contentsline {section}{\hspace {-\parindent }APPENDIX B:\ \ {\bf \uppercase {THE SECOND APPENDIX}} }{43}{}% +\contentsline {section}{\numberline {B.1}\bf A Heading in an Appendix}{43}{}% +\contentsline {subsection}{\numberline {B.1.1}\it A Subheading in an Appendix}{43}{}% +\contentsline {subsubsection}{A Sub-subsection in an Appendix}{43}{}%