From ac604b12c0c60c0e82ad3a9ff74bb5c60968e490 Mon Sep 17 00:00:00 2001 From: debianpepper Date: Tue, 21 May 2024 17:29:00 +0900 Subject: [PATCH] Updated: Plymouth Signed-off-by: debianpepper --- iso_configs/plymouth/lines/background.png | Bin 7232 -> 11847 bytes iso_configs/plymouth/lines/debian.png | Bin 12205 -> 0 bytes iso_configs/plymouth/lines/debian_logo.png | Bin 0 -> 13604 bytes iso_configs/plymouth/lines/debian_logo16.png | Bin 0 -> 13603 bytes iso_configs/plymouth/lines/electron.png | Bin 4621 -> 0 bytes iso_configs/plymouth/lines/joy.plymouth | 8 + .../lines/{lines.script => joy.script} | 577 +++++++++--------- iso_configs/plymouth/lines/lines.plymouth | 8 - iso_configs/plymouth/lines/logo.png | Bin 60091 -> 0 bytes iso_configs/plymouth/lines/password_dot.png | Bin 269 -> 269 bytes iso_configs/plymouth/lines/password_dot16.png | Bin 285 -> 285 bytes iso_configs/plymouth/lines/password_field.png | Bin 1131 -> 1131 bytes .../plymouth/lines/password_field16.png | Bin 230 -> 230 bytes .../plymouth/lines/progress_dot_off.png | Bin 0 -> 229 bytes .../plymouth/lines/progress_dot_off16.png | Bin 0 -> 4238 bytes .../plymouth/lines/progress_dot_on.png | Bin 0 -> 269 bytes .../plymouth/lines/progress_dot_on16.png | Bin 0 -> 269 bytes 17 files changed, 281 insertions(+), 312 deletions(-) mode change 100644 => 100755 iso_configs/plymouth/lines/background.png delete mode 100644 iso_configs/plymouth/lines/debian.png create mode 100755 iso_configs/plymouth/lines/debian_logo.png create mode 100755 iso_configs/plymouth/lines/debian_logo16.png delete mode 100644 iso_configs/plymouth/lines/electron.png create mode 100755 iso_configs/plymouth/lines/joy.plymouth rename iso_configs/plymouth/lines/{lines.script => joy.script} (72%) mode change 100644 => 100755 delete mode 100644 iso_configs/plymouth/lines/lines.plymouth delete mode 100644 iso_configs/plymouth/lines/logo.png mode change 100644 => 100755 iso_configs/plymouth/lines/password_dot.png mode change 100644 => 100755 iso_configs/plymouth/lines/password_dot16.png mode change 100644 => 100755 iso_configs/plymouth/lines/password_field.png mode change 100644 => 100755 iso_configs/plymouth/lines/password_field16.png create mode 100755 iso_configs/plymouth/lines/progress_dot_off.png create mode 100755 iso_configs/plymouth/lines/progress_dot_off16.png create mode 100755 iso_configs/plymouth/lines/progress_dot_on.png create mode 100755 iso_configs/plymouth/lines/progress_dot_on16.png diff --git a/iso_configs/plymouth/lines/background.png b/iso_configs/plymouth/lines/background.png old mode 100644 new mode 100755 index 140a449918da4c887cbbda6afa65b11536b09b66..fb65a67d51eb6919fd831579fa7726b02a79cc65 GIT binary patch literal 11847 zcmeHLe^3Udvnwl8*c5m;FyIt-KKaL-#93e;mn@(hJ_ua92cYC>8 zxP#FsLEC@{83RAe|40xrVXu1om8#FYTxehbCQ`1 zGj*naEDZDBe&6@|dEf8neZSw`M`LkO{&d{}9ROguv%paTz?4h?5;iAIL6SSJ|Ga^Q z-n!BXxrB>g!I0z;eGrptgAjvJ(E~vAyubLu^lt2XcfC!`ee)_mOm*Sa4b5vBUTSsN z8^7XqCG2h<_*>z@xNPSuZ~weZH~&rNoO0uS{)uxV>Y2N!+VV%gn6pf#%zy9dfua*sjH#Wbp zvtxeW>_+b|xbr;=dp_Isepl@;tskvuU$MT(7Wi~>;}3rO&f$N*6g~y(y?LJ$*1c+7 zu`KyWMZdd@HeY`9@{V8kx01rs`$HEm?|*9T{tZvu`ylwtn$>@0KjD7(?h6kW%y|8^ zpVCVY&3x;rCC9RN-kQDmUg{Zg+sf4Phh9vXwlBNk>R{LXzDP$I7kZ;@P7$b|*L!FF zb}t7H{e5Y5LP|x1*7LM>;m1JpA?7ackQ` zdziDg`cdjdMU-L{u0ocV{CZB1+)y9&2T|?;V0%0oBH(DA@6G zvx{;Cb6}NNP#1!$>WWJFx^+Aw;EylY*`h20@I#ryqJCc>%tr0Fip!$8A|`Q6Rgu@( z@d{TlmLr8AX40GV6p4_o5M8-hSjcDzcKgDgo#A`yMWsFy-s(!ekb zNzo)t6G(#y*9K%RN(91b3PcRU0mFPq49cPuz!Xf*Emg~Q97pTeuz&ub%QXTY2oJG< z_#mTPkTmEi((fn7T7>1?8U!-r(6?HIOHrkgB`_>ihj^G<0|Ro}SO|e1u@6>rNwJTUJ;=b07m9)E=;%VJ=!dIhPGQqvF{INL#!OLGv%yH4N0rK8 zD2y^u!8A~Mqe)#+j)g_RAYwTsPZ5ABN3pOuA;`&6s8o`Cc3g1@Q!Gc8U8tM{PUak( z3=t?rn^?-s(uPulg*8}NntF_4SZa*EB#55c@6uL^2eZYFyg&@2{cBZGtfE%IXJb#X zN1v#c5{9Wo!E$^ogfLeF1=UZ46~a~BjO6Br^*%fhB9NrYekSGRQ6_L(L2ILUN=T4snM3eULvxXYnAnz%Xr-3Gu7Z zrO`DZ1}3DeWtT?Rgcz8RvX)){GrDx6*C`l4UqKOcS;~FclYuT;Q`{@_9pJw5``XdB zT99OFuwZoCo*wjPHaWRAuMFAdUa3KJ+i5g>b{X+_84u!S6=PHQi$YCgF%{=yQ)%)&yE z7;e5goiN#$Ii;lqqAUmb1;WMEUBxv&)_X2=?O{Lux1#)g;defPSE|b*Wgj;z3qO-$ zqqfX=b1~qA62<%&9oDgj>kID7NrtZ}Gjv#`LzcAw}~nd~}}Oj>t?7GcbLm`KV*n z%PIOxV#6%+3$J;FUfZKypQy2Vy-xAmX9ABRjtHrA1O&JWs)h(G4OKttH0fKi+&{jKA_4AI!QP zT`a$x-=S-l*Bu7-_5&XCHeI*9clYYO+xydJ{r$@jv!-ZX3)7?*z%tiFY)wsWq-~r$|JydS-0JVfkDd8)5S5Q;?|pkjEq194HN#Yf5!oe=}|Bm z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?8UmvsFd71*Auy~%py772GiYds!SR3m?n7+D z+OMOY8x4Wc5Eu=C(GVC7fzc2c4S~@RpdmdKI;Vst0Ee35 AssI20 diff --git a/iso_configs/plymouth/lines/debian.png b/iso_configs/plymouth/lines/debian.png deleted file mode 100644 index 3a8f6cceb1c60033a0f0bd28d48a29d02eb421cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12205 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 literal 0 HcmV?d00001 diff --git a/iso_configs/plymouth/lines/electron.png b/iso_configs/plymouth/lines/electron.png deleted file mode 100644 index 5590b5eca991359d86f552f92fe86eea2ccab95b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4621 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 diff --git a/iso_configs/plymouth/lines/joy.plymouth b/iso_configs/plymouth/lines/joy.plymouth new file mode 100755 index 00000000..02501fe0 --- /dev/null +++ b/iso_configs/plymouth/lines/joy.plymouth @@ -0,0 +1,8 @@ +[Plymouth Theme] +Name=Joy, the default Debian 7.0 (Wheezy) theme +Description=A theme that features a blank background with a logo. +ModuleName=script + +[script] +ImageDir=/usr/share/plymouth/themes/joy +ScriptFile=/usr/share/plymouth/themes/joy/joy.script diff --git a/iso_configs/plymouth/lines/lines.script b/iso_configs/plymouth/lines/joy.script old mode 100644 new mode 100755 similarity index 72% rename from iso_configs/plymouth/lines/lines.script rename to iso_configs/plymouth/lines/joy.script index bc8837b3..94533268 --- a/iso_configs/plymouth/lines/lines.script +++ b/iso_configs/plymouth/lines/joy.script @@ -1,8 +1,8 @@ -# lines.script - boot splash using script plugin +# ubuntu-logo.script - boot splash plugin # # Copyright (C) 2009 Canonical Ltd. -# Copyright © 2010-2014 Aurélien Couderc -# Copyright © 2014 Juliette Taka +# Copyright © 2010 Aurélien Couderc +# Copyright © 2012 Jonathan Carter # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -17,29 +17,15 @@ # You should have received a copy of the GNU General Public License along # with this program; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - # # Written by: Alberto Milone # # Based on the example provided with the "script plugin" written by: # Charlie Brej -# +# - -#------------------------------- Constants ----------------------------------------- -ELECTRONS_DISPLAYED = 3; -SECS_BETWEEN_ANIMS = 2.5; - -#------------------------------- Globals ------------------------------------------- -# are we currently prompting for a password? -prompt_active = 0; - -anim_iter = 0; -anim_status = "stopped"; - - -#------------------------------- Background ---------------------------------------- bg_image = Image("background.png"); + # Compute screen/image ratio and scale the background accordingly window_max_width = Window.GetX() * 2 + Window.GetWidth(); window_max_height = Window.GetY() * 2 + Window.GetHeight(); @@ -58,101 +44,17 @@ bg_sprite.SetPosition(Window.GetX() + Window.GetWidth() / 2 - scaled_bg_image.Ge Window.GetY() + Window.GetHeight() / 2 - scaled_bg_image.GetHeight() / 2, -10000); -#------------------------------- Logo ---------------------------------------------- -logo_image = Image("logo.png"); -logo_height = Math.Min(Window.GetWidth(), Window.GetHeight()) * 0.7; -logo_scale_factor = logo_height / logo_image.GetHeight(); -logo_image = logo_image.Scale(logo_image.GetWidth() * logo_scale_factor, - logo_image.GetHeight() * logo_scale_factor); -logo_sprite = Sprite(logo_image); -logo_to_top_edge = Window.GetHeight() * 0; -logo_right_shift = logo_image.GetWidth() * 0.092; -logo_sprite.SetPosition(Window.GetX() + Window.GetWidth() / 2 - logo_image.GetWidth() / 2 + logo_right_shift, - Window.GetY() + logo_to_top_edge, - -100); - -#------------------------------- Debian ---------------------------------------------- -debian_image = Image("debian.png"); -debian_width = logo_image.GetWidth(); -debian_scale_factor = debian_width / debian_image.GetWidth() * 0.24; -if (debian_scale_factor < 1) { - debian_image = debian_image.Scale(debian_image.GetWidth() * debian_scale_factor, - debian_image.GetHeight() * debian_scale_factor); -} -debian_sprite = Sprite(debian_image); -debian_to_bottom_edge = Window.GetHeight() * 0.10; -debian_sprite.SetPosition(Window.GetX() + Window.GetWidth() / 2 - debian_image.GetWidth() / 2, - Window.GetY() + Window.GetHeight() - debian_to_bottom_edge - debian_image.GetHeight(), - -90); -#------------------------------- Electrons -------------------------------------------- - -electron_image = Image("electron.png"); -electron_image = electron_image.Scale( - electron_image.GetWidth() * 0.06 * logo_scale_factor, - electron_image.GetHeight() * 0.06 * logo_scale_factor); - - -#main center coords -ellipses[0].x = logo_sprite.GetX() + logo_image.GetWidth() * 0.4245; -ellipses[0].y = logo_sprite.GetY() + logo_image.GetHeight() * 0.611; -#main small / large axis -ellipses[0].height = logo_image.GetHeight() * 0.3303; -ellipses[0].width = logo_image.GetWidth() * 0.295; -#main animation parameters -ellipses[0].anim.start_iter = 0; -ellipses[0].anim.stop_iter = 150; -ellipses[0].anim.start_angle = Math.Pi; -ellipses[0].anim.arc = 2*Math.Pi; -ellipses[0].anim.rotat_dir = -1; - -#left center coords -ellipses[1].x = logo_sprite.GetX() + logo_image.GetWidth() * 0.3825; -ellipses[1].y = logo_sprite.GetY() + logo_image.GetHeight() * 0.411; -#left small / large axis -ellipses[1].height = logo_image.GetHeight() * 0.1645; -ellipses[1].width = logo_image.GetWidth() * 0.2248; -#left animation parameters -ellipses[1].anim.start_iter = 50; -ellipses[1].anim.stop_iter = 130; -ellipses[1].anim.start_angle = 0; -ellipses[1].anim.arc = 2*Math.Pi; -ellipses[1].anim.rotat_dir = 1; - -#right center coords -ellipses[2].x = logo_sprite.GetX() + logo_image.GetWidth() * 0.7065; -ellipses[2].y = logo_sprite.GetY() + logo_image.GetHeight() * 0.460; -#right small / large axis -ellipses[2].height = logo_image.GetHeight() * 0.2343; -ellipses[2].width = logo_image.GetWidth() * 0.2945; -#right animation parameters -ellipses[2].anim.start_iter = 20; -ellipses[2].anim.stop_iter = 100; -ellipses[2].anim.start_angle = 0; -ellipses[2].anim.arc = 2*Math.Pi; -ellipses[2].anim.rotat_dir = 1; - -# Define 5 sprites for each electron to create gradient along the ellipses -for (i = 0; i < ELECTRONS_DISPLAYED; i++) { - anim = ellipses[i].anim; - anim.angle_incr = anim.arc / (anim.stop_iter - anim.start_iter) * anim.rotat_dir; - for (j = 0; j < 5; j++) { - electron_sprite[i][j] = Sprite(electron_image); - electron_sprite[i][j].SetOpacity(0); - electron_sprite[i][j].base_opacity = 1-(0.2*j); - electron_sprite[i][j].angle_diff = -(anim.rotat_dir*j*0.01); - } -} # Set the text colour in (rgb / 256) -text_colour.red = 1.0; -text_colour.green = 1.0; -text_colour.blue = 1.0; +text_colour.red = 0.0; +text_colour.green = 0.0; +text_colour.blue = 0.0; # Tinted text #988592 -tinted_text_colour.red = 1.0; -tinted_text_colour.green = 1.0; -tinted_text_colour.blue = 1.0; +tinted_text_colour.red = 0.0; +tinted_text_colour.green = 0.0; +tinted_text_colour.blue = 0.0; # Action Text - #ffffff - RGB 255 255 255 action_text_colour.red = 1.0; @@ -162,9 +64,10 @@ action_text_colour.blue = 1.0; # Orange - #ff4012 - RGB 255 64 18 debugsprite = Sprite(); debugsprite_bottom = Sprite(); -debugsprite_bottom.SetPosition(0, (Window.GetHeight (0) - 20), 1); debugsprite_medium = Sprite(); -debugsprite_medium.SetPosition(0, (Window.GetHeight (0) - 100), 1); + +# are we currently prompting for a password? +prompt_active = 0; # General purpose function to create text fun WriteText (text, colour) { @@ -172,31 +75,33 @@ fun WriteText (text, colour) { return image; } -fun ImageFromText (text) { +fun ImageToText (text) { image = WriteText (text, text_colour); return image; } -fun ImageFromTintedText (text) { +fun ImageToTintedText (text) { image = WriteText (text, tinted_text_colour); return image; } -fun ImageFromActionText (text) { +fun ImageToActionText (text) { image = WriteText (text, action_text_colour); return image; } fun Debug(text) { - debugsprite.SetImage(ImageFromText (text)); + debugsprite.SetImage(ImageToText (text)); } fun DebugBottom(text) { - debugsprite_bottom.SetImage(ImageFromText (text)); + debugsprite_bottom.SetImage(ImageToText (text)); + debugsprite_bottom.SetPosition(0, (Window.GetHeight (0) - 20), 1); } fun DebugMedium(text) { - debugsprite_medium.SetImage(ImageFromText (text)); + debugsprite_medium.SetImage(ImageToText (text)); + debugsprite_medium.SetPosition(0, (Window.GetHeight (0) - 60), 1); } fun TextYOffset() { @@ -205,8 +110,7 @@ fun TextYOffset() { local.min_height; # Put the 1st line below the logo + some spacing - y = logo_sprite.GetY() + logo_image.GetHeight(); - #Debug("y = " + y); + y = logo.y + logo.height + (progress_indicator.bullet_height * 7 ); # + logo_spacing; text_height = first_line_height * 7.5; @@ -214,10 +118,8 @@ fun TextYOffset() { if (y + text_height > min_height) y = min_height - text_height; - # Ensure we don’t bump into the Debian image. - # The approx height of the 3 text lines + password input is 140 px. - y = Math.Min(y, debian_sprite.GetY() - 140); - + if (y < progress_indicator.y + progress_indicator.height) + return progress_indicator.y + progress_indicator.height; return y; } @@ -234,7 +136,7 @@ fun StringString(string, substring) { } start++; } - + return NULL; } @@ -249,7 +151,7 @@ fun StringCopy (source, beginning, end) { for (index = beginning; ( ( (end == NULL) || (index <= end) ) && (String(source).CharAt(index)) ); index++) { local.destination += String(source).CharAt(index); } - + return local.destination; } @@ -279,40 +181,65 @@ fun StringToInteger (str) { } #----------------------------------------------------------------------------- -# Top background colour -# #489291 --> 0.282, 0.572, 0.569 +# Previous background colour +# #300a24 --> 0.19, 0.04, 0.14 # New background colour -# #0a3649 --> 0.039, 0.212, 0.286 +# #2c001e --> 0.16, 0.00, 0.12 # -Window.SetBackgroundTopColor (0.282, 0.572, 0.569); # Nice colour on top of the screen fading to -Window.SetBackgroundBottomColor (0.039, 0.212, 0.286); # an equally nice colour on the bottom +Window.SetBackgroundTopColor (0.39, 0.43, 0.51); # Nice colour on top of the screen fading to +Window.SetBackgroundBottomColor (0.39, 0.43, 0.51); # an equally nice colour on the bottom bits_per_pixel = Window.GetBitsPerPixel (); -# TODO need to handle 16 colors ? -#if (bits_per_pixel == 4) { -# logo_filename = "debian_logo16.png"; -# progress_dot_off_filename = "progress_dot_off16.png"; -# progress_dot_on_filename = "progress_dot_on16.png"; -# password_dot_filename = "password_dot.png"; -# password_field_filename = "password_field16.png"; -#} else { -# logo_filename = "debian_logo.png"; -# progress_dot_off_filename = "progress_dot_off.png"; -# progress_dot_on_filename = "progress_dot_on.png"; +if (bits_per_pixel == 4) { + logo_filename = "debian_logo16.png"; + progress_dot_off_filename = "progress_dot_off16.png"; + progress_dot_on_filename = "progress_dot_on16.png"; + password_dot_filename = "password_dot.png"; + password_field_filename = "password_field16.png"; +} else { + logo_filename = "debian_logo.png"; + progress_dot_off_filename = "progress_dot_off.png"; + progress_dot_on_filename = "progress_dot_on.png"; password_dot_filename = "password_dot.png"; password_field_filename = "password_field.png"; -#} +} -message_notification[0].image = ImageFromTintedText (""); -message_notification[1].image = ImageFromTintedText (""); -fsck_notification.image = ImageFromActionText (""); +logo.image = Image (logo_filename); +logo.sprite = Sprite (); +logo.sprite.SetImage (logo.image); +logo.width = logo.image.GetWidth (); +logo.height = logo.image.GetHeight (); +logo.x = Window.GetX () + Window.GetWidth () / 2 - logo.width / 2; +logo.y = Window.GetY () + Window.GetHeight () / 2 - logo.height; +logo.z = 1000; +logo.sprite.SetX (logo.x); +logo.sprite.SetY (logo.y); +logo.sprite.SetZ (logo.z); +logo.sprite.SetOpacity (1); + +# Spacing below the logo - in pixels +logo_spacing = logo.height * 4; + +message_notification[0].image = ImageToTintedText (""); +message_notification[1].image = ImageToTintedText (""); +fsck_notification.image = ImageToActionText (""); status = "normal"; +progress_indicator.bullet_off = Image (progress_dot_off_filename); +progress_indicator.bullet_on = Image (progress_dot_on_filename); +progress_indicator.bullet_width = progress_indicator.bullet_off.GetWidth (); +progress_indicator.bullet_height = progress_indicator.bullet_off.GetHeight (); +progress_indicator.bullet_hspacing = progress_indicator.bullet_width * 1.1; +progress_indicator.width = progress_indicator.bullet_width * 5; +progress_indicator.height = progress_indicator.bullet_height; +progress_indicator.y = logo.y + logo.height + (logo.height / 4); +progress_indicator.x = Window.GetX () + Window.GetWidth () / 2 - progress_indicator.width / 2; # logo.x + 26; + # use a fixed string with ascending and descending stems to calibrate the # bounding box for the first message, so the messages below don't move up # and down according to *their* height. -first_line_height = ImageFromTintedText ("AfpqtM").GetHeight(); +first_line_height = ImageToTintedText ("AfpqtM").GetHeight(); # if the user has a 640x480 or 800x600 display, we can't quite fit everything # (including passphrase prompts) with the target spacing, so scoot the text up @@ -323,25 +250,135 @@ top_of_the_text = TextYOffset(); # Call this when updating the screen fun draw_logo () { -# logo.sprite.SetX (logo.x); -# logo.sprite.SetY (logo.y); -# logo.sprite.SetZ (logo.z); -# logo.sprite.SetOpacity (1); -# logo_sprite.SetOpacity (1); + logo.sprite.SetX (logo.x); + logo.sprite.SetY (logo.y); + logo.sprite.SetZ (logo.z); + logo.sprite.SetOpacity (1); } #-----------------------------------------Progress Indicator-------------------------- +fun set_progress_indicator () { + + + # Here we assume that we can store half bullets on each half of the screen + # together with some spacing + local.x = progress_indicator.x; + + for (index = 0; index <= 4; index++) { + # Set the "off" bullets + progress_indicator.bullets_off[index].sprite = Sprite (progress_indicator.bullet_off); + progress_indicator.bullets_off[index].sprite.SetPosition (local.x, progress_indicator.y, 1000); + progress_indicator.bullets_off[index].x = local.x; + progress_indicator.bullets_off[index].y = progress_indicator.y; + progress_indicator.bullets_off[index].sprite.SetOpacity (1); + + #local.debug_medium_string = "Progress indicator " + index + ": x = " + progress_indicator.bullets_off[index].x + + # ", y = " + progress_indicator.bullets_off[index].y + ", logo width = " + logo.width + + # ", logo height = " + logo.height + " " + screen_width + " " + screen_height; + # + #(index % 2) && DebugMedium (local.debug_medium_string) || DebugBottom (local.debug_medium_string); + + # Set the "on" bullets on top of the "off" bullets and make them transparent + progress_indicator.bullets_on[index].sprite = Sprite (progress_indicator.bullet_on); + progress_indicator.bullets_on[index].x = progress_indicator.bullets_off[index].x; + progress_indicator.bullets_on[index].y = progress_indicator.bullets_off[index].y; + progress_indicator.bullets_on[index].sprite.SetPosition (progress_indicator.bullets_on[index].x, progress_indicator.bullets_on[index].y, 10000); + + progress_indicator.bullets_on[index].sprite.SetOpacity (0); + + local.x += progress_indicator.bullet_hspacing; + } + #local.debug_string = "Progress indicator: x1 = " + progress_indicator.x + ", x2 = " + local.x + ", y = " + progress_indicator.y + + # ", x logo = " + logo.x + ", y logo = " + logo.y + ", indicator width = " + progress_indicator.width; + #Debug(progress_indicator.bullets_off[0].x); +} + + +# We have 2 bullets, one on top of the other: +# The white one is on top of the red one and the former should +# slowly fade so as to get a nice transition effect. +fun switch_on_bullet (bullets_off, bullets_on, bullet_number, opacity) { + local.x = bullets_on[bullet_number].x; + local.y = bullets_on[bullet_number].y; + local.z = bullets_on[bullet_number].z; + + # Hide the bullets which are off + bullets_off[bullet_number].sprite.SetOpacity (0); + + # Show the bullets which are on + bullets_on[bullet_number].sprite.SetPosition (local.x, local.y, local.z); + bullets_on[bullet_number].sprite.SetOpacity (opacity); + + # Bump the number of times we have switched on bullets + global.times_bullets_switched++; +} + +fun switch_off_bullets () { + # Debug("Switching off progress indicator"); + + set_progress_indicator (); + global.times_bullets_switched = 0; + global.on_off = 1; +} + +# This is something that we can call when we exit +fun switch_on_bullets () { + # Debug("Switching off progress indicator"); + if (!global.progress_indicator.bullets_on) set_progress_indicator (); + local = global.progress_indicator; + + for (index = 0; bullets_on[index]; index++) { + switch_on_bullet (bullets_off, bullets_on, index, 1.0); + } +} + + # Implement in boot progress callback -fun animate_progress_indicator (time, progress) { - # Start electrons animation at launch and every 3 seconds - if (global.progress_time == NULL || (time - global.progress_time) >= SECS_BETWEEN_ANIMS) { - global.progress_time = time; - global.anim_status = "start"; +fun animate_progress_indicator (progress, time) { + if (global.progress_time == NULL) { + global.progress_time = progress; #time; + switch_off_bullets (); } - #Debug ("global progress time =" + global.progress_time + " global anim status = " + global.anim_status + " progress = " + progress + ", time = " + time); +# Debug ("progress = " + progress + ", time = " + time + " times switched = " + global.times_bullets_switched + " on_off " + global.on_off); +# if (global.times_bullets_switched == NULL) +# global.times_bullets_switched = 5; + +# if (global.on_off == NULL) +# global.on_off = 0; + + if ((progress - global.progress_time) >= 1.0) { + global.progress_time = progress; + + if (global.times_bullets_switched == 5) { + # Change which bullets are switched on + # and which ones are switched off + global.on_off = !global.on_off; + global.times_bullets_switched = 0; + } + + if (global.on_off) { + switch_on_bullet (progress_indicator.bullets_off, progress_indicator.bullets_on, + global.times_bullets_switched, 1.0); + } + else { + switch_on_bullet (progress_indicator.bullets_on, progress_indicator.bullets_off, + global.times_bullets_switched, 1.0); + } + } + + + # Start setting bullets to "on" with translucency +# for (index = 0; index <= 5; index++) { +# opacity = 0.0; +# while (opacity <= 1.0) { +# switch_on_bullet (progress_indicator.bullets_off, progress_indicator.bullets_on, +# index, opacity); +# opacity += 0.1; +# } +# } } @@ -352,16 +389,16 @@ fun animate_progress_indicator (time, progress) { # message_label array # fun get_message_label (label, is_fake, is_action_line) { - #Debug("Get Label position"); + # Debug("Get Label position"); local.message_label; - + if (is_fake) # Create a fake label so as to get the y coordinate of # a standard-length label. - local.message_image = ImageFromTintedText ("This is a fake message"); + local.message_image = ImageToTintedText ("This is a fake message"); else - local.message_image = (is_action_line) && ImageFromActionText (label) || ImageFromTintedText (label); - + local.message_image = (is_action_line) && ImageToActionText (label) || ImageToTintedText (label); + message_label.width = message_image.GetWidth (); message_label.height = message_image.GetHeight (); @@ -376,13 +413,13 @@ fun get_message_label (label, is_fake, is_action_line) { message_label.y = local.fsck_label.y + (first_line_height * 2); } - #Debug("action label x = " + message_label.x + " y = " + message_label.y ); + # Debug("action label x = " + message_label.x + " y = " + message_label.y ); # message_debug = "msg_x = " + message_label.x + " msg_y = " + message_label.y + # "msg_width = " + message_label.width + " msg_height = " + # message_label.height + " message = " + label; # Debug(message_debug); - + return message_label; } @@ -391,28 +428,28 @@ fun get_message_label (label, is_fake, is_action_line) { fun get_fsck_label (label, is_fake) { # Debug("Get Label position"); local.fsck_label = global.progress_label; - + if (is_fake) - fsck_label.image = ImageFromTintedText ("This is a fake message"); + fsck_label.image = ImageToTintedText ("This is a fake message"); else - fsck_label.image = ImageFromTintedText (label); - + fsck_label.image = ImageToTintedText (label); + fsck_label.width = fsck_label.image.GetWidth (); fsck_label.height = fsck_label.image.GetHeight (); - + # Centre the label horizontally fsck_label.x = Window.GetX () + Window.GetWidth () / 2 - fsck_label.width / 2; - + local.first_label = get_message_label (label, 1, 0); - + # Place the label below the 1st message line fsck_label.y = local.first_label.y + local.first_label.height + (local.first_label.height / 2); - + # message_debug = "msg_x = " + fsck_label.x + " msg_y = " + fsck_label.y + # "msg_width = " + fsck_label.width + " msg_height = " + # fsck_label.height + " message = " + label; # Debug(message_debug); - + return fsck_label; } @@ -424,14 +461,14 @@ fun get_fsck_label (label, is_fake) { # NOTE: this is called when doing something like 'plymouth message "hello world"' # fun setup_message (message_text, x, y, z, index) { - #DebugMedium("Message setup: " + message_text); - global.message_notification[index].image = (index) && ImageFromActionText (message_text) || ImageFromTintedText (message_text); + # Debug("Message setup"); + global.message_notification[index].image = (index) && ImageToActionText (message_text) || ImageToTintedText (message_text); # Set up the text message, if any message_notification[index].x = x; message_notification[index].y = y; message_notification[index].z = z; - + message_notification[index].sprite = Sprite (); message_notification[index].sprite.SetImage (message_notification[index].image); message_notification[index].sprite.SetX (message_notification[index].x); @@ -458,12 +495,12 @@ fun message_callback (message) # Debug("Message callback"); is_fake = 0; if (!message || (message == "")) is_fake = 1; - + local.substring = "keys:"; - + # Look for the "keys:" prefix local.keys = StringString(message, local.substring); - + local.is_action_line = (keys != NULL); #Debug("keys " + local.keys + " substring length = " + StringLength(local.substring)); @@ -480,7 +517,7 @@ fun message_callback (message) local.label.is_fake = is_fake; label = get_message_label(message, is_fake, is_action_line); label.z = 10000; - + setup_message (message, label.x, label.y, label.z, is_action_line); if (prompt_active && local.is_action_line) hide_message (is_action_line); @@ -494,36 +531,36 @@ fun message_callback (message) # fun password_dialogue_setup (message_label) { - #Debug("Password dialog setup"); - + # Debug("Password dialog setup"); + local.entry; local.bullet_image; - + bullet_image = Image (password_dot_filename); entry.image = Image (password_field_filename); - + # Hide the normal labels prompt_active = 1; if (message_notification[1].sprite) hide_message (1); - + # Set the prompt label label = get_message_label(message_label, 0, 1); label.z = 10000; - + setup_message (message_label, label.x, label.y, label.z, 2); show_message (2); # Set up the text entry which contains the bullets entry.sprite = Sprite (); entry.sprite.SetImage (entry.image); - + # Centre the box horizontally entry.x = Window.GetX () + Window.GetWidth () / 2 - entry.image.GetWidth () / 2; # Put the entry below the second label. entry.y = message_notification[2].y + label.height; - #DebugMedium("entry x = " + entry.x + ", y = " + entry.y); + #Debug ("entry x = " + entry.x + ", y = " + entry.y); entry.z = 10000; entry.sprite.SetX (entry.x); entry.sprite.SetY (entry.y); @@ -533,7 +570,7 @@ fun password_dialogue_setup (message_label) { } fun password_dialogue_opacity (opacity) { - #Debug("Setting password dialog opacity to " + opacity); + # Debug("Password dialog opacity"); global.password_dialogue.opacity = opacity; local = global.password_dialogue; @@ -541,7 +578,7 @@ fun password_dialogue_opacity (opacity) { # entry.sprite.SetOpacity (0.3); entry.sprite.SetOpacity (opacity); label.sprite.SetOpacity (opacity); - + if (bullets) { for (index = 0; bullets[index]; index++) { bullets[index].sprite.SetOpacity (opacity); @@ -553,8 +590,8 @@ fun password_dialogue_opacity (opacity) { # The callback function is called when the display should display a password dialogue. # First arg is prompt string, the second is the number of bullets. fun display_password_callback (prompt, bullets) { - #Debug("Password dialog setup"); - + # Debug("Password dialog setup"); + global.status = "password"; if (!global.password_dialogue) password_dialogue_setup(prompt); password_dialogue_opacity (1); @@ -564,7 +601,7 @@ fun display_password_callback (prompt, bullets) { password_dialogue.bullet_image.GetHeight () / 2; margin = bullet_width; spaces = Math.Int( (password_dialogue.entry.image.GetWidth () - (margin * 2)) / (bullet_width / 2 ) ); - #DebugMedium ("spaces = " + spaces + ", bullets = " + bullets); + #Debug ("spaces = " + spaces + ", bullets = " + bullets); bullets_area.width = margin + spaces * (bullet_width / 2); bullets_area.x = Window.GetX () + Window.GetWidth () / 2 - bullets_area.width / 2; #DebugBottom ("pwd_entry x = " + password_dialogue.entry.x + ", bullets_area.x = " + bullets_area.x + ", bullets_area.width = " + bullets_area.width); @@ -640,7 +677,7 @@ fun clear_fsck_count () { fun set_progress_label_opacity (opacity) { # the label progress_label.sprite.SetOpacity (opacity); - + # Make the slot available again when hiding the bar # So that another bar can take its place if (opacity == 0) { @@ -679,17 +716,17 @@ fun update_progress_label (progress) { # This happens when only counter.total has changed. if (progress != NULL) { progress_label.progress = progress; - + #Debug("device " + progress_label.device + " progress " + progress); - + # If progress >= 100% hide the label and make it available again if (progress >= 100) { set_progress_label_opacity (0); - + # See if we any other fsck check is complete # and, if so, hide the progress bars and the labels on_fsck_completed (); - + return 0; } } @@ -706,7 +743,7 @@ fun update_progress_label (progress) { #progress_label.progress = progress; progress_label.sprite = Sprite (progress_label.image); - + # Set up the bar progress_label.sprite.SetPosition(progress_label.x, progress_label.y, 1); @@ -750,18 +787,18 @@ fun add_fsck_to_queue (device, progress) { continue; } local.index = i; - + # Set device and progress global.fsck_queue[local.index].device = device; global.fsck_queue[local.index].progress = progress; - + # Increase the queue counter global.fsck_queue.counter++; - + # Update the max index of the array for iterations if (local.index > global.fsck_queue.biggest_item) global.fsck_queue.biggest_item = local.index; - + #DebugMedium ("Adding " + device + " at " + local.index); } @@ -780,7 +817,7 @@ fun is_progress_label_available () { fun on_queued_fsck_completed () { if (!is_queue_empty ()) return; - + # Hide the extra label, if any #if (progress_bar.extra_label.sprite) # progress_bar.extra_label.sprite.SetOpacity(0); @@ -794,7 +831,7 @@ fun remove_fsck_from_queue (index) { # Decrease the queue counter global.fsck_queue.counter--; - + # See if there are other processes in the queue # if not, clear the extra_label on_queued_fsck_completed (); @@ -806,14 +843,14 @@ fun on_fsck_completed () { if (!is_progress_label_available ()) return; - + if (!is_queue_empty ()) return; - + # Hide the progress label if (progress_label.sprite) progress_label.sprite.SetOpacity (0); - + # Clear the queue clear_queue (); @@ -829,10 +866,10 @@ fun update_progress_in_queue (index, device, progress) { on_queued_fsck_completed (); return; } - + global.fsck_queue[index].device = device; global.fsck_queue[index].progress = progress; - + } # TODO: Move it to some function @@ -861,7 +898,7 @@ fun fsck_check (device, progress, status_string) { return; } - + if (device_has_progress_label (device)) { # Update the progress of the existing label update_progress_label (progress); @@ -872,11 +909,11 @@ fun fsck_check (device, progress, status_string) { # See if the progress_label is available if (progress_label.is_available) { - + # local.my_string = "available index " + local.available_index + " progress_bar counter is " + progress_bar.counter; # Debug(local.my_string); - - + + # If the fsck check for the device was in the queue, then # remove it from the queue if (local.queue_device_index >= 0) { @@ -886,18 +923,18 @@ fun fsck_check (device, progress, status_string) { # Increase the fsck counter increase_fsck_count (); } - + # local.my_string += local.message; #Debug("setting new label for device " + device + " progress " + progress); # Set up a new label for the check init_progress_label (device, status_string); update_progress_label (progress); - + } # If the progress_label is not available else { - + # If the fsck check for the device is already in the queue # just update its progress in the queue if (local.queue_device_index >= 0) { @@ -914,10 +951,10 @@ fun fsck_check (device, progress, status_string) { refresh_progress_label (); } - + } } - + # if (!is_queue_empty ()) { # DebugBottom("Extra label for "+ device); #} @@ -944,10 +981,10 @@ fun fsck_check (device, progress, status_string) { fun update_status_callback (status) { # Debug(status); if (!status) return; - + string_it = 0; update_strings[string_it] = ""; - + for (i=0; (String(status).CharAt(i) != ""); i++) { local.temp_char = String(status).CharAt(i); if (temp_char != ":") @@ -955,21 +992,21 @@ fun update_status_callback (status) { else update_strings[++string_it] = ""; } - + # my_string = update_strings[0] + " " + update_strings[1] + " " + update_strings[2]; # Debug(my_string); # Let's assume that we're dealing with these strings fsck:sda1:40 if ((string_it >= 2) && (update_strings[0] == "fsck")) { - + device = update_strings[1]; progress = update_strings[2]; status_string[0] = update_strings[3]; # "Checking disk %1$d of %2$d (%3$d %% complete)" if (!status_string[0]) status_string[0] = "Checking disk %1$d of %2$d (%3$d %% complete)"; - + if ((device != "") && (progress != "")) { progress = StringToInteger (progress); - + # Make sure that the fsck_queue is initialised if (!global.fsck_queue) init_queue (); @@ -980,11 +1017,11 @@ fun update_status_callback (status) { # if (!global.progress_bar.extra_label.sprite) # create_extra_fsck_label (); - + # Keep track of the fsck check fsck_check (device, progress, status_string); } - + } # systemd-fsckd pass fsckd::: @@ -1020,7 +1057,6 @@ Plymouth.SetUpdateStatusFunction (update_status_callback); # #Plymouth.SetDisplayQuestionFunction (display_question_callback); - #-----------------------------------------Refresh stuff -------------------------------- # # Calling Plymouth.SetRefreshFunction with a function will set that function to be @@ -1031,80 +1067,10 @@ Plymouth.SetUpdateStatusFunction (update_status_callback); # fun refresh_callback () { - if (global.anim_status == "start") { - anim_iter = 0; - for (i = 0; i < ELECTRONS_DISPLAYED; i++) { - ellipses[i].anim.angle = ellipses[i].anim.start_angle; - } - global.anim_status = "running"; - } - - if (global.anim_status == "running") { - anim_done = 1; - for (i = 0; i < ELECTRONS_DISPLAYED; i++) { - if (anim_iter >= ellipses[i].anim.start_iter && anim_iter < ellipses[i].anim.stop_iter) { - draw_electron(i); - - ellipses[i].anim.angle += ellipses[i].anim.angle_incr; - # check if at least one of the animations needs more loops - if (ellipses[i].anim.stop_iter > anim_iter) { - anim_done = 0; - } - } - } - if (anim_done) { - global.anim_status = "stopped"; - } - anim_iter++; - # DebugBottom ("anim iter = " + anim_iter); - } + draw_logo (); } Plymouth.SetRefreshFunction (refresh_callback); -# Acceleration function to have the electrons move faster in there most visible section, in -# the middle of the ellipses. -# -# The function computes the result based on the .anim.angle member value in the given ellipse -# -# The angle is adapted so that accel([start_angle,start_angle+arc])->[start_angle,start_angle+arc] -# is traveled in a sin([0,Pi/2])->[0,1] manner instead of linear increments -# -fun compute_angle_with_accel(ellipse) { - # first map the [start_angle,start_angle+arc] to [0,Pi/2] - angle_in_0_pi_2 = Math.Pi / 2 / ellipse.anim.arc * (ellipse.anim.angle - ellipse.anim.start_angle); - # then compute sin and scale output to [start_angle,start_angle+arc] - accel_angle = ellipse.anim.arc * Math.Sin(angle_in_0_pi_2) + ellipse.anim.start_angle; - return accel_angle; -} - -# Computes the opacity factor so that the electrons visibility somehow matches that of the ellipses: -# Most visible in a middle part, and invisible at the opposite. -fun compute_opacity(ellipse) { - # map the [start_angle,start_angle+arc] to [0,Pi] - transformed_angle = Math.Pi / ellipse.anim.arc * (ellipse.anim.angle - ellipse.anim.start_angle); - # and compute Math.Sin^2 - opacity_factor = Math.Sin(Math.Max(transformed_angle,-transformed_angle)); - opacity_factor *= opacity_factor; - return opacity_factor; -} - -# Draw the 5 electron sprites to create a gradient effect -# -# The position is computed based on the .angle field, adapted with the acceleration function above. -# -fun draw_electron(index) { - base_electron_x = ellipses[index].x - electron_image.GetWidth() / 2; - base_electron_y = ellipses[index].y - electron_image.GetHeight() / 2; - accel_angle = compute_angle_with_accel(ellipses[index]); - opacity_factor = compute_opacity(ellipses[index]); - for (j = 0; j < 5; j++) { - electron_x = base_electron_x + ellipses[index].width * Math.Cos(accel_angle + electron_sprite[index][j].angle_diff); - electron_y = base_electron_y + ellipses[index].height * Math.Sin(accel_angle + electron_sprite[index][j].angle_diff); - electron_sprite[index][j].SetOpacity(opacity_factor * electron_sprite[index][j].base_opacity); - electron_sprite[index][j].SetPosition(electron_x , electron_y, -10); - } -} - #-----------------------------------------Display Normal stuff ----------------------- # @@ -1118,11 +1084,10 @@ fun display_normal_callback () if (message_notification[2].sprite) hide_message(2); prompt_active = 0; } - - if (message_notification[1].sprite) { - show_message (1); - } - + + if (message_notification[1].sprite) show_message (1); + + } Plymouth.SetDisplayNormalFunction (display_normal_callback); @@ -1130,8 +1095,12 @@ Plymouth.SetDisplayNormalFunction (display_normal_callback); #----------------------------------------- Quit -------------------------------- +# TODO: Maybe we should also hide any other dialog +# Show the logo and make the progress indicator look full when on exit fun quit_callback () { + logo.sprite.SetOpacity (1); + switch_on_bullets (); } Plymouth.SetQuitFunction(quit_callback); diff --git a/iso_configs/plymouth/lines/lines.plymouth b/iso_configs/plymouth/lines/lines.plymouth deleted file mode 100644 index b573d7b9..00000000 --- a/iso_configs/plymouth/lines/lines.plymouth +++ /dev/null @@ -1,8 +0,0 @@ -[Plymouth Theme] -Name=Default theme for Debian 8.0 Jessie -Description=A theme that features a white Debian logo on a blue-green background surrounded by thin curves -ModuleName=script - -[script] -ImageDir=/usr/share/plymouth/themes/lines -ScriptFile=/usr/share/plymouth/themes/lines/lines.script diff --git a/iso_configs/plymouth/lines/logo.png b/iso_configs/plymouth/lines/logo.png deleted file mode 100644 index 71f21e6ff1fade14c1b213599d2e001f255da021..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60091 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�vbwjhoQ`F#zR z=P0uo78E;0pkj1QMhEourqDadgdBR9 z4lHLxL@}sAyvbO5k{(T+Cj@WLIfg6ssNX`3Ddd~e2Y2InWG$j}`G@k1Ypz|V$4gcm z74P_K=Fh@rKOL>H!D3jhyt2YsQN`B0Q~)q^g`%eG&y~w(6u>uwX`??>?u^aq>@j@C zG1jzHM9XKA^L4$0M;o^gY;*4Fi0cod$C%)jlYswXK6TbL(L}ep{S3rKk`?Ug%m({o!5BWXwSA7$Xwxu-UJoM?XMx;3O}R%!w3X>_1W5&7_CY8EfUJGfW){P zax6E>x)SDaGjSJ285L_KB{n6-#wDvJVQD*^iJLSm7BqnkbU%A2Nw>UbjXX%$L(_*| zMO6$v`j%*@oDD$wIv*9_6U|NiTKcP?PAUO(95Ra*8s+CbVur-L@Zre19J1~ksZ!dS zGahE5iMo;5mF!LsN*LTL?V}P3#>?Q1_T@k=UPE_gsP9_?Rr|^txe`D)4Y=rj-LH>u zUyJH=@Q6n;ZPN~#0nzZ&317D-Pqd2MgFO-74laYQ`&eBBSFfcx2kE$lwaLO%;B}>C zu}IYjaLCbof}Lk{NVxRY!=*)_!lPxaTo=-%Be93F*lcZZ_qp)LLeqv4m*hg4za<|# zf?VK8rB{quVOEO3pI@NG@QdY$l4Uj6wLa|aP}4$H;gjZd>ek3xe^rgfDwv3|ecE$% zi&kjtrAqMAW$7lnFU*Lj2vbFji9bDA9jQznpd^i>OAEd>FiS=DKUu1laMp$Ga&#hN z)!~tfk4E)bv^=ow;2(!U-j88Mlo10tZhux-t%2?}Ima;)qEHv1!f4F=^-zeiUQLcS zPV!kW%;?TX?4D_7GkQjor5POw25b7lBBRZeufED008lf5;d851^|1o7F8GnKXA~ya zl9dT5FSTbq992S{uTi#EY9>Pssg$$F!hMX?FU}m`Hi<@OrM$5)wbT1*+Ug{^;!pcE zwV@|flXQ%o`Fk}-@XSJfYE&y!SX!KYV4pNiK;|0`u zNs?&pNgd2>s04R=5iu2_B8-feKBLCy`ynmc@XsZ|!Iw?MNOo_?Dd1EW>!Grs{86Gz z#x%eQpfxcqJVaq*2)~SbtC44>J(~S2`rLdXlbqbjAX#PtY0J&lMyMMIXhMP^OV5*@_VB%6np8L@3X4apf+zLw+6qoit$jWieZ7%N7HG18JhwJ$Cw_tJ6u zA%#a7Pl+Z{&Ev0HJV|}n%`3-=)FwwVs|!LkE6$J_Xv^nT!n%sAFXB$PkWnHT3-_6o z7o>K=q;bElt{5+(D4V%*Sthsoh?o&EJcd&5hBJ$DA{0EX7ltK(vT(7SJF7tJJv%Zv zsCjPRgQLJLQYiYp4?~Hl@*^n&@6w^j_x{LT!;a1faSph`bG+(hwN*7T^1-v6pu43h zYFkSZ3+fhayflXGXD?remw1E9p-pTOEiK%S=OGC8VTI~mFcpp`@udoS^0n<`J!fsg zKGAetvQ_Erhar?H`M&)a0kv@!dgh7Yurg_+GgzWThQ5fM1bhlb=O`vslH%C9M|`q7 zdipG*X7zBD>f(DqWafD+oBY#lS40%c7%y0FCG- zXi4*+A-8nDQ3cC`s8bj@e?U>nA9-}X95gtNzJ_n5BwY zlxIYnOz$LTru&wPKnw<2!>i*YxhXii#O}m>d#K57BDrl0bsOcd&TshB>v@T4uN`E6 zwQfQ5#6mI1OZ+#FFhabIdSAy7~l;Olh*wz{3DNtQwTF>Modak~=4cj%)&O>gR!-GYu7o2UoTQxM0^p3nm& zZkS~=-}-`uNLJOY68JbD7BNOpb0`>T)5Xiq+xCmm@7mc}6|$yth=`5b(eSKP)eool z>j}QFuYaprIP2@kK0U8;@N6CdEC?$8eAS`HfyVDLO;SMLJK`AX)Ou0Rp`ErU~+wai_?c ztAn+rfzbgcABL%r zv@a(nCUtttm!(-6AuSRA75WE-5nQ}_y6}xYx%%!~BHH^&uAbGOFy2k4qm1tE^xGn? zjO7FD&f51}Za#zqVOtOWHyIMidfNoYxO~0v0HD)&{eEi=3Q+d=s&c7a?vnvys|?c^ z_!F~$Q*bzITuqW(S_Udw9ScC;8%A z!?X1yzpxXNyqq+%sSgOrddHRJ$XUP`E=H-;xa`xwq6IAa)mB`~V8vtwY#v6QP%6g zzXsFfwTrUCHTE~@nJZy+Oi)e}X_gTou?OPCAtc>~ z>xJ|OZ|WlnC3|l_@PoOEcqw-y!ty0Nb$(r5zjWe(;idsFqTV!GFV~B`E@P8VAF^=g z5qV$Y_n;@>@dk;oJ#_fAHTYJm^#%hMqIF5_SHTP|Q3x?2z+$R}16}45ZXK$~Wi#9{ z8557nZ0}rhe44$1_9v7Y7^63VaToUbSe*24Dz=-|6=H4{vaWvd4&Rw+YMrcDOpb>? zb1iwehNKJn!1j^uhf-vd#JWAq;AJBM=TCoOVJBb}|N5FiZEql2%lJLb$O!3Zdn+^I z`-g9H1J8{4;MgblLFcJ`DiE4KT>|=R7-?1noJ^pz54Mwc6t0CBcrHbNxe__r`@Vio zkdG(vf!vkD6^fo<@YM;Pl+MY4+U9f}KAQlRHWqMVf;O{e=`D1dp`*-_Um26)V~wab zw-he_1&_t;ZFs^mDWmQlN1tf|u(g1A@f*N1ICmNsT zWw<;=4}vRn!4a9J zwd8*27?_NfNHCfTzFDR$q$l8$ACQts#DoB3Kp1cw0zCDrSb3H*ixQS3pNn z?WaqoEiH^?#VYHFLr;7#Od=1$JXK6In2&ZUWnaXjjzMm>Zc=@VGya_xMm0(> z4tU!*L!TE~V-a%w-}`;${-~f(%C~uhJ`1=`dYivEGl1rBk@3||?p|4ogd!%`QZp?O zAiIsbt-MfTPo!!=AdR`meI~ZRXzmTwEa5E$$uU5Ag<8 zzyEZwMk^}_UL6?GKhO3(j}Ij+u_X{6!;|9ux&A%-C+(guSz{>6qvfzW8E+UrdOy{x z-pm*8$cOcU@&}2Xtr<%YV=}jn80`mV^gz*|z|hld&(p`#Gl`GiH^baB3_ldoMH*s~ z+j3#@b z{v!GC)6w`av2EXAVy8Z4WX5DY3~H%gbtOC6FxDIh2(aU~IRvMBb6N&vcL~;^Q)g$36k` zQxBO1+^gz~xY#i;lMwL_OVfn-2Ii=2v=O4KUin;VibdB1H z@+}5s7at!VM}5woEk$ah=*!gSU}wRPp!_iPTZK;v`_1_`bLoln3^w09lM;F))q4*4 zt=3XZi9PD9!iZm?x)CE~kn_w>V>4HEazgQ#DuH!&XQMslEW1`IiENN?9=nu3S`wnq ze3l6(CFRzxLFe}+BlhNnWuB+hz0JWuAXRs?_lHNfeA5sk2Rv^>_g{P?!%-Ec;1$Tf z9D#SSJS+L|N+fdaYx8@mbl&k$jQ4P+_ZUvk6|4d(Vm-bJQ@3pAuR(IBZP?h;ew^2= zo~h;V*8#*#b=mQ7G50@Md|O&1WJ+R6U$f7{d#1&kAg79TMpfIDir(eU%1I^bkg16g zcc;mr_xlD;zP$B2SB`lxihl70ue|gc9`^gtV&KWx9`8_WE8fypPPKM^L|9D;(0u*8 z8f>9!ym4@CfM8>{&fP<@NS7g%+@UQ^*pd{CEi))fXSbv{Q-OtD-=f(9HzIe3%f;LE z4&7dtx@3b%$UW8J^p{|A&hkQ;pveW`A)l9>zinksp~fswoioVCOZ=yV_J>|{?Wz)1 zZzUg%X}Ggs-&Lz<#>&zt)!1ccn#vPhEkC1p+HIVI?}-YEHa|S_Umi36Fi1Q&IJ*; zr$@Gcizv6T_ZiP^b)OoEDxf2ONL=lN!(U7+Mg#07lfUJ!gDvfs@qvQeviwpxC*Tpu^7sUG}M3A!^GZJnvM3g5*&9F#~4+G4TrdvqEgk#fK~D@c_vh6 zb##-x&Nx^1l#%X&8$-Ov4x4f(kiq8kj%u7Sw z*P;aVuTn8G6)v`2A_3%?cSvvD&wt`*JUc}BFO}pp)(Cgi3cD?*wRFw=`2ML>`OaQW z>QGsf`(El>U4AKj8d$97s00Qnd!&WSN4Et-B89$k2kOhIXuMkwQlH{a&0YSP!MW`3 ze6s4YY@*<=I*l^evL#ziPTKwSm?&ctv+kO!cnZpv5~a|xFd>vHEh?c!4Ax-FVT}H$ zSWIfwfTh%h?WMcD&_X-gUCap@@o)54rNE!@4nKA^8g-T=E^^2N2VVvbZTQ)dhPzEM z8;F-}yluygrPED+EyH0HE=7=^hI;L;nX$%*K?sXE6LEC{Hj!~2049}`z}RPVMqfnLVaN= zR)_SA@@sODupt&cHbb2hHgmX9kuGA|`=63&k+h#aX}YorerqxCa&=o;9MHvr3z9G~ z&BZe<9ez%giZh@v*&Ow~B)#~EiFE=jHw@vDSa9OWh>rVkR!!t5iv?ZHJ~=kYeL%|; zlX!YcF4nj8$w%+dKd9b}&xQ-cfHT8A)EXlYUBT}Zb}QxQ!C*&rt$?Xty*k^Wl_-sxzeatdpQb8;Q z6K4<#hmBIrScFExwd$qCT6!e1IUs)Yoz9(Uk2xg85*pt&*;M=+#gF{Di~^#^)Im4O zZ(ju|h9qnWZNa36&tKe#8G?Vk>YO+JsYI6bleTwhzF1yji{I64V?JGU+Z~a}hucc~ zEuDBq@(k>y&7G=Y;V*(C!`p);kDCQr(~NO8)6+nm%N9Mu)NIf ziA9*h>;Nkl3n06XlPl!lAQY5{xQ{Eq(gEm6X#upca~7q( z{Mb)TX=f!$tm*_vT@Dakt^%5)u;P;N<4u=4OLPuzC18djfpeoIPlML;MXx z2IyhwZs+Q0=i*HH8xvsR;^iqyO%0i+{5v>g)>767GWd4`zn}lWdw5!LC_)~1A?tw% zaBy>S3bJu>vvCV?{8b+^tE&1BZD)_avk2jn!w2BX!NtzW;pFr$8XlgqZ~tlUKh^Ni zft=6e&;ok6c)42wW#0mwJ!$@G)YZ|;W}5W>c}gqYWzdz zH;p!SPOg76eoOyV(#rB5a;{$Pj(=pVEIELVKqrVJ9uQ=%f06gJv;Jp*{$)MCXZ{CA zAm;vo|1Z-2!Pg&O{_rX+<6`Oc+o+<9DD`iDg{@pH?W~0V+;R(YTUZMS0NDfu0hVmM zK*${cz{SbN&2PzVZOsSZ2J#911xnG`!xP|a3H%KO0cW>^;0W>yS_ug7^0QfUS_rW5 z@&m2egoG>sYD@z_rtG_^~yW2r30pR#ouYN;WL7=QH1cfZPg}B(P1pyXp zyw(6gHUO`XB^#F|7bg(N$1h;P2mAx|I}XB<8j7OS-0YnH9MNzDcv`!-JBd=O*g1Ro z{BuIb&IzdP3HVJK7r!76mw+G-KM$7>KQG^3wDo}Q9*`vejmgEy&dvQt-O5r}4uS}P zB%7TRzy`?S>TL68;&)htA&Y?!3;10d5ad7OkhKU)y8{89F77%mE{>wqzkQ|r4f&^} zC`JBWEW#=-mVXrg2m`Ht*W2GKP6}Yd@#j&5o^dBga?w;N* z?hfki>K67uOV9rr=RXtv2a*<~*Lirl`zroV7WMy<6Zu=ZDnN8y+fx{#(NT&aQvc_1|LPza{+d?D}6u7s@~1uz}8y4|?8^_h(xAJx<8GH-d$-ybRQ@ z-@k>u6={$WWLE`456CzCmVaN+Qj9r1kU>OGMO9hELwGoNO6IZMc4{anN+?AcNgbcn zvkmX8{bkd`r^l`iDQ|s-HY1_dRD4zzK?@<{_Pt;yM-Y$5b_5ms3wb z(^KmWh-&nKIRm|c9YH<}XI)8kGR&-7*Q%jw(>m1I$hcS$?>nsMHmx^#)Z4fU6rFij zZM<<(?H{<4KXaLTD@v)DO8f7>e>3oZ5CbQYLWfo?3aO=SdM(I*k`qDw{~-7NFRhmo zm(TRcw2CKzLWgkR2?waksq5#HWjncoMza^~mLEUUU3AS7%75|mOP$=$Zm~Vfvf7o(@t=y z{|B(@91}D69u#@wwGm$^r1SmFl%zeHprP3=&!9Gb<;XLiOa?!hEz164!|8AT>~n_v zoH2@d)&$CU_YGNIiO?yg3iF|%L(|Z`(WCOPM1F54_f2T!PFS-~jF3N%dv$(SD`LK= zyg^#Ezd-2TyO}9nZxmP?u4O}^@H;0mJ3{flPd0q#Wac6?hsT^Vv|kA*Wk?LF z3!kw!^2C>m%KkpJD7IAcf(h{mEoQ{HD)z8szYa=?(JQO1tf5 zTlpN)s*Iw`_BwIkGjd(b?*00~u=Gtl)7c8G6da2{zd0 z8h!A2hg{B^XIxQx$`?QWJH}uVK%rUaer9=NSKp6o9pv{>!9)AYCG`V3Btu8tuK=Ds zaC7#t?UFiw7SDckgbB44;zVcVZ0)CJS^AL_q=`AE{PxK1n(RzP<%1}$U>won zBHI0?N z*E>`!;YkQUh3zMee5lX#AI$udmiG=(zHovcd(>!{{nemm(i@*zOZewg8*1#0oblxx zhF51TRrDvklE}2a*-Z!AakFMjLWt-!c zd58+_UaDm@EY@(zgH%+v-rsnXzUp_uXm5GxemYcA-IASjkfNIPuK+JDDq}SKVsIBF5K_edx+IcELQnwKK9dWv!Q)H z9t}0Dvf~;o{yDrs`iX{|U$t|eDJF#u4=9BtRGe~IA*ZOD>fQ&NvY0Q#2a7I(5vGbf z(TF_uba0*CgG^?sv<++8 zm`ha6<;m>q?0m?W2LdaPm#1jP(j|nK@DxU)D-P-@PVzheuN%XNHb^PU4@D6~4wlfh zW&$qsB4YT{YdI62!y%kI3+p$q@OasU*vPn;z{LHd?ok7``tJ4?n3xXLJ#yThQ3Xy=r54KVq`9-+)!CV z9Z%g-P9c??PBdsQbZOKLiN-|4FMTC)f@Wta@_-VA6VVzhUoI=PPw;L#E0YtE@%#hl zK)|ccAg83pke{k&9776?k&barwH)zE&L(`;ONOiDB%mr*GJ#lT&5v}NIpp?i{=z>v zN?Yk!_`c`bBzftFa4naqf00`4Z37C95DIfxMQMA$H#FXe$@AgwD$x~%h}oeBfQlo# zltXQNxf%(h^B|*$S=>ZWU1wgD@|T{@)tIs_UCMZ;=kc!0s<|h8m>>(bA zTzPLf8q>abw9Ls~4qY*M9lUfKp&BKG>Mgjk!P#D=m&(4&LW8x*Sbms)DqyB+LCKCf zL$b%8{&avn=LOjWj3|Up`aD|N*H%FI!>}caZv?pV9$X3g8HOsrUCTCYY!kxesEFj= z2WgPnvJQL$j;?AsOmFNe`Y}hfZD`T*E$r=gF!Z5)Z}=>_iu&!iOh~c4`toP7zC;ej z5Dylvn=4ALyd`W4#TqvXV#>_zT9#kOw63)a6?YSmJbcLm^90{UQ`1P7!3JUZ5c>$1 zc@Af4MHLL`BGoaoOT|Y%Od%YVo$T#{%7%$o-hp12${75wvtCE2pJYFK=*CwXAqr<} z5x03kTI2V_uUSrc&G;iIcI64}W;R<_5cM7*<^O6}Gm5%8Hotp{TJ1sLb$2hXzXbt6by2Lm=DVGOBglaHfYaq9}R0LNNi7va(?g^r|$a> zAF0Fo#C~bHv|A3SN~(_-m|wB0PxaUB68kAucIWuMCkcD|1V@krRF5N=N{2V^tn$@N&}60-YGA1{D#LE4e3z6pDh+X36>!(gxr)}mXIx4qXoj$i?%iI%V( zCJbh2`iMwzYIn~}bILJLyaYi5lA_anZu;7G9JEU=^cGVGmLT$>@;lSz$tT zvHOYcE#zzf4{xR8N;cXl-*Yrr*hRd>@;3RYQ%MGcl4El^S2Jl5m24}&@P$G1)bDh` zYCA}k1KRW1o9Vck2@l*B{ZmX3Z=8!2k_Bw+fXfEAVnt!O-|yZvPi^^UWobS4+WxtvCJzueY`+WI<$dZ zc%E(Rfz|1o$&eW+A->{tO(J7cd>4pGPAw;a7_&klpZ5fSETk{zVns$W<#s%175(h& z{@wRdjE@)&DlV`ZhhWXw5tN@BG9oJ7`96iMsGV!*OLWKS{y^REN;TFn!4o5I2(3%& zZ?uuK^|79v6QPsRLC5XL^Q&eBr&(sG*&oahh1-UMY!I6gJ$RbBV0{zN~^Yot7*Hw^ z&MdtRTzgEpxi}&FvY(OWQ)7bw{M>g^K)2saOT-a#Zhomqo%8p5g9@>(X`uqicz0)- zhqagQlP`i3wNdvfm$KgL)5(yv_K6HvEx6PLI$WjuUC8Nk0B%p_p|=!Os=UHmf?y81 zaq5@eH=HWXDycs1$~{q%7GSg21Pg7RQY7yieRu_`d8jtKFMsQhjwNhlHu_;xzJ+Ud zi=4jv8~^GLa)fC6w)gLMpYGG=OHhA^FA~ohX+wGOcq-b@*xW?k_@=sz#0+Sk6p^fV zf#O2gKs=y4rm~lIl^OEO0UY*azISB#*UKYH2E>P8rZR+tPi@y&3v{F*I2KupEC31?!cI6*?C3P{q(KA=aDaj<@vz@uF3|&)L zaIi!UA;dbZcA+cpq+kiTb5%N)iJOji4>bde0o_rS{=jy-Rn3>DoqjuFL6i#4pGmC# z&NkV6*o>C1#jpjEgX{=o!_lAeKSL=l#<N1p((u_Z(7;N$&CEf48^5+1e#!Jy}F%hU~C%2QL2yQX)r`qP5^Dx-+0f z-4V2f&K;C1JJ-07jAM%XB{Loyu`|l3*i~}r!@7e_Vj#J9T`$D@^u!b8=#*(okiNE( zzvG8`Rx}~q= zfxec~%qlmTZ*6u>uCrCQl5Lw@%j)Iay}Qwoh#z!Q;4|Y@5+sM|emKFZaWvSQ&bqyE z@g;NAXDB=VLC(JO8167mSH5%~x$0G4&aTHwn8W`|WTW`1a(h z`-V-i#rXwYjVFC^?JSQ}*Ihmcx|?$i|8jA{_|9B*DrtDdQY5 z*$_fEFaypfn94@=cKn^;r>P#`>&l%)(a#i_&dqoFMKvw}i$)8$dY0*>nVUm3)GlHB zKhIfl!zx-!NyhF$UNZON#3gDBlB|x4=UM83CtfkSeIYSwoz-E=*C&a zhxjeXo(zXa_Dev!Al!*}Ag!MpJLMYw^HH{`;2ZyMZ;%VIPQ~*4AkFxo*Uk~nOdSu_ z7pilEWHcKt_@Jsaefm+;g1N4Q&;DLW0IsJVt`9M$x=q{R2hXDNx1QiH`npkXZ#T82^29rl%-fqIai-PKS%e|crm@P`f65@;y^)b;&M$l zq{IHC?$I!;;?4wq>^-zTEMhd%TLLVjjT{fY?hi3@Q#5L2i_DPkWZ-5vs6!Q~GLao! z6$oIraIwQpvleXmhm1yR&h~@{IaG$9S6?M-yU8k2q+CQgT&Aw(me`@)X-f+4$Z*O`OfowKfgcVo_o$d z`|iE=+UuMv23Ch*d^m)A4yf}p|3wLmpZQkP?n+3C-YTI@NOBTg%N9}Al>~?vVY2Wi ztuD0a9E>!G@gTZ;;$)QOm7kEWqw)BJx%$P)TuR~8QaN#^)w%zl>x$p{w}GNFWD6E} zBiLATKFe25b0R4!3z-_#s_X%PIdos2S%IvVRGxI^I?{O)*Kmtvyu954eRNHw>gcdY zvZ+!{E=*r8-ql*EJ!Cs(08S=JhLgszE2O~fD$M535|94UNX5jK2CKU77a84KFyk&M z0i9dwr>8tJ>VG`JeUjm{|MKVelGy(cT5Dov@XP33Ij&Nc;JmV}5pd(sFJZ9yK<7m@ zzLi1+>gL4JEo($|-@+z9+NIswz8tV_!j_S!pq7~BT^wQZbDGt>VGAX|Hb0zQqKCbySBvbTe<7wXSvu_(?wa~S`hBBPx$~=r>=afGJZBUFIfML z-L4}Fs+XZmgC z-ErR;A`7dCEjry;dz3R}RDV|icFmcTTb!i=!9_mZEjJxyU?;Rewe><*cT1IMoR8&W zYDbrA3S9HJ{_L!o!10|rvjHy=SgI%Dk_hy@(D74Os!NJ$EcFOWcimcX__bXkUdHH{ zkLDAW=jM|mD$5$MijyuUdK zL>x)W3u|vs*O>G9Nr0dRMUCG|PO9Z$5;hi?2|B*%T@?w4x_z(2hZ-vcJbK0UhL^?R zN=6YT%d_CBoNN}trrljp)A0bCR!>)zgCvC8eeTSiBQE z@GjmXU6C5RFl@->vRux5t#)3R&BieCK&WJpx?bQPJMrV$aZybo;KEK#{P_Zn zv<}Yw$j!Rdfa5S@v39Af!WVZ&sYx}|wlq>;L-D$n7pCf**7HJV21{xkvVW$se3+vj z5*n)R07Q|!G?^MnoOMi|_!a0*q%vSP`?h)bY+X@K6*#E@8ODT3;>Td~wXV7CtV>qx z!}{;B+x@+9eD$u?KeT0xRl^Rsie^LjU?+`O(?r}ng7+x(-4lmHHj-k(c)N-@>o@Mq z1>7=sdLX!D(492W)BLfc1}#{qy@yc^RX1<`Ac86pVQaT*o8pNANlTPp&if$lGa~k z!oHJ323$L(g<-w~ne0Uqtc|u4E2#a)$o&n>Ze)8CQBl{tJoR;`m6k#C5`IwNChHGu zIQcXT&Gf~-zR@byE)9VaMivkiaWyW#A%WD7eNwG7C>NA+lf*lGdX{sOY0g!-T|@tr z4{2q1MRQIS7#6_xjk61j0A;;!U2&Jx=vprV6;a7^t}Mcp4cg8C8u+uU>iBSH8z5s%`+Fle-=04`tEe3FV97_}OQweOw8N(t#?+I^ux{*wAv_P}dKJtG ztD815HE1;)cYMaD$J$60-?DYXg14mdWg?Uvc9L2-_N~_er>Tx$L^Q0u`(z%XjYVDQ zF~f1L3;u9qscZ9yBitOz?P#s~&GV5q%)TtvE|*=cGxK@B6%?qy6*OkFy|tDW8=+W? zkHULG<@E1RlULS;R83E#3k7c6uXV*5)8a!l#}sw&GnjX$z^`|2mJOuCvNDaZw7G5u zq!+*Y4c56*s+jg#0^hPo(KdA~B(dUlY%jr+Cz7#8;%fFP%Ku=ky6Em9%LaDYt_zxc zoYh!4<>gpEXQN$i_ypP;H^b*ZeDrhsnK`UHX@dfp04G2z+f}^L(>SQ^f^|wR35d>N zz5677hZ#%dU=wJu%QwJ$sS%!?A#m#}2kFi#<}wXV8fLDiem=)8>!CS~FR!`BbmM{? zSSsLjP(Ghja<0|G|J(9j77LLfL9Y{V4vDn!LY;VQ5x!=sbQWdQyHbl*DvLpK*2HZ& zCQmNJ%?pbY_n)HqK)Y#caFo7!t22X|neGL%U?XuF@I3Iz%T<%)%fT-o{ZLY5wH&jwy!Zb-Rts>t7u631ihg9c3X zX;fg>HW9xy*{y%1Q=IBM$G$u%r>F!QW^|v>)jov-f~C>gNF1~-TmH$-5i5}uSsR&@ z!NIAKKziZEqP`PXkhae;>whk@+JgbEI$X%|!h~koi|e#N0Rkuj-I^(imX_N#?4GdM zeV0oLru%)6N&Dn+VU4 zipgeE^MOMlwSl%`Z9IMWD+b*C=lIyczCOW2{SWrk1EAj}YO&{awGO4#DufIbmWS%S&PqhZ^DE!&~*$8|T;^r6p-D)OJ>{x880mYJ2y$50*CUM8(_u@P4I(cW)oKp6a!vsVR>QnDo+dc^w!a4qZe%M=bDJEa#*vJ~g& zwNPGs0JtsXcrCpjcr%uNkf*OylNZ24$0P!F6o@oppF)4ZYdrCi5!0%KJT00^4E$6= zJbYRn_9DC*f0*jpS3Q0kC`%qhKSSR32MdzxwysehF54=rPsbid7Eg_(!A;@D(mn9`MrF6Dlp5 zt=h(y!H!Z!+rkRw`pE-3d6nDnn@YGpE3E5asFYQ1Iwo$Gyf^NaQNL5pdF(U(3c=6v z9M#>h@16+MtVpuhVY?`;zU#Od;;}H;v9c}aIpzi?w;${FJWrH%7f@+dZgs}@j^M%q zu$(l@Y4)1fkqjJR!V{EJ5^#-Yu7c$W{j{m|U7Y|Z@xCx3ol4~`X{IK|3nTUISGn!y zjax@3-6!aH#lOetQ`_06<~F3razAeEs607}CJJBQN_)5>#;N!~`RHHrqp_TenI zB0XX#Af7Yl849>=pm^Hn-)2QLXR#g7oqlzpx;)vx!a=}Hh050&ReM)1i0$){t zy-==osxjRuSl&I!@cSe#r0hEGHouYPk(=Z!U$XaS$HLlueOGd*8Tk|10*K!UxHu3C zfm2K5#&iq=VXNXwhNCjEctUzSQNuj3KDpw^N?RcZHJW0BX081yPbc(*Blwy7Q&?Sj zj3SCkcnqLyPz5>pS)RL|Q%xX8 zgKWIXp^qPBXRnXa#+(``pt8qc!fpC809g;GM<=9?shKOYxLXx5u$1c}Md4ORLjdZ9 zGnZNb!k`tC_gjD8*K+&I(sUQg0Xe)WPd|8%2uX%?g5!Qyg#0jYX3jiX{u@4wn}jDc z0Ix?>3op>F zF^usk_xzT;Ao#azT`%-~Um%+y@ z?@G#hDr}nC9D9R|lw)~GytIiQDu)RkAND&3BVYAb&Nq2trL0}nsWRj#%D}u{1}tax zS^7k8Yr#YT<)K)7wIB{}hDR#Bex~|m!es>`(|tFFqE(I|a(RU9H&_p*DkxUoHIhRe zjbF*I%_vb;?mIJXGxO(p4RTb=*-lUb}cW_kTIpiYs9s~m1LCT;w_qO z2nc+Hwfe@xe5AIHbKaQP7~lc3sJD7sESL&Ij*K136QsF z0kkx2z8srM6Tcb}3*xhGN8j=fNH-+Bf|OXu9OxS5TCZ^^_3U8VXpiailDz9!@#RRJ z376Cj_%r@{z9Hy;?|e_JyMOwdl@!t&@a&C-0NOKOYOxXbg>-p_w3!a=d}Rf(t01K* zXQ{Q}e0kl6iE(79Zxf9aE^rDz&#Taa=aV*XRlEz_5blb6uPQScxq@Lpl6J=yujper ze@dphpCey?>sKD6Qs6wnmuYSO1IyFT9)A%gjKpQ$H#qcdfN~ct8gb-mx28>0n@Q|o zAx}9(NAq`Jlj{GBezH*SL2>kM`}Mod0?3ZXFkUWadSct;HyyRxlK;PWN0~6ScS(8r zI{-L~)+J8JZE$Zm~Qp0sv4j*BVa5 ztYFmg=k}*)x&S?tcSmHn;$|761~-H1LVZ49s&u0 zP$FWTInEsn`jXzA)crBKMUU-O^3}?naY6t#ru%v#nBxAB>iCTgw{=7zX#acCio-n2 zDR1hX;|}$^+{*lrZEJy%%K(B4K6hMnnbDpbkJ{px?7J){SPKeQ2)$NPW zr%Vtt^4n};sh~Ea>2b{jkke>W+OvV?H62zIZDb{Pdwz za5&h7AtokZ6OQxY#9QbrGCktxVG?95oYUO~;SZ@~FO50$pPb^0N2FlA>d)r!>6@6l zpxwAq9G-L$O3NL6yRT!mT+vI|%`SGPaTsN(S%VkH$>zHa0;aL?NY+^`67b)HMaQT1 zy_V!P#&#@HS$enW|A;@|A7TrVaU%`*Zg zA2NlHYLof`P|xx`F($>v^J&uS*$jC`tr03VnK_+AO}&+MZHO6GBn2`*2NUl?t=7H} z{O+6brv+{0%AZ*jO#A$goMU2L^!I=o@m}1#mYS6k{p;&cF{!Npdxy&v%u){KG4d)0 zv+^IY2|El}^I2WFfipu+*GT?4^PVc82LZ*=J0;lY_V9aHFbkdZF8t+)d$qR1=(JWs zDfXVjZ89XT-ke?en-{(^x?zWD0F+|iZrQRkQ3y?@OFYB_smRa)&0p=9Nb83}6Tyy# zk*F$)Z6FV5o(|`HC-w2}#gR*ebtrW`BU~GqnZRDzq&W2t5J~|iM*q#hsOqV^Zcobp zN9I>y^-?LM4@5rI*FP@|$Bp+; zt0c*_0ibj;(EeVCOPfU_zo%Uk$e7H){w+KG3J1f(;&_4_3Jbg(QfD3&-mU7?d*W@#xVyi$xYw>Yv0p&>iQE0g1O2Sjrt)8H8`djdIxH{&#d zAG2{-dy%sPuQ5QRBNmp#Yap39r+!ZLzYv#={RgL`mM9L3WH{hM{ab_=ly=2WZ%Co4 zc@NKFF!E0y+w3w~H_EYM(DPuCE?W349Gj2fuJ5ePRwXzWy<2Ud=O3{lJOY(1*FFTG zOwYAlc-SyTlaK)EK_Z)9v7;;#ebrq^asxdPet1F%0G443ZXH-s2!@8(96vZWm|=c; zmf!y10!AaX`$7uwJx&+nm-_bX&8JYxp!iH-$&RVl6?741ssspY99OJxh6{D}5o8W~ zlD4dqc6VGw7D~RL@a3y^szm0_oxa`O8MeHD5lu^j(?JS~aO~~ounljXT{|4qm_0KW z^sl;Ok{h)?tu;O$|;Z@zJO`8!S2rS5MOh_Qb!tEg*;uGOcaUf+O1o|Ft z+2Ooy{J6s!=SBlm=hbefSf1^Bu-za&ulmA3tKRZ-RRMs?^Q1^J)qG=ipc)b^qbs&T zudlB&_jIf*YPbt4M-Yws!!>5+&x@AnE?M4oN+mDbu9C#NPoxiaZZyW}H11%OHurP$ zl6h3AO<}PyV(PLc;voFYVRm}-fxf14yW{a$yw8*Fm#hitN!92598;u1^y3YsgI z&p2psdEY%2Ui2wdi93yJjZ@#kwjlbc-@S0ht-1Xt@!0xDv9@OLZGy<@Iesa*=#FPa z%}vGz%3S^E2N7D+e_02gcmVY=vPAsXw;9I`W)Pjf7u&heM@tm8K2kU2fJByqMW*`+ zq5A4JtauKy4H=YujP-M(np&n=dS;e>REA>K`k%>J>ecGh^Du^RH++=PLFfvY#GDc@ z7q27rG1$cP^CL^0FYl~~b1W4cg2N9R(@OYdzOF=;MpG(#-H_eq%<$Rf4Y!fJ6T-HX zGQyLJFHS)nI*?4cn*b2sp($6Co2}2(aMcm71hxn@a`Yre!19hKK?-A^tCspiOC}Kn z+?m+{sp2KipP$yIj$sRPFL-MhlNW+*e+0%s4pMRgC5FJGRBOu>Q1$RmvkzO$9A(2H z4=?c07oc+_|E^f)x0UbRiiktrXD0!VtC#~B(QEKKvRucWe|Cv?Yr6x(HE*{TRQDRM zg^@DwQJC|k-qN)qTyf(Xie>*_Xk1&H+?iY33S(ziW_Hug#{sqNL`YZdrW*MQ$X@R~ zc&Sk7OO)`}5{~ci4%sBYQ5kRn)Z<%RB4{JKa3sFVOu{|l9AIbL(i_czeOTaJ&U_g?uwIY0+($6Y2cig%+LeYqnrplC)-%(g z^KObUspfESk#I2B9>Fw0rdY|KkN)G2GmCp;_Q_fsz4dS@kbTP6su^y*s6}Ufr7pv_n;wc8Wv2A% zAPCB)CtRGNMEx*ysn;tPnQYjb1`vqpsjo@2)+uy#&8s=cB&e{XdKXoc&AhC+iq6}) zQEhnz5yI;P`k1x_LEf)CGP_R?v1qY@s;hSd}x`APKdCM zP`#P!rav*p_$Legog1>j*A12Y;~Nqj(Hee^f3G71aq}|#UjQ;HZyI^qeAz^#W#&N4 ziF#I4Bth%s`q!hqZh{2s&LDyhIN$_<{Kqkf461QWNyNReKep?0qb}2B>~C@;g}%nJ zynpdlFht1Bwwt|QX_>1sx#nTjMTV@ubzVZRK1^X{(l5l7zXVh{+3@(|O#7%;dL6Hy z9l!2ikqV1`U8qfh1s3z+q+W>OM&${1bB!$vdrOoWQXZGhT}lR!hWZ6UvQqv}BXRHtPB*`^cENrsC??qOi<(mZxR$1pDcg?>pK0ITgqH z;3heZoxT?q`1^q z>Su{eh)jI9s&A{)8lCiaPL<$k@4s7Oc3>eJNz!R}8p z#A7?v)fM0L5;7aaNERSOL~R`{&+TcLepp)`wAxW?un-N{T`BpqAdU#`t&n#Uwv>mS zZMpFSyA@;pORw6Jg1hV5uETHl`JGd2KCjxsDs^lEf)|AIgAa*)8-vV1>M23!$kv&L z{lx`;ln_> zf3M?Ql%|v-@EPv#nmm?%Ek6O%29QWucJnJqb9{=|pPCE96earExG<147 zKsW#Tod|5*Ui03Y{?kCrI+s%OdAa(#a_Jo6I9~f@JYPJW!sz17inBly9cQv&!^@wc zxHWdu&Kz%PVTD)Iany-e@%KDnk_RRR<>5|zTb-*?;E_ovU8U8#o?m3+sRH1(Q9@N- zW&$a`_?o2+cv>I?UvHX$<|faM<+M}JkDltj|0&(5?fq}qN(ePk9{Vl+MW$7G>f+a4+^%q}_ITq`+5{kdOwUbA8) zkVp5`$3?u}Jtc?MPD_XRv^9z8;r7H!yC)R5yT_}Cm$U;j8klJQHtWslu+Xir>oemp zto|u`aJ*=mX8tSxMiY5nJ!OGJxEU2qHMa!(R)-hHA#f!bGca^jSOAe_5p(Ju-xAnh zzT)9xuCPXSNoS0BQC*OsCE>O3(G6Gk_CIf5>PeTo5iVKDtxpRavCcnLIJs5wh;hS> z(Pw&izn+t;Q*bm67xcXA+N?BC=W#8J`Zb-7IKR}8;*JR)reQg{b@I^sm}732o_He@ z=GA{~^1K4VkDB5Mqom@{R2}EjRue=`7SW{M`)?b#y|dN$pq>8iHaA=*T(NS`e)Gcg zz9edWb^-Us8v}r>;a-?-T-{THBG1Enf@SU=T#TPA{>J2c>dd_Cy+0>MT8kxt({k4= zK&^3p8MzLn`WENZftGiV(1RdEhG)AAr^;4H7JVOd>EM0Wr*3k|?l(h~jjU_yeY1(v zoM;^MVfbMkN7&{Ap-xFvR4~oO8r?J3=KH%BVfR_hb~?Ay1f4Pi;+~A?0Az80uwyAc zpZd8X73fE}TasNKP5;0O{*Hop7wDq465OW)M6?`E1@djb0Q*vxt`J1iS>GYk2l0W881 zeq3l}^JoDhc*9&jHIN!Z$eo}Y*{sIn!+-_12I+`8M4@6cwnOd#T z^mk>my_i0{7G02AR?MKuslr(@?6`MWKFv^36>ar}Add%Bo6hFmA2hA4GasJr&_M5` zyQ~FZiXCqvH}a4zfC$t-zFe8Ejk&wmAa1zlb?vF=0(PU-k;9@3&E2Kj;@IO9o3?Ez zE&fWCzk2hRJ)}|ESiMQGx3(_CF6@wMzIbqB!86Ia-#;XXdiu~P&~D!rZSaEGxy3%$ z;{BHQXO}}_gn`_HWg}_xCpE_kcII)Te>3oN@#K%Hh*DWbtMtN9q{1>hFqP0LrWegqwJsHo<&QLYS-6U%A)^tYu2lbcxy~Q$ zEspq;qupXh3yu6L8q*MaZn$oJn8Vrnh4Z%q!s#jr79@EwUT*Z!t& zThcGYzHz@tllLRJ0zaI44)j{HPeEC{e{L}?N2GkqpOGx13omDa5ax?Rb2{novTPUi zWJ1{mf6y9X%N8%ajSgCNIcaIh1v|j9Op=K6j+p+)jQd1;l+`uaEWr&G8q?iHY8C{s z#{UmpInq1|E!}%Mi-4#3FR6-$v65K<%~9v*|S~g z*~NtZ5Ywuu2LwuZcaVdvx1C*_#~T^>*xq!K+{7d%81_Ak$$sVG+w+=-*TnxlL8 z)akEjL7bj1%8ese$UypMhc3O5*{06?%ZH0~ZcJ4@CX_d|$1n3N&+|zKBERm7CZ76t zcQp=}?%{tq@&K=Y1Hbh?o$QJSySd?8Wo5{_G||c{?sT7AvI)7&B{~(V05xw;7dC>| zJwsc(se>DNWZXXlvFRSZ%L|;=W6cbXj9x~i!FA?soY;!z$_$}|R;gZ9LUy0`zVJ4< zF3ksG595FpNm%Ef+;<8qSFn}I@$YPO)W41SQTFvxA8znT-rV7Io+igy<;#L)UF^MW z8Bl4K5@;s(CW&f1lvtzq+9Lnyz|`^b81N7!g3Ry=x(_s-(Vf9kM;;-^JVHbvt%SWF zI_gb_uweF=ifEgBJxB{2v^aXqzkvrLtsxz z(zqM@FRE6IN?RZrpRGPaV)`RL8>f0XgO@P4A=ER*Q*@0^pWpLQ>V|xsCA}Am#WS1~ zugxfVHuC(?iB!1Wv-cre@SOlQO^Wdq3Qccr7(-Fm97nV z(#8y%hlq~O?{@dZ^H91OWzEXa2orrEuJecKDlh-rUF)uN0psJnT5;d~?8915THVy0 zc{qpcvF@=RGIXt#?d!Uyz#$Kx-XUM_;Twl>t?n<;1F_$>1mc^lEsg)64!3;CzWkpS zKwvdsYhrs)=)+2kJ8}QzqC?s458+{1|5*AwtG&lB1LIootD&gFiEzKoCiz=A^o1E+ zuP9hOo)jt$DqCB!y}6InVq@K@909zkfLu;06Xd9YhR{pL;b2N(+0D0?Ujdy#nNV}- zdpkk&Z!;bhac=cjQZ0k$Z+W21_hO{gp+H@^2ZtPd76|h;n77ihT19nRYI8i3!8m+L z@e8ATZN+&q=4ncbdDHEgz|CdueKr40H@M7u>nzR2lTG(E<{f|=MHBrVfwiDQZ=qR? zL_@NT-kfU*aOA=-{sB(PhU}iu;o3YbC7>zl7bY7~xf5Jr{#5DyxjV3nIHUDcJxlrm zqZD3N2lqdHuIq4Ky-Bjq6C1(Q8a|v(%zeoF{xIKvY22YZb(}a>AY^XE8ySjhwd>WS zImKmtS~j{QJ$~#?pHoK}CtHQ?w zH7pVY39Ej+RR(F~XHn9grT)0?<*llj?L53*zPDlx*h2Z=UoQ_{FEz&1)VN@BB%e@m zM72`^8>#i*5!;bGPr|W&TGbWZ5F_15aBQ54aqqynGD3DK<$b^Wk}+IH?iE!KzuCki z(eEMO6oqa{y}l#o2ga{Zjr&MT_ko*rbOg{Z(c&A>Ci(LXg_;alQsw7U^A>=zU5zE$VWQ;|zVJaQP$Dv4QZ;Hgemg+q;A* zcC_lUsKVtrOLseiTz0xqOGooKMif??ycyC8G?$x^Q=~gHK?ib4W!ePB>!h9^vx1_^ z3Xe zxRhkwpxTSvp#2?D2Dx83>~A*~T5vC#38jq_JS|)~_?nkAoPC7nn@_DZa9S&vcO?hC z_{%V>z5UIn+qTYKFHItTGd+3GOx&;drPD6)mInps^!#*R&D_iO?DPAf)1NDZ@Zk>^ z(=L32J}dk#0F}Mob4jJwKi5dx*^ozMhXTF901Z(@4t0nZ$!X|ox<7NRBUUZEXDYYD z-6!q2c6aQ8cIk+NX09lSWkr=Z1-?*aI`ORY6(@BEcGQjJ&8C}nP4G2$$cFKfNrZRy zTF4QUj7{4^z^``NeP`^GivO$Q>5ZG&+Dy}@B+!4tLzng4Uoug{UcqieOQ|azgjLP> zaG@a&G6d1xxu?$ibgz4%SQm@Ofm%s|p5LL;!hF`&$h_6p(#}GAMKQWDSniyPs+YVUqMAq8WLWb(vR3V7B=zLoQq<_0k5 z*Jl?U>4fK=9^_u~^@H7;lWaJyLXeKOSG`{HKjnL&QPzTxW;SRsCdBs=1A&1S^W~rS z6JMOCg}q#kxtNZ-m2@-T*)qQLhayIaTI0S=8V?>#OVSh==e`3JKpU4s2>q7)S!Dd6 zY6Tu3sLk=v7=zWIutO?hI-Gf2-t7fTD;wxwyV{P{ss4a{DqC<;nXAxRM29$E7jK%l zAJ7mQelBdt8n!o3GrUpRZGTHCaxM+WXb_*tbk_~Sn!-$W!3aFc(~#T;4Ffw*)6Z|- zChkjc$Kf$@)ZQB|DHt5I+dR5rR*l;!XHz46LX&kFsr~DQK}58AEe1;!n`ekrR^2SR zZA!@*i=2N+Jl$APh}3V?1mFcdxWM!f71PME4Fi_DhHnN9gDwX`dt>Bpx?m~5@0k9s zvd*1j?5|@@4|MLSFaGGUU2sZ$TU$XsudxcOQuv^#WIIXP9~pOfz;umj`bHr@#g~M8 zJ@+zM!h#hoAQlhu<4IiQvR}6!=NObrwg41ZSQo_K6rZQYSUmaJ6p^Xe-PIc(M~&_s zz)x!DsyplxR$R%OtRlne-mEovH*zqn=~m>vumuU58m}SS}}n%rKB{x@{hfSUI=E za}QoL6GO;*-n=qRom)8&okLX&ZVJ3N?&s-+2%_>xq-Q7mSS}=@S#`gfeQNn`2c$YN z(1K!$t^eQv)!x3x4XRMy{c@K6!`Q_~RH`>JA$J&E>u>~V-jLFb=(6Vb%l3>1s%x&a z*%7j!uVY~Z_u;d}Xc&#=cf~^jG;EA$n18L~=#hk5N7#9XBxZ#&w0OY|b$s=UOTT(T z2TX7wicH^Nt@W&KC%+Kdn3>!pIhaNv=3GArOYr9>h5jO_(f0XDf12agU{D{kv&Eit z4NlxWkOpPn=soP7j3b81^rP-Lg&l+GrBc_dJmqVm)`auz$JM;mZOzN)%F=xC&Akxu zeCTgpRS%Oj0X+>oE&{LJ7J=dW`0&G`M?fE~uLIJ*JGqM9LUK@wYuu}S8+tbc7`LG# zDcyvVB_nT5brjmXduzKE)0V+z{WlWo)pWiz?Qyb&)0;Rnxpa?n1NzLu1 zv7hP38KFk5T}5oKJ7>zF}191q@n!1xmzb8&*@Kf z0ihe8&Inq5!<&HD=(P>oy-ZjJf4wC2u~a@J6JzFoe-!@$LSa=^-f43eW5vN0z@fOKaW5{zv&~XY4B2`qeK{czI_yXUC>wKRTglbbS~giS~`+f*7D~Z z1H3)a^z)fK%vrvKcy*w(#6E)ZfcVdL_!j=orjdV^Lf#Y0zZ)8I*&3ma(HwB!-R=R? zce&w&Qe);9i8^g3%f;tu-he+lChNQr9v^b&`KrOooA)-JdMYPLx1}4w>AHP$Z2;>g zs_|%J8on~)Lo^Xz6l6{Di#?%XEBQ%sB?An9J4vB4W}ti6%G=(&17Cb)=lL&%9g4nX zmin3KEYaH$oT40s5P;_z>27`S$Uy3(Q%f@-jVnCK-0z?#tAcH?$Cx;&sEc^V=C82Q z^BV)gqsvwajMhjiueJ92Gh{epkD1(~7&(}PWqXr&bGlPcqv_0C_-s?LpP@}oHzstN z%o^IY7Dv2!Su^}?EF@%2l1OSJb^j3s0O67Vi?$1MGad+FQfs-37{mDKRM^OBO&MDn zAQog0du^dRLr+C9QQMHNV74BO)L?PB0>)jxPo;ZXi<-7mowG=5vXDh2FcMa2u=(bX zK0iG#tf1yw$#Wn_-dhDzXY;i9Bh5;f1f_ZSebz@dT1nb)cj5z(X@9b(1Z%I6Lre;; zD_<=b<^H6#)rp#e_HkGBiYpY>^q#x^Nms!;7IcBPxA)f}MtppUeJC)2M+5LSGVu76 zsvag0UyO4IT>%AYGZPik*z9^BYfJl?%HEWnJVKs{d`}$@_cMtud^C#K9cU|*mn-IW zb$^yDr@Bq{!xFCY-7=vqD_Mv8?7RA?!Uk>HF927ZVpU+j#yn(yg0LYsMY3e>rvBC&!eRsnvkD` zDtX`#q9&e6iL+pwBrU=EEE)VH;VOxkuo$MNXAb6H&MngB&;F1}T<2;T&aD@vQs54| z&)PyNtaEv5r(0(>tTJVL2-A$t#FGMcTFy`Xv97xyKvN`0VUi^Mm-eEWnwQ<&^FSK)Wpk zjW&pAiJBZCE8Y)x1SfvhtH_s_x@VMMeH2|hIzv+IDcaVN=JHCI0TdINVHx!Fu7B>GuZeJL%erP8rn$ zvS*g+TNVyIq?M@VxUuvYT;#_ceX`qhk<}GCWP%Yp_uxWuh;G(7Yg}Ylz=x}ls4>B9 z%hBm}!<#ne2epc%K-JS;jQKwPXOI5YzmaU84W}WpFyTbDdqItK?_VA^##z_18eW)p zsy+5PquxtD$TGKi!F!^^16&E+p{-c%I%l?24TA`P@<%;IqX#V^)uFX&5 zyx+b$5_xU%Y+lirR=Heud ztt^pyQnX`A0=Xlge4$_>|Ca6kg7!%^OEcQ5Fh0jR@3bN49Lb59 z*M3&50aQ^$%y+D?is9jKS<7GUf85oTSFa*;IEN9TOmLon1BN1pPg zP`uMPBC6Pg3W}eeJzK8+_Ici0^PfQOQ4muuGc*SV1u8g{uZyVLEn2Ew(jEkfKm%&Z z2M-?`&Hzu6g@{w)PlYpHEPP$iN8znvPpfc+__4!k|5W`5%9(83F~r`TZ6^a8=&s=9 z08SfG;Y3b6SE=uo67(w>RrQfnSetm>5SaeutxR>iI@74Y1SrRKR%GyOKhoRxV-qss zfabh5%ciekQiLw7|8Zqjx28n)+eU`E(r*II?V?ir!j3Y6$CSf0>(?39@Ra#rstZ$O z=PFb}2N}~8W5Yjm#&C!i!g${8=x{U}MPr(_}st$HDa1j0Hhm-~@?s zBedaXS#jy7S?kRxZqxRF9C4=r(^lVz+iNf71Ham1y@ch?v2bv0+*u7n9j`Ut<|UC! z*RO}W?$EWHoMPd|H#j;6Mh5z;^(4X3*Hm;u+5sf8({+>qq0AB+t z2M=3#Lmh+p{HGCZGlL%m?jV+7U17gX43PZQyKY zXw$!2S0hIOK~GVzQFh#WzFxUAJvr)ih1#6sn1svg24sw>F69{shQN>E26Z+oc{mF01%*tJGS1-?vMA_0S-^I87pH8PSu|jq6pe1w2z7Zg=DP zQTF{ETq7p$$7(m8(lFZh&INbzC(jS?WUba)uEGq7Sd!Y9d(fy0FlZk?|y zs5kGU`!}=7{jaaD6Ks0_n%0-a)DE+vdY40{Xi8n-PtH8EZ!ykTBSI3Jx z(PRz2Y+lem)jmmv59-7uJu;2bKXEetrZxUhJ(pe{y2Ee(aBg&%vPFMmezcGB;V_q2 z(rIBq{~s?r7T{FFEd=6@gcH0lK6Bs9ikI?r{%X@(G`(-wSuaKMcS!Vfvw!frEWD3M zw)A&Y@P{00HCyBRCwh?qV?EgulqXC#!d5CfjiotiV0>uhUG&7vhU;cjGHKk7oc)23 z%wwk8V)qxycProfNOJ65TX^@g{ZgZAMN(fd=S~JV9gbCO%*<=>@RgFa z=Fspe|B69bQ-veN(H`5Wigwb8L=Sbhna62OLW^~}LlSW@(xOuKd-EB#_jlASEg}_` z^RKz_EiG$Vy*{Q7^4ol5vG7nPwzMq$aaV00#G3OP>cpF1T2L2X+STg0FwYr(@)WJy z1{|=D&hW!IgefOPX1`X_>b6VO@R#~K^EY+OMBPCos?^@H-}KGjC+=%m0;0sesZ`KP z5&5$Yc5i7J+O;(R5i!s9o+keSuV2-mEN`0Zubg*Grf`om0StekL)nX-Pkat#RN^+^ znVB~KFGolGJdlZjbxuvq!GHrTUegMcDQm#7hbUVY~(TgMgg#;Bgch6`a zDUI!xk%Z@RweaF_bGx5UT0Z|hDl6mjtbbJh;en1&`{-at@f^fOXBp46Nn^-|md@|i zRqOr80v^qDwZ~y4WW~KbrU~VIoYQ*J{(6u(IeR)uxMT0lso{<6ie$z)q4y!uH z1qNDjjOc8)WR9;}#b~evZu~q=C2ZMT5{Y-cXO5cQ#_lhxI!_+skEZYQCWI@OK0sdO zf-jXB;y&WM!*Vje)p)di`ML=4Q zCALq<1FXbnh=5T%)O@`TV&9aFv9-Wn_xp4|(fR1y84JFZ*)wO89{@Wal5e6E%)HcX z^5NzI>LkN<;hl~@I#_ahx=5OHgyme}(Okc-rabk(p=mEbu1cmr;aO+NSJkF)Uw#4M zkVLFAD5iEII7kkryq}f*sj@7{2|S>wYV+ikT&}pYmuLN}VVssvEOdS(;As8AM`CVW zz~Jnk|4VVZhPAZ|=1}qtffk;+)i8rE#U&dv{mPmsS~$ta2JOYMDGT_YCSNN z?|vxBoaxK0^loSKDNW8axFoNvkW5vY{|&uKTHN{Cu*S;AbJ|KLHNdD!%TKuUc10Wj zH2Sq2tM~r8H0MJ}^&{fKsNxc7-2u@@n!dxmDtGlekcOfp=~mxtbN*$k)#=DoxfPa@ zpU*8oLsFq16>~p|T<)ck2>Bc6q~knEyI8EDa`7@50JI|ZO(>lCj#@cV1;L#e$Hato zW|xe=6b2J5TUEBV{-N_IEq@^Fg_5g1maEXel%JinFs}bvCNK~&04l7R*rWb%rpX3M zn|WxegFl;%^rhCPM36Pw{o9$HI!T=^nf~n4WLQSO0pdtnn`+d{!ONNP_It-Z1!x3s zR>G^RF@_cJ6cxI)x3LY)?*7=s&F-!px4bVjo|wVsER`-47W=po3qVX0+1TEn?vM^v zsIrXt27Nou>J){a+HTgiymzNT$3Idsrf6c52fD6`hJXH2zxobaIZQ&tfDN=EXr+7J zh0orwfKrz}oWq8zmZY}mRYAxnyK5N>6`WIJ6EQ)z7MYg-hw4~FUtb&3)}u|(Pb-Ts zJ6(QXowJwc{2|jOke$)lR2Wz}&Nr178p!92_k>osJX=I*5`5feQ#cXbYWVqVRr#G$ z^mGovO@+XZNzu)=b6vo~J0Ub@ZJ)~s*gIq9JDmvU3UBw|UjsqdN!d&hUOB4oV}sS= zL_-d-g>kX6GXqu>gt4HYJYW+%Ld6_KCVRGZY+MDkE!^p_KE%OSTR)&Ap0<=UX$i~L6gRZX3m!xqd7I;(%6w^BB3curzJvX{-f56 zu)wi}T@^v1kOwA)F}^nhJ^Hsy|Bt5Yj)%K>{&%NGa0nt=E?V?*x_~e_rNxKU8p=%<~h|ls{!zpifJthuJ>8;4} z3qI9zZ=4V&n^jv<{y9@3!_JLRt?o|Js`Y9SKlZ_`yvE*w%WKa3s>!7B|M5!Sgj>*j zo$wi%x1i#rZf$0#eCGf9XK5X%AR^MK)JGzTk4HrsGB*0NzxO#eVTdlqkrC~iP3cHR zxP^DDW;I>r+X`w>k>}Z&>?GrF`la+l(dU;c*3;lv#ViuDm!#x#eVp3tPLa*jjyOA$ ztnR#LQAonA;(t;fXtSzZ-gMd#tj$L4@KYoV?6^0Sh|wLGLG7Q)Mg%i)0es!RXL!X| za4k=>;@7$81J3RIqlQ~iHNRjk0|GGWlaMkTJ|G)wWu-CnhWDjy_AXO>X1DhwO(vBP zks_$6hLO@ea$t^c*zg=HJ$z>6W$-{=xOiw>4t(_OZkEy7T|$<|((^>Wz-gWPD&Lr8 z3@fs8dlAtbz>96Awj7pD=Z1K%UccSnE7=xgk4yK@tg@HR&anx)vX||QcoDr-C`O}+ zq^<{l!!#{@AuTof7_>BI+&&Za-t1xI?w*OA{fdByThU5D#r@<)?Nc{?0vzk}>jt@4 z;WrV+G|SOkbvz~39gc2v#SdI7lclelo$jwx&mJM)#hnN9{xNpdmeTk6_>A=I;dGK) z%*N}dC*R}HtgCiUox1t)-F#UjGGzV?3EP!N>F?8pRTwxfUt_5eqm_CJ zKMgXfUSpN?COAJaDe0ffzPcGo`zBL~`i$e~qq(eF@F1jddFP!C_>%ePCIS4~b00At z(-D11?OiFqQcU-iuKb zimYTTo#PPy`b1TJMmwUGsK)&FcSJnOOuo>M)c2pM7F?XEAC}$9)XDSvN{p6fr#I$b z+)xCvNxm@-yaZ}|YKexYRlk*+BFO*k&z+vBkf3zc*flFO_^&R7ctZ#WsiN8Tqa;#h zJ-1H=%R2t_{vR81H__LR1o%y#ZvdWnDen8EY@FYj@$Xlj7N#+S zwcsGja+D&asobW*6!*%ZKx*bKuSxNZJ zf98!J`L{3}=?ix4)$<0_k?b2_}sd>=g>`uU$J^!1uPl0 z;JJdY+#lcGM-0EL|F#;Zc-HLO;n!6sM{z`tk4w)r@o0T)r1U`Y^ALMRwJY8p zo#~UOV9K#oxH}hesUPR|w8E*G>4@X#{_LaKJ$vk2!CHMbiqPI64f%Epc{X@m>ZxgP z7i?A)%h6?K-Xs4CqC^O+f7<;atRQVpdC4_B$~eFJF&`Bq0c2Cyq+vQ7H>TV~awPV; zbRse=RQ)^6}3o&^%lT=DtPnV$FU@lD*WyrQSHpXMRhC$hDzV0 z&Y0mMVp~@^SMMopA|->dradcEk%*cYMPg(qr7>8yMw0vDe|3=2!~iaJS28jjJg2XQko(@|*i5 zwi(N-d)zR&_vcy){-Y95Y(VbciTB3!<#{sIxbwI>-}jTp(R{k3B-Dx(9Q1!^J|wCI zz*%)PfD04QJ%y(7$eBzbZ9L6#2F}5I5{s;Z{<=S9EPyDV-DDJX+~U-BwBH+2k%ikZg=>bf4aIRljWS4ef@kwU$$?- zUsjUwvX;mqrovNZQY^qhsLP6fY@QnxSlotsAxI5s5ltOFB5q%%P#S10xy-Vb3L2Xi z>$DJ6s+v+rZHejEbDl1vU#u)66SnDX_IjeH8xxa|?1h=Qj~9neiEAcs51lQ*?Fofx zbF=J_;zW=F%aIm>XRigS{sz|^)s;r4nI)Dg2sQv^Sh8WXrq5*ntkg@e-};EqOhs2t zOk)Rot2>QDm(bhS%fh`@N4IQ;CmYFYKW8(ncXw81q)&u*Uu-)qRq)R9Ew{j=`kc*I zUY0!Mv+mzeY^s^dJ3?tx3Hw>;&6%QJ_yq{+`t8sk+w}8Zs#^#c-+*lFj*E(X@^4aM zOt3l84=vfNJD5So_K1XowDQK>0~J*|N|y5^4;DhbKPRdRCJG70llWOjPEaDB=P-ZE zXjJvIY(t`#gTC@gk;e2+CrPUYaYWkum35z&qTSqVU-S@(@%!4;rhth&JZ4!=y_@^? z87$Yguh>&5tkGaIYA~qfxr22so6Wr4)?j?a`@(Xu2Bpag8}_jl-mcMqfQ!*q0lHOIZO7f zxX#Af{LttAtZuTOK5g7s77U zaFU&gAWGeBsvj>V#SG4o22#}y429ndxl!^@k@j zFR#0Y2bVbW_oas}BWBkX6Kp;xl#w3(hB_@Z)fs z|D>F5NBcx4;48QV(oD@%vIVzZ9YMD)j{Hj)%N`cH*VgwDx);hnzd1os zLZ@tPQM=W*NyTOOu{*?{?wU_SrX&ab#KRgtUr=o&rkCuD--6dsCD2@OBcyDG5Z$9M zs}_Y3oQpLkHJrsXIk8kfAGoIOvA^2BmC;!OwmKsHYu9h!D9TYF@d7mnVZuxh@#VeP z*O)5pkMKM27g}yyCpgsbcCt$3_*6adSXxP+hh|t1Q;%2$fU=|7o2}8`JE`j4^duT> zHy|Ah-CL@S9&~-`zob08kR7Kkt)|PiywHA|`XpqH?4DAvO_F~R1_02J_-EE>m1HZ} z$E;mi`L-EO-z^>U_=FRCFwPZ3Q>zj;Qb;A=AHK4Wm3N70{b{1;3kx>yD7lgFqy?wR zH;=K}StzAD{9W!d^Ruiw)Sn`I-nr)Rr44z3U&v{qg?DrJC89YShBNaN3qR~&{#0rj?XpRk{nJvBriQVRyNNrYPy_5|gf z`VOyU!Uq1-g{Ck|?AvSxq9e}{$ojg&wo#@}$AZ7R`SB7I5iu*ZBfo^cVXZ@Wang#s z3w&cDSgXG&-Jf%m?E1SFB%v`~@1UfI5RpeBJ30mHN=|{6ejOcPM;g5KrQC2sZGVXzJBsd6SoumD}@@)0E<%=IOGy(;Z-p4|eeCD}q z3Ekszl9R6HRaVATRwv_Y-HXBT5!i2(wJwv8>K8NwJNFo@{LaQ)!9qoyJtlzFKx)!U zw1v7e;!jAO#h$_jOKVAgUN6|;qoS3i1a+>j#@U6>E4YObqF_#-;#;pyqjK8LHOE=y zsM8GHHR;MMtQy>}N`*X5r{U!fuD#l6)|iStx2QSivYj;9NSi|8PBTs4>kEt>lB$8y zA-wx`8*?&xCJ|jCB zvFE4*^6VwAAdOXueP2`ZC+&KTL3~ofeO5Ysjo*HEw!UorJWF$3sH#ZA?3DfWC51nc zNbOhl+OLk+-o3Rb-YqS{g!Y>S4)L3Psa*<2on|g~C^YV;~Hr|m5oFoe;GUkI-CVR)Q>0ix7vA2u6c}_(Mm%5YZ0kM-tWtDY} zmj=I8_-O*MvIC-MPlIz}0LYkI!-&WLq$q%a9A6Z_A?CJ`hS1T$AB2!2H zPmbCl*eyZmgu##5vs;Rcn~w6*lWvnR=VD+BuFQL-9^M-{_@>{1fuIJLPuHEyb8=<@ zr^obPy3m{ZG1fk2Cui!BPvifPrNq2ty;dc`AZTzLM|ct$es=ioA5*H+)ARF&Mm^bi zSx1;tub=Kq2dXZ^O7ox~|K^*GjoG377V~@vRceXdjE`niWv-#5cLUkSD%`<}W7oEZ zkT@lGC--D2`3R0QN1@$|2f@x`gp&u1ZX2Hqi3&^<8cS*nR!aOzT6lX*Pr9p=i>LvU zWWdY#s9t9zU7kRHX5YU7z;p)AfQMe*k@yCl8Ggc4>uiytDJ+&EqJ5ou4JCOfGaT_y zKdE5nCw~zDQ8U7ZjC_@(!xTBO>Hf-o(|_r8Q_708RV)xa%5l-=-g@-7twSY#sZV}{ z85s%5?kwqK`bQuP3T$SyU79ogfAuuFgSSCNA+=vl!@tm3Ss5FYtm!@=hg}<;7DJ@$ zLD&wi!MG5ep*riIk=BfDY-odC_x?u(jo)fO4g zP~=7No_QBUpd;|WP0LJS9SG)|-xGVd7=<*}uESKalYg2c-o2&v4TtXKV_mrC`B0L! zyLO+LEMd6$oowI&Z^lGVg8&lun)AU|5095J=N_FtHG_!R7bxlU2_e)0GhAM$`HlwR zx{KS(R3>EPKQN$+&*#^O@oi@JG?K6-=!U&@oI|)%4AlMQTnlTxS-e(83XsZq#cn~G zNs_6?f~uCTq{nS=;5NMAr$TVkk{3G3D+Js$)0cm_V+rf(31zy_0&0NfBJJykaEz;? z01n@z2WFF{_XyZwBf~ZL^-%A^+)cO&xYTY%+ z*U)cCI!$u+0zofN_zBCEX$*b=VBxEJzJXfSJkk~nlM1nnXoHWrFfCadw1hW4YSv2` zjG)WLh(jK_KR!1$tC~C9!2BMs==AUsc3$%W%7idwEbZvJE~b#}&P&yumR|56(RzQe zp~9W8FQk*i(TO)Q^^G{qEi~-p30dPF=Da%-GPP=ZTJ19l98J942`ugHi`aTC#nKOH zs)msZ>uORhZfkMT2$sRo`n7AY4%U@vLpyTE5!KE(bI$q+M&=(P=@XmSDVN$QXH`-& zm6>6mN6UrTkzdwpP_ZnT;0?iXk(;7o!-R;3kB7w^zr7>k2{EhR=f0?MpKL`^ zr)Aos!!i4vlTsMnTRAT>_BOMLzg9k@?=L3uw#$hetUfa4)gyD8_+u#GCiILXK(y#W zWRE@R{b(CU$zrst`u9S!clty-U*5;Ml&4sprnCO9P?vVBBHZt8 zUR4n3p$mhHotg55Lf0o63sANOpH{L@%qDPMf|n@B2GuUcBLyi!%4~zS;{DPur>(Kv zSd8no{Nm(c`UL8E?Wi5h#P|FmV4OyY^52zY4R@?C!q*|Q>xo; z&z{XEHwG>-Q2A}J)AgaDo{<;7WeCIs5_n@k!;~|S^&Lp)LFfNzc z_>ac^%XZkHNc&k(6Bte9M6wxqIMC&HnS=@8BtDF*lOEg+Rs0UN!m^Hou8Lj16g^bG4JKG0_P0Jy`al_FDJeVV9@R|Ik z`K&8Q2Xfg^gXsaI0pGdfz^U+(c1<;imQO$3pXP<<3*IZ z+*LfBhguhf42SfEq=s-lb=oV#XT!6w!)V57W!U6nnhJCmYll;|R$X2>(~%szJar^1U5)J`a7*5!+G_M&LSG{`NU}E7I==$F?8h zcAkXMg6HAlXz$}`&XBRTI`~ki`Xw)ahh8OOan3P^`CXe+T;$3bkA7Cyh{*J$kv@S*dT$S z=V%WdC8&j>OZpdKh}!NG|0s4@n2GL#8>*!>xg)`LCoehq@|53wp7+H^L>^BUO$l@q zWhZ4~HX*Z4sGx$A2*<%+6{N9X&HjyEy0UfDKabRC%7lG(Nf7Y_!F;-%rst@^dEw99 z8nKmuh#j20tHAWO_UY70$h%u{LyaNc^NiCLZB|@+IgKPTW^ckgC!m{}fX(X~jHYPy zC!Hv@3z&OtN=sG8RQol>^3J4}An{=Yw5anYnQy;?byRFi%z^@)(}+xSZ0*pUeCpb< zwRiNno?m`T@?H5w&(mG>0y=OPRN5Vcf$zD8Oo6P2SB+#S(EukGYc>hyGqxouAs?so$X0BD+sS|nslq%M3L>rO+Ec{2;0O#yx% z(}g1gn(@dTe~yk_YE;HIvxXja-i5hqYuJ5`IJZb!lI$mVhI`C2`&43E-Hfe1@vK12 zmx&R6PO|SbSa}e-3+_zal85tK*u1XCiTE423P5<-$rzRrJ)yxzl|J!pp@P?0tdc(D z)Ovz;fx)Z8{To;$2{xHpYPXPYRv*KJ%-qbyiZelW_v#v#xY5ROdpmS678gU@;R5&l zi8Z_ z@#^r?qeri7g>N7K6o69{^fDA5Coz~y8>yl5?T|j93!{?=`NdN&1vg|>Li}5RT+&B< z6klcb&ucKvQd0DqF~4%?bA>oglGXYhM4Yk`2@cNG3l)L#gyI7D4zx$hTbW9%9zI>? z+*$I17mu-0iZ#^_x<2TCnmT;pb+cA<3k&}v9QCc4LPXk)ln`_88z!LM#JbW_0X=~` zz`I5U?9@Ah0>xGKOqI_rd|%Ig^Dn`5V(n0)&t7Fw(iCKewntbo%%0wLv5eZ)G@fQl zJvvKRaBYLvo5NHxKKw>np4=H(W7&AHqjyw|u4k}rDp`c;F-iPY@L@Na`Mek0Ww2kT z)Kb>IDB=F@SM{`E4KCCE-7krpwB=!J*}{^aI5tSMa+WSA<8tHEJFSCnL`w9b`D7wJ zLwc`0+pdWpZ2=fV>>T%rcbCkxaIont3j#k&+?z6~A zQT^rY4NQ%zKShGGy$UJnC$)|Ndim5vw!90cORG~)b@U2RluD#T19*xtyJeD<)bRDV zM9%dX|50m{S2HGyed&qsg0mdXK`gua;B5T0LzfkqSfvxZaR65;R#}azkq8`pfyzSF z5GODzz$Yu;6n>W8TW77T?B4(=O~D8y94wX9(~J|FLC2bCyw#mlx?GC(4L&d($>ITL zu?u&StCX5H5ni`+%nzL4JEO1Lb9;dbQlOQ!pu>5weCLjm4yLY^{LqSF8&pC1M4_)> zxUI;IMZVn_C;suwsyDrl?QVU=4R;kJzsDvirZTNloX|-L?WT5N?O4>z+ zc>88xUA=_L3hA`(!Q8cJAwv)c*6Pt=*Br2bUbF4guFSipnuctPGZ@NP%n~(;P+L&X zlUW~sexOPCEVt5ed0B7bnkU&Xm=QAA6(B=0_}Jewa)|QEk(7;Je z{Ww8P=V$`RolrF07i9x`^y-%HV<#Hlc1QyeV2YM}Y7Z_5k_FzX0#)7oyZT zqdCU`Swc)-dsX*K#F;PPHu2)Saet3DSl|FTmXB#})u}}U5=4S9A=I;>j}v1SPQH=^ zWeldjsuNf(2!2pR%Xu?pdLCNO#N_|D6rZm5w{H$?VMp+E9KktJ&!1JI1vj2PvM$#e z8XE*%l26OU5RED9w5%6U4u;D9w%Vy5>$b6Y@^T|~fpIh&5+V|2yC5V97c~b;uZ^kF z7#Tmv<2J~%k(UiJVuAX+6_v}Xc$OPwN{4r%cg)DMqy2vB{PrHy_M`5?IS9B^$HgL2 zPfmDPzOZSh+I36KEHn4JcjGp`K>!Ea+7Rp=4&w9A3jcl*h6%W(t-Ci1O;SJ~C!Yq3 zfVwGHdcJ=+F`bY0p*8Q@6QACdiWuuVqci{c%71cYOR_S7D2TX;y|%`wZC#hT+w&4m z_<v}@mtDeTe-H=>u<1n8 zt!k^ChFsuM$I~Meypj9lk`rxwD<<%awcLl)x>K-J9=xb?>dp(4aOSPrzdQ@#AOvMh z@P^obQj+e--cv!59(z$sdyoD;^`VUw%OGX1zf z?zI^p`ur=qaF)h7`b9bn`VodomVVe1-VuBLbt>fHX%G#&yoY!;#<^K7%J!2Do*U7! zDZU>8%_Wz2)%-H51|!C`*%r?K-XM-@O?qn zeFvk(r*I46L5I%3G^1l)ARmY#*$&sa8~RhLR-g>e8}Jg=DdmPKX3-B zguV=r2C$eP?#TiPkaLvR$7yF(N`i`ma9Mf4sfQ7F*oWuC^)$waaNEZ29NCCfb@a9R z2?J-^D+tW%)1-fiQo-92l}W$kbECTV@0OFuBvjkW|KbGlXI_i0+08)iV)CBEqxVKh zgd4f{rPjy*ae}-dS=efnR|%#>e>;+AslrG^_b9&(78$fNs^+k+-gSg*^>W(Nv^RTRM!U_2L~t3rcK#aX~D zoe^hOAVN@}o{r|Vs)M3aF^<4)+#iLy*-nJr6Z7(OaCx$zM}EK9&YrRuhKywVgg+kW zUkQ*=X#rEKHja4xO#gM^sHkSbMAMe*-71%`}WMT*6?E!-X@}UFP z*lqg}24vNBjM1L^FJI;NuF%{H=_6(AC)5G43!@8r`7ACTG!>ks^FS-ocTZxAF7Q2O z6RWM_zQzcfG)Hggc#{uJ-!PFcDt)OsMa4Db5AhJst0Ji*(cVf7?!!bAJu5b+^JGsV zou(8dG3OlOQ!yPRQ$~lvu2h>!ZegNyZBjU<0IJ1v&sB3p3T{f`02&}2pb_|E@H|x| z_{%Wbe*#xSR3=twW4R}5<=`fsH}JUroO0+E>y@@07ov`nSHCatsq8tOBz#V0Z`G_o zko*OgwOien?!Csp*5SRAG*o1x5Wy`MZYw!oZ?Yc{ZtMFG`xNE@FHeY;GX<<;&2KJPMTnDwD1h;>%-0jTY|ks7$%ul`0lkoI^(P zwBvRs%XvH-t_02oeoN#<)YxClBEz8l@UPre#RSm?Umw#Q>>gay@8GRr_Y;@c zg@HQqBESZk=xamCxp3w8eFYDJpX_%$SjVXyq$_`6eVe%Y4fj3 zNLHQ(X9R18Jm3Q6As;_4_M+$)15$#U8LO)?VGnNf$M^646w;p)ZZ}^V!(1tPl)V)Jo3Hs;Jpv>*^C#F z=9V)AzTUQYUz_A{Z2j|_<1yW@*$qUZWMhlW@ycQ;7seCs0iz^~Cw;D^vC1*Rf|N** z!p6NbSUjNG& z-%&AjC6_U!=nAvtms^9$0mu06R(I_Sj=&Y5Ch{hu+eqzJ_@a|UCG5FUIgJdLK*|@< z?3(lm;GtVo4JQCj0rW8Ca^vuWaa5`yEmA^s->u?3;RaHl?qe2~0;>*F86^IS^5T-Z z;dg_HU&BQt`}^80_~}2?0%5i+yJT8LKuMu3dI;lUZ&PZ%UIj2PH<>)Eqa^dx(#?db zm78!=wQpOXJ3K{}NoiM^(3LIIJinoQI2&kq3_OQ3gy&kh$@yzPoo`> zpvgsjkkSv}eWOHQ<;VzsHTksvrZ2G{mJ)0YQ!(r|Y?~=l+r4u`8#z=KW+@kvcr&J1@EFV)~P((8!5^p(#w|DFw_2(Nd$<|Kok#QxB4@ zT)$UM{(=iC30-6Nl6`4Q;Oy~f6GT`bIYM79%h+s=e*~Amk*iMzMOKk^hp3`P^N!6T zBRI>>zfvC01N)}Hycn1@QUsLi(ARrp65kz(TJT=P-u^*z9i&`mt-q72rN%1v7v#4X zI7=?rHB%Pl*BHqcQwPmGmSvnX{D7-LO8iVe(=b~>vK?rkufZ6RvGEZ%Crm||g~?JD zoEkJkhSRQ*eNQ(wkEM=y&it4!?u#^wrC47Wb|ZfKxUBR{Gq`()j*^MUf|L}11zl5s znZ#clwde!xQG`i>eDDS`MF!X?krJU$Kmne=DbPw*fT^T*jA=}3NgtQ>2kShS>G*S- z{ej#a9TO(k3ATl=pYA z`2d3+iK72(brf~n8cI>ZrBa^l^vb0b zRw0L_+v&ku^~H0M^U28A<#1aLr}yiWI+Hy`i{$RK+H#C-b_kxOvqQskKiD(9Wf+g1 z!$nsv8}qbAJ=aMg=Sg0{cn;Iw_J`!SraIP~^+G$1)%$Q$YBNXFIbYthTfdN1tgq{8 zqoI~B4#8O!2ij6?ifVw~5AlbNxTH?Kz(0xV0f21tC*?Qi0?@H`HX(obZ#+*kmI||_ z9wber(lI!?>d!(Xea7Ig!lL0I69E0|jlEN%VcZhv#c3C6C-5*-%nkRm+v~btK;w&le1= z{Mr_7yLtCWV|XsRkPGqtdrZ&jZ=rvrVut%xSgOi^BNiz<58ecyaVrGaUWu@l@IDEv zv{0y)u-x98KlN(zBUi>MaxH4K>FHBk@!&!F#5uZY#a>S%;UB=fP(%>gYZOsFk-TAP z(#N_e`Z%u_%rh*oFev3+MF27tY;J>M8R0}$5x4IIylX&4p3q`0;mJLsBJ+G<&|Cl# zL_5$U4)FB6$$qfXxRw(dhUv9nn2HYm18cC4dArAQ*~Uu90xP zhKgmE^WQFLJ650s=L+GOm#E3|Yge6o5tNg^rm~{KX;B0y9x_smHs>5$QeoVzX!$e@ z+J7jhjgJ~V0qog`z6Xl1>s+7w6aC4e?7y~?kv!*1#LJ4sfuWLYYi!mZc)I8!PWBve60g`;^`@-JpcNf1x%zi<#)Rnd7pRZS$xvlbR6|7qs z_4r>F#0|7#b@3W-79g}J6Q<3z3o8Hy)PF}H?hX5clbqTIHfUIwt&y$<3gtadaidfW z&ZQV`dux88$O)SJPi`eq!YWS6iY3|XAvsLtQ_P@X_Ntd@xuUk+<0@aZ$Oy)4{8mj8;5#l0$#th2dt7N)*jvD} z9tow`lnj6S--KX00Qb3*Chf0@*|cIrFh9j}^^!sW5ug}zcy{f4l)P!0y|4p zY682`l`9gPW-MN*Xo71t0G2mQMIdU>nP?CKctO$`m{BPhBYXYiH8J-g4EO|@5m%G@ zhd2vK0dOjC#||5Sk^-55|E5i3l{C0e4srdaoc0DztM3ZP$rI8ZBRx>2)g^KajDU#v zA%7|G?7-u4r0{i}vMVK3A&MCo0GRc&_o@U87`P~EPzbw;<;Me+5*5CxktDFxAVI+E zNoL3*yir&E68!;i?mCzbapHh?vDkeZ`L5o;V;A#n=Tr=SX2kFR1 zQ3K{5SkeHrjT+NaNoI0jver8j38soPM9%Qau`h;UUy2CHoq7*leB%Z>(LNt5ylz|t zHbCrq-#;FoGT4u`MjZfYID@ZW>n_EyD^^@jOiXijMZ8%VNVO-n``8Ojr4GBWn!;u+ouVkvGH-=K!j^ zVdRAJesh-riQA*?+wT0ukgKI)!&`p0>+E4;w>zUU&e6m6u#U5XD+&x4GucozH~zGi zWGZXi0WJUmP$l|wIly7bRPcikDlARLgvNd>)csD7OVU%rNJfUNXJ~{?TS?~P8pFTJ zVJQXifD?qyh))4dX*S>K$P8ZzYd}_|;UA%D$h}Llh)I8&2>jbG03ozR(n7jHHv1A~ z*tc&GDNCX4_+3>XYQTSV(kb7}e(ACBe+@PL;}_K5NDsA;x*)Le=9d++xW}--dE>lFUmo^MX|JUU##6ueBOu&UN8fbNM21sGJ}T=95(dAN9hdXGT#SP%*_BF?vvQ0VoEyf z;R!_DTypEL0m}{;lzoyvK*S^YEg$#}cjqB)})$$JP}R$ zgw*u@0Y6-x1`VV#o+xmcJVZmT7YcMhA_o)^De%{(GY@n%WcOqLRl=co$X_Ty3og%G zcOCr(vq{7byaWs+5_oKM{8Nicz7*g$;wr{M#@@2U8~F|0zT0&r4cl`n5*4K}1A zNYcfbZyfoGav+SuNwABajB4Jgx>x_dMH*>L{sWAkbz$?P0t&a}sS%VLKbAElq6n-{ zq$Bw$2Og0RAY)F->BxYL8K5GTfsnuCE{&KhQnTx36q#06l`02c-lz~&s$v1Y zS~0D_2;r%bz(L!UlDsGWqlwi-dC|F05K!=SvTU$dFNFWrTkGInqNw9*15M%XV&+U< zGQ$PiQ4_Yy`F4XES|Kkam_zPx}YyjI=4$#X2@u(&K0^IoT^6o@O zPh1;lyEy>v{Qst|9R*-{oP!O}Ww12lHR=FD$dz)=9Vm|6?jB*t4aIK=LNg!!e`|GO z+sGgE!FxNpf=sHa_ruD7Hu#wb&MfmbH^xrLEAA2fKQ4X{n^O9?8t}JOr8E6YO`^=r8S%Kq$fz1gN_6>LgHPkD?4?ir&Xz-{)LnQ zM^p`60$71Qfk@$6Q)KZ6OQ+)4?Oxj{bIZyf4HMv(JMC|1xv$fenFReeqbX-r;33O8 z1`pXS##)wfet|D(oidZeW<>rb#>u7^=DfF^XEr*MNaFB4p=yAsxCsC_%&UBS?gZ#z zIFJ?z-kf)9WULJ>B^%9{2%NswpuPU)3zq-6er{#n;XCH(ul31=8&yQu4^3QQ|E^jX zfT}<>PPP%_P-hcH9zZ1e0(BY;983@aIUyvP{i$?S@i?yA>6YjJ-|D$){t1U66T--6O3-CBoH;`Vr8WJ$Qt~@#{r<9O{_M}haA=`ejX{)3$A)_40LST>+0PytL>)#{OnhA0;xp;i@JGIpj0(!oSuonqtT zw5oG#AoqQ{hx4*2x@(4pBMx(;dbcG`T_`KVzat_SB>y*TN35zXqewT9^PGwSBztRG z=#VR)?#9wH?}W?kgRQ@frE55Pg0p>!bp{NaIS%~};(A;EQ~e*^_a7S?*J!qWas1== zl>e!^^_IqW5DfP=SiQW0+jJCt(mu;8cNe04Ym0!epYh~|F&^zVuWZcC_+%1-2_CvfyRWs5V1BW_!H&F z_K6=hrg+(@wm;|U?CQHaQjy!K%PmR2b@{BdND^?$g?);1y3wZ87;evrji0w22C6>P zzn{GE$8Bxbm?QT#8Uo6E4xJg86D?@$MWW32qjlMNWy&3vSloWbQ5@a`g-V}H;I|rSx?s{ zcZ3WN!gWrUoaU4ZPaT}^c80**3*%}}cShCxn)mMylieoI27#%j%Xob9!b3Yp zmg*0yR%o^0_$@y@#Epx(eQ(_uCUmsIcGYtqNl%_VwL}(__6!j8aDSM43nvj#~$pPc7Jp zala0l-ZkitWW5G552TuiKxA)*W;XhrwrJo5U!~y<;^bdqw$Fb#9R}Z%^LL1w zz)c);1>OAkTz0CfCg82vG!y^I;iW*~si-tSAPaO{&y%}l1r zx@wvf_fvNGYte}*<`KeVi?5R%D@iDCchFw>AU!CaC(Wr~Aisp&>DF%C z&^dw`J|;pw)jdpistvBb^tl{64XSAr`9Sq;>)`y7<2Q2cpTZa+v%#0!4!vJRo(xuP zpRQaSzER3yIrD3u3()Q%9So59CU(>iG#hPQA?iD(%$;`fLpJF%Jp%mv<@PUY=p&}x zS?ka3qSAi%uzjatwKOLaCH|LrBY8EKMFDd&Z9z8QW{5&}25#TvxN*0ZMB}D53bAUL z!wZTnKA3m;hCA?5Uf;O=mfD78&e_ZD$kXmy(2tuhWP2*r&Dp}f&&U2A0D~)OlH}FB zJVQxZ=|RCg0G-<`0e%g6afa!24SBZ#+pCeZFmI=<@NT3(<*|4X?CB#GJMub4@h1i zUKb2<8v0ZykVmWyd=+oxLQyj{Hz z=ttw*mtsAXSF>b|Zso;<@`B!SUt{ObdxX!;2MM z?&^UB0N;AveZ3lClwN&SD6gsH>L1r}EnNv_Nbu?p&l!cnxbVQDTfn~+qU#hOy_KjD zn(Q3CD~8H=nhStLNuZAj8TFf z)eLeOYwv#51t!4zLi)f5g6&vqaN_IvRA}S9^@aR4+U?HaCojF-bZ~IbU(86Qd{EvM zIZ?KKj*k|6JK-WA=Ps!1?V+RYrz-4)$ljw^vNtEOKEV{ZbQ zKhMRXu}k?2AVclvhn^qBuRvI%6SG8nb@L|xyIv+^_KAbVMm%Sl)fH2I*Tz2q#IKfa ztPQ$pYVqi6)^Fyk33T00{hW5yuKxe3yYhdi_Wyslgj94D72WD~7!oOwrJ=pfjOdQ7 zvQ~-^8Z%^Vp|ss}&)69fV;V9l*~ZT8x>L*$nQIH5J2eZ3CrX(ZQhS{gm3)Uvb;%W1#kMHJ*xYovUG zpBRJD5%JXjUk-e-#;@VQ?1e!8;5$ppET7)Ui!59LJuG00KcfJ}51NHaK*s4#8Tb`MY#d^{~_Y7f5V>#C4;PF?=ryn4m zrhO{P*>?Bo@SEqLjXdOoz<=0bw(hlG!iU$ELqozc`*N=nQwgNEZWw)bXl!?=y#X|I zB*uozf^D5JjGnIY#aFWpcgRC6C1MVvtB02=!6c;j!9J>7paI$crA2GimHvTIp}_^7 zva;A>dz>^7)gl;776J+F;bMSr7sydzK{)WW2mAUJu=5di(2HOvy(;__NNR69UjloK z{h|R4jVxY4C9thC=00PlG}|*63W?{iqb#`FkyuZ{8CMK_|0Gh_d4S0yD@qFN?@vEwjSvLXO{?V^IBkG*0*Y7qL@u zzNtQ*0I^fwJNi>cdjDqLNlm&-a(CnkIS_U>hNs6+kP!0E{=`ZMPZKB-|m zefd$Ihg}aE*@@KAdrytXmaoe7zIr0*I(9gvU%sI@Vh=YCiG7}{zV%vD@oj$n-c7HB znvl(D0o4$xOTj8uwCuP03eMmq7zz4Z#PS%v{se2=6}e`cdI@{Pfew%bxIqmk^+CN- zNX9HcW|Jg=FX_^)n8v(#-R8Z42MJ_LF5ekTf_H^sT=l_E8Tu#=0LqOnnLQ4H%l4~M z`gv!_s*tnWdD)S%pZhA7XHPUUbt|A3T2@+Uv?;e5i7mhoN?>}Ci{2SQofC$Ly{=S^ z7%11MvE~mj^D)IEd>bgKSVuyHBWML0Yiy(Eh(TIAs}#Lg9u|?&U|a-_o4B0TNMM0+ zmB*=-P(kY;GssfP)-4CNk3Tc28nD~bN2PCffznob2=Lj$4%l`V!yOYse4biP9}@Ny zbH3Kf6^+Jo-@tsV2{wK03FL$3)u52TLxpavKD#1}Y7MlvU1^19YS3U4v^lPeY94_gt*^j4TwymeDdykFm*!!h?y=NhHb%8?SjSJp_0?Q zn9ZA4@OD2elEPjmr=kr$RbVbmB7qA;3%iToUWG2XY>#Tff z-!Gs&@RGk5sLUqi02zKC+Dh@Lc=9Xs@LmZVVKQ68GklAw@!N2yH8%{6!0b^$6dA(N zu4yYTXUyPNl^pFJ>%mZ$qtJ$q_K53a9R|TI5n%0BxiGp*hBwoe_g26NT1w{}6)u6o z#h^RanndCpTmWf6$Mh+4ZSk6JBkr#2F>|YPta}2?Uq1su+yxtNeXbg4CHhJr!Udo{ z*sUW_`NmqX5;DAy&}0b_s3ufT4nmJK*2ojEhk2|9QbvJkdQM`16*RG`5p-yN9c z+TrPA{&`9*&!LdC-02RC)U!I7VC0a0X)Yap2l7i$w*o7h8uHP8sQaJ!x2VNpwZhtKuENr_MSX2dalC25OMp;U&XMU3H78q_>mvq<=*sWM=l}h^_ib@-?@bg52;-E7$asFYk!k4=Y{ zyf0OBpOXs;X(R2@LE8SuLK!0|6}wYmSmQ>XGJPrc5A}xO_wLF;jdej4Olq}a+Ou}c zoZi~GM%Y%}O74;O{$hoYzBpPZ5=Qd133pcXeqJIbB0qL>YnKzq+j}CNNY+DAeaezv zqYhQ_W%aMfrhoz~lw$=6YLdK`AV)|39Gh*POlN=xgJP zy05p9`|I^;fpL$#B|R<;@kFL_HZ@~CfftvV z3_n23Y3_y$3gGpr;8Qy6MVz_^*E>vU96yK6QHjg?1cSXZGpxp}LCzvw{PhqTjMcO$ z;J^vv0NFI&%AAndQEC(|?uoxF8c~c3jEiGVVg#i9d64g}nxkv=QC>$hJ0FeKJAj@0 zpiU~Luza=HOJ^6d9LOFmZa22qPuL_2rxD|d_9`}}c)RAU&uoJ(Zkz45IGF&gSvqS? z6TU-!ahN)WZu#dk1n%Fv=DrKMlWD%0Q#h*Lkn7=(-{caylk{Ra$KfRNe>taM0e>*ozMqJofo0!)JEXM;@X$jsL%$AaYk*>> z`13wATAvF}1Lyer0S*1p>Sj5dnezMz*$fNc&?tC!9E~R!#ZN$Zl4;74T zvPcyMqx&<2e3s18s2Ftgo7*>BONI?4FX_Fr-BWwK-;XAfb9jz@-<^5U$51jIC9iOd**&t*|HvXs-fLCBwUz#>E3pn10e) z8wW{aQ+++Kz%g~uDpJv+Fo1UmJ2E}@2>nr%G*$2x6T47NfjD=`wzElOmMphMYBhZt zWjZFFkj9{cy}oOJhC26|WSyihy4!<;55eHmowrbU#1+d_;WTSYNbMg&SDSu$5K-Kp zZ{T@7(6Rt7r9U@FJc%x7^tLiL$p^Sz9~@Tq0J$Bo_1=lt<190KuaJ#qzdH=*-OTi` zy+i{CcG?x4uhlR=6>I^NFj4tImVzb`t81cS?z;SBc&$G6jL>NeT@=v1bCSp&RIr-f zbX)yoUhj;*+|2z(*rf7UmIFR)GX7}LYJhXr%mHe-V!Ns2c*;=I zLT#cei9cNPI5K6@5Q+5yhnvkHBk!aY>`!r_KKvGDyUm^^+Vn&k3dQ2pGF$Ze;z9m;waGKt{xV-2Y;mp(*132~cb zNW0S8j+0z90}Fn+H&v)c0fEX*x&D4vljM8Q)iHDJ6_$F~$7`rq2nad18HX@6Hi)r5xxH{ojTn&7(v& zc}(7|Ip16CB6Y`w?8^GvZHf86{6;b2idk*9%$<}0pF6W zM7?B&h)u7&h#V!UPv<0ckLzL1*RE=kZ9nr(J!71%I(Ax9?-R8y$*L&AhT3h5{Kyji z4r`fx#Ne^0Ym|aTjp^uni!k?ru zCo$$x9#>QQ62bomX>eGCheP6WuVYchR83pNm}$(2dAD01a0KO9r+ICNZ+|oQZ=LBx z20l0Ii#XJhdTBZro-dP4ob`9@-A6PCC{zIQG4YK1Ue%SJZ`zZoGC=S^t5YJ65Sb*M z;ee0=#a1P3r{h#D@C-UP{nWS(vrW^0zNNQ!#;J4qchX|594*SZXZP$@25(?+({YVb!#*jUe90m=8U;%`A_ez6v12JMS1dMb_cr%VE0 zCrq)yBLpBXic$hYQ}fPda=2SaWeR8S{GE$cuLVTJqb_C;{7s--(3%WS=JNvCk!=tN zKjhT2G-MzloO8RQ?qG+>T{hFWZT*e{k=a#qZmp5e$G%&adINIRGE(Wfsu(l$_(xTm z2OP>;-fzA8(J#^Fu2uQPJwJGuFSim~Il+-ofV9y2m|AZ6DwO4o@EA4LL`-I(XrlWFY7qr3fGV`Z4En zy2#7F>cy^q=84&s-8!J7&{?eM zB5Uccyi-_yJuLRiX^SU%sw~sgX4!}Ct=?;L1Z`V?0(UkjDZT8`tkmqiu;K4-CBADa zVIRvv(h#PyP_q z-K1@|!xsJ_<>t|ll#n2Gf@sCL615x6Pa=!vZ;&$w2gk$1<`n;>cWrzZs}~-+Q1SdbXz{xGdEuo#Ud|~=T&m#ac1O^xY delta 19 acmeBW>SdbXz{$wWBg@_S#M@+|=Mexf`31TF diff --git a/iso_configs/plymouth/lines/password_dot16.png b/iso_configs/plymouth/lines/password_dot16.png old mode 100644 new mode 100755 index e40f4b13c08f6108cb222085143bf072d92ed46f..e0a934e2ef3d1d62b4a6fe03ab9a6b5f6a5f4220 GIT binary patch delta 19 bcmbQsG?!_DA1AjEw}f`a@`dRW!;b*~HYNsE delta 19 acmbQsG?!_DA15O-k1TiR6K|7=;l}_p8wL0P diff --git a/iso_configs/plymouth/lines/password_field.png b/iso_configs/plymouth/lines/password_field.png old mode 100644 new mode 100755 index 12182327196685e746fd9dcfd8c43ebe1a3aac29..d287d5a0c7e4793b19193aeee3277ec773d70602 GIT binary patch delta 20 bcmaFO@tR|T11Gl-w}f`a@`dReJ(XAhM<@nj delta 20 bcmaFO@tR|T11BRhk1TiR6K|7^o=PkLM85_E diff --git a/iso_configs/plymouth/lines/password_field16.png b/iso_configs/plymouth/lines/password_field16.png old mode 100644 new mode 100755 index add47208854e23ceb54416f17aca46dea4780a46..f096d7335dd640a3c90b870e490aeff83e6ca354 GIT binary patch delta 19 acmaFH_>6HvDJQoOw}f`a@`dRW>oNdBS_akt delta 19 acmaFH_>6HvDJLT{k1TiR6K|7=br}FaPX>4Z diff --git a/iso_configs/plymouth/lines/progress_dot_off.png b/iso_configs/plymouth/lines/progress_dot_off.png new file mode 100755 index 0000000000000000000000000000000000000000..21c76920585a910fbe6dcbf733a8306da76b8b34 GIT binary patch literal 229 zcmeAS@N?(olHy`uVBq!ia0vp^q9Dw|3?!p1cPs@`oCO|{#S9GG!XV7ZFl&wkP>{XE z)7O>#IkynEgm%XAh3P;cl>na*S0Mc#2S~|p{`dbMP_jGmbqdJbk|4ie21XVs1K-@W z$2g3lp8^FLlf2zsI6vN8`Uc1`@^oHUDH733vqC$W srmVfSb#*9Xx5cKal;R0zm$NZ2Fgb8(nN~U|8y%cxd?@XYkzrew@ExbLPB)?jt{GpK;|Y{~_Vs-JNs( zTzW7!_EKL?-E7*f%9Y37k~+?Adw*hZ=EiV^_x09^54`wqHMc(hA3|OE_FKO^_jt>i z_uDo0iDd38D?)c{Iyt?|&)rkJ^ey^4O&Eob7hO|+``r20*3=$1CVY{V)h6_v`LIrZ z;q&La%8K8cTgBcTp7rp{;ORt=3A8uVR_*r)b>hU;f4gw->cfkA7paH#7EL_{r-nz}bZt}KJ;Tw6+^Lrn>kuBWy zME=y$j$=JN-QhPox>nWX)D+!$6MLvptu%H{y#3^q2Rc*gd%s9to0;sx4lM`!-n5Ue z|5NbH_!v5nOO}}!VEpIR1P~lCS&)z!gfE^9vME}uW;RBdl~CF{6+ z@8!ME_3oym)rYl9mk+O4cX;FdxBjZuty%RE|0=lqk6V6RcITm|f5y)H!w-MAVoq1_ zzN?dF-YUFE?Oa+|GyUfU$%rtDqoLEIC_uEtPCLbz;-GqhEiWv2Ks{8_(NUdr{w| zWYk}^!ZKb|;x-^DVQ5RmRn&MG=3SIhfw&$Tco;_IgpcSu^%8;0l8>ly2(+O3VZB_| ztih`0ifXZWz37pMMGN!1DIO8Tp#ktzJeJV;l#j4@dGv0YDFU}3#(E!7D}->rqCuRq zaW5cq&1HkjcB13toB zpO+L-mU!#cA+avIo1;m$i)BbI>|sa{p`9cHJTw;utlQyq45JDrbOR(rXi_0^n~Zok z#^YpNoJ2b52uE@v43oeGoFvV%4v}@zBF9L>DDKx})RiDMJSvk)LR2os4c)XmLfW0E zIXHV5kRFbSkdd&H1Z$&*ETI@M zBFMopRy;Ix3YlLQP900u;)G|Ta{gJ+p)#>KOCp7z{F zdw6;nUXkQT)Bi)8n+Nx%OI{}HX#FP3l-^NQ@S*f5J&eiLR>E;>Q}94cr=WvIm@XFL zN>7RPAQ6S=^yqKb0lWMytsprVNdmN;bcS7Sl5<2v(gUDK(hev^!mQnHcSbA~2HABb zVkChEi=s$Jq!nsUODlY?Rj7MMqLcN|tO61YQIg*jjOtIAGS7^GjJ?!1H1S%1VTTOz zOWV-lh0a21@G$Jx48{9>e)?7E`e8!gIwouOe-E*(M%wpJfGUL;kUuG^x5G+_y5jax3cJu!LnvLY3 literal 0 HcmV?d00001 diff --git a/iso_configs/plymouth/lines/progress_dot_on.png b/iso_configs/plymouth/lines/progress_dot_on.png new file mode 100755 index 0000000000000000000000000000000000000000..97c74a2d36958e254e9ad40d072f57501cbf7492 GIT binary patch literal 269 zcmeAS@N?(olHy`uVBq!ia0vp^q9Dw{3?%2B3|#`GI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfb8aDS3GIyK3)6u@W&u7St`A(?Pn#(o zIj^&K=c)Vee_u4*l?jw&O!9Vj5qz}Ob{CN2;OXKRB5^r6K|Eox*c4cu0Tl4Q{u;;fH7F=}0_duRB-}HwcjxsPY?9*ht-uK=v Q0%#V4r>mdKI;Vst0M{sNJ^%m! literal 0 HcmV?d00001 diff --git a/iso_configs/plymouth/lines/progress_dot_on16.png b/iso_configs/plymouth/lines/progress_dot_on16.png new file mode 100755 index 0000000000000000000000000000000000000000..97c74a2d36958e254e9ad40d072f57501cbf7492 GIT binary patch literal 269 zcmeAS@N?(olHy`uVBq!ia0vp^q9Dw{3?%2B3|#`GI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfb8aDS3GIyK3)6u@W&u7St`A(?Pn#(o zIj^&K=c)Vee_u4*l?jw&O!9Vj5qz}Ob{CN2;OXKRB5^r6K|Eox*c4cu0Tl4Q{u;;fH7F=}0_duRB-}HwcjxsPY?9*ht-uK=v Q0%#V4r>mdKI;Vst0M{sNJ^%m! literal 0 HcmV?d00001