From 49c6e94c3ae447beffe8500d7eab85c253bd07de Mon Sep 17 00:00:00 2001
From: gmillot <gael.millot@pasteur.fr>
Date: Mon, 4 May 2020 09:49:15 +0200
Subject: [PATCH] fun_gg_scatter() empty legend space improved but still errors
 to fix, fun_gg_boxplot() -> incorporation of legend space still in progress

---
 cute_little_R_functions.R | 3180 +++++++++++++++++++++++++++++++++++++
 fun_gg_boxplot.docx       |  Bin 102347 -> 102130 bytes
 scatter.docx              |  Bin 101017 -> 100619 bytes
 3 files changed, 3180 insertions(+)

diff --git a/cute_little_R_functions.R b/cute_little_R_functions.R
index 69342cb..8aa57d9 100644
--- a/cute_little_R_functions.R
+++ b/cute_little_R_functions.R
@@ -6977,3 +6977,3183 @@ return(output) # do not use cat() because the idea is to reuse the message
 
 
 
+
+
+
+# add legend width from scatter. Ok with facet?
+# transfert the 2nd tick part to scatter
+# improve grid -> put secondary grids. Then trasfert to scatter
+# replace .categ.legend.name by box.legend.name
+# replace dot.categ.legend.name by dot.legend.name
+
+fun_gg_boxplot <- function(
+data1, 
+y, 
+categ, 
+categ.class.order = NULL, 
+categ.legend.name = NULL, 
+categ.color = NULL, 
+box.fill = FALSE, 
+box.width = 0.5, 
+box.space = 0.1, 
+box.line.size = 0.5, 
+box.notch = FALSE, 
+box.alpha = 1, 
+box.mean = TRUE, 
+box.whisker.kind = "std", 
+box.whisker.width = 0, 
+dot.color = "black", 
+dot.categ = NULL, 
+dot.categ.class.order = NULL, 
+dot.categ.legend.name = NULL, 
+dot.tidy = FALSE, 
+dot.tidy.bin.nb = 50, 
+dot.jitter = 0.5, 
+dot.size = 3, 
+dot.alpha = 0.5, 
+dot.border.size = 0.5, 
+dot.border.color = NULL, 
+x.lab = NULL, 
+y.lab = NULL, 
+y.lim = NULL, 
+y.log = "no", 
+y.tick.nb = NULL, 
+y.inter.tick.nb = NULL, 
+y.include.zero = FALSE, 
+y.top.extra.margin = 0.05, 
+y.bottom.extra.margin = 0.05, 
+stat.disp = NULL, 
+stat.disp.mean = FALSE, 
+stat.size = 4, 
+stat.dist = 2, 
+vertical = TRUE, 
+text.size = 12, 
+text.angle = 0, 
+title = "", 
+title.text.size = 8, 
+legend.show = TRUE, 
+legend.width = 0.5, 
+article = TRUE, 
+grid = FALSE, 
+return = FALSE, 
+return.ggplot = FALSE,
+plot = TRUE, 
+add = NULL, 
+warn.print = FALSE, 
+lib.path = NULL
+){
+# AIM
+# ggplot2 boxplot with the possibility to add background or foreground dots
+# for ggplot2 specifications, see: https://ggplot2.tidyverse.org/articles/ggplot2-specs.html
+# WARNINGS
+# Rows containing NA in data1[, c(y, categ)] will be removed before processing, with a warning (see below)
+# Hinges are not computed like in the classical boxplot() function of R
+# To have a single box, create a factor column with a single class and specify the name of this column in the categ argument. For a single set of grouped boxs, create a factor column with a single class and specify this column in categ argument as first element (i.e., as categ1, knowing that categ2 must also be specified in this situation). See categ below
+# with separated boxs (categ argument with only one element), box.width argument defines each box width. The box.width argument also defines the space between boxs by using (1 - box.width). In addition, xmin and xmax of the fun_gg_boxplot() output report the box boundaries (around x-axis unit 1, 2, 3, etc., for each box)
+# with grouped boxs (categ argument with two elements), box.width argument defines each set of grouped box width. The box.width argument also defines the space between set of grouped boxs by using (1 - box.width). In addition, xmin and xmax of the fun_gg_boxplot() output report the box boundaries (around x-axis unit 1, 2, 3, etc., for each set of grouped box)
+# The dot.alpha argument can alter the display of the color boxes when using pdf output
+# ARGUMENTS
+# data1: dataframe containing one column of values (see y argument below) and one or two columns of categories (see categ argument below). Duplicated column names are not allowed
+# y: character string of the data1 column name for y-axis (column containing numeric values). Numeric values will be split according to the classes of the column names indicated in the categ argument to generate the boxs and will also be used to plot the dots
+# categ: vector of character strings of the data1 column name for categories (column of characters or factor). Must be either one or two column names. If a single column name (further refered to as categ1), then one box per class of categ1. If two column names (further refered to as categ1 and categ2), then one box per class of categ2, which form a group of boxs in each class of categ1. BEWARE: no empty classes allowed. To have a single box, create a factor column with a single class and specify the name of this column in the categ argument (here, no categ2 in categ argument). For a single set of grouped boxs, create a factor column with a single class and specify this column in categ argument as first element (i.e., as categ1, knowing that categ2 must also be specified in this situation)
+# categ.class.order: list indicating the order of the classes of categ1 and categ2 represented on the boxplot (the first compartment for categ1 and and the second for categ2). If categ.class.order == NULL, classes are represented according to the alphabetical order. Some compartment can be NULL and other not
+# categ.legend.name: character string of the legend title for categ2. If categ.legend.name == NULL, then categ.legend.name <- categ1 if only categ1 is present, and categ.legend.name <- categ2 if categ1 and categ2 are present. Write "" if no legend required
+# categ.color: vector of color character string for box frame
+#If categ.color == NULL, default colors of ggplot2, whatever categ1 and categ2
+# If categ.color is non null and only categ1 in categ argument, categ.color can be either: (1) a single color string (all the boxs will have this color, whatever the number of classes of categ1), (2) a vector of string colors, one for each class of categ1 (each color will be associated according to categ.class.order of categ1), (3) a vector or factor of string colors, like if it was one of the column of data1 data frame (beware: a single color per class of categ1 and a single class of categ1 per color must be respected). Integers are also accepted instead of character strings, as long as above rules about length are respected. Integers will be processed by fun_gg_palette() using the max integer value among all the integers in categ.color
+# If categ.color is non null and categ1 and categ2 specified, all the rules described above will apply to categ2 instead of categ1 (colors will be determined for boxs inside a group of boxs)
+# box.fill: logical. Fill the box? If TRUE, the categ.color argument will be used to generate filled boxplot (the box frames being black) as well as filled outlier dots (the dot border being controled by the dot.border.color argument) and if all the dots are plotted (argument dot.color other than NULL), they will be over the boxes. If FALSE, the categ.color argument will be used to color the box frames and the outlier dot borders, and if all the dots are plotted, they will be beneath the boxes
+# box.width: numeric value (from 0 to 1) of the box or set of grouped box width (see warnings above)
+# box.space: numeric value (from 0 to 1) indicating the box separation in grouped boxes. 0 means no space and 1 means boxes shrinked to a vertical line. Ignored if no grouped boxes
+# box.line.size: numeric value of line size of boxes and whiskers (in mm)
+# box.notch: logical. Notched boxplot? It TRUE, display notched boxplot, the notches corresponding approximately to the 95% confidence interval of the median (the notch interval is exactly 1.58 x Inter Quartile Range (IQR) / sqrt(n), with n the number of values that made the box). If notch intervals between two boxes do not overlap, it can be interpreted as significant median differences
+# box.alpha: numeric value (from 0 to 1) of box transparency (full transparent to full opaque, respectively). BEWARE: work only for the fill of boxplots, not for the frame. See https://github.com/tidyverse/ggplot2/issues/252
+# box.mean: logical. Add mean value? It TRUE, a losange dot, additional to the solid median bar and corresponding to the mean value, is incorporated into each boxplot
+# box.whisker.kind: range of the whiskers. Either "no" (no whiskers), or "std" (length of each whisker equal to 1.5 x Inter Quartile Range (IQR)), or "max" (length of the whiskers up or down to the most distant dot)
+# box.whisker.width: numeric value (from 0 to 1) of the whisker width, with 0 meaning no whiskers and 1 meaning a width equal to the corresponding boxplot width
+# dot.color: vector of color character string for color of dots.
+# If NULL, no dots plotted
+# If "same", the dots will have the same colors as the respective boxplots
+# Otherwise, colors will depend on the dot.categ argument. If dot.categ is NULL, then colors will be applied to each class of the last column name specified in categ. If dot.categ is non NULL, colors will be applied to each class of the column name specified in dot.categ. Color strings can be (1), (2) or (3) of categ.color argument, except that in the possibility (3), the rule "a single color per class of categ and a single class of categ per color", does not have to be respected (for instance, each dot can have a different color). See examples Put in example or leave here? -> Example: with categ = "Group1", dot.color = "red" and dot.categ = NULL, all the dots will be red, whatever the classes in Group1 column of data1, and no legend will be display for dots. With categ = c("Group1", "Group2"), dot.color = c("red", "blue") and dot.categ = NULL, the dots will be red for first class of Group2 and blue for the 2nd class of Group2, and no legend will be display for dots. With categ = c("Group1", "Group2"), dot.color = c("red", "blue") and dot.categ = "Group1", the dots will be red for first class of Group1 and blue for the 2nd class of Group1, and a legend will be display for dots
+# dot.categ: optional single character string of a data1 column name (further refered to as categ3), which is associated to the dot.color argument to generate a legend for dots. If non NULL, then a legend will be created for the dots, in addition to the legend for the boxes. If NULL, no legend created and the colors of dot will depend on dot.color and categ arguments (see the explanation in dot.color)
+# dot.categ.class.order: optional vector of character strings indicating the order of the classes of categ3. If dot.categ is non NULL and dot.categ.class.order is NULL, classes are displayed in the legend according to the alphabetical order. Ignored if dot.categ is NULL
+# dot.categ.legend.name: optional character string of the legend title for categ3. If dot.categ.legend.name == NULL, categ3 value is used (name of the column in data1). Write "" if no legend required. Ignored if dot.categ is NULL
+# dot.tidy: logical. Nice dot spreading? If TRUE, use the geom_dotplot() function for a nice representation. BEWARE: change the true coordinates of dots that are aligned. Thus the gain in aestheticism is associated with a loss in precision that can be very important. If FALSE, dots are randomly spread, using the dot.jitter argument (see below) keeping the true dot coordinates
+# dot.tidy.bin.nb: positive integer indicating the number of bins (i.e., nb of separations) of the y.lim range. Each dot will then be put in one of the bin, with the size the width of the bin. In other words, increase the number to have smaller dots. Not considered if dot.tidy is FALSE
+# dot.jitter: numeric value (from 0 to 1) of random dot horizontal dispersion, with 0 meaning no dispersion and 1 meaning a dispersion in the corresponding box width interval. Not considered if dot.tidy is TRUE
+# dot.size: numeric value of dot size (in mm). Not considered if dot.tidy is TRUE
+# dot.alpha: numeric value (from 0 to 1) of dot transparency (full transparent to full opaque, respectively)
+# dot.border.size: numeric value of border dot size (in mm). Write zero for no dot border. If dot.tidy is TRUE, value 0 remove the border. Another one leave the border without size control (geom_doplot() feature)
+# dot.border.color: single character color string defining the color of the dot border (same color for all the dots, whatever their categories). If dot.border.color == NULL, the border color will be the same as the dot color. A single integer is also accepted instead of a character string, that will be processed by fun_gg_palette()
+# x.lab: a character string or expression for x-axis legend. If NULL, character string of categ1
+# y.lab: a character string or expression for y-axis legend. If NULL, character string of the y argument
+# y.lim: 2 numeric values indicating the range of the y-axis
+# y.log: either "no" (values in the y argument column of the data1 data frame are not log), "log2" (values in the y argument column of the data1 data frame are log2 transformed) or "log10" (values in the y argument column of the data1 data frame are log10 transformed). BEWARE: do not transform the data, but just display ticks in a log scale manner. Thus, negative or zero values allowed in the y argument when y.log is "log2" or "log10". BEWARE: not possible to have horizontal boxs with a log axis, due to a bug in ggplot2 (see https://github.com/tidyverse/ggplot2/issues/881)
+# y.tick.nb: approximate number of desired label values (i.e., main ticks) on the y-axis (n argument of the the cute::fun_scale() function). BEWARE: provide this number even if y.log is "log2" or "log10", which can be difficult to read (e.g., ..., 2^2, 2^2.5, 2^3, ...). If NULL and if y.log is "no", then the number of label values is set by ggplot2. If NULL and if y.log is "log2" or "log10", then the number of label values correspond to integer units between y.lim (e.g., ..., 2^1, 2^2, 2^3, ...)
+# y.inter.tick.nb: number of desired secondary ticks between main ticks. Ignored if y.log is other than "no" (log scale plotted). Use argument return = TRUE and see $plot$y.inter.tick.values to have the values associated to secondary ticks. IF NULL, no secondary ticks
+# y.include.zero: logical. Does y.lim range include 0? Ok even if y.log == TRUE because y.lim must already be log transformed values
+# y.top.extra.margin: single proportion (between 0 and 1) indicating if extra margins must be added to y.lim. If different from 0, add the range of the axis * y.top.extra.margin (e.g., abs(y.lim[2] - y.lim[1]) * y.top.extra.margin) to the top of y-axis
+# y.bottom.extra.margin: idem as y.top.extra.margin but to the bottom of y-axis
+# stat.disp: add the median number above the corresponding box. Either NULL (no number shown), "top" (at the top of the figure region) or "above" (above each box)
+# stat.disp.mean: logical. Diplay means instead of medians ?
+# stat.size: numeric value of the stat size (in points). Increase the value to increase text size
+# stat.dist: numeric value of the stat distance. Increase the value to increase the distance from the box plot
+# vertical: logical. Vertical boxs? BEWARE: will be automatically set to TRUE if y.log argument is other than "no". Indeed, not possible to have horizontal boxs with a log axis, due to a bug in ggplot2 (see https://github.com/tidyverse/ggplot2/issues/881)
+# text.size: numeric value of the size of the (1) axis numbers and axis legends, (2) texts in the graphic legend, (3) stats above boxs (in points)
+# text.angle: integer value of the text angle for the x-axis labels. Positive values for counterclockwise rotation: 0 for horizontal, 90 for vertical, 180 for upside down etc. Negative values for clockwise rotation: 0 for horizontal, -90 for vertical, -180 for upside down etc.
+# title: character string of the graph title
+# title.text.size: numeric value of the title size (in points)
+# legend.show: logical. Show legend? Not considered if categ argument is NULL, because this already generate no legend, excepted if legend.width argument is non NULL. In that specific case (categ is NULL, legend.show is TRUE and legend.width is non NULL), an empty legend space is created. This can be useful when desiring graphs of exactly the same width, whatever they have legends or not
+# legend.width: single proportion (between 0 and 1) indicating the relative width of the legend sector (on the right of the plot) relative to the width of the plot. Value 1 means that the window device width is split in 2, half for the plot and half for the legend. Value 0 means no room for the legend which will overlay the plot region. Write NULL to inactivate the legend sector. In such case, ggplot2 will manage the room required for the legend display, meaning that the width of the plotting region can vary between graphs, depending on the text in the legend
+# article: logical. If TRUE, use a article theme (article like). If FALSE, use a classic related ggplot theme. Use the add argument (add = "+ggplot2::theme_classic()" for the exact classic ggplot theme
+# grid: logical. Draw horizontal lines in the background to better read the box values? Not considered if article == FALSE
+# return: logical. Return the graph parameters?
+# return.ggplot: logical. Return the ggplot object in the output list? Ignored if return is FALSE. See $ggplot in the RETURN section below for more details
+# plot: logical. Plot the graphic? If FALSE and return argument is TRUE, graphical parameters and associated warnings are provided without plotting
+# add: character string allowing to add more ggplot2 features (dots, lines, themes, facet, etc.). Ignored if NULL
+# BEWARE: (1) the string must start with "+", (2) the string must finish with ")" and (3) each function must be preceded by "ggplot2::". Example: "+ ggplot2::coord_flip() + ggplot2::theme_bw()"
+# If the character string contains the "ggplot2::theme" string, then the article argument of fun_gg_boxplot() (see above) is ignored with a warning
+# Handle the add argument with caution since added functions can create conflicts with the preexisting internal ggplot2 functions
+# warn.print: logical. Print warnings at the end of the execution? ? If FALSE, warning messages are never printed, but can still be recovered in the returned list. Some of the warning messages (those delivered by the internal ggplot2 functions) are not apparent when using the argument plot = FALSE
+# lib.path: character string indicating the absolute path of the required packages (see below). if NULL, the function will use the R library default folders
+# REQUIRED PACKAGES
+# ggplot2
+# scales
+# REQUIRED FUNCTIONS FROM CUTE_LITTLE_R_FUNCTION
+# fun_check()
+# fun_comp_1d()
+# fun_comp_2d()
+# fun_gg_just()
+# fun_gg_palette()
+# fun_inter_ticks()
+# fun_name_change()
+# fun_pack()
+# fun_round()
+# fun_scale()
+# RETURN
+# a boxplot if plot argument is TRUE
+# a list of the graph info if return argument is TRUE:
+# $data: the initial data
+# $stat: the graphic statistics
+# $removed.row.nb: which rows have been removed due to NA detection in y and categ columns (NULL if no row removed)
+# $removed.rows: removed rows containing NA (NULL if no row removed)
+# $plot: the graphic box and dot coordinates
+# $dots: dot coordinates
+# $main.box: coordinates of boxes
+# $median: median coordinates
+# $sup.whisker: coordinates of top whiskers (y for base and y.end for extremities)
+# $inf.whisker: coordinates of bottom whiskers (y for base and y.end for extremities)
+# $sup.whisker.edge: coordinates of top whisker edges (x and xend)
+# $inf.whisker.edge: coordinates of bottom whisker edges(x and xend)
+# $mean: diamon mean coordinates (only if box.mean argument is TRUE)
+# $stat.display.positive: coordinates of stat numbers when positive (only if stat.disp argument is TRUE)
+# $stat.display.negative: coordinates of stat numbers when negative (only if stat.disp argument is TRUE)
+# y.inter.tick.positions: coordinates of secondary ticks (only if y.inter.tick.nb argument is non NULL or if y.log argument is different from "no")
+# y.inter.tick.values: values of secondary ticks. NULL except if y.inter.tick.nb argument is non NULL or if y.log argument is different from "no")
+# $panel: the variable names used for the panels (NULL if no panels). BEWARE: NA can be present according to ggplot2 upgrade to v3.3.0
+# $axes: the x-axis and y-axis info
+# $warn: the warning messages. Use cat() for proper display. NULL if no warning. BEWARE: some of the warning messages (those delivered by the internal ggplot2 functions) are not apparent when using the argument plot = FALSE
+# $ggplot: ggplot object that can be used for reprint (use print($ggplot) or update (use $ggplot + ggplot2::...). NULL if return.ggplot argument is FALSE. Indeed, a non NULL $ggplot in the output list is sometimes annoying as the manipulation of the list print the plot
+# EXAMPLE
+# obs1 <- data.frame(x = 1:20, Group1 = rep(c("G", "H"), times = 10), Group2 = rep(c("A", "B"), each = 10)) ; fun_gg_boxplot(data1 = obs1, y = "x", categ = c("Group1", "Group2"), categ.class.order = list(NULL, c("B", "A")), categ.legend.name = "", categ.color = c("red", "blue"),box.fill = FALSE, box.width = 0.5, box.space = 0.1, box.line.size = 0.5, box.notch = FALSE, box.alpha = 1, box.mean = TRUE, box.whisker.kind = "std", box.whisker.width = 0, dot.color = "black", dot.categ = NULL, dot.categ.class.order = NULL, dot.categ.legend.name = NULL, dot.tidy = TRUE, dot.tidy.bin.nb = 50, dot.jitter = 0.5, dot.size = 3, dot.alpha = 0.5, dot.border.size = 0.5, dot.border.color = NULL, x.lab = NULL, y.lab = NULL, y.lim = NULL, y.log = "no", y.tick.nb = NULL, y.inter.tick.nb = NULL, y.include.zero = FALSE, y.top.extra.margin = 0.05, y.bottom.extra.margin = 0.05, stat.disp = NULL, stat.disp.mean = FALSE, stat.size = 4, stat.dist = 2, vertical = TRUE, text.size = 12, text.angle = 0, title = "", title.text.size = 8, legend.width = 0.5, article = TRUE, grid = FALSE, return = FALSE, return.ggplot = FALSE, plot = TRUE, add = NULL, warn.print = TRUE, lib.path = NULL)
+# DEBUGGING
+# set.seed(1) ; obs1 <- data.frame(Time = c(rnorm(10), rnorm(10) + 2), Group1 = rep(c("G", "H"), each = 10)) ; set.seed(NULL) ; obs1$Time[1:10] <- NA ; data1 = obs1 ; y = "Time" ; categ = c("Group1") ; categ.class.order = NULL ; categ.legend.name = NULL ; categ.color = c("green") ; box.fill = FALSE ; box.width = 0.5 ; box.space = 0.1 ; box.notch = FALSE ; box.line.size = 0.5 ; box.alpha = 0.5 ; box.mean = TRUE ; box.whisker.kind = "std" ; box.whisker.width = 0.5 ; dot.color = "black" ; dot.categ = "Group1"; dot.categ.class.order = c("G", "H") ; dot.categ.legend.name = NULL ; dot.tidy = TRUE ; dot.tidy.bin.nb = 50 ; dot.jitter = 0.25 ; dot.size = 3 ;  dot.alpha = 0.5 ; dot.border.size = 0.5 ; dot.border.color = NULL ; y.lim = NULL ; y.log = "no" ; y.tick.nb = NULL ; y.inter.tick.nb = NULL ; y.include.zero = FALSE ; y.top.extra.margin = 0.05 ; y.bottom.extra.margin = 0.05 ; stat.disp = NULL ; stat.disp.mean = FALSE ; stat.size = 4 ; stat.dist = 2 ; x.lab = NULL ; y.lab = NULL ; vertical = TRUE ; text.size = 12 ; title = "" ; title.text.size = 8 ; legend.width = 0.5 ; text.angle = 0 ; article = FALSE ; grid = FALSE ; return = TRUE ; return.ggplot = FALSE ; plot = TRUE ; add = NULL ; warn.print = FALSE ; lib.path = NULL
+# set.seed(1) ; obs1 <- data.frame(Time = c(rnorm(10), rnorm(10) + 2), Group1 = rep(c("G", "H"), each = 10), Group2 = rep(c("A", "B"), time = 10), Group3 = rep(c("I", "J"), time = 10)) ; set.seed(NULL) ; obs1$Time[1:10] <- NA ; data1 = obs1 ; y = "Time" ; categ = c("Group1", "Group2") ; categ.class.order = list(c("G", "H"), c("A", "B")); categ.legend.name = NULL ; categ.color = c("green", "blue") ; box.fill = FALSE ; box.width = 0.5 ; box.space = 0.1 ; box.notch = FALSE ; box.line.size = 0.5 ; box.alpha = 0.5 ; box.mean = TRUE ; box.whisker.kind = "std" ; box.whisker.width = 0.5 ; dot.color = "black" ; dot.categ = "Group1" ; dot.categ.class.order = NULL ; dot.categ.legend.name = NULL ; dot.tidy = TRUE ; dot.tidy.bin.nb = 30 ; dot.jitter = 0.25 ; dot.size = 3 ;  dot.alpha = 0.5 ; dot.border.size = 0.5 ; dot.border.color = NULL ; y.lim = NULL ; y.log = "no" ; y.tick.nb = NULL ; y.inter.tick.nb = NULL ; y.include.zero = FALSE ; y.top.extra.margin = 0.05 ; y.bottom.extra.margin = 0.05 ; stat.disp = NULL ; stat.disp.mean = FALSE ; stat.size = 4 ; stat.dist = 2 ; x.lab = NULL ; y.lab = NULL ; vertical = TRUE ; text.size = 12 ; title = "" ; title.text.size = 8 ; legend.width = 0.5 ; text.angle = 0 ; article = FALSE ; grid = FALSE ; return = FALSE ; return.ggplot = FALSE ; plot = TRUE ; add = NULL ; warn.print = FALSE ; lib.path = NULL
+# set.seed(1) ; obs1 <- data.frame(Time = c(rnorm(10), rnorm(10) + 2), Group1 = rep(c("G", "H"), each = 10), Group2 = rep(c("A", "B"), time = 10)) ; set.seed(NULL) ; data1 = obs1 ; y = "Time" ; categ = c("Group1") ; categ.class.order = list(c("H", "G")); categ.legend.name = NULL ; categ.color = c("blue") ; box.fill = FALSE ; box.width = 0.5 ; box.space = 0.1 ; box.notch = TRUE ; box.line.size = 1 ; box.alpha = 1 ; box.mean = FALSE ; box.whisker.kind = "max" ; box.whisker.width = 0 ; dot.color = "black" ; dot.categ = "Group1" ; dot.categ.class.order = NULL ; dot.categ.legend.name = NULL ; dot.tidy = TRUE ; dot.tidy.bin.nb = 30 ; dot.jitter = 0.25 ; dot.size = 3 ;  dot.alpha = 0.5 ; dot.border.size = 0.5 ; dot.border.color = NULL ; y.lim = NULL ; y.log = "log10" ; y.tick.nb = NULL ; y.inter.tick.nb = NULL ; y.include.zero = FALSE ; y.top.extra.margin = 0.05 ; y.bottom.extra.margin = 0.05 ; stat.disp = NULL ; stat.disp.mean = FALSE ; stat.size = 4 ; stat.dist = 2 ; x.lab = NULL ; y.lab = NULL ; vertical = TRUE ; text.size = 12 ; title = "" ; title.text.size = 8 ; legend.width = 0.5 ; text.angle = 0 ; article = FALSE ; grid = FALSE ; return = FALSE ; return.ggplot = FALSE ; plot = TRUE ; add = NULL ; warn.print = FALSE ; lib.path = NULL
+# function name
+function.name <- paste0(as.list(match.call(expand.dots=FALSE))[[1]], "()")
+# end function name
+# required function checking
+req.function <- c(
+"fun_comp_2d", 
+"fun_gg_just", 
+"fun_gg_palette", 
+"fun_name_change", 
+"fun_pack", 
+"fun_check", 
+"fun_round", 
+"fun_scale",
+"fun_inter_ticks"
+)
+for(i1 in req.function){
+if(length(find(i1, mode = "function")) == 0){
+tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, "\nREQUIRED ", i1, "() FUNCTION IS MISSING IN THE R ENVIRONMENT\n\n================\n\n")
+stop(tempo.cat)
+}
+}
+# end required function checking
+# reserved words to avoid bugs (names of dataframe columns used in this function)
+reserved.words <- c("categ.check", "categ.color", "dot.color", "dot.categ", "dot.max", "dot.min", "group", "PANEL", "group.check", "MEAN", "tempo.categ1", "tempo.categ2", "text.max.pos", "text.min.pos", "x", "x.y", "y", "y.check", "y_from.dot.max", "ymax", "tidy_group")
+# end reserved words to avoid bugs (used in this function)
+# argument primary checking
+arg.check <- NULL #
+text.check <- NULL #
+checked.arg.names <- NULL # for function debbuging: used by r_debugging_tools
+ee <- expression(arg.check <- c(arg.check, tempo$problem) , text.check <- c(text.check, tempo$text) , checked.arg.names <- c(checked.arg.names, tempo$fun.name))
+tempo <- fun_check(data = data1, class = "data.frame", na.contain = TRUE, fun.name = function.name) ; eval(ee)
+tempo <- fun_check(data = y, class = "vector", mode = "character", length = 1, fun.name = function.name) ; eval(ee)
+tempo <- fun_check(data = categ, class = "vector", mode = "character", fun.name = function.name) ; eval(ee)
+if( ! is.null(categ.class.order)){
+tempo <- fun_check(data = categ.class.order, class = "list", fun.name = function.name) ; eval(ee)
+}
+if( ! is.null(categ.legend.name)){
+tempo <- fun_check(data = categ.legend.name, class = "vector", mode = "character", fun.name = function.name) ; eval(ee)
+}
+if( ! is.null(categ.color)){
+tempo1 <- fun_check(data = categ.color, class = "vector", mode = "character", na.contain = TRUE, fun.name = function.name, print = FALSE)
+tempo2 <- fun_check(data = categ.color, class = "factor", na.contain = TRUE, fun.name = function.name, print = FALSE)
+if(tempo1$problem == TRUE & tempo2$problem == TRUE){
+tempo.check.color <- fun_check(data = categ.color, class = "integer", double.as.integer.allowed = TRUE, na.contain = TRUE, fun.name = function.name, print = FALSE)$problem
+if(tempo.check.color == TRUE){
+tempo.cat <- paste0("categ.color ARGUMENT MUST BE A FACTOR OR CHARACTER VECTOR OR INTEGER VECTOR") # integer possible because dealt above
+text.check <- c(text.check, tempo.cat)
+arg.check <- c(arg.check, TRUE)
+}
+}
+}
+tempo <- fun_check(data = box.fill, class = "vector", mode = "logical", length = 1, fun.name = function.name) ; eval(ee)
+tempo <- fun_check(data = box.width, prop = TRUE, length = 1, fun.name = function.name) ; eval(ee)
+tempo <- fun_check(data = box.space, prop = TRUE, length = 1, fun.name = function.name) ; eval(ee)
+tempo <- fun_check(data = box.line.size, class = "vector", mode = "numeric", length = 1, neg.values = FALSE, fun.name = function.name) ; eval(ee)
+tempo <- fun_check(data = box.notch, class = "vector", mode = "logical", length = 1, fun.name = function.name) ; eval(ee)
+tempo <- fun_check(data = box.alpha, prop = TRUE, length = 1, fun.name = function.name) ; eval(ee)
+tempo <- fun_check(data = box.mean, class = "vector", mode = "logical", length = 1, fun.name = function.name) ; eval(ee)
+tempo <- fun_check(data = box.whisker.kind, options = c("no", "std", "max"), length = 1, fun.name = function.name) ; eval(ee)
+tempo <- fun_check(data = box.whisker.width, prop = TRUE, length = 1, fun.name = function.name) ; eval(ee)
+if( ! is.null(dot.color)){
+tempo1 <- fun_check(data = dot.color, class = "vector", mode = "character", na.contain = TRUE, fun.name = function.name, print = FALSE)
+tempo2 <- fun_check(data = dot.color, class = "factor", na.contain = TRUE, fun.name = function.name, print = FALSE)
+if(tempo1$problem == TRUE & tempo2$problem == TRUE){
+tempo.check.color <- fun_check(data = dot.color, class = "integer", double.as.integer.allowed = TRUE, na.contain = TRUE, fun.name = function.name, print = FALSE)$problem
+if(tempo.check.color == TRUE){
+tempo.cat <- paste0("dot.color MUST BE A FACTOR OR CHARACTER VECTOR OR INTEGER VECTOR") # integer possible because dealt above
+text.check <- c(text.check, tempo.cat)
+arg.check <- c(arg.check, TRUE)
+}
+}
+}
+if( ! is.null(dot.categ)){
+tempo <- fun_check(data = dot.categ, class = "vector", mode = "character", length = 1, fun.name = function.name) ; eval(ee)
+}
+if( ! is.null(dot.categ.class.order)){
+tempo <- fun_check(data = dot.categ.class.order, class = "vector", mode = "character", fun.name = function.name) ; eval(ee)
+}
+if( ! is.null(dot.categ.legend.name)){
+tempo <- fun_check(data = dot.categ.legend.name, class = "vector", mode = "character", length = 1, fun.name = function.name) ; eval(ee)
+}
+tempo <- fun_check(data = dot.tidy, class = "vector", mode = "logical", length = 1, fun.name = function.name) ; eval(ee)
+tempo <- fun_check(data = dot.tidy.bin.nb, class = "vector", typeof = "integer", length = 1, double.as.integer.allowed = TRUE, neg.values = FALSE, fun.name = function.name) ; eval(ee)
+tempo <- fun_check(data = dot.jitter, prop = TRUE, length = 1, fun.name = function.name) ; eval(ee)
+tempo <- fun_check(data = dot.size, class = "vector", mode = "numeric", length = 1, neg.values = FALSE, fun.name = function.name) ; eval(ee)
+tempo <- fun_check(data = dot.alpha, prop = TRUE, length = 1, fun.name = function.name) ; eval(ee)
+tempo <- fun_check(data = dot.border.size, class = "vector", mode = "numeric", length = 1, neg.values = FALSE, fun.name = function.name) ; eval(ee)
+if( ! is.null(dot.border.color)){
+tempo1 <- fun_check(data = dot.border.color, class = "vector", mode = "character", length = 1, fun.name = function.name, print = FALSE)
+tempo2 <- fun_check(data = dot.border.color, class = "vector", typeof = "integer", double.as.integer.allowed = TRUE, length = 1, fun.name = function.name, print = FALSE)
+if(tempo1$problem == TRUE & tempo2$problem == TRUE){
+# integer colors into gg_palette
+tempo.cat <- paste0("dot.border.color MUST BE A SINGLE CHARACTER STRING OF COLOR OR A SINGLE INTEGER VALUE") # integer possible because dealt above
+text.check <- c(text.check, tempo.cat)
+arg.check <- c(arg.check, TRUE)
+}
+}
+if( ! is.null(x.lab)){
+if(all(class(x.lab) %in% "expression")){ # to deal with math symbols
+tempo <- fun_check(data = x.lab, class = "expression", length = 1, fun.name = function.name) ; eval(ee)
+}else{
+tempo <- fun_check(data = x.lab, class = "vector", mode = "character", length = 1, fun.name = function.name) ; eval(ee)
+}
+}
+if( ! is.null(y.lab)){
+if(all(class(y.lab) %in% "expression")){ # to deal with math symbols
+tempo <- fun_check(data = y.lab, class = "expression", length = 1, fun.name = function.name) ; eval(ee)
+}else{
+tempo <- fun_check(data = y.lab, class = "vector", mode = "character", length = 1, fun.name = function.name) ; eval(ee)
+}
+}
+if( ! is.null(y.lim)){
+tempo <- fun_check(data = y.lim, class = "vector", mode = "numeric", length = 2, fun.name = function.name) ; eval(ee)
+if(tempo$problem == FALSE & any(y.lim %in% c(Inf, -Inf))){
+tempo.cat <- paste0("y.lim ARGUMENT CANNOT CONTAIN -Inf OR Inf VALUES")
+text.check <- c(text.check, tempo.cat)
+arg.check <- c(arg.check, TRUE)
+}
+}
+tempo <- fun_check(data = y.log, options = c("no", "log2", "log10"), length = 1, fun.name = function.name) ; eval(ee)
+if( ! is.null(y.tick.nb)){
+tempo <- fun_check(data = y.tick.nb, class = "vector", typeof = "integer", length = 1, double.as.integer.allowed = TRUE, fun.name = function.name) ; eval(ee)
+if(tempo$problem == FALSE & y.tick.nb < 0){
+tempo.cat <- paste0("y.tick.nb ARGUMENT MUST BE A NON NULL POSITIVE INTEGER")
+text.check <- c(text.check, tempo.cat)
+arg.check <- c(arg.check, TRUE)
+}
+}
+if( ! is.null(y.inter.tick.nb)){
+tempo <- fun_check(data = y.inter.tick.nb, class = "vector", typeof = "integer", length = 1, double.as.integer.allowed = TRUE, fun.name = function.name) ; eval(ee)
+if(tempo$problem == FALSE & y.inter.tick.nb < 0){
+tempo.cat <- paste0("y.inter.tick.nb ARGUMENT MUST BE A NON NULL POSITIVE INTEGER")
+text.check <- c(text.check, tempo.cat)
+arg.check <- c(arg.check, TRUE)
+}
+}
+tempo <- fun_check(data = y.include.zero, class = "vector", mode = "logical", length = 1, fun.name = function.name) ; eval(ee)
+tempo <- fun_check(data = y.top.extra.margin, prop = TRUE, length = 1, fun.name = function.name) ; eval(ee)
+tempo <- fun_check(data = y.bottom.extra.margin, prop = TRUE, length = 1, fun.name = function.name) ; eval(ee)
+if( ! is.null(stat.disp)){
+tempo <- fun_check(data = stat.disp, options = c("top", "above"), length = 1, fun.name = function.name) ; eval(ee)
+}
+tempo <- fun_check(data = stat.disp.mean, class = "logical", length = 1, fun.name = function.name) ; eval(ee)
+tempo <- fun_check(data = stat.size, class = "vector", mode = "numeric", length = 1, neg.values = FALSE, fun.name = function.name) ; eval(ee)
+tempo <- fun_check(data = stat.dist, class = "vector", mode = "numeric", length = 1, fun.name = function.name) ; eval(ee)
+tempo <- fun_check(data = vertical, class = "vector", mode = "logical", length = 1, fun.name = function.name) ; eval(ee)
+tempo <- fun_check(data = text.size, class = "vector", mode = "numeric", length = 1, neg.values = FALSE, fun.name = function.name) ; eval(ee)
+tempo <- fun_check(data = text.angle, class = "vector", typeof = "integer", double.as.integer.allowed = TRUE, length = 1, neg.values = TRUE, fun.name = function.name) ; eval(ee)
+tempo <- fun_check(data = title, class = "vector", mode = "character", length = 1, fun.name = function.name) ; eval(ee)
+tempo <- fun_check(data = title.text.size, class = "vector", mode = "numeric", length = 1, neg.values = FALSE, fun.name = function.name) ; eval(ee)
+if( ! is.null(legend.width)){
+tempo <- fun_check(data = legend.width, prop = TRUE, length = 1, fun.name = function.name) ; eval(ee)
+}
+tempo <- fun_check(data = article, class = "logical", length = 1, fun.name = function.name) ; eval(ee)
+tempo <- fun_check(data = grid, class = "logical", length = 1, fun.name = function.name) ; eval(ee)
+tempo <- fun_check(data = return, class = "logical", length = 1, fun.name = function.name) ; eval(ee)
+tempo <- fun_check(data = return.ggplot, class = "logical", length = 1, fun.name = function.name) ; eval(ee)
+tempo <- fun_check(data = plot, class = "logical", length = 1, fun.name = function.name) ; eval(ee)
+if( ! is.null(add)){
+tempo <- fun_check(data = add, class = "vector", mode = "character", length = 1, fun.name = function.name) ; eval(ee)
+if(tempo$problem == FALSE & ! grepl(pattern = "^\\s*\\+", add)){ # check that the add string start by +
+tempo.cat <- paste0("add ARGUMENT MUST START WITH \"+\": ", paste(unique(add), collapse = " "))
+text.check <- c(text.check, tempo.cat)
+arg.check <- c(arg.check, TRUE)
+}else if(tempo$problem == FALSE & ! grepl(pattern = "(ggplot2|lemon)\\s*::", add)){ #
+tempo.cat <- paste0("FOR EASIER FUNCTION DETECTION, add ARGUMENT MUST CONTAIN \"ggplot2::\" OR \"lemon::\" IN FRONT OF EACH GGPLOT2 FUNCTION: ", paste(unique(add), collapse = " "))
+text.check <- c(text.check, tempo.cat)
+arg.check <- c(arg.check, TRUE)
+}else if(tempo$problem == FALSE & ! grepl(pattern = ")\\s*$", add)){ # check that the add string  finished by )
+tempo.cat <- paste0("add ARGUMENT MUST FINISH BY \")\": ", paste(unique(add), collapse = " "))
+text.check <- c(text.check, tempo.cat)
+arg.check <- c(arg.check, TRUE)
+}
+}
+tempo <- fun_check(data = warn.print, class = "logical", length = 1, fun.name = function.name) ; eval(ee)
+if( ! is.null(lib.path)){
+tempo <- fun_check(data = lib.path, class = "vector", mode = "character", fun.name = function.name) ; eval(ee)
+if(tempo$problem == FALSE){
+if( ! all(dir.exists(lib.path))){ # separation to avoid the problem of tempo$problem == FALSE and lib.path == NA
+tempo.cat <- paste0("DIRECTORY PATH INDICATED IN THE lib.path ARGUMENT DOES NOT EXISTS:\n", paste(lib.path, collapse = "\n"))
+text.check <- c(text.check, tempo.cat)
+arg.check <- c(arg.check, TRUE)
+}
+}
+}
+if(any(arg.check) == TRUE){
+stop(paste0("\n\n================\n\nERROR IN ", function.name, "\n", paste(text.check[arg.check], collapse = "\n"), "\n\n================\n\n"), call. = FALSE) #
+}
+# source("C:/Users/Gael/Documents/Git_versions_to_use/debugging_tools_for_r_dev-v1.2/r_debugging_tools-v1.2.R") ; eval(parse(text = str_basic_arg_check_dev)) ; eval(parse(text = str_arg_check_with_fun_check_dev)) # activate this line and use the function (with no arguments left as NULL) to check arguments status and if they have been checked using fun_check()
+# end argument primary checking
+# second round of checking and data preparation
+warn <- NULL
+warn.count <- 0
+if(any(duplicated(names(data1)))){
+tempo.cat <- paste0("ERROR IN ", function.name, "\nDUPLICATED COLUMN NAMES OF data1 ARGUMENT NOT ALLOWED:\n", paste(names(data1)[duplicated(names(data1))], collapse = " "))
+stop(paste0("\n\n================\n\n", tempo.cat, "\n\n================\n\n"), call. = FALSE)
+}
+if( ! (y %in% names(data1))){
+tempo.cat <- paste0("ERROR IN ", function.name, "\ny ARGUMENT MUST BE A COLUMN NAME OF data1")
+stop(paste0("\n\n================\n\n", tempo.cat, "\n\n================\n\n"), call. = FALSE)
+}else{
+tempo <- fun_check(data = data1[, y], data.name = "y COLUMN OF data1", class = "vector", mode = "numeric", na.contain = TRUE, fun.name = function.name) ; eval(ee)
+if(tempo$problem == TRUE){
+tempo.cat <- paste0("ERROR IN ", function.name, "\ny ARGUMENT MUST BE NUMERIC COLUMN IN data1")
+stop(paste0("\n\n================\n\n", tempo.cat, "\n\n================\n\n"), call. = FALSE)
+}
+}
+if(length(categ) > 2){
+tempo.cat <- paste0("ERROR IN ", function.name, "\ncateg ARGUMENT CANNOT HAVE MORE THAN 2 COLUMN NAMES OF data1")
+stop(paste0("\n\n================\n\n", tempo.cat, "\n\n================\n\n"), call. = FALSE)
+}else if( ! all(categ %in% names(data1))){
+tempo.cat <- paste0("ERROR IN ", function.name, "\ncateg ARGUMENT MUST BE COLUMN NAMES OF data1. HERE IT IS:\n", paste(categ, collapse = " "))
+stop(paste0("\n\n================\n\n", tempo.cat, "\n\n================\n\n"), call. = FALSE)
+}
+# reserved word checking
+if(any(names(data1) %in% reserved.words)){
+if(any(duplicated(names(data1)))){
+tempo.cat <- paste0("ERROR IN ", function.name, "\nDUPLICATED COLUMN NAMES OF data1 ARGUMENT NOT ALLOWED:\n", paste(names(data1)[duplicated(names(data1))], collapse = " "))
+stop(paste0("\n\n================\n\n", tempo.cat, "\n\n================\n\n"), call. = FALSE)
+}
+if( ! is.null(dot.categ)){
+if(dot.categ %in% categ){
+reserved.words <- c(reserved.words, paste0(dot.categ, "_DOT")) # paste0(dot.categ, "_DOT") is added to the reserved words because in such situation, a new column will be added to data1 that is named paste0(dot.categ, "_DOT")
+}
+}
+tempo.output <- fun_name_change(names(data1), reserved.words)
+for(i2 in 1:length(tempo.output$ini)){ # a loop to be sure to take the good ones
+names(data1)[names(data1) == tempo.output$ini[i2]] <- tempo.output$post[i2]
+if(any(y == tempo.output$ini[i2])){
+y[y == tempo.output$ini[i2]] <- tempo.output$post[i2]
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") IN y ARGUMENT (COLUMN NAMES OF data1 ARGUMENT),\n", tempo.output$ini[i2], " HAS BEEN REPLACED BY ", tempo.output$post[i2], "\nBECAUSE RISK OF BUG AS SOME NAMES IN y ARGUMENT ARE RESERVED WORD USED BY THE ", function.name, " FUNCTION")
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+}
+# BEWARE: names of y argument potentially replaced
+if(any(categ == tempo.output$ini[i2])){
+categ[categ == tempo.output$ini[i2]] <- tempo.output$post[i2]
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") IN categ ARGUMENT (COLUMN NAMES OF data1 ARGUMENT),\n", tempo.output$ini[i2], " HAS BEEN REPLACED BY ", tempo.output$post[i2], "\nBECAUSE RISK OF BUG AS SOME NAMES IN categ ARGUMENT ARE RESERVED WORD USED BY THE ", function.name, " FUNCTION")
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+}
+# BEWARE: names of categ argument potentially replaced
+if( ! is.null(dot.categ)){
+if(any(dot.categ == tempo.output$ini[i2])){
+dot.categ[dot.categ == tempo.output$ini[i2]] <- tempo.output$post[i2]
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") IN dot.categ ARGUMENT (COLUMN NAMES OF data1 ARGUMENT),\n", tempo.output$ini[i2], " HAS BEEN REPLACED BY ", tempo.output$post[i2], "\nBECAUSE RISK OF BUG AS SOME NAMES IN dot.categ ARGUMENT ARE RESERVED WORD USED BY THE ", function.name, " FUNCTION")
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+}
+}
+# BEWARE: names of dot.categ argument potentially replaced
+}
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") REGARDING COLUMN NAMES REPLACEMENT, THE NAMES\n", paste(tempo.output$ini, collapse = " "), "\nHAVE BEEN REPLACED BY\n", paste(tempo.output$post, collapse = " "))
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+if( ! (is.null(add) | is.null(tempo.output$ini))){
+if(grepl(x = add, pattern = paste(tempo.output$ini, collapse = "|"))){
+tempo.cat <- paste0("ERROR IN ", function.name, "\nDETECTION OF COLUMN NAMES OF data1 IN THE add ARGUMENT STRING, THAT CORRESPOND TO RESERVED STRINGS FOR ", function.name, "\nCOLUMN NAMES HAVE TO BE CHANGED\nTHE PROBLEMATIC COLUMN NAMES ARE SOME OF THESE NAMES:\n", paste(tempo.output$ini, collapse = " "), "\nIN THE DATA FRAME OF data1 AND IN THE STRING OF add ARGUMENT, TRY TO REPLACE NAMES BY:\n", paste(tempo.output$post, collapse = " "), "\n\nFOR INFORMATION, THE RESERVED WORDS ARE:\n", paste(reserved.words, collapse = "\n"))
+stop(paste0("\n\n================\n\n", tempo.cat, "\n\n================\n\n"), call. = FALSE)
+}
+}
+}
+# end reserved word checking
+# management of add containing facet
+facet.categ <- NULL
+if( ! is.null(add)){
+facet.check <- TRUE
+tempo <- unlist(strsplit(x = add, split = "\\s*\\+\\s*(ggplot2|lemon)\\s*::\\s*")) #
+tempo <- sub(x = tempo, pattern = "^facet_wrap", replacement = "ggplot2::facet_wrap")
+tempo <- sub(x = tempo, pattern = "^facet_grid", replacement = "ggplot2::facet_grid")
+tempo <- sub(x = tempo, pattern = "^facet_rep", replacement = "lemon::facet_rep")
+if(any(grepl(x = tempo, pattern = "ggplot2::facet_wrap|lemon::facet_rep_wrap"))){
+tempo1 <- suppressWarnings(eval(parse(text = tempo[grepl(x = tempo, pattern = "ggplot2::facet_wrap|lemon::facet_rep_wrap")])))
+facet.categ <- names(tempo1$params$facets)
+tempo.text <- "facet_wrap OR facet_rep_wrap"
+facet.check <- FALSE
+}else if(grepl(x = add, pattern = "ggplot2::facet_grid|lemon::facet_rep_grid")){
+tempo1 <- suppressWarnings(eval(parse(text = tempo[grepl(x = tempo, pattern = "ggplot2::facet_grid|lemon::facet_rep_grid")])))
+facet.categ <- c(names(tempo1$params$rows), names(tempo1$params$cols))
+tempo.text <- "facet_grid OR facet_rep_grid"
+facet.check <- FALSE
+}
+if(facet.check == FALSE & ! all(facet.categ %in% names(data1))){ # BEWARE: all(facet.categ %in% names(data1)) is TRUE when facet.categ is NULL
+tempo.cat <- paste0("ERROR IN ", function.name, "\nDETECTION OF \"", tempo.text, "\" STRING IN THE add ARGUMENT BUT PROBLEM OF VARIABLE DETECTION (COLUMN NAMES OF data1)\nTHE DETECTED VARIABLES ARE:\n", paste(facet.categ, collapse = " "), "\nTHE data1 COLUMN NAMES ARE:\n", paste(names(data1), collapse = " "), "\nPLEASE REWRITE THE add STRING AND RERUN")
+stop(paste0("\n\n================\n\n", tempo.cat, "\n\n================\n\n"), call. = FALSE)
+}
+}
+# end management of add containing facet
+# conversion of categ columns in data1 into factors
+for(i1 in 1:length(categ)){
+tempo1 <- fun_check(data = data1[, categ[i1]], data.name = paste0("categ NUMBER ", i1, " OF data1"), class = "vector", mode = "character", na.contain = TRUE, fun.name = function.name, print = FALSE)
+tempo2 <- fun_check(data = data1[, categ[i1]], data.name = paste0("categ NUMBER ", i1, " OF data1"), class = "factor", na.contain = TRUE, fun.name = function.name, print = FALSE)
+if(tempo1$problem == TRUE & tempo2$problem == TRUE){
+tempo.cat <- paste0("ERROR IN ", function.name, "\n", paste0("categ NUMBER ", i1, " OF data1"), " MUST BE A FACTOR OR CHARACTER VECTOR")
+stop(paste0("\n\n================\n\n", tempo.cat, "\n\n================\n\n"), call. = FALSE)
+}else if(tempo1$problem == FALSE){ # character vector
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") IN categ NUMBER ", i1, " IN data1, THE CHARACTER COLUMN HAS BEEN CONVERTED TO FACTOR, WITH LEVELS ACCORDING TO THE ALPHABETICAL ORDER")
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+}
+data1[, categ[i1]] <- factor(data1[, categ[i1]]) # if already a factor, change nothing, if characters, levels according to alphabetical order
+}
+# OK: all the categ columns of data1 are factors from here
+# end conversion of categ columns in data1 into factors
+if( ! is.null(categ.class.order)){
+if(length(categ.class.order) != length(categ)){
+tempo.cat <- paste0("ERROR IN ", function.name, "\ncateg.class.order ARGUMENT MUST BE A LIST OF LENGTH EQUAL TO LENGTH OF categ\nHERE IT IS LENGTH: ", length(categ.class.order), " VERSUS ", length(categ))
+stop(paste0("\n\n================\n\n", tempo.cat, "\n\n================\n\n"), call. = FALSE)
+}else{
+for(i3 in 1:length(categ.class.order)){
+if(is.null(categ.class.order[[i3]])){
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") THE categ.class.order COMPARTMENT ", i3, " IS NULL. ALPHABETICAL ORDER WILL BE APPLIED")
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+data1[, categ[i3]] <- factor(as.character(data1[, categ[i3]])) # if already a factor, change nothing, if characters, levels according to alphabetical order
+categ.class.order[[i3]] <- levels(data1[, categ[i3]]) # character vector that will be used later
+}else{
+tempo <- fun_check(data = categ.class.order[[i3]], data.name = paste0("COMPARTMENT ", i3 , " OF categ.class.order ARGUMENT"), class = "vector", mode = "character", length = length(levels(data1[, categ[i3]])), fun.name = function.name) ; eval(ee) # length(data1[, categ[i1]) -> if data1[, categ[i1] was initially character vector, then conversion as factor after the NA removal, thus class number ok. If data1[, categ[i1] was initially factor, no modification after the NA removal, thus class number ok
+}
+if(any(duplicated(categ.class.order[[i3]]))){
+tempo.cat <- paste0("ERROR IN ", function.name, "\nCOMPARTMENT ", i3, " OF categ.class.order ARGUMENT CANNOT HAVE DUPLICATED CLASSES: ", paste(categ.class.order[[i3]], collapse = " "))
+stop(paste0("\n\n================\n\n", tempo.cat, "\n\n================\n\n"), call. = FALSE)
+}else if( ! (all(categ.class.order[[i3]] %in% unique(data1[, categ[i3]])) & all(unique(data1[, categ[i3]]) %in% categ.class.order[[i3]]))){
+tempo.cat <- paste0("ERROR IN ", function.name, "\nCOMPARTMENT ", i3, " OF categ.class.order ARGUMENT MUST BE CLASSES OF ELEMENT ", i3, " OF categ ARGUMENT\nHERE IT IS:\n", paste(categ.class.order[[i3]], collapse = " "), "\nFOR COMPARTMENT ", i3, " OF categ.class.order AND IT IS:\n", paste(unique(data1[, categ[i3]]), collapse = " "), "\nFOR COLUMN ", categ[i3], " OF data1")
+stop(paste0("\n\n================\n\n", tempo.cat, "\n\n================\n\n"), call. = FALSE)
+}else{
+data1[, categ[i3]] <- factor(data1[, categ[i3]], levels = categ.class.order[[i3]]) # reorder the factor
+
+}
+names(categ.class.order)[i3] <- categ[i3]
+}
+}
+}else{
+categ.class.order <- vector("list", length = length(categ))
+tempo.categ.class.order <- NULL
+for(i2 in 1:length(categ.class.order)){
+categ.class.order[[i2]] <- levels(data1[, categ[i2]])
+names(categ.class.order)[i2] <- categ[i2]
+tempo.categ.class.order <- c(tempo.categ.class.order, ifelse(i2 != 1, "\n", ""), categ.class.order[[i2]])
+}
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") THE categ.class.order SETTING IS NULL. ALPHABETICAL ORDER WILL BE APPLIED FOR BOX ORDERING:\n", paste(tempo.categ.class.order, collapse = " "))
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+}
+# categ.class.order not NULL anymore (list)
+if(is.null(categ.legend.name)){
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") THE categ.legend.name SETTING IS NULL. NAMES OF categ WILL BE USED: ", paste(categ, collapse = " "))
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+categ.legend.name <- categ[length(categ)] # if only categ1, then legend name of categ1, if length(categ) == 2, then legend name of categ2
+}
+# categ.legend.name not NULL anymore (character string)
+# management of categ.color
+if( ! is.null(categ.color)){
+# check the nature of color
+# integer colors into gg_palette
+tempo.check.color <- fun_check(data = categ.color, class = "integer", double.as.integer.allowed = TRUE, na.contain = TRUE, fun.name = function.name, print = FALSE)$problem
+if(tempo.check.color == FALSE){
+# convert integers into colors
+categ.color <- fun_gg_palette(max(categ.color, na.rm = TRUE))[categ.color]
+}
+# end integer colors into gg_palette
+if( ! (all(categ.color %in% colors() | grepl(pattern = "^#", categ.color)))){ # check that all strings of low.color start by #
+tempo.cat <- paste0("ERROR IN ", function.name, "\ncateg.color ARGUMENT MUST BE A HEXADECIMAL COLOR VECTOR STARTING BY # AND/OR COLOR NAMES GIVEN BY colors(): ", paste(unique(categ.color), collapse = " "))
+stop(paste0("\n\n================\n\n", tempo.cat, "\n\n================\n\n"), call. = FALSE)
+}
+if(any(is.na(categ.color))){
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") categ.color ARGUMENT CONTAINS NA")
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+}
+# end check the nature of color
+# check the length of color
+categ.len <- length(categ) # if only categ1, then colors for classes of categ1, if length(categ) == 2, then colors for classes of categ2
+if(length(categ.color) == length(levels(data1[, categ[categ.len]]))){ # here length(categ.color) is equal to the different number of categ
+# data1[, categ[categ.len]] <- factor(data1[, categ[categ.len]]) # not required because sure that is is a factor
+data1 <- data.frame(data1, categ.color = data1[, categ[categ.len]])
+data1$categ.color <- factor(data1$categ.color, labels = categ.color)
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") IN ", categ[categ.len], " OF categ ARGUMENT, THE FOLLOWING COLORS:\n", paste(categ.color, collapse = " "), "\nHAVE BEEN ATTRIBUTED TO THESE CLASSES:\n", paste(levels(factor(data1[, categ[categ.len]])), collapse = " "))
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+}else if(length(categ.color) == length(data1[, categ[categ.len]])){# here length(categ.color) is equal to nrow(data1) -> Modif to have length(categ.color) equal to the different number of categ (length(categ.color) == length(levels(data1[, categ[categ.len]])))
+data1 <- data.frame(data1, categ.color = categ.color)
+tempo.check <- unique(data1[ , c(categ[categ.len], "categ.color")])
+if( ! (nrow(tempo.check) == length(unique(categ.color)) & nrow(tempo.check) == length(unique(data1[ , categ[categ.len]])))){
+tempo.cat <- paste0("ERROR IN ", function.name, "\ncateg.color ARGUMENT HAS THE LENGTH OF data1 ROW NUMBER\nBUT IS INCORRECTLY ASSOCIATED TO EACH CLASS OF categ ", categ[categ.len], ":\n", paste(unique(mapply(FUN = "paste", data1[ ,categ[categ.len]], data1[ ,"categ.color"])), collapse = "\n"))
+stop(paste0("\n\n================\n\n", tempo.cat, "\n\n================\n\n"), call. = FALSE)
+}else{
+# data1[, categ[categ.len]] <- factor(data1[, categ[categ.len]]) # not required because sure that is is a factor
+categ.color <- unique(data1$categ.color[order(data1[, categ[categ.len]])]) # Modif to have length(categ.color) equal to the different number of categ (length(categ.color) == length(levels(data1[, categ[categ.len]])))
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") categ.color ARGUMENT HAS THE LENGTH OF data1 ROW NUMBER\nCOLORS HAVE BEEN RESPECTIVELY ASSOCIATED TO EACH CLASS OF categ ", categ[categ.len], " AS:\n", paste(levels(factor(data1[, categ[categ.len]])), collapse = " "), "\n", paste(categ.color, collapse = " "))
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+}
+}else if(length(categ.color) == 1){
+# data1[, categ[categ.len]] <- factor(data1[, categ[categ.len]]) # not required because sure that is is a factor
+data1 <- data.frame(data1, categ.color = categ.color)
+categ.color <- rep(categ.color, length(levels(data1[, categ[categ.len]])))
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") categ.color ARGUMENT HAS LENGTH 1, MEANING THAT ALL THE DIFFERENT CLASSES OF ", categ[categ.len], "\n", paste(levels(factor(data1[, categ[categ.len]])), collapse = " "), "\nWILL HAVE THE SAME COLOR\n", paste(categ.color, collapse = " "))
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+}else{
+tempo.cat <- paste0("ERROR IN ", function.name, "\ncateg.color ARGUMENT MUST BE (1) LENGTH 1, OR (2) THE LENGTH OF data1 NROWS, OR (3) THE LENGTH OF THE CLASSES IN THE categ ", categ[categ.len], " COLUMN. HERE IT IS COLOR LENGTH ", length(categ.color), " VERSUS CATEG LENGTH ", length(data1[, categ[categ.len]]), " AND CATEG CLASS LENGTH ", length(unique(data1[, categ[categ.len]])), "\nPRESENCE OF NA COULD BE THE PROBLEM")
+stop(paste0("\n\n================\n\n", tempo.cat, "\n\n================\n\n"), call. = FALSE)
+}
+}else{
+categ.len <- length(categ) # if only categ1, then colors for classes of categ1, if length(categ) == 2, then colors for classes of categ2
+# data1[, categ[categ.len]] <- factor(data1[, categ[categ.len]]) # not required because sure that is is a factor
+categ.color <- fun_gg_palette(length(levels(data1[, categ[categ.len]])))
+data1 <- data.frame(data1, categ.color = data1[, categ[categ.len]])
+data1$categ.color <- factor(data1$categ.color, labels = categ.color)
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") NULL categ.color ARGUMENT -> COLORS RESPECTIVELY ATTRIBUTED TO EACH CLASS OF ", categ[categ.len], " IN data1:\n", paste(categ.color, collapse = " "), "\n", paste(levels(data1[, categ[categ.len]]), collapse = " "))
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+}
+# categ.color not NULL anymore
+categ.color <- as.character(categ.color)
+# categ.color is a character string representing the diff classes
+data1$categ.color <- factor(data1$categ.color, levels = unique(categ.color)) # ok because if categ.color is a character string, the order make class 1, class 2, etc. unique() because no duplicates allowed
+# data1$categ.color is a factor with order of levels -> categ.color
+# end management of categ.color
+# management of dot.color
+if( ! is.null(dot.color)){
+# optional legend of dot colors
+if( ! is.null(dot.categ)){
+ini.dot.categ <- dot.categ
+if( ! dot.categ %in% names(data1)){ # no need to use all() because length(dot.categ) = 1
+tempo.cat <- paste0("ERROR IN ", function.name, "\ndot.categ ARGUMENT MUST BE A COLUMN NAME OF data1. HERE IT IS:\n", dot.categ)
+stop(paste0("\n\n================\n\n", tempo.cat, "\n\n================\n\n"), call. = FALSE)
+}else if(dot.categ %in% categ){ # no need to use all() because length(dot.categ) = 1. Do not use dot.categ %in% categ[length(categ)] -> error
+# management of dot legend if dot.categ %in% categ (because legends with the same name are joined in ggplot2) 
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") THE COLUMN NAME OF data1 INDICATED IN THE dot.categ ARGUMENT (", dot.categ, ") HAS BEEN REPLACED BY ", paste0(dot.categ, "_DOT"), " TO AVOID MERGED LEGEND BY GGPLOT2")
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+data1 <- data.frame(data1, dot.categ = data1[, dot.categ]) # dot.categ is not a column name of data1 (checked above with reserved words)
+dot.categ <- paste0(dot.categ, "_DOT")
+names(data1)[names(data1) == "dot.categ"] <- dot.categ # paste0(dot.categ, "_DOT") is not a column name of data1 (checked above with reserved words)
+# tempo.cat <- paste0("ERROR IN ", function.name, "\ndot.categ ARGUMENT CANNOT BE A COLUMN NAME OF data1 ALREADY SPECIFIED IN THE categ ARGUMENT:\n", dot.categ, "\nINDEED, dot.categ ARGUMENT IS MADE TO HAVE MULTIPLE DOT COLORS NOT RELATED TO THE BOXPLOT CATEGORIES")
+# stop(paste0("\n\n================\n\n", tempo.cat, "\n\n================\n\n"), call. = FALSE)
+}
+tempo1 <- fun_check(data = data1[, dot.categ], data.name = paste0(dot.categ, " COLUMN OF data1"), class = "vector", mode = "character", na.contain = TRUE, fun.name = function.name, print = FALSE)
+tempo2 <- fun_check(data =  data1[, dot.categ], data.name = paste0(dot.categ, " COLUMN OF data1"), class = "factor", na.contain = TRUE, fun.name = function.name, print = FALSE)
+if(tempo1$problem == TRUE & tempo2$problem == TRUE){
+tempo.cat <- paste0("ERROR IN ", function.name, "\ndot.categ COLUMN MUST BE A FACTOR OR CHARACTER VECTOR") #
+stop(paste0("\n\n================\n\n", tempo.cat, "\n\n================\n\n"), call. = FALSE)
+}
+data1[, dot.categ] <- factor(data1[, dot.categ]) # if already a factor, change nothing, if characters, levels according to alphabetical order
+# dot.categ column of data1 is factor from here
+if( ! is.null(dot.categ.class.order)){
+if(any(duplicated(dot.categ.class.order))){
+tempo.cat <- paste0("ERROR IN ", function.name, "\ndot.categ.class.order ARGUMENT CANNOT HAVE DUPLICATED CLASSES: ", paste(dot.categ.class.order, collapse = " "))
+stop(paste0("\n\n================\n\n", tempo.cat, "\n\n================\n\n"), call. = FALSE)
+}else if( ! (all(dot.categ.class.order %in% levels(data1[, dot.categ])) & all(levels(data1[, dot.categ]) %in% dot.categ.class.order))){
+tempo.cat <- paste0("ERROR IN ", function.name, "\ndot.categ.class.order ARGUMENT MUST BE CLASSES OF dot.categ ARGUMENT\nHERE IT IS:\n", paste(dot.categ.class.order, collapse = " "), "\nFOR dot.categ.class.order AND IT IS:\n", paste(levels(data1[, dot.categ]), collapse = " "), "\nFOR dot.categ COLUMN (", ini.dot.categ, ") OF data1")
+stop(paste0("\n\n================\n\n", tempo.cat, "\n\n================\n\n"), call. = FALSE)
+}else{
+data1[, dot.categ] <- factor(data1[, dot.categ], levels = dot.categ.class.order) # reorder the factor
+}
+}else{
+if(all(dot.color == "same") & length(dot.color) == 1){
+dot.categ.class.order <- unlist(categ.class.order[length(categ)])
+data1[, dot.categ] <- factor(data1[, dot.categ], levels = dot.categ.class.order) # reorder the factor
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") THE dot.categ.class.order SETTING IS NULL AND dot.color IS \"same\". ORDER OF categ.class.order WILL BE APPLIED FOR LEGEND DISPLAY: ", paste(dot.categ.class.order, collapse = " "))
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+}else{
+dot.categ.class.order <- sort(levels(data1[, dot.categ]))
+data1[, dot.categ] <- factor(data1[, dot.categ], levels = dot.categ.class.order) # reorder the factor
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") THE dot.categ.class.order SETTING IS NULL. ALPHABETICAL ORDER WILL BE APPLIED FOR LEGEND DISPLAY: ", paste(dot.categ.class.order, collapse = " "))
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+}
+}
+# dot.categ.class.order not NULL anymore (character string) if dot.categ is not NULL
+if(all(dot.color == "same") & length(dot.color) == 1){
+if( ! identical(ini.dot.categ, categ[length(categ)])){
+tempo.cat <- paste0("ERROR IN ", function.name, "\nWHEN dot.color ARGUMENT IS \"same\", THE COLUMN NAME IN dot.categ ARGUMENT MUST BE IDENTICAL TO THE LAST COLUMN NAME IN categ ARGUMENT. HERE IT IS:\ndot.categ: ", paste(ini.dot.categ, collapse = " "), "\ncateg: ", paste(categ, collapse = " "))
+stop(paste0("\n\n================\n\n", tempo.cat, "\n\n================\n\n"), call. = FALSE)
+}else if( ! fun_comp_1d(unlist(categ.class.order[length(categ)]), dot.categ.class.order)$identical.content){
+tempo.cat <- paste0("ERROR IN ", function.name, "\nWHEN dot.color ARGUMENT IS \"same\",\nLAST COMPARTMENT OF categ.class.order ARGUMENT AND dot.categ.class.order ARGUMENT CANNOT BE DIFFERENT:\nLAST COMPARTMENT OF categ.class.order: ", paste(unlist(categ.class.order[length(categ)]), collapse = " "), "\ndot.categ.class.order: ", paste(dot.categ.class.order, collapse = " "))
+stop(paste0("\n\n================\n\n", tempo.cat, "\n\n================\n\n"), call. = FALSE)
+}
+}
+for(i3 in 1:length(categ)){
+if(identical(categ[i3], ini.dot.categ) & ! identical(unlist(categ.class.order[i3]), dot.categ.class.order) & identical(sort(unlist(categ.class.order[i3])), sort(dot.categ.class.order))){
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") THE dot.categ ARGUMENT SETTING IS PRESENT IN THE categ ARGUMENT SETTING, BUT ORDER OF THE CLASSES IS NOT THE SAME:\ncateg.class.order: ", paste(unlist(categ.class.order[i3]), collapse = " "), "\ndot.categ.class.order: ", paste(dot.categ.class.order, collapse = " "), "\nNOTE THAT ORDER OF categ.class.order IS THE ONE USED FOR THE AXIS REPRESENTATION")
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+}
+}
+if(is.null(dot.categ.legend.name)){
+dot.categ.legend.name <- if(ini.dot.categ %in% categ[length(categ)]){dot.categ}else{ini.dot.categ} #
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") THE dot.categ.legend.name SETTING IS NULL -> ", dot.categ.legend.name, " WILL BE USED AS LEGEND TITLE OF DOTS")
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+}
+# dot.categ.legend.name not NULL anymore (character string)
+}else{
+if( ! is.null(dot.categ.class.order)){
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") THE dot.categ.class.order ARGUMENT IS NOT NULL, BUT IS THE dot.categ ARGUMENT\n-> dot.categ.class.order NOT CONSIDERED AS NO LEGEND WILL BE DRAWN")
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+}
+# But dot.categ.class.order will be converted to NULL below (not now)
+}
+# end optional legend of dot colors
+# check the nature of color
+# integer colors into gg_palette
+tempo.check.color <- fun_check(data = dot.color, class = "integer", double.as.integer.allowed = TRUE, na.contain = TRUE, fun.name = function.name, print = FALSE)$problem
+if(tempo.check.color == FALSE){
+# convert integers into colors
+dot.color <- fun_gg_palette(max(dot.color, na.rm = TRUE))[dot.color]
+}
+# end integer colors into gg_palette
+if(all(dot.color == "same") & length(dot.color) == 1){
+dot.color <- categ.color # same color of the dots as the corresponding box color
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") dot.color ARGUMENT HAS BEEN SET TO \"same\"\nTHUS, DOTS WILL HAVE THE SAME COLORS AS THE CORRESPONDING BOXPLOT")
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+}else if( ! (all(dot.color %in% colors() | grepl(pattern = "^#", dot.color)))){ # check that all strings of low.color start by #
+tempo.cat <- paste0("ERROR IN ", function.name, "\ndot.color ARGUMENT MUST BE (1) A HEXADECIMAL COLOR VECTOR STARTING BY #, OR (2) COLOR NAMES GIVEN BY colors(), OR (3) INTEGERS, OR THE STRING\"same\"\nHERE IT IS: ", paste(unique(dot.color), collapse = " "))
+stop(paste0("\n\n================\n\n", tempo.cat, "\n\n================\n\n"), call. = FALSE)
+}
+if(any(is.na(dot.color))){
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") dot.color ARGUMENT CONTAINS NA")
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+}
+# end check the nature of color
+# check the length of color
+if( ! is.null(dot.categ)){
+# optional legend of dot colors
+if(length(dot.color) > 1 & length(unique(data1[, dot.categ])) != length(dot.color)){
+tempo.cat <- paste0("ERROR IN ", function.name, "\ndot.color ARGUMENT IS NOT THE SAME LENGTH AS LEVELS OF dot.categ COLUMN (", dot.categ, "):\ndot.color: ", paste(dot.color, collapse = " "), "\ndot.categ LEVELS: ", paste(levels(data1[, dot.categ]), collapse = " "))
+stop(paste0("\n\n================\n\n", tempo.cat, "\n\n================\n\n"), call. = FALSE)
+}else if(length(dot.color) == 1 & length(dot.categ.class.order) > 1){ # to deal with single color
+dot.color <- rep(dot.color, length(dot.categ.class.order))
+}
+data1 <- data.frame(data1, dot.color = data1[, dot.categ])
+data1$dot.color <- factor(data1$dot.color, labels = dot.color) # do not use labels = unique(dot.color). Otherwise, we can have green1 green2 when dot.color is c("green", "green")
+dot.color <- as.character(unique(data1$dot.color[order(data1[, dot.categ])])) # reorder the dot.color character vector
+if(length(dot.color) == 1 & length(dot.categ.class.order) > 1){ # to deal with single color
+dot.color <- rep(dot.color, length(dot.categ.class.order))
+}
+tempo.check <- unique(data1[ , c(dot.categ, "dot.color")])
+if(length(unique(data1[ , "dot.color"])) > 1 & ( ! (nrow(tempo.check) == length(unique(data1[ , "dot.color"])) & nrow(tempo.check) == length(unique(data1[ , dot.categ]))))){ # length(unique(data1[ , "dot.color"])) > 1 because if only one color, can be attributed to each class of dot.categ
+tempo.cat <- paste0("ERROR IN ", function.name, "\ndot.color ARGUMENT IS INCORRECTLY ASSOCIATED TO EACH CLASS OF dot.categ (", dot.categ, ") COLUMN:\n", paste(unique(mapply(FUN = "paste", data1[ , dot.categ], data1[ ,"dot.color"])), collapse = "\n"))
+stop(paste0("\n\n================\n\n", tempo.cat, "\n\n================\n\n"), call. = FALSE)
+}else{
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") IN dot.categ ARGUMENT (", ini.dot.categ, "), THE FOLLOWING COLORS OF DOTS:\n", paste(dot.color, collapse = " "), "\nHAVE BEEN ATTRIBUTED TO THESE CLASSES:\n", paste(levels(data1[, dot.categ]), collapse = " "))
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+}
+# dot.color is a character string representing the diff classes of dot.categ
+# data1$dot.color is a factor with order of levels -> dot.categ
+# end optional legend of dot colors
+}else{
+categ.len <- length(categ) # if only categ1, then colors for classes of categ1, if length(categ) == 2, then colors for classes of categ2
+if(length(dot.color) == length(levels(data1[, categ[categ.len]]))){ # here length(dot.color) is equal to the different number of categ
+# data1[, categ[categ.len]] <- factor(data1[, categ[categ.len]]) # not required because sure that is is a factor
+data1 <- data.frame(data1, dot.color = data1[, categ[categ.len]])
+data1$dot.color <- factor(data1$dot.color, labels = dot.color)
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") IN ", categ[categ.len], " OF categ ARGUMENT, THE FOLLOWING COLORS:\n", paste(dot.color, collapse = " "), "\nHAVE BEEN ATTRIBUTED TO THESE CLASSES:\n", paste(levels(factor(data1[, categ[categ.len]])), collapse = " "))
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+}else if(length(dot.color) == length(data1[, categ[categ.len]])){# here length(dot.color) is equal to nrow(data1) -> Modif to have length(dot.color) equal to the different number of categ (length(dot.color) == length(levels(data1[, categ[categ.len]])))
+data1 <- data.frame(data1, dot.color = dot.color)
+}else if(length(dot.color) == 1 & ! all(dot.color == "same")){
+# data1[, categ[categ.len]] <- factor(data1[, categ[categ.len]]) # not required because sure that is is a factor
+data1 <- data.frame(data1, dot.color = dot.color)
+dot.color <- rep(dot.color, length(levels(data1[, categ[categ.len]])))
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") dot.color ARGUMENT HAS LENGTH 1, MEANING THAT ALL THE DIFFERENT CLASSES OF ", categ[categ.len], "\n", paste(levels(factor(data1[, categ[categ.len]])), collapse = " "), "\nWILL HAVE THE SAME COLOR\n", paste(dot.color, collapse = " "))
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+}else{
+tempo.cat <- paste0("ERROR IN ", function.name, "\ndot.color ARGUMENT MUST BE (1) LENGTH 1, OR (2) THE LENGTH OF data1 NROWS, OR (3) THE LENGTH OF THE CLASSES IN THE categ ", categ[categ.len], " COLUMN. HERE IT IS COLOR LENGTH ", length(dot.color), " VERSUS CATEG LENGTH ", length(data1[, categ[categ.len]]), " AND CATEG CLASS LENGTH ", length(unique(data1[, categ[categ.len]])), "\nPRESENCE OF NA COULD BE THE PROBLEM")
+stop(paste0("\n\n================\n\n", tempo.cat, "\n\n================\n\n"), call. = FALSE)
+}
+# end check the length of color
+dot.color <- as.character(dot.color)
+# dot.color is a character string representing the diff classes
+data1$dot.color <- factor(data1$dot.color, levels = unique(dot.color)) # ok because if dot.color is a character string, the order make class 1, class 2, etc. If dot.color is a column of data1, then levels will be created, without incidence, except if dot.categ specified (see below). unique() because no duplicates allowed
+# data1$dot.color is a factor with order of levels -> dot.color
+}
+# end optional legend of dot colors
+}else if(is.null(dot.color) & ! (is.null(dot.categ) & is.null(dot.categ.class.order) & is.null(dot.categ.legend.name))){
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") dot.categ OR dot.categ.class.order OR dot.categ.legend.name ARGUMENT HAS BEEN SPECIFIED BUT dot.color ARGUMENT IS NULL (NO DOT PLOTTED)")
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+}
+# dot.color either NULL (no dot plotted) or character string (potentially representing the diff classes of dot.categ)
+# data1$dot.color is either NA or a factor (with order of levels -> depending on dot.categ or categ[length(categ)], or other
+if(is.null(dot.categ)){
+dot.categ.class.order <- NULL # because not used anyway
+}
+# dot.categ.class.order either NULL if dot.categ is NULL (no legend displayed) or character string (potentially representing the diff classes of dot.categ)
+# end management of dot.color
+if(is.null(dot.color) & box.fill == FALSE & dot.alpha <= 0.025){
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") THE FOLLOWING ARGUMENTS WERE SET AS:\ndot.color = NULL (NOT ALL DOTS BUT ONLY POTENTIAL OUTLIER DOTS DISPLAYED)\nbox.fill = FALSE (NO FILLING COLOR FOR BOTH BOXES AND POTENTIAL OUTLIER DOTS)\ndot.alpha = ", fun_round(dot.alpha, 4), "\n-> POTENTIAL OUTLIER DOTS MIGHT NOT BE VISIBLE BECAUSE ALMOST TRANSPARENT")
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+}
+if(is.null(dot.color) & box.fill == FALSE & dot.border.size == 0){
+tempo.cat <- paste0("ERROR IN ", function.name, "\nTHE FOLLOWING ARGUMENTS WERE SET AS:\ndot.color = NULL (NOT ALL DOTS BUT ONLY POTENTIAL OUTLIER DOTS DISPLAYED)\nbox.fill = FALSE (NO FILLING COLOR FOR BOTH BOXES AND POTENTIAL OUTLIER DOTS)\ndot.border.size = 0 (NO BORDER FOR POTENTIAL OUTLIER DOTS)\n-> THESE SETTINGS ARE NOT ALLOWED BECAUSE THE POTENTIAL OUTLIER DOTS WILL NOT BE VISIBLE")
+stop(paste0("\n\n================\n\n", tempo.cat, "\n\n================\n\n"), call. = FALSE)
+}
+if( ! is.null(dot.border.color)){
+tempo1 <- fun_check(data = dot.border.color, class = "vector", mode = "character", length = 1, fun.name = function.name, print = FALSE)
+tempo2 <- fun_check(data = dot.border.color, class = "vector", typeof = "integer", double.as.integer.allowed = TRUE, length = 1, fun.name = function.name, print = FALSE)
+if(tempo1$problem == FALSE & tempo2$problem == TRUE & ! (all(dot.border.color %in% colors() | grepl(pattern = "^#", dot.border.color)))){ # check that all strings of low.color start by #
+tempo.cat <- paste0("ERROR IN ", function.name, "\ndot.border.color ARGUMENT MUST BE (1) A HEXADECIMAL COLOR STRING STARTING BY #, OR (2) A COLOR NAME GIVEN BY colors(), OR (3) AN INTEGER VALUE\nHERE IT IS: ", paste(unique(dot.border.color), collapse = " "))
+stop(paste0("\n\n================\n\n", tempo.cat, "\n\n================\n\n"), call. = FALSE)
+}else if(tempo1$problem == TRUE & tempo2$problem == FALSE){ # convert integers into colors
+dot.border.color <- fun_gg_palette(max(dot.border.color, na.rm = TRUE))[dot.border.color]
+}
+# end integer colors into gg_palette
+}
+if(y.log != "no"){
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") y.log ARGUMENT SET TO ", y.log, ".\nVALUES FROM THE y ARGUMENT COLUMN OF THE data1 DATA FRAME MUST BE ALREADY ", toupper(y.log), " TRANSFORMED, AS THE y.log ARGUMENT JUST MODIFIES THE AXIS SCALE")
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+if( ! is.null(y.lim)){
+if(any(y.lim <= 0)){
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") y.lim ARGUMENT CAN SPAN ZERO OR NEGATIVE VALUES IF y.log ARGUMENT IS SET TO ", y.log, " BECAUSE y.log DOES NOT TRANSFORM DATA, JUST MODIFIES THE AXIS SCALE")
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+}else if(any( ! is.finite(if(y.log == "log10"){10^y.lim}else{2^y.lim}))){
+tempo.cat <- paste0("ERROR IN ", function.name, "\ny.lim ARGUMENT RETURNS INF WITH THE y.log ARGUMENT SET TO ", y.log, "\nAS SCALE COMPUTATION IS ", ifelse(y.log == "log10", 10, 2), "^y.lim:\n", paste(ifelse(y.log == "log10", 10, 2)^y.lim, collapse = " "), "\nARE YOU SURE THAT y.lim ARGUMENT HAS BEEN SPECIFIED WITH VALUES ALREADY IN LOG SCALE?\n", paste(y.lim, collapse = " "))
+stop(paste0("\n\n================\n\n", tempo.cat, "\n\n================\n\n"), call. = FALSE)
+}
+}
+}
+# inactivated because y must already be log transformed data
+# if(y.log != "no" & y.include.zero == TRUE){
+# warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") y.log ARGUMENT SET TO ", y.log, " AND y.include.zero ARGUMENT SET TO TRUE -> y.include.zero ARGUMENT RESET TO FALSE BECAUSE NO 0 ALLOWED IN LOG SCALE")
+# warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+# }
+if(y.log != "no" & vertical == FALSE){
+vertical <- TRUE
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") BECAUSE OF A BUG IN ggplot2, CANNOT FLIP BOXS HORIZONTALLY WITH A Y.LOG SCALE -> vertical ARGUMENT RESET TO TRUE")
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+}
+# end second round of checking and data preparation
+
+
+# package checking
+fun_pack(req.package = c("ggplot2"), lib.path = lib.path)
+fun_pack(req.package = c("scales"), lib.path = lib.path)
+# end package checking
+
+
+
+# main code
+# na detection and removal (done now to be sure of the correct length of categ)
+column.check <- c(y, categ, "categ.color", if( ! is.null(dot.color)){"dot.color"}, if( ! is.null(dot.color) & ! is.null(dot.categ)){if(dot.categ != ini.dot.categ){dot.categ}}, if( ! is.null(facet.categ)){facet.categ}) # dot.categ because can be a 3rd column of data1
+if(any(is.na(data1[, column.check]))){
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") NA DETECTED IN COLUMNS ", paste(column.check, collapse = " "), " OF data1 AND CORRESPONDING ROWS REMOVED (SEE $removed.row.nb AND $removed.rows)")
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+for(i2 in 1:length(column.check)){
+if(any(is.na(data1[, column.check[i2]]))){
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") NA REMOVAL DUE TO COLUMN ", column.check[i2], " OF data1")
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+}
+}
+removed.row.nb <- unlist(lapply(lapply(c(data1[column.check]), FUN = is.na), FUN = which))
+removed.rows <- data1[removed.row.nb, ]
+column.check <- column.check[ ! column.check == y] # remove y to keep quali columns
+if(length(removed.row.nb) != 0){
+data1 <- data1[-removed.row.nb, ]
+for(i3 in 1:length(column.check)){
+if(any( ! unique(removed.rows[, column.check[i3]]) %in% unique(data1[, column.check[i3]]))){
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") IN COLUMN ", column.check[i3], " OF data1, THE FOLLOWING CLASSES HAVE DISAPPEARED AFTER NA REMOVAL (IF COLUMN USED IN THE PLOT, THIS CLASS WILL NOT BE DISPLAYED):\n", paste(unique(removed.rows[, column.check[i3]])[ ! unique(removed.rows[, column.check[i3]]) %in% unique(data1[, column.check[i3]])], collapse = " "))
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+}
+}
+}
+count.categ <- 0
+for(i2 in 1:length(column.check)){
+if(column.check[i2] %in% categ){
+count.categ <- count.categ + 1
+}
+if(column.check[i2] == categ[count.categ]){
+categ.class.order[count.categ] <- list(levels(data1[, column.check[i2]])[levels(data1[, column.check[i2]]) %in% unique(data1[, column.check[i2]])]) # remove the absent color in the character vector
+data1[, column.check[i2]] <- factor(as.character(data1[, column.check[i2]]), levels = unique(categ.class.order[[count.categ]]))
+}
+if( ! is.null(dot.color) & ! is.null(dot.categ)){ # reminder : dot.categ cannot be a column name of categ anymore (because in that case dot.categ name is changed into "..._DOT"
+if(column.check[i2] == ini.dot.categ){
+dot.categ.class.order <- levels(data1[, column.check[i2]])[levels(data1[,  column.check[i2]]) %in% unique(data1[, column.check[i2]])] # remove the absent color in the character vector
+data1[, column.check[i2]] <- factor(as.character(data1[, column.check[i2]]), levels = unique(dot.categ.class.order))
+}
+}
+if(column.check[i2] == "categ.color"){
+categ.color <- levels(data1[, column.check[i2]])[levels(data1[, column.check[i2]]) %in% unique(data1[, column.check[i2]])] # remove the absent color in the character vector
+if(length(categ.color) == 1 & length(unlist(categ.class.order[length(categ)])) > 1){ # to deal with single color
+categ.color <- rep(categ.color, length(unlist(categ.class.order[length(categ)])))
+}
+data1[, column.check[i2]] <- factor(as.character(data1[, column.check[i2]]), levels = unique(categ.color))
+}
+if(column.check[i2] == "dot.color"){
+dot.color <- levels(data1[, column.check[i2]])[levels(data1[, column.check[i2]]) %in% unique(data1[, column.check[i2]])] # remove the absent color in the character vector
+if(length(dot.color) == 1 & length(dot.categ.class.order) > 1){ # to deal with single color. If dot.categ.class.order == NULL (which is systematically the case if dot.categ == NULL), no rep(dot.color, length(dot.categ.class.order)
+dot.color <- rep(dot.color, length(dot.categ.class.order))
+}
+data1[, column.check[i2]] <- factor(as.character(data1[, column.check[i2]]), levels = unique(dot.color))
+}
+if(column.check[i2] %in% facet.categ){ # works if facet.categ == NULL this method should keep the order of levels when removing some levels
+tempo.levels <- levels(data1[, column.check[i2]])[levels(data1[, column.check[i2]]) %in% unique(as.character(data1[, column.check[i2]]))]
+data1[, column.check[i2]] <- factor(as.character(data1[, column.check[i2]]), levels = tempo.levels)
+}
+}
+}else{
+removed.row.nb <- NULL
+removed.rows <- NULL
+}
+# end na detection and removal (done now to be sure of the correct length of categ)
+
+
+# y coordinates recovery (create ini.box.coord, dot.coord and modify data1)
+if(length(categ) == 1){
+# width commputations
+box.width2 <- box.width
+box.space <- 0 # to inactivate the shrink that add space between grouped boxes, because  no grouped boxes here
+# end width commputations
+# data1 check categ order for dots coordinates recovery
+data1 <- data.frame(data1, categ.check = data1[, categ[1]])
+data1$categ.check <- as.integer(data1$categ.check) # to check that data1[, categ[1]] and dot.coord$group are similar, during merging
+# end data1 check categ order for dots coordinates recovery
+# per box dots coordinates recovery
+tempo.gg.name <- "gg.indiv.plot."
+tempo.gg.count <- 0
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), eval(parse(text = paste0("ggplot2::ggplot()", if(is.null(add)){""}else{add})))) # add added here to have the facets
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::geom_point(data = data1, mapping = ggplot2::aes_string(x = categ[1], y = y, color = categ[1]), stroke = dot.border.size, size = dot.size, alpha = dot.alpha, shape = 21))
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::scale_discrete_manual(aesthetics = "color", name = categ.legend.name, values = if(is.null(dot.color)){rep(NA, length(unique(data1[, categ[1]])))}else if(length(dot.color) == 1){rep(dot.color, length(unique(data1[, categ[1]])))}else{dot.color}))
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::geom_boxplot(data = data1, mapping = ggplot2::aes_string(x = categ[1], y = y, fill = categ[1]), coef = if(box.whisker.kind == "no"){0}else if(box.whisker.kind == "std"){1.5}else if(box.whisker.kind == "max"){Inf})) # fill because this is what is used with geom_box # to easily have the equivalent of the grouped boxs
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::scale_discrete_manual(aesthetics = "fill", name = categ.legend.name, values = if(length(categ.color) == 1){rep(categ.color, length(unique(data1[, categ[1]])))}else{categ.color}))
+# end per box dots coordinates recovery
+}else if(length(categ) == 2){
+# width commputations
+box.width2 <- box.width / length(unique(data1[, categ[length(categ)]])) # real width of each box in x-axis unit, among the set of grouped box. Not relevant if no grouped boxs length(categ) == 1
+# end width commputations
+# data1 check categ order for dots coordinates recovery
+tempo.factor <- paste0(data1[order(data1[, categ[2]], data1[, categ[1]]), categ[2]], "_", data1[order(data1[, categ[2]], data1[, categ[1]]), categ[1]])
+data1 <- data.frame(data1[order(data1[, categ[2]], data1[, categ[1]]), ], categ.check = factor(tempo.factor, levels = unique(tempo.factor)))
+data1$categ.check <- as.integer(data1$categ.check)
+# end data1 check categ order for dots coordinates recovery
+# per box dots coordinates recovery
+tempo.gg.name <- "gg.indiv.plot."
+tempo.gg.count <- 0
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), eval(parse(text = paste0("ggplot2::ggplot()", if(is.null(add)){""}else{add})))) # add added here to have the facets
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::geom_point(data = data1, mapping = ggplot2::aes_string(x = categ[1], y = y, color = categ[2]), stroke = dot.border.size, size = dot.size, alpha = dot.alpha, shape = 21))
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::scale_discrete_manual(aesthetics = "color", name = categ.legend.name, values = if(is.null(dot.color)){rep(NA, length(unique(data1[, categ[2]])))}else if(length(dot.color) == 1){rep(dot.color, length(unique(data1[, categ[2]])))}else{dot.color}))
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::geom_boxplot(data = data1, mapping = ggplot2::aes_string(x = categ[1], y = y, fill = categ[2]), coef = if(box.whisker.kind == "no"){0}else if(box.whisker.kind == "std"){1.5}else if(box.whisker.kind == "max"){Inf})) # fill because this is what is used with geom_box # to easily have the equivalent of the grouped boxs
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::scale_discrete_manual(aesthetics = "fill", name = categ.legend.name, values = if(length(categ.color) == 1){rep(categ.color, length(unique(data1[, categ[2]])))}else{categ.color}))
+# end per box dots coordinates recovery
+}else{
+tempo.cat <- paste0("\n\n============\n\nINTERNAL CODE ERROR IN ", function.name, "\nCODE INCONSISTENCY 2\n\n============\n\n")
+stop(tempo.cat)
+}
+tempo.graph.info.ini <- ggplot2::ggplot_build(eval(parse(text = paste(paste0(tempo.gg.name, 1:tempo.gg.count), collapse = " + "))))
+dot.coord <- tempo.graph.info.ini$data[[1]]
+ini.box.coord <- tempo.graph.info.ini$data[[2]]
+tempo.mean <- aggregate(x = dot.coord$y, by = list(dot.coord$group, dot.coord$PANEL), FUN = mean, na.rm = TRUE)
+names(tempo.mean)[names(tempo.mean) == "x"] <- "MEAN"
+names(tempo.mean)[names(tempo.mean) == "Group.1"] <- "BOX"
+names(tempo.mean)[names(tempo.mean) == "Group.2"] <- "PANEL"
+dot.coord <- data.frame(
+dot.coord[order(dot.coord$group, dot.coord$y), ], 
+y.check = as.double(data1[order(data1$categ.check, data1[, y]), y]), 
+categ.check = data1[order(data1$categ.check, data1[, y]), "categ.check"], 
+dot.color = if(is.null(dot.color)){NA}else{data1[order(data1$categ.check, data1[, y]), "dot.color"]}, 
+data1[order(data1$categ.check, data1[, y]), ][categ] # avoid the renaming below
+) # y.check to be sure that the order is the same between the y of data1 and the y of dot.coord
+# names(dot.coord)[names(dot.coord) == "tempo.categ1"] <- categ[1]
+if( ! is.null(dot.categ)){
+dot.coord <- data.frame(dot.coord, data1[order(data1$categ.check, data1[, y]), ][dot.categ]) # avoid the renaming
+}
+if( ! is.null(facet.categ)){
+dot.coord <- data.frame(dot.coord, data1[order(data1$categ.check, data1[, y]), ][facet.categ]) # for facet panels
+tempo.test <- NULL
+for(i2 in 1:length(facet.categ)){
+tempo.test <- paste0(tempo.test, ".", formatC(as.numeric(dot.coord[, facet.categ[i2]]), width = nchar(max(as.numeric(dot.coord[, facet.categ[i2]]), na.rm = TRUE)), flag = "0")) # convert factor into numeric with leading zero for proper ranking # merge the formatC() to create a new factor. The convertion to integer should recreate the correct group number. Here as.numeric is used and not as.integer in case of numeric in facet.categ (because comes from add and not checked by fun_check, contrary to categ)
+}
+tempo.test <- as.integer(factor(tempo.test))
+if( ! identical(as.integer(dot.coord$PANEL), tempo.test)){
+tempo.cat <- paste0("\n\n================\n\nINTERNAL CODE ERROR IN ", function.name, "\nas.integer(dot.coord$PANEL) AND tempo.test MUST BE IDENTICAL. CODE HAS TO BE MODIFIED\n\n================\n\n")
+stop(tempo.cat)
+}
+}
+if(dot.tidy == TRUE){
+if( ! is.null(dot.categ)){
+dot.coord <- data.frame(dot.coord, tidy_group = data1[order(data1$categ.check, data1[, y]), ][, dot.categ]) # avoid the renaming
+# tidy_group_coord is to be able to fuse table when creating the table for dot coordinates
+if(dot.categ %in% categ){
+dot.coord <- data.frame(dot.coord, tidy_group_coord = dot.coord$group)
+}else{
+dot.coord <- data.frame(dot.coord, tidy_group_coord = as.integer(factor(paste0(
+formatC(as.integer(dot.coord[, categ[1]]), width = nchar(max(as.integer(dot.coord[, categ[1]]), na.rm = TRUE)), flag = "0"), # convert factor into numeric with leading zero for proper ranking
+".", 
+if(length(categ) == 2){formatC(as.integer(dot.coord[, categ[2]]), width = nchar(max(as.integer(dot.coord[, categ[2]]), na.rm = TRUE)), flag = "0")}, # convert factor into numeric with leading zero for proper ranking
+if(length(categ) == 2){"."}, 
+formatC(as.integer(dot.coord[, dot.categ]), width = nchar(max(as.integer(dot.coord[, dot.categ]), na.rm = TRUE)), flag = "0") # convert factor into numeric with leading zero for proper ranking
+))) # merge the 2 or 3 formatC() to create a new factor. The convertion to integer should recreate the correct group number
+) # for tidy dot plots
+}
+}else{
+dot.coord <- data.frame(dot.coord, tidy_group = if(length(categ) == 1){
+dot.coord[, categ]}else{as.integer(factor(paste0(
+formatC(as.integer(dot.coord[, categ[1]]), width = nchar(max(as.integer(dot.coord[, categ[1]]), na.rm = TRUE)), flag = "0"), # convert factor into numeric with leading zero for proper ranking
+".", 
+formatC(as.integer(dot.coord[, categ[2]]), width = nchar(max(as.integer(dot.coord[, categ[2]]), na.rm = TRUE)), flag = "0")# convert factor into numeric with leading zero for proper ranking
+))) # merge the 2 formatC() to create a new factor. The convertion to integer should recreate the correct group number
+}) # for tidy dot plots
+# tidy_group_coord is to be able to fuse table when creating the table for dot coordinates
+dot.coord <- data.frame(dot.coord, tidy_group_coord = dot.coord$group)
+}
+}
+if( ! (identical(dot.coord$y, dot.coord$y.check) & identical(dot.coord$group, dot.coord$categ.check))){
+tempo.cat <- paste0("\n\n================\n\nINTERNAL CODE ERROR IN ", function.name, "\n(dot.coord$y AND dot.coord$y.check) AS WELL AS (dot.coord$group AND dot.coord$categ.check) MUST BE IDENTICAL. CODE HAS TO BE MODIFIED\n\n================\n\n")
+stop(tempo.cat)
+}else{
+if( ! identical(tempo.mean[order(tempo.mean$BOX, tempo.mean$PANEL), ]$BOX, unique(dot.coord[order(dot.coord$group, dot.coord$PANEL), c("group", "PANEL")])$group)){
+tempo.cat <- paste0("\n\n================\n\nINTERNAL CODE ERROR IN ", function.name, "\n(tempo.mean$BOX, tempo.mean$PANEL) AND (dot.coord$group, dot.coord$PANEL) MUST BE IDENTICAL. CODE HAS TO BE MODIFIED\n\n================\n\n")
+stop(tempo.cat)
+}else{
+tempo <- unique(dot.coord[order(dot.coord$group, dot.coord$PANEL), c(categ, if( ! is.null(dot.color) & ! is.null(dot.categ)){if(dot.categ != ini.dot.categ){dot.categ}}, if( ! is.null(facet.categ)){facet.categ}), drop = FALSE])
+# names(tempo) <- paste0(names(tempo), ".mean")
+tempo.mean <- data.frame(tempo.mean[order(tempo.mean$BOX, tempo.mean$PANEL), ], tempo)
+}
+}
+# at that stage, categ color and dot color are correctly attributed in data1, box.coord and dot.coord
+# end y dot coordinates recovery (create ini.box.coord, dot.coord and modify data1)
+
+
+
+
+
+
+
+
+
+
+
+
+
+# stat output (will also serve for boxplot and mean display)
+ini.box.coord <- ini.box.coord[order(ini.box.coord$group), ]
+stat <- data.frame(MIN = ini.box.coord$ymin, QUART1 = ini.box.coord$lower, MEDIAN = ini.box.coord$middle, QUART3 = ini.box.coord$upper, MAX = ini.box.coord$ymax, NOTCHUPPER = ini.box.coord$notchupper, NOTCHLOWER = ini.box.coord$notchlower, OUTLIERS = ini.box.coord["outliers"], COLOR = ini.box.coord$fill, stringsAsFactors = TRUE) # ini.box.coord["outliers"] written like this because it is a list. X coordinates not put now because several features to set
+names(stat)[names(stat) == "outliers"] <- "OUTLIERS"
+tempo.mean <- tempo.mean[order(tempo.mean$BOX), ]
+if( ! fun_comp_2d(ini.box.coord[c("PANEL", "group")], tempo.mean[c("PANEL", "BOX")])$identical.content){
+tempo.cat <- paste0("\n\n================\n\nINTERNAL CODE ERROR IN ", function.name, "\nini.box.coord[c(\"PANEL\", \"group\")] AND tempo.mean[c(\"PANEL\", \"BOX\")] MUST BE IDENTICAL. CODE HAS TO BE MODIFIED\n\n================\n\n")
+stop(tempo.cat)
+}else{
+stat <- data.frame(stat[c("MIN", "QUART1", "MEDIAN")], MEAN = tempo.mean$MEAN, stat[c("QUART3", "MAX", "NOTCHUPPER", "NOTCHLOWER", "OUTLIERS")], tempo.mean[colnames(tempo.mean) != "MEAN"], stat["COLOR"], stringsAsFactors = TRUE) # ini.box.coord["outliers"] written like this because it is a list
+}
+# end stat output (will also serve for boxplot and mean display)
+
+
+
+
+
+
+
+
+# ylim range
+if(is.null(y.lim)){
+if(any(data1[, y] %in% c(Inf, -Inf))){
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") THE data1 ARGUMENT CONTAINS -Inf OR Inf VALUES IN THE y COLUMN, THAT WILL NOT BE CONSIDERED IN THE PLOT RANGE")
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+}
+y.lim <- range(data1[, y], na.rm = TRUE, finite = TRUE) # finite = TRUE removes all the -Inf and Inf except if only this. In that case, whatever the -Inf and/or Inf present, output -Inf;Inf range. Idem with NA only
+}
+if(suppressWarnings(all(y.lim %in% c(Inf, -Inf)))){
+tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, " COMPUTED y.lim CONTAINS Inf VALUES, BECAUSE VALUES FROM data1 ARGUMENTS ARE NA OR Inf ONLY\n\n================\n\n")
+stop(tempo.cat)
+}
+y.lim.order <- order(y.lim) # to deal with inverse axis
+y.lim <- sort(y.lim)
+y.lim[1] <- y.lim[1] - abs(y.lim[2] - y.lim[1]) * ifelse(diff(y.lim.order) > 0, y.bottom.extra.margin, y.top.extra.margin) # diff(y.lim.order) > 0 medians not inversed axis
+y.lim[2] <- y.lim[2] + abs(y.lim[2] - y.lim[1]) * ifelse(diff(y.lim.order) > 0, y.top.extra.margin, y.bottom.extra.margin) # diff(y.lim.order) > 0 medians not inversed axis
+if(y.include.zero == TRUE){ # no need to check y.log != "no" because done before
+y.lim <- range(c(y.lim, 0), na.rm = TRUE, finite = TRUE) # finite = TRUE removes all the -Inf and Inf except if only this. In that case, whatever the -Inf and/or Inf present, output -Inf;Inf range. Idem with NA only
+}
+y.lim <- y.lim[y.lim.order]
+if(any(is.na(y.lim))){
+tempo.cat <- paste0("\n\n============\n\nINTERNAL CODE ERROR IN ", function.name, "\nCODE INCONSISTENCY 4\n\n============\n\n")
+stop(tempo.cat)
+}
+# end ylim range
+
+
+
+
+
+
+# drawing
+# constant part
+tempo.gg.name <- "gg.indiv.plot."
+tempo.gg.count <- 0
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), eval(parse(text = paste0("ggplot2::ggplot()", if(is.null(add)){""}else{add})))) # add is directly put here to deal with additional variable of data, like when using facet_grid. No problem if add is a theme, will be dealt below
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::xlab(if(is.null(x.lab)){categ[1]}else{x.lab}))
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::ylab(if(is.null(y.lab)){y}else{y.lab}))
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::ggtitle(title))
+# text angle management
+tempo.just <- fun_gg_just(angle = text.angle, axis = ifelse(vertical == TRUE, "x", "y"))
+# end text angle management
+add.check <- TRUE
+if( ! is.null(add)){ # if add is NULL, then = 0
+if(grepl(pattern = "ggplot2::theme", add) == TRUE){
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") \"ggplot2::theme\" STRING DETECTED IN THE add ARGUMENT -> article ARGUMENT WILL BE IGNORED")
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+add.check <- FALSE
+}
+}
+if(add.check == TRUE & article == TRUE){
+# BEWARE: not possible to add theme()several times. NO message but the last one overwrites the others
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::theme_classic(base_size = text.size))
+if(grid == TRUE){
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), m.gg <- ggplot2::theme(
+text = ggplot2::element_text(size = text.size), 
+plot.title = ggplot2::element_text(size = title.text.size), # stronger than text
+line = ggplot2::element_line(size = 0.5), 
+legend.key = ggplot2::element_rect(color = "white", size = 1.5), # size of the frame of the legend
+axis.line.y.left = ggplot2::element_line(colour = "black"), # draw lines for the y axis
+axis.line.x.bottom = ggplot2::element_line(colour = "black"), # draw lines for the x axis
+panel.grid.major.x = if(vertical == TRUE){NULL}else{ggplot2::element_line(colour = "grey85")},
+panel.grid.major.y = if(vertical == TRUE){ggplot2::element_line(colour = "grey85")}else{NULL},
+axis.text.x = if(vertical == TRUE){ggplot2::element_text(angle = tempo.just$angle, hjust = tempo.just$hjust, vjust = tempo.just$vjust)}else{NULL},
+axis.text.y = if(vertical == TRUE){NULL}else{ggplot2::element_text(angle = tempo.just$angle, hjust = tempo.just$hjust, vjust = tempo.just$vjust)},
+strip.background = ggplot2::element_rect(fill = NA, colour = NA)
+))
+}else{
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), m.gg <- ggplot2::theme(
+text = ggplot2::element_text(size = text.size), 
+plot.title = ggplot2::element_text(size = title.text.size), # stronger than text
+line = ggplot2::element_line(size = 0.5), 
+legend.key = ggplot2::element_rect(color = "white", size = 1.5), # size of the frame of the legend
+axis.line.y.left = ggplot2::element_line(colour = "black"), 
+axis.line.x.bottom = ggplot2::element_line(colour = "black"),
+axis.text.x = if(vertical == TRUE){ggplot2::element_text(angle = tempo.just$angle, hjust = tempo.just$hjust, vjust = tempo.just$vjust)}else{NULL},
+axis.text.y = if(vertical == TRUE){NULL}else{ggplot2::element_text(angle = tempo.just$angle, hjust = tempo.just$hjust, vjust = tempo.just$vjust)},
+strip.background = ggplot2::element_rect(fill = NA, colour = NA)
+))
+}
+}else if(add.check == TRUE & article == FALSE){
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), m.gg <- ggplot2::theme(
+text = ggplot2::element_text(size = text.size), 
+plot.title = ggplot2::element_text(size = title.text.size), # stronger than text
+line = ggplot2::element_line(size = 0.5), 
+legend.key = ggplot2::element_rect(color = "white", size = 1.5), # size of the frame of the legend
+panel.background = ggplot2::element_rect(fill = "grey95"), 
+axis.line.y.left = ggplot2::element_line(colour = "black"), 
+axis.line.x.bottom = ggplot2::element_line(colour = "black"), 
+panel.grid.major.x = ggplot2::element_line(colour = "grey85"), 
+panel.grid.major.y = ggplot2::element_line(colour = "grey85"), 
+panel.grid.minor.x = ggplot2::element_blank(), 
+panel.grid.minor.y = ggplot2::element_blank(), 
+strip.background = ggplot2::element_rect(fill = NA, colour = NA),
+axis.text.x = if(vertical == TRUE){ggplot2::element_text(angle = tempo.just$angle, hjust = tempo.just$hjust, vjust = tempo.just$vjust)}else{NULL},
+axis.text.y = if(vertical == TRUE){NULL}else{ggplot2::element_text(angle = tempo.just$angle, hjust = tempo.just$hjust, vjust = tempo.just$vjust)}
+))
+}
+# Contrary to fun_gg_bar(), cannot plot the boxplot right now, because I need the dots plotted first
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::geom_boxplot(data = data1, mapping = ggplot2::aes_string(x = categ[1], y = y, group = categ[length(categ)]), position = ggplot2::position_dodge(width = NULL), color = NA, width = box.width, fill = NA)) # this is to set the graph (i.e., a blanck boxplot to be able to use x coordinates to plot dots before boxes)
+# end constant part
+
+
+
+
+# x coordinates management (for random plotting and for stat display)
+# boxs
+tempo.graph.info <- ggplot2::ggplot_build(eval(parse(text = paste0(paste(paste0(tempo.gg.name, 1:tempo.gg.count), collapse = " + "), ' + ggplot2::geom_boxplot(data = data1, mapping = ggplot2::aes_string(x = categ[1], y = y, fill = categ[length(categ)]), position = ggplot2::position_dodge(width = NULL), width = box.width, notch = box.notch, coef = if(box.whisker.kind == "no"){0}else if(box.whisker.kind == "std"){1.5}else if(box.whisker.kind == "max"){Inf}) + ggplot2::scale_discrete_manual(aesthetics = "fill", name = categ.legend.name, values = if(length(categ.color) == 1){rep(categ.color, length(unique(data1[, categ[length(categ)]])))}else{categ.color})')))) # will be recovered later again, when ylim will be considered
+tempo.yx.ratio <- (tempo.graph.info$layout$panel_params[[1]]$y.range[2] - tempo.graph.info$layout$panel_params[[1]]$y.range[1]) / (tempo.graph.info$layout$panel_params[[1]]$x.range[2] - tempo.graph.info$layout$panel_params[[1]]$x.range[1])
+box.coord <- tempo.graph.info$data[[2]] # to have the summary statistics of the plot. Contrary to ini.box.plot, now integrates ylim Here because can be required for stat.disp when just box are plotted
+box.coord <- box.coord[order(box.coord$group), ]
+if(stat.disp.mean == TRUE){ # for mean display
+if( ! identical(tempo.mean$BOX, box.coord$group)){
+tempo.cat <- paste0("\n\n============\n\nINTERNAL CODE ERROR IN ", function.name, "\ntempo.mean$BOX AND box.coord$group DO NOT HAVE THE SAME VALUE ORDER\n\n============\n\n")
+stop(tempo.cat)
+}else{
+tempo <- c(categ, if( ! is.null(dot.color) & ! is.null(dot.categ)){if(dot.categ != ini.dot.categ){dot.categ}}, if( ! is.null(facet.categ)){facet.categ})
+for(i3 in tempo){
+names(tempo.mean)[names(tempo.mean) == i3] <- paste0(i3, ".mean")
+}
+box.coord <- data.frame(box.coord, tempo.mean)
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") MEAN VALUES INSTEAD OF MEDIAN VALUES DISPLAYED")
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+
+}
+}
+# width commputations
+width.ini <- c(box.coord$xmax - box.coord$xmin)[1] # all the box widths are equal here. Only the first one taken
+width.correct <- width.ini * box.space / 2
+if( ! identical(box.coord$group, stat$BOX)){
+tempo.cat <- paste0("\n\n================\n\nINTERNAL CODE ERROR IN ", function.name, "\n(box.coord$group AND stat$BOX) MUST BE IDENTICAL. CODE HAS TO BE MODIFIED\n\n================\n\n")
+stop(tempo.cat)
+}else{
+stat <- data.frame(
+stat, 
+X = box.coord$x, 
+X_BOX_INF = box.coord$xmin + width.correct, 
+X_BOX_SUP = box.coord$xmax - width.correct, 
+X_NOTCH_INF = box.coord$x - (box.coord$x - (box.coord$xmin + width.correct)) / 2,  
+X_NOTCH_SUP = box.coord$x + (box.coord$x - (box.coord$xmin + width.correct)) / 2, 
+X_WHISK_INF = box.coord$x - (box.coord$x - (box.coord$xmin + width.correct)) * box.whisker.width, 
+X_WHISK_SUP = box.coord$x + (box.coord$x - (box.coord$xmin + width.correct)) * box.whisker.width, 
+# tempo.mean[colnames(tempo.mean) != "MEAN"], # already added above
+stringsAsFactors = TRUE
+)
+stat$COLOR <- factor(stat$COLOR, levels = unique(categ.color))
+if( ! all(stat$NOTCHUPPER < stat$QUART3 & stat$NOTCHLOWER > stat$QUART1) & box.notch == TRUE){
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") SOME NOTCHES ARE BEYOND BOX HINGES. TRY ARGUMENT box.notch = FALSE")
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+}
+}
+dot.jitter <- c((box.coord$xmax - width.correct) - (box.coord$xmin + width.correct))[1] * dot.jitter # real dot.jitter. (box.coord$xmin + width.correct) - (box.coord$xmax - width.correct))[1] is the width of the box. Is  equivalent to (box.coord$x - (box.coord$xmin + width.correct))[1] * 2
+# end width commputations
+# end boxs
+if( ! is.null(dot.color)){
+# random dots
+if(dot.tidy == FALSE){
+dot.coord.rd1 <- merge(dot.coord, box.coord[c("fill", "PANEL", "group", "x")], by = c("PANEL", "group"), sort = FALSE) # rd for random. Send the coord of the boxs into the coord data.frame of the dots (in the column x.y). BEWARE: by = c("PANEL", "group") without fill column because PANEL & group columns are enough as only one value of x column per group number in box.coord. Thus, no need to consider fill column
+if(nrow(dot.coord.rd1) != nrow(dot.coord)){
+tempo.cat <- paste0("\n\n================\n\nINTERNAL CODE ERROR IN ", function.name, "\nTHE merge() FUNCTION DID NOT RETURN A CORRECT dot.coord.rd1 DATA FRAME. CODE HAS TO BE MODIFIED\n\n================\n\n")
+stop(tempo.cat)
+}
+set.seed(1)
+sampled.dot.jitter <- if(nrow(dot.coord.rd1) == 1){runif(n = nrow(dot.coord.rd1), min = - dot.jitter / 2, max = dot.jitter / 2)}else{sample(x = runif(n = nrow(dot.coord.rd1), min = - dot.jitter / 2, max = dot.jitter / 2), size = nrow(dot.coord.rd1), replace = FALSE)}
+dot.coord.rd2 <- data.frame(dot.coord.rd1, dot.x = dot.coord.rd1$x.y + sampled.dot.jitter) # set the dot.jitter thanks to runif and dot.jitter range. Then, send the coord of the boxs into the coord data.frame of the dots (in the column x.y)
+set.seed(NULL)
+if(length(categ) == 1){
+tempo.data1 <- unique(data.frame(data1[categ[1]], group = as.integer(data1[, categ[1]]))) # categ[1] is factor
+names(tempo.data1)[names(tempo.data1) == categ[1]] <- paste0(categ[1], ".check")
+verif <- paste0(categ[1], ".check")
+}else if(length(categ) == 2){
+tempo.data1 <- unique(
+data.frame(
+data1[c(categ[1], categ[2])], 
+group = as.integer(factor(paste0(
+formatC(as.integer(data1[, categ[2]]), width = nchar(max(as.integer(data1[, categ[2]]), na.rm = TRUE)), flag = "0"), # convert factor into numeric with leading zero for proper ranking
+".", 
+formatC(as.integer(data1[, categ[1]]), width = nchar(max(as.integer(data1[, categ[1]]), na.rm = TRUE)), flag = "0")# convert factor into numeric with leading zero for proper ranking
+))) # merge the 2 formatC() to create a new factor. The convertion to integer should recreate the correct group number
+)
+) # categ[2] first if categ[2] is used to make the categories in ggplot and categ[1] is used to make the x-axis
+names(tempo.data1)[names(tempo.data1) == categ[1]] <- paste0(categ[1], ".check")
+names(tempo.data1)[names(tempo.data1) == categ[2]] <- paste0(categ[2], ".check")
+verif <- c(paste0(categ[1], ".check"), paste0(categ[2], ".check"))
+}else{
+tempo.cat <- paste0("\n\n============\n\nINTERNAL CODE ERROR IN ", function.name, "\nCODE INCONSISTENCY 6\n\n============\n\n")
+stop(tempo.cat)
+}
+dot.coord.rd3 <- merge(dot.coord.rd2, tempo.data1, by = intersect("group", "group"), sort = FALSE) # send the factors of data1 into coord. BEWARE: I have replaced by = "group" by intersect("group", "group") because of an error due to wrong group group merging in dot.coord.rd3
+if(nrow(dot.coord.rd3) != nrow(dot.coord) | ( ! fun_comp_2d(dot.coord.rd3[categ], dot.coord.rd3[verif])$identical.content)){
+tempo.cat <- paste0("\n\n================\n\nINTERNAL CODE ERROR IN ", function.name, "\nTHE merge() FUNCTION DID NOT RETURN A CORRECT dot.coord.rd3 DATA FRAME. CODE HAS TO BE MODIFIED\n\n================\n\n")
+stop(tempo.cat)
+}
+# end random dots
+}
+# tidy dots
+# coordinates are recovered during plotting (see dot.coord.tidy1 below)
+# end tidy dots
+}
+# end x coordinates management (for random plotting and for stat display)
+
+
+
+
+
+# boxplot display before dot display if box.fill = TRUE
+coord.names <- NULL
+# creation of the data frame for (main box + legend) and data frame for means
+if(box.notch == FALSE){
+for(i3 in 1:length(categ)){
+if(i3 == 1){
+tempo.polygon <- data.frame(GROUPX = c(t(stat[, rep(categ[i3], 5)])), stringsAsFactors = TRUE)
+}else{
+tempo.polygon <- cbind(tempo.polygon, c(t(stat[, rep(categ[i3], 5)])), stringsAsFactors = TRUE)
+}
+}
+names(tempo.polygon) <- categ
+tempo.polygon <- data.frame(X = c(t(stat[, c("X_BOX_INF", "X_BOX_SUP", "X_BOX_SUP", "X_BOX_INF", "X_BOX_INF")])), Y = c(t(stat[, c("QUART1", "QUART1", "QUART3", "QUART3", "QUART1")])), COLOR = c(t(stat[, c("COLOR", "COLOR", "COLOR", "COLOR", "COLOR")])), BOX = as.character(c(t(stat[, c("BOX", "BOX", "BOX", "BOX", "BOX")]))), tempo.polygon, stringsAsFactors = TRUE)
+if( ! is.null(facet.categ)){
+for(i4 in 1:length(facet.categ)){
+tempo.polygon <- data.frame(tempo.polygon, c(t(stat[, c(facet.categ[i4], facet.categ[i4], facet.categ[i4], facet.categ[i4], facet.categ[i4])])), stringsAsFactors = TRUE)
+names(tempo.polygon)[length(names(tempo.polygon))] <- facet.categ[i4]
+}
+}
+}else{
+for(i3 in 1:length(categ)){
+if(i3 == 1){
+tempo.polygon <- data.frame(GROUPX = c(t(stat[, rep(categ[i3], 11)])), stringsAsFactors = TRUE)
+}else{
+tempo.polygon <- cbind(tempo.polygon, c(t(stat[, rep(categ[i3], 11)])), stringsAsFactors = TRUE)
+}
+}
+names(tempo.polygon) <- categ
+tempo.polygon <- data.frame(X = c(t(stat[, c("X_BOX_INF", "X_BOX_SUP", "X_BOX_SUP", "X_NOTCH_SUP", "X_BOX_SUP", "X_BOX_SUP", "X_BOX_INF", "X_BOX_INF", "X_NOTCH_INF", "X_BOX_INF", "X_BOX_INF")])), Y = c(t(stat[, c("QUART1", "QUART1", "NOTCHLOWER", "MEDIAN", "NOTCHUPPER", "QUART3", "QUART3", "NOTCHUPPER", "MEDIAN", "NOTCHLOWER", "QUART1")])), COLOR = c(t(stat[, c("COLOR", "COLOR", "COLOR", "COLOR", "COLOR", "COLOR", "COLOR", "COLOR", "COLOR", "COLOR", "COLOR")])), BOX = as.character(c(t(stat[, c("BOX", "BOX", "BOX", "BOX", "BOX", "BOX", "BOX", "BOX", "BOX", "BOX", "BOX")]))), tempo.polygon, stringsAsFactors = TRUE)
+if( ! is.null(facet.categ)){
+for(i4 in 1:length(facet.categ)){
+tempo.polygon <- data.frame(tempo.polygon, c(t(stat[, c(facet.categ[i4], facet.categ[i4], facet.categ[i4], facet.categ[i4], facet.categ[i4], facet.categ[i4], facet.categ[i4], facet.categ[i4], facet.categ[i4], facet.categ[i4], facet.categ[i4])])), stringsAsFactors = TRUE)
+names(tempo.polygon)[length(names(tempo.polygon))] <- facet.categ[i4]
+}
+}
+}
+tempo.polygon$COLOR <- factor(tempo.polygon$COLOR, levels = unique(categ.color))
+if( ! is.null(categ.class.order)){
+for(i3 in 1:length(categ)){
+tempo.polygon[, categ[i3]] <- factor(tempo.polygon[, categ[i3]], levels = categ.class.order[[i3]])
+}
+}
+# modified name of dot.categ column (e.g., "Group1_DOT") must be included for boxplot using ridy dots
+if( ! is.null(dot.color) & ! is.null(dot.categ)){
+if(dot.categ != ini.dot.categ){
+tempo.polygon <- data.frame(tempo.polygon, GROUPX = tempo.polygon[, ini.dot.categ])
+names(tempo.polygon)[names(tempo.polygon) == "GROUPX"] <- dot.categ
+
+}
+}
+tempo.diamon.mean <- data.frame(X = c(t(stat[, c("X", "X_NOTCH_INF", "X", "X_NOTCH_SUP", "X")])), Y = c(t(cbind(stat["MEAN"] - (stat[, "X"] - stat[, "X_NOTCH_INF"]) * tempo.yx.ratio, stat["MEAN"], stat["MEAN"] + (stat[, "X"] - stat[, "X_NOTCH_INF"]) * tempo.yx.ratio, stat["MEAN"], stat["MEAN"] - (stat[, "X"] - stat[, "X_NOTCH_INF"]) * tempo.yx.ratio))), COLOR = c(t(stat[, c("COLOR", "COLOR", "COLOR", "COLOR", "COLOR")])), GROUP = c(t(stat[, c("BOX", "BOX", "BOX", "BOX", "BOX")])), stringsAsFactors = TRUE)
+if( ! is.null(facet.categ)){
+for(i3 in 1:length(facet.categ)){
+tempo.diamon.mean <- data.frame(tempo.diamon.mean, c(t(stat[, c(facet.categ[i3], facet.categ[i3], facet.categ[i3], facet.categ[i3], facet.categ[i3])])), stringsAsFactors = TRUE)
+names(tempo.diamon.mean)[length(names(tempo.diamon.mean))] <- facet.categ[i3]
+}
+}
+tempo.diamon.mean$COLOR <- factor(tempo.diamon.mean$COLOR, levels = unique(categ.color))
+# end creation of the data frame for (main box + legend) and data frame for means
+if(box.fill == TRUE){
+# assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::geom_boxplot(data = data1, mapping = ggplot2::aes_string(x = categ[1], y = y, color = categ[length(categ)], fill = categ[length(categ)]), position = ggplot2::position_dodge(width = NULL), width = box.width, size = box.line.size, notch = box.notch, coef = if(box.whisker.kind == "no"){0}else if(box.whisker.kind == "std"){1.5}else if(box.whisker.kind == "max"){Inf}, alpha = box.alpha, outlier.shape = if( ! is.null(dot.color)){NA}else{21}, outlier.color = if( ! is.null(dot.color)){NA}else{dot.border.color}, outlier.fill = if( ! is.null(dot.color)){NA}else{NULL}, outlier.size = if( ! is.null(dot.color)){NA}else{dot.size}, outlier.stroke = if( ! is.null(dot.color)){NA}else{dot.border.size}, outlier.alpha = if( ! is.null(dot.color)){NA}else{dot.alpha})) # the color, size, etc. of the outliers are dealt here. outlier.color = NA to do not plot outliers when dots are already plotted. Finally, boxplot redrawn (see below)
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::geom_polygon(
+data = tempo.polygon, 
+mapping = ggplot2::aes_string(x = "X", y = "Y", group = "BOX", fill = categ[length(categ)], color = categ[length(categ)]), 
+size = box.line.size, 
+alpha = box.alpha
+))
+coord.names <- c(coord.names, "main.box")
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::geom_segment(data = stat, mapping = ggplot2::aes(x = X, xend = X, y = QUART3, yend = MAX, group = categ[length(categ)]), color = "black", size = box.line.size, alpha = box.alpha)) # 
+coord.names <- c(coord.names, "sup.whisker")
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::geom_segment(data = stat, mapping = ggplot2::aes(x = X, xend = X, y = QUART1, yend = MIN, group = categ[length(categ)]), color = "black", size = box.line.size, alpha = box.alpha)) # 
+coord.names <- c(coord.names, "inf.whisker")
+if(box.whisker.width > 0){
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::geom_segment(data = stat, mapping = ggplot2::aes(x = X_WHISK_INF, xend = X_WHISK_SUP, y = MAX, yend = MAX, group = categ[length(categ)]), color = "black", size = box.line.size, alpha = box.alpha, lineend = "round")) # 
+coord.names <- c(coord.names, "sup.whisker.edge")
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::geom_segment(data = stat, mapping = ggplot2::aes(x = X_WHISK_INF, xend = X_WHISK_SUP, y = MIN, yend = MIN, group = categ[length(categ)]), color = "black", size = box.line.size, alpha = box.alpha, lineend = "round")) # 
+coord.names <- c(coord.names, "inf.whisker.edge")
+}
+if(box.mean == TRUE){
+# assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::geom_point(data = stat, mapping = ggplot2::aes_string(x = "X", y = "MEAN", group = categ[length(categ)]), shape = 23, stroke = box.line.size * 2, fill = stat$COLOR, size = box.mean.size, color = "black", alpha = box.alpha)) # group used in aesthetic to do not have it in the legend
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::geom_polygon(
+data = tempo.diamon.mean, 
+mapping = ggplot2::aes(x = X, y = Y, group = GROUP), 
+fill = tempo.diamon.mean[, "COLOR"], 
+color = hsv(0, 0, 0, alpha = box.alpha), # outline of the polygon in black but with alpha
+size = box.line.size * 2, 
+alpha = box.alpha
+))
+coord.names <- c(coord.names, "mean")
+}
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::geom_segment(data = stat, mapping = ggplot2::aes(x = if(box.notch == FALSE){X_BOX_INF}else{X_NOTCH_INF}, xend = if(box.notch == FALSE){X_BOX_SUP}else{X_NOTCH_SUP}, y = MEDIAN, yend = MEDIAN, group = categ[length(categ)]), color = "black", size = box.line.size * 2, alpha = box.alpha)) # 
+coord.names <- c(coord.names, "median")
+}
+# end boxplot display before dot display if box.fill = TRUE
+
+
+
+
+
+
+# dot display
+if( ! is.null(dot.color)){
+if(dot.tidy == FALSE){
+if(is.null(dot.categ)){
+if(dot.border.size == 0){
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::geom_point(
+data = dot.coord.rd3, 
+mapping = ggplot2::aes_string(x = "dot.x", y = "y", group = categ[length(categ)]), 
+size = dot.size, 
+shape = 19, 
+color = dot.coord.rd3$dot.color, 
+alpha = dot.alpha
+)) # group used in aesthetic to do not have it in the legend. Here ggplot2::scale_discrete_manual() cannot be used because of the group easthetic
+}else{
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::geom_point(
+data = dot.coord.rd3, 
+mapping = ggplot2::aes_string(x = "dot.x", y = "y", group = categ[length(categ)]), 
+shape = 21, 
+stroke = dot.border.size, 
+color = if(is.null(dot.border.color)){dot.coord.rd3$dot.color}else{rep(dot.border.color, nrow(dot.coord.rd3))}, 
+size = dot.size, 
+fill = dot.coord.rd3$dot.color, 
+alpha = dot.alpha
+)) # group used in aesthetic to do not have it in the legend. Here ggplot2::scale_discrete_manual() cannot be used because of the group easthetic
+}
+}else{
+if(dot.border.size == 0){
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::geom_point(
+data = dot.coord.rd3, 
+mapping = ggplot2::aes_string(x = "dot.x", y = "y", alpha = dot.categ), 
+size = dot.size, 
+shape = 19, 
+color = dot.coord.rd3$dot.color
+)) # group used in aesthetic to do not have it in the legend. Here ggplot2::scale_discrete_manual() cannot be used because of the group easthetic
+}else{
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::geom_point(
+data = dot.coord.rd3, 
+mapping = ggplot2::aes_string(x = "dot.x", y = "y", alpha = dot.categ), 
+size = dot.size, 
+shape = 21, 
+stroke = dot.border.size, 
+color = if(is.null(dot.border.color)){dot.coord.rd3$dot.color}else{rep(dot.border.color, nrow(dot.coord.rd3))}, 
+fill = dot.coord.rd3$dot.color
+)) # group used in aesthetic to do not have it in the legend. Here ggplot2::scale_discrete_manual() cannot be used because of the group easthetic
+}
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::scale_discrete_manual(aesthetics = "alpha", name = dot.categ.legend.name, values = rep(dot.alpha,  length(dot.categ.class.order)), guide = ggplot2::guide_legend(override.aes = list(fill = dot.color, color = if(is.null(dot.border.color)){dot.color}else{dot.border.color}, stroke = dot.border.size, alpha = dot.alpha)))) # values are the values of color (which is the border color in geom_box. BEWARE: values = categ.color takes the numbers to make the colors if categ.color is a factor
+}
+coord.names <- c(coord.names, "dots")
+}else if(dot.tidy == TRUE){
+# here plot using group -> no scale
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::geom_dotplot(
+data = dot.coord, 
+mapping = ggplot2::aes_string(x = categ[1], y = "y", group = "group"), # not dot.categ here because the classes of dot.categ create new separations
+position = ggplot2::position_dodge(width = box.width), 
+binaxis = "y", 
+stackdir = "center", 
+alpha = dot.alpha, 
+fill = dot.coord$dot.color, 
+stroke = dot.border.size, 
+color = if(is.null(dot.border.color)){dot.coord$dot.color}else{rep(dot.border.color, nrow(dot.coord))}, 
+show.legend = FALSE, # BEWARE: do not use show.legend = TRUE because it uses the arguments outside aes() as aesthetics (here color and fill). Thus I must find a way using ggplot2::scale_discrete_manual()
+binwidth = (y.lim[2] - y.lim[1]) / dot.tidy.bin.nb
+)) # geom_dotplot ggplot2 v3.3.0: I had to remove rev() in fill and color # very weird behavior of geom_dotplot ggplot2 v3.2.1, (1) because with aes group = (to avoid legend), the dot plotting is not good in term of coordinates, and (2) because data1 seems reorderer according to x = categ[1] before plotting. Thus, I have  to use fill = dot.coord[rev(order(dot.coord[, categ[1]], decreasing = TRUE)), "dot.color"] to have the good corresponding colors # show.legend option do not remove the legend, only the aesthetic of the legend (dot, line, etc.)
+coord.names <- c(coord.names, "dots")
+if( ! is.null(dot.categ)){
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::geom_dotplot(
+data = dot.coord, 
+mapping = ggplot2::aes_string(x = categ[1], y = "y", alpha = dot.categ), # not dot.categ here because the classes of dot.categ create new separations
+position = ggplot2::position_dodge(width = box.width), 
+binaxis = "y", 
+stackdir = "center", 
+fill = NA, 
+stroke = NA, 
+color = NA, 
+# BEWARE: do not use show.legend =  TRUE because it uses the arguments outside aes() as aesthetics (here color and fill). Thus I must find a way using ggplot2::scale_discrete_manual()
+binwidth = (y.lim[2] - y.lim[1]) / dot.tidy.bin.nb
+)) # geom_dotplot ggplot2 v3.3.0: I had to remove rev() in fill and color # very weird behavior of geom_dotplot ggplot2 v3.2.1, (1) because with aes group = (to avoid legend), the dot plotting is not good in term of coordinates, and (2) because data1 seems reorderer according to x = categ[1] before plotting. Thus, I have  to use fill = dot.coord[rev(order(dot.coord[, categ[1]], decreasing = TRUE)), "dot.color"] to have the good corresponding colors # show.legend option do not remove the legend, only the aesthetic of the legend (dot, line, etc.)
+# assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::scale_discrete_manual(aesthetics = "linetype", name = dot.categ.legend.name, values = rep(1, length(categ.color)))) # values = rep("black", length(categ.color)) are the values of color (which is the border color of dots), and this modify the border color on the plot. BEWARE: values = categ.color takes the numbers to make the colors if categ.color is a factor
+coord.names <- c(coord.names, "bad_remove")
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::scale_discrete_manual(aesthetics = "alpha", name = dot.categ.legend.name, values = rep(dot.alpha,  length(dot.categ.class.order)), labels = dot.categ.class.order, guide = ggplot2::guide_legend(title = if(ini.dot.categ == categ[length(categ)]){dot.categ}else{ini.dot.categ}, override.aes = list(fill = levels(dot.coord$dot.color), color = if(is.null(dot.border.color)){levels(dot.coord$dot.color)}else{dot.border.color}, stroke = dot.border.size, alpha = dot.alpha)))) # values are the values of color (which is the border color in geom_box. BEWARE: values = categ.color takes the numbers to make the colors if categ.color is a factor
+}
+# coordinates of tidy dots
+tempo.coord <- ggplot2::ggplot_build(eval(parse(text = paste(paste0(tempo.gg.name, 1:tempo.gg.count), collapse = " + "))))$data # to have the tidy dot coordinates
+if(length(which(sapply(tempo.coord, FUN = nrow) == nrow(data1))) > if(is.null(dot.categ)){1}else{2}){ # if(is.null(dot.categ)){1}else{2} because 1 dotplot if dot.categ is NULL and 2 dotplots is not, with the second being a blank dotplot with wrong coordinates. Thus take the first in that situation
+tempo.cat <- paste0("\n\n================\n\nINTERNAL CODE ERROR IN ", function.name, "\nMORE THAN ", if(is.null(dot.categ)){1}else{2}, " COMPARTMENT WITH NROW EQUAL TO nrow(data1) IN THE tempo.coord LIST (FOR TIDY DOT COORDINATES). CODE HAS TO BE MODIFIED\n\n================\n\n")
+stop(tempo.cat)
+}else{
+dot.coord.tidy1 <- tempo.coord[[which(sapply(tempo.coord, FUN = nrow) == nrow(data1))[1]]] # the second being a blank dotplot with wrong coordinates. Thus take the first whatever situation
+}
+tempo.box.coord <- merge(box.coord, unique(dot.coord[, c("PANEL", "group", categ)]), by = c("PANEL", "group"), sort = FALSE) # do not add dot.categ and tidy_group_coord here because the coordinates are for stats. Add the categ in box.coord. BEWARE: by = c("PANEL", "group") without fill column because PANEL & group columns are enough as only one value of x column per group number in box.coord. Thus, no need to consider fill column
+# below inactivated because not true when dealing with dot.categ different from categ
+if(nrow(tempo.box.coord) != nrow(box.coord)){
+tempo.cat <- paste0("\n\n================\n\nINTERNAL CODE ERROR IN ", function.name, "\nTHE merge() FUNCTION DID NOT RETURN A CORRECT tempo.box.coord DATA FRAME. CODE HAS TO BE MODIFIED\n\n================\n\n")
+stop(tempo.cat)
+}
+dot.coord.tidy2 <- merge(dot.coord.tidy1, tempo.box.coord[c("fill", "PANEL", "group", "x", categ)], by = c("PANEL", "group"), sort = FALSE) # send the coord of the boxs into the coord data.frame of the dots (in the column x.y).BEWARE: by = c("PANEL", "group") without fill column because PANEL & group columns are enough as only one value of x column per group number in tempo.box.coord. Thus, no need to consider fill colum # DANGER: from here the fill.y and x.y (from tempo.box.coord) are not good in dot.coord.tidy2. It is ok because Group1 Group2 from tempo.box.coord are ok with the group column from dot.coord.tidy1. This is due to the fact that dot.coord.tidy resulting from geom_dotplot does not make the same groups as the other functions
+if(nrow(dot.coord.tidy2) != nrow(dot.coord)){
+tempo.cat <- paste0("\n\n================\n\nINTERNAL CODE ERROR IN ", function.name, "\nTHE merge() FUNCTION DID NOT RETURN A CORRECT dot.coord.tidy2 DATA FRAME. CODE HAS TO BE MODIFIED\n\n================\n\n")
+stop(tempo.cat)
+}
+# From here, check for dot.coord.tidy3 which wil be important for stat over the plot. BEWARE: dot.categ has nothing to do here for stat coordinates. Thus, not in tempo.data1
+if(length(categ) == 1){
+tempo.data1 <- unique(data.frame(data1[categ[1]], group = as.integer(data1[, categ[1]]))) # categ[1] is factor
+names(tempo.data1)[names(tempo.data1) == categ[1]] <- paste0(categ[1], ".check")
+verif <- paste0(categ[1], ".check")
+}else if(length(categ) == 2){
+tempo.data1 <- unique(
+data.frame(
+data1[c(categ[1], categ[2])], 
+group = as.integer(factor(paste0(
+formatC(as.integer(data1[, categ[2]]), width = nchar(max(as.integer(data1[, categ[2]]), na.rm = TRUE)), flag = "0"), # convert factor into numeric with leading zero for proper ranking
+".", 
+formatC(as.integer(data1[, categ[1]]), width = nchar(max(as.integer(data1[, categ[1]]), na.rm = TRUE)), flag = "0")# convert factor into numeric with leading zero for proper ranking
+))) # merge the 2 formatC() to create a new factor. The convertion to integer should recreate the correct group number
+)
+) # categ[2] first if categ[2] is used to make the categories in ggplot and categ[1] is used to make the x-axis
+names(tempo.data1)[names(tempo.data1) == categ[1]] <- paste0(categ[1], ".check")
+names(tempo.data1)[names(tempo.data1) == categ[2]] <- paste0(categ[2], ".check")
+verif <- c(paste0(categ[1], ".check"), paste0(categ[2], ".check"))
+}else{
+tempo.cat <- paste0("\n\n============\n\nINTERNAL CODE ERROR IN ", function.name, "\nCODE INCONSISTENCY 7\n\n============\n\n")
+stop(tempo.cat)
+}
+dot.coord.tidy3 <- merge(dot.coord.tidy2, tempo.data1, by = intersect("group", "group"), sort = FALSE) # send the factors of data1 into coord. BEWARE: I have tested intersect("group", "group") instead of by = "group". May be come back to by = "group"  in case of error. But I did this because of an error in dot.coord.rd3 above
+if(nrow(dot.coord.tidy3) != nrow(dot.coord) | ( ! fun_comp_2d(dot.coord.tidy3[categ], dot.coord.tidy3[verif])$identical.content)){
+tempo.cat <- paste0("\n\n================\n\nINTERNAL CODE ERROR IN ", function.name, "\nTHE merge() FUNCTION DID NOT RETURN A CORRECT dot.coord.tidy3 DATA FRAME. CODE HAS TO BE MODIFIED\n\n================\n\n")
+stop(tempo.cat)
+}
+# end coordinates of tidy dots
+}
+}
+# end dot display
+
+
+
+# boxplot display (if box.fill = FALSE, otherwise, already plotted above)
+if(box.fill == TRUE){
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::scale_discrete_manual(aesthetics = "fill", name = categ.legend.name, values =  if(length(categ.color) == 1){rep(categ.color, length(unique(data1[, categ[length(categ)]])))}else{categ.color})) #, guide = ggplot2::guide_legend(override.aes = list(fill = levels(tempo.polygon$COLOR), color = "black")))) # values are the values of color (which is the border color in geom_box. BEWARE: values = categ.color takes the numbers to make the colors if categ.color is a factor
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::scale_discrete_manual(aesthetics = "color", name = categ.legend.name, values = rep(hsv(0, 0, 0, alpha = box.alpha), length(unique(data1[, categ[length(categ)]]))))) # , guide = ggplot2::guide_legend(override.aes = list(color = "black", alpha = box.alpha)))) # values are the values of color (which is the border color in geom_box. BEWARE: values = categ.color takes the numbers to make the colors if categ.color is a factor # outline of the polygon in black but with alpha
+}else{
+# assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::geom_boxplot(data = data1, mapping = ggplot2::aes_string(x = categ[1], y = y, color = categ[length(categ)], fill = categ[length(categ)]), position = ggplot2::position_dodge(width = NULL), width = box.width, size = box.line.size, notch = box.notch, alpha = box.alpha, coef = if(box.whisker.kind == "no"){0}else if(box.whisker.kind == "std"){1.5}else if(box.whisker.kind == "max"){Inf}, outlier.shape = if( ! is.null(dot.color)){NA}else{21}, outlier.color = if( ! is.null(dot.color)){NA}else{if(dot.border.size == 0){NA}else{dot.border.color}}, outlier.fill = if( ! is.null(dot.color)){NA}else{NULL}, outlier.size = if( ! is.null(dot.color)){NA}else{dot.size}, outlier.stroke = if( ! is.null(dot.color)){NA}else{dot.border.size}, outlier.alpha = if( ! is.null(dot.color)){NA}else{dot.alpha})) # the color, size, etc. of the outliers are dealt here. outlier.color = NA to do not plot outliers when dots are already plotted
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::geom_path(
+data = tempo.polygon, 
+mapping = ggplot2::aes_string(x = "X", y = "Y", group = "BOX", color = categ[length(categ)]), 
+size = box.line.size, 
+alpha = box.alpha, 
+lineend = "round", 
+linejoin = "round"
+))
+coord.names <- c(coord.names, "main.box")
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::geom_segment(data = stat, mapping = ggplot2::aes(x = if(box.notch == FALSE){X_BOX_INF}else{X_NOTCH_INF}, xend = if(box.notch == FALSE){X_BOX_SUP}else{X_NOTCH_SUP}, y = MEDIAN, yend = MEDIAN, group = categ[length(categ)]), color = stat$COLOR, size = box.line.size * 2, alpha = box.alpha)) # 
+coord.names <- c(coord.names, "median")
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::geom_segment(data = stat, mapping = ggplot2::aes(x = X, xend = X, y = QUART3, yend = MAX, group = categ[length(categ)]), color = stat$COLOR, size = box.line.size, alpha = box.alpha)) # 
+coord.names <- c(coord.names, "sup.whisker")
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::geom_segment(data = stat, mapping = ggplot2::aes(x = X, xend = X, y = QUART1, yend = MIN, group = categ[length(categ)]), color = stat$COLOR, size = box.line.size, alpha = box.alpha)) # 
+coord.names <- c(coord.names, "inf.whisker")
+if(box.whisker.width > 0){
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::geom_segment(data = stat, mapping = ggplot2::aes(x = X_WHISK_INF, xend = X_WHISK_SUP, y = MAX, yend = MAX, group = categ[length(categ)]), color = stat$COLOR, size = box.line.size, alpha = box.alpha, lineend = "round")) # 
+coord.names <- c(coord.names, "sup.whisker.edge")
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::geom_segment(data = stat, mapping = ggplot2::aes(x = X_WHISK_INF, xend = X_WHISK_SUP, y = MIN, yend = MIN, group = categ[length(categ)]), color = stat$COLOR, size = box.line.size, alpha = box.alpha, lineend = "round")) # 
+coord.names <- c(coord.names, "inf.whisker.edge")
+}
+if(box.mean == TRUE){
+# assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::geom_point(data = stat, mapping = ggplot2::aes_string(x = "X", y = "MEAN", group = categ[length(categ)]), shape = 23, stroke = box.line.size * 2, color = stat$COLOR, size = box.mean.size, fill = NA, alpha = box.alpha)) # group used in aesthetic to do not have it in the legend. Here ggplot2::scale_discrete_manual() cannot be used because of the group easthetic
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::geom_path(
+data = tempo.diamon.mean, 
+mapping = ggplot2::aes(x = X, y = Y, group = GROUP), 
+color = tempo.diamon.mean[, "COLOR"], 
+size = box.line.size * 2, 
+alpha = box.alpha, 
+lineend = "round", 
+linejoin = "round"
+))
+coord.names <- c(coord.names, "mean")
+}
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::scale_discrete_manual(aesthetics = "fill", name = categ.legend.name, values = rep(NA, length(unique(data1[, categ[length(categ)]]))))) #, guide = ggplot2::guide_legend(override.aes = list(color = categ.color)))) # values are the values of color (which is the border color in geom_box. BEWARE: values = categ.color takes the numbers to make the colors if categ.color is a factor
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::scale_discrete_manual(aesthetics = "color", name = categ.legend.name, values = if(length(categ.color) == 1){rep(categ.color, length(unique(data1[, categ[length(categ)]])))}else{categ.color}, guide = ggplot2::guide_legend(override.aes = list(alpha = if(plot == TRUE & ((length(dev.list()) > 0 & names(dev.cur()) == "windows") | (length(dev.list()) == 0 & Sys.info()["sysname"] == "Windows"))){1}else{box.alpha})))) # , guide = ggplot2::guide_legend(override.aes = list(color = as.character(categ.color))))) # values are the values of color (which is the border color in geom_box. BEWARE: values = categ.color takes the numbers to make the colors if categ.color is a factor
+if(plot == TRUE & ((length(dev.list()) > 0 & names(dev.cur()) == "windows") | (length(dev.list()) == 0 & Sys.info()["sysname"] == "Windows"))){ # if any Graph device already open and this device is "windows", or if no Graph device opened yet and we are on windows system -> prevention of alpha legend bug on windows using value 1
+# to avoid a bug on windows: if alpha argument is different from 1 for lines (transparency), then lines are not correctly displayed in the legend when using the R GUI (bug https://github.com/tidyverse/ggplot2/issues/2452). No bug when using a pdf
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") FROM FUNCTION ", function.name, ": GRAPHIC DEVICE USED ON A WINDOWS SYSTEM ->\nTRANSPARENCY OF THE LINES IS INACTIVATED IN THE LEGEND TO PREVENT A WINDOWS DEPENDENT BUG (SEE https://github.com/tidyverse/ggplot2/issues/2452)\nTO OVERCOME THIS ON WINDOWS, USE ANOTHER DEVICE (pdf() FOR INSTANCE)")
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+}
+}
+# end boxplot display (if box.fill = FALSE, otherwise, already plotted above)
+
+
+
+
+# stat display
+# layer after dots but ok, behind dots on the plot
+if( ! is.null(stat.disp)){
+if(stat.disp == "top"){
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1),  ggplot2::annotate(geom = "text", x = stat$X, y = y.lim[2], label = if(stat.disp.mean == FALSE){fun_round(stat$MEDIAN, 2)}else{fun_round(stat$MEAN, 2)}, size = stat.size, color = "black", hjust = ifelse(vertical == TRUE, 0.5, 1.1), vjust = ifelse(vertical == TRUE, 1.1, 0.5))) # beware: no need of order() for labels because box.coord$x set the order. For justification, see https://stackoverflow.com/questions/7263849/what-do-hjust-and-vjust-do-when-making-a-plot-using-ggplot
+coord.names <- c(coord.names, "stat.display")
+}else if(stat.disp == "above"){
+# stat coordinates
+if( ! is.null(dot.color)){ # for text just above max dot
+if(dot.tidy == FALSE){
+tempo.stat.ini <- dot.coord.rd3
+}else if(dot.tidy == TRUE){
+tempo.stat.ini <- dot.coord.tidy3
+tempo.stat.ini$x.y <- tempo.stat.ini$x.x # this is just to be able to use tempo.stat.ini$x.y for untidy or tidy dots (remember that dot.coord.tidy3$x.y is not good, see above)
+}
+stat.coord1 <- aggregate(x = tempo.stat.ini["y"], by = {x.env <- if(length(categ) == 1){list(tempo.stat.ini$group, tempo.stat.ini$x.y, tempo.stat.ini[, categ[1]])}else if(length(categ) == 2){list(tempo.stat.ini$group, tempo.stat.ini$x.y, tempo.stat.ini[, categ[1]], tempo.stat.ini[, categ[2]])} ; names(x.env) <- if(length(categ) == 1){c("group", "x.y", categ[1])}else if(length(categ) == 2){c("group", "x.y", categ[1], categ[2])} ; x.env}, FUN = min, na.rm = TRUE)
+names(stat.coord1)[names(stat.coord1) == "y"] <- "dot.min"
+stat.coord2 <- aggregate(x = tempo.stat.ini["y"], by = {x.env <- if(length(categ) == 1){list(tempo.stat.ini$group, tempo.stat.ini$x.y, tempo.stat.ini[, categ[1]])}else if(length(categ) == 2){list(tempo.stat.ini$group, tempo.stat.ini$x.y, tempo.stat.ini[, categ[1]], tempo.stat.ini[, categ[2]])} ; names(x.env) <- if(length(categ) == 1){c("group", "x.y", categ[1])}else if(length(categ) == 2){c("group", "x.y", categ[1], categ[2])} ; x.env}, FUN = max, na.rm = TRUE)
+names(stat.coord2) <- paste0(names(stat.coord2), "_from.dot.max")
+names(stat.coord2)[names(stat.coord2) == "y_from.dot.max"] <- "dot.max"
+stat.coord3 <- cbind(box.coord[order(box.coord$x), ], stat.coord1[order(stat.coord1$x.y), ], stat.coord2[order(stat.coord2$x.y), ]) # should be ok to use box.coord$x and stat.coord$x.y to assemble the two data frames because x coordinates of the boxs. Thus, we cannot have identical values
+if( ! all(identical(round(stat.coord3$x, 9), round(stat.coord3$x.y, 9)))){
+tempo.cat <- paste0("\n\n================\n\nINTERNAL CODE ERROR IN ", function.name, "\nFUSION OF box.coord, stat.coord1 AND stat.coord2 ACCORDING TO box.coord$x, stat.coord1$x.y AND stat.coord2$x.y IS NOT CORRECT. CODE HAS TO BE MODIFIED\n\n================\n\n")
+stop(tempo.cat)
+}
+text.coord <- stat.coord3[, c("x", "group", "dot.min", "dot.max")]
+names(text.coord)[names(text.coord) == "dot.min"] <- "text.min.pos"
+names(text.coord)[names(text.coord) == "dot.max"] <- "text.max.pos"
+box.coord <- box.coord[order(box.coord$x), ]
+text.coord <- text.coord[order(text.coord$x), ] # to be sure to have the two objects in the same order for x. BEWARE: cannot add identical(as.integer(text.coord$group), as.integer(box.coord$group)) because with error, the correspondence between x and group is not the same
+if( ! identical(text.coord$x, box.coord$x)){
+tempo.cat <- paste0("\n\n============\n\nINTERNAL CODE ERROR IN ", function.name, "\ntext.coord AND box.coord DO NOT HAVE THE SAME x COLUMN CONTENT\n\n============\n\n")
+stop(tempo.cat)
+}
+}
+# end stat coordinates
+# stat display
+# performed twice: first for y values >=0, then y values < 0, because only a single value allowed for hjust anf vjust
+if(stat.disp.mean == FALSE){
+tempo.log.high <- if(diff(y.lim) > 0){box.coord$middle >= 0}else{box.coord$middle < 0}
+tempo.log.low <- if(diff(y.lim) > 0){box.coord$middle < 0}else{box.coord$middle >= 0}
+}else{
+tempo.log.high <- if(diff(y.lim) > 0){box.coord$MEAN >= 0}else{box.coord$MEAN < 0}
+tempo.log.low <- if(diff(y.lim) > 0){box.coord$MEAN < 0}else{box.coord$MEAN >= 0}
+}
+if(any(tempo.log.high) == TRUE){
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::annotate(
+geom = "text", 
+x = get(if(is.null(dot.color)){"box.coord"}else{"text.coord"})$x[tempo.log.high], # get(if(is.null(dot.color)){"box.coord"}else{"text.coord"}) for text just above error boxs or dots
+y = get(if(is.null(dot.color)){"box.coord"}else{"text.coord"})[tempo.log.high, if(is.null(dot.color)){"middle"}else{"text.max.pos"}], 
+label = if(stat.disp.mean == FALSE){fun_round(box.coord$middle, 2)[tempo.log.high]}else{fun_round(box.coord$MEAN, 2)[tempo.log.high]}, 
+size = stat.size, 
+color = "black", 
+hjust = ifelse(vertical == TRUE, 0.5, 0.5 - stat.dist), 
+vjust = ifelse(vertical == TRUE, 0.5 - stat.dist, 0.5)
+)) # beware: no need of order() for labels because box.coord$x set the order
+}
+if(any(tempo.log.low) == TRUE){
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::annotate(
+geom = "text", 
+x = get(if(is.null(dot.color)){"box.coord"}else{"text.coord"})$x[tempo.log.low], # get(if(is.null(dot.color)){"box.coord"}else{"text.coord"}) for text just above error boxs or dots
+y = get(if(is.null(dot.color)){"box.coord"}else{"text.coord"})[tempo.log.low, if(is.null(dot.color)){"middle"}else{"text.min.pos"}], 
+label = if(stat.disp.mean == FALSE){fun_round(box.coord$middle, 2)[tempo.log.low]}else{fun_round(box.coord$MEAN, 2)[tempo.log.low]}, 
+size = stat.size, 
+color = "black", 
+hjust = ifelse(vertical == TRUE, 0.5, 0.5 + stat.dist), 
+vjust = ifelse(vertical == TRUE, 0.5 + stat.dist, 0.5)
+)) # beware: no need of order() for labels because box.coord$x set the order
+}
+# end stat display
+coord.names <- c(coord.names, "stat.display.positive", "stat.display.negative")
+}else{
+tempo.cat <- paste0("\n\n============\n\nINTERNAL CODE ERROR IN ", function.name, "\nCODE INCONSISTENCY 9\n\n============\n\n")
+stop(tempo.cat)
+}
+}
+# end stat display
+
+
+
+# y scale management (cannot be before dot plot management)
+# the rescaling aspect is complicated and not intuitive. See:
+# explaination: https://github.com/tidyverse/ggplot2/issues/3948
+# the oob argument of scale_y_continuous() https://ggplot2.tidyverse.org/reference/scale_continuous.html
+# see also https://github.com/rstudio/cheatsheets/blob/master/data-visualization-2.1.pdf
+# secondary ticks
+tempo.coord <- ggplot2::ggplot_build(eval(parse(text = paste(paste(paste0(tempo.gg.name, 1:tempo.gg.count), collapse = " + "), ' + if(vertical == TRUE){ggplot2::coord_cartesian(ylim = if(diff(y.lim) < 0){rev(y.lim)}else{y.lim})}else{ggplot2::coord_flip(ylim = y.lim)}'))))$layout$panel_params[[1]]
+# y.inter.tick.positions: coordinates of secondary ticks (only if y.inter.tick.nb argument is non NULL or if y.log argument is different from "no")
+if(y.log != "no"){ # integer main ticks for log2 and log10
+tempo.scale <- (as.integer(min(y.lim, na.rm = TRUE)) - 1):(as.integer(max(y.lim, na.rm = TRUE)) + 1)
+}else{
+tempo <- if(is.null(attributes(tempo.coord$y$breaks))){tempo.coord$y$breaks}else{unlist(attributes(tempo.coord$y$breaks))}
+if(all(is.na(tempo))){
+tempo.cat <- paste0("\n\n============\n\nINTERNAL CODE ERROR IN ", function.name, "\nONLY NA IN tempo.coord$y$breaks\n\n============\n\n")
+stop(tempo.cat)
+}
+tempo.scale <- fun_scale(lim = y.lim, n = ifelse(is.null(y.tick.nb), length(tempo[ ! is.na(tempo)]), y.tick.nb)) # in ggplot 3.3.0, tempo.coord$y.major_source replaced by tempo.coord$y$breaks. If fact: n = ifelse(is.null(y.tick.nb), length(tempo[ ! is.na(tempo)]), y.tick.nb)) replaced by n = ifelse(is.null(y.tick.nb), 4, y.tick.nb))
+}
+y.inter.tick.values <- NULL
+y.inter.tick.pos <- NULL
+if(y.log != "no"){
+tempo <- fun_inter_ticks(lim = y.lim, log = y.log)
+y.inter.tick.values <- tempo$values
+y.inter.tick.pos <- tempo$coordinates
+# if(vertical == TRUE){ # do not remove in case the bug is fixed
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::annotate(geom = "segment", y = y.inter.tick.pos, yend = y.inter.tick.pos, x = tempo.coord$x.range[1], xend = tempo.coord$x.range[1] + diff(tempo.coord$x.range) / 80))
+# }else{ # not working because  of the ggplot2 bug
+# assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::annotate(geom = "segment", x = y.inter.tick.pos, xend = y.inter.tick.pos, y = tempo.coord$y.range[1], yend = tempo.coord$y.range[1] + diff(tempo.coord$y.range) / 80))
+# }
+coord.names <- c(coord.names, "y.inter.tick.positions")
+}else if(( ! is.null(y.inter.tick.nb)) & y.log == "no"){
+# if(y.inter.tick.nb > 0){ #inactivated because already checked before
+tempo <- fun_inter_ticks(lim = y.lim, log = y.log, breaks = tempo.scale, n = y.inter.tick.nb)
+y.inter.tick.values <- tempo$values
+y.inter.tick.pos <- tempo$coordinates
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::annotate(
+geom = "segment", 
+y = y.inter.tick.pos, 
+yend = y.inter.tick.pos, 
+x = if(vertical == TRUE){tempo.coord$x.range[1]}else{tempo.coord$y.range[1]}, 
+xend = if(vertical == TRUE){tempo.coord$x.range[1] + diff(tempo.coord$x.range) / 80}else{tempo.coord$y.range[1] + diff(tempo.coord$y.range) / 80}
+))
+coord.names <- c(coord.names, "y.inter.tick.positions")
+}
+# end secondary ticks
+# for the ggplot2 bug with y.log, this does not work: eval(parse(text = ifelse(vertical == FALSE & y.log == "log10", "ggplot2::scale_x_continuous", "ggplot2::scale_y_continuous")))
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::scale_y_continuous(
+breaks = tempo.scale, 
+minor_breaks = y.inter.tick.pos, 
+labels = if(y.log == "log10"){scales::trans_format("identity", scales::math_format(10^.x))}else if(y.log == "log2"){scales::trans_format("identity",  scales::math_format(2^.x))}else if(y.log == "no"){ggplot2::waiver()}else{tempo.cat <- paste0("\n\n============\n\nINTERNAL CODE ERROR IN ", function.name, "\nCODE INCONSISTENCY 10\n\n============\n\n") ; stop(tempo.cat)}, 
+expand = c(0, 0), # remove space after after axis limits
+limits = sort(y.lim), # NA indicate that limits must correspond to data limits but ylim() already used
+oob = scales::rescale_none, 
+trans = ifelse(diff(y.lim) < 0, "reverse", "identity") # equivalent to ggplot2::scale_y_reverse() but create the problem of y-axis label disappearance with y.lim decreasing. Thus, do not use. Use ylim() below and after this
+))
+if(vertical == TRUE){
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::coord_cartesian(ylim = y.lim)) #problem of ggplot2::ylim() is taht it redraw new breaks # coord_cartesian(ylim = y.lim)) not used because bug -> y-axis label disappearance with y.lim decreasing # clip = "off" to have secondary ticks outside plot region does not work
+}else{
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::coord_flip(ylim = y.lim)) # clip = "off" to have secondary ticks outside plot region does not work # create the problem of y-axis label disappearance with y.lim decreasing
+
+}
+# end y scale  management (cannot be before dot plot management)
+
+
+
+# legend management
+if( ! is.null(legend.width)){
+legend.final <- get_legend_fun(myggplot = tempo.coord, function.name = function.name) # get legend
+}
+# end legend management
+
+
+# drawing
+fin.plot <- suppressMessages(suppressWarnings(eval(parse(text = paste(paste0(tempo.gg.name, 1:tempo.gg.count), collapse = " + ")))))
+if(plot == TRUE){
+# following lines inactivated because of problem in warn.recov and message.recov
+# assign("env_fun_get_message", new.env())
+# assign("tempo.gg.name", tempo.gg.name, envir = env_fun_get_message)
+# assign("tempo.gg.count", tempo.gg.count, envir = env_fun_get_message)
+# assign("add", add, envir = env_fun_get_message)
+# two next line: for the moment, I cannot prevent the warning printing
+# warn.recov <- fun_get_message(paste(paste(paste0(tempo.gg.name, 1:tempo.gg.count), collapse = " + "), if(is.null(add)){NULL}else{add}), kind = "warning", header = FALSE, print.no = FALSE, env = env_fun_get_message) # for recovering warnings printed by ggplot() functions
+# message.recov <- fun_get_message('print(eval(parse(text = paste(paste(paste0(tempo.gg.name, 1:tempo.gg.count), collapse = " + "), if(is.null(add)){NULL}else{add}))))', kind = "message", header = FALSE, print.no = FALSE, env = env_fun_get_message) # for recovering messages printed by ggplot() functions
+if(is.null(legend.width)){
+suppressMessages(suppressWarnings(print(fin.plot)))
+}else{
+suppressMessages(suppressWarnings(gridExtra::grid.arrange(fin.plot, legend.final, ncol=2, widths=c(1, legend.width))))
+}
+# suppressMessages(suppressWarnings(print(eval(parse(text = paste(paste(paste0(tempo.gg.name, 1:tempo.gg.count), collapse = " + "), if(is.null(add)){NULL}else{add}))))))
+}else{
+# following lines inactivated because of problem in warn.recov and message.recov
+# message.recov <- NULL
+# warn.recov <- NULL
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") PLOT NOT SHOWN AS REQUESTED")
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+}
+# end drawing
+
+
+
+# outputs
+# following lines inactivated because of problem in warn.recov and message.recov
+# if( ! (is.null(warn) & is.null(warn.recov) & is.null(message.recov))){
+# warn <- paste0(warn, "\n\n", if(length(warn.recov) > 0 | length(message.recov) > 0){paste0(paste0("MESSAGES FROM ggplot2 FUNCTIONS: ", ifelse( ! is.null(warn.recov), unique(message.recov), ""), ifelse( ! is.null(message.recov), unique(message.recov), ""), collapse = "\n\n"), "\n\n")})
+# }else if( ! (is.null(warn) & is.null(warn.recov)) & is.null(message.recov)){
+# warn <- paste0(warn, "\n\n", if(length(warn.recov) > 0){paste0(paste0("MESSAGES FROM ggplot2 FUNCTIONS: ", unique(warn.recov), collapse = "\n\n"), "\n\n")})
+# }else if( ! (is.null(warn) & is.null(message.recov)) & is.null(warn.recov)){
+# warn <- paste0(warn, "\n\n", if(length(message.recov) > 0){paste0(paste0("MESSAGES FROM ggplot2 FUNCTIONS: ", unique(message.recov), collapse = "\n\n"), "\n\n")})
+# }
+if(warn.print == TRUE & ! is.null(warn)){
+warning(paste0("FROM ", function.name, " FUNCTION:\n\n", warn), call. = FALSE) # to recover the warning messages, use return = TRUE
+}
+if(return == TRUE){
+tempo.output <- ggplot2::ggplot_build(fin.plot)
+tempo.output$data <- tempo.output$data[-1] # remove the first data because corresponds to the initial empty boxplot
+if(length(tempo.output$data) != length(coord.names)){
+tempo.cat <- paste0("\n\n================\n\nINTERNAL CODE ERROR IN ", function.name, "\nlength(tempo.output$data) AND length(coord.names) MUST BE IDENTICAL. CODE HAS TO BE MODIFIED\n\n================\n\n")
+stop(tempo.cat)
+}else{
+names(tempo.output$data) <- coord.names
+tempo.output$data <- tempo.output$data[coord.names != "bad_remove"]
+}
+tempo <- tempo.output$layout$panel_params[[1]]
+output <- list(
+data = data1, 
+stat = stat, 
+removed.row.nb = removed.row.nb, 
+removed.rows = removed.rows, 
+plot = c(tempo.output$data, y.inter.tick.values = list(y.inter.tick.values)), 
+panel = facet.categ, 
+axes = list(
+x.range = tempo$x.range, 
+x.labels = if(is.null(attributes(tempo$x$breaks))){tempo$x$breaks}else{tempo$x$scale$get_labels()}, # is.null(attributes(tempo$x$breaks)) test if it is number (TRUE) or character (FALSE)
+x.positions = if(is.null(attributes(tempo$x$breaks))){tempo$x$breaks}else{unlist(attributes(tempo$x$breaks))}, 
+y.range = tempo$y.range, 
+y.labels = if(is.null(attributes(tempo$y$breaks))){tempo$y$breaks}else{tempo$y$scale$get_labels()}, 
+y.positions = if(is.null(attributes(tempo$y$breaks))){tempo$y$breaks}else{unlist(attributes(tempo$y$breaks))}
+), 
+warn = paste0("\n", warn, "\n\n"), 
+ggplot = if(return.ggplot == TRUE){fin.plot}else{NULL} # fin.plot plots the graph if return == TRUE
+)
+return(tempo <- output)
+}
+# end outputs
+# end main code
+}
+
+
+
+
+
+
+
+
+
+# add return.ggplot = FALSE, from boxplot
+# add facet from boxplot if data1 is a dataframe or list of length 1
+# error to fix: 1) accept integers as color, 2) fun_scale but xhuld be ok when importing the job from boxplot
+
+fun_gg_scatter <- function(
+data1, 
+x, 
+y, 
+categ = NULL, 
+legend.name = NULL, 
+color = NULL, 
+geom = "geom_point", 
+alpha = 0.5, 
+dot.size = 2, 
+line.size = 0.5, 
+x.lim = NULL, 
+x.lab = NULL, 
+x.log = "no", 
+x.tick.nb = NULL, 
+x.inter.tick.nb = NULL, 
+x.include.zero = FALSE, 
+x.left.extra.margin = 0.05, 
+x.right.extra.margin = 0.05, 
+x.text.angle = 0, 
+y.lim = NULL, 
+y.lab = NULL, 
+y.log = "no", 
+y.tick.nb = NULL, 
+y.inter.tick.nb = NULL, 
+y.include.zero = FALSE, 
+y.top.extra.margin = 0.05, 
+y.bottom.extra.margin = 0.05, 
+y.text.angle = 0, 
+text.size = 12, 
+title = "", 
+title.text.size = 12, 
+legend.show = TRUE, 
+legend.width = 0.5, 
+raster = FALSE, 
+raster.ratio = 1, 
+raster.threshold = NULL, 
+article = TRUE, 
+grid = FALSE, 
+return = FALSE, 
+plot = TRUE, 
+add = NULL, 
+warn.print = TRUE, 
+lib.path = NULL
+){
+# AIM
+# ggplot2 scatterplot with the possibility to overlay dots from up to 3 different data frames (-> three different legends) and lines from up to 3 different data frames (-> three different legends) -> up to 6 overlays totally
+# for ggplot2 specifications, see: https://ggplot2.tidyverse.org/articles/ggplot2-specs.html
+# WARNINGS
+# rows containing NA in data1[, c(y, categ)] will be removed before processing, with a warning (see below)
+# ARGUMENTS
+# data1: a dataframe compatible with ggplot2, or a list of data frames
+# x: character string of the data1 column name for x-axis. If data1 is a list, then x must be a list of character strings, of same size as data1, with compartment 1 related to compartment 1 of data1, etc. Write NULL for each "geom_hline" in geom argument
+# y: character string of the data1 column name for y-axis. If data1 is a list, then y must be a list of character strings, of same size as data1, with compartment 1 related to compartment 1 of data1, etc. Write NULL for each "geom_vline" in geom argument
+# categ: character string of the data1 column name for categories. If categ == NULL, no categories -> no legend displayed. If data1 is a list, then categ must be a list of character strings, of same size as data1, with compartment 1 related to compartment 1 of data1, etc. Some of the list compartments can be NULL, and other not
+# legend.name: character string of the legend title. If legend.name == NULL and categ != NULL, then legend.name <- categ. If data1 is a list, then legend.name must be a list of character strings, of same size as data1, with compartment 1 related to compartment 1 of data1, etc. Some of the list compartments can be NULL, and other not # add with other legends below
+# color: vector of character string of the colors of categ arguments. If color == NULL, default colors of ggplot2. If non null, it can be either: (1) a single color string (all the dots of the corresponding data1 will have this color, whatever categ NULL or not), (2) if categ non null, a vector of string colors, one for each class of categ (each color will be associated according to the alphabetical order of categ classes), (3) if categ non null, a vector or factor of string colors, like if it was one of the column of data1 data frame (beware: a single color per class of categ and a single class of categ per color must be respected). Integers are also accepted instead of character strings, as long as above rules about length are respected. Integers will be processed by fun_gg_palette() using the max integer value among all the integers in color. If data1 is a list, then color must be a list of character strings or integers, of same size as data1, with compartment 1 related to compartment 1 of data1, etc. Some of the compartments can be NULL. In that case, a different grey color will be used for each NULL compartment
+# geom: character string of the kind of plot. Either "geom_point" (scatterplot), "geom_line" (coordinates plotted then line connection from the lowest to highest coordinates), "geom_path" (line connection respecting the order in data1), "geom_hline" (horizontal line) or "geom_vline" (vertical line). BEWARE: for "geom_hline" or "geom_vline", (1) x or y argument must be NULL, respectively, (2) x.lim or y.lim argument must NOT be NULL, respectively, if only these kind of lines are drawn (if other geom present, then x.lim = NULL and y.lim = NULL will generate x.lim and y.lim defined by these other geom, which is not possible with "geom_hline" or "geom_vline"), (3) the function will draw n lines for n values in the x argument column name of the data1 data frame. If several colors required, the categ argument must be specified and the corresponding categ column name must exist in the data1 data frame with a different class name for each row. If data1 is a list, then geom must be a list of character strings, of same size as data1, with compartment 1 related to compartment 1 of data1, etc.
+# alpha: numeric value (from 0 to 1) of transparency. If data1 is a list, then alpha must be a list of numeric value, of same size as data1, with compartment 1 related to compartment 1 of data1, etc.
+# dot.size: numeric value of point size
+# line.size: numeric value of line size
+# x.lim: 2 numeric values for x-axis range. If NULL, range of x in data1. Order of the 2 values matters (for inverted axis). BEWARE: values of the x.lim must be already in the corresponding log if x.log argument is not "no" (see below)
+# x.lab: a character string or expression for x-axis legend. If NULL, x of the first data frame in data1. Warning message if the elements in x are different between data frames in data1
+# x.log: Either "no" (values in the x argument column of the data1 data frame are not log), "log2" (values in the x argument column of the data1 data frame are log2 transformed) or "log10" (values in the x argument column of the data1 data frame are log10 transformed). BEWARE: the function does not tranform the data, but just displays ticks in a log scale manner. Thus, negative or zero values are allowed
+# x.tick.nb: approximate number of desired label values on the x-axis (n argument of the fun_scale() function). If NULL, the number is managed by ggplot2
+# x.inter.tick.nb: number of desired secondary ticks between main ticks. Ignored if x.log is other than "no" (log scale plotted). Use argument return = TRUE and see $plot$x.second.tick.values to have the values associated to secondary ticks. IF NULL, no secondary ticks
+# x.include.zero: logical. Does x.lim range include 0? Ok even if x.log == TRUE because x, and thus x.lim, must already be log transformed values
+# x.left.extra.margin: single proportion (between 0 and 1) indicating if extra margins must be added to x.lim. If different from 0, add the range of the axis * x.left.extra.margin (e.g., abs(x.lim[2] - x.lim[1]) * x.left.extra.margin) to the left of x-axis
+# x.right.extra.margin: idem as x.left.extra.margin but to the bottom of x-axis
+# x.text.angle: integer value of the text angle for the x-axis labels. Positive values for counterclockwise rotation: 0 for horizontal, 90 for vertical, 180 for upside down etc. Negative values for clockwise rotation: 0 for horizontal, -90 for vertical, -180 for upside down etc.
+# y.lim: 2 numeric values for y-axis range. If NULL, range of y in data1. Order of the 2 values matters (for inverted axis). BEWARE: values of the y.lim must be already in the corresponding log if y.log argument is not "no" (see below)
+# y.lab: a character string or expression for y-axis legend. If NULL, y of the first data frame in data1. Warning message if the elements in y are different between data frames in data1
+# y.log: Either "no" (values in the y argument column of the data1 data frame are not log), "log2" (values in the y argument column of the data1 data frame are log2 transformed) or "log10" (values in the y argument column of the data1 data frame are log10 transformed). BEWARE: the function does not tranform the data, but just displays ticks in a log scale manner. Thus, negative or zero values are allowed
+# y.tick.nb: approximate number of desired label values on the y-axis (n argument of the fun_scale() function). If NULL, the number is managed by ggplot2
+# y.inter.tick.nb: number of desired secondary ticks between main ticks. Ignored if y.log is other than "no" (log scale plotted). Use argument return = TRUE and see $plot$y.second.tick.values to have the values associated to secondary ticks. IF NULL, no secondary ticks
+# y.include.zero: logical. Does y.lim range include 0? Ok even if y.log == TRUE because y, and thus y.lim, must already be log transformed values
+# y.left.extra.margin: single proportion (between 0 and 1) indicating if extra margins must be added to y.lim. If different from 0, add the range of the axis * y.left.extra.margin (e.g., abs(y.lim[2] - y.lim[1]) * y.left.extra.margin) to the left of y-axis
+# y.right.extra.margin: idem as y.left.extra.margin but to the bottom of y-axis
+# y.text.angle: integer value of the text angle for the y-axis labels. Positive values for counterclockwise rotation: 0 for horizontal, 90 for vertical, 180 for upside down etc. Negative values for clockwise rotation: 0 for horizontal, -90 for vertical, -180 for upside down etc.
+# text.size: numeric value of the size of the (1) axis numbers and axis legends and (2) texts in the graphic legend
+# title: character string of the graph title
+# title.text.size: numeric value of the title size (in points)
+# legend.show: logical. Show legend? Ignored if categ argument is NULL, because this already generate no legend
+# legend.width: single proportion (between 0 and 1) indicating the relative width of the legend sector (on the right of the plot) relative to the width of the plot. Value 1 means that the window device width is split in 2, half for the plot and half for the legend. Value 0 means no room for the legend which will overlay the plot region. If categ argument is NULL or legend.show argument is FALSE, an empty legend space is created, which can be useful when desiring graphs of exactly the same width, whatever they have legends or not. Write NULL to inactivate the legend sector. In such case, ggplot2 will manage the room required for the legend display, meaning that the width of the plotting region can vary between graphs, depending on the text in the legend
+# raster: logical. Dots in raster mode? If FALSE, dots from each geom_point from geom argument are in vectorial mode (bigger pdf and long to display if millions of dots). If TRUE, dots from each geom_point from geom argument are in matricial mode (smaller pdf and easy display if millions of dots, but long to generate the layer). If TRUE, the raster.ratio argument is used to avoid an ellipsoid representation of the dots. If TRUE, solve the transparency problem with some GUI. Overriden by raster.threshold if non NULL
+# raster.ratio: single numeric value indicating the height / width ratio of the graphic device used (for instance provided by the $dim of the output of the fun_open() function). The default value is 1 because by default R opens a square graphic device. But this argument has to be set when using other device dimensions. Ignored if raster == FALSE
+# raster.threshold: positive integer value indicating the limit of the dot number above which geom_point from geom argument switch from vectorial mode to raster mode (see the raster argument). If any layer is raster, then raster.ratio argument is used to avoid an ellipsoid representation of the dots. Inactive the raster argument if non NULL
+# article: logical. If TRUE, use a article theme (article like). If FALSE, use a classic related ggplot theme. Use the add argument (add = "+ggplot2::theme_classic()" for the exact classic ggplot theme
+# grid: logical. Draw horizontal and vertical lines in the background to better read the values? Not considered if article == FALSE
+# return: logical. Return the graph info?
+# plot: logical. Plot the graphic? If FALSE and return argument is TRUE, graphical parameters and associated warnings are provided without plotting
+# add: character string allowing to add more ggplot2 features (dots, lines, themes, facet, etc.). Ignored if NULL
+# BEWARE: (1) the string must start with "+", (2) the string must finish with ")" and (3) each function must be preceded by "ggplot2::". Example: "+ ggplot2::coord_flip() + ggplot2::theme_bw()"
+# If the character string contains the "ggplot2::theme" string, then the article argument of fun_gg_boxplot() (see above) is ignored with a warning
+# Handle the add argument with caution since added functions can create conflicts with the preexisting internal ggplot2 functions
+# warn.print: logical. Print warnings at the end of the execution? If TRUE, no print if no warning message generated
+# lib.path: character string indicating the absolute path of the required packages (see below). if NULL, the function will use the R library default folders
+# REQUIRED PACKAGES
+# ggplot2
+# if raster plots are drawn (see the raster and raster.threshold arguments):
+# Cairo
+# grid
+# REQUIRED FUNCTIONS FROM CUTE_LITTLE_R_FUNCTION
+# fun_gg_empty_graph()
+# fun_gg_palette()
+# fun_gg_point_rast()
+# fun_pack()
+# fun_check()
+# fun_round()
+# fun_scale()
+# fun_inter_ticks()
+# RETURN
+# a scatter plot is plot argument is TRUE
+# a list of the graph info if return argument is TRUE:
+# $data: the graphic info coordinates
+# $removed.row.nb: a list of the removed rows numbers in data frames (because of NA). NULL if no row removed
+# $removed.rows: a list of the removed rows in data frames (because of NA). NULL if no row removed
+# $axes: the x-axis and y-axis info
+# $warn: the warning messages. Use cat() for proper display. NULL if no warning
+# EXAMPLES
+# DEBUGGING
+# set.seed(1) ; obs1 <- data.frame(km = rnorm(1000, 10, 3), time = rnorm(1000, 10, 3), group1 = rep(c("A1", "A2"), 500)) ; obs2 <-data.frame(km = rnorm(1000, 15, 3), time = rnorm(1000, 15, 3), group2 = rep(c("G1", "G2"), 500)) ; set.seed(NULL) ; obs1$km[2:3] <- NA ; data1 = list(L1 = obs1, L2 = obs2) ; x = list(L1 = "km", L2 = "km") ; y = list(L1 = "time", L2 = "time") ; categ = list(L1 = "group1", L2 = "group2") ; legend.name = NULL ; color = list(L1 = 4:5, L2 = 7:8) ; geom = list(L1 = "geom_point", L2 = "geom_point") ; alpha = list(L1 = 0.5, L2 = 0.5) ; dot.size = 3 ; line.size = 0.5 ; x.lim = NULL ; x.lab = "KM" ; x.log = "no" ; x.tick.nb = 10 ; x.inter.tick.nb = 1 ; x.left.extra.margin = 0 ; x.right.extra.margin = 0 ; y.lim = c(1, 25) ; y.lab = "TIME (s)" ; y.log = "no" ; y.tick.nb = 5 ; y.inter.tick.nb = 2 ; y.top.extra.margin = 0 ; y.bottom.extra.margin = 0 ; x.include.zero = TRUE ; y.include.zero = TRUE ; x.text.angle = 0 ; y.text.angle = 0 ; text.size = 12 ; title = "" ; title.text.size = 8 ; legend.show = TRUE ; legend.width = 0.5 ; article = FALSE ; grid = FALSE ; raster = TRUE ; raster.ratio = 1 ; raster.threshold = NULL ; return = FALSE ; plot = TRUE ; add = NULL ; warn.print = TRUE ; lib.path = NULL
+# data1 <- list(L1 = data.frame(a = 1:6, b = (1:6)^2, group = c("A", "A", "A", "B", "B", "B")), L2 = data.frame(a = (1:6)*2, b = ((1:6)^2)*2, group = c("A1", "A1", "A1", "B1", "B1", "B1")), L3 = data.frame(a = (1:6)*3, b = ((1:6)^2)*3, group3 = c("A4", "A5", "A6", "A7", "B4", "B5"))) ; data1$L1$a[3] <- NA ; data1$L1$group[5] <- NA ; data1$L3$group3[4] <- NA ; data1 ; x = list(L1 = names(data1$L1)[1], L2 = names(data1$L2)[1], L3 = NULL) ; y = list(L1 = names(data1$L1)[2], L2 = names(data1$L2)[2], L3 = "a") ; categ = list(L1 = "group", L2 = NULL, L3 = NULL) ; legend.name = NULL ; color = NULL ; geom = list(L1 = "geom_point", L2 = "geom_point", L3 = "geom_hline") ; alpha = list(L1 = 0.5, L2 = 0.5, L3 = 0.5) ; dot.size = 1 ; line.size = 0.5 ; x.lim = c(14, 4) ; x.lab = NULL ; x.log = "log10" ; x.tick.nb = 10 ; x.inter.tick.nb = 4 ; x.left.extra.margin = 0 ; x.right.extra.margin = 0 ; y.lim = c(60, 5) ; y.lab = NULL ; y.log = "log10" ; y.tick.nb = 10 ; y.inter.tick.nb = 2 ; y.top.extra.margin = 0 ; y.bottom.extra.margin = 0  ; x.include.zero = TRUE ; y.include.zero = TRUE ; x.text.angle = 0 ; y.text.angle = 0 ; text.size = 12 ; title = "" ; title.text.size = 8 ; legend.show = TRUE ; legend.width = 0.5 ; article = TRUE ; grid = FALSE ; raster = FALSE ; raster.ratio = 1 ; raster.threshold = NULL ; return = TRUE ; plot = TRUE ; add = NULL ; warn.print = TRUE ; lib.path = NULL
+# data1 <- data.frame(km = 2:7, time = (2:7)^2, group = c("A", "A", "A", "B", "B", "B")) ; data1 ; x = "km"; y = "time"; categ = "group"; legend.name = NULL ; color = NULL ; geom = "geom_point"; alpha = 0.1 ; dot.size = 1 ; line.size = 0.5 ; x.lim = c(1,10) ; x.lab = NULL ; x.log = "log10" ; x.tick.nb = 10 ; x.inter.tick.nb = 4 ; x.left.extra.margin = 0 ; x.right.extra.margin = 0 ; y.lim = NULL ; y.lab = expression(paste("TIME (", 10^-20, " s)")) ; y.log = "log10" ; y.tick.nb = 10 ; y.inter.tick.nb = 2 ; y.top.extra.margin = 0 ; y.bottom.extra.margin = 0  ; x.include.zero = TRUE ; y.include.zero = TRUE ; x.text.angle = 0 ; y.text.angle = 0 ; text.size = 12 ; title = "" ; title.text.size = 8 ; legend.show = TRUE ; legend.width = 0.5 ; article = FALSE ; grid = FALSE ; raster = FALSE ; raster.ratio = 1 ; raster.threshold = NULL ; return = FALSE ; plot = TRUE ; add = NULL ; warn.print = TRUE ; lib.path = NULL
+# function name
+function.name <- paste0(as.list(match.call(expand.dots=FALSE))[[1]], "()")
+# end function name
+# required function checking
+req.function <- c(
+"fun_check", 
+"fun_gg_just", 
+"fun_gg_empty_graph", 
+"fun_gg_palette", 
+"fun_gg_point_rast", 
+"fun_round", 
+"fun_pack", 
+"fun_scale", 
+"fun_inter_ticks"
+)
+for(i1 in req.function){
+if(length(find(i1, mode = "function")) == 0){
+tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": REQUIRED ", i1, "() FUNCTION IS MISSING IN THE R ENVIRONMENT\n\n================\n\n")
+stop(tempo.cat)
+}
+}
+# end required function checking
+# reserved words to avoid bugs (used in this function)
+reserved.words <- c("fake_x", "fake_y", "fake_categ", "color")
+# end reserved words to avoid bugs (used in this function)
+# primary argument checking
+arg.check <- NULL #
+text.check <- NULL #
+checked.arg.names <- NULL # for function debbuging: used by r_debugging_tools
+ee <- expression(arg.check <- c(arg.check, tempo$problem) , text.check <- c(text.check, tempo$text) , checked.arg.names <- c(checked.arg.names, tempo$fun.name))
+tempo1 <- fun_check(data = data1, class = "data.frame", na.contain = TRUE, fun.name = function.name, print = FALSE)
+tempo2 <- fun_check(data = data1, class = "list", na.contain = TRUE, fun.name = function.name, print = FALSE)
+if(tempo1$problem == TRUE & tempo2$problem == TRUE){
+tempo.cat <- paste0("ERROR IN ", function.name, ": data1 ARGUMENT MUST BE A DATA FRAME OR A LIST OF DATA FRAMES")
+text.check <- c(text.check, tempo.cat)
+arg.check <- c(arg.check, TRUE)
+}
+if( ! is.null(x)){
+tempo1 <- fun_check(data = x, class = "vector", mode = "character", na.contain = TRUE, length = 1, fun.name = function.name, print = FALSE)
+tempo2 <- fun_check(data = x, class = "list", na.contain = TRUE, fun.name = function.name, print = FALSE)
+if(tempo1$problem == TRUE & tempo2$problem == TRUE){
+tempo.cat <- paste0("ERROR IN ", function.name, ": x ARGUMENT MUST BE A SINGLE CHARACTER STRING OR A LIST OF CHARACTER STRINGS")
+text.check <- c(text.check, tempo.cat)
+arg.check <- c(arg.check, TRUE)
+}
+}
+if( ! is.null(y)){
+tempo1 <- fun_check(data = y, class = "vector", mode = "character", na.contain = TRUE, length = 1, fun.name = function.name, print = FALSE)
+tempo2 <- fun_check(data = y, class = "list", na.contain = TRUE, fun.name = function.name, print = FALSE)
+if(tempo1$problem == TRUE & tempo2$problem == TRUE){
+tempo.cat <- paste0("ERROR IN ", function.name, ": y ARGUMENT MUST BE A SINGLE CHARACTER STRING OR A LIST OF CHARACTER STRINGS")
+text.check <- c(text.check, tempo.cat)
+arg.check <- c(arg.check, TRUE)
+}
+}
+if( ! is.null(categ)){
+tempo1 <- fun_check(data = categ, class = "vector", mode = "character", na.contain = TRUE, length = 1, fun.name = function.name, print = FALSE)
+tempo2 <- fun_check(data = categ, class = "list", na.contain = TRUE, fun.name = function.name, print = FALSE)
+if(tempo1$problem == TRUE & tempo2$problem == TRUE){
+tempo.cat <- paste0("ERROR IN ", function.name, ": categ ARGUMENT MUST BE A SINGLE CHARACTER STRING OR A LIST OF CHARACTER STRINGS")
+text.check <- c(text.check, tempo.cat)
+arg.check <- c(arg.check, TRUE)
+}
+}
+if( ! is.null(legend.name)){
+tempo1 <- fun_check(data = legend.name, class = "vector", mode = "character", na.contain = TRUE, length = 1, fun.name = function.name, print = FALSE)
+tempo2 <- fun_check(data = legend.name, class = "list", na.contain = TRUE, fun.name = function.name, print = FALSE)
+if(tempo1$problem == TRUE & tempo2$problem == TRUE){
+tempo.cat <- paste0("ERROR IN ", function.name, ": legend.name ARGUMENT MUST BE A SINGLE CHARACTER STRING OR A LIST OF CHARACTER STRINGS")
+text.check <- c(text.check, tempo.cat)
+arg.check <- c(arg.check, TRUE)
+}
+}
+if( ! is.null(color)){
+tempo1 <- fun_check(data = color, class = "vector", mode = "character", na.contain = TRUE, fun.name = function.name, print = FALSE)
+tempo2 <- fun_check(data = color, class = "list", na.contain = TRUE, fun.name = function.name, print = FALSE)
+if(tempo1$problem == TRUE & tempo2$problem == TRUE){
+tempo.cat <- paste0("ERROR IN ", function.name, ": color ARGUMENT MUST BE A VECTOR OF CHARACTER STRING OR A LIST OF CHARACTER VECTORS")
+text.check <- c(text.check, tempo.cat)
+arg.check <- c(arg.check, TRUE)
+}
+}
+if( ! is.null(geom)){
+tempo1 <- fun_check(data = geom, class = "vector", mode = "character", na.contain = TRUE, length = 1, fun.name = function.name, print = FALSE)
+tempo2 <- fun_check(data = geom, class = "list", na.contain = TRUE, fun.name = function.name, print = FALSE)
+if(tempo1$problem == TRUE & tempo2$problem == TRUE){
+tempo.cat <- paste0("ERROR IN ", function.name, ": geom ARGUMENT MUST BE A SINGLE CHARACTER STRING OR A LIST OF CHARACTER STRINGS")
+text.check <- c(text.check, tempo.cat)
+arg.check <- c(arg.check, TRUE)
+}
+}
+tempo1 <- fun_check(data = alpha, prop = TRUE, length = 1, fun.name = function.name, print = FALSE)
+tempo2 <- fun_check(data = alpha, class = "list", na.contain = TRUE, fun.name = function.name, print = FALSE)
+if(tempo1$problem == TRUE & tempo2$problem == TRUE){
+tempo.cat <- paste0("ERROR IN ", function.name, ": alpha ARGUMENT MUST BE A SINGLE NUMERIC VALUE BETWEEN 0 AND 1 OR A LIST OF SUCH VALUES")
+text.check <- c(text.check, tempo.cat)
+arg.check <- c(arg.check, TRUE)
+}
+tempo <- fun_check(data = dot.size, class = "vector", mode = "numeric", length = 1, neg.values = FALSE, fun.name = function.name) ; eval(ee)
+tempo <- fun_check(data = line.size, class = "vector", mode = "numeric", length = 1, neg.values = FALSE, fun.name = function.name) ; eval(ee)
+if( ! is.null(x.lim)){
+tempo <- fun_check(data = x.lim, class = "vector", mode = "numeric", length = 2, fun.name = function.name) ; eval(ee)
+if(tempo$problem == FALSE & any(x.lim %in% c(Inf, -Inf))){
+tempo.cat <- paste0("ERROR IN ", function.name, ": x.lim ARGUMENT CANNOT CONTAIN -Inf OR Inf VALUES")
+text.check <- c(text.check, tempo.cat)
+arg.check <- c(arg.check, TRUE)
+}
+}
+if( ! is.null(x.lab)){
+if(all(class(x.lab) %in% "expression")){ # to deal with math symbols
+tempo <- fun_check(data = x.lab, class = "expression", length = 1, fun.name = function.name) ; eval(ee)
+}else{
+tempo <- fun_check(data = x.lab, class = "vector", mode = "character", length = 1, fun.name = function.name) ; eval(ee)
+}
+}
+tempo <- fun_check(data = x.log, options = c("no", "log2", "log10"), length = 1, fun.name = function.name) ; eval(ee)
+if( ! is.null(x.tick.nb)){
+tempo <- fun_check(data = x.tick.nb, class = "vector", typeof = "integer", length = 1, double.as.integer.allowed = TRUE, fun.name = function.name) ; eval(ee)
+if(tempo$problem == FALSE & x.tick.nb < 0){
+tempo.cat <- paste0("ERROR IN ", function.name, ": x.tick.nb ARGUMENT MUST BE A NON NULL POSITIVE INTEGER")
+text.check <- c(text.check, tempo.cat)
+arg.check <- c(arg.check, TRUE)
+}
+}
+if( ! is.null(x.inter.tick.nb)){
+tempo <- fun_check(data = x.inter.tick.nb, class = "vector", typeof = "integer", length = 1, double.as.integer.allowed = TRUE, fun.name = function.name) ; eval(ee)
+if(tempo$problem == FALSE & x.inter.tick.nb < 0){
+tempo.cat <- paste0("ERROR IN ", function.name, ": x.inter.tick.nb ARGUMENT MUST BE A NON NULL POSITIVE INTEGER")
+text.check <- c(text.check, tempo.cat)
+arg.check <- c(arg.check, TRUE)
+}
+}
+tempo <- fun_check(data = x.include.zero, class = "vector", mode = "logical", length = 1, fun.name = function.name) ; eval(ee)
+tempo <- fun_check(data = x.left.extra.margin, prop = TRUE, length = 1, fun.name = function.name) ; eval(ee)
+tempo <- fun_check(data = x.right.extra.margin, prop = TRUE, length = 1, fun.name = function.name) ; eval(ee)
+tempo <- fun_check(data = x.text.angle, class = "vector", typeof = "integer", double.as.integer.allowed = TRUE, length = 1, neg.values = TRUE, fun.name = function.name) ; eval(ee)
+if( ! is.null(y.lim)){
+tempo <- fun_check(data = y.lim, class = "vector", mode = "numeric", length = 2, fun.name = function.name) ; eval(ee)
+if(tempo$problem == FALSE & any(y.lim %in% c(Inf, -Inf))){
+tempo.cat <- paste0("ERROR IN ", function.name, ": y.lim ARGUMENT CANNOT CONTAIN -Inf OR Inf VALUES")
+text.check <- c(text.check, tempo.cat)
+arg.check <- c(arg.check, TRUE)
+}
+}
+if( ! is.null(y.lab)){
+if(all(class(y.lab) %in% "expression")){ # to deal with math symbols
+tempo <- fun_check(data = y.lab, class = "expression", length = 1, fun.name = function.name) ; eval(ee)
+}else{
+tempo <- fun_check(data = y.lab, class = "vector", mode = "character", length = 1, fun.name = function.name) ; eval(ee)
+}
+}
+tempo <- fun_check(data = y.log, options = c("no", "log2", "log10"), length = 1, fun.name = function.name) ; eval(ee)
+if( ! is.null(y.tick.nb)){
+tempo <- fun_check(data = y.tick.nb, class = "vector", typeof = "integer", length = 1, double.as.integer.allowed = TRUE, fun.name = function.name) ; eval(ee)
+if(tempo$problem == FALSE & y.tick.nb < 0){
+tempo.cat <- paste0("ERROR IN ", function.name, ": y.tick.nb ARGUMENT MUST BE A NON NULL POSITIVE INTEGER")
+text.check <- c(text.check, tempo.cat)
+arg.check <- c(arg.check, TRUE)
+}
+}
+if( ! is.null(y.inter.tick.nb)){
+tempo <- fun_check(data = y.inter.tick.nb, class = "vector", typeof = "integer", length = 1, double.as.integer.allowed = TRUE, fun.name = function.name) ; eval(ee)
+if(tempo$problem == FALSE & y.inter.tick.nb < 0){
+tempo.cat <- paste0("ERROR IN ", function.name, ": y.inter.tick.nb ARGUMENT MUST BE A NON NULL POSITIVE INTEGER")
+text.check <- c(text.check, tempo.cat)
+arg.check <- c(arg.check, TRUE)
+}
+}
+tempo <- fun_check(data = y.include.zero, class = "vector", mode = "logical", length = 1, fun.name = function.name) ; eval(ee)
+tempo <- fun_check(data = y.top.extra.margin, prop = TRUE, length = 1, fun.name = function.name) ; eval(ee)
+tempo <- fun_check(data = y.bottom.extra.margin, prop = TRUE, length = 1, fun.name = function.name) ; eval(ee)
+tempo <- fun_check(data = y.text.angle, class = "vector", typeof = "integer", double.as.integer.allowed = TRUE, length = 1, neg.values = TRUE, fun.name = function.name) ; eval(ee)
+# inactivated because x.lim and y.lim already log transformed
+# if(tempo$problem == FALSE & y.log == TRUE & xy.include.zero == TRUE){
+# warn.count <- warn.count + 1 ; tempo.warn <- paste0("(", warn.count,") BOTH y.log AND xy.include.zero ARGUMENTS SET TO TRUE -> xy.include.zero ARGUMENT RESET TO FALSE")
+# warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+# }
+tempo <- fun_check(data = text.size, class = "vector", mode = "numeric", length = 1, neg.values = FALSE, fun.name = function.name) ; eval(ee)
+tempo <- fun_check(data = title, class = "vector", mode = "character", length = 1, fun.name = function.name) ; eval(ee)
+tempo <- fun_check(data = title.text.size, class = "vector", mode = "numeric", length = 1, neg.values = FALSE, fun.name = function.name) ; eval(ee)
+tempo <- fun_check(data = legend.show, class = "logical", length = 1, fun.name = function.name) ; eval(ee)
+if( ! is.null(legend.width)){
+tempo <- fun_check(data = legend.width, prop = TRUE, length = 1, fun.name = function.name) ; eval(ee)
+}
+tempo <- fun_check(data = raster, class = "logical", length = 1, fun.name = function.name) ; eval(ee)
+tempo <- fun_check(data = raster.ratio, class = "vector", mode = "numeric", length = 1, neg.values = FALSE, fun.name = function.name) ; eval(ee)
+if( ! is.null(raster.threshold)){
+tempo <- fun_check(data = raster.threshold, class = "vector", typeof = "integer", neg.values = FALSE, double.as.integer.allowed = TRUE, fun.name = function.name) ; eval(ee)
+}
+tempo <- fun_check(data = article, class = "logical", length = 1, fun.name = function.name) ; eval(ee)
+tempo <- fun_check(data = grid, class = "logical", length = 1, fun.name = function.name) ; eval(ee)
+tempo <- fun_check(data = return, class = "logical", length = 1, fun.name = function.name) ; eval(ee)
+tempo <- fun_check(data = plot, class = "logical", length = 1, fun.name = function.name) ; eval(ee)
+if( ! is.null(add)){
+tempo <- fun_check(data = add, class = "vector", mode = "character", length = 1, fun.name = function.name) ; eval(ee)
+}
+tempo <- fun_check(data = warn.print, class = "logical", length = 1, fun.name = function.name) ; eval(ee)
+if( ! is.null(lib.path)){
+tempo <- fun_check(data = lib.path, class = "vector", mode = "character", fun.name = function.name) ; eval(ee)
+if(tempo$problem == FALSE){
+if( ! all(dir.exists(lib.path))){ # separation to avoid the problem of tempo$problem == FALSE and lib.path == NA
+tempo.cat <- paste0("ERROR IN ", function.name, ": DIRECTORY PATH INDICATED IN THE lib.path ARGUMENT DOES NOT EXISTS:\n", paste(lib.path, collapse = "\n"))
+text.check <- c(text.check, tempo.cat)
+arg.check <- c(arg.check, TRUE)
+}
+}
+}
+if(any(arg.check) == TRUE){
+stop(paste0("\n\n================\n\n", paste(text.check[arg.check], collapse = "\n"), "\n\n================\n\n"), call. = FALSE) #
+}
+# source("C:/Users/Gael/Documents/Git_versions_to_use/debugging_tools_for_r_dev-v1.2/r_debugging_tools-v1.2.R") ; eval(parse(text = str_basic_arg_check_dev)) ; eval(parse(text = str_arg_check_with_fun_check_dev)) # activate this line and use the function (with no arguments left as NULL) to check arguments status and if they have been checked using fun_check()
+# end primary argument checking
+
+
+
+
+
+
+
+
+# second round of checking and data preparation
+# check list lengths (and names of data1 compartments if non name present)
+warn <- NULL
+warn.count <- 0
+if(all(class(data1) == "list")){
+if(length(data1) > 6){
+tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": data1 ARGUMENT MUST BE A LIST OF 6 DATA FRAMES MAXIMUM (6 OVERLAYS MAX)\n\n================\n\n")
+stop(tempo.cat, call. = FALSE)
+}
+if(is.null(names(data1))){
+names(data1) <- paste0("L", 1:length(data1))
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") NULL NAME COMPARTMENT OF data1 LIST -> NAMES RESPECTIVELY ATTRIBUTED TO EACH COMPARTMENT:\n", paste(names(data1), collapse = " "))
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+}
+if( ! is.null(x)){
+if( ! (all(class(x) == "list") & length(data1) == length(x))){
+tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": x ARGUMENT MUST BE A LIST OF SAME LENGTH AS data1 IF data1 IS A LIST\n\n================\n\n")
+stop(tempo.cat, call. = FALSE)
+}
+}else{
+x <- vector("list", length(data1))
+}
+if( ! is.null(y)){
+if( ! (all(class(y) == "list") & length(data1) == length(y))){
+tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": y ARGUMENT MUST BE A LIST OF SAME LENGTH AS data1 IF data1 IS A LIST\n\n================\n\n")
+stop(tempo.cat, call. = FALSE)
+}
+}else{
+y <- vector("list", length(data1))
+}
+if( ! is.null(categ)){
+if( ! (all(class(categ) == "list") & length(data1) == length(categ))){
+tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": categ ARGUMENT MUST BE A LIST OF SAME LENGTH AS data1 IF data1 IS A LIST\n\n================\n\n")
+stop(tempo.cat, call. = FALSE)
+}
+}
+if( ! is.null(legend.name)){
+if( ! (all(class(legend.name) == "list") & length(data1) == length(legend.name))){
+tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": legend.name ARGUMENT MUST BE A LIST OF SAME LENGTH AS data1 IF data1 IS A LIST\n\n================\n\n")
+stop(tempo.cat, call. = FALSE)
+}
+}
+if( ! is.null(color)){
+if( ! (all(class(color) == "list") & length(data1) == length(color))){
+tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": color ARGUMENT MUST BE A LIST OF SAME LENGTH AS data1 IF data1 IS A LIST\n\n================\n\n")
+stop(tempo.cat, call. = FALSE)
+}
+}
+if( ! (all(class(geom) == "list") & length(data1) == length(geom))){
+tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": geom ARGUMENT MUST BE A LIST OF SAME LENGTH AS data1 IF data1 IS A LIST\n\n================\n\n")
+stop(tempo.cat, call. = FALSE)
+}
+if( ! (all(class(alpha) == "list") & length(data1) == length(alpha))){
+tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": alpha ARGUMENT MUST BE A LIST OF SAME LENGTH AS data1 IF data1 IS A LIST\n\n================\n\n")
+stop(tempo.cat, call. = FALSE)
+}
+}
+# end check list lengths (and names of data1 compartments if non name present)
+# conversion into lists
+if(all(is.data.frame(data1))){
+data1 <- list(L1 = data1)
+if(all(class(x) == "list")){
+tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": x ARGUMENT CANNOT BE A LIST IF data1 IS A DATA FRAME\n\n================\n\n")
+stop(tempo.cat, call. = FALSE)
+}else{
+x <- list(L1 = x)
+}
+if(all(class(y) == "list")){
+tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": y ARGUMENT CANNOT BE A LIST IF data1 IS A DATA FRAME\n\n================\n\n")
+stop(tempo.cat, call. = FALSE)
+}else{
+y <- list(L1 = y)
+}
+if( ! is.null(categ)){
+if(all(class(categ) == "list")){
+tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": categ ARGUMENT CANNOT BE A LIST IF data1 IS A DATA FRAME\n\n================\n\n")
+stop(tempo.cat, call. = FALSE)
+}else{
+categ <- list(L1 = categ)
+}
+}
+if( ! is.null(legend.name)){
+if(all(class(legend.name) == "list")){
+tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": legend.name ARGUMENT CANNOT BE A LIST IF data1 IS A DATA FRAME\n\n================\n\n")
+stop(tempo.cat, call. = FALSE)
+}else{
+legend.name <- list(L1 = legend.name)
+}
+}
+if( ! is.null(color)){
+if(all(class(color) == "list")){
+tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": color ARGUMENT CANNOT BE A LIST IF data1 IS A DATA FRAME\n\n================\n\n")
+stop(tempo.cat, call. = FALSE)
+}else{
+color <- list(L1 = color)
+}
+}
+if(all(class(geom) == "list")){
+tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": geom ARGUMENT CANNOT BE A LIST IF data1 IS A DATA FRAME\n\n================\n\n")
+stop(tempo.cat, call. = FALSE)
+}else{
+geom <- list(L1 = geom)
+}
+if(all(class(alpha) == "list")){
+tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": alpha ARGUMENT CANNOT BE A LIST IF data1 IS A DATA FRAME\n\n================\n\n")
+stop(tempo.cat, call. = FALSE)
+}else{
+alpha <- list(L1 = alpha)
+}
+}else if( ! all(sapply(data1, FUN = "class") == "data.frame")){ # if not a data frame, data1 can only be a list, as tested above
+tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": data1 ARGUMENT MUST BE A DATA FRAME OR A LIST OF DATA FRAMES\n\n================\n\n")
+stop(tempo.cat, call. = FALSE)
+}
+# data, x, y, geom, alpha are list now
+# if non NULL, categ, legend.name, color are list now
+# end conversion into lists
+# legend name filling
+if(is.null(legend.name) & ! is.null(categ)){
+legend.name <- categ
+}else if(is.null(legend.name) & is.null(categ)){
+legend.name <- vector("list", length(data1)) # null list
+}
+# legend.name not NULL anymore (list)
+# end legend name filling
+# ini categ for legend display
+fin.lg.disp <- vector("list", 6) # will be used at the end to display or not legends
+fin.lg.disp[] <- FALSE
+legend.disp <- vector("list", length(data1))
+if(is.null(categ) | legend.show == FALSE){
+legend.disp[] <- FALSE
+}else{
+for(i2 in 1:length(data1)){
+if(is.null(categ[[i2]])){
+legend.disp[[i2]] <- FALSE
+}else{
+legend.disp[[i2]] <- TRUE
+}
+}
+}
+# end ini categ for legend display
+# integer colors into gg_palette
+tempo.check.color <- NULL
+for(i1 in 1:length(data1)){
+if(any(is.na(color[[i1]]))){
+tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": ", ifelse(length(color) == 1, "color", paste0("color NUMBER ", i1)), " IN ", ifelse(length(data1) == 1, "data1 ARGUMENT", paste0("DATA FRAME NUMBER ", i1, " OF data1 ARGUMENT")), ": color ARGUMENT CANNOT CONTAIN NA\n\n================\n\n")
+stop(tempo.cat, call. = FALSE)
+}
+tempo.check.color <- c(tempo.check.color, fun_check(data = color[[i1]], data.name = ifelse(length(color) == 1, "color", paste0("color NUMBER ", i1)), class = "integer", double.as.integer.allowed = TRUE, na.contain = TRUE, fun.name = function.name, print = FALSE)$problem)
+}
+tempo.check.color <- ! tempo.check.color # invert TRUE and FALSE because if integer, then problem = FALSE
+if(any(tempo.check.color == TRUE)){ # convert integers into colors
+tempo.integer <- unlist(color[tempo.check.color])
+tempo.color <- fun_gg_palette(max(tempo.integer, na.rm = TRUE))
+for(i1 in 1:length(data1)){
+if(tempo.check.color[i1] == TRUE){
+color[[i1]] <-tempo.color[color[[i1]]]
+}
+}
+}
+# end integer colors into gg_palette
+
+
+# second round of argument checking
+compart.null.color <- 0 # will be used to attribute a color when color is non NULL but a compartment of color is NULL
+data1.ini <- data1 # to report NA removal
+removed.row.nb <- vector("list", length = length(data1)) # to report NA removal
+removed.rows <- vector("list", length = length(data1)) # to report NA removal
+for(i1 in 1:length(data1)){
+tempo <- fun_check(data = data1[[i1]], data.name = ifelse(length(data1) == 1, "data1 ARGUMENT", paste0("DATA FRAME NUMBER ", i1, " OF data1 ARGUMENT")), class = "data.frame", na.contain = TRUE, fun.name = function.name) ; eval(ee)
+# reserved word checking
+if(any(names(data1[[i1]]) %in% reserved.words)){ # I do not use fun_name_change() because cannot control y before creating "fake_y". But ok because reserved are not that common
+tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": COLUMN NAMES OF ", ifelse(length(data1) == 1, "data1 ARGUMENT", paste0("DATA FRAME NUMBER ", i1, " OF data1 ARGUMENT")), " ARGUMENT CANNOT BE ONE OF THESE WORDS\n", paste(reserved.words, collapse = " "), "\nTHESE ARE RESERVED FOR THE ", function.name, " FUNCTION\n\n================\n\n")
+stop(tempo.cat, call. = FALSE)
+}
+# end reserved word checking
+# check of geom now because required for y argument
+tempo <- fun_check(data = geom[[i1]], data.name = ifelse(length(geom) == 1, "geom", paste0("geom NUMBER ", i1)), options = c("geom_point", "geom_line", "geom_path", "geom_hline", "geom_vline"), length = 1, fun.name = function.name) ; eval(ee)
+# end check of geom now because required for y argument
+if(is.null(x[[i1]])){
+if(all(geom[[i1]] != "geom_hline")){
+tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": ", ifelse(length(x) == 1, "x", paste0("ELEMENT ", i1, " OF x ARGUMENT")), " IN ", ifelse(length(data1) == 1, "data1 ARGUMENT", paste0("DATA FRAME NUMBER ", i1, " OF data1 ARGUMENT")), ": x ARGUMENT CANNOT BE NULL EXCEPT IF ", ifelse(length(geom) == 1, "x", paste0("geom NUMBER ", i1)), " ARGUMENT IS \"geom_hline\"\nHERE geom ARGUMENT IS: ", paste(geom[[i1]], collapse = " "), "\n\n================\n\n")
+stop(tempo.cat, call. = FALSE)
+}else{
+x[[i1]] <- "fake_x"
+data1[[i1]] <- cbind(data1[[i1]], fake_x = NA)
+data1[[i1]][, "fake_x"] <- as.numeric(data1[[i1]][, "fake_x"])
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") NULL ", ifelse(length(x) == 1, "x", paste0("ELEMENT ", i1, " OF x")), " ARGUMENT ASSOCIATED TO ", ifelse(length(geom) == 1, "geom", paste0("geom NUMBER ", i1)), " ARGUMENT ", geom[[i1]], " -> FAKE COLUMN ADDED TO DATA FRAME ", ifelse(length(data1) == 1, "data1 ARGUMENT", paste0("DATA FRAME NUMBER ", i1, " OF data1 ARGUMENT")), ", NAMED \"fake_x\" FOR FINAL DRAWING")
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+}
+}else{
+if(all(geom[[i1]] == "geom_hline")){
+tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": ", ifelse(length(x) == 1, "x", paste0("ELEMENT ", i1, " OF x ARGUMENT")), " IN ", ifelse(length(data1) == 1, "data1 ARGUMENT", paste0("DATA FRAME NUMBER ", i1, " OF data1 ARGUMENT")), ": x ARGUMENT MUST BE NULL IF ", ifelse(length(geom) == 1, "geom", paste0("geom NUMBER ", i1)), " ARGUMENT IS \"geom_hline\"\n\n================\n\n")
+stop(tempo.cat, call. = FALSE)
+}
+tempo <- fun_check(data = x[[i1]], data.name = ifelse(length(x) == 1, "x", paste0("ELEMENT ", i1, " OF x ARGUMENT")), class = "vector", mode = "character", length = 1, fun.name = function.name) ; eval(ee)
+}
+if(is.null(y[[i1]])){
+if(all(geom[[i1]] != "geom_vline")){
+tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": ", ifelse(length(y) == 1, "y", paste0("ELEMENT ", i1, " OF y ARGUMENT")), " IN ", ifelse(length(data1) == 1, "data1 ARGUMENT", paste0("DATA FRAME NUMBER ", i1, " OF data1 ARGUMENT")), ": y ARGUMENT CANNOT BE NULL EXCEPT IF ", ifelse(length(geom) == 1, "y", paste0("geom NUMBER ", i1)), " ARGUMENT IS \"geom_vline\"\nHERE geom ARGUMENT IS: ", paste(geom[[i1]], collapse = " "), "\n\n================\n\n")
+stop(tempo.cat, call. = FALSE)
+}else{
+y[[i1]] <- "fake_y"
+data1[[i1]] <- cbind(data1[[i1]], fake_y = NA)
+data1[[i1]][, "fake_y"] <- as.numeric(data1[[i1]][, "fake_y"])
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") NULL ", ifelse(length(y) == 1, "y", paste0("ELEMENT ", i1, " OF y")), " ARGUMENT ASSOCIATED TO ", ifelse(length(geom) == 1, "geom", paste0("geom NUMBER ", i1)), " ARGUMENT ", geom[[i1]], " -> FAKE COLUMN ADDED TO DATA FRAME ", ifelse(length(data1) == 1, "data1 ARGUMENT", paste0("DATA FRAME NUMBER ", i1, " OF data1 ARGUMENT")), ", NAMED \"fake_y\" FOR FINAL DRAWING")
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+}
+}else{
+if(all(geom[[i1]] == "geom_vline")){
+tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": ", ifelse(length(y) == 1, "y", paste0("ELEMENT ", i1, " OF y ARGUMENT")), " IN ", ifelse(length(data1) == 1, "data1 ARGUMENT", paste0("DATA FRAME NUMBER ", i1, " OF data1 ARGUMENT")), ": y ARGUMENT MUST BE NULL IF ", ifelse(length(geom) == 1, "geom", paste0("geom NUMBER ", i1)), " ARGUMENT IS \"geom_vline\"\n\n================\n\n")
+stop(tempo.cat, call. = FALSE)
+}
+tempo <- fun_check(data = y[[i1]], data.name = ifelse(length(y) == 1, "y", paste0("ELEMENT ", i1, " OF y ARGUMENT")), class = "vector", mode = "character", length = 1, fun.name = function.name) ; eval(ee)
+}
+if( ! (x[[i1]] %in% names(data1[[i1]]))){
+tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": ", ifelse(length(x) == 1, "x", paste0("ELEMENT ", i1, " OF x")), " ARGUMENT MUST BE A COLUMN NAME OF ", ifelse(length(data1) == 1, "data1 ARGUMENT", paste0("DATA FRAME NUMBER ", i1, " OF data1 ARGUMENT")), "\n\n================\n\n")
+stop(tempo.cat, call. = FALSE)
+}
+if( ! (y[[i1]] %in% names(data1[[i1]]))){
+tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": ", ifelse(length(y) == 1, "y", paste0("ELEMENT ", i1, " OF y")), " ARGUMENT MUST BE A COLUMN NAME OF ", ifelse(length(data1) == 1, "data1 ARGUMENT", paste0("DATA FRAME NUMBER ", i1, " OF data1 ARGUMENT")), "\n\n================\n\n")
+stop(tempo.cat, call. = FALSE)
+}
+# na detection and removal (done now to be sure of the correct length of categ)
+if(x[[i1]] == "fake_x" & y[[i1]] == "fake_y"){ # because the code cannot accept to be both "fake_x" and "fake_y" at the same time
+tempo.cat <- paste0("\n\n============\n\nERROR IN ", function.name, ": CODE INCONSISTENCY 2\nTHE CODE CANNOT ACCEPT x AND y TO BE \"fake_x\" AND \"fake_y\" IN THE SAME DATA FRAME ", i1, " \n\n============\n\n")
+stop(tempo.cat, call. = FALSE)
+}
+if(any(is.na(data1[[i1]][, c(if(x[[i1]] == "fake_x"){NULL}else{x[[i1]]}, if(y[[i1]] == "fake_y"){NULL}else{y[[i1]]})]))){
+tempo.removed.row.nb <- unlist(lapply(lapply(c(data1[[i1]][c(if(x[[i1]] == "fake_x"){NULL}else{x[[i1]]}, if(y[[i1]] == "fake_y"){NULL}else{y[[i1]]})]), FUN = is.na), FUN = which))
+removed.row.nb[[i1]] <- c(removed.row.nb[[i1]], tempo.removed.row.nb)
+# report of removed rows will be performed at the very end
+data1[[i1]] <- data1[[i1]][-tempo.removed.row.nb, ]
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") NA DETECTED IN COLUMN ", if(x[[i1]] == "fake_x"){""}else{ifelse(length(x) == 1, "x", paste0("ELEMENT ", i1, " OF x ARGUMENT"))}, if(x[[i1]] != "fake_x" & y[[i1]] != "fake_y"){" AND "}, if(y[[i1]] == "fake_y"){""}else{ifelse(length(y) == 1, "y", paste0("ELEMENT ", i1, " OF y ARGUMENT"))}, " IN ", ifelse(length(data1) == 1, "data1 ARGUMENT", paste0("DATA FRAME NUMBER ", i1, " OF data1 ARGUMENT")), ". CORRESPONDING ROWS HAVE BEEN REMOVED (SEE $removed.row.nb AND $removed.rows)")
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+}
+# end na detection and removal (done now to be sure of the correct length of categ)
+tempo <- fun_check(data = data1[[i1]][, x[[i1]]], data.name = ifelse(length(x) == 1, "x OF data1 ARGUMENT", paste0("ELEMENT ", i1, " OF x ARGUMENT", " IN DATA FRAME NUMBER ", i1, " OF data1 ARGUMENT")), class = "vector", mode = "numeric", na.contain = ifelse(x[[i1]] == "fake_x", TRUE, FALSE), fun.name = function.name) ; eval(ee)
+tempo <- fun_check(data = data1[[i1]][, y[[i1]]], data.name = ifelse(length(y) == 1, "y OF data1 ARGUMENT", paste0("ELEMENT ", i1, " OF y ARGUMENT", " IN DATA FRAME NUMBER ", i1, " OF data1 ARGUMENT")), class = "vector", mode = "numeric", na.contain = ifelse(y[[i1]] == "fake_y", TRUE, FALSE), fun.name = function.name) ; eval(ee)
+if(( ! is.null(categ)) & ( ! is.null(categ[[i1]]))){ # if categ[[i1]] = NULL, fake_categ will be created later on
+tempo <- fun_check(data = categ[[i1]], data.name = ifelse(length(categ) == 1, "categ", paste0("ELEMENT ", i1, " OF categ ARGUMENT")),, class = "vector", mode = "character", length = 1, fun.name = function.name)
+if( ! (categ[[i1]] %in% names(data1[[i1]]))){
+tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": ", ifelse(length(categ) == 1, "categ", paste0("ELEMENT ", i1, " OF categ")), " ARGUMENT MUST BE A COLUMN NAME OF ", ifelse(length(data1) == 1, "data1 ARGUMENT", paste0("DATA FRAME NUMBER ", i1, " OF data1 ARGUMENT")), "\n\n================\n\n")
+stop(tempo.cat, call. = FALSE)
+}
+# na detection and removal (done now to be sure of the correct length of categ)
+if(any(is.na(data1[[i1]][, categ[[i1]]]))){
+tempo.removed.row.nb <- unlist(lapply(lapply(c(data1[[i1]][categ[[i1]]]), FUN = is.na), FUN = which))
+removed.row.nb[[i1]] <- c(removed.row.nb[[i1]], tempo.removed.row.nb)
+# report of removed rows will be performed at the very end
+data1[[i1]] <- data1[[i1]][-tempo.removed.row.nb, ]
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") IN ", ifelse(length(categ) == 1, "categ", paste0("ELEMENT ", i1, " OF categ ARGUMENT")), " IN ", ifelse(length(data1) == 1, "data1 ARGUMENT", paste0("DATA FRAME NUMBER ", i1, " OF data1 ARGUMENT")), ", THE CATEGORY COLUMN:\n", paste(categ[[i1]], collapse = " "), "\nCONTAINS NA")
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+}
+# end na detection and removal (done now to be sure of the correct length of categ)
+tempo1 <- fun_check(data = data1[[i1]][, categ[[i1]]], data.name = ifelse(length(categ) == 1, "categ OF data1 ARGUMENT", paste0("ELEMENT ", i1, " OF categ ARGUMENT IN DATA FRAME NUMBER ", i1, " OF data1 ARGUMENT")), class = "vector", mode = "character", na.contain = FALSE, fun.name = function.name, print = FALSE)
+tempo2 <- fun_check(data = data1[[i1]][, categ[[i1]]], data.name = ifelse(length(categ) == 1, "categ OF data1 ARGUMENT", paste0("ELEMENT ", i1, " OF categ ARGUMENT IN DATA FRAME NUMBER ", i1, " OF data1 ARGUMENT")), class = "factor", na.contain = FALSE, fun.name = function.name, print = FALSE)
+if(tempo1$problem == TRUE & tempo2$problem == TRUE){
+tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": ", ifelse(length(categ) == 1, "categ OF data1 ARGUMENT", paste0("ELEMENT ", i1, " OF categ ARGUMENT IN DATA FRAME NUMBER ", i1, " OF data1 ARGUMENT")), " MUST BE A FACTOR OR CHARACTER VECTOR\n\n================\n\n")
+stop(tempo.cat, call. = FALSE)
+}else if(tempo1$problem == FALSE){
+data1[[i1]][, categ[[i1]]] <- factor(data1[[i1]][, categ[[i1]]]) # if already a factor, change nothing, if characters, levels according to alphabetical order
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") IN ", ifelse(length(categ) == 1, "categ", paste0("ELEMENT ", i1, " OF categ ARGUMENT")), " IN ", ifelse(length(data1) == 1, "data1 ARGUMENT", paste0("DATA FRAME NUMBER ", i1, " OF data1 ARGUMENT")), ", THE CHARACTER COLUMN HAS BEEN CONVERTED TO FACTOR")
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+
+}
+# OK: all the non NULL categ columns of data1 are factors from here
+if(geom[[i1]] == "geom_vline" | geom[[i1]] == "geom_hline"){
+if(length(unique(data1[[i1]][, categ[[i1]]])) != nrow(data1[[i1]])){
+tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": ", ifelse(length(geom) == 1, "geom OF data1 ARGUMENT", paste0("geom NUMBER ", i1, " OF DATA FRAME NUMBER ", i1, " OF data1 ARGUMENT")), " ARGUMENT IS ", geom[[i1]], ", MEANING THAT ", ifelse(length(categ) == 1, "categ OF data1 ARGUMENT", paste0("ELEMENT ", i1, " OF categ ARGUMENT IN DATA FRAME NUMBER ", i1, " OF data1 ARGUMENT")), " MUST HAVE A DIFFERENT CLASS PER LINE OF data1 (ONE x VALUE PER CLASS)\n\n================\n\n")
+stop(tempo.cat, call. = FALSE)
+}
+}
+}else if(( ! is.null(categ)) & is.null(categ[[i1]])){ # if categ[[i1]] = NULL, fake_categ will be created. BEWARE: is.null(categ[[i1]]) means no legend display (see above), because categ has not been precised. This also means a single color for data1[[i1]]
+if(length(color[[i1]]) > 1){ # 0 means is.null(color[[i1]]) and 1 is ok -> single color for data1[[i1]]
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") NULL ", ifelse(length(categ) == 1, "categ", paste0("ELEMENT ", i1, " OF categ")), " ARGUMENT BUT CORRESPONDING COLORS IN ", ifelse(length(color) == 1, "color", paste0("color NUMBER ", i1)), " HAS LENGTH OVER 1\n", paste(color[[i1]], collapse = " "), "\nWHICH IS NOT COMPATIBLE WITH NULL CATEG -> COLOR RESET TO A SINGLE COLOR")
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+color[[i1]] <- NULL # will provide a single color below
+}
+categ[[i1]] <- "fake_categ"
+data1[[i1]] <- cbind(data1[[i1]], fake_categ = "")
+# inactivated because give a different color to different "Line_" categ while a single color for all the data1[[i1]] required. Thus, put back after the color management
+# if(geom[[i1]] == "geom_hline" | geom[[i1]] == "geom_vline"){
+# data1[[i1]][, "fake_categ"] <- paste0("Line_", 1:nrow(data1[[i1]]))
+# }else{
+data1[[i1]][, "fake_categ"] <- data1[[i1]][, "fake_categ"] # as.numeric("") create a vector of NA but class numeric
+# }
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") NULL ", ifelse(length(categ) == 1, "categ", paste0("ELEMENT ", i1, " OF categ")), " ARGUMENT -> FOR DATA FRAME ", ifelse(length(data1) == 1, "data1 ARGUMENT:", paste0("NUMBER ", i1, " OF data1 ARGUMENT:")), "\n- FAKE \"fake_categ\" COLUMN ADDED FILLED WITH \"\"(OR WITH \"Line_...\" FOR LINES)\n- SINGLE COLOR USED FOR PLOTTING\n- NO LEGEND DISPLAYED")
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+}
+if( ! is.null(legend.name[[i1]])){
+tempo <- fun_check(data = legend.name[[i1]], data.name = ifelse(length(legend.name) == 1, "legend.name", paste0("legend.name NUMBER ", i1)),, class = "vector", mode = "character", length = 1, fun.name = function.name)
+}
+if( ! is.null(color)){ # if color is NULL, will be filled later on
+# check the nature of color
+if(is.null(color[[i1]])){
+compart.null.color <- compart.null.color + 1
+color[[i1]] <- grey(compart.null.color / 8) # cannot be more than 7 overlays. Thus 7 different greys. 8/8 is excluded because white dots
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") NULL COLOR IN ", ifelse(length(color) == 1, "color", paste0("color NUMBER ", i1)), " IN ", ifelse(length(data1) == 1, "data1 ARGUMENT", paste0("DATA FRAME NUMBER ", i1, " OF data1 ARGUMENT")), ", SINGLE COLOR ", paste(color[[i1]], collapse = " "), " HAS BEEN ATTRIBUTED")
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+}
+tempo1 <- fun_check(data = color[[i1]], data.name = ifelse(length(color) == 1, "color", paste0("color NUMBER ", i1)), class = "vector", mode = "character", na.contain = TRUE, fun.name = function.name, print = FALSE)
+tempo2 <- fun_check(data = color[[i1]], data.name = ifelse(length(color) == 1, "color", paste0("color NUMBER ", i1)), class = "factor", na.contain = TRUE, fun.name = function.name, print = FALSE)
+if(tempo1$problem == TRUE & tempo2$problem == TRUE){
+tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": ", ifelse(length(color) == 1, "color", paste0("color NUMBER ", i1)), " MUST BE A FACTOR OR CHARACTER VECTOR OR INTEGER VECTOR\n\n================\n\n") # integer possible because dealt above
+stop(tempo.cat, call. = FALSE)
+}else if( ! (all(color[[i1]] %in% colors() | grepl(pattern = "^#", color[[i1]])))){ # check that all strings of low.color start by #
+tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": ", ifelse(length(color) == 1, "color", paste0("color NUMBER ", i1)), " ARGUMENT MUST BE A HEXADECIMAL COLOR VECTOR STARTING BY # AND/OR COLOR NAMES GIVEN BY colors(): ", paste(unique(color[[i1]]), collapse = " "), "\n\n================\n\n")
+stop(tempo.cat, call. = FALSE)
+}
+if(any(is.na(color[[i1]]))){
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") IN ", ifelse(length(color) == 1, "color", paste0("color NUMBER ", i1)), " IN ", ifelse(length(data1) == 1, "data1 ARGUMENT", paste0("DATA FRAME NUMBER ", i1, " OF data1 ARGUMENT")), ", THE COLORS:\n", paste(unique(color[[i1]]), collapse = " "), "\nCONTAINS NA")
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+}
+# end check the nature of color
+# check the length of color
+if(is.null(categ) & length(color[[i1]]) != 1){
+tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": ", ifelse(length(color) == 1, "color", paste0("color NUMBER ", i1)), " ARGUMENT MUST BE A SINGLE COLOR IF categ IS NULL\n\n================\n\n")
+stop(tempo.cat, call. = FALSE)
+}else if( ! is.null(categ)){
+# No problem of NA management by ggplot2 because already removed
+if(categ[[i1]] == "fake_categ" & length(color[[i1]]) != 1){
+tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": ", ifelse(length(color) == 1, "color", paste0("color NUMBER ", i1)), " ARGUMENT MUST BE A SINGLE COLOR IF ", ifelse(length(categ) == 1, "categ", paste0("ELEMENT ", i1, " OF categ ARGUMENT")), " IS NULL\n\n================\n\n")
+stop(tempo.cat, call. = FALSE)
+}else if(length(color[[i1]]) == length(unique(data1[[i1]][, categ[[i1]]]))){ # here length(color) is equal to the different number of categ
+data1[[i1]][, categ[[i1]]] <- factor(data1[[i1]][, categ[[i1]]]) # if already a factor, change nothing, if characters, levels according to alphabetical order
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") IN ", ifelse(length(categ) == 1, "categ", paste0("ELEMENT ", i1, " OF categ ARGUMENT")), " IN ", ifelse(length(data1) == 1, "data1 ARGUMENT", paste0("DATA FRAME NUMBER ", i1, " OF data1 ARGUMENT")), ", THE FOLLOWING COLORS:\n", paste(color[[i1]], collapse = " "), "\nHAVE BEEN ATTRIBUTED TO THESE CLASSES:\n", paste(levels(factor(data1[[i1]][, categ[[i1]]])), collapse = " "))
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+}else if(length(color[[i1]]) == length(data1[[i1]][, categ[[i1]]])){# here length(color) is equal to nrow(data1[[i1]]) -> Modif to have length(color) equal to the different number of categ (length(color) == length(levels(data1[[i1]][, categ[[i1]]])))
+data1[[i1]] <- cbind(data1[[i1]], color = color[[i1]])
+tempo.check <- unique(data1[[i1]][ , c(categ[[i1]], "color")])
+if( ! (nrow(data1[[i1]]) == length(color[[i1]]) & nrow(tempo.check) == length(unique(data1[[i1]][ , categ[[i1]]])))){
+tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": ", ifelse(length(color) == 1, "color", paste0("color NUMBER ", i1)), " ARGUMENT HAS THE LENGTH OF ", ifelse(length(categ) == 1, "categ", paste0("ELEMENT ", i1, " OF categ ARGUMENT")), " IN ", ifelse(length(data1) == 1, "data1 ARGUMENT", paste0("DATA FRAME NUMBER ", i1, " OF data1 ARGUMENT")), " COLUMN VALUES\nBUT IS INCORRECTLY ASSOCIATED TO EACH CLASS OF THIS categ:\n", paste(unique(mapply(FUN = "paste", data1[[i1]][ ,categ[[i1]]], data1[[i1]][ ,"color"])), collapse = "\n"), "\n\n================\n\n")
+stop(tempo.cat, call. = FALSE)
+}else{
+data1[[i1]][, categ[[i1]]] <- factor(data1[[i1]][, categ[[i1]]]) # if already a factor, change nothing, if characters, levels according to alphabetical order
+color[[i1]] <- unique(color[[i1]][order(data1[[i1]][, categ[[i1]]])]) # Modif to have length(color) equal to the different number of categ (length(color) == length(levels(data1[[i1]][, categ[[i1]]])))
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count, ") FROM FUNCTION ", function.name, ": ", ifelse(length(color) == 1, "color", paste0("color NUMBER ", i1)), " ARGUMENT HAS THE LENGTH OF ", ifelse(length(categ) == 1, "categ", paste0("ELEMENT ", i1, " OF categ ARGUMENT")), " IN ", ifelse(length(data1) == 1, "data1 ARGUMENT", paste0("DATA FRAME NUMBER ", i1, " OF data1 ARGUMENT")), " COLUMN VALUES\nCOLORS HAVE BEEN RESPECTIVELY ASSOCIATED TO EACH CLASS OF categ AS:\n", paste(levels(factor(data1[[i1]][, categ[[i1]]])), collapse = " "), "\n", paste(color[[i1]], collapse = " "))
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+}
+}else if(length(color[[i1]]) == 1){
+data1[[i1]][, categ[[i1]]] <- factor(data1[[i1]][, categ[[i1]]]) # if already a factor, change nothing, if characters, levels according to alphabetical order
+color[[i1]] <- rep(color[[i1]], length(levels(data1[[i1]][, categ[[i1]]])))
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") IN ", ifelse(length(categ) == 1, "categ", paste0("ELEMENT ", i1, " OF categ ARGUMENT")), " IN ", ifelse(length(data1) == 1, "data1 ARGUMENT", paste0("DATA FRAME NUMBER ", i1, " OF data1 ARGUMENT")), ", COLOR HAS LENGTH 1 MEANING THAT ALL THE DIFFERENT CLASSES OF ", ifelse(length(categ) == 1, "categ", paste0("ELEMENT ", i1, " OF categ ARGUMENT")), "\n", paste(levels(factor(data1[[i1]][, categ[[i1]]])), collapse = " "), "\nWILL HAVE THE SAME COLOR\n", paste(color[[i1]], collapse = " "))
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+}else{
+tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": ", ifelse(length(color) == 1, "color", paste0("color NUMBER ", i1)), " ARGUMENT MUST BE (1) LENGTH 1, OR (2) THE LENGTH OF ", ifelse(length(categ) == 1, "categ", paste0("ELEMENT ", i1, " OF categ ARGUMENT")), " IN ", ifelse(length(data1) == 1, "data1 ARGUMENT", paste0("DATA FRAME NUMBER ", i1, " OF data1 ARGUMENT")), " COLUMN VALUES, OR (3) THE LENGTH OF THE CLASSES IN THIS COLUMN. HERE IT IS COLOR LENGTH ", length(color[[i1]]), " VERSUS CATEG LENGTH ", length(data1[[i1]][, categ[[i1]]]), " AND CATEG CLASS LENGTH ", length(unique(data1[[i1]][, categ[[i1]]])), "\n\n================\n\n")
+stop(tempo.cat, call. = FALSE)
+}
+}
+}
+if((geom[[i1]] == "geom_hline" | geom[[i1]] == "geom_vline") & ! is.null(categ[[i1]])){ # add here after the color management, to deal with the different lines to plot inside any data[[i1]]
+if(categ[[i1]] == "fake_categ"){
+data1[[i1]][, "fake_categ"] <- factor(paste0("Line_", formatC(1:nrow(data1[[i2]]), width = nchar(nrow(data1[[i2]])), flag = "0")))
+}
+}
+tempo <- fun_check(data = alpha[[i1]], data.name = ifelse(length(color) == 1, "color", paste0("color NUMBER ", i1)), prop = TRUE, length = 1, fun.name = function.name) ; eval(ee)
+}
+if(length(data1) > 1){
+if(length(unique(unlist(x))) > 1){
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") THE x ARGUMENT DOES NOT CONTAIN IDENTICAL COLUMN NAMES:\n", paste(unlist(x), collapse = " "), "\nX-AXIS OVERLAYING DIFFERENT VARIABLES?")
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+}
+}
+if(length(data1) > 1){
+if(length(unique(unlist(y))) > 1){
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") THE y ARGUMENT DOES NOT CONTAIN IDENTICAL COLUMN NAMES:\n", paste(unlist(y), collapse = " "), "\nY-AXIS OVERLAYING DIFFERENT VARIABLES?")
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+}
+}
+if(sum(geom %in% "geom_point") > 3){
+tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": geom ARGUMENT CANNOT HAVE MORE THAN THREE \"geom_point\" ELEMENTS\n\n================\n\n")
+stop(tempo.cat, call. = FALSE)
+}else if(length(geom) - sum(geom %in% "geom_point") > 3){
+tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": geom ARGUMENT CANNOT HAVE MORE THAN THREE LINE ELEMENTS\n\n================\n\n")
+stop(tempo.cat, call. = FALSE)
+}
+if(x.log != "no"){
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") x.log ARGUMENT SET TO ", x.log, ".\nVALUES FROM THE x ARGUMENT COLUMN OF THE data1 DATA FRAME MUST BE ALREADY ", toupper(x.log), " TRANSFORMED, AS THE x.log ARGUMENT JUST MODIFIES THE AXIS SCALE")
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+if( ! is.null(x.lim)){
+if(any(x.lim <= 0)){
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") x.lim ARGUMENT CAN SPAN ZERO OR NEGATIVE VALUES IF x.log ARGUMENT IS SET TO ", x.log, " BECAUSE THIS LATTER ARGUMENT DOES NOT TRANSFORM DATA, JUST MODIFIES THE AXIS SCALE")
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+}else if(any( ! is.finite(if(x.log == "log10"){10^x.lim}else{2^x.lim}))){
+tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": x.lim ARGUMENT RETURNS INF WITH THE x.log ARGUMENT SET TO ", x.log, "\nAS SCALE COMPUTATION IS ", ifelse(x.log == "log10", 10, 2), "^x.lim:\n", paste(ifelse(x.log == "log10", 10, 2)^x.lim, collapse = " "), "\nARE YOU SURE THAT x.lim ARGUMENT HAS BEEN SPECIFIED WITH VALUES ALREADY IN LOG SCALE?\n", paste(x.lim, collapse = " "), "\n\n================\n\n")
+stop(tempo.cat, call. = FALSE)
+}
+}
+}
+if(y.log != "no"){
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") y.log ARGUMENT SET TO ", y.log, ".\nVALUES FROM THE y ARGUMENT COLUMN OF THE data1 DATA FRAME MUST BE ALREADY ", toupper(y.log), " TRANSFORMED, AS THE y.log ARGUMENT JUST MODIFIES THE AXIS SCALE")
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+if( ! is.null(y.lim)){
+if(any(y.lim <= 0)){
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") y.lim ARGUMENT CAN SPAN ZERO OR NEGATIVE VALUES IF y.log ARGUMENT IS SET TO ", y.log, " BECAUSE THIS LATTER ARGUMENT DOES NOT TRANSFORM DATA, JUST MODIFIES THE AXIS SCALE")
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+}else if(any( ! is.finite(if(y.log == "log10"){10^y.lim}else{2^y.lim}))){
+tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": y.lim ARGUMENT RETURNS INF WITH THE y.log ARGUMENT SET TO ", y.log, "\nAS SCALE COMPUTATION IS ", ifelse(y.log == "log10", 10, 2), "^y.lim:\n", paste(ifelse(y.log == "log10", 10, 2)^y.lim, collapse = " "), "\nARE YOU SURE THAT y.lim ARGUMENT HAS BEEN SPECIFIED WITH VALUES ALREADY IN LOG SCALE?\n", paste(y.lim, collapse = " "), "\n\n================\n\n")
+stop(tempo.cat, call. = FALSE)
+}
+}
+}
+if( ! is.null(add)){
+if( ! grepl(pattern = "^\\+", add)){ # check that the add string start by +
+tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": add ARGUMENT MUST START WITH \"+\": ", paste(unique(add), collapse = " "), "\n\n================\n\n")
+stop(tempo.cat, call. = FALSE)
+}else if( ! grepl(pattern = "ggplot2::", add)){ #
+tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": add ARGUMENT MUST CONTAIN \"ggplot2::\" IN FRONT OF EACH GGPLOT2 FUNCTION: ", paste(unique(add), collapse = " "), "\n\n================\n\n")
+stop(tempo.cat, call. = FALSE)
+}else if( ! grepl(pattern = ")$", add)){ # check that the add string finished by )
+tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, ": add ARGUMENT MUST FINISH BY \")\": ", paste(unique(add), collapse = " "), "\n\n================\n\n")
+stop(tempo.cat, call. = FALSE)
+}
+}
+# end second round of argument checking
+# end second round of checking and data preparation
+
+
+
+
+
+# package checking
+fun_pack(req.package = c("ggplot2", "gridExtra"), lib.path = lib.path)
+# packages Cairo and grid tested by fun_gg_point_rast()
+# end package checking
+
+
+
+
+# main code
+# axes management
+if(is.null(x.lim)){
+if(any(unlist(mapply(FUN = "[[", data1, x, SIMPLIFY = FALSE)) %in% c(Inf, -Inf))){
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") THE x COLUMN IN data1 CONTAINS -Inf OR Inf VALUES THAT WILL NOT BE CONSIDERED IN THE PLOT RANGE")
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+}
+x.lim <- suppressWarnings(range(unlist(mapply(FUN = "[[", data1, x, SIMPLIFY = FALSE)), na.rm = TRUE, finite = TRUE)) # finite = TRUE removes all the -Inf and Inf except if only this. In that case, whatever the -Inf and/or Inf present, output -Inf;Inf range. Idem with NA only. x.lim added here. If NULL, ok if x argument has values
+if(suppressWarnings(all(x.lim %in% c(Inf, -Inf)))){
+if(all(unlist(geom) == "geom_hline")){
+tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, " NOT POSSIBLE TO ONLY DRAW geom_hline KIND OF LINES IF x.lim ARGUMENT IS SET TO NULL, SINCE NO X-AXIS DEFINED (", ifelse(length(x) == 1, "x", paste0("ELEMENT ", i1, " OF x")), " ARGUMENT MUST BE NULL FOR THESE KIND OF LINES)\n\n================\n\n")
+stop(tempo.cat, call. = FALSE)
+}else{
+tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, " x.lim ARGUMENT MADE OF NA, -Inf OR Inf ONLY: ", paste(x.lim, collapse = " "), "\n\n================\n\n")
+stop(tempo.cat, call. = FALSE)
+}
+}
+}
+x.lim.order <- order(x.lim) # to deal with inverse axis
+# print(x.lim.order)
+x.lim <- sort(x.lim)
+x.lim[1] <- x.lim[1] - abs(x.lim[2] - x.lim[1]) * ifelse(diff(x.lim.order) > 0, x.right.extra.margin, x.left.extra.margin) # diff(x.lim.order) > 0 means not inversed axis
+x.lim[2] <- x.lim[2] + abs(x.lim[2] - x.lim[1]) * ifelse(diff(x.lim.order) > 0, x.left.extra.margin, x.right.extra.margin) # diff(x.lim.order) > 0 means not inversed axis
+if(x.include.zero == TRUE){ # no need to check x.log != "no" because done before
+x.lim <- range(c(x.lim, 0), na.rm = TRUE, finite = TRUE) # finite = TRUE removes all the -Inf and Inf except if only this. In that case, whatever the -Inf and/or Inf present, output -Inf;Inf range. Idem with NA only
+}
+x.lim <- x.lim[x.lim.order]
+if(any(is.na(x.lim))){
+tempo.cat <- paste0("\n\n============\n\nERROR IN ", function.name, ": CODE INCONSISTENCY 3\n\n============\n\n")
+stop(tempo.cat, call. = FALSE)
+}
+if(is.null(y.lim)){
+if(any(unlist(mapply(FUN = "[[", data1, y, SIMPLIFY = FALSE)) %in% c(Inf, -Inf))){
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") THE y COLUMN IN data1 CONTAINS -Inf OR Inf VALUES THAT WILL NOT BE CONSIDERED IN THE PLOT RANGE")
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+}
+y.lim <- suppressWarnings(range(unlist(mapply(FUN = "[[", data1, y, SIMPLIFY = FALSE)), na.rm = TRUE, finite = TRUE)) # finite = TRUE removes all the -Inf and Inf except if only this. In that case, whatever the -Inf and/or Inf present, output -Inf;Inf range. Idem with NA only. y.lim added here. If NULL, ok if y argument has values
+if(suppressWarnings(all(y.lim %in% c(Inf, -Inf)))){ # happen when y is only NULL
+if(all(unlist(geom) == "geom_vline")){
+tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, " NOT POSSIBLE TO ONLY DRAW geom_vline KIND OF LINES IF y.lim ARGUMENT IS SET TO NULL, SINCE NO Y-AXIS DEFINED (", ifelse(length(y) == 1, "y", paste0("ELEMENT ", i1, " OF y")), " ARGUMENT MUST BE NULL FOR THESE KIND OF LINES)\n\n================\n\n")
+stop(tempo.cat, call. = FALSE)
+}else{
+tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, " y.lim ARGUMENT MADE OF NA, -Inf OR Inf ONLY: ", paste(y.lim, collapse = " "), "\n\n================\n\n")
+stop(tempo.cat, call. = FALSE)
+}
+}
+}
+y.lim.order <- order(y.lim) # to deal with inverse axis
+y.lim <- sort(y.lim)
+y.lim[1] <- y.lim[1] - abs(y.lim[2] - y.lim[1]) * ifelse(diff(y.lim.order) > 0, y.bottom.extra.margin, y.top.extra.margin) # diff(y.lim.order) > 0 means not inversed axis
+y.lim[2] <- y.lim[2] + abs(y.lim[2] - y.lim[1]) * ifelse(diff(y.lim.order) > 0, y.top.extra.margin, y.bottom.extra.margin) # diff(y.lim.order) > 0 means not inversed axis
+if(y.include.zero == TRUE){ # no need to check y.log != "no" because done before
+y.lim <- range(c(y.lim, 0), na.rm = TRUE, finite = TRUE) # finite = TRUE removes all the -Inf and Inf except if only this. In that case, whatever the -Inf and/or Inf present, output -Inf;Inf range. Idem with NA only
+}
+y.lim <- y.lim[y.lim.order]
+if(any(is.na(y.lim))){
+tempo.cat <- paste0("\n\n============\n\nERROR IN ", function.name, ": CODE INCONSISTENCY 4\n\n============\n\n")
+stop(tempo.cat, call. = FALSE)
+}
+# end axes management
+
+
+
+
+# create a fake categ if NULL to deal with legend display
+if(is.null(categ)){
+categ <- vector("list", length(data1))
+categ[] <- "fake_categ"
+for(i2 in 1:length(data1)){
+data1[[i2]] <- cbind(data1[[i2]], fake_categ = "")
+if(geom[[i2]] == "geom_hline" | geom[[i2]] == "geom_vline"){
+data1[[i2]][, "fake_categ"] <- factor(paste0("Line_", 1:nrow(data1[[i2]])))
+}
+}
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") NULL categ ARGUMENT -> FAKE \"fake_categ\" COLUMN ADDED TO EACH DATA FRAME OF data1, AND FILLED WITH \"\"")
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+}
+# end create a fake categ if NULL to deal with legend display
+
+
+
+
+# vector of color with length as in data1
+if(is.null(color)){
+color <- vector("list", length(data1))
+length.categ.list <- lapply(lapply(mapply(FUN = "[[", data1, categ, SIMPLIFY = FALSE), FUN = unique), FUN = function(x){length(x[ ! is.na(x)])})
+length.categ.list[sapply(categ, FUN = "==", "fake_categ")] <- 1 # when is.null(color), a single color for all the dots or lines of data[[i1]] that contain "fake_categ" category
+total.categ.length <- sum(unlist(length.categ.list), na.rm = TRUE)
+tempo.color <- fun_gg_palette(total.categ.length)
+tempo.count <- 0
+for(i3 in 1:length(data1)){
+color[[i3]] <- tempo.color[(1:length.categ.list[[i3]]) + tempo.count]
+tempo.count <- tempo.count + length.categ.list[[i3]]
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") NULL color ARGUMENT -> COLORS RESPECTIVELY ATTRIBUTED TO EACH CLASS OF ", ifelse(length(categ) == 1, "categ", paste0("ELEMENT ", i3, " OF categ ARGUMENT")), " (", categ[[i3]], ") IN ", ifelse(length(data1) == 1, "data1 ARGUMENT", paste0("DATA FRAME NUMBER ", i3, " OF data1 ARGUMENT")), ":\n", paste(color[[i3]], collapse = " "), "\n", paste(if(all(levels(data1[[i3]][, categ[[i3]]]) == "")){'\"\"'}else{levels(data1[[i3]][, categ[[i3]]])}, collapse = " "))
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+}
+}
+# end vector of color with length as in data1
+
+
+
+
+# last check
+for(i1 in 1:length(data1)){
+if(categ[[i1]] != "fake_categ" & length(color[[i1]]) != length(unique(data1[[i1]][, categ[[i1]]]))){
+tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, " LAST CHECK: ", ifelse(length(color) == 1, "color", paste0("color NUMBER ", i1)), " ARGUMENT MUST HAVE THE LENGTH OF LEVELS OF ", ifelse(length(categ) == 1, "categ", paste0("ELEMENT ", i1, " OF categ ARGUMENT")), " IN ", ifelse(length(data1) == 1, "data1 ARGUMENT", paste0("DATA FRAME NUMBER ", i1, " OF data1 ARGUMENT")), "\nHERE IT IS COLOR LENGTH ", length(color[[i1]]), " VERSUS CATEG LEVELS LENGTH ", length(unique(data1[[i1]][, categ[[i1]]])), "\n\n================\n\n")
+stop(tempo.cat, call. = FALSE)
+}else if(categ[[i1]] == "fake_categ" & length(color[[i1]]) != 1){
+tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, " LAST CHECK: ", ifelse(length(color) == 1, "color", paste0("color NUMBER ", i1)), " ARGUMENT MUST HAVE LENGTH 1 WHEN ", ifelse(length(categ) == 1, "categ", paste0("ELEMENT ", i1, " OF categ ARGUMENT")), " IS NULL\nHERE IT IS COLOR LENGTH ", length(color[[i1]]), "\n\n================\n\n")
+stop(tempo.cat, call. = FALSE)
+}
+}
+# end last check
+
+
+
+
+
+# conversion of geom_hline and geom_vline
+for(i1 in 1:length(data1)){
+if(geom[[i1]] == "geom_hline" | geom[[i1]] == "geom_vline"){
+final.data.frame <- data.frame()
+for(i3 in 1:nrow(data1[[i1]])){
+tempo.data.frame <- rbind(data1[[i1]][i3, ], data1[[i1]][i3, ])
+if(geom[[i1]] == "geom_hline"){
+tempo.data.frame[, x[[i1]]] <- x.lim
+}else if(geom[[i1]] == "geom_vline"){
+tempo.data.frame[, y[[i1]]] <- y.lim
+}else{
+tempo.cat <- paste0("\n\n============\n\nERROR IN ", function.name, ": CODE INCONSISTENCY 5\n\n============\n\n")
+stop(tempo.cat, call. = FALSE)
+}
+# 3 lines below inactivated because I put that above
+# if(is.null(categ[[i1]])){
+# data1[, "fake_categ"] <- paste0("Line_", i3)
+# }
+final.data.frame <- rbind(final.data.frame, tempo.data.frame)
+}
+data1[[i1]] <- final.data.frame
+geom[[i1]] <- "geom_line"
+if(length(color[[i1]]) == 1){
+color[[i1]] <- rep(color[[i1]], length(unique(data1[[i1]][ , categ[[i1]]])))
+}else if(length(color[[i1]]) != length(unique(data1[[i1]][ , categ[[i1]]]))){
+tempo.cat <- paste0("\n\n================\n\nERROR IN ", function.name, " geom_hline AND geom_vline CONVERSION TO FIT THE XLIM AND YLIM LIMITS OF THE DATA: ", ifelse(length(color) == 1, "color", paste0("color NUMBER ", i1)), " ARGUMENT MUST HAVE THE LENGTH OF LEVELS OF ", ifelse(length(categ) == 1, "categ", paste0("ELEMENT ", i1, " OF categ ARGUMENT")), " IN ", ifelse(length(data1) == 1, "data1 ARGUMENT", paste0("DATA FRAME NUMBER ", i1, " OF data1 ARGUMENT")), "\nHERE IT IS COLOR LENGTH ", length(color[[i1]]), " VERSUS CATEG LEVELS LENGTH ", length(unique(data1[[i1]][, categ[[i1]]])), "\n\n================\n\n")
+stop(tempo.cat, call. = FALSE)
+}
+}
+}
+# end conversion of geom_hline and geom_vline
+
+
+
+
+# kind of geom_point (vectorial or raster)
+scatter.kind <- vector("list", length = length(data1)) # list of same length as data1, that will be used to use either ggplot2::geom_point() (vectorial dot layer) or fun_gg_point_rast() (raster dot layer)
+fix.ratio <- FALSE
+if(is.null(raster.threshold)){
+if(raster == TRUE){
+scatter.kind[] <- "fun_gg_point_rast" # not important to fill everything: will be only used when geom == "geom_point"
+fix.ratio <- TRUE
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") RASTER PLOT GENERATED -> ASPECT RATIO OF THE PLOT REGION SET BY THE raster.ratio ARGUMENT (", fun_round(raster.ratio, 2), ") TO AVOID A BUG OF ELLIPSOID DOT DRAWING")
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+}else{
+scatter.kind[] <- "ggplot2::geom_point"
+}
+}else{
+for(i2 in 1:length(data1)){
+if(geom[[i2]] == "geom_point"){
+if(nrow(data1[[i2]]) <= raster.threshold){
+scatter.kind[[i2]] <- "ggplot2::geom_point"
+}else{
+scatter.kind[[i2]] <- "fun_gg_point_rast"
+fix.ratio <- TRUE
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") ", ifelse(length(data1) == 1, "data1 ARGUMENT", paste0("DATA FRAME NUMBER ", i2, " OF data1 ARGUMENT")), " LAYER AS RASTER (NOT VECTORIAL)")
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+}
+}
+}
+if(any(unlist(scatter.kind) == "fun_gg_point_rast")){
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") RASTER PLOT GENERATED -> ASPECT RATIO OF THE PLOT REGION SET BY THE raster.ratio ARGUMENT (", fun_round(raster.ratio, 2), ") TO AVOID A BUG OF ELLIPSOID DOT DRAWING")
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+}
+}
+# end kind of geom_point (vectorial or raster)
+
+
+
+
+# no need loop part
+coord.names <- NULL
+tempo.gg.name <- "gg.indiv.plot."
+tempo.gg.count <- 0
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::ggplot())
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::xlab(if(is.null(x.lab)){x[[1]]}else{x.lab}))
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::ylab(if(is.null(y.lab)){y[[1]]}else{y.lab}))
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::ggtitle(title))
+# text angle management
+x.tempo.just <- fun_gg_just(angle = x.text.angle, axis = "x")
+y.tempo.just <- fun_gg_just(angle = y.text.angle, axis = "y")
+# end text angle management
+add.check <- TRUE
+if( ! is.null(add)){ # if add is NULL, then = 0
+if(grepl(pattern = "ggplot2::theme", add) == TRUE){
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") \"ggplot2::theme\" STRING DETECTED IN THE add ARGUMENT -> INTERNAL GGPLOT2 THEME FUNCTIONS theme() AND theme_classic() HAVE BEEN INACTIVATED, TO BE USED BY THE USER.
+\nIT IS RECOMMENDED TO USE \"+ theme(aspect.ratio = raster.ratio)\" IF RASTER MODE IS ACTIVATED")
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+add.check <- FALSE
+}
+}
+if(add.check == TRUE & article == TRUE){
+# BEWARE: not possible to add several times theme(). NO message but the last one overwrites the others
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::theme_classic(base_size = text.size))
+if(grid == TRUE){
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), m.gg <- ggplot2::theme(
+text = ggplot2::element_text(size = text.size), 
+plot.title = ggplot2::element_text(size = title.text.size), # stronger than text
+legend.key = ggplot2::element_rect(color = "white", size = 1.5), # size of the frame of the legend
+line = ggplot2::element_line(size = 0.5), 
+axis.line.y.left = ggplot2::element_line(colour = "black"), # draw lines for the y axis
+axis.line.x.bottom = ggplot2::element_line(colour = "black"), # draw lines for the x axis
+panel.grid.major.x = ggplot2::element_line(colour = "grey75"),
+panel.grid.major.y = ggplot2::element_line(colour = "grey75"),
+axis.text.x = ggplot2::element_text(angle = x.tempo.just$angle, hjust = x.tempo.just$hjust, vjust = x.tempo.just$vjust),
+axis.text.y = ggplot2::element_text(angle = y.tempo.just$angle, hjust = y.tempo.just$hjust, vjust = y.tempo.just$vjust), 
+aspect.ratio = if(fix.ratio == TRUE){raster.ratio}else{NULL} # for raster
+))
+}else{
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), m.gg <- ggplot2::theme(
+text = ggplot2::element_text(size = text.size), 
+plot.title = ggplot2::element_text(size = title.text.size), # stronger than text
+line = ggplot2::element_line(size = 0.5), 
+legend.key = ggplot2::element_rect(color = "white", size = 1.5), # size of the frame of the legend
+axis.line.y.left = ggplot2::element_line(colour = "black"), 
+axis.line.x.bottom = ggplot2::element_line(colour = "black"), 
+axis.text.x = ggplot2::element_text(angle = x.tempo.just$angle, hjust = x.tempo.just$hjust, vjust = x.tempo.just$vjust),
+axis.text.y = ggplot2::element_text(angle = y.tempo.just$angle, hjust = y.tempo.just$hjust, vjust = y.tempo.just$vjust), 
+aspect.ratio = if(fix.ratio == TRUE){raster.ratio}else{NULL} # for raster
+))
+}
+}else if(add.check == TRUE & article == FALSE){
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), m.gg <- ggplot2::theme(
+text = ggplot2::element_text(size = text.size), 
+plot.title = ggplot2::element_text(size = title.text.size), # stronger than text
+line = ggplot2::element_line(size = 0.5), 
+legend.key = ggplot2::element_rect(color = "white", size = 1.5), # size of the frame of the legend
+panel.background = ggplot2::element_rect(fill = "grey95"), 
+axis.line.y.left = ggplot2::element_line(colour = "black"), 
+axis.line.x.bottom = ggplot2::element_line(colour = "black"), 
+panel.grid.major.x = ggplot2::element_line(colour = "grey75"), 
+panel.grid.major.y = ggplot2::element_line(colour = "grey75"), 
+panel.grid.minor.x = ggplot2::element_blank(), 
+panel.grid.minor.y = ggplot2::element_blank(), 
+strip.background = ggplot2::element_rect(fill = "white", colour = "black"), 
+axis.text.x = ggplot2::element_text(angle = x.tempo.just$angle, hjust = x.tempo.just$hjust, vjust = x.tempo.just$vjust),
+axis.text.y = ggplot2::element_text(angle = y.tempo.just$angle, hjust = y.tempo.just$hjust, vjust = y.tempo.just$vjust), 
+aspect.ratio = if(fix.ratio == TRUE){raster.ratio}else{NULL} # for raster
+# do not work -> legend.position = "none" # to remove the legend completely: https://www.datanovia.com/en/blog/how-to-remove-legend-from-a-ggplot/
+))
+}
+# end no need loop part
+
+
+
+# loop part
+point.count <- 0
+line.count <- 0
+lg.order <- vector(mode = "list", length = 6) # order of the legend
+lg.order <- lapply(lg.order, as.numeric) # order of the legend
+lg.color <- vector(mode = "list", length = 6) # color of the legend
+lg.alpha <- vector(mode = "list", length = 6) # order of the legend
+lg.alpha <- lapply(lg.alpha, as.numeric) # alpha of the legend
+for(i1 in 1:length(data1)){
+if(geom[[i1]] == "geom_point"){
+point.count <- point.count + 1
+if(point.count == 1){
+fin.lg.disp[[1]] <- legend.disp[[point.count + line.count]]
+lg.order[[1]] <- point.count + line.count
+lg.color[[1]] <- color[[i1]]
+lg.alpha[[1]] <- alpha[[i1]]
+class.categ <- levels(factor(data1[[i1]][, categ[[i1]]]))
+for(i5 in 1:length(color[[i1]])){ # or length(class.categ). It is the same because already checked that lengths are the same
+tempo.data.frame <- data1[[i1]][data1[[i1]][, categ[[i1]]] == class.categ[i5], ]
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), eval(parse(text = scatter.kind[[i1]]))(data = tempo.data.frame, mapping = ggplot2::aes_string(x = x[[i1]], y = y[[i1]], fill = categ[[i1]]), size = dot.size, color = color[[i1]][i5], alpha = alpha[[i1]])) # beware: a single color allowed for color argument  outside aesthetic, hence the loop # legend.show option do not remove the legend, only the aesthetic of the legend (dot, line, etc.)
+coord.names <- c(coord.names, paste0(geom[[i1]], ".", class.categ[i5]))
+}
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::scale_fill_manual(name = if(is.null(legend.name)){NULL}else{legend.name[[i1]]}, values = as.character(color[[i1]]), guide = ggplot2::guide_legend(override.aes = list(colour = color[[i1]], linetype = 0)))) # values are the values of fill. order determines the order in the legend
+}
+if(point.count == 2){
+fin.lg.disp[[2]] <- legend.disp[[point.count + line.count]]
+lg.order[[2]] <- point.count + line.count
+lg.color[[2]] <- color[[i1]]
+lg.alpha[[2]] <- alpha[[i1]]
+class.categ <- levels(factor(data1[[i1]][, categ[[i1]]]))
+for(i5 in 1:length(color[[i1]])){ # or length(class.categ). It is the same because already checked that lengths are the same
+tempo.data.frame <- data1[[i1]][data1[[i1]][, categ[[i1]]] == class.categ[i5], ]
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), eval(parse(text = scatter.kind[[i1]]))(data = tempo.data.frame, mapping = ggplot2::aes_string(x = x[[i1]], y = y[[i1]], shape = categ[[i1]]), size = dot.size, color = color[[i1]][i5], alpha = alpha[[i1]])) # beware: a single color allowed for color argument  outside aesthetic, hence the loop # legend.show option do not remove the legend, only the aesthetic of the legend (dot, line, etc.)
+coord.names <- c(coord.names, paste0(geom[[i1]], ".", class.categ[i5]))
+}
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::scale_shape_manual(name = if(is.null(legend.name)){NULL}else{legend.name[[i1]]}, values = rep(19, length(color[[i1]])), guide = ggplot2::guide_legend(override.aes = list(colour = color[[i1]], linetype = 0)))) # values are the values of shape
+}
+if(point.count == 3){
+fin.lg.disp[[3]] <- legend.disp[[point.count + line.count]]
+lg.order[[3]] <- point.count + line.count
+lg.color[[3]] <- color[[i1]]
+lg.alpha[[3]] <- alpha[[i1]]
+class.categ <- levels(factor(data1[[i1]][, categ[[i1]]]))
+for(i5 in 1:length(color[[i1]])){ # or length(class.categ). It is the same because already checked that lengths are the same
+tempo.data.frame <- data1[[i1]][data1[[i1]][, categ[[i1]]] == class.categ[i5], ]
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), eval(parse(text = scatter.kind[[i1]]))(data = tempo.data.frame, mapping = ggplot2::aes_string(x = x[[i1]], y = y[[i1]], stroke = categ[[i1]]), size = dot.size, color = color[[i1]][i5], alpha = alpha[[i1]])) # beware: a single color allowed for color argument  outside aesthetic, hence the loop # legend.show option do not remove the legend, only the aesthetic of the legend (dot, line, etc.)
+coord.names <- c(coord.names, paste0(geom[[i1]], ".", class.categ[i5]))
+}
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::scale_discrete_manual(aesthetics = "stroke", name = if(is.null(legend.name)){NULL}else{legend.name[[i1]]}, values = rep(0.5, length(color[[i1]])), guide = ggplot2::guide_legend(override.aes = list(colour = color[[i1]], linetype = 0)))) # values are the values of stroke
+}
+}else{
+line.count <- line.count + 1
+if(line.count == 1){
+fin.lg.disp[[4]] <- legend.disp[[point.count + line.count]]
+lg.order[[4]] <- point.count + line.count
+lg.color[[4]] <- color[[i1]]
+if(plot == TRUE & fin.lg.disp[[4]] == TRUE & ((length(dev.list()) > 0 & names(dev.cur()) == "windows") | (length(dev.list()) == 0 & Sys.info()["sysname"] == "Windows"))){ # if any Graph device already open and this device is "windows", or if no Graph device opened yet and we are on windows system -> prevention of alpha legend bug on windows using value 1
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") GRAPHIC DEVICE USED ON A WINDOWS SYSTEM ->\nTRANSPARENCY OF THE LINES IS INACTIVATED IN THE LEGEND TO PREVENT A WINDOWS DEPENDENT BUG (SEE https://github.com/tidyverse/ggplot2/issues/2452)\nTO OVERCOME THIS ON WINDOWS, USE ANOTHER DEVICE (pdf() FOR INSTANCE)")
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+lg.alpha[[4]] <- 1 # to avoid a bug on windows: if alpha argument is different from 1 for lines (transparency), then lines are not correctly displayed in the legend when using the R GUI (bug https://github.com/tidyverse/ggplot2/issues/2452). No bug when using a pdf
+}else{
+lg.alpha[[4]] <- alpha[[i1]]
+}
+class.categ <- levels(factor(data1[[i1]][, categ[[i1]]]))
+for(i5 in 1:length(color[[i1]])){ # or length(class.categ). It is the same because already checked that lengths are the same
+tempo.data.frame <- data1[[i1]][data1[[i1]][, categ[[i1]]] == class.categ[i5], ]
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), eval(parse(text = paste("ggplot2::", geom[[i1]], sep ="")))(data = tempo.data.frame, mapping = ggplot2::aes_string(x = x[[i1]], y = y[[i1]], linetype = categ[[i1]]), color = color[[i1]][i5], size = line.size, lineend = "round", alpha = alpha[[i1]])) # beware: a single color allowed for color argument  outside aesthetic, hence the loop # legend.show option do not remove the legend, only the aesthetic of the legend (dot, line, etc.)
+coord.names <- c(coord.names, paste0(geom[[i1]], ".", class.categ[i5]))
+}
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::scale_discrete_manual(aesthetics = "linetype", name = if(is.null(legend.name)){NULL}else{legend.name[[i1]]}, values = rep(1, length(color[[i1]])), guide = ggplot2::guide_legend(override.aes = list(colour = color[[i1]], shape = NA)))) # values are the values of linetype. 1 means solid. Regarding the alpha bug, I have tried different things without success: alpha in guide alone, in geom alone, in both, with different values 
+}
+if(line.count == 2){
+fin.lg.disp[[5]] <- legend.disp[[point.count + line.count]]
+lg.order[[5]] <- point.count + line.count
+lg.color[[5]] <- color[[i1]]
+if(plot == TRUE & fin.lg.disp[[5]] == TRUE & ((length(dev.list()) > 0 & names(dev.cur()) == "windows") | (length(dev.list()) == 0 & Sys.info()["sysname"] == "Windows"))){ # if any Graph device already open and this device is "windows", or if no Graph device opened yet and we are on windows system -> prevention of alpha legend bug on windows using value 1
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") GRAPHIC DEVICE USED ON A WINDOWS SYSTEM ->\nTRANSPARENCY OF THE LINES IS INACTIVATED IN THE LEGEND TO PREVENT A WINDOWS DEPENDENT BUG (SEE https://github.com/tidyverse/ggplot2/issues/2452)\nTO OVERCOME THIS ON WINDOWS, USE ANOTHER DEVICE (pdf() FOR INSTANCE)")
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+lg.alpha[[5]] <- 1 # to avoid a bug on windows: if alpha argument is different from 1 for lines (transparency), then lines are not correctly displayed in the legend when using the R GUI (bug https://github.com/tidyverse/ggplot2/issues/2452). No bug when using a pdf
+}else{
+lg.alpha[[5]] <- alpha[[i1]]
+}
+class.categ <- levels(factor(data1[[i1]][, categ[[i1]]]))
+for(i5 in 1:length(color[[i1]])){ # or length(class.categ). It is the same because already checked that lengths are the same
+tempo.data.frame <- data1[[i1]][data1[[i1]][, categ[[i1]]] == class.categ[i5], ]
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), eval(parse(text = paste("ggplot2::", geom[[i1]], sep ="")))(data = tempo.data.frame, mapping = ggplot2::aes_string(x = x[[i1]], y = y[[i1]], alpha = categ[[i1]]), color = color[[i1]][i5], size = line.size, lineend = "round")) # beware: a single color allowed for color argument outside aesthetic, hence the loop # legend.show option do not remove the legend, only the aesthetic of the legend (dot, line, etc.)
+coord.names <- c(coord.names, paste0(geom[[i1]], ".", class.categ[i5]))
+}
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::scale_discrete_manual(aesthetics = "alpha", name = if(is.null(legend.name)){NULL}else{legend.name[[i1]]}, values = rep(alpha[[i1]], length(color[[i1]])), guide = ggplot2::guide_legend(override.aes = list(colour = color[[i1]], shape = NA)))) # values are the values of linetype. 1 means solid. Regarding the alpha bug, I have tried different things without success: alpha in guide alone, in geom alone, in both, with different values 
+}
+if(line.count == 3){
+fin.lg.disp[[6]] <- legend.disp[[point.count + line.count]]
+lg.order[[6]] <- point.count + line.count
+lg.color[[6]] <- color[[i1]]
+if(plot == TRUE & fin.lg.disp[[6]] == TRUE & ((length(dev.list()) > 0 & names(dev.cur()) == "windows") | (length(dev.list()) == 0 & Sys.info()["sysname"] == "Windows"))){ # if any Graph device already open and this device is "windows", or if no Graph device opened yet and we are on windows system -> prevention of alpha legend bug on windows using value 1
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") GRAPHIC DEVICE USED ON A WINDOWS SYSTEM ->\nTRANSPARENCY OF THE LINES IS INACTIVATED IN THE LEGEND TO PREVENT A WINDOWS DEPENDENT BUG (SEE https://github.com/tidyverse/ggplot2/issues/2452)\nTO OVERCOME THIS ON WINDOWS, USE ANOTHER DEVICE (pdf() FOR INSTANCE)")
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+lg.alpha[[6]] <- 1 # to avoid a bug on windows: if alpha argument is different from 1 for lines (transparency), then lines are not correctly displayed in the legend when using the R GUI (bug https://github.com/tidyverse/ggplot2/issues/2452). No bug when using a pdf
+}else{
+lg.alpha[[6]] <- alpha[[i1]]
+}
+class.categ <- levels(factor(data1[[i1]][, categ[[i1]]]))
+for(i5 in 1:length(color[[i1]])){ # or length(class.categ). It is the same because already checked that lengths are the same
+tempo.data.frame <- data1[[i1]][data1[[i1]][, categ[[i1]]] == class.categ[i5], ]
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), eval(parse(text = paste("ggplot2::", geom[[i1]], sep ="")))(data = tempo.data.frame, mapping = ggplot2::aes_string(x = x[[i1]], y = y[[i1]], size = categ[[i1]]), color = color[[i1]][i5], alpha = alpha[[i1]], lineend = "round")) # beware: a single color allowed for color argument  outside aesthetic, hence the loop # legend.show option do not remove the legend, only the aesthetic of the legend (dot, line, etc.)
+coord.names <- c(coord.names, paste0(geom[[i1]], ".", class.categ[i5]))
+}
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::scale_discrete_manual(aesthetics = "size", name = if(is.null(legend.name)){NULL}else{legend.name[[i1]]}, values = rep(line.size, length(color[[i1]])), guide = ggplot2::guide_legend(override.aes = list(colour = color[[i1]], shape = NA)))) # values are the values of linetype. 1 means solid. Regarding the alpha bug, I have tried different things without success: alpha in guide alone, in geom alone, in both, with different values 
+}
+}
+}
+# end loop part
+
+
+
+
+# legend display
+tempo.legend.final <- 'ggplot2::guides(fill = if(fin.lg.disp[[1]] == TRUE){ggplot2::guide_legend(order = lg.order[[1]], override.aes = list(alpha = lg.alpha[[1]], color = lg.color[[1]]))}else{FALSE}, shape = if(fin.lg.disp[[2]] == TRUE){ggplot2::guide_legend(order = lg.order[[2]], override.aes = list(alpha = lg.alpha[[2]], color = lg.color[[2]]))}else{FALSE}, stroke = if(fin.lg.disp[[3]] == TRUE){ggplot2::guide_legend(order = lg.order[[3]], override.aes = list(alpha = lg.alpha[[2]], color = lg.color[[3]]))}else{FALSE}, linetype = if(fin.lg.disp[[4]] == TRUE){ggplot2::guide_legend(order = lg.order[[4]], override.aes = list(alpha = lg.alpha[[4]], color = lg.color[[4]]))}else{FALSE}, alpha = if(fin.lg.disp[[5]] == TRUE){ggplot2::guide_legend(order = lg.order[[5]], override.aes = list(alpha = lg.alpha[[5]], color = lg.color[[5]]))}else{FALSE}, size = if(fin.lg.disp[[6]] == TRUE){ggplot2::guide_legend(order = lg.order[[6]], override.aes = list(alpha = lg.alpha[[6]], color = lg.color[[6]]))}else{FALSE})' # clip = "off" to have secondary ticks outside plot region does not work
+if( ! is.null(legend.width)){
+if(any(unlist(legend.disp))){ # means some TRUE
+tempo.graph.info <- ggplot2::ggplot_build(eval(parse(text = paste0(paste(paste0(tempo.gg.name, 1:tempo.gg.count), collapse = " + "), ' + ', tempo.legend.final)))) # will be recovered later again, when ylim will be considered
+legend.final <- fun_gg_get_legend(ggplot_built = tempo.graph.info, fun.name = function.name) # get legend
+fin.lg.disp[] <- FALSE # remove all the legends because now in legend.final
+if(is.null(legend.final)){ # even if any(unlist(legend.disp)) id TRUE
+legend.final <- fun_gg_empty_graph() # empty graph instead of legend
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") LEGEND REQUESTED (NON NULL categ ARGUMENT OR legend.show ARGUMENT SET TO TRUE)\nBUT IT SEEMS THAT THE PLOT HAS NO LEGEND -> EMPTY LEGEND SPACE CREATED BECAUSE OF THE NON NULL legend.width ARGUMENT\n")
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+}
+}else{ # means all FALSE
+legend.final <- fun_gg_empty_graph() # empty graph instead of legend
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") LEGEND REQUESTED (NON NULL categ ARGUMENT OR legend.show ARGUMENT SET TO TRUE)\nBUT IT SEEMS THAT THE PLOT HAS NO LEGEND -> EMPTY LEGEND SPACE CREATED BECAUSE OF THE NON NULL legend.width ARGUMENT\n")
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+}
+}
+if( ! any(unlist(legend.disp))){
+fin.lg.disp[] <- FALSE # remove all the legends
+}
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), eval(parse(text = tempo.legend.final)))
+# end legend display
+
+
+
+
+
+# scale management
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::coord_cartesian(xlim = x.lim, ylim = y.lim)) # clip = "off" to have secondary ticks outside plot region does not work
+tempo.coord <- ggplot2::ggplot_build(eval(parse(text = paste(paste0(tempo.gg.name, 1:tempo.gg.count), collapse = " + "))))$layout$panel_params[[1]]
+# x-axis secondary ticks (after ggplot2::coord_cartesian() or ggplot2::coord_flip())
+# tempo.coord <- ggplot2::ggplot_build(eval(parse(text = paste(paste0(tempo.gg.name, 1:tempo.gg.count), collapse = " + "))))$layout$panel_params[[1]]
+x.second.tick.values <- NULL
+x.tempo.tick.pos <- NULL
+if(x.log != "no"){
+tempo <- fun_inter_ticks(lim = x.lim, log = x.log)
+x.second.tick.values <- tempo$values
+x.tempo.tick.pos <- tempo$coordinates
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::annotate(geom = "segment", x = x.tempo.tick.pos, xend = x.tempo.tick.pos, y = tempo.coord$y.range[1], yend = tempo.coord$y.range[1] + diff(tempo.coord$y.range) / 80))
+coord.names <- c(coord.names, "x.second.tick.positions")
+}else if(( ! is.null(x.inter.tick.nb)) & x.log == "no"){
+if(x.inter.tick.nb > 0){
+x.ticks.pos <- if(is.null(attributes(tempo.coord$x$breaks))){tempo.coord$x$breaks}else{unlist(attributes(tempo.coord$x$breaks))} # layout$panel_params[[1]]$x$breaks can be characters (labels of the axis). In that case, it has attributes that corresponds to positions # code before ggplot2 3.3.0: suppressWarnings(as.numeric(tempo.coord$x.labels)) # too difficult to predict the behavior of tempo.coord$x.major_source depending on x.lim neg or not, inv or not
+x.ticks.pos <- x.ticks.pos[ ! is.na(x.ticks.pos)]
+if(length(x.ticks.pos) == 0){
+tempo.cat <- paste0("\n\n============\n\nINTERNAL CODE ERROR IN ", function.name, ": CODE INCONSISTENCY 12\n\n============\n\n")
+stop(tempo.cat)
+}
+tick.dist <- mean(diff(x.ticks.pos), na.rm = TRUE)
+minor.tick.dist <- tick.dist / (x.inter.tick.nb + 1)
+x.tempo.tick.pos <- seq(x.ticks.pos[1] - tick.dist, x.ticks.pos[length(x.ticks.pos)] + tick.dist, by = minor.tick.dist)
+x.tempo.tick.pos <- x.tempo.tick.pos[x.tempo.tick.pos >= min(x.lim) & x.tempo.tick.pos <= max(x.lim)]
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::annotate(geom = "segment", x = x.tempo.tick.pos, xend = x.tempo.tick.pos, y = tempo.coord$y.range[1], yend = tempo.coord$y.range[1] + diff(tempo.coord$y.range) / 80))
+x.second.tick.values <- x.tempo.tick.pos
+coord.names <- c(coord.names, "x.second.tick.positions")
+}
+}
+# end x-axis secondary ticks (after ggplot2::coord_cartesian() or ggplot2::coord_flip())
+# x-axis ticks and inv
+if(is.null(x.tick.nb) & x.log != "no"){ # integer main ticks for log2 and log10
+tempo.scale <- (as.integer(min(x.lim, na.rm = TRUE)) - 1):(as.integer(max(x.lim, na.rm = TRUE)) + 1)
+}else{
+tempo <- if(is.null(attributes(tempo.coord$x$breaks))){tempo.coord$x$breaks}else{unlist(attributes(tempo.coord$x$breaks))}
+tempo.scale <- fun_scale(lim = x.lim, n = ifelse(is.null(x.tick.nb), length(tempo[ ! is.na(tempo)]), x.tick.nb)) # in ggplot 3.3.0, tempo.coord$x.major_source replaced by tempo.coord$x$breaks
+}
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::scale_x_continuous(
+breaks = tempo.scale, 
+minor_breaks = x.tempo.tick.pos, # add the grid of the minor ticks
+labels = if(x.log == "log10"){
+scales::trans_format("identity",  scales::math_format(10^.x))
+}else if(x.log == "log2"){
+scales::trans_format("identity",  scales::math_format(2^.x))
+}else if(x.log == "no"){
+ggplot2::waiver()
+}else{
+tempo.cat <- paste0("\n\n============\n\nERROR IN ", function.name, ": CODE INCONSISTENCY 6\n\n============\n\n") ; stop(tempo.cat, call. = FALSE)
+}, 
+expand = c(0, 0), # remove space after after axis limits
+limits = NA, # indicate that limits must correspond to data limits
+trans = ifelse(diff(x.lim) < 0, "reverse", "identity") # equivalent to ggplot2::scale_x_reverse()
+))
+# end x-axis ticks and inv
+# y-axis secondary ticks (after ggplot2::coord_cartesian() or ggplot2::coord_flip())
+# tempo.coord <- ggplot2::ggplot_build(eval(parse(text = paste(paste0(tempo.gg.name, 1:tempo.gg.count), collapse = " + "))))$layout$panel_params[[1]]
+y.second.tick.values <- NULL
+y.tempo.tick.pos <- NULL
+if(y.log != "no"){
+tempo <- fun_inter_ticks(lim = y.lim, log = y.log)
+y.second.tick.values <- tempo$values
+y.tempo.tick.pos <- tempo$coordinates
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::annotate(geom = "segment", y = y.tempo.tick.pos, yend = y.tempo.tick.pos, x = tempo.coord$x.range[1], xend = tempo.coord$x.range[1] + diff(tempo.coord$x.range) / 80))
+coord.names <- c(coord.names, "y.second.tick.positions")
+}else if(( ! is.null(y.inter.tick.nb)) & y.log == "no"){
+if(y.inter.tick.nb > 0){
+ticks.pos <- if(is.null(attributes(tempo.coord$y$breaks))){tempo.coord$y$breaks}else{unlist(attributes(tempo.coord$y$breaks))} # layout$panel_params[[1]]$y$breaks can be characters (labels of the axis). In that case, it has attributes that corresponds to positions # code before ggplot2 3.3.0: suppressWarnings(as.numeric(tempo.coord$y.labels)) # too difficult to predict the behavior of tempo.coord$x.major_source depending on y.lim neg or not, inv or not
+ticks.pos <- ticks.pos[ ! is.na(ticks.pos)]
+if(length(ticks.pos) == 0){
+tempo.cat <- paste0("\n\n============\n\nINTERNAL CODE ERROR IN ", function.name, ": CODE INCONSISTENCY 12\n\n============\n\n")
+stop(tempo.cat)
+}
+tick.dist <- mean(diff(ticks.pos), na.rm = TRUE)
+minor.tick.dist <- tick.dist / (y.inter.tick.nb + 1)
+y.tempo.tick.pos <- seq(ticks.pos[1] - tick.dist, ticks.pos[length(ticks.pos)] + tick.dist, by = minor.tick.dist)
+y.tempo.tick.pos <- y.tempo.tick.pos[y.tempo.tick.pos >= min(y.lim) & y.tempo.tick.pos <= max(y.lim)]
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::annotate(geom = "segment", y = y.tempo.tick.pos, yend = y.tempo.tick.pos, x = tempo.coord$x.range[1], xend = tempo.coord$x.range[1] + diff(tempo.coord$x.range) / 80))
+y.second.tick.values <- y.tempo.tick.pos
+coord.names <- c(coord.names, "y.second.tick.positions")
+}
+}
+# end y-axis secondary ticks (after ggplot2::coord_cartesian() or ggplot2::coord_flip())
+# y-axis ticks and inv
+# tempo.coord <- ggplot2::ggplot_build(eval(parse(text = paste(paste0(tempo.gg.name, 1:tempo.gg.count), collapse = " + "))))$layout$panel_params[[1]]
+if(is.null(y.tick.nb) & y.log != "no"){ # integer main ticks for log2 and log10
+tempo.scale <- (as.integer(min(y.lim, na.rm = TRUE)) - 1):(as.integer(max(y.lim, na.rm = TRUE)) + 1)
+}else{
+tempo <- if(is.null(attributes(tempo.coord$y$breaks))){tempo.coord$y$breaks}else{unlist(attributes(tempo.coord$y$breaks))}
+tempo.scale <- fun_scale(lim = y.lim, n = ifelse(is.null(y.tick.nb), length(tempo[ ! is.na(tempo)]), y.tick.nb)) # in ggplot 3.3.0, tempo.coord$y.major_source replaced by tempo.coord$y$breaks
+}
+assign(paste0(tempo.gg.name, tempo.gg.count <- tempo.gg.count + 1), ggplot2::scale_y_continuous(
+breaks = tempo.scale, 
+minor_breaks = y.tempo.tick.pos, # add the grid of the minor ticks
+labels = if(y.log == "log10"){
+scales::trans_format("identity",  scales::math_format(10^.x))
+}else if(y.log == "log2"){
+scales::trans_format("identity",  scales::math_format(2^.x))
+}else if(y.log == "no"){
+ggplot2::waiver()
+}else{
+tempo.cat <- paste0("\n\n============\n\nERROR IN ", function.name, ": CODE INCONSISTENCY 7\n\n============\n\n") ; stop(tempo.cat, call. = FALSE)
+}, 
+expand = c(0, 0), # remove space after after axis limits
+limits = NA, # indicate that limits must correspond to data limits
+trans = ifelse(diff(y.lim) < 0, "reverse", "identity") # equivalent to ggplot2::scale_y_reverse()
+))
+# end y-axis ticks and inv
+# end scale management
+
+
+
+
+# drawing
+fin.plot <- eval(parse(text = paste(paste(paste0(tempo.gg.name, 1:tempo.gg.count), collapse = " + "),if(is.null(add)){NULL}else{add})))
+if(plot == TRUE){
+if( ! is.null(legend.width)){ # any(unlist(legend.disp)) == TRUE removed to have empty legend space # not & any(unlist(fin.lg.disp)) == TRUE here because converted to FALSE
+suppressMessages(suppressWarnings(gridExtra::grid.arrange(fin.plot, legend.final, ncol=2, widths=c(1, legend.width))))
+}else{
+suppressMessages(suppressWarnings(print(fin.plot)))
+}
+}else{
+warn.count <- warn.count + 1
+tempo.warn <- paste0("(", warn.count,") PLOT NOT SHOWN AS REQUESTED")
+warn <- paste0(ifelse(is.null(warn), tempo.warn, paste0(warn, "\n\n", tempo.warn)))
+}
+# end drawing
+
+
+
+# outputs
+if(warn.print == TRUE & ! is.null(warn)){
+warning(paste0("FROM ", function.name, " FUNCTION:\n\n", warn), call. = FALSE) # to recover the warning messages, use return = TRUE
+}
+if(return == TRUE){
+output <- ggplot2::ggplot_build(fin.plot)
+# output$data <- output$data[-1] # yes for boxplot but not for scatter # remove the first data because corresponds to the initial empty boxplot
+if(length(output$data) != length(coord.names)){
+tempo.cat <- paste0("\n\n================\n\nINTERNAL CODE ERROR IN ", function.name, ": length(output$data) AND length(coord.names) MUST BE IDENTICAL. CODE HAS TO BE MODIFIED\n\n================\n\n")
+stop(tempo.cat)
+}else{
+names(output$data) <- coord.names
+}
+if(is.null(unlist(removed.row.nb))){
+removed.row.nb <- NULL
+removed.rows <- NULL
+}else{
+for(i3 in 1:length(data1)){
+if( ! is.null(removed.row.nb[[i3]])){
+removed.row.nb[[i3]] <- sort(removed.row.nb[[i3]])
+removed.rows[[i3]] <- data1.ini[[i3]][removed.row.nb[[i3]], ]
+}
+}
+}
+tempo <- output$layout$panel_params[[1]]
+output <- list(
+data = data1, 
+removed.row.nb = removed.row.nb, 
+removed.rows = removed.rows, 
+plot = c(output$data, x.second.tick.values = list(x.second.tick.values), y.second.tick.values = list(y.second.tick.values)), 
+axes = list(
+x.range = tempo$x.range, 
+x.labels = if(is.null(attributes(tempo$x$breaks))){tempo$x$breaks}else{tempo$x$scale$get_labels()}, # is.null(attributes(tempo$x$breaks)) test if it is number (TRUE) or character (FALSE)
+x.positions = if(is.null(attributes(tempo$x$breaks))){tempo$x$breaks}else{unlist(attributes(tempo$x$breaks))}, 
+y.range = tempo$y.range, 
+y.labels = if(is.null(attributes(tempo$y$breaks))){tempo$y$breaks}else{tempo$y$scale$get_labels()}, 
+y.positions = if(is.null(attributes(tempo$y$breaks))){tempo$y$breaks}else{unlist(attributes(tempo$y$breaks))}
+), 
+warn = paste0("\n", warn, "\n\n")
+)
+return(output)
+}
+# end outputs
+# end main code
+}
+
+
+
diff --git a/fun_gg_boxplot.docx b/fun_gg_boxplot.docx
index 342eb1bbf7bd5d931b032f5561cee38296a43dd1..4061c5cf999532971439fdfd35cda628505e0c24 100644
GIT binary patch
delta 86252
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
T0YCu*m!OXUB?gm=0RR91`b_AV

delta 86396
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
H0RR91D4gpR

diff --git a/scatter.docx b/scatter.docx
index d0ae21220b878040202ef315ebecb6ced1f073b5..440f3cc5e8a775b5caec1ebbb1372ef506d98a88 100644
GIT binary patch
delta 85692
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%0A=8#$P6Zf9=}iJw_MqBgu{Iqac}FO75pCbaRn^
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
Q78RHZyuw<YcnS#kFZ*K*l>h($

delta 86131
zcmV)MK)An)k_MTT2C!!d3UL@hqHiw&059W{aS0iJeRJB#n(zO&>VAh_GIa{?I)oQv
zJItCXjBz%#8Bf+p_S~x3vo0AL(6Nv>l8EhW?RUSwr&|KGkT5vLR^y(kacoJ5?tb3i
z|Mj=KiNn5gKd?Rbq*SX^ON_gHZ(zHllhU`Z=WmZoEC?-kU^$-4PfGVZDE-#{zyIf7
zZ(9R@uRoh`H)ME)8?<hx{gcu-45zJk?}GlAPpqIavHQLkc*C&L_a^VW;n42$cekED
zcvr91s^Yh)@AY{Q;QP9k``rpk(d#D5Z}X<y#di%oe`19}#q&q+CYFCQo4&={r&efR
z+m0RH<K5N6_%+^1Y394FXhCo13!;y-<btAqf8tO0OS{PUUirzh=mf+!zVo?*HF$0?
zwx^42Joata;y7N?_f?ztK5^pbZl|?_rSF?>c^w#>`PMB!v3TLq>oN{wAU`y5<T((0
z7f?;Vu~uERnFu2EiuoGWS%UhV@k%C^?ap8GxT8rPE-2z>@cV=B&8G9^Ozoe0+ei0*
zX8tZB%nepnJrtCe+*+{F3zkUt%h;Oo5}Wi}A4jg|Th|U&bXz-Mgps8-n8md>xTk-o
z?6w7FGq^k{RjZAIMzeQXiZ6Wz=~b)s!^Zi+(fr~WA6hdfTz>pBU3%YbHs5!}H%veK
z^aZv%!229N#7CNk;yq)_9SMF$f4`%DhyLEjGv6)eq(l$OYrg!vf9|<qfZJBkw*jNB
zH}h@ovkQJpYZ`alVEJkv=a+m?e95)^*$u?Meb4dy_*>7<tN2fTZ}20&T04%fbZG%%
zeepF1dx)=b_w9#Mdh{L6l2(m>qutXth~rhxlD4ez_HJ8Y`;9diFrSBD=9STZXzF+&
zJ7MRYPhWcbZ0LIvcJ1BKRXU4Mo{T(~C8Rs3H#-MsbNo^cDn7jg(y5Odq<d9J#|Z0&
zR-cCok}-S823Ba*m>n=n{5tfl31^^i#|}c~4VlB;Q8;F`hY@l^E_ifaJ3e|J<F7%;
z*M*SW_km=g$A<P@i`Dj+)$j9vX~=9h<Rhr@%nFzgHT$f-$A&ZaD(G7dXV)|6>EoF*
zVAnv?8+JS9F0&_7&krFQSvcnG@7}e7<qu=7ii(#BuBqP93`w6<B42yn4OuB)Ldy>!
zU+e+&7NTAk4CAD9^}#!}`ZrSW$IteJ4kMqGVt%?L#yY*`aYMXF$ou4f*&j3-T^K-8
z6L`&M@5l073i;-F<KX;MD2rRxhMoX}NR1)#9gT>B!;t$5Jp#Du=IYhPaqUo_&5@bk
z3Z{^)C#9*+1MYw4r8fJE6aM;^_*S1x>9VqCQgeTf4kDrvFIhGhYPH4zkxe1&g(pCv
ze6v6^TxpZCrJw@PpMa=;2N|n6V1jbVf=!^L7Q4x&+kK{h$585{4S0Rf`c474L2K!F
zS*?gAs6E49wZj5PAGE$VXq}Ktv65-fI@8^%4_d>9;3N1<FTQ>HWH8)d___fFeK6dC
z1I!&%$gg7X9O_scW!uP8^lBB9SkOiBpwmX@y++=YwhS*C_HNLBUb>QZkG+pLqP!=p
zME_n*Jp?>TMvpOi%({rKIe)jD>DU7LS1V0}^#<$L#d>|T_kkBy@-SOdoh-0_kR?*j
z+g1XNwSkjy|09=CN$h*tK%F*-&~|K>R|v)P&|6Qc%|>t|d2<ab3Fdq!gL+4#qr6%t
zgFe)KS8?n~9%Yk%;5t&Wj4l-{&}N&t#J<W)zDrwuMBHB4er#1G!b67M7uopQ5JDUD
zZe1ICpO+3K(is$l*9M~5tj*B7(cY0a7ZSaDqt{FCCD+UK9vgaJq$Os^cUAFw-THid
zJbI!Gm_TUvZz}FJ%-dBOZ^BWf_l}=fC>|di9-npMN(-fb{zb8l43SVSf+UjY%(T&?
zKqORK<^L?H=(g|2lS+yz6tKtaBVjM9j|);soYm{fl8ui?IWuiYB^zake)`UAz$-tv
z??KW;Roja4xlX}=awzdhB@oFdCJV<yd_2mTX@f{)ouDs6h2Mp~RYCP6+BXOfe081R
zx88ftCZb1w+wCfMH7d$FT{9BmM~jjykc)4R#)e)Nb)@Ui%USiXQ}52TcgZT7&E|P6
zQ>9lQ7kWx`iTLV9dP)JX3IbQGB2go%lXy^+hb3Qa1jK@DC_ZYq-Ljc`2su|le;>4I
zK!VpgsH?_URLd$Be+kV<ecV{18e60HkBZCcCegBg>Er<~m7cn8_ErrO*lL_6=8<}$
zOdCw#5y4u+1h&xD?+LR1a`ghk1Pl`pO(2&VK2ii1OyCg_+?`<p4@Yo!W2;+W0>)7~
zx7Slmv~)umFoB<p;Oe&HXH%CAk?atWm<aB?!`?dbBw`AgR#JR1;a*Z7HxXQY-Amcr
z_1;8(a9eA1cz*&@FyW1l=}cP}Md(dU0Cyv{tGekUuYT%cg6$d&B~L?%&a5EuA55cI
zHM~LE^4DG%dXpz17~OWCEp*n=Q`C@bL@*|TEAW0xV@%c&a*2Q^3{(@UUB6Fzf^;`Z
zD0qQ+HtQh51Dr3R?dZd*MX>%AmA%(Y`wB6CtIFtMut>6_5eYh0t(LlOUGzdb6iGOx
z+~TlADU3Ee>+uSfLHc!&UK>Pc3;eFkMHmul411TO2=g($+dFvQX~t=yuRD28A54#$
z0S9C6HqQV_bTQFpU)ii2bo}-5TW{4y6PAU@`$f*|3tET|7zRI;5z{+t93Gs<^qQ=H
zc&IlpYOfdHF_gSzMEI$Rr%4||M9a7KARMp4@d)zIK+I3IwOn#Wo6mI|U<ZwZPOTPW
zbQ0IqI|A3EOLRQOx$wl(eV@P^lFRgbD?t4*c>LOhlhuP-=b({=7U~^=7SSbx7Mf*;
zO0=l>G;^L5dBZPgo_9PiJNWVV8QRZ(AV9XyFDl^}!N;+OiLbJ`$2$0tZv`D3)_Z5_
z)Zv6mY2-;E<w+YOXYIa|+o3gK0qO0y%hjV+sf)+WqYegXYeVgAW8;~THiWG!(+PIR
z89(xEl3haUT}8(UIkaVqcAHZB=ftzg1)3YRzTTp&?elQvQ@ay`_-2Hem^83|F2C1D
zlbJeR2n;t0jZtVeQE2o*aBC2o-9~dsq)f!3`Bh~x$DxdbW?m3Pj#rlJdcL)Mw=(rn
zJ_T;Q3X_XvODFcFnbDkBdA3i(m<g}W%Zo`%*OjRijzNP<U7Crh5I32|tTn@@_cPqK
zd3Z!|q%kTOY<F~0qQ8Yws(s3TaeQF1z^Yzt9M^Oj_`CN%3O~-ogTqdv);pZX0p(7s
z2h~O=v%{VGxCjnLmjs4=_URwn9pL1sJtu-KwZ_3qVn;U+sA!9y>o{j(_DZKEx0CV~
zM2E8-`TXeRQi;$T*7^8*0YH9K75N4)#Sk8ShWdd#TLE~(Mk6wx>n!MhTOkqyge`q*
zLp+3I&Zb@v*w?mWhxaV>nD?Fgj&;v4T{B=q9}|>kQ@Y+@1A92+K8I#EutE#>tO*a6
zbiCpbLiVYY-~MG3{)!XuIZtd&W)1~=OZ!rpe{rea0=K0>i|YVSVGhXe(*<_y0pO+g
zr3vh^5p@X@b%By3u$_W`g=B??8i1r7@$mq>JG30<UV+2Q=zc~K7<b&jJ}Gs*nQtRO
z?}FcwGMwEh;?a7G)cuB@zmWS=-nWM~q`&RC!9EK(Z?SP0PJ`CFcad^{worq6$o_y=
zJb&~q$^!}F+iwHBBdCnSiBkYfGFHShV$xqbmlq!|K71(v+zkhRc}BSV-fh78o*P=W
z3r`Na=r9b`Al<+A=RWI~@A1P5`DpKN?ACT1cFmd3Cy+Y>{0jC1)57=q9M*+9+Q%cX
zH!Mc}VR~5^JP40D-tAri@XGL$XT+<{<%e&-_b$E~hI0LA8Lyvj0`4fmI$B@?^owvG
zfW1uMr?#(ALoFD8gj7Zpj!;Ouw4K}IKyjHC&s1ygGbn}@Tm(VLykXLnqnx_25FY6r
zE*!`m6a!sycL3Mj;IlR2r#`oCg#Vjd#CI*$A6vfFr-Gp%MBp}e#&5wfJI8wh949ZQ
z;5}eB&TQf`7oJN-2GZSI>&^};I@t3cC9T$&9Yo~2PaAW8*&UnAK+Dj+7F3-EDQrHR
zLqOZ6Ml{R{<bgzLnc%{HI3eF|4N9B?wQfL8U-d@BE>Jhb!+wSRRbd!QBXx@FBK7T%
zi@2!30dDojtTf`@<Z4Wg(-LX9^e4j<xfz{_vQNVpAITUsal(Qp-p4#q0ems_kXOmJ
z?{|Q0-y61n{R1pP^oPnX!34LBDm21&F5A|COuwhss0%kV67h+>^9jqnaHawo1j3~k
z3&2+?UBn4^2++VVfYvSkWG86?E+FvYs%;mFJ2_^>9+(Wn;+jltK(0eDMS=$(q<5qV
zOUkzMbg<#FSDtIwNyK|0<4#lLXn*lw<3={W@Np%7OjtxSESC&r%8A`)lquuEg!Y;1
zJ=VrM@6`{hnXRKXPmL^6aO+9h6%|_4WfS9@C0CHj6(e{*1M`0p2;`P&L=CdY5!PDT
z@-ysi6CVQQGo&3_nzE;Cq?_|AK7yZ?$(Ea>dL*Ev1CW+<B$ajw>k!O_iqxirl#r76
zpJM%gO1NE<u=$G<{`ywxTsx?TBzJ1Gk&RpyPoj+^JnK}dlTtZkRAyJ?5_`j_5LU#3
zrEVs%FOaz+3fniH_)Vl}LK)MVEyF|MIiBBQ-+4bo2oJh`S~<``R(eAPmlHIuXPA{@
ztO78BfC#xC=JB)0k3wKeZ@PG@X0|fGPV%dNnY9F%G=T?vXw9530l7FEnAA_#L#TY_
zIQz`TBhqx{NaN$6zH)63@n%ZxL+XySRb=)6D<j)nhTN%wC^E(So{!#wQ_mex@}CUG
zi=@G^^_}Bs1hvIW5Re`NcaVoH)hQXK1)0M{-`i*9`W~}mm)v4`R)QHstB|;eu(vCJ
zBmE-E+ea=$0zb?0BH`scgAosSeOtu8tv*&Q){96u;kV^X$JRARgFMSY77a2g7Pu~6
z%>!Cv<AF8$Y>0FV$+}Xjb?h5X8^n3vB1TV(pC6#eT)<!Q@aU&3!D8iWj;u=9aVdCA
z=@8W&lgnfAlzLA*F3uuW@(5yJvV5?A2S=z2ibi%gh?))}@EDGVPbp8pcF}Ftf-hy6
z6C>{c+i*O<9RFI^NDgKG%t3JyexHRfaNH54h2ov_FH3w^oK_m;ky2vmJsZy4tI_Cc
zYB?OmY~?*RBP<jEnpk&OjaVo{U}=VxPQ-Ud7#ZCQD8ergWCyi%NsBQESEPi0P##!(
zAlpa}Nwa!Qv<}6CnCCns90kT%#1;b%Bu`Wjj(mO}al{yZX8}-`@{I(;A=ZlrkoYK5
zZj^&EO6}`ZYANApIqGIK*)0}H<!E{&>2IiK0puA~N>^A<=sZ!5*wh2lETMh@P9cOx
z=?MsZnLj3j<>kI7^adyqfp~*|NT#DyJ-QFdcU?$TRAR~UYWhBuL2%^oLC+Z5qcQ!O
zc*p$p)X@XqoPJ9rIb$Ix6_dD9WB%bNx2-%zRPYBCbvR-<dn5+r>c2<Jhw>#=9Qqrg
z|Fnk+pk7NbFeOhe^+~8cPzvwph4*vaf1c$c70!6A-??)y)j5Ux6*I?w>aOD0lk_?@
z5ob9_4j833R6J7*qd<4=;NzT9Nf#G?d|kvNRoZ|R;JFT3GJqW{7!r}B)WHY7b?dS+
zJ%&e6>q!}_Q@jHSt5IgK1`yss(n`b)GyuR3l2`-)p?o8t#xd`L>%i@HkQT__V2EI=
zrT#er9-cjj3gIx35@aENCCJBSqvioVH+a>e{y%X6-YNwTx+FQbNMVH&Myjxa%19P5
zsotXP40H=ux?hB&g&x0K=!5W2%u8@0-&WeACDQH!ason0m5w~PhyF3MQNbicTjU#5
zWhwG{$X$g#2iP_t9(}Ruca(A5<O+nJgrf#1B%cs{BE6WnaCy;x{Yd)M<~2mZrbn%`
z26!$GR&Fp|MI_XRHM~Y!@DwQrXZ#<#?f*cAv2dfe5LuXT-|k0_+OlXhRwWY{MkFx?
zZDU228^E>4-TwUwdJ~5*H;xx>T7?+&i3+wAXr?z&K-1FjvAD4238%WgvUUdW4N^62
znw62?keq~~)K(#X1tZ*cUbvBiCJ!s<o<Rx{2Cu2{Nw$HuoM>J^A*r)RqTOP3RmYU3
zsciYce6%O$LO+WF6ZALfos>Z!jlc@~BhK+4!>}IPv=b5d30RpdUE8H_30a&lBGpz_
zg$!n7W8-ojgc{zc)sNnvZmZY%qqT<I>V`OCC2~OKIY^3sC@v&$+G`M;W}ujxIK@Bx
zY|^kC^vfCCFS#)_A&_?D)>0i|j<?k1r+DHg8y=J%2Qu*%>7}tFv*dadmoHLZ!6KFP
z?X>E>qRCY@8tI~cS=VXCsWKkTimE6{Rl{`sY#f66$L}cQ9#AsRPQhu>94#(Fq=ay(
zDkH;3_EZ~x+CJhYiA>~$=KR;F%_}BE1n4<OOq+D*^cm?QbhyK*5txW)rT3r-J+>(Z
zmz;EgMD|;bq_hS6#P&pZNZF(DTJ5yx46~V=E&_5{lhuSEvyZ(s&o&j>Y-GVkO8jyd
zJ>tYNrn{hILFyFThn`Fsp!lZ_-S}tTMz26n4#6#d$c71OLPX*yuGXqQ|K=J3e~DKw
za!wUSR7jgW8;m6E<~b7SO=yCk?SYqGdGX|Rn+NGdYI3~Uh$B*Rh!%*-<_RhL>>AZl
zf2TgLQTwL!rV9v}9Rmz<;%|h8gkU|q56J&V&eX(0GQYp<J}n?PzK&-o$8-4z{nk;2
z2jk^`2lu_$sV&R;s18Bx3uctR-B$jn1vp0k^lvKeHH`BqN-ghfL^wFbPOfEz>wpK8
zddD0TzdA9(z~Ut#7ll*G?jpl4whmFJDTo9mnz1O<AVAVi1chjW(J>%j4zvzaR-{x$
zRniI*UY}CBoyKWm$ZBHPu4x)ZN2=MN)oek3PIN`(wf=&-mMJRWs0JHYKFU0Vbct>9
z2}bV7OUt4~Rc~si^=|Kdsd(}x`&2%TTnq+6&G=9QUr_r_A@HSayuzM+Tf|4evSiXX
z3YA?ZqazE=g$fs`v_HMY;$adv@;8(~&9l9I9?pChqs_lwe(Q-$Z;JW+lHQ0)C(Xux
zQL|YqAf2=c5KD_MAQT=ThT<M@MRHlmhouW7jVr}F?riocDuiXn6do&LiH;>mo=!;=
zC^P4g+a4W&Q#X}USYLf<Hk;?QCmIKz8z7Ckz85+<H981gkVg-Xu7Z?HB3H8`hX&Yp
zW&>U!Q@cfe1L_@AVP_tyc+)#A9v(e^qyXs#4OElM#6P6%3AnK8Z|sj7hEg+kH&oKX
zLPV;hOC4ehi1SNpOevC5`W0{CIU0ioTt?{e*Sv3`PZGP6joCwZD=E**p6sW0pf@~3
zjb)rvh?-Th$P%%yNUKx!yuNA{Wdp@0v@@Qi-S)v|Q!Y7>96k&y{0{h0nZW*kwcS?S
zauI&osfRv2aKobipUmW_3S$`MljvR~hP|UL9vm&=^YC8M=i$YShXoD>@Wa4jP*AOq
zA=Y)$q6?b`C;iEb>Ty};3MPj($K+oYg$Qv*6%`S%f6f9tEAz^zf{$GXWdpGn=&0~#
z{cr58Ar_29+G0z#_Mf%C?PU{x0QyeIF08~8MWK!u0;te}5tO?vC`GW+M~A$$P_zde
z<64Enn3k9#b0R{WYq-48C5x)Oeg=6WBWt@_mT`auVo0?uer|%-xn*H`IKV0jOVh^#
z)()X)R!~OipdvnMEG(^=Si7MIprTU8aLO-Fqz{P90<?+$>;<;SPKh#q73s0QH={6W
z-|_l4w>B(9-wTn#;z1X#iuWu!TJE#=@>1Nwa-Y?X<(1hq0Fz(?4^8vL^y-T^5hnRn
zYkkMtr7wA#_bm!2jda?Cis`gI`@+o<Gg>Vh?Q6kwcCQOyPW87!ki|51@6&748vTWy
zm0xY2-fQvPs_or^2PCt9>282=A1xpHz@?NZnw8XR+udLdDWe%E=HAre^Ra9va~z0B
zuU``a*~#t(AQRKwV75g^qcJURTjP!!*e9i~x6Om5$-Tg4)5CyD$8TF!(6^V*{J9{J
zEdX}Bhe2Ad8T%p%-w3bj<J<7%`dFpC7mW;F^o%fYxZt-X@PK}QpfcTU!6Ej!?qZLQ
zcCsDEj+y7CN5?bhB}M^!UIp+q_2@8??ztu1yf7>p?C~=_Q4I8o3_bWo*6u-LAX#uo
znw~#JtVT6Gf3}(5nC*ixJ%0-79E-X#AY^KK{-~`<qR6SKH))feVG@;|Et-&4>(oGH
zVXHv08ULa+%;t@Mm(mAeJljv^*=|cGw&`glcpD+sG$yl?Qni{X2~1C`R`8=sQ9k4o
zpOk9HC3yBB8blhu5fRVnZ%lK>7<aWyAAZ$6#M+5=VKOVm^t4LkEf%-slIUr5ZyGOs
z`}7GdS54z3(jhi4<jNJBh3#^Zt>)`d0<v0cYIfwhH(q*wAge()XzW1aC0!w68ZT`-
z#WkDh>(DAfX}olwXuKpUHB93rQb5*oe;7x&afDNP=W``<?^so$X>>(wMififlhum2
zZXpiJ0pG0qReJw)GzIF0BH)x>qb5E^D1%G=ar9~|CNvXGPd{5x)TXi64j#SiHkL*w
z!*HG~l$woy^2=Oksk@tj$=1?0Wq4aTU}NZ*)<mRb8P2zD&bO+2p+b@d8jH&GZ52r_
z%c1OUkp?iu6h@{IXOxGlSv*LOfT*sGIJ0%`$8_h^pYIixFrpk&)A$s6&Y}~W38R=W
z%Cm-11Xm2~A3V+KG;!!=^ZFJ|E#|)6SNkug_gFxGYmYz?w=OATl8G3IA?M}>V!DaA
zAlu8x3*|a|M`$c9Mzd2(>5*?u$Jn}jNZGS-bL_U81M>kwJEZ>O{jud+eY6c{LFn6<
zgA+9c5Xd1PGMLeQY=`~a#LS`wCmkyYFS$G5m_7X&L)=e&Zrup4LYU1#wXjeGu0LR<
z6cr+WIp;o?$NGve0TqS0K*iNsoxsd7NaZrhpr;-NI|O^m?lOgHw{y^}9+E1zmUgc`
z{+X)GqD!QsMCG-ZYKHew02}pHxr2lM-p50t28*7gDlDua8YFP;y?7%=?O10Bp_-ve
z;ZO^9vXqxm3C7;7f}Q%%UOO=#_zSiXo%(No?7|B%1O;u;g!rO~etj$CBR21QgrcYm
zQE3v-&<w}86t{LBahLn}0M()B0?2HkypK_aeLf8_w-ARQ_fomF2jN&b3l}pH={zv|
z+{KU?D`dfx_w6BUg1&|MF=cst^HW=mFXz4bVfDO-ty-c3$U^zzk!ChT8Gs;?kS*|k
zb_Jlg5yNqh5|bI9OvC%=835GkbNX-}iX8Bv!oCv9_wgJ?s$z`naOSYvF{U~Xcwh?y
zKxqB}*#Z0xmVt9G<_`tdgfoFc`*<F&!sH;janHuqcMNCcpq>Ff<x`Iq1yM4^US?@@
zqkh<XU!BWBGn6%{6GVrj3&O^-P_mtWji<4SfuG#L_$nZm<Xn+qDlv@(ydMJD%3xvQ
zS(<eh+pbhpxyStY<Izkz<t_9`h5e`H%s8vD3AZrtRd7Ih*)0?(h?N2VZi9H_=Rh>U
z)UiVv3sT<)(mTWXY%Y44@VO{gBPv}gZ-`Yr(%p_uj}9A+0`kmkE+o&Z8l4w^#H8<G
zN?<&qEP~7}d`e@Sn&U7JOv14w0}+Sh^AYBeRdUZnR-P9Y)!TpdZRiIiGik`C?Senr
z-$`X4v{5iq$kbqllOR#L&qgCUfVw=FiRHq!mWWFy=<|QfY*^gsqa4`4ISchBgrMY{
zNuVeR^N1wq%^}^E$1Aw|cgw$j2aA{UjwMUq2S!i9rG=MAk_}mrgwc!TKazEuc*HKn
zBYb#)xSvq7&phcimN(eM8}Q#KU;VuE=}QlIMYqMgW^MuFN8FoS2@6<Wq`w!6CpB&c
z%6%6M+_oI?Hq7R>M<b{d)4@=%QpY27_mB}UNPzU%30Mlahfq!E8}~qeV?&`8J#GaP
z3m(t@Vg<p(a-75xxE0*5`u=^90~0TFZaoNEvhKN`T%ST#g)|AXIX-RX1=fxRwGi%+
zd*b}OivOg8ViUJK*|`#7(>sVouoO3^aFNt|&mn}LY+DuBskWEi)-&jaPql+=Y+Eo1
zs9P{jF!<eL)_2by2*U<{<UbAQ51&tc9&lHVH;u(0@r3k|sF2po$D819f#*OGCTa|Q
z=&DmNQMZ53roMOWV50M_4Q(LsV4{8a_OZhLfZpZ93j!nW{w2uwaa39f$AIeCa|SyF
zMG{@Hg|2LDeZx57P%$#^jA8sF+$7ggtRG*`=87*8VtW$M?5+fV&W4l}%dI7r8xyY7
zH;xXPonBWbeIt9f0Srk@C|7ve^Qg8@hMY?FPkJM}2{qVW0~?Ng@&crHtdRoQCS7RE
zh1>64<f9WxajXr-*-eobPiT{6a#h)G5LzxAdr+RfLrEHtl0<L&WnfR@PkXa)I-5Hb
zhcoxegX^Tc$M7qEd_JD5hIW^NXS*VMmR)rk;Yc>y`U+4F_|Td;VU+a;W1|LNS>FPZ
z5HiGfFBt(H0YVo1V@7TZ6{jlf6euD?i2ew9gl-7GF#O0K#a03y%D~Eu_$2dyVSemV
z2BP7;<jYt-UzO|Vheyd)l##pW<U~4(6n3+|_G^5LyX0GcRFL3#)CFUXmW02=|ISND
zo|t-pE#hiOQ9{_(kGbGNFCb}%PIQQNMG*$LRwz^Y8V_67i0Xi|QIKb~qc?z80uKql
zaLU^Y7MXA*vvR<rXozq;&)q=MgKD`5XOlyf;@I+I`y{Ykt@Rh<nS9zIzfWZoWGfAG
zlq4K{O`gerHU%<8m@|_?H*;<s9M*eh@8<~~(j2ax*1NsM#e{Q9eOx3vMwdtl-6+{n
zhs4I{Af7?N-c%sI0s4n_pXvoLSq|2tlW<Lw(rm>K5MPEDx*R<ZDRRRl7mq@P^65VE
z%mbvEi5v}BU@|%`KU`to@J13r)&PG0ShFtEUni`8^e<5)z10$5brrp;yjPk>&qdx6
zi@ziJZbkVp8t5i?kn3jEEU5AZR-8RZAo7`S-LkRg+dq)>jBqq%*dcxbe8(S-?eclS
z)V0;W8TsA}4+tACq_P?0)!|QID^jUvJjlvIRj@AMDxeIY1Vbwjk0QryM8fIC7mq#V
zNNiYto$0l!wsm0<w=H<3vUtO*cAHnBcEIQ1%y$!v=~7$}yhS*k;JF-nzZtZ6J=J(r
zQbNgn38eT;xuzs;B46Yp4NC|vi9`#n3DydwjU)e17W+b^O;PYU;SgQ2EEtNIha@Pf
z6}Yv0$}(I^qR@urlaF@p)u)^YxbejSQncfLVZu@Eji_UcF;CQkC>}C^NMIXelrkfo
z&qFS^$Ri}{Vd9YwKT5<Mq8?&~d=pltyrF%m=?TBmgyYX4>Lx<e(S-d9*)Jm(pB2?K
zl>Gbhs8p{X9+MqCw%ieRcv5N}9_drUS7b}~wD;G}Wv|7ksRHrYs4RXm3s4>vLMfJi
z$yTL*DeW`SQX%!s(01*B^52n>Rf17U=0v%%$3$jq96e;>b%+wdFWcu)46-!0Y)ci^
zyR#-!GPq0s5~FOZ)%QGqa5Y3493qj4>(UawzJ(ENP;)+1@b)o-28)cE$aW@-Tx!{X
zn#a&WSX<m(V3ELzQiQ;f$DBSN`)1~Ut`#`>DZ)J(U0r*3q;CMbgiBud`uE7?X-5oD
zptTii3J)V&W}R1lKu?vxYk2$&AA}I-2PdU&VtC8XcY%aR{WmZ!WcLV!N&4Xg1|U>U
zNf4-ar$h?KR>;Pfx5?^4S#L<?xL{X(ln02<(c8fC_?;by1Qd!u`7V^wxm1pS(koOQ
zbbaf$-l)ItWIB^oOcbaUT_TNUBWJR%mGjZz6i<W8_Tan`Y^E|rRjOhE(cdu#f(;|h
zA=EX+!AgF|`vN_GTXFyuZ|m)O35%<6(}bH)hDkI7o(DQ7IEm!v7+N~O1KNK;#d&c(
zkD83WJ}1f-a)uMZ?OknjI?s`R0=tRZ5MJ**PL!t20x}ZEzOGEIaGYMMCQk3{lh3f~
z)B7tPD6+Sb$h##qD7_6$z|^*`1J9YE<e6|S7P<2RX0)5Q0rynZw?bxlWdljtJ=YwL
zqrKf~7)FvfjdR5#own@HLj)4r6R;f6N`UeP=;|dLb=N+M+tYi|gnn{=&@N6n9-{gU
zo_S?+FQaqR8VA`9MqRC+!s;9_wl91C@$KVf?~Hx!bpO5cq4%W#2w)n=J==^*<fO=`
zgaP|23hri$f;S|nqvUAv#lpjZsMP>TO73!=G@Kp^$`n%5ikdL&YI%3;Mi2H{3M^hk
zZ0GyKjo5yAA9>fZeYFdJhXMK~4i`GDsN<|2>idfJ*wErAvGnCxK+S0G&#1V~HTUyx
z7u~NP|G4<V&M*J?oprx`?OlEP`1R|j-qqz*eDh)KII10Xnn&{zi9|Jodgqk{u!`rQ
z$kW;s&@M%9BH$HoJMAd)FS^EFi7dhNP71i_vRZ!sB2w3MR&PCjBcF}XbZR*qWfuni
zt?O50DMPo4;ZJiFuE;!oGz#P=^gdx=wm`K!xk`4CQ{4#M6iYHt785#Z$8r11E;6a)
z)DC$K&=t6*EtLCXZosU7bm#I`iI_#%<Rhp#VE`HST!67WR2eFzae(^Rf-7Rhl)}Zc
zrygh1o;GV|^;!XclemOU3q6thSE%B?QKRX_43Rv7Gs?8kr%W?6j>Bg(XfJzTzg=D^
zz82%g*y-Q_2~M;UMDI;-CQ+73l{FOOU8>hLXz{wd8y2$KP+u5zTU%87i(CNN1|SYI
z6V6acw+S}CG7s1<11q#zA_+1o<`)eiP-2CmP>do9Q(3ovFCtA${=suP#eebn1l<@1
z72mt9xYsR+mn0vF?qW*UErtY&_Kl*K5g`)VGNKCvs^8<jx8OY&9hAC@;a0M02cJV%
z67dZ$FOUpoy%c5zEAa}WoD4o)@LQ2A-9cApwH6oN+9xj0&GqyaIl=iC>y87DD1-m*
zt%dSm(HG%=Uj9mbjULHh&N{XCwN6&L#KzvjU0^W9b1lK<`GxulN!UjnhA_`i6j`GE
zIrVykMMRzT(VHL5d#13BqM>h!Fp56<FrJ)sn`h_sIZ8a_CQ%<3X*JO$I?SxPaN{O<
zMmI_C|8;)<{Arznh@*o>qkFhE+||bg+~0Sb&G&MDFpGhE-(Hqv&j|Ok-s!gwA3k1u
zc$nZ-NJibN^8KRf<Ldz4RKh$L;PV0z7^YD{kN5#KW%`wQ*FlZ_#R-3XD^$;lFlEX&
z6SN2R(Wh%tu3=u}KC9vX24<p%n6{B~i@Lc^Yjl%O%l&exQ$ts$Qm0<R$C}mZUi58s
z`E8_s=jMJ{Gylt?TjI;=i!b{izU+heG6l;M*@M&~wt8BtA2f>?XNiw!4jwWdV+iGK
zNfF4!Q&_T5@Rys(pY>MbZxPyEbbyA04um^oa+g2RZ-kip>=VHlzt-s_?vw{gHxnS3
zcz}MT2kzAe2wCTkh(G8dXh?jdJ}6Ol{-{KMF7d`_@VE>69v>0*Jl-HCswNkE&;nkH
zr5v@6=}W|z-sBUd#e9dw_snPeitn<V>DW>hR;|RZ#c%XlwAZTy_77T11AkIS<@j$r
zp+WspHb(rqwDP!wfoQhVYaTbMMWorg3MPA`X;T+61P-N_o;>y9a!R7Y^vbn4bd6De
z-MZHH)G_Pe-+xc9KE`$}g=h)vKW{^YXPTbcKsceJX$cE((vs^DMD8k-B!ln)F4d~y
zg2<goUKUp!J`5}T4g;tw6GS87_&s6rd7s8GX5G>g+V@!^QftZsr21v3rgfo_X$zHQ
zZmv62N?$+z-a}nK8U^dh8$m5Q$QxIG(MWOCOjnJg=q{v)DDD$-s44zVOQ*Vg%A00M
zp!>?T7lz&>>)u@j?Q5OcfLDHS-vf`NyqX8-u-UA34|+v3>~cF|k!lq!TWfatcxb8H
zE-nb6ib21spr^mXS23XD&cSK-w17yM?J6NXan*JT3y_@cfGMr99bJ%aO`Owz4M?jX
zq#6B?nYC&=nt^6n(Jh`QtSuOE<hHJnh7sB!+Tp`$CZ$CDAqgjX<~R>PdU^+zVHC47
z(k8mSgZG_6Mx>(HM=<tocMBkEDW~;D<DgMU<uroJtv$$ZP%ZS-PW`AS8jt#cJ&0oY
zO?k0+Tp~w50Kcv@^UyD`OKmoPw3-`eH^MY#WqPva6DG!kLJCp8F-WBN&!}nS>JVA)
z_^{hNE}-eqCgVGgX!L~CYO<*w)H(-^rF=DUv3Q&zZsO@%82kgItL1@;_*=BK;_V`b
zVXp>Mvv*KCJ18Q_NQ&Rp#;Wt&m1wBxg42nb$y|-7cxcy_v+JW&9Li*WmQ#)LXh^cV
zZtd{wT%RE+U<z3*ym-*aWdb`nK?Pu0N<PUf4OH`DO&To`r)VIeU%^c_hQEn27G>t_
zB5N^`)=H^-wbtQ2qhx?Ge%t%+I?awomMkt%f-DjN6F*Mr&*;Y<a%M$3Vd{P2HUEs)
zh<8RW-J=W1_sYcE#LrWI@%#LzczXkj$b5Sv{dQasZ>LYtvJb?%o8sr8_<2M>PsR1q
zW@%5P`ihLsUq01-vHol<r+U&2@zOt=SvMQ<X5-HT<!&C27kW~se%LEwmS8pliQ`!j
zAJbAxR}*w8X*MXwc(C_p?QaoMD>v%V4Z<#BuFHA6%Hy@YKkIpa?-4iXJta#d)aGUS
z0$T-f(bwVE<TtO(_l<OpO>=vruaFtQW6IfGC*3#t)N<l)4Oo*-{9UbdYnDK(yGsGt
zK?nQnfDm~V!zwgXb}u_9B3^AF@(S{Tif7)mk&ac%jkjwlqbcOJMw;q@c+8}!E+Qv|
zZ3&RAU<zgZ5M_IRCQWtb+bD#8&b|`4({CdsS6kKKbtI@7LF6rH<{h2J<NJf<k^%{$
zWJ0Q_m$*k_B0Bmd@>D5b1dnZ+k-AFHi*kJQwlheIo0MCP2A^j_YZaPCnRQyD>1q==
zbBBe^z-#YtN-;6njd8KKkXkbjSF_wzD37QS%mb5_*65Odhpd3Amq}km)Gllj-uVJN
zu|%S<i%DON4a+BPO_-}UgA0h-sysfBNQ#UBr6p@vtvZ<W+-Gc)xe6C|Ej>4nthA(|
zCGi?_1Y!~<*O(GUpOJ0np%ww-tX8jKR&4>*pR7c*7>)EKiu`PEnf|>BPC1#z)rLl%
zh}DucXNM+#mwFyTcs7=?<F;PRMTEv`62p^Gs%Jy7<;3t+-0!e?SkN(LyC|hhYJTvN
zos)Cp>RGr}JjE?%`IJ0(U71?>wWE3}b!oO$Jb<)K^}tWYlC`TIa4=l`lDh-$^TB6p
z#7}*0-H1a7v&mDfD@f$$i;moB98W4x$A`7^qr)P98j$tYQQpD}&T888hUewH9gyy7
zj{dpSRZ&8-1}I{}koZ+x_#~@#L?zAqhf)ocx8s77Pd1AaeauC>ciGWBZ*xRh=SN4q
z^FoeArk3-FnIjleqR#Spo6r(M*jQXTleaGd&Ox(z-YjG-cS+DyDR1!w2TB_%Iv+u6
zsAP|S9Z<`VWLZ((R*Nm3rXI5W@|Iq3C}lG@kWM_tA#Yy-B*zEGjY5)6wUXP7LQ8-k
zu_-Y$!_>~5du|v&J+g}FTA|L`wW=wdOZtLec3_n56$_ZrVoK*;p#Eh?OXu>Wx)hG5
zhxJ;$UO*>IwzgvG084PjQC{O`k=Yow*BDoSp&5*I=ih+HL&fO&L4@B;eT?n3J-0lC
zi<p<A*%fgA)T;mewvMvR62l-1(Mctb<&Ys!+$I8RR0`?`w<VWC0i#T7l&ouZ@J~@G
zm`6lf8nyX@IP$hhyuy?{7LZz3R$c7^#7x<vz`8ghCA@!f<Vbu;vY_G?)0whIT_9zD
z${x|GAhPBBLVG&Xa=L($$&@{svd2Xi5U{`(_d}bq$EqoNG-Z!l=*6?^T?JwVj<j!6
z_V~<YkMT^Eyb&v==x#pcBgWI%D`krAOwpZlQmP$Ooa(j}{OD5d#&>IeEfKrQ4)Lw5
z05{WE6b1LWvX~bkIWvt#3v1m>V<}{Rx|jw|l){vJ)sSvVHazBG+wSP3)I2<rGUf06
zSfWs~XL+qaM5$fLSJ-~ThBLR1(QYoI1a1XOX*(pzr?I9-7RlD91-&rvm8!qsM~rU|
zYc($e{6{aBx}?RRm%00LJdjB7sFtmuA_fIbtgt_>^ex9JBM-zvo<A~_gA-wY2JP+r
zi8(14a8fEG`@^74HxSUUBlWlFsPpLM66(BRsQECwBhFP-$ncdQfY1Livr#L&z=Hmm
z_irGvA7%x|jp||j{d@-M86R3RClv8!<<4ii^uF6{zVC`e)v3&Vw1IoKEz$vCZ|;D=
z*iJ-ELCQ@;84)<3TZ!cZlcJ%2uND?(st50@&C||d7GTvo>j3tsT6;+~aO2|xMnYqa
z**<sQemG60?B*&6r{@R9y=_fzf9hT2wpT0xTdo8LKw{{_96&{f%LE5d@4RkADF|bD
z0JB%)#AtN&_gN6Gg%wA&!wxzNf`)t=W|P1Q^^U=cr#E}Iz$w~GImj`8WM$AG0;)Dx
zP8QP@@R?7h;r-Rfx29u-)5T4vrIzx9Sv^~TO|}buEh>FV?d`P)`J=Og)3a^$Ox*%{
zJVd(P!^88QPWvI!)s|S>U^-LF;bEw{=)iDN994TX(?%F%GthN(U&B8)H<Aqh?6`q_
zQtBqAo#7O-!@%2+2U+}oQ{_De-THZTTV36@u_a=v)Yaw6M_prDHmG~sHT2sJpTj!L
zw%0v6J<2pG)jP(d)WW39mb$|E<a;xB@RJ6NaXum58=0@#Xku*v{;Ac!$@Mo-93i52
zZMKz->W1enG77V@3?J}SCcN<4AcDm208x0p62Tj%hv-4MrH(FtTTs9Zf@4_mQ=hB8
z2ri~6Uxjx6CQ#8lGt&5!MzjebKb0W~P(^BF*j^(g$N*8abSjv}l>lNkiynG@*{(6$
zRRg_C-pJ!l<Fs2Ck3eEuN_s=u@-K*9kX-KG|0s*Zt>w(j6fMaJTV&_Q&WuDrRegLH
zt>5?n>9it~CO!v$<!}lJZ+ocb+AL9)ZvLCL!`)FhE)S8qwY0T@0N?@3fwH3P2O17*
z2bO&{@dlha!^6KT^1!K&+X;quD-5UL_!m<;fv5<qvR*$te(}_`O)~yokVS5?%-lqy
z5E&UB($vE!RWZt9Fa4MMU+zijKf2bty!_*meY|);f6<PAoZ<b9=~yK7BRBu0>G(<D
z+hUi!|M>RtvUj!wF@1ywfMeH0wZu!qB<{-aB(P!U-!8geKmKvSK7L`pfBf?0<HZLe
zt*`&qW0$OV@t+?r|G4<Qck%V5cfH|m+j-36rT4K3^w!X6)+yaljfG1^eU5eNpRp|p
zAuu;N*I46!ctOGWnB|g!6olTiJQtYH?4;2x-A`jU|F6QQ2vJE?D#e`JCTmlh^JE!1
zF(MKLuL0RzFVlT=@nSB+t{zkyoz9kmXOCVkfm_yE{!F=@!G@exG+JT<y76=WI|?sv
zJ%13e&|}tj&mOSr*(hM;S%5q6%!gw;m>Yv@NcmlV$B~WWtTD%Z860`^a*1Qa7*dfK
z5|?k5hSm+gx`Q1mf4iUmCPpaIUwzN<{B<mXT}PKkbL^Kvmq#x*DPXq2Ru0eW_2bid
zMc+e~qx$$dQK=V>-9P%^bMa)WPRB<t7kH8#3x4xV9=WGq`P8>3mVdvr{@9_R;OchV
zj6bt~skY^hW)tp)Z2i6qDtSeIoP&Dpu-l!JXu^-9KCS^ZDpFI(G5}MwAgoqTtIeux
z8MTfh@BznJF7-x-xgB(Qw(aFoJ8-Td&@BqIi21&XqhTpjxYZL;2<WE(4v5Y(m)<Bl
zB3LiEPE^t`l$75f%TUtY#AyXcPv<8k8l^^m##^Z^Miv-SLSDWhCE_kdDB%!RHqglx
zN`i{`phCilx)=t#Eu0wAFXx^eHsIHA{GjVriwW1y^*!^iaB()Gi&vrNIe`&p&!#!;
zzGB$sJfg3}WYDx;*e}no>@yK;{AKEU*AAcTF}iRUDr#gO0m=AM{5)Nuhx4erUtYR@
z6MqyrFoF^6t>O2~ls?^qX7z00wb0%qT1U9V3UDq4M~AXS(`J)plH*DsmcrZ;)(4gR
z)f=^Hq8**I=!>_H2eL{Fx8Q6~P{b9eQGlS#^1uo$q?Xb@$b0HLRuE98Dg9j;`ViFc
zIJ;J*@42Cch=uH2E;86;N7|FQloNk{?*O3p8Jte=*qkugL08$*`gZ0Hu_wiV--P}R
zn@aZr*<|LK(1$iTZeq7}1zi)YwxE1<Gd7jCIgR9q;Iw)BC@7HH3CWPRbd5kjUDG!c
zYn#i2Osyu$Ux|Yk36)iSTo*6?Cd?^U7Hl=C=TSTqm0dz>t;O~b72Akmk$<s&CevS~
ztyE9nT&Ji-1#{$)eoCw;Lhj~{V#PciH`1Y_`js?4ERg9{5+yY01;*S*%9_GaUyee6
zVg<15bm2@(8ZPNA76%47yXjnh_(tUx55%=K0nYE=zI<h;J=R&;PH_OyKI?q#u=C5#
z?>&aHvJU(75sUugoGq?@NuyDJ!6~J^P7aunIMK92=pQ0>oX|rGgq;i5Y9w7UyscC_
zxrVdUKs+DfMW^VwLw=40^DFy816>3DDQCIPM#j@So(d;X*C`Y^?H%?Sjd}8yqPWEv
zodC1?xGuKjV@l-`ygWV!<!}nb;9*m;e`0n}ac7v*mew@3xX?|`_2J-ue)}%H^r9d9
z-a2-9^|*fAJx@_sz6W1@d>sng8M|DQIG6O_<VCyEIJ`yj+r$|{{`&{$t8mA^$~9b|
zWBtziq35UJuJW$poo#79z2f2=X^v+jZdKGDTfWr~xxc)Jf}eWM#xjE7x&cS__d;MB
zk^c1B3l0>T>Xeyquz6&EMit(X4}OPa{nHywg=37_Br0Tn-N^jb){_hp;o#?prDjrW
ze$-5T{8ee^MRRW;oh-b>6l#tc#GkDZKlQnFBVw}X)3~)LtBL>*Mp@Oz*T9!TbVAz1
zu+Yd)Vxp|K<c8Qb3(uCI)DkW;%9_>|i*AP8F%w~Z_S8daD)^~?$GZR4x$Jbm_Ac3%
zub0$kPzkrD@9t#KRh1}401^9$+j|#>bu5>6K0fGbApW|8t||B@qH*e-HMGmx&cq6e
zW{v!R_P&KVZ6pi#uk?_eDZAET!Ox6SrV3-oxNc&nusyq5lc|&fvdsnyt|Z6y?A`x<
zPq)<2EhJD233bbVXR3BG!6e(==lz{ms;PW(_EcPNFaIPBB`YxZMk95dVx*!>qLqeM
z{<;Aam0Dyg8Ua=%Q~nYSnq-JwKjoMzQ!b0lO7vX*dKw9<jP)}KHE$Y-ny-*A?VcYq
z<xxap$zpUB+eXVK7PHLyI4%iT8)nK~Mx!3ImebL{mNyuGjZUIGQVtM`nR43BDI4$V
z*?P>B`|sb<o+^13MAUE9N0YWpw)vaLl*dYJa;9AV`m6HJ^$Wj>%ZJNk&L0)Qe0XQ_
z=#FfcT-Ypoo1<fk`EbmKhvSix$G1Xy%?-BaCJX?7!F>3}Ba0U1!@be4pBPBw=$4pl
zfHd;1b8JF?MwjDt=fflP7xLlqPcY^v6a321e7qJVF&}=MV`zZ+@Nbw8FVKC+xpSQD
zFN<P}m=k|h7ErsSY<zCc*zWNZGNv5~FfSg>dFJRNU|w9CoO0Y4^{6>4(3&e&RKzPr
z%!?<&S)pF#4$WF|Qpq)Nm=`xKFK)Ws$J}@c)lWiyQx?}+8c$CPeDdhfZL;n}ZW)fm
z+&J|}c&nc7T!Fc9%#E*~8)vo?^W&HwFQ$Me&5&+1Ldn@ueL~_q`^Ays$rRV!?U;?^
zUSmjig#IR@1<EUS4DvA5Q><%I67%DjABR%ToI9da^0>T`)F2tHO27EnzJp15OSh=%
z3eRAF=lIicP>Z6HWl5AV?NYSy$sl91<f$c1J3?Tt9CPKhscU<-`@^oa2=<U;4|x$?
zXZcNAj|94b2ZOotR&t(2JEOD2`kOdyy&BdZGv=5v@6fR+KdkXd1WTm@aj=_QY{)Kj
zicDf0r{9bL%$Q@wTv8cN$KGE{)JVMP7c3}$=FKs0j(PJM%YlU>81jbiGeU}(H(!`w
zmZH_l<VgaUH=i#_PC;s%vtHcPBFvl5g0f{EmJm5;q^{M8C*>u%8Zx;O0{hAf<VTfy
zgcKXe2b1xt&A$2t;+QeVjJZK`S5wHCc4-UDm1C}aMXo$eOE!0Bq|9Z3)=?$gr$9e{
zrfL_5#>Wp(z_w=N+L~9pc3PVqOwwYKc1d;xleE&*Y)sNpx59@uvxn)V4sEGnf6)|{
zsN0P#eP_kAYTbVSvL8L5>^W%{gU9DKE3*Qdg>0Cf-F$lX_ipDJR$gEBQg6Zz{zN4=
zVaJw#;^c1@KWY?2;^c2HZ4_DMc313wYz}w01o@vTlUhB=XL3F-59miDb*)Z3%+Nxv
zofT*aId{zi6bcWJpUB9oJCEb>CgZ=HGqiX1<iW7uu!RX)OwbyXpj|CuS_9=#?VypZ
z{b3LMRrMwMy)DlD#<}0>6Da_Fjz>jt?l;c;UeYO)=u>N_7~|QSWn4_`Wj5S@>|=f$
z^W&HwpDpjzq;pJfSY!;@@IDMmvt4`m*}Ah&UEBK3kXp=~hwH}+Eu={F5i659r$!YM
z=bKNQ<GyU%mz^-tL<lf6f`%|_j#+c4*TbwiX3dY?1l^5Ub1lLfT34GjYaW7FJS;Mq
zqWM*{n1t*#!$N9kmHIlkw+G*Uw}zH)krNV4J8=?Iu=ns_|Maj~)5zVh#?yN%>ByS4
zr^Vx~I}0zb(KAoo$rO0wx_{Hf$8I~txp;|40%n^wl5MKMwh^wdjnaN<*(QEPv`I1|
zm9a#ZI)Xc704TBtO1@T!3{=U2oS##vU5}W-9hx}athn)J*rADIbk`q$qs!tsOf<=6
z9o(Iw)0eF<(R6Y1soOvAkl))MZ@T2Pd;QOD_kuJ?`{Il=3AAvw$;b1nYud?qb<_DR
z_#Sp?HX3qMXT?WtYJ^M}ly5@sqd4zFw|rB{;YS|5eLTpP+T=8n{H&>q96RlsC6hUb
z_d{Z<3`rAe2R2P+l|DLuIA%CNKA{Gm1s!1~BMM9x$f_CdK<Cnh$(HD04WU9SOcD(z
ze%%}WWeccL&=XYKneE?m9v^IXG=NV;?Ao#K>ad>Y(WX#Sul@0=yF-%3^=*^)#D*_#
z+4i>dV3d6+d8ho@60u<v_9a`@iiegm3QBy2429j!1~Fu$0vGmw@yM}J+7Awof|Vx!
z8GzPd8^*@=t*_&n6Rs6?_1u>C@blACo!;&qyxVIOS#Xe5HlFL_(JN};&(n?`HJUXb
z^1bEUjhwra8cLQ7_hrxGX=OK6;t`sG)W<niJbC=9rzodF?e=sWKbBfKeHuw&rwK-O
zjR`z-P?%Zlq<JWR1I=wqktP5T+#k`@n~K*yELQp(l<j>R+YjU<47JHG*2DDuLZRWN
zZ<vLbsDN9}OCoj9TMUB3CHgeuv&S<S`FZ60Oa@!$&g~9)3;*8EJ{>AY=TeJZg;^fj
zKwVjW#YdKhriw(5+1wdVpCFIt7X+YIaH0qPXyViz>jBVz+1hcUve!>xrr2wyMbw=y
z-P-*RP;+r{O*-w1i%a<B^5VJ;#H2cv7F^I@ST#(YQ*<EF(zatxY}+;`=ESx$vF(mC
zv7L#Hi6*vfCllMY{+x5Zi+}Y^ukNc}y;tqG>ZyA7pqd;way#6MT3>(Mf!epu`-y^T
zsII_j?jeC~uDNh`<u!Z!a}{FrDD2OZVVqtC8WAt$3a~lsU9vWJ*TpFeGjV90`q^Iu
zi(Lf)s68TScR&a;PPE*?;3U4UBSSfvYE3(;uS2qlG7@H_!8{cYuGmI|>2RfeXn>`4
zRPzNPdyE?&d+op=VdVmf0pk{*vcx9j2<>!>`a(Rh80Ppdb6;DE-OzH$Fm87xH+HYp
zbC8dUl_`~_2YwKIE2SrUP#z@6!Z@AMdV1^`2;zN&Yk<nsLdWEW{pNBc2=enrpRiMI
zFuQPqdTwrvo=!wZ65axZqm21aE@U$%JCk|cv$1kARq-F9gAw6|JIWY^!~A`AI!@~(
zjEWKtbHCaJ9c7EF$`ERESB2koEr#0pCG(#F0}+QJ<(W$?^pt%}xGYDXXSL>^8ar|>
zuvQc9BmlC_vT>P*c}-!0vkR=c9O+!Eiye#0+@|qFaTk5kB*F#567EwY-tity{~u{k
zaDao|t%a|>92e@^%#~>|%L983b_mon2=dw}0xy)89T9i_w`bsY!Q3d#9X<z#BPwYf
zUesg4$zRh$VS49x<2_KjCo6NwXmS_iNPeIV^FWLla;HM^-~LF>X~agWNr*EiTmF_c
z1i+TlYRzfNRv@MI`Oov|#sz&(?WppYfdU({c$nFX?q2&-r}o!>Vy4g&P$IPq(5B^E
zJ&1+cJeB9DkErXuqcHCG=)GB*8`fyi8lZhus5rNnA4aFvD{nQj+bIa!)1|7-7ods-
zfO`zT(c+7nRTo`;mYsv3CngndCmHC882rsnoo<ZLgWk#{JbA*rm2x}J`zw9dQh_x7
z718FClb++3=Wm`3lB1#J`ECsGbL4~J1Gge6yP<xjD?4Qt8$0*P6l-KTr+MDvR@hP|
zeBw^!7TfdrzbN3F@TjwvV;_%VdK+}MfL7Yr@rho_T=ZQI*`0%_mZVAEE`jxKvGqB|
z@x_kjc490pBEf{IRE@)>!!Gyj>Xr+?qldXWKXFs7;f!HH>0cP0hm+QpH(CKmaB#WZ
zagrg2>iB7^hxo6<rr9Gyw%)e%Q2gi&LCj&PX1*rYE(sVtV#elqBSo^A5*n(i0D`%0
zxr%b3A3POXF%)HjeZA>un6Xdr9)e02?Iq<CRA!2CvPmck-*b3Wd+RMs2lG$pOD)%F
zw!V2?!mSiv1T|7IZxiZIMM)tm0vg?L<Bt+*3S1&E<7*3?NY?17&*`&(vJ6IjWM=qa
zty~SG^}1#*ikAef7`&IHP*1~az^g1@i+IG}kP+s<xDItA7la0W3XeKJ4L;!t)z(?K
zuF_b7`cVQ4!_y$%5M|z<hg!fa7;bYmzt^~1G!2FJZzPD)pLuEx%)x;u<b`)NMl*#(
zlvVq)b3!+=4k2i0=ngaQhdf1q6!^W66HLT{{>GNcN4oEdhUO>h9f&#sc!EU1<ug5j
zIz3SN_=Eih|5{V_gSW4ZY=8g14cIs@IG+NgHoFOuoVXlPpRK~!OCM1NT_L9uI_z%I
z@QwTLDX?-;cqUWIlFl@Vrj1Pq;u~HNz`<zhBD5W6oR8Xz;lC#ms)p`q21^(QzC4Q*
zrtag~IgM5fr1a=Mw7#FUslS7sv`b7P2IvXT)u=$Wg|RVetK~`NV=4JOhK;iHY)Tpt
zL`mF44ASrKM^p=7sk^(lcNtlJx5jS_F&Y$}Gpz%dfZxxL+mfwMk6QTkVz3K~vAPUp
z5?=TBb>DaB|A_{mLUs0Ltg%!YYvb2oEWxyuhpTb|6EVITVR`JaoWCJOyk(=0SHzZh
zIewH_am`M=OxwSIiL<h;c2&1Fw{2m%olSA+MXOWX1{FvV({gPiyQhM%Bo<lG{8$Lt
zgiXkXwNcxe@^9#eJ^ZqvoCJH@`~u4tU&zd-ZLpb?mwKEY(ahLGxgExwhmqrSD??S}
zRkaRqnErRZs_hYp^OJO=Y`9sk&EgQX#M8#69KsM9X-?YL@YzVj6mCSftu|K>-i3wD
ziQR6A5aIQOCzmb)uOYmZ%}Fni@VDChL7g7nJ>7Z>c~s9qTJ%<=RcTxel=>sCCSlX5
zz;873{9kB|P8lL3)JQ5%Am;h)4{*!*dZ4;Mw!SWosyM6ZK~?&w05pYXTO<81*m{Jb
z)f*>JgL}1sKwtW=@IC?UkDT7Bhj-O0zA|%U>DcBLSq!TlBZbN<o7CWssaPB_4y$cA
zr(ZY90xB61X57D#V1X({w$jJ%`7xn}L-Ji4@^9&XLo}X*3FpxH>X_MOm5HV-As}55
zPblA}r^EU7?n)iTC~QQ+)e7<RZ(M&@>v55@L>mM=LfwGfQjCQpO-C<5nX4)#ZrgJj
zjnQzLad(p0j>vXWe@s;V$sk*z`{lYFn_q6|ID)0n)My-+54x}Jf(IR4FM+cxNyqvA
zDv#pIfPprJgo4J8zgG2b*Y3({eL%C84q6#2^l9a=**Vs~O2bX<Sd*MZ+j6`mC$<PR
z#sN)RT@EO%LpMP$sg+i&&6)xW*j)qPkXus7R7hM@3<bz<(%j5359nd1N_4_e&2H_@
z0bnL;Ew`6>($y`Zqn#e=qgA*OiVq#=MexdExi}{=_d=Oe+k#&T0QJo;6KJR6oY(k|
zT5_piKX#A?X$fT^Tp#IWr+A6giixa>XS{EV;0n?TXJaF1mJ=p?P2CqpK$kxo$n5)P
zsL8%w%$z!_wS;B2DA3rhs~k(4&<RF_j_yxs)Efb=@*4HswDmDAy-#LYJXFtAwZsrh
zD>+Yw+`eJSwD6QPQ3yv4kVWS<1f!*`B2E;ddcqBh=X6C-qh|1y)cVDF1&<q>Sk|7k
z6>$4%{bTD%Hds>^Wq%p$r|f=sneWgW5}Cwgg_kPn%!x&-hj2GNvfX0J7{*Hi>EY_S
z$7zcAk<4GGuW!&IKCc%_sEBGI9*67zWE>a^nws&=M@&nj%2_smPm(W5R4gyUfzDUx
zCaZ5)kZs@Az87Zr74?$SX@hmYq8`0#z_v~d^k7sRhd`N;#1S_Fc}?Im4U>@s44X(2
z5;NJ|Dx1hn`5AMD!bUq4K)_{P-|^Sqi#nCMNNEo&1N$;2qWKR0O-_xg`dnVPG;?Tw
z{;#@D{p#5$`yGI3@Q~SNV=@_jx<V1qxl?iL+oU+alfGkj@~_Vo!wKe^dx}`fG6XEh
zCD|l!sC^Z&pc0d&Vw18{&~v%6d33E<qjmUZ$&tsEfpuSIMNPeD=EgN0ex479339_x
zwPzSt#h|NGd#ubmEP8#=C|dAC8}`yk@3a9b`1Te0fEVyd66u$CPYXYILBQd`WbgT?
z@$r`GTme6wsYh!|j?}M8J~pm8T)?Y9$b+iQ$}@`1F$OJUi4}CSwSE#AOyt{XOW9qQ
z{|D_&je~QNt&*<K*{iM$qDz;nUO3u^tPWD;(KdiQ&?UD%(p38{Brh-ZAE7SeS4&uY
zDTAhb0nimKCDAAw68BY5hGIxJlU|?`Whv9@KiYGn<WS7$Q@1RgP6qN3^@KcEjkd{o
z*`eFlz8f6(@0Tt*9ZHr7;`<g&F*?(=SjL}4b0QvMryM-knp?CzT-Cdp=L9;wPeL`k
zRB@qh3t#=^aRn<E&!%50L!yjD+=Qj~xpJQk23A;la=~64n>o0>B;^^cpfe>WI`rF$
zU%$L=+Ey{qy(XC2Ro3MH0$w-9U}_3X)qqTUcy_J)NU^q_0fj_%p|7KaY(w|;MM%~k
zxjlNhpM?YP9M!{Wj~TiKP=99E3@+XtrM`xP?xPe7HxXzCL=v?ZTYlyhj3LZx=h42X
z05oRlhousm^rbkySrI8)2qAy^j}{5N9~S?Y?qa_8KE!PConPhqy`WK3eeU=;c0Z@_
zX{@dBI`H()i#vLrB8+H<w=CIZ-Q%hai$Wx);bSR{j8TP#ZSSJz<JS>!&G4a*J?94`
z`MFE2+u31bppH^;kb{hsdKGk?Q3Lf3C6o@W4ZeV*`*v?W>EU&cn<RKm(2kVRP-jJ7
z`>NzxkW%9~D7{7Vx%P))OA2e7nTR-TV~9<;A|!?-jwo5clDTO3TfE?(LR1E$H9X$J
z9@gt+pOD64Zo)OuFmwq-f3^l18Ds^>AbjO=$<w10kr6RrJIk$^LmnA<XuyCY)sX1b
zE5`XOCcO!b5s4AO^B#g=6#Qq#<C)7NU`vFac%z6kqO8gsea=VCQR@AeNY!US4)viJ
z!hx%~E0u+GmfF{wQ9tQ-S&9W6Gb(5#hr8a_(f3YR0BG8<2KK7v2KmBUuVz4<j)3LS
zVN4)2n~&aysN%anK0G|O0-4A|J*NDQ0n`3;zvsQaYkr$6t<4}<7z+V=X2*SbR0^N}
z1yyFY96H;Lu}9k_`r$QwhYmy3;gQ9koXLiOUI!O|R?8wvZzx@xHHxMJX;it1@_;6}
zpAC<!W|=oLBZ<*JlnFoLdX0#oGWKSb;5Qd0v_&n<@PY0`@HbFL9tcU=B7I-w;eKie
zVoaC?5m7@(%SSZ??7P-&Cf~HfJ$WSIVd<Ywd#1Cu?4?*Iq4?U~K4uG!$Y!o-v7+k>
zI2TluN_PytgQ8Q%X{na$C=-J){>59iOBl;5gRr4}y1d|+l3y!JE_}NOL4o;zQcbXq
zbr=@cRg%t6IP);v1aK7Re6al4O~zVwb5<tTkV@`MSXzjvM_R3W7OjKSe%>8HYSV~Y
z+Cnzy%z)z_{{sC+&=DqpL~uFqB{E#9y>0cGu{r|claMPu5*WpVlQ(eCg|IRjmC(aH
zXa_JDDfMJDh8T$Yg<~XM2ZzddUhcpKb#oU-uDc^?eowEy0FQqV!bh%|)#^xkQBgm?
z3T~J=M{zcao^BUi*dxgKIe(C{a`vCm_&8_-@#oErwHs+hr3g@D(p-`Mmn!IywkGaR
zy7iPrvUT;1kjb``=@721gKbvm>|XaTL)u^a4dn}tVU!pC<Y3{_y$nh3#{VG%$Hl-a
zw69et$qX<QJBUS$OKp$Ax)L}25K<;hSBpuvuoO2ZwJL;D)s8UdYO*2Oup)or(p8#n
z_WpEe@_sm_JgHZ;G-~;<s435pY%3?2Nv5fzMCCAL@Q-P!4!}(~7*5jBRV`A^ky5<g
zOJ^^<n7seZmtfw`_$^Qj((}x#zzFoUY9>UMMG_G25W><MZeJ}`5`JM=dLYuH!gX|j
z_E0&|i$^^YoxK4W!;8YCV~2Njm<|&ox~aCXg+pRSMVO1A_Ez~p3GXEZx_a!fQxI5~
zuMklBa||W;UlG1vJ*y~q`AL1vuUs^Eh?BakC|0I3USdHMfrJ^{Vj0!3c{FRRy_~{4
zYe>LpHq$MP6_rmQkO@|6(gQjg`5=nxSBXd<!n~r1e+>27>Q5g}7W%ZGBc3aUwPg8-
z-feA{@?_#qb$@gfB2PeyO-UjR34Su*3dDqh<!1Z&p8Lhhu8>(!t@xJ64BEJQE4BA>
zcH8{v)V8uN$C?QK#hSOSE7*WCCEjC}Tm}zdX!DI#l{cbGH7|p>fy`|GZ8&PUBa@>W
zXOmPYuU|zK?+&J7%s2n!cvYZtY1>k_B(<kQZ2u)5CAoQ`GS;P_#zSNT3Cp@?+@6A^
z4w}@9FM;e!=X*j?7tB?j*2KfUv(xg=0@L7od^~Mgt-nu3hu=B-s`>5HriWT#LL3HQ
zgQ78z;I|ljC>{%^cun3}%#lOF0ngt&`l>uP!hX=(xx+4_PL_qESlqO9<c4JCklg*}
zW=Yg1=bF<uIt|pltu5?QQyKkbPI7Wx`h4q(`bZOLXtJ#%eD^T1`ohCTKkp^9N(>W$
zNQCIekfaWKWMY2}syKYRl)CsET7Vl+P_;c=wKhdI_1M__Gr-p1CSfaNwOynvF+CmC
zR=`t~-`lDd_8a0gRsRbM4njC!KX+_qGsk^roh&Ko+9KU<)h<AaDVxA>>6azSwq8H5
zl3@3*(?X^x_avxH&~6igtVb}RKMrV4G4^d5V!wNbLZ?%yczag0Nj#27zIFtB4X-Dr
zd}y4SHoMLeZ{fkdCvTA;8W#UxF2z~IBupLINvBDs9yLFFw>x~P`?SAlL7+>VVw#-f
zJ3qa^>3F}l*DGMm1Pk6WW`un*V^H{DC->=K;%Ph6kB=O)o_$|>UbtUiS*sao=AGG1
zW>2L=3<e`{hxyh>sG|}q7Zw1#j`E33kl4xyJe@N0F0gYVSAT!K@9FsdB=3jw#X%B!
z7T?G^Z!pIvt;t&=a%x48l8*fLJm7J+bT0IQ4a{=RYVwA89Y&!<-^V%Yc<F1^2}V~|
zHmXa)@VCp1f17zN7{(|h2JV%t_g!odQrRpwVoArs8kM{yvim3o{9ps*U=YhK8ok&c
zf0|gsZ2snmiE%UE!=$DI*4amYj9K7D&kYKP{$vkt74T_5xDsZ3%th=@ND@QN#c?XZ
zuu6aCog7;nZ(Aw$z*~Q*;V0(Wd&nP_oVFdUOd=_Q!qxgEYMWg$o~pY<9B|e${3F?P
z<Cbc!3fYN1^WB+5o^%+{eEr(e<w-xMr;MRcoUi^-H&DU&`M@!CZygYK6R{yY9g+q%
zSY_y4uQD^aSx~5S+Qb~9_}FQzLy3s|sYg_+?ch8cOcs5BB(75=J*f6T`<dAuPpuX6
zdyd9xBqXog^so*}@b&ll!G#t@V2-ILzttJXDqPPL95i3NeeV!JPf5ADe2?0IJg?u~
z{5zmS?G*oWcd%aXl8A`j`z^M9Wb3*o6s{2P!G1OXx)0+<?>k=-t7Eg@WAon6uVWS&
zdY}_)AMf3E{9L;b&xz~-_S3e{+)o<c0AJn9rN$9&<32ycs}0>Lvt<Db-zoPlzxwu>
zEjsMS>Te$<z!Kng({#A$jr;s)U_MZ@P2?>~FZKPi#s{xlN`eq47C#e1t9wOD4|Ynf
zdU#en<YC%*=g|n~@A+!q)Z%a7lhs9cD2&%ChL^zpfO5P?#$4_^y6Euz_{hvyq9#jW
z`MCIWpy!t1bH;>;x3viAMdYH2i1XQOP5$bqw-n*`EhIo25?RqjhV%4zV%^gIQ?E(q
zyKRaL9FtELf(2FbF5?Vm!W4MtZyGA-;{dC_GeP^Em5R8l3Bi<OX~EE>aI-WhWa^|p
z@&6s^+l(xhJFvMUTm_J>HEaoEE5;)A+mxkp@4ynl5dFgCMf_c=u}TU}@^uyAeA9_a
zk0sBNodl?=--Wcj&KXw4SkwGdFXRcgH>X*8^VM;KW*^`<rL0aSUu4zWIwfDdy?<-b
zD5jZw!{hS&BfbUxd<r#>vDX9rMi7{#lBZXd9t+<?%`6FG6qT0<w}o&x+4VS#xeq_&
zRr7t6AxStx5$zphI%z7732Zr(&2d?S_@Vy0e;=UikIhQ<izM+44O}yLMfc)wA#D0=
zP~|}XyC+fF&1B*}uMr0;WIroy%t6nFT{TXaF^R@Ft|`1oP{dBe3y3U&eSnpzX%w6m
z`o4P%7z}*Nh6uxtgI(n+5LffRf~nEYtHzB%YNiXNA!XuxE|zx^7}=_Q<YT^|AL1h%
zvgtrh>QJkhqv)2JgZk6{B%pvemsE!_0W}f?^}z=6h>+k&#gTDEWA)TcXB_kdS6ryS
zQaH=lK&b8fMqNx!L1r1_KcwQeA@Fj1aFUVbCY|XM{GjBtLKe1H>AOzZ;rEK>lHzCe
zdHOatK~?7}#RyzJ2sVCB2&~EP1W2(R3<76i_P)2&l0DT4cK(~PR2$N^U5<YhFd*@N
z0j?0j=*{oB!tz#X(;OKv=<Up7Rf+~d3vHA0!?RW`(T)*P50qZGqo*dS`Bw2*%Jab(
z=Ssva3ri$s6kNeLKCqCY<szTTkst+dtAw&kJGg=fa{f|p$Wd^3#8yOkSh=uJX+U5`
z)^~C)x@b8~=;1$LL>5v`5qv*j60dqTrB%}VQ6;9H36BMC>z(kMQ+W;`?U@ATVcG>j
zBT|N$Ae3GD)o)8%maI?fq=l~ZcP<ApRxqjScw#SwY8_@NDAX4fT`aRfLi2o25+?Uc
zrp`a^OD-TI;eyD~B2hM3fBo`1jsWi3G;)m6=ASRuV?Qa+PftIdj}ZtcTz#cm&nNA7
zHc90vQKJL@eG>->Od@28Mu^kLzz~aznvQFOU_g$T{7O|sdA>iQA7kZ~S^Z&ilX?<=
zLBk%vbVHu(0%4;VGslXe<HXW1#Ky6Sn?y}j(tF{VM%0!0QC=^U98U?&v<$2b<BCf6
z_n1>(<<efZ=3Dra8cxj=oPJzk=ZZF1n{hRZ!KxVj6PHGF>YXwcNP9E>F1s0)EXgkk
z1J2)D`tE5|%;pP9n~gVteMuQJIiPA(MTVXO74<v4qf8>R=NW~aiiYejKiyM1J%+0|
zczo=7BocFRqb~+#>+i=WKo<znswn(CtaDN_4$XthDhqGGNKUy3FQO%m%zRL-!)1<w
z(NFHW5sbhd_9h>_=0OcB$e)UDn!3h+!R<*ntjbl7w<jLY;!Q9%_;bEELPv}k%#D0o
zr36lH>Aw^K-a(8w?~lq~%fcXzhtfKesZ#2)zpOB=&3TI8q0}9qj|@QP>)oUWV4U=%
z1dp2|wA~DRJ%pa^Ob2x&W;aCm;y}pIUTP1}j=3C(JWwzAOuxWkNBI3Kp{7@pO#G&V
zQiQ6AEPOExi^Nzf@Dt54gG!T@pe2OS<@jgOU4?31rcz4O;fkhEk@dEIs}d1e2k2|b
zcKL(mb+?eMQD8lw0R;Z_wffSKdk8eDh#_~=(VCBqH0e>7Afs3i;#!QNDZ4Z}!u%OX
zox{9j1z@AaLWjK8gyKWWgRVS~G6kGJQ?x0ziLAezXp)s_w`+vsq^0pm)H}#L#TDIn
z<STkZ)I|CR9|$Uo%jVRtN;k)>Sx~U}o*Md!NrDGR@}rDwf%${0G`MYJ+;Bbh*k`p|
z6SZ74W7BF{pvF|ognuyb2xou{6^aTLu6x;0<oqKHk5kyfah(3)!7FG+>d(fqYJ@b5
z847Y=hJ58Qzb2|VNs1DFN`T@59plC-`)DG^KYZCiG%ONYo6R85q8B$odLh*)Ta4U<
ztyk>2uJX9=z@?*nR5-0BFA3<SCUm^}Cg_Cqu_iQ0JV7LGx&AzH0$!iMw^xUje=4>U
zlzpB9fy`PvliB>#9>r&;UfjhN;GAaQH*$zdgypRU+MoyhF2PQ`BJh$F@QswFd9ndu
zDAj&yWR#f99M=3DP3ZioTdzm0#Ki|+0KKu}fcyptAkgph5#u!>z0-5xU!1G8s%pMS
z!+l}QtT0;aaksoUuNUwdYr*4jr)mi5D*!R<4ruX=xz5XlPski1CxbF7E1h&AO^g{r
zEces>alr+VVL80DLFhxZ8-ExE@5PUO1ea6q8)@o<XD5#%OIVz8D!3eT89&3|NQw9g
zm)_b4KogzRC|8@R#iwIS+)Ntoyww=}X20qgzNU%_;xF3^(T@yd!_zyRr%#6kJL5Bj
ze8-SF*bOEAPVoLMvGJ&U>7@$Z*VCuIw-M@;b6V|RRs}Zw>-*2ME?`WxXK{#<2i7JG
zv3R?5MvQ4z=Zs+36T2`M<7@Hm+Db=)x=zCa%V2FhzvJwA<uzZIEDdyZ^%LjpnkQn1
z;Xfu<muzQG`zVE~mfnmm&N&u?^Hl11AcJo^!9NA+Qw`)zGoG90-?zLssq;~|^QMmc
zJIm245t%6m@$l$g0;9Zp!Dyqn96D4V@LOy2;dY}<;3bhXcN4X53FHI<b@retmf%hR
z;dr{2mujn?%66RXMc=j4Nc-%ggi!lpX`Z799YqD#sv~kqL>5F;o$JPhZRE~23&OE>
zL;9fF@ldvM-hS3lQ)RUnoP!^R0gQiWM}Jl(pX{1Mb5z%=d$x$3YQJT{Cz~*uk`~RP
zUu`zrq1hgOxnj?(6)iD4BVqIKkZ_y;&GUD0Yy_0drOY)vPAPVZ=BgjE$D0}28@SQf
zvTldb*b5*D-!O~78ag8!R2u$x7ldHe_>UH36tFA>`H4tI(oMT|_vi(Qr*9f8MI!~A
z#Hx$cDR6)|Dz-YR%gxkVm6x|uXryTWo^a<OrcCuJ>wv>jhfPFF0hRg|DbwEp%v{~V
z%9_15)Z6^x(jMNSFI25Z+n)q8Vc*zHm!KNf8q_qMG({2hVbq;vOd2jWg0Fe3eCW%v
zsGoh(ecN9IKaWzAx{f8Wpt)@VBMHpVpwXB3sgdid&V$l0nY|eX3)N_iB&g&5P-d;O
zna(O{!@+I~63<|HrRr(tTuERIRImf>W@cSNBvVU}OPf1oQaIg6*H{tx!-HPb3_UpE
z`XcT^L`tu@cgi6Ja&>s9g0n#?49zRs95APtP^ZQkhDAkOX>FOR(ruP=`8#|5#pxVq
z+Z)Y8wF-HjEgg_EUc9cCWl_U|<G&{OY$)ioL>P}<!!h&ke$6VJD6)$IfymRU$2v%H
zv6V1l-<rS45C=O!_KMQ>P^izel8JdyBy0Xyj#2x2OefCTYJXj0VTeTzMcqTDrmA(V
zp%rpv3_&N?7IrvHQ!gG3L)w-+7>fKNdUJ8^ig*lRk)|nlCc{AX*5~?S;ZS;b5bC8~
z=$2%M#jxf)aun6j@9M@4m|m(OtVBNQ-~PTMz=#CfhQffAQbM+?Q5-^Rw5mGgcJ|f!
zS4fIrysG@D?&dPZd6-?rvA{gF=!SmZF7~d5+o|S{&r3lC_e)oOEFY9LY|tcVP}J#N
zM*4ubg-h}xLWsv^t+l^}!ZeT7T66tJ6zx`%qm))}I)@{6a5IAduqR0$raWq&PQP%S
zB+d+d=VYH?&0ve!AoHGK=o`$aVgXr{`>reEGR=9IOOi%*H>)l>uj0>x@z-ZT*jbh`
z1~Ek4LV(jkpfH#Fd)BR8^~!l&$a$r%dDUpv!G>RY<|ZFuJu%sXeew^b9%**+ESnKm
zH!vs>z88^<6D-Ik;ERSQ<^oBLEuM=mynZXV+MNskNIEj%!6LscbG~XTK8gU!U9MHo
z-bM|=Z@+)OV7wrwuON_a1m|8Ov?DlD3e>`M@ECDz8hx&lgO8D*nZJp2u3R~{UI?Q;
zKRr^1LNB&>S%+y7UfW{d3z9E3jUef?N>m<1P}9JkZlhxX?5S_Ai!-ziBG^bVStM^W
zEZ+`7)Pi`wfoskk?q3prmuJ~S!oQD$RYkWYJ;Z_!wtcZg&nX<Z%OQvS;t2`z*FLbL
z<?Ejgw`JardM~+cx_@r}Pl|eP^S&VGyDoOxCF*y*m&q``I?Tr&IvkA=rUQN$KMUk;
z{V*8-36d?QNvy-Kt>C>fg_MEe)Y~zn;w@3b7#7ZSxpH2w$x5zx*9)DI=f{W*e+ad>
zDBKvRbS2i(>DeRits<L)Dk%}1e%4zey0df!uM+1`st@mnu!a^FZpqi#01RE->^_<Q
zOIzVS5a3PRhHnu)S4jSP;eiEQ-)%%_1N1?R$y+#De<pU=VD_^M*D%O2!MOS%xu`L>
zAhh%uBNbXe$7Seuc#b9l(MH#~%Vj3rkRBCctp>+n`*`u49B;38CwoH>TJ>r;T*6>(
zIo+kYiLEk(visG9PEAKLh}mq&n+0@{IYFFF1?&tj4D~r30&e@D41IUv;&&C&0JSUi
zObAm5-oWS<`3d)VTQDeUN3{NoDC8r^9gqk)JIUSa;TBQMVX|+lxs1a;y5;c1+dU;e
z;W&*m|EmSzWsZYFLU>)CNr^jK#;dwfxA%Akp-V|w$8>ovM7|OcjGpo?3p1DS{4GHd
zj%#!w8h&hV44hAKj_W?cCp5slLPDj71J{q+{lhm-b~8oEnS`sdWfPwWDUqw+6F(L!
zaiiA%N53~FvG_Apv2X;fCnK8LmQ^H`Xs?k!{<9)+(;J$^MWrH6q<~PA6Qku6q{NTH
z`<@=*>J>&*>e2l-;b!_1E^RPTBNAgCCL}bCKgcwkT-i&}sOT%0YKuUflYBuRdDTQ8
zVZdCpicPxciI^GEAr5*Fo|(V}J{;T=o)U=Vu*ZQrM*@PxBux2}&uh#-`G3falzs7B
z1UgI=(K+<HzYyoJ=upsg>Hf75@Z4YP{hk$wdM2BE%d;V)-Rc$uy^)sDAo{NTc#QVB
zL5WTZt;&xM3ML}V0OSHRD3pNOb`>!S@P;!g_8&MC8NpItOfw{9Cct=~+)GWY#lk4e
zbL3j~+GG=(H6l=d)A#2{5Pi7-yPD?`96YE$ObyHq*S}!zlK~z5sx(|((WUjZs}U*U
zTU5)1e9%fIaUwD1hHqhR>9QvGrc8fgOpKV3mw@Q1HG>gn6|iptnF`Z8&Z7s0z#i|w
zZ3a^$-RdWo*o8@!q>G-|lz@&cjFwTorCYwqiYTZVd9k1daxhKc5LY$BI4==T`FAJ$
zx#E-d_5GB&?~i3-jrwp>{14)jf%oeni^nO!CayDVi&`UE$tf8_NN@shY526g^G2|X
z=<H2oRPv{j9>5~irsiAu;WDebvyCgP0Pe}oKRk_D5L8%UZPnEDzSf0>fu(mm*I<0L
z+T(IfRPmE-B`x}IkAqUrWy?-i7&G|qwTF)+I#&OOoLU?2f0Ic1|E6XW1^Fft4VYB3
z>C899C{LH)@<xZ~TyKeto5sYCjY9J<2GV3A=>r-(C{@|r38b&#<uy+T1J#j4xqb7U
zK{veWy(f?eCGPG9C5y`szAd4g(PP9#vD|jo<&_YzK@iT}o5EiBayAfxjB=&H;0qV$
zJ&#_Bv-pNwf6KL33_R4ts`IV8XXz(=X6aE6ogFnJMP=ccnzL|9F^LDj7%(bFrdJd0
zx&bpfS*@dlL8U``Iak~{6OeuO&$s%sf{H!!emWcT5wm?pM{QF+wNiup!ZLgn=61y`
zeC&TTVi#^E6)EhSHEWlB)I(ooLxQZP*valNEfQB=TH~<!nB%Yl9bR@%y73q`9K-r}
zBSWX?cf`)VPX#a;!14C@@0vN#*wTSu0Kk8GJ=+_LN}2;I2||zyPLk#w67dU8<+0<F
z0y?!SGQ92N+>pGM<wH4W^v8R5E05k`ZI=%mUJp-&TRsmK#v?_4T#zA)z>;zk5c>>M
z*9+&wmE^(TS)a*ey9mSPI?d4H`Mx^YzG{&z?ag*UR$UfUmY?i%wviXFtSflafK*vE
z-%g_i>#kIeu`_pmW;Hl^wWw;<4tDa<u6fkK&U>Et9>WOn=?Nxez*w$}Pp)R2jmutX
z1o1RADrrwOINU~xJj6ia&=`b{nKP<~G^jrseS=W|<Jnt0*&IC!qYkcE6Lg3)GEBr6
zW?R(R8m>HHSM+)7{z6~dyph^0um{^(tS~In5(`?hjyT@#j~~3Nqj*518z4-O^@K8S
za?;zd?Jcabyjgq!p}#9^7go|3*y=Y%t51HO0WWW>U4Z;3HC|ttZmnID5}?+2ojjCv
zPN7B3Y&KecgXvq`4gC!J5d2-1%GC@mh~F$+`@1s-sOFtV8;tY0gp1H$U<#d2whb4`
z3hBV~8$EWC@KR5Rgkc!sxPw$FVvAprK6pcZL_Mj6xE#5$_(A$hh|z~UsW&X6ke?Ic
z`lh2mG!J?><sD|}j3rUy+C-qC&(Gw)8AGTXYRqFBhj29X%*K<gi1l9I2KmOfAG-0w
zC~3wW1bAJF^DG0bH02a=06FakaaCES22-G1(xtk5*dipKbJiR7_wxugR0j+6CUdbI
zb2NHo=F*DYcg-pI(P>2ldu(6B26iF23(;S!;-R@Eu(65**c&({u0<7?=@0a^nTEEq
z0ZGKl`rR=W$JD>MB*-Sesfd%KM|bt{;`TK^xNQa1QC*b3q|*x^08aAP0%4ZL>3YNL
zeQ#kxP%R#O(Q1<hS1#C(g}oybw1&whv)zc+2AwpqcXLA3W{&W6@!kZHT5dtLtUoKT
z2TzH&DGqm%9Uq-2_-`G{g1d}NUU&}hw%*xcnMs_dMQ<dH<z9|2giGdrWpa{y_WKv<
zrW+*cIQrybocfv&0i{=9mh&`^wnKQo=Xnz)-O(?O1Gu>kSKxA0b^_-2buL9Ylw_Mz
zv<lIfc30w<2q-a0W}&JFSB!Sovl-Kk;&=qo`Lg*h_D~qvTjbgk(Tk5IOH%eXz6&fX
z>JE>F*V%9TEp1poPVUI2SLT;njFulwAyOi#jNPBQ3|J_d0+?ovcnLc7iYq8L0hC#t
zfvn*Xa8}cW3$j~FTAi0Mo!?(LYkMafskFTZbp=^(45bs%D$Rp0YpT0n#dAi}G%Q<Y
z3Y;ytrp=3$TK3rppuM~#nDAem-uiHJ<})q>J7zWve*Xe*74c}^MWoHe?wrKa$aTcC
zP6#6mR4ScV1};-?Uyk+buTQI6J;>>P)yaM}hB}`gL%>-xtzH=*q2+eD+~1)L8kxI4
zmTJIS=WwOM8k3xkUrj{CCqsmNSz>>$Y)dR@y=6!u4UdePg^ou^>=8ntPL6xD6T75B
z!^G&<KSXxzk)Ckd@Z&C8ObUyxmc;TXg#~FBk|VYX1c+5F2+xSl8<f7&Yak7JKr&QC
zj{HqK%u~jXvmojH^5l6I*-r~Mf~2EbYroLoZ)+(4*X)M-ppI10P=GZw=zDf881RYy
zff*JO96^ss#6W?hiyXQ#G860;xVaOAo|sR(P1{;gf$sbqymlmyjlTe`DT)+op|~}B
z14Z%67XYFDlig~GtRc=ThRMqRLQ_h>n&~2nVEDcmqEyR#CSlY+%IT?K(=FO$qtgMc
zFnaA&RI4s-Fyh;m&i1+AT%R5*!v<y#0{3Wx#VmKj?ihA@&~uC5sLY5Jm9(DgR9fvb
z-fu{WPc95C=dBYs)FJ0b$Rn7lwbOHv)_|LS3%LKjY2r^70`>_nHTwL+QAhF^aRTyr
zsQO^%VV{EKYx5B5lI9ExfA9ZW(OIj1<^&(hGsvIo`8Sf*-i-v}Qab|jkol~bCu-HS
z=>B>tQzb8-w`h3d`#{B06b@-n0)zobY)g4byGA=w8+^&CClxaFy&D9a-jcOKonNXI
zpx{@tIH6-s8KE69y44Tmc|pC0EGzLV)6HE-ZO3^hB+)17KZliaG?)96%2Br2^5$_H
z9y9wf-;u8}nflFxK7Kkv3U1sPHI=U&Olk~&l^k}HRS8~$^QzfG<wQLB6nWo?hUf%q
zooqCOdTF38Bt;9XTb*^3!otMlA2{|6kkEW3**sP3>L4M=wJ|y_q>gHb%5$DD2LEIb
ztNXdwagqS&KTQ4U<o3Cr!;B3LY{nAm9r3V{Be@F<UoMnz7xHxs6kNG*mnQm%__$nW
zn+;k}xpMq>K{MOda-^GMpf7g*n=%T_h`?UM($=93E;Q`<fS5Hx4!)@>&Icg`;PI!F
zPvbsNE{K^-7Cqpo$8?$DX>v$w+4|iwj>R4fJ|BzIJzS}h_>i@+k_heZnFI0m`1xgn
zJZuW8|E-zj@;s?MS@Xyp2V(fQL?T+oD2WIUt?+YNco}`=n9SzioXrZAO4NLK>5XoR
zC30TPXx64uiSX>~v93Se>nG*Iz)^G@A<dAMX?&Er@iUEpcl^|(5t3#_^xNdR@U-4O
z`bRG{i09^$>5tSjZ$kno9gcFdE_o_uCb&|}H#>eOixKT7vazn5_XGWx8Keh3kZQB4
zh?-k`D_CQ!FeA0hF=Wu<q51W5<t(9l6DTFnXlNEzkNjw}kO&_dSrpkRKvl*vhGFUw
zTw@s-*{|{9Oof{0Ws*FgN*34Crg3c1c}q}S;~@!^(n^W5@Md(7S+s`2ntvm|m@4b-
z4Q)?2jRKBdmKHHC@1xTn_NyINh3vuZ(qEb`sY_UG?Y}%0Tl^*m6ov&)p0&~beXE|i
zTFI=XOXv(tPYdIrAOq-9<}fNxjiq}98<PG*9MRgxpNoN706Cl3H*5JPg;WHPcf|7(
z)+2l9hlwY`r%_SnLK~LP;4NJb>bTHq%8i#A7a!5GY9(sRX~kM%FA)s%D3geU$~K3D
zga>v0MsySVH<?CzN@$X48Kc(U$wY13a-NqPv7Mf*^DpFD@ECBi8C3$^2n!%4VD57+
z4Wd!0ZjQa>%0C`eE>X`4&_ujfSfOFIbFEiVUd`5S!N4SkxbRaSe^ku9`^ZgdnTv-6
zMf|iB3@QzG4EeKRIoeE0FUmrNTOGR9zqS&Bu5OFT9Dhr9Bi@bJB}DNBYpL^#FG>7P
z(?ZFRl^EF;2LLp^1<lt+kVMA$Xvs@u;-+#!{PFa~pPRp)Ce?pIP(!~q(I&ex-44>r
zm+P^lTYL(x;=US4LnbGd%?T%|35mq?z)0h-2PHDI(V^hQ70MCujnPpp7KIj&2Ek%Z
zv0g<)RT{(oFx`v7NAV{%x_M5m{rq6S@xkK}b(}{ezXOhJ63t5!TP>`a!{M8hDm3Qy
zx(NY)Dm-S9^C`ujnt%28|I?5ZZ_v+FULUF0N$f6^rra5~Uj{j#WO$UYZ~8ZDd&G%g
znd=?~Zv+g3<UdVaNl_%YQBhE$f~`ZM$ilYp`~JZwbN{gNiGTi=mSDlYnC~4wwO#YS
zViE)7&V-v~woHFxuVn1t{*B#de3J~L`w^%Uh*d#Kql&~J`O1Nk>v|HxIUrY#lmoM~
zn_03VlnJXQ1v{lta7HDKriAC@G5s&-C&fWc2EOoVwZ^XPHYYk0Mf^_{FWQ0yYgn!L
zhlPcohwZ)yqNabC5}|KwP9!2SxU$)2jI}d>?esE>7d&D2nlpv3;WNe7!LCpt8*pFT
zA2}d?EJ@TZ;~1W=W4}MM?^ZucWO|=d&+F@j_JUg(=FrJ><=l7-dj84up&KPkD-MB%
z=`O;_cnwq-3op_MVb53<H_HbgTFL8!)72Wdp;gYPN-knp)|(Fh6j!}0{u9r`y=>G6
zv`pn{(@L59l+`{bblgThNIEUrf8M_Bh{}C;Bw5eg4N99xyVu%Vr_4zH0COSO>BvhQ
zYO6lRB7XV}zFrSS|B_gf4KEV?jMYe%Xgww!ct+UC*5IBR8A&esf~}gh=TRweE;MXu
zrJ%1z+pHK2-#2$mO5?fM3p=UJt$wW!Kn5&IaqL!xfc`cfFp~?g?=64*Id7%aui=x|
z6_ME}e}V3uzZ$X25zl&ggpa3a-Hz5yK`x&nEyt1Yr@lB>Om~Aky;lqVi;g}Q3(1j{
zdHmz%nTz7?%vaWMJVNCILmnE^f=8}L;`iictT0iA2D3OO9Lp+Z;|?u6CymPi6c0?|
z7ED3=e2!3`U7TIz48zbWkOxrUUn$e(_qI3i-O#Y>y1Tz0Is{@4(%<&%A0X?Q%M?XZ
zM@9Bk2xoh^t6GkVBuT<2F^g}?U%EQ;veQ-Ymu4SPO%in9JE3<QGcP8cWLrip91=<A
zf_yqup+d@PVkFl@aLLiH#ZP+xCGq<K`&b4mJ3&>Yp8p+-kf1_Z5)W}Ebc1>SzPU?M
zqLyt=@i?{GJxB``9lDQWes%JLf3^PWEDU&;BAN5B?^jfeaR)}MrmrE;k15s&KAC=@
znc5CCL;UBrg3>Zd3ii7xe?8|djPFxw$Y>?6P<{w{*lxnxsn_NNo)Z8kLVu9Kj_n4q
zDtyf{)p~99)@Uf*MqX7M>fs=8_vLd2Cuk=t${#%AzYaOzNzqD++hK%+65;8)Rm+tf
ztvR=_e;h9bg>Y0_mucOrAko6WJ=!+IsC)qB`de5f>!Ui)T12SMie5U8ah>fUi&EiR
zvkDDCGvtp~;cNINWYPuHE-|{;#pmD6NfQj2UchXbVU)L%xQ0505S;BnG32(F;Os_J
z>OpAU?jlH#we+*YL(`V`cu-O6O(69lYS^jw=u!OP!X2gX6w>^fGq5Ets3?wdSKsCY
zWnQ9!vA|GfLkC5KU>y^b7By3e__60Upz~;3&BU1mJAe3(h<p-=)OfQ@a~U|c^z7Eo
zlrwFO96@`gvg8&CGwwNyk%#0V8!w>DBg)*l#kWjY{)VBh1KAg-zo#!vyQ5lf-*`01
zZkelu8KQ}bVSJre2Ul>lJNc5LTqWt*b5AV-Xr?@JW_~x*QP7|LBN@O{u7IO6R$K1B
zLp>ck*;}tFInD)$Z+Ru{#mvxG(^){g9}&iqjfeG8s9N4C`g87YdnIMnxof4-&20DG
zQ%A5ttLhuX@ctJfu$UFUu-E<-TdQ*hE9lRN(+dw3&7iKL?R>5%U)M6Ew-aMe{^c=e
zaU~J|1P_}@m7maM3079R<>>=o#p<`|7W#i>dEh^Fc`fwACI`pSJtGntQ_A%B<TLoy
zzh@Oi0hNbYr(Z9Aun(x`Hs$@m*Udr|$-a_lAwav%&!NBIc93IvQbLdR@G^v@Ofd``
z`$dsP*xrj|?W1hXsH*m*gxP4}eyDe3wn{W=_LLM<GOp$rR_HWy??Ymh(4#EVS66ZX
z8xuG9B&E@jDx)r^5S%OQletIdTRZ5wS){T#QTys2+uG^2DnFoj0*&Hem|~RE8034D
z;Mf%IVb#lAP}?;EmT`^Po4Fw+X{K4<)n2s7QU;XZG9ysb-rF^jW4`V|teu;p%aIBm
zp~lu>oR$&<TA2vB<e?Igha~ZHq9p*#h&r`oUPd9N@4jJ?Dy5`!oq}R&?D+-g4vrB=
zNNGmOj*g=usf_|3h>Y^EFZ&z_Pdn=~AznOrA~$bvH=%zmPOZ7cNVFY_Q7(NQJGrUi
zfg^K{dq0M7KV3;UMJ_~P>Yp%DETYIFf)t_Sb>gyfH!(QT`JC2AaY_HgZ!iJz4Uf6t
zNR@~IQO#U9hO2GEUq2&N^v#$*A~|bnt=>`{`~U1ASnOSG?Ih_4E=P1jsU^X`!W<i4
zNFR-IHFFo8=&%nfn9}KnivLI0qkXk|bTDvkCtoVB+|eQg`BFu@2rL4X<)5Wzp-ugM
z#)($K%W(c~pM4W07X$Y;&VXm83!~tMPpe_k$zGjg_dwF)1Iq%3vv2`5dQ)@Sq93h~
zsO}B~qO5gl!xFK8$KV6IjRN>UbK#meho2t;9vJ)0J+WSut33F3uhi;J-2(lRxSmO#
z19pcY%M$8oov<vZgeLAA5i~?`V-XjE__Qc(Wq);!y2)Stl_JKpnE<N@`N0A)%L{eZ
z=hVg$GnJj``A0Hhz4W$rEY=&(uI_D0)IeGrwyr-_CZ2f-yXNwlp|B9)l+DK5qjzgj
zs2$0Ol@<}hOj*?#VqB&6VZqdpbM|h|UPXQ+ZEGP`cd1sOPv&TvrUr(dx)!HueK6O0
z_+qo_Op$d0rHF{DD8LisuI55wVm6W-hQl&vmKE5=PRH$&#b^5~+!fm1%qqrqOPa52
zLAqeF=7MVRU2Fg7sb84&-5f%YRM+Y$)iN(LLna|YVR%!V-&DXj=Dqpp!v}l|%f)<^
zQd%P()L1humd#_R)QhWL)^s8}{<~<7++QE<Gz(6NhoEqYdSC$T1BIQV%KH@*;AOSB
z6?oPH`%3E7vIq7)KwXZ{{bDjy(GgJ9T`GALI}3<uWwY5hJJWJH)ut5&ci+t6(g$Q9
zjuKdq@*{AX6gDv;;7My@V>kR6qM}NQj&XYlG=q$^*zj-);(40%te^S8+cY~cY&7n~
ziNXEAIsZb;12}b5v6Nv;-2%Z+;$BJ+I~otC4ZFSw6;1B&Wi>NWpzByhSUyJY;Jd$6
z=#|Kyx|egm{14=bIM4bqyp1OJ4bn*pBR7ID-(>9#h_je7_HY>~4kU629@pXN+Cn!j
zA74t>2bf#06ZgyJxV*7iA8qCbc(K%G`mqiD&+Y1$0D`~Jq8)2*3*I|{I;5+cs*3u*
zUS9hm%_2>SX`&^`z4@Nt9X-mxIq$$eie1|}NM<wS-o2W)L*W=F?4?fib1(6RXp6+W
zk90S=EsY?SoA136jN!|+C9XD9Xad9}-c7fm0}?^`gHcf#bl@IA6EG62Iq+nVk{9+&
zIie9{0SP0qZK9{GD*|XiaLo;WY-+*ms2&}<cr4sE+Hy25%|Z<vQP+H0h6=ckd}dmT
z?@AG}9B0Z%;4<u|45D56^L2w+pNo$trY+_;XO)lkZ5FEc_GV{q;g4pYKjl*oa_p*i
znfSe0dg-0dqrddG)U5$u*X5bVD&fr7D=Z=nFn!ZGTbl%Hl7%W@nVaG69l3Iweg9?g
zb7v|?CDX>sad3O={$fBTkD{X5r#Ihv43>;A<Cn(j_Hp;djPu>YEsh2f<06!Gof4O{
zcykv0aiMvrzoJ;wZJYL}^yG1$@n+5v_T`QBnf>~~iIJA<BTe(?1_-gKfX*`Z-nJDC
z05%2XZA3XoGZ->HG2qeY!G39B@><dI6k`a<r4g&-S2XSyvOVdz4tqOdZ~yKy%=n_G
zDGZn6IV6@?l%^fYkKzVBHQ2j~H<3-hhQWT@v#F$~S@=&*x>|w4oX6dU&n=4L0xk!Q
z3tX)yx9COsJ-4W6#Ta8=?^Br+l1DWUaBE)NUmu;65Dc)QDyc(FH`5TsdQr4TG|FL^
zm(-gj7Qx(uURZmsS9WyL$(E&-D%K*<DZ~O*3R&xH!rQ#@a}aj*Nv|;IaE!8(wU`Gp
z&^Lsi{}+@5>HX)u0Q_A<Va|DA!BH?q-Cwdf$_P)7aO8VRm*~cdV}uR5-W&J;fDGQs
zEoG&p6_FOM5M8t$CN`{_=Dsx8;n~R?%|wn+gU2uL<vMtY;V@R1sRv8Lkuv6Je-}=n
zv9`l^(c5wTE9Q02@N<WFA&yOY=)I#RrcKz#WdL#}h0KQ>GSYaR>0vCJ8gFu{SslgE
zOJ{Oz{Q=1U{V;eZOEC-W-ra*2NR^%niYf|(jSl)}$GIUxU%H7n3A-Zd(EW5S98$5l
z1ijR8A>Q^1dhgx!ZMx_|2^ykfL)`bh{1JuLXd&QFLDzMMT!LY34uiY$a*(>LL+&pQ
zW?R|tlU!Nf)vAYP6j}*Eez_90H*gT)%8HeWI^>VReeQrHlXvj$YX<>ZAk~gC1X5tH
zKT`1ks#r{_yS*PTQ!?-x3`ZZYmS_o-LrCjS<vf-rjbiwF5ODY7BFtaDRP2%D8xMf{
zJ*|LA?E=wcwISq3jpGbRZWMjDDOSrw;AUUS9ZQ@2k4zUS+L1xpUbr)*pK~5);da;J
zwFn4Y{7e{oID1Jy+VCFQ0qFa_N9cR@wWdJrJ;1xh*_u9?8dFlsnzXL9<mzYM;#@&X
zS`;za-*4TWT8%8V%xQj6RHARW9BmfMT{EC&)vi#yrWp?4ee<x>-+y06k?|dwn}RKA
zFR-im(ZpCxQC%Y=I&TwRKZ4Nu$+{B`eOA2=#$F7oTf7Z3KhQx>019>RXoxTyxhT6s
zcdwuMQ|DNMm`#_L_KHjcu{YA<1F=+CRT*L^PO5~Dtb?&Gpr~xJl{-V&vYb1+wgcfr
zENhG#DdK#Z8+Tj-Rs}GPhmhLpx{4(HGaExwHMYo9UeL{WPFJlzpgaS-aVKkTpz=hD
z)odKG(9&K(WA9Ay0ZljOixxEBt`&aS;|$D;oDutfwf(!am`P^L0nqbS%<(+e$`!DO
zC|eJ<Y4+K@n^+cu&YK5dkhyc0<qN520x3eyYDF3NG8`KY!s2|1^*_9@RSt_0P77%R
zOj}*)9C8X-gV_;!x>h0eh^t@b?!@JrS$})n(~0vsPFnfR13^yX?2VZApIa_YSj%gM
z<4&;KI{S1s<QWV?0<mnGqhLf)gi#?ZfoTW=&RiJ3NphhPY=#^I)dC1AcSxB(4(IlP
zOrfXU%8i}8_kr@ft&rWUIN^b>0rR==*}IdW@O!eqQ$!OKW1da%ldrhzZM$Bld&~B7
zD4!D?ZrzuefTZLlxck_77a#YiBUxH=qRAPZxHyKbHP5g|^LO1lvJR8>zhmZCSRXbW
z&I8uIXX_(KvUfij9$u@W1MnzUvFX*79<yjh*~ao2oJnbAwJ5N#rRJc`C-Vz;N0{d>
zu2Tj7A>R59N!|y!l)*#z{y(PPF|PCWiyF<ge!0oEYvSZ4+nzWz*?qH(sV3XDZFBNu
z+wOG#pXZ#<d4IjW_Fii*w0H5O3uGC=S{~Ql{ig4+1dvTG=Anm=+gL{ZsjLo<f3WmN
z_;ZY2FAPMWfpNClqoSvHQFKvfZ4TE}p%8@=GD{q8+No?o2lXvpy|?wLUDB6%%)+sZ
zb2dv#U;U8lA7XtGBTJWX>FN<3BPWz}*-FGCim}V{PkGr-qKnxE({wU1qm>g=!M)Mo
z4BfM+1++wE`1N9aB4UnbJTZo$!oE`C{+-fk?|mdHrogDwEzC_ZI>mUgw@*HhTb8)H
zQ71OSG8L2|e@*dw%!oZx5D}?Ku;lzl!iie21@W6CfO=!A8|GYC-c&1j?>=<CwcLr-
z0J$h)H)sFZ((2<CM_e<x;1q}H7Uw(p&SZO>0)Qlc_S+UK!MQ7?_RxIxZc(|>V&gZ_
z*)N@b@l|H3xY5v^6-W5L{Umc?XNc_v-^nP^QQIAqFs_FBWkmTz()o=9<4n6!$`Hi~
zM`DXz+Vp#NHweaI9Zo?i4*Guoq<x6Ta^LuK<VAfciMvZB5!IVja_=L|#(Ti|2e>w&
zw*cvswmv@b2Qmn!fEU{ahVm4XVK^QLurA`zz+nW!YB{_0e=2^YP$h!*a@R(dG=h2Q
zDqnn~=n`DXdVa?Gn3?VRYvMOVP)*6CcO@gZDntAIQJlgyMMbir8W8?AjsLor6KnQ&
zvRSRu%o^CDF-=9P1+UEb@-6vp8*%`=w-S&g;%vxy&-weY0Bx4Fp?wK$Z=e=$#{<of
zqM0FAH0UM$Lsbd-(FnY9@zgm)yNzF1j}bZ&A2mkZ(SgZY>KK=^FmX%YWKUB(?~)#2
z^+)s>0xejpcoLN7OihpRQ$2^VQ03eQ-4-4G9*Ob|>U$4;N%~*N(*5gv@u;6m;+Oz&
z*RkXs`P)}YWuYR{o##9nTI&(;ATkQ|`lj7{Jelv8g32*5287?$dNupAMdhn0%eaV4
zSIzFaHu?}-#Lu}z{!txv_6O-Tj9CU8u{sxhZ&hH9Ss&AmM*O$e@6c<%nm$}vXlTnr
zv&%^J8@b+LQkh!b(taf@;FLFtwE7sh=H$+t2z@{AB_vQ#@w_=ul5u(&x(Jss6Q5!(
zLIKaoUJof>`@bU*<#ozH%7UnI*wVnv0FSz3Ny$&7R&jbWLRmaMRXpA)UDnK?C}M9n
z+Vu?s+eG!AGKS@K$0y0V<P@>)LbM&qS~TzSYWp{Y_;`Edoyu~ulZ`WAHrhGZ-6@CL
zqE@)K{x{YNCrg1K(Nrq86Co5YePiL@e#G)Y$x|rnxtnKgn|*{=%f*|+!Bp~%U1oC0
zRQ}2<x03Qt&YOhp@fiM#D$P7rWIo?c`Mj7p8=TO!{9N77bR3gHAt{RECjIdYh^bt$
z->6yxzs)rLo~bh!pAe~l=J*hWLT&x(FcxyGvMw()_VI3q@!v!eB#Vo2Md?s19t@$J
z3U0F2D4yO>AC~%7-j4wrk|fTrcp&MbHdM*mcw}wrcnDGbJ*X!ZDaNzqwGps~FRZ@H
za3*}~DthWS%RTB5<n9QGFQ4n65!_%C#3siwx#^S9d5TMF>U<XP(ehf-#Z#ngzk5NV
zak;Mh!}i#<sp}jIdzsO=%c#jH?IAIW=@*BPce7t}dpaK26144i@E^Y(i14cY@ss7Y
z6jNk}#TLhXQZygj`mo-IwJe+a>5;qq!AVUx{xF_z!VYKlbeX;zdU2h>KPo|yq#>Sr
z#6YOhRyVYd>d0UL?X2mNC`42@eq<sZf{bD5Z$#N-BJp_aN>qQ)9V{IlAoBqZ3z?5f
ztR`bGjZRIsiQ^t@_;@lA8OKQ3dQJZm0kdm)3Urzb*U>^ZqQBhO1YX-D3PIc$2(<~(
zqOFbfhfEoX2y!ZQR$v^S8EIuqt@AL|-&HRl?BpKuHb{;Eki}8}FKCTODra859zWeJ
zeRO`4qKvMYv)&<Y1`9hQ$%9i~F7)d1%7%NIh;Ux}uGQSJ>fl@9(kSpv8}nRpDP){z
zzx@-d!9Qa)yH3*eP|%OCU!&PjU;du><?SmxW8HAGqEtbK^la)yZeYd3$7i+Bz`<TB
zmPulT_HGaC6U@IH&|+;C4g0WgYopO_Kz{Orf3%7{=Z<XBi;HKiV{1WFTb>^Ezb&|2
zVBq3vSk@=UFrq+plDA+tS-S6d0|t%@)X(9#^dMB9L`;Q=ux}?%8|ebA5#nHO`aQtw
ztutTEIKs2R?!zAB6B`0p28dG#IwkZ67Uwywa1wyWVPd8IaR2RY<j?DsX>dcD>oltQ
zu=aT7GRc|P3>vZ1Z7F(CK;Mdw(lVHGJArsavHT6PEu5ed!Wwnu!wXnRpP9yap&>^*
z50CCr8p^E=xhGrQJqDptvEKaMv(g{?45<coh%LPPXUf?9h^Sh_2~~_Sle`W<TWJOT
z(h#`gFDJ4nq4Ljd@*msQD;vDL9{o*GOL>tknv%v0cc)oZK*hTILyI&4SNoGRNZKIE
zy$6f&u4I?BSiQ)l*E?x!BQcEd<@#<&SO1Gtg9f8S7&L%0pi7CKiqP5|UhuV~xy!J(
zhtP^nRW68XX(u8ym~Qs1J`<s1Uhr7z8wfa4m%Z5O&R?E^fpkK4%*k-k_#_S-->p#J
zZ;`#{`GiOPyQqZLmS!np4lIVha+My}D@ZGjNC|P3da#!`pS^F_x-29{i6Y{Lw#G&y
z=ac%moltZ7ulC#|vuL`j^YRJW$1;83i5&diG+==ldSbAzk9tJ2jO&*T=`1^h<p8wK
zwG`$olj<xA-S>B?T3y_{vO&cGSbqp)|JZ@&E*Gq+h=RB4ZA&mllMT+<qHqi#QY}@-
za&$B|b0Y)}=Wx3P3rL!PHs(P&dg*mFLl`k-8r^mNIo{I`+@CmoSY-MJ3N12Ajst=V
zVzqrWV8qv;zSF1mdSTbRQa@L64gf>S;DluJ_xvoQvaL;5h`K0l<&ZP=%Jk+W-FdZ%
zj-)nx{`HPZjP#1SbXj8Aqm1mxp|$;yw$%sKj8r(5`f|ZBjZwKl`>F!v%m=eeJ0h9!
zVJ;ui$O?r8^7Jzf<a`c?%c5IVc(|V`J_lFFUIH!Zsuh8lTs0xfOHd?2fFB0aIu6%j
zXIpBqs(A4_=+mghf-O^cm{K*m*ast*dQ-7pG>fP{XV|H1zsQPt>@=)eUby)vOu)l#
z79snD`Np+_CLgqqT<Q6l1A{FkTCS4lFH=md$O6el7R9FZlrFZjTBNLZYSl`3=L3}Y
zu7|k$BB~+Os7F$fx%<cM0Z+yKL8n;1or8@o9^1u@0xfsUAmd{wG3Y8!W!Kc;Z#Q<l
z20muydEPRx{uCWpuK|gM91`k7QXEVr<-ap?ZwM?xAD+Fvf32VB8(I+mqP%^EOg5q(
z{!z=<SiBHua1_5Qs$})E8Ar7~nZ(Vr>_KpA?&~jq_+Hn|`0UhR4ZsZHX8-N2QU&9V
zxHMJ+E@F5n{mz|)Za-+Y7!4;QdgG0yT};4mM&wQ>!fF%oZQ}Mud*;QzL<|D?%H|WD
zD|UrE9d7atl~;B)L-Y<e>6|2wx!howT(${#^%&?`_uacoN_N$Y*iabRS$%s8(6Og<
z74-iiOkylSfsFhG1MoFSn8Id{AL}EKBvaPdm7@Gj0_Flqqg^tjMz2`x9B1piuxS@s
zh<;-5VK{_&y#w;K%dycIJkV)ocAg5iPpv#QbdCS#O!Zz1iI_UwNUdkIH2vu80PC&S
z$@#LJKAG7Pu%EXUP9rYDq|&!LaDmFAk+F;3+84PCS-nK_0u+(d48qg-6Q#^4RFoSr
zy?%MPe=g&x;*|`FzG-eQudjdcm4^_lYO~(i_zG(=2bxuGBtR-0?r4<E@-vMoxZc`S
ziiI3Nd5zg1%50z02=uM;H{A7FhKD>7wrod3+8}6Urp_4semXR;&JD(>T^(nBjlHv_
zZrJ!TqCp714#*9fOw*6K*jrTxn7=6%K#Cb>(J@_~JsCm#;!?N_wEvmN9=k9Q^fWXF
zb&CzTlWDj-^$L&XICzN2HpqqaWE3t^gm7!2nLQhG3B~%2r639Ubzj$CZrpBU8eXa*
zX$N#HV=3rWew$lUD6pC6Ox`JVGjc?PaRT*zr`cY&0py@KErI*-v2@)G@M%0z?!@wW
zbmz@Lc2RVgcB-X3J{w3ekLZ?GQ^(4IABu{sP&hE1=&1^=Q#kI9^O963p=ZHO9w(ub
zXvyKbz7=0%yNj!$$S);zSj?T6DWG2?PKsa&X1WI;eNBC`V4}*Sqi8?pK%-zbkZVuF
zs{7%}3Ebkv$D^D6WtrZ2{q2c3Di>~HNXo2nrFBLI5-|1zNi-hKa~licRoa!4KH5S@
zJ_$$vtm6$4toc_t@9>~t_Ls<71CJ+pQr8AoOGl`Lq+Z#~s$e8Mlp5Iva$4A6BE$D|
z)@}=Kv>Y8pdGEx*>Ktk#L`qQ1E2UTrBCbpZ7a-_fs1Mq@s9abJd-}epZ?VXx#!~Z#
zUu(2)hX@ICP)YiEOw>ez5)4CsMwp-ctwLXjq0>R3*K_rj`8;Ll=0TBxpEsuU5-Ne0
zNc~nmaHNj4usZj}PfG4^AVPVPm*e`BJ_Bj4KQG|Tb*O~N9zChga%pFj+fEB*p$HF)
zA80_Q3c1y*$zFMUp>d7pIHkC@Ok~rapP+f9_q%$g_gU&s+Rd4-z_zNS9s<FJSfW%8
zA;sg{DbXMHP?F?aYmlC0d3;%dE}Q<$eU;<a^&_SfGTHep0=E{t(&5SSgz)_CfPk(1
z{NSYP=%>{7xq!?vG2KRdX(P3Aar@<_38X7?ST*nyz4fN@w^yvGmsU%}Bav?KWzTeU
zbgUxyzs6Qyp+Y>7?cUD@InU;l?z?fAJ)W46ld8PfBWDpch;u_$W7{D8&Di(__pP}=
zmBF&(S9jFxSx)r3$OX=<CO)Y8#q`(uj1O|BrYWkru|jS$r<k^;YBo}_xIS~JBw#ne
z;0ez>C{?&Y^!LpODR|Y-HG*jmS7ge)!Jh|_KVU0+KR!tZt^8-n1RfJ<(6A?cteYQp
zTRS~F;k#R{s~}B!?82$8$MsSkrCD3#n5EA<D~sP4^p`#5?`Y!stif*4S>+0Ou#UHT
zL18_&o@4$B=O2sqCy-0U?a^cdAb<&DP<)e>p}lF9a*QXm4MyaW$e!}I9EI}AVYOkn
zg&7te7$xnDK}G8f8_oF3gKI-%(aL30?ZGz&8F0RgZd0irNrvjHsm2f`0+YT|2!gl*
zxQLr>ETGHOZ(gWb5PclF>GLB!A5a*fsW;}G#4!nQ3<uvw)>Nt18QA|NVE}d>+t?%d
zbEskB#<G_jwmGx5Xzw7qYRVRc`z}+%E~DsV*{{7wwWHHHn|_pfllTIy{B}tEx4v{1
z2!SFjbYqZe4lVTeHyPQOKwnGZ-X~Da2_Z}6%rUJ+da*RxK01`!S(E5VZe2rZg4=_n
znvFJq^-}v_H0Q$G+FAmQ0_2f<AS!47vPXMc2AkS(kEs?c!cplg=3U&9Ne%0M0meL>
z_z)g>-F+U&CN{4wmM%M0eZ-3O58;bZbaxz<b3(k|bwYThpwApX)Zid_v~q3z?)|-j
zZ@BOz<(4!x&pihh?^h@n37lO~g$k}n36z)0D^#s%%d+zMO4~`jfPpUA8QdUrfkhjc
zf-2H|v{%(1jiBu7;bkHF-;ovH6kXq@#LUNcO^(pM>h~>E2Rsb6Snu?{m}(7iuBy5s
zoX3<j=}T8l<IjTVhdm!2l;p#Qf@H@z+RB9~6@-u)-5c8A#8gq5#P*FMs4%2MA-DCR
zUy-gQF8HkpK<(LYz)yZVhd415k$_^vpT#-q25qxB;`Yuc*6=kQa|<IPi~b>_rX+5t
zs*N^O+fW7bm*oI`_fPPAxVE+4Z?ERL8ft}WXL_h%e;MM{QVv>COw#&{x{%uv?+|Gv
z)KsZjQ<}ed$}bDz(CcbRsyNujca|!WKFQJdS%hQQS-EEdz!&jw6=&#Zg|mi)Ju_dG
z-AWU}c$HzYtfjcD3JjEMYL7ff+oac2L=4u?n9}}yGvT?p+NdyS1@_Z_hdtfWaHKex
zOTV3iwYAN&WqtEheMmW>k*^S6Mw#>PSL$vNO@!s9Sgf?4z+%3t5Iq@s#MOrQfF(GP
z`E~WYA5N*<0O)qIeaTSIBW~#*rwmH}9(+=JIrjd?Ql+pd>Fx0KyzI}+yin!9J3f5$
zoGZBHs5shWsomd9fDEAH<BA-YfBi`$?{m=;tdLvRZdyz|V17;AxM(A)tA3sz+3FE-
zq@3t1=XAw@uQ-s%=5uJ(a)`l9RhwRzFbth^hJpqJD|iDnVEzxXgq(j8Jie`SafM@G
zyv4lWPm)sd$Ldw#H?}hW^lWQD*|#CBN%>vcYOS`1<c@na>dJQuRN{<pqz=wY44Q-8
z|6+^qAG0qv`Z(M){qW~&7ld4-{X_4i_EU@u*<huv#gX9LPblyfLH*;rL>JCN*JP0#
zK*WNLOY)z#9-tsri{;l5mlTpOC&~EgqqXjLR|B@3rcmbC7YvV)uB!3=24igFprDw-
zi!|}e$Im|E$RK#+S(r~4oD^assG~kd>{nO63D(?lT||-o3Rty7R#zVPT8VcD>BUCk
z4&;JV%A!p98?;H2%fI?_L#5|+P8)h5z#wH1WPH^aj*?np{BamN=Q=p*2=9}g#>1rV
z%fkXcMP4|0KW4#3nbwbcD`wU=Ur#w-&)7ux5q>GL>Zg@hH|fB92UvnU>bwh_(WXVe
zHJ<D?@5MQEuf|>a=1TD5T6vGJMoa=h=^7{cuaF@6P_#BMdHihDvlw5HpWO(64KBh$
zo51rcf!g|dC}Cu9teKrNO+M-=zS=c=0>MvAnq=)5ot~hx$41jTV9`g-D$6m@np@RM
z;crb~tY1WP6j{N2dWd{)xO-mAY}s(~)|MJH-|@gKvrecG6>&|#pC}`5>b`dvS44MN
z7A1<QW-EKrgVk6Jz%vqA)`=8gf0@Xj_1=f%%=mca!!dK;JtdJViyPV7m0xkOOofRT
zjnJ#zaHjYA0-9w}8!9LMnj|W%j>?R2unk8pIzd+^8S}L9mchvCM@Y-nPmaTY?4pbi
zV7QQOdcJ%YVG9phn<LSRuq1?v)iPkzMj_N28y$pRPw4tt#yjG}B|{C+R1}W}lL)>=
zndG7xO!JOx6`Uv5!4@^)bWD`lZfOT8pUC-@<mO)Oo%Nb<;X~yk{QG}-u!%XgQ03OG
zHFier5)b+F9zT4kr2NC)#Ft|CUtHuPCdS-Xpo7Glns+bR`)#yN-G2Jd<5RmGTK5Fn
z0QMi2jQr5l<q-h5YSO0Js)D{?x>1Z=TLr86f!E^a`QbA}#Oj!67~sc!!cS*=mmM2q
z%8eo^)J;r;s=WTtsFv~*gGd^StfZwQdH=o{H~uJ&=GM;k@SjwWF|k{m7CQ&_M^;{C
z*y6o~-nh9eaYwl0*NNY<LtVop$f*KgrglS&zPT=lgZKdHqv%hXx^*W$eQMen<RZfs
zHy$4M_Chf-_3AZ6O<R#;u&d|C)BZCn70eODJPHaU5r~dT1l?EW(A@!&Ioc0rb77AC
z=?USpqOu&xKL3$9NzCRU!_dcfAHj^}7y4Rg69n=S*MBp;UQnGu{O6O`avHLgMB6aQ
zvfhfXtTlj(aB8R+&3QCcHhF1e6!SjywUPKjq=W2+LpdH1;o`kL3)EQRxu4f&xr39J
zGAa4-2VT#RLDZ2Jbe$+~Rtvx8O?s*Msa)<a*@Z~ei9;tp^nKnR*SXH{YV7f@UxXJT
zDTx0{)&79;-#-d(!EN6ha87rUaU<TNIfH?Jj$j4|02Qb_1b*#jUw0+sytQl($*$S9
zZ?-y7Dr$?*B(|3tNrw5q{6taNbaRh)_m|xMK<wC74EBMMA$6AZpV5XDFwOoQxgqif
zF@Ixw;;q1u4G+5O;!_`R1br13mZ}$qq-1|EaqahG@OSKdL!SF1+P?F8^g#4Q8m>KX
z79a<<{T+{oP`lNnrlg`fzqy!yT$z5469_0+t!DLPBkrrp&bAQ{@PTongu$~F^Jr0x
zadZjaX6`s##3=t@I%=t-&cT0e%YeWiF-7vKkl*PSo`mmtw1>w=`^)|Uj!?o=)<?o<
zs1VqqdG0Ug%~>RC8YxjXK=cZxlfarGgqsD(c|v#%!wGVMbm#F00`=#@#+J4F({Ljj
zq*PzbG*x%=)s!6M$y9GqL0A>x{m!itB^GL2q6~#RDL%rq=N0zCPsS0XWw0?(4h)+*
z4-cxVT9{)pU1Eqn;d*-?zAvLm8AAT9y-6*%5d-$#n9`+KZQ*9jIkTn=k_jVPlw*LI
z)32VVHf`+*4V^<uFr+w^z<*8JzTNQWA$oz!YT6z0MGuIDXw>yvgi{DAX}1S&&7Z_c
zHC@!IR7|kID>HHTny4fJlGFLWLsi;RW{sa*sl!higas}=>l5{w<p}sK1`!2&*dtBJ
zWSJtYcT85q=@U|_P!UU9@FkF*KQIBdyP55v7pZj&YgW%6vj6xG&;H{I4y|AWuynzE
zSUNr07=PreBbL^l(Z-v#ku(#3Jr$={(6dr86}#XvlE^aZU@i-#&`x1A>><V!rD>q4
z(H7Gbe=v;hY)06bTbIaYKYfIQDi(94<L{y$psm@Cts!l1b-ZEI$s^Td-UcSo<FeXJ
z&^7Cp`00c@+-?J@i7(}7+~()YaP*1Wg?y@DjBre?xb~H`2{B7Va5>@fV2m&rqy`yL
zFq6l7q*EeGg{6#W0%jaa1B;d&jvkY{`i51Q8o+6-U2e}qwkVGq;O4!NrfCui>&-A6
zH6NOVB_53lgof(+xq2Li2Z4W3O?Aszc{qjZA5&Kr_Q;X*ITTL&xw+xHuLv<1!%96+
z(AyVRz0~jdI*(fb9R3mArtfXH-}aI$q{#%>*I$kc;v@}|QG(44lXk%=Mb+y+@1MOp
zcu!x$!4Rjd8yj+b{Lmp<7u%h{Ab2E5^m}7QB4eihBuknIX8BY#+5)Z93dLyH!IuF?
zqOZX&%Of-wuC_#YRE2J6kPL}i^kcEzGV@n~O?2!rxuxb*;LpiE9qw`F{0M%Qj|mZm
z-fd`>j@x@SquZOI5L@a?)(Dj(h0xgUzHusOg~NXYRV8)V{9@H^VNe-H*%pR7_>QUc
zgOC`0xyEE>dD31(i30DbNOS1>tkC12uDCc2oaF6{oR5ysxt^eJuC#r<BWv$7VJ`FK
z!zP-@Pp}cPJ8FBF?}LV{707C&E&A4jmE6y<lE51?jOxf-Q3PZI1bLx)mupb=;S6D;
zr{3BCp^z5wX@~~bs~l6-q*{29+*VbyizfdxN2-?xN99ntDA3Vdk)inOzmc}YMbpFZ
zY{R#MXUsOiW%4u$!z1D0xc9ScHUA7e+3sQgSoebeHokd7Un>eVPveVYZSCU{1X6&9
z>D}e(K_$ZD;@bp_muBomZ>q_22cWc`L;RrTR9lM=bFXbib`L)=GE5hE1~wq|eE-&=
z+MJ*am(tDyh~oEmYxt>Cp3=q1%S0Kr+Dk|Ep`LFmnhS@@9<e+>Z{iy=pT#^Q4ufXV
zp=^*MJl&zCVZfuN6N^W0Mcob&u}0hu$GGk@25#gEFBlZ?5)-f1iBkxYTg1P#rlD&%
zl7e(JyfkRp-v<Zq{ASAmu-(~o(1@e}LOWk%RsSfULG?-xT%FT5CNATP!XP9}cN%`B
ze8JF>5g5I6Jg(03I@2Ls>um-`&Q^td6~H2}G>fE!G%=Gwje+rf(bt?g8sduaX^H{x
znd^sEMw3smd~!1R8h$?z%5mbM7d`WqF>T0{`d_}@S$>B>-G@n%oP1B-<HK_Zni3!X
zZh{499G+0$1^oWb1NOl_Q`-T%t@5=$l58V6bA|8CcREb4vBdnuZlTnZ1`|xy85R5L
z{pRSzOQk<pUY$uDjcD_tK=q-Tnff<*ZtYfx#`?D<iDk|#de%7--B|w@qrW*T)S*1d
zMWxY|P8AVak0Hq`XqFi$Mm4P#P1+tL%r-7S%WV)`MeQ}}Dwcl|*j|~TBQK+)<@9S?
zc{Q)${4brc?uL-Raf8~oBKWgi^*zuSU!nDt*`_NEGo-5KPS`&{-~H5OoC4^2JAM2-
za4UFVm=n<-vhjB^DRrc|2gwy}DWqR3Ub|1;e97K7aNh&VxK^r3Cf9na329x7jm=>I
zqXY}yOv!4DYlqs{9j!(^E)LZSwQuNiqYk^vo_G?k-p=f}y>z0g6&GK$RhPv(1WV5^
zXe53$u!#gG!5bwd6WT%a=uC8VqMmagkt)sN4Q@+CMOK7Ha_+m;H|M}xngv=K$tSmD
z`-vkG%rzBjgpsa%)n<kI?@uAhbm{=uKE6%I*Be7=L~f3Wv1HmNB$z|Fl3hXCQAAt6
z)YrkgV&;Imru08dQ*sC@rA>z>j0!~^lTI7D&b{BS=D)vO1X}HW9#Ynj6ft=Qg>2sW
z+@5>3Xpi)pKPcR@Cx8v}k}nE}$Em3*HrsCNTgJRCZG$=e|6v->koR9ca)8^SkvYSw
zp;h!*olKl%p-OpH7z~Q6Cs!5Uuo*7H;4yE;Ik>ft><N++yab<`HTl3I4Cry6t)}g>
z{j9Q>U*3#FGTzX*$w#@2{z_gK376)3eALKm1-IQ5S2C13wcx?XcWkqt1NJJrBhA`-
z6q86;X3(pc$V}%G%Xy!97{J>u>%Ue2Cem=i4La*=uFuIh75lc!FX%gEs`=^1w>5p4
z_$L{Px}8d&4{)U)3GLWQ^MNUEB<?~U-=)C~Fj2Ec7VQT*$+PLu4d3lz?Oj8N$AiKm
zYmk%M-VDk78O36P&DPRl3ZY991-`i!vWib(zWBZF+J3GULQs7@ngDO|Bkax5xCADm
zvi_s1*1wTxHj<c@jv8JyzJt5ZKbo`9JW0I_2H;KcKo1zbS^>F#*F_CD>3l3CF%)`y
zCL}NzSJ(~2j`19p{A-qtLl;p=?GY`^J+5J{74$67`}+1ibM<a7Fu^*V|4-D!Ch~Nd
z?1AFTk>e9T{EFFeHz4<P1f4Hj=B{g9*h)=(#LhifH;`w<U3RDPIgs@k(^sgy!wyD>
z#E{H~@da=rjt5b*pI9>SAKV%&e>##_>Oa|#fjBy!9&_0-8MZTp!6$wTDF`;DA*rcb
zeItugj0Pw0UhBX8jOyQsX_n1~C9{fHPr-QL3R@KlCG}qL1q?X`h*_NVa_JCHdIh71
z$7ev6#@}Z!H`Bqk$xQeFmUOn!!T0L&9r7OXM|zAB#51kIJous=bGPBQ`W0{C_x^EO
zo~C5iA$cYGu$uuJ6lTLuT@GzN?7Jp)#QEXsmdnOjc2*obWnQVJ3|jEQ32aCyf%b-N
z@hAMhomWHw?)Vs`nH0P8@D>Hu=<?ZqYTF5=@APtrl{0;vw{711rd;hGJ>T)hUh1hp
z{?srZn<JIRz2@tSEOvfFIENEA<n)4E`KPsbf!dl+Yh}T%dZ|Zk8JF%7UuK)^Tc7f+
zT&}+!^A8tH^!<P?&sVfXjn_lR<0$<<hdEs;4uTV@fc}Dzonm7DwARHKLT^tU(m!<-
zg~Qw;RK+IP@t+;%iUC`}_t2Nk4QbjT@)Ayd^P#IR^$xQHP7;9_M+SBcKm%+stO*Ly
znZ`JFQ(?$U@!jf*yClhLOi@U7dbd`=d$d2|A2)=QK$l5#j!KhCmyvXDJosqUU5#T}
zFg08yU^^&>Y3M+PMQwz~6@P0K|66gdl=Y8gcxC6%eGS%HWBKG_{|>4k<-aB#@0dvA
zO)S@X*b+<4k55id|F#E4l`pK6p{ws|#~yEwN?B@EnvW=Sai229jCT1ADRZC&IrnAP
zc&oZ`td((})UYMo_EADbMSs+b8Iw`Ds0YO<0yt{ePrQTyx;zYVlf%B7DzX0aU!Y~$
zSD~i+A)UvHhUkb_CH|uX*5S{eY>bzyC*!l(P;x15;4wO6<C=y<B7QiI47syKnrY79
zT~)-6RybQ{xWD&i9lZ%wzZ(~heNmm1^}fWit4Lw)5jrE48i^A~)q-Mzuer1|bm&e8
zwBmQfeYK5lnA*_(hAF9>Z2Pckc{naWUh`{0FEYjo_e7NoJM@ipRwnB^HKEwSwK&_-
z59^(9TxRNE1eok$?tWDfM!n>=0Rv_K^wQt{3-y5<hIKS;Vk{h4l{w{`e2wP73<{M7
zMrUD5%eXmqV%$$SOp7oRbLR*T_Snz?Pz8Z$68Dh1E*m)P$=df6^_(|MFYb%%CaIt;
zpVg@Cb~6cDigs32T;l#O`MsBY0Rj80on@@6c0a%-c(`CP$AywTXpyMF8ISARS`lvQ
zlZx?D0uXK-E>efsL#wgV=)fpWI(zDZZs)e!UG^)PLst|1Aw+^<!r24Qs7e}u75B4Z
z%{Aw+uR@b>UftoU$@UFObDzhQdA5VyaC&sFTszOX<&GwgZ&QiR{=XB`A+|F}z=Vw^
zAgp(_GPp`q2JtM-azQ?*O2Tn6t>G$U%rPzD%HR1h-BoS!#=CbER9+66LZ5`g;iYJ;
z;=<a`jV*(_vJz~5u%Wj=QPm^@KWY%tS*`1qf`Z+q3w}?CXUv!EHD@RAMRoO7BBDcj
zhXxDWLg@Vv=`Dv_*Qd>`$`6eA`}2HV`*Z0<9tUrF?x3#?Ou<8Qxlhm0kMI&X6ho^E
ziaBRr<nz{Rd&DmD6Y%^qHDNfZX*OPjieFt7;cJu--_*sLFyYYGxk&VxtNlj*W(=}~
zB(vR%A+2Eh9afH`pb=;dyaHFjS7pRV>rFlRtfd*_JE(^F1`0WLmC6|1kg?)^v=gyZ
z1>6*rTRoOcB_w(({wA!ypieZNKrK1=@4@3NYuZaaX)!m;#7_<8sT3#!_Ab9^lVxey
zQ_IJA!z}R<SEt9)>}taRaElTCnm&<JZur1w>?#~=X!r3K*G_Ahq+3pGI$9VMOf{@R
zVi5yH_0qUQ-nDIB8@QEhk^BSYAMM#0+*`4NmRe6C_q)A9-#9M>%W1gp%Eq;W*SW$T
zy$93Pww4DbX(qbcdLjz&-rtRg#@b3mG)E2oJJZy2cou|d+H3&`Q(?N$Gcw6fAyr|7
zINxJX>>p3=T8X#S4zV)aW+kn=%cCByEDzP@W7&jt1FUh$o&k@p5JS4kGGIFREQZhF
zWcEybG9#xSnqC}}^hgCdRQ&{KZh=r%f-280u)<-LAMV=I_@c4H%wPPJ<JeKMj&zwq
zGF+919O40-=>i(JHD%}EmMCX1E7t0^^d-W%=<4zh&-)M~ZAxTP*wiqDi6*?J+Ws3F
z%eG8s-?cpOt42f2RuWP|S52?Cb0y1&dE8qwI`emGU^0UGDRqlz*)ugUSIceTsak~}
zYJk_E%S8t;&%Z_o=UI0vT`g%SiE)24Qjag8F|>D>Z2%+SoW7-8nq7p_(JqMN9U^m0
zh}Yx_8S%-eThKA$=ARhYN*NpriLg#<yDZ)#8TudDwYYV{o&DQ2N7_K=3ze_BWJacj
zctYudrK(apn+^h<*N*YFv-VcPr*)+S5{j2t&b(=J_jg-zUHo98%{b2m0_}-lK54f-
zZ`S!XaKOp2<5o~hWsI#xN83_ue;ryA&X<4is`!gpdV2qma!?ln3M?SME^YRj^{pw1
zFlB-GK?A={yMt=w3tg2u8YAwn*80?UZ3l47cM`iN;c<v$G<Xh}NXb~;^0VOY!U0ZO
z{G8hE{)c8NqShyV)elY(zGCnDN}EUkK?s2hF0h2iq_R-EM7(IwdBSp!k(=wNcahuE
zu+bl229l58-gZ2^q^{O-^&m-qJOXgD^g2UnmG$+%m?PIP&)X~|aq6cQxTWNmipzst
zC^Qj!USH*_^Do{msX8#=MU<i+sFMHAAgP>ZSES{O&hH~sX!_S=j-~EcAObcgwG9yG
z0CD++THJABy~qRowpa~SL(6{?h7l*wL5agRJNIeIa0O^Q9EEe#l=;c8m4}o^;`%)G
z9$52;B=Ob7p!c+&$m+^SnwV|Di}mj3OP?yD++;67xr2B*-ye?}*Yk;0dSo8bv`mNj
zx~ZT4iR@H?sG?ZP3{%oCd-25({dlc9p!4oFzTm$fAvr_e0a2{^e#q#ix+aaGp>M@+
zzpYBLfFfLf);2aA@yYYPuA}q|vx-RP{B8WNI4DTOaE*v?rO0g*>9Su{mPJXe4KfC3
z4~xnS$`l)R(AG?(9r;*4((B7#zj=x?!*fa9`wr<H4seL8)UV~2a$a9>Dt{>hyoA-?
z-$k%9DQUh^J79~^>+O?tQaNZA_FPo`J@JqV=2^~<X_UK-hsH_hg0Te|6k<^>=ATU&
zR1@s5(FO-Cr(19i8~lJ!G(cu-Kg0qrCIc(b91{PW;IhN6lsch{OIu8?>53+8Dp1)~
zdQX|T4>I+{TcVq5dS)#QoGO&S@u*NbQ-(RK#Fp&**G&U-U#i{Lgy^pXdy!o-@?giS
zw9;2A(z+)yGGN+XEi@2{o3LO11;b5SvPL4Mp+fqNj%C3MUpyEMAStRr*$NN;wv$Bn
z<+4|n{!@JCYJ=Ny2bJAvn<6nE`Fl1dJRB09Cb052Sl8!b>X%M-cF#vWuqq68OpvFt
zXLj3i*{j<GE6ds0TQB~0Q(-*jAPX<tG(^YU0xK&8hR<n16PvIO0WtlPtG5>2_xCi!
zo5>>btnja*?rc35i0O*B3%*D-sO-!oZrnr7@vjo-zA$GhN>JH?1-wYL-5DEBFF9d3
zP*~tJ$A6|$`d#Y3mT{P$0M0+B8;Wdr!?=cOm14z6v~WDS610hAk9+<<yA71aK$gM>
zyMIg=tNcXGnb-dHv~<{nv6C-OaBZm~^**oLBdj3$Z?VFqT93C)MOvtxx@vn1btV&e
z6%)$`xs%ENpP;{=XGbxh6NZy2NL}%RezwmPXom<RSz{qH`em6;-3J1jVm4e`7uTj3
ztxLSsWB&VfLx}IvB>Di*$I2W~hUYCW&;&F9pxPi#f&Z<H#T_X!^zgG(^&^BKOZPI2
z-~rK5uwoK<l?#O9&$;%|+408D;0KwEmd_u(oOO5?@oe;Gh1>(H3ekk`@JQ%7a4j0}
zk0H!Hw3|NcA@mlxhs^eFSC$&kH4*Uc^I@sU%r5Bgg(H3+(_A{dalLgtPxTIv_POGa
zog4!&w`ODgpT)#3m&IVn6avZpbGOIDrdnDwpE<^tS<U1HTM{Nepm`FoTR%n3Xq|cE
z$bXgXS+aJThXxIc??Teqjl4XzC^3O8LyQp!JL~An{sE47IM@U!tfr){f9mpArTXR?
zhY6fdJ0s=W47Pb{M*^v0Ltpe%flCLQV7b5aDvYLdsC1Q@(Nyq?gy9=aN4FHJ6Qp~Y
zs^h)!0GjAvh+&l*Ha0z|vnxx%{QmvO(h_4^bqy##oiR|ECOGd^ZZQeU!UmLDOycK}
za$QqLi8Kfo-orHM&MEcJmp+dS_>o=f>gxKhjs6E)+TM>aciK{a|0Eywg`CLSHOFXk
zukTl{pOjWVUv6f*w_6?jN>agA4_GOh8^&}Nrz?*JyF+&`SzarrD-Xt*oBSt(sh|=w
z+%lqS+anfmYRr`~h-qEx#R6RXilK$T!!fv05};~s!;r`debiVmL9i(Xbtd%Or8Gn7
z-*b>=Bg|O2t_H|Dz0>ET@|P~^@5JdcUCJ)3jC^LG{3KyMkfWxhS)Q%sA#I)?5&1^g
zK5;wXHW%&NL`z8a04)PNnZEQw?nu%34^KVB{FzuOjqM9f|0o0_vjdpmy~Msk8=H=q
zTb)x4I(fOC4j~7|c8<WnNa^K0Mxb~(;F1Z;I&uVjARr=HgN7PhVQF)u6OxCF@1bD-
zL~&12WQlS{4!q6fSuV>@q6*8&qb!MDesjzdWMWJIgS5l<XxG^9EJZWV9m-ms#D%fM
z61<I{o#7h%Gn==&EeZ%SQuy&3<0W<VySJd;J9lVg%m(f#6T}k20-{4sxlDjQULq}K
zgo&|Nr-b<>#`ugQabFZsxzbR7B4I{lWPOd#4l<aVq=8|l`WG(xw%0I~oUl--0KYhZ
z4_xQ;GezX(apXBLXhPg*x%9X!vkU)yQ?em%-=4kTRqnBe91Bpy*(dR=ymD8d3cGLj
z3iaI|Se8(i!E8Z#&8aT$w$YP{TE|tR)ud0Xf6Z+HZuJwymzN;Br2;h44%>$01Rr{i
zB%^tD1t#8%9g2WDkVGK6v@u6H3xqgn3*KWIXXL%xz?TtzU|ET?Fkx!*=NT+6OVP)i
zC+-G~a@4Z^9*{={rZ7sJ`_nA6Q%ugJHYIKr-z9RGE4eX1ytiik?XBoP)RToHoS~v7
zBTDXer4E5PWPXTge8Pcpo?%t)#`MtX?sVIE^fz~>YdM&YABVql`ca~P<h}EJj8XNV
zb9n{Se*zz2zuTq6eCSk@zE%RNH!`Nvbk9LZ`x&<nBt1;$vDQpmxR^U^HB{ND`7<YM
zM%nFS2;k#jCD_*)gk{NI^JLEdkAi5gWknpvgDD)zf|M+0i4gif+C@Vn5U8Bv?QmU$
zF+xU%45OF&rI8z%s$#13I$^1#ea%JZXogpXCS@=DYo&E|@Lk9Ar?pH`!Hwh7TJ`|Y
zA<>$I5B~EBc;ZF6D7nb}bg)f#ww~APboFX5R<KXIx=hDlo=9?(Hdb6Qc_0EYjZ}-6
z=q%OD?`bq6fk>wtWEbfreEFK{*zRQI(Eqc7fiK0{dYcJ8@|Vi~8l&fBrrP%(C*wa4
zd(~5%e8&bt;?QN+^q$7T(xhcC0Xe<@sg};dC>^LoHPy@1OE-HKTibP(mo02fiHzZi
zt61CTXSnB2ooy>yQ`G$*O&-~eGH}tVA}%3*SVsz4We|A#27mI3Z?or4icQ>N2Yl~W
z+1@!1cZjdd-5;Xk;(pKC4*|q!;1g%*(|?Q7-Og32BB9%kh49km3R-~h?km*nj;2P}
z<fSV0fq%^$?uINUB;DSVypY%^;VI0He^uB=_*l{0bqV3bQXaNU>Op>fwpIt7zBHtI
z@V<Vu!7lY%Nt&aeKf^H5k>-DS6ppjsdtwN#8M5|SdaHHcA)?V>2!1a>mm{*76pFVE
zv)$vw#8M-FiYQ~<!LxwCpRK^Ho2r5v_7B}78f*<X`6s=uEdyxnl$g3IMFoyRl`lEm
z8HO-ZiJKOKuUu>gT-Cg}shn>p|GtsJcm7&BmK>Z797YK}nW#d;aZFCstx}zae6gl|
zad>CdiG2vT!=|flv$!{%%Cfn>_8DZ3E@o;k<-b7}Pyj=kTNnoD*H+!+@GKHHulmNU
zp4`YMMWLp4nB~7ip~gnTYI;IB;OCvo6+t?@`X{{+Xd}-G;L1Y1jAV{e7X71x!$cPa
z4`8ABW49)`Nk&<c9ntP}gs|t2N@Cb4Xf~B0L|Hup0UD{5kA=bp=dP`WZ*{)*bi8j4
zn9P=l{`gxIa?}s7(JSA|hqo6<I1pXB!pPT{LJ=hT{8<s|a#p7l-n&}7HsH;Ecxl%C
zJ7A3sHqF~hKIi%S3U13L2<x=cGeG2}JulA)^{zF;U`E{F1-jx6>8)<Pqr1H}!v$38
zeYPl}Dfy2aC3*IuJX~AZqBB*^TkJCDO}uO4V1qc@Pp}`ra1?D3X<MBa`E&Rmozs&H
z;$!g^dBRT4ThCpauRlKv>E;(G1Br~m`!nZXMYWx$B+{3`g1im4D|6zs<}IVPJM5>O
zSAyY{aZYm#Ka-1c%>CZb)bKj;434_DqM~rDQCwR8Is7G=Q8^VJ>8f>6GZg@F1XbsW
zGB$^2lK>pkPqJpzhu85rI;y*H)EWL`ALbX<DRb(->pw<yYm){%ZH&8@qU#C~0;Gyh
zHn9eI(;Sp(p-sy%wYHOXc?2IeKHgnoD5iY_<EDq;sMI`d8A3JK-`3xpT+@|*sf=IB
z+Eq6l_+D8d9%T}uKrE6)u>IrEuhA4(N|xh@)B?=T#f7g^@Z*Qf_jHKh*OPq4!1vwJ
z(2;1o%Os(4&UIQF+AC~LGm=*%FaoWZe#$`EeQ(xSib$FMJW{;&cK8buu1qb8Xoc$5
zD0C+53_1yOFfbSrUGF31E>psJU#FB9C-9@Ag(;MopILg+&WKIMMGMjp7Dvy(jt>wM
z>jQ*bTqp6eGpDfEqH7vHHTapRos{k?n<DhVyfCJ}Rj~2^gHmU>)*2-kn%3bhsaYia
zbRsyrwBZmlJSlauV<@eA>>6Y?b<+vIi4s0xM8=@uu7yLe@~CH0H-`<37QHM^=J@Hp
zHC4<XjEuBQQ{*Fs-I?{FRfC#8lIrANRe|Upt#J$Nu=V(h26P{?>%Mut0v!r{&9L~9
zp~J#$YM2)SeT`rvCVB%A@%Q$@LPfny0Y@10^V+}ltEDH6&l3y!;x6JYLBVnqf5GDb
zO<DQQYWCOVR71P1#$XPtZJ2?sK#-lM1S7g*Ff9&RlfbnQF^os~#yWgUfKh$>9Kfh~
zo*wEM)1J9>F-$rhTAFgayHQEQGuCwt<{e4*Jqb)DcdZ81l`<oR6evnS-<w93I>=_A
zPk<F)WXvU)_Bp5U8@j6P{?0ZrhX1VG7c@3S0lbh2<*o93QE!wuW<!gb^FZ^^l{Zsx
z(|gsqpo%|1Mc-|H$qGNR3Hvg%3j7=3e-n!hxC={%5&P*op~XF{g<$SaPV)K4tZCN)
zW5hEnU9@(V*P>Kp((+(8e*=Dn6^md(rVjp~AOQb;(GzzVCSiF}Hfjgcyzt$C+zsg_
zZc>&eZnCal&I@8M9dy6=1o4Gg)TvkEK|*Exn_c3f=awdo77K?NtKelc5K5K1VUbQq
zWIprMF(cw9TsM)^)i>EE_Dmbka207Iz96}>qgnD=(Y?rvYZ<_fsF79s7}>&70S|Y2
zW%it#+$jM*gLrQ?Oh0UiuIIPx=<7tdPM?=0YleA2Hapm8=70?6%ue-W??@GblyfI!
z$d_cBIE-pWAp{ZWY;%YJy#6vz8Dahzo;kFe^Twd0cg(&cuKYpx<FRfimAB7FQg$-@
z3k84%W>G8{7{*mb#Sn7z;$@gn((gdZC)5Bw7KZfY$D#i-#$Lp7-)M07xy=(}6a%0r
z(4=H~Eef~KE}f~7-07M2Uc*uwx#~E^NB7QIaY~J@UG6@toDUoUIqjc@xr@SUXr-_$
z*tI`5At{NQY|Lc}jr%C-O%g%RsH=|eI)f75^u>nn7+!|V*6ooy_VeGmSQGXBy_7bU
za+WkWyT1`K7JBB<%BcU5H<Qxu>MrVeD{9Wy)DQm<pig#T;_&`~bZ3X~z3Ea;Mm|x+
zi&uw6rM#-%dZBLz&=!?REBb!MR~KVY9oi{OCBE^XJO<y+5^7s*-N{p%z<Mc5$(T%u
z;J9DN&F^KeN%r3EHou*2weTFmzBIq$o^!9w!3I;ublR0IYgrYd-1SyaJ&(kzD-det
zj+>#sCz5Qpo9=&Ks2OQf??zS?Ua3LXw<vC^o=fX=a>2y~C@NBD-p#ugf@_a^79PT0
zFkjk(-MA6IH@ZdI-)u|U-t4=0s5K#0?@mY{*S^MM4)UJ!u1yn}tV`N1!n5(YBqRuE
zaNHTqB+-2BXx60D*ptrx3tyr?f4eMgoA}om8tb!UFt-QRoo^v?Y&}h|Jcem~qn9qX
z#%8QK>d-w4(0vf}X+3rB>Xuwz+-s<Bl7!$=k@$DBWvyt2czvQO?*5B4Z_S-6(=?G=
zl*!FsU^gl5s@T&S+8g!#i<-p57CZ}>51w>feiFz@{%2H3!jedM2*<LAI`YlzLV{Jt
zstl$WNt|myfH8Ag00G)Td%FR`MZAOV^)0q@{|={-yaB#@@b`(mi6O!BtNdqNpL0~5
zj`xPTK4NaKUaI@4iZKGs8Q#}v{CFYHYP$-6lcL%)YG06V7K}@@m$}>E@d!f@um1Uh
zGLD+Zag;P+st+G7tc?Z+>c@Lf!c`w0uxNkeK*bH29pwNlTLjS*5WD4R(Jzm>abj5|
zb_ztgXByUBlnR~L^KoL2J!8(}bJ%N}!P=8B4{IU6|DcY09yNT@wY1rX-a>6r?iATb
zDu}Li3U^G?wMqE4yt@09G?FZ4X!^*tDn%yf_Izz&cTgdv6BdQxySb;A;+M{LAej-O
z<wo+eau{+@{J}pysuotq(5l_jkcpZI&ycSmS5ty}rau3-neA+^l0u#GXY!zU=p)ST
zH4d1F;K}bEbd_nvD&d#!Md9+9=UYNkVhy1=)>Eo#VT8##>rg?x^IXX%8JRjqj&5~}
zqDp(%65q0G?FG8SjK7|4UHW0X17|PHatlcqpaRsI+?6g^P%~XlMMci}8CmIsEFqJz
z)#Mhcpbm6#?o*?J#^1jk5wc-ORdAI;R2d>C3Ty}L*Hijk0d4Wjp59W6cdfE0<<zpv
z-M)D;7@*(G+p-~=?Tedl6Q4bl6dl$MjL31uZ)sz)<xY327>WsAycTaHfY(x7t8h6=
zk4<fw${d!r@xKt!X7=hB0(X<C$d<9iYRN|SLqTO{WanY!4Q66?gBgakD99?$QI^w5
z%ji7)lX(?JxPcD)Bjw!LDA9=Y0GS6~*Y~jE)<2%HHOz6TrO$4Ta@Kss#Zn*yA;rm-
z-<o-~pdamSH1}A`ebTJuK=de1iSSqPo=oK>$L?CTZ6(VO67jmkLmq;Co((*1=`3um
z#Eu*G<lY!BSkLk>82YkEk7uHNC3hc!zUY{W=s<btu7;^i9u}Lg<e4AX_$Hx`u|%Lf
zD6yK{2ycjHL%Gb}H9jeXIE-iA-mqS#*T8G$PE}GN8LkXLye%<opfAk$l;oPa)1@(c
zF?}qihFwa~a&jdmJPk>TcnOQBY!b5t^C)1;7ZrmSmI^n)JhqqgAFg+|uFV=JNDxMP
z=G2pqG)_Z8UlY$}7xGjllgmxfTs<M;5BqqHF_SofzpYIoI1DovJ~u54@+3;&1J`a}
zEs`&JNglVs7Q<5wKxVxw-Eh$n6lQEdHd-?GX;S9H!f*F|!4SZ$H(C+R3ef$<D}zp9
z4Kr!3v`gcd29p=$D45WM6Qrv5$7UH)99H2w9uQAG8dNeYRC3eAZ);iY3E8%$*D+{n
zD;ypeF`5+-u0uN_vX$I@E<=G!=1@KSU<jW@(;uZ^ze@fA?Brk$9j{+AeHGz;Kg3~h
zJ>CC~+o}9ywA6T|sN}O+sO#?ggAV(-A&b6|)hzQ&2I0%MclizGJ&wMVNf9k|D%9|D
zooejqdkk)qxE7I)(>)uErOktZq#z`~MQ|8AhTaW2yn5qR>tdfV_J5<@ond3nre_jo
zRuPI<wF7WMu1r`@Q9%=tcOln`FI|QnBRau@5oag$i-B_x<fWb3?dK%=m({nc#RqGq
z#k=*zT=pT33hk)8%Ogmfww3!&u4G5tzSov!ilDDOOoTYvedqu?23V`|UEDp7Ivqe?
z=r@NK9FPWDOu)*DXO7a8z6m^v_;P7geMMdM1s)J{f`*X*Pd9g}iu7Sx!2234-!?^=
zU@iPThgFNQepTiK5LSr#zav>RVq$3;`*CZM1$$rgx<}xWMQcU&<EJUN*fz6e6A$+E
z&rngPTA#`6(V2K>g&7U$#0Q>=pZTK0`+~fI5+Zt)DX7z2p&O%uEh^3ngG{2YaY2Cd
zQ(?Ic`WNoNjHgU|{JGO+m=(wGTt^uXF6sZRT7t|(^VQ4O#EVir?JGCRJCFTZ40nIw
zi0ABW{y3QPPbrT!+M0UmhiZ8>&|F-n5592d5yK*9?AIu+4xAB`5@iwo#TSXFH2KEu
z8l4=dwp&GoV~i@MH22N(MxWApgAG_z+O(D|9nDH<sqp-Vt6f1N9ATCj&D`*HjjNJc
z<@N3YTzU@+*=EHD&$gj&fcsjR;mkeT@&LQ;N(eH-2D)&ycaYRz`cw>QAh|9m@#9%$
zRd4Y8{{g%}L%;FwM&Tz<S<iK5fvvBWQ{;UwRhGaDhgL=wXS^{6en}c!mMF}bo8Cy-
zf5quq`19gXi*u?~Q^C(*|6b>XI%d(x7!u^c*zBwRb?<s8_1j+xOU;nO9R;y04-<8(
zJm~U`+_`KkSBbnTrv6fy!7Cy&5t-o)crvj`jycIuggFl{V}N_>_+Q@rp?mG(B|XPE
zgPFgvUl+;!iogH>=!;S;@*wLl1OOMOe=+714~5<lGp_J$yU}>t4yq`ypX|a8PH{mN
zaJz4h)1o+t3lbNE8pHv=#Zjn%9K;UA959;JQ@<PKErc10GJS4CGc<zXGXQ3h$({UD
zAtU(v1h;w8-6PBtHcgqJ$r`KHRFm0FH#^BD4BjY?a4jWzvIBHSd0q5YplskRf0(Bn
z!o?mvE@I*+>B2?(Tp$K;^nz31|D}v<!z`CH)v{rMfx9JbEZcH*A+ev2Uf>~BvP*1n
z>$S6&(1d)atirC~5_}Lv;o@y&AI-)#XJ{V)=3iE8Fz<s@&scpRRv0-Y;vG>4)C%0*
zs<m&PQW*VE^>Nwv9PraKHG!L0e|Si*bFt-WM_42Pg5pJuOemRRWiX01M)ii9eI2G|
zGIYi9-$Ke=v+daTbUQZrcW8f}pv=<?o08&4FYwk&lyUc#^I%3#>lDhKYXd`^Tjs!@
zV#<--?jii~Dqw61_vvgItqAY$4UrD!7N2pwg{5Y5^IGzZaG2UccwDV<e_T7RmQqx=
z9?_Dzh31`1Bhau@Wu>eVKbHrbxm0!KJA~HNGu<?vLcxt$pEIi2^zr4^k!m5+;d2EF
zDpPD9V=fUp7hZT2Cg;GiM0s6wW#hK8B?&VS3A!ltosAMR(aF70<!%con}Ht`Rc4=L
zQ?HDSN8NVkhWZ}-L8^>xf6Ya4Z$l-9Ke`7y`wn&-IUr<+td~qdKcsq6t#?~l`1TQb
zI{0j!|62y%ch2McrSNHhoV&om$E3A&r=r#xyubM<^@rr(^~8Qhx~+dop*a{N=;=}Y
z=%_Wre{p{N=2u@Z`jxE-EqKiC!HOb<p+w@GBEbyVzPh~m*e9({e@E(&;T4fu?GL2W
z8n#Gx(E7L*NAgFw=2e%mj6Q}dB#{UWr}s&#-yz-J<t32n&))C@`C9tQMGZwb0Z(Tm
zi|rzJeD{q!c%P+r&7*p!XqGYq<lq-zMA6(Y*eC86@e{}gVowVg)cF_o7LphF_>4KD
z{9+SD1pVNLuo%!?e?XgOYd$svbs|tRHDD*(X)y354A@V0fhz)4CwmRzg3vb<T`Z;Q
zslVsTGb4h7;xuWn_DA#}V5CEf#2#A}%3L{!Vq)A8w?vFv-yIwwku8K3(%6Ry=K|$s
z+u355oK}C&fuR|u=sAEDa=XL;jxG>A2al$zn53_yfk4a0e_X`oVys|0cA-M^=N0Th
zaqA$OJe_LKW%qv`oS(WkeZ&~w-a-Pz&7aYKxKFNoA3t68x?kYqZtL<|f)tAL<wsrp
ze~-%S$Gb;;WUGc={=N4v7ux>&mi&V_bH{$~ecSsF2hfSUlW(!()oozFTgzcKm$O`+
zJ3j}W^VL5}e|sJpkFD4i$5RU~9>AK9r+Y=G0`aJ6WvaG8d}Lz5oNEnwO3``~Xb~Z@
zrV;xdmqXYVfu9j|41c+!q6q-&Ds&Cl_p%NDM7L#d`~27E^rjjn53Q$LfOGK5#GKbc
znzmufny2j*eFBkz;}Tep59LQ44M2IxBmn#QNA?Q^f4x(VqdQ)YsvU<{z=(gJOukQL
zO|fmIyv$RALw1rw=8&pG4w4JPs$_<Xqz$We(Xbj`uZ{xf%F&6B@|vOTR@6fU|Fb^p
zT4l6BwjTOM!LiTu-Il#xY|ncFS1IpvMI=|#AxhqF?KS#DefvFF9Pd#COikQD{t065
zMT<q-e@HW*h6ySk#q(y|hzuJN;5$Ba-e-v`gg$bBI4*^Xc^@kxiGnoZI;AilN`ozu
zt%1_uLTSVyzt1n>5T80nxF^}x;kNU7>7A{iyOTw9=Uv8aq2`()g0-)szI-UqFoh-h
zJrGDDTZyi6im07~N$B)@&~(&7zXt&CuLjp-e;{3dlG?-GXX)|_X$^;i-o?$(2gPq+
zwyv*pZ#jr~7l6MfPyun#%5Lc_jCpy_LetVt-Y*}K0Kv?de=k+EV`#Ev4*<`qn9BGQ
z%*nohd8I#TjBGbyeoYl>Y<bfqj%$K}!uBu~$axqM&@8p3lTP<A%{IhnJY~;T)JT^S
ze{H`*MO6n@BA~P=S%{~pOAE~sIV6Lk9&Uw5AT>JDNv(6j5jBDp6~Qi0N((0m1gB!F
zH2hN{<Y2x2_87)xU?%@$Y3`91EJrp<E3Vz3cRp88VVXB9pDLny3Kojh2Bcm+dRtF*
zMpYt*@cP$%t+V}`j~CK_%DZP@!swL^f73-gXmd?w!<XldO3kgZ-C4<VT(xvY+f1np
zgpMpjHaTwBswdsdXBb3fd|y#8Okz2wNSLODlL1QBQV<ynP8B#-lya+2S->%Y>#*Wc
z^(a-l5?7d@`vK6BFUV0=FP}*6)xmE6g5LFYPUYpV9T6)a^HICGx_s>@!=e!}e^{%)
z;L$Msk<Bq9t9RUVvyJp=exu<{DKssX4L#y2K4|m$Zyagz-~YiW7wp_)UucPkIIT9?
zr>Q0~yhCKG00Z2k?NxxqBVsHCnEo+SQh@2dc;Z6#Ei_M<t?ElmYp_#1eOj=v-VtPW
z*&u`^**b_8CiwE)#jSxmM3H8$e^CuhA9TUZk8Q~SD*@Nf46e^Az+ALLRm>|B<VF<X
zUn4L!bnCLF+}SwN2Mn^iudNGxtI42{3f52^`*krZ<m^IEYzT}PztzN44Ba6Zs4B$;
zi3_5$$X0C|5*$P|d-yu0l^4Wf?8SUCR7l00PlgyoGP+krKbahNpmN=If6B*hPxRzv
zDSg53+H=|^T;;S&IPZ}^yTk}kjrEX-IHTqtP&oH(*(0yzhv_?S5jvwHa$xo-nInoq
z#>NCFgu%h`eswPs9Q6o$ND;Tgz!~2aT4H9hhUtWEuHWEAiO$&9Rjw9N!7CR76`+*r
zW47WFg^PiWT=XtR;pZI9e`J)`M4oj!YhhlO(;@7^A93Np`NAK3CJhEx1LB~cy|H=~
zU4Bpycn>X3L(={rwf}jxJ?Lm!0m@seMkVWu=;*9;Xk2qp$XkbI2Ty+TW|&>N_uyha
z@xivMdx(&n!R^V%8&FgqTAw8{{2-A_ssA39@Ic$pr3CGp*Z4PVe<pHvw1}=pb{`J-
zM3IXKyQjVonU=Q>h<NM4Vg!N^b`C^h6r(K=J50BwEzotownID7kSUD6vhq<P%86(_
zOR7K`C&~`iQmd8JQTMoZdc=LVtmiuhx1M=AEKFMX)W#87&$y#fF<Z~R>K~+mM0!Kg
zyC!rviRa*gDR-S&e;Qpm`9kU#f0hQ<H}LJ&P<rn<!LC<4|3_|CE<DRco$Rp0!9wGA
zE_Ih8Cz3eIb6U1BEzc51nCaBC%4`P%qn~miv#6>>kI>@g3uuQ2gvv~91v>LZZ3Q7^
z$zjQ2SL!gyOKU6DJ+=`i7tt)T2KMmjyoMz+jVx066xzw|e`=hSNg4Z8fZDD|<*RD;
z8Axz@y>KjVhKXyMi&#Plj_%h><+}k(mHhcZ+M?-96i1LZ4<?=>%gTtx79NqnPihWp
zRNnFQu79qdm;9o_FstJgbFLreWpJEqj6{t{uHeX_QQ{j<L~;cjVM`saF-Tq{S29el
zFlIlOfL*jqe+qKb+>>aTEcw^YF!?w&P9f86nT*nxBAWh0)1PSibK14Nz%IJ%p&i9u
z??8JhL`;a-W+Jxj&4aPW1bA|nZO%RR>tey+6>c&Ar9fz8=(yv2q8Ja~?{Vchk@d0j
z<1hSCIO>c;6eZ=84_m~3U1ST<Q~LBm9>%lITh0i8e|umgKU>unE9yWMR_IRAkP;DM
zPUh;lME)HLThFTW5QX<qt86`GsHH3k7|Pj?*w&|r#!}T~t%9i0%AF}cC@wl>{-7-8
zM(!3v7-m_mI}<r{(|9VJ3H2eM^S1tR{4BIJeDw97)*I+Y-pl$#)hFkr#_@@h+{q@{
z9NB*=f1vhtK!I~*>uO)~hpLZ@EO@uL>hIe=@yVj|hzDcB17F9{3<czG5rHWt=_@oI
zkKC3WheyDAtQUdt;OEzm4r{qvm^imwJV^{@ibeASbCG^K*@thgB?|MPu${3bHBRfP
z?wpN78}y%kS2Xp3d3B^1!ic6`n*bgl?OH%he^{EVlwNbz>BNv-Wc(Od#A<Y2Olb>N
zEx7;H$@uY;R}%InGqhANQv}$X=WVbz&%)k-ZQZFfS-|eJ^?i(5_3*gXLf02zy@O3w
z>J(0=J)LQgP=ce=E<i;;cz=OeCAhrB>D4L1zN47B7hV|s%~@~fYUjfxdtuHMti)+#
zf3SGaf}iQ&g>q!kDA)A5bQW7u@aMwPuDNQw=^0E@=}3!b^Hi);RW2GCLj<tbZ(sGV
zd)Gs$-~O_A;(|*eX#}xs?C~_h(r%Zf<$bt~Ncm(IVm8-US=Xx9YE_zJUUanCPuA$H
z%bT*Xk+Px5YWE7#F&MF57yap1*%-A=f8H^~G}j5@jV<y+(TpbmQOF}({RPeHV|X%>
zA1&ntN0VEc1fRD@rjItU?_oea|0HY5Ka5{-vEZz}*eGNdnk15q*g#6LdvBoVW5ra)
zpX7;hVJh-ZiYvk90VqzZRz-i*H2-+C_}H5SStReQPV74`qOoyNDlmlFw{gfTe}H;{
z^d+eE?=W^qt;dD1B*-2@gJh*aP*1GkXNpQP?&J-a>lUgHI9^E?jEHtHd3OsR?vuru
zR$TSqUWk{l+N37H#TdsZDfWQmzjqH=wS&ZYT?|!tP!6@@Qvsv0md6mTm_!tp+&)07
zi;!B>2uvJ=>JQ`VY+*-&A0oq!e<F5+1xLg47O@x5bG$1x2e^ZojFMpIUFrsdkT_rm
z0b;rMm`^PLm60`DTubL$Lg8vNQ<;{1PiN~YwqPGD*_ws0LSOHazMi3;gS7TmZEW5i
z3FTqW0}pmIip!m28Y#+aGFU*@YI+IeMOX`NZ^mb<Firl6My-CwH_-^de@=Z|3)Q>o
zli?NV!agb7mHK~|y^jRH`33(1|JNJReW~~v?ky9GpN%}X<Gs9_koU;2h+7MqVq1hY
z%3(`KaFS%bZ4qMe^WkCoC6cJNt@z7s#NG(8H^OVkUr`>2Dj2xHy0=AJZD^T;NhK7Z
zllDdJl+6y_xCu9U=kw($e+9e!U}G;9KM%5Dx~K|kO=iQF7mJ_W87@v@k^VR8b%T9~
zu}_HX%Hrn&r=!wA&&Ogi?t5c+z$HYH+yZ4CIe;OF)l-o`sj<scoS@Fc>M22P%EQ@A
z15LgoA=UI+?AN93Zv=W)lG|+|mgb11Ih!rb5ga5qXfqB<yFn&ze{UqVzRxGdi2b^b
zdHM<Csb>q9riQB9r2I=6*@mgg8Zk^_LgS@k#%+bEwT?SgDUtD5+s7B~<)oN*h?~H+
zVEs2xy+XO;wPwFNAP!TMOPXrgP=$9;YUJGgOPOXN_gFSrDm0{e;7tS}IOR=V!3Y4$
zM)9z4pN4y8*>c)Uf1zOvyXBu$O@omD1SSHEiEZHj5=FJ|A=NmUOf|!<ot@ErIaIpJ
zdw%&E8#dA8XOJ%xwYx|C`(*N+e(yWV9e&x7KQjL&Q%zXED`kr$F?PHis-aV5%-FAs
z8v0KCT`^@_HCzl@w{>~Vj>Zx!kVqnsUl#BUH(+Gnr(UtRf76hTs-2?}ht|YVVHNw{
zRIGbL8;703o$Thg3>=;#{yd2!mG8-6b-P+bxt2WF{6gE*aBw5VUbT=Q1LWNj?)q6<
zu5|q#@U1sNq_pIru}zgejhullOU2>U!6Q{4riN+D5DJ1jdx!3=0;_qS?R(fAbvE;N
z4PAS7oZhE<e?_N&_W7iE>cg^^lZ&5{x3I+a{kFhWMTN<j`gJ&9*N0_r==MCxrd}Bt
zkDw2nRDkcnAEX+Y#Efe6hJy&YgYo!eQu23`?QDse1PacHI5TpP16*cc$nP_N7?M;^
zs`YM*!;mESY+ip?8S-0m9^WtRElou9xRzmM{zNzUf0%<7jGG>iPnTCi@?PpogVs>$
zkb~C~`yFXrf0Eim0*`uE<f=<M(dZWk(tB)BTSe{0;bEuIndN#5c{kV6aGf*qN9yLq
z7fLKQ)^<`xt-<@7k5YfQ?Nlo$$xzQ=L}7w$4c`$;b2~wzCAE$Yr7DNowdrTVHF%Fh
zY1${Xe?36@hSoDeiNb9%BiI&T$8qcPRj(69rb23Q(jpf(@6moqmzTXy*Kj`40c+P8
zwEpb%-!G7Lov?(t2G9BnpOrVCwdr$AU2jgkQ#4DNjR(drfMn0z*nQ%D5kH~e{;xXd
z<@p!(7OI-Lu*>!#a=BHM&i=``qdm4L(Ys5zf2-hhZ$SN?gPf+&1^mOc6I26v<DPa&
z4Q#dwGC{1HDDq}D9r4aE%W4f4ypZadJA2Iqvk4y{g*~wR`h9@2amW7FzI|IPWpYvZ
z=b^baPBo!;#mwMr32=yR8cz<`6}DXipX|{x$oc9Fq(Ekws@r)Fxsw&cTH-Jlq9l2c
zf6lxY{p^yT#)NBB4&7>GiO-NN?=3&O#2dW$@IoJC7p8~ngBK8cxg>K1XJp42i~SRs
zgVMHv*c=vU=lC2>L1}{SDR}xTwtxmlZ1XanfUAuMOcgstp^nlUfZ-d|Tir6Pn}91Q
z8lg!Ohk3tz)Z5>sVVmh^A0ys=u-aNZe{8c}J$hSD75J6NAv`!OZYv<&LF=RB9~fT4
zLA!v^36mB?Shb~-PWLcPgj>XeIs*RkWLJE7?x@sU0J8YN+PoSD;E^!?$m*42rX+*q
znq0QN0Q9<b4G3!r!Y=m#mi8GS*H?pH>vE3=WSVeXQ*d1EtwpAZ)Mj?cjJTsge-lKb
zh=$6YBDcVr33AioQ8uGNcd1SVU;<fxE<frxW2)@0V9<a(VAepK`6Hr7fy*8R(NFz^
zjiL!dL3}u)6tkO&MuZ|k{l7WnArd9wCjHbe^&9is;~A&lxR^PcunZI?`S_*J`pw1e
z8N9AWhe-S$Y~AK!eoydHb8#`nf5ht~7R|TmVO_a)aJDwZDUu+&l?18QkHmycOFb{O
zjmMOM`y6Dn^X{*VJ;u>z3|QYSRggpM*LC&{;5wY-b`EUOHj|B0pMg+jaY4JY?nQ8r
zxyC;5IH?~`)2<_8PVlxxau-|Sd$*QtelPaxI`&C7h^{PVe9}oKZ}g_He``cDj42E+
zGHvE{19|kMb8>odIvdUCFA6cAe8QZT`(-@z)R{<%JA$5|IsVQ*FNM2H9E~pxWxeV}
ztu4Jx6HypPzaZ<448t5(bl5Xvxlr}~&E@49q&=$F+s8A~GPxtqE%eiy`8uVytE(c@
zTa<*E0Ld}Gv5heDfKv>be@rMF%sW~uAb;ww3holBuz1K|VP{Cpg8l_Zm{gg2_rQot
zI%+-{j_}XlJ``FZ_N9hehE#***sqIPLAES)qL*DbJ)<MMIfbAy{0uVtj`I+Pw8O~5
zd1pM`N>*M#g9}v>r58Z3(b;cJ{!w0YH&sh&oYqrq<cRBb{jR_<e;9q5ZMd?LW&l9g
z@7vqzw{HP64}8Z!r(RGXakLTY=KlySdbU$T!jd+|&s(8Ip9`)<p9`-=3rzu`MW2Kg
zb<-X(LmFGPHKk1dyN*e&9iFt0S_@gTMx)WK&L8@+X6)B#*35krIct`DmNa%AIW&lI
zFCv|MNbJ`|f9n+tf9C&f6Iq{V3VD!qd7?Zh`WhK<mV$0lYz4tPN2hJNXVtXSF=qsi
z9W(d{o(^qezZuf@cO@(i!vJO#0r@*jaQnBDm-*`vcFH@O^dcYlqI+~INxalApe6*8
z2)Wc>vUXll^n>>oC13$yGgr&O{&HuhedL3ts)9CQ(_qRXlW^e}f0Ri3ME<Q>0i@zj
zlQc`e*_zKnVy9SovB_@KLW6`?KK1G`RMRuIH<qb(egpl@#jjv<$dk{ZrrIf}6-;}t
zZI_+XZJQA;B+a(K;%=Q371F#uhniQ;<zg*cD)Jn20I<(<%7C;R<~a~3A2Zi+!UBMN
zc`Wvm9YKF_=s(Hhe{p4WuZ(`Wd4O0`sU03}caM(SwOJ;!$i$8<F?{E>03$*EK~$@v
zKWbVTNWVD8Wl1l&G);$bW8X65=z^0U<Q0tXC2%k}B#ijHyo4P7y`n>S9UZB*5&!bA
zH7zEJC>>gFlIUsz--e~_T-DP!te(_)Nk;l}Srb#4YJixte{ID?KAf+G0mgh#VBR!}
z;o|A|qd|zgou3o57%{dUZ6aP=jQ-<KyrR4jmN}B%Tp&n#W_AtTwjhTnTO)P3Z#nWR
z$%rHkmQp9Fgw$T6*i${J*1N4VRcRt;@<w{&aG5zD@0a$L#(1ZwOCz47`SpbWzs;{1
zqe$)A*%`H3e?>J{UrXeAIOz4?la4fmQP)z3^!jA@LE@Ncf<+o#+}7az%}1#}BnPi2
z_B%MqP#W}Gm*oBXPnTE28lDRV-FI*L?P2e#e~q5-gHqljt$t_eyk6DAai{q0K%i&%
zK7#ElmO3gb8v+e7eD$bG>O<?ZL@p$$4;<A3*7@85KsnhbFjVP6A~)9{Gw#4O`1^pZ
zz62K0*i4UGL_0h>thWLIPVCp$NDK*Qa6THviL&T_qmuor-W!r0tOJnRSCj4I8-KDZ
zrfjQ5Kmp!68y12ahlia;Crzg)Zr8}F8FU<ZK6_w#dtGnW#K)_SguFIWFRS^=RTdl_
zC&qRR5gg?m9Pu(0PH;lvoDf%gf*Z|LKf0~UYl%@t>$^0yx3%g~J(=={NFUFpy=~yq
zL?7w4iD-t8BPq^!iWE(3ToH{<L=+~5^}M)Ur>u7m%;j)M?toGce{YkZ<RE{Jw50)5
z-pg~&N5K>#`IM`+Z)$I+dVFz|*51$LVF9m}WH23_lKh)rNPo5l(izbWn@kNzdj5dE
z4#q)Uf^2Y0o2G40XojWyQcPJRwu%$R+^qECnfN16vqJh;1YX&KRzLFN(Z*LNxCfjV
zx<U*%)RU>&&XI@#ADR|(s&#)tiH+P89-@XgZXRBY(;Q(I+Pow*k%3{FCGmdSJ?R{$
zTAz(WLWC2{#yYJm(y$bUfq|{#BOVj0FCdQiCBqNdQodX2-%GArIx2M&U{{!zM&ZVl
zpfePOd)DdvXDeN9VJyJ~soUpv@>`dNuytap;|&4~CZO`zd=qzoi@JYk99vR6cOa?3
zh!2&?#D!?F#*{TiX*-hJut=LbV~2sl09t7jQyG7P2;#z2<e$`dhG5xg%T0I-zpF2f
zj_Su;7N%zmyxN`Z)=wI5xpZe0jSh7Aj&xw<4}5a&*eisI(1!wS1D=8UQ!ss%p~pI^
z#No6HSTQJd5-D%xtzUm)r)fehQ@!1|c-!VNjG?2t=`bpW?ge7u70?`^17~GY@E8+b
zVT>XDHtE1c{`Y)rhl%)=U@E+onFe1xMo}!$qUBjiY`F#|o%6(2`6vaih-I6GK2c0a
z`N}%ArVJSZt>|H+deIFunCvGM;_5!a!v}0S$=hJY&hdmAOy7Tb-2q)mch1C#Jb~E3
zDJe~vfa_lQsXVW+Mp)17O119A90cSVsMc|Z&q-S^I_b1VE!C>kw2FPPS<7#pOu+G$
zM}}sYK%UamJyc<!Ey(qKtChx5f2F7U@px6~xbv3FiSYZ3k|~nQ1{xCs595y3$nH$o
zCFK3!h!S(MK=pr_c6N08bSk&m(GZ=gLe=zqz6`|kH8pr%c4hYvWH)xinqVqDZ)S<@
zzJwa!f-wsYNvt4eRA9U~Y<~-79JB(D)C~O4<k8R4BKs`4ovB_#Y`Qsa=h&2=2%g#^
zcVOEPZ}3d#MGEy9+i%!DiTGXlVc53uu(LApTgU_kjyr#~{bVZZidMmzYvn=y%P=dy
z*I<7b#`1j90Gkk5e{NKWJ*_t|Zw{%0iK<V|OO4|b98UdoR-DEFFJR(5pj~1M4A^H;
zF5_a(J%tEtv1-P#cSk;6VZXk{@cwW|lcO|As0l6DuwCj@(!^?@@}Pykbtb8|U|UCr
z%Nl0*Bz1pBkPAkz`E=y}a)+ni(-j8cRdP)52=Z9x3GW9Ej_7^lp>)|NzXW;w6}rgd
zpJFDl-Sy3Q`Ts>pu#U&W+Nu}fi0s#eX=5Y|y}g!hEe`-ozD64?igVKz=m2ejY1_Jy
z<quP%LM3)9Oj}{e<JX<{Oq^Jt0u1s|(XH<?2c>@l4Tzmd46PRX{2<r*#s%GNQ3)gV
zHHSu<sb=nDzb<C(Wp=U@GzZ+Nzr8_IffI9mWeE&f_?kDh#&We)W2n5m2=BQgXLUJF
z4QFRgEYRlk@K`$K5$hT33BpKptQ|Q7V(b|T76lx61VYYBz3g5)J{8H(Od^A(XhPeq
znuvd+z=Vv)uDTb})v(lw4hse>TRAK{o@b2x)uQt(u?lK&q7+zP9iBONy*1Ha_Jr<A
z@_D<h>aCb{CoICP*7q?lM1L7t?%+Wv{C1~^{<7sHe^#mg`NS2*=kvv@juIC=wxq8-
zIgp$9AgR!FpNmyqO#^-<SoD`Au&gI`$l-qgedF|(rJkt~u(hldd2r?qf#0F%wTKN8
zY|G)m2T@}`5zUCsXorN?c*VqVgz$xEM&xnQf(I@Y&4_$KVW0panh{Ov0Vkix2#r{|
zEzSn()WrJB)=zkd+I}-U;Za!j*|-@ikb&wawfe=;Z1@rb-u9}uKA(>LI`!$?N3?(5
z>&)6!^)dWYY^FRfiME5}RbyzrV2;fcZ3kx@wY7v2%!lXN3T)=~c7=$xgG9DY#|&5f
z(Al-y4p>|DV%q`xbz$20inZpZO|%^d(+2a>u<in`RaS}A<}zs9bB`IHnLmt%Uw4YO
zgB)wB%N)cXvjpcbd~T{}JJ`6~TfBeFmS{VG)(cE2IVBuc@pGF{YKpc4(RN_{-L`;V
zf63Z;sd|b?6=Y+~(-lw+iME3sYdb(DooQZVSej+_^luhjMcc4@*}E?nc+Kt1U}~=z
zl6w}{-QmYGc7kohT|!Fo>m`W2$b7I>Gh{DvQG!I=P}Xf-UQ3}fv3b`&|6+f1Pd?^G
zY+B7MqnFT9RbCq0wxIpFD5?&dl0<_WJNgZr%*-U$14PncQ;gCski+QWtT}6N%UO%W
z?sf>xX7Jk{BO2UtEXK?x_b#drHdq!7Zlb{rI3gf@iis)F;3gW}yuNA%^qR93jXh#4
z)QWPOz6vf_=hoo%w%usB>so(<w(V^lUx;mcx{dWU*~%3j`Jy+2rII7DZSOIcnc3`8
zkOGCMg=lcwI-OcDTk9-F`2j1@CZ_QStv>;4QE2DtovLZ@VF{O_yv1EPY{@K_e0xoB
zPgYsGU{9^!?U90gcwwJ(+9OjRg(4UzUj|xQ>lN5JiSZ;|1MMsTovnZM5*94})T?dD
zH7s#ZV1tt2Ac&F^o^`p69Hi=D8z*7wu>P|wyyo3nM;h!k`*jZGm_VH)IA-(NjN77P
zU=E-<twe~@pYBy#DeaT_GSlF-=Ye5+t#fqRuC6^*g#Eg+@y+=S6z?4{RV37H=4k3e
zDC-n#H|D(cI?y+!ARK?O%ruwOa<FyqwQGv0B6-$jUL=p0Dv~F8{GIV@PZeQp)r(U_
z*slxICZ>vru@z1q>eE?xZ|cqr%vzoa!Qv0Obrt=(Q%n`f5y-mCLB;8!m@OveXsSqP
zWck;~1A^jYOK0ap5u#0Q;RIr;$h^0`K>fmEs>lvZ6-mAiCsltn6#I2?0kLHd6n(6i
z%J`E!Q7%kH{z(DUcJmb(8$>s3@?@Al$-(Q1{f=nPj)bXUskUn92x!s`T`2)p&Nhgt
zJQ%+eV&5z77a@Q8Fx3=W(Vox9y=_mevo~*^o}MaW*_L(Vmnv7_8*dc-%@56(yty}?
z4s7GV`85a5|F3_8JJWbLkPjS?=NqPBB{2J%HfW(Lnv}BwE%32vw_2wY!tWuQsOppR
zQsel<@qdcr6Y=L1H`!g_`ABlkl#Q*oLu)I%ni(`EU}eCX5M5EmL^F&jnZn4Am({u3
zQ{p8CeAD>ZPiS&+bpuM?(~LHzcc7H8*Wh14#eO0#=*)k#)UmiAT2=PsX&0u5Z7g@$
z#;37g7n^clMbWLPyUIBm*d6KwZB7kUw;`H()NS%wv)>(%!<UV#V1Vrz4~iIDL4Va9
zj?aj`N`JEc_EOj{m*Dd8u$h;R^17(`wMoS=A(7)s|1V`^8)o^z7~`_jlBQZV;Mp`q
zpV;^C;5dKJIdz*@xL{NX<e!|w8+X3+lTd)MZ@Tybpvlvz_FVSFVxP!XMSpxyOm!r9
zU%34%@E678eS|9StnzmbFO>f-dq1)^y_bdeGb_Fc?`OxnAHM+1y&w8?tGyrR+(P*?
z%0G52SwQdS4gy`ZN>rUxVev9XxMc(wRQLA8Q1gFXYEf^(HiwB~Jlx)@)o<T$B!3Bi
z{7!SDB_5bTOx($CPWEy}-2dbcQqA8%66}y2JAiKR(;t*Wl?#n<T5r%*t_6k{dBtSj
zSDf6bdIj=<W7V48-lBzY3S};+(Ru9Wkw3`1sPgR_2kJubN@mbQFK_H;lrY{9oUu#M
z25^4{O*i^E!+n5mr(lL1V+NXj@H2z^KrqAq?$)%T<_Ov;tjb8XmC4Mt_@!u8`A(+A
zc$$=Og40`=ErZ{4e)`74Zr57Q-o-9uYiY)+!DOs_CS);hRUG``3Ur2xJt_NyWUoSc
zHc>4K*|6jXh5S%P@}s2?S%XHT@iQ6SE2Dp(02sILW!wD)7LiS-#|ZyL{?@jBbXXGs
zoVDBpp76Xwx^hOrrfF28l{*vp#R=g2de#4TR>xvK(8qkYYUA5JiSDlXIuKa+<Qf3`
zym@7ZRBW&&N@(k)0xOZq(7$3SWp^8*1=ieF%*s#LgyY!sy**ll0IZ!ek!sGh`{aKC
zuu0HM2A|D#SICO>9mmw^lQIq(`|bRaeS)(MpS>R#ZI`W8V4QjfZsBf*>YltkJ~~Df
z2#uc)N*i$~=OuYGQgr*+>6D9zWeldBJ3*h9JBWCurqA7jF{bYR!?9sk@UPCKK@({0
za|0X=<y1G%!6X8_!DFo)FCn%L0semoCM<wAe<)92)z63w7o$%!#kmGJvt~Sj`3HB&
zdty!i!v`35Vm#W=&I7K3VgcXT>S&+bEBeT7KgI^LSL}dlpS&Ratt}nBZ8b{iv_@`n
zNliB&X+b;mcG20G(x!2@t$e9le4iM)_Dr3@8BqyS)+c2U7(g)t)P0{Q_NaftA~~^i
zz1-c@IXS&JU6{t{HcEPlYrjorzP^(-y?Rk=OK($>491Q`)S<!ZV`KpIyP|_TXu1C2
z2&UD~o-Hg|0WFY@$ZvA6<`m{ID2KD+b&g`c(J>aXpIqK`Fca;QQU&@WihA)2an0f}
zIOKR%bNg(wQ$*xe2Q}Fj4>o@}NA-G}dc?Hjm??_}nH=WpYnYt8Gj*|bL;<m79L%Z6
zo7}OT+2WBq*f=DVHJHWvkSx%Y?-<X1e~|S@$R(in0>K|(R8;Iz(zLQ01mFjd4({Jv
zUOJ=4e9xU=@IU(mvJsEq{G2bDFAnuSbYYF|WfKY_idkN?Q=W2UG$wzChwugIi$~z_
zZCQ)8WNK3#8WY=8V7hmoOdc`B_od0`gYS+IlwsJIX~GvO5H7-(u*Y@2r^-hoCt|dp
zr}(Q5_u$VW)iPwf*xGbe{>0S)US-7n5n^XlG8MNsb_|2q%m;{_oq~(gFbkmR`Mfsf
zTJmvi#01jJAWl5EHiCcLnUQ-L09z9P*t4DLk6-|>H35L7b^Df{e(}0^k<e_O$nEW%
zQ3L>1tZ}51W?bib&KW*$n*%2@XCzzfpr@E>!mUitnZZ}87R<0q%-}0S2moy4RY$Qi
z0|itY0sxEXZvlWkldasA;1y787NLZB0AQKqyq7rjBWR+QGxL8&#qN-WPPM+394eOa
z8VggfSg}kc_}*s)K>_{+B0Gz&LolM&y-ce&#pDcIpnq3YuLSyc&i(@Z>w|P}j{a@5
z8;wqDZS*hubqd9DA7Nd8>ZmAa@c_36_aL5^^7dVlj~Tf|-UZuGAJSK#fAfo_5UwH6
zzs95K4WI`Nky(Fb*Ozv~o}on_sd$hiZgr4A|L#`7oCk<Z&c&?cJq&&Uhv@))Y3!OX
z($`d`<?35+p$A1hnqG6LfK6i8F=TgFrxc(+G!!;TNygYwOcv7^z{_}Mu|h%2hs@52
z;z895G-PHz^D-K;F3^y><=io7$hts73N$3xc5n&KOU{3SIG+dMLqpCPMW7)C8q$x3
zoO6aiLz2Go<jnrrDS$o9hIPS@b7l}|$Q@+{Us_h6Aq5&TWYsWMP6QfKpdoGK4}pgC
zJK#?%mUN=n2sEUZ;xxO4E*J>dg^l1|V4z?`K|)1<<j{};CKwQr2h$EFs2V?U$^(<T
zFARcI-~@jGWfg(|6;nc)nwG!`3Y=hs&h_N0_}pT2f-Qr<37+xbBnq71@}h*yYM#D?
zl)wr4fSM_6s$eIK<pUnc8925>ZFNl^z#}=6J9!Ud*KmTcfOKTSj6M%4I2(eG!wpML
zXbUr{6Pgu@2*SfkLqG_fVt=eu(Mkv*O+_$yh<ty{fB=<c=3sGP2C65ARSM)0`=r@!
zoD`fqXCku@@m=!t<{QDinm!EFg@wS6u#@NyQWeawOUwWuVjn-ie!;515brRC_())g
z1%{ZdKnG)p=ZqpS!~#R?#}LmsBNB$VadKQek`~5XEIjm$=wd%{##}hRA!N)&-YaMr
zr-Fapj3;K@?jihfpvF<)9~g@}<2+3GRlYq<^-k^LZ8wYUcZr+>3o77-Fn*^G?|@y3
ztwuvSJz8Ln0v>a!88$9)9u97#HO`yC*n^}f7+kU>ujPm7yHF^LkF*&aHHvH@PcqF_
zM{AIal|p`Vzspljyf^2XAR#Q~iW4VHmacz1y(~`ci~4EfxKO&k9IE=AIh_U6^O~Yh
z?ECUq`BkASo%Z&~>xuo29J&gTu6m^(j~>l3d<slldV;B3#*<arBmX9_JZ<SWz<0cV
zfBkG#RQ=8<@7<QHXA6H_=^Onee|o=!E#EHK(*kly=y{6DB*E(JU!i&|gL5(k(4>Df
zS@RVv1thZmOx~OF^qzoFsIcQ))=WhnKNDlB=<w+nc6h0l_aXdkCJwMu+r;0X8|*K@
ze+Y}!pB0<_^C$R~rULu7i7Q701Owpp<bX=v)Kq@K(sdO+hn-@yp^Z2@*vOB^iT|HH
z;{JALuEsjaP&N=5FjVr)>LzhZ-s6AyXxx$rFXR}nB=Y{~6F$kN?xxCLYxcVX;(M@G
z?p(0Ty6rJrz%Icm-s$;4#&PQ}t3r$FNwwZ>rRmQlB^$wqb=Sg|$^iSA%gR1DIbo+}
zG-!%pVN&OAz8|zcedx7GNBZ1rOXTKS>X55GX^}sB{m#{&*W~)k^-%g4c3yvsxw=Qk
zt+(ysQrR)GVJ9paMT0r{t3DjG`q!UY1F7HsLaw@G_(39<y}oo!de_^+&XFg;_xi2&
zu=lw&1g`J(ojZ}<OZ^TRUXf1&>9f=y`edOaeS**M*~QI!Qofd?JZ~-?hxgvLr`Fk<
zHxt#qfBXUN!owR|9Y4dWUrT>^<F>-RQ7sELUcadwHEP=}H+vvBSLEumG-zLalz>4%
zSU^3x%5fj{Whe`vZah6bI;|fSS2wo$SD+{cp=T_bc5FI!E{tinfn=mS9p9DrNcU<0
zI_-Mc>bIrb^ACynE2S{fWyOg<T(z6niCEfT;6RIjUighHDdMgjio1VknC=EwZUCa*
zDVn8}RjZ;uYFZgXk-dE~55@M0`$ha@pOn7pUv&ss=3m&`6I|vAu9`|xD8*RMd-23H
z&U{K%XkoCh+H?j1W1*nF5<&(?OT{w}4(y->!ZwKf%lQB7T?=#KMz;Pd9Ws@RYdtIv
z<5$X5VT==3O+2|CPo;mhoLrX-GS&tpRuW@-Q~B@r^h2N)Es%sHx}m3PCo>?=s{6cO
z-?4_sh-8D$N$z?)eK8=rJeo})g^X~T+IoIAUHq44*O{OO0{A0@`zSqB^<BgErjU!a
z2k%(Lyg+`NeueYXHZ%YX9M?4m{`ejK9d9}|-XV=`+4#vICH;Sje~2cc@uzp_r>{4t
ziWAjoV++{Nc<Ycuh5k(gfq%n!0b8+|x+SLoz@*$%T+-2iz3{AZH6WqPwzhd2wcF;#
z>~ou!3hJ_G*4GMBY6ZF8f}U`TWLa^THHHPzX{b2NKTeuj&tUr-s|*Nsw@JkyY5MCz
zDloVQ>Qu_xH5Y$^o(Sfqprv5!RiBN4@3_^W;TsLQz~tc&4KN%e{o5Z&B1fL|yT>V<
zKfmLgqOnjl7OIA_ObcbHu}~qy!sa>h!$RF7y(`Y{6o!RL^2OE49NHAJ#Us<1P@8{<
zJadXJDiuf@6VCwfPiQU~y9u>t7dmzi(ZrZeakJqCn*V<*dXM^C3Sv++aW2h&S9z7X
zm{CI>Bcu&!WP3sX%e+chj0${Z{a1tzTS6isiPr{8r2(}ATzayE#<V~FbQ#%X*CFHP
z_!M0Dw3J<zHV_a~4?u{3FHPuUhE9GLuoQ-%4`ewZpC&muJ3czbX%|Q>Pt2Y(cHE1K
zF&IEP`#6976e8}5rR~%gw5^&lt1L%P!n6>KGQ;b4BC%SzY?;|u0};e*sUe3o<nRcz
z5)4t;P;bJ;q&X%V9)t+hoT@{|r&{a~nf{=bq}&b3sjF^eEH^&A)#e_jGu!kd(yl>$
zUzlG4)igGr{fo-BXCE@lV{Cd$Lk^QoN<iV#5Y2yBUq|4Zt7@2*hjt}#`9juHY=fYi
zrY4ayl-45%<$X2eu!bCl-I~}qQAaudd<_Q^l7>}dO^&pIl!hEW584W7L*0&(JEu(C
zJXPimjIsH+8ge*D7J>cA5p=jwG~}@NVvq#aZ5Q%~yd%B?5h>(`VDyEIYvcHX{S~5-
zfLebw=%|~R&_;(mXKW2?=*}D&?hvO+Nd!as@t_;-5Z#~`<C}?m*Mc6pMOPlolG`Kb
z9e@EGXXYbs2H6eIJ7;s>&}%oESwlR7?%0rq#eav)ZRoF0j{gGlityv1f0Vr^=Rjhu
zOM(~hXbA!n?lmvGmaFlQON$;Pz(a0oa+iNb?j<<XriMe^V>s0Iyf2Vqh177v_QOLQ
z<YgpA-;QzE@)C`G3SeLg#BqnF`|z+}lsMjyz-`c+QJNhA&LBm%FlVq2tVR+w!4SFv
zw~{tTM*59IoumBYB()yG_>#SIl-vv)l@yIN9IA#x4F$P4pknZ^B_zCa;l%iA?0SFv
z#`2DuCfkII{2Ux=n=@x(a`C!L-ZW%H9g7cB0`H|Hh`87ipbN+Lp6rr5iN&b|Qst#4
zIvV@56zo%#SYl1OS3NXbv7*vIrx*oQ1D%4GAV;%LA($4t4^+JD=4O~M42lLieZ{?P
zE7tDia^10&dv(}Ftl}5oIU4AcwxNF#KSWubpn*<18t4=N@igEk_zIx4=R*T&L3!em
zCnex2<>%$#oX~1)&$wga6a+){R8<#>4W0%w-2u{Sd{dWmQ+9!*v5==*JY3NGnM({o
zlrg7oh0O<%0wQN`0#zKUD)Nuhft{607PmdHlb>}{KPX#)<gW2i38UoSz0ZFQjO8NO
zAwE<oiM_x_jja@N%15QM&3nQ$J}R_S<K12wAJwylcN|0KVNIn%cgtIw1sBBKno4Rw
z<D(KI`b2+cmM?EEQHde;!scmwR5HL`0_&@<AlJvEg-=T9mgmx1o<no;8XuJuj?-K{
z7dfWs1Pld;yvC5X;ZozHYJ7iGjgPAFQFjyKNm{)tu36@U%3#9mP8GJ^z>Y27eDeVX
zQRAbY^U-kbxQj6aCE2)(*Z}~Va8Zm)H8?7?n=F!y(o(M@z(L(T0Fx&Z+G9<C69F_{
zdo(r~TCXu4JFkF4f|r3&(Vy=O0~8XVUI={g5W$KsXaFYwjE*w}piX}-T#ig3_4-F=
z-F87sa5Kjqxa!OX<GmN>HSPc<Xq-)sAXcNunfjJvqoG4~wz=lS!9X+f9c>y>GYgVq
zW;(@&xf)S33mv$meVTLw7I}@RSsHq&ST|`zO*3_ZZ6l6fGm|H+4(jkPj+H2`s7-@R
zA#Q)uIe5HejzCW|PQ!o83Sv!;yxzAAXk}Y2x#aI*$V={=ayO|EHAw+DUpUQBO<4nL
z1{*kfF<J>6FtJkr5hO#X#CxVSux8Y<k@n>^>ohgeVw#%eMlO{Mrb?5$G;%KiYqm77
z<{krU9?zSoHL&JIrRU55z}gKGIV%7Mf}x=_DH{djm<6!rf>D1ou;xlAiv8gXQd)U<
zSa1gWKm%(+YNyzC>>zKXY|}otA=9w~?Fkp?{_bl(TCq~7-8?1;jGic<7|!&Shb_rB
zK3vz~R}k0oxwcp6f=V6fiedi*Ck;L-p#Zs2EW|-;f?kt@h-rL`_^bqzw595{LZa58
z45zUgHC7{tIk<n*bKn=gyb|i!P}M++t%}BKR1B+;A;<CdFY;js=Yju5<2+zzNgeP#
zg66OhRwGaUwS&z3<C<O6Vi&QB*I14IVdY@SOBHI+0$ta<0;i6~YSdVbUo=)D-_e7c
z7d2MnUGMWReRTix%@_3f7X5Z}d-eIZFRM}x8mlpXq$q!qFUm{Xi%oj>_VfME{kvG3
zhTRs$Nvp9MHCAI8p;}N}%S&LB^yTtVmJZ6|3k9(SZpC7F2AjdgE39X84AZohSF>m1
zaTPCQI5<R$IPH*5*w)E6FcI*({ksi)nTrRao5S%nEp>nII+t<nz`2NTh}#Mb1asFo
z3v{aEIA4EH)ueT2-b|zs8MlSVxJ91IU&LW0k>UAwrVYD&&Ec=c$h>q-<4@wV`<+*q
z+(k1y`AfR2@6b<QZ&3AVHbQA*%Yz!abrAl^(7$P*>F}Am&Vm$o$U5o;v1iu>4OerG
z0l63;oW)2AKDoJhU(F>_0Dk9cE46u#bfac&5zl{(+2`gxG$^DMWd4dJ#QJ5|J#rOc
zq9E5Zh#q{688M6H19>MQHTYz7h#-yH<~-;$ZGQ@KiUyz5;FB7BQiD%w@X1mkRKz99
zoB#|o_#_PmR)hp4flqqYe@(#t<ecxNwrGjnNNgJ)9`Ga?)LLi&dqMw8KYg&;vC|o4
zPnm!4@pbM5?i?ygMX{=ph9?UqoA~r3a{_`H%Ag!db0cXY4jkK$E!%|LJRGOuIx~A%
z(FmhHLK<SUUZ`Qo93%tFiiJ``jLt`?+-t|qDJsiMr`TkMwD5jnwi-B&JFMBp#PnE4
z$)FngY+3J@(8iEf#cPOB4Ka$@GN=or<)430K3L?kOUUtSMoFdBK}lK}b){u@DlIbL
zwrPmbG}Rq0E0k7|=9HmJ1u=?~Nckd+Ml%_b=zrX223=$feb}@={&X1zAP!>P8orR|
z5%>yyp^?u<45SfV1LT|3I5!&6m8`r80Tu9$ghq6w(?9ve&KpU(1fD_Tq~552W_*7E
zwF>>Y7nSz$2^GJ84+1qiHlKa^SwT~MSz?yh+=IM|T?TSDT1T4Po>er0s3Z+_jV+Tq
z|IA{c(w+HrF}c4-xWY2Vo5^6SqtAJtSXp5Ynp-2nkktdXG-R~-ZxR@7sp!m?>oP(a
z2I^hk9Oj!eG3d&hJ34JPPg~dmL>+%c{u|A6QEBDx=Po3z{5SgMqBqBfAZ#p~>2U!g
z@{jNJb(Y%)#96;wlsGku6t5l)EpIwD-q+hjUY;1gL_XBw7fyQxDj)czggjkdtRb$&
z(rJ9Q;{afOjWH|9a*R{1WN<-#vB#gMeMd9ce(P1At?^i*_CWsdxp&ZsSpt6`$T_@c
z=rs)B$PfPFFYJ*rP8I6;upQz8E!HBy55WT3Z>H<Qz19q<^uxE7=U0P9FIo62jju=Y
z-J=@oQG+AOa)_<)$)f*MmTSmBOLB7$5Bo#Q&cOkl&A#q_`qJlfWIL<o50Up`Ol4~P
z-ipLVHG4CQW``eIt=ShqF64hvdQx>;?%_C0Nx*Sr(R2l~&%P=N-*x`fS|Z~AwX$dl
z_@O=35^!>@B_Ju~2Fa%FjvZx8h=Z#yj*g&R1g1OuckN9?y@{hNdIEkZsh%K@?v6JB
z$I*IXm-U2fnT~>eMzOk#Dv5R$B>_K_R7sFWcSlLUakP@yWhEimJi31rIsz|FWn1}@
zC!FDjlIjTZ=<eu<75f;s>w4#2uUM0oP^cIe8A>WQS}LUSEH?kpAwC#eQ#=XpJU>^E
z@1Pgsn~6Mg;MhaMeMi1E_|t>g@Ti$9hM0vMz2kdO<U(X`uWODh$3{a3Dqc41@qKmN
zKe?j`JFKpH&GuPW)F*$$f1^Nq23NdIQjl3QV^VIhJ%<;@MMCg;IiiQ;8!t8K^^eZF
z?K1Fub2<;}5Aa@`*XX&5k<+}nC^nrFI2zGo1<5N+u5PQ@Y&6v&SBxrNb;Rq_R<C`k
z&JpRx<5eeWHX7}2tBe!zK6BprM)VyDHf*dsZmV_F>Z^3z4pV<Buh!6iS$Q<&D7oz2
zDWfGj2Y+$25V|Xo?m!x4wA=0LhR}!MA16Kx`v_l)0NQ`|rli>ANWum{R5n@`Q{<ps
zfg{(LzSJ!H*<n3_i{`Hpc6J}1X4ZIEjR7~TR|!T6{k>jg|Ky0^z8s>)`TT<cKxFw8
z&2DT=JzRgSpnrd?0soTqLRakN5S!%+ocw<T$1Q<X@-keV<t9>2hlIRePF0j}#3cUj
zT50$nSX8xc^KPO1$VIIwj|78Kueho8$wV#$-O!O~!q^nRNV>=v8J2xWSG&BAt;zgB
zh|O_C3r})%OkxXGcZ%=6+E<0AQ*?ae5a^`eI)M!|K~#T4#h864-;q1dGy8EgdK{TP
z>rm$S81#{Z@4PZ&An#REpMbam{19eH>thaTUpFDhEF(ZksUXE>8Jv(P&+yD&sKQU3
z{s`GHW{nrlTiiK9axI}a93l|nRj<w%il<8Rs(szPl#t6h#P0>Jf>RBAND-62N6#lA
z9b#eMF#CU8UpB9guOz(g7@__ifk{Br_HlPFbZw5it;@D>dbitebx-Eskcc*P6+0Ty
zO30jR^6ZR&GQK!lnj3b*4kD?Shyj%=MH@0Wv9e}<gFTeibF3jH8iXdEc`dG5!o6eI
z@70-2=G!>6A|@e!*!oeu)$K~CLxTh@o+M6iDoKB&Y)v^4SLYy@w}$Bc?rWbr*5)=K
zq;CW^pxHb=#SxUs*iVuWIi!68E+w<e96ck#cY0Jm>K#icXEFNohq3?T$5`D-BXH)2
zNJteHft!=5|Ncl~k?N8sDc@_ykOHuV@Ht|MLE_uS@loSMLiXyA+een|`KB>M&U0e_
zmq~vNZ>|{5bMRp(-^V{roZ^torBa9m0pF#`3}9>Ut4mlkI4hO8;(@Nyye771uZC;G
zj3QJ~Se+*H!9Nhca$acUc*-#d5KZXIX0Lx%q(rAAv{*aQ;tM7@qdr?rP^kh$@q!Z$
zE6XK}0u^w|qjf&@f9l^}t+L<6$3H3GSxkS9B_kovC5vD9uK&MZ`(N(+S4(dm=)F*!
zCi`Kkx1Vp(?blDA&;V~rL*2WdzW&m`y+_^KZJ#d<>S}@@hGh<LOWxv?U;6jx{_}EZ
z6LE#56Q$0<?@PH}d04G;`Sl*%+@ml3{x4t9{m)&v<e&TK*H54C(a+s4==L+(9rb_p
z@rRNBBkKS1>;1pjsnC~SyS+ZT>R;d7f|j`a7aW)g*>?4HAW^yXF)*1T9ccixKuf=K
zp^BbSBEDP}nm}dC>Z(@wATYT%8gWr|*a0d%XIS-=?hgq&c$d?9HpiY>4f<8F^9kKe
z3kUTOpn4$+tyl3khp6(q{ksiL>f!<Dv*E;lO~@bdWf}e(U6$!NGuMJfpIfukRmz>e
zIU<(sd<1qOB}0qdW6aS|#Hd0ac7jv!`d8O6^4giWQ9}eX>pNJ-NWhT=x+@vwEZSlo
z(GT5v`=~EtJxr`0V8U@?8ny?Ui^qsy>TyI7S}+!W1<E4i%<$h(3$_@|NtHuYXQ7CH
zd@L#^b+}m193PI>Ax75anb-4y$FKdMI(!pNE+z{|AT7^iE_Coxw>JOHKfaNW>O#l)
zH)DKJX`CilLbiFKgQuJ(w4`YQv79f$L_X?NtI!e2OS6nENm=7GBTXct-)^q%e@64v
z{O|Tsceo@*bA6^-Ow4uZYm%^!%`=vNaQMAVDncqgHV53h>vy42w3~THp>c?OSd6Q#
zy@0e{0B-@x$vdWFg+*t)AZpu%0p}8QaLNQ;B=0B=y(wLS(3?6ytOYmtFf8QU<HXfJ
zxon-CQ8W+<DVupz6yKJx-$~y7<nWe~KbS^X&cHxaE+4Ckog#>2U2_66x+Ix@<iD7#
zRnOzn3`zJ}WftZ#1i83jvAkXAdQ0vcX;oQ1YwbC{QArS@FCM67s;|o<TQ2Mu3qG~L
z)6m<eOwV+`nH3D37S`){Gf#lgl^hIIZ=b5yw<RRGqkf8QrQSYONNtr@c)8PZ4T9@#
zs(HPAN~qcO_9@~adjIWt!1tklG6=Y<EF<K1^!BOPW}@Bl1wl#Z?Nb8(Pj8<}r6u(C
zDVFZpRaZi9pAyH3dizu=J)yTx?YN%M+ouH1gx)@tN=fMLQ#-CC^!BOcgtOj0l}bnG
z?Ndxglu%^mle5`3O<)8p3=8eQII{o_5mk-hFo1?mFog%pHG0SGIU;a>sNl?hLwY98
zdhPaEk3eaNdL|mJBc*_`)-*lFmYdl!CzUwmZ#@4Nt;Q;J0CDkXX_T*o6D8>YSi@Mc
zg=8q2h8t?x@<jB5F`53jbk-m<f?+*QTFuKNh4%i4$+>zolbta*HccDv>S(6$u=2KW
zB^=FEjZMM8Zb4@jsbQ9Xv`7gWGdFjK>cPb#Eyi^O=R;jWMdxUReSy3)cDLG1V-I7}
zirlo5dP6BUEvTc0{IL?aHi;AlZx(CN8HW;3Q$1?B1q=(Zqp|s@X+$2WGZGKA$UjbE
zsjNb(hfKmf7O&^4`z{v1iA?-LA0)!m<SDmy)Rcc*6FM_yO)lzxSC5+d9qho;$q7k}
zX4c?192w8?AVWxrderpX@CKH}qcuRd{L+Ora7&-AfOSYIdl>a`KSxb@ZO@EDJj5OU
zxHb-D8HcSw+_6M)kg^IzZTvT?CD(I_=tJRLa6#0KRyDnzb>lL>S2-Np^WP9Ik$d$f
zH?~?Vmuzb;CVRPmP8^HoGa<N?*9$}nR|lHcjiXj6D^qeIIo^dpJ@;_>B$|i~AMotB
zb=4|mU0`kp<nxtS7m{>c_*A@&VBW=b_oRQ+7u9R|Z}#1!lo0IX#tZytgpe0bj#^Ns
zpOc-NnFx3$<X-TPE5Hl8VmR_Y2iAswjAz5PZ*zqIgYi#)$HqIS4~0C#x-|ss!GEI~
zd!z|Z11D2oP|R?ezMwU2a{7Yw1z~3*KuNaPb%0t8&3dk?L#*T=-cmCskHt0u&CNf)
z51JdY*TFq-UQaO&9%sMP7#eD(y@4?{(ZsNgkvTDKf4!0B3A*F-=RD?m{j%P!2Y9jR
z#i?AzAW|QH=zv_#fjK6p;C~K4GjJSt_&6|J-}EeF8ErI>B+@h3Z}<D9^bF>9U2mK`
zg%|*zr`vCzw(3Rh`OBUBV`~z3q7rmnAuKIUa-oZr2`U9i_g32*;vKG}-HCc?gpZxI
z8d)w5r!E=its3`5jlA!o8WFTj2aZPxW{q><^Kw0ZV)*fUG#Fb`ux=IS`MH982fY{o
z`{|hj#~vE)JMyi;pB{qoEYBL6XgYR$fCe2|j*W(n=^-2b{_41Ya$bNiSJiDcx~Er(
z6TtlABu-=>kun2Ch_xV_2;Dg5vk#jaWE$Seg=#_A9n$Y5a9<Hl)fl$z-9hTtbj{(f
z5LsS-x~B0b`9BH@WyJ4i9gg#0fd1j}X=aUwRTGjG)v4jaUO(S_^MPf_4nO#aZ1SV^
zw$Z3&8x!*oHO}WBkcH&1{tsv}Hm0yd4VWGM165$h-@ymSLj!Mrm>RY@euRJBn0OBu
z>QVDEr-jla61Ky(nO~RYJ>EVVZ<e>D_o~K!vk!X<=NuUgPY;l@^zAb!)M{kzMr*{3
z98^q_jMH&x-VB&UY)HS44Kd1A*(s018Wna#|F&8um(7#8lMyN?=jczk44yvcwYNb8
zl7@gGT`QlYbYinzR3_N8iF_|E7V#Q&ifh;-u7NW$1NZlbvH#=8CDE7fL>;`>X}wQ>
zb8=QcITB(i@ZapaJ6-~TbBQ3ZZ}V28o-kqCsT1&QGKS!_=Gx*8|F~*gl2P%Nm>Jl_
zZ^3}}oCbifvIIU(bE%YF$Ib|S7kyJzE*WCW=&MV3$+i=HNmcH*a*&`&omWFlYh7PL
z1ER3+lz%*l)`}fKFW5EQ$SABCTMM~=k~}l8iz|VRi#%Rz<VLI`bL5_9_M>G(#Q#Xr
zo>i!j2?~F*-vm&S@gZ3M)q<`FZNn#8UvE(4P;2BdmSGPOwvfy9Xw8<Do-=bp7!4~X
zM1x>^BbCFmr8C+ISzFJRodlyFyiL_6nC=x17zX|u>^Rg?yG5zpG|{u8juOp(34fqD
zE>5Xo#>E^v4Ngw_)<l)vy?3`&m-R^6h+~7LinJmwS3r|k-zp}d8*n?#TPt$d1csc%
zJ|9T!$FdD*x#g&wMA$c~u*8PZ{~o}Nli>v1+d(_5We%+azQQ*q++Dn-S?{bJ>ap^X
zce}S?Ljw^oUUg(TIMl9q<_M2}9aIj{o9ZD>Dh0YL3<7k+Bc6&!r+Z4ecLCja(<g1o
zmb$DpV#+>nR&2>v*%eWHuepXjGND`T5WS0qP7^OZc3AG2p#`0w>u_j2FPGsondBkU
z0s1F8t!HlEt6w$S4T4VWLc??z3W?8%$y{YhQ?iZqc;&Se#72-d;h-0PVo(izcBn)J
zcTHVK-rMK8sGuFi@?n<1t7J_n#}AsPmp7RP2y&6Z@;se1uNxa&k`*rq+El7&0g?Y!
zBL!L7b!R`p!XWW7krMLgDGv#qS5T;v#TQNa^5V=mf`u*>+sWR9k*B!Ils!swyRjxy
zT5-j#V-Yz-KaBhzQ9W~iHx4sUf#<tP8nM|tKE)m1FAxn`_UNM0K0YZbWte%&Bt&#6
zH5KW1sewISt*@l@D`NDOGX2>gVU}03XXEiwlV%_zwD{1wY@9Spfx=9q)4-;84BvOH
zrx{cc)*RvZsCnHxD;?+JIy>;`%Is1J^2~LqY;umb4^MdXa!Ja6OE^PXc7o|lzSVOn
zk*E1+qi&}?;Uf}N{57-3mglcgOj@@Ffc9xS=QiObI-VlV+?Sx2_EWd=h`mdywR=*(
zx-81e$m~SNW)5H-R@@-}QZc9)mfGY@>zcHsB}RvN6KG)A=*dKb7XVNgK>NIhs$=5`
zHufUt8Tl_J!o&4{2Q_qK!`}=ap7#Kw!SVrY#6t_ek$vg7uIWtyf5gLhB=a0$G%_iM
zkeiHH#RMVI7v~-NLcN%c*b=Z|9Kd{eGM^pS3@{K-tJbR3&yhEqPJv9`Z-#3_)a_Lb
z9KK9U*BSsm$7Jfn)MAUF+D7MGlS`MDKw@^QQOP5l)qTf*SsG5}xv$WGeiN#Q4~NUA
z)?haFiDm#a8EXK41O@YC0&bB7U>sQCgxK$`HZlI~xQ`x81`JFzG^bE02Yy8WU=)>0
z^;lC{>UHpx4zf+SXBT5cfwH&1u|IRyj`L#p-d8mgtCAedY&w)l4zl)G7%9i7U^rd)
zz)Cd+B#7sKA0A|dPf|21oCo1cRLhxP7iam@m?9sW_Q-$XcoNsH>YVObih2rFryJdR
zBo&rKYtnS_<@M2NKcA`R=4p#SgOpKcNqt#sn%(8ouxnm8Hq>R#4Fpl*+6J#j82O9w
zZ1N@&Rxb?AukyS7yL}P*h5sHEUUg1&b9>*vyX}5|LcPydebm3Z`+SFPZlmW>n{;A_
z9YH5QOw|u?mk)zxten$pxVi0pzWs6&y#;ls`sKcV+xr)4G)2ssxuZ#IY%=K+(%5Rt
zMaT1<X^;{z{H%>`+BIfF<nlUcd`>;NkETg0J!x@hTZ6rIf!8%LVK<4emtPX|1>DC5
zCJ6$6ToA5DjV-TQ<rOV}Z?=t^i$?_S@4oi65;ewvczzn}9_p>xji*qgJF#rXrQN<E
zd0WWeKhaVVUq+ErRnYiuYZzE+Xjw}wYceuqs*zS{4M9whNmC)7`5z^8!y-|xsFn~@
z0R~agN3t)3cuLDlm*f-+)m@_pmg|o4lD_SK^8{UNsk>7D0Gl}XMh?*vo|%vMEZSmf
ziwPdL1nU7}s|Yd0137gDY3Cp^r|x`8=RpnqybE_Nc2CH}8qw8CIEhhqQ6y6%zI)sa
zq}1Rpt+FbvbHubDsvqRQc++x_V%#CEqexgjeIHaYy>45;(@S$-v9&(M@(?AW<3-JX
zgN&YA^c|HpVFGA08Si|T(|l@Vly-{i#jtXk@y%C^IFWyTN$j#I!T9ex#rUA^!($}T
zvq>lcyLJB|Y)gIjw?(O&4%P3P(>?1V!y1Y-F%E8So-=g-1gbB-%!|(q?O9Av&ib=t
zs1t+&a0xBjThsz59Y}Hjn5wN2jxLjb<tUT9<2A=M-DRS`r5<<*x-diXr3mkKLWsDm
zSg28Qv!hg}_7uXq#^(qanP*Bg>}CgRs%`IPNy`OU2MY2ew+2Oi>DuLZshZru?gfij
z+BD*_9qHZ#;H2|C!qNBJM~sbxsJ=JcchX!2_({ey;3x&4JLl)b96t^W7vMF2Etowy
zz+f7q(RA$i&EVVTu{Et`-dwOlN+UB_l;k4DLAY4~z_fs+0BU8uUw+!CpZ1P$7Mm=p
zplAW{lW6?oWP1hs2nUSJuv+kc4s-3WvJHk)Vhx9!aj)<qBn*aE00m3<wmTNOlZGHz
zLZHwN0!|YsGzW%vC!p_y>juhyJw;|?65o9LJ*a5k9D#kG7#2Vx63q=Ddw8*Xlc;d`
zLxTsa!KR6*+CWj^&AYr-=BH?b=R(O#{_!MAJa)%|R^pf#fxnu@Q^kb<n)mkx#@J-Z
z6%3!qn4${f1iCe^;MTmzJn;ccE;SC$IV$J|Nl;M5l^$_}<PsH<&71OndaMAor+wEV
znp-*)ik<UFl9;u9vS1SW@Wfa#Gqoc62>gwmSyLiy^D%QDNJ@wkCUA@;<ev}0(vkHW
zJ@l1Brw^?%X0A12|8joi`?dT+vro?Kb8wKLCL#33>c{ZwWS(AB#e`=L_G2^0vhw8E
z@ccU{K$rlc{;M%EFY#V~D57+HaTD@#%nG=Uk0gezVzBRvlJL|wQjDtRBMF{5L`!hX
z)-&wYFk`pHN$3Emd+9;G_Yg6V4I%^z_*@HE_UOy<Zn~`6iKWP*FE1f;N3ib8%}sBj
z3&mO<fc6x)boDg~j}aqf;3j5}CHCMI3iJDl5!B4y8IFl?(S>z?Owb)hhg+EN+2{mo
zxL)3?=Xdb9=5%Zf%pt~3qE2O*yZ`o+0;09ANm8#$w}oUTwQ|9n-$@XspB%MXz2kXE
zPDvZz^~FC<ip6KWcKfVH7B{Er_}K#d1h>_*Ucaoj>j79U7%UjO*a$wC-C8kLj&tgA
zIR`d>d1F(M!2j`o?Q!7PzGcsxS!C<CP`mIv#R_+MvS4h#f@Z<YZOnPGpxB?J`^e|x
z)`YDhF^G_ry3I!S^lGlnLJ3Cx8=|<_M_67(iffm-MkO6Za5Nw191$HhJA^gA#&AgX
zJ&s&!7%Z11KSsN#xY$+5H?8{dX}v4r8(ujjF?hSoH+)!sr=Y=O3y5*Tw92tXC`E&N
z=(_#(X{%10nu43!@=~OoH{2W<cP7rSQ%L&7<^gZ*tB`KUN|GITsid1d9Ag#Y2TQdt
zv2|afL;M8q{M>g9+k1rG*@@v-E7s5iZ`6N>rDG^~0={?&9%$76ulAN?LMBH(YG^9~
zw#4uT)-uL_#`gJ$G)QO@@hfc{DhRSVFT=OmL^QR92vQq5;o)br5KV0$U=D?4$TS;4
zVik8=Xak|Vfv_EI9<*Gavk>3!%xC9c4eOifR{4Vb=BcCA!KDrg@Ww)^gMz=f1WVBj
zu{+s@HH+=>MKWU|dva>cNua7G4oFy2gApu?<rpb{lzpU`x_<ZM^5{hR{A1S3m_nbi
zS+7<^JJS1icc1Uj&F%Un@od$4^d{Bkpw6-AVj@6a`^Gcq$E7Z_9iTM72mTPj^!K<1
zh0p8mr!Pr18uRt3EX8x}lkm4DJ5zzJ4E$BGrTIHarTnthZeO?O6;En)POsYC?&8Bx
z`J8`$oRmS?NBFu@mCxDB=ZJ8-Pc2>M+Z3ZYU7$g=eu(M^hf(VX9&`x1iBYr|p3Z#l
zu}%`y@?CS{d^3?Zg>Fzp@y^)q7!eI-iY(vb&Mb7od46RA&gL3|8&ZY6xz?{Vpdul!
zIyf_xb9o0mD1CvwZ@WvJT?`XvzTJ2x=Gb$8$xV}1BuO*;&>9%N3Eeahs4!woW}c4*
zj_aD<)B)Y&J7{S5Mq*jq+(lW_V!Gv8DyIf>scOXvu7Vvmq!teX%_bCw*7GiQ-dK~>
zLa!j<0MBmh|A@fLsJJF1Lp>83C>G5Wd}?$_%N2Uy{3R}4nFAo}e`Xf+hC>qxR(<n-
z6mih&%q}NMuDEbb7z<IPyOXxxRg$E|XxBM}liXZ<+42-kn%4z=!b3SzILE|5ynMSl
zpP&eQ`B41AKc1w!eao6+zxd!?!+96mDv(ArL(a7-5#{$wneRXcl-<{z=Ay9<42|+K
zu(-MZME~&kG_%ITstFEOb!vc<S@q3-Hy`2!QX+znNTG=SGow+>HYVmFYMjqM7&tTA
z2YdpEyT-;8nsT5s92Tin09Nea!`OItX8s4rn3>~8_}7hz_wdm8;}6bP7v_(6g?d+v
zs?9$WnmL&f5(=KRq)ioxbKmbuFVedG`svep-fW*Wo9*bxZhUT&e|#g~Ku(5#EkTRt
zlGVZb@V!Pg7r_vM6;4bkCL?@ADRH_#klJE2)fU3XG?pe-dlecSWLCDA5d`yRCGc^Y
zOQq}zQ&tRcpHocb=6g1}=|ml#LeaXu1Z;%<yhgf_XvOBJ3)ZO{X|6TxJ+WfPF0KTI
zF7kLF0AeSDsBosaG29`B=yxA~NrWE*dKhSDs<IWi9w0AcPHeZJ7_?dgC~~SbJRM7P
zK>Gt#xQu7H3#45)H@q{X?eJ9#tiZ66ng&E9qu)G+1Shh=bNgos0%f4O&JWHJE9WU9
z$bcI-7E#~m(WK1>x`mq4`C49xCz{5K4#|t`oDmX@r8t#igC*x*5&IB-I-uCGV?NzZ
z9Cp2*!{nUcELt{n{UqqCi^NIA*ugDi8#am~0=^2#I&T`vOGD&xj#%56H(Z=y+l~*6
zR~?xS#)_|a=4b+a7SL$&E^xJXSAp&dg8<#|`r_p%Nt15AHErvSC}P`ph~5Nr<Mo)d
z#UN_RYGTM>{tUY!YHu}v067|&P|gI(iG_|oxF+6Q1P9(lrRU6Ci|sO``DHH4oR=X5
zShj#pP?lcV{Yt|~O{Q&<=>Yu`oz|0d>P0+ZO1%12v)yQ@T`|ZQ-KwH&h>ak9Bth|Y
zPz`+sEzW!f2#U0pZ#lLX8NbEOKK5$X=MI_02`*@(m}$#xdz^}Y%!N_PGskIOH#P#A
z1OHUfcgXT;_G~<^zLO=*ZjBW6VG+DSo8Y0Yvo86s7=;KnXhK{cp$^YeTw|-gTS#%F
z;eQD-8EIY@#1%JGMC1_tFv9aINf2U%j1b>a#Xp{)r79lCCI9k&{;k#0x}@SrmK5S^
zi{`3mI=6&eL<Z)64U9?jZ3DM~I+(r7#!2(I3|yGBM=*TfwVq~>MUDm5rbjqFYF_uw
z$~XcS!(Ct3;aB=~A6U20o;{jfc#jgO1a`{pAfk;wP|Ydf2x-}A{aR?vN1+S`Xo<8*
zjZFkX9X{HxUDsMBv`k=S?)|rip%g<Kt%4dQHfPZV-b?j={O(Ep>ar*=BeQ=R8<YcT
zOx&c;hj*r`09eaLPbM0?z!=Z~`ZYaNWy?UEXR<uT0DPH)8oIG5_{G5RVA9C)(Tm}s
zg>%EcoTFiQcqV+FBie#*kkYV<UFJ3OWreDh{Q2Q~m<Ah~KyBCnVFm;HbiL;}@@CU1
zAenf-8Ln-A*(0xN;4IF>bgco5o=v6>t0F;W#CQUjXUOJ!4>WexTv4Gh(k55b!8HeK
zFdGx}0yz568o(c4@cq0P-z)(3#sUyJ`5V8Pb7)SXyaZQ;92=27U}T%{7Z*YC9wfy6
z#{SGPf0Fd*CYjJOBkKIKo`rHt=GP^mjy3qx!@)CuM@=bXgcwzZQA<8<Q(E`s{yRIc
zPhK5v??iUWCsD9mML9?$X{`$ma{g)8jig?UX+VHL8u>5Pd4BZ(*IMdPLlN*9$9yto
zm=a*Q^NIdDdZf$iqtkvqV}Z@n7J*xRfmR;yur4a?;}e>qlz>6kbP$JXM3PW<%?roI
zkIeahO$g1-$gj+qJFCFfqr$7sscvrX`**k9PpJ3#s*eKD_~?0fWuzMEVmw@EkA|_+
z0q#m+fGCx7dJQ+Xz0bE_ZlbrK4pkYXf1{ZI06)10q%}4%Cn1fkwp?_0)cmYNor)It
zGkcn`^p`gs@i(W+l1scMEpt}oB`xWe8(M&WElo2v6VtG(q(OQSU>qXbsJVDF=>G0&
zl64qDhg~y+^vp1^Y=<>ahFD_3BL757-Ch4c4XyZ%@kOO^8g#Y975zerUlLak-iSrG
z%a~Z4%3rEYN~_RfoOP<)Jo7(`ya~+gppR(I+=t|kB<cRJlw$b<rba?fKH<5@h_GmX
zDNtVu#(;Bq2W2)B>T|yuBlFTVjX#N_w;%Emm3ghE%vU@{l%T0AWdlIxLEm-e5!{q_
z9cL1tFP&&{@M!>6OQ~@Ynkyw1Nl+x_(+Vn@YM_hp#^_QmPH=ojgQ~+KiqU`f(JfM{
zuaqc2ijjMpSQUFphz<pr;G4~Y@%TA^jDh&;V0vEgZRVkE-3lRHD}>l(;zzP6GF=Q<
zmuiti@|<@2x&bOS7jS`iUxQ_3a@@|kPvwdbkN{)PqQM2~NA*^>n+sDkc5YgkU5<n*
zA!}VLPjc@ZmV_pE_w<Sk)`}K#Z<*YgXBa}o3qHM2D7iDgE^eZSosocow~eiTUwVIF
z%-mZn7ZnO`vLP2S4#L?sm_Y-Uf?*pjdn<GvQ}V!B_xR}ODDWT%n8liX%UjkYoI}Zt
z#@FkY^>&6C{}6MO;49?v%CXI?@w?(Mxcw^LQ0VAkL<Z()tFc$^v{66p&4rC`%LuGn
zC@aA~PGpmPgo%~P%Im-mU)d9X)5vKPa4?_|0JOjgFVM#|!1+Qy7?bIbcqVebBq_RV
zsND92P0Wor@dC52c)QIAfHEhB1*6f#6v13A-iFd7HVOXF;D<njR*7fj0ysZ5dexl2
z3Fp&%D_M5VG%cQ(W=v6qRuoz+i*)K8K!Z!;;GBCjsH-hKnyizna0ZHhb!#*OZNfkl
zfn~kh8lmq-R!}irfUj2~CL?p;7!ZI7e8~85WLz?CJAh6mZ4oo<@<yp3A^*&QSJnf0
z=_`j`FB;Txp>0|pb$;dhg?XjfCujDF!b2r@=j+Gt>m*1eg}0{j#yv?OTcQci95#jW
zMnUi{`_%igJC8S*68D~e?JgxfiQuC{qq+4A07#}F@`YuX3=06e2@05_9e^rP<fbDq
zB}+b{yz2S@I>P3;9e$_+P9dL<6_c@vN+YkCn2IjuG?^7CEt)}oiDq#rRvXO4giy)e
zc~mmjoQ{owIYclK!#yT~CKXyRVJe)rQ=3_^67va}FJ3_lmY{WiLP*+pTz~%YeXoG=
z`l8VCC>QSJRTk^y-N#LwqsRBhfn)oYJ#%Ieg!AOuB~KQN^^dnOEszW8VpWlPEGV|j
zPk5%!1GhTlgCFuhg+f+}%(RCRqx?5Saj}oEeHWDncbRL7@o9?DQDlVoan2FocM?}8
zn5#O3x|=Z^5}4M1k!uYJL@PkHk{_c*IL^&W$v5c@-Y)Zv@&=FLSmSs-cJ~Hu{^<7G
zr>%PFn>Vs{<=~)z)YdsxUkWI9#XOM3Riv06Z6erQx>s9;_-O#`OJp7u&c!FfB0$_v
z@BG|{K`HMMS}!JsU#(a}*pqGf?|=n|f+ygMm*9a${r_rzZyEMjhP(@HC9vXQUX-i6
zm6)$Cj8muDM9eqOZe8ld5kz1jn%Y8uIFjuqS)GerlI%eLr?U`EZ6KhHQL_<iJn}o*
zKq!<!SYaTtEx%pu_~`)Rj#l>7i#9v+$%t3O`ewRSzO=b{aJgn$NT-g#$Qa(hvMwq;
zem&jR-At-~^V2Uv(8_`~?2Tb>L*PP~_Q#(t@y8%h#HNN^OxX=fIhzyu-IL3s6Y2Ah
zSubPNo`qmP0a}aQ&k*pVLAv@J)Hz9j>A#fS-Ep2lKk@~@avF^`%1y2pj|e>fA?)59
zk84o)yzYMbk_5$@&ph&;7pPm;vxec;9RBen{TteUCz01D5l1$EC#jTQw%YA$vQUYz
z2=&-cuiD-2;=_>Z!aq*<hJA#!ZL0D)3!-y`P1>iHF7s`Q(G4!ppjtmf^@GEx^$Uca
zqi8WEG4s7ctwzkcP|J7CiSx}w-V|CEk?{=chlAf?=`aEeSj*=ZZVIC^o?n?-Wc{?k
z4XMI^-dtNnnn{<CR~?*L_MUr6UtsUs?h<Dg!^D|yH=c<V6-mJ2v0!`g!0=7Fx|<PW
zGK0k<gZUb7yv2KH_(oz`<b96ab5S@oxRJjo2#0yWRWPMSDlH(;Y(R!=t%(y5b<3*O
zB<@Vg=0X9p1J*+$@G>f{3CU2;gn)d}Ou?srMwf!oLOC^miHld}08sXynFR$@Xd=O?
zZ=NC!dY#$jB*_&Qt_fr3D0Fwy_7liST8ws`LpaIJ#g{El(WH4@+>ORT8&Wi&&4B6R
z5lwlvNs`vtvZlzN4`he9B<2E;p=?-LGyz+}`3u4rmK6&F4=@z2^4};x?#w|}5W?zz
z3t9u#sV_)hP&UlIl_GZ4Z=N01=P(sCn2CHCQcV0eL@}|C;?l&ic4+U@#F<Sb^*x5J
z@oL$l^=5{r+1gYo|F~o%-q_A8#j(<2Fo+ZA&z4=Aj-6mpFh~8+*>Iwzc~<WoFN!@>
zv<vm3IO=eTvg_+Q{0erng2zJ|me+58YmE)tP51|@Qv;F~Ro{H`A^(*6DlX6J$E|+p
zEf^bIMTfLiz_C5wq`%kU^nf~38;xqVF)<HO<9z<Xz?s=T0C@l*#>Uh$;f^Y>IjC}Q
z7y_{~5?osedHKAUr868RI8fkmQ;|@R4-O9gy8Zg;69qTZB&;h)!oOqlt0CQgt&-#=
z$$s&^g?2@FMI@~&(gA}(oQ{hNbbt4?e~_R{R!Hg|U<#cqT#}6fi!Jvpao&3_<|~NP
zz>QN$?twSP0E%u8Yu=0V8fSf}slC2zULVu7Jo$%zC3>HD_z(+1+-b22Z*&`H*Vih!
zm*R+nBKt>Ast||99P2w2Y%ySe?E7jB{TJ}8qDSSG^bu~WJ1U5*`74#!0BU8tR4DJ3
zc*xZYVAv^n`l@&Ij$y~KY~gySL|VRAXZG0g{J`1_EpK{o5NKl7RtPXb4tg=5zYxM=
z{~e%Nv1MY-hH<w<ZPTs@_V>uf=^?U?MV1pMsjMdGr8n$36W~19cvOpjFu{xIn&`<K
z7&AzB07e~jwfKOG2|PjC?YZj^7E~f$Ysf)8yJ~gomqDUDL0VK^B$=!ksE~si(V3Uc
zUjM8ho5;C!Nf-%UlR1|F7&DtrUDNY^f&W2WHiA|dNtiO?E9BbD&-a_*+E5HgbUvPT
z?UVXdt0;elqg^gR60UuJU=+Ci8}uD=@~l2F&(9Mah^O9l_oRQMRt_6euV%Pp)%{9{
zw(`U=tyT$&F#A9*3~!Hps03$KNpaSIhQ>I-p_G?5SYH5|_aebjRia-r!FhIobR;L?
zT?`~ql)0Jk#vYJQoOg=MZmRFKgtKRRK-Es9&ZRy9mkN<8*#Z84<x|G=e6*h+rf+Py
z=#+mv6^iLqB0KGT;M7ggwAc9@+<==icvHH_YYdG~cMyv}mT&kgq;oFu76Bp?f=o}4
z`kALjrY>yitp>3h>|#vKJ~UCxYmG4Y2LFxLCtw?YrM2v9*cVa&`{d@2CRn7y6Ib`H
z@X?jLy(<|_1(o%Gcti=F9X68nf`lZEZVkBsWz#jyYvSzhE2O$>q_>r=WDb1*+tV{D
zbxr8PYdC2MO&ggpbs3=pP`N71sV|6rSUEtye)@cmZsC7le*XO1E$V(jcm4nU+6Vl&
zt4dZguQ@_Gj#%b}$W~VT0Cc=BIOh;CrorC;x&emW1MXRWJdoWD%#%M#9FpQf$TT9k
zMHBJF+Dy{CE;bc==GAe{IBD)`JEYD0x|p<d_Fm7xWg&BtOiBLkuSz;j-%u~hv^5_S
zsU0F`)=o+)Q)lK+XGw4ucZtON<O;!*1__x+5_H})OS?oDo$$nej&#5abz%49sC(TC
zx*^v}I{!F-NtUpWaM2+Zx@<W>SBgo0W=;+gD$qL^3=~(m3`(fH$+-jt7K_rjH1Pi7
zGW+%2=U+qs^XU5PZSVf(^X)kc1-E_Ltg#IXbyvWNmrJ_L5)(^8zzT-OZPy$CT(C>l
z|Kc+Pr=kh#<~>BX&)YTq8RUor6It6)U9paCIjSpvvo6?<<C6JxvFh5h06+6xDM(sy
zSOUS`aOgPCL|ttEM?p25EY?9mV$<-0rTOOotn?3$Pcv&gT-5D3gDuqX!WiZ161%K(
zk2N&e!+#@LB`>pCjpYJ%++rNK%&!~k1*{(7Tt#YCPDq*m1A$z}h|C{R=#z(!jX%H<
z;+P(P96MFc_HKFz)^wvM=ZyeJJk5MEo`^pKz)T-+e^@?UP=dzet7=iW!?s)aFD81n
zT)@>QWL=CTx-gA4b?l*seOvsLWm~>wjM=;@yC;s^$#vZEWuxBj3UwR@^Cy{(%ipbG
z7g3CqWPV-ju@bZld*r`VLqdLlzPo@i8}jjgz;WCm0rT>rSOi;Pg!s0{f?S?7;eV`=
zE1m(;yk@L%qjhM|gOLu0=ytdZ_=P{axxMe--F82r-sh`6TD?e*(;-W_fZ{JGi|dLd
zgvmizJXRm&^7`nsU+4^E5?ZexUl%8;Q1|v~$-D;!kfz+Er&U;Ip<lj!xks0MbaT~z
zzrDZdbw919Uh#)ZLOoC<Or80i8kMe}p^NDLGd{^LpRaDNZ~9kpQkl8Mh@Cy4b~q+U
zYp=DM4y_ZW7MlE?miV6UOc|yosO7A^V>uEwe&nPe`<q2?Z_y5Cd0lK~Hfjsbk-nu1
zZk7vEkiHlW*W;aR8eE5r6=#|78F9dWFb&jkZ1kBU^|f@vZ4W$t8+=H8XJJ+%-Rntv
za(dM5%>jMxsH?SN0}J;!iJ;lPK$wQkxxjioIM3L8_Ae^&q*b*JR33JCTB{9FbpYna
zK*BisFGWAapCs)GXx?a8bDh_k{j}}3&nkA%P0hn63YBWnk{54MOO(7c3=nI7US;P~
zmbSoH<Q&WHFWIw5&KAj^<#n-r4XG<nDkjiY_dN3=#55`kGeOc2YA^JC7D-Z2@S$*5
zwOUZMf=weVQ;REH4LJ<|X^Vi%zZmui`ou0O?c)==b4D9}bZfrSyLif!7y}m@EgFSG
z`XAiYhX<?m#~)I#K<lX9#05})%>tO-tAp#b`d&nIX8b+J^`T#D0<D@s48xdW`+lKj
ziC!o-UKmSwl;DgZh*79Pa|8YKLBtz}=#TAlM^gryp_ucKR&gX~)73uWnt{75<gl`E
zC5a2RFV#8>EHMmRPwq$)-zJ6bc*@FI50$S6P27h<T9KIX<_Nl^cv$&=OTL43SkKVv
z*T3vG+ec~v-j9uUINFD)VVmPeSbAzqz}ag2k-&S}W5EMQ*Y&I+E9}Y6v`q5If*X#1
zg{kx$$r@iQkyD>4LRPVoCC%U$q$j))0fOE+I;RN|ViTdoi*1_M1m{*vS3bIhQB?i|
zP3jKTX+)vy5UD+$(B7_plQ~N~xJ7bjdEHnEr|WOgAly+Fp?Anp#;s$gkXY)Kvi~!s
z3hTUa4u<%(6*04&ng{p*uzS|G27lJR8RHoYoWU#&-V>PMloG};yGk4-sUf!ZjL!gQ
zGQpu#5v2DOlEi(N;LH+=RY0@2x0ig<M$Cv&4#dV5-~IX)=F?Vx^Rj=O%cQ8(0VF?_
z_3VDUzQaZEwazHJA4wQ_%_(rs-FS;Je93v@__}e@s^`NKu|+irk_u~XGu~sR_oEC?
zh;_zWjci^7Cy8WyKd`??Y*})yxvn4eFHe-?n#@2IA@-1j6X1=QRQa8^+Sqt9$JhrB
z^~A3>dcDiWN%L5L#_hd;58+w>86nu)E8*QUdHV2#x6;7y{=r}TCxUj#Q0zq=5GGC1
zo-WEs6253`044hke*i#~vH4+S`j1qItNi#WFpGTGEjBWLN6bmNe4bgiV@K+H6igC@
zv=1-Hk<C$s(Pfi!i0J}0A0TP0=cpL-L298&sDMLRa3l|Z*|W(Lpb15fR*cBxe~Rk;
z-PiuX((5ZinGWDN4PKx!Jpe=}RY`!V*WFKF`n=Xn;t6lk&l2B%C_$(cxR$azy;H{n
z6fMWrelKW1*7#l87*NzWiv8Y1bGbSc;fFMGEn!9J6m`;)XgZcA{eSkZtT#a*2>+M9
zx2b|xlaf?_qdqk;_7_mtB8h?#jKN>unLU(65k#R&<&9Hkca}N6oufgDFyB8W6=gNe
zk+gD54^|z48z6bM{xa~c)Gf~_ffVucglV6D)zlOzx_Z80MlMG>lxklWCilWRIABWE
zSa!Dz0Shb&2QEpi{E;@g<}SL%U}_~gfxX0)2KI7)<?=SL3`?kZ6J1{I%E}z0matc%
z^FX!u)-Ce!JT6o~r$3U<D=Ut1R~t_h+%H+0K{zL#O*X`ynGPA^J_KDWDN(D@OWbcx
z$`3`XS7A*dHrwcSmeXCaYcDkUaZ5{FVY<C>?V;YlhZj_$=ac4Ej@;S@&K6Nnh{^Es
ziRDm#e#XOHL8YoKhjzD*u_mYGJ=8?YWy?WX-Wu3h4Pr)kvvg>a4o%YWnrN9WFWUT=
z4<E6ZhFgrrx+VUKF)JQfYBa1hmr$*>&x#`j`>f8#^^w?6r4KtJ@{|=7_?+4rv60?r
zsT9=A2{7Vsq;rL=EgXD-Gs6lsZz`0|g~?@q;Yi@o^M+u7<f1ohR!dUffz2xu>MB~k
zO|lu?(=}~$Hi1LFLkpD;MxD-JL?e9p`meAa;x$4|-l`<t^K_V!uAzuymq9Ro!8sgs
znPu~sl`P-+m&`mX$K-KeJtOft{8$4Nr2VPKSnqG(?6eKFmOeQ)Ic2U#`drG7=U!cZ
zLX8R%AO$y^9W*NDKFdEmm*~JRckO)bfhRk#yW4G@<{T~HxYLJYide6mPZNI;y79nu
zy~PqtTxWre75M45ABO(wc+T4{@Vg6Q0uuiI)O)3X!H@4lWa8n}*<$NSAeH@{<wMHE
z?k!lG7Gcj&Ds11HZd}^Z!S%?@4K1J-QtQ%}VDN0*G!Eq3w<CH0uWVPu3yoiszylSx
zLN@{51`3qvL_!A`003!lmn%L28GqYy9LaHp?;YWHVBp#-cAcwXQHnZrTT*B(hbi6o
zZU_v?2>}?yV7OfB>HRkjOHuokLScok2zE|Y*C8tpe`Z$y^4CA!-n{x@e|k6^@7`RP
zUrZOT_IFpu>%-lLHy3~U<N95`c=d4J-Cgf)j(7Vv7hm=d7r*}1zy8ZFKYw37?9XTY
z?BSKVxO=#~y?S%;@qE6&eEs_2>f`=)_wbA3{r*nG_s7%i?yUcwKD@r&o&Nmk{=2K=
z?fve2cz3utoWH!b(-beByE(qO_;k9veD31A+r!oA_;7rG-kMw<-@iXx?Vta7X>s~T
z-uu+DAFn>$?(fczZ+v~)-+yQf$GeA*hx><@-fsV|y=jUcUpo2W?@i)|+nbl)eKynI
z`{na=KOaxmKehNrhPO4iKOL|34-eX)+ncB9-tG=}KXqgL&pP^PsehrRe*N_B*IQR=
zZl=e-zK;Ci=4b6;x1V<L_lI|<-RWtY#Q@tVZm%wX`{C|*+P%9GQ-6In{^D2SsJ|SK
zx34~5-tSLW+9a{#G+n&j2-o}fyH7XgKknYWJs<D&lOJ|^f3nZyk6-RT?(ZJ=@_)po
zFLZCiQ}e5jyVLIKyg$9Y-(6`%+VSpuI^Mke?)vzj$8!@$p0r@kEgt!Ed-W5izJ20#
zwYb~eYQ#@ZpZWLu<A3%3LZnZp!_O9FxTsr$$609Zk8|V~9d$NOhwHtjezSjj{&KTl
zHTbuOzwFE1_3u7CoDVt?k2C)#M)3Crpmo)o|Dcon$1nH$b-z1*(lY%&z3g!()|<oq
z_lMKzc>3+#wfNwlec9`mP29Fqg6{g^<&Xb99?vh^Fiow7T7TE4wb*|4l`>6!juk0p
zT4H00X~8nZmfD%(rc{`cN}dOlKJy5yH;zYby)Vya<8Nl_rgi2uaCWUc0vDV~I5ttj
z;5}iUc@12OGp~V5i{bfrQ@q0w_+WZuN-~{C5KLVM6xXJVy#=={ylx>TyI`9*#c4n>
z&2VqgF5Yl&aet{EDai-VYmkD?yrL<@g~yh{T$tbTv_@XHY;)uJWZUYXw;0;9eE%CB
z&B;3Ew>g=Gdn-0B+*^rez*Qynnb)mOZec#C(;9ee)mYDGp?YI@PpglHccIzddFPrd
zgHzwUTlr+Q&=;n38wO+R!K}QZJy<vBEl!!w>0(^tHGf!aT9~Vr)H=UswKlM<T3xTa
z3#*?7@?iB6Jb1EJzb1T-ESEIn{+P+M89C&U!o3+2I<A{BewvX()FeCHA7j$Od~K|)
zgEpdM<alFa_B>M?>xvS|I3GRF)P)>*rY@8hQ|ViIU|cGL74_3-raq+3>*nLi`qYHU
zv932#fPX8mPH?`X<TD{mtN~55?ZvYFo0&#eS)ZEd^TJ#e#X5L?OiZrfSun{AB!x-V
zF1$a<=77@DBwrivb~dxKbh1pgZm<U8>dtGOU18~OviF(Cmi@Bwy3LbiYtYQr4!Bp8
z0msiac^>sFCgoF7CYShR6*I5QRkDNF5;7&k-hXhdODrr$O?8oN3RC?+#*5+-zo$x&
z^O<Xt8Jw)<4O_&fJ85B@PxmgMyf!^#%lx(&KakgpDHER`Sz?1xFVS`8swMWBrSdw-
z<ih!^&Kcw#J6R*-<k5ZnR#J#Ev%g@cn0ah=O3kA_wX#nVj!l$Ma2KrcIU!$*GP6x?
zC4a^|uA8+}W&2u`W>LC`(lg38QI>$aAj-<SZ8dD>Dp3};o+KyMnb*LXsqoG@>m1L=
z*)$D$vx#NA`tpu<&iPjHlvr;~<~DL0*^`iItK*2A=+nwJtd-Bi^1y~@BabblfsD6t
zGKRTVofSO6HagjMIO^!bfZt+>o@W}vKz~wLQ3hv0y0N1~vRM+2PnNtX_GN5#enbh?
zp;Wf>)FPh}Q7Vr>dTtuD5ySCX&uK2qy=7Vl?<wLD9(6VAfOnel?ElEB3argU8S!ZI
zEizZN5ZQCJEhNj_+oBopb&GZ|Q+Z$!b-nHK>v?S5XZEIS4|On~9(v>b>0vEshkw{E
z^MIvTj{~GcZCc^g>9MmdW)~rF%m?eFMZgohiVt{ftE@qu&l+RK_qa)l31y<2LR$xv
zm?zvH34hO6fHN)(dNcCt@yt2tQ->=m%E}z#<g)OYliBT=51h5VpyYGbw}w(ol*J<V
zN||NW&Q2I4V-B)|isRm#ixX;1=YPUvP$G$98}E<oZi{-sd11Fa0vVkPa+UK!%y@Nt
zlv_>QD+jq)ri5VGrV!Mc_%v#5THxNITvz5D`G5nC7yQO@)MZoI7IRsaBCmCpzc8T0
z$Qr|C;e0&mS@;{u12@~q_>P->Ve82iQ`jqT#dgc1E&{N5w~Nd3fD#&e)qk$UnY}3|
zbdoWAS7RFNTyqQK%1$-_BebqtUs=9&TRB$Xx=uY>4swg~V5ZB|*@ARS@}5VqPV$ZL
z{H!Lm5oIx`7u@Ow_JI?w&B&=+)5O+>m&)S#_{j;3rcwJT3=n5Ua^&k_8{?(ZnIa1X
zC7%MLg{?GiQ)N8SJG(Gf34d{r;K30%Us$?$KN*((-rGK-B==rkHNVFv&pxdWVIU8D
zoCX%YF!wd!*_OCoI*%>7XwY&H(rLnoGF#rcG?g}>n1wxlzxfON9$_Agy8A46a?mD}
z6=juxv^?OdoRa0<X0r}X$!t5vnY`qlL3>9$l~~jIBJIqhF3B+F?SD(kjEm{`=9PE5
zY8Uu4Hft=OIYomRTlZb|C|Vmj*@1mczr{<KLzWG#!P6+2%-Fi5wPK!wHUqTC%SKxr
zwpmT(*py#oqA-Vu!j|{erlZyA*Jv}#15r3W7p6&m4vkt?VqvZlrLz4NCfO9Ya|#vc
zobY>sAhQ9bCY))IUVq?7ahN1tcm#_5M_ipCuYlK0BQxwT1R-;S_XsRv%OTic7d*j1
z=uYEZ5X8kXiJ;Vo!5TQ58NmonzBpRzK~6?Rjt?%b0r@((l-M`ZA?+E@T#ygS*pou?
z1B_Ud!v3~GMvX0@5R7HLElM8joKUuomQWDHRhg@zNsLaaiGLh!<m(s)cvaA5vmY!<
zcg(%X7514zie|7n*~{$2v1MgIFei#KSkZZ^9N!MJq(85l5HpUBsf}k(FU)eYP@9E0
zC}xB6DauFUT`2PBSRxgZBad4C4`be;C@RnUQ#N0M$L7sIT9(u}E)%NFoIN8POCUbJ
zrzQo2k<z3~cz@kmC<7_hwFb;P-Pyv@rH9B!Nl?s)ZP>5`!;v9TD#ta0bTHdHqRg3f
ziL^84)r8fqY$t}*WsbRqRe%UezBo;eW8!i0v7+2jLexADdP{4@wT@;=9EB65^SVVP
zI<OTWiqf@+cSITZ=uy5IW6_dFkt0K*l!V+H1+BB56MsVN8Bg3Oo!3qN9NXk^gAMW2
zM`39km6wy#IX7>M+bz7O!8n$dG1&f+;QMX#G6r86Cyz3SIbNc$Oqo!li_+P5j>5$z
zv`1r<vgg%NrUmCgMkN$BUIXPu4AxrE2A|WIgyNvA(sQ9G$fH@<Epx9dBt{LRWIuZ>
zq6iVe_kYZSPI;|oIpVycbC}q|kF#_z>MZSO<0z@nQOmxWD3vXTSezN~s50i*<`V!p
zS_A1U&hL#IGRLw?*@0~L#wt^lce{#xdADoGY$rx}p@~P(gxN8NDAR&7OQZ4z+1riM
zrxU-YPxC;=casK^uPctuGwo5Z6mnvhP0qZtNPp3y-j2!+<oHiiG?;D6xW>vpQ<`jG
zD@~Nl{+uvFIR-Qz1^8tKFhvpp=d%IzjFWF^T$~k_wAXx2laZi6i#VBBIJY%f*&ApL
zCLx`JH4ue4Bq^J`q3ji<uuU$?!Z~Ki*~*z$qIA|w$tezqr%{y5=t|Ni@M#ofWz0JX
z1%GARGI=L68u>s-4WE)E-I#di<mqvQFbTQ!c!K3jDccZ75S3HH`xD(f;5RwDgY%;*
z9*$!qZ7NI4l!OYQy_1r{fIPM=qYo|Ol>Gp0O*u$f;TmKi7<?M%N%{8JW)_ITYduR=
zq1H@_>@rTiQ3j`8-XZ%KX_j_mt}0?|-hb^9nnS6alsP}(>pCfPhig#X%=#zQ&;}e|
zlT1?Vt@+CSk22XBThXHQfkf()W!y4#dFi~T%8gi9UiTQ;Ki#Z1)-q{vi6d%B-XYgk
zh%(TcX;J1C>iVR(*+3?)CUZu+`s(bxO93~|u1%|uKIXSIS>}VRXgymSS(=vXa(`s@
z29`T{iVItvS(%e;L5h+&10ru)6D4dmVNl&6N@H|Ct3Hb}=S7LEnX-+I@lmBkM~=N`
z=|+y0XXP5Q9WP2{TRAIjf+P9a%lp9H&I*AIMxfv!BhJ|?PZec|z`RmWD(4Nv$J3aD
zD)>f}x}xmO$~EM(uu&K}&2f@-Nq@3R3S&*YIto^>U!SEf7{8V~w{TQmLAcBwauyEE
zmV+oOTTeM#EjG?4+jZhy$Zn8Jkh3DigEn5di~Js`64cvyRz(%>=`5I!*IIR)96!zS
z0SDZxoFmTa&qb9Ds5M1dxw<0@kKwpxuFkO^EJ`h?gL50%ND^U@t?1lhGk-j4;V}b_
z@6j`=tMK5$2vc5s;z}A(2HB{234*qf50=eGW=b-QhvZfH8O&9x_G0TPuW^v!wNV&d
znWxEcrN%rN$I<0^3YBL%3ozqI@httrHmm{<hO6Xe<&`ovD3d00E!-@BpLMV(!oO%2
zW}$psb2mHr&S<UAN&{gzI)5vk#Ws>CzHx8CH1;TGh3?qjp0`w8JPWhD9M0nsrL$)=
z3u<JJpOZXfv|;C*RJVjHDhkVMwJD5~i_#eR5oKj*Im=^-C}Bkz<m$?Zj~y-IdET<~
za6XD>vGt@jjlGXqs39Xi^BhO3Gb;^}$5wRcRver1p*VkZE^*?Br++A_@8I5qhojt4
zo5qpIxlRhEU~j@E+1{Dkq}9eYZ7S@`%*}L;?ar#BVLxl5u#Gee0UU6AOP%xMXQ3{P
z)X#l{zs+5l8>s8&o(56USy|(pIWjN0(S&<j{4!W;;aH8=T6M@PbNs3j*pB<N3a40@
zk_K_JqPP%e0~O82qkq;clP&C{>nLcdG=d^Wg7rdCSu;n9MbSkI*qgDLGawX@?wnVn
z1TU3xVsF+Ij@PSHB=VjrRIQ>E>`i)(WqeVxJNwQ>(J_{9f>0{^=*3$lRNx3CCpcD6
z1O&76FCi?9rHQh#&m<wH`T-n)f^Cc|7o`MqY^uajHc$~1%zqU~CAo#|9hF8E#_$y)
zl`Vv$PH}*BmOLec+N@+jD0qTPR{k5mC+nUP=ER&T-w9J>ZdlYmMLx!0Pm3Q^Br2gX
za}>K&KXZ0^sXE&z-$V&3dSIn#<9Kyi8dM6FuH<91$we8UQW8gE1>DnRbYp?oBM;Vk
z!;u>Hwn{IcM1QK2QOJhch%&H|RBD_!nk32`2fcY!squSM`#+$lZi;(TE&*G_RW)UN
z>Z>Yt*psMsq)$be+20nWaps6FjZj_~&U7n5;+e|FVML}1U}7sx6s2?Hd;FBx1CwzO
z0`i+Ei6yxxnXOw<))`MpRR!!|x5G4u2g|UVS!3v!4u2}u6%KA(TTz8d4R}YAoPD#J
zl)TR?s>>nR%c;5>h^?BMWg;>63LNBfT9tob&~~Y+<zbywl~2yK|5f)%aE!7(I-AHl
zbBqBsMx6zwq1LRrn_*_IDyA{wT#L_)w$_s5nBdr?9663rb!!mYRiaeJk!sbYPCTEc
z*axqHGJj6lm#K=EFdDH@IKQfP-R!~gK$42Fr>e>z&Z?}7X@gTQ3xB}zi|UCCuJt02
zn8&t+!ZAvL<b5EkmbkF(Qdg}GYUjGDzJyPs;x$|+(WXfk<IsGxrMfhZDaxbjOwqMP
zOtE%m8L!mMTJS7LP&Lk}S1ESmY{zD!@@sKyPJdSk@O+%|<5BK37iHREZ<79l)$zXZ
z$x^biiqyEbFt{P3DfO5=qozy`w(Odc+}KB5T~}1o&k{~Rnu<~bNR^^NDGCUoi_)cq
z-g}2Y5TqEw4^SW!sfN(eP^H%Zp-B@26hWk8C;}o%?;u?6eYpQ~?>^1Tesj*AnVmT^
z-|TwB1*rP+G>O?01N16Ei!k?s5b1U8B{7Z^S7L9ZllK#!#9CpgM{Zac8O1b=y;yLx
zC&zlgD^Xaezmvfjtf}-_j%+qELeevHu@jaIh-~T$((d1Cc(r(isA-2()K7tTr1KGz
zMrxg;+Di55TwOe?j9%R+06d(LQ8E2Q*_CDq6)x6SbOrbA3%@LNHjGHj-s(+S7{eNN
z=0Ua@(<+U!d(@E@h5eJA+DG;r<DMm%3sY?b*M_50p%CX+ZzZpsC?Yh_Dx5R<EU*)x
z>7%$kddk=-<N9+0M`|_U`s~T&lt4tVs7~(7FAI~9f=##IDcgF;6=FB|$&y!@-9W{(
zMyOo2D*W<^7~U^_X_vNS{s=1IagTe&L={4;=`_vt$L`jsO}1u}YhLicBtHiXZ^1u8
zE0hxF9%tgI3Ow`1Mw5Ik=}9T>^NBzyF)_D8%b=KYkB}^d4Z9fFzJXb~AY^_%pxG-M
zw8&Y7FsWVq^Q>W4sygn+98c#TF?uNBACc0i(=z0Slq%u*;<gND`N(PAfM=riGAQaF
zQ>`SHq+OVLI@eTQYYZt6_(eH2|M|h}L2q8_aBp&plvHv32v*{5Z!K|M2zcf?iFkdH
z!xYQ}D#REgY1K@$vb@`VKWb;?gE)nD?XOb?4Y!_j9vN9py8O=FS5b$Uui?u)DRx!H
zqc&-bTXOykw-qagIxXNiH0m%X?#3Sk>!khP8@YG1Y1v>m!?$gdJ}+>jtBA-P5c;GX
zTTFWPG+lVwteI?A?l55Ofwd5%7h@#CuZW>P&`Jjmt5svV4{2A6mhT&nrF*ELh`;K^
zVEQAhx^C2{<<;NZ9>EffaYokMU=S34Rj##1uq||3`}ODa0y4o%q4U3}VVq@qsdZ5<
zcEdeOac`;lO%GoS5sPB~G^m)_W!){X*S5M6nrB?itcEM7qdJOy0>okAWSq9lX>+KT
zAhBC@#b=l#Za5`oS@qpup4m6vVit&-dAzj<QU2xdm`Vd*^_dydn?=;UR9@(--a?So
zqLrRyq!TvWOn<)-Zxr!P&Om7|3uyJMq8dm{rF^y#TP6Cr(1I9_z7nq;kax{doyEGR
zl#iw}h&|SihEFUOkmDmHL8_@&q=kqBh)u2~uF7I3$dX!(KwaN=dmCq?<ewP)6QM2n
zwfyHAGYC#kL6o@%obsum+oWc2r=%*_ZdCD3)w|!-Wkk&k1OUIxXNE6}lc-Q-OAdr6
zo57})al)&{Vp$2n;_+LRL`>>k29w!38B>p0=zZ2O{Vw202ukso<^KExKh$)4RsUUQ
z6Iba@$->-sdxtCf@qy0GCOuzcbnLu|<l&0~rR%p>Vgju!<_{yqt->T4_u$Uo=B{Cl
z1nje#pfRKO;>{1@eQpiP3_^@Q9z7H-BZ_C%N~xGpo{0B$o9@b#MqYPXC_ym`_j^P`
zD14EH0#M-7D?uV_7|8%z5hpof{^z}{<+Ir3hx&cu3vzu%Joi!3_^V=tDr__GM$L1i
zFai1^c)$orze0>1kq&S67vHp0F@wdl!W$zUu=E3cS<n~L&PMq~nafCBEb5eBZBO`Z
zxuKN}9kF#r;c(BU2-i*+5^E)*kMj+tXWL{s0sqQ2k^)WPbd$FzDf`UwdVuI|01C~3
zI3IuAko&!ruKi>^dK1~)++?;lTf)+r_x3p|2p!nCadMC_`#rc_7JWE%@g$zkp&{wZ
z@vJTyK^mXRJzMlU^*i4s3>D4({koEBZGBsNcZM{-etOdNXJ98vcjJ3o9r3G6>sib$
zu)2PHT``Mr%?7Z_8N#`sY1g-EjoL}G=)j|rk+bz?#n#!7l1lN}tnXenannG1bNl#8
z({4%t_h4phW>-{#OD)>{SJ}DM+JH~OdC)<J!q?w?+UL`*3Fnhm2=T9#x#trho4Z9J
zd#AnQF6&F_C&yYO71VL|`LR%o+!Y%jw+H8P{B(BZ2|COZAWF~tHRA@ME{e5hXMw)H
zr!DPgp9Z?5SQJsab=23n0}fDs*7mc-tH-ytx56a<Y;}}!iySEaigi6%>oVj1(X41m
zS`V2~NZfbSQ8+(#K3F<jJ^kd}kVD`m0Xw_j_SRbrc6!T?3#$n_Hv1?3LenA#;}zHJ
zdoP&JB=ld;sdjnV)8$QMNOL<W+ka(I!yx3ec(Pq_|8$Q%to_&q{GUcbk})`zn?_9`
zjd>jm0{v<b@CS>4flJdGaSvW}DkVLhX01xjVsm$5EKm=3jBB(Z6&MXXoi^~xK)VJ=
z$c8r`=(wPEmCR}f2Q-pgT=NmHCq;IOj@Q0v=R`oY`05@s4qj*7mOVRSENgxCGp{po
zn3^&5NJO>4R;Z8DpI58cvv|au6s`W2BsNXZTxi95b7u6F0QfZV-~`tjo)t6q?rq!_
z+26{0%zl@#ebbVggML}hVWke!2k^^0ADNf{v)AZNL;cESe$-9|t730P)=${a2~=^t
zkKLo~*(qtE7^AA1q7ilEXFEbX$ToVf%67PrWvs89oCcVTOxsSU$#eDeja;%_gz$t(
zLP;$#RMsGNAZk;a&E6NSeZ<9}C`zzyw3;)L)|H52mDG2&Ok!wZmf@-LCF9b|zgro>
zJ64qtE8p*mhK!05eX%Z;ytX6W=^GIyoysHk>-Re7Jy`H7^)Wfl2IUC}$Qj8G?iqFY
z)?~O>f|I^)It65>-rScX>>{=l9S81D@<rwR!hEK-ye4~=L9EGUTz)t}rOa@CRkwn0
z@KF|!Xwi!II>#?~Exy$97xXF=-yWW%%;WX!6Pfs8rOP)&6Ufuks)Jg!s_j`G-SNK3
zw$^n1EJ!+=X_q70uRn<;5{NmcOz9wJqCjNWP8c?*27$%FfZIwWErROKPEXjJ@|G}v
zL-|Dh&FHm#Qs$ZIAHA0?Kh{yXC*K7ox1ptTpbx3_{csL?rqG3Y=r<9y%1oocShBS=
zhO!doA3rZagk#rA<2?F3$cGBYY%OUdH~F0e$EBxaiv&NUZYYVd2SsduL?HNm&)oe@
z#m_$ahcZ5b0H)y%;nI;7w#90^Hxe(#o&GwNT;qX7Ugn3o_;B<bs;#|OKXFmQr9+)o
zb*6?SCbDZNHd6AAT?gP3656AKGVI@hIMTST=xnjwyD2N5hbp&VOO$D)+FN~Z`ZxK%
zh*a8-mH*9Y5WqBleRIU=T|jxw=|n*#D}U#zE?=9rl#&tYit-$KB&5W58R36kW%ic$
zrq7KJ-MO?HtJ<10N3K>@qYZ5*p&TuLpJ=J8FW*c@B)_~B`(%Ml&o5r|Tyu-|-zN(6
ztr5!MWFXKO6$r!t0)Ya&pE`;<dwcmA+Sz+Li3B1%Td>1kQ}<XSHg5mn<R#%?H$A`)
z3_00H^4(aNQJ_Uwx4Wkr;c@@;Mnkq9f4^qoJ03k)bwZZzisFo73r1#29MPC8t$B-8
zMN8iZ*)%Y`@#)w(lGh<xNWGkY02mHq+pRi1U2U^?t!d8K5#k03UoNg8m~~gbWoGQw
zGVJ1?5yC>cJ9S%QDTap-zK^l4m?aBqUlhh5&KvHXSLp+H`Y3o(=z2G;E(9nuqm9?h
zh>>zeu2uM~y%xDq4i%@&F&pjBr4vbz)bMxahkffW9?_YzTR`F`%sTdgODA{XdFo$!
z60!|5JUwj31=!5@=kQ)Pqd`7h6yn38V=B6ubgL{9%6GaLOlxmHi$`AGu#oGqK~m;2
zRfsXk-ZrO4q{)kPD~UwU?b+$oAMCBMd$~RMiNZI@noc+zUh}GRj`iK;bjVVu7>7bN
z;*H<Te5%Pe(T5oZenL3`&kcE$koPtgar_-rOq;6#N4_6!K5|hu&R@3pB${Z7B8yk2
z<d{QUqWS9M(0NSHk9@Al`$8?yk`rsfK%Uv2n1;eTs8fTKL=ur^)al4cR<#9^n2!#b
zi+AECO(_3gU51ixS#DCdSzKqpFQoO<(F!&2Cb|+^^EUdp<n}7SzB^b;(Oy9^KRmiE
zbp9?=1p8GJ=E*+2thgvc|2zwVw1lUY&+ekUEsXO}PoQ#fJ4F57KHsyyji;W1qUv?w
z?O=-f<(Q=w4bC^xZ+t?7W8;1%R7<BzbFKc)SIbTe4Ngr_YLXL&1y#x)KYB2rcwu7a
z=j0&0C*+ryK$M`AA#%zFwGgm0^<^K{M|f{hFi3O}7ZVBAB|m_Had0Ux1Xqs%({cRM
zGX{a^FF^iTV~RMgD6sqm85(C51(qd`a{=RcoWblkLKK+p&VNG$IS54e&!!6r7XSu1
zdOPSn^+x)N+98p+Y7Cf(<3BgdMMw#}@QMG`)BGIAg8}n#{J+Qi1FDL~*<ip5WW4|`
W7XyAsRuYDr$AI}MWuh(sLH`0dVWmF+

-- 
GitLab