From f0956a6246df22b169ada69b0f752eca86a2e497 Mon Sep 17 00:00:00 2001 From: Derek Christ Date: Fri, 8 Mar 2024 18:48:22 +0100 Subject: [PATCH] Complete the result chapter and conclusion --- src/chapters/conclusion.tex | 35 ++++++++++++++++--------- src/chapters/dram.tex | 2 +- src/chapters/implementation/vm.tex | 5 ++-- src/chapters/introduction.tex | 8 +++--- src/chapters/pim.tex | 8 +++--- src/chapters/results.tex | 29 ++++++++++++++++----- src/images/hbm.pdf | Bin 71528 -> 71424 bytes src/plots/runtime_tables/tesla.csv | 8 +++--- src/tables/torch.csv | 40 ++++++++++++++--------------- 9 files changed, 82 insertions(+), 53 deletions(-) diff --git a/src/chapters/conclusion.tex b/src/chapters/conclusion.tex index e794d55..ad419c6 100644 --- a/src/chapters/conclusion.tex +++ b/src/chapters/conclusion.tex @@ -4,27 +4,38 @@ In this thesis, the applicability of \ac{pim} was explored, taking into account the highly demanded \ac{dnn} algorithms for \ac{ai} applications. A general overview of different types of \ac{pim} implementations was given, with some concrete implementations highlighted in detail. The \ac{pim} implementation of the major \ac{dram} vendor Samsung, \ac{fimdram}/\aca{fimdram}, was specifically discussed and analyzed. -A working \ac{vp} of \aca{fimdram}, in the form of a software model, was developed, making it possible to explore the performance gain of \ac{pim} for various different applications in an easy and flexible way. -It was found that, ... (TODO: hier Ergebnisse). +A working \ac{vp} of \aca{fimdram}, in the form of a software model, has been developed, as well as a software support library to enable the use of the \aca{fimdram} processing units from a user application. +This made it possible to explore the performance gain of \ac{pim} for different workloads in a simple and flexible way. -However, there is still room for improvement in the software model or the comparison methodology, which will be the subject of future work. -Firstly, the developed software library and the implemented model are not yet a drop-in replacement for the real \aca{fimdram} implementation due to the custom communication protocol between the host processor and the \ac{pim} processing units, used to implement the mode switching and transferring of the microkernels. +It was found that \ac{pim} can provide a speedup of up to $\qty{23.9}{\times}$ for level 1 \ac{blas} vector operations and up to $\qty{62.5}{\times}$ for level 2 \ac{blas} operations. +While these results may not strictly represent a real-world system, an achievable upper bound of speedups of $\qty{17.6}{\times}$ and $\qty{9.0}{\times}$ could be determined using a hypothetical infinite compute system. +This achieved speedup of $\qty{9.0}{\times}$ for the \ac{gemv} routine largely matches the number of Samsung's real-world implementation of \aca{fimdram} at about $\qty{8.3}{\times}$. +In addition to the numbers presented by Samsung, the same simulation workloads were run on two real \ac{gpu} systems, both with \aca{hbm}, and their runtimes were compared. + +However, there is still room for improvement in the software model and the comparison methodology, which will be the subject of future work. +Firstly, the developed software library and the implemented model are not yet a drop-in replacement for the real \aca{fimdram} implementation due to the custom communication protocol between the host processor and the \ac{pim} processing units, which is used to implement the mode switching and the transfer of the microkernels. For this, more detailed information is required from Samsung, as the exact interface of \aca{fimdram} is not described in the published papers \cite{kwon2021}, \cite{lee2021} and \cite{kang2022}. To ease the currently error-prone microkernel development process, the software library could help the developer by providing building blocks that assemble the microkernel and simultaneously generate the necessary \ac{ld} and \ac{st} instructions to execute the kernel. -In addition, the current bare-metal deployment of the software cannot realistically be used to accelerate real-world \ac{dnn} applications. + +The current bare-metal deployment of the user application cannot realistically be used to accelerate complex real-world \ac{dnn} applications. Instead, \aca{fimdram} should be able to be used on a Linux system, which would require the integration of the software support library into a Linux device driver. To take into account the special alignment requirements of the \ac{pim} data structures, this device driver must also carefully consider the virtual address translation of the Linux kernel, possibly making use of so-called \acp{hugetlb}, as the alignment requirements exceed the default page size of $\qty{4}{\kibi\byte}$. -For a better evaluation of the performance gains of \aca{fimdram}, it should be also compared with real-world \ac{dnn} applications. -Effects such as the initialization overhead of \aca{fimdram} can only be evaluated in such an environment. -Furthermore, the integration of \aca{fimdram} should be extended to \acp{gpu} or \acp{tpu}, so that the comparison can be extended to the deployment of the real \ac{dnn} applications. +For a better evaluation of the performance gains of \aca{fimdram}, it should then be compared with real-world \ac{dnn} applications. +Effects such as the initialization overhead of \aca{fimdram} can only be realistically evaluated in such an environment. +Furthermore, the support software implementation for \aca{fimdram} should be extended to execute on the provided \ac{gpu} of gem5, so that the comparison can be extended to the deployment of real \ac{dnn} applications. +This would provide a considerably better basis for analyzing the effects of \ac{pim} on real applications running on representative hardware models. Further research could also investigate whether the library-based approach of leveraging \ac{pim} could be replaced by a compiler-based approach. -A special compiler extension would be able to generate the necessary \ac{ld} and \ac{st} instructions by analyzing the data types of the operands. -This extension might also make use of so-called non-temporal instructions that bypass the cache hierarchy on a per-instruction basis. +A special compiler extension would be able to generate the necessary \ac{ld} and \ac{st} instructions by analyzing the data types of the operands and the provided arithmetic operation. +This extension could also make use of so-called non-temporal instructions, which bypass the cache hierarchy on a per-instruction basis instead of preallocating the entire \ac{pim}-enabled memory as non-cacheable. -In conclusion, \ac{pim} is a promising approach to address the future processing needs of \ac{ai} and possibly other applications. -Not only the architecture itself has to be considered, but also the integration of \ac{pim} into the applications at the software level. +In addition to the performance comparison, further research should also model and compare the power efficiency gain of \ac{pim} to the non-\ac{pim} case. +Since \ac{pim} not only provides a shorter computation time per operation, but also does not actually drive the memory data bus during operation, it promises good improvements in this area. +However, this would require a detailed performance model of both \aca{hbm} and \aca{fimdram}. + +In conclusion, \ac{pim} is a promising approach to address the future processing and power efficiency needs of \ac{ai} and possibly other applications. +Research needs to consider not only the architecture itself, but also the integration of \ac{pim} into applications at the software level. By overcoming these challenges, \ac{pim} could be part of the solution to increase the performance and energy efficiency of future computing platforms. % what to do better: diff --git a/src/chapters/dram.tex b/src/chapters/dram.tex index 44ab5a6..cc0892e 100644 --- a/src/chapters/dram.tex +++ b/src/chapters/dram.tex @@ -128,6 +128,6 @@ In the center of the die, the \acp{tsv} connect the die to the next die above it \end{figure} % still, bandwidth requirements of new AI applications are not met by HBM2:waq -Although \aca{hbm} provides a high amount of bandwidth, many modern \acp{dnn} applications reside in the memory-bounded limitations. +Although \aca{hbm} provides a high amount of bandwidth, many modern \acp{dnn} applications reside in the memory-bound limitations. While one approach would be to further increase the bandwidth by integrating more stacks on the silicon interposer, other constraints such as thermal limits or the limited number of \ac{io} connections on the interposer may make this impractical \cite{lee2021}. Another approach could be \acf{pim}: Using \ac{hbm}'s 2.5D architecture, it is possible to incorporate additional compute units directly into the memory stacks, increasing the achievable parallel bandwidth and reducing the burden of transferring all the data to the host processor for performing operations on it. diff --git a/src/chapters/implementation/vm.tex b/src/chapters/implementation/vm.tex index 8574f51..d26fbbf 100644 --- a/src/chapters/implementation/vm.tex +++ b/src/chapters/implementation/vm.tex @@ -6,7 +6,8 @@ To implement \aca{fimdram} in \aca{hbm}, the \ac{dram} model of DRAMSys has to b They also need to be provided it with the burst data from the \acp{ssa} as well as the burst address to calculate the register indices in the \ac{aam} operation mode. However, no changes are required in the frontend or backend of DRAMSys, as already described in \cref{sec:pim_fim} no changes are required in the memory controller. In addition, since a single \ac{dram} \ac{rd} or \ac{wr} command triggers the execution of a single microkernel instruction, the processing unit is fully synchronized with the read and write operations of the \ac{dram}. -As a result, the \aca{fimdram} model itself does not need to model any timing behavior: its submodel is essentially untimed, since it is already synchronized with the operation of the \ac{dram} model of DRAMSys. +As a result, the \aca{fimdram} model itself does not need to model any timing behavior: +Its submodel is essentially untimed, since it is already synchronized with the operation of the \ac{dram} model of DRAMSys. This leads to a significantly simplified model, since the internal pipeline stages of \aca{fimdram} do not need to be modeled, but only the functional behavior of a processing unit to the outside. While \aca{fimdram} operates in the default \ac{sb} mode, it behaves exactly like a normal \aca{hbm} memory. @@ -21,7 +22,7 @@ With more information from Samsung on how the actual mechanism is implemented, t When entering \ac{ab} mode, the \ac{dram} model ignores the specific bank address of incoming \ac{wr} commands and internally performs the write operation for either all even or all odd banks of the \ac{pch}, depending on the parity of the original bank index. This mode can be used by the host to initialize the input vector chunk interleaving as described in \cref{sec:memory_layout}, or to initialize the \ac{crf} of the processing unit with the microkernel, which should be the same for all operating banks. -After the transition to the \ac{ab} mode, the \ac{dram} can further transition to the \ac{ab}-\ac{pim} mode, which allows the execution of instructions in the processing units. +After the transition to the \ac{ab} mode, the \ac{dram} can further transition to the \ac{abp} mode, which allows the execution of instructions in the processing units. The \ac{abp} mode is similar to the \ac{ab} mode in that it also ignores the concrete bank address except for its parity, while additionally passing the column and row address and, in the case of a read, also the respective fetched bank data to the processing units. In the case of a write access, the output of the processing unit is written directly into the corresponding bank, ignoring the actual data of the transaction object coming from the host processor. This is equivalent to the real \aca{fimdram} implementation, where the global \ac{io} bus of the memory is not actually driven, and all data movement is done internally in the banks. diff --git a/src/chapters/introduction.tex b/src/chapters/introduction.tex index 8692858..aacbc81 100644 --- a/src/chapters/introduction.tex +++ b/src/chapters/introduction.tex @@ -28,8 +28,8 @@ In recent years, domain-specific accelerators, such as \acp{gpu} or \acp{tpu} ha However, research must also take into account off-chip memory - moving data between the computation unit and the \ac{dram} is very costly, as fetching operands consumes more power than performing the computation on them itself. While performing a double precision floating point operation on a $\qty{28}{\nano\meter}$ technology might consume an energy of about $\qty{20}{\pico\joule}$, fetching the operands from \ac{dram} consumes almost 3 orders of magnitude more energy at about $\qty{16}{\nano\joule}$ \cite{dally2010}. -Furthermore, many types of \acp{dnn} used for language and speech processing, such as \acp{rnn}, \acp{mlp} and some layers of \acp{cnn}, are severely limited by the memory bandwidth that the \ac{dram} can provide, making them \textit{memory-bounded} \cite{he2020}. -In contrast, compute-intensive workloads, such as visual processing, are referred to as \textit{compute-bounded}. +Furthermore, many types of \acp{dnn} used for language and speech processing, such as \acp{rnn}, \acp{mlp} and some layers of \acp{cnn}, are severely limited by the memory bandwidth that the \ac{dram} can provide, making them \textit{memory-bound} \cite{he2020}. +In contrast, compute-intensive workloads, such as visual processing, are referred to as \textit{compute-bound}. \begin{figure}[!ht] \centering @@ -41,9 +41,9 @@ In contrast, compute-intensive workloads, such as visual processing, are referre In the past, specialized types of \ac{dram} such as \ac{hbm} have been able to meet the high bandwidth requirements. However, recent \ac{ai} technologies require even greater bandwidth than \ac{hbm} can provide \cite{kwon2021}. -All things considered, to meet the need for more energy-efficient computing systems, which are increasingly becoming memory-bounded, new approaches to computing are required. +All things considered, to meet the need for more energy-efficient computing systems, which are increasingly becoming memory-bound, new approaches to computing are required. This has led researchers to reconsider past \ac{pim} architectures and advance them further \cite{lee2021}. -\Ac{pim} integrates computational logic into the \ac{dram} itself, to exploit minimal data movement cost and extensive internal data parallelism \cite{sudarshan2022}, making it a good fit for memory-bounded problems. +\Ac{pim} integrates computational logic into the \ac{dram} itself, to exploit minimal data movement cost and extensive internal data parallelism \cite{sudarshan2022}, making it a good fit for memory-bound problems. This work analyzes various \ac{pim} architectures, identifies the challenges of integrating them into state-of-the-art \acp{dram}, examines the changes required in the way applications lay out their data in memory and explores a \ac{pim} implementation from one of the leading \ac{dram} vendors. The remainder of this work is structured as follows: diff --git a/src/chapters/pim.tex b/src/chapters/pim.tex index 6da32e2..4a46ccc 100644 --- a/src/chapters/pim.tex +++ b/src/chapters/pim.tex @@ -151,7 +151,7 @@ The 16-wide \ac{simd} units correspond to the 256-bit prefetch architecture of \ As all \ac{pim} units operate in parallel, with 16 banks per \ac{pch}, a singular memory access loads a total of $\qty{256}{\bit}\cdot\qty{8}{processing\ units}=\qty{2048}{\bit}$ into the \acp{fpu}. As a result, the theoretical internal bandwidth of \aca{fimdram} is $\qty{8}{\times}$ higher than the external bus bandwidth to the host processor. -\Ac{hbm}-\ac{pim} defines three operating modes: +\Aca{fimdram} defines three operating modes: \begin{enumerate} \item \textbf{\Ac{sb} Mode}: This is the default operating mode, where \aca{fimdram} has identical behavior to normal \aca{hbm} memory. @@ -165,13 +165,13 @@ As a result, the theoretical internal bandwidth of \aca{fimdram} is $\qty{8}{\ti In addition, the \ac{io} circuits of the \ac{dram} are completely disabled in this mode, reducing the power required during \ac{pim} operation. \end{enumerate} -Both in \ac{ab} mode and in \ac{ab}-\ac{pim} mode, the total \aca{hbm} bandwidth per \ac{pch} of $\qty[per-mode=symbol]{16}{\giga\byte\per\second}$ is $\qty{8}{\times}$ higher with $\qty[per-mode=symbol]{128}{\giga\byte\per\second}$ or in total $\qty[per-mode=symbol]{2}{\tera\byte\per\second}$ for 16 \acp{pch}. +Both in \ac{ab} mode and in \ac{abp} mode, the total \aca{hbm} bandwidth per \ac{pch} of $\qty[per-mode=symbol]{16}{\giga\byte\per\second}$ is $\qty{8}{\times}$ higher with $\qty[per-mode=symbol]{128}{\giga\byte\per\second}$ or in total $\qty[per-mode=symbol]{2}{\tera\byte\per\second}$ for 16 \acp{pch}. \subsubsection{Processing Unit} Due to the focus on \ac{dnn} applications in \aca{fimdram}, the native data type for the \acp{fpu} is \ac{fp16}, which is motivated by the significantly lower area and power requirements for \acp{fpu} compared to \ac{fp32}. In addition, \ac{fp16} is well-supported on modern processor architectures such as ARMv8, which not only include \ac{fp16} \acp{fpu} themselves, but also support \ac{simd} operations using special vector registers. -The \ac{simd} \ac{fpu} of the processing units is implemented once as a \ac{fp16} multiplier unit, and once as a \ac{fp16} adder unit, providing support for these basic algorithmic operations. +The \ac{simd} \acp{fpu} of the processing units is implemented once as a \ac{fp16} multiplier unit, and once as a \ac{fp16} adder unit, providing support for these basic algorithmic operations. In addition to the \acp{fpu}, a processing unit consists also of \acp{crf}, \acp{srf} and \acp{grf}. The \ac{crf} acts as an instruction buffer, holding the 32 32-bit instructions to be executed by the processor when performing a memory access. One program that is stored in the \ac{crf} is called a \textit{microkernel}. @@ -406,7 +406,7 @@ The following \cref{sec:vp} introduces the concept of virtual prototyping, which \begin{landscape} \begin{figure} \input{images/matrix_layout} -\caption[Mapping of the weight matrix onto the memory banks and its layout in the linear address space.]{Mapping of the weight matrix onto the memory banks and its layout in the linear address space.} +\caption{Mapping of the weight matrix onto the memory banks and its layout in the linear address space.} \label{img:matrix_layout} \end{figure} \end{landscape} diff --git a/src/chapters/results.tex b/src/chapters/results.tex index aef4f8d..ff94cd8 100644 --- a/src/chapters/results.tex +++ b/src/chapters/results.tex @@ -83,7 +83,7 @@ This allows an exaggerated evaluation of the performance gains of \ac{pim} in an % dann HAXPY The first set of benchmarks analyzes the speedup of \aca{fimdram} for various vector operations, namely an element-wise vector add operation (VADD), an element-wise vector multiply operation (VMUL), and a \ac{haxpy} operation. -Such vector operations have a low operational density and are particularly memory-bounded because there is no data reuse at all and two input operands must be loaded for each operation. +Such vector operations have a low operational density and are particularly memory-bound because there is no data reuse at all and two input operands must be loaded for each operation. As a result, the on-chip cache does not accelerate such workloads because all operand data must be fetched from memory anyway. The workloads adhere to the following calculation patterns: @@ -148,7 +148,7 @@ As all speedup values are well above 1, it can be concluded that even the smalle \end{figure} In addition to the generic ARM-based system, the same benchmarks were run on the hypothetical infinite compute system, the results of which are shown in \cref{fig:vector_infinite}. -As it can be seen, the achievable speedup in the completely memory-bounded system is with a range of $\qtyrange{10.2}{17.6}{\times}$ lower than in the generic system. +As it can be seen, the achievable speedup in the completely memory-bound system is with a range of $\qtyrange{10.2}{17.6}{\times}$ lower than in the generic system. This is expected as the system becomes completely memory-bound and no longer relies on the relatively slow ARM processor. The variance in speedup between different vector dimensions is also fairly low. % For the \ac{haxpy} benchmark, the smaller variance of $\qtyrange{2.0}{2.4}{\times}$ can be interpreted as follows: @@ -263,7 +263,7 @@ Therefore, the simulations can be directly compared to gain a good understanding Each of Samsung's benchmarks is run with different batch sizes, where a larger batch size allows for better cache utilization as multiple operations are performed on the same data set, making the workload less memory-bound and therefore \ac{pim} less effective. All the microbenchmarks discussed so far do not perform batching, so all comparisons are made against the results for the batch size of 1, which correspond to the blue bars in \cref{fig:samsung_speedup}. -Since the Samsung \ac{fpga} platform can be assumed to be a highly optimized accelerator, the infinite compute approach would be a more viable baseline for comparison than the \ac{cpu} approach, as both systems should be operating in the memory-bounded region. +Since the Samsung \ac{fpga} platform can be assumed to be a highly optimized accelerator, the infinite compute approach would be a more viable baseline for comparison than the \ac{cpu} approach, as both systems should be operating in the memory-bound region. \begin{figure} \centering @@ -284,9 +284,16 @@ In summary, the results for the VADD workload show some deviation from the real- \subsubsection{Comparison to Real Hardware} In addition to comparing Samsung's real hardware implementation, the same benchmarks of the simulations performed are run on two real \ac{gpu} systems, here referred to as Vega and Tesla. -The former system is the consumer \ac{gpu} \textit{Radeon RX Vega 56} from AMD, while the latter is the \textit{Tesla V100} \ac{gpu} from Nvidia, specifically tailored for \ac{hpc}. -Both \acp{gpu} make use of \aca{hbm} and therefore are greatly suited to classify the simulation results and get an overview of the workload runtimes on a real system. -As both systems are using generic \aca{hbm} \ac{dram} and not \aca{fimdram}, the measurements are only intended to serve as a vague estimation of the runtimes in a non-\ac{pim} case. +The former system is the consumer \ac{gpu} \textit{Radeon RX Vega 56} from AMD, while the latter is the \textit{Tesla V100} \ac{gpu} from NVIDIA, specifically tailored for \ac{hpc}. +This Tesla \ac{gpu} is only one of the in total 16 \acp{gpu} that are part of the NVIDIA DG-X2 \ac{ai} workstation. +Both \acp{gpu} make use of \aca{hbm} and are therefore well suited to classify the simulation results and get an overview of the workload runtimes on a real system. +Since both systems use generic \aca{hbm} \ac{dram} and not \aca{fimdram}, the measurements should only be used as a rough estimate of the runtimes in a non-\ac{pim} case. + +The Vega \ac{gpu} integrates $\qty{8}{\gibi\byte}$ of \aca{hbm} memory using two stacks, achieving a complete bus width of $\qty{2048}{\bit}$ with a total of 16 memory channels. +For the theoretical performance of \ac{fp16} operations, Vega achieves a value of $\qty{21.09}{\peta FLOPS}$ \cite{vega2017}. + +While being specifically tailored for \ac{ai} applications, the Tesla \ac{gpu} integrates $\qty{32}{\gibi\byte}$ of \aca{hbm} using four stacks, resulting in a total bus width of $\qty{4096}{\bit}$ and 32 independent memory channels. +The theoretical performance of \ac{fp16} operations is only slightly higher than the of the Vega \ac{gpu} with a value of $\qty{28.26}{\peta FLOPS}$ \cite{tesla2018}. \begin{figure} \centering @@ -306,6 +313,16 @@ As both systems are using generic \aca{hbm} \ac{dram} and not \aca{fimdram}, the \label{fig:runtimes_matrix} \end{figure} +A comparison between all investigated systems for the vector benchmarks is shown in \cref{fig:runtimes_vector}. +As it can be seen, for both the generic ARM system, and the infinite compute system, the usage of \ac{pim} reduces the total runtime significantly. +However, when comparing the two \ac{gpu} systems with the infinite compute approach, it can be seen that the runtime of the \acp{gpu} is actually lower, even though the infinite compute approach should be an optimal memory-bound system. +It is important to note that while the simulation considered only one memory channel, the real \acp{gpu} could distribute all operations over all available channels, 16 channels in the case of Vega and 32 channels in the case of Tesla. +This results in significantly higher overall memory bandwidth for the \ac{gpu} systems. +It should also be noted that the \aca{hbm} memory of the Tesla \ac{gpu} is clocked at a slightly higher frequency of $\qty{876}{\mega\hertz}$ than the Vega \ac{gpu} with a frequency of $\qty{800}{\mega\hertz}$ \cite{vega2017,tesla2018}. +In addition, while the infinite compute system does not use any computing time, it may still need to stall and wait for memory requests to complete. +This is especially true for the explicitly inserted memory barriers in the \ac{pim} kernels. +With these things in mind, the faster execution time of \ac{gpu} systems compared to the infinite compute system may be explained this way. + % \subsubsection{Initialization Overhead} % conversion der operanden im verhältnis zur laufzeit abschätzen diff --git a/src/images/hbm.pdf b/src/images/hbm.pdf index 41d42380840556e5c88f7d852e20d3a6816e2c20..142706337afdfa7785949bdb2311bcaf6668a0e5 100644 GIT binary patch delta 45556 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%0DU(v5FxXVN({VSy^-wTS2G6uK3rE zm>(fld+NeyWx3@QN+Gs|truV+@`WEycjy;?0+!NT(XniE`sK+k7|{J_KvBpeeXO0= z#snObA`qgqw#iR8$bNaZpn8|X3p?FOS@ov{(Hbs0_EQ#3i&I`9R06XxkDdkLdgP9VLz1X%bqgZypm-q$0#*18_QTr35~PhU(re~cmpgZp54!S1#} zMvWy$$QVVjndVC>&UK@YXjziYU`sU8B9N#pH*|)AKf1RQOod?Cw- z*6N3)*8cIZHexTcZPFeN6Zi$Xy3gO=UvLLC5}DIm3w3!JY8c2xs$KMiucJw-d#7M94M|)Wd~=w*Q0cJl;>l9_ z2w~7x4njKI0aQ{u78X zV;TDBh^~lch77BvakECDR>znmy3Z;0BteLL22`7g=MAGm{F>`6bCy zpmRQoC&E((4kqf1>xs!=3SOqY(vz9t(hTRN(PsMa%xfbTf)XnRc)ph5NpSu5ii+@ttq0Kr}L z@e&GAo)eQq0444B-h>(C12*DVyzL4X?NY}>Z5{d7Jy%E-+Ga#af`hd38gi4bB0&ohzY3`tL?x~J4=)D| zeR<|CoKJd$Hcvvsp5f=mjcoa%@HzH_EHs;9gsY>kSNICmH@RDFsE+F=$425yXrJ82 zj8>hB5GtGcjAsFLDB-dHkFR$O&Me%zc4OPN(=nddw$-uGvDHs(JL%ZAZQHhuj`j84 zRp-3*o>TSxUsY?(x__)W?=i+TZO-0&G{ksOU@;BtFuk!!%T=0LwZU}Dg)FlcFi9G5 z%XxQ-GL1BVxwHA)6@6_Aq)?QHj?mTvvAu}F>T}DTgKC5laq--gX{HH=o= zW_3vjC@LS($oUI8d9epdkDQXZ^Zxo-`NMuuG&!aLI7IoqXKEI2yc4!?r_y2pzdmqA za^0{#Xyj#>ZCgrron>wG7CwDX1s-rvC8D`rwObfB)qRrp5ZIS+`H98@UjQ!CL$U>3 z>-ooU+cYc@;w0Wz`zg@OdiJK|^gE)#e zzhdnbh>$`pUI?+emKNATH=OS@RgxWGnBZQKA!cDz8>8www3m-HFxT~Wa3POMb}5Y% zls%A3SCdSWA8UQPCdVz;Ou{9^Eg8M3V6QS3f?~7>bYJeg|N(RN>R= z=2}Wjb*MZzxNzvQYF6ptPU8sDzC-!hm+-g_IE_qQ{^Y_b@WotUSSZ*kb&VVw5(*3J^yzPLc!rJ)Cv5mO~$WoL(4D~OIO4; z`H(lAcd)a}V42^^#=el}iSWeAb-M*s;~H@0zB%Mgoooh2Dm~3- z!1)jWpP@1*+5;aGMe3Bnf8t_M{XId_~OmWsqLRQw$YOPFQ&}!#knpLJnJRFAsS0^etjl`pfXC8G>eTuTr(ijE_ zm|QZlI=Yx|jMYPOa7(h(N13ywe_CB=Z&^X!;|A3C=s@bk3zQz#q;y=+BxbiKbv#%V%2%wbdy*aNd$a#=+iT};c3I~Eg1 z#+AaOyez@gu$s z>Ufis=xs`iaygf?;&}Oj6g5~a0)vu_sdu&sb*_||1z`={)SSFnGXH*!U)e= zKt6rGPuBqts3!3j=M`O1Vu;93i)2DfjQc&Hb}nzfn3fKf16TK}E1fVBRahJ5ZZ6`% z_#XzN`bY>|dEG$m)T`n_m|Zc%XI^w9aV677|JaiuTOoRjk1D4h#F5<55%}Oa0a1Fc z$}-jyzut;(;1E}4Y*sdS>zjg2VkY4o)*0BMkirdfC5{mg=)edEOYNLQHWVdIl<{3J zvZF3yDFgE>Cb~d1gf5E%F^B#nTD+g6)Nkut-XF!US>{x9HIU`*pT2bW7nJ)FCaMB8 zpm-dIda3ZY4f{aR<(eF*I1ueo6&9oHU=h+xeDJvhFTzB_Pj!L=6?H+qDg zFi03L5jNAp$pV?7~LsozhFNKEljl!dzT%udH+xhO^R zU{JQeMNhpTQM4puDd61I-!Q8Uxs|#oN98{mvxOuTr4f_c*G@Z9iZ=Kp&e>Znx2@`h zx#~u2NY*M8Q9`W-1KmTypjvsQLVw_)qe(NE4B zo{gIql#-t~!4Ed+@xH3EwOwCfE$!9_GjRI)tc5W!jb9FwDqF_LV79qh-^TLg*wxaIU$xx?lJkO@Nbu8?kx zp8+P1Iy1Uh?Biu2V6;%A9HA4r>}=2I#J_zjKq;7A#2cNXr4hLV|CY6bJSLNJNjZ%U z5o~0SsI!5%07;k=&GANm>0aFU2OFxnc*X6A)a~j~K?sEb1$MeQ9_FFcxzB?tas0 zY~1sodU|uur(iR+C6s@~U5Db*fn9rSG(8S4yOH_+t>TS5uJHxN_0|b)GE+R{AP;Bh z3zeX}Kx9ZH#8`pe&gr?!QlxwH3sxqj&Eu`re&2b;nMXEGqF8#a0RchIP{jDmIn~b! zrToEnMsbHl-!Gja<9jyZcRF~xt*a$hI~)ry62wlTR>770_3n7am-Dj}sAF;iwaf^e z(>D$BZ!oKJ{u73r3f(c779ZCHv~s{dcmtgv@I2}s{H2-FT-|lZwz2w+?zp=Tm1y?c z4yNX{kLkE+5BsJ4dH}4cxBUj3h(qT1oG=2-SC54zjRVG=qsd}6>uZ0s$^n1YmX#dp zRh2Ff8_3rUaI%49YQ>_&pjalB7sgb)^US{TjT5|02Ia~KCN?K$_U$+~;COs8>;9=r^(xX!c$YUZ*mS6sR4 zkk3N5CcS#-K+nmcm)gc;O&oXK4$$bhspXD&0t^P%SAS(?xTRy>#(_WY+AQdwo@Fg` zUo)&CXEgpx(aMna?~rSLP8m5bKbW2j_1N_2o8Pm)%;$n4oJ=i+rcW!a@u=Ag{T^J3 z9Bv*jbKA%)x7GFp`lu%Pe;)hM>Z189_T_w|)taL;XTHYJfI1$m zNgt>N-S4MWF0-337#mO2J9xRH%_%Vh`f;Zh!**csj9p4yA=IR!yZz} zmW7`}6&`-5-}S7iz-v?Zs>#v|i7Ii%KPHH4-5^kXn|5?*+qZV4 z_ofA98+_F)l0R1DRTObXn?Hq`^m?H1Q*TNN7J^YA!UlEsl#pyQu;;-rezI1;&KE75 zP!dh@2_;IJHEs-6o$uoD|}q4nan9Tt|#Dfit{o? znlumwj!#%PdDA#sxE#0?ITfqLya0H9#!SXoQ5}9tH29IclAwB}fxRFbKtXfu5AZ*5 zjKy1Y50k>NWHt$(r=PJeuyQ;@nCE&PK2;^kxTQPu0J;4D=w%xCCPX?;ZD}O0qzS`D z$H)iO&9!v1aMvtCw8V})brmGSAPTGyY~-!zBO(=C9*cM^uoOkgTJm?`0S|fiWTRQk zN^yOF&_VRG(YY*y4=ZyCib!?qIIzI>`|t%5^k~?!6qsaiCk(t~3DI>An%ncw$@O%( zqz)ZTV5TjmuW^?RWM6>12@knlo0LW>>D@XpE|D;=x`viGN}_-f_eIb_9r}sgarImYJmy189(OVcI*cRw7eC09>Uo z0z=6xsNZU3JJw0n!bD#9p}H1$5J_?_x{cpHu+en^MSt4Uc=qpw*+q2T@UA#4tllv` z5sfSq{;Wt5eflq5&nCCQ*EBF?Pz-aMNKUss!wmLjR+wR)-unFsYd zCwoo-j$u9OmNXmwz-Y8n9MM~EbZS+~f(pl%F49AZW-woH=&Crw4cBia&VmG{T0g~2 zpv@{#>;j^VantY|O7_IDB;n&@36&vh$lXCkr%Iy~f^xrKMU{Cmc=Yf1icC#W*k)cg{@sHh({Hd0fG9Zh z1ViHX;X*iS!LCz`c5&{gVh~oAor%-`I%G~Bo$eA(n5Pr7>L4EHm0p#n`C4? zI71yVdqrey9E9K{YNh6`cHF|^;5xVFI5NZqkf_xIJM#?xr!IOGqBEm9s&%)Fg}Q&S z2bwTKR~C(w9Q|7gr0)5?8jN%WhCl4^W;u`ZbH zU8qcy)Jeh6bJC@}OLK>Z*8s%WKqm;yL(uv)e=`Z=;5*H`MlTl5M4R6U8&0v!$V3*$ zhkZiOHP3;B$oxO1PBm}D&R^bpYcEzVdJJ&1q0=Zd^%*#<4c>eFN1>%Mq4?)!Rg*RG z0V1(aZA5}Xe7AHsDnkrMTB2=_rCZ^s_v;0Y1GP=!D{D?>LYpv7cb>a@K*h)Mb7Q#N zCm^JeL-S~qI3(n%YU@T<*Qg{ae8u8bGj|1Cf4sTE3ob}`#n|Gv+{VVS z(OOIR+B9>aHBAnT{Ok$$ZYBAp((mH`y+v=oxeTig!Q< zZhJpnLWQJTjHFa*<*(h-%#-)GAC9h8l9A41^7^s7Rt~24bacJ(WcV3d;k!DP^7D;2 zg1iRaMRU=vj7Xn0+||&8{#}2DK*nrA^dN`n^Oai*pWF6v1M5}3rTt@ikaf3UOBac1 z&ut&N&`4r<4`M<_vMA=H{XIS4{J-#&svUd(d|%v&%8Gi^2oW{Y1S1rkW}|SlIj(5VOTuy>Ykvs$33)F};?d5K2VDw*z=& z4cgR^uE?w(b)C0h5?sM`wpMnd4XshXM@Hea`4Ne>#T{uX1PP# zjFfYhfCPIFIRa35J9RP6@g3Xkj4H!_I`A(4_kZzcrAhuQR-jQczHV{FG@ z_1}J&o1Yv-Z1jiBghdW*Pz!iUg=}X3c}|6%d});WdEo8WO%*URX{fmgFtw$*r;__K zA}z%&K$nLUh-|$Hf#Ee7CeF}5 z^_fy)QC8JIF?Y}!&{?!-dxBK4KyKF)BoNA|p$?nlwiW59g-kgD7m!Uk5 za%J+TvL6x;>TJJ=*oY=XZA(+(yg;@e!2AHio=!O4D(JX);ZBmch5V6veAqH1Z?LoF zhuPlM(cj)<`~BT{cXMH|@(mKO!1wUqEf5sV$sP+9;0B^&&|a#N#l5mp;Oi~dPG z>i^(K|3N1H7mh?BF?`SFA%d3~fZ_i=LxPW%pxgxTE&(9^7h`$V9I-doR%@E(Bm>Fh zlCer@6dXgaC#ZKEVZqLC1Hag%IfW*->dNz|Jb_H#u_pQLgv8$dN$_yB(dMS=y|k4Z zY|aCM*hF{rKQ3UnM1&&PhOuICQ1a1#z~TRa5B~%A{crei+FwM3{}hSH^*>NtPL>Ac z(tn_yKGc6W;(tIZbtO>HdiX*F+0mg#6y%IA3tg82+|UIRfe&aoTZ>=3%*TBA3Ktva zjkU(8<*t3aNcfPNn+{lX*53qYi1xX{)6RAjWH*6}9qA&M&VA|%=BzE`-y9z9uSZ?j zrh6Xl#?6F#^t!u{&2v9S{&x*9iEm{{i9{r@4XEWz|44rSckXNYHzMZ0TF@KZD*jPx z^``!7#D*b|{|m6Q!BdpkN4*kLlG$V)2}1*@%|Q!H2KNq?u0L`TF> zo}S7+Jj`}S>j6H;IR)gY2~@HF9@#}56DaUMswi5=e^k+548>Qt4?)5ps?MW4F3;co zED2PeYKo*xeJ*WS>k^6I>0d8*?!P}@c$2ZezTWQM4t54V>3@1Be{wwdeEL9M8cbY1 ze&QK4FH>h$5Oei79o=wzy01}!UMcI_kJ!HP1U5|7=+g<|et9Q_?^NN9OwEJV0i(bL z@W{7zDi{%+58=%Z=<#zA{FHfxCjK1oxC!=DnrKf5Bo@RVE|1en)DT#9D~2{0?=lCN z)y?nA;555I|M-_~?|3l6e*o2kht5EMxT*(fR-Dkz+U`8)+_G@e<#iXt68eMheM8tA zAk5aU0QD1VHMfji=U1BIqg#QWGjLbWFwbrzQ*;o%)8O0H#GM?TvmJkBVnBrDbxhCF~au|RO!zztSD^3&_HFYJ~w~Gc2B=Z>Z`?5@GSHI zB0+Hn-FhE02eW6Ym$_kmZgdpMe)(s|df|Bx*3-Touug-%(A{UzxIZIMus}F4Q0Z9$ z=wUMG%4&Z^a|OG^GEcZ?9;;*45u-8TrMz3H50n0S*8_&t4R8b^2xN0ETdzgB+@bT_ znxj|0T$;G}hvviTWTZxPp+}E}`pnux`Ot)g1uh5Qmc{L4wd%3eRjBNd`34le%%0@7>AbOk!wx8)~J8o&r#;Bk~bTCVgFr(W1n}JY_o}$-~e5`Ao zy?{+(tXy<~w7z!|xsTjUAnwH(H!9XJ>jKbRi8aUi7p=TBw)cQF>f^XD0Fpw{T!zeR zHA(-x-zJyH`7a|IW7UX1H`CD-<#3wAF`pX+UD&ECngEOrHPA>QC^V(o3mKYWk`y)( zPx;A1g~ki5_j}vo4=~VmDqXYq90xE0iPQ2d1-*bETf=cb!tTsq*T4{OE+!kwny;=Ha;(H<6+R!YoFcsh(h|hZ(sgWDQt96g&8B|zr?0V$!*Z?*IrP z`23f>2C@@0!yxyuG1ba>IG_~jhmi0^Y&T<$1}m@PButWc-}R|Y=ce|$!ud+HxlVoh zZJC%Jk=Fl#4yqS0*`OAjg9WfhYF+(_Sx$~;jv0hAJWPA^#PUSMxMJ&&RDKH^hM_@T zsxJb-EdO@H1?rzs*HVN3DBS!DY8yfbcX6#A0^NbW;2Tl-g-kVf z#mr_xv-nh`0yu$Il1HF1o(HtNFh3fWjY4}#--(JO|}&ch~cQsIj9 zB`J4wN!F8!Xz}S5!RAU$`4l4keuEFZf)5b25gi@FII#~BjYx!?R1=t+twG*lSVE3G zHuxKE0Vt0yxcn8-_XJs8dIjsw*8upCu^ldYHnr^rtJ*uF3AZei<7U9tm1pElW#mHN zO?ZJ7-~-Q>e-64!@u;;f48L-3#N(m|h$mcoEt?@JsynF*bf_2}x=8pAE&R4W$&PVKV1z5w3>&WZrj<5KxEu;+Rs^hw2H zkHkDEVSuH>{^AcJ1h)_hG7-dxIWU;@P^cZ@DpX2qm10;uMSe%17|fXWLeJ?~$R3Ii zD2G#3kJ&{bH@{>R@{XV`Yfou`CV!kYzxwRR9~XlW5`F3QBX`r^Uy72;ug3ZwI=gDX zF401jp95JONHo_vaEkckb$z7Z>*#N_9Tyq=&_;^ITT|)>TpFH`~N{GT$N-^Q*#Lu z(99Gx0L>~i#>i#RJ<)6piYi1bY#18a)zB>8=h#?8MyX&1{{y{(KSCw@TFB4isqbC3 zF-Vc_JD0M8Rkq+!OmTJ&LNur4?*41G1>y!{m+BY+LOpkHRdHn!t>KxV^f_`0=;72} z=u^q!>CwM0)o6{B_cJA6V3kszS)LG$lvaU4k5G|g{qf{NuQR#^? z#D(mF&Gfk_(z;DRx7}2j%_qCPv+Tj6huo2ca+jWt!6IL%@-oelReeS%kzu?~&(@Wa z!=*+%o&9LN0LvDPU?7m5xS+-n*oducQ9NVO5k|$GU%)4?ZnRy1cqT{CS#_d~f%ljk zSEFS&krUF)LsA`ZOhmXI3M-OUz|3!n$qe` zn#~^Tn1e-!)hz=-ggGJ|_-;z(f5Y8Bh5E$K$PBgk4&G1}iydF<;E90_#OGLgXWUpc z9!l9H{pI6J^#TCZd#F45dRbxP-V7z4-ng~R?=34|fY)vXA{c@|k zCY@V9K)qfzDLElk;}I$tT?A{*PAIQ*?=Jr!4+j0m$oBe^5j(E?lhVMiP>^cJRNXClG8{<)2JA#RCZlLzbg{_fI`f#zOS!(Nn z{%bC+tQPof0k^E?g?Hqh8memF?5st?0eP@L>*oP~R9C`w@dxU{UAmyK&u+FGrzNWE zsVpz*pqkHQ714t3Q>dPVl<1}Y5PAI#_(SsTH|2BHbf@+lv2qzSu)Bujd2z?65i4PR z+RQloz!eyYwh|_H#KcG+vR`!vg_PgDwJB@GB-E0@x97=YmQswsqb*z;CLf(OzA^X8 z5bb*Hi5cMSIhdV6@`yu2QIQGHu~@h+Fk1-1-+Ex3as}?Cwr-qxT_985^LW>5myn@` z9G2MkJK8GK0A#)m2;lY9)jUN_ZMWzV=6xwU5D@)#Gj<~}DEv1PcQQv=D=(_o-YE$V z1qKyBq%5t~1?xp4ZqL|QxHk?p$-q!7RC&ElUbe^fr2A$@^l$Q$P-PDahy(c!^?LLv z=;`D#HF9j%yC22$xF6c}T;yFHb)iJa@ItAY-#?`^W6XGfc9q7RL8|&I?xD9tWA?uz z;nMyl%P_?}ID%#mF^P+Zz+63`!0mh|Z~sN|JwQ}1?oI9{71P=7v?%*S)U00b29r4z zae(3((8LFN$1AOo*l6UOf?JqAggyjWNdCKL0s{a>&^E)iEIfG2;|1ZWK$gTY_m}F1 zr7Kh9(oQ`B*#FdK=e6_)oq=Bh30%i#64_0B?|_<11;KhA)~I^N$DtcKpz?X> z2!?d03!F-+YTq(i3C*EeLs`3(vZaK4RGz39G*3{a&s~6^z(TUmUDK8QCra^7o>^wu zJ3=&O@tiuLn`(M3ZB10-X?D5S&T3NWy3p%YH#zT04JWST_?*>2v}I@(_;(W+*3#+6{ly<@TD zkg}@0B`G!S+54U;uC;FMq_3Z7w%u>I?K}{EW69Aisw>e}p!gf8_zIlwng0ga-uTP- zpGH3svIse`yBq1>+|e-IO$sX8@t+=Fd~RE{6E@1W)}MtHOk9L;)nL4&W4;Yg)CTFC z=_8o6G?e?VHD z-hWg>TW#qC3II~)1LkXhngeL6#U#3^6=#*`l99wW0Kb)YG%O?KZ1$ck5TcGJ?td(h z{}sIcV}V3VebawPUh&pFc>IL3yjfenxKO{`lKJ+R)W_%5;S4*Ls+r$u)977#xB%B> z+S%OEtPrX~Jwh@x2Weury#i|ZZDjJn?sHv!f|{qV%kpinEWMaPk7o4-IoyRpH}!Q* z(TKR#5wh^P9r*tm(&%IHxNPiC z)R^GI*{^zTYR0Se?20_IinHvx&`Pp*&2?+!wdp68J7F&w`h`UCIWCpWM`h zI)A_+`V(LxyKSO^#U9}%yzv#a^R`*oX^SM=TYkBh* zinJ*TF&m(0!!>ZZOR3P|sePc#fhKBUIg$`^;@jZ#gYNI}QW&w-^N-x`2nTIkvHZT3 z>%_S4Pb_PhpO6>>gaWhwhSr20Zw6G!I{)=DDz83izw5q~kS%Sl>X4&P`LSijBSiFh zI;|WII2L|42z&~aVcRN}OB~VT|0s4dT!kIY!n*d1hFf3R7;$&^3%c`GtM_9wc~gGmrL*^==oQT_Y_5TC;b9er@B<0tl;`N#J59aZeJHTb z+dC|Wh_%Y91#o{pY(d{SOmWrQjGx7ue8|r;pa2ZoGMDNGFy_u^PeypY2g0+q}1;}eOP zL>Y^)51ar2lmp9@vUOR7*z#?LG6=Th6Y~8vBR;d4&nuL-#SURmpoL`KUi(5GJ<_0&%qS$L$%b6 z(tZLe_xe8s#odw&FzE<@;Hvr=xT`&aU~ttNx{}TO?)dKt!$Y+tXp* z%fL4y^HYkza%nsI?~o&02tCO1s7miXjG{>k`DpXZ1(IWlXJj`2`f)oY@yHCpHB4aZ zZ~QXRR|A&hKj-T@fD$bk2qs9YT){tQ9-{0>wy3ImoL|F^7-1>@ZOk$$_W(_V?^M{E zg1e%jZ;NqQ36m{E=i1sWM~lh#B;{5$QG>eRStc47L{6%o-&jyb?UXDhjccx(D zG%Z~-cwtNUEsA%rpks?q>#I-CoP$M+s*STOc%fgq@RfW2M00A9(B%>0d;`)jo^tW>ZZ)!ia$ZS*aA&mb>>YVbc{ee0 zVWbP0=?pUX41f3DqLI3q=5sOo6)T{60 zA{@Q7RL|}V#kc|Fp-^sO=44JV-c_RXZ2-o6HRhU^wuMFzwj>{Z9XzEFo#eXM4Tx>M zXcM)Qo!aqilLCeXM~00tt=cP|AhGGAQJ{XFcS*Fdr$4^S01q;g$2PP<+ubMFY;JdN zh|*(^0f3R>Q17T{&H=#bwUNqoeJD5}|L$NQP-p8RmVwl=8@;sq{Q03bq`hkV{HS`7$Cb#q<@#oqtz^tvIg#;sm_64=4bw z$vo)NU3q!8zY53U`;;Xv*HDkjz}HYect9gTL^RKXY$Cg|`L+4;n5P{(9|@|xNsFVY zD7ahK(u;_q+VUiSQk_*jHLtEC%vmUQD6wSlO4n?=s^h40J$KWwQob7 z{!a-@;Vb``B73qdOpsg^Qz(ft5}r946?0634+{Kc?=8S}E){u!d<*oX>h1jShOhiW?}7dCWL9nmSV7y`~aag)x3D4waKsE)cNmVBkCjY zzfUn_7bF>G>0xdt+Q3}Ot!HpN{E!)Na+>E*M0sHzXh2M=z{&bJ>JU~q=G_y8-;C!Z zW2#q~z^3);h#lqK@=BGG^;@Xd0yWnkiRN)-eEb}-m_il?6(0sTw{=2@k5&k6j)f8Z zgTktXf?iXmXn0BF>-7ij#kPvIVP%p8cUMgk)r z%{&{>8#_|_e>-a~8&_LKdP_#zvc`}(h>JRR8@h^1O-n1@G zmE;cs9}IPlNFbR)tl;J=R;QjQF3jEM`U}CHT6HzB->_{^$Fjzc9DUq1M^b}n9x*6|n=|gjft2k6o2b`O3OuAs1(rFvdRqAps`s3qTEvv^(Dh@e zgJOYNhh`vHRXux;-N$T+L0(`7!|0>qsx6f^15xflEWVdH6mr&Ogm)l~6KQj^PbCIfQq zU7}nafE7-t<~lp+4!`&(Q-3xPz>Hz7$A0M3Tqjk8kBWYi5gxuK59#K(S?QXF^+X8E zw%PHx*kFL(iuPE=I+4LXS99ZsL15!~>Z4Y~k7v5h05-2k9f=ea0+Pho z4dSs&Vwj4Egsnc3-b0O_DYOC+;#uFiz>inW_V162alqH}j^K^pm-MD!*^>9MBL3%> zD}2l=ZrP^b^9y?eAafazN&JocWw-S`O>ZE?R`Y(*IxW{)9GKnaWai9#-x=zgfXSHI z1`bT&1bHbV$ zb3{4TuA)Kig-v<(?6FKEBUFU({Dj@lL;S2+sTu{}R+_|LfasDIehJu;AJ_6?vDC24 zP=NJXY=Md>LEW@1wlDW&cW0Fp(|=hL=eVs0yVd>n%n~1#=&|_Xy%(=E9)du27~pN! z0D6Gn2nUQDYde)LwA9LEU7mo*tfBwL9;kjK^}VH>d4EP2?IlPl)|W8dk0ZmfaRl>| zeOZ~?^^6WG7G5p6$UlF>ldBvOIhVoR(4c<6=2Q{7i=ubcK#5Fvk?ipf;pcOiDjVC1o%HkBsS zW%lB5*REA8^>c2CWLM)!T*c46XFTwr2xgBMJ3w{hrO>tqH^N-FGo;Kh9MEphNJ+BvMysV1d1x) zBupf4<4h%ivvn8|)%K{p+=EU(1`ZlEC~9zrh~=+Y0cQCjp}!hZbaZjy!M8-t7)A2p zm8)}g%O{Fn3He7Z{ru)pbfdJZ&@SKli z>n0|4WtUxLQcKUy_}NtAuyJhkbcWOmT+r$0uUF?Sa%3H8WLtQ6S#^_4%~EA( z^y9jhZ{FM*-ac_$3DgKb&JOrF8TS=?amHMfrh2OQYpq&J(*twu1CSkyfHA9jV5Zj1 zr^y~R>8fcV60e&KzL|pwt)|RiPkmW6OOEMlia_{WVu{7Pb~dl)~l$l)jD*Kj+_1ke-Bv{+W zb~Z}|s^8YQf)4NtEFOd^=jh@rRcsx(3UAEUZz1NPNT8dFYRSTr`Z}&vYN3_N{<;%z zgi}WVH#jBORbcaudu_~Yco`7|o~`#3r2nq>sY447_y7bXpF6Dz52)>fW)|aoOa1UZ zfR$Ls9v&_{z%?c`88ZK7ETtw)eS`kz}nHgUf4Vv95fn^Fe5Ac%Mp`IiI%_Z?87A?)qVCE*?p6K0|S zOBkVUw!!XT4zGF}!oL(jw3F7q?Oynr<7#n@{~n{oo@1r28@q{VzZyNIs5uh)J{oHc zAcn2w0>=jt@>86MsSZ4MX8|Fu3LRPJNV5!=7+DT!{Q8zE3z<;+ z|FFykZJY6#Kc0Wf59phWb0{n`7YKey%8u|fZw`0bprj&@Md%Z`< zGBMKcxF=Q8$Vjx%lhd*XBu^5;t;8Yb;cd?5<3Es?O|YTQiGy+z#HZpHz}(uQ!5Ssb zKad=GdL>$3Tk=R92)I0!XUjpP+p&T;y%CU7?vWzHRUz2VGvgQ#W3q~w5JR)%58wF) zfJ*~23`K~i(*{PQzw#RsyVy;p5fO(7?9;Brc+O>6btQ$DajTUq(IJ%Q0$#3q;X?vnX#sYz)$R`PizYJ9i z(tsS1^Jd@=+g_EX9P((fDe!d{=p>-JK#;>Luulu-pAAgSUyB42)_WXqWQ2c}?CUPySZptRZ zfMzr%i;?;!ghfa(Z=1ryG)s6UAY@4rL0qGxGaQJFPsj#+HDQ!ip4y{lDt_J(oB)II zfqV&b?I$A9<(}a4;|F*vu~Y)Rjn}9u?wAB-1kWX06TfRmM0769-VR#eu+oZlCR@^a zoJJZ2QC?BFA%V}Bm4__Z$>pkm$V(=8RKZ5l@P;N%xlvV~*BM2lPp>c&eQC+dC&e|K7)+ce~?E#WdP3?F+KmH*Kn7~0Rwj* zg5Lo7;9dx<@^CD2^V5ZnB&(C#m3rfVY~~I_8^F)OV5T_X2)R>6=Tlc_>sOVv=$CRn zy>t`EqkaLuQoFls; zf0f_y4P9bAdYO$SsMZCp1kRD8U{g|Ma9PkQSE5le7gQ5)M+&&6Z+ZTpNYFTctLuqAYe?gO;zk z!g}9^zYU&0LMDXh$l0k5m<;Du;(w<+6BZOzvDLbhJnm#0D3adF_l%y7ghX~UTQ0xB z6f67nH{D(aK5;PPKsO_Y^X(JfG#e>rx%sTt+ zi5i%dcKnS8%_AdU9K1z|T2a_@FP0NOAMtfQH08o3oSyso1T`w1IWpZ7Z4I@8HN3kJ zT~<+>e73iSKQ&kpto{aV;=5A#Pm7Mv#{55qCsuB@|93|=D=T+mUv)qt*+#B_6p1N< zWbOZV>G=|Qfe2Tj#e3Y6Eqi6S)7My(D;Jp-Ti*0J6d}R-f0mxl!r$wlw*Tif4d|P! zpulpsD;o?8h*t<0h=E%a0^Ge53H5=e5Aw;kUnCWFo5NGVE+_$?dcV}Zoj)&jzTJUe zpFqvG-Jb8y=M#f(>CB0h(;R>=f7S2bK!}a^rR$H^$FawYu`B4`3ov|hrA%|GHHvly zWf(%64~V*U+aEF5r=DRF=R!@(iWdg%Gr;ziC4|hJ;p**oNFOHwCD)!1`-7onkYNIv zc1S#fhmf0@;LvU+2ZeBOFQVK8Vx$(=T4XnvJYr8%jyHcj+pOsNHHj&q=vW7MD9T>O%uU^J-4&CB{dQ;1Gw{X zd#ti{_bH&e(y@2UBbn!#9m%YGVY5^>I@1dF8~F7;K9dRAZ8!~StbCFLS%|Y(0#U3~ z$T9XH9sXRr&BX78@s!No;J!E2A_438aN)pxEVAwM=!0Edw{w+U!((LAzM^UKJJvuT za~C4-0*CpglXyE^x}jGey;$b;3W!`?^w&Dq{%kO(hGSNkO@Y z>`39v#yNt5J(zzf6_6@%=e^D~o1kl=AYgbLXZOjjY28bZGu+E@T@`dI4Ag@fGU4ld ztXdr7zG%7CW2ax79hRoOVGfh#Jj6goLWGOAs)Eua!t>MKH!TR19S?H%@EcbgNXWPlFPTX-a6XYMn;ctv8;z4+<~v z7?8NbVWWtdz>?AMQd@weN62okJB*~(7$(o!>PQ4#-i2FNK=;tbm`aO=enj^(5Ret? zY1OCd?ZSkC@MMexC+f9^xzgC#OsM9|q43?;L0tXI*qi1h6TZtX1NaacULHIUAY-}B zHLAt%Rw2CgBECtxsC^;+9b8RIaTU*j!=G}Pr+FR?cxDWJbW(fLZ-GvBy>Q9b2iI;N z^u9Xx^LX%>Z|7-D`8p%eUTIS1a9(h4pr3ML=xlLL_!D&)=bjq^ip02bq22CD?~^U} zS>%0(mDW@^k@ax92z1KT*t(&=NaQ_n*lU?QBTEW4Rpeh=>w2?g8cZ*^u}^R&4LkDJ-;o#ApZCCu^cfauiLD9%#|G5mCy@;`gV} zI?P*nnQ~*5y40NuW0vh>M3An0Q&=&m<3QcKA;tSwS*ih%f%*JrLiXiooCgXG0WWY= zVJvH`=C|!C-yP?Vs-r|GQ~Rn!;A@lKIQl4J>B8SJ$kJ*JMTH)gzGlh9kQ}-zy4g5a zkAzMUscjb)GhYvxFg<n%%%%O+I3~Vp9tUqfguKv>A*4ukJU@QF{vMzhF*Vc% zy{7x)r8)B_6Y7%9TpjfZ(S{{&=V?0oFhgfIJQoKJ5?H5Y0vX@AG?V_UtE)3~u;9Z0 zLVs)9s_!!{mshr}Lf%=Q7CzE>i=9&Nr9ET9fyuNN37z94F~E0O1`Wx?o{&J0-j0QB)AhjDfKz7KlH0d159|OrA0}PYWxb1%ho<6@uo(J*yc>_p0T6WX z{+%#*79EIFWOdMZtGt!p#BU+5`8aE0QIve&iomo^ZrMj|P5M+wsWz}e;?KX54;@5> zVeW2%%DB4l&j+iePRdljlXaq}vokHXXCeVVKgqiLy{Rouva#^aUKeqL_gidf8vlXT z=JeFfZ+o%9=gbA=1~@v)CqMjuf(CWuthnM=u4E^U?C~)0lbR!E&-c(jlpUNl(gY11 z)B^p?Bvd;;mQA!#c<;7Zc?Z3Pc;Iyzc36~mo%Y8El=Kp~AWoBGT*%G;uPqZQGe(V$PTMUv<87&Q-hSx;qsDI+huk)^bS+X)23rzm_S2*no}&CQx2 zzv^I6&ELQ2qqeDQMzq-&*Wzto?Qmrccc>HDjG&ud7YTI~Vy1=iD^5u>t<f)sRTArsfNl|;d(Rx)2V1sC!`QOZt~iaiV0a+WN^1Fmw8oB>q1DR+y&CgzYpUWy*JW= zSR?YjlsdvU4a%`N^I|%2IjVofeZlvPEt7%2KZY))#2+UU$@t12Ho&vfjA{bpaTxn= zq*!D5%1tZV)baZ~B1A%tS1*xL35$)fL+kXubI=`)8t4zj zptD1BFdYja*9Yn!ceBx{u+aJ-O!%&VLi_8XzEwv*zdEd<0Ca&8S5iWxvg699ug5B9 z+c>| zu$7FzpnpRoBjK~E99vh8SQk3QZkc#!3L_Z#bN5YF355FSGY{UcMDf8m6eTUt>b1h| zl6WcfGc1x5aM-lpg49|xz<}nG=~%qEbdqUU1NVOQ1#|6+sp|pxL?a7pF8zoVXCItT znWiDO)QZOR6L{{S{i@M5qj9H!gMctZo2EIrv;#ty%sT|} za`%-kBESl-f4Si%)WV>cgkJ0Xyh4xr@`47SSQ~YCmi}&8L!aEE92ORXn>IiBZ9Quo zx_Wa$q?miq1k~SJLt82+`5#s2DS=Ltu!%e}^bAq)@&|31tSOmS#!x*+Cx z#ux8drH9Lm;ZVrKW$6&7vhCxu^=A?Km}sJq$7bmp35!4g z93g!!t>iyL2q{TuIHss2o(7g0aYzrO*DFW|uR$qWpz9;$4|oe!n_E-?f}dL#{_K1W z>#RMpMGb5Gyc3(0q(8c{gGW|bj_ADHZ>m~l+(ZbI?gJS8WvkE+OGmE}@BC+S@%(ca zGTSL{eWu!eTA(Wzg*}V{P!;rlm$-3>?c{$zEc6Oxy>?o#g64E<)<#WxY3Ln2e=k=T z&4F4lY(l}vXtv1cQq*K7!on*$p<7@s9i-SBB~;qx*H2C?skI%olGLh}-ZbZ#?S6aQ zRx9tI=cb!SJq--Zxywf~>o$SJ5zGIu?SG?#T`y@aAPxwZBMDCuHF@KG&$?8*hblMnW)e~` zo;t7Daq6Xm%jY@a!&Qcf_6>lGzHS2V>nNOb!4+gEf4uW=1NF->&t+p<2|4#cn}Nur zk*v~)D$@WcB$}H8M13*&>B7}i;Xc22nP#XOn;3_97vKgomvM5#;}sQTDSJ1Xov%f**6`J& zFT4|<;tXuCDYiz&NpqxVDWICWOF%3be_~3h>BJD_Uu&T~Q}ii^k^;6ao`)?f`AF$YRXvw$~F z+8OnuxvgyzmjzAqP?N~kbOw5P&6`OVOO78V!kIl^a4Fdst!>_fZO(+7RJ~Pf{5YN$)OAm$LP((-(RH(AF#gH&O;x( zoA0Hltxv>wrYHVvvx?wBBLn1}w^OK5fW4Gam$6r$u%uA&P9rvEwP}zLZ~X+Ws=Yha zk$1p1Fg4}zBixfCAa_!Ca~i!QMNQ`im)1Ypi8QHQBBrul>m5gVSSY#8O;RIkO`473 zqHw{6TzWhhjbdO@Bmn=o>gKCUh0=MJ`-&Nlh!(Jp80LqsT?|!uA@NXo_lO`nl-$(k@(T z8tGpHBEe|+NT~U63Q<4cfaT3!9Mg<18>J1RBgJya4-ta18vIl7}`?MUR z;0sHYLl3g1a4_~BOrR$Tjs`XDRHUWL%{bEUivx#M0OrXIyQarMPKp*WO)n*j*meU1 z&EKowWhytY^^a3#|MIL+*ewtmBkFHr4!Uph>>TMO7L@(-FxiDsdt=bgRmWEww~@_au?x#&;T2c`)G~^ z+1#CExcP4X6g3aZ%XF^H@d6(H`BKeIisMDI#l!K%=09HBwVXhrxdJ8FJ8PuDd2)?x*P$>TAEvJFuZ>3O@HqzBx8 zd6Xo$8+)KB&sOHIp02H1bH{gel5cTi7vZyVBH0I>*x?XofnzNwayL z`xmg;P~BSac-y$%Dyb+t^VRyfKev>jLmB(1%of0mlb!X&pf2pq-^P^J=oa4wc?mVbfC_ z@QIzI*W?PvDDZpasmydh$9b+X%!zRhn1I*oHB@G}r5tzmU61aSSeJXrb)ztRU64YU`(UL-b z@MLM8RJ5;m>ZuZ3xc9;GADAYG9WB_-JN8&|NRLE*Q&XmD3&Erg`i1v4s7S-YHqXZ0<_EE+bq=ABE z=dJRmC;?YzFq2Qt@YQ>M$h7bXspr6o5_nX+EUBVay~bbnkFZYFfNFM}ES`1S~j zR$DTfYz279%fY85oJn+Nxt#&~4%1U`)q0zm< zjdVuAh_SUJy~tTtRUKx;k*D(4YBp2P#5U4>nd=wjiw~5oxy{QSKju3mzA@A6c`hL| z%T}1@J_;6i4Tl-51s0YBvrwhfxE?2`{mA<9SIvd8aH@~W&dos<82y|}1#%H1N3orc zFy&t@F{;L}Rfe)NPu>T6GfwWm|E0)%g+wdSo(M4lePj^BN3~NlK;=! zh|mlZi-4)^)Vs`PMVgYZAM_w$c@{&DlP!qvOpvx|I*%okEZr$=niO0kPeph^#v%;> zWf} z1S;QeTC(PbvUvJ*o9)p(w+w0C;PTp-iQbvzPL9^i3(djKR7jl0AMGcqU#kJJh7L#1 zqo%D()Hn-^r#*vhKxU^OHcimf^;XRHb!hl7-xB?+gWdz$CBB`)DBw5UH8gsepA4i% zCFX{&C1NwQjti6XGQPTxOixeL<@S9qJf~^gDzDo7L;a%Ym4hz8w_?0!I(IrbAi)3Zp<-x4GLp)EuS95tO*W&0h>?cRj0YX|rG}86LxvdQSc&$9n8w ziP;|cOT1!f(A^g9`prGOyy4qj;}7;{mZSA z{=9V<-xV>Yih1i_kss92-m6^}Lg^9%*DAc~AX&GyK`$?w*-eu(l0P333pV1pg^8C1 zfT#SA+T?=QN){}pFF{RGPGVMeQ`VW{zC8Tb#;5Au+v#>H-rE{Zl4z#z3SwPb;XBh| zjn=}eTL<*s2Fn@&abcHP5G5z?6~lE80b8Ueo%1gK8svZT@XCPmcLQk5{DKSv3gBdF z5%)Rypi8bsmn?n@{#RdVr@wR_cR3fxPr;mPIjN0IXzd|NoIKN7|3wUb!nC%EV(c@eWTMKoxes%X4 z2n@GesehU*;mFsQjN1dyk>nCc&MjEyo(tvbmQ36nnS99Dw0IkN=_}?}*mUPK%OdWS z8DzjH^V0y4Y8kuk(syKKdf9+zXLIaXko`9n!5X)yu9=_PMb7-4C{1d9{e_HBx&*JV zplT0&sjEoc&uFW*I~U7c^t1QsHY=`N&s;!!z;7iY!`>g<^j<7xUY`;kUveT|@%lJ&NoL0|SBwKC+N`(2h zMB?E?aT<<9D=dijb?mgb4*%M~AT#^4s~)snIXDuG8GISG1kZ90oJ=4yI{3(`>W<0> z@H_>x6;t^QHi)%^BS8Mzt6TTDwZclnr0$75M+Nc9g!ijSD8AoP{&5jq_^=~UkDwlF z;1-6cQ*dXFt>z)By8f^ zR1phQ51i=1dONXo9$CTLAwb!ip40dlbewj#s)W)K*G{b}RXM?D37O8B0LXmK^YN+- zTb(=ueRwmycv_z4hhJrW3^!z=2D6v!5tx29a~HdGhNA%zy$1^=3T@to^>M$8P zOHb_(yqd*a@&4`CZ?9F~E?=^dYpSG^A|+Y+yiTiG z%0d*GfAm*Bn*=cY`w3jeW*LO%f3+2H){8~sxRrGBr-mbkhHt*s$r?+qfH`S=%w;DC z<*-~3Ju-s%c~(da_!(gj(!58BQ=x@C9Ge|q=+7pkbtC*@Q2UOpGcSm84YvPPm=_f{ z$cINO%b?zJZ1z)>C|8e06!2ug+~L)FN14v6^Rvjax1l{?5me=H8#;6xD|sQ!p^tL` zYBn0<#)bDvrh*j@ujnWn2aI3j*!6KfpD(c#?L)#^z43^LSXR1%9Mq!8Xt&Jb$|BxV zN5xV9@Qq_Ad9WBpRV={JMOBRG-xfun?wH)ioLo7Z~F zmp+WZSANf;D@gC-$PUh_Df9=ECiF_%y>K>hMAa(m_^Dxi2qHcugY3e?$QrN1$dXq2 z^UE=GH*CIScv@62SQ!r#!Qb`BOcbSsy6H9^5Az7Nc@jwxW-W+FhAn}p0`&fO(t>8QEGeYOMw+GYh{MoJF2Lkb$V;+ER$~u$XK4%5YqdA9+z55Y9F4WSfeaO)iB zeHfsJV9Mf|>#Ab-vWn_&17dSBw}a@IevQusksWJZ3u0SyGe#*tk|NAm2`QA;Fo^O$ z!!&R2KRZ_egs?%c5=NqF{*qI$$qgR4&RCMF+iG8-$iIFjP-&9kr2n!c*2+e8rXu$y zJ_#OQN7L4XW<88Jb>6>Ev^`Y9cyzwPxq}5sFKVQ!0Z<6$-1Ji!RY}qY*sn~q-+zg< z;*v{;IAyjSCKmA9%id3X6m(Naa>JV6$FckLWAkN`(7sCS9|wO{?%i&C>Me_=z`zxi z#*#&RbHfmBu8aN$r^X@ZTH&p8t|?Z}mPu9{2}ee45ET@rVLpEt)gyw*oc&Bny~6{t zh4QDCt6R%Ic5Dqjhn~0qxe2+r{S*ZmLvKn3t7s;Qz8=ngwRCkA#wxZj2$zVC@jv-kywv5EC~Z@#hF=~?Xn_BaVk4M zd@tXEX?V6NJqfH6kzKk{0K{4%S6MU&H6?YAim$Nf8IMI3L&9^d3#MnD^hztJ=GneM zmo>Fq70KmS7vh~A&t7NIUVR6y%1PmDRs9EzagI!QKY%HldXf`lbfzLv#N{A0t&>P0 zi8blWWhG4)=z4UcIQ>+HF(-v3)U2ZT`b23OaV6y&cz}Q*rL`LHAGuO=B~Jmg$Kdrx zX3efPjyRYgPhHTi!^!6HVAQ7?dQY{oBa9a~d2w$Xmg%0&dG$9FRs7ZS>zzA-c_gZ6 z>r$qy>`HYbc{G@8qJv;a7g11-a+HBZ>13yipCHW6zIEL-s@~j#4qU$45QgU2Ekn_7 z$EuXxD`VnBlzpq#D!(Lw(W8OnLmR2Q=NJrgobwH+Ojo`>zr`ZjFt^|zqz5Nhv>-v* z{NHgV)|NO}%9ORF!3&9&j`XHE_R7RWloM+6MaCR4du_sbhuVS;McyD^l(@b7gR4%c zP-51;(?e@14Jpc9&i#@s!L4OKE&u}*%XE{a|2>rivA=Iomw>?I>AOowcK`i6`Li&G z>z|fF!68>l!RQ}!4c((2kQ0$Vr>-S3R~}zD7)%J+RVWUsjTm0m0C^g!qbFuE!f!W- zsA|MO#t-1$M-|Df!vf-q!3s$CAF`khz3P9YAUsyK|Cf8j&CJ2_pZNB_%vl!JWM-A-{w~JSFc>5?Mz(PtD9?r6g`f84JF^p3hH`TVBxLjq zChsD3^yfi}M^~3#ZGT8qocmP)i)o!;l`6m7-LXjKhjWHIsfxiPtH&jBS(t@q2y&qc z{quj7OOJs9{|3(8nhgd1e|>%D{dTrVf1#-{F?IgnWJkBcn?CWnVm74`+SV9z3s4cO zn%Yd7!sZ;kn-$|)aT#tC4S=1;(>!}Ml&jOmad3RRAjYv?Ge*2 z99#uoEpO7M?hpFj@Kys{O==%v`J`w#FCc54$#@U4T+JuXmsI`n*$vSyrQ~Lek~tM) z9%H?O4HdjMb&J$moD>4-`p4)*@P_Q_`%#OdYZ9dKgvH~m2*;VOJEB;T~nAR$DP zen06Hnc2UJFDyp>rMpRH(Qqq~_qOy(2U;i^#1b z#|X6J(=rf1TkC;>?b#vqrouWGubwDo^AqE^HyESr&OEIG$g$JA_Rb-!&oJi0xY_;p z69frX*1cnEtFgJ?{e~ikC^Ki5@?}-KR?ExvoZ|QYh{kl&`jJXZofs28zgoKrY;A54 zOd7kQJRfO&7=#&|Nxs77_Omekf5zj#flWp!g-Vx(`x+4zwpL9z@UOsSH642bW~8@# zl}UK2wD$zR7@|VB*?W__xyMf->G7sDEN}=X+X*yjFA$*vF=+hd_JkVv&mWZIuoF5^ z$9`$6G4OB3Wx!crxtw8%lbzX1QF)9Liafp$hq*g{&}=x4RdhikzHfG}p_V-z zv$S)r^hpCQaIE3r>Fxy8mcrGem|&44&=oEvC4olmj<#dk5fu&OF>_&UaOsQHi8x@S zL)*@D^m8;f(DcDtg$8(#6`sZ$@VY!4N@1wpk=h~U)xv04?QliwhKMmDdOBUl17&^& zi}|Z#%%-`Ypr{?7ZA7-SVURyLBIJr^unSCP zmn5Tx8`}+Hz(r;F&fc2p`iT-t;4Re(#iTwWp+JPz=p^&*3lf-#WDdh1Knh_i?x%uw z=%CupInjkT&bYF`!jTvE2{r3h1Q4hONxU5zrKg2-q%abUg6#yk60it8dd+xbph~S5 zW%^^gHwJG;*pOeBS{HMcRooyGuSUXJziN!YFPR&J|4uYIW%52HFH{rgIz;#_Yu4-g z7KvAGNGrIvU(MI78oaQmD_ zdzg{bn(_5t2qVk8>_Gg%#x1sCR`SySR=_FJ*9u^2eM0(g;8bPpb(xVi-Y^6LO=LgM zaQH=-h03GHil#mSlNvv^p{OA!%u9f>C8vUW2QR4yci#_3^LuBWZxB?V<)tvz!5`D`(oHAr`OLp(2HpGc~Bb6sZ+s3AU8D zjlpGwsgaaZAZ^qd6O@>>{SFsM>83Fm-Jg+l^^RBo{RZv9>%xoUO*qNhvJ#YL-EPq# zt+(k5YTcxtMD`6>0W!G)t~)2NiTjSB>rt7>3qEF%TI&0z!gg42HMbl|#?h9|M*2>D za>sooOHT*JcbK4L8~rZ0=NNqJBnBI-`Q81 zfxvGd^Uqcjoa%|%@9iREK{E05^mRIs(Z6WXdYzt0DyOn1DvMbYI!IrxSBQ~&t}Z7y z5V0ChL77iy@*J{S?Sq(|@ea1tD#Dl135a4cw1La#2yntq0m}nYd8kW7A!|dlD zY#Da_RChQCqW3R#6i@;UdyKpR?KPH6LWu&u4r5)9TkJ2v{MdkZ_Ai30?+AkZf-lzBUJ~%%6eA!buln_b09u46rx<4OSU*(ZQN~w)SrnQOO~$ft5R2N>&p-2m;|teN@&ch z$UofpZ^}MuWzW3Fazh-s%|c2kNYS$_=q8Bax`C#P@sHTZS4=@q4sD47@d~Sf*jls# zD}p%LyG3g_)L(kAb))uB*9rsNEe=HteNVr$xjCXg33&P&!;(*ECq(sqnd*<$foifZ zwIQ2zUuU_Kc@CvZwW#wVEccs*N^KLTSovQRD`=1Rl4_f;A3NEO`hs`JUX8oGK_jOh z&;_;8GXKNf|10-@K>MrUtSp@W7k0BVr>~-elR>aDeN~+hPQ}XGjD&@qC7l!l91q0( ze?O75y}1Jk3)_EAsmcff0thay&Sqaw*)xZJQAcjtiD2Y*r?<#;TBR04g*(Mnh+0XR zhbyjhov9qrM25Q+7fqqL5U__v*zz~T=-X1Li!}~wd<&5Tf&J6^F)WyhS%w8;yWiizWx4ovu zsRa2{z|B;2j|u5sGnSpKBodXKF{^4*@3tI&-Dyo~R-eO3vdja}cNc|Gt-GU3ALlDw z?j1D-JaR;B(>Z6YMxixS8c$C|f# zUTkXI%3s~eOQcjiz+Zuiucm`nlFbwj?dyhvU% z1>UA7-K)g)s%L*dgZT3vg7yV(mytWLxQ>_#$swjO34!@HxRoRheW9koJ>gKJiaq$= z2{{yGsbRe%u%_ndN!@!+I27cb96=VvX@+S8w-}v=6?mHxbzP&Y*ti4JBMI}XNF}`{ z(sQevhq2}R8VNk-@&(&Y8aEj5Igzg1XUIL2u}5u5a>^PY=Lk7cK^n@*i7MiDM>Vm+3Jt zUZ<8xpw$cP=)2{8dZ?ciQB-DuF_rxXUk=^GrYVh&8aH_ODE~Lp@yq);BD(77T_Y`7 z`WA}wd*)3L>4miHmcp7N;)W@Dw@s19R1W=A4v-!{QMH*xzLsNcIijS$4};g)jJMkE zB;~?Tgg2wHPKttitE)Hr$Ac=FMOL!3lk>^lMuiOh9SWl?Hm@}TU8}9CIo(tJvxxUf zfwIMm#x5SNVl41q{x()eLAKdi+F6xdH8TjDZfhLeAzcU?oCtxPnHzzUQd~g-;r{?8 C2rXm) delta 45878 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 diff --git a/src/plots/runtime_tables/tesla.csv b/src/plots/runtime_tables/tesla.csv index b0471fa..642be5e 100644 --- a/src/plots/runtime_tables/tesla.csv +++ b/src/plots/runtime_tables/tesla.csv @@ -1,5 +1,5 @@ level,vadd,vmul,haxpy,gemv,dnn -X1,69572650,67408281,69791189,750246152,231093065 -X2,123217536,103994272,123543145,648714601,431703456 -X3,207693503,182162140,207947543,2454455479,877622611 -X4,378089165,350280326,377434890,4968984949,2175751385 +X1,17282586,17180880,17121019,16984363,91489038 +X2,31633105,31633649,31802257,26425737,151112206 +X3,60059785,60065489,60021288,86860818,142148495 +X4,116919805,116812209,116847802,166443969,89307502 diff --git a/src/tables/torch.csv b/src/tables/torch.csv index f022923..8ade9f9 100644 --- a/src/tables/torch.csv +++ b/src/tables/torch.csv @@ -1,21 +1,21 @@ workload,level,vega,tesla -VADD,X1,69572650,69572650 -VADD,X2,123217536,123217536 -VADD,X3,207693503,207693503 -VADD,X4,378089165,378089165 -VMUL,X1,67408281,67408281 -VMUL,X2,103994272,103994272 -VMUL,X3,182162140,182162140 -VMUL,X4,350280326,350280326 -HAXPY,X1,69791189,69791189 -HAXPY,X2,123543145,123543145 -HAXPY,X3,207947543,207947543 -HAXPY,X4,377434890,377434890 -GEMV,X1,750246152,750246152 -GEMV,X2,648714601,648714601 -GEMV,X3,2454455479,2454455479 -GEMV,X4,4968984949,4968984949 -DNN,X1,231093065,231093065 -DNN,X2,431703456,431703456 -DNN,X3,877622611,877622611 -DNN,X4,2175751385,2175751385 +VADD,X1,69572650,17282586 +VADD,X2,123217536,31633105 +VADD,X3,207693503,60059785 +VADD,X4,378089165,116919805 +VMUL,X1,67408281,17180880 +VMUL,X2,103994272,31633649 +VMUL,X3,182162140,60065489 +VMUL,X4,350280326,116812209 +HAXPY,X1,69791189,17121019 +HAXPY,X2,123543145,31802257 +HAXPY,X3,207947543,60021288 +HAXPY,X4,377434890,116847802 +GEMV,X1,750246152,16984363 +GEMV,X2,648714601,26425737 +GEMV,X3,2454455479,86860818 +GEMV,X4,4968984949,166443969 +DNN,X1,231093065,91489038 +DNN,X2,431703456,151112206 +DNN,X3,877622611,142148495 +DNN,X4,2175751385,89307502