From 906c99d20384bc4f044e8f9c7c15bf5b796e816d Mon Sep 17 00:00:00 2001 From: Martin Peters Date: Wed, 21 Mar 2018 01:20:01 +0100 Subject: [PATCH] fixed spacing and page-breaks --- tex/chapter/200-background-network.tex | 9 +++++--- tex/chapter/300-prior-work.tex | 9 +++++--- tex/chapter/400-methods.tex | 6 +++--- tex/chapter/500-concept.tex | 21 +++++++++++-------- tex/chapter/600-prototype-implementation.tex | 6 ++++-- tex/chapter/700-results.tex | 11 +++++----- tex/chapter/appendix.tex | 4 ++-- tex/figures/300-concept-architecture.pdf | Bin 30679 -> 37574 bytes tex/figures/300-concept-architecture.xml | 1 + tex/master-thesis-peters.tex | 2 +- tex/tables/100-knx-ack.tex | 2 +- tex/tables/100-knx-ctrl.tex | 2 +- tex/tables/100-knx-ctrle.tex | 2 +- tex/tables/100-knx-data.tex | 4 ++-- tex/tables/100-knx-poll.tex | 2 +- tex/tables/100-knx-tpci-apci.tex | 2 +- 16 files changed, 47 insertions(+), 36 deletions(-) create mode 100644 tex/figures/300-concept-architecture.xml diff --git a/tex/chapter/200-background-network.tex b/tex/chapter/200-background-network.tex index 845fead..508e6ab 100644 --- a/tex/chapter/200-background-network.tex +++ b/tex/chapter/200-background-network.tex @@ -82,7 +82,7 @@ \subsubsection{State-based Intrusion Detection Systems} Unfortunately, the high complexity of tracking the state of each and every connection while simultaneously verifying against a profile is a major drawback of this approach. It requires a lot of processing resources and memory capacity. Further, this method is only able to detect violations against a protocol's fundamental behaviour. Additionally, the state-based analysis works the best with stateful, connection-oriented protocols, this does not include protocols relying on short, broadcasted, and self-containing commands as they can be found in \gls{bas}. \parencite[p.~306]{Whitman2009} - + \subsubsection{Anomaly-based Intrusion Detection Systems (A-IDS)} \label{sec:background:network:ids:anomaly} @@ -156,7 +156,8 @@ \subsection{Flow Monitoring} Common protocols used for flow monitoring are \gls{netflow} \parencite{Claise2004} and \gls{ipfix} \parencite{Claise2013}. %\todo{not predominantly used for security, but network congestion avoidance/mitigate.} -\begin{figure} +\newpage +\begin{figure}[h] \centering \includegraphics[width=\textwidth]{figures/200-netflow-architecture.pdf} \caption[Simplified flow monitoring system architecture]{Simplified flow monitoring system architecture. \parencite[cf.][]{Hofstede2014} \todo{adjust font size}} @@ -245,7 +246,7 @@ \section{Anomaly, Outlier, and Novelty Detection} It requires also pre-labelled data, but compared to the second type it only works with \emph{normal} labelled data points. Consequently the full gamut of \emph{normality} is required to train a precise model. On the other hand no \emph{outlying} data points are required for training, which is highly beneficial in certain, data-sparse, scenarios, when abnormal data is difficult to obtain. However, the training data must not contain outliers, otherwise they will be assumed to be a part of \emph{normality}. Generally the aim of this approach is to establish a tight boundary around \emph{normality} and is therefore suitable for static as well as dynamic data. -If a new data point lies outside of the this boundary it is considered an \emph{outlier}, if not it is part of the \emph{normal} data. +If a new data point lies outside of the this boundary it is considered an \emph{outlier}, if not it is part of the \emph{normal} data. \parencite{Hodge2004} % ------------------------------------------------------------------------------ \newpage @@ -310,6 +311,7 @@ \subsubsection{Local Outlier Factor} \newpage \begin{wrapfigure}{l}{0.5\textwidth} \centering + \vspace{-5pt} \includegraphics[width=0.5\textwidth,trim={12mm 5mm 15mm 10mm},keepaspectratio,clip]{figures/200-background-lof.pdf} \caption[Example visualisation of the LOF]{Visualisation of the \gls{lof} in a two dimensional vector space. \emph{Green}: trainings data, \emph{Red}: outlier from test data, \emph{White}: inlier from test data. Background indicates the calculated \emph{LOF} value.} \label{fig:background:network:novelty:lof} @@ -320,6 +322,7 @@ \subsubsection{Local Outlier Factor} An example of the \gls{lof} calculation in a two dimensional vector space containing random test data is illustrated in Figure~\ref{fig:background:network:novelty:lof}. The background in this figure indicates the \gls{lof} values for every possible point, whereby a blue background indicates values outside of the threshold for \emph{normality} and a red one marks values within those borders. +\vspace{8pt} Moreover, the ability of \gls{lof} to work on unclean data and account for different densities in clusters through locality, makes it a good fit for \gls{ids} solutions, as \textcite{Lazarevic2003} shows. Also \textcite{Zanero2004} conducted an experiment on using unsupervised learning algorithms for intrusion detection. They found, that proximity-based approaches like \gls{knn} need to address the problem of locality for some observations, in order to archive more precise predictions. The \gls{lof}, as presented by \textcite{Breunig2000}, focusses on this aspect. diff --git a/tex/chapter/300-prior-work.tex b/tex/chapter/300-prior-work.tex index 497d1cb..69ad7b7 100644 --- a/tex/chapter/300-prior-work.tex +++ b/tex/chapter/300-prior-work.tex @@ -41,11 +41,13 @@ The part of their research regarding flow analysis focuses on \gls{bac} over \gls{ip} and employs a simple volumetric approach (measuring the throughput) and calculates the entropy (cf. Section~\ref{sec:background:network:novelty:entropy}) of the flow data. As a result \textcite{Celeda2012} were able to detect and identify several attacks and a bot net in \gls{bac} installations, based on flow data. -\begin{wrapfigure}{r}{0.5\textwidth} +\begin{wrapfigure}{r}{0.6\textwidth} + \vspace{-18pt} \centering - \includegraphics[width=0.45\textwidth,keepaspectratio]{figures/300-Pan2014-architecture.png} + \includegraphics[width=0.6\textwidth,keepaspectratio]{figures/300-Pan2014-architecture.png} \caption[Anomaly detection framework architecture by Pan, Hairi, and Al-Nashif]{Anomaly detection framework architecture by \textcite{Pan2014}} \label{fig:background:prior-work:pan-architecture} + \vspace{-20pt} \end{wrapfigure} Further investigations in \gls{bac} security are published by \textcite{Pan2014}. They present \enquote{a framework for a rule based anomaly detection} system in \gls{bas}, using \gls{bac} as example. @@ -57,7 +59,8 @@ The algorithm, first proposed by \textcite{Cohen1995}, is used in a two-class version on pre-labelled data and was applied by \textcite{Pan2014} to more than 7000 data points resulting in baseline model with 20 rules. These rules are consequently used during the detection phase and applied on every flow-frame within a time window to improve the detection rate. In case the rule framework detects an attack, the malicious packet flow is handed over to the attack classification module, which uses a decision table to classify the attack based on three attributes: the targeted protocol layer, the attack motivation, and the victim device. -The consideration of the targeted protocol layer accounts for different kinds of vulnerabilities within the protocol stack. \textcite{Pan2014} specifically focus on \gls{bac}'s \gls{apdu} and \gls{npdu}, which corresponds to the application and network layer. +The consideration of the targeted protocol layer accounts for different kinds of vulnerabilities within the protocol stack. \textcite{Pan2014} specifically focus on \gls{bac}'s \gls{apdu} and \gls{npdu}, which correspond to the application and network layer respectively. + Further, the attack classifier accounts for different attack motivations. This includes \emph{reconnaissance attacks}, which aim to collect information about the network and its traffic, \emph{device access attacks}, representing attempts to access devices without permission, and finally \emph{\gls{dos} attacks}, where the network and devices are saturated with useless commands to disturb normal operation. The last attribute for attack classification is the targeted device, which uses domain knowledge about the network to assign roles to devices. Finally, the classifications from the baseline model and the attack classifier are passed to the action handler module, which is designed to automatically trigger suitable mitigating measures. This includes extracting useful information, dropping packets or suspending connections based on a severity level of the attack, and producing an understandable alert message comprised of the prior gathered information. diff --git a/tex/chapter/400-methods.tex b/tex/chapter/400-methods.tex index 157ecb6..58ebe20 100644 --- a/tex/chapter/400-methods.tex +++ b/tex/chapter/400-methods.tex @@ -64,7 +64,7 @@ Finally, the last category describes \emph{reconnaissance attacks}. These attacks conclude unauthorised detection and mapping of the network and its behaviour. Here only active sweeping approaches are considered, where an attacker probes each individual device in an address range. Passive eavesdropping is not considered as it can not be detected on higher protocol levels due to the bus character of the network. (cf. Section~\ref{sec:background:bas:knx:topo}) -\section{Generating a Test Dataset including malicious activities} +\section[Generating a Test Dataset including malicious activities]{Generating a Test Dataset including\\ malicious activities} \label{sec:methods:gen-test} As \gls{bas} automation systems are only seldom considered within threat models, monitoring systems are rarely installed, if at all. @@ -81,7 +81,7 @@ \section{Generating a Test Dataset including malicious activities} Second, a \gls{dos} attack is performed starting at 2017-02-13 09:00 and targeting the entire line \code{3.4}~. The attack is performed in three bursts of 15 minutes with five minutes break in between. In the \gls{dos} attack a flood of \code{A\_Restart} telegrams with \code{SYSTEM} priority is send, which in reality would cause all targeted devices to restart continuously. Additionally this blocks all other traffic, since the \code{SYSTEM} priority is the highest specified. During the attack the telegrams were injected with a maximum of \(500 \ \sfrac{telegrams}{min}\). As third attack scenario a device scan over the entire possible \gls{knx} address space was performed, starting from 2017-02-13 21:00. -To determine if a device is present, the management \gls{apci}\break\code{A\_DEVICE\_DESCRIPTOR\_READ} is send to all addresses. Every \gls{knx} device is required to implement certain management routines, among them the query for the device descriptor. \code{A\_DEVICE\_DESCRIPTOR\_READ} is ideal since the requesting telegram does not require any parameters and the response only contains two bytes of additional payload. By choosing a request which is adds as little overhead as possible, the throughput is increased and effectively reducing the time required for the scan. \parencite[cf.][p.~46]{DIN_EN_50090-4-1} +To determine if a device is present, the management \gls{apci} \code{A\_DEVICE\_DESCRIPTOR\_READ} is send to all addresses. Every \gls{knx} device is required to implement certain management routines, among them the query for the device descriptor. \code{A\_DEVICE\_DESCRIPTOR\_READ} is ideal since the requesting telegram does not require any parameters and the response only contains two bytes of additional payload. By choosing a request which is adds as little overhead as possible, the throughput is increased and effectively reducing the time required for the scan. \parencite[cf.][p.~46]{DIN_EN_50090-4-1} Equal to the \gls{dos} attack, the telegrams are injected with a maximum of \(500 \ \sfrac{telegrams}{min}\). Finally, two new rogue device are introduced with the addresses \code{3.6.26} and \code{3.5.18} during the entire day of 2017-02-14. @@ -90,12 +90,12 @@ \section{Generating a Test Dataset including malicious activities} The scripts to generate the malicious traffic and the datasets itself can be found on the data disk in Appendix~\ref{app:disk}. +\newpage \section{Evaluating the Detection Results} \label{sec:methods:eval} For each crafted attack, the different anomaly detection algorithms are benchmarked with regards to their ability to detect those. This ability is classified by following criteria: - \begin{enumerate} \item General ability to detect the attack \item Differentiation from background noise of the detection results diff --git a/tex/chapter/500-concept.tex b/tex/chapter/500-concept.tex index ddc9f38..7482529 100644 --- a/tex/chapter/500-concept.tex +++ b/tex/chapter/500-concept.tex @@ -87,7 +87,7 @@ \section{Monitoring Pipeline} \begin{figure}[h] \centering \includegraphics[width=\textwidth]{figures/300-concept-architecture.pdf} - \caption[Pipeline Architecture]{Architecture of the monitoring pipeline \todo{explain symbols.} \todo{information flow back to agents, for time sync.}} + \caption[Pipeline Architecture]{Architecture of the monitoring pipeline concept. \todo{explain symbols.} \todo{information flow back to agents, for time sync.}} \label{fig:concept:architecture} \end{figure} @@ -119,7 +119,7 @@ \section{Monitoring Pipeline} \begin{figure} \centering \includegraphics[width=\textwidth]{figures/500-knx-demo-topo-with-agents.pdf} - \caption[KNX network topology with Agents and Collector]{Exemplary logical topology of a \gls{knx} network with deployed Agents and one Collector.} + \caption[KNX network topology with Agents and Collector]{Exemplary logical topology of a \gls{knx} network with multiple deployed Agents and one Collector.} \label{fig:concept:network} \end{figure} @@ -312,6 +312,7 @@ \subsection{Generating the Feature Vector} For the construction of a feature vector normally only the features with the higher variance would be chosen, since the fields seems to stay constant and therefore do not add any additional information. However, in anomaly detection also normally stable features could be of interest, since a change in them would most certainly indicate an anomaly. + As a compromise between both points of views the following fields were selected as feature vector dimensions: \begin{itemize} @@ -424,13 +425,6 @@ \subsection{The Support Vector Machine Analyser} \subsection{The Entropy Analyser} \label{sec:concept:anal:entropy} -\begin{figure}[h] - \centering - \includegraphics[]{figures/300-time-slots.pdf} - \caption{Example of shifted time slots used in the entropy analyser module.} - \label{fig:concept:time-slots} -\end{figure} - \begin{comment} \begin{itemize} \item cf.~Section~\ref{sec:background:network:novelty:entropy} @@ -459,6 +453,14 @@ \subsection{The Entropy Analyser} The base-model is generated during a dedicated training phase and contains a \glsfirst{pmf} for every dimension of the feature vector. Only the time dimension is excluded, since it is continuous. Seasonal sensitivity is instead achieved, as described in Section~\ref{sec:background:network:features:time}, by diving one period into multiple time chunks. Each of these chunks equates to one sub-model, which represents the activity during this time slot. To reduce hard breaks at the end of each chunk, another set of chunks is used shifted by half the chunk length. Hence every point of time with in the season period is within two chunks. (see Figure~\ref{fig:concept:time-slots}) +\begin{figure}[h] + \centering + \includegraphics[]{figures/300-time-slots.pdf} + \caption{Example of shifted time slots used in the entropy analyser module.} + \label{fig:concept:time-slots} +\end{figure} + +\newpage Further, two types of baseline models will be trained: One general world-view and many Agent specific models. The world-view model is used to identify general abnormal behaviour in the network and can be seen as a general-purpose, less sensitive model. The Agent specific models, on the other hand, are specialised on the traffic and behaviour, unique for one Agent. Therefore, they are able to identify local anomalies, which might be completely normal when seen by another Agent. @@ -473,6 +475,7 @@ \subsection{The Entropy Analyser} \textcite{Toshniwal2014} who proposed this concept initially, are using a fixed amount of clusters, which are used to try-fit new observations into them. If a new observation does not fit into any of these clusters it is considered an outlier. Whereby change in the calculated entropy is used to decide whether a observations fits or not. Further, \textcite{Toshniwal2014} only keep a sliding window of data in what would be the baseline model. This comes with the earlier described disadvantage of continuous training, that an attacker can alternate the modelled \emph{normality} by slowly injecting malicious packets. +\newpage \section{Monitoring and Alerting} \label{sec:concept:mon} diff --git a/tex/chapter/600-prototype-implementation.tex b/tex/chapter/600-prototype-implementation.tex index 731b4c1..65b31b5 100644 --- a/tex/chapter/600-prototype-implementation.tex +++ b/tex/chapter/600-prototype-implementation.tex @@ -90,6 +90,7 @@ \section{The Collector Module} In the case one Agent's window is never received by the Collector, it waits a configurable timeout of about $60$ seconds before relaying this window anyway. This ensures that a time slot is analyses even when an Agent fails, regardless of the failure mode. As this is an anomaly, which can be easily queried in the monitoring and alerting system, it is also detected there and consequently not handled in the Collector apart from a warning in the log. +\newpage \section{The Agent Simulator} \label{sec:impl:agent} @@ -128,6 +129,7 @@ \section{The Agent Simulator} The statistical window is not based on the feature vector (see Section~\ref{sec:concept:anal:feature-vector}). Instead the appearance of certain features are count, e.g. the source address \code{1.1.15} appeared $15$ times. Every further processing, like vectorising and normalising is done in the individual Agent modules. +\newpage \section{The Analyser Base Module} \label{sec:impl:base} @@ -185,7 +187,6 @@ \section{The Address Analyser Module} During the operational phase, the model containing all sets is loaded. Following all addresses in incoming windows are compared to their respective address set. If an unknown address is discovered a counter will be increased. After a window is processed measurement containing these counters per Agent is pushed to the \gls{influxdb}, which contains: - \begin{itemize} \item amount of unique unknown source addresses \item amount of unique unknown destination addresses @@ -206,9 +207,9 @@ \section{Converting a Window into a Feature Vector} Within the proposed concept this means, that a statistical window has to be transformed into a numerical vector representation. The basics principle of this is described in Section~\ref{sec:concept:anal:feature-vector}, whereby this section focusses on the details how each feature is encoded. It is to note, that a window contains discrete or categorical statistical data describing a set of events, instead of just a single event, meaning the window produced by an Agent contains a number of occurrences over the period of the window. + The feature vector, however, will contain a normalised excerpt of the events' features, whereby each feature is encoded as one or more dimensions. Mentioned excerpt of fields contains a set of low level, application independent, and easy to measure fields: - \begin{itemize} \item seconds of the week \item source address @@ -226,6 +227,7 @@ \section{Converting a Window into a Feature Vector} \[ \dfrac{2 \cdot \begin{pmatrix}1 \\ 0\end{pmatrix} + 3 \cdot \begin{pmatrix}0 \\ 1\end{pmatrix}}{2 + 3} = \begin{pmatrix}0.4 \\ 0.6\end{pmatrix} \] + The result is a vector encoding the probability of each bit to occur within this specific window. Goal was to reduce the amount of dimension, which would have been necessary when the entirety of possible addresses is mapped into the feature space -- each address using one dimension to encode the possibility of occurrence. For the two address types, this would result in $2 \cdot 2^{16} = 2 \cdot 65536 = 131072$ dimensions. By applying this adapted form of the hashing trick (cf. Section~\ref{sec:background:network:features:hashing}) it was possible to reduce it to $2 \cdot 16 = 32$ dimensions. diff --git a/tex/chapter/700-results.tex b/tex/chapter/700-results.tex index 9a1a553..f450bd3 100644 --- a/tex/chapter/700-results.tex +++ b/tex/chapter/700-results.tex @@ -13,7 +13,6 @@ \section{Conducting the Performance Experiment} Before injecting and analysing the data, it was then split into three parts. The first two weeks are dedicated to train the baseline models for the Analyser modules. The following week was used as validation, to ensure the algorithms are properly fitted to the data. Finally, the last week was modified to contain four scenarios which alter the behaviour of the line, as described in Section~\ref{sec:methods:gen-test}. \newpage These modifications are meant to resemble plausible attacks on \gls{bas} networks and therefore include: - \begin{enumerate} \item Injecting unusual network traffic by copying traffic from another day and time \item Performing a \gls{dos} attack @@ -29,11 +28,11 @@ \section{Conducting the Performance Experiment} In this experiment the feature to simulate multiple Agents, using filter rules, was not used due to the fact that the dataset was merely recorded on one single line. Therefore, a further separation seemed unfeasible, as it would complicate the evaluation of the detection results without providing more insights. +\newpage \section{Experiment Results} \label{sec:results:results} Finally, in this section the detection results of the proposed algorithms are examined using the graphs generated with \gls{grafana}. They will be used to determine the quality of the detection results based on five criteria: - \begin{enumerate} \item General ability to the detect the attack \item Differentiation from background noise of the detection results @@ -137,7 +136,7 @@ \subsection{Detection of Unusual Network Traffic} 3. Response time & 0s & 0s & n/a & n/a \\\midrule 4. Persistence & n/a & n/a & n/a & n/a \\\bottomrule \end{tabularx} - \caption[Detection results of unusual traffic]{Detection results of unusual traffic. Averages are compared to the validation dataset.} + \caption[Detection results of unusual traffic]{Detection results of unusual traffic. Difference in averages is calculated against the validation dataset.} \label{tab:results:unusual} \end{table} @@ -215,7 +214,7 @@ \subsection{Detection of a DoS Attack} 3. Response time & 0s & 0s & 0s & n/a \\\midrule 4. Persistence & $100$\% & $100$\% & $100$\% & n/a \\\bottomrule \end{tabularx} - \caption[Detection results of the DoS attack]{Detection results of the \gls{dos} attack.} + \caption[Detection results of the DoS attack]{Detection results of the \gls{dos} attack. Difference in averages is calculated against the validation dataset.} \label{tab:results:dos} \end{table} @@ -295,7 +294,7 @@ \subsection{Detection of a Network Scan} 3. Response time & n/a & 0s & 0s & n/a \\\midrule 4. Persistence & n/a & $100$\% & $100$\% & n/a \\\bottomrule \end{tabularx} - \caption[Detection results of the network scan]{Detection results of the network scan.} + \caption[Detection results of the network scan]{Detection results of the network scan. Difference in averages is calculated against the validation dataset.} \label{tab:results:scan} \end{table} @@ -381,7 +380,7 @@ \subsection{Detection of New Devices} 3. Response time & n/a & ($4.5$h) & ($6.83$h) & n/a \\\midrule 4. Persistence & n/a & ($0.54$\%) & ($3.23$\%) & n/a \\\bottomrule \end{tabularx} - \caption[Detection results of new devices]{Detection results of two new devices in the network.} + \caption[Detection results of new devices]{Detection results of two new devices in the network. Difference in averages is calculated against the validation dataset.} \label{tab:results:newdevice} \end{table} diff --git a/tex/chapter/appendix.tex b/tex/chapter/appendix.tex index 6616e7f..ebc1624 100644 --- a/tex/chapter/appendix.tex +++ b/tex/chapter/appendix.tex @@ -240,8 +240,8 @@ \section{Setup Required Services} Username: \code{admin}\\ Password: \code{testpw} \item Import the pre-made dashboards, by navigating to \emph{create} shown as a plus on the left side, and then \emph{Import} - \item Upload \code{src/bas-observer/docker/grafana-bob-dashboard-avg.json} - \item Repeat the upload for \code{src/bas-observer/docker/grafana-bob-dashboard-sum.json} + \item Upload and import\\\code{src/bas-observer/docker/grafana-bob-dashboard-avg.json} + \item Repeat the upload for \\\code{src/bas-observer/docker/grafana-bob-dashboard-sum.json} \end{enumerate} \section{Train the Models} diff --git a/tex/figures/300-concept-architecture.pdf b/tex/figures/300-concept-architecture.pdf index 323b0c67dfde9b0bb354c51e50dcd0964edeacf3..91442f71a50fa1198d5ee43016e44e3c88558d49 100644 GIT binary patch literal 37574 zcmZU(1ymeC(>06*mjJ=t-61Sag1ftg;4X_>NC@uk4#AzpEi43gm*DR1@-KN_`_Fd{ zoSp9Js=ifqtEQ)?X_Un!SvXj^kvYiO$sN90BMS;5v#DFT*qV{kzq~RavxzyI8M`<* z|5r=d*}>G+#Oz-aN(IUViX4guiWQ0r^3VR?gRLCw#f@Dc^5XoQ>>L1gE>3n%E>1oU z00XkHFtVAw>Dx4%|93i1M>BFZF=H2FTL%kdHf3WAGaxw^WPs}b5#auR1SC9Mq|{s> zGa<97eIj>pc73~0AZKS~=R{^RF(&6=Wrx83^q=2PGHT@J#p`Y>aWQkYCub8kbF(rrQ zp9yTLW2G5H z9U3tQTL)(~M`IH+^0!DSi>W!1zhPH}mg`%v>8rJw$$vNh*KPl7c*CYg{y$!NGyA{c%A46+xLA?{ z{)14`$`;~UayCg@NYup5OdL$j-n0WvN~!%eK+$@vE=r)a%P(r>`7a-_z=A#OpLwdz8sb{t-~v&uP^r2>dW=F^!BH3Z1>xpqpL63$*<3^DX;gP^(fqTFBOf#uaBdz z8w{tb=&x*NBHtbzUiY_GzYWyQX4Af$Ze|b0M<>7DuXa918{Jo&5Rxt4-AyyZIPkr` z+6Y{IYslX1dq(hHeLbIlt+`EhacSFp$~~jm#qiw2xb`?U6YdyYeLd#tIO`KR{=4EV zT-livADs?cT2*2+=c*V>pS*tR{dkpT>+$R(bPnWy{ruQ*CQ`=!jE4QHWl`NQH`Qlg z*c$!F{j}*adX7tWYSP-^_j(zfcDJfb{d$qc_7aoa;FrO5I2PqWJfZE_VuZi`T$vcb{oNSImJbaw&)9vA^ zBH#L}#W^YPTy2BawpO=$N_OCDb4w0z^bGceOL3T)l*+NpQe%`)3m669y*%F4KYIn* zIv9Nsn!TDlEV4xmelan8y-Sw7E9$&}SFWNVqcIDyBJs3O@$?%l8I4*VQ4R!k%uYvh^KPsd4ka$7cqJ*}7bZ;(aX4$C=+KZ;n zo-h8oS|i)O6~?=Zp)1s?7sDgg;p1%a>AJKb*l!vf@609|@2abP@e>e^XiJDwh=6b-ClmkMN`STYHuP zEime|P4c+!nsdUhesQ8@u`8QFN(*j_}EptePqa&~ro9v>fE?LZL>n=$8 zUi{cZ=_)RJJM=>3KB{C$U9s(!j|VtNyJ*dsFcp3(yjx;+2p(VPQxD9F;SN?@^^m4%`H5Nh#zTI%9_(D1XZP9c$NHwsz5WsvmAUGsfl9fO`y}MChqeT z&GEmf8(>bH+hq1Y9I&Mc>bo!%b3bAW9gk` zZ<*9t?4`pUMI2Ay634N$npUFZ6*|xFjNohEl&-^;mae%^Au~DSAmSIPlh3*`_UPPE zR;m=Z(dRf9jgFsU-OMpHR?zZwh!s+ynZ{d0Sc!4yOl9z2Ga4TA6+GJ`}_| z|LqD_kz;*nDAFFfQ_8;tT;7kt%irM_H~6w8rb*#-Dz-(!Upgx{;X;e}Mf|?E)Mu^Y zI%9aFLTM&1C6;!Iy>G(h1)#>_M6_;usFhMoPrM*TFJ>n;#Z(lO{tz|9I9l(dh?#sp zbD3D}1T7RSJLalB7st)j@^e5NEuMny*3 zHB}DJlHZKbj2EDuUU;8RA5|@dT0GZtN;Gk=D}^?UVu^l$ggEO!^5tYl%4kW#WE&z5}o`j8ZrL3BM6YzO7*n0uR4yeY~f z#--%4sL;U-v>eJ{orm|CqmA+{9P(H7BxcC|#XD%3WNEaho%7uMTq|YbPnk`}9s?F` zd6i?otjkDR1;_0*dp`Kb0mzOXt*tZVebc=Z$MuVdaL4ue`LNrs0^nS3IFiHg)$|UV zm8Z**(}-7xs4b$zY`L5;OAnGmdH;s-yGelpFCL_^XJq_;F*j(P6S*vu;l3#9i!jcn zFf`tiNEn}mhNdHoFQRP49j@i<)A%L_aP=k@$u&>`aySK7^*bMkR|^OI8={Y*e53}? zKBe#JJDAX-x_!WD;`7euSy(v85YqX{IX4+}M}usZ*AQc@F@PR;>ROpO0%12NjLG4- zuHJ@Q(BGPjc{?NB+em1KV(*zFlf|)iry=x9?umduB)eBJ679Lc;qM>WiFI8=Lh5!u z>AkmUAE@mE#No4#Z|F2&4zj)4a_hXN1O)N&rZ_Em*R6=vV;>VOp6=f{y3WcYSm4XL=qzqsjVhz7oAeP_sKN}n@*2g9XsD6 zYMhv4IJ5&sbDu_+BIoJgc#Voow@7StH-qtq0IccnBYA7#v}^vQnbpFO=CIidp}Ss1 zO!~Z*fxvqYZ%(B%BmNIDe)oJ(8lG6cuw|m}9)reehES1CNGJI;3g!i{UD1RRSN1D2 zY?-f&!0AL%_#l8B-KSej$bzN3MmtC*STa0*PF&3+0p3kkZu|3zN)_)=yBavoHjwi)=+ZFvzK8` z@I^%lvajf!nGh~bfwhu=_MhyC5oSd@c)uH-3#!1*8KSPc-%OF{U)gB87}}`PceU(GUyh524{;+IICRn*RGOzRf7F=O1v#)e5&ra@{uC6b;mW!c zR?X~kQ}ctp#?_tYU3Mj~4@x%~j+BybFTXSFVeQDU_ER2+LG&Rb@7TS*{~$pahV>!3 zBG|t1N}9WC@$W^BGVOIF?MY2!{SWgg#t+fbxD|xI?LMA0>|{79_J(hAO3TF$H#g`6 z;`zzaSKRIT(^x+gHtmU4&jfmadGWYXn~3^6C4!=OrUSp?DZd6X&7V(EA*gGAm8GKO zntsaOjLD`^OrHg?I>FPo(`L<3g;lfK&NP~Zvm^jBuhaWx|I$G>NKb47g!;D@1&6Q0 zY)#l2olv74fQ{2%b{t2-?)!01fBx(*4Z9O?RB^G*WQ7}W|yJ@RK!lYFAU&TkNPD;sB?!iW=Wr_{fu|-bYd<;4^?s>QZ5s=gm5yy!X zI%*=L6n*F!{2^SwhV=A7mL+_Hrda1OL=J zweHj|pKNh*yPratP<2QM=ZDW@#=6^Fdc@~88MS*GXi=CsY+PV+f_h)`{5VT0EVNJ2 z(q~@ zS08!c zH#k3GB-ua;`C(Joe&2+9Z77`-xzNU}pnaEtoZVR6k^L#}!t0ezaaTlBZ5YO+^xKt0 zY+n$OVMiZ!qNjRBwfI;+?b;aBVa$K~D%9Y~R#EWHF;h^bTLMNE+08Gxe&*BrmB689D8 zY}qD(fpabpeN}V`x81kTOOZR2jr!sR8tj6-?Y1QyApqA15wtkRKFjno%uHG?&DxNI ztNylYo;__9o6oDVV^kc3{uX%b5_5non{guvdWXQ%$HwS1xs6;#%D#83)_-JV(`lQ+ zunmid$u~&)7V^)K_=QeBA0w!24^GWa&G};1*zZo4O#%^^3~-@MIioh4;h+B^Znv|y zQR#nj;?rC92@DdtUJD`OnP3RXKUr$2hfg1l@Q1&7@0CSXnPJT?iqu(bp4Gx_y;H>i zu>nef?;F7!$0KsOgABggK3{KS%hu*h%94{_@~m1aE*A_u{oIk~7Q@L`_F;-$ys6>& zqh#|J=g;>x_=C`phIkBs{p8JF0N2`;M1#N@#H*ea80GnMQ9)~={9ucOyTf$U zhTs}AQ}Gxn1i@sV%Lp`uBbL739S&VyMRyTcSv4a|yEKOVS*Os?mjPRdUyu(Ex5?mu zqwAzENGYzp2$JNLQqY`_Ys*z9_=Koa(*Ok_7|#7*CH@^AH@Z&J^ZacN{Z09;Skso;@_a-`{RSx9^elS zqh9_t8eE`{SUhaCZm{0YbMhm`X&`HxkanE0%_K^!5^aEYPHqGrG}+F8)V3n6u9Kc1 z)LcGx`>~Q?ONOl<9coUAQHuwT`-I;$#%>v?(^`bvfQ* z@TT;qUQZatWE#`RILu+EJseJ1P&sQXQ8VP_PNN&9Xu01ED^Es~WIKp~g_6;kig~pi zR47KlICo=oa*dYY0)LvCd}}Is=aZF7>h(PZ=zM;#C`Ws$qsdPrn?*2jPgUjj^`}5q z%6ULV>mcHe#x{xj``5bH+WWpgn4yk zaJn4dM)|=v$Ezaak}l#kqM9afYc#>=Yuk7pJh4ww}K zwzg1QJ_+oR?}OZM>gIY_h({HlKz$(S3BEQ);fcyQ3p368>v<`tR~&d4P{Iarw>Xy4k{+WGM{rIjk^Oqr$!ZpI zbr-(0(Y=^;+mKSFxl}=oZr}CenwMBynD+L&y+Ycc?frR`p}ybS-0u|X4Iw#pcrBks z+CrkJ?vVCrk46bW5g@ls}d8PYy4_9c@&h^i1Lk&)zepeWM~&^ z(XyoY6XhWEYMUwH_Q-{jgg zOhUvIA>IpSrQlIeIxwjypyK+g0r&XMEhpHLYgchOW<(Aod&q#~YNr!dWRll}IQP87 zsf4h-!%ap#jIG?B(9cHhp8b*Aeh|7UNo!5QE2*MIHw&F0xWFklz<7?F@1Wd%>8!%M z!&ud-Dv9EIolDC7UhxP6-Fhy_5cn$}IOwx{kj^_JUdn%#)Z!zKz0cy?QRpJ06Jv&< zeyQV#(~l;RCYsbA#!1<@)bnBUSUy5oZO~D1tAj?XWL^h4v8pmzluTDnmOT#=u-Y8F zMe$3OGuMXr&hV}MFE%3%pZ?NKiK&Y-4fid@dtw;~zkdFJ{UWB7yh z-@zfeA32Vx*5VdJE7+b-xD!fDInWhc#Kls1g|7`MO6&T|XO z-!rkSt!}^OZYW_kQz~gHmao4ct=prFmAz+enQ-zMX6>FmNwZLJxyIUtHLr@M>YwUf zWl*ZzoN$jjb+s~NAONA_6z{}9Gv0E#`uwfGnQoHD?K_uA`ZRII`8x$8{%7EzzT8G! zyX(~9Q0>&X9YyJ!8y`Qb`i+Vak1O12U@EP&AGZ{Sxie;?u@sL{_|>}oI*wktE40vO zxsc6b^L&xgQwV}Ht41Ulw;r?<7dW^9wI zd3lDg0JjTvWr3ZiP21ne4Y|{2jJjAldrU->&dfa(gg2bGU)~k3pzS`ygV5?zQEWXG z=+}Rz)wa>v+L0>M$p5{j{=z{t4P$=n91wYY*#^oe@+!u?NMf4j-g14^p z-{$cQy_{pN3cXqPm0;S|qbPBhC&^rcq*q3a#Mm7s z^HHr&WnT@YG*LbcuzNpaj-==|EtK16P|XW1pl>G9 z%L|SEEC>d}{EkaYr`8$8n5aY{z}c(rvz#;2;cK+i5;v*0>0?<8%o-8You~}ebp6_3 zIoHGDN0?_Y2gTMF2@E&-E@5x3to{YNaZlX#FSo`F?r}>REt_YEn}T3fO0z_3Wy6+* zM5~(%!7QfHMCCXz#4XUtcA}E~;Qeto(Iox+hE_^6*kp`pF>s--SjBP#4ZUR4r2bG- zctzdWM=u0|=w4ZH@9RY6p>EK0nA{NbkEe$6lt5#_`d;6fE-y_tc^2+cYLolEYo$0Cv0n$3 z>EvCpx7P^}X67eTda$hiMTua8Fh=8daVyxw^1or$-8dUwP_X(im_Uj)(uRV4W6H0UDh`aa`uGXJIFarvX zbkysQ_E?v)q<4->L_c^S8EA@|1v_UUWFl5l4oi+X+E1w~m~j?C*erZLH@3B2z=L?< zI2qE_s-JX;@q=&IF*7*cte1rpoz`x1y`M*SbN%PZolOeu`g#Fke*u~Be#+c@<`bbO zz_SOsovGRbkSjpUdUX2A;{nL?@1Vp$kcsC>nT7lg1SbYh!C>qnuF^cR2Gd2V>a6JHK95yf*bU8#A7VAQ1j$xOMUTf>>yX#kx!D^YoQ+OCf zJdj3jxz%4!fY60wjIQB5P0jUwkcp9Ch8skW6e&7DVi3F^9z3O4UByPKcsV85al5fj zJPO_?`iI%b5Jt7+5L4kzpqXre3IkztHXyyj1MsDuKKK`cxq{IpCWie^xnIxuySC^q zFvCAdx>kaDSPVLWx?c#Sqo0@lfRQ}b*0)@jKX?FoJpmApLNM0%f>T8ZF^X8s(Y7QN z_HaD`?|lT~(JPex-D;lUy<$sU)bYR-lBA`z7tH9O#Fi$kU}~@G7Z*1%{o2RE`8_ML z3`B|D&WBOd+Yh&3Y%LE@s)*PFZ?51(s<`9Us#MH07el4X%t(Ce+SYMSH+BRMf#=VLzw*XAY`fL z-Xakmi!^Ole>W5+?@#@8I1MKi(K0$VGz8(q=vG_IC>Du2Op8=8Iu=Q`y0h@ou@n-G zFS8&1MI$~l7+cRG+U2?nEb|`^c@pO%kSaR=P{0t(2st1V;GjEmoZP^KBURL0PmBzP z2tZ`tdIH^sL1z0L@!jh5~p20rS0lS$4`ZU5a7+o0Z_@?t zc3LB3_?g`mHH3WVlcV$)MUdZ)<_kx!t#xI|pKlbl$RPc85FQLB?r@e|qQbE7xC^&- zYLEN}ki4p%z%w>DK!3t~6q2hKg@>W`?BmKkW7HIB!2ZZ`!HoG92uz5h&+DEc`2Uk2 zAO3LwY3~nM#{-g+|H-6Y6RZE><)@FfCYcaka@M5Z<9h-!)XXAmE1n&V&mHZrN7Ah+ zHNWyNEKcGv2zAe3C`X)0ts-F<$rd(yCJS+UHSNL2n1M56e}*qu5CDP&AH>jhK?=7 z*{;7J3Ly0U5A2427C{u4LTJ%dJ}^pV3E_DKZ0MB8==_Nx<8s(Zcsls)T4mLKi8ry#=@gOsK+mB4MHimWe>ns!$64{ zME_LuK@TYx=_o;YNiP^0Ls2NLBZX%R*Dd}O(sY-9LkCF#2scF`m6{487`1e&oN9AD z*fO6v)?PY(emam1Pii@LoNS@_ zpi34$f#m_{+vtQa#H7Xy;v?+~Y=|_W2LKwPd*=VYsA0sQ>#3@g&{@qhND&Gr44j2j zWQs*sCNc*`z77_M3P`F$))EJt1(5oat5?so@h`#qqxU;aF2TY{}=*MgG0Xv zS!>l~Y>z)^pO@hr^H#l*uBEHPh{ciCigO<31$fVejmFZe)Askpt;9iHCNNa#1JHg zEMuHV(UmvXxp&uNJ{A0X0v2R0Q2e-b>}Tdwa=6c!gG6#f>|Lc`M(`{o^E#U2GZT{A zO(CLgn2WHO)X58!&Tkr)>LCw-vo0_NWZ7bRgY%$Cst6>FsxE?592kt?rVGb3gsCl( zL?16n&cgGz6ouj?RkRiQdL-%z5RH5rga9d#X_t=lNN)I89@Z$3!dtiAjbI3K4{iA^ zHu%y#v*0z?1Mn^OnxiocPtxmL3}z_La3LNEM3$UU@`K%)A?!$q1AVgKoz(hYlvl7Z zj?!rTVyDBg@jUBOd@U9 z(?Fs#S-)olDr$ulcu_nuw2Eud^~)GGWV2?i;Y)EJJw5+krNwz>KueJ6lv$lrtcP;u zh0~Qn!>C(Ve;qCx^is&8hPKxGOPzB7{q=H!@lc?pv|K8~=!>u%hKBG{mRRC-2whd{ zP$O3Mfvlk!2{1=;Kk;*->zdb^K%axg?00K!7>6>~DUMb=ranpajzCfb;d;$N1ocRB zKi*W!{-0VpyY5M8sa>E!ezVVc#3=?WM5yWp5^dpHI(W@_G3z5UDDY`C)S=#5x@MWh z9*9l(+ZwYBbyy5w-pPJ|%KcVTOp%4&KUDgf303KRtBu#3TH4lbxV_am!wc>kx*0eW zQiXlc8d?|iU_)s}MsHDDsxX3+DqWPjTu?bpLxP774n|Vg zLcKz8j67dMt*!L0YR=R$SLCfo-7dzo^Li@o#s9d&C91Y?3TGk0Xr%p!INgekT6?(m zm;D)7+~Z^>%t{nIXAjTX+fSy)^opIUWQGJagU?(^&$O%b5aacytJV3;-&*-npC{Da zWzXm6vK|so69dm}=Nl^hg`y_Q_+N?EA}<}U1|a-vt|w#tl`*xaE12#u-bcm`UAj^f zq+I(*oaL%;-b#GBzN1znXWfyGM;3j^PAP;DeSg{L!h?@mSG%k7esiR0LL>P8EIkP< z4w)7&Tl$V`|710Bl9m|}_GqH|+cU2he;UGr-kY8ZS02xfQoPUb zrQHX3-~xDECkMJIQn8cwyrRmd5nm zyw&=(Gs{m<0e#D+!%oQMIgfb*8m!Kb26waF$tsLWeYeK$QR1=3SNVBZ-r>?kwsWhP zB{3OW`Xl`=pdec^$8&GL_U_eeH~9&RMhD>SU=)+6GCTi^VbHjY_^|~2)1ns0pyj5F znJy8o3>d|GI*8!6>w)1cQf|=LmHQF}McP>S?AdramdbEx1pf}1)4jicclZOH-aF!A z$=9>%gduo!v51h+Y{`>SGwV-@yDiK$FqMcSq9Q6`Nw>RQe;z*&<{IsmqhIXEItaJ`MXqdVbcvlI>%3e<6)b zEAY@THhf-ey?UGKTsng7H0*x_x7;Vso5&Plh#q9gFaz#C-YxuebYFR0T_;ZrTl^&c zVc}g5ON=n;n5^7^EsGsFrUVIdj?SFaO#aVYBQ=}UPx*}3qz=V%O02Qg28YSgv17@V z3$6E?!z@+KYBEscowM*6-6*lP+K~g7*7?g>ilZRKLL7|1Rr6Qp~7u zm)+6W5uH z$t|8kYmkh^If^jNjJz-Al;Ltnz~(*c`=H&Re(jTWHFHdl(sX||kdK#u&4K1LnQ2Rc zamr^`D{`cMD9hB{rFXZ{OrDyxIEkNm*Zi9>)?Fp&w;Ag0@7clKj#`_j5ZrA<+GFrp zi`%Cw=ElJ<(IqQzrOCC`k48GD@Pj_{E1R)QK2AEi=*zxX+88#--81gqEho`WNA z>7Kvss07R*@Oi#_y5gsd>0v+dYlQ#KE+Cdj8e8@y ze0Qhvb-}>)g1c#h4difQfYeKgptP~=D^-CqEvxi8v4;-q zx0Lbun0rj09=+(-W!0vADfQ2bw5tAOY^j%gjd7tr6x`zo7CTRmrz%YCkH7hwe$Dzg z(9?BFt!4rEC}>ZkM);B-A3uDl!Z~In!#PG5=P4XJd>Lw*r9^%C^c&KW-MJU%9FrOl z%$DA{*OT3eWDw;h`@FFp&;x7 ztjHOMJRQmj4puG+GsCLim$1&LpKA=8_FPkf$q5CT*~?sCt;_yA2G=fh%w|=}sX`g2 z@S!YLI!jx}?stHkEM?!@M8dI^WXZ&R(;g!U{e>K|>O>6dnfstpX8`W#dJOaJ6d|}> z{NVZ6s3_Nw$!XlAJ|TC!?IR4fA&uoXj`+F6PgW5XdnAckOKX*)5l4`@$*jA5e9+F5 zno&pf3}41I0*$Az0&GxWmHAdZ85lTgvE5K*6<%&}Hq3ZZ*U{rdK65yu)&MuHfzI>! z?aMYx`sL|o>g-S$drY#;(jri{niBEtj&rwQHQdGm`as=87576IqhxR#(D+)RUQamg zN*Dc?|J1Bh(xgdq6nE{7AS;XMz0z7QQZQ;D+5t;PNLDEy|!ohq&|k9;oODf60nsbOf5*5u{9 zK?1fys`CLH#9EgZ0h$p1z8Q+hNP+aN-kRWUM_5_onBOK)aZ}v8GNQg zt9+<{5lSfD9ByPkD)YGW5m8Hh)}^ZLBN>^1cke z|18a~SL)dSeK9#w%4gyGGw$~|wg<^ho7FpuoGr-T++PGgdwUVyMmFKj%CY$MH=j-#%Z90Wg+cb9!AJ9vd!Puuv|c>=jEleZ4X*4~kYK~KtL)?A<=riX%c zP#mQfWyS~pVYWJG!*m8gDzbF~mY0V=zu~{!xVZ>>^)0EKW?@eBtXLBtJ;MKV*BuKv z?R7EN29xpGfqM|ps``)(t;M-a@4FYQ*yP}f|1a#YCTfl28G(JBr9?S1=fy;B95fIDj=jk+3l;=q1%UCu*4X&S*s zRA)-3f+rPFRU>eJ9YR*|2ZC-57X9zKD=Fl|b-4^I{b-+Tm(ptRi?^vn z!q9$ks3Fz`z`L+AZxKznZqf0}7yc&MY5x41$lqLvHC=ny0&+@K?TKZ0C*JM06 zn?{4jm8)aPdsQ8AHYwEwqWylwyf0crLR}(nO00YJJ(Z3pmtU&Fie4oxT}Sn9M-vxr zNVT>QD7@7U`|yWvrY%;_hIDsiU1rSLm0(pOzSfyoA!_rg3;}D7-??CkE_2BOIV<-0A!lPhgs6+7`V+3SWANTpWg? z-0u6rt_JOp6im#tSC>}St1Ai9B@k5VtE7XSZeMi9TkCft-afH$VA%E)! ztVH0zWvmL1wjs8q@n3>G-6|NP$G8MxXq<)dtqZ+F>+E19Q)lzMG?tV@*|?s(Xsph) zYS53X{y6iyu0lgY_tkN*tiCiE^c*+;QR;4f0>1)luaopMx{nYGbJ0bil{N(db4(v^ zqwLRQI=^0K5?zsV~$gB#!x@sX5uVNHmkFM+%8>APs82bQBcN-dzqj+~5WhDm+BR zp@J%lLq)un5z->sf_KXeF-T8%1CRSSDO#aod-GE^!96%CZ!d6)tCjO&3>jbXW}sXdB!#NN^S^#zO(<@!k!M<(p_oVT^U%2v5F!VzW+b zI&y=CS+2yEGg#@#79t7tdLz9BXx`nPk{f&uJJ&Uu~S!c30)o zG||}Nf@4hec%24k4};91OLWW`UFtV+>xJ3ID(v$Z*Ni((t)s`B)9*(*Kf)pv)vb{c zOLhAA>`PidmBjV+3zRaPctSp&$S$eugROt`&K7AQwg?^ql*>px0?RkM!nbe>RTIlM z6X4>t#`sB<%L&K$JJ$1@^vOk_(y0{}BwF$>xh2~5t2xV;hfjVa+K2vh!#ipq^X%5f zA~0a5PMItfPe;*=*FsAAO@$F-tAI@Iq;{)d+N@ic%Iw$0BlXKwnOQCz`Yq#a3|Xc0 zmq6tj1aodZV-mFR!bwZH%_q7QhE&k}5@Fm>EaqP@hJyJzFMBk~x9tIeR z8>w7B-GCyeMRbjr8cqzUpp+7b+0piu>ftf2R3=MZy2>iG_!Ii`;D_=;2TP>+w)UP*YRB#6#Pz? zPC6z`?)~KN#$ny74ZfvZ)UJvw-b$Sj*8Qh}s-t5z92#E4tdzis%brRd zkEyIc6xspWs=BHOr3wuvL!BoJcGYJpX1}itVcYQx z=V*_)Xqkp}V&7J;K!Y!oJxhIL?7wCC&E zoHpF#-d4namJl_))%;n_43-45UP>i`M2 zxgoprdht9R~A!(UsUII z6)l`@-tGak_V0F#iTZK5MH=R2^ApQ_;ao;n)(HolNI6=LvCqHKu!M5f(z2Eug^R}H zatM7+6xl!v6L%?WA`#``B2tmrMy$7_DG!t-OB1}vbxp*fqGwWrvCH!cMSnG%L1p}1 zQ@NmfD2~PRyp?EcHtd%5;oN$HCAA1=_cjOn4;{nKzF|6i1+F{=qkCV01BS{B$gQjd z+i60>VP-Fnt}GW>XAgG~qau7^kT?^dDe5X`S}bZSyH7O(zWHcW*h_4ebshdHJAG8G ztP)FDR6ZL=i($!Sr^oz}sddK;Sn-2RU{Jcn+vJ9NKEOA~f(^?)#y7~jr9ch6_~8B2 zP?>9cc{kH;z!JtpH+yV^BBRXb;G7F}<8wM~D0!w=m}yxjlU;zT(&G46hG|~G=679L z*N!wgxdKsQFUt4W_>~H9s$%+I>4`O0GFjub4>>Uz#e+3OeY|U(LeHn$zOL?k0ohyV zv<842K|`7dWd2g_A&J{;zz<0R)8Y3BtpYzkyV}@{&*LeNB=kpq+N!E~GGZcRnn{~+ z@cEV4m=Rx|mV3R0Q-o1PgR0Io5cahWV0){J`5ylnU-UV2q?aHNH#qOFB%Lquf)fZx zXdS52)>(ztHFWUqgApbH(Twe)?%|2p^f0e!$ks2V`h6D0HR~R1yw{qVvw}gXMvX=7 zBE`}<$Wb9(3>R?vub}PZV7mAoZTnxCd{`A2-t~pbJH<3e3@YJc7bM3Cc`RbbSNtGR z2@%X0=TsC4viX(5I}6)L5~a=Ckss6IY?(#oJ5g7;xvp!8I;`8?1ComBL2&gJJkEN{ znrtI$3d@b=RcNs4h2=FJP173!r6k7EWY(Rq4wQEZwC?^aQR3?1J*2tIK(UIZbvh0k zUl14niSb{O9Z%^zK^AYnPCqj<-b?p0JZpL%yk%5hIhRM6X^fh7FM4IB8&3~{Vcr{K z4dfa|jn`{Z1#A*r<;cl*AAHI4>!w*FD%!VdY+tlt#IIe9Mm^uNeIYAqPr;WdXTeYp z?s1>+?~Y;(oj(V6?CfvLNfEI_YYO-SjQdsWhM#Lzkc0OD{m-JYJ+U&&w7fKWxf{l{b3t7|(rxmT3f0(=3Y>|V^E-(ovu~{>+ z0VLe64}dYui~H^d{5T4jEAsT@?zJNZ9>%HPZj`FLBBfCSd{fOe7V1bYkO>>BCKnM= z!|{}+e;jLONNlAcTyI>V0{@;z?Qmz2YMz>8(y`*9U%Gri;bRGQ*!V8CUSW(R`iG}q z0wt33&#?knlXY%{o1>4;$<9xLWt71E5p8CA{9y#I5~=HZ5Vjf%<~wy0b5uRgCg}X6 z4@+45({IP#*MIR~hw&9j4`QZt)J$=*ozScvmJitS{gpj))u3^r*(add8o-AM_Eo;} zW!YSvv)@d#MDu{Jct381C^KraPqn7&Ans*OuGFmyDs!`rFbOecrmSp<=qw?qsN*l+ zfKjmbPCj{8h{p&diSTjw+tzitE)G|I$tvYW9GvYarqw@C3&`SLCJL{4w9i{2P^my~ zyD4d;d&F~Z;Aqs+S;Ja3&;51U1A@T;MZI@ltUh4LgWU=tDJJ!nF77S(*<-%TP~wTG zUIEX)PpC*X!qi7)n^2F1cFrNsn;y@%=nOz_M50PNazXW_#{TQyiDJ)OWx9i;jAMCX zhgyR*!wH)}e_mB^I)pFNTZ}d30vf;!3WRH+^Q!Q-tFflEOQ2E9b=66V&5qb?we<1d zd>?rG=X4tZX2Fdxr$yZ~dp4^q8EUlv4#>ho^O0d4kIRVJ`#p5=bnz}W0Vaj+c73X5 z6n?>^J8h&)c~pF%gum=xXip%T`^dQgE)iSR43>TWlD>I!#-Sa|t28gk@Cv)R5!&}< zW4?`dc*m&RI*8tx7tyv${i8_u3v!)(vjfB|{12Z=toqBH%w8J=EiK6UCPRglL_vPA zo&LIfm}of1u%uDZ^FTd$f*DleV6w8t@|k#mH4ES9^%$)On0k^Fqgyf*!TE4L0_fE; zQlndD_XoCFZFf^~wXK9!H9p-ttOrH{``-A_M=r|$nR}tC3HxA0;NwY565acO(BKWM zfj-36cX~={8v2DMPUO*F<2L(HFe+wX*X%`pB5_)19L|L9?<3Mu?zJ%fzd$rjva*mj>ZizpCT0mG&aaFH3;%6(bi*a5rm7 z=u}x~b;a)Hskb?Sd!H&RN0QJg*hDIMOM9WPb3Wv&17={F05`GLPNWUqlBK=kGe74` za51CRQP%R>DQ94OmpC@^bfG|EJ&*|sLWui3Le)`n!b{AzklH+TYIoGb*K1BHt_if- zNWvqg3~h^aBc|r#W38c)Vx`>+beUa>bj35!ud(_ux&nfqMf{LhUNJOKH>-^5hkC0d zha_5|Z1Ij^NZE#KEax{RT8F8_F!#3C^GKFa_W{C?%nA}KOTpQ_=KaTh!LpqjyL?p+&wa%pF6t?vsO3q3@V)zx-H68 zPQWxxfqf{z>y~EAWTH7!C`r#IOWs*8q%r)ry@XP{V@Z6yHp|8{k3xIMp&^|k1}K(O zyyI?xUW@6oh~qgj=L!3pPNRC*YJ+;%FAIWT34yJwWwyo0CR!eZe3rcNzxYcMt-rlA zjYUl$sM4VvW-Cs%=7>dfBVpsh-Hah8%=r!fy{Hc$7v16&BHTIQ9e0JzV#}zy9EH4> zH$5kUed*XV^nT8qLp*A`WH4mGVr^54lo#p~vcDW3NniCf+rD!M?`9ZK_V^fW zJLYv&k>av_@E!IPAw3UL(|amaSMuTHyUPOrX0WrhJuG_?50IRiuE2Oj9J#7Bl481O z>Ple=85?Vf*9j&59HK=ZidBTZhshzks0dM13Z^HF<*Sd?j-u!ROLwDKOD%fLcmjDY zq5B2a+XNIo$d^e2ZttBS?`@4{?z)I)e1^mBetWwFCmFXGO_?d*ajSNFj_Wt&a>N)| zj=6*HBYpRDDeQ;b0hsm80-;W22&Ch@9ZIux!|kq`EvPEXX4KY2590T!g&6r=Sjl(% z%6g1NB)j&P?(mH!t`B61gY@sSH**^6o2xac^!e9@lypM+pI&hrA1E4A6>NJ zZtU=m6uL5C&xu#z09Ti&7${p~Z5Zo|d?(sCG}g7l@<$9CG;qEDA8Bs^R7cSL3*rO_ zkf6bX6EwIxgy8NLG`P#f-7UDgySux)1;4nv`jUiRo@$4UWG}sux6qzo_0dNHK1Dx$R-8hnGeOpswM36WsEY7| zpoPS9H7pG1LM>l?Uk$mB{}xvH>7!e^=J~%W0T=bXP+5c+VITxSMlkLSe1#z6O?e%D z7A^*K3A~*M9aZ3^xSUi2G(sq(Hk)5S^TnP7u13*V{mf9~!Z1$Kssb66%3{Cd6b3I< zpkee?pb*PgfV7aG{%1>KDy&OMhJz*nPl&tIEGA{~-|bLo`mx84=?`E*?pc1_ zHld*vGF;&KdZ!855-Z;G`OceCC(H0yF;sUprAi%d;8#rfy!!rj{eh98JO6G+&RDG$ z8H8ETZaufMakh2aw=E`IjaFN-7-E=^BQeOU^pl@>?4mblykc}p^`Yphjk)t(E&_{s z5`C{M&c`lamhA8bLANu5D@C&0q+57Lu%6#X!{L{t=izT68m(_K#usp1+n8=)ToY!u z-5$Yu61Qt1uHqAZ9q5bs5|7y5U||&}Q#ib8%Gm3c^3jMbxYl272zbM6Y-#ngSral7 za>t#PT?SJB%?l&o&USB}60XwRb-X^n4v9E{ zHq>n_!V?(#6C$<;&mb*2h%^nVUl?i!V32lbN$<1p{#K|v`h=GlXjV? z*pOOyTT*^K2R>$W2wreKp{GV@Mt;Fd`>&y0)U@bJ5{Li|t0ymPJJ;MFJ7`~j3kUBO zptZPs#as3*ZP*sI$*v({Q`|G&bTN)nrukSY@?6D8;|15^kv)=_NCUSVl-q;OW~^h8 zuJbH(JM>K_qKCsU7GtY{&?hYFYtOWR^0ess$+J}vxWr{C)W*O>c|xL(WNfGM>%zA2Mt4Rb6TMg=!Vr#&0a zJh&bpMa}SjtH=x9_{}!8Cp&q`X^Vw2_f7DdbF!fh+>AM#8u0)v{q#60&(0S9#b4Kv z{Bm$}#+MCZGg{>EWXjkR14Kde0%K@A0ryV_@^05H73DB>$&gA2x*l#H#%RN=-et`Kyf;=dXM%I>sKstqnWN3q#XJjLD7=ka}qnZxDMay{xoWHc=Z2V1r^305!h-bd-UTy$~>86?-_vZN5 z=<;xSg!TVPD~<}8h~!p$zZv5J(ZxP)S|kS`ZZC(Q0RUCNSBYDs(tGQwmj$gY^{ThO z(-%>^LFWT6Z*U|VtKe}T0$1SK6*V+RG+_j1#buzDNU)?P{OSU4xyeC+@(dJ!T^ zU!P+=*XbhST(zmpIwsf>1gmUrcErnX${1Czk3UioIueNukw&Aw`{QNMYpyH{YS?m| zURs4SJz1$Z4vYuIa~p#UT{q9U`Fc#DWq59M42V3J|M0>>x-tsWXYOG^YExL~#OYUg zuxcgSc8ho8>B-N0@#F7B845Oj$fA&x%<%!)i3IFS3oZfxT8|P{@VIL4({~OaE@I53f~x zDK@W4w}3Sk*_;i88mXo*N~i=^yWQJ-J=xHmb=3WvK`29_x%a}1ovsJoJi;V1?%4be zS%!yuwolp6G9OHf(CdYRLd;MIvyP{TpX<#%$$1^XrP?&ysV^;&I5iAKRT6vh|$4W)_%Z=K7IGq6=eN>;x9QSSHG#JzoDblqaIP%-2Xno-vraa1{RoI8U)^V@a> z@wj+-YueO&4jQbY{Fq=9M8S3fRF9-`?wG=uruag3-r*LR`uWN~5>VHcW;a(#Xb)^D zM#x7$fU;~N$SjbPzV@WRARvh=ibKqQzOyHQw?2>{uikbdAduzRVdBT`^bev;Dbg3w zbD>7~>GvtA*oq|{CQ@?j&Y||x0daw~fGDo}F-p0rNf=(TT8VvwY_t9chx{0@>J*=h zEV++?>1|V1N}MJUO6fBWtui5L7(<&4ua3$jXHl=OP0FfrcR!CbxqOwI?nlXO-#>*h z;3j1PCs}g&lzqF?;|7L3aam`#HoWlW1l7M9sM}<ss>8XE(`lg3FZ6ac^!`!vuKaMJ`2UR~OC>1zoZV8hM_T1oBa(^PB4l zt*{InT;FqOg(ilG<6$OR=ecoQ%4as6*KLgi05+XE!`2-#kwN>*qUO@%KCgpymQGQG z&*6ljk@)&Fe+|OU*852r|Ng$gaL>W2@1`fkGZ9b@D$MirhrO)+ew!i+#C6)+z)s@+4o~+k@jkF z;d9iUS?3{2TPZK^hEn1nQqX{6gF}|vj1yHHoYB0wjyvlPb;-{< zW)!iU?&nPxTTU}xtS_uEMHi7rrx1;8di{+eS-5sk)I?laGh&Ik8$k<{vi`915SaES zhdlG2vV<~zXpHvJ3BW3`+hql17HZrPtioJdVm9ei_IdEFrPxxGLh7!9XCN>q3~!;X z{xq}w(dsQmBIhwuHg^z!42+tUGBs)h<5NX`R+p1sV!}gqy{AvCQ6xKaX{@8Q zMsM~6j{Y?FB>F=?;Q$Tutu^#d;|ntb)MV?P9W&eU|8-G2io2 zFbp=dxs6xjT8DsT)hPR7{R>qvWc&Er>UQbzF7Ln|6T z%3K2#t@Sr~Oj>M-DuXO}H#28_SH&L*{m;?8%dlpLTe&J9OaLP~t^TEt;|p10EF)K~ zWJGC4L+$+w=p%7>{1;=cb|S$jYxT}2I+q`90Uf3tKiRL!S)I{A0!PN;)CfCXO1R7e zo5f^VG&g8`1hUyJ3$y5-kSB*Flz{1XnXYa%Ug9P7v)0HrgaFWtshxn#2mlXfCL<OB2A-s9)ePvbf06h#$byXz^jU-X5z#Ip&gqbKRXIG zJ%Pc`3gTtgkKU3B9HVJN9^wy);4Tw?9Jkbh7?ZWAd}4W^+B0<#( z92dV9pc`lan1_`v09MJV|5$2=cCXyNumw?vG}OdL?EpzJ3SGmV>+alLw)~|fo+Km* z^ZlEi^bK}LcMnMoEZuVoVg$^pB5#=WcY*3N@`1;qnkziR&gGFNF!T1}@ybxTtI7>Kgr4%-BNWMTB@6uwV%q&HHzK&My5%e~YOv;%TE%2T71JIT|FqB}-u9Pvn7B%Uf!`U3U*^&YE^l>%_D~mUMb_4uI@3mzMWg?e;?hRG;cka$9a$p+Dj@_^Zyo;h%%p_^Gx?tM=UP zEOtPOMtyf}6G%a|d##0&Mh}10uYYD1bE9Mwmpz8)5WAPf_6p#wH+8lg)nDWAT0%yGz>sKb(5u0>uU={9$5J6xR*2@*A+RUKWLSg>LKtKlF>Zr+ zBfDtcTK7t5EcCRTI113_(*e<;2}9iG9*Yk6oEd`y4U;dU|vkq zM355N;v>*k`P_WGWrO+-bG?`}0twM9_$CNh2T=ORqNA76#9szEJn+em{{l6##c@zq z^2LM|{Ww7ZI2ABpqSJfzbOQnzaG^ zOU{$quS*^;0@0v^28sHOxQCgouEPSTFMsa|E}TOrIeM5IbiIC3hb+AVJ_1mIf?yK< z_20=ZTCorkTCp(8($pcGL5%S*o@)x?5PyN6fN}6t`isVvSgEbRIpTx2f%D+w)y12x zp0o^}1q#T0SP4z6QSmWm!bSv?=A?ynagQ8Cc#DDjZ6&^XziIcb8r~CPEA~yww}4BZ zT-!}l-pECIvd4sj%qVnG$Brr0RhW0+{m!zt-TjMOLL7ws%Iz-@A8moRv!dN0UPunE zb>D(zB0{XHX9~kX+J`ym__8cW4+A<4-h#gx+?t5I$7>>48fF3Zw6jkGTs621@D+xz zS*|t#&hmV{fqOP(w0~=N>ieWtvWd*55p|I_$j8L$Y1STMoMMeSvYFO>j&7O9 zf^-rQ4pNn{6MC=8>kI7+CRO5ZWcc!Qn6BDpTL;2TPUp|#s3P_-6OQNfJ%cU>O+Ow$ znu^rM6N8=`HfjFGMQ29oNsq-1=mtoH+n`U!i+}Z5^UcB%vpRFQqJAgbIOC9<ak{S|U&ga48D7+X<=RLnBIq4YBSGBD+Q3 zcE+QYik4O{YZK*s%1ki84Zxe_P;d1!IIzwoh8|hO-y@!HY}g)WM}C zXk}G>tgT%sNeAWx)PwRI|42XM*|7iM{2(ij2Nx>YFoy%_wQ-3NCie8%U{j@_pOjaX z&J{rwR1YGXlH-}NM}xTEiq<*)dE;0ud4TJRS|q0%cUD_}cbY0&w-vp1maBLS2(l(5 z8^D=#!)DXS&GyHbfv`C{8)VoOWQU<-X620*CI;s|?+Vef5Q80cBf=pdeEE~%(TDxZ zu|mVT==O7k-5(7!>MRMWZ&4iL-|UDaoe=2=)la(86{OIhxg7V-Q9`{sum^3ecR{PX}@+h0K$g4udTtksO$!Q3a>9i3#ys@KJfdVjrg_Dgs z9QYsxN!LUwI|QN_2KcEEdddqtRR{Pb#SZcAl~Jy$KC(f^lMb6*H`Fg|MbFf3=&Ssw z4F}eG4wJ;!!IgsyYiI=o+Chc_=Cp)37eH|+NOk`SHN2JbFSozV{HNJwqO&^ z`!Q&UhJA@S5yDhW#Ecp<_osnejSSq1#yf*Oh*@jFh{ysGV@Bm+Y5q4vsR1OmLWYjm z{klv0ElXm(>ean|K(#X=-ej(G^aGXv_BN4jwh7S^&O7aM5#cx&6s#F8r`XYkDeXBh zz(l_!%SPa$aryJfPle|Susx7Ib6bU=nO3i@d6jk(rCCCUx|KAGYw>8d4;ar8zq4RJ zs7=?gZPe{2t<@IHwfz2a*QyZz;HU~IA!Z<*8{DV{n8yP%idKaOtq41c_Qwu!OQ;yv zZCuL?V0Riq@wpK}*NQ-IYEx>pqf*Cu%vsgTA^kR;9H0X18)ImN{WlSiHkWHCiLMIs z@-q-+?-&9oQlEXvr$DslTLI<|T0-@N{O=3Pj*dbO@qTkpjF8G`k>!z7T&?Bd(@Tua zy1oXqIRh`mdyDsuems>_GXLaFR(aVg1x&jYZDH9@`dY*7*1-KTEb_r*sKDk+qlU4y znxhCE;qZYN6@0Phg^+Skk`Ay6)*#P@uMD(f+E2>aqReBbcKK5SLWO5W*1P|G?$uBj zu%Y+jzjy`3Gv5TbVe7;rL6ksqbosPP-PaOCZ3?3odlIE!30gvzM%#9C3H)}yR&F)$ z?FV*C=PD?AC-nm`^aU7&7~AiUrL*&g=4MNK&O2c02P;Sd@if!eokDK6#Y1$jRc znxgaq;$ws+y)UzcBoHH(gY}WVeFL6_ge4HYwwn7MnFx5;|0Kn1Y3STyDk>a^;${&K z`(s6YEV7}F(|MZGa3;#3ArHWcBEwZwX!`6`9*1EtJXo)w5RO^YtS=Gjo#`flh#H;2 zNFK0EmsS`bqp$Y!ZWTz1dHTa96+NSFLP4&e6U zPfQQ{6>~w}!Jb_@Kx-TqmM1Sy?h1P9Ps~=`)cjvXg`!s!fTEV#8w)-2NH{8;74@JPm#+3I#Tk>RjnEX~rZmC|`HgA8?X>FVx~Za;$5FNgFTOj=OQD}w$z+FlsV(62nZ6&yShB+&@qCE)Uc9nT*@E{XpCaDRR64ev1T1!_5f)9EeJ4f2N-KiL; zeVghloc4u$wKRBY0H;RKY}Q)L51FMVR9CejIl05b4HdI$0^s`i&7mA9i}s)uCstIM z3Xg(NkdDB->R5|Zm~Wy251I)T;Syj^KV86E07&HF09?l4aK0u~3`MfJOSv&rEMxSc zvJ`NNxn*e@n7aOd0M$<_O9Lj;D>ox|0@@km?f?1;W3Ho0E9O(~aQld$lYNsI;JCTb z=jEmO?-=Zo|8e$V+cKaj2o($6E(R1A-x%m9mt2JNnIoBrY<4MBS4^6${;Wb$YX!XF-T45QgMz>)^BdgKQ!OGRFhp#kPC?a4{>2{ zx1#qEg$O1d#7reucu^Y>f_~$W9s!#&6?Q!kEzal+q!RKm5Hjmgu3B`R)DYipb*X6;B23?&nJ*A%`#jOQ*ixYaCVF@Q#2`| zzmX>Wc0#P~#i=p}pVE!`fww^4TFx9n&#vZSF|_-37%xvs&RFdNPD z6#j{Hi24Y5l;20Ywrwwy?=tN#s2%oGllDQo?_+F42aosAPjATes82UZilGl~eF4G? zQ>Shx`#2r9*GOs?UfZcYKNI)gxB~czTX&l(!P8x7yl`LakyS@X3K{GH}sJ>8p#jxntFS(Il2_qf(#JoNf~mALJ)HE~F?J`HgtR_q|Ns30DdwW0bUG*uWLpN!e zci?b@e#k7sd()6Rj3v62J^$%GoqiK_|3lX}?A2V&&fu}mvF9c z+Z-&sSK9CV6yBBSjZhD5k!Sx|0QISHcQLq;@O=pKMN4)*^+Ei0@1THvQTFx)(iOek z({k~EC?!+(do};>{ZZLt-RnIjh1VA|fTG)$E{S(%)Q%Y3#XV&?`!i10J8&#RzR1oX zdr8V2qW}LW%{^`xL-PsbOV6k7C{%DzNrEOs=2D{-)Pv^qc)3RlGT8dmO8{bnqJl1K z4er87s4;NR5<(aE%@+D0V7QXXL5is_Q?1?)SX?!OA(C0jK7G9C6!Dh*_y~*sZ12?Z zQuoGcZS{6#4tG(A@=OBxVoAo&;@!z>+P*Xi@dg}=C}6J`s|QVAiOh#0FITaxu(Ld` zHufhb%@bQTKCOV!jY7S(Un|m3Yz8aD50%nT(9Q^dnDU;r*a}dIl zaOlB5wCmwpZfHYanwJ`c7vEsc(JwTUGJ;74tbj>YoVSif2CPwdKH8D@w%6v1Nks4{ z4>D4-0eH#xvY9Zj(<^Oi%>RXJ3l(_~%Ci*W&6*^ zog`t=Pf3R&Zl6AWk-uCn!GGHur8O47$wOPL$LA>Q5#}`{a_xYbNX59#qy%%wUNlyUiE%Wubc@R~U_=3-m1@_y!cPkI_t{gYY95 z%5(c|bk~rfWLP2jpk44(RXkugQ1M`nq>Cu<W~weI(%BmWVK|= zH#(Yv2<$WQhu2@6y@~!aprTSX{x2D{m`cBO6R}XCOLl?5#@e`L;mqL?7umKrbZ8IA zl>ER05p^Q8+nG_ldPZoj=b^;-p0IMt6tx+2llhoTWb%22n+QfCY;)b(sO#Hbug2il zIov`;yP(Jxlg9^wa*Zj)CpFM)P6w>4ySPWk6|qrawh6WQK>lS)D+WS5q{$^a{yLEc zibIG0LZdX*pA~h&XmojXIfg8zv_Y2pe&s0NL9J*J(h^2BYv!Dnw7LOdwn%&%$ zzEyBvZpVzI3aI~T+SU$D_(?GWr|uh;(4a(@`Zme6(WLe``#4axE1^We_nA(i#wKUGM8y}&_nRo^Y<_-h*oOl5 zp%CNp+jl>t zLBN;u)6PaC`L8!N9V+kNC;e*S;5H>LdZx%g(LPw04EohV%-J-=eB|`m$H02lJNGGk zLq-wz-^F4Ca`CdS8P$#%W}?Q2e>)b$U_n`aLd1Wy6qykY8}S>|LLtwfq}66(Os&CeKeY05S}I2YIoX>2f0Hk-#~$xnoNuWWP(B@t|H{g| z>*fN;#9qEBg%Hh@gpPST%T{MPJ|_J9U8`;?W^iyL7hh($e0W4v7@d8IyA!=q;gt92 z^axWTyFW$=Y{jbCzvDe2KX2j4OQdmZHIbnVJ+Hs}Cw7?Ocav-Kp?|s5Xs(PB_Mixo z(q}TpEbY={qUE5?q8M6_PIP`pc*tq>g<78IOp6=^9&YqGdX-7Ad(-mNO`>{$- zV>TZY_3Z%s#!H+LV%&UQ?Sx{&(bZI%c!^@?HQoUU^!jeHz{)R2-4i$Eu>cB4(^Jh3 z{M(g2X*`E{?<7kl>An4=gM24x5qN@eVz>RkO1_x+gaMh~aLeU9@?!dM^CL+p1+jo;cWFJw7I8F`-E%@#Fe8!;g+dW`=7f?mjz$bU&*E?~?|U|27wIq* zAx$kXQta52E6H`g!;8e_seNZFJi*-Kv>L0SB3bHu*kd7WQhq4fpRB2YE|HX}8(46S zJdB&}UT$1UJ=aXd#Yogxy{eYICUt=C%^=@az#ujaKWTe zdjdP}Eozt6l^j7)r?`F?Q3tc1`-W;|4r{8i{-oYQl3t^;Wi^DB5}R(u^2 zn(yTtSHUCv(P{O4bu8#0J75G?`Epf*$X-+c-ImXABYIwUv&Y7vrm9 zx|%qXNHg%Pots*>*_?FqMOy2$0dPs9^4I0x zMIWVE4rW@BCBqA{uaL#M#_rGijzw3@wvLfdoXsLtFE795+IIwU3?TI@607R7otM*P ze3xhUqoCeI%NfsyplA-qZ<5+_DAGQQ%tED~{~=O&GShU?Tv%n!)pa2H;s~xIgBP=t zXGNsWpd57W@un>CEDS%-^B{ikh85>PcYNO7^y<+M9{rDKenIS;I^P`zh>~ zhvzqE57Dj+@N<(2|D;V>&?ppPSC~gU2~s3exdaMht08yST1(dDVn!3r>B6{4qty?$ zE#o>(_T04=oYRohX{)txr(@$f%K!8DR!8RL@>E+ISrSv()&CFysPfwWi~L9RuJ1qG z{-r|y4>wEa|9$mOkpE|v|EBn#@&9k6{y$j!PXhlZg#T&ee@OO!OHc%;uHBLO2%xy$ zf^!QbM78?yUmZ*X%5B8MS_@|zoE_*rglu3+3(_j^TPPOl%I+bwSRPgvJV2sx^%Y+kW-&=Lex(%^`$61M_r>tSy8KH=UyxnPe~t zx~0nzLP(m{!DEleZIRxJ+osYb2Sf5(HJ_5+=J+^kk^<-w(T?6o$Zkb@+JM!(75wHTB_sh{xObce#MGkXaz4)&5z9nIwEvR0p3 zHG3#=^}5z#IQiCkoEr_dw9{9?31G{Zrj>5GWRr;kd4S-)cz~m`Bt?Z8dkgvXsFo`h z?kbu)!#Q^oIeMjQ3ifJDNQwvgYK*s))o|b-p9E$Yc@uf#l}MvuNBb#Ls;2LwN;{Cl zGqu~(SCdH|VUMSY{H13L4z3Z##IbdS_cSs++mw~4?@6AR#dKrZ)irewy{Ot`Fh!TCCqyH=&OcR_Wb`Dbmo=A10Zn>(Nqv&TP)wH(C!J$d0wVfG~78^R;n}F#W*(t=t9QZj&!{(7KNLI29F9v z+0{&Hu|6y^u890LAQC`y0ZxZdJ+`;@I0{8rN07TcWjoJf2o%1MdD@M12lBSSeOMRo zVn2uRK*}a{rTlWMj-icvqZHZg=R70Zhz^L2%}w!u_W*TNY_%>K_h zuH0*WFGDfWZgMZ$!alx9Pv@*B*{dc*sj!5}BD~&#-&=8qVoU+xh|u@7xfaDG3Xi8@PMdLfSj|-_}BOzgHdlcmBeAarM9Q zPl7=xVaPq0{?yjkr?0pw_rrE?(*f5Q&+0JusheDWGdr?mkbUaC_%Va%!g&jqHx;Dp z25&+Ni7DHrR0t*QaOrbr%*9G9(~FJ^&i{!IQ`Bdy17cWm%@`FAUIaE+nr+1pHZJUS*cgpsJ7@s}T8sOTgd4~*h_|Ik&_V%cEk=XAH~r?i=%&Ak933lH1a z&G`bUM3I4LBfhoI3XNiR)G_B!-azgZT@4?STWOW<3iSy{k_nn zSvj7Z_jsHm zS>j_kG`rf3Lu_=K*?EyI4~{M-Nq3(tvn+1YRT_9!#)xTuc+VjFzkACcLz}`gAd6i= z5zr2WR16K^|LOn1XvQoHS{G4uO>^o|iy_YPkb?0u~xNSPJE( zk~=?&mq?Ev1+!O+N?E53E1-6M$PhwN+vVD}l(QPAC^Ao*5m#$^K%et26DDla14}%b^K`)I#`V-w@=g zfZ$p5cR9DYGMx*B-&7P1!vo9{9=%w8`=YNOlC!^!p&cmX-@?_hE(69+ZJJ@`Fst77 zp;rCXp|>DO&FxxVNqB+2gcugl>#AeU6=`sW;EGS}aZprfNaUFk#h$ka>v9iPoW}et zewEG415UDxNe90=J zOOIs2u@X<78%Q*?_EXNI>G+fN*z|fmk0s^6;G>P@^R?!i6M6d8aLjxd>Q=n`mzVdI z)&w$1tDUBE#T$*V2C1F*FSRMqai&sXi%fWHUfB+)_X1yAN64ZrWTHvfwRgvaNG=ij z20u>^qTP2lH$|~-qde&2^uv=C^<=3rX6sWL1|xp|5)xd{-pb-5b~C z@=0v{`ra+^wn(o3J{<9~bW4GB{j~Ne>3U~XQt87(bj`dxan_YJ*c@}e`#{IGvp9

Tr4EJ4tj4(&P8<@tV{xbe_<% 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 literal 30679 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 \ No newline at end of file diff --git a/tex/master-thesis-peters.tex b/tex/master-thesis-peters.tex index 4f1c8c6..f280605 100644 --- a/tex/master-thesis-peters.tex +++ b/tex/master-thesis-peters.tex @@ -220,7 +220,7 @@ \chapter*{Selbstständigkeitserklärung} Hiermit erkläre ich, Martin Peters, dass ich die vorliegende Masterarbeit selbständig angefertigt habe. Es wurden nur die in der Arbeit ausdrücklich benannten Quellen und Hilfsmittel benutzt. Wörtlich oder sinngemä\ss \ übernommenes Gedankengut habe ich als solches kenntlich gemacht. - \vspace{15mm} + \vspace{25mm} %\hspace{5mm} \hfil diff --git a/tex/tables/100-knx-ack.tex b/tex/tables/100-knx-ack.tex index 41603dd..eb1a591 100644 --- a/tex/tables/100-knx-ack.tex +++ b/tex/tables/100-knx-ack.tex @@ -15,6 +15,6 @@ BUSY & 1 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\\midrule NACK + BUSY & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\\bottomrule \end{tabularx} - \caption[\knx acknowledge telegram]{\knx short acknowledge telegram.} + \caption[KNX acknowledge telegram]{\gls{knx} short acknowledge telegram.} \label{tab:background:bas:knx:proto:ack} \end{table} \ No newline at end of file diff --git a/tex/tables/100-knx-ctrl.tex b/tex/tables/100-knx-ctrl.tex index 2af54a9..4765860 100644 --- a/tex/tables/100-knx-ctrl.tex +++ b/tex/tables/100-knx-ctrl.tex @@ -17,6 +17,6 @@ Poll Telegram & 1 & 1 & 1 & 1 & 0 & 0 & \multicolumn{2}{c|}{ } \\\midrule Acknowledge Telegram & \multicolumn{2}{c|}{ } & 0 &0 & \multicolumn{2}{c|}{ } & \multicolumn{2}{c|}{ } \\\bottomrule \end{tabularx} - \caption[\knx CTRL Byte]{\knx CTRL Byte. Telegram Type (TT), Repeat (R), Acknowledge (A), and Priority (P). cf. \textcite{Sokollik2017}} + \caption[KNX CTRL Byte]{\gls{knx} CTRL Byte. Telegram Type (TT), Repeat (R), Acknowledge (A), and Priority (P). cf. \textcite{Sokollik2017}} \label{tab:background:bas:knx:proto:ctrl} \end{table} \ No newline at end of file diff --git a/tex/tables/100-knx-ctrle.tex b/tex/tables/100-knx-ctrle.tex index 0194dc6..c0f899b 100644 --- a/tex/tables/100-knx-ctrle.tex +++ b/tex/tables/100-knx-ctrle.tex @@ -13,6 +13,6 @@ Bit & 7 & 6 & 5 & 4 & 3 & 2 & 1 & 0 \\\midrule Function & AT & \multicolumn{3}{c|}{Hops} & \multicolumn{4}{c|}{EFF} \\\bottomrule \end{tabularx} - \caption[\knx CTRLE Byte]{\knx CTRLE Byte. Address Type (AT), Hop Count, and Extended Frame Format (EFF). cf. \textcite{Sokollik2017}} + \caption[KNX CTRLE Byte]{\gls{knx} CTRLE Byte. Address Type (AT), Hop Count, and Extended Frame Format (EFF). cf. \textcite{Sokollik2017}} \label{tab:background:bas:knx:proto:ctrle} \end{table} \ No newline at end of file diff --git a/tex/tables/100-knx-data.tex b/tex/tables/100-knx-data.tex index 18b84a3..8de6f25 100644 --- a/tex/tables/100-knx-data.tex +++ b/tex/tables/100-knx-data.tex @@ -21,7 +21,7 @@ Bit & & & & & & & & & & & & & & & & & & & & & & & & \\\midrule Function & \multicolumn{16}{c|}{Payload $n+1$ Bytes} & \multicolumn{8}{c|}{Parity} \\\bottomrule \end{tabularx} - \caption[Standard KNX data telegram]{Standard \acs{knx} data telegram with $2$ to $16$ bytes of payload. Control Byte (CTRL) cf. Table~\ref{tab:background:bas:knx:proto:ctrl}, Source Address, Destination Address cf. Table~\ref{tab:background:bas:knx:topo:addr}, Address Type (AT), Hop Count (Hops), Payload Length (Length), Payload, and Parity.} + \caption[Standard KNX data telegram]{Standard \gls{knx} data telegram with $2$ to $16$ bytes of payload. Control Byte (CTRL) cf. Table~\ref{tab:background:bas:knx:proto:ctrl}, Source Address, Destination Address cf. Table~\ref{tab:background:bas:knx:topo:addr}, Address Type (AT), Hop Count (Hops), Payload Length (Length), Payload, and Parity.} \label{tab:background:bas:knx:proto:knx-standard} \end{table} @@ -50,6 +50,6 @@ Bit & & & & & & & & & \multicolumn{16}{c|}{ } \\\cmidrule{1-9} Function & \multicolumn{8}{c|}{Parity} & \multicolumn{16}{c|}{ } \\\bottomrule \end{tabularx} - \caption[Extended KNX data telegram]{Extended \acs{knx} data telegram with $2$ to $255$ bytes of payload. Control Byte (CTRL) cf. Table~\ref{tab:background:bas:knx:proto:ctrl}, Extended Control Byte (CTRLE) cf. Table~\ref{tab:background:bas:knx:proto:ctrle}, Source Address, Destination Address cf. Table~\ref{tab:background:bas:knx:topo:addr}, Payload Length (Length), Payload, and Parity.} + \caption[Extended KNX data telegram]{Extended \gls{knx} data telegram with $2$ to $255$ bytes of payload. Control Byte (CTRL) cf. Table~\ref{tab:background:bas:knx:proto:ctrl}, Extended Control Byte (CTRLE) cf. Table~\ref{tab:background:bas:knx:proto:ctrle}, Source Address, Destination Address cf. Table~\ref{tab:background:bas:knx:topo:addr}, Payload Length (Length), Payload, and Parity.} \label{tab:background:bas:knx:proto:knx-extended} \end{table} \ No newline at end of file diff --git a/tex/tables/100-knx-poll.tex b/tex/tables/100-knx-poll.tex index e4b7d44..10fdd7f 100644 --- a/tex/tables/100-knx-poll.tex +++ b/tex/tables/100-knx-poll.tex @@ -19,6 +19,6 @@ Bit & & & & & & & & & \multicolumn{16}{c|}{ } \\\cmidrule{1-9} Function & \multicolumn{8}{c|}{Parity} & \multicolumn{16}{c|}{ } \\\bottomrule \end{tabularx} - \caption[\knx poll telegram]{\knx poll telegram. Control Byte (CTRL) cf. Table~\ref{tab:background:bas:knx:proto:ctrl}, Source Address, Destination Address cf. Table~\ref{tab:background:bas:knx:topo:addr}, expected length of poll data (poll data), and Parity.} + \caption[KNX poll telegram]{\gls{knx} poll telegram. Control Byte (CTRL) cf. Table~\ref{tab:background:bas:knx:proto:ctrl}, Source Address, Destination Address cf. Table~\ref{tab:background:bas:knx:topo:addr}, expected length of poll data (poll data), and Parity.} \label{tab:background:bas:knx:proto:knx-poll} \end{table} \ No newline at end of file diff --git a/tex/tables/100-knx-tpci-apci.tex b/tex/tables/100-knx-tpci-apci.tex index b3f2efd..a1bc206 100644 --- a/tex/tables/100-knx-tpci-apci.tex +++ b/tex/tables/100-knx-tpci-apci.tex @@ -13,6 +13,6 @@ & DC & No & \multicolumn{4}{c|}{Seq. Number} & \multicolumn{10}{c|}{} \\\bottomrule \end{tabularx} - \caption[KNX TPCI/APCI structure in a standard data telegram]{\acrshort{knx} \acrshort{tpci}/\acrshort{apci} structure in a standard data telegram. Data/Control flag (DC), Numbered/Unnumbered flag (No), Sequence Number (Seq. Number).} + \caption[KNX TPCI/APCI structure in a standard data telegram]{\gls{knx} \acrshort{tpci}/\acrshort{apci} structure in a standard data telegram. Data/Control flag (DC), Numbered/Unnumbered flag (No), Sequence Number (Seq. Number).} \label{tab:background:bas:knx:comm:tpci-apci} \end{table} \ No newline at end of file