From 3f79de5c3ae7fbaee63536976fd6910b9857f327 Mon Sep 17 00:00:00 2001 From: Martin van Rongen Date: Tue, 27 Feb 2024 14:41:27 +0000 Subject: [PATCH] 2702 example edit --- .../execute-results/html.json | 4 ++-- .../figure-html/unnamed-chunk-10-1.png | Bin 27582 -> 27601 bytes .../figure-html/unnamed-chunk-8-1.png | Bin 49165 -> 49009 bytes ...esampling-practical-permutation-single.qmd | 14 +++++++------- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/_freeze/materials/resampling-practical-permutation-single/execute-results/html.json b/_freeze/materials/resampling-practical-permutation-single/execute-results/html.json index 3d9e350..5e29e44 100644 --- a/_freeze/materials/resampling-practical-permutation-single/execute-results/html.json +++ b/_freeze/materials/resampling-practical-permutation-single/execute-results/html.json @@ -1,8 +1,8 @@ { - "hash": "40dc0c720ab4b8636d54d21a38a50237", + "hash": "ffb0162cb12c41ee7c94580862b1bfd9", "result": { "engine": "knitr", - "markdown": "---\ntitle: \"Single permutation tests\"\n---\n\n::: {.cell}\n\n:::\n\n::: {.cell}\n\n:::\n\n\n::: {.callout-tip}\n## Learning outcomes\n\n**Questions**\n\n- How do we analyse data without distributional assumptions?\n\n**Objectives**\n\nPerform Monte Carlo permutation tests for:\n\n- Single predictors\n:::\n\n## Libraries and functions\n\n::: {.callout-note collapse=\"true\"}\n## Click to expand\n\n::: {.panel-tabset group=\"language\"}\n## R\n\n### Libraries\n\n\n::: {.cell}\n\n```{.r .cell-code}\n# A collection of R packages designed for data science\nlibrary(tidyverse)\n```\n:::\n\n\n### Functions\n\n\n::: {.cell}\n\n```{.r .cell-code}\n# Takes a random sample with or without replacement (default)\nbase::sample()\n```\n:::\n\n\n## Python\n\n### Libraries\n\n\n::: {.cell}\n\n```{.python .cell-code}\n# A Python data analysis and manipulation tool\nimport pandas as pd\n\n# A Python package for scientific computing\nimport numpy as np\n\n# Python equivalent of `ggplot2`\nfrom plotnine import *\n\n# Python module providing statistical functionality\nfrom scipy import stats\n```\n:::\n\n\n### Functions\n\n\n::: {.cell}\n\n```{.python .cell-code}\n# Calculates the difference between two elements\npandas.DataFrame.diff()\n\n# Randomly permutes a sequence\nnumpy.random.permutation()\n\n# Calculates the interquartile range\nscipy.stats.iqr()\n```\n:::\n\n:::\n:::\n\n## Purpose and aim\n\nIf we wish to test for a difference between two groups in the case where the assumptions of a two-sample t-test just aren’t met, then a two-sample permutation test procedure is appropriate. It is also appropriate even if the assumptions of a t-test are met, but in that case, it would be easier to just do the t-test.\n\nOne of the additional benefits of permutation test is that we aren’t just restricted to testing hypotheses about the means of the two groups. We can test hypotheses about absolutely anything we want! So, we could see if the ranges of the two groups differed significantly etc.\n\n## Data and hypotheses\n\nLet’s consider an experimental data set where we have measured the weights of two groups of 12 female mice (so 24 mice in total). One group of mice was given a perfectly normal diet (`control`) and the other group of mice was given a high fat diet for several months (`highfat`).\n\nWe want to test whether there is any difference in the mean weight of the two groups. We still need to specify the hypotheses:\n\n$H_0$: there is no difference in the means of the two groups\n\n$H_1$: there is a difference in the means of the two groups Let’s read in the data and look at it:\n\n::: {.panel-tabset group=\"language\"}\n## R\n\n\n::: {.cell}\n\n```{.r .cell-code}\nmice_weight <- read_csv(\"data/mice_weight.csv\")\n```\n:::\n\n::: {.cell}\n\n```{.r .cell-code}\nggplot(mice_weight, aes(x = diet, y = weight)) +\n geom_boxplot() +\n geom_jitter(width = 0.1)\n```\n\n::: {.cell-output-display}\n![](resampling-practical-permutation-single_files/figure-html/unnamed-chunk-8-1.png){width=672}\n:::\n:::\n\n\n## Python\n\n\n::: {.cell}\n\n```{.python .cell-code}\nmice_weight_py = pd.read_csv(\"data/mice_weight.csv\")\n```\n:::\n\n::: {.cell}\n\n```{.python .cell-code}\n(ggplot(mice_weight_py,\n aes(x = \"diet\",\n y = \"weight\")) +\n geom_boxplot() +\n geom_jitter(width = 0.1))\n```\n\n::: {.cell-output-display}\n![](resampling-practical-permutation-single_files/figure-html/unnamed-chunk-10-1.png){width=614}\n:::\n:::\n\n\n:::\n\nLooking at the data, it appears that there might be a difference between the mean weight of the two groups. The weights of the mice on the `highfat` diet appears somewhat higher than on `control`, although there is quite some overlap between the data.\n\nThe medians (the horizontal lines in the boxes) are shifted - as are the boxes. So, the first thing we probably want to do is to calculate the exact difference in means:\n\n::: {.panel-tabset group=\"language\"}\n## R\n\n\n::: {.cell}\n\n```{.r .cell-code}\nmice_weight %>% \n group_by(diet) %>% \n summarise(mean_weight = mean(weight)) %>% \n ungroup()\n```\n\n::: {.cell-output .cell-output-stdout}\n\n```\n# A tibble: 2 × 2\n diet mean_weight\n \n1 control 23.8\n2 highfat 26.8\n```\n\n\n:::\n:::\n\n\nWe'll want to use this difference later on, so we store it in a variable:\n\n\n::: {.cell}\n\n```{.r .cell-code}\nobs_diff_weight <- mice_weight %>% \n group_by(diet) %>% \n summarise(mean_weight = mean(weight)) %>% \n ungroup() %>% \n # calculate the difference in weight\n # (there are many ways that you can do this)\n pull(mean_weight) %>% \n diff()\n\nobs_diff_weight\n```\n\n::: {.cell-output .cell-output-stdout}\n\n```\n[1] 3.020833\n```\n\n\n:::\n:::\n\n\n## Python\n\n\n::: {.cell}\n\n```{.python .cell-code}\nobs_diff_weight = (mice_weight_py\n .groupby('diet')['weight']\n .mean()\n .diff()\n .iloc[-1])\n```\n:::\n\n\nThis gives us an observed difference of:\n\n\n::: {.cell}\n\n```{.python .cell-code}\nobs_diff_weight\n```\n\n::: {.cell-output .cell-output-stdout}\n\n```\n3.020833333333332\n```\n\n\n:::\n:::\n\n\n\n:::\n\nWhat we want to know is: is this difference unusual/big/statistically significant? Specifically, how likely would it be to get a difference this big if there were no difference between the two groups?\n\n## Permutation theory\n\nThe key idea behind permutation techniques is that if the null hypothesis is true, and there is no difference between the two groups then if I were to switch some of the mice from one group to the next then this wouldn’t change the difference between the groups too much. If on the other hand there actually is a difference between the groups (with one group having much higher weights than the other), then if I were to switch some mice between the groups then this should average out the two groups leading to a smaller difference in group means.\n\nSo, what we do is we shuffle the mice weights around lots and lots of times, calculating the difference between the group means each time. Once we have done this shuffling hundreds or thousands of times, we will have loads of possible values for the difference in the two group means. At this stage we can look at our actual difference (the one we calculated from our original data) and see how this compares to all of the simulated differences.\n\nWe can calculate how many of the simulated differences are bigger than our real difference and this proportion is exactly the p-value that we’re looking for!\n\nLet look at how to carry this out in practice.\n\n::: {.panel-tabset group=\"language\"}\n## R\n\nWe will be randomly shuffling our data around. So we set the `seed`, to aid reproducibility for the example.\n\n\n::: {.cell}\n\n```{.r .cell-code}\nseed <- 2602\n```\n:::\n\n\nWe need to approach this a bit logically, since we are going to iterate a process multiple times. We can break down the steps into the following:\n\n1. Define the number of permutations.\n2. Permute (randomly assign) the `diet` labels, without replacing.\n3. Calculate the *new difference* in means between the groups.\n4. Store the difference and repeat.\n\n\n::: {.cell}\n\n```{.r .cell-code}\nset.seed(seed)\n\n# Set the number of permutations\nreps <- 1000\n\n# Create a place to store the values\npermuted_stats <- tibble(permuted_diff = numeric(reps))\n\n# Loop through process\nfor(i in 1:reps){\n # Get the data \n permuted_data <- mice_weight\n \n # Permute (reshuffle) the group labels\n permuted_data$diet <- sample(permuted_data$diet)\n \n # Calculate the new group differences\n permuted_diff <- permuted_data %>% \n group_by(diet) %>% \n summarise(mean_weight = mean(weight)) %>% \n ungroup() %>% \n pull(mean_weight) %>% \n diff()\n \n # Store the calculated difference\n permuted_stats$permuted_diff[i] <- permuted_diff\n}\n```\n:::\n\n\n## Python\n\n\n::: {.cell}\n\n```{.python .cell-code}\nseed = 2602\n```\n:::\n\n::: {.cell}\n\n```{.python .cell-code}\nnp.random.seed(seed)\n\n# Set the number of permutations\nreps = 1000\n\n# Create a place to store the values\npermuted_stats = pd.DataFrame({'permuted_diff': [0] * reps})\n\n# Loop through process\nfor i in range(reps):\n # Get the data\n permuted_data_py = mice_weight_py\n \n # Permute the group labels\n permuted_data_py['diet'] = (np\n .random\n .permutation(permuted_data_py['diet']\n .values))\n \n # Calculate the new group difference\n permuted_diff = (permuted_data_py \n .groupby('diet')['weight']\n .mean()\n .diff()\n .iloc[-1])\n\n # Store the calculated difference\n permuted_stats['permuted_diff'][i] = permuted_diff\n```\n:::\n\n\n:::\n\nWe can visualise the difference as a histogram:\n\n::: {.panel-tabset group=\"language\"}\n## R\n\n\n::: {.cell}\n\n```{.r .cell-code}\nggplot(permuted_stats, aes(permuted_diff)) +\n geom_histogram() +\n geom_vline(xintercept = obs_diff_weight, colour = \"blue\", linewidth = 1)\n```\n\n::: {.cell-output .cell-output-stderr}\n\n```\n`stat_bin()` using `bins = 30`. Pick better value with `binwidth`.\n```\n\n\n:::\n\n::: {.cell-output-display}\n![](resampling-practical-permutation-single_files/figure-html/unnamed-chunk-19-1.png){width=672}\n:::\n:::\n\n\n## Python\n\n\n::: {.cell}\n\n```{.python .cell-code}\n(ggplot(permuted_stats,\n aes(x = \"permuted_diff\")) +\n geom_histogram() +\n geom_vline(xintercept = obs_diff_weight, colour = \"blue\", size = 1))\n```\n\n::: {.cell-output-display}\n![](resampling-practical-permutation-single_files/figure-html/unnamed-chunk-20-1.png){width=614}\n:::\n:::\n\n\n:::\n\nThe histogram is centred around zero, as we would expect: under the null hypothesis in this analysis there shouldn’t be any difference between the groups.\n\nThe blue vertical line shows us the value of our actual observed difference.\n\nWe can see that our observed difference is unlikely (because it’s out in the tails of the distribution rather than in the middle), but we want to be able to say exactly how unlikely. To do that we need to calculate the proportion of simulated differences that were bigger than our observed value. And, because we’re interested in a two-tailed test, we also need to include any simulated values that were less than -3.02 (so the lower tail).\n\nWe do this in the following steps:\n\n1. Count the number of occurrences where the permuted difference (`permuted_diff`) is larger than the observed weight difference (`obs_diff_weight`).\n2. Divide this by the number of times we permuted the data (`reps`)\n\n::: {.panel-tabset group=\"language\"}\n## R\n\n\n::: {.cell}\n\n```{.r .cell-code}\npermuted_stats %>% \n filter(abs(permuted_diff) > obs_diff_weight) %>% \n nrow()\n```\n\n::: {.cell-output .cell-output-stdout}\n\n```\n[1] 51\n```\n\n\n:::\n:::\n\n\nIf we divide this number by 1000 (the number of permutations), we get a value of 0.051.\n\nIn this case we have fixed the random number generator. You might not have done that and normally you probably don't want to either. In that case you will get a slightly different value every time you run this. In order to get more precision on this p-value we will need to run more than 1,000 replicates.\n\nA good rule of thumb is that, for 1,000 replicates, a permutation test will return a p- value to within 1% of the actual value (so in this case the p-value is probably between 0.041 and 0.061). If we go to 10,000 replicates, then the error in the estimated p-value reduces to about 0.1%.\n\n## Python\n\n\n::: {.cell}\n\n```{.python .cell-code}\nlarger_diff = len(permuted_stats[permuted_stats['permuted_diff'] \\\n .abs() > obs_diff_weight])\n\nlarger_diff\n```\n\n::: {.cell-output .cell-output-stdout}\n\n```\n50\n```\n\n\n:::\n:::\n\n\nIf we divide this number by 1000 (the number of permutations), we get a value of 0.05.\n\nIn this case we have fixed the random number generator. You might not have done that and normally you probably don't want to either. In that case you will get a slightly different value every time you run this. In order to get more precision on this p-value we will need to run more than 1,000 replicates.\n\nA good rule of thumb is that, for 1,000 replicates, a permutation test will return a p- value to within 1% of the actual value (so in this case the p-value is probably between 0.04 and 0.06). If we go to 10,000 replicates, then the error in the estimated p-value reduces to about 0.1%.\n:::\n\n## Exercises\n\n### Permuting IQR {#sec-exr_iqr}\n\n:::{.callout-exercise}\n\n\n{{< level 2 >}}\n\n\n\nFor this exercise we'll again use the `mice_weight` data from `data/mice_weight.csv`.\n\nOne of the advantages of using permutation tests is that we're not limited to just exploring the mean or median from our data. To practice this, we'll explore differences in the interquartile range (IQR) between the `control` and `highfat` groups.\n\nQuestion: is there a significant difference in the IQR of `weight` between `control` and `highfat` mice?\n\n::: {.callout-answer collapse=\"true\"}\n\nTo address the question, we do the following:\n\n1. Load and visualise the data\n2. Calculate the observed IQR for both groups\n3. Permute the data\n4. Calculate how often the permuted IQR is larger than the observed\n\n::: {.panel-tabset group=\"language\"}\n## R\n\n#### Load and visualise the data\n\n\n::: {.cell}\n\n```{.r .cell-code}\nmice_weight <- read_csv(\"data/mice_weight.csv\")\n```\n:::\n\n\nWe have visualised the data previously.\n\n#### Observed statistic\n\nTo calculate the interquartile range, we use the `IQR()` function. The IQR for each group is as follows:\n\n\n::: {.cell}\n\n```{.r .cell-code}\nmice_weight %>% \n group_by(diet) %>% \n summarise(iqr_weight = IQR(weight))\n```\n\n::: {.cell-output .cell-output-stdout}\n\n```\n# A tibble: 2 × 2\n diet iqr_weight\n \n1 control 5.04\n2 highfat 5.49\n```\n\n\n:::\n:::\n\n\nThe observed difference in IQR is:\n\n\n::: {.cell}\n\n```{.r .cell-code}\nobs_diff_iqr <- mice_weight %>% \n group_by(diet) %>% \n summarise(iqr_weight = IQR(weight)) %>% \n pull(iqr_weight) %>% \n diff()\n\nobs_diff_iqr\n```\n\n::: {.cell-output .cell-output-stdout}\n\n```\n[1] 0.45\n```\n\n\n:::\n:::\n\n\n#### Permute the data\n\n\n::: {.cell}\n\n```{.r .cell-code}\nseed <- 2602\n```\n:::\n\n::: {.cell}\n\n```{.r .cell-code}\nset.seed(seed)\n\n# Set the number of permutations\nreps <- 1000\n\n# Create a place to store the values\npermuted_stats <- tibble(permuted_diff = numeric(reps))\n\n# Loop through process\nfor(i in 1:reps){\n # Get the data \n permuted_data <- mice_weight\n \n # Permute (reshuffle) the group labels\n permuted_data$diet <- sample(permuted_data$diet)\n \n # Calculate the new group differences\n permuted_diff <- permuted_data %>% \n group_by(diet) %>% \n summarise(iqr_weight = IQR(weight)) %>% \n ungroup() %>% \n pull(iqr_weight) %>% \n diff()\n \n # Store the calculated difference\n permuted_stats$permuted_diff[i] <- permuted_diff\n}\n```\n:::\n\n\nWe visualise these as follows:\n\n\n::: {.cell}\n\n```{.r .cell-code}\nggplot(permuted_stats, aes(permuted_diff)) +\n geom_histogram() +\n geom_vline(xintercept = obs_diff_iqr, colour = \"blue\", linewidth = 1)\n```\n\n::: {.cell-output .cell-output-stderr}\n\n```\n`stat_bin()` using `bins = 30`. Pick better value with `binwidth`.\n```\n\n\n:::\n\n::: {.cell-output-display}\n![](resampling-practical-permutation-single_files/figure-html/unnamed-chunk-28-1.png){width=672}\n:::\n:::\n\n#### Calculate statistical significance\n\n\n::: {.cell}\n\n```{.r .cell-code}\npermuted_stats %>% \n filter(abs(permuted_diff) > obs_diff_iqr) %>% \n nrow()\n```\n\n::: {.cell-output .cell-output-stdout}\n\n```\n[1] 803\n```\n\n\n:::\n:::\n\n\nDividing this by the number of permutations (1000) gives us a p-value of 0.803.\n\n## Python\n\n#### Load and visualise the data\n\n\n::: {.cell}\n\n```{.python .cell-code}\nmice_weight_py = pd.read_csv(\"data/mice_weight.csv\")\n```\n:::\n\n\nWe have visualised the data previously.\n\n#### Observed statistic\n\nWe use the `iqr()` function from `scipy.stats`:\n\n\n::: {.cell}\n\n```{.python .cell-code}\nfrom scipy.stats import iqr\n\nobs_iqr = (mice_weight_py\n .groupby('diet')['weight']\n .agg(iqr))\n\nobs_iqr\n```\n\n::: {.cell-output .cell-output-stdout}\n\n```\ndiet\ncontrol 5.0375\nhighfat 5.4875\nName: weight, dtype: float64\n```\n\n\n:::\n:::\n\n\nThis gives us an observed difference of:\n\n\n::: {.cell}\n\n```{.python .cell-code}\nobs_diff_iqr = obs_iqr.diff().iloc[-1]\n\nobs_diff_iqr\n```\n\n::: {.cell-output .cell-output-stdout}\n\n```\n0.45000000000000284\n```\n\n\n:::\n:::\n\n\n#### Permute the data\n\n\n::: {.cell}\n\n```{.python .cell-code}\nseed = 2602\n```\n:::\n\n::: {.cell}\n\n```{.python .cell-code}\nnp.random.seed(seed)\n\n# Set the number of permutations\nreps = 1000\n\n# Create a place to store the values\npermuted_stats = pd.DataFrame({'permuted_diff': [0] * reps})\n\n# Loop through process\nfor i in range(reps):\n # Get the data\n permuted_data_py = mice_weight_py\n \n # Permute the group labels\n permuted_data_py['diet'] = (np\n .random\n .permutation(permuted_data_py['diet']\n .values))\n \n # Calculate the new group difference\n permuted_iqr = (permuted_data_py\n .groupby('diet')['weight']\n .agg(iqr))\n\n permuted_diff = permuted_iqr.diff().iloc[-1]\n\n # Store the calculated difference\n permuted_stats['permuted_diff'][i] = permuted_diff\n```\n:::\n\n::: {.cell}\n\n```{.python .cell-code}\n(ggplot(permuted_stats,\n aes(x = \"permuted_diff\")) +\n geom_histogram() +\n geom_vline(xintercept = obs_diff_iqr, colour = \"blue\", size = 1))\n```\n\n::: {.cell-output-display}\n![](resampling-practical-permutation-single_files/figure-html/unnamed-chunk-35-1.png){width=614}\n:::\n:::\n\n\n#### Calculate the statistical significance\n\nHere we need to find all the values where the permuted IQR is *smaller* than -0.45 or *larger* than 0.45:\n\n\n::: {.cell}\n\n```{.python .cell-code}\nlarger_diff = len(permuted_stats[permuted_stats['permuted_diff'] \\\n .abs() > obs_diff_iqr])\n\nlarger_diff\n```\n\n::: {.cell-output .cell-output-stdout}\n\n```\n808\n```\n\n\n:::\n:::\n\n\n\nIf we divide this number by 1000 (the number of permutations), we get a value of 0.808.\n\n:::\n\nThis analysis shows that there is no statistically significant difference between the interquartile range of weight for the two different diets.\n\n\n:::{.callout-note collapse=true}\n## Differences in IQR in R vs Python: would you like to know more?\n\nThe eagle-eyed amongst you might have noticed that the values calculated between R and Python are slightly different. Part of this is caused by the difference in how the random number generators work between the two languages (which we're not going to go into) and part of it by the difference in how the IQR is calculated.\n\nIn R, the `IQR()` function uses a default method to calculate the quartiles (\"type-7\"), which excludes the smallest and largest 25% of the data when calculating the quartiles.\n\nIn Python, the `scipy.stats.iqr()` function calculates the interquartile range simply as the difference between the 75th and 25th percentiles.\n\nHence, some slight differences. If you've *really* got your mind set on making them more equivalent you can specify an extra argument in Python: `rng`. You can set it to include the middle 50% of the data: `iqr(data, rng = (25, 75))`.\n:::\n\n:::\n:::\n\n\n\n\n\n\n## Summary\n\n::: {.callout-tip}\n#### Key points\n\n- We can use resampled data to draw conclusions around how likely it is our original data would occur, given the null hypothesis.\n- We can calculate statistical significance using this approach.\n:::\n", + "markdown": "---\ntitle: \"Single permutation tests\"\n---\n\n::: {.cell}\n\n:::\n\n::: {.cell}\n\n:::\n\n\n::: {.callout-tip}\n## Learning outcomes\n\n**Questions**\n\n- How do we analyse data without distributional assumptions?\n\n**Objectives**\n\nPerform Monte Carlo permutation tests for:\n\n- Single predictors\n:::\n\n## Libraries and functions\n\n::: {.callout-note collapse=\"true\"}\n## Click to expand\n\n::: {.panel-tabset group=\"language\"}\n## R\n\n### Libraries\n\n\n::: {.cell}\n\n```{.r .cell-code}\n# A collection of R packages designed for data science\nlibrary(tidyverse)\n```\n:::\n\n\n### Functions\n\n\n::: {.cell}\n\n```{.r .cell-code}\n# Takes a random sample with or without replacement (default)\nbase::sample()\n```\n:::\n\n\n## Python\n\n### Libraries\n\n\n::: {.cell}\n\n```{.python .cell-code}\n# A Python data analysis and manipulation tool\nimport pandas as pd\n\n# A Python package for scientific computing\nimport numpy as np\n\n# Python equivalent of `ggplot2`\nfrom plotnine import *\n\n# Python module providing statistical functionality\nfrom scipy import stats\n```\n:::\n\n\n### Functions\n\n\n::: {.cell}\n\n```{.python .cell-code}\n# Calculates the difference between two elements\npandas.DataFrame.diff()\n\n# Randomly permutes a sequence\nnumpy.random.permutation()\n\n# Calculates the interquartile range\nscipy.stats.iqr()\n```\n:::\n\n:::\n:::\n\n## Purpose and aim\n\nIf we wish to test for a difference between two groups in the case where the assumptions of a two-sample t-test just aren’t met, then a two-sample permutation test procedure is appropriate. It is also appropriate even if the assumptions of a t-test are met, but in that case, it would be easier to just do the t-test.\n\nOne of the additional benefits of permutation test is that we aren’t just restricted to testing hypotheses about the means of the two groups. We can test hypotheses about absolutely anything we want! So, we could see if the ranges of the two groups differed significantly etc.\n\n## Data and hypotheses\n\nLet’s consider an experimental data set where we have measured the weights of two groups of 12 female mice (so 24 mice in total). One group of mice was given a perfectly normal diet (`control`) and the other group of mice was given a high fat diet for several months (`highfat`).\n\nWe want to test whether there is any difference in the mean weight of the two groups. We still need to specify the hypotheses:\n\n$H_0$: there is no difference in the means of the two groups\n\n$H_1$: there is a difference in the means of the two groups Let’s read in the data and look at it:\n\n::: {.panel-tabset group=\"language\"}\n## R\n\n\n::: {.cell}\n\n```{.r .cell-code}\nmice_weight <- read_csv(\"data/mice_weight.csv\")\n```\n:::\n\n::: {.cell}\n\n```{.r .cell-code}\nggplot(mice_weight, aes(x = diet, y = weight)) +\n geom_boxplot() +\n geom_jitter(width = 0.1)\n```\n\n::: {.cell-output-display}\n![](resampling-practical-permutation-single_files/figure-html/unnamed-chunk-8-1.png){width=672}\n:::\n:::\n\n\n## Python\n\n\n::: {.cell}\n\n```{.python .cell-code}\nmice_weight_py = pd.read_csv(\"data/mice_weight.csv\")\n```\n:::\n\n::: {.cell}\n\n```{.python .cell-code}\n(ggplot(mice_weight_py,\n aes(x = \"diet\",\n y = \"weight\")) +\n geom_boxplot() +\n geom_jitter(width = 0.1))\n```\n\n::: {.cell-output-display}\n![](resampling-practical-permutation-single_files/figure-html/unnamed-chunk-10-1.png){width=614}\n:::\n:::\n\n\n:::\n\nLooking at the data, it appears that there might be a difference between the mean weight of the two groups. The weights of the mice on the `highfat` diet appears somewhat higher than on `control`, although there is quite some overlap between the data.\n\nThe medians (the horizontal lines in the boxes) are shifted - as are the boxes. So, the first thing we probably want to do is to calculate the exact difference in means:\n\n::: {.panel-tabset group=\"language\"}\n## R\n\n\n::: {.cell}\n\n```{.r .cell-code}\nmice_weight %>% \n group_by(diet) %>% \n summarise(mean_weight = mean(weight)) %>% \n ungroup()\n```\n\n::: {.cell-output .cell-output-stdout}\n\n```\n# A tibble: 2 × 2\n diet mean_weight\n \n1 control 23.8\n2 highfat 26.8\n```\n\n\n:::\n:::\n\n\nWe'll want to use this difference later on, so we store it in a variable:\n\n\n::: {.cell}\n\n```{.r .cell-code}\nobs_diff_weight <- mice_weight %>% \n group_by(diet) %>% \n summarise(mean_weight = mean(weight)) %>% \n ungroup() %>% \n # calculate the difference in weight\n # (there are many ways that you can do this)\n pull(mean_weight) %>% \n diff()\n\nobs_diff_weight\n```\n\n::: {.cell-output .cell-output-stdout}\n\n```\n[1] 3.020833\n```\n\n\n:::\n:::\n\n\n## Python\n\n\n::: {.cell}\n\n```{.python .cell-code}\nobs_diff_weight = (mice_weight_py\n .groupby('diet')['weight']\n .mean()\n .diff()\n .iloc[-1])\n```\n:::\n\n\nThis gives us an observed difference of:\n\n\n::: {.cell}\n\n```{.python .cell-code}\nobs_diff_weight\n```\n\n::: {.cell-output .cell-output-stdout}\n\n```\n3.020833333333332\n```\n\n\n:::\n:::\n\n\n\n:::\n\nWhat we want to know is: is this difference unusual/big/statistically significant? Specifically, how likely would it be to get a difference this big if there were no difference between the two groups?\n\n## Permutation theory\n\nThe key idea behind permutation techniques is that if the null hypothesis is true, and there is no difference between the two groups then if I were to switch some of the mice from one group to the next then this wouldn’t change the difference between the groups too much. If on the other hand there actually is a difference between the groups (with one group having much higher weights than the other), then if I were to switch some mice between the groups then this should average out the two groups leading to a smaller difference in group means.\n\nSo, what we do is we shuffle the mice weights around lots and lots of times, calculating the difference between the group means each time. Once we have done this shuffling hundreds or thousands of times, we will have loads of possible values for the difference in the two group means. At this stage we can look at our actual difference (the one we calculated from our original data) and see how this compares to all of the simulated differences.\n\nWe can calculate how many of the simulated differences are bigger than our real difference and this proportion is exactly the p-value that we’re looking for!\n\nLet look at how to carry this out in practice.\n\nWe need to approach this a bit logically, since we are going to iterate a process multiple times. We can break down the steps into the following:\n\n1. Define the number of permutations.\n2. Permute (randomly assign) the `diet` labels, without replacing.\n3. Calculate the *new difference* in means between the groups.\n4. Store the difference and repeat.\n\n::: {.panel-tabset group=\"language\"}\n## R\n\nWe will be randomly shuffling our data around. So we set the `seed`, to aid reproducibility for the example.\n\n\n::: {.cell}\n\n```{.r .cell-code}\nseed <- 2602\n```\n:::\n\n::: {.cell}\n\n```{.r .cell-code}\nset.seed(seed)\n\n# Set the number of permutations\nreps <- 1000\n\n# Create a place to store the values\npermuted_stats <- tibble(permuted_diff = numeric(reps))\n\n# Loop through process\nfor(i in 1:reps){\n # Get the data \n permuted_data <- mice_weight\n \n # Permute (reshuffle) the group labels\n permuted_data$diet <- sample(permuted_data$diet)\n \n # Calculate the new group differences\n permuted_diff <- permuted_data %>% \n group_by(diet) %>% \n summarise(mean_weight = mean(weight)) %>% \n ungroup() %>% \n pull(mean_weight) %>% \n diff()\n \n # Store the calculated difference\n permuted_stats$permuted_diff[i] <- permuted_diff\n}\n```\n:::\n\n\n## Python\n\n\n::: {.cell}\n\n```{.python .cell-code}\nseed = 2602\n```\n:::\n\n::: {.cell}\n\n```{.python .cell-code}\nnp.random.seed(seed)\n\n# Set the number of permutations\nreps = 1000\n\n# Create a place to store the values\npermuted_stats = pd.DataFrame({'permuted_diff': [0] * reps})\n\n# Loop through process\nfor i in range(reps):\n # Get the data\n permuted_data_py = mice_weight_py\n \n # Permute the group labels\n permuted_data_py['diet'] = (np\n .random\n .permutation(permuted_data_py['diet']\n .values))\n \n # Calculate the new group difference\n permuted_diff = (permuted_data_py \n .groupby('diet')['weight']\n .mean()\n .diff()\n .iloc[-1])\n\n # Store the calculated difference\n permuted_stats['permuted_diff'][i] = permuted_diff\n```\n:::\n\n\n:::\n\nWe can visualise the difference as a histogram:\n\n::: {.panel-tabset group=\"language\"}\n## R\n\n\n::: {.cell}\n\n```{.r .cell-code}\nggplot(permuted_stats, aes(permuted_diff)) +\n geom_histogram() +\n geom_vline(xintercept = obs_diff_weight, colour = \"blue\", linewidth = 1)\n```\n\n::: {.cell-output .cell-output-stderr}\n\n```\n`stat_bin()` using `bins = 30`. Pick better value with `binwidth`.\n```\n\n\n:::\n\n::: {.cell-output-display}\n![](resampling-practical-permutation-single_files/figure-html/unnamed-chunk-19-1.png){width=672}\n:::\n:::\n\n\n## Python\n\n\n::: {.cell}\n\n```{.python .cell-code}\n(ggplot(permuted_stats,\n aes(x = \"permuted_diff\")) +\n geom_histogram() +\n geom_vline(xintercept = obs_diff_weight, colour = \"blue\", size = 1))\n```\n\n::: {.cell-output-display}\n![](resampling-practical-permutation-single_files/figure-html/unnamed-chunk-20-1.png){width=614}\n:::\n:::\n\n\n:::\n\nThe histogram is centred around zero, as we would expect: under the null hypothesis in this analysis there shouldn’t be any difference between the groups.\n\nThe blue vertical line shows us the value of our actual observed difference.\n\nWe can see that our observed difference is unlikely (because it’s out in the tails of the distribution rather than in the middle), but we want to be able to say exactly how unlikely. To do that we need to calculate the proportion of simulated differences that were bigger than our observed value. And, because we’re interested in a two-tailed test, we also need to include any simulated values that were less than -3.02 (so the lower tail).\n\nWe do this in the following steps:\n\n1. Count the number of occurrences where the permuted difference (`permuted_diff`) is larger than the observed weight difference (`obs_diff_weight`).\n2. Divide this by the number of times we permuted the data (`reps`)\n\n::: {.panel-tabset group=\"language\"}\n## R\n\n\n::: {.cell}\n\n```{.r .cell-code}\npermuted_stats %>% \n filter(abs(permuted_diff) > obs_diff_weight) %>% \n nrow()\n```\n\n::: {.cell-output .cell-output-stdout}\n\n```\n[1] 51\n```\n\n\n:::\n:::\n\n\nIf we divide this number by 1000 (the number of permutations), we get a value of 0.051.\n\nIn this case we have fixed the random number generator. You might not have done that and normally you probably don't want to either. In that case you will get a slightly different value every time you run this. In order to get more precision on this p-value we will need to run more than 1,000 replicates.\n\nA good rule of thumb is that, for 1,000 replicates, a permutation test will return a p- value to within 1% of the actual value (so in this case the p-value is probably between 0.041 and 0.061). If we go to 10,000 replicates, then the error in the estimated p-value reduces to about 0.1%.\n\n## Python\n\n\n::: {.cell}\n\n```{.python .cell-code}\nlarger_diff = len(permuted_stats[permuted_stats['permuted_diff'] \\\n .abs() > obs_diff_weight])\n\nlarger_diff\n```\n\n::: {.cell-output .cell-output-stdout}\n\n```\n50\n```\n\n\n:::\n:::\n\n\nIf we divide this number by 1000 (the number of permutations), we get a value of 0.05.\n\nIn this case we have fixed the random number generator. You might not have done that and normally you probably don't want to either. In that case you will get a slightly different value every time you run this. In order to get more precision on this p-value we will need to run more than 1,000 replicates.\n\nA good rule of thumb is that, for 1,000 replicates, a permutation test will return a p- value to within 1% of the actual value (so in this case the p-value is probably between 0.04 and 0.06). If we go to 10,000 replicates, then the error in the estimated p-value reduces to about 0.1%.\n:::\n\n## Exercises\n\n### Permuting IQR {#sec-exr_iqr}\n\n:::{.callout-exercise}\n\n\n{{< level 2 >}}\n\n\n\nFor this exercise we'll again use the `mice_weight` data from `data/mice_weight.csv`.\n\nOne of the advantages of using permutation tests is that we're not limited to just exploring the mean or median from our data. To practice this, we'll explore differences in the interquartile range (IQR) between the `control` and `highfat` groups.\n\nQuestion: is there a significant difference in the IQR of `weight` between `control` and `highfat` mice?\n\n::: {.callout-answer collapse=\"true\"}\n\nTo address the question, we do the following:\n\n1. Load and visualise the data\n2. Calculate the observed IQR for both groups\n3. Permute the data\n4. Calculate how often the permuted IQR is larger than the observed\n\n::: {.panel-tabset group=\"language\"}\n## R\n\n#### Load and visualise the data\n\n\n::: {.cell}\n\n```{.r .cell-code}\nmice_weight <- read_csv(\"data/mice_weight.csv\")\n```\n:::\n\n\nWe have visualised the data previously.\n\n#### Observed statistic\n\nTo calculate the interquartile range, we use the `IQR()` function. The IQR for each group is as follows:\n\n\n::: {.cell}\n\n```{.r .cell-code}\nmice_weight %>% \n group_by(diet) %>% \n summarise(iqr_weight = IQR(weight))\n```\n\n::: {.cell-output .cell-output-stdout}\n\n```\n# A tibble: 2 × 2\n diet iqr_weight\n \n1 control 5.04\n2 highfat 5.49\n```\n\n\n:::\n:::\n\n\nThe observed difference in IQR is:\n\n\n::: {.cell}\n\n```{.r .cell-code}\nobs_diff_iqr <- mice_weight %>% \n group_by(diet) %>% \n summarise(iqr_weight = IQR(weight)) %>% \n pull(iqr_weight) %>% \n diff()\n\nobs_diff_iqr\n```\n\n::: {.cell-output .cell-output-stdout}\n\n```\n[1] 0.45\n```\n\n\n:::\n:::\n\n\n#### Permute the data\n\n\n::: {.cell}\n\n```{.r .cell-code}\nseed <- 2602\n```\n:::\n\n::: {.cell}\n\n```{.r .cell-code}\nset.seed(seed)\n\n# Set the number of permutations\nreps <- 1000\n\n# Create a place to store the values\npermuted_stats <- tibble(permuted_diff = numeric(reps))\n\n# Loop through process\nfor(i in 1:reps){\n # Get the data \n permuted_data <- mice_weight\n \n # Permute (reshuffle) the group labels\n permuted_data$diet <- sample(permuted_data$diet)\n \n # Calculate the new group differences\n permuted_diff <- permuted_data %>% \n group_by(diet) %>% \n summarise(iqr_weight = IQR(weight)) %>% \n ungroup() %>% \n pull(iqr_weight) %>% \n diff()\n \n # Store the calculated difference\n permuted_stats$permuted_diff[i] <- permuted_diff\n}\n```\n:::\n\n\nWe visualise these as follows:\n\n\n::: {.cell}\n\n```{.r .cell-code}\nggplot(permuted_stats, aes(permuted_diff)) +\n geom_histogram() +\n geom_vline(xintercept = obs_diff_iqr, colour = \"blue\", linewidth = 1)\n```\n\n::: {.cell-output .cell-output-stderr}\n\n```\n`stat_bin()` using `bins = 30`. Pick better value with `binwidth`.\n```\n\n\n:::\n\n::: {.cell-output-display}\n![](resampling-practical-permutation-single_files/figure-html/unnamed-chunk-28-1.png){width=672}\n:::\n:::\n\n#### Calculate statistical significance\n\n\n::: {.cell}\n\n```{.r .cell-code}\npermuted_stats %>% \n filter(abs(permuted_diff) > obs_diff_iqr) %>% \n nrow()\n```\n\n::: {.cell-output .cell-output-stdout}\n\n```\n[1] 803\n```\n\n\n:::\n:::\n\n\nDividing this by the number of permutations (1000) gives us a p-value of 0.803.\n\n## Python\n\n#### Load and visualise the data\n\n\n::: {.cell}\n\n```{.python .cell-code}\nmice_weight_py = pd.read_csv(\"data/mice_weight.csv\")\n```\n:::\n\n\nWe have visualised the data previously.\n\n#### Observed statistic\n\nWe use the `iqr()` function from `scipy.stats`:\n\n\n::: {.cell}\n\n```{.python .cell-code}\nfrom scipy.stats import iqr\n\nobs_iqr = (mice_weight_py\n .groupby('diet')['weight']\n .agg(iqr))\n\nobs_iqr\n```\n\n::: {.cell-output .cell-output-stdout}\n\n```\ndiet\ncontrol 5.0375\nhighfat 5.4875\nName: weight, dtype: float64\n```\n\n\n:::\n:::\n\n\nThis gives us an observed difference of:\n\n\n::: {.cell}\n\n```{.python .cell-code}\nobs_diff_iqr = obs_iqr.diff().iloc[-1]\n\nobs_diff_iqr\n```\n\n::: {.cell-output .cell-output-stdout}\n\n```\n0.45000000000000284\n```\n\n\n:::\n:::\n\n\n#### Permute the data\n\n\n::: {.cell}\n\n```{.python .cell-code}\nseed = 2602\n```\n:::\n\n::: {.cell}\n\n```{.python .cell-code}\nnp.random.seed(seed)\n\n# Set the number of permutations\nreps = 1000\n\n# Create a place to store the values\npermuted_stats = pd.DataFrame({'permuted_diff': [0] * reps})\n\n# Loop through process\nfor i in range(reps):\n # Get the data\n permuted_data_py = mice_weight_py\n \n # Permute the group labels\n permuted_data_py['diet'] = (np\n .random\n .permutation(permuted_data_py['diet']\n .values))\n \n # Calculate the new group difference\n permuted_iqr = (permuted_data_py\n .groupby('diet')['weight']\n .agg(iqr))\n\n permuted_diff = permuted_iqr.diff().iloc[-1]\n\n # Store the calculated difference\n permuted_stats['permuted_diff'][i] = permuted_diff\n```\n:::\n\n::: {.cell}\n\n```{.python .cell-code}\n(ggplot(permuted_stats,\n aes(x = \"permuted_diff\")) +\n geom_histogram() +\n geom_vline(xintercept = obs_diff_iqr, colour = \"blue\", size = 1))\n```\n\n::: {.cell-output-display}\n![](resampling-practical-permutation-single_files/figure-html/unnamed-chunk-35-1.png){width=614}\n:::\n:::\n\n\n#### Calculate the statistical significance\n\nHere we need to find all the values where the permuted IQR is *smaller* than -0.45 or *larger* than 0.45:\n\n\n::: {.cell}\n\n```{.python .cell-code}\nlarger_diff = len(permuted_stats[permuted_stats['permuted_diff'] \\\n .abs() > obs_diff_iqr])\n\nlarger_diff\n```\n\n::: {.cell-output .cell-output-stdout}\n\n```\n808\n```\n\n\n:::\n:::\n\n\n\nIf we divide this number by 1000 (the number of permutations), we get a value of 0.808.\n\n:::\n\nThis analysis shows that there is no statistically significant difference between the interquartile range of weight for the two different diets.\n\n\n:::{.callout-note collapse=true}\n## Differences in IQR in R vs Python: would you like to know more?\n\nThe eagle-eyed amongst you might have noticed that the values calculated between R and Python are slightly different. Part of this is caused by the difference in how the random number generators work between the two languages (which we're not going to go into) and part of it by the difference in how the IQR is calculated.\n\nIn R, the `IQR()` function uses a default method to calculate the quartiles (\"type-7\"), which excludes the smallest and largest 25% of the data when calculating the quartiles.\n\nIn Python, the `scipy.stats.iqr()` function calculates the interquartile range simply as the difference between the 75th and 25th percentiles.\n\nHence, some slight differences. If you've *really* got your mind set on making them more equivalent you can specify an extra argument in Python: `rng`. You can set it to include the middle 50% of the data: `iqr(data, rng = (25, 75))`.\n:::\n\n:::\n:::\n\n\n\n\n\n\n## Summary\n\n::: {.callout-tip}\n#### Key points\n\n- We can use resampled data to draw conclusions around how likely it is our original data would occur, given the null hypothesis.\n- We can calculate statistical significance using this approach.\n:::\n", "supporting": [ "resampling-practical-permutation-single_files" ], diff --git a/_freeze/materials/resampling-practical-permutation-single/figure-html/unnamed-chunk-10-1.png b/_freeze/materials/resampling-practical-permutation-single/figure-html/unnamed-chunk-10-1.png index 009eccf63d454c4e58e0e51a62c8b4f39bd55b4b..f6313d24bc6b130c0cbe6139a4404e92378fbfce 100644 GIT binary patch literal 27601 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

^7wiYnE#vX7iew!6^qUtl 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 diff --git a/_freeze/materials/resampling-practical-permutation-single/figure-html/unnamed-chunk-8-1.png b/_freeze/materials/resampling-practical-permutation-single/figure-html/unnamed-chunk-8-1.png index 60f178622285c9e824b483d8d8132db8ff827f02..8bcd1489180bee561915d5a8ac657479c291fcf6 100644 GIT binary patch literal 49009 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 literal 49165 zcmeFa2T+tt*DgAY7*J6}f?@zgKuMw`ku)ZPh@c=K2&hO-5=1i0HiHCFK_!hMNpcpD zpb|tRBRL6(AQ{Q=t{#F6oBy1uTlZGoI(L6nU)5~qeS5lBuU_F<&uSjYpO>WE$gmNE z!B9#|oxX^{ti@q4YqB@2gMS&;si?(Z$hYX9Iwfy-O7fJck*T@D&1+iPlG-NP=K5L} zB~M~7$K2d5sq5{&L?h;#n!s_O_)cX=h}V``{%46s7t8L}bR@ci3Q8a5Y6?oqBSAEBPZv$+NUCYpNbi8JpAXj+U1sd)RodCi2+V{jJ)VS=!uqb!YMuQ(q{mua8sY2pjn^ zwNigh!YJF|`mmdO|9C(Zc&WX?@?i|OenKwQoOY@{#UL|A zJ^jNy^NoXIIa-(OKJ4za41XtBmdz1b`BImv`HuCik0M|5`c6+L9ntjLc+2sk-{y|3 zdoeAo>|C+7W6XPFW%bz~7P=|x3FHqw9DmeXUR^2_tmATmv(L3{Xq!@~ zSdMadfX~SpO|BH0JQmUW8h)ECzwq3e9+|XK_J6sd)k}ze6T@Sc!%9hmC%-r;C$YVy z(oD8=@@Q@NB3u9TD_LMxAj41jr;JZ~uZZQ)zHlqReY|VaL(6k@`)N<6t@`$ASA#+~ zGIZ*_?hMv@J^sC=r}@*NiCIjFqQUH!?#?ovlOc1=1Eudi_3K??{;=86Mla%4DTU5W z=E@_|ho!yljPKt6w4G$u%D7&UhC2F># z_et|tb*$zuLDkK(>mAoPb=NDU@OSflQ`+c|W~!DW`A78p4Y6RZOGeicg5F%_SDM5! z7GfMytyk+WU7Yt{t|u5{%gHMz5Z}Ex5o^iVE-QJN9D@Pg8x)^+( z#h{VM+Uxe3_IzSA;-7Bb+1c!xd7)>p(!49aa7*iBegDLySHE387qqus-xzb0oo@5b zY{J3rw9fS1Wg%OVeDr=|V(pF|`(!FTJ40V@6Rd3!xbE0AoA8)wve4F+$Tg)?dW8bc zx@{T#m`Je@>(PtWY&qAPvB$pO`TS8?j-e!iv3o?#+JvPEQ)8c@F*h}1>+okyWi#eI zVQ$SFi}j{lt*SyW5XZDtq;+IvG3@Yp1BUE@K874Vk-`5N;Qts5mVjOSm$f*;n#Ip+ zveB2x+df~wU~m}e(edP z-aL2z^s;|jdJ3D=ajPF{tKOz&D~RrZRR6ThW$p5$G=ocUL9&bVu9$qD!TRo5`D@+~Z? zWVLBy|DRtJ1C?b=_RLr_V~O~j{n*}|CJHJhd3k(DNJ#k?+mYY21)mpp<;zo?g@wfd zj~j#iFGY&{G$^RT`0-^ylKDEm##O<|iI+rkSbJf?)?%SsB4Cdn|KI zluU2e69&5@=IvkJPyUWDjO6GA!4gK-(s8NM$ar%~?`phyhw_bFpjc9K;ue?@ail2n zCfn{P>#5$93jXexEXU#Q>X`3Ja_DOUFFshtC-21(t>YZsH`94>!tLST^3u}MI_pzR zwXJjx!)AA$z!o(7bNPH^D_Khr)f=LGP82cC>8le%KL`8L`$K}HXGPl*uAN}5;@Lp; z<+-yj(@%pmKABY%4@U=EPREtBnhv#}#bI7Wbd_^1ZuRn=ybM}&IkA$OM8)SH^yGjs zqeEm8RvYxjHY#VGvWu(EB^t&|eZ^h0>Y!&}GG}DCR+~#IHI;M6e+&Hgk^XN7|DRV; z2J`PxI*TWHUc+%)w^{%4zulVF9qlSUJLnO2^T($h$1U}GQkoqHAIaJ8|NYyqr1I44 zjvcIISXwG7XC+J-H>r)qv8>f8_S>1i=k}Ek!{su@R#QQYGY732%<^A|IoKK{eOEG0 zwmE?gaPOw^=NG29t4I$CK574eZ}T+k7LkGMOP@--b@tk{KiMH{W%MmjJWKm|Aev|? z-Wij)X1DK(U*=!iWZmX=Y_vuzC^a?p^XJUj$?mS5Z}!mDN}=Bicg9pQl9Rd-d1kEm z+(Zd8g<#?3*?|Y*IiI(RUpXJn08b6;!QuA^aJ<8|+-TzaXsicw>D%J+_sTF9xII3u z<|WTt=#?Z^nE4$RLO6)UmcIG+){I1jaYYmjmKCyQ<V8>-UZ zh%%kgD1lulRREhIsvY9?bh&XNH_*8HnNsjuWt-=|Q%ApZu!5VCqoHyh&ABY7L$Z`G zX?(_5ldyv3R8N9jh;1&&sq+y`Cg50i-Z>I`$$#i(J5jIL z4oZri)L#K+pig-Zw=viCvZwaU%ue+mo;p`%b^AIC*gsoO+^MY$5wBNhz?BV;_XrCF zShqfUKT@UE7GT%+=!`2}Zt3e&T3Iuru1B=;+OKbZ1-=XywP6F!P@8p_s891MjHIVZ z!NNEDHMI-c_Eu+VCTnY+gCI5jIh&=9cPITF5hfqqHln-b;uRYlZbHs zr*Mw2WfLzs{7L6OZ`eIAfSKQRPH6tWNJpIj*U_OHZFzRJK_y@^5`_*Ymr;u;$W+=l$B3@$l1I1KkS3g6$nGhS)x=1ox8_6sdVg3XU1w+@Ml z$(o%k3zZ8L*>b96Atc#KCndHunR8}xQ z)+f(S@pV%*kROV8VY|xlAvb4c!W0!L>OUiiV&}awJ`$D{dHwgI{FWQ#FK*5lK0$@x z3#$zpzi|UD!6lp|5MKy^m;_Qu-aT2Aau0gy~Mym8k!O3#1sLO z`EP;$jxzt-!T(hB-#N?wDQA%HhQpl|Mos5!-d^)~&d%5MPPrOb1s!5v_e- z5k2T{uG90FW5$rkL{y4Tfwv*U z3PHNwVLg;cnw{3J?I;Ok44n9;+uEDbtkLUB4;b$HJ(lvEDzR6S_ytgAgcC!#>kBq@ zlH3({kG%MJcjT7OCElMoue|4Bl?!MXDo0L)>I=Xpe4*PzjY$mj7w%a5iJ|e47$^17 zT`?J>b$TWy-02$okm;xl0F-95*JI_=qi$%Ehf#yG#`-UdFWAZs-K3p_OJ&uMA zI{^ZrJn!O7DiAyJ-`(B3{qH&Y3+$;(QJjW1*-qtbwJT~5Nji^rHS3lB+;l&KWORw*IQ{x|sKi0)oJk^vS(s|eVK>KUU4B%)q;m5>Gt{%tGFur$=N50?OJQQB7jnq>bM zwks?erkvK~F0pL;7GK5D0{C$$$Lb)7axQG$I}RpHRCG!Z$yP2bN&XCI-2drI#NTJ% zTew1|xT1|H$ekU}7tafvoBpK|e?xjRqnOBOv(wxTK0W!O(a0l6n4MQ}n7Y&_8%YFv z@O}24+YQ^;0<5op^A}DjlA0Rr-PJtZA=u_;QT*usI>y)aE!Kd^;r%weCl_Pe9xO}p zdgosJE|d5BMjLN81H#*`SLn^<+V3!NoyHdqeNyHN{i|msx?}`(Cj~q~Gr<^iL z#zy`3LRxu`$A4^fQh6OzM~PHHQ33Q$);OO;@9?jv-?w|oTn8JfJz_aK@hd;QKT}O9 zYCoD&*dEyb-f#ELlV}{_D>kLUT&7m?%KMwwrn}^v*cVOOeb7OHjuZ4GS|3YCPRFU@ z*%fxVo45DM5i}D^S9nlOrI$1e9%70GNLtsxBHNkl}bz|X@@sXajmD}OTbxGes5v?m%T zO%`^~IMIp}08Zi_DD!aS%N%qwwXExyYMz^YKk#XjaFhb^_$INzamf%W+eR`W#S2%z zK09QVw^R4Dy80C36Y-%Z9y#i_8);A7-yD8jc?;2CJg3$Rt90*qKx!}AFECMvISt%l z%sG<3d%Lox!>#Fw5+`>S8Sk8dAD`O@cec35IZakXP)hzerXdPKA%s$Fz}eM3-gTH{ z3W*%CMFRCXHoyF<`vf?U(PhfQ_69ZwHV=0Ck^ba@F=c_xee`KNiSjK-&V`i;!&Uc~ zVJpc`{P*5}a`{hRNNgeUw*N<*qf+@qvJ9X$3>Iq69_=Xdr3Y5SqpeQkpAqL_ye3~P zx$ZT$S~6!efGXAlAJ=RB_;l~c^_+(_X8C)x8s3{-(A3PT8>?L&Jucb~obe_ac1*_H z>{OfP>`%?>UFE^ylXlHhO)rFRn>5_~Oi8Sro)_*-yo4=6r7WMU>7Ul%iYmr7Gw>ZW zf$U(|tUqHc@2&JxBE>?~HElH#3PBzJ=?ZpksPJ&U&@aEI_X8j7HkZ0$QN%x3-#jb8 z{bAr!jZs2TYlp9?d*R_Md)m7eC8C0q;jOT?#k5~o!;jXt`HhM zw3p*w`wiah%LCjsY-xLBQA(37$9>9ObZq{X7dP)Y&L>)L;iGQ#NXuP_)!$9H|3gAi zq{v{-_QC8mTTf>>&RidAFF0~F+u71C-ouqU?V!V4d2B*-bZ@Lxv%{F>Q4QO!;9+4gHJuO^szz8wn`pm{T;cCwUGqcs@mW6$eI%*> zQC)T7fw=m&JWew{#{+n-ojmvQD9cQAN%_~gxpq^hDYZ#XAr8xyYe$m{*)0Vv~AyzEP`6J#X#CTif40k9wM(E~nB8Ly8UdfD$GYd|d8#|gBVISWMfSu9p^yesOh_%JvZgxmX9Q424 zbf~dCIlFoK}7bZ@|yX**CqE^w#dQL^4>VFeij)Z`CK09rKJ_X%s{yFLL)6; zdVNS{rdYAapKm(^O|I;^)Bf2qK9SttSYWo_6>6r3)xTd%85;Gj7N4pud82()wJK@4 z!Evg$g5tLkBiD!{O8Rh9SQ#H~W2ZZdlo>n&o!%a2)~tq++SvPSGKP@By~W9NB(nmQ ziW{$KbAPXG=j$CJ);FQJdU}Y_uYF2P(|$1b;$;9#yUx97pE^~qHaXTG7;S<#iOC}- zbR=O4oE8IRLaeUyY_-#j^6>BP9A3?_Gt9@SE%qz%6MZKlOcc#{Q}LRbsGM+h*EurGrxb@oYg7*Kvv{g z$8c?w7@^bIE=?H8(wrRa?M}EBz$zC5Yr2b*5%X!cS6AOSB^|#u_;!Dj8D!PDi0(iv zH~)@^ac>_Qzad>rC7ap&Cn}}MpgKl-1}G8reWTvb8K-LURRf}jEb<=j?3z{1ESzS) zr-b5$Y<6taVLLg;o!@H@zg4Qm(=Nn__#{qGKl_UK1J}Yz?sG99*%L(Y-j8E`>e}=h zs9mbTB=+(!kJcH+@L~MHUg#_6lIa!tD5PXs*mo5LEQBO5*ugN|(5A4#wtRX^%ll^_ zk1C+Wa}`ef3S<uUmY4HryYkB~ z4;USfsrwk2ULLL04IFRmccf3yEpab#98KVgs0b_&pEQAr{_upma9@p%?=lNv>xBd8 zTaF<*j;N|`8xIJkCR25~Aft5P+c~gI=Sm^^7G$i$@#4tLQ)j<^Uhw@3tk|9jw zL>4|lr^sc^mScoOuGB~6pf+@j*W(%}8Hv(C98P1(r zEkT|o-?-hGbr`JwqY{Tc3$ykok|COPnZWO<0k5EShf<*Prj8fynV9sxv|+EYc8Rmn zSJTQQcAZgISAWo-@MK9^e?Q>s=ng7k>Q4GMbcqVx;kCJO*^7{v5X)CMyDFJ3)@rR^ z>wBx2J^p`(SahHO=s@Og#T>0piek)v4{wqa46B>VP|Uw_ah-@SA=p~Szckje4~EJ( zOxphoKZ(C@(vb46xn81DNwd^%aGIML{IuzC4&lTdq-*YEYt||L__77%!zkISn%&(+ zOwRs#FUV{FMSCG)V}1n;>fmU-sgD5z14AopwA-H&adChVRaE;aU}3gzoMl?t68&N5YmI)We|f@53vrb-$VM?h)uS3yqDCso z>^kaW6YWpiASU=dF!1MBi3iZ2K73}_1&_&Ff_%$#YsUXh7j}Vg6I&uWcIAp$F0Hm3 z2Zgk0#z@R+IgamHEyP-41?(%C8Z}?fsK7Kl>v>7~T)EObdZ)bt@`BP@L05FrxN};of>d_v63A{x=Kr zlK%q{*E7FL9_{XY%=D4R`uqF_Atu;VuA9d%9R5y~+y`1CK@cdIoU zm?j`^)_DX=DXQ~!-3oTlMpn-&b(#5l?Q(*BG#FAEt<)gi+k{Z%8i%pQwzp5uyX>*5 zd3}{xU^h6v8=z@Af`7J<=Dza0SYMMgeTa&JbtcO;fDReR0xv2_fO&G!V=fmk;W|j& zxmkZDcZBQaJ>5Av=g#q9os)oF87+3p}9W7)>@E#I{U9eH|h9Ch|-)%F? z#j>bc@<(7Hxd(e6u4d3wK>}5Ek2_a@A;fX;F0c>|34Kyze8IF;z5)qU>6{i{h#yD} zy5c!l$dR+cBna2S6ND-R4*j>4|83=er}F=dQ&}o+NZB=SK-w?2K&0<+IYB2ETs-~E z)R+hGU~_;QyK`h@#AdHI>JnKBjy%=CGMR*)Z$majUIyz*f7t!0oS2Z~WJRC^q-(xa z$#n)1?^|6su6u}%>LoO7A~B4ej$}UBx3l7y(U7>0YrVPE84#_Q!904mBkQR^$WqcA zps2Ohheu@jizF34PhLE4i3l$|R&lKwI5LB^C5{3b4kO>UbQ_WMq2RwlDT$+7-xN)@ z^fP&r{hy-uJ@JKK8E##)oA~MDb18z(&fKBHYOk9tq-pPsw6a-}}75Qx*;!U!WmlGOi+ZgA* zB;JV}d1)2>g2cEh0dqI{E}$ft0vD0E0dz^5fExA?~D6~`2MrQ zvE9+>-kQ@{&(nL8)#mxxfA=d^2TkeE9~0t~eqc{M*y2`V-@&VWsIs~`{}Ee&%0j(j z>6Ng@;3bZ_j}lvfL{*q3qRZU`>cSN8{SN(hao?5HZmEVY`lCw9YrjAmFNRG(p_#zs}h*5O->Of$7h2b!$_jJ|?T}aqU?OkfwF|v-T@Pozn6T~w zZ>LXU^SgP{zSmIGwf!s2CV1NxInB_b_k$?A#$ruB3`*E~w`qBZde447KA};#W~)eS zWdFy=>>s`J8v?pR*n^khPCam5=;t%2TAL)?nw_37tJ4q79jVr26l}J)IL4ev=>bXU zFa}Q3))zNUA!-)OTF2=&#{8YSe%qus)Y*1HjUL5rE*8Z?Y+mX9YD;o^$L48ISyI3j z*zkjl(YghHY`FAP8-(`#vBeS~UK-hKSx*;%pgag>Ap1cvpdT>aBkl$k?DILSxwk;Q z*aKoulb-D8rIW2hr)OaBn{V34rUdG5PaJh^=Gkba+rjgTUh{TCX&Nn+RG)c(eW0Rl z;c!<)Tl3sZvoJ@(Qqn~@3HiLE*q?8_+Wp3LiTc{r>}XlrV1zR-&S)X!pe5&i-||nq zhdCgWKI#!m$;#Ct^4ZDiESQtfn^q4uoI6MEye4&Z<_@cBp`@ z4XoASg{s+K!_>(QlDu6|hYC9z4-5cMndikKbJVRfmtOOmV$9N6BN$@qjS^%-1a+cH z5-m_K!*Xf>1Z7CegI>Shr=W&P{L7D%`t}-aANAHXjN`akQ?b^E%wMA~p=f_U97k6k z*E~23coVwL?-9y9kd$jPYS+YGi<{{1^-+&mS}36#3v3TF==1PNy5r%{qh$to@PZjS z0~UZzo7L?OEVz+#0GJOMJ6e+60JZpkkK`HgK{sv=!(b_MwvJifLx@1T)L@{jrNj5X_^W`PV~c zkZXnj^{E)*%Wepo`;1t?DHzvYX=(Ogg2F;sJ(E!9Rt^zD|hnT(fIlp5^0Bow!cu9oS7p1nO>78C^(1L9q z!hP?D%gl${9wNdb}_qWg2 zA3}JU$L_2XU(cnqg#x8k-!T_#eLCQXb&d>7ausNCJ#8~PC}2SJ!zDN^M^U2kiy>x{Z; z`2d1_8#!Wc6nOQCIwSjw2BwmVrxPk z#5Cc@q#ORdHr!s5i%c&@BO~p@AD2L~SC;X5Wp9QlZ*bf(mw4 z?Na1Kj~*YFMdRe3Ymy_q#u3(-SAM;z{h3pFV4y3T1|wIibUA~yV&Ch0-v4+KjiclE zXGV7jiN%n&DF}A;=aTlnNAwndjr6=?Jf{w`#@IsrG9-iL_CHw==w69d34a;CD%x^% zQ>C_}4I_kU?S zQ8~VEP!z$;)KzEFwdJ|Fw(CeirRpZ9#s_Qu2gwUu`K9AA|Dlni^k;f@Gn9?Z0831% zZv>W0#R#u%@nczm+5=+4ueatZsTtEkjBlKhsr|Fbu73|SgDMxwEHxI8$RSn&tG)%- z5A`Pm5QnbU1WwX{=Jl$@xBp=kl&5yKI{S_^(4Rkq(2BtBNMZjn|I%uNIf#MiJBM}> zLIWLb?Pt0*WAyIy+mzU`r-`E;g@4OdcaxGP z)Ye!(v#`}5PgKSOgJPQ26(Y6w)~&ge?nbM6F4Xyos#_nR>@wK?R4&grrIAiI(7`Ga z$O8JO)J#&fzxfIAntT|{dvW}hK^OISs>Lr99%Y@a_#0&{KR1NkXgvsON0oF4&RX9^ zM7uy~Nq7s`G9qf}lkx;RaSIvH5RKG!^;>x>$b zQ7_4O@$Jm*z~og`jRz`lj)&uLPz`JnbW{t8@>>2Jvz7g~dVmcrMuwvaO50sWwhH&e z7Q6eKG(#=%I`n~`E7>8-{nYd_y1N3Q2$SVI30&;N8uUs<^E^X%L#C&trFEdW{w3$< z`;;8%9{Wz+f1Bh4I$Hlh7m`OQ%`6~s7+2Y?==ojHdUJAi24?~2{%!eqr=o2Zarb_W z>lY!4BX9=_?7Fp!{e-#-QLa2l-P z(-j)HcW%05&d&t+mNOOUIc$efzw>bMAY!E;(x14aefm_a*GdTyr@M!O&oVKNqaL!! ztnuHE9@eExxf66zZI>K$PWsaQI1< zqk87N!R;CI^Y^630~2t}tnpTLE?`AF3#vaG0ajs#dc`HhhMs)be1h0~zbLSSk8!zc zN>A(jt_<(GjSm2lNmp=>ocN680gq8{v$nk8YhBs+H5ElroaFK;mV3do&vEE!VB(lS zH*u?=C;mWIyYSE#W|Vg5SJa~;MXzaZWy(P z*0R(f{zq)ZU}*G-l(n7ZEGCGwB}?Oxr866K+UA=gC0V^%BuC60Fvu3>wksi&2l(d#LVfwdOqHia_06f43C! z{;+Xb&*Q)OQ(r%s_pLOtgz)e~v%Sr;Q9ajYy0c~t=PPA@UxO_C9fNc9<%p*FlV~vC zZs4QonA+3P2X_ESom3!=#VoUMK8Nv89Ii(isQ+N9Kg$WV=6C&xh{-&j@!3vUwHb`r zepJ&3dE)}eRZW_dO-cZ?i?beV?QG6+N;SPen%$_=bedyOK%2i60`B2hu;B+GG8}u= z2e%0UcokNA2*$s%p991 zIe`(bVkqoD%$8LapJuk_=0gr$?{U8c{MRD}m0?>9SHhPRiX+tHp#N-5K(YCH%T#V&3GS04h0nQ1uTj%C zW@nOECUFD+7gT694AY8QJ`KV+wvoX(bLcCF+3)bs5J4#h(5OlL&GNU>;lIJ|?*YGH zcfjYHAU{8?X59v4wFm>)f}gzwPGjIpsj9D7$es%j5z4sM@^~jN@&b=g0e4{CIzT=a zJtzjRy1jFVWnd5GTd?Ka8N=nre)(BkFMD&Q*PE4*ydM-|_=&x49U^CRHm2WBPf|kM z3k+U_A`(boN6cDtM3N$vmj`JyN(8lHOa`#4%Vnm$1`+^}L2WCH(=F@knOFtS8c>KJ znpGYoXf-%ZKT<%{Dd2B84iQr|vo5f!<<9P|WNoWP}8uj#BTNk65b$&|P0GJU^wIS>Cuj2Uo=yEMi#nMvZo+ccd z8}i9|o4*%=j8xH__hxP7b&!`v_lzARIrxivg40E>b$53MLGsXbq#0OE#qR2Lv*04$ zmOR+9M^*I~s`~$XqE(8>QI>z(BHZISIt&ZU>}m4qCzJICE1LYj`n9b%#0DIGK}1x6 zyYjnde2{T&knxCNRb(P}q4ppDKDaw;m7f&VKypETtDv#586tumkhe}l`+z&jq-i_B zfCyv`+&i2Daj%aFvgWN7fabE_`XAz-2oz>jYdX!K>!wh93QS)Vh=f`}ZUSfTl)f#{ zuL#MVY8uNVQW{Zk)X~v_s{Q4>C!UVYTdKdhJwIdlLwFPE-D5zddcmuE9!dz@!D2pK zYTjZ_fL67BSJvc;LWZstf!D}v1>agmuUfXR1Zphh^BQTpDHMmbLV)fDms^R=2$?p0 zklI_YGZ4jlk9Qo|??o6^2%J>3Gfi<{ITfOA7;=^x!!BKhjIXuy)K*zW!-nuZ%MbpN z0y706XS)6Tv3--nUE5KLfedt6sr=xn8@u0_lkCUAv}_1SS|PghKsRgwh#DZ~BBs-Z z0&n~fIs5D$0yI-Jx54sVJ)EZ7jzFq<3}{(x%2|__KKv;b{(0-|ik6;dhX#5QO7fto z$h*ntHdu8JKo$j2JYEAP4IuuV+I?qsA|caUMryFvuIEY9i0BD5)F1K7X;yc)`ImhN zi99xty{1AqD+^5783BF)l6i;ygEK$X=waW^Y}T7pEdf!UFS8i<@Gjlbf~RaLm-~rT zm0=OQi)NtXWLIcD2;aM@78RPhOdAmSaQNum_7u|sq%C>wdwexm1Fx_LPFoe9gll(9 zvu3Ospf}*mPIogZl?W^(83*^wWlr^N%EED&S)U{nV%MzS@)*TEh5cg)fv|+Getw)1e=Z#k5&wX z!PX$V>k#z}K98|y5gWj7efzV3{t}xH3u5@`_4ihh;-z>2EaJ8KR`1Ce51g9_9Pieg ztGn>X7}*s0t9TQkHHpkI?e6xd2M5AVmD`QCgxQnaaD8jN(&Z3zHP*(1LEHEx1vg|G z!x8;{fAgJEQBVaX>KB5hO=k^{I|@0?P6K_<_&9ew@dCGvhe~_NIstL1kZFW%8HF=5 zhK~krE2R!JPgeAkk2okAt9&@5_7Z3Dk3fvzNye%6J=+2Ha zlevIleeX*iRbmYk=0XpZ@~(wkgIhCG1T^F6eShf|o4J`W$@u6IFMG*Opv3K9oEy)t z$Ok4VU3X-{`EF`roR110wc9*IhNNsq9n33Ip>p+B_lL6HnAIYkM1=zjsmrMb*huX? z!V{a*AYxi9KDw~U4`POS11HYehK@ZC_u~DbiY-AGF0I?T_k;N(A_gaa0^k04>goC8 zhfo+MU?-dDGXbXA@ql1J!s4kPV)vX@3u(X%JFnS7OnPHZeHTOrEAln60C36QMH#3) zAa8pNYBUwX89oBmL>#G+-Lt{SuFHWOjGYixJcRm|035|Qs5E^2>YK3`R<)mO zdC2VkFd{mQJ!3L9=>F7Le}A*c9r7L1&^KeKCsyzZsj`Q!}^$k zpZ&b}%rK(BGEZp86C+4V4;=N)y;e2XdhZ8Dd03a7q0i;7zEWZP{1@5>WNsQZ9Pmj3 zBR&#Wtzj3H{OiP>b-CYO@@jQQrDzzt&38E3qa%beln)RFo55{XIX;=g!BUx~+!QCD z${aZik#Y?rL0V8t?Q(hxEvLJ|0BQ0G2++;PI`S-d6cB1RQ?*1U6u-Nuyk&92!am@J zYRw_0H5>V^oR4bZ#JUhrdi7gupj9ac0tS%LXxKEqmsk=pXOSP2X?a?7$otM^mzbn~S{sW?nYzIF!1*3y9e-#WMf+_ve6<^O?>64Y!f$O!7KBog;Qza#Kvh z8(dQka$*xVCO=*UJd=G&bgA}}bimVoqz)RLo{AZSAD%B!_ij*}-ds9*KN-qQ`4nt^ zRK#2z+>vZQwG(*bT!<6iK)^f*rd(nOKLaYfc#v`H@VWsutfy|}Knt?(e93KI^hA#b z7eHRZmR2z#H1zNjxy&H$3D1BJ$!KqIKgkiQdrr7eHBkST3u&gCtxDJFEz_dr5e}gs z>L*3vkxvt*3uJhiW%!(l-*C8`1N#=y;nFJ85n^*y8dGe=dEsD9;fuv;Py4^rfnO** zbZK!X7M!Q~p;EZ)0#)N3$4w|iHNpM~94ly?lICS41E$|;(}G{02ltpY*d`D) zQhpyE0YYLE1#;lBc#k)5(Yg9)xNQByODI|E&gS&v?ydXSvnc$UPyG0D>)MK5^p z8#U=tiXu|B1c1dCA|In#Vd^$1#~+qR`w%pjkoT2sq1o# zPYad2fRxC`&;K)0tGCJpYF0`*CmH`fZXkaZD&TR@#ZrA$S9P&M_KZzlS>q);=~9W& z4bV>IaG1%tn)I#KLhs_uvQ2HV6#MSo)i_0Ym+36_?7}0W&e?`-E@b&%k8^|w8Nln;wSj3F6ru4AdnOf-vPRw`<3;!v8 zX%S#i;O{Wz_wsi)FaM&2TePNVHwjW?6s7xL-zD{X#N)vv?|`Kye6Q9uAf;x^uNn6Q zyZ0Z(1J9P-ESq$&6hUB6fxX}=TTQ%RFN_C|S_6*U?rYc>@%*>q9cOYq{$a1<#N3GZ zD=H_kh>p|dE^I>K->6SKY1vNX+*#A+6s2=FRX9#$(~MKc-u?T=!k)qG<<-#yziS%E zEQNx9Kj0|fOO~q?D+sE@*%Q*p58xsqvMRk-i9GSt@TE*P^#TE7xwM>dwc*!T+ZAgg)xoi)zbtp)xTWLPdIXb~f)m##05|NT`rRJS8uA zb*mCx^H7lmSApH*+oZjMD;l;Lj|fe0{cHwm(PdEV1f%GNKu}Z$c@Mp^S_3T~DM#(* z&CFxWi132uEi8%l@XgW_>$#pyM{0IKn8Un_auS07@6AT@bceg-VVX;IbmCrx>EWSt z#SAPH@g$Y}Lkb}|C=Z}(BS!<`j6pP2N=}9(qIq}z>bDn1&QuG@-T^N)=ITyQOsXg7 zJuyX2jE2Ok4i+W+PPGLPS+2BM1ndGH^`X-mkG9Lx33PONERJru4iMh04Ur4fxHuCk z>#KC}!&M~KFDam2nN!O17}>(s%8y`C)lAy>Ab;lDPiu+t{El`}-6x!9UeV{pVjy!B z{OqB$kEr_#;b@%4HJH!??V30&-<(4vNl`S+03YOjoE;!Db;Vuh#U|SInwumW-^7xm zx|sy|^rf&T?p5cOZ?<9t?yRE*^qa+1UXEe5-@t5HU?-*vFKRC`_4D6balG(b^p$XfAyZYY{fg-$ater097UT zI!zD05VFvTjLTz)%cWC09eUpX-D`^9#J!Ng;joqz1YuI%5@%YrGufK`8JzP6W(S!< zi|YmI6&{PI+qg>`L7Lhr;e5-bIj{C)*jzXhbU_F1uXfPh(ZGtonkeWmU-6e1&XcTfVp+`)2$ zbWp-`a>S%Z@uZfoaq=T*NXVfFe{&34Tv~ykWE9NHj?73BOKDv4tB9l(Z<~|P0;rMW zG&kmy571#V;o_kQA)vGn@z=_*3uT!ZgEExPA0RyXA1u~SYHP^nv>xoSdbpEUhwpMb zu&17|h$~Q65+hqz))tPpXDlpeNCl7WeVkD7zp`rpRa&7y{KpTx`NF3U5y@O0-b)}z$NjJarH&)bk_#qUFLc;#MEel+~`zG!} z+&@T1uU>=k@5vgiC}%}+^Pt97s9aX{*m$d3)uNJuWp7?qe?~r2 zAm>O8tqMk{83tkXQWb3gXE6ZYY%3%e%n56&j08(pWR-EBWD{}08#t3HFUEm0RXTgC zk{CEq^Q;w9ZVX?c)bmHC60C4k%(W$U+p>d%ze3S&vT+(Z&~|9$ySo8CE(AzUMrU=5 zCeesM!jfwaj3xPBMK6vpL%f(!Iy$)vUAwY_=PGVSwraHl7KX)NVZlMEyXn|SrGgeD zpk)vXb^-}dWOlr5urtU*N3Kd3K5C5*{Gd$J2GAenCW1A|ExsS`te0`-e%OkV=SADH z@Bzx`oeY37$ADx&BK@z!eHP7~l$oRAB)#z&F z+DTN6s5ePBZXBKDfc7@4nUvKhO^t6jfP<=Eo>BWRNN(wwB_4;h$w`;q*(!Dnby7+( zpH^u2@qkeyCCd{dTTp^y@A`-+B$F zIX@wbR=Ae5M zoU~PkqE!5c?E@3vI%-z32vU@GV2Z`(rh8_&yF6-;J)u{9Kc|}}j*x;K4pXCU!#r<6 z=eg`=dUVALLnNm=CB@$fhr~SxAmqkYH3Oq&XjqHi;zeV4jxDersJu@~?(5ScU2Q+f z#DY`zX@A3^mb8tU5cM@;K!8q4q1iNZqT@~RBy@J3nY6zRl}>uv!w)fd7G@sPCXs4h znfs29{4QY=H;f`AqMXC+x5$sX+us;gN8gg9?VGCwszwjR(4F;Li${YWn=?>O0yK4e z>eNdU7icC^tKOr#V$V)Nwzv0S_?xk2CnxE_e~310Xsx*@cKDx7+z$)6(>Y}vLwr?3 z%U+E5SbF&U`20Y!BtUf6xj@tEX!RaI0&5SJKHD$@sC1o{jE(Q)^nomLoX)@DoY**8-Xc_bBC~Z^EsUJT6ig+1$CQ*(z&w>Z0A6|6d zCgY5&-}v@~NwjWVmA!O86c3i~XE)ug0&Of`qlX1}M|7zTDqK9?Ep!x-?(aP=|55^g zqtol&dz7dmDL_38QEw5oUzbyCo;OW(B`}k~TLvP}@M>e6s4iBFr#{lQn)ZQlbh^LxY`*ozt$&C}oC`xS` zpL@BX>v}|>`V{x=XyJ`VrKkk1ae6QUa+i{SbV~yK8`bu+oFgJ^OF_20C>Gh5w_A&H zSw|6Sp(NKaCf!jXOT%k7?gEtVrP_T=08K-vUELPIycUq6|P3<8dp0uK4B%pw^%Lpix| zH9#d3ayr-}BFl}G5y)!>>&<8Jxl*pzpb5c=(G*mgcQu+alUP>8Oq^}Du|Na&nDmxeuyJVUJpM&fA67a z6#oKhcp|$l)ZM^aEgDIp_;9(KQ1d(>;JXfg7&!U%!FM=^zO@$20?qb+Q1T^!O>Euu z`XA(5Vx_RDQqCcviJ=b|X}y7zLZ?JODFnQ$G~+$TEgzz|%6DC0$nm!q0=u4j^Eu3h z1-ZL`N2|(JBZ&*}zv00DPy;{}qSe!N6dEdI z$i-hAP{YCyF9x^3ww~HrM4vI!sd<8*B@W{hS z5&r1%T$tI|`?qEshw?}b%4ZeLj;eit~qc2!71ACmg#Rm{IvO+;#8C4~~< zt4m83g8OpY(+4Y(@G#FH3D$3D>S*Vko&Rd?E@z zj1NR`wtL$Mi83tg3&99hq8+42wX{#mK0HSv&=-9pwwli zm>wDLWLKN&4XlLo>)r2H`d3*e%gqvE2ruS z_x(7+`KxfTON3g=Nx}{gx*sSAN)D*} zS+nprlFR^=%7vI!J&*U$ic+g0LU?YC1=c|*cL$4V=jc`)bPWcS(=_~1Y}oe3mHR98 z8#$4|(~VXfD<m|8BcAT;l*&6m2^K7M-Z?_cEn|LHN%ox7F-kj)}N-&b&}4|hlP@- z_rNc6F)4w1g^N2a5qkMMyCHTavRBms-??FUHXd+dUUiV99Oi#7sVBW2rPj+0yAaH! zNLtch9T|3lz7zhkhqRj!)CLnFIDD%`PLdL0@E^c@bwo)fJ%D=CM#M$AaF!Y&>CZ4l zy{32WlUP|?92lkCvyULz&ZeeQv8vTh2u-I~a|4hvrAFTD?{v{pnNr~4)LvCeW*n0T z7Vcy^90Y&fgiF8}N>OG|lStXYMlx#%h1CH_>lcl5fRAUdf)Q{7<|(%=l%Q^;S0OS3 zc;X;fglt~T3Vx!&8L)XuwyKbO1BQ^v?}d{6C7BF0B`RxH?FF4zDR9 zE=klh{2Ou(RU=cV!tE_`KD}avJFSiVI-zl2_7G1zGFwvLmh$cbU9=MpWi9g8VLi%3Y2) zJL7m^%%YYW;%$xOU-!j+Wsi8K_zmbrSN?Zn!o@YAUSAI_A<&DvLCAxU#W3%7D8sh*Lv|il!0Jmw%Rw4LLG`i5{NV<0o|jO`3Ds84h&I6CY?o?5tQD@5 zhNI{Y%dx8QU(I%g`!63m3BIC<*SfHFnoCttD1Yh1x1WIHxHTh;l9uBp;v%lwWh5Ur zq5wCS)+rI-cB?Y@b44!%jO$La^}&5TZx727Gq45xYDsHdxtYk)I<4I2DOxNPmOV8` zl;CQU@##M$i2HH`ct6NSA!O>w=sb6HY5CJwG2`dWijRn+5iaAQdEyMDoxW~yq@~QS z2-Dpw84OxM2w7V`vsSn0)pOY&=L<55{e`O&9}vqVi=#sI7C>jE^O|9Z{sk2XFffD2 zx`TJvRVmuo9S`N=I54k*HGRaJPygzgo*~2<$#l0fUs0=oT3v?%3jcQ7&iN0rt3Jl$K%?(cfO52n6zhCnAo zi>`)6_3tA6ZoUZbwWwH+O8r3vC6nA+#m29qEElkg2Sli%G!KhB5xTtCt>m}mlDx^; zPZ1on6;E*?eI>jiUO7Du+U@#o2&&`qihe7?-%P%WbU%GK%d!80iXz$ttP zS#-uih2^h%A^5@5KPwgKKyn5+q+f$@J&R9eIi#n-3y|!xr>~%=y%f>C%?76l>giTx zkR^Gk`UY$?U17RpPJ+#m4iiQfD8IWxc*d4~8x#fI&GVB>$$=zk2~&biFz6K;0k@Y; zO@rtSu3}S&kRoa~x>%I?yJrVO!A=YDKZj$9XV`YE#d%FDqA$Bf^+KDfA8?_#@+g)L z`}~I}7C?zr{@5HM2VO!#*6$zH2O0Dtq)-B!?*`xvs}$diUKs(*J6y~}~!V;KCp zj)-9Wq?ckoQDHeg9RGJkXp;D|G(6ZuYP&Q3M7y-4+w&g|y26?-@1R}bjfjupSWrFY zdQ8}=Jwe*2tg|h>sGeAxh$iQ?7ipVueH*#G``hy$kzR8&&ZQh=66(<@l04TP8qxI#@|O z4?AjDTlq3b7DBlkjSJBF^{<7Hf87r&p_90`Y_KJLmwyBzcwWQtd(}MgGRi(bg;A|G zD*FWx!T&clQ=8_6xRc{f83j}@dM5+(N}H51CWY&97q9?N>g)z?OI*h*Ly3I%Jt($| zgOW=gK*T$#-<;V7X(SUHc8^8*mZBA>i+q;rW}BN}9>lzR0Nan@mF^yEu#g)~15WAn zo|?GJ7ZbU&H^Q%*vtK3GJ1?x1K(Y-4fwhQMlndOfGNy@CLJpwD3~ zF&4E^4D)Vy@zo^un-I?D_0%S)8O@?Q2+$qW^Fg_MFKpZQraQmoNaN92u7Ot9!+F3~ zzL<#cu#59GB*h3&tfWyt+ZBQITJiu0GuI~b%_UckcgQ3lm;D?SB45tDQ6kkO!VUcO zkj(1CmQa8gX;%GT%=#b?_-LPwZed&qT3NrpjezkE!UD|jdZIA4P z>3dHq=rk&LAmlZ{%nE`armgThHl1gTS8VkNIikIxUIWz2HIgg=i60AUOGoKfB#_7{ zM{NMA!GG9j`OWZiqATfftc=fwP2Scug6?F6g1}yx!x@%FP(7Nz@j z#g#-o3HQmXR1Kq~4kMbK!6kS^$xb63Jwo_SyzoL<{njPa=vJ%ex>wXT2gsFlP^ie- z$`} zrJcc70s3Pssy2@^xKX^dGo;)lz={6ugI;09mr}Us;YfMO6J|*P1}#$f;hA!_LQ7$H zI3Jo#*fl)*;|T@rx(?oa8;7Ba5|dSMeCb!vheR*XNsf=iLNhrK6`=lN21ktUd#BBx zj@-_&AXk?a;FT++7irdx?(?bR%WQyIRJ=}y538M+Tf673!S3_T*# zO0V}}(7gDASR`0FGKBLWX!lR(+yZ`SiGQx78vgc^Zi zK=$UHMs{M=yZ)1u2)IS{-XIUL-;~h?Wmv-_=P~#yD)=FWcV8i51!hfG zbK@s3v79L*l~Q8!aW3S`biWc$2cfV4WruJdr^%zL&jt18TLAGjPJb!{j+K_>=GQ}^ zIgn4#po+@Vk>7Auh&QuCGL>AgLwG}Ch;z4BRpliC5Evbu)Lb8(w@G8#gpo=%@n_C# zq@gB2J(*+Z;l0m~G3qsMBh@bcdaIo89#*(f?c=@Rw<-646G9_ZP(-nvH3wZ5fiA5O zSVPFn0n*-X)XZs=T&pu8sK!*hAXY75{a(3|I)xL(* z%Wui`o?QJzw3ax-P3V|90{V^!m7Xl85C;{C%nIceUp)6wijgN-sXrq%mfP;LOmfX1 z{wStW=&tQVhphqCBbwleA@=3_yl527y*aFgopf)Xn}h2zFQ z;+;max&`AUkItg>71GnOFlZPn3SED5-CC7(b^yNgdcOjonLp?9vdEBEs{LM-btVm8 zvY1hWE03F__CbtEyts$WDj`!HTFi;33d=x!_MT*AnhQ67m>`9mmrEw!E4yh<2gW3O2}C zxAz>0hI*dDqec*Pk*I{4z^&hvQZc~D=U*sp={b;%VT>KLbV*bi@3#>_IjDRsh^kts zdHH+u4I)LOP6{;Ejo|+ml1Caj#O4{2NuU0hQ9N@2qLY^ZJv(}xofJDYkZgf^oFusQ zU1tQx;V*_Pgb+A_Jxu=pYVXU#sb0UgJEFvCHWU>q%6y#68TP5jJU5UjWR^q{NxQxp zNQO{tW0}XyN*QvJQo=TqNQ!Mp2}$8yYm;L;{eJJC@AY2S*IzEf-k<&XJkNU8y4QW* z>wT`ly4jUDw*?x4$`FFpbEwzvu3vhCN&~Acz>hgFp9nslD9a)n!e z1OFFtU{a^n&UzspoG7=#`YsCvS>;Awk zE(m^rK}Efle|_;D;QM#>oZF3;9D9mEw&3_@H8jvzaC5$~Aq^&+z8Kb4H!vlx!T==Y z-d9nUa3Wtv={me`sPhsO!4iC#VUu|*PocHNF}PfYN(;&X9~o$%4wU9oTchd(z!G`S ze+*rCzkaTcya0$g?b5rc(t^di_16@>xxaD(?4(Wd)neq5`b^5!K?B5uu1||vi!OR! zLObN51p&G9@{0wJkvof?URH$YDm%*>wACj9H|+^L*)>R2JPUM&Y(U4JfNMVs%s8>D z_mrjzpyn?;uNXg0#BOR@ly|2LO=VEH^#~IEm9ISUY=v}`3laX&;m*><5G1!EG`C`0$B`D}PpOAs>v?|Hs-|X{8;Q&!_qhQ*Zqj(-<8A^1*Uv!GoU*wnL9^6h zDkHt^@glvw)U{Mn1`~TsW}N&7zP|Bt_7|gV7sO6t7{6E3K#jP5YgF{R)D7PN^6@Va zG7Jj@)%__jLmo~)zFO$Mhpa-dO3ja*HqJNlz>eBH6(3IB0C&q^iR+WsqN&Xs0c3tv z$I9Zn$Hg>I74vE=(mg?YEr2*B(x2>n?n^{A2-4UW!;mzkW2_1hp%du98C^4V%5Urj zx|`GDmPo8DRBmaxoefmy55F}n&=YwFrAa{I$Kl(F&lTZWXnqv!W}(FR1|{$$-hU0|IG9}) z%CFxI6fFnVLPFz;p8e+7Wgkr~otVijxiluntP!IiUsGMbKzvt?ZNL|nJBStQJz!m1 zLdVGe(3QA<=M-#)W%2~}+pma=_7U~M4T{dMjSYLVxBt*7Iy^yO5?WG!e?~dIfG)SD zt`F$aa#8_#au1FkJkEmA@nwb22pfZa`(dB`!k>=Z-TH`MPZisB{uUC_R6tk2R1E;ee+io zhKQ_;_Z`0ZpDg$$)DW)rWvt&K(kAsUVo$77X^N$B_&p2^DeSP=jXJDh0&b8N(erQwN3@iU7Pz09T~UsNeXS81eTU$OD`?N-Ln@!f3B%yR(!GA|CB+ufXX#p?=|D>N@6PoCK%%6 z5dpch2z)A*;**ma0n`XcPXvx>W^x~3$nwDa>ty{`bl8spb5c!{`se$I;7uV0@~8)Q z1B*bh?7z7GNfWBF80kcdNA*|eYUv@KO)6*6IeDCq6QhjMry7PtK1++;dhhuVx;tmWsP zfxLhwT(aqQAsr4LdV$C2p^}lX7U%~XU0eUp-{bOa1jyOQWGbNm@4L=j0;x#>NRLpt z@4vDCI2=}n8sEpKg(R<9Enm3XQVq&>6blSVH)85f>}J3bmVi;PgEQmxE8@Zm!kc%y zUlaAFsDB2jq{7G2nd!dvLg&v6ezXfFb#32a35f%<z1Wl?L z2sC-^vpRu30`r{97;ELmQzdCG0LJsh2giUVPcw8RC%N?#HLij#QN~NhYHA2MzCrt8 zVf^a9jN$yJ+D^4hgEcADoMTqq65EDHSMl;jbn2YjhWJgx`U!BmJv?mkC5>Nq5;7Jk zE-SR>Of`n1Anno81GIlHa0t1EftUcNnR~9$JtBl!b9LEj5WTU2I@m(Bk`bOX;n$^^ zL0B1h^K$%sd38SgQSg4;pn6y<_4>qKpesH!3_zJNc!+w5 zb6R3gXoMRG5SL9GmeF3gj<$KdrWCR-w~oJdt-(fOvHV)V3eOqC^L2qdQGB+EHzEM2 z)0rW|A)4L=k;HZw(h)?RKZCZY0z8%1qnDUO)8TDsK1gz}^Y~w2Ml@XlAEmTAYz_i& zjT}t3=sN!;E|}ftCjo~b#l31^p}qduUvgjyG5TrIji#Pn#7)T0NZutu%h#PftcjQ4 zuCJ7T^s94}dq4b6re8zzmq+&eK{iO#e zHtw30o&)ii!xL~iV+C1)ahxa42SN)Z)X-0WcEbYV?RAi8RAOlh{8-!34LAY?!dW&Q z8rfLPDVT)Zo#>>o69_XOCqQJQ=X2u}?PtG;#AX=BaxfBFJz}mOUJBhg0~tUi(%dP%K+L`Aq^(*F zn2dzEy8f#A0_@3P=?Zy}w=q1BY-mhW0Bpkr=0I8(J!W|`1b#XoLOi$L&f@y=-np@~ z!8frLPiUz<#BTbNHPe0d0Fe6V7$1AsvenrcN%XM_OsD@)YIhf+wF(I+D>m>_ZL!d{fdO7T0 zy#k=-q3|Q6pJEz=MvZx#V8R;WWCnb)fpJCX1-5$f$QTvA>lEbwjT8AE(w1p^mV?dYp2UF6TL#Mmw;DZ|VU1M;s0F}trQ?+?^^=z--Q>9FK z+&YTCk*1?Ep8BYx_l}CsWxsEh@{TQ82r?Zg$o0+4n32ogn|t2%^2~ScRKP5&$jdu%b)%iQt`Qu&b$xHald7hGJ(hE2&MX8b zzAX!O&r>)QJ2alm45^tFMZuC^OqC##>1ib*I7X}0_9dOR+Lgql(jASXrxW<#;Jz$-b=28CfBMLzzuAwi;YRi;8^GzQ zfveHT_O*RlM!2_OA#4D4$!~LDRL{QHX`5GW^0nmN7m?yecENe2BT3wI4%Vc*zp=H* z`q&ts=`-Uzu3+oY%5@X^Y|5VG?-$ge^SP~~GdIPninRa=2{QARwyr7gdaCX6o{|Cs zCmYEyG4B(F)X-!{H#Sq2u$sB?hqIm9g>${TJFlYOH;w`xbp9JO6CoX>_YXU#j>mf$ z&dDE%KcLZfj!ogwq3>fF)1LeNp^RHb6u%-SJf_GMZZ!Owm!MA`d9q&n8UPc2lHJP1 z+pNKs$-W^WfxZuZ6tcM)Lbh^X;p~G5-I@h#EhUn~qPE%j zzi+aeU*1tvCCXyCh!}1wNHo5-1geBXoY%xjFv&xFOijBh ztrWD`LJ--_Dxj0ig=7aw5yk3@wL$_y(V5)t2j_>+TM<_ij~u^h{(G)OiF; zIxg=~U2OIT3>n$B0|hOj!=lH*?0egu@3f~X5LtP+|30Ms0A@l4Z}G?jRgc=aCRcp0 z#7R0k`|sdBGvI9RJ_Uiu$-OjcVcH0hQ-a~77+szOF_g+SSjm9N!6i;34=La)vu!24 zK|tKPaHr~8$_xHQIQ33!(;J9=hF45>Ap&Xd=5`42Q{{!=lBH6}ud2?Gu$VEH0NJ)# z>Mh9685{1GLC@1Tgz$_0HDexB4sCQn9eA;|I_9X+#wYsrDc_rXhh`Df6N+cg+EM(I zVn7QTSaHsSzr%k$3nP%o(=Y_KAX#!VZ2WAP-1jd)gE8+Cq|FY=0tk!9u(yCz=^aM> zRlq-QC8Pcb3}4gvzP2x7F1G>iEl)T!3Y9rBRA99mB!2-oSn=bEp%+5A8VFmuKuYxl zeR}#@>T<_Vwv3S$Hlm2B>pnftOD$4A20K&7kPb#f*52874W9hnTa%Y^XyrhdhuKs|Tq zwdbI%De#v>BLq>#I+qOnA`<=g4gY&f|9@XJ#OwL1YT1Tnuw?{*f|H9tFRXh)COr;k z1Q+^OZ4Hno!w!zgFg}&_lv;5UIo3=7I=Ho%oCB^OO3)>Ah;1Z6%NcTS7KQa9T2~cR zMXs9$SC&BP^BJ(D`_F8T(uUnx@Hk-J}ENwsCcJuRSW4mn`3shteejh0Z)+>7r|p~ePf?rKKI=FE<* zjm?a;N*03Cu@KMpc~V*0v2MiC%^jc$&shqXA{S6$1d7+}r+zAU&G0P3TTi|Ne~-Of z_wn~6u$$v!0969tLz7=LMi?6~b~=sb9{dHLB3Tu}4QbFl;1}!$9ZrbS`E@n3VsF~p z0&fV^`J8r%U--xqoEY=IH?Mc^ZC2LLr}nf`HM=nE!eF9ZY2!gWd+&k`a$^(y*c?y8 z-q;*S0&s^m!h~j_(jOxdB6q*R``LQI#T7`Mrpi(O39z$xNSg}uYb7tZbNnJs(zlsH z+#jlrqHQ?O9`cYA18;1bZ4ym2HWyK2hv0Lyzj?iJVZ4TArb`FFm5_iIRWK+n3};?m z0M)El=P@1R1@<@EHiLR1*mRfmOWPY?WagYtbxeuiTR8K4I@|}GxRlt>0!h-k@+`=6 zl(^~-cY$alI?NSDa*G!{eC`DG?p1I~+gm4KE)= zKI3t?O4s&$4s^vk%M{N%0Z2Ag{Li=Y2MiEcO9^}BF!%9NwYz{XQ8gW&6mOCJLUHC> zO-P_!`e3M=X7gIqu2?>dcJ*NQb~)Jx-ye->2+MQf7R5J9~nVOfcaNur5eFZO3s^>x-)DcRVmB=o|#8}eLEtuJb8(tm2+oVc?VL~I#IYt~| z+H`K>?R(*@CuA^?zc_dW>gto(Au+ts2c_|v1OWhS&um0Ptk6TKY@vGHLoa|0o0E=N zkC$nh25E!QFcjDuhD&G8Nt!rhNdBXh;Q^KD(s02CXNLfT38+sH%t5}pQMrnlf zwdkGR1K;n5s$&!tu}$sR2_+NTP13Q7sjml0C;>IN=~ zbG}EGi2KT1#C^~`!=%XVDjG#SJf_vw)Gz{^wEd)z=)|Y!(jA<6v_J5pMzajSLNGK+ zZzDyPzfne$I1EmoCfWRa9joPw^}NZW6K+#C+6)epT~f4ADOA887S0N~^1ldC}`4e0h0|v|&NMq|*!w|;cfEd`s0&OYQvHV9In3^CXoo2onRE8+qh^a7QT$BU}~0M}~dcK9lw6MbCU$ z$#a9g5!qk@0k9*bl*EW`0LGnkF6V8_KL!nCe{oL|Hr*tctL?(H&o4Dz^yH2|u z^&zY7sKA+J#c0=>t4p14aE((+Bojs;4&Dkqo32RaY3v6g%yZ@K@jD{X6Of#DFSJ1; zj)S~B4E%7cw@K)41{UQ5q35KKRA2wEld6rt?R+WCmIHZpC|@Py?5YUaRrP4gfPcO+rwKG6LWIxATFxEW$U$2w}6~-Cc!7*jkO*J zAY+2u%AQOqiK!Ommo%}A555Dhyx$QBP_5}|s(LII?UpnkdphFW+U!HZ4zGnUK}a6OIWntV}xzJ`N&RL-3W4ZMXNE*IO)>qv3oYV zOvuS(x0+he@n9|h6(PV z5MTapx0RLS>%x3_O-}egD>Xn|UMOH(H!b!&_7?gO{`b6x99mWU z#7zc~lM0LcfsVoWF3n1{IKF9cyH7jr<<|8Ks2Cj_ejiGDELj^mL-$qu9NQX%u|}dW>VeU$rNl!F`x@g^r>S zX*X)EX2q6h%<8Ac{?#sTkD4A*?^-{EGHR+9-51@in7eXjQkx^+P$kwBuv*{hQ;Paz zH;BF|UNHyB1#Zr-^043DT4OPj3+Iyc^BR^Ik?DE_VD@p;krIof!lgC!pO9^XMtR;M zg~a{Z%v?J3ZLNw~I$KDL??LD`9c;BPQno#gE!LdxE{WSMrk+^J@&!BWpe*Y= z)nntQzM@s!Ph6N%l$OBTaalfU2k#N~^u4l@-jvAj(DZyNII{P*Z3IqF52}~e4BO7v zT!J03r9u1B18*ccCmb>&+g=ejkr#$~*KpkR@eE5r61^pfe8A^F`-+--FTgYZOo={X zSJc`Y<5ObpQeC30`ikLZ=u1s?(i_v6*R4-|rgq3Lu><|u^NPOv8so-KrA7iy!g{`P)oJoS!1F8ghr?I0=f6NBT_ znI8v4?H&>w|KWR*Jl2HPij==psE4~ie%8GQU)U{X zndH!pYqGC#K<|=1(WpkHIDW>MNngJ}DUnk%I)HK;E^y&e#5rt!*S8?V{ z{N)`9yxtEY6U*=AHyLHaX;A^f+9>(j>@~yK_+b2&6U+!L_5!cO z0jH@Ndo?yKus78+Canq=nW(Su@jPi~xlMMUvt6L$OKQf=@?y1!hcUKqr_Gq({GFFE z(2p*sSd<)F5#K%*pO7+erCeg4L(?S8KCB6e;jfc{84MdB$Gupe5PZju|LoNc^CYCO z0w^=G>OqQ&Ml~jP(ezD+Ed$bJU?V!lN!9y+y1Eh~66eBLlGz#dBJ{&b)oKR!-~!&W^IDLAk3-2#t8u&(73#Ku@_O?kbx=)=LBThcBT7e~zCJh%@; zwp=GX1}=Ihl<><1@teH%f$5Y=T+_fC-+E<@6NB-**MvYgioRxc(av+c-x75!Y{$*fVv((&|jDNa0^vI)H4{3HN+s79DLE@=9Kq%8Rrw|Ms@bc6J8L*GBe2R zRh0346e9;fv#z0(mt*537}?mEjV2DxgNAYqng2!Z@m$eC<(3-iOMF~mT&eFhk^ctrm+n!~YIr?64Z#n^4{MVB#dLl2~h0uaZJxyoxu z!wh}v_bw&peWkKJ!s1wWM7ilnPHyG>OA+!j^nN$eIG^|hi6{;==%VPYvr~gref3(< z+-}Ah0|9S}y>7<&Rn1j;C;5WbU4`&@&OHifx;0k2Ov(9Vq#siJy8va~%@ikoB#uIH zSFjtUpzE7sk=I*UzK$dE-bagp$67fvJv?LGEKPaQALZW0pQb$dt;I6%*wyw>Zl`M5 z0_BHc(C8qZ#8Oqh;ls^1?qk%gTf#tgOAWQv*v4P~>{Yp2YNC-m5Ls1LE2wGnfndZz z|EPbyJoFeYL_q>Hcjn4`a3`H}F z<8Mpze>S|;W;*yykL-$GTav~|i95;L#iR0|Un_v73MQUpMuWlDVku{spM-Rufh`w8 zw_FMhiGdMvFOIJbJ^sxS|ASby9=6X<8-!Vq1S4oUJ=yyeBKheD?O3cy9~IC*QJ-A@ z9p-5y;cVvvhcgaPy^i33O72`byU>6Bzs`RMo@6hMp>O?Z_nv}rbgowvb_HX)CSNeeMko(?N-&zNCYnwz|g$2518(q75$Y zv<>;W=lOqmPe2=-B7ZqzkjM)Fc@ceW)UU>25etAC>BMPcL-P=*R|7^5E1*~q`OPh9 zo=s*ePsIHQtMF!VG_bsv?U03$)&1ku(ee);mz*p<^J%8=v<;6@nDde{t|XVo!VxE5 z)Rn7f^3qA^{E^D@`;*;|g_+bJXXuG;-DEXd^;%TuuK(668~Re2*ROvP@CW-o(NLzP z4jf-KPDqUodzmXJ+ibG=Fnrb~w3E5>?C_bw-m|5yyW}4AM#82%tZq1OS=Ge@SE@k2 zPyOfWXO!ch17`H`-1YL_lWvb7ECRmfoM-qu^Sr7v&p0;kz5dI&+Y8a|lPwdP7Ziaw zif@P6fdi~iAUe5$cuKRWaGo4T7@!|q;uIBOID62-gA0r;OFfX*-QSqjngl*LfnA~} zs^)(w%nG+Rb;2n3C*5(PkCjN+`gyfbvS=2lN~BM85h8b=7J*5?tT^yA zCnsleFGs@+4Ahi9Gh)@G0D$A5ugc109d`FUK3i;3I4k`JKJ+-H?T5o-YxtPJnw)V5rxB1t$fJ+A>4fs*XUri>#;ef#_SJs@Ly z2YkwFFoNTlYHfoIs2vAye1N2by)}~@dhNjcd$wIZf0H{uaG*GJIkA`cZG*>Q?PzV#>KOYoqXCQ11&2Y$239`77iM#128G|Wu(Coy7ApK2C zjGv$1Q&NQEcW8#?P9u3`0H$s7aD4v(;#;KSI68Jj^07C~OHG0vp0_#w;oJ)9gaqon zAh^=^gBI!id(BnO)&7?OZ7g)G216jF7zJ;VacSlkKnR1Q)!Sfk6!CS=ubm;CvQ@S2 z9=eh95+=f4V(1Btg!J_Eqc+9ipt@?@ZEuvjJO$hM_cr|*d1DtwkOFKCpja2pz0j{ZJT^^E|}{EM>C|(Z%DZ< z7!%|&~cIu(B^XvO-!E?7L zt!91#7U3MMns2TC^PJIII#jXmQzIni!297u)<^|!+1*+XMGBqT*;rXw1NfA4|I++H zfqk8RID0E+@bNobyWJfJ+Y9gg0dp*-uYjcoPB_ag089iYOEOKRi~zZf^?JS0!_&jp z!4;LQ&0v0Cji6ChrHR4(b3Vw3U`M#9S##{1^4VrFk_YO27&3?o+P7ri>DDk`FOwFcs+WNKO(0^oLy z{SbUU!_-A(&r5xPP2P=<-!5W&Kd5*EzwiX|F@ToT4U8HwppY*U(<^s{Ir6P%8cuE5 z?Vg_5KksA3y@R;w^l|o)(DBGmzVl~{ZE@MyKy&Vqm-P{E_rt(B2qI1k(iqesu1DE_IYYq$4tch{hFB-eZ