From 9a7978aeabadc50c6049c5cd150b572ec9bd9e87 Mon Sep 17 00:00:00 2001 From: Jens Arnold Date: Tue, 25 Mar 2008 19:43:08 +0000 Subject: [PATCH] Cabbiev2 gigabeat background: reduce WPS backdrop filesize by storing it as 24 bit BMP instead of unnecessary 32 bit. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16802 a1c6a512-1295-4272-9138-f99709370657 --- apps/SOURCES | 2 + apps/codecs/Makefile | 1 + apps/codecs/SOURCES | 1 + apps/filetypes.c | 1 + apps/metadata.c | 8 + apps/metadata/metadata_parsers.h | 1 + apps/plugins/CATEGORIES | 1 + apps/plugins/SOURCES | 11 +- apps/plugins/SUBDIRS | 4 +- apps/plugins/doom/i_video.c | 10 + apps/plugins/greyscale.c | 11 + apps/plugins/jpeg.c | 12 + apps/plugins/lib/SOURCES | 3 +- apps/plugins/lib/grey.h | 6 +- apps/plugins/lib/grey_core.c | 87 ++++- apps/plugins/lib/grey_draw.c | 2 +- apps/plugins/lib/grey_parm.c | 4 +- apps/plugins/lib/grey_scroll.c | 6 +- apps/plugins/mandelbrot.c | 16 + apps/plugins/mpegplayer/mpeg_settings.c | 8 + apps/plugins/mpegplayer/mpegplayer.c | 9 + apps/plugins/plasma.c | 13 + apps/plugins/test_fps.c | 4 +- bootloader/ipod.c | 64 ++++ firmware/SOURCES | 1 + firmware/backlight.c | 2 +- firmware/export/config-player.h | 2 +- firmware/export/id3.h | 1 + firmware/id3.c | 3 + firmware/target/arm/iriver/h10/lcd-h10_5gb.c | 112 +++---- .../coldfire/iaudio/lcd-remote-iaudio.c | 125 +++++--- .../target/coldfire/iaudio/m3/button-m3.c | 2 +- firmware/target/coldfire/iaudio/m3/lcd-m3.c | 303 ++---------------- wps/cabbiev2/wpsbackdrop-240x320x16.bmp | Bin 307256 -> 230456 bytes 34 files changed, 410 insertions(+), 426 deletions(-) diff --git a/apps/SOURCES b/apps/SOURCES index 96b5c0f825..56ed12d947 100644 --- a/apps/SOURCES +++ b/apps/SOURCES @@ -75,6 +75,7 @@ gui/backdrop.c #endif #ifdef HAVE_LCD_CHARCELLS +player/bmp.c player/icons.c player/keyboard.c #endif @@ -129,6 +130,7 @@ metadata/mp4.c metadata/mpc.c metadata/ogg.c metadata/sid.c +metadata/mod.c metadata/spc.c metadata/vorbis.c metadata/wave.c diff --git a/apps/codecs/Makefile b/apps/codecs/Makefile index 5a65341d02..7c066d284d 100644 --- a/apps/codecs/Makefile +++ b/apps/codecs/Makefile @@ -47,6 +47,7 @@ all: $(LINKCODEC) $(ROCKS) ifndef SIMVER $(BUILDDIR)/%.a : % $(CODECDEPS) +$(OBJDIR)/mod.elf : $(OBJDIR)/mod.o $(OBJDIR)/codec_crt0.o $(OBJDIR)/wav.elf : $(OBJDIR)/wav.o $(OBJDIR)/codec_crt0.o $(OBJDIR)/sid.elf : $(OBJDIR)/sid.o $(OBJDIR)/codec_crt0.o $(OBJDIR)/adx.elf : $(OBJDIR)/adx.o $(OBJDIR)/codec_crt0.o diff --git a/apps/codecs/SOURCES b/apps/codecs/SOURCES index a93cb6c0cc..3c0118c1ce 100644 --- a/apps/codecs/SOURCES +++ b/apps/codecs/SOURCES @@ -13,6 +13,7 @@ wma.c aac.c #endif ape.c +mod.c shorten.c aiff.c speex.c diff --git a/apps/filetypes.c b/apps/filetypes.c index 1ef136d5ce..694bb0a7cf 100644 --- a/apps/filetypes.c +++ b/apps/filetypes.c @@ -69,6 +69,7 @@ const struct filetype inbuilt_filetypes[] = { { "m4a", FILE_ATTR_AUDIO, Icon_Audio, VOICE_EXT_MPA }, { "m4b", FILE_ATTR_AUDIO, Icon_Audio, VOICE_EXT_MPA }, { "mp4", FILE_ATTR_AUDIO, Icon_Audio, VOICE_EXT_MPA }, + { "mod", FILE_ATTR_AUDIO, Icon_Audio, VOICE_EXT_MPA }, { "shn", FILE_ATTR_AUDIO, Icon_Audio, VOICE_EXT_MPA }, { "aif", FILE_ATTR_AUDIO, Icon_Audio, VOICE_EXT_MPA }, { "aiff",FILE_ATTR_AUDIO, Icon_Audio, VOICE_EXT_MPA }, diff --git a/apps/metadata.c b/apps/metadata.c index 3abbd74c35..303fafc070 100644 --- a/apps/metadata.c +++ b/apps/metadata.c @@ -183,6 +183,14 @@ bool get_metadata(struct mp3entry* id3, int fd, const char* trackname) break; + case AFMT_MOD: + if (!get_mod_metadata(fd, id3)) + { + return false; + } + + break; + case AFMT_SHN: id3->vbr = true; id3->filesize = filesize(fd); diff --git a/apps/metadata/metadata_parsers.h b/apps/metadata/metadata_parsers.h index c3265f8a43..b34d09fe4c 100644 --- a/apps/metadata/metadata_parsers.h +++ b/apps/metadata/metadata_parsers.h @@ -25,6 +25,7 @@ bool get_mp4_metadata(int fd, struct mp3entry* id3); bool get_monkeys_metadata(int fd, struct mp3entry* id3); bool get_musepack_metadata(int fd, struct mp3entry *id3); bool get_sid_metadata(int fd, struct mp3entry* id3); +bool get_mod_metadata(int fd, struct mp3entry* id3); bool get_spc_metadata(int fd, struct mp3entry* id3); bool get_ogg_metadata(int fd, struct mp3entry* id3); bool get_wave_metadata(int fd, struct mp3entry* id3); diff --git a/apps/plugins/CATEGORIES b/apps/plugins/CATEGORIES index 4b267c162b..c2ad75e0c7 100644 --- a/apps/plugins/CATEGORIES +++ b/apps/plugins/CATEGORIES @@ -80,6 +80,7 @@ stopwatch,apps test_codec,viewers test_disk,apps test_fps,apps +test_grey,apps test_sampr,apps test_scanrate,apps test_viewports,apps diff --git a/apps/plugins/SOURCES b/apps/plugins/SOURCES index 23c22f9826..968592d15a 100644 --- a/apps/plugins/SOURCES +++ b/apps/plugins/SOURCES @@ -19,6 +19,7 @@ stats.c stopwatch.c vbrfix.c viewer.c +test_disk.c #ifdef OLYMPUS_MROBE_500 /* remove these once the plugins before it are compileable */ @@ -46,17 +47,22 @@ flipit.c #ifdef HAVE_LCD_BITMAP /* Not for the Player */ brickmania.c maze.c -mazezam.c +mazezam.c +greyscale.c +test_fps.c +test_scanrate.c text_editor.c wavview.c robotfindskitten.c /* Plugins needing the grayscale lib on low-depth LCDs */ -#ifndef IAUDIO_M3 /* FIXME: no greyscale library yet */ fire.c jpeg.c mandelbrot.c plasma.c + +#if LCD_DEPTH < 4 +test_grey.c #endif blackjack.c @@ -118,6 +124,7 @@ nim.c #if CONFIG_CODEC == SWCODEC /* software codec platforms */ mp3_encoder.c +test_codec.c wav2wv.c #else /* hardware codec platforms */ #ifndef HAVE_MMC /* not for Ondio, has no remote control pin */ diff --git a/apps/plugins/SUBDIRS b/apps/plugins/SUBDIRS index 9bda7c2715..b0bffc73eb 100644 --- a/apps/plugins/SUBDIRS +++ b/apps/plugins/SUBDIRS @@ -34,7 +34,7 @@ pacbox /* For all the color targets */ #if defined(HAVE_LCD_COLOR) || \ - (LCD_DEPTH == 2) && !defined(ARCHOS_AV300) && !defined(IAUDIO_M3) + (LCD_DEPTH == 2) && !defined(ARCHOS_AV300) doom #endif @@ -42,9 +42,7 @@ doom #if CONFIG_CODEC == SWCODEC midi /* beatbox */ -#ifndef IAUDIO_M3 /* TODO: no greyscale lib yet */ mpegplayer #endif -#endif #endif /* IRIVER_IFP7XX_SERIES */ diff --git a/apps/plugins/doom/i_video.c b/apps/plugins/doom/i_video.c index bc0f204d3b..ce4b670583 100644 --- a/apps/plugins/doom/i_video.c +++ b/apps/plugins/doom/i_video.c @@ -235,6 +235,16 @@ void I_ShutdownGraphics(void) #define DOOMBUTTON_ESC BUTTON_OFF #define DOOMBUTTON_ENTER BUTTON_SELECT #define DOOMBUTTON_WEAPON BUTTON_ON +#elif CONFIG_KEYPAD == IAUDIO_M3_PAD +#define DOOMBUTTON_ESC BUTTON_RC_REC +#define DOOMBUTTON_UP BUTTON_RC_VOL_UP +#define DOOMBUTTON_DOWN BUTTON_RC_VOL_DOWN +#define DOOMBUTTON_LEFT BUTTON_RC_REW +#define DOOMBUTTON_RIGHT BUTTON_RC_FF +#define DOOMBUTTON_OPEN BUTTON_RC_PLAY +#define DOOMBUTTON_SHOOT BUTTON_RC_MODE +#define DOOMBUTTON_ENTER BUTTON_RC_PLAY +#define DOOMBUTTON_WEAPON BUTTON_RC_MENU #elif CONFIG_KEYPAD == COWOND2_PAD #define DOOMBUTTON_ESC BUTTON_POWER #define DOOMBUTTON_UP BUTTON_UP diff --git a/apps/plugins/greyscale.c b/apps/plugins/greyscale.c index 522a81fc28..42ba08f22e 100644 --- a/apps/plugins/greyscale.c +++ b/apps/plugins/greyscale.c @@ -78,6 +78,17 @@ PLUGIN_HEADER #define GREYSCALE_LEFT BUTTON_LEFT #define GREYSCALE_RIGHT BUTTON_RIGHT #define GREYSCALE_OFF BUTTON_EQ + +#elif CONFIG_KEYPAD == IAUDIO_M3_PAD +#define GREYSCALE_SHIFT BUTTON_RC_PLAY /* somewhat dangerous... */ +#define GREYSCALE_UP BUTTON_RC_VOL_UP +#define GREYSCALE_DOWN BUTTON_RC_VOL_DOWN +#define GREYSCALE_LEFT BUTTON_RC_REW +#define GREYSCALE_RIGHT BUTTON_RC_FF +#define GREYSCALE_OFF BUTTON_RC_REC + +#define GREYSCALE_RC_OFF BUTTON_REC + #endif #define GFX_HEIGHT (LCD_HEIGHT-8) diff --git a/apps/plugins/jpeg.c b/apps/plugins/jpeg.c index e2c1b4861b..fcef31f5fd 100644 --- a/apps/plugins/jpeg.c +++ b/apps/plugins/jpeg.c @@ -198,6 +198,18 @@ PLUGIN_HEADER #define JPEG_NEXT (BUTTON_DISPLAY | BUTTON_RIGHT) #define JPEG_PREVIOUS (BUTTON_DISPLAY | BUTTON_LEFT) +#elif CONFIG_KEYPAD == IAUDIO_M3_PAD +#define JPEG_ZOOM_IN_PRE BUTTON_RC_PLAY +#define JPEG_ZOOM_IN (BUTTON_RC_PLAY|BUTTON_REL) +#define JPEG_ZOOM_OUT (BUTTON_RC_PLAY|BUTTON_REPEAT) +#define JPEG_UP BUTTON_RC_VOL_UP +#define JPEG_DOWN BUTTON_RC_VOL_DOWN +#define JPEG_LEFT BUTTON_RC_REW +#define JPEG_RIGHT BUTTON_RC_FF +#define JPEG_MENU BUTTON_RC_REC +#define JPEG_NEXT BUTTON_RC_MODE +#define JPEG_PREVIOUS BUTTON_RC_MENU + #elif CONFIG_KEYPAD == COWOND2_PAD #define JPEG_ZOOM_IN BUTTON_PLUS #define JPEG_ZOOM_OUT BUTTON_MINUS diff --git a/apps/plugins/lib/SOURCES b/apps/plugins/lib/SOURCES index f1aded6122..6a44c80ffa 100644 --- a/apps/plugins/lib/SOURCES +++ b/apps/plugins/lib/SOURCES @@ -3,8 +3,7 @@ configfile.c fixedpoint.c playback_control.c rgb_hsv.c -#if defined(HAVE_LCD_BITMAP) && (LCD_DEPTH < 4) \ - && !defined(IAUDIO_M3) /* TODO: Test whether it can be implemented */ +#if defined(HAVE_LCD_BITMAP) && (LCD_DEPTH < 4) grey_core.c grey_draw.c grey_parm.c diff --git a/apps/plugins/lib/grey.h b/apps/plugins/lib/grey.h index ce37e17829..4298ae3ada 100644 --- a/apps/plugins/lib/grey.h +++ b/apps/plugins/lib/grey.h @@ -134,8 +134,8 @@ void grey_ub_scroll_down(int count); #if LCD_PIXELFORMAT == HORIZONTAL_PACKING #define _GREY_BSHIFT 0 -#else -#if LCD_DEPTH == 1 +#else /* vertical packing or vertical interleaved */ +#if (LCD_DEPTH == 1) || (LCD_PIXELFORMAT == VERTICAL_INTERLEAVED) #define _GREY_BSHIFT 3 #elif LCD_DEPTH == 2 #define _GREY_BSHIFT 2 @@ -155,7 +155,7 @@ struct _grey_info #if LCD_PIXELFORMAT == HORIZONTAL_PACKING int bx; /* 8-pixel units */ int bwidth; /* 8-pixel units */ -#else /* vertical packing */ +#else /* vertical packing or vertical interleaved */ int by; /* 4-pixel or 8-pixel units */ int bheight; /* 4-pixel or 8-pixel units */ #endif diff --git a/apps/plugins/lib/grey_core.c b/apps/plugins/lib/grey_core.c index caa7af2f25..ad8f306dea 100644 --- a/apps/plugins/lib/grey_core.c +++ b/apps/plugins/lib/grey_core.c @@ -26,7 +26,8 @@ #include "plugin.h" #include "grey.h" -#if defined(CPU_PP) && defined(HAVE_ADJUSTABLE_CPU_FREQ) +#if defined(HAVE_ADJUSTABLE_CPU_FREQ) && \ + (defined(CPU_PP) || (CONFIG_LCD == LCD_TL0350A)) #define NEED_BOOST #endif @@ -143,6 +144,42 @@ static const unsigned char lcdlinear[256] = { 203, 206, 209, 212, 215, 219, 222, 226, 229, 233, 236, 240, 244, 248, 251, 255 }; +#elif CONFIG_LCD == LCD_TL0350A +/* generic linear curve - not yet measured */ +static const unsigned char lcdlinear[256] = { + 0, 1, 2, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255 +}; #endif #else /* SIMULATOR */ /* undo a (generic) PC display gamma of 2.0 to simulate target behaviour */ @@ -225,7 +262,7 @@ static unsigned long _grey_get_pixel(int x, int y) int yg = y - _grey_info.y; #if LCD_PIXELFORMAT == HORIZONTAL_PACKING int idx = _grey_info.width * yg + xg; -#else +#else /* vertical packing or vertical interleaved */ int idx = _grey_info.width * (yg & ~_GREY_BMASK) + (xg << _GREY_BSHIFT) + (~yg & _GREY_BMASK); #endif @@ -243,7 +280,7 @@ static void _timer_isr(void) _grey_info.bx, _grey_info.y, _grey_info.bwidth, _grey_info.height, _grey_info.width); -#else +#else /* vertical packing or vertical interleaved */ _grey_info.rb->lcd_blit_grey_phase(_grey_info.values, _grey_info.phases, _grey_info.x, _grey_info.by, _grey_info.width, _grey_info.bheight, @@ -355,8 +392,8 @@ bool grey_init(struct plugin_api* newrb, unsigned char *gbuf, long gbuf_size, #if LCD_PIXELFORMAT == HORIZONTAL_PACKING bdim = (width + 7) >> 3; width = bdim << 3; -#else /* vertical packing */ -#if LCD_DEPTH == 1 +#else /* vertical packing or vertical interleaved */ +#if (LCD_DEPTH == 1) || (LCD_PIXELFORMAT == VERTICAL_INTERLEAVED) bdim = (height + 7) >> 3; height = bdim << 3; #elif LCD_DEPTH == 2 @@ -408,7 +445,7 @@ bool grey_init(struct plugin_api* newrb, unsigned char *gbuf, long gbuf_size, #if LCD_PIXELFORMAT == HORIZONTAL_PACKING _grey_info.bx = 0; _grey_info.bwidth = bdim; -#else +#else /* vertical packing or vertical interleaved */ _grey_info.by = 0; _grey_info.bheight = bdim; #endif @@ -491,6 +528,9 @@ void grey_show(bool enable) _grey_info.rb->timer_register(1, NULL, TIMER_FREQ / 83, 1, _timer_isr); #elif CONFIG_LCD == LCD_MROBE100 _grey_info.rb->timer_register(1, NULL, TIMER_FREQ / 83, 1, _timer_isr); /* not calibrated/tested */ +#elif CONFIG_LCD == LCD_TL0350A + _grey_info.rb->timer_register(1, NULL, TIMER_FREQ / 75, 1, _timer_isr); /* verified */ + /* This is half of the actual frame frequency, but 150Hz is too much */ #endif /* CONFIG_LCD */ #endif /* !SIMULATOR */ _grey_info.rb->screen_dump_set_hook(grey_screendump_hook); @@ -607,8 +647,11 @@ static void grey_screendump_hook(int fd) #elif LCD_DEPTH == 2 int shift; #endif -#endif /* LCD_PIXELFORMAT == VERTICAL_PACKING */ - unsigned char *lcdptr; +#elif LCD_PIXELFORMAT == VERTICAL_INTERLEAVED + unsigned data; + int shift; +#endif /* LCD_PIXELFORMAT */ + fb_data *lcdptr; unsigned char *clut_entry; unsigned char linebuf[MAX(4*BMP_VARCOLORS,BMP_LINESIZE)]; @@ -660,7 +703,7 @@ static void grey_screendump_hook(int fd) lcdptr++; } #endif /* LCD_DEPTH */ -#else /* LCD_PIXELFORMAT == VERTICAL_PACKING */ +#elif LCD_PIXELFORMAT == VERTICAL_PACKING #if LCD_DEPTH == 1 mask = 1 << (y & 7); lcdptr = _grey_info.rb->lcd_framebuffer + _GREY_MULUQ(LCD_WIDTH, y >> 3); @@ -708,6 +751,32 @@ static void grey_screendump_hook(int fd) lcdptr++; } #endif /* LCD_DEPTH */ +#elif LCD_PIXELFORMAT == VERTICAL_INTERLEAVED +#if LCD_DEPTH == 2 + shift = y & 7; + lcdptr = _grey_info.rb->lcd_framebuffer + _GREY_MULUQ(LCD_WIDTH, y >> 3); + + for (x = 0; x < LCD_WIDTH; x++) + { + gx = x - _grey_info.x; + + if (((unsigned)gy < (unsigned)_grey_info.height) + && ((unsigned)gx < (unsigned)_grey_info.width)) + { + linebuf[x] = BMP_FIXEDCOLORS + + _grey_info.values[_GREY_MULUQ(_grey_info.width, + gy & ~_GREY_BMASK) + + (gx << _GREY_BSHIFT) + + (~gy & _GREY_BMASK)]; + } + else + { + data = (*lcdptr >> shift) & 0x0101; + linebuf[x] = ((data >> 7) | data) & 3; + } + lcdptr++; + } +#endif /* LCD_DEPTH */ #endif /* LCD_PIXELFORMAT */ _grey_info.rb->write(fd, linebuf, BMP_LINESIZE); diff --git a/apps/plugins/lib/grey_draw.c b/apps/plugins/lib/grey_draw.c index 7b24ba4c70..a1b99fc13b 100644 --- a/apps/plugins/lib/grey_draw.c +++ b/apps/plugins/lib/grey_draw.c @@ -630,7 +630,7 @@ void grey_ub_gray_bitmap_part(const unsigned char *src, int src_x, int src_y, { #if LCD_PIXELFORMAT == HORIZONTAL_PACKING int idx = _GREY_MULUQ(_grey_info.width, yc); -#else +#else /* vertical packing or vertical interleaved */ int idx = _GREY_MULUQ(_grey_info.width, yc & ~_GREY_BMASK) + (~yc & _GREY_BMASK); #endif /* LCD_PIXELFORMAT */ diff --git a/apps/plugins/lib/grey_parm.c b/apps/plugins/lib/grey_parm.c index 63d09dfd72..e4aaec3efd 100644 --- a/apps/plugins/lib/grey_parm.c +++ b/apps/plugins/lib/grey_parm.c @@ -34,8 +34,8 @@ void grey_set_position(int x, int y) #if LCD_PIXELFORMAT == HORIZONTAL_PACKING _grey_info.bx = (x + 4) >> 3; x = 8 * _grey_info.bx; -#else -#if LCD_DEPTH == 1 +#else /* vertical packing or vertical interleaved */ +#if (LCD_DEPTH == 1) || (LCD_PIXELFORMAT == VERTICAL_INTERLEAVED) _grey_info.by = (y + 4) >> 3; y = 8 * _grey_info.by; #elif LCD_DEPTH == 2 diff --git a/apps/plugins/lib/grey_scroll.c b/apps/plugins/lib/grey_scroll.c index 12a27daf23..ba790b035f 100644 --- a/apps/plugins/lib/grey_scroll.c +++ b/apps/plugins/lib/grey_scroll.c @@ -191,7 +191,8 @@ void grey_ub_scroll_up(int count) _grey_info.fg_brightness : _grey_info.bg_brightness]; -#if LCD_PIXELFORMAT == VERTICAL_PACKING +#if (LCD_PIXELFORMAT == VERTICAL_PACKING) \ + || (LCD_PIXELFORMAT == VERTICAL_INTERLEAVED) if (count & _GREY_BMASK) { /* Scrolling by fractional blocks - move pixel wise. */ @@ -262,7 +263,8 @@ void grey_ub_scroll_down(int count) _grey_info.fg_brightness : _grey_info.bg_brightness]; -#if LCD_PIXELFORMAT == VERTICAL_PACKING +#if (LCD_PIXELFORMAT == VERTICAL_PACKING) \ + || (LCD_PIXELFORMAT == VERTICAL_INTERLEAVED) if (count & _GREY_BMASK) { /* Scrolling by fractional blocks - move pixel wise. */ diff --git a/apps/plugins/mandelbrot.c b/apps/plugins/mandelbrot.c index 26ec3e4ab9..4a4872b827 100644 --- a/apps/plugins/mandelbrot.c +++ b/apps/plugins/mandelbrot.c @@ -202,6 +202,22 @@ PLUGIN_HEADER #define MANDELBROT_MAXITER_DEC BUTTON_PLAY #define MANDELBROT_RESET BUTTON_DISPLAY +#elif CONFIG_KEYPAD == IAUDIO_M3_PAD +#define MANDELBROT_QUIT BUTTON_RC_REC +#define MANDELBROT_UP BUTTON_RC_VOL_UP +#define MANDELBROT_DOWN BUTTON_RC_VOL_DOWN +#define MANDELBROT_LEFT BUTTON_RC_REW +#define MANDELBROT_RIGHT BUTTON_RC_FF +#define MANDELBROT_ZOOM_IN_PRE BUTTON_RC_PLAY +#define MANDELBROT_ZOOM_IN (BUTTON_RC_PLAY | BUTTON_REL) +#define MANDELBROT_ZOOM_OUT_PRE BUTTON_RC_PLAY +#define MANDELBROT_ZOOM_OUT (BUTTON_RC_PLAY | BUTTON_REPEAT) +#define MANDELBROT_MAXITER_INC_PRE BUTTON_RC_MODE +#define MANDELBROT_MAXITER_INC (BUTTON_RC_MODE|BUTTON_REL) +#define MANDELBROT_MAXITER_DEC_PRE BUTTON_RC_MODE +#define MANDELBROT_MAXITER_DEC (BUTTON_RC_MODE|BUTTON_REPEAT) +#define MANDELBROT_RESET BUTTON_RC_MENU + #elif CONFIG_KEYPAD == COWOND2_PAD #define MANDELBROT_QUIT BUTTON_POWER #define MANDELBROT_UP BUTTON_UP diff --git a/apps/plugins/mpegplayer/mpeg_settings.c b/apps/plugins/mpegplayer/mpeg_settings.c index 7dfdd36927..b7b7def729 100644 --- a/apps/plugins/mpegplayer/mpeg_settings.c +++ b/apps/plugins/mpegplayer/mpeg_settings.c @@ -102,6 +102,14 @@ struct mpeg_settings settings; #define MPEG_START_TIME_SCROLL_UP BUTTON_PLAY #define MPEG_START_TIME_EXIT BUTTON_POWER +#elif CONFIG_KEYPAD == IAUDIO_M3_PAD +#define MPEG_START_TIME_SELECT BUTTON_RC_PLAY +#define MPEG_START_TIME_LEFT BUTTON_RC_REW +#define MPEG_START_TIME_RIGHT BUTTON_RC_FF +#define MPEG_START_TIME_UP BUTTON_RC_VOL_UP +#define MPEG_START_TIME_DOWN BUTTON_RC_VOL_DOWN +#define MPEG_START_TIME_EXIT BUTTON_RC_REC + #elif CONFIG_KEYPAD == COWOND2_PAD #define MPEG_START_TIME_SELECT BUTTON_SELECT #define MPEG_START_TIME_SCROLL_UP BUTTON_PLUS diff --git a/apps/plugins/mpegplayer/mpegplayer.c b/apps/plugins/mpegplayer/mpegplayer.c index d068fd8254..8a947904a3 100644 --- a/apps/plugins/mpegplayer/mpegplayer.c +++ b/apps/plugins/mpegplayer/mpegplayer.c @@ -202,6 +202,15 @@ PLUGIN_IRAM_DECLARE #define MPEG_RW BUTTON_LEFT #define MPEG_FF BUTTON_RIGHT +#elif CONFIG_KEYPAD == IAUDIO_M3_PAD +#define MPEG_MENU BUTTON_RC_MENU +#define MPEG_STOP BUTTON_RC_REC +#define MPEG_PAUSE BUTTON_RC_PLAY +#define MPEG_VOLDOWN BUTTON_RC_VOL_DOWN +#define MPEG_VOLUP BUTTON_RC_VOL_UP +#define MPEG_RW BUTTON_RC_REW +#define MPEG_FF BUTTON_RC_FF + #elif CONFIG_KEYPAD == COWOND2_PAD #define MPEG_MENU BUTTON_MENU #define MPEG_STOP BUTTON_POWER diff --git a/apps/plugins/plasma.c b/apps/plugins/plasma.c index d5c1ef427f..2e04bd59b5 100644 --- a/apps/plugins/plasma.c +++ b/apps/plugins/plasma.c @@ -59,6 +59,7 @@ static int plasma_frequency; #define PLASMA_QUIT BUTTON_MENU #define PLASMA_INCREASE_FREQUENCY BUTTON_SCROLL_FWD #define PLASMA_DECREASE_FREQUENCY BUTTON_SCROLL_BACK + #elif (CONFIG_KEYPAD == GIGABEAT_PAD) #define PLASMA_QUIT BUTTON_A #define PLASMA_INCREASE_FREQUENCY BUTTON_UP @@ -74,26 +75,38 @@ static int plasma_frequency; #define PLASMA_QUIT BUTTON_POWER #define PLASMA_INCREASE_FREQUENCY BUTTON_UP #define PLASMA_DECREASE_FREQUENCY BUTTON_DOWN + #elif (CONFIG_KEYPAD == IRIVER_H10_PAD) #define PLASMA_QUIT BUTTON_POWER #define PLASMA_INCREASE_FREQUENCY BUTTON_SCROLL_UP #define PLASMA_DECREASE_FREQUENCY BUTTON_SCROLL_DOWN + #elif (CONFIG_KEYPAD == GIGABEAT_S_PAD) #define PLASMA_QUIT BUTTON_BACK #define PLASMA_INCREASE_FREQUENCY BUTTON_UP #define PLASMA_DECREASE_FREQUENCY BUTTON_DOWN + #elif (CONFIG_KEYPAD == MROBE100_PAD) #define PLASMA_QUIT BUTTON_POWER #define PLASMA_INCREASE_FREQUENCY BUTTON_UP #define PLASMA_DECREASE_FREQUENCY BUTTON_DOWN + +#elif (CONFIG_KEYPAD == IAUDIO_M3_PAD) +#define PLASMA_QUIT BUTTON_RC_REC +#define PLASMA_INCREASE_FREQUENCY BUTTON_RC_VOL_UP +#define PLASMA_DECREASE_FREQUENCY BUTTON_RC_VOL_DOWN +#define PLASMA_RC_QUIT BUTTON_REC + #elif (CONFIG_KEYPAD == COWOND2_PAD) #define PLASMA_QUIT BUTTON_POWER #define PLASMA_INCREASE_FREQUENCY BUTTON_UP #define PLASMA_DECREASE_FREQUENCY BUTTON_DOWN + #else #define PLASMA_QUIT BUTTON_OFF #define PLASMA_INCREASE_FREQUENCY BUTTON_UP #define PLASMA_DECREASE_FREQUENCY BUTTON_DOWN + #if (CONFIG_KEYPAD == IRIVER_H100_PAD) || (CONFIG_KEYPAD == IRIVER_H300_PAD) #define PLASMA_RC_QUIT BUTTON_RC_STOP #endif diff --git a/apps/plugins/test_fps.c b/apps/plugins/test_fps.c index 7c86fabdc0..a312c13662 100644 --- a/apps/plugins/test_fps.c +++ b/apps/plugins/test_fps.c @@ -260,7 +260,7 @@ static void time_remote_update(void) } #endif -#if (LCD_DEPTH < 4) && !defined(IAUDIO_M3) +#if LCD_DEPTH < 4 GREY_INFO_STRUCT_IRAM static unsigned char greydata[LCD_HEIGHT][LCD_WIDTH]; @@ -357,7 +357,7 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter) log_text("Main LCD YUV"); time_main_yuv(); #endif -#if (LCD_DEPTH < 4) && !defined(IAUDIO_M3) +#if LCD_DEPTH < 4 log_text("Greyscale library"); time_greyscale(); #endif diff --git a/bootloader/ipod.c b/bootloader/ipod.c index b3ff7bcedb..bafcb4909d 100644 --- a/bootloader/ipod.c +++ b/bootloader/ipod.c @@ -56,6 +56,49 @@ unsigned char *loadbuffer = (unsigned char *)DRAM_START; /* Bootloader version */ char version[] = APPSVERSION; +struct sysinfo +{ + unsigned IsyS; /* == "IsyS" */ + unsigned len; + char BoardHwName[16]; + char pszSerialNumber[32]; + char pu8FirewireGuid[16]; + unsigned boardHwRev; + unsigned bootLoaderImageRev; + unsigned diskModeImageRev; + unsigned diagImageRev; + unsigned osImageRev; + unsigned iram_perhaps; + unsigned Flsh; + unsigned flash_zero; + unsigned flash_base; + unsigned flash_size; + unsigned flash_zero2; + unsigned Sdrm; + unsigned sdram_zero; + unsigned sdram_base; + unsigned sdram_size; + unsigned sdram_zero2; + unsigned Frwr; + unsigned frwr_zero; + unsigned frwr_base; + unsigned frwr_size; + unsigned frwr_zero2; + unsigned Iram; + unsigned iram_zero; + unsigned iram_base; + unsigned iram_size; + unsigned iram_zero2; + char pad7[120]; + unsigned boardHwSwInterfaceRev; + + /* added in V3 */ + char HddFirmwareRev[10]; + unsigned short RegionCode; + unsigned PolicyFlags; + char ModelNumStr[16]; +}; + #define BUTTON_LEFT 1 #define BUTTON_MENU 2 #define BUTTON_RIGHT 3 @@ -220,6 +263,24 @@ void fatal_error(void) } +static struct sysinfo ** const sysinfo_ptr = +#if CONFIG_CPU == PP5002 || CONFIG_CPU == PP5020 + 0x40017f1c; +#elif CONFIG_CPU == PP5022 || CONFIG_CPU == PP5024 + 0x4001ff1c; +#endif + +static unsigned ipod_get_hwrev_sysinfo(void) +{ + if ( (*sysinfo_ptr)->IsyS == *(unsigned *)"IsyS" ) + { + if ((*sysinfo_ptr)->len == 0xf8) + return (*sysinfo_ptr)->sdram_zero2; + else + return (*sysinfo_ptr)->boardHwSwInterfaceRev; + } + return 0xffffffff; /* unknown */ +} void* main(void) { @@ -270,6 +331,9 @@ void* main(void) printf("Rockbox boot loader"); printf("Version: %s", version); printf("IPOD version: 0x%08x", IPOD_HW_REVISION); + + printf("SysI ptr: %08x", *sysinfo_ptr); + printf("SysI HWR: %08x", ipod_get_hwrev_sysinfo()); i=ata_init(); if (i==0) { diff --git a/firmware/SOURCES b/firmware/SOURCES index 0a8ac2a8e3..1d60ea1016 100644 --- a/firmware/SOURCES +++ b/firmware/SOURCES @@ -513,6 +513,7 @@ target/coldfire/iaudio/m3/backlight-m3.c target/coldfire/iaudio/m3/button-m3.c target/coldfire/iaudio/m3/fmradio_i2c-m3.c target/coldfire/iaudio/m3/lcd-m3.c +target/coldfire/iaudio/m3/lcd-as-m3.S target/coldfire/iaudio/m3/power-m3.c target/coldfire/iaudio/m3/powermgmt-m3.c target/coldfire/iaudio/m3/system-m3.c diff --git a/firmware/backlight.c b/firmware/backlight.c index 0f66fbf574..4c4471ace6 100644 --- a/firmware/backlight.c +++ b/firmware/backlight.c @@ -468,7 +468,7 @@ void backlight_thread(void) lcd_remote_off(); break; #elif defined HAVE_REMOTE_LCD_AS_MAIN - case SYS_REMOTE_PLUGGED: + case SYS_REMOTE_PLUGGED: lcd_on(); lcd_update(); break; diff --git a/firmware/export/config-player.h b/firmware/export/config-player.h index b9e3035951..c69fe8cfcb 100644 --- a/firmware/export/config-player.h +++ b/firmware/export/config-player.h @@ -46,7 +46,7 @@ /* Uncomment this if you want to enable ATA power-off control. * Attention, some players crash when ATA power-off is enabled! */ -//#define HAVE_ATA_POWER_OFF +#define HAVE_ATA_POWER_OFF /* Define this if you control ata power player style (with PB4, new player only) */ diff --git a/firmware/export/id3.h b/firmware/export/id3.h index bb3b6a6fe5..267f1b4afa 100644 --- a/firmware/export/id3.h +++ b/firmware/export/id3.h @@ -49,6 +49,7 @@ enum AFMT_WAVPACK, /* WavPack */ AFMT_ALAC, /* Apple Lossless Audio Codec */ AFMT_AAC, /* Advanced Audio Coding (AAC) in M4A container */ + AFMT_MOD, /* MOD File Format */ AFMT_SHN, /* Shorten */ AFMT_SID, /* SID File Format */ AFMT_ADX, /* ADX File Format */ diff --git a/firmware/id3.c b/firmware/id3.c index f594528910..87b4ce9d31 100644 --- a/firmware/id3.c +++ b/firmware/id3.c @@ -90,6 +90,9 @@ const struct afmt_entry audio_formats[AFMT_NUM_CODECS] = [AFMT_AAC] = AFMT_ENTRY("AAC", "aac", NULL, "mp4\0" ), /* Shorten */ + [AFMT_MOD] = + AFMT_ENTRY("MOD", "mod", NULL, "mod\0" ), + /* Shorten */ [AFMT_SHN] = AFMT_ENTRY("SHN", "shorten", NULL, "shn\0" ), /* SID File Format */ diff --git a/firmware/target/arm/iriver/h10/lcd-h10_5gb.c b/firmware/target/arm/iriver/h10/lcd-h10_5gb.c index 5b022e09c5..669654f5c3 100644 --- a/firmware/target/arm/iriver/h10/lcd-h10_5gb.c +++ b/firmware/target/arm/iriver/h10/lcd-h10_5gb.c @@ -108,6 +108,7 @@ void lcd_init_device(void) { CLCD_CLOCK_SRC |= 0xc0000000; /* Set LCD interface clock to PLL */ /* H10 LCD is initialised by the bootloader */ + lcd_write_reg(R_ENTRY_MODE, 0x1030); /* BGR =1, ID1 = 1, ID0 = 1 */ } /*** update functions ***/ @@ -275,88 +276,51 @@ void lcd_blit_yuv(unsigned char * const src[3], /* Update a fraction of the display. */ -void lcd_update_rect(int x0, int y0, int width, int height) +void lcd_update_rect(int x, int y, int width, int height) { - int x1, y1; - int newx,newwidth; - unsigned long *addr; + const fb_data *addr; + int bytes_to_write; + + if (x + width >= LCD_WIDTH) + width = LCD_WIDTH - x; + if (y + height >= LCD_HEIGHT) + height = LCD_HEIGHT - y; + + if ((width <= 0) || (height <= 0)) + return; /* Nothing left to do. 0 would hang the transfer. */ + + /* Ensure x and width are both even, so we can read + * 32-bit aligned data from the framebuffer */ + width = (width + (x & 1) + 1) & ~1; + x &= ~1; - /* Ensure x and width are both even - so we can read 32-bit aligned - data from lcd_framebuffer */ - newx=x0&~1; - newwidth=width&~1; - if (newx+newwidth < x0+width) { newwidth+=2; } - x0=newx; width=newwidth; + lcd_write_reg(R_VERT_RAM_ADDR_POS, (LCD_HEIGHT-1) << 8); + lcd_write_reg(R_HORIZ_RAM_ADDR_POS, ((x + width - 1) << 8) | x); + lcd_write_reg(R_RAM_ADDR_SET, (y << 8) | x); - /* calculate the drawing region */ - y1 = (y0 + height) - 1; /* max vert */ - x1 = (x0 + width) - 1; /* max horiz */ - - - /* swap max horiz < start horiz */ - if (y1 < y0) { - int t; - t = y0; - y0 = y1; - y1 = t; - } - - /* swap max vert < start vert */ - if (x1 < x0) { - int t; - t = x0; - x0 = x1; - x1 = t; - } - - /* max horiz << 8 | start horiz */ - lcd_write_reg(R_HORIZ_RAM_ADDR_POS, (x1 << 8) | x0); - - /* max vert << 8 | start vert */ - lcd_write_reg(R_VERT_RAM_ADDR_POS, (y1 << 8) | y0); - - /* start vert << 8 | start horiz */ - lcd_write_reg(R_RAM_ADDR_SET, (y0 << 8) | x0); - - /* start drawing */ lcd_send_cmd(R_WRITE_DATA_2_GRAM); - addr = (unsigned long*)&lcd_framebuffer[y0][x0]; + addr = &lcd_framebuffer[y][x]; + bytes_to_write = width * height * sizeof(fb_data); + /* must be <= 0x10000, but that's guaranteed on H10. */ - while (height > 0) { - int c, r; - int h, pixels_to_write; - - pixels_to_write = (width * height) * 2; - h = height; - - /* calculate how much we can do in one go */ - if (pixels_to_write > 0x10000) { - h = (0x10000/2) / width; - pixels_to_write = (width * h) * 2; + LCD2_BLOCK_CTRL = 0x10000080; + LCD2_BLOCK_CONFIG = 0xc0010000 | (bytes_to_write - 1); + LCD2_BLOCK_CTRL = 0x34000000; + + do + { + int w = width >> 1; + do + { + while (!(LCD2_BLOCK_CTRL & LCD2_BLOCK_TXOK)); + LCD2_BLOCK_DATA = *(unsigned long*)addr; /* output 2 pixels */ + addr += 2; } - - LCD2_BLOCK_CTRL = 0x10000080; - LCD2_BLOCK_CONFIG = 0xc0010000 | (pixels_to_write - 1); - LCD2_BLOCK_CTRL = 0x34000000; - - /* for each row */ - for (r = 0; r < h; r++) { - /* for each column */ - for (c = 0; c < width; c += 2) { - while (!(LCD2_BLOCK_CTRL & LCD2_BLOCK_TXOK)); - - /* output 2 pixels */ - LCD2_BLOCK_DATA = *addr++; - } - addr += (LCD_WIDTH - width)/2; - } - - while (!(LCD2_BLOCK_CTRL & LCD2_BLOCK_READY)); - LCD2_BLOCK_CONFIG = 0; - - height -= h; + while (--w > 0); + addr += LCD_WIDTH - width; } + while (--height > 0); } /* Update the display. diff --git a/firmware/target/coldfire/iaudio/lcd-remote-iaudio.c b/firmware/target/coldfire/iaudio/lcd-remote-iaudio.c index 5a03dc6180..6565d3088d 100644 --- a/firmware/target/coldfire/iaudio/lcd-remote-iaudio.c +++ b/firmware/target/coldfire/iaudio/lcd-remote-iaudio.c @@ -64,83 +64,106 @@ bool remote_initialized = false; static inline void _write_byte(unsigned data) { asm volatile ( - "move.l (%[gpo0]), %%d0 \n" /* Get current state of data line */ - "and.l %[dbit], %%d0 \n" + "move.w %%sr,%%d2 \n" /* Get current interrupt level */ + "move.w #0x2700,%%sr \n" /* Disable interrupts */ + + "move.l (%[gpo0]), %%d0 \n" /* Get current state of data port */ + "move.l %%d0, %%d1 \n" + "and.l %[dbit], %%d1 \n" /* Check current state of data line */ "beq.s 1f \n" /* and set it as previous-state bit */ - "bset #8, %[data] \n" + "bset #8, %[data] \n" "1: \n" - "move.l %[data], %%d0 \n" /* Compute the 'bit derivative', i.e. a value */ - "lsr.l #1, %%d0 \n" /* with 1's where the data changes from the */ - "eor.l %%d0, %[data] \n" /* previous state, and 0's where it doesn't */ + "move.l %[data], %%d1 \n" /* Compute the 'bit derivative', i.e. a value */ + "lsr.l #1, %%d1 \n" /* with 1's where the data changes from the */ + "eor.l %%d1, %[data] \n" /* previous state, and 0's where it doesn't */ "swap %[data] \n" /* Shift data to upper byte */ "lsl.l #8, %[data] \n" - "move.l %[cbit], %%d1 \n" /* Prepare mask for flipping CLK */ - "or.l %[dbit], %%d1 \n" /* and DATA at once */ - + "eor.l %[cbit], %%d0 \n" /* precalculate opposite state of clock line */ + "lsl.l #1,%[data] \n" /* Shift out MSB */ "bcc.s 1f \n" - "eor.l %%d1, (%[gpo0]) \n" /* 1: Flip both CLK and DATA */ - ".word 0x51fa \n" /* (trapf.w - shadow next insn) */ + "eor.l %[dbit], %%d0 \n" /* 1: Flip data bit */ "1: \n" - "eor.l %[cbit], (%[gpo0]) \n" /* else flip CLK only */ - "eor.l %[cbit], (%[gpo0]) \n" /* Flip CLK again */ + "move.l %%d0, %%d1 \n" + "move.l %%d0, (%[gpo0]) \n" /* Output new state and set CLK = 0*/ + "eor.l %[cbit], %%d1 \n" + "nop \n" "lsl.l #1,%[data] \n" /* ..unrolled.. */ "bcc.s 1f \n" - "eor.l %%d1, (%[gpo0]) \n" - ".word 0x51fa \n" + "eor.l %[dbit], %%d0 \n" "1: \n" - "eor.l %[cbit], (%[gpo0]) \n" - "eor.l %[cbit], (%[gpo0]) \n" + "move.l %%d1, (%[gpo0]) \n" /* set CLK = 1 (delayed) */ + "move.l %%d0, %%d1 \n" + "move.l %%d0, (%[gpo0]) \n" + "eor.l %[cbit], %%d1 \n" + "nop \n" - "lsl.l #1,%[data] \n" + "lsl.l #1,%[data] \n" /* ..unrolled.. */ "bcc.s 1f \n" - "eor.l %%d1, (%[gpo0]) \n" - ".word 0x51fa \n" + "eor.l %[dbit], %%d0 \n" "1: \n" - "eor.l %[cbit], (%[gpo0]) \n" - "eor.l %[cbit], (%[gpo0]) \n" + "move.l %%d1, (%[gpo0]) \n" + "move.l %%d0, %%d1 \n" + "move.l %%d0, (%[gpo0]) \n" + "eor.l %[cbit], %%d1 \n" + "nop \n" - "lsl.l #1,%[data] \n" + "lsl.l #1,%[data] \n" /* ..unrolled.. */ "bcc.s 1f \n" - "eor.l %%d1, (%[gpo0]) \n" - ".word 0x51fa \n" + "eor.l %[dbit], %%d0 \n" "1: \n" - "eor.l %[cbit], (%[gpo0]) \n" - "eor.l %[cbit], (%[gpo0]) \n" + "move.l %%d1, (%[gpo0]) \n" + "move.l %%d0, %%d1 \n" + "move.l %%d0, (%[gpo0]) \n" + "eor.l %[cbit], %%d1 \n" + "nop \n" - "lsl.l #1,%[data] \n" + "lsl.l #1,%[data] \n" /* ..unrolled.. */ "bcc.s 1f \n" - "eor.l %%d1, (%[gpo0]) \n" - ".word 0x51fa \n" + "eor.l %[dbit], %%d0 \n" "1: \n" - "eor.l %[cbit], (%[gpo0]) \n" - "eor.l %[cbit], (%[gpo0]) \n" + "move.l %%d1, (%[gpo0]) \n" + "move.l %%d0, %%d1 \n" + "move.l %%d0, (%[gpo0]) \n" + "eor.l %[cbit], %%d1 \n" + "nop \n" - "lsl.l #1,%[data] \n" + "lsl.l #1,%[data] \n" /* ..unrolled.. */ "bcc.s 1f \n" - "eor.l %%d1, (%[gpo0]) \n" - ".word 0x51fa \n" + "eor.l %[dbit], %%d0 \n" "1: \n" - "eor.l %[cbit], (%[gpo0]) \n" - "eor.l %[cbit], (%[gpo0]) \n" + "move.l %%d1, (%[gpo0]) \n" + "move.l %%d0, %%d1 \n" + "move.l %%d0, (%[gpo0]) \n" + "eor.l %[cbit], %%d1 \n" + "nop \n" - "lsl.l #1,%[data] \n" + "lsl.l #1,%[data] \n" /* ..unrolled.. */ "bcc.s 1f \n" - "eor.l %%d1, (%[gpo0]) \n" - ".word 0x51fa \n" + "eor.l %[dbit], %%d0 \n" "1: \n" - "eor.l %[cbit], (%[gpo0]) \n" - "eor.l %[cbit], (%[gpo0]) \n" + "move.l %%d1, (%[gpo0]) \n" + "move.l %%d0, %%d1 \n" + "move.l %%d0, (%[gpo0]) \n" + "eor.l %[cbit], %%d1 \n" + "nop \n" - "lsl.l #1,%[data] \n" + "lsl.l #1,%[data] \n" /* ..unrolled.. */ "bcc.s 1f \n" - "eor.l %%d1, (%[gpo0]) \n" - ".word 0x51fa \n" + "eor.l %[dbit], %%d0 \n" "1: \n" - "eor.l %[cbit], (%[gpo0]) \n" - "eor.l %[cbit], (%[gpo0]) \n" + "move.l %%d1, (%[gpo0]) \n" + "move.l %%d0, %%d1 \n" + "move.l %%d0, (%[gpo0]) \n" + "eor.l %[cbit], %%d1 \n" + "nop \n" + + "nop \n" + "move.l %%d1, (%[gpo0]) \n" /* set CLK = 1 (delayed) */ + + "move.w %%d2, %%sr \n" /* Restore interrupt level */ : /* outputs */ [data]"+d"(data) : /* inputs */ @@ -148,7 +171,7 @@ static inline void _write_byte(unsigned data) [cbit]"d"(0x00004000), [dbit]"d"(0x00002000) : /* clobbers */ - "d0", "d1" + "d0", "d1", "d2" ); } @@ -157,7 +180,7 @@ static inline void _write_byte(unsigned data) static inline void _write_fast(unsigned data) { asm volatile ( - "move.w %%sr,%%d3 \n" /* Get current interrupt level */ + "move.w %%sr,%%d2 \n" /* Get current interrupt level */ "move.w #0x2700,%%sr \n" /* Disable interrupts */ "move.l (%[gpo0]), %%d0 \n" /* Get current state of data port */ @@ -239,7 +262,7 @@ static inline void _write_fast(unsigned data) "move.l %%d1, (%[gpo0]) \n" "move.l %%d0, (%[gpo0]) \n" - "move.w %%d3, %%sr \n" /* Restore interrupt level */ + "move.w %%d2, %%sr \n" /* Restore interrupt level */ : /* outputs */ [data]"+d"(data) : /* inputs */ @@ -247,7 +270,7 @@ static inline void _write_fast(unsigned data) [cbit]"d"(0x00004000), [dbit]"d"(0x00002000) : /* clobbers */ - "d0", "d1", "d2", "d3" + "d0", "d1", "d2" ); } diff --git a/firmware/target/coldfire/iaudio/m3/button-m3.c b/firmware/target/coldfire/iaudio/m3/button-m3.c index ecea221a4c..f5d4b59363 100644 --- a/firmware/target/coldfire/iaudio/m3/button-m3.c +++ b/firmware/target/coldfire/iaudio/m3/button-m3.c @@ -116,7 +116,7 @@ int button_read_device(void) else btn |= BUTTON_RC_VOL_DOWN; } - if ((GPIO_READ & 0x80000000) == 0) + if ((GPIO_READ & 0x80000000) == 0) btn |= BUTTON_RC_PLAY; } diff --git a/firmware/target/coldfire/iaudio/m3/lcd-m3.c b/firmware/target/coldfire/iaudio/m3/lcd-m3.c index ae72832a82..4bc22380f5 100644 --- a/firmware/target/coldfire/iaudio/m3/lcd-m3.c +++ b/firmware/target/coldfire/iaudio/m3/lcd-m3.c @@ -61,263 +61,6 @@ static int cached_contrast = DEFAULT_CONTRAST_SETTING; bool initialized = false; -/* Standard low-level byte writer. Requires CLK high on entry */ -static inline void _write_byte(unsigned data) -{ - asm volatile ( - "move.l (%[gpo0]), %%d0 \n" /* Get current state of data line */ - "and.l %[dbit], %%d0 \n" - "beq.s 1f \n" /* and set it as previous-state bit */ - "bset #8, %[data] \n" - "1: \n" - "move.l %[data], %%d0 \n" /* Compute the 'bit derivative', i.e. a value */ - "lsr.l #1, %%d0 \n" /* with 1's where the data changes from the */ - "eor.l %%d0, %[data] \n" /* previous state, and 0's where it doesn't */ - "swap %[data] \n" /* Shift data to upper byte */ - "lsl.l #8, %[data] \n" - - "move.l %[cbit], %%d1 \n" /* Prepare mask for flipping CLK */ - "or.l %[dbit], %%d1 \n" /* and DATA at once */ - - "lsl.l #1,%[data] \n" /* Shift out MSB */ - "bcc.s 1f \n" - "eor.l %%d1, (%[gpo0]) \n" /* 1: Flip both CLK and DATA */ - ".word 0x51fa \n" /* (trapf.w - shadow next insn) */ - "1: \n" - "eor.l %[cbit], (%[gpo0]) \n" /* else flip CLK only */ - "eor.l %[cbit], (%[gpo0]) \n" /* Flip CLK again */ - - "lsl.l #1,%[data] \n" /* ..unrolled.. */ - "bcc.s 1f \n" - "eor.l %%d1, (%[gpo0]) \n" - ".word 0x51fa \n" - "1: \n" - "eor.l %[cbit], (%[gpo0]) \n" - "eor.l %[cbit], (%[gpo0]) \n" - - "lsl.l #1,%[data] \n" - "bcc.s 1f \n" - "eor.l %%d1, (%[gpo0]) \n" - ".word 0x51fa \n" - "1: \n" - "eor.l %[cbit], (%[gpo0]) \n" - "eor.l %[cbit], (%[gpo0]) \n" - - "lsl.l #1,%[data] \n" - "bcc.s 1f \n" - "eor.l %%d1, (%[gpo0]) \n" - ".word 0x51fa \n" - "1: \n" - "eor.l %[cbit], (%[gpo0]) \n" - "eor.l %[cbit], (%[gpo0]) \n" - - "lsl.l #1,%[data] \n" - "bcc.s 1f \n" - "eor.l %%d1, (%[gpo0]) \n" - ".word 0x51fa \n" - "1: \n" - "eor.l %[cbit], (%[gpo0]) \n" - "eor.l %[cbit], (%[gpo0]) \n" - - "lsl.l #1,%[data] \n" - "bcc.s 1f \n" - "eor.l %%d1, (%[gpo0]) \n" - ".word 0x51fa \n" - "1: \n" - "eor.l %[cbit], (%[gpo0]) \n" - "eor.l %[cbit], (%[gpo0]) \n" - - "lsl.l #1,%[data] \n" - "bcc.s 1f \n" - "eor.l %%d1, (%[gpo0]) \n" - ".word 0x51fa \n" - "1: \n" - "eor.l %[cbit], (%[gpo0]) \n" - "eor.l %[cbit], (%[gpo0]) \n" - - "lsl.l #1,%[data] \n" - "bcc.s 1f \n" - "eor.l %%d1, (%[gpo0]) \n" - ".word 0x51fa \n" - "1: \n" - "eor.l %[cbit], (%[gpo0]) \n" - "eor.l %[cbit], (%[gpo0]) \n" - : /* outputs */ - [data]"+d"(data) - : /* inputs */ - [gpo0]"a"(&GPIO_OUT), - [cbit]"d"(0x20000000), - [dbit]"d"(0x04000000) - : /* clobbers */ - "d0", "d1" - ); -} - -/* Fast low-level byte writer. Don't use with high CPU clock. - * Requires CLK high on entry */ -static inline void _write_fast(unsigned data) -{ - asm volatile ( - "move.w %%sr,%%d3 \n" /* Get current interrupt level */ - "move.w #0x2700,%%sr \n" /* Disable interrupts */ - - "move.l (%[gpo0]), %%d0 \n" /* Get current state of data port */ - "move.l %%d0, %%d1 \n" - "and.l %[dbit], %%d1 \n" /* Check current state of data line */ - "beq.s 1f \n" /* and set it as previous-state bit */ - "bset #8, %[data] \n" - "1: \n" - "move.l %[data], %%d1 \n" /* Compute the 'bit derivative', i.e. a value */ - "lsr.l #1, %%d1 \n" /* with 1's where the data changes from the */ - "eor.l %%d1, %[data] \n" /* previous state, and 0's where it doesn't */ - "swap %[data] \n" /* Shift data to upper byte */ - "lsl.l #8, %[data] \n" - - "move.l %%d0, %%d1 \n" /* precalculate opposite state of clock line */ - "eor.l %[cbit], %%d1 \n" - - "lsl.l #1,%[data] \n" /* Shift out MSB */ - "bcc.s 1f \n" - "eor.l %[dbit], %%d0 \n" /* 1: Flip data bit */ - "eor.l %[dbit], %%d1 \n" /* for both clock states */ - "1: \n" - "move.l %%d1, (%[gpo0]) \n" /* Output new state and set CLK */ - "move.l %%d0, (%[gpo0]) \n" /* reset CLK */ - - "lsl.l #1,%[data] \n" /* ..unrolled.. */ - "bcc.s 1f \n" - "eor.l %[dbit], %%d0 \n" - "eor.l %[dbit], %%d1 \n" - "1: \n" - "move.l %%d1, (%[gpo0]) \n" - "move.l %%d0, (%[gpo0]) \n" - - "lsl.l #1,%[data] \n" - "bcc.s 1f \n" - "eor.l %[dbit], %%d0 \n" - "eor.l %[dbit], %%d1 \n" - "1: \n" - "move.l %%d1, (%[gpo0]) \n" - "move.l %%d0, (%[gpo0]) \n" - - "lsl.l #1,%[data] \n" - "bcc.s 1f \n" - "eor.l %[dbit], %%d0 \n" - "eor.l %[dbit], %%d1 \n" - "1: \n" - "move.l %%d1, (%[gpo0]) \n" - "move.l %%d0, (%[gpo0]) \n" - - "lsl.l #1,%[data] \n" - "bcc.s 1f \n" - "eor.l %[dbit], %%d0 \n" - "eor.l %[dbit], %%d1 \n" - "1: \n" - "move.l %%d1, (%[gpo0]) \n" - "move.l %%d0, (%[gpo0]) \n" - - "lsl.l #1,%[data] \n" - "bcc.s 1f \n" - "eor.l %[dbit], %%d0 \n" - "eor.l %[dbit], %%d1 \n" - "1: \n" - "move.l %%d1, (%[gpo0]) \n" - "move.l %%d0, (%[gpo0]) \n" - - "lsl.l #1,%[data] \n" - "bcc.s 1f \n" - "eor.l %[dbit], %%d0 \n" - "eor.l %[dbit], %%d1 \n" - "1: \n" - "move.l %%d1, (%[gpo0]) \n" - "move.l %%d0, (%[gpo0]) \n" - - "lsl.l #1,%[data] \n" - "bcc.s 1f \n" - "eor.l %[dbit], %%d0 \n" - "eor.l %[dbit], %%d1 \n" - "1: \n" - "move.l %%d1, (%[gpo0]) \n" - "move.l %%d0, (%[gpo0]) \n" - - "move.w %%d3, %%sr \n" /* Restore interrupt level */ - : /* outputs */ - [data]"+d"(data) - : /* inputs */ - [gpo0]"a"(&GPIO_OUT), - [cbit]"d"(0x20000000), - [dbit]"d"(0x04000000) - : /* clobbers */ - "d0", "d1", "d2", "d3" - ); -} - -void lcd_write_command(int cmd) -{ - RS_LO; - CS_LO; - _write_byte(cmd); - CS_HI; -} - -void lcd_write_command_e(int cmd, int data) -{ - RS_LO; - CS_LO; - _write_byte(cmd); - _write_byte(data); - CS_HI; -} - -void lcd_write_data(const fb_data *p_words, int count) -{ - const unsigned char *p_bytes = (const unsigned char *)p_words; - const unsigned char *p_end = (const unsigned char *)(p_words + count); - - RS_HI; - CS_LO; - if (cpu_frequency < 50000000) - { - while (p_bytes < p_end) - _write_fast(*p_bytes++); - } - else - { - while (p_bytes < p_end) - _write_byte(*p_bytes++); - } - CS_HI; -} - -static void lcd_mono_data(const unsigned char *p_words, int count) -{ - unsigned data; - const unsigned char *p_bytes = p_words; - const unsigned char *p_end = p_words + count; - - RS_HI; - CS_LO; - if (cpu_frequency < 50000000) - { - while (p_bytes < p_end) - { - data = *p_bytes++; - _write_fast(data); - _write_fast(data); - } - } - else - { - while (p_bytes < p_end) - { - data = *p_bytes++; - _write_byte(data); - _write_byte(data); - } - } - CS_HI; -} - int lcd_default_contrast(void) { return DEFAULT_CONTRAST_SETTING; @@ -457,6 +200,9 @@ void lcd_init_device(void) #endif } +/* Helper function. */ +void lcd_mono_data(const unsigned char *data, int count); + /* Performance function that works with an external buffer note that by and bheight are in 8-pixel units! */ void lcd_blit_mono(const unsigned char *data, int x, int by, int width, @@ -477,20 +223,28 @@ void lcd_blit_mono(const unsigned char *data, int x, int by, int width, } } -/* TODO: implement grey blit function */ +/* Helper function for lcd_grey_phase_blit(). */ +void lcd_grey_data(unsigned char *values, unsigned char *phases, int count); /* Performance function that works with an external buffer note that by and bheight are in 8-pixel units! */ void lcd_blit_grey_phase(unsigned char *values, unsigned char *phases, int x, int by, int width, int bheight, int stride) { - (void)values; - (void)phases; - (void)x; - (void)by; - (void)width; - (void)bheight; - (void)stride; + if (initialized) + { + stride <<= 3; /* 8 pixels per block */ + while (bheight--) + { + lcd_write_command(LCD_SET_PAGE | ((by > 5 ? by + 2 : by) & 0xf)); + lcd_write_command_e(LCD_SET_COLUMN | ((x >> 4) & 0xf), x & 0xf); + + lcd_grey_data(values, phases, width); + values += stride; + phases += stride; + by++; + } + } } /* Update the display. @@ -501,12 +255,13 @@ void lcd_update(void) int y; if (initialized) { - for(y = 0;y < LCD_FBHEIGHT;y++) { + for(y = 0;y < LCD_FBHEIGHT;y++) + { /* Copy display bitmap to hardware. The COM48-COM63 lines are not connected so we have to skip them. Further, the column address doesn't wrap, so we have to update one page at a time. */ - lcd_write_command(LCD_SET_PAGE | (y>5?y+2:y)); + lcd_write_command(LCD_SET_PAGE | (y > 5 ? y + 2 : y)); lcd_write_command_e(LCD_SET_COLUMN | 0, 0); lcd_write_data(lcd_framebuffer[y], LCD_WIDTH); } @@ -536,7 +291,7 @@ void lcd_update_rect(int x, int y, int width, int height) COM48-COM63 are not connected, so we need to skip those */ for (; y <= ymax; y++) { - lcd_write_command(LCD_SET_PAGE | ((y > 5?y + 2:y) & 0xf)); + lcd_write_command(LCD_SET_PAGE | ((y > 5 ? y + 2 : y) & 0xf)); lcd_write_command_e(LCD_SET_COLUMN | ((x >> 4) & 0xf), x & 0xf); lcd_write_data(&lcd_framebuffer[y][x], width); @@ -547,19 +302,23 @@ void lcd_update_rect(int x, int y, int width, int height) void lcd_set_invert_display(bool yesno) { cached_invert = yesno; - if(initialized) + if (initialized) lcd_write_command(LCD_REVERSE | yesno); } void lcd_set_flip(bool yesno) { cached_flip = yesno; - if(initialized) { - if(yesno) { + if (initialized) + { + if(yesno) + { lcd_write_command(LCD_SELECT_ADC | 0); lcd_write_command(LCD_SELECT_SHL | 0); lcd_write_command_e(LCD_SET_COM0, 16); - } else { + } + else + { lcd_write_command(LCD_SELECT_ADC | 1); lcd_write_command(LCD_SELECT_SHL | 8); lcd_write_command_e(LCD_SET_COM0, 0); diff --git a/wps/cabbiev2/wpsbackdrop-240x320x16.bmp b/wps/cabbiev2/wpsbackdrop-240x320x16.bmp index a9ece0259b3b2358db113cf0cb88a2ed41c35f98..f57065124b91f7b5588a16ddc65a2e5ea9495423 100644 GIT binary patch literal 230456 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 NkHE=Y+qmw!{{RZ%g%$t+ literal 307256 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

HUi*WA00`)BdzUQXQSb>n|? z?0tH_vb3IgaZT(c?#_80;qQ3QWbjaP<;d*QzwhJB6;5;AV0Ny2?mgz7^L6E&l%~Xe zKDA(O;@jRDbKxKPiht$kJ2f{)G;n>nCOrqwtJ-t#v(6p7jW7PgKWpX^oV7w%v>j_| zkgt8^pogRa0g0+WR_^t&v^$JIGcZ~e-WpCEfGj?9Q=m%zS)z|07FrImt$DW^f zq(8d0pWvG-7@TwJMtje-vDL>rsTg?1Td>hDJ^77tg*Wr%?zV5;vwDSJUf8p6p)>b` zc|<>F=CgaKi}jm#X-3YU-gEqiPx)wuR`FRQJn}<*_J!fOq@G@(8Cu&vxQ3_i@DkHK z7B9Gg!F;$9(|KkUo>k8|pbj4JNl$C77-z8KTk9pR{u2k@ayP-5r0n0uv@zm3M zuw644(r`UX-yN4VZamI4^N6Rl`tE|6bvPI1#l!Z0%$=B+c{GMkI`E#t^RPM>{(if+ zcN|==SKRCQVZNh7f1BnkT?=<(agUrl9<}6f-0!iy@EnfnZ%p%WUbCOsIEMP}!F%6W zs8QX_4Ef+?P0zEnwBvVZAI)d(jm??)UXD8SUbK#vXS{kVU#;G+e&wrrA7521V!NMb z=3IyTSF^`jU*(Bo4919kVgdKS4-Wc(k$%LpFMR4u?L}X>q&d34JNv+Us>)f2K?K5jf+jZ7w zUFMVZ?7Qk!uWNb^?&W!WZl2w@}QSV=YG{9cDa|0UwhzpEqKV~)o1=4U>$1Z zmoo|$>x8vy!5!>)q>u2_N^d#CBlhG#&S&P$o1RrOJi@f$ z4?V{@wV12)pf7i%K53Tr_%R;l#ZNji!=A~S*J!n#@R*nP+Ov=bYH^)3S!eg)3=f(` zw9}(~lGk%l?c729jW=ndkLcsd#y-Z_eh0 z-t*puzcK!a-i`Tm9`twK>+Z|`<$mbB!SL?~813Ua&lk@N^F{wt_a+`=y{Yy(AOG#h zT)1BFfcrJ{eJ%I+wc3BJV)zi(%02Pxj2J)kR=q#%frFUvy07rrQ}K?iy3}i(eqf>g zYpoBO#4$L=+%@K>7I5Rd^64dZ*9w<)spYDfq(8k^tyhkCNR z;SQkl`e9DOW3F)*PI|zbJy+c4!b30njd|3rI>+Pb@CUs1r#s}idbZzrGZ$R;XD-%< z*u$GiE}pPzzh|16WIb~9df|^}a>9#0>jzH!1`A$hZ>{dve78pNF}|>gyKv@xRBy1h zzs$IDjTLQpH@s`;@?2QIX6AE#=eaZTx?euU4}ba{TMuh+Px7ucwc?)`G`JRhwGSU_ z7*mht>wbCzrh4?ZC%GL9o^t%#Q9bga`KVVOh}YQYRZV+`r-}uKvrK(*(1aSqGaGYC zFFZ?oaO7Eirx##EZ{^)Lvw5a5Sn4Mx^$9Dy!m%IZ7e4g!b6;xZA31PXn|o8!IpBE) z!b`noqj}WcGt=Cbj*bh5y7@-JFPzq4O~NzIp-nN?M;r3#^IrOm&DiFF2jc)E_xwehaPyvr+(n@EufeEI=7za`VX#}Md|wwYWUyg#@qP}=l5A+z2#2--F$D+^j}`{ z^{;>J-PgbNb^m6te!b511{lvpXrq!=x5A+ zdxkk@MICUcRoujkp00yV)dH)rkxz~H)Ycx1UAg$0ere>ai81H+itqRnm*>EFW3N8d z%75=UBg|0R1B@|H5M~vD2?+ zlYXqyGyJY6-s+`B)yunb@hV-wN>6Ev{+_4udS94}@0r-hX;!>*_8QM|%~77S=le!2 zKVupX{Q0`xb=1Z@=H!0rv~Jg>Pc_n)*l_NiXsH$Vu)Xn&+6#_(fk&P?^L|mca-EOf zL*t3ro>0>muEE(c@gctEaP6^f^q{^qE`0}I`qPJV`nb=#Q=BkT~mCO0)Zm)T}D zZe!UW@mv$n;#l0#2My@U=eYVjJKkOPn8obD-QNQS<_qmvReR12`AgjA;AZxzo49*f zZ;s4_{+G7sTwKA8p8rct*8jWdXYBvR^Vj$OrXE<;^MGxRGyWRZ&hPz&_oDmYxa2TP zxazAs_IeLPJ{L~O<@!*bIJ2ByVaW!AzRs5K3)$h9ojyx>A zn2U9?AN%?clb`U9#^@#9;^cd5jlfl}G@u{2)_^s7+%rDqW8=^4go9q?gCpII32b^3 zpYF#V;;}KzM{U5dcGTG)v}cyBD>H&G))}9?wFi!MG>);Mho5UTb7(d{`-DgD&_*8l z$vl)3S2#EW;-G)yK@Vyx=6vSJd!ZKBcpp8QiS+FG$hS2?b7q3oAM3#fOn;i?#2S;l z(40@0$qQ>@^vc?WO)hDbFJWaCTchw$i<-iS?wo5)EO)fenIrESz3iKwJ_m>E($Aj7 zYYp)$+?`+8trgxA*Irts2YOp)^mTn|Hb!Ee+nNh-bcbG}VXe)L7~h2SA93a?zxt?i zanVzB`dvKM3xm3h^}thc<^4Xp4!SPBFM7mx>JR?B=gbLORD0;;48|+^h2dJyG`O5E zbi{k>9gNX+YCCwhm%?g%#?e>v2**QyxY9SZOZVnD_6z%n4{o#uH+PiytmZ46{*6X= z#lF$sH}syqQ5@g!9^5!%t^4I9sZZDg+ExCG1illHSn_g7Vi;9&C2PHH{ROs zx@f=SUc8z?v}nGWORpPu@0&wjp&R$pelNAkO)c?#r`T&QT6O>MHvW1pSKL+8nr}Rc zZ}bVT@Pk+D`R+28>Tyjp?05L+Yhhkz)Nk0c2Cm-%acU2)Z(v2Q^BqI3{N_s@y3)^H z^o5(4zyoKr>CE|7tb4mgwW!ZW4Vbm{aTeJ(2Y694Ut=Q%d~(2ty+EsZ_S$>)z@K#L z4y*%Q^tt>awlJqJ{nDWMVlN#y3tL>oAa}TYALLXYeUi`Em`CvJH@Lbpb1?@V&Fh?z z_{S$aj%MLY3otn+&cJnYQX_+@+T~&mPhXEY2_e(VS|o*-1>}b54soV1Gc%b(kHOJFO2x37WCsY zXUACQ9BYKz`SfwFs^cAY{OnbqbUb40T4?t>o-y^wK|HJ)W^{?6o-Pc;3U%H!@a<}u}oHtqrPdevZT3CP4AB?Qm zd4%uC2W$M!EGI_&>#ZJsf_GhuZ!}-DLQCqmPRG9ajc@8VYt7%RRWZcR+@a;0OLO+$ z{HA*=hdtxLQ10NX8erbVnk(4W2VCY7=Xp4Ucfo8Q;j4W0(`)*Thgfq{8_wvve5f~u z>Z3vZ!k&FJ3;(PIHtP@WnPoJ6Gv2RScorA^FE8o|e(@Ft@m5Xybu3yrYkSmP4oBwE znt+Rb*JD-9^lb0br@LS+dxRlP){40R7kSShGofGJ(`BZtgJ0dVJY8x$$9T(J8asU9 z#My7+sL6e>UK)iJKChjRCh6m>jNLwSr-|dteK4hkZ-=wT{86J1dw!V>;@BfzSiP=& z@>k5pA||xEf1PzNisvr74)w(?Z`Kbz?01jPig|`BufGw%Q9bYuUG#|<<|4l2b!XtS zc4AybdgkJooK>Ys(#k7an;3nMt1&@AMlOnU$MR)V>L(jEN#|~xro2`h%3*U-ONo`;$RQ^Geh_Cu2v0oVCJa9x^nhOFH1}A zA@T64Uwp#Bd@u{)>Ym^Q9L|y7HNHpovIahp)5qDx6IRy@zhlG%=XG8>>rGlGYt=`t z&(E6q=X2m3zV-jxIehEC{vGgczV*#_b4SwrEyobg_sxp&`{uV4!@2hJp>{k2L-h*- zZvoiMRc&JcOLfQJkex>#@V^EA;bA@Ngh8CD*>QS64KalCE#fGq9`sui`dy2dc!f{x zeAB4OcgeB0a@#L^hL5@AYXwKJdv&~daHek5LRV%Y{>(Nx`l5c+saNxJeZ`_<_^q4R z$mCZWNSasoPT;L14Yk3|%YESIKr&%uk)NTCM6-;n? zUgnO+zMI9P*>0W22`;dLmp=RC+p;FqXm+)xx9Su(KH{vCKIoadDPGq5ePF-NdPk^F zFY>i7e%5t7dFYTAaR6U2VNBh|L=EeSZN2CV&#{W1^S1x?fVo8fnjdEdUDl!+aGDpj z=|#Uk*0E_shRu;-9{Jb3LI^KVVP2QPhD zOP}q-*r!*`h&q|i%+TXL;`k02OFZ)v-+{Y*7&mj-b@YXNeVT7DJsWT%=XKXfv$Qm3 zu&h~gkG@MSF)M~1_;PRNnONR&?lfF{tLY0LwBoCC-bdrRCjHcZnen&2_3eJA%1irw z{8Ibvs>K&APuELdbFTOe&bKS}?O@*I!;3oYgO^qPjX|vBvZ8nIjYZ67@$fxg$=SLt z97p^H2LhIzPlLipyKfP?Qa98KJ05H7JCp=9C_rZ(=pD7y-QE`DJE>^ zkpoBdG$-GfID-d%eyl@}cy~|#R)NR&B(2>GjPNDT)mq{OzJT92$~O)$+|OC1kJ#2t zF7anRnw2$Ke`YAX@hE?s3A8j8c&ndh?VG-++gip;)w347-q%@vge$!0snxi=W9aiYy!Mnh z^{Oto?6GF@qSiWiM+>(-Kk&-4W;r@o-?g6c#=Gnv`#ryI#%&j$C_NifBxd%O-&D__<04HX)W9v-(rR#DgW^vQ|ku#pPZ~UH9 zdm682?sAvLC)UA*{&-(+8M?a19IV@3?QPd#78@UX^c^+BGk0T-C zK+ouXh8GPz=L0jmvwjB}zvJ_FzQgy$n6>Zyx4*se)ziJ*AKdR$4z;P*3T@r9X2UvS zpf4DwCixniU_ZyK{^(km-?7Idm)NSy9M8IFD;@E_dpZ{1(6BY9f3&sV^m1KusB>%C zTs2$t#!ut0#+>MVxYMO=;q89i9k55|%s<+$I5?X(xYS;;!^6~UPU2S`J)!^TS@B>m zF5+D4;oGs3C;Hc1QCDAcH-}=^`Ex$5KRC#D;&1M~kKesMXq2Nq%z4-VfLJ>kxb z%R1kuWApA&Q#jBGjqu?aXx-YxDO~iZPd%#38_zuWZi316Av=V#sLvM6p&-%e& zuj}Wx4j&6I{JsPFZC+!xfBEV;n@_ry7I0RMGq6UT2QTkScZE1+tFQOKr$4OPXLh_3 zaHNKHx*yKmzO>(U(51S@3QjZtlQDQQZ*;h({jI$4woc&0bK;sy?uNdaZ)?+D_gj1L z5(}C%uU-?st4YrD0nUMyeEjy=98b=f@jcek`lLTP=3PAJ%M8_%ncmm4HuEX&o*8HS z*faUZT=>ql>WHs9$sGWv-^}vdG5#h}<6hUbhNXMv^Gw$n&+jRHbM`yREbtES?fc%m z-c!?#FHgL)eZH+bJx164EJshzBKW|*;@A11F7GVUU0Dn7|Y|-phus4ZeHjFo;7>rysSa912*)l?wEn~P2P34{nDt~ zV9FyklEa?UAI>^cCst_YyrLVN;+1cC3{P^$+Wp{DJ@PX{&AI1qJ;c0dn;z+qPWQ(X zv7=MoO3AJRio`3!U*IpY&68nyqH3_bDB@<9=iGhFL{_ z)fKjI+!LLNM?Z9;FLA8QnIG8h&Ansc#l47Yrl0KPcQE^gVadl(Hp+3?}6PjeD9v?>H}8gIeYYR=+Kedk-#(&f7E z9ka7v=HS)yuqMvJeaLMd&NB6!8)h%9TX)Z^Fx9UWd*X8r;vQ`|M-RA-4^Hx~8elml zT}un=%}JfWL~ngKrw=+DW4_P8QV;Y=2edE#_)b6c0Goa2b$xosd8uLV;LjaHr?u94 z%osfA3-7{D-8n0HVGl8d-58z)dx$ITjqkkfZZz?21kZXjSItctYTx+s!C6{6F>9Y# zW({uc;hnW!ckSBqH;G#4;e0eB;YmaMCdRuWkM3!D?U6a)0T&q3K&{pl{hdpE*W(>P z6IWoE4|6f5G#ft{=5POrW9>b#an5RtrBxiob!eKp<}S?WIWU(F@|wH*$OV4+(Otyj z@K7UrrG@iuEO>aVg`Rxv5%WVF_4QH51I`Wq_F>${$r*TiPUy*J4)(kdyXxWZ*qY;! z+Kn+j%(ZyPZ9ST|y;twtm15F~y}!JPaA$6{PVe%^_`H+oYX9;4()#`H&%9o!`~I`s z_qQJHpVqzy#(R0V#g(t;T3*XP`huntuP|=>Q~R^{t=21-?}Qk8|7^alc>#NLfB)j) z%8m0&c*y0u>pf%P&D!_+!nRl5caUcQBzLc&LxoOC95`16S7x`@pFD#@8$~|JUZSJw9OAFEEsYo@hGP&Rb_= z;e63fysisQI5ZFTSIx0fN7ZA_n90r8yeoGXJ2e^WL2EcRANKoPH8*|W*qt&_Fk#=1Gf?KQaI=z9prK;BFZ-1GyqBp&3MPK(KZrlgHRoA(m z$L8635_c@vS*ha(#h*ING9Tj7cIZRCd0p!>aM;uM7hJ|wGd$opW8p*1-oH4{=8XPx zr7mk1=0)2@1NAkgYx{g^ZjF`ae$~+f&l_WNXP@=ded?&3vHQ*ruICu7kuxyP(OcSc zZjKd0U*?DVMh)*B`}3{nHvlb&YvtXs4`=l$xaThjY z8{75WyZWOuJv=Y(>7gELr*7lNk7JolduJSc*0*PAZoQk-$S>zqwd}LDnW^G?BCLb4LBur@4;%s5;%J@7sO6Px=A3=g_NswBPiE+gjp}Se289Xa=u+WCqrY zKIPOSy_i#-jg5W3BgBZWJZAtb#8waA@s7beJXQ=G>I09pF>h?vseW`rzd4r%;@BHC z7@xJ|2d8*>M~LxDOy2gJp&= zLv?4q-*q$}n3vk*u(mOWB7KiJ+~L=`=P%dy!#>IKa6IrjP3f$|ByYduiOvOC0Y;p)8gpMLD2J?;M5UwQkixq?I3qf5Ul;9mUlEX?j{JoRIq zhp*tfE`9i|>35QPoR?ng=?O8^0N;6HA@2`o)~hz2&_f>9!Hc+bkAoR4S^4G)ll5D7 z$D}nloRhWFQ}dt>8aB6ktxcX*UAz)+{7Re7@x+;2eCG{P2YGcb=;;|jUvkmrl{M5b zHC@}jGMmDznC695chqxsPHzzWxF^g*GhjVqb*83O!!vkvx75JCoQ**|*MW~d&0|b@ z4-V#zI;_?aY`q)dHt)jFds4sl(4BMiAf|ZcqWLLLZu>wy^Mh_-$)Dzgymdlz>xKTD z?X_~j5O4eiPd#}D=<@KIl(M*`L%fc49_Q4d|Kg=R>^}2kUcmA_ zQ5!V|H>-N274_vgb;L0yv@~vM!JhhNj`|ycIC_#79`S*lI5@0rbH_8^ebpkDUe2lY zMOQGf>J$HHXg}mWYtqvzHA-9KKx_Bf7xg>tIY}#e5kGktb6mN?A%^DlW6n%{&HFEj z{n+<2T>n1q;rvt{e_S~DKI{4X3o!rfv;7nv-cRe}JNk6@@mb^Lef+C%gFmb0SA0MA zSMT%3Kl<^zAN%~{z8h&mZqE$)#2O24JaOO{Q!&&#@7#}?54xbEYAPoUs5K{Is3o3o zhI8u*CveOMPVV~dhSZA=3-?KZsQXe>k$(fOBbPumQ zNxOW+lWKwiyp^YaaiCY9=Gn7xy*!JXb&MN}9)n%6XhxhI>Z7LIS90;m6}|4sxz^mh z?z;4K4Sb1rcpO8Yzs#8LC;SUv7{U$S+`Y7C*188^gBLyE(|KyFsdSDX&9(c;uh^c8 z@TG;Gs5f=MGhb$GkMxSUcs86Fa;yU$FsuuhtixH@$hDW~c8}h$^5RjSdeN`1=h1!W zk!ImrPvyg#*{OH*cAmAyFfMY+dqsTn*h@Ucd+V%x-+6o+gSEt$7R_n)eV?ocZ!~Og zwFd`goLQRl(8Rp72M0ZT4~-x1(XctqZ4bE{`Awg_qNeMxw>G~K`XuM@aL(?L7hz}y z(g7UYVeU)5m1C^uqh4t!j>63y#P6eb_YlLn!ey=by)^&DgXU^J;Lxx1N*{8-4*vM! z9D~Q2cyKLpnJKVYt5tgBacj_f0>{E2&gE>Z(O_K_{|RzGne($6)*U!M;d^~ne;1$F z^Iq0m^gMDey_eeIK+TnB&W-tE|Kd5kulP>}^WeVX?sM%w4S)AO({vZ#{15qf$olv$ zep0i1nRj}RIW*S`{d*o=zh+!9axV|ibI)`3y;SqyXW^^whT}%-;GFf+e8yhVGw(IC zQZHu@UhDe_-(2Nt1&8>tN4?_UVI6x0hjGj}@75Tjt8fxSFL+Up`wxHfD6d{=3I5eP zdyU6>aF_=sNB2^z@Z<>`;z2KCtET4-et4%2-6L|{!`#lJX6_$jiyp7&FFSc_FU zTeC3`msi}`u89`KqFXh-U-Y7<^+@yS6ESf3OFeo$C*{Cr4ar%%=A>EVtx1nC_Z-_V zv4ux}#yn=T=F7hLfJWRY^~kGu*Z!JAPjtiU&YMTttm(*~^_kxzr|L4#2YtZ=U+t*} z>(Y}MOP}$&ug=t3{k*TiQ2p{>b$p-jOfLD7_Nn99n4Ia-LQLR5~AUv;^E=}CW9)N4O?FgeXF=Xra4=j>DLVOHi( zJZsOS^#^-<8_#-EGb`d?c55d4zBA`|n)Tw-{lXg!jeF!hQ)o`S*1Ti>tx5d2JJ%z} zynVSAT7TMe7!JjLdj3{_y3RkHT4MP8(@T8MI+$0!jvu|^0^VT$w6s?Is4E?PM$gh1 zUk8SC3+JXbJ$r5Z>#WZH)7Q><51f3&-!*%lh%48a@K8NJ-FMI$2dC?ge&_9DYQmZR zvu@^^y31<3{e~W~rzbhA+0Xlk2GnPNvw9B0={Mnd4la7rKN`r_y3u>d`P}hUd+n9> zCmc_3)w4JozhcYV%h=+KMy-1ec_*5IenXWv7v6rppVWKWzXk1~CG~|tUB)V3n?+xqBN!p{y`j{VG)M;JhBbK!F+>r-9W?^5%_H2@) zM)-1EcsO76r$)Nzf%6D{_{~Xg@}-#wbF>(r7}={AS~%t9CMRb@L^7U@8lexdsf1cZtkhkK8UBeAvZk6Pi?Jw3z&ny<`-|YC|@yXf==|h zCvy^)W|4ZmS=R#F{laza())N9(4T&L0Y*M*fhN=lkGkp{4PBcaYlvrZI+kAbhfwE}SAEcQ$31n(S8Zn2^@$I5b8_xW7kF>_ju?AV2fl^R-oaDf zoWXlwq5i;A9yO;gaO6Aja!159R$|jLJguR52QTlb`;J*w9eSE08ugyi^MJ8DLKnT| z-L@xq8y(s6H{zb)_v&}u=L@EIGBd6Gds6y2E6n)dA3uY6@w@8TyJmr&E8gJ1+xY7l zEiK*e-)EmU?$1s?gTLcHd-v0-`&nzPbM1fj(`(#4!2FqNy3W1mVITV!2YcrHv+582 zXc|o6s(y4u!XV z)WkU>=5J}oOna6)exn2T-L=HTdG+7)Y<+vbXCKVWEazSqZ|gmDmxihlzV!TzJ(ySG zciLCX9EZm4jmNC+YhB`bZ5HrD{MNd0fc*>~bvsx4#jQD&2FA4NcY^)&Wsf@UQ(xGq zXMfc*Us}n5e$=_AdznuyIMOezx=Y35TX!Kn;b1Hp!C~I$5AM`~2byX{ZFFEh^doP< ziT0Uadac*}#3R4roJHltJN^$Ztyfy0OTIH-b5U>R0!(m-NB*kLUNRTX8~m;lcFy8K zEWaboE7+b3WYpx3ev#OkUwI`-y)JjfkK-@j@Dr|Aoe)$Hj?q_Ngn|RLj3ETtQ zvjQe(3w-yIXZD)Y;N}fv4ZieMo#(0Z(#=_|GkNaMC+1o6kZb*qb=TTCOXt>@oL1e% z%trHLJ^5xn6D$5FS~kzQ7f!g_ck7Vd(A$xZ(oo8 zf1cdW!SQqbZ9t4?@pcX4Ra3b$rt@8Fq@~zwRZ*4vIg~=Gs z@S>GmuH9JFXH4l?IM$Sz@NH6KX)P?qIe(n5U*UA@e$SbpW???-IsLACjP?UVdGy4; zJm{Vf)4Kt;=A)TNC;J#TPGRfq;A{-MCB%cpea@OixaDc}RS$X5>pk&-*?6jnhk3hG zL(TMk#fIK!fhT{&PYx^M(CU6`>EDX=uphNJ^9u&fx<6vMo}Sk1`3|i|7|K zXhDtk5B%22{L(+z)`fmz=$?u1UV2`6%}cZB-;H~jgMaD_mVGZD;OATB9Hd|V6wkZr znWdMjd!et+`8e0aFvFf>bi|`(l^MzdG^j^+Y+UFwRy6A^2}_z)JDP>h9Q#oVY^{xx zT;XRHjaNCwJa_fjFLLlrUE+$Dhn4qo)*QO5;W1{t$lqXWp6OjZ#@%)OHmLuq>9t-#I;{mg=M@U2;Oe8sNspldjz zM_#?pYaH+PWlhnh_1a&()O5y)+3}m);(Rau?SEmM8s(>P-`w-Fcfa`gFW&w97w0?} zE3RLx_%FbXvtxbUntoAO!0XuFZ;s(?4&o{ferhN@@Sui#*c+R9)J2bLR12JN)S4c1 z2*WkeYaHko_jr}(!HGw4L&M5t-+0mN8tbH{RU=+-E-dTbGjDCkp`RFE@G&@`Nob_3uk@=;^IrRS`8n9>F{p@q>$SD@?XbZ12V2+P{=(Hhqm|gkGe13%qcm{!jIie{Qx6TUVSM;9qpb4ae$LFg!_RpKAKtMKp5l3f zdp@bdnmbc0T%UH0mQRcGLVxCZ%wX!}YtEm}-?}f)ICu0`++)sn+P9CpJ$tTm)m^_; z!<*`!YP)jp+3wul@0xS}_WOB`_jZhv`?WdT;oimWaPoV*%l&h)=l-vFzx-u<{_-7j zJpb|?;=lYw#X66(YJd65#H)@mt%wsZ7?le~dVc}T`VgO(useo+^6%C9(g&{SG0%93 zR`;|A=nhW2Xhl4Dm;?6tc#fv%BDb(KE92Q)dV~pHd4c!&tdshTMcinbHCi$w&YBua z_tunsR`LO7{7I8y(5Y|XbT9NlyY;&^8tAF<2S;AjGydgI-aT9LB(8qeFaE8McT_pX za9{lD%ouRQnR8Q*+mqgibg&M%{>Wh-@bXK(G105nQG?q4tev`gFF#kU(FV=pd(?v-^(m+G z;?A9!>(B{Z9bbOnfqr}+TR-`vSNd`{&^Yxo|J2TW=!N*^X$`7*$U~23+&TM__i&(Y z_N-m!%=7bgX7u?iKA**Z`y2RG{r-RTtGXwA_*=mJuee7X`S!q?U%9?&epUNl`g3jS ze}x=l$s5yntgD(|RzL97r~Slo9(~kG4B%gT>l_^mJNV)Z7uJPuOmL%4Idi}Z@`r!T zC9_k{)M%E#HwSvHDOlrW_`*M{c;*hG1=@BlJkEpHd3v$-=%L=kux3y1rKe-qFKpIX zFXmF`%u4=*)%eDZ)}Fa>KwFd*enqA{;jp@OfI9FkcFW6o;m;1mW{93D@ebCW)>j{r* zndum#=@bnG^hPkMvQP?&CYQ4`Ct~eWwrf@XoP% zMvQg6=8}8Y8qd?i-ld~8V^()s;emRgOZr+rH38fB^s94v<_?WRJb5HHu*s{rNMG>6 zw{p~S<)}RLFCEefY{xIF;=;v#|IVo$G508kn!;jSe3`@j`fJZkefKq=Huotwe*I~= zKkwgn`fI<-9s5l8|Hb$9*?a#K@A{v;hhG;bX3RNb4-L_w_1BgAb;t1jRhQVWt0y(s zE3Y2SD0qm0%Qb}~4B$z_%yfG2o)8BI>bj=)s$~sz0vC10fWGFMe(HuE_e59sF(+Q( zVGqo~ZwzQ7r&j(3b_{#;S~I;EU%waQ5??&+H@)#=%{@Etx{vte6<6jO4$h8v@+HsO zGiMLi8DuumFMrT%zvkqexi3uQY9Cx_fiCrB2FRzDHGLnMncoTLhhFn8AL0Nuyl9n1 zoPqBcdZ;;P-DP}8OZw-Yk)OM-xH(!kJzTKJ6)f(V&)syb;N4aidm=VZ_HVyxwH^d>jD=qdW4 zHyFq2_j1ukZJ{&Le#B1i>-w*~Z^sVD?fPbK7yjM%8*8c9Z*aGD=Gt?v z-d$hu-?*n&##Dz{pdUHT#l5-*;G<5f=4QU54tk{}wK(@(R&8s<-o2dB-opcHqY3NO zQ|IDQPI{uBJi!DOe8pS5a#fD=OFj6LYyIVG#q)atX7qwbun%>f8P1%gVw$Zy z3k!Aftp2JCk2UCS#oe`-2|sXq9*MDk`1)Rvr|;csEr|0&4w%v;&l7{T+~wr#p|R2H zp5Si0=(A7NN)!CaPxN3FzI0U`d2TeWcw>MUJk+sP^4O!bWsdQmRhodKdftzm7;^Pak=m?f;QSXnvoQ3Dg{h3FNJRvSj`4pZw z)gLYLG?@fO0?74^5g#O03({#qJ*yHDAuE#pzKE{D_a<*2?r?tMsH~o$O zroNXjU*>L}yE}X_Hd@DL#a__+(MRdgs&iuSu=}z9sNXDf@(v6CUi095<Xc`p_3H#FO*yi#X7#oPIl1zqrDSm0Fq09Rgokl%Kf-Gropf_=)E} zbhZw295ZJOUba?ghu-iH&YqF_&fef;g+KW^W=4O5CB5)qE#%fY8rqY4qlxk0_5F&! zYkh&PTk9QW<9B$ znCsCCukB5E!a>|;bHKCo)`~vjXGP2(;=BvwjKkbzpZ?C-U!BQ?IB_&v%@;M|(OTyV zhdiNIb%(BnjsAS?h1k|<+{RnIjfr~JjV|T(8FP@Hxr3!GJXN#3#aH*3C-|+weVNDM zo4n><`dNz{{c6qoP5<^ib@Fwsl|SURZ{W_I-*KLK_ikO~IWyTBv{$aRfSZ2xUQiPc zz~EPT)or@q#T{dUcex_)g9@y%)v< zZ{;6jH+<07Sfg=zpY+5R*Ry7N2ag=b{8sM3I^(xki&OdQ3{E}I=l!hi)G+=3Wc+5n z!MyeNLVfy`Z>mIm~meZu*u-n4pvpS^o=UT3(%rkt^ zH@)r6UR!(PEYINeef8Y-T!P`=`F%^jyup8A`r~}qck0)@Rg865#htt2j4B5`(ZW6E zxA59KW4bTiS!R~nokz}jVNYM~XIAH`pT07;tj3DY;2!>2Tb$7zZSZCsYOZ|y$sW27 z?##*Y^rvoN&fLHaAO27aEv&^XgvC1mm+NpBy+3+X&v|q&VyVYkAAJHZ{EjV-+@-LT z=bK^Ac_tp`Z7%TftF!rZ4-@Ymcmgl#xkru8@}C~fLpaGJ=DzTR8#)gS=vjK4i%#jO z8sgZ8F@Qsj>&$xG6L73sK2B}YryBWkzI)>@SUGzIHZ_$7_vGAu!p~aNj|R@mp62eM zNBEjiW`!7ft%crPYwwSKgOwi7F1?uDp=avp!#emDeLp=j^aAJd;mko|519vpG?Jc!odnLZf{aH#i0x9P*IA3pj6_(G(1? z?Aw|Z{~c%byN9{D;?;)&P|+} zgL2Z7+IY-8X>QS~xwKzsCa?5nhMJLQ%^LfNZugBg>BPC`%h_0G@0|zdifKmS^SqGf zd>qG~J<_UoHuGs8oY};;SH20)mvQJ=TJ+X36Xm2qnmAkE_d|d5wdRc@?ZY+th{>Lc zQG4t|no-|5;=p7KeVRW#F`hhf_GqlsaAuslaK)FqQ6Dump7e`% z;abP`%lqs;*VdVD8S&Py`Nhj#yVmtQ!;5jV$`9_OaN&oa>ZZnV&fu{wJ+12jD>HI0 zbYSLK;fwp+54ccQA92EmTIo=a;+a)zMGx=O^*Ni5ImWL9jx}V>w1q_$Xn{54Rht2?YawIX0&R7Gc%DkVFfSRtlKjUZ#;ybcVK?a$~cHc zS7y6>?^*3W^~fvZYi8h9tUSb1I4*Ul{rycW`d?pvf85ty{Y&^Sf-IL{w|jK zPrJSqyXxL{FY_+nXXf|Vzb{VBY3CDb{F-_4zsDY0=}Y~{AVIHgZ~@hPt4IUoAB2Ja7zh*>wZ$YWOc zN3XPNCM#EQoFsK(OxTX9=@uJALM#=x;t`R zI8fie2liNlvG*)SA9&1#{$RR?Z-qKeJ*=xfd7hOT@Ge@5_TdnI@}2>3{C18$$1ofH z{!0UAC(ZH-EPv44n&1WX>TO*WL%e(3%Q|CE4!y%IJoFnoIdX(Y*wTT$@6IdF=4Z{? zb4Ck`I+oU{*W9RW^`l8({hYTf%|X2wlEz4U9mz7yXYHAhc4 zJy&DP%kc6YR-fLZap1S-tGV-T*UWU+#bHkQ0B87xk=bburzo`BE`!~+OZ{dG<=GS+r_w&E+ z>wo2U@P~Rk_^9^}+W!G-eZT+xANWlkXVw1U585a9hpO#8d)1FR;-RnO;S|2Orysn7 zXC7#R9`Lp{X=zRI!Bu^zg|60Soy4-HqLdc2|sJcxVW^|?3a+E>?0Pxv$!#1@wK2QTmtZ+!4e zn{;3X(UrY1*|+ec&6t@1wZ<=Ngd-j1XAii+wd)O!5r}(o#t+zRl8@*yV#n@5sz4LKlb+y)+qwrOmH=z1(8wa|9O^mhYJa7i4 zbYvbnqd&Tk4~A!moIPenyGEMa!&>!Ck9b+vI9to}{MiEz)MnNGEj-c)k0;lgdoQ{l zbqMzk@2#=Z>#6hA+{M>z{gavpeNXCcF^{{rXnr$J-KT3?%kJfyzF^cU;YphF6u$T6pV{o_z6Kj3sF_(F!&su;T4W3s#W`5~8W)eKCm;U%m zJ-xLD@dlF`kACM@tZ^0wVv5_V{R$6vEdQHF_q+NQ2j{i$`5ycxG!O7VTlJ&Qy?tJM zx?9yB+Sy~A!cH!@!R)s|%;8mCoeL)#g0W|eSTxLDb4|V8$HoTkKHDoa(6d*c(+^&8 zr+?lqx!{vES)tAIV-9`5a6e+jk#jJhEqkukguTAOX+H26i}L_SV(AC2J&-rtsAJB0 zx<2}aMeo2Z41K{vOqvh;V7gvD)f*r34<2D?{)?9w$~Qmt$uH~aLp|VNojviMD>iy- zAFlQ>n&bl*s-sTK%roJP!3TWckbBj;R&~G)U-t4so~{K}#i=K}@-aHVX)LVvDZf5H ziAMu#7lwMF3;gEG3T@ObUEEXe;wGQ`NSi%oc32xjGm?g2D;93nx+mK9U1G0yqJEvT zU-*R~o@kw%=9cpdy};lsQhUE{Jj^k?Sa(i-t{9rv&Z!4D`P}oMWob_?Yy7X3xI16_ z*Y#cXx@X~>7)#UQmX}AY_Py{p^L;*W2IJ(Ncw@59dS1l4)BLP2_l5jj-{^?Gtki|y z_={S0|H4O4_q~jvzdQS$gmb>l#D*_(o8Mw;;`y;QJr8g7$(^0`f6{N|k6Qo49_-IJ z&dQ1ZPk-7vsut%J+qKCZv1nU8;v5~L#au_N`5b$w4gOwN|JL%S_WDPAl%E}+nVr6a z^QS*Sx3vF}`_asraPPX(mi~fq5~Sk zb#N1RxQAedNu9BYv5q9`u>d^NU{1K)KvQu#=nK@rc}UXV-JInZLEu1A5~JdZn3o z#IfFJ?p5*j1uwjpi3hi503OaCHT9v#ec|o*zH_x_J^Q7Rz3{`FxHSiO8Bg5ryJ`)t zfsTB}I%dgvL?`&nF z?mO-UGrZtYN5ytrGa8IwzY{=n^~tOEA*JR@3C^;@3{$c`ZE7r!&u`)yLxurp|9(o*NLm{v1%W1 zx<9$mI6TPR$9K)KC+?|fxGz|(q2jmq5N(>bv>2m%Gq2RFp358F_cNNR@8f(Q-@Ju| z|L{(b+dZ@Y7?@T6ae8>3{4q1sd|bI}PkNbuqN946!}U0K%$N^+#FU<{W&e#vXfw7v z-Ss`uxBBAmb&Qh_eWymu%iqSwUBs`~hrX`Aa4`P5uZMeWJow+3*spVRp?>dg&Zp)J z4lx&QIQ)KI?uABwrGZ|c<*Fx`y`pF7a6P!l_t3BUkB|OfV9ob&-)rVNIn^k>{5F?k zIOl!V3eM=t8tv3dZuK(H9$;9L@xm()_Kw={^*%GGn)KQ?dn-oXs^`1M8FkT#ICJjL zY=T7|^8(j6!dhO*BaHZ-`Bxl#U4yeUMDtZoV}SpnDYcmyYw2k)KZef4sCl$0ZcWie zZSIH9#ThNZ12#YOroZaRiC$x6&d|$wp$53tlX}es-1&f^d9fEhfaz6O*66tITDrt9 zZPIK_je}m{Pan9^;}!g=v6jwt-FTK4>Ce36723^Lee!{`YPZ(*w{>FQGaEk6r!j&j zd|_tRSe-Yn?n7Rw8~W_GXB*GXb)IMGKyT*9ylWXJSLIQYkMs1IGju=oSwm{ME}p^* zF6Zm~))gLUQ9bsVv1X6^sGK=<$I-Yr*r#5-mHV2LbLPl+-B0p*3&PMllXul&k6PWe zdeWO!*qJkbGnfHqS~XmS(|XOHp6kk<)z5bU-^Rk6vL7GC;n_$#=BZfTZ|B?pc$l31 z#CK!D3+mmoe36e_sj>gmAh-9{1%1?5x%kN&AP;-Y=bnCJ&~jj2>VWNh=Ahr}(%6{R zfw?-SHJIVbd9cTOX8p?g=QIE3Xt-N1wI|n~=MA%W&W-tE|Ec4|cJ9xEdE{Tht=wnE ze>ao&j>SXPrO#M@{`k+M`4)eAk2!Sh3;lZ@U4PD=^Ezhw8sFJ}ujx{A;3M}oj=sx_ zc4>YahV-R2>qTGVKbhsLa|~`)<1gROynNg>s~54Gcw?;J#-EQ`^pyvE@KiazFUK$o z)FY>SaT06l=WY;FoITWodU%`ou0P)b{J74%xr=C{o~1MW;LSdBXw9rIT>EJLoT*P5 z<==brP!noc7oN2S2O2gOHOWu3(TDZ4jyg;0cvsGNoVV^_`%g`JsT0`7W4`q){f^@`D@@)AR?b23Xi!}=s8)BlW5#oT-eTUH>NCsX&8&HUn9csmW9}z+G4n+ZdS}&a z>&&~Co@2kU(VH1!4#dJLPyL2@b_{yh6a6|<1L7Ba=@B-3wl`wnEDf`|hP9VI;*a0) z8oj}XwuOUP6pyrNl~>iw+wwf@A3pbNXV!>INB08X_2ALF-@KV0IHF;2uBp4d}i2d zu1_$JyLnP`)ukD|jQy6HEAD4{{xo-X>5Z4HdHbKK-Z#$v-@faaocDR} z?^F90?yC9ApWpq3v;Ir{jrhyEzx<`Xb%sWsD?YX95r^tGAFyyXCica{GjRHR;{2Jp z^eT5^SFZI26Lo`$`oEA1eA&m7W8nAKy*v*$XK}=k6An2VWA^~pTua0Do4hnuZ|2c> z(YA5LO+Tn>?DVU4W);84YmVRzckAh#F^xO^f)hhq zbM8m0YdxdUch=$Ul6&dewaQDkG{T?0t*z%=e20FY6+1O`|8YOi=UJgQzSbK2VCI|| zbUZ!OAa1?gc&-(`GlQ)az3ztwV)hyO^ua^F%e)uVrxxBkukffxebfW~;L&sRfw$_c zKX*aygUdC*K^$1<^QyOtoU|a%`$C?dW52F z^bSTeX>QOFF6rWZP~Y&$uWG5add36#?Xmr47QuJE=ZCXmjYCXmEo{uvXU!6LRloXM zH|x=}d~Pgin!N63I5ZFEp$Rzd;htJfy~y`l;H=~qbC!E`s(NXx6Uhe z=A0FLwU0*gkB6lN*u;(gb0x+_*T(66*PuTb)_LIX*zEb6ZVbo!EWG9--t;1VytU5n zzNM*gfsvZ5!rimK<@IkcxvoF3ac}u8o%rcH-bJ)DMtZWw^YxtgURO=w-Ok56pY*)k z|H;PrWPZb!x=;S1-1I-MZNC?cGrsx{4S#tz95))f)_QPuOd5kbEAd$4*xr}MPwI?s z>)RUk{;Ubd*^8R#`K0zw>MopveW`a{FrVTz?_+;@!$H5FR2{tE+|wC*#LLX%HTBmu ze7l~p!}|q4dfreIzVOUFUNLcAv8(Tc>+wE?U;Rg&@OU3rJa|AYW^6wXTDP8fzO0{A zf8&FrF|B3uGKc#_k3FD27>Gd+KIZo-yyI=LPFTXT7GpE!8q5~w(Yk7*3oB}%d4JZz zn6ZOLovj!8^A$evw8n2V#D_G3_u`NIisgPZo6OJp!5yvkC(Me|b8yioUwR|PMlb51 zwLkPi)5@_Ib>OvL*FaY=kXIkL23K>}IsHAK<_Qi~a9a~*V~vUTU4W0A!^L@^-|@^= z^FZAC;k`AAQ?mgta97=-MREBM9&yOI@Sz(VUZq1`dcM>MK50>0bBO1xJ&$OEKK7Zz z8rz>|79Z4s8tCDQzUkF0Fh}T~kF&0`?l^OjkJL^sb?~E4{MKqd%_OzPM9#d_!nsur z-2V91wr}pOrTtF*=(=Fjk7DFBcX+r~Z06wFCv}|p(kWieT9}J#d*NL`Z}P)QT^+yi zwD>d^-I@Awf6=Xey+Oq4Gq>JX*MoII;&>wI+YSuQSN zFD~bF7t)>CG_%>V+F^xi4wL?8KEdx;hUX#1`Jp z2TOC)yyXu)SKZ>-xbkEE);~C-`CkzG>%Rc=GxG4)&j{yVI=_E~#{blv{HJ(7%?$rj znxF9g^^?Eqf8Aee-8FUo>v8^sXViDk!yJson);nqKQQ>a02V*-2nTufpeDbc2YmE_ z%NVMIzGx1w>%bo_YD9i`j^Ee94u80gv-L5ydNQ-rLKF6V&MZ1Mnl;~O&x)ChSLha= z)~$_mvX;z@yq;-%ZXWG5C+yW{Zen3yA9K>N{WRwCv$=eGRM-`ysl|~;JWymcO{J0 zPR+o=JDE3;e#JC9-mm$0T-dG&H&%bptvj%{l?$fsOd8}7Gcg9e2p_R%RnN?X^TLcU z8~c)v;iqnRNF6z>D?OeCb)b%M@#jwBZRUU(S{pFU!MeuKeJkd@bD2@k2^xa4^qg~o zFL=QhkID#jkzGA_b=Z--`zQWt@g1Vs#TA2ezW;XgXUwO*h zQzvZno5vi@Np8==I^;*O?X9s(PiBvmnyryD>lr~SxaA8P#jzzc+9GM7@n@J=OO&#IgSy^M9*z`i}Y)Pv2fyiyGn$ zMzFGO%)kB38qA%VtkPwyt_}9meE2Fqht_b!=b8gC%eU)W+tDBX@UHdRchS*4E_H{m z^q}T}S9cN|<{xU79^Yqh$dmeBH8q4O zRo?o5!5(sBpAWUDQ=V@CIrd>TYd+L+YL}ky1WT)Ct$y*R&iKWV*^;j{R9)t9#Efe% z!~{lkMKf`s6FlP7I=q^-difR_6S4GeK4?N5npd72J`=;7=4Nd)MrZn~M)L#De7mRT z@1CotJ>%$}cUD@U7c=xs=H8J@+;yx~ecvm2jbVS2L%(sH6Q*LiL(B%=T-)`CqYm?Q zZsR*fF2{#UJ?h8(qW=+R$C{rW7w_WEY-cXU41d<*lQ*ySl)0ck+Tw4{;Ff0b6$kr= zi}T`Kl+$@M_e{(i4(c{`_9r$td>_^rA6;K@)mSI%wa@&=%ho*lu2?uv&#LpAR1RK+ z*Z!!b>f5Jr>dZIJyBrOVJd2C-#93c+;@tSg!r3v_ZJnvjx;0b`_39a}aDKjiK9kSi z!2j4A_`CG}-Rs}}_V;(QkC(r{`&-x5zG`yMf3Lp>_>xDQXT$IyO)Dty#(A=s}J6#kuD~4c!YpsTodbkk-+j zI(wjJ%wqRV%{h0?EZ&%-2Gz^c;6QKd;>;?C`9rIDb*?(r8h`Imk2^s3-YMIPuH?d?6ft)+Rx6+h%0 ze}@NZ5w^5rkJ`+rbX327H`d{vzXPA2YISc*tNEc_*ufG$-&webiM;r!vHGP2Jkrn_ zlY=&X;Q%)JtQp)(ui~l=cI#*?%wC@QO+*(wnVT!H-G^0J;1(}^FmD~+hdaJ>wioo0 zPuO~&@-v*)L4NPiv-Q9Ov|@!euDix_;*7vKHKS|s5??*7i8{?eK5*eI54wBk1Geh8 zVh*eqUi|VdsS|nUROZd)Md`4C-36mS^3ru&fwQ7KJjiZy{8}5rB*(- zcjW!q`*>8{&gSVdTwl4L@fk-QlUM9edXEkM6OCI*VsCghLpr`^Vo$bH^L&u{RihUww() zYa9I3#Y>-wRr7epi+Ihe`&ubp5yK>=jOY_)5E-Tuhpi9>pdQ|0;jPu-%I@q z`P1(mRxq$+^^LrnnnwBsMtVFQ0nTv+HuFspo8)!!xqp?zd*n4Y@k!j`l2B&%1*! z=+hTnqr*DQD@_&K_r_k$GIz^47r$^lFP`lm+~iMg{KRK#V4XQRH~4~X^dhcxJRq+c z=@9mKM!moI>a+108@=k!3SMwE1~p`Um9sYaaKC$~VfBtC)d{!u;Ac-(#lp?mU@o4G zaKP<)YJeu4gQdHkI(U*^tvutN+#k>EXH2==o$%6IT)-pe!dY)`}{KgBh=?gjF z8H?*^1D1Tbrt*3hIHS&bI1^#;&g?^;f+sHalQVJjVTQ(xmc=bj)jafDM?6F?=Sm%= znYyKy_fJ0Q$vt#G`K1k9oVV+;sqX)Q%_q^$C>EwC(h_PbrHL+fyR(yViR5Uf=hB zXNbgmAAQL4Z1&!3c-Onu-s}JV{|p?Q$EdlFU6bB?6Ys>h*jro>+628IehvLO?$|6^cTDox4(lQF{lfF<6bZvvn{JJ$Ti^? z-z@WW&Ig!v-?XiA;3r-2fh^=24|VXGlTXZrOD|44CqJv;)bJa@x5OMFww-gFPdW2! z>$*})iqfcFi8JM16JR=SqfRaR?Bi>4Rf7}c!`6p zbzftryWKeVIFI5BJLSkdXT;&%F8M1yV}uiK( z13S#XwBd5+qS)Cka$yZ~T>2Xyi;c4Z7G_{`W-cDLa5XNT3v6>OjCw&i@lFF4s5U~M?a%{h9U%B}9fCk8RvKHwNUj05x* zlYY=U2g@(z7V2wAbAj(!ohqgr5`gnbM>`|L>@eVty(`Nc4d_OB< zje^s`tKpk4$L8OWJMddE9uNNS?mJ2iHY>+5a9X*JU9&Opz-`=^x&C?WF~(Ipjb+aT zjm!D*=df7%7x&9z9gd}Y7P68IS}uS;Cmb@KEYd48yEw_V1>I`7RV`IS9nc9wN^ zU&N`gy6_BN`En*EZB5=&mkT$9=47hx(_>+^)#N(MY z;zvAivz+W)9gk;be!OR@;!{>@5c7B(vC|Gn=R_YHm3of5yQYzCPD=*c2c4wYx+P3B!26*0}Rr zbOwL3t9)25_X%5Inl0=jR`G3dvG|m^AJ2#JxG(uwO`H#GXh&{dS713VxHZ3(iJ;iypOctRjor@}89Q;JJo<#%bh% zSOwp6rXD`FE_%d{_?)d);FanHKl<94dwmKw^CecEVHbHP8><^RU@qA1OTP6?N028> z+V=P|uMXQ<th;$s?6LIBXUv&(?98vma~z%<<9Qs7o8*hZBlcJm*EkZlf#+PR5A)Gk?c4I2 zPt}pH*#aARl7q!^u0;kNxzJ8$=xsFkK^A!=c>^o_{2T&1+44NR2C7HQhTd!7xy4%b z78kZ=@A5`mvvIx4X;W*{j@7^TUg}M$RYeK7UJ2y zmxuFm9@Ss-)R^_oHT~SKB{O^0G}SI}G7tDy48?(sj$FfP{3&eRSwmLbu&H@-#Laq zWQbvLDAO6W(^y59^p;cM;JGw-n=SYN$MM0#vR;@Uz~^8 zaP7Pu!{f7F%`*YE$1nE-I3@2I!(!9cxYAECj0@)AN^Z6XmlOxv>iF&LPK*8fSaN zwLNC=$o{@|j_{?eV-mmkSiQp^`4Y?4$rti+zR8aEF=yO@ReYO%tYg8Yond+G27i?| z_I5XD*TRnb0S-Jro~NG?{5tY$%dpqHOWdeYz3(2^^Cp)(bDiyCO{|DvTrKyi@2+QH z+IhHb+qZEqqE5(xc$lp&$PIe4X=3HNWj{YxaL6M#TMUmwpTZ@0^m0{SPZfxVUDJwe_%NtI5*>T?Mv)& z*mn6hYdChi&9=|Hx@yoRgU?9vjQ2R!s9UXFu64&<>4}r=bIs`6dl#+tqvkXcX2q|3 ztE}@(d-#rRU$95zI2I0bh`E79T@$0k9S7$n9X60v`4U;OB=DCkY4%T%t3B2>S~kR| zE%vrnJK*Vh$w2rNn;NskHXCC5TsbtY3Ei+_@hXH$Hk&k28*_#dYVN-a8U)m#% z$Euvm{b|>$a0wsPH+a(C;wL`gS7VVga!Gj<{1$ie#cVNKafu&xwdQ`VOBykV9rY|R z$=CV#eV{FMm{n#xvaD+zIBIWslbgnC)C}>7N1irUe?QZX7=h{MMf+^$vT~j!*Oolt zAn(dIxHmYrd<|3W3`2F8xi0ZCC*X%&=;`Zy6!^x2c79gbj~Ekhq1sdFA)Z#z?~FMNYvj$d+s&SR9=VTZUT z!<^Q%XCB2bY`8Z&UI9hFu z7v;^_xkBdkvwEW5=8qV`-*B;ZKBk9V?7@XTet*diHokUj<^%h{H{Y;99NM>M+FMNW za2&%{x$|x6oEz*^4t&Jp+?Ivhd=SU>G3(mu2_GB4sXCWI=eg9gfM1Po=cfL~l{mI< zaU-_bgO|H#es>5p$H`wH(2w%b&8udGqj7-W|L~AI$@=bTI3 zT6RU=%ext~S8uUL@o#gecr6Z=L$9p(5~ z;^+A|7u2+3xsSzGx#tW%;1+peCQsChagASKMJ%fcaZoGD1IuHRhsP**7RT|JbL9iM z)JZyv(P@vG~R>d?FX{gui1jU!6_wdy9d5N=_9QITWsihwB|T;*qD} zL>(Y2Jjko&;%5`FBA+6IpK*6T@?ia}X6Dn(q1F)jAin2nGwe|d!_E0RhTCR)$lbo2 zQTX~9xz0GL-0SEut(K6%K6o%6=16REBwx&)FX~7RzBb&bYl+Jk#?|XaF2z1{m3P<$ zN3&ziAyfM*b3Wt*dEsujk)!c)U+1lUz$rFdBNx}97S0jzxURWct<1J%UpS~O*N7AG z$e*=`jqxsX_{E+ah}Gl`UNyew4u8jBtv!ayzyX|~x3$mahg`@3d>KD#XYt`1d)Ch9 z>dRaThp1goOv4ZU#+P|SY}PAcGM>c;zZlNh<9kfU#MXH?tLqML(e>Q zZeTb3Dn^&Dohf-+EazD8D5Fh^366dzG&lCB<;hxg&A|83#iyOGpN(^}8b%ziPtCjV z1$KigeY?0omi4}F^2+*((X?sfR6FPYd)yCh9`>M}-(c;L)_E4bEnN58yjTS*VpNQA z#3!#7k2a?7N5RYfd9C=JwHO=)i=0~XU<1@ ztvYwspdBany|EaxcW&F}^BmOs0KMm1`MON8a(rDImd$EQ9cRN~e8)vjjrg#oy{&7^ zX8!6=yUsc#Kg%Kbs85bZzQ)7ikzeqLen9@P&GrpG!NqJMhS>(Ua$gwVVgWOFnt$5E z&up4}8Iyjf0nUhW`e4qS&E8_v`noLY0v?6~EaH(5_gM)Tk&ze78^3l zje6`OHu&h;&(3+-9x~VLzmY|JqX)BW5xd`#{(7KgaW&(6YPfeYgT%Q-Qg z^8qL4W%V+=#NBX#Ls{kr88Mx!@wePm4qwYHaR*LdRlW1{z2lT~fxpGbv50{g_BD?C zQ4UcD?e>8calJ3&oM8jM7`^wv^DcU`51G}3ToE^78y0MU>+(`}yHinL_*=f% zyRY|z@4W`PRy@C#z@%@Ai@Z2s%R!m>R6pZXKDRgrysz(lZ;#J8`Z>Tp3%S1incaQ( z8IPa)9Fw`*=Mu%iXBB>4qOQcWIQY!LQ8D=Wn;Z=XSn(OAU>JVoXYd}!D_6L7A)os;X#A2`K6Y6p8eCyj4w#)2HRA?L6!e4%R%!-rjP z2(E=Y?8)D37{hTGAGoE@%G!I(UW1}!&??Los#WCB`Z*Et5vQtjq@z_RO zjc4`M-0-s|{<~BD|19AD|Kf=m|F4NB#vfY^_&Y}a^Ix^ENAIzAZ=vTlzwa!@vSsxd z+tJUt9rpNp@I@YW4O!SlJYp3;|AuYkoMmNge*>O*w76O9kR=|hM?MET_f~D)u7%mCUv~|_4S&NP`4pbO z&Kwxa_=jDra~+Bgd`+*oSQmeud5zVGNxPVxo7*C14FCV=`tKa^eO+%4qjz+aUecaI z|HZ!7zTM~Sy_ng%>R?Cdc_8Mtn^v#L-d>Py}!5)d-GWq{mGeq z4O^F$81}q{Ob2lx3!Ku^`u-h1utGiKzbH`ktFc$VS!xzWSrnQG5I z?^V8sMSppZRk`cflitg~psmgJ40m6bhd%lguLs4x*s6{7wD&&VJL5ew{uVNxx!^xz z#!NZzzyoFKl&La#%4C^5*~k8v_xG{?bKV~^&50Zg4}0bbezvABY+GDP zJhveR>fr0-OI*x4vaQuE^oU7L$eVn;E-BZ*@%o2dU}U^fJL)($a&g=q&djgjlWb9A zt)uZxHVyuPVf7{+@-p94({e_vO{$&xfm^P@l*vUyi@^ zfZso|uRlfaqNnUR7<+$qqSx4;J~#R=_hP~+{h9RU7th_SZ{y+h0H4?KUIEYDgAYE~ zp0~&YHQIOIePz<5NwUvA`#dq8sKFog9l$-`Z@>Kny^LoUp2c(Z{WLxkYnR@(-qq>8*zgd&dhMtzf)iM0~Z|K-e%UZ z6}ydty~~0>G3k$e8zc6t8Ec$pVs^zdt_@6&4Lo8Z2hXEbv*H)EAz#j_-+S+gI`+0_ z7M{g3rq7Ur_3Iw^S`a>4qF3xWn|qNx#<|sp)~m1&J^R>a?Z@Tbv)Ft8)*h~X3xD)3 zhxa?UfD^ba(Dw;@9(la{>Dz9SZ7;Y-wz}wEdD2Dq==jnW9b2Dw*A~Uw()|Aa;%)hQ z|G&uxy#ElngY&(z&3Sjr)86<2dFjjr_FB64K6~49_<#cr5WJ6`KmQQ>J4pDRGTt*= z&sjgQuhO&BdKEpW13jyw^c{K?e%8y;yJmyFR6DbEOg@j@H+1xc9k8^2@qO)u`uY5M zCtNLZ*#jc)xJ~5L8$?e0sK^OA-rO3HWjXgF$tcfulmWX-o@L{;$#z_0&LhXA{DkX7 zPS$)eu!j63>_4tG_y^y^5BgJY^l{S1nz$$H9(vlJc)k0#?SO6Z6dN%Zk6d7nxOtc? z_|TqwU`JWz%sksXXhR?B$=h;Q4ySy=^UO6NCg%3Ayh6@gXwN-u#=ECKW6_WMww`;& zplIZtc48D47_~;Hgum>HE>yGH>2|?cYWEHLL;q8diCB;(3TZ zvR?JI_n`Nw_bT*wUP6yvj-G~J^r7`A*XU8}<-j%{VsnoERXaR?U-CEa6}jR;kuyIn z@+LjM^ry^XUI7s4t>e_U;(U!(QV-Z|+XMb=y-GI*-U^0$Z_^M38IPq{rX*T2Ux z-f*qObN;=Q~20|RwG`f}HS565~v8^p%`Z}jyAd|o*D7E5oP4u#P|ibd)m%?; zyc0jEIej8(sc{f157ZcY=2&VQvLdG)&Lr8>H`|#$>?~IJ=D75up7)eEv@Nj`MjIdd z6SQ9E-6<2!xm8|1dy&0|#@B#m>GxmeYyU3NuMgq>r(s_|LXSni@p*F8MqYWRI5d(4N9kx!kdfzui&i^NU&Amm3_OQ)Z{{fHFGWQX3dfVr`Z=due zk!LeEFaTYS98x%Y}pUn#QHR#N^w^%)||w3pA)nxVI!v9sIH-5~PL zuZX$4JSDq3}{f^p;`uYQ$r$5_m@cMG5Vu9O~L6_~*r}%e@JnQ+sf1SS9LfmJ+$oB`W7J2)Z zMfx@0C;v%~F7lEo{u=St+c)Drj8O02dre&7OwI>ssSRmXLnvF0AW=jxq3=1RY> zfA&0)bM6s&@xJx`t~^U*gVqQCcGP>l_{}1-ULE_Lv~TpD;&pzjZCtj;LHhYa`}diO zg@0Rb@6Wlv`;y1a@pk%O`n*&B)3vYu?w>{8b-&1NGu`jGyNS$ujmWFkioE(fk+~aP zzReCIPtn(wZMARlZ_hdE_ki}|9U?nD%Vme1qa41fuOlj-HsrE>57qNkUg%%^!!vc( zDqrKj^Iz*2+fC41wicPK{XBHK$P4y#8?1p@>aDeFtm7=&_06@0ePiD`qwLFdp6PG0 zM{d@mW_OU2i(@OR?yUe)?H^-oW4vftRF z%ZI!NqZgO!e!2B6X7A(Dqx7*Eem)Rmq#l0Ox%#?#&3E;^gWeyU(RmNZ_7^=U6E3b} zhqQ*g>|1u(=l8WPv0I!NZ!Eppk@uzFmhJIbNdIm1{Flkr1N!_)|F&Isp=`D24JO(8 zpj9&A+DBx9`pC0)HQ9EryFzwY^DddN{dTg`Q=TkOd+9#1)A1jaop;_@p8wqE$S%9= zB0HUSqwMhBhh&1r+~K|7()}mo<-6@Bd+hNF*>m!N^2*r@~>`M=79D;}07pLv_SY|p*qCA;q-e{#?YdEqPemY4t4F7mY3Un)DO ze!}_p$#Zv~D9`4{g0EfSdolQ)%)&(r?R%{Lvlo01ti4rw60+z=lcnb>dQtmz z2t7+(S-YR>pih3$yVN0;>FFE$r=6#-KOg?S$R*#Ar(gZBy!hk)A$$Def66P;z`iYm zp7JhT_Rs6hvCV#5clnbCZN@wAdD~Cq#TV%NF#OwbC)sAlr^>^L!V}E(tQ=cM# zea5x2+i~xZJ^t#2vggU~l|AnGrR;voBQouXqh;QKQ)SY{H_NP3FP6dnMKbr;(`0DH zO6hy;33AwBhs%KPJ1~@)N7)?w|g#OuFiea>QXPW#yXnvf%VfWN6I> zS+#h9OughLnRn_1vS#TbnRCWv>hp;CSZ+7}NCw_;iX48#k+R=a_sHsWvH@B2x)b$WzOVA1$*j{Zk>zt|$;=bpA-gHYflF4}&n8UM z&vbiEK0sc)bgjH>*B8jkPkfK;`o;_7$vbQ(f4cWf+4J^a$g@|SD9>25PX27kG4j`! z+%9|G^52a+Fs)pEd^eR=19OOL_Kz?1k5VPhaD{EAsw_WvdVTi}fyk z25~`OeD6qqXURX~qQ|_~?73+@sn5sKd)}*fc9wp_+J@WJUi9axJzLe^@#1wM`ja@o zx7UjtN1w~jKmB7OH#{QGyzWOb^|L>fDR=x-_PhNjHul$8&wh9OOs3xOkPNR{Er%~(DhGb#t8(b^Z(2IdEB!eqd>zXBD0!6M{Z}57 zg&(_LRxTZo!~6SW**mY2zOQeRf#Xh*;W;y8;pLx_h4=ha1~(onLks80($yQaPhKs< zeY$?jd9vV+AILKOOf;y^!@j#7k-^m)WN6MT894nS>AUmCvRwOZaP@lW`{MtRh4=ni z7T))m^xg1)EIV|eEFb8XW%|5cuFvivT`#)+KIuRC?J|7O0kZh4OQrArO~%o<-uoNr z`=_7D;Hot;ykL$j$M1&S_zhX0=e6YM<79a5Oj&&XwX*QmhxLx>&+X~Y`z^TXAz6Ix zm5Mh_2Htw1Eco*O$daSh%h3FTWa;0&RTg}0lk{Ks5gD32Rr=L;!Pg#>!IRFB6^jm$ z!NXU{(ltlR3XO%|Xh?^4wECBz+6|>}$^cbI9RuElBLckuDJ@bNsdpYb$as{h}cWc?R^AgeF_ zds*|I56k-del8mx+9a#5{fw+W?|riNwr|OX@2br`Ka`^`xJp*N@dR1*rqg82)i-Ot zkIMSH)%W}>W$oYJVt#9`yGvHT>wU8BGY`pzZ*Gz`mw!ywTzZ{sc;HvEQTK?q?(QGT z>PtQ-YcAGt(KQdm3PYd&pu6e?mu8L*5CiAZ1~P5S$o4hvIZE}->tY`F+Pxi&+7NzC~GdfO4fhjzhtB4weIGx z$?A7rA?rT%fNcEsCgu64*&KQNsj}+0H_NIsFOYS&KO`HKORgKwkZ11udN&|%55EU~ zk4%R%;GN)oNHhKIER!5Q(9xIo!tbr$4dNFJ`kV@^y@$Gcsq|n^|9RgHtDH8&L&LguoGRBne2YKyVT0Z+@`}Tro_o}> z^1Kf|Bqx3UF**0YHp!X)uH)Y}$r(B@k2S_?w>g+&#oS{0?`eKNjDfr#*72XQ|Bu*X zMqR!igEfLZe6er)p>98j!5YGbK8%SO@nFNahyz>taYh`*gN)n}C(f*a0h}M{z^wLX z(I0-mM_#~VJYc{^_h;ms8UGJx9?zYm&DmOycl~&iEPwEq@}iTk(eD%a|BJ(ZjzW9K zzWzJx{bhY;eTE+N-t6gX)epm7^|0|CjhS;CG!t;XMMj=|{mD%inl(_;=>oVb_&Mj+xh%Ul)evW_DSZ z*Ex5{spFjWTxYwGz0T}^BXjQhvFvfe75Y0y{?`k6>$B2p=|NV`_r=XIk(8OG0w*L zw5~ZqX8K#*rr1#jdFbG;>%TbXHp4YMVmD^s!_eaZnVe_}@m(?8jM?N(9cOUJ z>lUXKt-a;hvQIW8w#l+x$C`eeN33CR7}YNDTQ<$yQ!XvLa@Gxb7iP{Q;VJi?SPd-N zj^w|h*FWmf#;yDCi8w1dq5ttVnC7Hoh4T=R*uH>@Tv=i{>KM{JdwPsBD}!PW4?F5>0fj9pORsz6qZp-T#Gx$kQ7_aua_0;j_wV8XjFud6C}T{{ z%7f?Q&mQ`Ch2Qf5m)+Zh9?d(nNyjhdNooA>v z^ubI!)`9kzc_&@wJn9{z-t)9G1UBo5+`z|TAYa(Q2mE|k?QBgRZbLu%U?vyFH{OQt z@jVydlBZ)Dcf_{%)VUA20o(n-nHVu4H4$`I&-Keyvup@oXwD^-&v>N3OKxxwsCvVH^@$<7Ye9O_#rkthvJI|;AeA4jq%rW5a{K(z70-M9Q!zb!&9LX)_ zIA`$pT;1L|H4A>OT76&*k%e4Y`axQrUU*Hwn5x|VW|L%AU&psI2@J+6IYS=x$TB;_h*5dfSiJk?{;4hOGB4oOGXpmc z#~~Mwm3Sna65Gxu@`-i1GsxA>B-O`kYCPT*=UD5K?^uadYU??fuhmoWqE?0zF^I|B zEuYLW*7aV3SJcw*fLl2k58YQjX$`v=9xr^uzwjboI~R{v^FS=fl05dTsdG&naZkV* Pyb3mP+^(Es*oypLHOz&0