From bb98b356777837742b1de2205ab76f858289f02b Mon Sep 17 00:00:00 2001 From: = <=> Date: Wed, 3 Feb 2021 18:04:46 -0500 Subject: [PATCH] Add scrollback and universal scroll --- -.orig | 0 -.rej | 71 ++++++++ .gitignore | 1 + .pc/st-universcroll-0.8.4.diff | 90 +++++++++ config.def.h | 10 +- config.def.h.orig | 2 + config.h | 16 +- st | Bin 98936 -> 103208 bytes st-osc10-20210106-9c4b3f4.diff | 91 ++++++++++ st.c | 5 + st.c.orig | 125 ++++++++++--- st.c.rej | 323 +++++++++++++++++++++++++++++++++ st.h | 1 + st.h.orig | 2 + st.h.rej | 7 + st.o | Bin 74592 -> 0 bytes x.c | 2 + x.c.orig | 44 +++-- x.o | Bin 74424 -> 0 bytes 19 files changed, 738 insertions(+), 52 deletions(-) create mode 100644 -.orig create mode 100644 -.rej create mode 100644 .pc/st-universcroll-0.8.4.diff create mode 100644 st-osc10-20210106-9c4b3f4.diff create mode 100644 st.c.rej create mode 100644 st.h.rej delete mode 100644 st.o delete mode 100644 x.o diff --git a/-.orig b/-.orig new file mode 100644 index 0000000..e69de29 diff --git a/-.rej b/-.rej new file mode 100644 index 0000000..b429a52 --- /dev/null +++ b/-.rej @@ -0,0 +1,71 @@ +--- config.def.h ++++ config.def.h +@@ -120,6 +120,8 @@ static const char *colorname[] = { + /* more colors can be added after 255 to use with DefaultXX */ + "#cccccc", + "#555555", ++ "black", ++ "gray90", + }; + + +@@ -127,9 +129,10 @@ static const char *colorname[] = { + * Default colors (colorname index) + * foreground, background, cursor, reverse cursor + */ +-unsigned int defaultfg = 7; +-unsigned int defaultbg = 0; +-static unsigned int defaultcs = 256; ++ ++unsigned int defaultbg = 258; ++unsigned int defaultfg = 259; ++unsigned int defaultcs = 256; + static unsigned int defaultrcs = 257; + + /* +--- st.c ++++ st.c +@@ -1877,6 +1877,36 @@ strhandle(void) + } + } + return; ++ case 10: /* set foreground color */ ++ if (narg < 2) ++ break; ++ ++ p = strescseq.args[1]; ++ if (xsetcolorname(defaultfg, p)) ++ fprintf(stderr, "erresc: invalid foreground color %d\n", p); ++ else ++ redraw(); ++ break; ++ case 11: /* set background color */ ++ if (narg < 2) ++ break; ++ ++ p = strescseq.args[1]; ++ if (xsetcolorname(defaultbg, p)) ++ fprintf(stderr, "erresc: invalid background color %d\n", p); ++ else ++ redraw(); ++ break; ++ case 12: /* set cursor color */ ++ if (narg < 2) ++ break; ++ ++ p = strescseq.args[1]; ++ if (xsetcolorname(defaultcs, p)) ++ fprintf(stderr, "erresc: invalid cursor color %d\n", p); ++ else ++ redraw(); ++ break; + case 4: /* color set */ + if (narg < 3) + break; +--- st.h ++++ st.h +@@ -123,3 +123,4 @@ extern char *termname; + extern unsigned int tabspaces; + extern unsigned int defaultfg; + extern unsigned int defaultbg; ++extern unsigned int defaultcs; diff --git a/.gitignore b/.gitignore index 9333531..948b76f 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ *.swp *.swo +*.o diff --git a/.pc/st-universcroll-0.8.4.diff b/.pc/st-universcroll-0.8.4.diff new file mode 100644 index 0000000..6a33813 --- /dev/null +++ b/.pc/st-universcroll-0.8.4.diff @@ -0,0 +1,90 @@ +From 9726b1e58352126252412e101432e64d46fc51ca Mon Sep 17 00:00:00 2001 +From: Dennis Lee +Date: Sun, 28 Jun 2020 23:01:03 -0700 +Subject: [PATCH] universcroll: mouse wheel only scroll in all modes + +Scroll normally via scroll(1), without Shift, when outside of +`MODE_ALTSCREEN`. Inside an alt screen, continue to scroll normally +without Shift; in this mode, your scrolling is automatically translated +into ^Y and ^E. It just werks! + +Based on the existing mouse-altscreen patch +https://st.suckless.org/patches/scrollback/ +adapted for st(1) 0.8.4 and scroll(1). +--- + config.def.h | 10 +++++----- + st.c | 5 +++++ + st.h | 1 + + x.c | 2 ++ + 4 files changed, 13 insertions(+), 5 deletions(-) + +diff --git a/config.def.h b/config.def.h +index 6f05dce..62e87da 100644 +--- a/config.def.h ++++ b/config.def.h +@@ -173,11 +173,11 @@ static uint forcemousemod = ShiftMask; + * Beware that overloading Button1 will disable the selection. + */ + static MouseShortcut mshortcuts[] = { +- /* mask button function argument release */ +- { XK_ANY_MOD, Button2, selpaste, {.i = 0}, 1 }, +- { ShiftMask, Button4, ttysend, {.s = "\033[5;2~"} }, ++ /* mask button function argument release alt */ ++ { XK_ANY_MOD, Button2, selpaste, {.i = 0}, 1 }, ++ { XK_ANY_MOD, Button4, ttysend, {.s = "\033[5;2~"}, 0, -1 }, + { XK_ANY_MOD, Button4, ttysend, {.s = "\031"} }, +- { ShiftMask, Button5, ttysend, {.s = "\033[6;2~"} }, ++ { XK_ANY_MOD, Button5, ttysend, {.s = "\033[6;2~"}, 0, -1 }, + { XK_ANY_MOD, Button5, ttysend, {.s = "\005"} }, + }; + +diff --git a/st.c b/st.c +index 76b7e0d..1f65453 100644 +--- a/st.c ++++ b/st.c +@@ -1047,6 +1047,11 @@ tnew(int col, int row) + treset(); + } + ++int tisaltscr(void) ++{ ++ return IS_SET(MODE_ALTSCREEN); ++} ++ + void + tswapscreen(void) + { +diff --git a/st.h b/st.h +index 3d351b6..39cc054 100644 +--- a/st.h ++++ b/st.h +@@ -87,6 +87,7 @@ void sendbreak(const Arg *); + void toggleprinter(const Arg *); + + int tattrset(int); ++int tisaltscr(void); + void tnew(int, int); + void tresize(int, int); + void tsetdirtattr(int); +diff --git a/x.c b/x.c +index 210f184..210dde9 100644 +--- a/x.c ++++ b/x.c +@@ -34,6 +34,7 @@ typedef struct { + void (*func)(const Arg *); + const Arg arg; + uint release; ++ int altscrn; /* 0: don't care, -1: not alt screen, 1: alt screen */ + } MouseShortcut; + + typedef struct { +@@ -446,6 +447,7 @@ mouseaction(XEvent *e, uint release) + for (ms = mshortcuts; ms < mshortcuts + LEN(mshortcuts); ms++) { + if (ms->release == release && + ms->button == e->xbutton.button && ++ (!ms->altscrn || (ms->altscrn == (tisaltscr() ? 1 : -1))) && + (match(ms->mod, state) || /* exact or forced */ + match(ms->mod, state & ~forcemousemod))) { + ms->func(&(ms->arg)); +-- +2.27.0 diff --git a/config.def.h b/config.def.h index ae91393..d8e718c 100644 --- a/config.def.h +++ b/config.def.h @@ -178,11 +178,11 @@ static uint forcemousemod = ShiftMask; * Beware that overloading Button1 will disable the selection. */ static MouseShortcut mshortcuts[] = { - /* mask button function argument release */ - { XK_ANY_MOD, Button2, selpaste, {.i = 0}, 1 }, - { ShiftMask, Button4, ttysend, {.s = "\033[5;2~"} }, + /* mask button function argument release alt */ + { XK_ANY_MOD, Button2, selpaste, {.i = 0}, 1 }, + { XK_ANY_MOD, Button4, ttysend, {.s = "\033[5;2~"}, 0, -1 }, { XK_ANY_MOD, Button4, ttysend, {.s = "\031"} }, - { ShiftMask, Button5, ttysend, {.s = "\033[6;2~"} }, + { XK_ANY_MOD, Button5, ttysend, {.s = "\033[6;2~"}, 0, -1 }, { XK_ANY_MOD, Button5, ttysend, {.s = "\005"} }, }; @@ -205,6 +205,8 @@ static Shortcut shortcuts[] = { { ShiftMask, XK_Insert, selpaste, {.i = 0} }, { TERMMOD, XK_Num_Lock, numlock, {.i = 0} }, { MODKEY, XK_l, copyurl, {.i = 0} }, + { ShiftMask, XK_Page_Up, kscrollup, {.i = -1} }, + { ShiftMask, XK_Page_Down, kscrolldown, {.i = -1} }, }; /* diff --git a/config.def.h.orig b/config.def.h.orig index ae91393..c58b084 100644 --- a/config.def.h.orig +++ b/config.def.h.orig @@ -205,6 +205,8 @@ static Shortcut shortcuts[] = { { ShiftMask, XK_Insert, selpaste, {.i = 0} }, { TERMMOD, XK_Num_Lock, numlock, {.i = 0} }, { MODKEY, XK_l, copyurl, {.i = 0} }, + { ShiftMask, XK_Page_Up, kscrollup, {.i = -1} }, + { ShiftMask, XK_Page_Down, kscrolldown, {.i = -1} }, }; /* diff --git a/config.h b/config.h index 7f98b95..4b6d103 100644 --- a/config.h +++ b/config.h @@ -54,7 +54,7 @@ int allowwindowops = 0; * low minlatency will tear/flicker more, as it can "detect" idle too early. */ static double minlatency = 22; -static double maxlatency = 66; +static double maxlatency = 44; /* * blinking timeout (set to 0 to disable blinking) for the terminal blinking @@ -94,7 +94,7 @@ char *termname = "st-256color"; unsigned int tabspaces = 8; /* bg opacity */ -float alpha = 0.5, alphaUnfocused = 0.3; +float alpha = 0.8, alphaUnfocused = 0.3; /* Terminal colors (16 first used in escape sequence) */ static const char *colorname[] = { @@ -129,8 +129,8 @@ static const char *colorname[] = { */ unsigned int defaultfg = 7; unsigned int defaultbg = 0; -static unsigned int defaultcs = 256; -static unsigned int defaultrcs = 257; +unsigned int defaultcs = 256; +unsigned int defaultrcs = 257; unsigned int bg = 16, bgUnfocused = 16; /* @@ -176,9 +176,9 @@ static uint forcemousemod = ShiftMask; static MouseShortcut mshortcuts[] = { /* mask button function argument release */ { XK_ANY_MOD, Button2, selpaste, {.i = 0}, 1 }, - { ShiftMask, Button4, ttysend, {.s = "\033[5;2~"} }, + { XK_NO_MOD, Button4, ttysend, {.s = "\033[5;2~"}, 0, -1 }, { XK_ANY_MOD, Button4, ttysend, {.s = "\031"} }, - { ShiftMask, Button5, ttysend, {.s = "\033[6;2~"} }, + { XK_NO_MOD, Button5, ttysend, {.s = "\033[6;2~"}, 0, -1 }, { XK_ANY_MOD, Button5, ttysend, {.s = "\005"} }, }; @@ -200,7 +200,9 @@ static Shortcut shortcuts[] = { { TERMMOD, XK_Y, selpaste, {.i = 0} }, { ShiftMask, XK_Insert, selpaste, {.i = 0} }, { TERMMOD, XK_Num_Lock, numlock, {.i = 0} }, - { MODKEY, XK_l, copyurl, {.i = 0} }, + { MODKEY|ShiftMask, XK_l, copyurl, {.i = 0} }, + { ShiftMask, XK_Page_Up, kscrollup, {.i = -1} }, + { ShiftMask, XK_Page_Down, kscrolldown, {.i = -1} }, }; /* diff --git a/st b/st index 19ea97abf360443d2c18962578b4eb715e1b71d5..a9b52c164714672375cb696e6557bd6fa97af9ef 100755 GIT binary patch literal 103208 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 Wuev94Z}Ru@^J{wFHT +Date: Sat, 16 Jan 2021 18:18:07 -0500 +Subject: [PATCH] Add proper OSC 10/11 support. + +--- + config.def.h | 9 ++++++--- + st.c | 30 ++++++++++++++++++++++++++++++ + st.h | 1 + + 3 files changed, 37 insertions(+), 3 deletions(-) + +diff --git a/config.def.h b/config.def.h +index 6f05dce..9bb22a5 100644 +--- a/config.def.h ++++ b/config.def.h +@@ -120,6 +120,8 @@ static const char *colorname[] = { + /* more colors can be added after 255 to use with DefaultXX */ + "#cccccc", + "#555555", ++ "black", ++ "gray90", + }; + + +@@ -127,9 +129,10 @@ static const char *colorname[] = { + * Default colors (colorname index) + * foreground, background, cursor, reverse cursor + */ +-unsigned int defaultfg = 7; +-unsigned int defaultbg = 0; +-static unsigned int defaultcs = 256; ++ ++unsigned int defaultbg = 258; ++unsigned int defaultfg = 259; ++unsigned int defaultcs = 256; + static unsigned int defaultrcs = 257; + + /* +diff --git a/st.c b/st.c +index abbbe4b..6a57d89 100644 +--- a/st.c ++++ b/st.c +@@ -1877,6 +1877,36 @@ strhandle(void) + } + } + return; ++ case 10: /* set foreground color */ ++ if (narg < 2) ++ break; ++ ++ p = strescseq.args[1]; ++ if (xsetcolorname(defaultfg, p)) ++ fprintf(stderr, "erresc: invalid foreground color %d\n", p); ++ else ++ redraw(); ++ break; ++ case 11: /* set background color */ ++ if (narg < 2) ++ break; ++ ++ p = strescseq.args[1]; ++ if (xsetcolorname(defaultbg, p)) ++ fprintf(stderr, "erresc: invalid background color %d\n", p); ++ else ++ redraw(); ++ break; ++ case 12: /* set cursor color */ ++ if (narg < 2) ++ break; ++ ++ p = strescseq.args[1]; ++ if (xsetcolorname(defaultcs, p)) ++ fprintf(stderr, "erresc: invalid cursor color %d\n", p); ++ else ++ redraw(); ++ break; + case 4: /* color set */ + if (narg < 3) + break; +diff --git a/st.h b/st.h +index 3d351b6..054366d 100644 +--- a/st.h ++++ b/st.h +@@ -123,3 +123,4 @@ extern char *termname; + extern unsigned int tabspaces; + extern unsigned int defaultfg; + extern unsigned int defaultbg; ++extern unsigned int defaultcs; +-- +2.20.1 + diff --git a/st.c b/st.c index 7b30e30..9a31b09 100644 --- a/st.c +++ b/st.c @@ -1056,6 +1056,11 @@ tnew(int col, int row) treset(); } +int tisaltscr(void) +{ + return IS_SET(MODE_ALTSCREEN); +} + void tswapscreen(void) { diff --git a/st.c.orig b/st.c.orig index ae8357f..7b30e30 100644 --- a/st.c.orig +++ b/st.c.orig @@ -35,6 +35,7 @@ #define ESC_ARG_SIZ 16 #define STR_BUF_SIZ ESC_BUF_SIZ #define STR_ARG_SIZ ESC_ARG_SIZ +#define HISTSIZE 2000 /* macros */ #define IS_SET(flag) ((term.mode & (flag)) != 0) @@ -42,6 +43,9 @@ #define ISCONTROLC1(c) (BETWEEN(c, 0x80, 0x9f)) #define ISCONTROL(c) (ISCONTROLC0(c) || ISCONTROLC1(c)) #define ISDELIM(u) (u && wcschr(worddelimiters, u)) +#define TLINE(y) ((y) < term.scr ? term.hist[((y) + term.histi - \ + term.scr + HISTSIZE + 1) % HISTSIZE] : \ + term.line[(y) - term.scr]) enum term_mode { MODE_WRAP = 1 << 0, @@ -115,6 +119,9 @@ typedef struct { int col; /* nb col */ Line *line; /* screen */ Line *alt; /* alternate screen */ + Line hist[HISTSIZE]; /* history buffer */ + int histi; /* history index */ + int scr; /* scroll back */ int *dirty; /* dirtyness of lines */ TCursor c; /* cursor */ int ocx; /* old cursor col */ @@ -184,8 +191,8 @@ static void tnewline(int); static void tputtab(int); static void tputc(Rune); static void treset(void); -static void tscrollup(int, int); -static void tscrolldown(int, int); +static void tscrollup(int, int, int); +static void tscrolldown(int, int, int); static void tsetattr(int *, int); static void tsetchar(Rune, Glyph *, int, int); static void tsetdirt(int, int); @@ -413,10 +420,10 @@ tlinelen(int y) { int i = term.col; - if (term.line[y][i - 1].mode & ATTR_WRAP) + if (TLINE(y)[i - 1].mode & ATTR_WRAP) return i; - while (i > 0 && term.line[y][i - 1].u == ' ') + while (i > 0 && TLINE(y)[i - 1].u == ' ') --i; return i; @@ -525,7 +532,7 @@ selsnap(int *x, int *y, int direction) * Snap around if the word wraps around at the end or * beginning of a line. */ - prevgp = &term.line[*y][*x]; + prevgp = &TLINE(*y)[*x]; prevdelim = ISDELIM(prevgp->u); for (;;) { newx = *x + direction; @@ -540,14 +547,14 @@ selsnap(int *x, int *y, int direction) yt = *y, xt = *x; else yt = newy, xt = newx; - if (!(term.line[yt][xt].mode & ATTR_WRAP)) + if (!(TLINE(yt)[xt].mode & ATTR_WRAP)) break; } if (newx >= tlinelen(newy)) break; - gp = &term.line[newy][newx]; + gp = &TLINE(newy)[newx]; delim = ISDELIM(gp->u); if (!(gp->mode & ATTR_WDUMMY) && (delim != prevdelim || (delim && gp->u != prevgp->u))) @@ -568,14 +575,14 @@ selsnap(int *x, int *y, int direction) *x = (direction < 0) ? 0 : term.col - 1; if (direction < 0) { for (; *y > 0; *y += direction) { - if (!(term.line[*y-1][term.col-1].mode + if (!(TLINE(*y-1)[term.col-1].mode & ATTR_WRAP)) { break; } } } else if (direction > 0) { for (; *y < term.row-1; *y += direction) { - if (!(term.line[*y][term.col-1].mode + if (!(TLINE(*y)[term.col-1].mode & ATTR_WRAP)) { break; } @@ -606,13 +613,13 @@ getsel(void) } if (sel.type == SEL_RECTANGULAR) { - gp = &term.line[y][sel.nb.x]; + gp = &TLINE(y)[sel.nb.x]; lastx = sel.ne.x; } else { - gp = &term.line[y][sel.nb.y == y ? sel.nb.x : 0]; + gp = &TLINE(y)[sel.nb.y == y ? sel.nb.x : 0]; lastx = (sel.ne.y == y) ? sel.ne.x : term.col-1; } - last = &term.line[y][MIN(lastx, linelen-1)]; + last = &TLINE(y)[MIN(lastx, linelen-1)]; while (last >= gp && last->u == ' ') --last; @@ -847,6 +854,9 @@ void ttywrite(const char *s, size_t n, int may_echo) { const char *next; + Arg arg = (Arg) { .i = term.scr }; + + kscrolldown(&arg); if (may_echo && IS_SET(MODE_ECHO)) twrite(s, n, 1); @@ -1058,13 +1068,53 @@ tswapscreen(void) } void -tscrolldown(int orig, int n) +kscrolldown(const Arg* a) +{ + int n = a->i; + + if (n < 0) + n = term.row + n; + + if (n > term.scr) + n = term.scr; + + if (term.scr > 0) { + term.scr -= n; + selscroll(0, -n); + tfulldirt(); + } +} + +void +kscrollup(const Arg* a) +{ + int n = a->i; + + if (n < 0) + n = term.row + n; + + if (term.scr <= HISTSIZE-n) { + term.scr += n; + selscroll(0, n); + tfulldirt(); + } +} + +void +tscrolldown(int orig, int n, int copyhist) { int i; Line temp; LIMIT(n, 0, term.bot-orig+1); + if (copyhist) { + term.histi = (term.histi - 1 + HISTSIZE) % HISTSIZE; + temp = term.hist[term.histi]; + term.hist[term.histi] = term.line[term.bot]; + term.line[term.bot] = temp; + } + tsetdirt(orig, term.bot-n); tclearregion(0, term.bot-n+1, term.col-1, term.bot); @@ -1074,17 +1124,28 @@ tscrolldown(int orig, int n) term.line[i-n] = temp; } - selscroll(orig, n); + if (term.scr == 0) + selscroll(orig, n); } void -tscrollup(int orig, int n) +tscrollup(int orig, int n, int copyhist) { int i; Line temp; LIMIT(n, 0, term.bot-orig+1); + if (copyhist) { + term.histi = (term.histi + 1) % HISTSIZE; + temp = term.hist[term.histi]; + term.hist[term.histi] = term.line[orig]; + term.line[orig] = temp; + } + + if (term.scr > 0 && term.scr < HISTSIZE) + term.scr = MIN(term.scr + n, HISTSIZE-1); + tclearregion(0, orig, term.col-1, orig+n-1); tsetdirt(orig+n, term.bot); @@ -1094,7 +1155,8 @@ tscrollup(int orig, int n) term.line[i+n] = temp; } - selscroll(orig, -n); + if (term.scr == 0) + selscroll(orig, -n); } void @@ -1123,7 +1185,7 @@ tnewline(int first_col) int y = term.c.y; if (y == term.bot) { - tscrollup(term.top, 1); + tscrollup(term.top, 1, 1); } else { y++; } @@ -1288,14 +1350,14 @@ void tinsertblankline(int n) { if (BETWEEN(term.c.y, term.top, term.bot)) - tscrolldown(term.c.y, n); + tscrolldown(term.c.y, n, 0); } void tdeleteline(int n) { if (BETWEEN(term.c.y, term.top, term.bot)) - tscrollup(term.c.y, n); + tscrollup(term.c.y, n, 0); } int32_t @@ -1732,11 +1794,11 @@ csihandle(void) break; case 'S': /* SU -- Scroll line up */ DEFAULT(csiescseq.arg[0], 1); - tscrollup(term.top, csiescseq.arg[0]); + tscrollup(term.top, csiescseq.arg[0], 0); break; case 'T': /* SD -- Scroll line down */ DEFAULT(csiescseq.arg[0], 1); - tscrolldown(term.top, csiescseq.arg[0]); + tscrolldown(term.top, csiescseq.arg[0], 0); break; case 'L': /* IL -- Insert blank lines */ DEFAULT(csiescseq.arg[0], 1); @@ -2240,7 +2302,7 @@ eschandle(uchar ascii) return 0; case 'D': /* IND -- Linefeed */ if (term.c.y == term.bot) { - tscrollup(term.top, 1); + tscrollup(term.top, 1, 1); } else { tmoveto(term.c.x, term.c.y+1); } @@ -2253,7 +2315,7 @@ eschandle(uchar ascii) break; case 'M': /* RI -- Reverse index */ if (term.c.y == term.top) { - tscrolldown(term.top, 1); + tscrolldown(term.top, 1, 1); } else { tmoveto(term.c.x, term.c.y-1); } @@ -2463,7 +2525,7 @@ twrite(const char *buf, int buflen, int show_ctrl) void tresize(int col, int row) { - int i; + int i, j; int minrow = MIN(row, term.row); int mincol = MIN(col, term.col); int *bp; @@ -2500,6 +2562,14 @@ tresize(int col, int row) term.dirty = xrealloc(term.dirty, row * sizeof(*term.dirty)); term.tabs = xrealloc(term.tabs, col * sizeof(*term.tabs)); + for (i = 0; i < HISTSIZE; i++) { + term.hist[i] = xrealloc(term.hist[i], col * sizeof(Glyph)); + for (j = mincol; j < col; j++) { + term.hist[i][j] = term.c.attr; + term.hist[i][j].u = ' '; + } + } + /* resize each row to new width, zero-pad if needed */ for (i = 0; i < minrow; i++) { term.line[i] = xrealloc(term.line[i], col * sizeof(Glyph)); @@ -2558,7 +2628,7 @@ drawregion(int x1, int y1, int x2, int y2) continue; term.dirty[y] = 0; - xdrawline(term.line[y], x1, y, x2); + xdrawline(TLINE(y), x1, y, x2); } } @@ -2579,8 +2649,9 @@ draw(void) cx--; drawregion(0, 0, term.col, term.row); - xdrawcursor(cx, term.c.y, term.line[term.c.y][cx], - term.ocx, term.ocy, term.line[term.ocy][term.ocx]); + if (term.scr == 0) + xdrawcursor(cx, term.c.y, term.line[term.c.y][cx], + term.ocx, term.ocy, term.line[term.ocy][term.ocx]); term.ocx = cx; term.ocy = term.c.y; xfinishdraw(); diff --git a/st.c.rej b/st.c.rej new file mode 100644 index 0000000..77742c5 --- /dev/null +++ b/st.c.rej @@ -0,0 +1,323 @@ +--- st.c ++++ st.c +@@ -35,6 +35,7 @@ + #define ESC_ARG_SIZ 16 + #define STR_BUF_SIZ ESC_BUF_SIZ + #define STR_ARG_SIZ ESC_ARG_SIZ ++#define HISTSIZE 2000 + + /* macros */ + #define IS_SET(flag) ((term.mode & (flag)) != 0) +@@ -42,6 +43,9 @@ + #define ISCONTROLC1(c) (BETWEEN(c, 0x80, 0x9f)) + #define ISCONTROL(c) (ISCONTROLC0(c) || ISCONTROLC1(c)) + #define ISDELIM(u) (u && wcschr(worddelimiters, u)) ++#define TLINE(y) ((y) < term.scr ? term.hist[((y) + term.histi - \ ++ term.scr + HISTSIZE + 1) % HISTSIZE] : \ ++ term.line[(y) - term.scr]) + + enum term_mode { + MODE_WRAP = 1 << 0, +@@ -115,6 +119,9 @@ typedef struct { + int col; /* nb col */ + Line *line; /* screen */ + Line *alt; /* alternate screen */ ++ Line hist[HISTSIZE]; /* history buffer */ ++ int histi; /* history index */ ++ int scr; /* scroll back */ + int *dirty; /* dirtyness of lines */ + TCursor c; /* cursor */ + int ocx; /* old cursor col */ +@@ -184,8 +191,8 @@ static void tnewline(int); + static void tputtab(int); + static void tputc(Rune); + static void treset(void); +-static void tscrollup(int, int); +-static void tscrolldown(int, int); ++static void tscrollup(int, int, int); ++static void tscrolldown(int, int, int); + static void tsetattr(int *, int); + static void tsetchar(Rune, Glyph *, int, int); + static void tsetdirt(int, int); +@@ -414,10 +421,10 @@ tlinelen(int y) + { + int i = term.col; + +- if (term.line[y][i - 1].mode & ATTR_WRAP) ++ if (TLINE(y)[i - 1].mode & ATTR_WRAP) + return i; + +- while (i > 0 && term.line[y][i - 1].u == ' ') ++ while (i > 0 && TLINE(y)[i - 1].u == ' ') + --i; + + return i; +@@ -526,7 +533,7 @@ selsnap(int *x, int *y, int direction) + * Snap around if the word wraps around at the end or + * beginning of a line. + */ +- prevgp = &term.line[*y][*x]; ++ prevgp = &TLINE(*y)[*x]; + prevdelim = ISDELIM(prevgp->u); + for (;;) { + newx = *x + direction; +@@ -541,14 +548,14 @@ selsnap(int *x, int *y, int direction) + yt = *y, xt = *x; + else + yt = newy, xt = newx; +- if (!(term.line[yt][xt].mode & ATTR_WRAP)) ++ if (!(TLINE(yt)[xt].mode & ATTR_WRAP)) + break; + } + + if (newx >= tlinelen(newy)) + break; + +- gp = &term.line[newy][newx]; ++ gp = &TLINE(newy)[newx]; + delim = ISDELIM(gp->u); + if (!(gp->mode & ATTR_WDUMMY) && (delim != prevdelim + || (delim && gp->u != prevgp->u))) +@@ -569,14 +576,14 @@ selsnap(int *x, int *y, int direction) + *x = (direction < 0) ? 0 : term.col - 1; + if (direction < 0) { + for (; *y > 0; *y += direction) { +- if (!(term.line[*y-1][term.col-1].mode ++ if (!(TLINE(*y-1)[term.col-1].mode + & ATTR_WRAP)) { + break; + } + } + } else if (direction > 0) { + for (; *y < term.row-1; *y += direction) { +- if (!(term.line[*y][term.col-1].mode ++ if (!(TLINE(*y)[term.col-1].mode + & ATTR_WRAP)) { + break; + } +@@ -607,13 +614,13 @@ getsel(void) + } + + if (sel.type == SEL_RECTANGULAR) { +- gp = &term.line[y][sel.nb.x]; ++ gp = &TLINE(y)[sel.nb.x]; + lastx = sel.ne.x; + } else { +- gp = &term.line[y][sel.nb.y == y ? sel.nb.x : 0]; ++ gp = &TLINE(y)[sel.nb.y == y ? sel.nb.x : 0]; + lastx = (sel.ne.y == y) ? sel.ne.x : term.col-1; + } +- last = &term.line[y][MIN(lastx, linelen-1)]; ++ last = &TLINE(y)[MIN(lastx, linelen-1)]; + while (last >= gp && last->u == ' ') + --last; + +@@ -848,6 +855,9 @@ void + ttywrite(const char *s, size_t n, int may_echo) + { + const char *next; ++ Arg arg = (Arg) { .i = term.scr }; ++ ++ kscrolldown(&arg); + + if (may_echo && IS_SET(MODE_ECHO)) + twrite(s, n, 1); +@@ -1059,13 +1069,53 @@ tswapscreen(void) + } + + void +-tscrolldown(int orig, int n) ++kscrolldown(const Arg* a) ++{ ++ int n = a->i; ++ ++ if (n < 0) ++ n = term.row + n; ++ ++ if (n > term.scr) ++ n = term.scr; ++ ++ if (term.scr > 0) { ++ term.scr -= n; ++ selscroll(0, -n); ++ tfulldirt(); ++ } ++} ++ ++void ++kscrollup(const Arg* a) ++{ ++ int n = a->i; ++ ++ if (n < 0) ++ n = term.row + n; ++ ++ if (term.scr <= HISTSIZE-n) { ++ term.scr += n; ++ selscroll(0, n); ++ tfulldirt(); ++ } ++} ++ ++void ++tscrolldown(int orig, int n, int copyhist) + { + int i; + Line temp; + + LIMIT(n, 0, term.bot-orig+1); + ++ if (copyhist) { ++ term.histi = (term.histi - 1 + HISTSIZE) % HISTSIZE; ++ temp = term.hist[term.histi]; ++ term.hist[term.histi] = term.line[term.bot]; ++ term.line[term.bot] = temp; ++ } ++ + tsetdirt(orig, term.bot-n); + tclearregion(0, term.bot-n+1, term.col-1, term.bot); + +@@ -1075,17 +1125,28 @@ tscrolldown(int orig, int n) + term.line[i-n] = temp; + } + +- selscroll(orig, n); ++ if (term.scr == 0) ++ selscroll(orig, n); + } + + void +-tscrollup(int orig, int n) ++tscrollup(int orig, int n, int copyhist) + { + int i; + Line temp; + + LIMIT(n, 0, term.bot-orig+1); + ++ if (copyhist) { ++ term.histi = (term.histi + 1) % HISTSIZE; ++ temp = term.hist[term.histi]; ++ term.hist[term.histi] = term.line[orig]; ++ term.line[orig] = temp; ++ } ++ ++ if (term.scr > 0 && term.scr < HISTSIZE) ++ term.scr = MIN(term.scr + n, HISTSIZE-1); ++ + tclearregion(0, orig, term.col-1, orig+n-1); + tsetdirt(orig+n, term.bot); + +@@ -1095,7 +1156,8 @@ tscrollup(int orig, int n) + term.line[i+n] = temp; + } + +- selscroll(orig, -n); ++ if (term.scr == 0) ++ selscroll(orig, -n); + } + + void +@@ -1124,7 +1186,7 @@ tnewline(int first_col) + int y = term.c.y; + + if (y == term.bot) { +- tscrollup(term.top, 1); ++ tscrollup(term.top, 1, 1); + } else { + y++; + } +@@ -1289,14 +1351,14 @@ void + tinsertblankline(int n) + { + if (BETWEEN(term.c.y, term.top, term.bot)) +- tscrolldown(term.c.y, n); ++ tscrolldown(term.c.y, n, 0); + } + + void + tdeleteline(int n) + { + if (BETWEEN(term.c.y, term.top, term.bot)) +- tscrollup(term.c.y, n); ++ tscrollup(term.c.y, n, 0); + } + + int32_t +@@ -1733,11 +1795,11 @@ csihandle(void) + break; + case 'S': /* SU -- Scroll line up */ + DEFAULT(csiescseq.arg[0], 1); +- tscrollup(term.top, csiescseq.arg[0]); ++ tscrollup(term.top, csiescseq.arg[0], 0); + break; + case 'T': /* SD -- Scroll line down */ + DEFAULT(csiescseq.arg[0], 1); +- tscrolldown(term.top, csiescseq.arg[0]); ++ tscrolldown(term.top, csiescseq.arg[0], 0); + break; + case 'L': /* IL -- Insert blank lines */ + DEFAULT(csiescseq.arg[0], 1); +@@ -2241,7 +2303,7 @@ eschandle(uchar ascii) + return 0; + case 'D': /* IND -- Linefeed */ + if (term.c.y == term.bot) { +- tscrollup(term.top, 1); ++ tscrollup(term.top, 1, 1); + } else { + tmoveto(term.c.x, term.c.y+1); + } +@@ -2254,7 +2316,7 @@ eschandle(uchar ascii) + break; + case 'M': /* RI -- Reverse index */ + if (term.c.y == term.top) { +- tscrolldown(term.top, 1); ++ tscrolldown(term.top, 1, 1); + } else { + tmoveto(term.c.x, term.c.y-1); + } +@@ -2464,7 +2526,7 @@ twrite(const char *buf, int buflen, int show_ctrl) + void + tresize(int col, int row) + { +- int i; ++ int i, j; + int minrow = MIN(row, term.row); + int mincol = MIN(col, term.col); + int *bp; +@@ -2501,6 +2563,14 @@ tresize(int col, int row) + term.dirty = xrealloc(term.dirty, row * sizeof(*term.dirty)); + term.tabs = xrealloc(term.tabs, col * sizeof(*term.tabs)); + ++ for (i = 0; i < HISTSIZE; i++) { ++ term.hist[i] = xrealloc(term.hist[i], col * sizeof(Glyph)); ++ for (j = mincol; j < col; j++) { ++ term.hist[i][j] = term.c.attr; ++ term.hist[i][j].u = ' '; ++ } ++ } ++ + /* resize each row to new width, zero-pad if needed */ + for (i = 0; i < minrow; i++) { + term.line[i] = xrealloc(term.line[i], col * sizeof(Glyph)); +@@ -2559,7 +2629,7 @@ drawregion(int x1, int y1, int x2, int y2) + continue; + + term.dirty[y] = 0; +- xdrawline(term.line[y], x1, y, x2); ++ xdrawline(TLINE(y), x1, y, x2); + } + } + +@@ -2580,8 +2650,9 @@ draw(void) + cx--; + + drawregion(0, 0, term.col, term.row); +- xdrawcursor(cx, term.c.y, term.line[term.c.y][cx], +- term.ocx, term.ocy, term.line[term.ocy][term.ocx]); ++ if (term.scr == 0) ++ xdrawcursor(cx, term.c.y, term.line[term.c.y][cx], ++ term.ocx, term.ocy, term.line[term.ocy][term.ocx]); + term.ocx = cx; + term.ocy = term.c.y; + xfinishdraw(); diff --git a/st.h b/st.h index fe99101..f93e60e 100644 --- a/st.h +++ b/st.h @@ -91,6 +91,7 @@ void toggleprinter(const Arg *); void copyurl(const Arg *); int tattrset(int); +int tisaltscr(void); void tnew(int, int); void tresize(int, int); void tsetdirtattr(int); diff --git a/st.h.orig b/st.h.orig index 59a4622..fe99101 100644 --- a/st.h.orig +++ b/st.h.orig @@ -82,6 +82,8 @@ void redraw(void); void tfulldirt(void); void draw(void); +void kscrolldown(const Arg *); +void kscrollup(const Arg *); void printscreen(const Arg *); void printsel(const Arg *); void sendbreak(const Arg *); diff --git a/st.h.rej b/st.h.rej new file mode 100644 index 0000000..b78c42a --- /dev/null +++ b/st.h.rej @@ -0,0 +1,7 @@ +--- st.h ++++ st.h +@@ -123,4 +123,3 @@ extern char *termname; + extern unsigned int tabspaces; + extern unsigned int defaultfg; + extern unsigned int defaultbg; +-extern unsigned int defaultcs; diff --git a/st.o b/st.o deleted file mode 100644 index 298540cf70a5f37f05b897dfbaf2e653c8dffe92..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 74592 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 DTsn8C diff --git a/x.c b/x.c index 3013441..bc71dbc 100644 --- a/x.c +++ b/x.c @@ -34,6 +34,7 @@ typedef struct { void (*func)(const Arg *); const Arg arg; uint release; + int altscrn; /* 0: don't care, -1: not alt screen, 1: alt screen */ } MouseShortcut; typedef struct { @@ -450,6 +451,7 @@ mouseaction(XEvent *e, uint release) for (ms = mshortcuts; ms < mshortcuts + LEN(mshortcuts); ms++) { if (ms->release == release && ms->button == e->xbutton.button && + (!ms->altscrn || (ms->altscrn == (tisaltscr() ? 1 : -1))) && (match(ms->mod, state) || /* exact or forced */ match(ms->mod, state & ~forcemousemod))) { ms->func(&(ms->arg)); diff --git a/x.c.orig b/x.c.orig index 73545d8..3013441 100644 --- a/x.c.orig +++ b/x.c.orig @@ -254,6 +254,8 @@ static char *opt_line = NULL; static char *opt_name = NULL; static char *opt_title = NULL; +static int focused = 0; + static int oldbutton = 3; /* button event on startup: 3 = release */ void @@ -774,35 +776,38 @@ xloadcolor(int i, const char *name, Color *ncolor) return XftColorAllocName(xw.dpy, xw.vis, xw.cmap, name, ncolor); } +void +xloadalpha(void) +{ + float const usedAlpha = focused ? alpha : alphaUnfocused; + if (opt_alpha) alpha = strtof(opt_alpha, NULL); + dc.col[defaultbg].color.alpha = (unsigned short)(0xffff * usedAlpha); + dc.col[defaultbg].pixel &= 0x00FFFFFF; + dc.col[defaultbg].pixel |= (unsigned char)(0xff * usedAlpha) << 24; +} + void xloadcols(void) { - int i; static int loaded; Color *cp; - if (loaded) { - for (cp = dc.col; cp < &dc.col[dc.collen]; ++cp) - XftColorFree(xw.dpy, xw.vis, xw.cmap, cp); - } else { - dc.collen = MAX(LEN(colorname), 256); - dc.col = xmalloc(dc.collen * sizeof(Color)); + if (!loaded) { + dc.collen = 1 + (defaultbg = MAX(LEN(colorname), 256)); + dc.col = xmalloc((dc.collen) * sizeof(Color)); } - for (i = 0; i < dc.collen; i++) + for (int i = 0; i+1 < dc.collen; ++i) if (!xloadcolor(i, NULL, &dc.col[i])) { if (colorname[i]) die("could not allocate color '%s'\n", colorname[i]); else die("could not allocate color %d\n", i); } + if (dc.collen) // cannot die, as the color is already loaded. + xloadcolor(focused ?bg :bgUnfocused, NULL, &dc.col[defaultbg]); - /* set alpha value of bg color */ - if (opt_alpha) - alpha = strtof(opt_alpha, NULL); - dc.col[defaultbg].color.alpha = (unsigned short)(0xffff * alpha); - dc.col[defaultbg].pixel &= 0x00FFFFFF; - dc.col[defaultbg].pixel |= (unsigned char)(0xff * alpha) << 24; + xloadalpha(); loaded = 1; } @@ -1747,12 +1752,22 @@ focus(XEvent *ev) xseturgency(0); if (IS_SET(MODE_FOCUS)) ttywrite("\033[I", 3, 0); + if (!focused) { + focused = 1; + xloadcols(); + tfulldirt(); + } } else { if (xw.ime.xic) XUnsetICFocus(xw.ime.xic); win.mode &= ~MODE_FOCUSED; if (IS_SET(MODE_FOCUS)) ttywrite("\033[O", 3, 0); + if (focused) { + focused = 0; + xloadcols(); + tfulldirt(); + } } } @@ -2059,6 +2074,7 @@ run: XSetLocaleModifiers(""); cols = MAX(cols, 1); rows = MAX(rows, 1); + defaultbg = MAX(LEN(colorname), 256); tnew(cols, rows); xinit(cols, rows); xsetenv(); diff --git a/x.o b/x.o deleted file mode 100644 index f3a060bb7edc7c2568e5d36d621b11958f296a64..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 74424 zcmeIbd3aUT_3(c(fB|A|RH~?0t`ck)@o?K?_}%$=!>r)oLhi01D2?GU%ywJ&y5#6kVuPXK z-BA&HEcw zOy47)wEjE(;OnREa2rp-j3e#gz28TIN%6Uj4{e6y&S7qNn?E<>KeCn~%>ZW}6E zX8aZBM!t0;U-prRn1Z{J4%a4s1}jQR^aJjBrrK(bf+EE&x_q0lvGWTmk~J^#h1+Nf zXUc9%VQhg)b0eSUMA~)*lj6|o64;5in}qIexBjcp7_!7|=wDQD; zcc$Cg?vLzg{d&w9yBp&(qn>*Pk~opJGj@kYl$5q4CpR`voeEY(LP>FM;Xgo+P4uxp za_IkB({Q(Nm(2c~)^Em~(bhOJGwKynfssRJv~l(uZT7iI@or--*uZt$&m|r0-*0SB&m-Tsk)5&$U`10eMWN1r_UVQBF65DHb@(3K9d3;-@qPBy0pFRQAMhO$N*WdP zJ!motgj+DC`#`{V<{^k$my`yFpMYRH9F--dxX=_bu^s@o05+)(`0{r_bTDaj{VTqk z{Lr7>NLo_kjBaCYV{mAq3mw)ENk?MRz_a+xtpZ}=o`62t-LV;I19*~j2jW0+Fe%Nd z4mKpa4It|_RQiLFk7d~-TkBhVbqUZb8rCI^#2Q35#RQWeg{hbvzZ;2*J~#0+{UA^Xkh0O z8*>~80Ysa_T$VY}eVeK=mzK3DXxseY|O&ckW zaT`NPnYoR@q}<%dzf96z88@=SHqi{@C12x4G`Y}@eytxsmD*jfMh?r77`M}j4WJdJNL8GFWLvm}X1*S~p=qU?l5`g4#*D-AWoJM|`Re`% zyD$YsWff$pq)}0nt^K@hfE4UOCK)Z#8 z+}hia3tx3x-v(mo?|*zf)Eb{(4j}d$dxZwL&1gBg#5GvMb_H?dviPc;NT`m6LR)A5V zg*Z!I08VXdZI5e)X$ksGq|NS}+xk8X^$U`wxs8jH@^H3D&xyR@Jz;d7z?n5HhS{aJ z=^xyIdHL!e#J=15Z)gwW0XV_P-tgWS%<_lfbxH9@tr-r5it^RH0b(?R`0CyULCVs4 z$TY5~HaBCNukIC)^gWstcd*SE4!gtc?zylVZ+EA`ZURPMfW@dBych%Lw!>Gq+T@l^ zxuy6X&8FN^VV81CgI$x`6t}S~X({HGk`rn7c3KG({fE)My0btzRGmLG%mp7uI$>0S z!^F@C>xnqmm;DZaOx$MIch{U7jC>wrT8DKDOo17#LEmiCyn|6+Wq~aB@q|u-XjE{p6YZr`I!N^xJ zW;E@!XQ!`mH^wwjD{hB8f-oY*25}+KXE?-Wm<)3eY|exU(R56#v}C=&H*$0{VIznHEQ^?Jv1K(N)9>}l_5_Ox%>J?;M=H~fxup!jiYD^NeiQCL^) zCw&EW{SZfYQ;iU3a17#80rxZ<7_tM8gO8o;NIO(Vtg4QV)u_YNY*dR|xZ5p#?vjNI z7rLz-eq8vr2BSVdV)6har_(c77)^r(4J@G}uSQ;SBOm5A79}MHBD*7d%tV0G-(S9j zYHJNdIs!Omr6pktiNlDCzkwxBc)K5~+?-mNvEQsj?YT_k@IWUBk!|&#geJHR&iWUl zT$sEgZw@H+UXM07fkEkg-*>i|bF$u3)_|F^avO*IX{h7a=?lCzK--j)RTx&vJ?E#e z^7+g->XM)e>=|9;Q@Kj{c!0B>Mp#NhPwW-TiR^H3S^6>9qu1(@ zEWe3+2jiea#>?|YUU6XJR|gXq0VdKEOZKMf*i~M;Je{PBE4s0XSdjuTHkXtrYfr^iZG+TCW(As{m$n5WdCwJvHOTAe@Q9t z7$Bu7oM)a(DCJsA$xaJzPc-9SL&U}iME{)w{& zve8~?Y_yx}aUyH~Gq@Adp&2kGnL@x^_AfX!JA&Uj_uzHaJZ>TNEpXCLt;vDE;V%(A^x4FBVd^onHjkqK2d>E-rv}@W(-r3fN zk*wrhSwV21vnwkTH{q?Zk@=&;EwPcTQCtbfxw~R&L0hESAE_P{xhN@e(P+DriwOnY z4I`pp9mVS6cqiWG6n;PDF}!pV{w6W>gU60Cd;ZXf@HbH>wuJW{3bzc4WVvR|05$Bw znHMzMy!qDC0aK5?jvi*9=A$)RJp8Zu_3ho+i(3}2VxuYvQF zS($G55M0WJ?;$n+wpYy$cfK7qO(fbb6kdm=U*~hit-UJ;aRwaT4=0M>^%=dyN+t(R zN*ZF5!iUC$;=_kV*PK7Qp)4u6a|mwIXTu`v?5DvaPHrQdKzB?57jyd@4YXe$0^`%g z;vFv)CA%Z=%2)k7OuJzmD(mikmM?QXftTwC@LI=MBW}v+IGNCUY_IST&nbL;041H* zxQ(?@JDsC(d3eS*&kTpWZS#W;v(L7VC^*H#b=sQ{=N5)w0p@!!1V*=h8ej%EhWHygdcy?rWgC2g1{mM*Hf14ZFD+u}G5Y z#ktUvLebFdVHPfiX{7T%W?`QW8rp0BjaQH`<`&%B*^rgja9+53sITq;ur+9VYT#fC zUY@BL7Vd`YnTw!dG|XQB_p8ENr-i?c_RW1h+#Tzy+W`rT0IqjM%1pQ@Q8xn;ks7-o z2Fb@(f#4If;meo3)s1|FT|6(?I43IDm<<<0%{=f-GDP=|)o>{ahv~wvK-`qxwkFf) zw`Gh6Stm5bjw%PYCa#C055C%(7#e1WshH5~cC-t(`Xfd-Vyd}g4){95?AC1U{Bz`J z)YC^`JP6nm796OsAerEg8yYWe0pI$rzZ#-Dmu)!wE=2lnUIj-RzPI}Yun)O`xlpiE zp?$n_h$3B$jeuM0>lLy_SfGyf)s(uAjJx(EGKo^X0=E52iE_Lxj zbeF)!@ln!Cdk+0XS{Eg9Ty=mhD-zi7YqYWqfZ0j zcc1|8wLcB(kU(TR?l!`1WLKmEu9!m_A0bs@B znUFy)sj~gNENKNjAduVmyUn1l(_HEV7)tWnrQQ=ZmAycLsXBMtM+ZI#{m{)=8CUap zprHolu=dlySUBZ)-)+2lRQLSE&XVkgRWOhp?ygCpSq<7l_`}!$++)}Px3i<2arkHh zsDwMgrtn~c|0J;C!jcV#yT4oW9IU0_8Zz8Wz^n4VMeo3JCC-I~ncobuwx+||YsCU= z{newKYm?c+r`_|;s`;YfY8bjdZQt;&G4O+IxE22f%GJIBSF%GxVK+MT65axELX&-u zWS!X3epFpc&6Ch8;RFRPP=vtiSTSG$R8ZdmzGEFkuD|+3$M>6-&gTMO?SQojK0IM- zDK_*Y-y^UXoOYeBZaQi~zxtkOiC<4Q2GOA%;~>U}Z44%zx)a1t##0AuejURhY8!TL zw_%OHPq%5f+TL}9@jV%9dx$ZQ=9@SySH!dgDC|%>>(YwSRz_p~cab-Kd2sE>2tTFL z9t($wW-x<7&v^$Xh`H^NPpRCIH|S=!J^A!KXhw58XAiJ=qvePlce&F~HV%|S2rMtG zK3O!G$n<@?$Uhc(zgu{~<1U(AKT6$U^9+aRARG2?f%ayvZqsBWxHe*lkwZ@viljQL=FE-qjGz#_KpM*~$b;5H7W>nxIuh0Bs>M9V~ zY214u&OePar$f68_;Pl(9vT|i5sY-T9vaiyeo~+@erWh#)6Zx%Ej}mmkDOOO3N&Ve z@FyU=1BKy?Gzj+vNIZ9lW8~de-^ZmyBCa3kv=r{GVGY2LWNHE~b)+RhES}exlli4) z_Rnn`hoB<@4Un6Bzl%iXhO`)N3wPwgJ(aNwwlA$2Mi(?X6HMyPE;t5<^jX_Oug-KE z?=ntSm+5;(do%*(tX8+M&dB97#BPV{1)*l>irsCUe}G%CnCsW>*j&hUIGiECviDbz z2zv5prv@&SHuRLJL9yZ~ez1Gbnx1VU#gLAe(6n2_#iLdp?Mfb4gJws^?W zTfswqTg7utdR`9pdQI(dC9KQHl_`B(*?BuQ zvpi4>&wIgg5O=_cePB&e5>7sO*%@C3BL@S%*@xj#5xXpq7ZG4wH>Sd%6WI)>Oy-~= z9nW*>*TAtkBY7NshbMh;-yLxOh_yd#-S(w;8cO%yhC%z2y%kR%3taoNzlmFyU^Jk74wEzJkTC z+ry`_onPZrVuttj_r(6IVt*IxV>>wD`*95Wq^!NWTa2iCK*Tt@eeeG6?nO}So+e?6 zz9tISccZ@W{TQ^sgGy%Vjcd<<0>k2Kl!>G)j)EnVb(a#37s7FNAb;~8CcRxe8gtrH z-yk&K4$pj*Ybf1|v<(=ixnpetY+zuM$Lz9z@vL6FF3D))6d%=ck`H#+i1FQ=R7)z#DT=_#$sR3ga&II z%$K?!@3}Q$+K-JR&5iS;VA&GwX1uXF!;QR(S8#ftT`{GGsrXj#9Sn*uxDBCq9DJtm z0d5EAkQhs1FZIKhQ?5|=TkUIC3_%ues0beJmlJS5jNcRMQ{zq3_~R=YfCTrm9mh>_dk z$0W9uweE!^Hg(KTO_I#f!83MS)EG?s-saw~<--kMt`jTKTdUMAeVfOETWl^?gj|!i z;-qA_P&pawbFQSPf#6b|T#WVePS5HMrt%bMDQ18+EgR-&9HQY8-heAXJ9J@Ic$1gx zi2M^;NEBC^smR{g0g9R^o0}PHO|jsqX;Ts6N;Ug(fRAP+lAPw0| zv+8Ldnz1Vp8{N-f&GgJBEEYxDBEpqGxJF}K+b5#&M!N#yTh9F?psW9|WLI4h+J_H= z)Ft7Kal5zQ?75($4fc9&TYKtw1EgS91|4tq?BUZ*n3i??VxSe7>9>8auSkFWzeU?i z44w|~Rt^_1O?BY~s=6c`Zu?%NGM9e)``mU2Jo_|dX#WsKfB~w;3{!pU$~aamdFh53 zj+oXRtQs8JyX#qi`j#im)j(g6O9GDqHGwvBO+$|A9rxhs0nX)NHQVRuWmto?Y5b7}*+r z|F9ji;DNE45X~#T`k$J_a8asX!alcej(>+wkNq`cC~?iM-jT{y4Crz?|7_g%ObjX( zm+?EF8<=-o1#^6_?|T(>6hnml?L~ceZ7JRggp1nmx#yYDd-YIrEeU$*`|W9MaLHw> zx!qX*O6Vi=pj70au6@+)2;+!#4P45Jg-bcHqs$=Kxux%~I?@A?@8CxYa8@?Tjl?Ix zW0kpZvOR&Jd`zLp#5g!>r&VC3Z>EIQ$F+g+v@k$1yi`6CBmkO_Y4dla4# z|H$t?35Dv$;UMSKcXEe)1`k5PGe+^bk?-3Vyv2_?ZCUTD{}Hq*-=m9@5=%CG&=?K# zOjY;=f6$%+RW2z8RdWb;eoE)VW0XQg5`W2Y6o#Z-oLbhD&&6cnvmY!u6{@&n8mBR^Nj!K_al!_uvmO zM@SfKbh`tl0~|38+6G>wRB#K)BUQgDXv~Sq=321!seC%tzy%TPqA9p=^99YQW*+0m zG9_Zo#leHXW<^MMEPDq&kLTiOPKPyh|0zM-(S-HNBEBBBH>z*%bpvqz8fnA&io66* zR43=!ylF1KidOstZ;|vI#F=-Cve86AbYlJ1|`(#j>VI?VQm55qp!j8 zRJPtz4*|#1UASagmgEPuBjI2)JO*2o1ke1gOPXdZh6lz2a3T*UEQvvQpg;NAtAZI{ zUQ-6Y@F>Jzczg%H@OZBw22!5gkQE1;k->(Q@$h3ZxKd?LHzHf{@#`*s{VPFV_TKtW zt~~=x9}TKT`flACJP)$=-P#hj)mQ&9G=`Gkd62uW{$1GbtgHEH2i_jUu`{mzlk4D7 zf$gri0z9w_b5H#g9XP1(9)j_|^G`ShUg^N<*RCjOW9L)5uH+Rxt2}eb=VgN z|94Lsr_Zwc1~U_KN2A z+@i~eY1EAz=$+>W+ItqqOIy~4n4VItj0=SKN5SpVI6U>N8wMRQ*PgMA`|Ig^B)fj!wIhu>C> zUelQ~8frl}K9NhsT8t!3W%;sAsv>5!^EBa+}UwIj4E(b2`XW_sf25w61w|T z!nZqmQ^BKVm?7Ov;nS|hs_#sBXgPivsI(=;#?tW#tgnx3*Dpm5)LJ`68oQ3vI0^?y z_3of~jUOP@mO)b;+}`U0wy1v;FW!UxvJ=7W#h-SNv` zUI3fvaqxu=GBmMVfXuq6c&{KDCDoGEH3vOMdPZ6JC&ui#bwo{KY<+Z ztEjj-R8_GytDvlGSwZ1Sr@FEtlv`0)5Gt)GcM8i&i_1fomX;S)tZ_=qD{DgYLuAl$`5Fa|}DVJh@VMSR*m46)MBFa}( zT3uOIuvR80EiVOK;K0I)@{-c!6NWoui;GJjIAc?%OiG=U?kvgAo;@Qw=v+E`NiaJ% zdqMV+OLOJ~=U(b8nUlR>3D7x#+1Wh@c{xF6;ewgzOXe?_mosM;lp_Z|bDhen;^Lyx zP#_elDqU6+Dz0{_L(aHrf69dP32E?<-ngg> z`)OscpKFedhO`y9j{>vdGwD17Q&G_*n;;K&A%5LjB)dtoo5^-F#crnBO}gErLdh|K-K5#gWV@MSH&g8<-ELCR zuaLlQ((Gok-Au8YsdkfYH>v1DNMJWnB7dan<;iP$!^kMGk3lf zvzy6wGsSKunT@ep zq$ZJ+=>e%}B$Y8}HN9|3Aq*(RlM2%&Ib$bHOq-mR;f!6DT3A>#1@%mx zG&KdccHk*A0n(e`EGsi(ZfJb!bYPh%Dzr46&RdJ|lEgqHo%L`T&<6eco1jgaZhx>cNqVWs-q0$gQhz|AcuJNxi z!+U8FL@XK)(S;SORuz;N`4<&bEwA=Zm@wh;9zFj*+cUn*UshUP>|azJ3awqzV-5_d z`6Z#5FtE>snJup%6e_NQ3C_$s{_5i5m8Ip&;m}TK##MGIfr&VOesL&g_9X>nHO1BE z`m=iG7MOYc`E!DO=R%k;^0TUn3qr*?SyH&rFu$1(!CU2_;@S|%Vpv$d0$c|(AXFC5 zj&@Rm>C~T6JFcwO2xeDR!4y_qTwa8>&NtH@NX)4Sm6oja7q5m{*T{L!em@#l{UeZ= zUrvkQhHiS3Z?n)=D!~JuLu6? zf&Y5ozaIFn2mb4U|9arR9`N$Ot#F46L%-`_#69CF0mtKgEvt#XRr-GMl>T;-)A4MN zSG+^%JmX2hF9*@@70>!T<4ON*gXs5)XZ@b>q<_;O`n}>=zh^w@zk~GCVV^3*1CH1A z!-Bu^u#e;KqImqxnhb;;uXwhH&f|A^s_ zgTy!fU&gb2e;OqH1B1jrI7oc+An|`5B>pdh#6L7h{KJF9|8#-~{KN5H{^58p|8TsQe>mRDKOFDnACC9(5664?$1|S%bMYYl;dn3qaJ-j) zINr-Y9Pi~Hj`#8p$9wsQI$o#O_UZIGp3`@e zpw`dnz2bFxK4u5&^g5o8S--YVr`PeEK8^)BW3}aYulmiS^sKKZIdRW;O2F~jJ|6!) z<0<{6l#iGHz2ezkj^|^xpWWgW&+;7K&wf(0(8E5?hvQivbKY{im;Orz(a-T-`Z?Z9 z|1<0eHb`wb-b+8n>-u3e9G}TRZ8_en{c*fsrQ^eA2eF^yz3k_BFZ($@lQUFXj`y;k zb5c@dZ%RY|xvXA4v?BjSZ`?e2aAIE#y$MIhFalDs( z9Pee{jzR3>crW`n-pf9Y_p*=Uz3kgLhv$Mjz3?wtNe@hEeo zfcazmN{@1~Z3Q0jTu!fe*6$V1w)1&NudVB+<37jpd4!06R>t#rTyMPHsyQE|GAj~u7V_`-3LL8dpX zubU7sM=d|iwA(7Xb*9iZVz-$$+wJ;1<}J>wEO=xvIas``w4mHSF=ayPgo)!Pok4s4 z)Ra{CB|>VNWB&M)1NTRNGS7*sO^iA@{-`+onK=HQz`VH$w)h8DFd*Y+@WvTpS&;T6 z%O`e>kYgX6D%g73XFp;dzaVxZZBhRg+TV@a83~CuN6$zYbyLiY1b<`fjD+MHhXfK* zt{)mmNDm(sOvsCVFd-d4AR!q9KoAnlNQlF-c9EWyxD6&GMwcYSoejI@Rm!kkfqZ5{ z;`Pyigi+y`V1hq--tdG`frP|BLR?_Ptc192J5f(MHJl`r2R%y?;_PoRh}Ys4QeQV5 zlQ|}?jN;}}nrkV}h2xDB_gE|(3|79TsF>fx4pc(;y%{8bjdU%?#(QL4vl3dOVjhec zK9Djr+d^2im!7bR*i0$A;wB`C(sP6C(sQs8(QNt6G0fAK@ z0#*e^V7uK$X;25&8mnGlt*VrD|+%!JxN!uqIH2}^TL`vMWv_X|o> z1p8R_D@Y$6H&fhFD*qAtL1pwRkD85%k4mVW33<;<*a)8{_-u-rk+3Z!-P=wBq{2NISRCFCs-6^dnAL1})7N{zn7&?=yK@TsG? zd$qpxQPIB^dVWl{7J}W;m%%{*48H;nKnJ#s7fFv9KL&0aDbdCKnuaNF91Zl?-qGhv z$>(T$62)a>oUt9;3T+CeA;S4ZIsP9XSn zo%myhM)7zE@mQuH$(Er1p-e|;ld}@`#u)$9QkpX%iSy%x#5s^N`nrkuUC52EqwheY z(5LrP9Omg*ko~l@L1%Vx!lf@LCkk!NZ+$bb=_HpIa!e574eT35nO3mKl8;+MNVwFU415{DpS> z@#hVv=`4C4vpvo;d@n)<~N+E5UBe9T>527s<)_`E^-BA5fzy;%hKXC)-hN=T`NZc5$T zw1-%_Id?hA=E0iaqJ%hX52J}+gdB9Nr9{|<(kafg#S%NmVcGJCACGAupllJbQxHHM zVLQZeW*zZV>Nf+-WoB%{WL^Q?73+LH;OaD{|5I;9O^id6h*BCez?lv<;b@@;*8~{w zeqt2JZ^i=%e)H`(xZXo~mK#U>1mebDu+JQQg7OPVj@OG=ho~REY@qE~aD?(DgiodI z6yi6~F;%~Vb27@`Oq|!0Gl*{?zMHmlV2jq{n}RWHHsAIursr&?7Y>0sME#Xy-%5(Y z^9{7Wg^tr{>m&KMNPY!z+{8FEFbQ@A?4$lHTDxGM#!v(wdhJy*lPF~Ka-wAaExIsd{F-cY?~0wx)ipJ@Im=sAcR2C<`{XC#XbB^ zI7YsSIGN-8298nxhXl-871%?>XPd>NnmBEo9mMY^kPpWg_P_`A$NJ2n z8RKy8ZQ?JPA9FjVeIV~7o=fs(eF^MK_(Va?_+g7-sriQUTJSIGUq=nrtSKQb5jd82 zJ;`x-Pa$5b_;}KD0}d1r%sLaclZg+bfyAsIflnhn=_m|=^=A`bVQ~+iOM2?C146)d zgCU=IJMpDd|I3KG)c()6;?64K^~BBE58~DW$MPnT9JhyS4euRinB#d4%KMdkBXIQR zGMqplm~|p-ZzaB-xLG3t-%R{;66E&y2jWiO?Yu<%9^z-iF$O&6LOpx@=Fl-~HQ2>|7G*|D%h7HO*#CP+NvCJLd5`pL zJI%_OH4W@`67M2z)@8sC5bqvq<;@xlb`Ki;u|4gT+etTZ*NXSFlc7-mSTC81`wXXv z3gY~b9>adhw>a4zn{^!Qo&fUbhntDtWuu)jq<D9}~|r(!Kqzkn|)^v=JXr zd@0Fuc~}od$2hboBU#)`Gv$hL>WHzO)kaT@vtDsLjDc}}pb*nD`}U2E5$#aM#5gqQ zNeKHf=8BJkhSQ*@qGBAg(pD7p(BLLw;Po~Th6rMJuQ9y;Jor0ymO= zUSl%d&BUiEeh=|e6~B*omg4q$Mt^@kLh@$aF4CAk z8v%a1MljsnO7cq--);CYJ^h@cUnZ_S`Wo?3EJ)ioN&in3-)s0#GoQ$)4@v%iB!qo? z4Q7a$|7Fw{B!9nzuz!g3^Yt-~{+{F?WkB257~C1+Jf-+>;{Q}Uk@#N4k0<_-;-iV< zx3sI!|Mv>`NZ=W(Dn-AnTi(?=kb%HuO#j=plzk$iT&E=YU1%qex2b%oYPdf zeroto$NXIjk!B-toM&XXiS$$`J@(q$5C{Kis0??I{B??NCVqqB_Y&Wv`2EE1QT#8& zah)QA`Ad4xo~J8rURnx#zT(?SkNHCzLecZYTa|np@g0i)o%lY*-zNTV#os61p*a2} z8|;s7D*h?)e<+U9F^(Rc;hGJ|>#+)Dhr_@>5chfT6Fm4>4?e|%=XmgWz>k4d29KXS z@8^5SFZST&9(;q*AJgwVtHDG5b|Vj86nO8q9`X-(@Kz7L$AiD`!N2n0N5N8Hpn5#X zgHQ0_=X>xx4_@HGt33EM9{hR_e!B;6L-=w|nsWJUITLzk&Sof(L)sgMaA34|wpS;1pt@ ze2?+qslbnc^MV#Sf9G-OJP-McJosV{UgE)5dhoCZzr};!;lY3B!5{J9&wB9ZJ@}g* z{Cy9;--93U;6tDy2CB#7Joso2ezpfc*Mnz!@Od7*(1Wk^;A=d1y$8R=ga68dKj^`q z@Zh^V_{$#r?;iX;FYYmZwtL8b=E1-7;CPSXSh(`B@eDhW^O<%6@jDeip7;aAZ>0JE zRN%+J3X89o!E|iGd9Xf4zKM>Rr-1xG?Q<&WKbJ229Hw*u5BVI*ccaq(Ysd)mW&1ea zg&ukqd+<^ZUhBcH^WY60{4NjvI}iSl2XFP@FL>}bJ$Q!)Kj^`S!G(~4>hS~*KGuV$ zdhi(@e6|PA_uyA}aCi~tfc9_j;Ef*qcHr2LMx@$?$k$iy@sR%u$zMzI=Kd%o#lL+$ zkUw{k{G*etesd2LcK3M5f8xOpdGKK)to^BY!wUk4nJ|+0G~(tyD#ZMd_+&bJcW2M@!N>g?G2}r`2ECBA^FwBpCfMW zl|tOrz;WEzOmaMK{0#U&jr$ZHiAO{)XbyNk2?)Ch&G9ajrAwPVIz3r@Uqr zyw`W7122elidVzyDdD>cUIbiQ3hzWVZw+>8*Ep+7t4o)amX(IqIyL313Mw7*dSYi) zMNM^aL7{n#@T%$+6;+|anozY<3vWZTZ?|-6%PI`O0e3(JZNs+^)ir*>7r%Hri^ zYb#gai+igpiwmork}8NU$4w!qhmBKP1n(?VQoYP6uC1)7F2=ktMQGV_=012gEPG25ndWxQAxYTRaM26;3KD^ zcEUubqO1tsBOHPkFjuUdkmA5Q8u3k$n7FF=DtL2c$a)uDxoj1v1Holg@D9lWC^SHL zmm`!5UqEU1mca{(tE-)rv?&H})Rgy>8s27UN>x<@*@5YWtBTCFw8Cug1)Pq3sb!V( zlZuK}19^~FUKQo%X!7G@JsylPpoRc*XoQc+lAon>B2 z>Ojk?b|&OzrQp{@{7S{IN%)n9Uz71`3Vuz+uMGT3$FGSti4mV@*Ugx)?6UJTB3nW0(m#`K)>qT*U-W+A-jCY{LygGb-&9Z7}rSNWVKtXF-A2t)l5700h z-^@P1%V~Qx(<^3Cv$d}m7#%nU)WZ8^(KpVLCB;=$ssTs^c-lGz%Lm;Y zeN#}rybRtvP7$+k1T_j_1Z7ClPE|1upQg4ho$Z=23oEl{e3M z9W8ra6OZ|L_`y1%r%s?vV5?aU?E}omfgI8l6~efQs7k1tHFfk_3r!yIf+w!AY-%b+go0i-D}USpFM6gl~M_Jzw%2;LcO z{@OzR%(5Ezy93~WP*G`>!A>Q*1_m2gl$2H$R#d`t3DM{xvmmhZoB3W?ZYD99)u3gE zDoT2mG_cNDWxMdQ<-J1S$;wi&0$X3u{<#7NYS|2Q^I;l>u3_{*UCgVf;6J;NZ~D_E zrPVbBWjT-`crpj4RPvP>N`>!ili=7{S*DTCtboQ_RZ#is>`;PAHf#Rcau|<#nyzf` z3(FxzPS#AbF2Dha_d_K$Wo1}BrXozHwx`iVV#X`8{42C(+6shf!HOdruwCM)gZ+9z z1@8592|M`NnFzA&69+RNw0SdLnjFk>s1{sOTD`)KqFK;F0x)7bwXhDvzn)=-l`Q*` zabrSd1q`wxi8np`h2kwx?wabdj%3$RTD{X8yYYNIj)wV?xEW;@QBykde@eYm6 zHM_Gbib_jLi>qKn!A1@u#pSE9o0=6@zNxBN^mcf_Xyj`J0F>3(Oq z;t$jD8V`Q02j}y7w(}vDqkNEG3ZKz*KF0U8S^h*_q$Q{f8oP=exu|$-#-d|g^>S?;Hc|6_+WUHII`cthxPAN^6_+x&+B2}^0J;+ zgr2)0p7ngDmfe`GlanTvOUKr&h{Kn9Lpu`In6`r00Lla|FHmIp04h&iV51r%)Z*$@%`3S0N{6?jR?fk9c zobO*1XZdZ4bGddC*X4Ru$+I53|BOMGcPL#zWzO0^0zZddPK|JUCfZ$IH{+Q5HB=}Y#zeVsfhrs~^&bQefI@1;B@vvC&222P6 z?-OERJ(m){QSoiWUsasv9lT#B_3*s&FU7guKO~OzBIliMEl=~s@pQw7?d16=U2&d| zW-89|xq{1i>JGutCN9@+73XqoQJl;5C*rzX4{LcU*As%v`7RFbV_@L&vOPY<*`DJS zXM0X2uI-tjc8e^$uf<{^KlkZ%$4UnqHQS6?g6?TUXo!T#ZPHRNbe3PHE4(ZqY? zshyvuIQP>u!T$vM*bg%W|D)iy2#$HP{dXwN_WxFKw*Ow@+Wr@nJh!(G73cM&L%+Y{ z@^bwSA&&a*7xpJAdDb&san=*`(DOUNTZR5dm7aL=|1*lSAGQfSTZNu?lsxO%r#S2B z5PG%=J)aA{UGNd~(;N0%CfS*)IP0HE9R0aN=(#}2FD5-%LSE*(RPYCdp0MCJ7IHhh zkvQAAkM!T7INP~N=-Das+$Z=h!CO4^>=5#D{rQ2AFBW<_h5T;8V-w*30@_~!A1+rs zarCE@KUv7*DcxxJVDJn1=ir$2O!AOFS8&XO{WD$Yd0yzL67n+NH9}tIyG3xhj(yaF zKkLEYBaZ%&{@f?zrGH}SCrc>*g0TMwf-e{RB;x3U7X?oj^0Hpe7xFUS%Z0qmw_NZQ zLVvZ;BlEpY@Rx-AgF;WK;7G4zuP?!PQQR`Em>fG}S1W{aH+#aVxr;yBi0xKMD}uI3R(+oj*G@Q^PN z@@janW>PDeQ=DW#5ezTC5`Q9hwF<-u3@r>ZIygP*+neQte@^1=x zneRR!kNF0vyk84>ISw3i90)-`**)-Kzl|l1$;$*EFXXofo+adE`@BfVzar!>7xJcF zAPz&Z2VbRl$cj5*!DT;cAdb3azPAbaRS?JJ{gvR-o_hr^7xI4*T$c9<;;2LR$5tUP z_3Rd0=KGr9(*N%Y{nG!R33=3WHr0E#;L^_6kst&CWui`6x~3=eC2#}tl(D(`4fm^o-YbMR>))A0R~_ML>$@Qh5W5bK9}sgM{w!qM+C1C zdY&YX`lX-07xEa#?IeaCL`C)wq30Ol+^*6f4#Q}{-+*IoSIL5-t|AnMFiCJJA102n z|AY_gxkboh9QGv)cPW0i#m+s7-%tDj#hZ!mQT!wF^CyZQBz{=&F5*K^unO5fe4osx z_#u*CrZ~5&QpLGm%88>7-h>bP=O==17ra5~Nuqo=DSkHbXBB_Q7RTA`!QUi~_PizX z-6#0lf=7+A3ei8S1vf94f@Ag@m-lFrNBzGO^4UU(^|R|M?-ly@2tDfre?xH0`#bnxc!xN$-@%9d(52*`LSYCa>4zyO z{{ehh{!HRnUW{Y;%Y^(sAs-U*vYlToIO_QhJ{Z;uJ<`qwCBNN@JDU{8IRL{0LXY(4 z9>JxZ9}7L#Kzc6k=Yq@m=v$%Z-$MSVA7buyzLWB!1iu#IS^p`-(Fbz=iU|IpkpF|= z9|_(;4*TvrPDD+Iqva7@E`Rtr6{ z-mh2kY-f|=Z0GHYv;Mn;ere}llsx>uKX0|@N5efH29iZ4aF_f=m5j!8d>`=X<;0Qva_N=W^YrINP(EIO_Nq zKCJ&$CC}^3FBH$Eb=PsHLShK0rxQM`XDo5_XTIP$LLPn0^4AM_)W!48?*+e9$iFT0 z>=pc?)8GIC>X75cBEk1U9Ot{1INB-my+g=WOR4#Uu~b{h>Fw3E-Xj#m6GE9M-hIO|DLob_Z8N8MfUVgKYRdG25H6z6;|Q~Z9i zXNlsQiI*roGRj7*Qk?x zc|sn2%yt$CF6YN}f`2XKZxs45Z?2c03;Az^{O>*F?-%m2ULF@**2^)cgHj0SpE~%k z{rQ5+d9z6HdLdscxYScGxV)ZxD{(CAw?faaguJY;w*;5=d?fhwLQgkw_9d5V=#M}M z0*~|T=MltF{xE!4ezcIkLGWb3F%6H~sUAF&ILdx6^eh(g(*FB|e7BH)RPd(+KOppQ znIYOaB;;lLiA%;<>xYf7DwT>5#w;IbaC6dd!t8l#rZzqQD@kAZf|w=(D4&T zJ6qwy{y#^_he&>^;L`sq1xH=$NdC`)$G{xL`X3b><*9i%Es_iQU6O-*8R`E!anvzH z$iFM)1>Yz5pCAp}^O@kNi=RvUR`7_BPdpP2AfP{`o|6TadVVDM&maxwn<+TT)AZ_G zsCX>Z?^3~WzTkO(h2UrpU-zgM9Q7N6VY7iaGJGc|+p|&0vmb5|yaCd%{I7(bErQ=I zy(K z1wT{BW1Js87-k9i;X*!N@DYM9QF?ehsqo+-p$FHnTrWRS^7|kT!v@6{SnS*?^c*ep z{9ehko(B|XJ0B8y5`>>lYBsN_S-DQxxOw|oc(_ZarD`-pqu;4QY9Zx`Gyr|dm@T+JG@zO zZqK(V&i33%9PN?k@AoMAkz~)qinE@_g`VR?xwa|!{WM=cC-|SR{m}i0*94dC>Rruk zvvEEkj-j{%q;fw1Rv!R5MQywWq8 z{G6sZxAXH9=XN_oakeu@akg^~akTSzVdp|6UqtpSR-E;$_2AbE{U-?h4N9Kd`Tr=+ z`fnF{MhQLl3i+F$3|#Mj5**9MetTGP*8ezhls!@C|5(W1EcAaaxYU10an^s>Lx09O zpcDePH+8rE}((DOSXf4P!Rf;=#k3jT9AX8o0dOZ_z- z`qwG>vq}F(!T(3-zgcjp{}&$m?^N<>r2qGdbG{EK&h725inHIIAda@2Ed0My$loID ze@Sp@|0_a|^#9vRej3@|tvK5`GzBt)pxcT0Lz%!a&wcRW`Z`9*^E&4w;wX<}49lOc zB*inD*>*#K zjz?@fYZnb{Aw5Jx8K_g*Fc6zP9l@LPrcXM`S{qd4DJguKl6 zA3}bN@aMmj{C(}1K5Jy{f2t5}l`CQ7^74m*z=Nu*f zu+7f7%!3yx&gY?P6z6<55Jx*t75Uzvl{c9O#LdYaK-N@K2C97 z@102;Z9!S~&vYUGC&B+9IH$oZ9#fp{`J3XL?`yc8J9&U&Jz*o?5g&JcRyh;uvVb>Ojzv;GqmXZ=4E z`p*>llLg-nd2>627jBxs`95q9oy!%+H5P_jrrIsqFUOPV>6Wt|K0lqQ_}x~_`LW`B zep;Y7mv@EYd_GvAIQt<)9POMS{BX6Fr*hRR&g0Teg3IykSAt_6Z2#Sgvps(xjev;AA~{p5$w6yHbuFmWvJBw+0Sqs}$ioBH}a>@puK_&ciSzhSWW}6`iZ3Rft~gz;cV-HH2gq`{ z@`z);>B7!SJ>(Y)`3xbyOvuN8F1#m=p+fQXhB{7-2fteJbtK>5!GA6|jsxufJBVYs z&J}iU7V>B(>%Uj=^$>^QuY#j4?nh4vekXAD=gY)V_I<(M5%PBl{=SeuPuTg9;L`*@ zZW<(pfcj;-I)ym5lUyU^I5{5j^M$_&UYU zA--PmPHO*kiccl^jf!7I9q&fPr;~h>;`fvMFBGq%2C_-D}E*EX;!?D&!?;=2{Un)r)~e?|GW zDIO;I*A%~!_#29+6Hg?L(<1hPJ$?&l<1pvHL!WG;dpQ4{`xM2W_@M=^;{5l^^E~)c z#ebb(0k?m)r-bC1l>7~J+^jhN{rJ6#yC+%DrTF^M793K%{R9i}StAT=PaSc*R?IvR zcGl1_UPF+4;}Cm{=TMS25yv&Hz6yHnon-p&+?jL6TfzjyyF5=0GA0m!_cMb!~J45X; zrp3Vg3(7CW;vRmGc%I_l6R%V}8ao+;CcEj;a}@Dr#YYftQ`|?qOY!4~CsO{nNrcY{ z#8VVMnRuS!V~AHOK9+cs;{2ZIX2s7U`8LJRA>O6-sp9_07^ za{s-D^fW1X{yPNCiu3r^rZ~?dU5fL(gMX(H1Lw>0ON!z=zvL;-^Gl`TJijz4elz)@ zS#h3U+7##crAu+1UlNb*Yd_B~DT?#_lBf9n5cvz`8k5^5K^LWy%IQRE9 z#koIrDbD>Rk*>>f`{DMSEI2M1&l+RP$=7jF9{Do5ew!!cajN8X%L>7ze5K$hUq|h8 zqu^4$NpO_s^~@H*rF^sCD1SZaZ&7?GomcM`{4$W|&?Y$QIhN%4@1dg~aA;hCnL|Js z49G9QFA6ENMKoRTJi#*suM|8Wc$46m<)SkzX!hW3il0UDU5Zyy9*MNY4eGyw>ODnq zZV!1Lob|CD%FbyL@-t{3lD9%jyEZO zGacWr_!c_;kK$Z@ejbF&^%j*GpV`2`oUfzu^JUDJlQUQ!b6zLksPs&r`S%UQKcwpy z$)u0<%%<~-e8u^GP^IGcll)zZ$I|+q-S}`C7QpB z6dy+O;wHuUKGDO9^L?e!=mhhpj5Qw!O1)_l(s~XHt3!Pb zAjiUrRjcstolhvQ2o+D5HD}>?_{+_OD=C-a6-!F0;BU%XZ~ni3`#}W`+0>kS6lT&M zKc~YHG`#bnb29AV5S7_O>`wdd>~`aPyT#!W(^4~XXj$u=PMn5ID-7S6^!&ozJ;d(# z)$!SIj5>9CXSx+Ugbh#xzu3p!iSR+YsJkGtfzppsj^Xn2HWQ==NLXdS#~5JjSy-I zas0ePTU_@Hl>eshtiUKzjQOJ~o&Q>31LeQ>Vw-+1&4c!+fBqqe7%2bdZkvLyD`5V( zhST}q1Z<%ETgq(u%@`?yU+m*<1U>`hzkZ}mm`>?2f4mf|^T+ibis<&Yv>YG=mbXVX zFWkpGG5j7rnEqHi5Mc$SPZSJyIUR2w1~yRoT1vkZ6N$j~@U|7=Fg>q>S@aD`pUi-^ zD2su&&x?H%!Cw`;(|611n7#))$aMd4DE$`Ie%WqL|0e7VRDX}*%Ml>(eO;_STq1IM z9=`_68|1ds!WV=tT7ThXh|TcP>Crsh_W(JYZpUxOxrpw6*rQ&*@i8uE2TH#Ye;f{> N!+iICS=xL2{{d+)RHXm_