Merge branch 'next' into master
|
@ -6,4 +6,26 @@ TAGS
|
||||||
.nfs*
|
.nfs*
|
||||||
make.conf
|
make.conf
|
||||||
.deps
|
.deps
|
||||||
misc/
|
.config
|
||||||
|
.files
|
||||||
|
FL/About_Dialog.C
|
||||||
|
FL/About_Dialog.H
|
||||||
|
FL/Fl_Text_Edit_Window.C
|
||||||
|
FL/Fl_Text_Edit_Window.H
|
||||||
|
FL/New_Project_Dialog.C
|
||||||
|
FL/New_Project_Dialog.H
|
||||||
|
mixer/src/mixer
|
||||||
|
sequencer/src/gui/event_edit.C
|
||||||
|
sequencer/src/gui/event_edit.H
|
||||||
|
sequencer/src/gui/ui.C
|
||||||
|
sequencer/src/gui/ui.H
|
||||||
|
sequencer/src/gui/widgets.C
|
||||||
|
sequencer/src/gui/widgets.H
|
||||||
|
sequencer/src/sequencer
|
||||||
|
session-manager/src/jackpatch
|
||||||
|
session-manager/src/nsmd
|
||||||
|
session-manager/src/send_osc
|
||||||
|
session-manager/src/session-manager
|
||||||
|
timeline/src/TLE.C
|
||||||
|
timeline/src/TLE.H
|
||||||
|
timeline/src/timeline
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
[submodule "lib/ntk"]
|
||||||
|
path = lib/ntk
|
||||||
|
url = git://git.tuxfamily.org/gitroot/non/fltk.git
|
|
@ -13,15 +13,7 @@ decl {\#include <FL/filename.H>} {private local
|
||||||
|
|
||||||
Function {open_url( const char *url )} {open return_type void
|
Function {open_url( const char *url )} {open return_type void
|
||||||
} {
|
} {
|
||||||
code {\#if ! ( FL_MAJOR_VERSION >= 1 && FL_MINOR_VERSION >= 1 && FL_PATCH_VERSION >= 8 )
|
code {fl_open_uri( url );} {}
|
||||||
|
|
||||||
// FIXME: got a better idea?
|
|
||||||
char cmd[256];
|
|
||||||
snprintf( cmd, sizeof( cmd ), "x-www-browser '%s' &", url );
|
|
||||||
system( cmd );
|
|
||||||
\#else
|
|
||||||
fl_open_uri( url );
|
|
||||||
\#endif} {}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class About_Dialog {open
|
class About_Dialog {open
|
||||||
|
|
|
@ -1,385 +0,0 @@
|
||||||
|
|
||||||
/*******************************************************************************/
|
|
||||||
/* Copyright (C) 2008 Jonathan Moore Liles */
|
|
||||||
/* */
|
|
||||||
/* This program is free software; you can redistribute it and/or modify it */
|
|
||||||
/* under the terms of the GNU General Public License as published by the */
|
|
||||||
/* Free Software Foundation; either version 2 of the License, or (at your */
|
|
||||||
/* option) any later version. */
|
|
||||||
/* */
|
|
||||||
/* This program is distributed in the hope that it will be useful, but WITHOUT */
|
|
||||||
/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */
|
|
||||||
/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */
|
|
||||||
/* more details. */
|
|
||||||
/* */
|
|
||||||
/* You should have received a copy of the GNU General Public License along */
|
|
||||||
/* with This program; see the file COPYING. If not,write to the Free Software */
|
|
||||||
/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
|
||||||
/*******************************************************************************/
|
|
||||||
|
|
||||||
|
|
||||||
#pragma GCC diagnostic ignored "-Wchar-subscripts"
|
|
||||||
|
|
||||||
|
|
||||||
#include "Crystal_Boxtypes.H"
|
|
||||||
#include <FL/fl_draw.H>
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
/* Crystal boxes, base (obviously) on the FLTK1 'plastic' boxes, but
|
|
||||||
* without the rude color blending and with a slightly enhanced
|
|
||||||
* appearance. */
|
|
||||||
|
|
||||||
extern uchar *fl_gray_ramp();
|
|
||||||
|
|
||||||
inline Fl_Color
|
|
||||||
shade_color ( uchar gc, Fl_Color bc )
|
|
||||||
{
|
|
||||||
return fl_color_average( ( Fl_Color ) gc, bc, 0.25f );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static void
|
|
||||||
frame_rect ( int x, int y, int w, int h, const char *c, Fl_Color bc )
|
|
||||||
{
|
|
||||||
uchar *g = fl_gray_ramp();
|
|
||||||
int b = strlen( c ) / 4 + 1;
|
|
||||||
|
|
||||||
for ( x += b, y += b, w -= 2 * b, h -= 2 * b; b > 1; b-- )
|
|
||||||
{
|
|
||||||
// Draw lines around the perimeter of the button, 4 colors per
|
|
||||||
// circuit.
|
|
||||||
fl_color( shade_color( g[*c++], bc ) );
|
|
||||||
fl_line( x, y + h + b, x + w - 1, y + h + b, x + w + b - 1, y + h );
|
|
||||||
fl_color( shade_color( g[*c++], bc ) );
|
|
||||||
fl_line( x + w + b - 1, y + h, x + w + b - 1, y, x + w - 1, y - b );
|
|
||||||
fl_color( shade_color( g[*c++], bc ) );
|
|
||||||
fl_line( x + w - 1, y - b, x, y - b, x - b, y );
|
|
||||||
fl_color( shade_color( g[*c++], bc ) );
|
|
||||||
fl_line( x - b, y, x - b, y + h, x, y + h + b );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static void
|
|
||||||
frame_round ( int x, int y, int w, int h, const char *c, Fl_Color bc )
|
|
||||||
{
|
|
||||||
uchar *g = fl_gray_ramp();
|
|
||||||
int b = strlen( c ) / 4 + 1;
|
|
||||||
|
|
||||||
if ( ! Fl::draw_box_active() )
|
|
||||||
bc = fl_inactive( bc );
|
|
||||||
|
|
||||||
if ( w == h )
|
|
||||||
{
|
|
||||||
for ( ; b > 1; b--, x++, y++, w -= 2, h -= 2 )
|
|
||||||
{
|
|
||||||
fl_color( shade_color( g[*c++], bc ) );
|
|
||||||
fl_arc( x, y, w, h, 45.0, 135.0 );
|
|
||||||
fl_color( shade_color( g[*c++], bc ) );
|
|
||||||
fl_arc( x, y, w, h, 315.0, 405.0 );
|
|
||||||
fl_color( shade_color( g[*c++], bc ) );
|
|
||||||
fl_arc( x, y, w, h, 225.0, 315.0 );
|
|
||||||
fl_color( shade_color( g[*c++], bc ) );
|
|
||||||
fl_arc( x, y, w, h, 135.0, 225.0 );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if ( w > h )
|
|
||||||
{
|
|
||||||
int d = h / 2;
|
|
||||||
for ( ; b > 1; d--, b--, x++, y++, w -= 2, h -= 2 )
|
|
||||||
{
|
|
||||||
fl_color( shade_color( g[*c++], bc ) );
|
|
||||||
fl_arc( x, y, h, h, 90.0, 135.0 );
|
|
||||||
fl_xyline( x + d, y, x + w - d );
|
|
||||||
fl_arc( x + w - h, y, h, h, 45.0, 90.0 );
|
|
||||||
fl_color( shade_color( g[*c++], bc ) );
|
|
||||||
fl_arc( x + w - h, y, h, h, 315.0, 405.0 );
|
|
||||||
fl_color( shade_color( g[*c++], bc ) );
|
|
||||||
fl_arc( x + w - h, y, h, h, 270.0, 315.0 );
|
|
||||||
fl_xyline( x + d, y + h - 1, x + w - d );
|
|
||||||
fl_arc( x, y, h, h, 225.0, 270.0 );
|
|
||||||
fl_color( shade_color( g[*c++], bc ) );
|
|
||||||
fl_arc( x, y, h, h, 135.0, 225.0 );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if ( w < h )
|
|
||||||
{
|
|
||||||
int d = w / 2;
|
|
||||||
for ( ; b > 1; d--, b--, x++, y++, w -= 2, h -= 2 )
|
|
||||||
{
|
|
||||||
fl_color( shade_color( g[*c++], bc ) );
|
|
||||||
fl_arc( x, y, w, w, 45.0, 135.0 );
|
|
||||||
fl_color( shade_color( g[*c++], bc ) );
|
|
||||||
fl_arc( x, y, w, w, 0.0, 45.0 );
|
|
||||||
fl_yxline( x + w - 1, y + d, y + h - d );
|
|
||||||
fl_arc( x, y + h - w, w, w, 315.0, 360.0 );
|
|
||||||
fl_color( shade_color( g[*c++], bc ) );
|
|
||||||
fl_arc( x, y + h - w, w, w, 225.0, 315.0 );
|
|
||||||
fl_color( shade_color( g[*c++], bc ) );
|
|
||||||
fl_arc( x, y + h - w, w, w, 180.0, 225.0 );
|
|
||||||
fl_yxline( x, y + d, y + h - d );
|
|
||||||
fl_arc( x, y, w, w, 135.0, 180.0 );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static void
|
|
||||||
shade_rect ( int x, int y, int w, int h, const char *c, Fl_Color bc )
|
|
||||||
{
|
|
||||||
uchar *g = fl_gray_ramp();
|
|
||||||
int i, j;
|
|
||||||
int clen = strlen( c ) - 1;
|
|
||||||
int chalf = clen / 2;
|
|
||||||
int cstep = 1;
|
|
||||||
|
|
||||||
if ( ! Fl::draw_box_active() )
|
|
||||||
bc = fl_inactive( bc );
|
|
||||||
|
|
||||||
if ( h < ( w * 2 ) )
|
|
||||||
{
|
|
||||||
// Horizontal shading...
|
|
||||||
if ( clen >= h )
|
|
||||||
cstep = 2;
|
|
||||||
|
|
||||||
for ( i = 0, j = 0; j < chalf; i++, j += cstep )
|
|
||||||
{
|
|
||||||
// Draw the top line and points...
|
|
||||||
fl_color( shade_color( g[c[i]], bc ) );
|
|
||||||
fl_xyline( x + 1, y + i, x + w - 2 );
|
|
||||||
|
|
||||||
fl_color( shade_color( g[c[i] - 2], bc ) );
|
|
||||||
fl_point( x, y + i + 1 );
|
|
||||||
fl_point( x + w - 1, y + i + 1 );
|
|
||||||
|
|
||||||
// Draw the bottom line and points...
|
|
||||||
fl_color( shade_color( g[c[clen - i]], bc ) );
|
|
||||||
fl_xyline( x + 1, y + h - i, x + w - 2 );
|
|
||||||
|
|
||||||
fl_color( shade_color( g[c[clen - i] - 2], bc ) );
|
|
||||||
fl_point( x, y + h - i );
|
|
||||||
fl_point( x + w - 1, y + h - i );
|
|
||||||
}
|
|
||||||
|
|
||||||
// Draw the interior and sides...
|
|
||||||
i = chalf / cstep;
|
|
||||||
|
|
||||||
// fl_color( shade_color( g[c[chalf]], bc ) );
|
|
||||||
fl_color( bc );
|
|
||||||
fl_rectf( x + 1, y + i, w - 2, h - 2 * i + 1 );
|
|
||||||
|
|
||||||
fl_color( shade_color( g[c[chalf] - 2], bc ) );
|
|
||||||
fl_yxline( x, y + i, y + h - i );
|
|
||||||
fl_yxline( x + w - 1, y + i, y + h - i );
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// Vertical shading...
|
|
||||||
if ( clen >= w )
|
|
||||||
cstep = 2;
|
|
||||||
|
|
||||||
for ( i = 0, j = 0; j < chalf; i++, j += cstep )
|
|
||||||
{
|
|
||||||
// Draw the left line and points...
|
|
||||||
fl_color( shade_color( g[c[i]], bc ) );
|
|
||||||
fl_yxline( x + i, y + 1, y + h - 1 );
|
|
||||||
|
|
||||||
fl_color( shade_color( g[c[i] - 2], bc ) );
|
|
||||||
fl_point( x + i + 1, y );
|
|
||||||
fl_point( x + i + 1, y + h );
|
|
||||||
|
|
||||||
// Draw the right line and points...
|
|
||||||
fl_color( shade_color( g[c[clen - i]], bc ) );
|
|
||||||
fl_yxline( x + w - 1 - i, y + 1, y + h - 1 );
|
|
||||||
|
|
||||||
fl_color( shade_color( g[c[clen - i] - 2], bc ) );
|
|
||||||
fl_point( x + w - 2 - i, y );
|
|
||||||
fl_point( x + w - 2 - i, y + h );
|
|
||||||
}
|
|
||||||
|
|
||||||
// Draw the interior, top, and bottom...
|
|
||||||
i = chalf / cstep;
|
|
||||||
|
|
||||||
fl_color( shade_color( g[c[chalf]], bc ) );
|
|
||||||
fl_rectf( x + i, y + 1, w - 2 * i, h - 1 );
|
|
||||||
|
|
||||||
fl_color( shade_color( g[c[chalf] - 2], bc ) );
|
|
||||||
fl_xyline( x + i, y, x + w - i );
|
|
||||||
fl_xyline( x + i, y + h, x + w - i );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
shade_round ( int x, int y, int w, int h, const char *c, Fl_Color bc )
|
|
||||||
{
|
|
||||||
uchar *g = fl_gray_ramp();
|
|
||||||
int i;
|
|
||||||
int clen = strlen( c ) - 1;
|
|
||||||
int chalf = clen / 2;
|
|
||||||
|
|
||||||
if ( w > h )
|
|
||||||
{
|
|
||||||
int d = h / 2;
|
|
||||||
const int na = 8;
|
|
||||||
for ( i = 0; i < chalf; i++, d--, x++, y++, w -= 2, h -= 2 )
|
|
||||||
{
|
|
||||||
fl_color( shade_color( g[c[i]], bc ) );
|
|
||||||
fl_pie( x, y, h, h, 90.0, 135.0 + i * na );
|
|
||||||
fl_xyline( x + d, y, x + w - d );
|
|
||||||
fl_pie( x + w - h, y, h, h, 45.0 + i * na, 90.0 );
|
|
||||||
fl_color( shade_color( g[c[i] - 2], bc ) );
|
|
||||||
fl_pie( x + w - h, y, h, h, 315.0 + i * na, 405.0 + i * na );
|
|
||||||
fl_color( shade_color( g[c[clen - i]], bc ) );
|
|
||||||
fl_pie( x + w - h, y, h, h, 270.0, 315.0 + i * na );
|
|
||||||
fl_xyline( x + d, y + h - 1, x + w - d );
|
|
||||||
fl_pie( x, y, h, h, 225.0 + i * na, 270.0 );
|
|
||||||
fl_color( shade_color( g[c[clen - i] - 2], bc ) );
|
|
||||||
fl_pie( x, y, h, h, 135.0 + i * na, 225.0 + i * na );
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
// fl_color( shade_color( g[c[chalf]], bc ) );
|
|
||||||
fl_color( bc );
|
|
||||||
fl_rectf( x + d, y, w - h + 1, h + 1 );
|
|
||||||
fl_pie( x, y, h, h, 90.0, 270.0 );
|
|
||||||
fl_pie( x + w - h, y, h, h, 270.0, 90.0 );
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
int d = w / 2;
|
|
||||||
const int na = 8;
|
|
||||||
for ( i = 0; i < chalf; i++, d--, x++, y++, w -= 2, h -= 2 )
|
|
||||||
{
|
|
||||||
fl_color( shade_color( g[c[i]], bc ) );
|
|
||||||
fl_pie( x, y, w, w, 45.0 + i * na, 135.0 + i * na );
|
|
||||||
fl_color( shade_color( g[c[i] - 2], bc ) );
|
|
||||||
fl_pie( x, y, w, w, 0.0, 45.0 + i * na );
|
|
||||||
fl_yxline( x + w - 1, y + d, y + h - d );
|
|
||||||
fl_pie( x, y + h - w, w, w, 315.0 + i * na, 360.0 );
|
|
||||||
fl_color( shade_color( g[c[clen - i]], bc ) );
|
|
||||||
fl_pie( x, y + h - w, w, w, 225.0 + i * na, 315.0 + i * na );
|
|
||||||
fl_color( shade_color( g[c[clen - i] - 2], bc ) );
|
|
||||||
fl_pie( x, y + h - w, w, w, 180.0, 225.0 + i * na );
|
|
||||||
fl_yxline( x, y + d, y + h - d );
|
|
||||||
fl_pie( x, y, w, w, 135.0 + i * na, 180.0 );
|
|
||||||
}
|
|
||||||
// fl_color( shade_color( g[c[chalf]], bc ) );
|
|
||||||
fl_color( bc );
|
|
||||||
fl_rectf( x, y + d, w + 1, h - w + 1 );
|
|
||||||
fl_pie( x, y, w, w, 0.0, 180.0 );
|
|
||||||
fl_pie( x, y + h - w, w, w, 180.0, 360.0 );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static void
|
|
||||||
up_frame ( int x, int y, int w, int h, Fl_Color c )
|
|
||||||
{
|
|
||||||
frame_rect( x, y, w, h - 1, "KLDIIJLM", c );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static void
|
|
||||||
narrow_thin_box ( int x, int y, int w, int h, Fl_Color c )
|
|
||||||
{
|
|
||||||
if ( h <= 0 || w <= 0 )
|
|
||||||
return;
|
|
||||||
uchar *g = fl_gray_ramp();
|
|
||||||
fl_color( shade_color( g['R'], c ) );
|
|
||||||
fl_rectf( x + 1, y + 1, w - 2, h - 2 );
|
|
||||||
fl_color( shade_color( g['I'], c ) );
|
|
||||||
if ( w > 1 )
|
|
||||||
{
|
|
||||||
fl_xyline( x + 1, y, x + w - 2 );
|
|
||||||
fl_xyline( x + 1, y + h - 1, x + w - 2 );
|
|
||||||
}
|
|
||||||
if ( h > 1 )
|
|
||||||
{
|
|
||||||
fl_yxline( x, y + 1, y + h - 2 );
|
|
||||||
fl_yxline( x + w - 1, y + 1, y + h - 2 );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static void
|
|
||||||
thin_up_box ( int x, int y, int w, int h, Fl_Color c )
|
|
||||||
{
|
|
||||||
if ( w > 4 && h > 4 )
|
|
||||||
{
|
|
||||||
shade_rect( x + 1, y + 1, w - 2, h - 3, "RQOQSUWQ", c );
|
|
||||||
frame_rect( x, y, w, h - 1, "IJLM", c );
|
|
||||||
}
|
|
||||||
else
|
|
||||||
narrow_thin_box( x, y, w, h, c );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static void
|
|
||||||
up_box ( int x, int y, int w, int h, Fl_Color c )
|
|
||||||
{
|
|
||||||
if ( w > 8 && h > 8 )
|
|
||||||
{
|
|
||||||
shade_rect( x + 1, y + 1, w - 2, h - 3, "RVQNOPQRSTUVWVQ", c );
|
|
||||||
// shade_rect( x + 1, y + 1, w - 2, h - 3, "STUVWVQRWXVUVVQ", c );
|
|
||||||
// shade_rect( x + 1, y + 1, w - 2, h - 3, "FISPPQQRSSTTUPJ", c );
|
|
||||||
|
|
||||||
frame_rect( x, y, w, h - 1, "IJLM", c );
|
|
||||||
|
|
||||||
}
|
|
||||||
else
|
|
||||||
thin_up_box( x, y, w, h, c );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static void
|
|
||||||
up_round ( int x, int y, int w, int h, Fl_Color c )
|
|
||||||
{
|
|
||||||
shade_round( x, y, w, h, "RVQNOPQRSTUVWVQ", c );
|
|
||||||
frame_round( x, y, w, h, "IJLM", c );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static void
|
|
||||||
down_frame ( int x, int y, int w, int h, Fl_Color c )
|
|
||||||
{
|
|
||||||
frame_rect( x, y, w, h - 1, "LLLLTTRR", c );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static void
|
|
||||||
down_box ( int x, int y, int w, int h, Fl_Color c )
|
|
||||||
{
|
|
||||||
if ( w > 6 && h > 6 )
|
|
||||||
{
|
|
||||||
// shade_rect( x + 2, y + 2, w - 4, h - 5, "STUVWWWVT", c );
|
|
||||||
fl_rectf( x + 2, y + 2, w - 4, h - 5 , fl_darker( c ) );
|
|
||||||
down_frame( x, y, w, h, c );
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
narrow_thin_box( x, y, w, h, c );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static void
|
|
||||||
down_round ( int x, int y, int w, int h, Fl_Color c )
|
|
||||||
{
|
|
||||||
shade_round( x, y, w, h, "STUVWWWVT", c );
|
|
||||||
frame_round( x, y, w, h, "IJLM", c );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void
|
|
||||||
init_crystal_boxtypes ( void )
|
|
||||||
{
|
|
||||||
/* replace the plastic boxes... (is there a better way?) */
|
|
||||||
Fl::set_boxtype( FL_PLASTIC_UP_BOX, up_box, 4,4,8,8 );
|
|
||||||
Fl::set_boxtype( FL_PLASTIC_DOWN_BOX, down_box, 2,2,4,4 );
|
|
||||||
Fl::set_boxtype( FL_PLASTIC_UP_FRAME, up_frame, 2,2,4,4 );
|
|
||||||
Fl::set_boxtype( FL_PLASTIC_DOWN_FRAME, down_frame, 2,2,4,4 );
|
|
||||||
Fl::set_boxtype( FL_PLASTIC_THIN_UP_BOX, thin_up_box, 1,1,2,2 );
|
|
||||||
Fl::set_boxtype( FL_PLASTIC_THIN_DOWN_BOX, down_box, 1,1,2,2 );
|
|
||||||
Fl::set_boxtype( FL_PLASTIC_ROUND_UP_BOX, up_round, 1,1,2,2 );
|
|
||||||
Fl::set_boxtype( FL_PLASTIC_ROUND_DOWN_BOX, down_round, 1,1,2,2 );
|
|
||||||
}
|
|
332
FL/Fl_Arc_Dial.C
|
@ -1,332 +0,0 @@
|
||||||
|
|
||||||
/*******************************************************************************/
|
|
||||||
/* Copyright (C) 2008 Jonathan Moore Liles */
|
|
||||||
/* */
|
|
||||||
/* This program is free software; you can redistribute it and/or modify it */
|
|
||||||
/* under the terms of the GNU General Public License as published by the */
|
|
||||||
/* Free Software Foundation; either version 2 of the License, or (at your */
|
|
||||||
/* option) any later version. */
|
|
||||||
/* */
|
|
||||||
/* This program is distributed in the hope that it will be useful, but WITHOUT */
|
|
||||||
/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */
|
|
||||||
/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */
|
|
||||||
/* more details. */
|
|
||||||
/* */
|
|
||||||
/* You should have received a copy of the GNU General Public License along */
|
|
||||||
/* with This program; see the file COPYING. If not,write to the Free Software */
|
|
||||||
/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
|
||||||
/*******************************************************************************/
|
|
||||||
|
|
||||||
|
|
||||||
#include "Fl_Arc_Dial.H"
|
|
||||||
|
|
||||||
#include <FL/fl_draw.H>
|
|
||||||
#include <FL/Fl.H>
|
|
||||||
#include <string.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <math.h>
|
|
||||||
#include <algorithm>
|
|
||||||
|
|
||||||
int Fl_Arc_Dial::_default_style = Fl_Arc_Dial::PLASTIC_DIAL;
|
|
||||||
|
|
||||||
/** This simple box is suitable for use with knob-type widgets. It
|
|
||||||
* comprises a border with shadow, and a cap with glare-lines akin
|
|
||||||
* to those seen on burnished aluminum knobs. */
|
|
||||||
static void
|
|
||||||
burnished_oval_box ( int x, int y, int w, int h, Fl_Color c )
|
|
||||||
{
|
|
||||||
/* draw background */
|
|
||||||
fl_color( fl_darker( c ) );
|
|
||||||
fl_pie( x, y, w, h, 0, 360 );
|
|
||||||
fl_color( fl_darker( fl_darker( c ) ) );
|
|
||||||
fl_pie( x, y, w, h, 180 + 215, 180 + 45 );
|
|
||||||
|
|
||||||
/* shrink */
|
|
||||||
x += 4;
|
|
||||||
y += 4;
|
|
||||||
w -= 7;
|
|
||||||
h -= 7;
|
|
||||||
|
|
||||||
/* draw cap */
|
|
||||||
fl_color( c );
|
|
||||||
fl_pie( x, y, w, h, 0, 360 );
|
|
||||||
|
|
||||||
/* draw glare */
|
|
||||||
|
|
||||||
const int a1 = 10;
|
|
||||||
const int a2 = 90;
|
|
||||||
|
|
||||||
fl_color( fl_color_average( FL_WHITE, c, 0.15f ) );
|
|
||||||
fl_pie( x, y, w, h, a1, a2 );
|
|
||||||
fl_pie( x, y, w, h, 180 + a1, 180 + a2 );
|
|
||||||
fl_color( fl_color_average( FL_WHITE, c, 0.25f ) );
|
|
||||||
|
|
||||||
const int d = (a2 - a1) / 2;
|
|
||||||
fl_pie( x, y, w, h, a1 + (d / 2), a2 - (d / 2) );
|
|
||||||
fl_pie( x, y, w, h, 180 + a1 + (d / 2), 180 + a2 - (d / 2) );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void
|
|
||||||
Fl_Arc_Dial::draw_box ( void )
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
Fl_Arc_Dial::handle ( int m )
|
|
||||||
{
|
|
||||||
/* Fl_Dial and friends should really handle mousewheel, but they don't in FTLK1 */
|
|
||||||
|
|
||||||
switch ( m )
|
|
||||||
{
|
|
||||||
case FL_MOUSEWHEEL:
|
|
||||||
{
|
|
||||||
if ( this != Fl::belowmouse() )
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
int steps = 16;
|
|
||||||
|
|
||||||
if ( Fl::event_ctrl() )
|
|
||||||
steps = 128;
|
|
||||||
|
|
||||||
float step = fabs( maximum() - minimum() ) / (float)steps;
|
|
||||||
|
|
||||||
float d = ((float)Fl::event_dy()) * step;
|
|
||||||
|
|
||||||
double v = value() + d;
|
|
||||||
|
|
||||||
if ( maximum() > minimum() )
|
|
||||||
{
|
|
||||||
if ( v < minimum() )
|
|
||||||
v = minimum();
|
|
||||||
else if ( v > maximum() )
|
|
||||||
v = maximum();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if ( v > minimum() )
|
|
||||||
v = minimum();
|
|
||||||
else if ( v < maximum() )
|
|
||||||
v = maximum();
|
|
||||||
}
|
|
||||||
|
|
||||||
value( v );
|
|
||||||
do_callback();
|
|
||||||
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
int X, Y, S;
|
|
||||||
|
|
||||||
get_knob_dimensions ( &X, &Y, &S );
|
|
||||||
|
|
||||||
return Fl_Dial::handle( m, X, Y, S, S );
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
Fl_Arc_Dial::draw ( void )
|
|
||||||
{
|
|
||||||
int X, Y, S;
|
|
||||||
|
|
||||||
get_knob_dimensions ( &X, &Y, &S);
|
|
||||||
|
|
||||||
draw_box();
|
|
||||||
draw_label();
|
|
||||||
|
|
||||||
double angle = ( angle2() - angle1() ) * ( value() - minimum()) / ( maximum() - minimum() ) + angle1();
|
|
||||||
|
|
||||||
if ( type() == ARC_DIAL )
|
|
||||||
{
|
|
||||||
/* fl_line_style( FL_SOLID, 0 ); */
|
|
||||||
if ( type() == ARC_DIAL )
|
|
||||||
fl_draw_box( FL_ROUNDED_BOX, X, Y, S, S, color() );
|
|
||||||
|
|
||||||
/* shrink a bit */
|
|
||||||
X += S / 8.0;
|
|
||||||
Y += S / 8.0;
|
|
||||||
S -= S / 4;
|
|
||||||
|
|
||||||
fl_line_style( FL_SOLID, S / 6 );
|
|
||||||
|
|
||||||
/* background arc */
|
|
||||||
fl_color( fl_darker( color() ) );
|
|
||||||
fl_arc( X, Y, S, S, 270 - angle1(), 270 - angle2() );
|
|
||||||
|
|
||||||
/* foreground arc */
|
|
||||||
fl_color( selection_color() );
|
|
||||||
fl_arc( X, Y, S, S, 270 - angle1(), 270 - angle );
|
|
||||||
|
|
||||||
fl_line_style( FL_SOLID, 0 );
|
|
||||||
|
|
||||||
fl_color( fl_contrast( labelcolor(), color() ) );
|
|
||||||
}
|
|
||||||
else if ( type() == PLASTIC_DIAL || type() == BURNISHED_DIAL )
|
|
||||||
{
|
|
||||||
draw_knob();
|
|
||||||
|
|
||||||
draw_cursor( X, Y, S);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Some strange bug in FLTK prevents us from always been able to draw text
|
|
||||||
* here, so don't even try for now. */
|
|
||||||
/* char s[10]; */
|
|
||||||
|
|
||||||
/* fl_font( FL_HELVETICA, 8 ); */
|
|
||||||
|
|
||||||
/* snprintf( s, sizeof( s ), "%.1f", value() ); */
|
|
||||||
|
|
||||||
/* /\* fl_rectf( X, Y + S, S, 14, FL_BACKGROUND2_COLOR ); *\/ */
|
|
||||||
/* fl_color( FL_WHITE ); */
|
|
||||||
/* fl_draw( s, X, Y + S, S, 14, FL_ALIGN_CENTER ); */
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
Fl_Arc_Dial::get_knob_dimensions ( int *X, int *Y, int *S )
|
|
||||||
{
|
|
||||||
int ox, oy, ww, hh, side;
|
|
||||||
ox = x();
|
|
||||||
oy = y();
|
|
||||||
ww = w();
|
|
||||||
hh = h();
|
|
||||||
|
|
||||||
if (ww > hh)
|
|
||||||
{
|
|
||||||
side = hh;
|
|
||||||
ox = ox + (ww - side) / 2;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
side = ww;
|
|
||||||
oy = oy + (hh - side) / 2;
|
|
||||||
}
|
|
||||||
side = w() > h() ? hh : ww;
|
|
||||||
|
|
||||||
*X = ox;
|
|
||||||
*Y = oy;
|
|
||||||
*S = side;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
Fl_Arc_Dial::draw_cursor ( int ox, int oy, int side )
|
|
||||||
{
|
|
||||||
double angle;
|
|
||||||
|
|
||||||
// fl_color(fl_color_average(FL_BACKGROUND_COLOR, FL_BLACK, .7f));
|
|
||||||
|
|
||||||
angle = ( angle2() - angle1() ) * ( value() - minimum()) / ( maximum() - minimum() ) + angle1();
|
|
||||||
|
|
||||||
fl_color( fl_contrast( selection_color(), FL_BACKGROUND_COLOR ) );
|
|
||||||
|
|
||||||
fl_line_style( FL_SOLID, side / 8 );
|
|
||||||
|
|
||||||
const int d = 6;
|
|
||||||
|
|
||||||
/* account for edge conditions */
|
|
||||||
angle = angle < angle1() + d ? angle1() + d : angle;
|
|
||||||
angle = angle > angle2() - d ? angle2() - d : angle;
|
|
||||||
|
|
||||||
ox += side / 4;
|
|
||||||
oy += side / 4;
|
|
||||||
side -= side / 2;
|
|
||||||
|
|
||||||
fl_arc( ox, oy, side, side, 270 - (angle - d), 270 - (angle + d) );
|
|
||||||
|
|
||||||
fl_line_style( FL_SOLID, 0 );
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
Fl_Arc_Dial::draw_knob ( void )
|
|
||||||
{
|
|
||||||
int ox, oy, ww, hh, side;
|
|
||||||
|
|
||||||
get_knob_dimensions ( &ox, &oy, &side );
|
|
||||||
|
|
||||||
ww = w();
|
|
||||||
hh = h();
|
|
||||||
draw_label();
|
|
||||||
fl_clip(ox, oy, ww, hh);
|
|
||||||
|
|
||||||
|
|
||||||
// background
|
|
||||||
/* fl_color(FL_BACKGROUND_COLOR); */
|
|
||||||
/* fl_rectf(ox, oy, side, side); */
|
|
||||||
|
|
||||||
/* scale color */
|
|
||||||
fl_color(fl_color_average(color(), FL_BACKGROUND2_COLOR, .6));
|
|
||||||
|
|
||||||
fl_pie(ox + 1, oy + 3, side - 2, side - 12, 0, 360);
|
|
||||||
// scale
|
|
||||||
draw_scale(ox, oy, side);
|
|
||||||
|
|
||||||
Fl_Color c = active_r() ? fl_color_average(FL_BACKGROUND_COLOR, FL_WHITE, .7) : FL_INACTIVE_COLOR;
|
|
||||||
|
|
||||||
if ( type() == BURNISHED_DIAL )
|
|
||||||
{
|
|
||||||
burnished_oval_box( ox + 5, oy + 5, side - 12, side - 12, c );
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
|
|
||||||
fl_color(FL_BACKGROUND_COLOR);
|
|
||||||
fl_pie(ox + 6, oy + 6, side - 12, side - 12, 0, 360);
|
|
||||||
|
|
||||||
// shadow
|
|
||||||
|
|
||||||
fl_color(fl_color_average(FL_BACKGROUND_COLOR, FL_BLACK, .8f));
|
|
||||||
fl_pie(ox + 8, oy + 12, side - 16, side - 16, 0, 360);
|
|
||||||
fl_color(fl_color_average(FL_BACKGROUND_COLOR, FL_BLACK, .2f));
|
|
||||||
fl_pie(ox + 9, oy + 12, side - 18, side - 18, 0, 360);
|
|
||||||
|
|
||||||
// knob edge
|
|
||||||
fl_color( c);
|
|
||||||
|
|
||||||
|
|
||||||
fl_pie(ox + 8, oy + 8, side - 16, side - 16, 0, 360);
|
|
||||||
|
|
||||||
fl_color(fl_color_average(FL_BACKGROUND_COLOR, FL_WHITE, .6));
|
|
||||||
fl_pie(ox + 10, oy + 10, side - 20, side - 20, 0, 360);
|
|
||||||
|
|
||||||
}
|
|
||||||
fl_pop_clip();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void
|
|
||||||
Fl_Arc_Dial::draw_scale ( int ox, int oy, int side )
|
|
||||||
{
|
|
||||||
float x1, y1, x2, y2, rds, cx, cy, ca, sa;
|
|
||||||
rds = side / 2;
|
|
||||||
cx = ox + side / 2;
|
|
||||||
cy = oy + side / 2;
|
|
||||||
if (_scaleticks == 0)
|
|
||||||
return;
|
|
||||||
double a_step = (10.0 * 3.14159 / 6.0) / _scaleticks;
|
|
||||||
double a_orig = -(3.14159 / 3.0);
|
|
||||||
for (int a = 0; a <= _scaleticks; a++)
|
|
||||||
{
|
|
||||||
double na = a_orig + a * a_step;
|
|
||||||
ca = cos(na);
|
|
||||||
sa = sin(na);
|
|
||||||
x1 = cx + (rds) * ca;
|
|
||||||
y1 = cy - (rds) * sa;
|
|
||||||
x2 = cx + (rds - 6) * ca;
|
|
||||||
y2 = cy - (rds - 6) * sa;
|
|
||||||
fl_color(FL_BACKGROUND_COLOR);
|
|
||||||
fl_line(x1, y1, x2, y2);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
Fl_Arc_Dial::scaleticks ( int tck )
|
|
||||||
{
|
|
||||||
_scaleticks = tck;
|
|
||||||
if (_scaleticks < 0)
|
|
||||||
_scaleticks = 0;
|
|
||||||
if (_scaleticks > 31)
|
|
||||||
_scaleticks = 31;
|
|
||||||
if (visible())
|
|
||||||
damage(FL_DAMAGE_ALL);
|
|
||||||
}
|
|
|
@ -20,15 +20,19 @@
|
||||||
#include <FL/Fl_Button.H>
|
#include <FL/Fl_Button.H>
|
||||||
#include <FL/Fl.H>
|
#include <FL/Fl.H>
|
||||||
|
|
||||||
class Fl_Blinker : public Fl_Button
|
/* Kind of like Fl_Light_Button except that the whole thing is the
|
||||||
|
* indicator and it can optionally blink */
|
||||||
|
|
||||||
|
class Fl_Blink_Button : public Fl_Button
|
||||||
{
|
{
|
||||||
bool _on;
|
bool _on;
|
||||||
float _blink_interval;
|
float _blink_interval;
|
||||||
|
bool _blinking;
|
||||||
|
|
||||||
static void
|
static void
|
||||||
update_cb ( void *v )
|
update_cb ( void *v )
|
||||||
{
|
{
|
||||||
((Fl_Blinker*)v)->update_cb();
|
((Fl_Blink_Button*)v)->update_cb();
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -48,32 +52,66 @@ public:
|
||||||
static const float FAST = 0.1f;
|
static const float FAST = 0.1f;
|
||||||
static const float DEFAULT = 0.5f;
|
static const float DEFAULT = 0.5f;
|
||||||
|
|
||||||
Fl_Blinker ( int X, int Y, int W, int H, const char *L )
|
Fl_Blink_Button ( int X, int Y, int W, int H, const char *L )
|
||||||
: Fl_Button( X, Y, W, H, L )
|
: Fl_Button( X, Y, W, H, L )
|
||||||
{
|
{
|
||||||
|
_blinking = true;
|
||||||
_on = false;
|
_on = false;
|
||||||
|
|
||||||
_blink_interval = DEFAULT;
|
_blink_interval = DEFAULT;
|
||||||
|
|
||||||
Fl::add_timeout( _blink_interval, update_cb, this );
|
|
||||||
|
|
||||||
|
|
||||||
type( FL_TOGGLE_BUTTON );
|
type( FL_TOGGLE_BUTTON );
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual
|
virtual
|
||||||
~Fl_Blinker ()
|
~Fl_Blink_Button ()
|
||||||
{
|
{
|
||||||
|
if ( value() )
|
||||||
Fl::remove_timeout( update_cb, this );
|
Fl::remove_timeout( update_cb, this );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void blink ( bool b )
|
||||||
|
{
|
||||||
|
_blinking = b;
|
||||||
|
if ( ! b )
|
||||||
|
_on = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool blink ( void ) const
|
||||||
|
{
|
||||||
|
return _blinking;
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
interval ( float v )
|
blink_interval ( float v )
|
||||||
{
|
{
|
||||||
_blink_interval = v;
|
_blink_interval = v;
|
||||||
|
if ( value() )
|
||||||
|
{
|
||||||
Fl::remove_timeout( update_cb, this );
|
Fl::remove_timeout( update_cb, this );
|
||||||
Fl::add_timeout( _blink_interval, update_cb, this );
|
Fl::add_timeout( _blink_interval, update_cb, this );
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual void value ( float v )
|
||||||
|
{
|
||||||
|
if ( v )
|
||||||
|
{
|
||||||
|
if ( _blinking )
|
||||||
|
Fl::add_timeout( _blink_interval, update_cb, this );
|
||||||
|
Fl_Button::value( v );
|
||||||
|
redraw();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Fl_Button::value( v );
|
||||||
|
Fl::remove_timeout( update_cb, this );
|
||||||
|
redraw();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual float value ( void ) { return Fl_Button::value(); }
|
||||||
|
|
||||||
virtual void
|
virtual void
|
||||||
draw ( void )
|
draw ( void )
|
|
@ -28,7 +28,6 @@
|
||||||
|
|
||||||
class Fl_Sometimes_Input : public Fl_Input
|
class Fl_Sometimes_Input : public Fl_Input
|
||||||
{
|
{
|
||||||
|
|
||||||
Fl_Boxtype _up_box;
|
Fl_Boxtype _up_box;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
@ -38,7 +37,7 @@ public:
|
||||||
{
|
{
|
||||||
clear_visible_focus();
|
clear_visible_focus();
|
||||||
up_box( FL_NO_BOX );
|
up_box( FL_NO_BOX );
|
||||||
when(FL_WHEN_ENTER_KEY_ALWAYS);
|
when(FL_WHEN_ENTER_KEY);
|
||||||
}
|
}
|
||||||
|
|
||||||
void up_box ( Fl_Boxtype b ) { _up_box = b; }
|
void up_box ( Fl_Boxtype b ) { _up_box = b; }
|
||||||
|
@ -73,20 +72,19 @@ public:
|
||||||
|
|
||||||
switch ( m )
|
switch ( m )
|
||||||
{
|
{
|
||||||
|
case FL_KEYDOWN:
|
||||||
|
{
|
||||||
|
if ( r && Fl::event_key() == FL_Enter )
|
||||||
|
Fl::focus( NULL );
|
||||||
|
}
|
||||||
case FL_FOCUS:
|
case FL_FOCUS:
|
||||||
|
case FL_UNFOCUS:
|
||||||
redraw();
|
redraw();
|
||||||
return 1;
|
return 1;
|
||||||
case FL_PUSH:
|
case FL_PUSH:
|
||||||
take_focus();
|
take_focus();
|
||||||
redraw();
|
redraw();
|
||||||
return 1;
|
return 1;
|
||||||
case FL_UNFOCUS:
|
|
||||||
|
|
||||||
if ( window() )
|
|
||||||
window()->damage( FL_DAMAGE_EXPOSE, x(), y(), w(), h() );
|
|
||||||
|
|
||||||
redraw();
|
|
||||||
return r;
|
|
||||||
default:
|
default:
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,180 +0,0 @@
|
||||||
|
|
||||||
/*******************************************************************************/
|
|
||||||
/* Copyright (C) 2012 Jonathan Moore Liles */
|
|
||||||
/* Copyright (C) 2001-2005 by Colin Jones */
|
|
||||||
/* */
|
|
||||||
/* This program is free software; you can redistribute it and/or modify it */
|
|
||||||
/* under the terms of the GNU General Public License as published by the */
|
|
||||||
/* Free Software Foundation; either version 2 of the License, or (at your */
|
|
||||||
/* option) any later version. */
|
|
||||||
/* */
|
|
||||||
/* This program is distributed in the hope that it will be useful, but WITHOUT */
|
|
||||||
/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */
|
|
||||||
/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */
|
|
||||||
/* more details. */
|
|
||||||
/* */
|
|
||||||
/* You should have received a copy of the GNU General Public License along */
|
|
||||||
/* with This program; see the file COPYING. If not,write to the Free Software */
|
|
||||||
/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
|
||||||
/*******************************************************************************/
|
|
||||||
|
|
||||||
/* Taken from the "Gleam" FLTK scheme, as modified by prodatum */
|
|
||||||
|
|
||||||
#include <FL/Fl.H>
|
|
||||||
#include <FL/fl_draw.H>
|
|
||||||
|
|
||||||
#include "Gleam_Boxtypes.H"
|
|
||||||
|
|
||||||
static void gleam_color(Fl_Color c)
|
|
||||||
{
|
|
||||||
if (Fl::draw_box_active())
|
|
||||||
fl_color(c);
|
|
||||||
else
|
|
||||||
fl_color(fl_inactive(c));
|
|
||||||
}
|
|
||||||
static void frame_rect(int x, int y, int w, int h, Fl_Color bc)
|
|
||||||
{
|
|
||||||
|
|
||||||
// Draw the outline around the perimeter of the box
|
|
||||||
fl_color(fl_color_average(FL_BLACK, FL_BACKGROUND_COLOR, .1));
|
|
||||||
fl_line(x, y, x + w, y);
|
|
||||||
fl_line(x + w, y, x + w, y + h);
|
|
||||||
fl_line(x + w, y + h, x, y + h);
|
|
||||||
fl_line(x, y + h, x, y);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
static void shade_rect_up(int x, int y, int w, int h, Fl_Color bc)
|
|
||||||
{
|
|
||||||
// Draws the shiny
|
|
||||||
float third = (float) h / 3;
|
|
||||||
gleam_color(bc);
|
|
||||||
fl_rectf(x, y, w, third + 1);
|
|
||||||
|
|
||||||
//gleam_color(fl_color_average(bc, FL_WHITE, .90f));
|
|
||||||
//fl_rectf(x, y, w, half + 1);
|
|
||||||
|
|
||||||
float step_size = 0.10 / ((float) h - third);
|
|
||||||
int j = 0;
|
|
||||||
//step_size = (.1 / (float) half);
|
|
||||||
//printf("1 / %i = %f \n", half, (1.0/half));
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This loop generates the nice gradient at the bottom of the
|
|
||||||
* widget
|
|
||||||
**/
|
|
||||||
for (float k = 1; k >= .90; k -= step_size)
|
|
||||||
{
|
|
||||||
j++;
|
|
||||||
gleam_color(fl_color_average(bc, FL_WHITE, k));
|
|
||||||
fl_line(x, y + j + third - 1, x + w - 1, y + j + third - 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
static void frame_rect_up(int x, int y, int w, int h, Fl_Color bc)
|
|
||||||
{
|
|
||||||
|
|
||||||
// Draw the outline around the perimeter of the box
|
|
||||||
gleam_color(bc);
|
|
||||||
fl_line(x, y, x + w, y); //Go across.
|
|
||||||
fl_line(x, y + (h / 2), x, y + 1); //Go to top
|
|
||||||
fl_line(x + w, y + (h / 2), x + w, y + 1); //Go to top
|
|
||||||
|
|
||||||
gleam_color(fl_darker(bc));
|
|
||||||
fl_line(x, y + h, x + w, y + h); //Go across again!
|
|
||||||
fl_line(x, y + (h / 2), x, y + h - 1); //Go to top
|
|
||||||
fl_line(x + w, y + (h / 2), x + w, y + h - 1); //Go to top
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
static void frame_rect_down(int x, int y, int w, int h, Fl_Color bc)
|
|
||||||
{
|
|
||||||
|
|
||||||
// Draw the outline around the perimeter of the box
|
|
||||||
gleam_color(fl_darker(bc));
|
|
||||||
fl_line(x, y, x + w, y); //Go across.
|
|
||||||
fl_line(x, y + (h / 2), x, y + 1); //Go to top
|
|
||||||
fl_line(x + w, y + (h / 2), x + w, y + 1); //Go to top
|
|
||||||
|
|
||||||
//gleam_color(bc);
|
|
||||||
fl_line(x, y + h, x + w, y + h); //Go across again!
|
|
||||||
fl_line(x, y + (h / 2), x, y + h - 1); //Go to top
|
|
||||||
fl_line(x + w, y + (h / 2), x + w, y + h - 1); //Go to top
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
static void shade_rect_down(int x, int y, int w, int h, Fl_Color bc)
|
|
||||||
{
|
|
||||||
|
|
||||||
gleam_color(bc);
|
|
||||||
Fl_Color color = fl_color();
|
|
||||||
fl_rectf(x, y, w, h);
|
|
||||||
gleam_color(fl_color_average(bc, fl_darker(color), 0.65));
|
|
||||||
fl_line(x, y + 1, x + w, y + 1);
|
|
||||||
fl_line(x, y + 1, x, y + h - 2);
|
|
||||||
gleam_color(fl_color_average(bc, fl_darker(color), 0.85));
|
|
||||||
fl_line(x + 1, y + 2, x + w, y + 2);
|
|
||||||
fl_line(x + 1, y + 2, x + 1, y + h - 2);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
static void up_frame(int x, int y, int w, int h, Fl_Color c)
|
|
||||||
{
|
|
||||||
frame_rect_up(x, y, w - 1, h - 1, fl_darker(c));
|
|
||||||
}
|
|
||||||
|
|
||||||
static void thin_up_box(int x, int y, int w, int h, Fl_Color c)
|
|
||||||
{
|
|
||||||
|
|
||||||
shade_rect_up(x + 1, y, w - 2, h - 1, c);
|
|
||||||
frame_rect(x + 1, y + 1, w - 3, h - 3, fl_color_average(c, FL_WHITE, .25f));
|
|
||||||
frame_rect_up(x, y, w - 1, h - 1, fl_darker(c));
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
static void up_box(int x, int y, int w, int h, Fl_Color c)
|
|
||||||
{
|
|
||||||
shade_rect_up(x + 1, y, w - 2, h - 1, c);
|
|
||||||
frame_rect_up(x, y, w - 1, h - 1, fl_darker(c));
|
|
||||||
//draw the inner rect.
|
|
||||||
frame_rect(x + 1, y + 1, w - 3, h - 3, fl_color_average(c, FL_WHITE, .25f));
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
static void down_frame(int x, int y, int w, int h, Fl_Color c)
|
|
||||||
{
|
|
||||||
frame_rect_down(x, y, w - 1, h - 1, fl_darker(c));
|
|
||||||
}
|
|
||||||
|
|
||||||
static void down_box(int x, int y, int w, int h, Fl_Color c)
|
|
||||||
{
|
|
||||||
shade_rect_down(x + 1, y, w - 2, h, c);
|
|
||||||
down_frame(x, y, w, h, fl_darker(c));
|
|
||||||
//draw the inner rect.
|
|
||||||
//frame_rect(x + 1, y + 1, w - 3, h - 3, fl_color_average(c, FL_BLACK, .65));
|
|
||||||
}
|
|
||||||
|
|
||||||
static void thin_down_box(int x, int y, int w, int h, Fl_Color c)
|
|
||||||
{
|
|
||||||
|
|
||||||
down_box(x, y, w, h, c);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
init_gleam_boxtypes ( void )
|
|
||||||
{
|
|
||||||
/* replace the gtk+ boxes... (is there a better way?) */
|
|
||||||
Fl::set_boxtype( FL_GTK_UP_BOX, up_box, 2,2,4,4 );
|
|
||||||
Fl::set_boxtype( FL_GTK_DOWN_BOX, down_box, 2,2,3,3 );
|
|
||||||
Fl::set_boxtype( FL_GTK_THIN_UP_BOX, up_box, 2,2,3,3 );
|
|
||||||
Fl::set_boxtype( FL_GTK_THIN_DOWN_BOX, down_box, 2,2,3,3 );
|
|
||||||
Fl::set_boxtype( FL_GTK_UP_FRAME, up_frame, 2,2,3,3 );
|
|
||||||
Fl::set_boxtype( FL_GTK_DOWN_FRAME, down_frame, 2,2,3,3 );
|
|
||||||
/* Fl::set_boxtype( FL_GTK_THIN_UP_BOX, thin_up_box, 1,1,1,1 ); */
|
|
||||||
/* Fl::set_boxtype( FL_GTK_THIN_DOWN_BOX, thin_down_box, 1,1,1,1 ); */
|
|
||||||
Fl::set_boxtype( FL_GTK_ROUND_UP_BOX, up_box, 2,2,3,3 );
|
|
||||||
Fl::set_boxtype( FL_GTK_ROUND_DOWN_BOX, down_box, 2,2,3,3 );
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,81 +0,0 @@
|
||||||
|
|
||||||
/*******************************************************************************/
|
|
||||||
/* Copyright (C) 2010 Jonathan Moore Liles */
|
|
||||||
/* */
|
|
||||||
/* This program is free software; you can redistribute it and/or modify it */
|
|
||||||
/* under the terms of the GNU General Public License as published by the */
|
|
||||||
/* Free Software Foundation; either version 2 of the License, or (at your */
|
|
||||||
/* option) any later version. */
|
|
||||||
/* */
|
|
||||||
/* This program is distributed in the hope that it will be useful, but WITHOUT */
|
|
||||||
/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */
|
|
||||||
/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */
|
|
||||||
/* more details. */
|
|
||||||
/* */
|
|
||||||
/* You should have received a copy of the GNU General Public License along */
|
|
||||||
/* with This program; see the file COPYING. If not,write to the Free Software */
|
|
||||||
/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
|
||||||
/*******************************************************************************/
|
|
||||||
|
|
||||||
#include "color_scheme.H"
|
|
||||||
#include <FL/Fl.H>
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
static Fl_Color system_colors[3];
|
|
||||||
|
|
||||||
void
|
|
||||||
get_system_colors ( void )
|
|
||||||
{
|
|
||||||
Fl::get_system_colors();
|
|
||||||
|
|
||||||
system_colors[ 0 ] = (Fl_Color)Fl::get_color( FL_BACKGROUND_COLOR );
|
|
||||||
system_colors[ 1 ] = (Fl_Color)Fl::get_color( FL_FOREGROUND_COLOR );
|
|
||||||
system_colors[ 2 ] = (Fl_Color)Fl::get_color( FL_BACKGROUND2_COLOR );
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
color_scheme ( const char *name )
|
|
||||||
{
|
|
||||||
if ( !strcasecmp( name, "gray" ) )
|
|
||||||
{
|
|
||||||
Fl::background2( 127, 127, 127 );
|
|
||||||
Fl::background( 100, 100, 100 );
|
|
||||||
Fl::foreground( 255, 255, 255 );
|
|
||||||
}
|
|
||||||
if ( !strcasecmp( name, "dark" ) )
|
|
||||||
{
|
|
||||||
Fl::background2( 100, 100, 100 );
|
|
||||||
Fl::background( 50, 50, 50 );
|
|
||||||
Fl::foreground( 255, 255, 255 );
|
|
||||||
}
|
|
||||||
else if ( !strcasecmp( name, "light" ))
|
|
||||||
{
|
|
||||||
Fl::background2( 192, 192, 192 );
|
|
||||||
Fl::background( 220, 220, 220 );
|
|
||||||
Fl::foreground( 0, 0, 0 );
|
|
||||||
}
|
|
||||||
if ( !strcasecmp( name, "very dark" ) )
|
|
||||||
{
|
|
||||||
Fl::background2( 100, 100, 100 );
|
|
||||||
Fl::background( 20, 20, 20 );
|
|
||||||
Fl::foreground( 240, 240, 240 );
|
|
||||||
}
|
|
||||||
else if ( !strcasecmp( name, "system" ) )
|
|
||||||
{
|
|
||||||
unsigned char r, g, b;
|
|
||||||
|
|
||||||
Fl::get_color( system_colors[ 0 ], r, g, b );
|
|
||||||
|
|
||||||
Fl::background( r, g, b );
|
|
||||||
|
|
||||||
Fl::get_color( system_colors[ 1 ], r, g, b );
|
|
||||||
|
|
||||||
Fl::foreground( r, g, b );
|
|
||||||
|
|
||||||
Fl::get_color( system_colors[ 2 ], r, g, b );
|
|
||||||
|
|
||||||
Fl::background2( r, g, b );
|
|
||||||
}
|
|
||||||
|
|
||||||
Fl::scheme( Fl::scheme() );
|
|
||||||
}
|
|
|
@ -14,7 +14,7 @@ ask "Build for debugging" USE_DEBUG no
|
||||||
begin_tests
|
begin_tests
|
||||||
|
|
||||||
require_FLTK 1.1.7 images
|
require_FLTK 1.1.7 images
|
||||||
require_command FLUID fluid
|
require_command FLUID lib/ntk/fluid/fluid
|
||||||
require_command ar ar
|
require_command ar ar
|
||||||
require_command makedepend makedepend
|
require_command makedepend makedepend
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,7 @@ SRCS:=$(SRCS:.fl=.C)
|
||||||
SRCS:=$(sort $(SRCS))
|
SRCS:=$(sort $(SRCS))
|
||||||
OBJS:=$(SRCS:.C=.o)
|
OBJS:=$(SRCS:.C=.o)
|
||||||
|
|
||||||
all: FL/libfl_widgets.a
|
all: FL/libfl_widgets.a util/ntk-perf
|
||||||
|
|
||||||
FL/libfl_widgets.a: $(OBJS)
|
FL/libfl_widgets.a: $(OBJS)
|
||||||
@ ar rcs $@ $(OBJS)
|
@ ar rcs $@ $(OBJS)
|
||||||
|
@ -19,8 +19,19 @@ FL/libfl_widgets.a: $(OBJS)
|
||||||
.PHONEY: FL
|
.PHONEY: FL
|
||||||
FL: FL/libfl_widgets.a
|
FL: FL/libfl_widgets.a
|
||||||
|
|
||||||
|
# ntk-chtheme: ntk-chtheme.o $(FLTK_LIBS) FL/libfl_widgets.a
|
||||||
|
# @ echo -n Linking session handler.
|
||||||
|
# @ $(CXX) $(CXXFLAGS) $(FLTK_LDFLAGS) $(LIBS) $^ -o $@ -LFL -lfl_widgets && echo $(DONE)
|
||||||
|
|
||||||
|
|
||||||
|
util/ntk-perf.o: util/ntk-perf.C
|
||||||
|
|
||||||
|
util/ntk-perf: util/ntk-perf.o $(FLTK_LIBS) FL/libfl_widgets.a
|
||||||
|
@ echo -n Linking session handler.
|
||||||
|
@ $(CXX) $(CXXFLAGS) $^ -o $@ $(FLTK_LDFLAGS) $(LIBS) -LFL -lfl_widgets && echo $(DONE)
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f $(OBJS) FL/libfl_widgets.a
|
rm -f $(OBJS) FL/libfl_widgets.a .deps
|
||||||
|
|
||||||
install:
|
install:
|
||||||
@
|
@
|
|
@ -18,7 +18,7 @@
|
||||||
/*******************************************************************************/
|
/*******************************************************************************/
|
||||||
|
|
||||||
class Fl_Menu_;
|
class Fl_Menu_;
|
||||||
class Fl_Menu_Item;
|
struct Fl_Menu_Item;
|
||||||
class Fl_Widget;
|
class Fl_Widget;
|
||||||
|
|
||||||
bool menu_popup ( Fl_Menu_ *m, int X, int Y );
|
bool menu_popup ( Fl_Menu_ *m, int X, int Y );
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
|
|
||||||
/*******************************************************************************/
|
/*******************************************************************************/
|
||||||
/* Copyright (C) 2008 Jonathan Moore Liles */
|
/* Copyright (C) 2012 Jonathan Moore Liles */
|
||||||
/* */
|
/* */
|
||||||
/* This program is free software; you can redistribute it and/or modify it */
|
/* This program is free software; you can redistribute it and/or modify it */
|
||||||
/* under the terms of the GNU General Public License as published by the */
|
/* under the terms of the GNU General Public License as published by the */
|
||||||
|
@ -17,6 +17,16 @@
|
||||||
/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||||
/*******************************************************************************/
|
/*******************************************************************************/
|
||||||
|
|
||||||
#include <FL/Fl.H>
|
#include "FL/themes.H"
|
||||||
|
#include "FL/Fl_Theme_Chooser.C"
|
||||||
|
|
||||||
void init_crystal_boxtypes ( void );
|
|
||||||
|
int
|
||||||
|
main ( int argc, char **argv )
|
||||||
|
{
|
||||||
|
fl_register_themes();
|
||||||
|
|
||||||
|
Fl_Theme::set();
|
||||||
|
|
||||||
|
fl_theme_chooser();
|
||||||
|
}
|
|
@ -0,0 +1,163 @@
|
||||||
|
|
||||||
|
/*******************************************************************************/
|
||||||
|
/* Copyright (C) 2012 Jonathan Moore Liles */
|
||||||
|
/* */
|
||||||
|
/* This program is free software; you can redistribute it and/or modify it */
|
||||||
|
/* under the terms of the GNU General Public License as published by the */
|
||||||
|
/* Free Software Foundation; either version 2 of the License, or (at your */
|
||||||
|
/* option) any later version. */
|
||||||
|
/* */
|
||||||
|
/* This program is distributed in the hope that it will be useful, but WITHOUT */
|
||||||
|
/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */
|
||||||
|
/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */
|
||||||
|
/* more details. */
|
||||||
|
/* */
|
||||||
|
/* You should have received a copy of the GNU General Public License along */
|
||||||
|
/* with This program; see the file COPYING. If not,write to the Free Software */
|
||||||
|
/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||||
|
/*******************************************************************************/
|
||||||
|
|
||||||
|
#include <FL/Fl.H>
|
||||||
|
#include <FL/Fl_Double_Window.H>
|
||||||
|
#include <FL/Fl_Single_Window.H>
|
||||||
|
#include <FL/Fl_Scalepack.H>
|
||||||
|
#include <FL/Fl_Choice.H>
|
||||||
|
#include <FL/fl_draw.H>
|
||||||
|
#include <sys/time.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
static Fl_Boxtype boxtype = FL_UP_BOX;
|
||||||
|
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
|
unsigned long long tv_to_ts ( timeval *tv )
|
||||||
|
{
|
||||||
|
return tv->tv_sec * 1e6 + tv->tv_usec;
|
||||||
|
}
|
||||||
|
|
||||||
|
unsigned long long get_ts ( void )
|
||||||
|
{
|
||||||
|
struct timeval then;
|
||||||
|
gettimeofday( &then, NULL );
|
||||||
|
|
||||||
|
return tv_to_ts( &then );
|
||||||
|
}
|
||||||
|
|
||||||
|
class PerfTest : public Fl_Widget
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
|
||||||
|
PerfTest ( int X, int Y, int W, int H, const char *L=0 ) : Fl_Widget( X, Y, W, H, L )
|
||||||
|
{
|
||||||
|
align(FL_ALIGN_TOP | FL_ALIGN_RIGHT |FL_ALIGN_INSIDE);
|
||||||
|
box(FL_UP_BOX);
|
||||||
|
labelcolor( FL_WHITE );
|
||||||
|
use_cairo = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool use_cairo;
|
||||||
|
|
||||||
|
void draw ( void )
|
||||||
|
{
|
||||||
|
if ( use_cairo )
|
||||||
|
fl_push_use_cairo(true);
|
||||||
|
|
||||||
|
fl_rectf( x(), y(), w(), h(), FL_BLACK );
|
||||||
|
|
||||||
|
unsigned long long then = get_ts();
|
||||||
|
|
||||||
|
fl_push_clip( x(), y(), w(), h() );
|
||||||
|
|
||||||
|
int count = 400;
|
||||||
|
|
||||||
|
/* draw stuff */
|
||||||
|
int i = 0;
|
||||||
|
for ( ; i < count; ++i )
|
||||||
|
fl_draw_box( boxtype, x(), y(), w(), h(), fl_lighter( FL_BLACK ) );
|
||||||
|
|
||||||
|
fl_pop_clip();
|
||||||
|
|
||||||
|
unsigned long long now = get_ts();
|
||||||
|
|
||||||
|
double elapsedms = (now - then) / 1000.0;
|
||||||
|
|
||||||
|
static char text[256];
|
||||||
|
sprintf( text, "Drew %i boxes in in %fms", i, elapsedms );
|
||||||
|
|
||||||
|
fl_color( FL_RED );
|
||||||
|
fl_draw( text, x(), y(), w(), h(), FL_ALIGN_CENTER | FL_ALIGN_INSIDE );
|
||||||
|
|
||||||
|
draw_label();
|
||||||
|
|
||||||
|
if ( use_cairo )
|
||||||
|
fl_pop_use_cairo();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
boxtype_cb ( Fl_Widget *w, void *v )
|
||||||
|
{
|
||||||
|
const char *picked = ((Fl_Choice*)w)->mvalue()->label();
|
||||||
|
|
||||||
|
if ( !strcmp( picked, "UP_BOX" ) )
|
||||||
|
boxtype = FL_UP_BOX;
|
||||||
|
else if ( !strcmp( picked, "FLAT_BOX" ) )
|
||||||
|
boxtype = FL_FLAT_BOX;
|
||||||
|
else if ( !strcmp( picked, "ROUNDED_BOX" ) )
|
||||||
|
boxtype = FL_ROUNDED_BOX;
|
||||||
|
else if ( !strcmp( picked, "OVAL_BOX" ) )
|
||||||
|
boxtype = FL_OVAL_BOX;
|
||||||
|
|
||||||
|
w->window()->redraw();
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
main ( int argc, char **argv )
|
||||||
|
{
|
||||||
|
{
|
||||||
|
Fl_Single_Window *w = new Fl_Single_Window( 800, 600 );
|
||||||
|
|
||||||
|
{ Fl_Choice *o = new Fl_Choice( 0, 0, 200, 24, "Boxtype" );
|
||||||
|
o->align( FL_ALIGN_RIGHT );
|
||||||
|
|
||||||
|
o->callback( boxtype_cb, NULL );
|
||||||
|
|
||||||
|
o->add( "UP_BOX" );
|
||||||
|
o->add( "FLAT_BOX" );
|
||||||
|
o->add( "ROUNDED_BOX" );
|
||||||
|
o->add( "OVAL_BOX" );
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
Fl_Scalepack *o = new Fl_Scalepack( 0, 24, 800, 600 - 24 );
|
||||||
|
o->type( 0 );
|
||||||
|
|
||||||
|
{
|
||||||
|
PerfTest *o = new PerfTest( 0,0, 800, 400, "Xlib" );
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
PerfTest *o = new PerfTest( 0,0, 800, 400, "Cairo" );
|
||||||
|
o->use_cairo = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
o->end();
|
||||||
|
}
|
||||||
|
|
||||||
|
w->end();
|
||||||
|
w->show();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* { */
|
||||||
|
/* Fl_Single_Window *w = new Fl_Single_Window( 800, 600 ); */
|
||||||
|
|
||||||
|
/* PerfTest *o = new PerfTest( 0,0, 800, 600 ); */
|
||||||
|
|
||||||
|
/* w->end(); */
|
||||||
|
/* w->show(); */
|
||||||
|
/* } */
|
||||||
|
|
||||||
|
Fl::run();
|
||||||
|
}
|
21
Makefile
|
@ -17,16 +17,25 @@
|
||||||
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #
|
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
SUBDIRS=nonlib FL timeline mixer session-manager
|
SUBDIRS=lib nonlib FL timeline mixer session-manager sequencer
|
||||||
|
|
||||||
all:
|
all: lib/ntk/configure lib/.built .config
|
||||||
@ for dir in $(SUBDIRS); do $(MAKE) -s -C $$dir; done
|
@ for dir in $(SUBDIRS); do echo Building $$dir; $(MAKE) -s -C $$dir; done
|
||||||
|
|
||||||
|
lib/ntk/configure:
|
||||||
|
@ git submodule update --init
|
||||||
|
|
||||||
|
lib/.built:
|
||||||
|
@ make -C lib
|
||||||
|
|
||||||
|
.config: configure
|
||||||
|
./configure
|
||||||
|
|
||||||
|
config: configure
|
||||||
|
./configure
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
@ for dir in $(SUBDIRS); do $(MAKE) -s -C $$dir clean; done
|
@ for dir in $(SUBDIRS); do $(MAKE) -s -C $$dir clean; done
|
||||||
|
|
||||||
install:
|
install:
|
||||||
@ for dir in $(SUBDIRS); do $(MAKE) -s -C $$dir install; done
|
@ for dir in $(SUBDIRS); do $(MAKE) -s -C $$dir install; done
|
||||||
|
|
||||||
config:
|
|
||||||
@ for dir in $(SUBDIRS); do $(MAKE) -s -C $$dir config; done
|
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
|
||||||
|
This repository contains all of the non-* software.
|
||||||
|
|
||||||
|
To build it, just type 'make'. Stuff will happen. Eventually, you'll
|
||||||
|
have to answer some build questions. Just answer them. Don't make
|
||||||
|
things harder on yourself by trying to build everything
|
||||||
|
individually. Just type 'make'. I'm serious. It's that simple.
|
|
@ -0,0 +1,59 @@
|
||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# Copyright (C) 2008 Jonathan Moore Liles
|
||||||
|
# This file is licensed under version 2 of the GPL.
|
||||||
|
|
||||||
|
. scripts/config-funcs
|
||||||
|
|
||||||
|
begin
|
||||||
|
|
||||||
|
begin_options
|
||||||
|
|
||||||
|
echo "Master configuration"
|
||||||
|
|
||||||
|
ask "Installation prefix" prefix /usr/local
|
||||||
|
ask "Build for debugging" USE_DEBUG no
|
||||||
|
|
||||||
|
begin_tests
|
||||||
|
|
||||||
|
# should require everything all of the subprojects require
|
||||||
|
|
||||||
|
require_command ar ar
|
||||||
|
require_command makedepend makedepend
|
||||||
|
require_FLTK 1.3.0 images
|
||||||
|
require_command FLUID lib/ntk/fluid/fluid
|
||||||
|
require_package JACK 0.103.0 jack
|
||||||
|
test_version `version_of jack` 0.105.0 || append "JACK_MIDI_PROTO_API=yes"
|
||||||
|
require_package sndfile 1.0.17 sndfile
|
||||||
|
require_package lrdf 0.4.0 lrdf
|
||||||
|
require_package liblo 0.23 liblo
|
||||||
|
suggest_package XPM 2.0.0 xpm
|
||||||
|
require_package sigcpp 2.0.0 sigc++-2.0
|
||||||
|
|
||||||
|
test_version `version_of liblo` 0.26 || warn "Version $(version_of liblo) of liblo is slow to create servers. Consider upgrading to 0.26 or later"
|
||||||
|
|
||||||
|
if ! hostname_resolvable
|
||||||
|
then
|
||||||
|
echo "Your hostname \"$(hostname)\" does not resolve to a valid address."
|
||||||
|
echo "This is a broken configuration and will cause liblo (the"
|
||||||
|
echo "OSC library) to fail to function. Add the line:"
|
||||||
|
echo
|
||||||
|
echo "127.0.0.1 $(hostname)"
|
||||||
|
echo
|
||||||
|
echo "to your /etc/hosts file to fix. And consider switching to a saner distribution."
|
||||||
|
echo
|
||||||
|
fail "Invalid hostname!"
|
||||||
|
fi
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
# installing configuration
|
||||||
|
echo -n "Copying configuration to modules..."
|
||||||
|
|
||||||
|
for i in nonlib FL timeline mixer sequencer session-manager
|
||||||
|
do
|
||||||
|
echo -n "$i "
|
||||||
|
cp .config "$i"
|
||||||
|
done
|
||||||
|
|
||||||
|
echo
|
|
@ -0,0 +1,21 @@
|
||||||
|
|
||||||
|
OBJS:= ntk/lib/libntk.a ntk/lib/libntk_images.a
|
||||||
|
SRCS:= $(wildcard ntk/src/*.cxx ntk/FL/*.H)
|
||||||
|
|
||||||
|
$(SRCS): ntk/config.h
|
||||||
|
@ echo Building NTK
|
||||||
|
$(MAKE) -C ntk
|
||||||
|
@ touch .built
|
||||||
|
|
||||||
|
$(OBJS): $(SRCS)
|
||||||
|
|
||||||
|
ntk/config.h: Makefile
|
||||||
|
@ echo Configuring NTK
|
||||||
|
cd ntk && ./configure --prefix=/usr/local --enable-debug --enable-shared --disable-gl --enable-threads --enable-xft --enable-cairo --enable-cairoext --enable-xinerama
|
||||||
|
@ touch ntk/config.h
|
||||||
|
|
||||||
|
config: ntk/config.h
|
||||||
|
|
||||||
|
clean:
|
||||||
|
|
||||||
|
all: $(OBJS)
|
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit 41d4f68b3b9f9526cb4e31a060042936d542595e
|
|
@ -14,14 +14,13 @@ ask "Build for debugging" USE_DEBUG no
|
||||||
|
|
||||||
begin_tests
|
begin_tests
|
||||||
|
|
||||||
require_FLTK 1.1.7 images
|
|
||||||
require_command FLUID fluid
|
|
||||||
require_command ar ar
|
require_command ar ar
|
||||||
require_command makedepend makedepend
|
require_command makedepend makedepend
|
||||||
|
require_FLTK 1.3.0 images
|
||||||
|
require_command FLUID lib/ntk/fluid/fluid
|
||||||
require_package JACK 0.103.0 jack
|
require_package JACK 0.103.0 jack
|
||||||
require_package lrdf 0.4.0 lrdf
|
require_package lrdf 0.4.0 lrdf
|
||||||
require_package liblo 0.23 liblo
|
require_package liblo 0.23 liblo
|
||||||
require_package sigcpp 2.0.0 sigc++-2.0
|
|
||||||
suggest_package XPM 2.0.0 xpm
|
suggest_package XPM 2.0.0 xpm
|
||||||
|
|
||||||
test_version `version_of liblo` 0.26 || warn "Version $(version_of liblo) of liblo is slow to create servers. Consider upgrading to 0.26 or later"
|
test_version `version_of liblo` 0.26 || warn "Version $(version_of liblo) of liblo is slow to create servers. Consider upgrading to 0.26 or later"
|
||||||
|
|
|
@ -17,8 +17,8 @@ upload: all
|
||||||
@ rm -f index.html
|
@ rm -f index.html
|
||||||
|
|
||||||
install:
|
install:
|
||||||
@ mkdir -p $(DOCUMENT_PATH)/non-mixer
|
@ install -d "$(DESTDIR)$(DOCUMENT_PATH)"/non-mixer
|
||||||
@ cp $(OBJS) *.png mup.css ../../COPYING $(DOCUMENT_PATH)/non-mixer
|
@ cp $(OBJS) *.png mup.css ../../COPYING "$(DESTDIR)$(DOCUMENT_PATH)"/non-mixer
|
||||||
# @ ln -sf $(PIXMAP_PATH)/logo.png $(DOCUMENT_PATH)
|
# @ ln -sf $(PIXMAP_PATH)/logo.png $(DOCUMENT_PATH)
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
|
|
|
@ -12,26 +12,27 @@ SRCS:=$(SRCS:.fl=.C)
|
||||||
SRCS:=$(sort $(SRCS))
|
SRCS:=$(sort $(SRCS))
|
||||||
OBJS:=$(SRCS:.C=.o)
|
OBJS:=$(SRCS:.C=.o)
|
||||||
|
|
||||||
LIBS := $(FLTK_LIBS) $(JACK_LIBS) $(LASH_LIBS) $(LRDF_LIBS) $(LIBLO_LIBS) $(SIGCPP_LIBS) $(XPM_LIBS)
|
LIBS += $(FLTK_LDFLAGS) $(JACK_LIBS) $(LRDF_LIBS) $(LIBLO_LIBS) $(XPM_LIBS)
|
||||||
|
|
||||||
CFLAGS := $(FLTK_CFLAGS) $(JACK_CFLAGS) $(LIBLO_CFLAGS) $(SIGCPP_CFLAGS) $(XPM_CFLAGS)
|
CFLAGS += $(FLTK_CFLAGS) $(JACK_CFLAGS) $(LRDF_CFLAGS) $(LIBLO_CFLAGS) $(XPM_CFLAGS)
|
||||||
|
|
||||||
src/mixer: $(OBJS) FL/libfl_widgets.a nonlib/libnonlib.a
|
src/mixer: $(OBJS) FL/libfl_widgets.a nonlib/libnonlib.a $(FLTK_LIBS)
|
||||||
@ echo -n Linking mixer...
|
@ echo -n Linking mixer...
|
||||||
@ $(CXX) $(CXXFLAGS) $(LIBS) $(OBJS) -o $@ -LFL -lfl_widgets -Lnonlib -lnonlib -ldl && echo $(DONE)
|
@ $(CXX) $(CXXFLAGS) $^ -o $@ $(LIBS) -LFL -lfl_widgets -Lnonlib -lnonlib -ldl && echo $(DONE)
|
||||||
|
|
||||||
Mixer: src/mixer
|
Mixer: src/mixer
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f $(OBJS) src/mixer
|
rm -f $(OBJS) src/mixer .deps
|
||||||
|
|
||||||
install: all
|
install: all
|
||||||
@ echo -n "Installing..."
|
@ echo -n "Installing..."
|
||||||
@ install src/mixer "$(DESTDIR)$(prefix)"/bin/non-mixer
|
@ install -Dm755 src/mixer "$(DESTDIR)$(prefix)"/bin/non-mixer
|
||||||
@ mkdir -p "$(DESTDIR)$(SYSTEM_PATH)"/non-mixer
|
@ ln -s "$(DESTDIR)$(prefix)"/bin/non-mixer "$(DESTDIR)$(prefix)"/bin/non-mixer-noui
|
||||||
|
@ install -d "$(DESTDIR)$(SYSTEM_PATH)"/non-mixer
|
||||||
@ $(MAKE) -s -C doc install
|
@ $(MAKE) -s -C doc install
|
||||||
@ install -d "$(DESTDIR)$(PIXMAP_PATH)/non-mixer"
|
@ install -d "$(DESTDIR)$(PIXMAP_PATH)/non-mixer"
|
||||||
@ install -m 644 icons/hicolor/256x256/apps/non-mixer.png "$(DESTDIR)$(PIXMAP_PATH)"/non-mixer/icon-256x256.png
|
@ install -Dm644 icons/hicolor/256x256/apps/non-mixer.png "$(DESTDIR)$(PIXMAP_PATH)"/non-mixer/icon-256x256.png
|
||||||
@ install -d "$(DESTDIR)$(ICON_PATH)/hicolor"
|
@ install -d "$(DESTDIR)$(ICON_PATH)/hicolor"
|
||||||
@ cp -au icons/hicolor/ "$(DESTDIR)$(ICON_PATH)"
|
@ cp -au icons/hicolor/ "$(DESTDIR)$(ICON_PATH)"
|
||||||
@ install -d "$(DESTDIR)$(DESKTOP_PATH)"
|
@ install -d "$(DESTDIR)$(DESKTOP_PATH)"
|
||||||
|
@ -39,6 +40,6 @@ install: all
|
||||||
@ echo "$(DONE)"
|
@ echo "$(DONE)"
|
||||||
ifneq ($(USE_DEBUG),yes)
|
ifneq ($(USE_DEBUG),yes)
|
||||||
@ echo -n "Stripping..."
|
@ echo -n "Stripping..."
|
||||||
@ strip $(DESTDIR)$(prefix)/bin/non-mixer
|
@ strip "$(DESTDIR)$(prefix)"/bin/non-mixer
|
||||||
@ echo "$(DONE)"
|
@ echo "$(DONE)"
|
||||||
endif
|
endif
|
||||||
|
|
|
@ -293,6 +293,25 @@ void Chain::cb_handle(Fl_Widget* o, void* v) {
|
||||||
((Chain*)(v))->cb_handle(o);
|
((Chain*)(v))->cb_handle(o);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
Chain::remove ( Controller_Module *m )
|
||||||
|
{
|
||||||
|
DMESSAGE( "Removing controller module from chain" );
|
||||||
|
|
||||||
|
engine()->lock();
|
||||||
|
|
||||||
|
m->disconnect();
|
||||||
|
|
||||||
|
controls_pack->remove( m );
|
||||||
|
modules_pack->remove( m );
|
||||||
|
|
||||||
|
build_process_queue();
|
||||||
|
|
||||||
|
engine()->unlock();
|
||||||
|
|
||||||
|
redraw();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* remove a module from the chain. this isn't guaranteed to succeed,
|
/* remove a module from the chain. this isn't guaranteed to succeed,
|
||||||
* because removing the module might result in an invalid routing */
|
* because removing the module might result in an invalid routing */
|
||||||
|
@ -311,11 +330,15 @@ Chain::remove ( Module *m )
|
||||||
fl_alert( "Can't remove module at this point because the resultant chain is invalid" );
|
fl_alert( "Can't remove module at this point because the resultant chain is invalid" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
engine()->lock();
|
||||||
|
|
||||||
strip()->handle_module_removed( m );
|
strip()->handle_module_removed( m );
|
||||||
|
|
||||||
modules_pack->remove( m );
|
modules_pack->remove( m );
|
||||||
|
|
||||||
configure_ports();
|
configure_ports();
|
||||||
|
|
||||||
|
engine()->unlock();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* determine number of output ports, signal if changed. */
|
/* determine number of output ports, signal if changed. */
|
||||||
|
@ -363,14 +386,9 @@ Chain::get_module_instance_number ( Module *m )
|
||||||
{
|
{
|
||||||
int n = 0;
|
int n = 0;
|
||||||
|
|
||||||
for ( int i = 0; i < modules(); ++i )
|
for ( int i = 0; i < modules() && module(i) != m; ++i )
|
||||||
{
|
if ( ! strcmp( module(i)->label(), m->label() ) )
|
||||||
if ( module(i) == m )
|
|
||||||
break;
|
|
||||||
|
|
||||||
if ( ! strcmp( module(i)->name(), m->name() ) )
|
|
||||||
n++;
|
n++;
|
||||||
}
|
|
||||||
|
|
||||||
return n;
|
return n;
|
||||||
}
|
}
|
||||||
|
|
|
@ -101,6 +101,7 @@ public:
|
||||||
|
|
||||||
int modules ( void ) const { return modules_pack->children(); }
|
int modules ( void ) const { return modules_pack->children(); }
|
||||||
Module *module ( int n ) const { return (Module*)modules_pack->child( n ); }
|
Module *module ( int n ) const { return (Module*)modules_pack->child( n ); }
|
||||||
|
void remove ( Controller_Module *m );
|
||||||
void remove ( Module *m );
|
void remove ( Module *m );
|
||||||
bool add ( Module *m );
|
bool add ( Module *m );
|
||||||
bool add ( Controller_Module *m );
|
bool add ( Controller_Module *m );
|
||||||
|
|
|
@ -30,9 +30,8 @@
|
||||||
#include <FL/Fl_Menu_Button.H>
|
#include <FL/Fl_Menu_Button.H>
|
||||||
#include <FL/Fl_Menu_.H>
|
#include <FL/Fl_Menu_.H>
|
||||||
#include <FL/Fl_Light_Button.H>
|
#include <FL/Fl_Light_Button.H>
|
||||||
#include "FL/Crystal_Boxtypes.H"
|
|
||||||
#include <FL/fl_draw.H>
|
#include <FL/fl_draw.H>
|
||||||
#include "FL/Fl_Arc_Dial.H"
|
#include "FL/Fl_Dial.H"
|
||||||
#include "FL/Fl_Labelpad_Group.H"
|
#include "FL/Fl_Labelpad_Group.H"
|
||||||
#include "FL/Fl_Value_SliderX.H"
|
#include "FL/Fl_Value_SliderX.H"
|
||||||
#include "Panner.H"
|
#include "Panner.H"
|
||||||
|
@ -92,6 +91,17 @@ Controller_Module::handle_chain_name_changed()
|
||||||
// change_osc_path( generate_osc_path() );
|
// change_osc_path( generate_osc_path() );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
Controller_Module::disconnect ( void )
|
||||||
|
{
|
||||||
|
for ( std::vector<Module::Port>::iterator i = control_output.begin();
|
||||||
|
i != control_output.end();
|
||||||
|
++i )
|
||||||
|
{
|
||||||
|
(*i).disconnect();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -100,11 +110,21 @@ Controller_Module::get ( Log_Entry &e ) const
|
||||||
Module::get( e );
|
Module::get( e );
|
||||||
|
|
||||||
Port *p = control_output[0].connected_port();
|
Port *p = control_output[0].connected_port();
|
||||||
|
|
||||||
|
if ( !p )
|
||||||
|
{
|
||||||
|
e.add( ":module", "" );
|
||||||
|
e.add( ":port", "" );
|
||||||
|
e.add( ":mode", "" );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
Module *m = p->module();
|
Module *m = p->module();
|
||||||
|
|
||||||
e.add( ":module", m );
|
e.add( ":module", m );
|
||||||
e.add( ":port", m->control_input_port_index( p ) );
|
e.add( ":port", m->control_input_port_index( p ) );
|
||||||
e.add( ":mode", mode() );
|
e.add( ":mode", mode() );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -361,7 +381,7 @@ Controller_Module::connect_to ( Port *p )
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
{ Fl_Arc_Dial *o = new Fl_Arc_Dial( 0, 0, 50, 50, p->name() );
|
{ Fl_Dial *o = new Fl_Dial( 0, 0, 50, 50, p->name() );
|
||||||
w = o;
|
w = o;
|
||||||
control = o;
|
control = o;
|
||||||
|
|
||||||
|
@ -486,6 +506,8 @@ Controller_Module::menu_cb ( const Fl_Menu_ *m )
|
||||||
mode( GUI );
|
mode( GUI );
|
||||||
else if ( ! strcmp( picked, "Mode/Control Voltage (JACK)" ) )
|
else if ( ! strcmp( picked, "Mode/Control Voltage (JACK)" ) )
|
||||||
mode( CV );
|
mode( CV );
|
||||||
|
else if ( ! strcmp( picked, "/Remove" ) )
|
||||||
|
command_remove();
|
||||||
}
|
}
|
||||||
|
|
||||||
/** build the context menu for this control */
|
/** build the context menu for this control */
|
||||||
|
@ -500,6 +522,7 @@ Controller_Module::menu ( void )
|
||||||
{ "GUI + OSC", 0, 0, 0, FL_MENU_RADIO | ( mode() == GUI ? FL_MENU_VALUE : 0 ) },
|
{ "GUI + OSC", 0, 0, 0, FL_MENU_RADIO | ( mode() == GUI ? FL_MENU_VALUE : 0 ) },
|
||||||
{ "Control Voltage (JACK)", 0, 0, 0, FL_MENU_RADIO | ( mode() == CV ? FL_MENU_VALUE : 0 ) },
|
{ "Control Voltage (JACK)", 0, 0, 0, FL_MENU_RADIO | ( mode() == CV ? FL_MENU_VALUE : 0 ) },
|
||||||
{ 0 },
|
{ 0 },
|
||||||
|
{ "Remove", 0, 0, 0, 0 },
|
||||||
{ 0 },
|
{ 0 },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -570,6 +593,18 @@ Controller_Module::handle_control_changed ( Port *p )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
Controller_Module::command_remove ( void )
|
||||||
|
{
|
||||||
|
if ( is_default() )
|
||||||
|
fl_alert( "Default modules may not be deleted." );
|
||||||
|
else
|
||||||
|
{
|
||||||
|
chain()->remove( this );
|
||||||
|
Fl::delete_widget( this );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**********/
|
/**********/
|
||||||
/* Engine */
|
/* Engine */
|
||||||
/**********/
|
/**********/
|
||||||
|
|
|
@ -78,10 +78,13 @@ public:
|
||||||
|
|
||||||
void connect_to ( Port *p );
|
void connect_to ( Port *p );
|
||||||
bool connect_spatializer_to ( Module *m );
|
bool connect_spatializer_to ( Module *m );
|
||||||
|
void disconnect ( void );
|
||||||
|
|
||||||
void handle_control_changed ( Port *p );
|
void handle_control_changed ( Port *p );
|
||||||
void handle_chain_name_changed ( void );
|
void handle_chain_name_changed ( void );
|
||||||
|
|
||||||
|
virtual void command_remove ( void );
|
||||||
|
|
||||||
LOG_CREATE_FUNC( Controller_Module );
|
LOG_CREATE_FUNC( Controller_Module );
|
||||||
|
|
||||||
void process ( nframes_t nframes );
|
void process ( nframes_t nframes );
|
||||||
|
|
|
@ -55,7 +55,7 @@ DPM::DPM ( int X, int Y, int W, int H, const char *L ) :
|
||||||
if ( DPM::_gradient[ 0 ] == 0 )
|
if ( DPM::_gradient[ 0 ] == 0 )
|
||||||
DPM::blend( FL_GREEN, FL_RED );
|
DPM::blend( FL_GREEN, FL_RED );
|
||||||
|
|
||||||
box( FL_ROUNDED_BOX );
|
box( FL_FLAT_BOX );
|
||||||
color( FL_BACKGROUND_COLOR );
|
color( FL_BACKGROUND_COLOR );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -114,6 +114,8 @@ DPM::resize ( int X, int Y, int W, int H )
|
||||||
void
|
void
|
||||||
DPM::draw ( void )
|
DPM::draw ( void )
|
||||||
{
|
{
|
||||||
|
if ( !_segments )
|
||||||
|
return;
|
||||||
|
|
||||||
snprintf( peak_string, sizeof( peak_string ), "%.1f", peak() );
|
snprintf( peak_string, sizeof( peak_string ), "%.1f", peak() );
|
||||||
tooltip( peak_string );
|
tooltip( peak_string );
|
||||||
|
@ -129,6 +131,8 @@ DPM::draw ( void )
|
||||||
int v = pos( value() );
|
int v = pos( value() );
|
||||||
int pv = pos( peak() );
|
int pv = pos( peak() );
|
||||||
|
|
||||||
|
int clipv = pos( 0 );
|
||||||
|
|
||||||
int bh = h() / _segments;
|
int bh = h() / _segments;
|
||||||
int bw = w() / _segments;
|
int bw = w() / _segments;
|
||||||
|
|
||||||
|
@ -170,10 +174,14 @@ DPM::draw ( void )
|
||||||
|
|
||||||
for ( int p = lo; p <= hi; p++ )
|
for ( int p = lo; p <= hi; p++ )
|
||||||
{
|
{
|
||||||
Fl_Color c = DPM::div_color( p );
|
Fl_Color c;
|
||||||
|
|
||||||
if ( p > v && p != pv )
|
if ( p > v && p != pv )
|
||||||
c = dim_div_color( p );
|
c = dim_div_color( p );
|
||||||
|
else if ( p != clipv )
|
||||||
|
c = div_color( p );
|
||||||
|
else
|
||||||
|
c = fl_color_average( FL_YELLOW, div_color( p ), 0.40 );
|
||||||
|
|
||||||
if ( ! active )
|
if ( ! active )
|
||||||
c = fl_inactive( c );
|
c = fl_inactive( c );
|
||||||
|
|
|
@ -27,9 +27,8 @@
|
||||||
#include <FL/fl_draw.H>
|
#include <FL/fl_draw.H>
|
||||||
#include <FL/Fl_Counter.H>
|
#include <FL/Fl_Counter.H>
|
||||||
#include <FL/Fl_Light_Button.H>
|
#include <FL/Fl_Light_Button.H>
|
||||||
#include "FL/Crystal_Boxtypes.H"
|
|
||||||
|
|
||||||
#include "FL/Fl_Arc_Dial.H"
|
#include "FL/Fl_Dial.H"
|
||||||
#include "FL/Fl_Labelpad_Group.H"
|
#include "FL/Fl_Labelpad_Group.H"
|
||||||
#include "FL/Fl_Scalepack.H"
|
#include "FL/Fl_Scalepack.H"
|
||||||
|
|
||||||
|
@ -49,7 +48,7 @@ Meter_Indicator_Module::Meter_Indicator_Module ( bool is_default )
|
||||||
: Module ( is_default, 50, 100, name() )
|
: Module ( is_default, 50, 100, name() )
|
||||||
{
|
{
|
||||||
box( FL_FLAT_BOX );
|
box( FL_FLAT_BOX );
|
||||||
color( FL_GREEN );
|
color( FL_BACKGROUND_COLOR );
|
||||||
|
|
||||||
_pad = true;
|
_pad = true;
|
||||||
control_value = 0;
|
control_value = 0;
|
||||||
|
@ -57,6 +56,8 @@ Meter_Indicator_Module::Meter_Indicator_Module ( bool is_default )
|
||||||
add_port( Port( this, Port::INPUT, Port::CONTROL ) );
|
add_port( Port( this, Port::INPUT, Port::CONTROL ) );
|
||||||
|
|
||||||
dpm_pack = new Fl_Scalepack( x(), y(), w(), h() );
|
dpm_pack = new Fl_Scalepack( x(), y(), w(), h() );
|
||||||
|
dpm_pack->color( FL_BACKGROUND_COLOR );
|
||||||
|
dpm_pack->box( FL_FLAT_BOX );
|
||||||
dpm_pack->type( FL_HORIZONTAL );
|
dpm_pack->type( FL_HORIZONTAL );
|
||||||
|
|
||||||
end();
|
end();
|
||||||
|
|
|
@ -192,11 +192,7 @@ get_peak_sample ( const sample_t* buf, nframes_t nframes )
|
||||||
|
|
||||||
for ( int j = nframes; j--; ++f )
|
for ( int j = nframes; j--; ++f )
|
||||||
{
|
{
|
||||||
float s = *f;
|
const float s = fabs( *f );
|
||||||
|
|
||||||
/* rectify */
|
|
||||||
if ( s < 0.0f )
|
|
||||||
s = 0 - s;
|
|
||||||
|
|
||||||
if ( s > p )
|
if ( s > p )
|
||||||
p = s;
|
p = s;
|
||||||
|
@ -212,7 +208,8 @@ Meter_Module::process ( nframes_t nframes )
|
||||||
{
|
{
|
||||||
if ( audio_input[i].connected() )
|
if ( audio_input[i].connected() )
|
||||||
{
|
{
|
||||||
float dB = 20 * log10( get_peak_sample( (float*)audio_input[i].buffer(), nframes ) / 2.0f );
|
// float dB = 20 * log10( get_peak_sample( (float*)audio_input[i].buffer(), nframes ) / 2.0f );
|
||||||
|
float dB = 20 * log10( get_peak_sample( (float*)audio_input[i].buffer(), nframes ) );
|
||||||
|
|
||||||
((float*)control_output[0].buffer())[i] = dB;
|
((float*)control_output[0].buffer())[i] = dB;
|
||||||
control_value[i] = dB;
|
control_value[i] = dB;
|
||||||
|
|
|
@ -35,6 +35,7 @@
|
||||||
#include "FL/Fl_Menu_Settings.H"
|
#include "FL/Fl_Menu_Settings.H"
|
||||||
#include "About_Dialog.H"
|
#include "About_Dialog.H"
|
||||||
#include <FL/Fl_File_Chooser.H>
|
#include <FL/Fl_File_Chooser.H>
|
||||||
|
#include "FL/Fl_Theme_Chooser.H"
|
||||||
|
|
||||||
#include "file.h"
|
#include "file.h"
|
||||||
|
|
||||||
|
@ -44,17 +45,11 @@
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
|
||||||
#include "FL/Fl_Value_SliderX.H"
|
#include "FL/Fl_Value_SliderX.H"
|
||||||
#include "FL/color_scheme.H"
|
|
||||||
#include "OSC/Endpoint.H"
|
#include "OSC/Endpoint.H"
|
||||||
#include <lo/lo.h>
|
#include <lo/lo.h>
|
||||||
#include "FL/Fl_Blinker.H"
|
|
||||||
|
|
||||||
#include "OSC/Endpoint.H"
|
|
||||||
|
|
||||||
const double STATUS_UPDATE_FREQ = 0.2f;
|
const double STATUS_UPDATE_FREQ = 0.2f;
|
||||||
|
|
||||||
const double OSC_INTERVAL = 1.0 / 20.0; /* 20 hz */
|
|
||||||
|
|
||||||
extern char *user_config_dir;
|
extern char *user_config_dir;
|
||||||
extern char *instance_name;
|
extern char *instance_name;
|
||||||
|
|
||||||
|
@ -89,8 +84,11 @@ static int osc_add_strip ( const char *path, const char *, lo_arg **, int , lo_m
|
||||||
{
|
{
|
||||||
OSC_DMSG();
|
OSC_DMSG();
|
||||||
|
|
||||||
|
Fl::lock();
|
||||||
((Mixer*)(OSC_ENDPOINT())->owner)->command_add_strip();
|
((Mixer*)(OSC_ENDPOINT())->owner)->command_add_strip();
|
||||||
|
|
||||||
|
Fl::unlock();
|
||||||
|
|
||||||
OSC_REPLY_OK();
|
OSC_REPLY_OK();
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -102,8 +100,15 @@ Mixer::reply_to_finger ( lo_message msg )
|
||||||
int argc = lo_message_get_argc( msg );
|
int argc = lo_message_get_argc( msg );
|
||||||
lo_arg **argv = lo_message_get_argv( msg );
|
lo_arg **argv = lo_message_get_argv( msg );
|
||||||
|
|
||||||
if ( argc < 1 )
|
if ( argc >= 4 )
|
||||||
return;
|
{
|
||||||
|
const char *url = &argv[0]->s;
|
||||||
|
const char *name = &argv[1]->s;
|
||||||
|
const char *version = &argv[2]->s;
|
||||||
|
const char *id = &argv[3]->s;
|
||||||
|
|
||||||
|
MESSAGE( "Discovered NON peer %s (%s) @ %s with ID \"%s\"", name, version, url, id );
|
||||||
|
MESSAGE( "Registering Signals" );
|
||||||
|
|
||||||
lo_address to = lo_address_new_from_url( &argv[0]->s );
|
lo_address to = lo_address_new_from_url( &argv[0]->s );
|
||||||
|
|
||||||
|
@ -114,7 +119,10 @@ Mixer::reply_to_finger ( lo_message msg )
|
||||||
VERSION,
|
VERSION,
|
||||||
instance_name );
|
instance_name );
|
||||||
|
|
||||||
|
mixer->osc_endpoint->hello( url );
|
||||||
|
|
||||||
lo_address_free( to );
|
lo_address_free( to );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -273,51 +281,23 @@ void Mixer::cb_menu(Fl_Widget* o) {
|
||||||
{
|
{
|
||||||
rows( 3 );
|
rows( 3 );
|
||||||
}
|
}
|
||||||
else if (! strcmp( picked, "&Options/&Display/&Style/&Default") )
|
else if (! strcmp( picked, "&View/&Theme") )
|
||||||
{
|
{
|
||||||
Fl::scheme( "gtk+" );
|
fl_theme_chooser();
|
||||||
}
|
|
||||||
else if (! strcmp( picked, "&Options/&Display/&Style/&Flat") )
|
|
||||||
{
|
|
||||||
Fl::scheme( "gtk+" );
|
|
||||||
}
|
|
||||||
else if (! strcmp( picked, "&Options/&Display/&Style/&Round") )
|
|
||||||
{
|
|
||||||
Fl::scheme( "plastic" );
|
|
||||||
}
|
|
||||||
else if (! strcmp( picked, "&Options/&Display/&Colors/&System") )
|
|
||||||
{
|
|
||||||
color_scheme( "system" );
|
|
||||||
}
|
|
||||||
else if (! strcmp( picked, "&Options/&Display/&Colors/&Dark") )
|
|
||||||
{
|
|
||||||
color_scheme( "dark" );
|
|
||||||
}
|
|
||||||
else if (! strcmp( picked, "&Options/&Display/&Colors/&Very Dark") )
|
|
||||||
{
|
|
||||||
color_scheme( "very dark" );
|
|
||||||
}
|
|
||||||
else if (! strcmp( picked, "&Options/&Display/&Colors/&Light") )
|
|
||||||
{
|
|
||||||
color_scheme( "light" );
|
|
||||||
}
|
|
||||||
else if (! strcmp( picked, "&Options/&Display/&Colors/&Gray") )
|
|
||||||
{
|
|
||||||
color_scheme( "gray" );
|
|
||||||
}
|
}
|
||||||
else if (! strcmp( picked, "&Options/&Display/&Knobs/&Burnished") )
|
else if (! strcmp( picked, "&Options/&Display/&Knobs/&Burnished") )
|
||||||
{
|
{
|
||||||
Fl_Arc_Dial::default_style( Fl_Arc_Dial::BURNISHED_DIAL );
|
Fl_Dial::default_style( Fl_Dial::BURNISHED_DIAL );
|
||||||
redraw_windows();
|
redraw_windows();
|
||||||
}
|
}
|
||||||
else if (! strcmp( picked, "&Options/&Display/&Knobs/&Arc") )
|
else if (! strcmp( picked, "&Options/&Display/&Knobs/&Arc") )
|
||||||
{
|
{
|
||||||
Fl_Arc_Dial::default_style( Fl_Arc_Dial::ARC_DIAL );
|
Fl_Dial::default_style( Fl_Dial::ARC_DIAL );
|
||||||
redraw_windows();
|
redraw_windows();
|
||||||
}
|
}
|
||||||
else if (! strcmp( picked, "&Options/&Display/&Knobs/&Plastic") )
|
else if (! strcmp( picked, "&Options/&Display/&Knobs/&Plastic") )
|
||||||
{
|
{
|
||||||
Fl_Arc_Dial::default_style( Fl_Arc_Dial::PLASTIC_DIAL );
|
Fl_Dial::default_style( Fl_Dial::PLASTIC_DIAL );
|
||||||
redraw_windows();
|
redraw_windows();
|
||||||
}
|
}
|
||||||
else if (! strcmp( picked, "&Options/&Display/&Sliders/&Nice") )
|
else if (! strcmp( picked, "&Options/&Display/&Sliders/&Nice") )
|
||||||
|
@ -377,16 +357,13 @@ void Mixer::cb_menu(Fl_Widget* o, void* v) {
|
||||||
Mixer::Mixer ( int X, int Y, int W, int H, const char *L ) :
|
Mixer::Mixer ( int X, int Y, int W, int H, const char *L ) :
|
||||||
Fl_Group( X, Y, W, H, L )
|
Fl_Group( X, Y, W, H, L )
|
||||||
{
|
{
|
||||||
get_system_colors();
|
|
||||||
|
|
||||||
Fl::scheme( "plastic" );
|
|
||||||
color_scheme( "dark" );
|
|
||||||
|
|
||||||
Loggable::dirty_callback( &Mixer::handle_dirty, this );
|
Loggable::dirty_callback( &Mixer::handle_dirty, this );
|
||||||
|
|
||||||
_rows = 1;
|
_rows = 1;
|
||||||
box( FL_NO_BOX );
|
box( FL_FLAT_BOX );
|
||||||
labelsize( 96 );
|
labelsize( 96 );
|
||||||
|
{ Fl_Group *o = new Fl_Group( X, Y, W, 24 );
|
||||||
|
|
||||||
{ Fl_Menu_Bar *o = menubar = new Fl_Menu_Bar( X, Y, W, 24 );
|
{ Fl_Menu_Bar *o = menubar = new Fl_Menu_Bar( X, Y, W, 24 );
|
||||||
o->add( "&Project/&New" );
|
o->add( "&Project/&New" );
|
||||||
o->add( "&Project/&Open" );
|
o->add( "&Project/&Open" );
|
||||||
|
@ -398,14 +375,7 @@ Mixer::Mixer ( int X, int Y, int W, int H, const char *L ) :
|
||||||
o->add( "&Mixer/&Rows/One", '1', 0, 0 );
|
o->add( "&Mixer/&Rows/One", '1', 0, 0 );
|
||||||
o->add( "&Mixer/&Rows/Two", '2', 0, 0 );
|
o->add( "&Mixer/&Rows/Two", '2', 0, 0 );
|
||||||
o->add( "&Mixer/&Rows/Three", '3', 0, 0 );
|
o->add( "&Mixer/&Rows/Three", '3', 0, 0 );
|
||||||
o->add( "_&Options/&Display/&Style/&Default", 0, 0, 0, FL_MENU_RADIO | FL_MENU_VALUE );
|
o->add( "&View/&Theme", 0, 0, 0 );
|
||||||
o->add( "_&Options/&Display/&Style/&Flat", 0, 0, 0, FL_MENU_RADIO );
|
|
||||||
o->add( "_&Options/&Display/&Style/&Round", 0, 0, 0, FL_MENU_RADIO );
|
|
||||||
o->add( "_&Options/&Display/&Colors/&Dark", 0, 0, 0, FL_MENU_RADIO | FL_MENU_VALUE );
|
|
||||||
o->add( "_&Options/&Display/&Colors/&Very Dark", 0, 0, 0, FL_MENU_RADIO );
|
|
||||||
o->add( "_&Options/&Display/&Colors/&Light", 0, 0, 0, FL_MENU_RADIO );
|
|
||||||
o->add( "_&Options/&Display/&Colors/&Gray", 0, 0, 0, FL_MENU_RADIO );
|
|
||||||
o->add( "_&Options/&Display/&Colors/&System", 0, 0, 0, FL_MENU_RADIO );
|
|
||||||
o->add( "_&Options/&Display/&Knobs/&Arc", 0, 0, 0, FL_MENU_RADIO );
|
o->add( "_&Options/&Display/&Knobs/&Arc", 0, 0, 0, FL_MENU_RADIO );
|
||||||
o->add( "_&Options/&Display/&Knobs/&Burnished", 0, 0, 0, FL_MENU_RADIO );
|
o->add( "_&Options/&Display/&Knobs/&Burnished", 0, 0, 0, FL_MENU_RADIO );
|
||||||
o->add( "_&Options/&Display/&Knobs/&Plastic", 0, 0, 0, FL_MENU_RADIO | FL_MENU_VALUE );
|
o->add( "_&Options/&Display/&Knobs/&Plastic", 0, 0, 0, FL_MENU_RADIO | FL_MENU_VALUE );
|
||||||
|
@ -422,29 +392,33 @@ Mixer::Mixer ( int X, int Y, int W, int H, const char *L ) :
|
||||||
o->label( 0 );
|
o->label( 0 );
|
||||||
o->align( FL_ALIGN_INSIDE | FL_ALIGN_CENTER );
|
o->align( FL_ALIGN_INSIDE | FL_ALIGN_CENTER );
|
||||||
o->labeltype( FL_SHADOW_LABEL );
|
o->labeltype( FL_SHADOW_LABEL );
|
||||||
|
Fl_Group::current()->resizable( o );
|
||||||
}
|
}
|
||||||
{ sm_blinker = new Fl_Blinker( ( X + W) - 52, Y + 4, 50, 15, "SM");
|
{ sm_blinker = new Fl_Button( ( X + W) - 37, Y + 4, 35, 15, "SM");
|
||||||
sm_blinker->box(FL_ROUNDED_BOX);
|
sm_blinker->box(FL_ROUNDED_BOX);
|
||||||
sm_blinker->down_box(FL_ROUNDED_BOX);
|
sm_blinker->down_box(FL_ROUNDED_BOX);
|
||||||
sm_blinker->color((Fl_Color)75);
|
sm_blinker->color(FL_DARK2);
|
||||||
sm_blinker->selection_color((Fl_Color)86);
|
sm_blinker->selection_color((Fl_Color)93);
|
||||||
sm_blinker->labeltype(FL_NORMAL_LABEL);
|
sm_blinker->labeltype(FL_NORMAL_LABEL);
|
||||||
sm_blinker->labelfont(2);
|
sm_blinker->labelfont(3);
|
||||||
sm_blinker->labelsize(14);
|
sm_blinker->labelsize(14);
|
||||||
sm_blinker->labelcolor(FL_DARK3);
|
sm_blinker->labelcolor(FL_DARK3);
|
||||||
sm_blinker->align(Fl_Align(FL_ALIGN_CENTER));
|
sm_blinker->align(Fl_Align(FL_ALIGN_CENTER));
|
||||||
sm_blinker->when(FL_WHEN_RELEASE);
|
sm_blinker->when(FL_WHEN_RELEASE);
|
||||||
sm_blinker->deactivate();
|
sm_blinker->deactivate();
|
||||||
} // Fl_Blinker* sm_blinker
|
|
||||||
|
} // Fl_Blink_Button* sm_blinker
|
||||||
|
o->end();
|
||||||
|
}
|
||||||
{ Fl_Scroll *o = scroll = new Fl_Scroll( X, Y + 24, W, H - 24 );
|
{ Fl_Scroll *o = scroll = new Fl_Scroll( X, Y + 24, W, H - 24 );
|
||||||
o->box( FL_NO_BOX );
|
o->box( FL_FLAT_BOX );
|
||||||
// o->type( Fl_Scroll::HORIZONTAL_ALWAYS );
|
// o->type( Fl_Scroll::HORIZONTAL_ALWAYS );
|
||||||
// o->box( Fl_Scroll::BOTH );
|
// o->box( Fl_Scroll::BOTH );
|
||||||
{
|
{
|
||||||
Fl_Flowpack *o = mixer_strips = new Fl_Flowpack( X, Y + 24, W, H - 18 - 24 );
|
Fl_Flowpack *o = mixer_strips = new Fl_Flowpack( X, Y + 24, W, H - 18 - 24 );
|
||||||
label( "Non-Mixer" );
|
// label( "Non-Mixer" );
|
||||||
align( (Fl_Align)(FL_ALIGN_CENTER | FL_ALIGN_INSIDE) );
|
align( (Fl_Align)(FL_ALIGN_CENTER | FL_ALIGN_INSIDE) );
|
||||||
o->box( FL_NO_BOX );
|
o->box( FL_FLAT_BOX );
|
||||||
o->type( Fl_Pack::HORIZONTAL );
|
o->type( Fl_Pack::HORIZONTAL );
|
||||||
o->hspacing( 2 );
|
o->hspacing( 2 );
|
||||||
o->vspacing( 2 );
|
o->vspacing( 2 );
|
||||||
|
@ -478,21 +452,11 @@ Mixer::init_osc ( const char *osc_port )
|
||||||
|
|
||||||
osc_endpoint->add_method( "/non/mixer/add_strip", "", osc_add_strip, osc_endpoint, "" );
|
osc_endpoint->add_method( "/non/mixer/add_strip", "", osc_add_strip, osc_endpoint, "" );
|
||||||
|
|
||||||
// osc_endpoint->start();
|
osc_endpoint->start();
|
||||||
|
|
||||||
/* poll so we can keep OSC handlers running in the GUI thread and avoid extra sync */
|
|
||||||
Fl::add_timeout( OSC_INTERVAL, check_osc, this );
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
|
||||||
Mixer::check_osc ( void * v )
|
|
||||||
{
|
|
||||||
((Mixer*)v)->osc_endpoint->check();
|
|
||||||
Fl::repeat_timeout( OSC_INTERVAL, check_osc, v );
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
Mixer::~Mixer ( )
|
Mixer::~Mixer ( )
|
||||||
{
|
{
|
||||||
|
|
|
@ -26,7 +26,9 @@
|
||||||
#include <FL/Fl_Pack.H>
|
#include <FL/Fl_Pack.H>
|
||||||
#include "Mixer_Strip.H"
|
#include "Mixer_Strip.H"
|
||||||
|
|
||||||
class Fl_Blinker;
|
#include "Thread.H"
|
||||||
|
|
||||||
|
class Fl_Blink_Button;
|
||||||
class Fl_Flowpack;
|
class Fl_Flowpack;
|
||||||
class Fl_Menu_Bar;
|
class Fl_Menu_Bar;
|
||||||
namespace OSC { class Endpoint; }
|
namespace OSC { class Endpoint; }
|
||||||
|
@ -38,7 +40,7 @@ class Mixer : public Fl_Group
|
||||||
public:
|
public:
|
||||||
|
|
||||||
OSC::Endpoint *osc_endpoint;
|
OSC::Endpoint *osc_endpoint;
|
||||||
Fl_Blinker *sm_blinker;
|
Fl_Button *sm_blinker;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
@ -98,8 +100,6 @@ public:
|
||||||
Mixer ( int X, int Y, int W, int H, const char *L );
|
Mixer ( int X, int Y, int W, int H, const char *L );
|
||||||
virtual ~Mixer();
|
virtual ~Mixer();
|
||||||
|
|
||||||
static void check_osc ( void * v );
|
|
||||||
|
|
||||||
void reply_to_finger ( lo_message msg );
|
void reply_to_finger ( lo_message msg );
|
||||||
|
|
||||||
void announce ( const char *nash_url, const char *process_name );
|
void announce ( const char *nash_url, const char *process_name );
|
||||||
|
|
|
@ -359,8 +359,7 @@ Mixer_Strip::init ( )
|
||||||
_gain_controller_mode = 0;
|
_gain_controller_mode = 0;
|
||||||
_chain = 0;
|
_chain = 0;
|
||||||
|
|
||||||
// box(FL_THIN_UP_BOX);
|
box( FL_BORDER_BOX );
|
||||||
box( FL_RFLAT_BOX );
|
|
||||||
labeltype( FL_NO_LABEL );
|
labeltype( FL_NO_LABEL );
|
||||||
|
|
||||||
Fl_Group::color( FL_BACKGROUND_COLOR );
|
Fl_Group::color( FL_BACKGROUND_COLOR );
|
||||||
|
|
|
@ -25,8 +25,7 @@
|
||||||
#include <FL/Fl_Scalepack.H>
|
#include <FL/Fl_Scalepack.H>
|
||||||
#include <FL/Fl_Pack.H>
|
#include <FL/Fl_Pack.H>
|
||||||
#include <FL/Fl_Flip_Button.H>
|
#include <FL/Fl_Flip_Button.H>
|
||||||
#include <FL/Fl_Arc_Dial.H>
|
#include <FL/Fl_Dial.H>
|
||||||
#include <FL/Crystal_Boxtypes.H>
|
|
||||||
#include <FL/Fl_Group.H>
|
#include <FL/Fl_Group.H>
|
||||||
#include <FL/Fl_Box.H>
|
#include <FL/Fl_Box.H>
|
||||||
#include <FL/Fl_Button.H>
|
#include <FL/Fl_Button.H>
|
||||||
|
|
|
@ -41,6 +41,8 @@
|
||||||
|
|
||||||
#include "OSC/Endpoint.H"
|
#include "OSC/Endpoint.H"
|
||||||
|
|
||||||
|
#include "string_util.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Module *Module::_copied_module_empty = 0;
|
Module *Module::_copied_module_empty = 0;
|
||||||
|
@ -188,8 +190,15 @@ Module::paste_before ( void )
|
||||||
{
|
{
|
||||||
Module *m = _copied_module_empty;
|
Module *m = _copied_module_empty;
|
||||||
|
|
||||||
m->chain( chain() );
|
|
||||||
Log_Entry le( _copied_module_settings );
|
Log_Entry le( _copied_module_settings );
|
||||||
|
le.remove( ":chain" );
|
||||||
|
|
||||||
|
char *print = le.print();
|
||||||
|
|
||||||
|
DMESSAGE( "Pasting settings: %s", print );
|
||||||
|
|
||||||
|
free( print );
|
||||||
|
|
||||||
m->set( le );
|
m->set( le );
|
||||||
|
|
||||||
if ( ! chain()->insert( this, m ) )
|
if ( ! chain()->insert( this, m ) )
|
||||||
|
@ -201,7 +210,7 @@ Module::paste_before ( void )
|
||||||
_copied_module_settings = NULL;
|
_copied_module_settings = NULL;
|
||||||
_copied_module_empty = NULL;
|
_copied_module_empty = NULL;
|
||||||
|
|
||||||
/* set up for another copy */
|
/* set up for another paste */
|
||||||
m->copy();
|
m->copy();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -243,20 +252,19 @@ Module::Port::generate_osc_path ()
|
||||||
else
|
else
|
||||||
asprintf( &path, "/strip/%s/%s/%s", module()->chain()->name(), p->module()->label(), p->name() );
|
asprintf( &path, "/strip/%s/%s/%s", module()->chain()->name(), p->module()->label(), p->name() );
|
||||||
|
|
||||||
// Hack to keep spaces out of OSC URL... Probably need to handle other special characters similarly.
|
char *s = escape_url( path );
|
||||||
for ( int i = strlen( path ); i--; )
|
|
||||||
{
|
free( path );
|
||||||
if ( path[i] == ' ' || path[i] == ',' )
|
|
||||||
path[i] = '_';
|
path = s;
|
||||||
}
|
|
||||||
|
|
||||||
return path;
|
return path;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
Module::Port::handle_signal_connection_state_changed ( OSC::Signal * )
|
Module::Port::handle_signal_connection_state_changed ( OSC::Signal *, void *o )
|
||||||
{
|
{
|
||||||
module()->redraw();
|
((Module::Port*)o)->module()->redraw();
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -286,8 +294,8 @@ Module::Port::change_osc_path ( char *path )
|
||||||
0.0, 1.0, scaled_default,
|
0.0, 1.0, scaled_default,
|
||||||
&Module::Port::osc_control_change_cv, this );
|
&Module::Port::osc_control_change_cv, this );
|
||||||
|
|
||||||
_scaled_signal->signal_connection_state_changed.connect(
|
|
||||||
sigc::mem_fun( this, &Module::Port::handle_signal_connection_state_changed ) );
|
_scaled_signal->connection_state_callback( handle_signal_connection_state_changed, this );
|
||||||
|
|
||||||
_unscaled_signal = mixer->osc_endpoint->add_signal( unscaled_path,
|
_unscaled_signal = mixer->osc_endpoint->add_signal( unscaled_path,
|
||||||
OSC::Signal::Input,
|
OSC::Signal::Input,
|
||||||
|
@ -314,6 +322,8 @@ Module::Port::osc_control_change_exact ( float v, void *user_data )
|
||||||
{
|
{
|
||||||
Module::Port *p = (Module::Port*)user_data;
|
Module::Port *p = (Module::Port*)user_data;
|
||||||
|
|
||||||
|
Fl::lock();
|
||||||
|
|
||||||
float f = v;
|
float f = v;
|
||||||
|
|
||||||
if ( p->hints.ranged )
|
if ( p->hints.ranged )
|
||||||
|
@ -326,6 +336,8 @@ Module::Port::osc_control_change_exact ( float v, void *user_data )
|
||||||
|
|
||||||
p->control_value( f );
|
p->control_value( f );
|
||||||
|
|
||||||
|
Fl::unlock();
|
||||||
|
|
||||||
// mixer->osc_endpoint->send( lo_message_get_source( msg ), "/reply", path, f );
|
// mixer->osc_endpoint->send( lo_message_get_source( msg ), "/reply", path, f );
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -338,6 +350,8 @@ Module::Port::osc_control_change_cv ( float v, void *user_data )
|
||||||
|
|
||||||
float f = v;
|
float f = v;
|
||||||
|
|
||||||
|
Fl::lock();
|
||||||
|
|
||||||
// clamp value to control voltage range.
|
// clamp value to control voltage range.
|
||||||
if ( f > 1.0 )
|
if ( f > 1.0 )
|
||||||
f = 1.0;
|
f = 1.0;
|
||||||
|
@ -356,6 +370,7 @@ Module::Port::osc_control_change_cv ( float v, void *user_data )
|
||||||
|
|
||||||
p->control_value( f );
|
p->control_value( f );
|
||||||
|
|
||||||
|
Fl::unlock();
|
||||||
// mixer->osc_endpoint->send( lo_message_get_source( msg ), "/reply", path, f );
|
// mixer->osc_endpoint->send( lo_message_get_source( msg ), "/reply", path, f );
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -421,6 +436,26 @@ Module::set ( Log_Entry &e )
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
Module::chain ( Chain *v )
|
||||||
|
{
|
||||||
|
if ( _chain != v )
|
||||||
|
{
|
||||||
|
DMESSAGE( "Adding module %s in to chain %s", label(), v ? v->name() : "NULL" );
|
||||||
|
|
||||||
|
_chain = v;
|
||||||
|
|
||||||
|
for ( int i = 0; i < ncontrol_inputs(); ++i )
|
||||||
|
{
|
||||||
|
control_input[i].update_osc_port();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
DMESSAGE( "Module %s already belongs to chain %s", label(), v ? v->name() : "NULL" );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* return a string serializing this module's parameter settings. The
|
/* return a string serializing this module's parameter settings. The
|
||||||
format is 1.0:2.0:... Where 1.0 is the value of the first control
|
format is 1.0:2.0:... Where 1.0 is the value of the first control
|
||||||
input, 2.0 is the value of the second control input etc.
|
input, 2.0 is the value of the second control input etc.
|
||||||
|
|
|
@ -184,7 +184,9 @@ public:
|
||||||
|
|
||||||
void control_value_no_callback ( float f )
|
void control_value_no_callback ( float f )
|
||||||
{
|
{
|
||||||
THREAD_ASSERT( UI );
|
/* can also be called from the OSC thread */
|
||||||
|
ASSERT( Thread::is( "UI" ) || Thread::is( "OSC" ),
|
||||||
|
"Function called from wrong thread! (is %s)", Thread::current()->name() );
|
||||||
|
|
||||||
if ( buffer() )
|
if ( buffer() )
|
||||||
{
|
{
|
||||||
|
@ -259,7 +261,7 @@ public:
|
||||||
OSC::Signal *_scaled_signal;
|
OSC::Signal *_scaled_signal;
|
||||||
OSC::Signal *_unscaled_signal;
|
OSC::Signal *_unscaled_signal;
|
||||||
|
|
||||||
void handle_signal_connection_state_changed ( OSC::Signal *s );
|
static void handle_signal_connection_state_changed ( OSC::Signal *, void *o );
|
||||||
};
|
};
|
||||||
|
|
||||||
void bbox ( int &X, int &Y, int &W, int &H )
|
void bbox ( int &X, int &Y, int &W, int &H )
|
||||||
|
@ -371,18 +373,7 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
Chain *chain ( void ) const { return _chain; }
|
Chain *chain ( void ) const { return _chain; }
|
||||||
void chain ( Chain * v )
|
void chain ( Chain * v );
|
||||||
{
|
|
||||||
if ( _chain != v )
|
|
||||||
{
|
|
||||||
_chain = v;
|
|
||||||
|
|
||||||
for ( int i = 0; i < ncontrol_inputs(); ++i )
|
|
||||||
{
|
|
||||||
control_input[i].update_osc_port();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
char *get_parameters ( void ) const;
|
char *get_parameters ( void ) const;
|
||||||
void set_parameters ( const char * );
|
void set_parameters ( const char * );
|
||||||
|
@ -435,8 +426,8 @@ protected:
|
||||||
public:
|
public:
|
||||||
|
|
||||||
void command_open_parameter_editor();
|
void command_open_parameter_editor();
|
||||||
void command_activate ( void );
|
virtual void command_activate ( void );
|
||||||
void command_deactivate ( void );
|
virtual void command_deactivate ( void );
|
||||||
void command_remove ( void );
|
virtual void command_remove ( void );
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -17,6 +17,8 @@
|
||||||
/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||||
/*******************************************************************************/
|
/*******************************************************************************/
|
||||||
|
|
||||||
|
#include <FL/Fl.H>
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
@ -27,11 +29,10 @@
|
||||||
#include <FL/Fl_Box.H>
|
#include <FL/Fl_Box.H>
|
||||||
#include <FL/Fl_Menu_Button.H>
|
#include <FL/Fl_Menu_Button.H>
|
||||||
#include <FL/Fl_Counter.H>
|
#include <FL/Fl_Counter.H>
|
||||||
#include "FL/Crystal_Boxtypes.H"
|
|
||||||
#include "FL/Fl_Flowpack.H"
|
#include "FL/Fl_Flowpack.H"
|
||||||
#include "FL/Fl_Labelpad_Group.H"
|
#include "FL/Fl_Labelpad_Group.H"
|
||||||
#include "FL/Fl_Value_SliderX.H"
|
#include "FL/Fl_Value_SliderX.H"
|
||||||
#include "FL/Fl_Arc_Dial.H"
|
#include "FL/Fl_Dial.H"
|
||||||
|
|
||||||
#include "Module.H"
|
#include "Module.H"
|
||||||
#include "Module_Parameter_Editor.H"
|
#include "Module_Parameter_Editor.H"
|
||||||
|
@ -43,7 +44,7 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Module_Parameter_Editor::Module_Parameter_Editor ( Module *module ) : Fl_Double_Window( 0, 0, 800, 600 )
|
Module_Parameter_Editor::Module_Parameter_Editor ( Module *module ) : Fl_Double_Window( 800, 600 )
|
||||||
{
|
{
|
||||||
_module = module;
|
_module = module;
|
||||||
_resized = false;
|
_resized = false;
|
||||||
|
@ -199,7 +200,7 @@ Module_Parameter_Editor::make_controls ( void )
|
||||||
{
|
{
|
||||||
if ( mode_choice->value() == 0 )
|
if ( mode_choice->value() == 0 )
|
||||||
{
|
{
|
||||||
Fl_Arc_Dial *o = new Fl_Arc_Dial( 0, 0, 60, 60, p->name() );
|
Fl_Dial *o = new Fl_Dial( 0, 0, 60, 60, p->name() );
|
||||||
w = o;
|
w = o;
|
||||||
|
|
||||||
if ( p->hints.ranged )
|
if ( p->hints.ranged )
|
||||||
|
|
|
@ -43,7 +43,7 @@ NSM_Client::command_broadcast ( const char *path, lo_message msg )
|
||||||
int argc = lo_message_get_argc( msg );
|
int argc = lo_message_get_argc( msg );
|
||||||
// lo_arg **argv = lo_message_get_argv( msg );
|
// lo_arg **argv = lo_message_get_argv( msg );
|
||||||
|
|
||||||
if ( argc == 1 && !strcmp( path, "/non/finger" ) )
|
if ( !strcmp( path, "/non/hello" ) )
|
||||||
{
|
{
|
||||||
mixer->reply_to_finger( msg );
|
mixer->reply_to_finger( msg );
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -18,9 +18,11 @@
|
||||||
/*******************************************************************************/
|
/*******************************************************************************/
|
||||||
|
|
||||||
#include "Panner.H"
|
#include "Panner.H"
|
||||||
|
#include <FL/x.H>
|
||||||
|
#include <FL/Fl.H>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
// #include <FL/fl_draw.H>
|
||||||
|
|
||||||
/* 2D Panner widget. Supports various multichannel configurations. */
|
/* 2D Panner widget. Supports various multichannel configurations. */
|
||||||
|
|
||||||
|
@ -81,8 +83,11 @@ Panner::point_bbox ( const Point *p, int *X, int *Y, int *W, int *H ) const
|
||||||
|
|
||||||
bbox( tx, ty, tw, th );
|
bbox( tx, ty, tw, th );
|
||||||
|
|
||||||
tw -= pw();
|
const float PW = pw();
|
||||||
th -= ph();
|
const float PH = ph();
|
||||||
|
|
||||||
|
tw -= PW;
|
||||||
|
th -= PH;
|
||||||
|
|
||||||
float px, py;
|
float px, py;
|
||||||
|
|
||||||
|
@ -91,8 +96,8 @@ Panner::point_bbox ( const Point *p, int *X, int *Y, int *W, int *H ) const
|
||||||
*X = tx + ((tw / 2) * px + (tw / 2));
|
*X = tx + ((tw / 2) * px + (tw / 2));
|
||||||
*Y = ty + ((th / 2) * py + (th / 2));
|
*Y = ty + ((th / 2) * py + (th / 2));
|
||||||
|
|
||||||
*W = pw();
|
*W = PW;
|
||||||
*H = ph();
|
*H = PH;
|
||||||
}
|
}
|
||||||
|
|
||||||
Panner::Point *
|
Panner::Point *
|
||||||
|
@ -115,36 +120,13 @@ Panner::event_point ( void )
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
Panner::draw ( void )
|
Panner::draw_the_box ( int tx, int ty, int tw, int th )
|
||||||
{
|
{
|
||||||
draw_box();
|
draw_box();
|
||||||
// draw_box( FL_FLAT_BOX, x(), y(), w(), h(), FL_BLACK );
|
|
||||||
draw_label();
|
|
||||||
|
|
||||||
|
fl_line_style( FL_SOLID, 2 );
|
||||||
if ( _bypassed )
|
|
||||||
{
|
|
||||||
fl_color( 0 );
|
|
||||||
fl_font( FL_HELVETICA, 12 );
|
|
||||||
fl_draw( "(bypass)", x(), y(), w(), h(), FL_ALIGN_CENTER );
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
int tw, th, tx, ty;
|
|
||||||
|
|
||||||
bbox( tx, ty, tw, th );
|
|
||||||
|
|
||||||
fl_push_clip( tx, ty, tw, th );
|
|
||||||
|
|
||||||
fl_color( FL_RED );
|
|
||||||
|
|
||||||
const int b = 10;
|
|
||||||
|
|
||||||
tx += b;
|
|
||||||
ty += b;
|
|
||||||
tw -= b * 2;
|
|
||||||
th -= b * 2;
|
|
||||||
|
|
||||||
/* draw perimeter */
|
/* draw perimeter */
|
||||||
{
|
{
|
||||||
|
@ -154,8 +136,8 @@ Panner::draw ( void )
|
||||||
if ( Fl::belowmouse() == this )
|
if ( Fl::belowmouse() == this )
|
||||||
{
|
{
|
||||||
iter = 12;
|
iter = 12;
|
||||||
c1 = fl_darker( FL_RED );
|
c1 = fl_darker( fl_darker( FL_RED ) );
|
||||||
c2 = FL_GRAY;
|
c2 = FL_BLACK;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -172,11 +154,58 @@ Panner::draw ( void )
|
||||||
|
|
||||||
fl_arc( tx + (i * (tw / iter)) / 2, ty + (i * (th / iter)) / 2, tw - (i * (tw / iter)), th - (i * ( th / iter )), 0, 360 );
|
fl_arc( tx + (i * (tw / iter)) / 2, ty + (i * (th / iter)) / 2, tw - (i * (tw / iter)), th - (i * ( th / iter )), 0, 360 );
|
||||||
|
|
||||||
|
/* fl_arc( cr, */
|
||||||
|
/* tx + tw / 2, */
|
||||||
|
/* ty + th / 2, */
|
||||||
|
/* ((float)tw / iter) / 2, */
|
||||||
|
/* 0, 360 ); */
|
||||||
|
|
||||||
c = fl_color_average( c1, c2, (float)i / iter);
|
c = fl_color_average( c1, c2, (float)i / iter);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* fl_color( FL_WHITE ); */
|
fl_line_style( FL_SOLID, 0 );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
Panner::draw ( void )
|
||||||
|
{
|
||||||
|
int tw, th, tx, ty;
|
||||||
|
|
||||||
|
bbox( tx, ty, tw, th );
|
||||||
|
|
||||||
|
fl_push_clip( tx, ty, tw, th );
|
||||||
|
|
||||||
|
|
||||||
|
const int b = 10;
|
||||||
|
|
||||||
|
// draw_box();
|
||||||
|
draw_label();
|
||||||
|
|
||||||
|
if ( _bypassed )
|
||||||
|
{
|
||||||
|
draw_box();
|
||||||
|
fl_color( 0 );
|
||||||
|
fl_font( FL_HELVETICA, 12 );
|
||||||
|
fl_draw( "(bypass)", x(), y(), w(), h(), FL_ALIGN_CENTER );
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
tx += b;
|
||||||
|
ty += b;
|
||||||
|
tw -= b * 2;
|
||||||
|
th -= b * 2;
|
||||||
|
|
||||||
|
if ( damage() & FL_DAMAGE_ALL )
|
||||||
|
draw_the_box( tx, ty, tw, th );
|
||||||
|
|
||||||
|
fl_line_style( FL_SOLID, 2 );
|
||||||
|
|
||||||
|
// fl_color( FL_RED );
|
||||||
|
|
||||||
|
fl_color( FL_WHITE );
|
||||||
|
|
||||||
/* fl_arc( tx, ty, tw, th, 0, 360 ); */
|
/* fl_arc( tx, ty, tw, th, 0, 360 ); */
|
||||||
|
|
||||||
|
@ -225,23 +254,52 @@ Panner::draw ( void )
|
||||||
int px, py, pw, ph;
|
int px, py, pw, ph;
|
||||||
point_bbox( p, &px, &py, &pw, &ph );
|
point_bbox( p, &px, &py, &pw, &ph );
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
{
|
||||||
|
|
||||||
|
const float S = ( 0.5 + ( 1.0f - p->d ) );
|
||||||
|
|
||||||
|
float po = 5 * S;
|
||||||
|
|
||||||
|
fl_push_clip( px - ( po * 12 ),
|
||||||
|
py - ( po * 12 ),
|
||||||
|
pw + ( po * 24 ), ph + (po * 24 ));
|
||||||
|
|
||||||
|
if ( damage() & FL_DAMAGE_EXPOSE )
|
||||||
|
draw_the_box( tx, ty, tw, th );
|
||||||
|
|
||||||
|
fl_color( FL_WHITE );
|
||||||
|
|
||||||
/* draw point */
|
/* draw point */
|
||||||
if ( p != drag )
|
if ( p != drag )
|
||||||
fl_color( c );
|
fl_color( c );
|
||||||
else
|
|
||||||
fl_color( FL_WHITE );
|
|
||||||
|
|
||||||
fl_pie( px, py, pw, ph, 0, 360 );
|
fl_pie( px, py, pw, ph, 0, 360 );
|
||||||
|
|
||||||
/* draw echo */
|
/* draw echo */
|
||||||
fl_color( c = fl_darker( c ) );
|
fl_color( c = fl_darker( c ) );
|
||||||
fl_arc( px - 5, py - 5, pw + 10, ph + 10, 0, 360 );
|
// fl_color_alpha( c = fl_darker( c ), 0.5 );
|
||||||
|
|
||||||
|
// fl_arc( cr, px, py, pw + po * 1, 0, 360 );
|
||||||
|
fl_arc( px - po, py - po, pw + ( po * 2 ), ph + ( po * 2 ), 0, 360 );
|
||||||
|
|
||||||
if ( Fl::belowmouse() == this )
|
if ( Fl::belowmouse() == this )
|
||||||
{
|
{
|
||||||
fl_color( c = fl_darker( c ) );
|
fl_color( c = fl_darker( c ) );
|
||||||
fl_arc( px - 10, py - 10, pw + 20, ph + 20, 0, 360 );
|
|
||||||
|
// fl_color_alpha( c = fl_darker( c ), 0.5 );
|
||||||
|
fl_arc( px - ( po * 2 ), py - ( po * 2 ), pw + ( po * 4 ), ph + ( po * 4 ), 0, 360 );
|
||||||
|
/* fl_arc( cr, px, py, pw + po * 1, 0, 360 ); */
|
||||||
|
|
||||||
fl_color( c = fl_darker( c ) );
|
fl_color( c = fl_darker( c ) );
|
||||||
fl_arc( px - 30, py - 30, pw + 60, ph + 60, 0, 360 );
|
|
||||||
|
// fl_color_alpha( c = fl_darker( c ), 0.5 );
|
||||||
|
fl_arc( px - ( po * 4 ), py - ( po * 4 ), pw + ( po * 8 ), ph + (po * 8 ), 0, 360 );
|
||||||
|
/* fl_arc( cr, px, py, pw + po * 1, 0, 360 ); */
|
||||||
|
}
|
||||||
|
|
||||||
|
fl_pop_clip();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* draw number */
|
/* draw number */
|
||||||
|
@ -258,6 +316,9 @@ Panner::draw ( void )
|
||||||
/* fl_line( bx + pw() / 2, by + ph() / 2, tx + (tw / 2), ty + (th / 2) ); */
|
/* fl_line( bx + pw() / 2, by + ph() / 2, tx + (tw / 2), ty + (th / 2) ); */
|
||||||
|
|
||||||
}
|
}
|
||||||
|
done:
|
||||||
|
|
||||||
|
fl_line_style( FL_SOLID, 0 );
|
||||||
|
|
||||||
fl_pop_clip();
|
fl_pop_clip();
|
||||||
}
|
}
|
||||||
|
@ -281,17 +342,19 @@ Panner::handle ( int m )
|
||||||
redraw();
|
redraw();
|
||||||
return 1;
|
return 1;
|
||||||
case FL_PUSH:
|
case FL_PUSH:
|
||||||
|
{
|
||||||
if ( Fl::event_button2() )
|
if ( Fl::event_button2() )
|
||||||
{
|
{
|
||||||
_bypassed = ! _bypassed;
|
_bypassed = ! _bypassed;
|
||||||
redraw();
|
redraw();
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
else if ( Fl::event_button1() && ( drag = event_point() ) )
|
|
||||||
|
if ( Fl::event_button1() )
|
||||||
|
drag = event_point();
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
else
|
}
|
||||||
return 0;
|
|
||||||
case FL_RELEASE:
|
case FL_RELEASE:
|
||||||
if ( Fl::event_button1() && drag )
|
if ( Fl::event_button1() && drag )
|
||||||
{
|
{
|
||||||
|
@ -311,6 +374,10 @@ Panner::handle ( int m )
|
||||||
if ( ! drag )
|
if ( ! drag )
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
/* else if ( Fl::event_button1() && ( drag = event_point() ) ) */
|
||||||
|
/* return 1; */
|
||||||
|
/* else */
|
||||||
|
|
||||||
float X = Fl::event_x() - x();
|
float X = Fl::event_x() - x();
|
||||||
float Y = Fl::event_y() - y();
|
float Y = Fl::event_y() - y();
|
||||||
|
|
||||||
|
@ -325,7 +392,7 @@ Panner::handle ( int m )
|
||||||
if ( when() & FL_WHEN_CHANGED )
|
if ( when() & FL_WHEN_CHANGED )
|
||||||
do_callback();
|
do_callback();
|
||||||
|
|
||||||
redraw();
|
damage(FL_DAMAGE_EXPOSE);
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,6 +31,8 @@ using namespace std;
|
||||||
class Panner : public Fl_Widget
|
class Panner : public Fl_Widget
|
||||||
{
|
{
|
||||||
|
|
||||||
|
void draw_the_box( int, int, int, int );
|
||||||
|
|
||||||
struct Point
|
struct Point
|
||||||
{
|
{
|
||||||
/* axes */
|
/* axes */
|
||||||
|
|
|
@ -461,11 +461,19 @@ Plugin_Module::load ( unsigned long id )
|
||||||
{
|
{
|
||||||
p.hints.ranged = true;
|
p.hints.ranged = true;
|
||||||
p.hints.minimum = _idata->descriptor->PortRangeHints[i].LowerBound;
|
p.hints.minimum = _idata->descriptor->PortRangeHints[i].LowerBound;
|
||||||
|
if ( LADSPA_IS_HINT_SAMPLE_RATE(hd) )
|
||||||
|
{
|
||||||
|
p.hints.minimum *= Engine::sample_rate();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if ( LADSPA_IS_HINT_BOUNDED_ABOVE(hd) )
|
if ( LADSPA_IS_HINT_BOUNDED_ABOVE(hd) )
|
||||||
{
|
{
|
||||||
p.hints.ranged = true;
|
p.hints.ranged = true;
|
||||||
p.hints.maximum = _idata->descriptor->PortRangeHints[i].UpperBound;
|
p.hints.maximum = _idata->descriptor->PortRangeHints[i].UpperBound;
|
||||||
|
if ( LADSPA_IS_HINT_SAMPLE_RATE(hd) )
|
||||||
|
{
|
||||||
|
p.hints.maximum *= Engine::sample_rate();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( LADSPA_IS_HINT_HAS_DEFAULT(hd) )
|
if ( LADSPA_IS_HINT_HAS_DEFAULT(hd) )
|
||||||
|
|
139
mixer/src/main.C
|
@ -32,8 +32,8 @@
|
||||||
#include <FL/fl_ask.H>
|
#include <FL/fl_ask.H>
|
||||||
#include <FL/Fl_Shared_Image.H>
|
#include <FL/Fl_Shared_Image.H>
|
||||||
#include <FL/Fl_Pack.H>
|
#include <FL/Fl_Pack.H>
|
||||||
#include <FL/Crystal_Boxtypes.H>
|
#include "FL/themes.H"
|
||||||
#include <FL/Gleam_Boxtypes.H>
|
#include "FL/Fl_Theme.H"
|
||||||
#include "Thread.H"
|
#include "Thread.H"
|
||||||
#include "debug.h"
|
#include "debug.h"
|
||||||
|
|
||||||
|
@ -57,6 +57,7 @@
|
||||||
#include "NSM.H"
|
#include "NSM.H"
|
||||||
|
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
#ifdef HAVE_XPM
|
#ifdef HAVE_XPM
|
||||||
#include "FL/Fl.H"
|
#include "FL/Fl.H"
|
||||||
|
@ -107,7 +108,7 @@ check_nsm ( void * v )
|
||||||
Fl::repeat_timeout( NSM_CHECK_INTERVAL, check_nsm, v );
|
Fl::repeat_timeout( NSM_CHECK_INTERVAL, check_nsm, v );
|
||||||
}
|
}
|
||||||
|
|
||||||
static int got_sigterm = 0;
|
static volatile int got_sigterm = 0;
|
||||||
|
|
||||||
void
|
void
|
||||||
sigterm_handler ( int )
|
sigterm_handler ( int )
|
||||||
|
@ -129,17 +130,10 @@ check_sigterm ( void * )
|
||||||
int
|
int
|
||||||
main ( int argc, char **argv )
|
main ( int argc, char **argv )
|
||||||
{
|
{
|
||||||
|
bool no_ui = false;
|
||||||
|
|
||||||
printf( "%s %s %s -- %s\n", APP_TITLE, VERSION, "", COPYRIGHT );
|
printf( "%s %s %s -- %s\n", APP_TITLE, VERSION, "", COPYRIGHT );
|
||||||
|
|
||||||
#ifdef HAVE_XPM
|
|
||||||
fl_open_display();
|
|
||||||
Pixmap p, mask;
|
|
||||||
|
|
||||||
XpmCreatePixmapFromData(fl_display, DefaultRootWindow(fl_display),
|
|
||||||
(char**)icon_16x16, &p, &mask, NULL);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
Thread::init();
|
Thread::init();
|
||||||
|
|
||||||
Thread thread( "UI" );
|
Thread thread( "UI" );
|
||||||
|
@ -156,9 +150,6 @@ main ( int argc, char **argv )
|
||||||
Fl_Tooltip::size( 14 );
|
Fl_Tooltip::size( 14 );
|
||||||
Fl_Tooltip::hoverdelay( 0.1f );
|
Fl_Tooltip::hoverdelay( 0.1f );
|
||||||
|
|
||||||
Fl::visible_focus( 0 );
|
|
||||||
|
|
||||||
fl_register_images();
|
|
||||||
|
|
||||||
LOG_REGISTER_CREATE( Mixer_Strip );
|
LOG_REGISTER_CREATE( Mixer_Strip );
|
||||||
LOG_REGISTER_CREATE( Chain );
|
LOG_REGISTER_CREATE( Chain );
|
||||||
|
@ -170,40 +161,8 @@ main ( int argc, char **argv )
|
||||||
LOG_REGISTER_CREATE( Meter_Indicator_Module );
|
LOG_REGISTER_CREATE( Meter_Indicator_Module );
|
||||||
LOG_REGISTER_CREATE( Controller_Module );
|
LOG_REGISTER_CREATE( Controller_Module );
|
||||||
|
|
||||||
init_crystal_boxtypes();
|
|
||||||
init_gleam_boxtypes();
|
|
||||||
|
|
||||||
signal( SIGPIPE, SIG_IGN );
|
signal( SIGPIPE, SIG_IGN );
|
||||||
|
|
||||||
Fl::get_system_colors();
|
|
||||||
Fl::scheme( "gtk+" );
|
|
||||||
|
|
||||||
Fl::lock();
|
|
||||||
|
|
||||||
Fl_Double_Window *main_window;
|
|
||||||
|
|
||||||
{
|
|
||||||
Fl_Double_Window *o = main_window = new Fl_Double_Window( 800, 600, "Non-DAW : Mixer" );
|
|
||||||
{
|
|
||||||
main_window->xclass( APP_NAME );
|
|
||||||
|
|
||||||
{
|
|
||||||
Fl_Widget *o = mixer = new Mixer( 0, 0, main_window->w(), main_window->h(), NULL );
|
|
||||||
Fl_Group::current()->resizable(o);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
o->end();
|
|
||||||
|
|
||||||
o->size_range( main_window->w(), mixer->min_h(), 0, 0 );
|
|
||||||
|
|
||||||
o->callback( (Fl_Callback*)cb_main, main_window );
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef HAVE_XPM
|
|
||||||
o->icon((char *)p);
|
|
||||||
#endif
|
|
||||||
o->show( 0, 0 );
|
|
||||||
}
|
|
||||||
|
|
||||||
const char *osc_port = NULL;
|
const char *osc_port = NULL;
|
||||||
|
|
||||||
|
@ -217,6 +176,7 @@ main ( int argc, char **argv )
|
||||||
{ "help", no_argument, 0, '?' },
|
{ "help", no_argument, 0, '?' },
|
||||||
{ "instance", required_argument, 0, 'i' },
|
{ "instance", required_argument, 0, 'i' },
|
||||||
{ "osc-port", required_argument, 0, 'p' },
|
{ "osc-port", required_argument, 0, 'p' },
|
||||||
|
{ "no-ui", no_argument, 0, 'u' },
|
||||||
{ 0, 0, 0, 0 }
|
{ 0, 0, 0, 0 }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -238,6 +198,10 @@ main ( int argc, char **argv )
|
||||||
instance_name = strdup( optarg );
|
instance_name = strdup( optarg );
|
||||||
instance_override = true;
|
instance_override = true;
|
||||||
break;
|
break;
|
||||||
|
case 'u':
|
||||||
|
DMESSAGE( "Disabling user interface" );
|
||||||
|
no_ui = true;
|
||||||
|
break;
|
||||||
case '?':
|
case '?':
|
||||||
printf( "\nUsage: %s [--instance instance_name] [--osc-port portnum] [path_to_project]\n\n", argv[0] );
|
printf( "\nUsage: %s [--instance instance_name] [--osc-port portnum] [path_to_project]\n\n", argv[0] );
|
||||||
exit(0);
|
exit(0);
|
||||||
|
@ -245,6 +209,70 @@ main ( int argc, char **argv )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
char *name = strdup( argv[0] );
|
||||||
|
char *n = basename( name );
|
||||||
|
|
||||||
|
if ( ! strcmp( n, "non-mixer-noui" ) )
|
||||||
|
no_ui = true;
|
||||||
|
|
||||||
|
free( name );
|
||||||
|
}
|
||||||
|
|
||||||
|
Pixmap p, mask;
|
||||||
|
|
||||||
|
if ( ! no_ui )
|
||||||
|
{
|
||||||
|
Fl::visual( FL_DOUBLE | FL_RGB );
|
||||||
|
|
||||||
|
#ifdef HAVE_XPM
|
||||||
|
fl_open_display();
|
||||||
|
|
||||||
|
XpmCreatePixmapFromData(fl_display, DefaultRootWindow(fl_display),
|
||||||
|
(char**)icon_16x16, &p, &mask, NULL);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
Fl::visible_focus( 0 );
|
||||||
|
|
||||||
|
fl_register_images();
|
||||||
|
}
|
||||||
|
|
||||||
|
Fl::lock();
|
||||||
|
|
||||||
|
Fl_Double_Window *main_window;
|
||||||
|
|
||||||
|
{
|
||||||
|
Fl_Double_Window *o = main_window = new Fl_Double_Window( 800, 600, "Non-DAW : Mixer" );
|
||||||
|
{
|
||||||
|
main_window->xclass( APP_NAME );
|
||||||
|
|
||||||
|
{
|
||||||
|
Fl_Widget *o = mixer = new Mixer( 0, 0, main_window->w(), main_window->h(), NULL );
|
||||||
|
Fl_Group::current()->resizable(o);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
o->end();
|
||||||
|
|
||||||
|
o->size_range( main_window->w(), mixer->min_h(), 0, 0 );
|
||||||
|
|
||||||
|
o->callback( (Fl_Callback*)cb_main, main_window );
|
||||||
|
|
||||||
|
if ( ! no_ui )
|
||||||
|
{
|
||||||
|
#ifdef HAVE_XPM
|
||||||
|
o->icon((char *)p);
|
||||||
|
#endif
|
||||||
|
o->show( 0, 0 );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( ! no_ui )
|
||||||
|
{
|
||||||
|
fl_register_themes();
|
||||||
|
|
||||||
|
Fl_Theme::set();
|
||||||
|
}
|
||||||
|
|
||||||
Plugin_Module::spawn_discover_thread();
|
Plugin_Module::spawn_discover_thread();
|
||||||
|
|
||||||
mixer->init_osc( osc_port );
|
mixer->init_osc( osc_port );
|
||||||
|
@ -263,8 +291,11 @@ main ( int argc, char **argv )
|
||||||
|
|
||||||
nsm->announce( APP_NAME, ":switch:dirty:", argv[0] );
|
nsm->announce( APP_NAME, ":switch:dirty:", argv[0] );
|
||||||
|
|
||||||
|
/* if ( ! no_ui ) */
|
||||||
|
/* { */
|
||||||
// poll so we can keep OSC handlers running in the GUI thread and avoid extra sync
|
// poll so we can keep OSC handlers running in the GUI thread and avoid extra sync
|
||||||
Fl::add_timeout( NSM_CHECK_INTERVAL, check_nsm, NULL );
|
Fl::add_timeout( NSM_CHECK_INTERVAL, check_nsm, NULL );
|
||||||
|
/* } */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -283,9 +314,25 @@ main ( int argc, char **argv )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mixer->say_hello();
|
||||||
|
|
||||||
Fl::add_check( check_sigterm );
|
Fl::add_check( check_sigterm );
|
||||||
|
|
||||||
|
if ( ! no_ui )
|
||||||
|
{
|
||||||
|
DMESSAGE( "Running UI..." );
|
||||||
|
|
||||||
Fl::run();
|
Fl::run();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
DMESSAGE( "Not Running UI..." );
|
||||||
|
while ( ! got_sigterm )
|
||||||
|
{
|
||||||
|
Fl::check();
|
||||||
|
usleep( 200 * 1000 );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
delete main_window;
|
delete main_window;
|
||||||
main_window = NULL;
|
main_window = NULL;
|
||||||
|
|
|
@ -280,6 +280,19 @@ Log_Entry::get ( int n, const char **name, const char **value ) const
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
Log_Entry::remove ( const char *name )
|
||||||
|
{
|
||||||
|
for ( int i = 0; i < _i; i++ )
|
||||||
|
{
|
||||||
|
if ( !strcmp( _sa[ i ], name ) )
|
||||||
|
{
|
||||||
|
free( _sa[i] );
|
||||||
|
_sa[i] = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
char **
|
char **
|
||||||
Log_Entry::sa ( void )
|
Log_Entry::sa ( void )
|
||||||
{
|
{
|
||||||
|
|
|
@ -88,6 +88,9 @@ public:
|
||||||
/* _sa.push( p ); \ */
|
/* _sa.push( p ); \ */
|
||||||
/* } \ */
|
/* } \ */
|
||||||
|
|
||||||
|
|
||||||
|
void remove ( const char *s );
|
||||||
|
|
||||||
ADD( int, "%d", v );
|
ADD( int, "%d", v );
|
||||||
ADD( nframes_t, "%lu", (unsigned long)v );
|
ADD( nframes_t, "%lu", (unsigned long)v );
|
||||||
ADD( unsigned long, "%lu", v );
|
ADD( unsigned long, "%lu", v );
|
||||||
|
|
|
@ -36,6 +36,8 @@
|
||||||
// #include "const.h"
|
// #include "const.h"
|
||||||
#include "debug.h"
|
#include "debug.h"
|
||||||
|
|
||||||
|
#include "Mutex.H"
|
||||||
|
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
using std::min;
|
using std::min;
|
||||||
using std::max;
|
using std::max;
|
||||||
|
@ -64,8 +66,11 @@ void *Loggable::_dirty_callback_arg = NULL;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
static Mutex _lock;
|
||||||
|
|
||||||
Loggable::~Loggable ( )
|
Loggable::~Loggable ( )
|
||||||
{
|
{
|
||||||
|
Locker lock( _lock );;
|
||||||
_loggables[ _id ].loggable = NULL;
|
_loggables[ _id ].loggable = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -74,12 +79,15 @@ Loggable::~Loggable ( )
|
||||||
void
|
void
|
||||||
Loggable::block_start ( void )
|
Loggable::block_start ( void )
|
||||||
{
|
{
|
||||||
|
Locker lock( _lock );;
|
||||||
++Loggable::_level;
|
++Loggable::_level;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
Loggable::block_end ( void )
|
Loggable::block_end ( void )
|
||||||
{
|
{
|
||||||
|
Locker lock( _lock );;
|
||||||
|
|
||||||
--Loggable::_level;
|
--Loggable::_level;
|
||||||
|
|
||||||
ASSERT( Loggable::_level >= 0, "Programming error" );
|
ASSERT( Loggable::_level >= 0, "Programming error" );
|
||||||
|
@ -236,17 +244,17 @@ Loggable::close ( void )
|
||||||
if ( ! snapshot( "snapshot" ) )
|
if ( ! snapshot( "snapshot" ) )
|
||||||
WARNING( "Failed to create snapshot" );
|
WARNING( "Failed to create snapshot" );
|
||||||
|
|
||||||
|
if ( ! save_unjournaled_state() )
|
||||||
|
WARNING( "Failed to save unjournaled state" );
|
||||||
|
|
||||||
for ( std::map <unsigned int, Loggable::log_pair >::iterator i = _loggables.begin();
|
for ( std::map <unsigned int, Loggable::log_pair >::iterator i = _loggables.begin();
|
||||||
i != _loggables.end(); ++i )
|
i != _loggables.end(); ++i )
|
||||||
|
{
|
||||||
if ( i->second.loggable )
|
if ( i->second.loggable )
|
||||||
delete i->second.loggable;
|
delete i->second.loggable;
|
||||||
|
|
||||||
save_unjournaled_state();
|
|
||||||
|
|
||||||
for ( std::map <unsigned int, Loggable::log_pair >::iterator i = _loggables.begin();
|
|
||||||
i != _loggables.end(); ++i )
|
|
||||||
if ( i->second.unjournaled_state )
|
if ( i->second.unjournaled_state )
|
||||||
delete i->second.unjournaled_state;
|
delete i->second.unjournaled_state;
|
||||||
|
}
|
||||||
|
|
||||||
_loggables.clear();
|
_loggables.clear();
|
||||||
|
|
||||||
|
@ -271,6 +279,10 @@ Loggable::save_unjournaled_state ( void )
|
||||||
for ( std::map <unsigned int, Loggable::log_pair >::iterator i = _loggables.begin();
|
for ( std::map <unsigned int, Loggable::log_pair >::iterator i = _loggables.begin();
|
||||||
i != _loggables.end(); ++i )
|
i != _loggables.end(); ++i )
|
||||||
{
|
{
|
||||||
|
/* get the latest state */
|
||||||
|
if ( i->second.loggable )
|
||||||
|
i->second.loggable->record_unjournaled();
|
||||||
|
|
||||||
if ( i->second.unjournaled_state )
|
if ( i->second.unjournaled_state )
|
||||||
{
|
{
|
||||||
char *s = i->second.unjournaled_state->print();
|
char *s = i->second.unjournaled_state->print();
|
||||||
|
@ -559,6 +571,8 @@ Loggable::compact ( void )
|
||||||
void
|
void
|
||||||
Loggable::log ( const char *fmt, ... )
|
Loggable::log ( const char *fmt, ... )
|
||||||
{
|
{
|
||||||
|
Locker lock( _lock );
|
||||||
|
|
||||||
static char * buf = NULL;
|
static char * buf = NULL;
|
||||||
static size_t i = 0;
|
static size_t i = 0;
|
||||||
static size_t buf_size = 0;
|
static size_t buf_size = 0;
|
||||||
|
@ -689,6 +703,8 @@ Loggable::log_print( const Log_Entry *o, const Log_Entry *n ) const
|
||||||
void
|
void
|
||||||
Loggable::log_start ( void )
|
Loggable::log_start ( void )
|
||||||
{
|
{
|
||||||
|
Locker lock( _lock );;
|
||||||
|
|
||||||
if ( ! _old_state )
|
if ( ! _old_state )
|
||||||
{
|
{
|
||||||
_old_state = new Log_Entry;
|
_old_state = new Log_Entry;
|
||||||
|
@ -702,6 +718,8 @@ Loggable::log_start ( void )
|
||||||
void
|
void
|
||||||
Loggable::log_end ( void )
|
Loggable::log_end ( void )
|
||||||
{
|
{
|
||||||
|
Locker lock( _lock );;
|
||||||
|
|
||||||
ASSERT( _old_state, "Programming error: log_end() called before log_start()" );
|
ASSERT( _old_state, "Programming error: log_end() called before log_start()" );
|
||||||
|
|
||||||
if ( --_nest > 0 )
|
if ( --_nest > 0 )
|
||||||
|
@ -737,6 +755,8 @@ Loggable::log_end ( void )
|
||||||
void
|
void
|
||||||
Loggable::log_create ( void ) const
|
Loggable::log_create ( void ) const
|
||||||
{
|
{
|
||||||
|
Locker lock( _lock );;
|
||||||
|
|
||||||
set_dirty();
|
set_dirty();
|
||||||
|
|
||||||
if ( ! _fp )
|
if ( ! _fp )
|
||||||
|
@ -766,19 +786,18 @@ Loggable::record_unjournaled ( void ) const
|
||||||
|
|
||||||
get_unjournaled( *e );
|
get_unjournaled( *e );
|
||||||
|
|
||||||
Log_Entry *le = _loggables[ _id ].unjournaled_state;
|
Log_Entry **le = &_loggables[ _id ].unjournaled_state;
|
||||||
|
|
||||||
if ( le )
|
if ( *le )
|
||||||
delete le;
|
{
|
||||||
|
delete *le;
|
||||||
|
*le = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
if ( e->size() )
|
if ( e->size() )
|
||||||
_loggables[ _id ].unjournaled_state = e;
|
*le = e;
|
||||||
else
|
else
|
||||||
{
|
|
||||||
/* don't waste space on loggables with no unjournaled properties */
|
|
||||||
_loggables[ _id ].unjournaled_state = NULL;
|
|
||||||
delete e;
|
delete e;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Log object destruction. *Must* be called at the beginning of the
|
/** Log object destruction. *Must* be called at the beginning of the
|
||||||
|
@ -786,8 +805,7 @@ Loggable::record_unjournaled ( void ) const
|
||||||
void
|
void
|
||||||
Loggable::log_destroy ( void ) const
|
Loggable::log_destroy ( void ) const
|
||||||
{
|
{
|
||||||
/* the unjournaled state may have changed: make a note of it. */
|
Locker lock( _lock );;
|
||||||
record_unjournaled();
|
|
||||||
|
|
||||||
set_dirty();
|
set_dirty();
|
||||||
|
|
||||||
|
@ -795,6 +813,9 @@ Loggable::log_destroy ( void ) const
|
||||||
/* tearing down... don't bother */
|
/* tearing down... don't bother */
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
/* the unjournaled state may have changed: make a note of it. */
|
||||||
|
record_unjournaled();
|
||||||
|
|
||||||
log( "%s 0x%X destroy << ", class_name(), _id );
|
log( "%s 0x%X destroy << ", class_name(), _id );
|
||||||
|
|
||||||
Log_Entry e;
|
Log_Entry e;
|
||||||
|
|
|
@ -56,6 +56,21 @@ namespace OSC
|
||||||
|
|
||||||
int Signal::next_id = 0;
|
int Signal::next_id = 0;
|
||||||
|
|
||||||
|
|
||||||
|
Signal::Signal ( const char *path, Direction dir )
|
||||||
|
{
|
||||||
|
_direction = dir;
|
||||||
|
_path = strdup( path );
|
||||||
|
_id = ++next_id;
|
||||||
|
_value = 0.0f;
|
||||||
|
_endpoint = NULL;
|
||||||
|
_peer = NULL;
|
||||||
|
_documentation = 0;
|
||||||
|
_user_data = 0;
|
||||||
|
_connection_state_callback = 0;
|
||||||
|
_connection_state_userdata = 0;
|
||||||
|
}
|
||||||
|
|
||||||
Signal::~Signal ( )
|
Signal::~Signal ( )
|
||||||
{
|
{
|
||||||
if ( _endpoint )
|
if ( _endpoint )
|
||||||
|
@ -140,7 +155,9 @@ namespace OSC
|
||||||
|
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
Endpoint::error_handler(int num, const char *msg, const char *path)
|
Endpoint::error_handler(int num, const char *msg, const char *path)
|
||||||
{
|
{
|
||||||
|
@ -149,6 +166,11 @@ namespace OSC
|
||||||
|
|
||||||
Endpoint::Endpoint ( )
|
Endpoint::Endpoint ( )
|
||||||
{
|
{
|
||||||
|
_peer_scan_complete_callback = 0;
|
||||||
|
_peer_scan_complete_userdata = 0;
|
||||||
|
_server = 0;
|
||||||
|
_name = 0;
|
||||||
|
owner = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
|
@ -164,7 +186,6 @@ namespace OSC
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
add_method( "/signal/hello", "ss", &Endpoint::osc_sig_hello, this, "" );
|
add_method( "/signal/hello", "ss", &Endpoint::osc_sig_hello, this, "" );
|
||||||
add_method( "/signal/connect", "ii", &Endpoint::osc_sig_connect, this, "" );
|
add_method( "/signal/connect", "ii", &Endpoint::osc_sig_connect, this, "" );
|
||||||
add_method( "/signal/disconnect", "ii", &Endpoint::osc_sig_disconnect, this, "" );
|
add_method( "/signal/disconnect", "ii", &Endpoint::osc_sig_disconnect, this, "" );
|
||||||
|
@ -183,7 +204,11 @@ namespace OSC
|
||||||
Endpoint::~Endpoint ( )
|
Endpoint::~Endpoint ( )
|
||||||
{
|
{
|
||||||
// lo_server_thread_free( _st );
|
// lo_server_thread_free( _st );
|
||||||
|
if ( _server )
|
||||||
|
{
|
||||||
lo_server_free( _server );
|
lo_server_free( _server );
|
||||||
|
_server = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
OSC::Signal *
|
OSC::Signal *
|
||||||
|
@ -248,6 +273,8 @@ namespace OSC
|
||||||
void
|
void
|
||||||
Endpoint::hello ( const char *url )
|
Endpoint::hello ( const char *url )
|
||||||
{
|
{
|
||||||
|
assert( name() );
|
||||||
|
|
||||||
lo_address addr = lo_address_new_from_url ( url );
|
lo_address addr = lo_address_new_from_url ( url );
|
||||||
|
|
||||||
char *our_url = this->url();
|
char *our_url = this->url();
|
||||||
|
@ -260,6 +287,7 @@ namespace OSC
|
||||||
int
|
int
|
||||||
Endpoint::osc_sig_hello ( const char *path, const char *types, lo_arg **argv, int argc, lo_message msg, void *user_data )
|
Endpoint::osc_sig_hello ( const char *path, const char *types, lo_arg **argv, int argc, lo_message msg, void *user_data )
|
||||||
{
|
{
|
||||||
|
|
||||||
Endpoint *ep = (Endpoint*)user_data;
|
Endpoint *ep = (Endpoint*)user_data;
|
||||||
|
|
||||||
const char *peer_name = &argv[0]->s;
|
const char *peer_name = &argv[0]->s;
|
||||||
|
@ -271,8 +299,15 @@ namespace OSC
|
||||||
{
|
{
|
||||||
ep->scan_peer( peer_name, peer_url );
|
ep->scan_peer( peer_name, peer_url );
|
||||||
|
|
||||||
|
if ( ep->name() )
|
||||||
|
{
|
||||||
ep->hello( peer_url );
|
ep->hello( peer_url );
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
DMESSAGE( "Not sending hello because we don't have a name yet!" );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -306,7 +341,8 @@ namespace OSC
|
||||||
|
|
||||||
DMESSAGE( "Peer %s has disconnected from signal %s", p->name, ps->path() );
|
DMESSAGE( "Peer %s has disconnected from signal %s", p->name, ps->path() );
|
||||||
|
|
||||||
s->signal_connection_state_changed( s );
|
if ( s->_connection_state_callback )
|
||||||
|
s->_connection_state_callback( s, s->_connection_state_userdata );
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -358,7 +394,8 @@ namespace OSC
|
||||||
/* make a record of it ourselves */
|
/* make a record of it ourselves */
|
||||||
ps->_outgoing.push_back( s );
|
ps->_outgoing.push_back( s );
|
||||||
|
|
||||||
s->signal_connection_state_changed( s );
|
if ( s->_connection_state_callback )
|
||||||
|
s->_connection_state_callback( s, s->_connection_state_userdata );
|
||||||
|
|
||||||
/* return 0; */
|
/* return 0; */
|
||||||
/* } */
|
/* } */
|
||||||
|
@ -522,6 +559,7 @@ namespace OSC
|
||||||
/* reply with current value */
|
/* reply with current value */
|
||||||
o = (Signal*)user_data;
|
o = (Signal*)user_data;
|
||||||
o->_endpoint->send( lo_message_get_source( msg ), "/reply", path, o->value() );
|
o->_endpoint->send( lo_message_get_source( msg ), "/reply", path, o->value() );
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -533,8 +571,6 @@ namespace OSC
|
||||||
if ( ep )
|
if ( ep )
|
||||||
p = ep->find_peer_by_address( lo_message_get_source( msg ) );
|
p = ep->find_peer_by_address( lo_message_get_source( msg ) );
|
||||||
|
|
||||||
if ( 0 == o->_incoming.size() )
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
if ( !p )
|
if ( !p )
|
||||||
{
|
{
|
||||||
|
@ -548,6 +584,9 @@ namespace OSC
|
||||||
/* remote signal */
|
/* remote signal */
|
||||||
/* if ( t->_peer ) */
|
/* if ( t->_peer ) */
|
||||||
|
|
||||||
|
/* if ( 0 == o->_incoming.size() ) */
|
||||||
|
/* return 0; */
|
||||||
|
|
||||||
for ( std::list<Signal*>::const_iterator i = o->_incoming.begin();
|
for ( std::list<Signal*>::const_iterator i = o->_incoming.begin();
|
||||||
i != o->_incoming.end();
|
i != o->_incoming.end();
|
||||||
++i )
|
++i )
|
||||||
|
@ -872,7 +911,8 @@ namespace OSC
|
||||||
p->_scanning = false;
|
p->_scanning = false;
|
||||||
DMESSAGE( "Done scanning %s", p->name );
|
DMESSAGE( "Done scanning %s", p->name );
|
||||||
|
|
||||||
ep->signal_peer_scan_complete();
|
if ( ep->_peer_scan_complete_callback )
|
||||||
|
ep->_peer_scan_complete_callback(ep->_peer_scan_complete_userdata);
|
||||||
}
|
}
|
||||||
else if ( argc == 7 && p->_scanning )
|
else if ( argc == 7 && p->_scanning )
|
||||||
{
|
{
|
||||||
|
|
|
@ -25,8 +25,6 @@
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#include <sigc++/sigc++.h>
|
|
||||||
|
|
||||||
namespace OSC
|
namespace OSC
|
||||||
{
|
{
|
||||||
class OSC_Value
|
class OSC_Value
|
||||||
|
@ -163,20 +161,12 @@ namespace OSC
|
||||||
void *_user_data;
|
void *_user_data;
|
||||||
Parameter_Limits _parameter_limits;
|
Parameter_Limits _parameter_limits;
|
||||||
|
|
||||||
|
void (*_connection_state_callback)(OSC::Signal *, void*);
|
||||||
|
void *_connection_state_userdata;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
Signal ( const char *path, Direction dir )
|
Signal ( const char *path, Direction dir );
|
||||||
{
|
|
||||||
_direction = dir;
|
|
||||||
_path = strdup( path );
|
|
||||||
_id = ++next_id;
|
|
||||||
_value = 0.0f;
|
|
||||||
_endpoint = NULL;
|
|
||||||
_peer = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
sigc::signal <void,Signal*> signal_connection_state_changed;
|
|
||||||
|
|
||||||
~Signal ( );
|
~Signal ( );
|
||||||
|
|
||||||
static Signal *get_peer_signal_by_id ( Peer *p, int signal_id );
|
static Signal *get_peer_signal_by_id ( Peer *p, int signal_id );
|
||||||
|
@ -198,6 +188,13 @@ namespace OSC
|
||||||
_value = default_value;
|
_value = default_value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void connection_state_callback ( void(*_cb)(OSC::Signal *, void*), void *userdata)
|
||||||
|
{
|
||||||
|
_connection_state_callback = _cb;
|
||||||
|
_connection_state_userdata = userdata;
|
||||||
|
}
|
||||||
|
|
||||||
const Parameter_Limits& parameter_limits ( void ) const { return _parameter_limits; }
|
const Parameter_Limits& parameter_limits ( void ) const { return _parameter_limits; }
|
||||||
|
|
||||||
const char *path ( void ) const { return _path; }
|
const char *path ( void ) const { return _path; }
|
||||||
|
@ -234,8 +231,21 @@ namespace OSC
|
||||||
|
|
||||||
class Endpoint
|
class Endpoint
|
||||||
{
|
{
|
||||||
static void error_handler(int num, const char *msg, const char *path);
|
Thread _thread;
|
||||||
|
|
||||||
|
// lo_server_thread _st;
|
||||||
|
lo_server _server;
|
||||||
|
|
||||||
|
std::list<Peer*> _peers;
|
||||||
|
std::list<Signal*> _signals;
|
||||||
|
std::list<Method*> _methods;
|
||||||
|
|
||||||
|
void (*_peer_scan_complete_callback)(void*);
|
||||||
|
void *_peer_scan_complete_userdata;
|
||||||
|
|
||||||
|
char *_name;
|
||||||
|
|
||||||
|
static void error_handler(int num, const char *msg, const char *path);
|
||||||
|
|
||||||
static int osc_reply ( const char *path, const char *types, lo_arg **argv, int argc, lo_message msg, void *user_data );
|
static int osc_reply ( const char *path, const char *types, lo_arg **argv, int argc, lo_message msg, void *user_data );
|
||||||
|
|
||||||
|
@ -251,14 +261,7 @@ namespace OSC
|
||||||
|
|
||||||
void scan_peer ( const char *name, const char *url );
|
void scan_peer ( const char *name, const char *url );
|
||||||
|
|
||||||
Thread _thread;
|
private:
|
||||||
|
|
||||||
// lo_server_thread _st;
|
|
||||||
lo_server _server;
|
|
||||||
|
|
||||||
std::list<Peer*> _peers;
|
|
||||||
std::list<Signal*> _signals;
|
|
||||||
std::list<Method*> _methods;
|
|
||||||
|
|
||||||
static void *osc_thread ( void *arg );
|
static void *osc_thread ( void *arg );
|
||||||
void osc_thread ( void );
|
void osc_thread ( void );
|
||||||
|
@ -273,23 +276,22 @@ namespace OSC
|
||||||
|
|
||||||
static Signal *find_target_by_peer_address ( std::list<Signal*> *l, lo_address addr );
|
static Signal *find_target_by_peer_address ( std::list<Signal*> *l, lo_address addr );
|
||||||
|
|
||||||
char *_name;
|
|
||||||
|
|
||||||
void del_signal ( Signal *signal );
|
void del_signal ( Signal *signal );
|
||||||
void send_signal_rename_notifications( Signal *s );
|
void send_signal_rename_notifications( Signal *s );
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
// can be used to point back to owning object.
|
||||||
|
void *owner;
|
||||||
|
|
||||||
void list_peer_signals ( void (*callback) (const char *, const OSC::Signal *, void * ), void *v );
|
void list_peer_signals ( void (*callback) (const char *, const OSC::Signal *, void * ), void *v );
|
||||||
|
|
||||||
int init ( int proto, const char *port = 0 );
|
int init ( int proto, const char *port = 0 );
|
||||||
|
|
||||||
Endpoint ( );
|
Endpoint ( );
|
||||||
|
|
||||||
~Endpoint ( );
|
~Endpoint ( );
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
bool disconnect_signal ( OSC::Signal *s, OSC::Signal *d );
|
bool disconnect_signal ( OSC::Signal *s, OSC::Signal *d );
|
||||||
bool disconnect_signal ( OSC::Signal *s, const char *peer_name, const char *signal_path );
|
bool disconnect_signal ( OSC::Signal *s, const char *peer_name, const char *signal_path );
|
||||||
bool connect_signal ( OSC::Signal *s, OSC::Signal *d );
|
bool connect_signal ( OSC::Signal *s, OSC::Signal *d );
|
||||||
|
@ -352,10 +354,12 @@ namespace OSC
|
||||||
|
|
||||||
int send ( lo_address to, const char *path, const char *v1, const char *v2, const char *v3, int v4, float v5, float v6, float v7 );
|
int send ( lo_address to, const char *path, const char *v1, const char *v2, const char *v3, int v4, float v5, float v6, float v7 );
|
||||||
|
|
||||||
// can be used to point back to owning object.
|
void peer_scan_complete_callback ( void(*_cb)(void*), void *userdata)
|
||||||
void *owner;
|
{
|
||||||
|
_peer_scan_complete_callback = _cb;
|
||||||
|
_peer_scan_complete_userdata = userdata;
|
||||||
|
}
|
||||||
|
|
||||||
sigc::signal <void> signal_peer_scan_complete;
|
|
||||||
|
|
||||||
friend Signal::~Signal();
|
friend Signal::~Signal();
|
||||||
friend void Signal::rename ( const char *name );
|
friend void Signal::rename ( const char *name );
|
||||||
|
|
|
@ -116,3 +116,10 @@ Thread::join ( void )
|
||||||
pthread_join( _thread, NULL );
|
pthread_join( _thread, NULL );
|
||||||
_thread = 0;
|
_thread = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
Thread::exit ( void *retval )
|
||||||
|
{
|
||||||
|
pthread_exit( retval );
|
||||||
|
_thread = 0;
|
||||||
|
}
|
||||||
|
|
|
@ -52,5 +52,6 @@ public:
|
||||||
bool clone ( void *(*entry_point)(void *), void *arg );
|
bool clone ( void *(*entry_point)(void *), void *arg );
|
||||||
void detach ( void );
|
void detach ( void );
|
||||||
void join ( void );
|
void join ( void );
|
||||||
|
void exit ( void *retval = 0 );
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -17,7 +17,6 @@ require_command ar ar
|
||||||
require_command makedepend makedepend
|
require_command makedepend makedepend
|
||||||
require_package JACK 0.103.0 jack
|
require_package JACK 0.103.0 jack
|
||||||
require_package liblo 0.23 liblo
|
require_package liblo 0.23 liblo
|
||||||
require_package sigcpp 2.0.0 sigc++-2.0
|
|
||||||
|
|
||||||
test_version `version_of liblo` 0.26 || warn "Version $(version_of liblo) of liblo is slow to create servers. Consider upgrading to 0.26 or later"
|
test_version `version_of liblo` 0.26 || warn "Version $(version_of liblo) of liblo is slow to create servers. Consider upgrading to 0.26 or later"
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,7 @@ nonlib/libnonlib.a: $(OBJS)
|
||||||
nonlib: nonlib/libnonlib.a
|
nonlib: nonlib/libnonlib.a
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f $(OBJS) nonlib/libnonlib.a
|
rm -f $(OBJS) nonlib/libnonlib.a .deps
|
||||||
|
|
||||||
install:
|
install:
|
||||||
@
|
@
|
|
@ -0,0 +1,540 @@
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
/* Copyright (C) 2012 Jonathan Moore Liles */
|
||||||
|
/* */
|
||||||
|
/* Permission to use, copy, modify, and/or distribute this software for */
|
||||||
|
/* any purpose with or without fee is hereby granted, provided that the */
|
||||||
|
/* above copyright notice and this permission notice appear in all */
|
||||||
|
/* copies. */
|
||||||
|
/* */
|
||||||
|
/* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL */
|
||||||
|
/* WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED */
|
||||||
|
/* WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE */
|
||||||
|
/* AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL */
|
||||||
|
/* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR */
|
||||||
|
/* PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER */
|
||||||
|
/* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR */
|
||||||
|
/* PERFORMANCE OF THIS SOFTWARE. */
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************/
|
||||||
|
/* A simple, callback based C API for NSM clients. */
|
||||||
|
/* */
|
||||||
|
/* Simplified Example: */
|
||||||
|
/* */
|
||||||
|
/* #include "nsm.h" */
|
||||||
|
/* */
|
||||||
|
/* int */
|
||||||
|
/* cb_nsm_open ( const char *name, */
|
||||||
|
/* const char *display_name, */
|
||||||
|
/* const char *client_id, */
|
||||||
|
/* char **out_msg, */
|
||||||
|
/* void *userdata ) */
|
||||||
|
/* { */
|
||||||
|
/* do_open_stuff(); */
|
||||||
|
/* return ERR_OK; */
|
||||||
|
/* } */
|
||||||
|
/* */
|
||||||
|
/* int */
|
||||||
|
/* cb_nsm_save ( char **out_msg, */
|
||||||
|
/* void *userdata ) */
|
||||||
|
/* { */
|
||||||
|
/* do_save_stuff(); */
|
||||||
|
/* return ERR_OK; */
|
||||||
|
/* } */
|
||||||
|
/* */
|
||||||
|
/* static nsm_client_t *nsm = 0 */
|
||||||
|
/* */
|
||||||
|
/* int main( int argc, char **argv ) */
|
||||||
|
/* { */
|
||||||
|
/* const char *nsm_url = getenv( "NSM_URL" ); */
|
||||||
|
/* */
|
||||||
|
/* if ( nsm_url ) */
|
||||||
|
/* { */
|
||||||
|
/* nsm = nsm_new(); */
|
||||||
|
/* */
|
||||||
|
/* nsm_set_open_callback( nsm, cb_nsm_open, 0 ); */
|
||||||
|
/* nsm_set_save_callback( nsm, cb_nsm_save, 0 ); */
|
||||||
|
/* */
|
||||||
|
/* if ( 0 == nsm_init( nsm, nsm_url ) ) */
|
||||||
|
/* { */
|
||||||
|
/* nsm_send_announce( nsm, "FOO", "", argv[0] ); */
|
||||||
|
/* } */
|
||||||
|
/* else */
|
||||||
|
/* { */
|
||||||
|
/* nsm_free( nsm ); */
|
||||||
|
/* nsm = 0; */
|
||||||
|
/* } */
|
||||||
|
/* } */
|
||||||
|
/* } */
|
||||||
|
/*************************************************************/
|
||||||
|
|
||||||
|
#ifndef _NSM_H
|
||||||
|
#define _NSM_H
|
||||||
|
|
||||||
|
#define NSM_API_VERSION_MAJOR 1
|
||||||
|
#define NSM_API_VERSION_MINOR 0
|
||||||
|
|
||||||
|
#include <lo/lo.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
typedef void * nsm_client_t;
|
||||||
|
typedef int (nsm_open_callback)( const char *name, const char *display_name, const char *client_id, char **out_msg, void *userdata );
|
||||||
|
typedef int (nsm_save_callback)( char **out_msg, void *userdata );
|
||||||
|
typedef void (nsm_active_callback)( int b, void *userdata );
|
||||||
|
typedef void (nsm_session_is_loaded_callback)( void *userdata );
|
||||||
|
typedef int (nsm_broadcast_callback)( const char *, lo_message m, void *userdata );
|
||||||
|
|
||||||
|
#define _NSM() ((struct _nsm_client_t*)nsm)
|
||||||
|
|
||||||
|
#define NSM_EXPORT __attribute__((unused)) static
|
||||||
|
|
||||||
|
/* private parts */
|
||||||
|
struct _nsm_client_t
|
||||||
|
{
|
||||||
|
const char *nsm_url;
|
||||||
|
|
||||||
|
lo_server _server;
|
||||||
|
lo_server_thread _st;
|
||||||
|
lo_address nsm_addr;
|
||||||
|
|
||||||
|
int nsm_is_active;
|
||||||
|
char *nsm_client_id;
|
||||||
|
char *_session_manager_name;
|
||||||
|
|
||||||
|
nsm_open_callback *open;
|
||||||
|
void *open_userdata;
|
||||||
|
|
||||||
|
nsm_save_callback *save;
|
||||||
|
void *save_userdata;
|
||||||
|
|
||||||
|
nsm_active_callback *active;
|
||||||
|
void *active_userdata;
|
||||||
|
|
||||||
|
nsm_session_is_loaded_callback *session_is_loaded;
|
||||||
|
void *session_is_loaded_userdata;
|
||||||
|
|
||||||
|
nsm_broadcast_callback *broadcast;
|
||||||
|
void *broadcast_userdata;
|
||||||
|
};
|
||||||
|
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
ERR_OK = 0,
|
||||||
|
ERR_GENERAL = -1,
|
||||||
|
ERR_INCOMPATIBLE_API = -2,
|
||||||
|
ERR_BLACKLISTED = -3,
|
||||||
|
ERR_LAUNCH_FAILED = -4,
|
||||||
|
ERR_NO_SUCH_FILE = -5,
|
||||||
|
ERR_NO_SESSION_OPEN = -6,
|
||||||
|
ERR_UNSAVED_CHANGES = -7,
|
||||||
|
ERR_NOT_NOW = -8
|
||||||
|
};
|
||||||
|
|
||||||
|
NSM_EXPORT
|
||||||
|
int
|
||||||
|
nsm_is_active ( nsm_client_t *nsm )
|
||||||
|
{
|
||||||
|
return _NSM()->nsm_is_active;
|
||||||
|
}
|
||||||
|
|
||||||
|
NSM_EXPORT
|
||||||
|
const char *
|
||||||
|
nsm_get_session_manager_name ( nsm_client_t *nsm )
|
||||||
|
{
|
||||||
|
return _NSM()->_session_manager_name;
|
||||||
|
}
|
||||||
|
|
||||||
|
NSM_EXPORT
|
||||||
|
nsm_client_t *
|
||||||
|
nsm_new ( void )
|
||||||
|
{
|
||||||
|
struct _nsm_client_t *nsm = (struct _nsm_client_t*)malloc( sizeof( struct _nsm_client_t ) );
|
||||||
|
|
||||||
|
nsm->nsm_url = 0;
|
||||||
|
|
||||||
|
nsm->nsm_is_active = 0;
|
||||||
|
nsm->nsm_client_id = 0;
|
||||||
|
|
||||||
|
nsm->_server = 0;
|
||||||
|
nsm->_st = 0;
|
||||||
|
nsm->nsm_addr = 0;
|
||||||
|
nsm->_session_manager_name = 0;
|
||||||
|
|
||||||
|
nsm->open = 0;
|
||||||
|
nsm->save = 0;
|
||||||
|
nsm->active = 0;
|
||||||
|
nsm->session_is_loaded = 0;
|
||||||
|
nsm->broadcast = 0;
|
||||||
|
|
||||||
|
return (nsm_client_t *)nsm;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*******************************************/
|
||||||
|
/* CLIENT TO SERVER INFORMATIONAL MESSAGES */
|
||||||
|
/*******************************************/
|
||||||
|
|
||||||
|
NSM_EXPORT
|
||||||
|
void
|
||||||
|
nsm_send_is_dirty ( nsm_client_t *nsm )
|
||||||
|
{
|
||||||
|
if ( _NSM()->nsm_is_active )
|
||||||
|
lo_send_from( _NSM()->nsm_addr, _NSM()->_server, LO_TT_IMMEDIATE, "/nsm/client/is_dirty", "" );
|
||||||
|
}
|
||||||
|
|
||||||
|
NSM_EXPORT
|
||||||
|
void
|
||||||
|
nsm_send_is_clean ( nsm_client_t *nsm )
|
||||||
|
{
|
||||||
|
if ( _NSM()->nsm_is_active )
|
||||||
|
lo_send_from( _NSM()->nsm_addr, _NSM()->_server, LO_TT_IMMEDIATE, "/nsm/client/is_clean", "" );
|
||||||
|
}
|
||||||
|
|
||||||
|
NSM_EXPORT
|
||||||
|
void
|
||||||
|
nsm_send_progress ( nsm_client_t *nsm, float p )
|
||||||
|
{
|
||||||
|
if ( _NSM()->nsm_is_active )
|
||||||
|
lo_send_from( _NSM()->nsm_addr, _NSM()->_server, LO_TT_IMMEDIATE, "/nsm/client/progress", "f", p );
|
||||||
|
}
|
||||||
|
|
||||||
|
NSM_EXPORT
|
||||||
|
void
|
||||||
|
nsm_send_message ( nsm_client_t *nsm, int priority, const char *msg )
|
||||||
|
{
|
||||||
|
if ( _NSM()->nsm_is_active )
|
||||||
|
lo_send_from( _NSM()->nsm_addr, _NSM()->_server, LO_TT_IMMEDIATE, "/nsm/client/message", "is", priority, msg );
|
||||||
|
}
|
||||||
|
|
||||||
|
NSM_EXPORT void
|
||||||
|
nsm_send_announce ( nsm_client_t *nsm, const char *app_name, const char *capabilities, const char *process_name )
|
||||||
|
{
|
||||||
|
lo_address to = lo_address_new_from_url( _NSM()->nsm_url );
|
||||||
|
|
||||||
|
if ( ! to )
|
||||||
|
{
|
||||||
|
fprintf( stderr, "NSM: Bad address!" );
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
int pid = (int)getpid();
|
||||||
|
|
||||||
|
lo_send_from( to, _NSM()->_server, LO_TT_IMMEDIATE, "/nsm/server/announce", "sssiii",
|
||||||
|
app_name,
|
||||||
|
capabilities,
|
||||||
|
process_name,
|
||||||
|
NSM_API_VERSION_MAJOR,
|
||||||
|
NSM_API_VERSION_MINOR,
|
||||||
|
pid );
|
||||||
|
|
||||||
|
lo_address_free( to );
|
||||||
|
}
|
||||||
|
|
||||||
|
NSM_EXPORT void
|
||||||
|
nsm_send_broadcast ( nsm_client_t *nsm, lo_message msg )
|
||||||
|
{
|
||||||
|
if ( _NSM()->nsm_is_active )
|
||||||
|
lo_send_message_from( _NSM()->nsm_addr, _NSM()->_server, "/nsm/server/broadcast", msg );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
NSM_EXPORT
|
||||||
|
void
|
||||||
|
nsm_check_wait ( nsm_client_t *nsm, int timeout )
|
||||||
|
{
|
||||||
|
if ( lo_server_wait( _NSM()->_server, timeout ) )
|
||||||
|
while ( lo_server_recv_noblock( _NSM()->_server, 0 ) ) {}
|
||||||
|
}
|
||||||
|
|
||||||
|
NSM_EXPORT
|
||||||
|
void
|
||||||
|
nsm_check_nowait (nsm_client_t *nsm )
|
||||||
|
{
|
||||||
|
nsm_check_wait( nsm, 0 );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
NSM_EXPORT
|
||||||
|
void
|
||||||
|
nsm_thread_start ( nsm_client_t *nsm )
|
||||||
|
{
|
||||||
|
lo_server_thread_start( _NSM()->_st );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
NSM_EXPORT
|
||||||
|
void
|
||||||
|
nsm_thread_stop ( nsm_client_t *nsm )
|
||||||
|
{
|
||||||
|
lo_server_thread_stop( _NSM()->_st );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
NSM_EXPORT void
|
||||||
|
nsm_free ( nsm_client_t *nsm )
|
||||||
|
{
|
||||||
|
if ( _NSM()->_st )
|
||||||
|
nsm_thread_stop( nsm );
|
||||||
|
|
||||||
|
if ( _NSM()->_st )
|
||||||
|
lo_server_thread_free( _NSM()->_st );
|
||||||
|
else
|
||||||
|
lo_server_free( _NSM()->_server );
|
||||||
|
|
||||||
|
free( _NSM() );
|
||||||
|
}
|
||||||
|
|
||||||
|
/*****************/
|
||||||
|
/* SET CALLBACKS */
|
||||||
|
/*****************/
|
||||||
|
|
||||||
|
NSM_EXPORT
|
||||||
|
void
|
||||||
|
nsm_set_open_callback( nsm_client_t *nsm, nsm_open_callback *open_callback, void *userdata )
|
||||||
|
{
|
||||||
|
_NSM()->open = open_callback;
|
||||||
|
_NSM()->open_userdata = userdata;
|
||||||
|
}
|
||||||
|
|
||||||
|
NSM_EXPORT
|
||||||
|
void
|
||||||
|
nsm_set_save_callback( nsm_client_t *nsm, nsm_save_callback *save_callback, void *userdata )
|
||||||
|
{
|
||||||
|
_NSM()->save = save_callback;
|
||||||
|
_NSM()->save_userdata = userdata;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
NSM_EXPORT
|
||||||
|
void
|
||||||
|
nsm_set_active_callback( nsm_client_t *nsm, nsm_active_callback *active_callback, void *userdata )
|
||||||
|
{
|
||||||
|
_NSM()->active = active_callback;
|
||||||
|
_NSM()->active_userdata = userdata;
|
||||||
|
}
|
||||||
|
|
||||||
|
NSM_EXPORT
|
||||||
|
void
|
||||||
|
nsm_set_session_is_loaded_callback( nsm_client_t *nsm, nsm_session_is_loaded_callback *session_is_loaded_callback, void *userdata )
|
||||||
|
{
|
||||||
|
_NSM()->session_is_loaded = session_is_loaded_callback;
|
||||||
|
_NSM()->session_is_loaded_userdata = userdata;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
NSM_EXPORT
|
||||||
|
void
|
||||||
|
nsm_set_broadcast_callback( nsm_client_t *nsm, nsm_broadcast_callback *broadcast_callback, void *userdata )
|
||||||
|
{
|
||||||
|
_NSM()->broadcast = broadcast_callback;
|
||||||
|
_NSM()->broadcast_userdata = userdata;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/****************/
|
||||||
|
/* OSC HANDLERS */
|
||||||
|
/****************/
|
||||||
|
|
||||||
|
#undef OSC_REPLY
|
||||||
|
#undef OSC_REPLY_ERR
|
||||||
|
|
||||||
|
#define OSC_REPLY( value ) lo_send_from( ((struct _nsm_client_t*)user_data)->nsm_addr, ((struct _nsm_client_t*)user_data)->_server, LO_TT_IMMEDIATE, "/reply", "ss", path, value )
|
||||||
|
|
||||||
|
#define OSC_REPLY_ERR( errcode, value ) lo_send_from( ((struct _nsm_client_t*)user_data)->nsm_addr, ((struct _nsm_client_t*)user_data)->_server, LO_TT_IMMEDIATE, "/error", "sis", path, errcode, value )
|
||||||
|
|
||||||
|
|
||||||
|
NSM_EXPORT int _nsm_osc_open ( const char *path, const char *types, lo_arg **argv, int argc, lo_message msg, void *user_data )
|
||||||
|
{
|
||||||
|
(void) types;
|
||||||
|
(void) argc;
|
||||||
|
(void) msg;
|
||||||
|
|
||||||
|
char *out_msg = NULL;
|
||||||
|
|
||||||
|
struct _nsm_client_t *nsm = (struct _nsm_client_t*)user_data;
|
||||||
|
|
||||||
|
nsm->nsm_client_id = strdup( &argv[2]->s );
|
||||||
|
|
||||||
|
if ( ! nsm->open )
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
int r = nsm->open( &argv[0]->s, &argv[1]->s, &argv[2]->s, &out_msg, nsm->open_userdata );
|
||||||
|
|
||||||
|
if ( r )
|
||||||
|
OSC_REPLY_ERR( r, ( out_msg ? out_msg : "") );
|
||||||
|
else
|
||||||
|
OSC_REPLY( "OK" );
|
||||||
|
|
||||||
|
if ( out_msg )
|
||||||
|
free( out_msg );
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
NSM_EXPORT int _nsm_osc_save ( const char *path, const char *types, lo_arg **argv, int argc, lo_message msg, void *user_data )
|
||||||
|
{
|
||||||
|
(void) types;
|
||||||
|
(void) argv;
|
||||||
|
(void) argc;
|
||||||
|
(void) msg;
|
||||||
|
|
||||||
|
char *out_msg = NULL;
|
||||||
|
|
||||||
|
struct _nsm_client_t *nsm = (struct _nsm_client_t*)user_data;
|
||||||
|
|
||||||
|
if ( ! nsm->save )
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
int r = nsm->save(&out_msg, nsm->save_userdata );
|
||||||
|
|
||||||
|
if ( r )
|
||||||
|
OSC_REPLY_ERR( r, ( out_msg ? out_msg : "") );
|
||||||
|
else
|
||||||
|
OSC_REPLY( "OK" );
|
||||||
|
|
||||||
|
if ( out_msg )
|
||||||
|
free( out_msg );
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
NSM_EXPORT int _nsm_osc_announce_reply ( const char *path, const char *types, lo_arg **argv, int argc, lo_message msg, void *user_data )
|
||||||
|
{
|
||||||
|
(void) path;
|
||||||
|
(void) types;
|
||||||
|
(void) argc;
|
||||||
|
|
||||||
|
if ( strcmp( &argv[0]->s, "/nsm/server/announce" ) )
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
struct _nsm_client_t *nsm = (struct _nsm_client_t*)user_data;
|
||||||
|
|
||||||
|
fprintf( stderr, "NSM: Successfully registered. NSM says: %s", &argv[1]->s );
|
||||||
|
|
||||||
|
nsm->nsm_is_active = 1;
|
||||||
|
nsm->_session_manager_name = strdup( &argv[2]->s );
|
||||||
|
nsm->nsm_addr = lo_address_new_from_url( lo_address_get_url( lo_message_get_source( msg ) ));
|
||||||
|
|
||||||
|
if ( nsm->active )
|
||||||
|
nsm->active( nsm->nsm_is_active, nsm->active_userdata );
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
NSM_EXPORT int _nsm_osc_error ( const char *path, const char *types, lo_arg **argv, int argc, lo_message msg, void *user_data )
|
||||||
|
{
|
||||||
|
(void) path;
|
||||||
|
(void) types;
|
||||||
|
(void) argc;
|
||||||
|
(void) msg;
|
||||||
|
|
||||||
|
if ( strcmp( &argv[0]->s, "/nsm/server/announce" ) )
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
struct _nsm_client_t *nsm = (struct _nsm_client_t*)user_data;
|
||||||
|
|
||||||
|
fprintf( stderr, "NSM: Failed to register with NSM server: %s", &argv[2]->s );
|
||||||
|
|
||||||
|
nsm->nsm_is_active = 0;
|
||||||
|
|
||||||
|
if ( nsm->active )
|
||||||
|
nsm->active( nsm->nsm_is_active, nsm->active_userdata );
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
NSM_EXPORT int _nsm_osc_session_is_loaded ( const char *path, const char *types, lo_arg **argv, int argc, lo_message msg, void *user_data )
|
||||||
|
{
|
||||||
|
(void) path;
|
||||||
|
(void) types;
|
||||||
|
(void) argv;
|
||||||
|
(void) argc;
|
||||||
|
(void) msg;
|
||||||
|
|
||||||
|
struct _nsm_client_t *nsm = (struct _nsm_client_t*)user_data;
|
||||||
|
|
||||||
|
if ( ! nsm->session_is_loaded )
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
nsm->session_is_loaded( nsm->session_is_loaded_userdata );
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
NSM_EXPORT int _nsm_osc_broadcast ( const char *path, const char *types, lo_arg **argv, int argc, lo_message msg, void *user_data )
|
||||||
|
{
|
||||||
|
(void) types;
|
||||||
|
(void) argv;
|
||||||
|
(void) argc;
|
||||||
|
|
||||||
|
struct _nsm_client_t *nsm = (struct _nsm_client_t*)user_data;
|
||||||
|
|
||||||
|
if ( ! nsm->broadcast )
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
return nsm->broadcast( path, msg, nsm->broadcast_userdata );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
NSM_EXPORT
|
||||||
|
int
|
||||||
|
nsm_init ( nsm_client_t *nsm, const char *nsm_url )
|
||||||
|
{
|
||||||
|
_NSM()->nsm_url = nsm_url;
|
||||||
|
|
||||||
|
lo_address addr = lo_address_new_from_url( nsm_url );
|
||||||
|
int proto = lo_address_get_protocol( addr );
|
||||||
|
lo_address_free( addr );
|
||||||
|
|
||||||
|
_NSM()->_server = lo_server_new_with_proto( NULL, proto, NULL );
|
||||||
|
|
||||||
|
if ( ! _NSM()->_server )
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
lo_server_add_method( _NSM()->_server, "/error", "sis", _nsm_osc_error, _NSM() );
|
||||||
|
lo_server_add_method( _NSM()->_server, "/reply", "ssss", _nsm_osc_announce_reply, _NSM() );
|
||||||
|
lo_server_add_method( _NSM()->_server, "/nsm/client/open", "sss", _nsm_osc_open, _NSM() );
|
||||||
|
lo_server_add_method( _NSM()->_server, "/nsm/client/save", "", _nsm_osc_save, _NSM() );
|
||||||
|
lo_server_add_method( _NSM()->_server, "/nsm/client/session_is_loaded", "", _nsm_osc_session_is_loaded, _NSM() );
|
||||||
|
lo_server_add_method( _NSM()->_server, NULL, NULL, _nsm_osc_broadcast, _NSM() );
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
NSM_EXPORT
|
||||||
|
int
|
||||||
|
nsm_init_thread ( nsm_client_t *nsm, const char *nsm_url )
|
||||||
|
{
|
||||||
|
_NSM()->nsm_url = nsm_url;
|
||||||
|
|
||||||
|
lo_address addr = lo_address_new_from_url( nsm_url );
|
||||||
|
int proto = lo_address_get_protocol( addr );
|
||||||
|
lo_address_free( addr );
|
||||||
|
|
||||||
|
_NSM()->_st = lo_server_thread_new_with_proto( NULL, proto, NULL );
|
||||||
|
_NSM()->_server = lo_server_thread_get_server( _NSM()->_st );
|
||||||
|
|
||||||
|
if ( ! _NSM()->_server )
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
lo_server_thread_add_method( _NSM()->_st, "/error", "sis", _nsm_osc_error, _NSM() );
|
||||||
|
lo_server_thread_add_method( _NSM()->_st, "/reply", "ssss", _nsm_osc_announce_reply, _NSM() );
|
||||||
|
lo_server_thread_add_method( _NSM()->_st, "/nsm/client/open", "sss", _nsm_osc_open, _NSM() );
|
||||||
|
lo_server_thread_add_method( _NSM()->_st, "/nsm/client/save", "", _nsm_osc_save, _NSM() );
|
||||||
|
lo_server_thread_add_method( _NSM()->_st, "/nsm/client/session_is_loaded", "", _nsm_osc_session_is_loaded, _NSM() );
|
||||||
|
lo_server_thread_add_method( _NSM()->_st, NULL, NULL, _nsm_osc_broadcast, _NSM() );
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /* NSM_H */
|
|
@ -0,0 +1,85 @@
|
||||||
|
|
||||||
|
/*******************************************************************************/
|
||||||
|
/* Copyright (C) 2012 Jonathan Moore Liles */
|
||||||
|
/* */
|
||||||
|
/* This program is free software; you can redistribute it and/or modify it */
|
||||||
|
/* under the terms of the GNU General Public License as published by the */
|
||||||
|
/* Free Software Foundation; either version 2 of the License, or (at your */
|
||||||
|
/* option) any later version. */
|
||||||
|
/* */
|
||||||
|
/* This program is distributed in the hope that it will be useful, but WITHOUT */
|
||||||
|
/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */
|
||||||
|
/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */
|
||||||
|
/* more details. */
|
||||||
|
/* */
|
||||||
|
/* You should have received a copy of the GNU General Public License along */
|
||||||
|
/* with This program; see the file COPYING. If not,write to the Free Software */
|
||||||
|
/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||||
|
/*******************************************************************************/
|
||||||
|
|
||||||
|
#include <string.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
void unescape_url ( char *url )
|
||||||
|
{
|
||||||
|
char *r, *w;
|
||||||
|
|
||||||
|
r = w = url;
|
||||||
|
|
||||||
|
for ( ; *r; r++, w++ )
|
||||||
|
{
|
||||||
|
if ( *r == '%' )
|
||||||
|
{
|
||||||
|
char data[3] = { *(r + 1), *(r + 2), 0 };
|
||||||
|
|
||||||
|
int c;
|
||||||
|
|
||||||
|
sscanf( data, "%2X", &c );
|
||||||
|
|
||||||
|
*w = c;
|
||||||
|
|
||||||
|
r += 2;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
*w = *r;
|
||||||
|
}
|
||||||
|
|
||||||
|
*w = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
char *escape_url ( const char *url )
|
||||||
|
{
|
||||||
|
const char *s;
|
||||||
|
char *w;
|
||||||
|
|
||||||
|
char r[1024];
|
||||||
|
|
||||||
|
s = url;
|
||||||
|
|
||||||
|
w = r;
|
||||||
|
|
||||||
|
for ( ; *s && w < r + sizeof( r ); s++, w++ )
|
||||||
|
{
|
||||||
|
switch ( *s )
|
||||||
|
{
|
||||||
|
case ' ':
|
||||||
|
case '<':
|
||||||
|
case '>':
|
||||||
|
case '%':
|
||||||
|
case '#':
|
||||||
|
case '*':
|
||||||
|
case ',':
|
||||||
|
sprintf( w, "%%%2X", *s );
|
||||||
|
w += 2;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
*w = *s;
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
*w = 0;
|
||||||
|
|
||||||
|
return strdup( r );
|
||||||
|
}
|
|
@ -17,6 +17,5 @@
|
||||||
/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||||
/*******************************************************************************/
|
/*******************************************************************************/
|
||||||
|
|
||||||
#include <FL/Fl.H>
|
void unescape_url ( char *url );
|
||||||
|
char * escape_url ( const char *url );
|
||||||
void init_gleam_boxtypes ( void );
|
|
|
@ -55,6 +55,15 @@ else
|
||||||
CXXFLAGS := -fno-rtti -fno-exceptions
|
CXXFLAGS := -fno-rtti -fno-exceptions
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
# LIBS := "$(FLTK_LIBS) $(LIBS)"
|
||||||
|
|
||||||
|
INCLUDES := -I. -Iutil -IFL -Inonlib
|
||||||
|
INCLUDES += $(FLTK_CFLAGS)
|
||||||
|
|
||||||
|
# INCLUDES +=
|
||||||
|
|
||||||
|
# CFLAGS += $(FLTK_CFLAGS)
|
||||||
|
|
||||||
# include FL/makefile.inc
|
# include FL/makefile.inc
|
||||||
include makefile.inc
|
include makefile.inc
|
||||||
|
|
||||||
|
@ -66,24 +75,24 @@ CFLAGS+=-DVERSION=\"$(VERSION)\" \
|
||||||
|
|
||||||
CXXFLAGS := $(CFLAGS) $(CXXFLAGS)
|
CXXFLAGS := $(CFLAGS) $(CXXFLAGS)
|
||||||
|
|
||||||
INCLUDES := -I. -Iutil -IFL -Inonlib
|
|
||||||
|
|
||||||
include scripts/colors
|
include scripts/colors
|
||||||
|
|
||||||
SPACE+="
`tput cuf 20`"
|
SPACE:="
`tput cuf 20`"
|
||||||
|
|
||||||
ifneq ($(CALCULATING),yes)
|
ifneq ($(CALCULATING),yes)
|
||||||
COMPILING="$(BOLD)$(BLACK)$(PACKAGE)$(SPACE)$(SGR0)$(CYAN)`scripts/percent-complete .files "$<"`$(SGR0)$(BOLD)$(BLACK)]$(SGR0) $(BOLD)$(CYAN)$<$(SGR0)"
|
COMPILING="$(BOLD)$(BLACK)[$(SGR0) $(PACKAGE)$(SPACE)$(SGR0)$(CYAN)`scripts/percent-complete .files "$<"` $(SGR0)$(BOLD)$(BLACK)]$(SGR0) $(BOLD)$(CYAN)$<$(SGR0)"
|
||||||
else
|
else
|
||||||
COMPILING="Compiling: $<"
|
COMPILING="Compiling: $<"
|
||||||
endif
|
endif
|
||||||
|
|
||||||
.C.o:
|
.C.o:
|
||||||
@ echo $(COMPILING)
|
@ echo $(COMPILING)
|
||||||
@ $(CXX) $(CXXFLAGS) $(INCLUDES) -c $< -o $@
|
@ $(CXX) $(INCLUDES) $(CXXFLAGS) -c $< -o $@
|
||||||
|
|
||||||
%.C : %.fl
|
%.C : %.fl
|
||||||
@ cd `dirname $<` && fluid -c ../$<
|
@ cd `dirname $<` && $(FLUID) -c `basename $<`
|
||||||
|
|
||||||
DONE := $(BOLD)$(GREEN)done$(SGR0)
|
DONE := $(BOLD)$(GREEN)done$(SGR0)
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,40 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Copyright (C) 2008 Jonathan Moore Liles #
|
||||||
|
# #
|
||||||
|
# This program is free software; you can redistribute it and/or modify it #
|
||||||
|
# under the terms of the GNU General Public License as published by the #
|
||||||
|
# Free Software Foundation; either version 2 of the License, or (at your #
|
||||||
|
# option) any later version. #
|
||||||
|
# #
|
||||||
|
# This program is distributed in the hope that it will be useful, but WITHOUT #
|
||||||
|
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or #
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for #
|
||||||
|
# more details. #
|
||||||
|
# #
|
||||||
|
# You should have received a copy of the GNU General Public License along #
|
||||||
|
# with This program; see the file COPYING. If not,write to the Free Software #
|
||||||
|
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #
|
||||||
|
|
||||||
|
if [ "$#" = 0 ]
|
||||||
|
then
|
||||||
|
echo "Usage: $0 [output_file.h] [version]"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -d ../.git ]
|
||||||
|
then
|
||||||
|
ID=`git log -1 --format=%h -- .`
|
||||||
|
# ID="`[ \`git rev-parse HEAD\` = \`git rev-parse v${2}\` ] || git rev-parse --short HEAD`"
|
||||||
|
if [ -n "$ID" ]
|
||||||
|
then
|
||||||
|
ID="git {$ID}"
|
||||||
|
else
|
||||||
|
ID="git"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
ID="dist"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "/* generated file */" > "$1"
|
||||||
|
echo "const char *BUILD_ID = \"${ID}\";" >> "$1"
|
||||||
|
echo "const char *VERSION = \"${2}\";" >> "$1"
|
|
@ -127,18 +127,18 @@ ask ()
|
||||||
|
|
||||||
ok ()
|
ok ()
|
||||||
{
|
{
|
||||||
echo '\r'`tput cuf 30`"$BOLD${GREEN}ok${SGR0} ${*:+${BOLD}${BLACK}($*)${SGR0}}"
|
echo '
'`tput cuf 30`"$BOLD${GREEN}ok${SGR0} ${*:+${BOLD}${BLACK}($*)${SGR0}}"
|
||||||
}
|
}
|
||||||
|
|
||||||
failed ()
|
failed ()
|
||||||
{
|
{
|
||||||
echo '\r'`tput cuf 30`"$BOLD${RED}failed!${SGR0}" > /dev/stderr
|
echo '
'`tput cuf 30`"$BOLD${RED}failed!${SGR0}" > /dev/stderr
|
||||||
rm -f .config
|
rm -f .config
|
||||||
}
|
}
|
||||||
|
|
||||||
missing ()
|
missing ()
|
||||||
{
|
{
|
||||||
echo '\r'`tput cuf 30`"$BOLD${YELLOW}missing!${SGR0}" > /dev/stderr
|
echo '
'`tput cuf 30`"$BOLD${YELLOW}missing!${SGR0}" > /dev/stderr
|
||||||
}
|
}
|
||||||
|
|
||||||
using ()
|
using ()
|
||||||
|
@ -184,7 +184,7 @@ begin ()
|
||||||
{
|
{
|
||||||
echo -n "Checking sanity..."
|
echo -n "Checking sanity..."
|
||||||
require_command tput tput > /dev/null
|
require_command tput tput > /dev/null
|
||||||
require_command pkg-config pkg-config > /dev/null
|
require_command pkg_config pkg-config > /dev/null
|
||||||
require_command sed sed > /dev/null
|
require_command sed sed > /dev/null
|
||||||
ok
|
ok
|
||||||
}
|
}
|
||||||
|
@ -254,13 +254,22 @@ require_command ()
|
||||||
{
|
{
|
||||||
echo -n "Checking for ${BOLD}$1${SGR0}..."
|
echo -n "Checking for ${BOLD}$1${SGR0}..."
|
||||||
|
|
||||||
if ! [ -x "`which $2`" ]
|
local name;
|
||||||
|
|
||||||
|
if [ -x "$2" ]
|
||||||
then
|
then
|
||||||
|
name="$PWD/$2"
|
||||||
|
ok "$name"
|
||||||
|
elif [ -x "`which "$2"`" ]
|
||||||
|
then
|
||||||
|
name="`which "$2"`"
|
||||||
|
ok "$name"
|
||||||
|
else
|
||||||
failed
|
failed
|
||||||
fatal "Command $1 not found."
|
fatal "Command $1 not found."
|
||||||
else
|
|
||||||
ok
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
append "$1=$name"
|
||||||
}
|
}
|
||||||
|
|
||||||
require_package ()
|
require_package ()
|
||||||
|
@ -352,10 +361,13 @@ hostname_resolvable ()
|
||||||
require_FLTK ()
|
require_FLTK ()
|
||||||
{
|
{
|
||||||
local use
|
local use
|
||||||
|
local appendflags
|
||||||
|
|
||||||
|
require_command ntk_config lib/ntk/ntk-config
|
||||||
|
|
||||||
echo -n "Checking for ${BOLD}FLTK${SGR0}..."
|
echo -n "Checking for ${BOLD}FLTK${SGR0}..."
|
||||||
|
|
||||||
FLTK_VERSION=`fltk-config --version`
|
FLTK_VERSION=`lib/ntk/ntk-config --version`
|
||||||
|
|
||||||
if ! test_version $FLTK_VERSION $1
|
if ! test_version $FLTK_VERSION $1
|
||||||
then
|
then
|
||||||
|
@ -366,13 +378,18 @@ require_FLTK ()
|
||||||
fi
|
fi
|
||||||
|
|
||||||
use=
|
use=
|
||||||
|
appendflags=
|
||||||
|
|
||||||
while [ $# -gt 1 ]
|
while [ $# -gt 1 ]
|
||||||
do
|
do
|
||||||
shift 1
|
shift 1
|
||||||
|
|
||||||
|
[ "$1" = 'cairo' ] && appendflags="-DFLTK_HAVE_CAIRO=1 -DUSE_X11=1"
|
||||||
|
|
||||||
use="$use --use-$1"
|
use="$use --use-$1"
|
||||||
done
|
done
|
||||||
|
|
||||||
append "FLTK_LIBS=`fltk-config $use --ldflags | sed 's/,\\?--as-needed//g'`"
|
append "FLTK_LIBS=`lib/ntk/ntk-config $use --libs | sed 's/,\\?--as-needed//g'`"
|
||||||
append "FLTK_CFLAGS=`fltk-config $use --cflags`"
|
append "FLTK_LDFLAGS=`lib/ntk/ntk-config $use --ldflags | sed 's/,\\?--as-needed//g'`"
|
||||||
|
append "FLTK_CFLAGS=`lib/ntk/ntk-config $use --cflags` $appendflags"
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,340 @@
|
||||||
|
GNU GENERAL PUBLIC LICENSE
|
||||||
|
Version 2, June 1991
|
||||||
|
|
||||||
|
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||||
|
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
|
Preamble
|
||||||
|
|
||||||
|
The licenses for most software are designed to take away your
|
||||||
|
freedom to share and change it. By contrast, the GNU General Public
|
||||||
|
License is intended to guarantee your freedom to share and change free
|
||||||
|
software--to make sure the software is free for all its users. This
|
||||||
|
General Public License applies to most of the Free Software
|
||||||
|
Foundation's software and to any other program whose authors commit to
|
||||||
|
using it. (Some other Free Software Foundation software is covered by
|
||||||
|
the GNU Library General Public License instead.) You can apply it to
|
||||||
|
your programs, too.
|
||||||
|
|
||||||
|
When we speak of free software, we are referring to freedom, not
|
||||||
|
price. Our General Public Licenses are designed to make sure that you
|
||||||
|
have the freedom to distribute copies of free software (and charge for
|
||||||
|
this service if you wish), that you receive source code or can get it
|
||||||
|
if you want it, that you can change the software or use pieces of it
|
||||||
|
in new free programs; and that you know you can do these things.
|
||||||
|
|
||||||
|
To protect your rights, we need to make restrictions that forbid
|
||||||
|
anyone to deny you these rights or to ask you to surrender the rights.
|
||||||
|
These restrictions translate to certain responsibilities for you if you
|
||||||
|
distribute copies of the software, or if you modify it.
|
||||||
|
|
||||||
|
For example, if you distribute copies of such a program, whether
|
||||||
|
gratis or for a fee, you must give the recipients all the rights that
|
||||||
|
you have. You must make sure that they, too, receive or can get the
|
||||||
|
source code. And you must show them these terms so they know their
|
||||||
|
rights.
|
||||||
|
|
||||||
|
We protect your rights with two steps: (1) copyright the software, and
|
||||||
|
(2) offer you this license which gives you legal permission to copy,
|
||||||
|
distribute and/or modify the software.
|
||||||
|
|
||||||
|
Also, for each author's protection and ours, we want to make certain
|
||||||
|
that everyone understands that there is no warranty for this free
|
||||||
|
software. If the software is modified by someone else and passed on, we
|
||||||
|
want its recipients to know that what they have is not the original, so
|
||||||
|
that any problems introduced by others will not reflect on the original
|
||||||
|
authors' reputations.
|
||||||
|
|
||||||
|
Finally, any free program is threatened constantly by software
|
||||||
|
patents. We wish to avoid the danger that redistributors of a free
|
||||||
|
program will individually obtain patent licenses, in effect making the
|
||||||
|
program proprietary. To prevent this, we have made it clear that any
|
||||||
|
patent must be licensed for everyone's free use or not licensed at all.
|
||||||
|
|
||||||
|
The precise terms and conditions for copying, distribution and
|
||||||
|
modification follow.
|
||||||
|
|
||||||
|
GNU GENERAL PUBLIC LICENSE
|
||||||
|
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||||
|
|
||||||
|
0. This License applies to any program or other work which contains
|
||||||
|
a notice placed by the copyright holder saying it may be distributed
|
||||||
|
under the terms of this General Public License. The "Program", below,
|
||||||
|
refers to any such program or work, and a "work based on the Program"
|
||||||
|
means either the Program or any derivative work under copyright law:
|
||||||
|
that is to say, a work containing the Program or a portion of it,
|
||||||
|
either verbatim or with modifications and/or translated into another
|
||||||
|
language. (Hereinafter, translation is included without limitation in
|
||||||
|
the term "modification".) Each licensee is addressed as "you".
|
||||||
|
|
||||||
|
Activities other than copying, distribution and modification are not
|
||||||
|
covered by this License; they are outside its scope. The act of
|
||||||
|
running the Program is not restricted, and the output from the Program
|
||||||
|
is covered only if its contents constitute a work based on the
|
||||||
|
Program (independent of having been made by running the Program).
|
||||||
|
Whether that is true depends on what the Program does.
|
||||||
|
|
||||||
|
1. You may copy and distribute verbatim copies of the Program's
|
||||||
|
source code as you receive it, in any medium, provided that you
|
||||||
|
conspicuously and appropriately publish on each copy an appropriate
|
||||||
|
copyright notice and disclaimer of warranty; keep intact all the
|
||||||
|
notices that refer to this License and to the absence of any warranty;
|
||||||
|
and give any other recipients of the Program a copy of this License
|
||||||
|
along with the Program.
|
||||||
|
|
||||||
|
You may charge a fee for the physical act of transferring a copy, and
|
||||||
|
you may at your option offer warranty protection in exchange for a fee.
|
||||||
|
|
||||||
|
2. You may modify your copy or copies of the Program or any portion
|
||||||
|
of it, thus forming a work based on the Program, and copy and
|
||||||
|
distribute such modifications or work under the terms of Section 1
|
||||||
|
above, provided that you also meet all of these conditions:
|
||||||
|
|
||||||
|
a) You must cause the modified files to carry prominent notices
|
||||||
|
stating that you changed the files and the date of any change.
|
||||||
|
|
||||||
|
b) You must cause any work that you distribute or publish, that in
|
||||||
|
whole or in part contains or is derived from the Program or any
|
||||||
|
part thereof, to be licensed as a whole at no charge to all third
|
||||||
|
parties under the terms of this License.
|
||||||
|
|
||||||
|
c) If the modified program normally reads commands interactively
|
||||||
|
when run, you must cause it, when started running for such
|
||||||
|
interactive use in the most ordinary way, to print or display an
|
||||||
|
announcement including an appropriate copyright notice and a
|
||||||
|
notice that there is no warranty (or else, saying that you provide
|
||||||
|
a warranty) and that users may redistribute the program under
|
||||||
|
these conditions, and telling the user how to view a copy of this
|
||||||
|
License. (Exception: if the Program itself is interactive but
|
||||||
|
does not normally print such an announcement, your work based on
|
||||||
|
the Program is not required to print an announcement.)
|
||||||
|
|
||||||
|
These requirements apply to the modified work as a whole. If
|
||||||
|
identifiable sections of that work are not derived from the Program,
|
||||||
|
and can be reasonably considered independent and separate works in
|
||||||
|
themselves, then this License, and its terms, do not apply to those
|
||||||
|
sections when you distribute them as separate works. But when you
|
||||||
|
distribute the same sections as part of a whole which is a work based
|
||||||
|
on the Program, the distribution of the whole must be on the terms of
|
||||||
|
this License, whose permissions for other licensees extend to the
|
||||||
|
entire whole, and thus to each and every part regardless of who wrote it.
|
||||||
|
|
||||||
|
Thus, it is not the intent of this section to claim rights or contest
|
||||||
|
your rights to work written entirely by you; rather, the intent is to
|
||||||
|
exercise the right to control the distribution of derivative or
|
||||||
|
collective works based on the Program.
|
||||||
|
|
||||||
|
In addition, mere aggregation of another work not based on the Program
|
||||||
|
with the Program (or with a work based on the Program) on a volume of
|
||||||
|
a storage or distribution medium does not bring the other work under
|
||||||
|
the scope of this License.
|
||||||
|
|
||||||
|
3. You may copy and distribute the Program (or a work based on it,
|
||||||
|
under Section 2) in object code or executable form under the terms of
|
||||||
|
Sections 1 and 2 above provided that you also do one of the following:
|
||||||
|
|
||||||
|
a) Accompany it with the complete corresponding machine-readable
|
||||||
|
source code, which must be distributed under the terms of Sections
|
||||||
|
1 and 2 above on a medium customarily used for software interchange; or,
|
||||||
|
|
||||||
|
b) Accompany it with a written offer, valid for at least three
|
||||||
|
years, to give any third party, for a charge no more than your
|
||||||
|
cost of physically performing source distribution, a complete
|
||||||
|
machine-readable copy of the corresponding source code, to be
|
||||||
|
distributed under the terms of Sections 1 and 2 above on a medium
|
||||||
|
customarily used for software interchange; or,
|
||||||
|
|
||||||
|
c) Accompany it with the information you received as to the offer
|
||||||
|
to distribute corresponding source code. (This alternative is
|
||||||
|
allowed only for noncommercial distribution and only if you
|
||||||
|
received the program in object code or executable form with such
|
||||||
|
an offer, in accord with Subsection b above.)
|
||||||
|
|
||||||
|
The source code for a work means the preferred form of the work for
|
||||||
|
making modifications to it. For an executable work, complete source
|
||||||
|
code means all the source code for all modules it contains, plus any
|
||||||
|
associated interface definition files, plus the scripts used to
|
||||||
|
control compilation and installation of the executable. However, as a
|
||||||
|
special exception, the source code distributed need not include
|
||||||
|
anything that is normally distributed (in either source or binary
|
||||||
|
form) with the major components (compiler, kernel, and so on) of the
|
||||||
|
operating system on which the executable runs, unless that component
|
||||||
|
itself accompanies the executable.
|
||||||
|
|
||||||
|
If distribution of executable or object code is made by offering
|
||||||
|
access to copy from a designated place, then offering equivalent
|
||||||
|
access to copy the source code from the same place counts as
|
||||||
|
distribution of the source code, even though third parties are not
|
||||||
|
compelled to copy the source along with the object code.
|
||||||
|
|
||||||
|
4. You may not copy, modify, sublicense, or distribute the Program
|
||||||
|
except as expressly provided under this License. Any attempt
|
||||||
|
otherwise to copy, modify, sublicense or distribute the Program is
|
||||||
|
void, and will automatically terminate your rights under this License.
|
||||||
|
However, parties who have received copies, or rights, from you under
|
||||||
|
this License will not have their licenses terminated so long as such
|
||||||
|
parties remain in full compliance.
|
||||||
|
|
||||||
|
5. You are not required to accept this License, since you have not
|
||||||
|
signed it. However, nothing else grants you permission to modify or
|
||||||
|
distribute the Program or its derivative works. These actions are
|
||||||
|
prohibited by law if you do not accept this License. Therefore, by
|
||||||
|
modifying or distributing the Program (or any work based on the
|
||||||
|
Program), you indicate your acceptance of this License to do so, and
|
||||||
|
all its terms and conditions for copying, distributing or modifying
|
||||||
|
the Program or works based on it.
|
||||||
|
|
||||||
|
6. Each time you redistribute the Program (or any work based on the
|
||||||
|
Program), the recipient automatically receives a license from the
|
||||||
|
original licensor to copy, distribute or modify the Program subject to
|
||||||
|
these terms and conditions. You may not impose any further
|
||||||
|
restrictions on the recipients' exercise of the rights granted herein.
|
||||||
|
You are not responsible for enforcing compliance by third parties to
|
||||||
|
this License.
|
||||||
|
|
||||||
|
7. If, as a consequence of a court judgment or allegation of patent
|
||||||
|
infringement or for any other reason (not limited to patent issues),
|
||||||
|
conditions are imposed on you (whether by court order, agreement or
|
||||||
|
otherwise) that contradict the conditions of this License, they do not
|
||||||
|
excuse you from the conditions of this License. If you cannot
|
||||||
|
distribute so as to satisfy simultaneously your obligations under this
|
||||||
|
License and any other pertinent obligations, then as a consequence you
|
||||||
|
may not distribute the Program at all. For example, if a patent
|
||||||
|
license would not permit royalty-free redistribution of the Program by
|
||||||
|
all those who receive copies directly or indirectly through you, then
|
||||||
|
the only way you could satisfy both it and this License would be to
|
||||||
|
refrain entirely from distribution of the Program.
|
||||||
|
|
||||||
|
If any portion of this section is held invalid or unenforceable under
|
||||||
|
any particular circumstance, the balance of the section is intended to
|
||||||
|
apply and the section as a whole is intended to apply in other
|
||||||
|
circumstances.
|
||||||
|
|
||||||
|
It is not the purpose of this section to induce you to infringe any
|
||||||
|
patents or other property right claims or to contest validity of any
|
||||||
|
such claims; this section has the sole purpose of protecting the
|
||||||
|
integrity of the free software distribution system, which is
|
||||||
|
implemented by public license practices. Many people have made
|
||||||
|
generous contributions to the wide range of software distributed
|
||||||
|
through that system in reliance on consistent application of that
|
||||||
|
system; it is up to the author/donor to decide if he or she is willing
|
||||||
|
to distribute software through any other system and a licensee cannot
|
||||||
|
impose that choice.
|
||||||
|
|
||||||
|
This section is intended to make thoroughly clear what is believed to
|
||||||
|
be a consequence of the rest of this License.
|
||||||
|
|
||||||
|
8. If the distribution and/or use of the Program is restricted in
|
||||||
|
certain countries either by patents or by copyrighted interfaces, the
|
||||||
|
original copyright holder who places the Program under this License
|
||||||
|
may add an explicit geographical distribution limitation excluding
|
||||||
|
those countries, so that distribution is permitted only in or among
|
||||||
|
countries not thus excluded. In such case, this License incorporates
|
||||||
|
the limitation as if written in the body of this License.
|
||||||
|
|
||||||
|
9. The Free Software Foundation may publish revised and/or new versions
|
||||||
|
of the General Public License from time to time. Such new versions will
|
||||||
|
be similar in spirit to the present version, but may differ in detail to
|
||||||
|
address new problems or concerns.
|
||||||
|
|
||||||
|
Each version is given a distinguishing version number. If the Program
|
||||||
|
specifies a version number of this License which applies to it and "any
|
||||||
|
later version", you have the option of following the terms and conditions
|
||||||
|
either of that version or of any later version published by the Free
|
||||||
|
Software Foundation. If the Program does not specify a version number of
|
||||||
|
this License, you may choose any version ever published by the Free Software
|
||||||
|
Foundation.
|
||||||
|
|
||||||
|
10. If you wish to incorporate parts of the Program into other free
|
||||||
|
programs whose distribution conditions are different, write to the author
|
||||||
|
to ask for permission. For software which is copyrighted by the Free
|
||||||
|
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||||
|
make exceptions for this. Our decision will be guided by the two goals
|
||||||
|
of preserving the free status of all derivatives of our free software and
|
||||||
|
of promoting the sharing and reuse of software generally.
|
||||||
|
|
||||||
|
NO WARRANTY
|
||||||
|
|
||||||
|
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||||
|
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||||
|
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||||
|
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||||
|
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||||
|
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||||
|
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||||
|
REPAIR OR CORRECTION.
|
||||||
|
|
||||||
|
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||||
|
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||||
|
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||||
|
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||||
|
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||||
|
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||||
|
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||||
|
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||||
|
POSSIBILITY OF SUCH DAMAGES.
|
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
How to Apply These Terms to Your New Programs
|
||||||
|
|
||||||
|
If you develop a new program, and you want it to be of the greatest
|
||||||
|
possible use to the public, the best way to achieve this is to make it
|
||||||
|
free software which everyone can redistribute and change under these terms.
|
||||||
|
|
||||||
|
To do so, attach the following notices to the program. It is safest
|
||||||
|
to attach them to the start of each source file to most effectively
|
||||||
|
convey the exclusion of warranty; and each file should have at least
|
||||||
|
the "copyright" line and a pointer to where the full notice is found.
|
||||||
|
|
||||||
|
<one line to give the program's name and a brief idea of what it does.>
|
||||||
|
Copyright (C) <year> <name of author>
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, write to the Free Software
|
||||||
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
|
||||||
|
|
||||||
|
Also add information on how to contact you by electronic and paper mail.
|
||||||
|
|
||||||
|
If the program is interactive, make it output a short notice like this
|
||||||
|
when it starts in an interactive mode:
|
||||||
|
|
||||||
|
Gnomovision version 69, Copyright (C) year name of author
|
||||||
|
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||||
|
This is free software, and you are welcome to redistribute it
|
||||||
|
under certain conditions; type `show c' for details.
|
||||||
|
|
||||||
|
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||||
|
parts of the General Public License. Of course, the commands you use may
|
||||||
|
be called something other than `show w' and `show c'; they could even be
|
||||||
|
mouse-clicks or menu items--whatever suits your program.
|
||||||
|
|
||||||
|
You should also get your employer (if you work as a programmer) or your
|
||||||
|
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||||
|
necessary. Here is a sample; alter the names:
|
||||||
|
|
||||||
|
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||||
|
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||||
|
|
||||||
|
<signature of Ty Coon>, 1 April 1989
|
||||||
|
Ty Coon, President of Vice
|
||||||
|
|
||||||
|
This General Public License does not permit incorporating your program into
|
||||||
|
proprietary programs. If your program is a subroutine library, you may
|
||||||
|
consider it more useful to permit linking proprietary applications with the
|
||||||
|
library. If this is what you want to do, use the GNU Library General
|
||||||
|
Public License instead of this License.
|
|
@ -0,0 +1 @@
|
||||||
|
../FL
|
|
@ -0,0 +1 @@
|
||||||
|
scripts/Makefile
|
|
@ -0,0 +1,28 @@
|
||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# Copyright (C) 2008 Jonathan Moore Liles
|
||||||
|
# This file is licensed under version 2 of the GPL.
|
||||||
|
|
||||||
|
. scripts/config-funcs
|
||||||
|
|
||||||
|
begin
|
||||||
|
|
||||||
|
begin_options
|
||||||
|
|
||||||
|
ask "Installation prefix" prefix /usr/local
|
||||||
|
ask "Build for debugging" USE_DEBUG no
|
||||||
|
|
||||||
|
begin_tests
|
||||||
|
|
||||||
|
require_package JACK 0.103.0 jack
|
||||||
|
suggest_package XPM 2.0.0 xpm
|
||||||
|
require_FLTK 1.3.0 images
|
||||||
|
require_command FLUID lib/ntk/fluid/fluid
|
||||||
|
test_version `version_of jack` 0.105.0 || append "JACK_MIDI_PROTO_API=yes"
|
||||||
|
require_package liblo 0.23 liblo
|
||||||
|
|
||||||
|
test_version `version_of liblo` 0.26 || warn "Version $(version_of liblo) of liblo is slow to create servers. Consider upgrading to 0.26 or later"
|
||||||
|
|
||||||
|
require_package sigcpp 2.0.0 sigc++-2.0
|
||||||
|
|
||||||
|
end
|
|
@ -0,0 +1,71 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||||
|
<html><head>
|
||||||
|
<meta name="generator" content="Generated by MUP v3.5">
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||||
|
<link type="text/css" rel="stylesheet" href="mup.css">
|
||||||
|
<title>Key Bindings</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id=cover>
|
||||||
|
<h1>Key Bindings</h1>
|
||||||
|
<h3></h3>
|
||||||
|
<address>
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
|
|
||||||
|
</address><hr></div>
|
||||||
|
<div id=body>
|
||||||
|
<hr width=50%>
|
||||||
|
<p>
|
||||||
|
These keys are in effect when the pattern or phrase editor grid is focused.
|
||||||
|
</p>
|
||||||
|
<center><div class="fig table"><table id="Fig.1" border=1>
|
||||||
|
<caption>
|
||||||
|
<strong>Fig. 1.</strong> Editor Keybindings
|
||||||
|
</caption>
|
||||||
|
<tr><th>key</th><th>function</th></tr>
|
||||||
|
<tr><td>[</td><td>previous</td></tr>
|
||||||
|
<tr><td>]</td><td>next</td></tr>
|
||||||
|
<tr><td>1</td><td>horizontal zoom out</td></tr>
|
||||||
|
<tr><td>2</td><td>horizontal zoom in</td></tr>
|
||||||
|
<tr><td>3</td><td>vertical zoom out</td></tr>
|
||||||
|
<tr><td>4</td><td>vertical zoom in</td></tr>
|
||||||
|
<tr><td>c</td><td>create</td></tr>
|
||||||
|
<tr><td>d</td><td>duplicate</td></tr>
|
||||||
|
<tr><td>f</td><td>move to playhead</td></tr>
|
||||||
|
<tr><td>r</td><td>select range as defined by L and R cursors</td></tr>
|
||||||
|
<tr><td>q</td><td>select none</td></tr>
|
||||||
|
<tr><td>C</td><td>crop to range</td></tr>
|
||||||
|
<tr><td>Delete</td><td>delete selected</td></tr>
|
||||||
|
<tr><td>Shift-Delete</td><td>clear grid</td></tr>
|
||||||
|
<tr><td>Control-Delete</td><td>delete time in range</td></tr>
|
||||||
|
<tr><td>Control-Insert</td><td>insert time</td></tr>
|
||||||
|
<tr><td>Arrow keys</td><td>move viewport</td></tr>
|
||||||
|
<tr><td>Ctrl-Left</td><td>move to previous note</td></tr>
|
||||||
|
<tr><td>Ctrl-Right</td><td>move to next note</td></tr>
|
||||||
|
<tr><td><</td><td>move selection left</td></tr>
|
||||||
|
<tr><td>></td><td>move selection right</td></tr>
|
||||||
|
<tr><td>,</td><td>move selection up</td></tr>
|
||||||
|
<tr><td>.</td><td>move selection down</td></tr>
|
||||||
|
<tr><td>t</td><td>trim length</td></tr>
|
||||||
|
<tr><td>Space</td><td>toggle transport</td></tr>
|
||||||
|
<tr><td>m</td><td>mute</td></tr>
|
||||||
|
<tr><td>s</td><td>solo</td></tr>
|
||||||
|
</table></div></center>
|
||||||
|
<center><div class="fig table"><table id="Fig.2" border=1>
|
||||||
|
<caption>
|
||||||
|
<strong>Fig. 2.</strong> Gloabl keybindings
|
||||||
|
</caption>
|
||||||
|
<tr><th>key</th><th>function</th></tr>
|
||||||
|
<tr><td>Alt-p</td><td>Switch to pattern editor</td></tr>
|
||||||
|
<tr><td>Alt-a</td><td>Switch to phrase editor</td></tr>
|
||||||
|
<tr><td>Alt-s</td><td>Switch to sequence editor</td></tr>
|
||||||
|
<tr><td>Space</td><td>Toggle transport</td></tr>
|
||||||
|
<tr><td>Home</td><td>Locate transport to frame 0</td></tr>
|
||||||
|
</table></div></center>
|
||||||
|
<p>
|
||||||
|
Other functions are accessible from the menus or the key is otherwise indicated.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,46 @@
|
||||||
|
|
||||||
|
! title Key Bindings
|
||||||
|
|
||||||
|
--
|
||||||
|
|
||||||
|
These keys are in effect when the pattern or phrase editor grid is focused.
|
||||||
|
|
||||||
|
// Editor Keybindings
|
||||||
|
[[ key, function
|
||||||
|
[[ [, previous
|
||||||
|
[[ ], next
|
||||||
|
[[ 1, horizontal zoom out
|
||||||
|
[[ 2, horizontal zoom in
|
||||||
|
[[ 3, vertical zoom out
|
||||||
|
[[ 4, vertical zoom in
|
||||||
|
[[ c, create
|
||||||
|
[[ d, duplicate
|
||||||
|
[[ f, move to playhead
|
||||||
|
[[ r, select range (as defined by L and R cursors)
|
||||||
|
[[ q, select none
|
||||||
|
[[ C, crop to range
|
||||||
|
[[ Delete, delete selected
|
||||||
|
[[ Shift-Delete, clear grid
|
||||||
|
[[ Control-Delete, delete time in range
|
||||||
|
[[ Control-Insert, insert time
|
||||||
|
[[ Arrow keys, move viewport
|
||||||
|
[[ Ctrl-Left, move to previous note
|
||||||
|
[[ Ctrl-Right, move to next note
|
||||||
|
[[ \<, move selection left
|
||||||
|
[[ >, move selection right
|
||||||
|
[[ \,, move selection up
|
||||||
|
[[ ., move selection down
|
||||||
|
[[ t, trim length
|
||||||
|
[[ Space, toggle transport
|
||||||
|
[[ m, mute
|
||||||
|
[[ s, solo
|
||||||
|
|
||||||
|
// Gloabl keybindings
|
||||||
|
[[ key, function
|
||||||
|
[[ Alt-p, Switch to pattern editor
|
||||||
|
[[ Alt-a, Switch to phrase editor
|
||||||
|
[[ Alt-s, Switch to sequence editor
|
||||||
|
[[ Space, Toggle transport
|
||||||
|
[[ Home, Locate transport to frame 0
|
||||||
|
|
||||||
|
Other functions are accessible from the menus or the key is otherwise indicated.
|
|
@ -0,0 +1,293 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||||
|
<html><head>
|
||||||
|
<meta name="generator" content="Generated by MUP v3.5">
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||||
|
<link type="text/css" rel="stylesheet" href="mup.css">
|
||||||
|
<title>The Non Sequencer</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id=cover>
|
||||||
|
<h1>The Non Sequencer</h1>
|
||||||
|
<h3></h3>
|
||||||
|
<address>
|
||||||
|
Jonathan Moore Liles <a href="mailto:male@tuxfamily.org"><male@tuxfamily.org></a><br>
|
||||||
|
Oct 13 2007<br>
|
||||||
|
|
||||||
|
</address><a class=ext href="http://non.tuxfamily.org">Home</a><hr></div>
|
||||||
|
<div id=body>
|
||||||
|
<div id=toc>
|
||||||
|
<h1 id=toc>Table Of Contents</h1>
|
||||||
|
<ul>
|
||||||
|
<li><a href="#n:1.">1. Description</a>
|
||||||
|
<ul><li><a href="#n:1.1.">1.1. Guiding Principles</a>
|
||||||
|
|
||||||
|
</ul><li><a href="#n:2.">2. The Interface</a>
|
||||||
|
|
||||||
|
<ul><li><a href="#n:2.1.">2.1. The Pattern Editor</a>
|
||||||
|
|
||||||
|
<ul><li><a href="#n:2.1.1.">2.1.1. The Notes</a>
|
||||||
|
|
||||||
|
<li><a href="#n:2.1.2.">2.1.2. Recording</a>
|
||||||
|
|
||||||
|
<li><a href="#n:2.1.3.">2.1.3. The Event Editor</a>
|
||||||
|
|
||||||
|
</ul><li><a href="#n:2.2.">2.2. The Phrase Editor</a>
|
||||||
|
|
||||||
|
<li><a href="#n:2.3.">2.3. The Sequence Editor</a>
|
||||||
|
|
||||||
|
<li><a href="#n:2.4.">2.4. Pattern Triggers</a>
|
||||||
|
|
||||||
|
</ul><li><a href="#n:3.">3. MIDI</a>
|
||||||
|
|
||||||
|
<ul><li><a href="#n:3.1.">3.1. IO</a>
|
||||||
|
|
||||||
|
<ul><li><a href="#n:3.1.1.">3.1.1. About Jack MIDI Connections</a>
|
||||||
|
|
||||||
|
</ul><li><a href="#n:3.2.">3.2. Non Files</a>
|
||||||
|
|
||||||
|
<li><a href="#n:3.3.">3.3. Exports</a>
|
||||||
|
|
||||||
|
<li><a href="#n:3.4.">3.4. Imports</a>
|
||||||
|
|
||||||
|
</ul><li><a href="#n:4.">4. Synchronization</a>
|
||||||
|
|
||||||
|
<li><a href="#n:5.">5. Control</a>
|
||||||
|
|
||||||
|
<li><a href="#n:6.">6. Playback</a>
|
||||||
|
|
||||||
|
<li><a href="#n:7.">7. Sister Projects</a>
|
||||||
|
|
||||||
|
</ul></ul><hr></div>
|
||||||
|
<h1 id="n:1.">1. Description</h1>
|
||||||
|
<center><div class="fig image"><table border=1>
|
||||||
|
<tr><td><img src="non-new-about.png" alt="fig. "></td></tr>
|
||||||
|
</table></div></center>
|
||||||
|
<h2 id="n:1.1.">1.1. Guiding Principles</h2>
|
||||||
|
<ol><li><span>Flexibility</span>
|
||||||
|
<li><span>Efficiency</span>
|
||||||
|
<li><span>Purpose</span>
|
||||||
|
<li><span>Grace</span>
|
||||||
|
</ol><p>
|
||||||
|
Non has many modes and functions. Where flexibility comes at a small cost, we prefer to be flexible and make up the difference elsewhere. Where arbitrary limitations are reasonable and necessary, Non enforces them, but not without being forced into it. Where it is easier to be inefficient than efficient, but the efficiency matters, we prefer to put in the (small amount of) work required to be efficient, often resulting in thousand-fold performance gains; this may sound like an obvious statement, but, in fact, design for efficiency is a rare practice in this (Linux Audio<i>'Modern' software</i> arena. Although it is tempting to implement a kitchen sink in every program, we resist the urge. Non has the purpose of being a real-time sequencer and anything outside of that scope is a job for another day. If there is something related to the task at hand that a computer can do instantly and easily, but which requires labor for you, Non tries to do it for you so that you can continue making music without being bothered. Non's user interface is designed to combine the stark functionality and speed of hardware with the degrees of freedom of software.
|
||||||
|
</p>
|
||||||
|
<h1 id="n:2.">2. The Interface</h1>
|
||||||
|
<p>
|
||||||
|
The interface is quite simple and is based on the excellent FLTK (1.1.x) toolkit. (Versions < 1 of Non were based on raw Xlib and a few Motif widgets.) The author examined many toolkits before beginning, and has absolutely no interest in pursuing GTK or Qt--Non simply doesn't require much of a toolkit, and these are incapable of providing less than total excess.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Non's GUI is highly optimized. Common operations are designed to be as fast as possible. Where other sequencers completely monopolize the CPU when scrolling, etc., Non performs smoothly--even on antiquated hardware. It is not technically difficult to achieve such speed. And, in fact, it is a shame that more developers don't consider good (or even just reasonable) performance a priority.
|
||||||
|
</p>
|
||||||
|
<h2 id="n:2.1.">2.1. The Pattern Editor</h2>
|
||||||
|
<center><div class="fig image"><table border=1>
|
||||||
|
<tr><td><img src="non-pattern-editor.png" alt="fig. "></td></tr>
|
||||||
|
</table></div></center>
|
||||||
|
<p>
|
||||||
|
Upon invocation, Non enters the pattern editor and loads Pattern 1. The pattern editor presents a grid interface--the heart of a step sequencer. You can toggle a note on the grid by entering its coordinates with the keyboard or clicking an intersection with the mouse. The length of patterns is unlimited and no special action is required to lengthen them (simply adding notes beyond the "end" is enough.) Non can present grids in one of two modes, expanded and compacted. In the compacted view, only named rows are displayed; this means that only the notes the current instrument or scale will consume vertical space--resulting in far more efficient use of screen real-estate. Any notes that are made invisible by the compacted view will be silenced.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<p>
|
||||||
|
The resolution of the pattern display can be adjusted (the default is one point per 1/16th note), and, additionally, the canvas can be zoomed horizontally and vertically as necessary. However, it is highly recommended that you avoid creating 'vertical' compositions, that is, one should place each part in a separate pattern and avoid the need to scroll about looking for notes.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Tonic patterns have a choice of scale and key, which limits the display to only valid notes. This <i>row-compaction</i> can be turned off, if desired, so that all 128 notes are visible. Or simply choose the <i>chromatic</i> mapping if you are not creating scale based music.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Percussion, or other sample-based patterns can be assigned an <i>instrument</i> mapping, which again limits the display to only those notes for which names and volumes have been provided. The instrument definition format is a simple ASCII file containing one name, note and volume percentage per line.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Individual patterns may be soloed or muted right from the pattern editor.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Each pattern has a setting for output MIDI channel and sequencer port--and these may also be changed while the transport is running.
|
||||||
|
</p>
|
||||||
|
<h3 id="n:2.1.1.">2.1.1. The Notes</h3>
|
||||||
|
<p>
|
||||||
|
The type (duration) of note to be inserted can be adjusted in the pattern editor (control+mouse-wheel). The velocity of individual notes may be adjusted (mouse-wheel), and the current value is reflected in the color of the note. Ranges may also be <i>inserted</i> and <i>deleted</i>, a commonly required operation during composition, but one that is, sadly, missing from many sequencers.
|
||||||
|
</p>
|
||||||
|
<center><div class="fig image"><table border=1>
|
||||||
|
<tr><td><img src="non-cursors.png" alt="fig. "></td></tr>
|
||||||
|
</table></div></center>
|
||||||
|
<h3 id="n:2.1.2.">2.1.2. Recording</h3>
|
||||||
|
<p>
|
||||||
|
A pattern can be recorded via MIDI in one of four modes:
|
||||||
|
</p>
|
||||||
|
<dl>
|
||||||
|
<dt><em>Merge (the most familiar/least useful)</em></dt>
|
||||||
|
<dd>In this mode recorded events are merged into the pattern on each pass through the loop. This is how most sequencers work, but it usually just results in a jumble of notes that require much manual cleaning up.</dd>
|
||||||
|
<dt><em>Overwrite (each pass [with input] replaces the previous contents of the pattern)</em></dt>
|
||||||
|
<dd>This is like merge mode, except that the pattern is cleared before the recorded events are input. If no notes have been played during a loop, the pattern remains unchanged. This is a great way to just get a part down without having to remove your hands from the instrument.</dd>
|
||||||
|
<dt><em>Layer (each pass [with input] goes into a new pattern)</em></dt>
|
||||||
|
<dd>This is just like overwrite mode, except that the pattern actually overwritten is a duplicate. Use this mode to record several loops of the same length without removing your hands from the instrument.</dd>
|
||||||
|
<dt><em>New</em></dt>
|
||||||
|
<dd>In this mode, all recorded events are placed into a new pattern (of whatever length) when recording is stopped.</dd>
|
||||||
|
</dl>
|
||||||
|
<h3 id="n:2.1.3.">2.1.3. The Event Editor</h3>
|
||||||
|
<center><div class="fig image"><table border=1>
|
||||||
|
<tr><td><img src="non-event-editor-notes.png" alt="fig. "></td></tr>
|
||||||
|
</table></div></center>
|
||||||
|
<p>
|
||||||
|
For situations requiring close inspection, fine-adjustments or entering of non-note data, the Event Editor allows one to edit the raw MIDI event list of a pattern. A common use is to insert program or control change events.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Like everything else in Non, the Event Editor is real-time--change a note and you'll see and hear the result as the pattern plays.
|
||||||
|
</p>
|
||||||
|
<h2 id="n:2.2.">2.2. The Phrase Editor</h2>
|
||||||
|
<center><div class="fig image"><table border=1>
|
||||||
|
<tr><td><img src="non-phrase-editor.png" alt="fig. "></td></tr>
|
||||||
|
</table></div></center>
|
||||||
|
<p>
|
||||||
|
Phrases are to patterns as patterns are to notes. Switching to the Phrase Editor brings up Phrase 1, where each row corresponds to an existing <i>pattern</i>. The grid of the Phrase Editor is fixed at one column-per-beat. This view is somewhat similar to a timeline view in other sequencers, but do not be deceived--Phrases may be many in number and are triggered just like patterns.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
When a node on the Phrase Editor grid is activated, the length of the cue event inserted will be the same as that of the pattern being triggered. Adjusting the duration of this event will cause the pattern be cut short or looped. If the length of a referenced pattern is changed, this will <b>not</b> be reflected in the Phrase display. You must either re-insert or adjust the length of the reference.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
It is recommended that, to avoid confusion, you first compose all of the patterns you need for a phrase, and only then bring up the phrase editor.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Editing operations are the same as those for the Pattern Editor.
|
||||||
|
</p>
|
||||||
|
<h2 id="n:2.3.">2.3. The Sequence Editor</h2>
|
||||||
|
<p>
|
||||||
|
The Sequence Editor defines the sequence of playback. The interface is a list of phrases, to be played sequentially, beginning from bar 1. It is not necessary to include all existing phrases in the playlist. Phrases can be moved up and down the playlist, inserted and deleted. The editor displays the start bar of each phrase in addition to its number and name.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
This sequence->phrase->pattern hierarchy allows for logical, expressive compositions--without the labor intensive copy<i>paste</i>duplicate work-flow imposed by other sequencers.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
For example, suppose you have a song with a 12 bar progression that repeats 4 times. This 12 bar sequence is composed of many patterns, each a few measures in length and roughly corresponding to the chords in the progression.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
In another sequencer you would be required to use clumsy copy/paste operations to destructively extend the 12 bar sequence. Then if you wanted to change a part of that subsequence later, you would have to go edit each instance of it on the 'timeline' view. This is absurdly inefficient for the operator.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
In Non you simply create your patterns, assemble them into logical phrases, and then assemble these phrases into a sequence that determines the entire song. This approach is similar to the bottom-up approach of factored languages such as Forth.
|
||||||
|
</p>
|
||||||
|
<h2 id="n:2.4.">2.4. Pattern Triggers</h2>
|
||||||
|
<center><div class="fig image"><table border=1>
|
||||||
|
<tr><td><img src="non-pattern-triggers.png" alt="fig. "></td></tr>
|
||||||
|
</table></div></center>
|
||||||
|
<p>
|
||||||
|
Next to the sequence playlist is an array of pattern triggers. Here one can monitor the progress of multiple patterns during playback and cause them to be muted etc.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
The left mouse button toggles muting, the middle button toggles soloing, and the right button brings up the given pattern in the pattern editor.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Playing patterns appear green, the solo pattern appears red, and muted patterns appear gray,
|
||||||
|
</p>
|
||||||
|
<h1 id="n:3.">3. MIDI</h1>
|
||||||
|
<h2 id="n:3.1.">3.1. IO</h2>
|
||||||
|
<p>
|
||||||
|
Non utilizes the Jack MIDI transport. Jack MIDI is an emerging MIDI transport for Linux. Since Jack already provides similar routing as the ALSA Sequencer interface, little is lost--besides compatibility with existing programs. (Jack has an aseq bridge capability, but in order to benefit from Jack MIDI, both sequencer and synth must use Jack). The Jack MIDI API is extremely limited in comparison to the very capable ALSA API, but this is a problem for the programmer, not the user.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
At the time of writing, Non is one of only two sequencers to use Jack MIDI natively.
|
||||||
|
</p>
|
||||||
|
<h3 id="n:3.1.1.">3.1.1. About Jack MIDI Connections</h3>
|
||||||
|
<p>
|
||||||
|
Since Jack MIDI is new and not all programs support it, many find themselves confused. This section attempts to explain Jack MIDI ports.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
The ALSA sequencer interface has long been the standard MIDI routing subsystem on Linux. But many (all) of the programs we use for synthesis these days use Jack for their audio IO. It makes more sense for those MIDI related programs utilizing the Jack Transport for synchronization to also use Jack ports for MIDI delivery. Therefore, ALSA MIDI is quickly becoming obsolete.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Jack MIDI ports are <b>not</b> related to ALSA MIDI ports in any way. Jack MIDI ports are just like Jack audio ports, except that the data being transmitted in each buffer are raw, timestamped MIDI events instead of floating point audio samples. Jack MIDI is sample-accurate. This means that a MIDI Note On event can occur concurrently with a sound, and the two will never drift apart as often happens to some extent with ALSA.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
In essence, Jack MIDI is a way of expressing a direct temporal correlation between audio and MIDI data.
|
||||||
|
</p>
|
||||||
|
<div class=admonition>
|
||||||
|
<table width=100%>
|
||||||
|
<tr><td><em>Note:</em></td>
|
||||||
|
<td>Older versions of QJackCtl and other connection managers do not
|
||||||
|
know about Jack MIDI ports. Please make sure you're using an
|
||||||
|
up-to-date version.
|
||||||
|
</td></table>
|
||||||
|
</div>
|
||||||
|
<p>
|
||||||
|
<p>
|
||||||
|
For example, to connect Non to ZynAddSubFX (the CVS version supports Jack MIDI), type the following into the shell:
|
||||||
|
</p>
|
||||||
|
<div class="fig example"><table width=100%><tr><td><pre>
|
||||||
|
$ jack_connect Non:midi_out-1 ZynAddSubFX:midi_in
|
||||||
|
</pre></td></tr>
|
||||||
|
</table></div>
|
||||||
|
<p>
|
||||||
|
Also, be sure that Zyn's outputs are connected to system:playback_* so that you can hear the sounds it produces.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
It is possible to use Jack MIDI clients and ALSA MIDI clients together via the bridge built into jackd. For this to work you must append the <tt>-X seq</tt> option to the <tt>alsa</tt> driver section of the jackd command line. Like so:
|
||||||
|
</p>
|
||||||
|
<div class="fig example"><table width=100%><tr><td><pre>
|
||||||
|
$ jackd -d alsa -X seq
|
||||||
|
</pre></td></tr>
|
||||||
|
</table></div>
|
||||||
|
<p>
|
||||||
|
The way such bridged ports are named varies between Jack versions, but they should be fairly obvious. When used in this way, many of the advantages of Jack MIDI are lost, so it is recommended that you find a Jack MIDI capable synth for best results.
|
||||||
|
</p>
|
||||||
|
<center><div class="fig image"><table id="Fig.3.1" border=1>
|
||||||
|
<caption>
|
||||||
|
<strong>Fig. 3.1.</strong> Example of Jack MIDI connections in Patchage
|
||||||
|
</caption>
|
||||||
|
|
||||||
|
<tr><td><img src="non-patchage.png" alt="fig. 3.1"></td></tr>
|
||||||
|
</table></div></center>
|
||||||
|
<h2 id="n:3.2.">3.2. Non Files</h2>
|
||||||
|
<p>
|
||||||
|
The format of <tt>.non</tt> files is a variation of SMF-2. In an SMF-2 file, each track chunk represents a pattern. Because Non groups patterns into <i>phrases</i>, this usage of SMF-2 is probably not compatible with other implementations (although, the author has never actually seen another program that could play back SMF-2 anyway.)
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Each phrase is stored as a track of MIDI Cue messages, each referring to a pattern to be triggered. The sequence/playlist is stored as the first track, and consists of a list of Cue Point meta-events referring to phrases.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Also in the first track is a sequencer specific meta-event (ID "Non!") containing song data that cannot be readily expressed with existing meta events, and some versioning info to aid future compatibility.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
In short, the author has done the utmost to save sequences in a standard format--within reason; SMF was hardly designed with a program like Non in mind--instead of some ad-hoc ASCII format (which would have been <b>far</b> easier to implement), or worse, buggy, bulky, and unmaintainable XML.
|
||||||
|
</p>
|
||||||
|
<h2 id="n:3.3.">3.3. Exports</h2>
|
||||||
|
<p>
|
||||||
|
In addition to saving and loading <tt>.non</tt> files, Non can export individual patterns as flat, SMF-0 MIDI files.
|
||||||
|
</p>
|
||||||
|
<h2 id="n:3.4.">3.4. Imports</h2>
|
||||||
|
<p>
|
||||||
|
SMF-0 files can be imported as a new pattern (all channels merged), or SMF-1 (such as those written by Seq24) and SMF-2 (ever seen one of these?) can be imported as N new patterns (selected from a track list.) All imported patterns are set to display the Chromatic scale, in order that no notes be hidden from view.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
This should make it easy to migrate any existing patterns that you may have over to Non, or to permit editing of Non patterns in external programs (for graphic controller tweaking perhaps?)
|
||||||
|
</p>
|
||||||
|
<h1 id="n:4.">4. Synchronization</h1>
|
||||||
|
<p>
|
||||||
|
Non's transport is driven by the Jack Transport, so in order to sync Non with a DAW like Ardour, you must set Ardour to be the Jack Timebase Master. Therefore, all tempo mapping and time signature information should be manipulated in the Timebase Master--Non will respond to these changes automatically. If there is no Timebase Master registered when Non starts, it will take over that role instead. This is useful if you simply plan to use Non as a musical instrument.
|
||||||
|
</p>
|
||||||
|
<h1 id="n:5.">5. Control</h1>
|
||||||
|
<p>
|
||||||
|
Non creates two MIDI input ports, one for <i>performance</i> data and one for <i>control</i> data. The control port is used to control Non with hardware MIDI controllers, such as the BCF2000, or other software. The performance port is used to record musical data into patterns.
|
||||||
|
</p>
|
||||||
|
<h1 id="n:6.">6. Playback</h1>
|
||||||
|
<p>
|
||||||
|
The playback mode can be toggled between Pattern, Sequence and Trigger. In Pattern mode (the default), all patterns are played simultaneously, from the beginning, and looped forever. Since patterns may differ widely in length, interesting compositions are possible. In this mode, Non makes for a very intuitive software instrument--rivaled only by the excellent program FreeWheeling (a live audio looper.)
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
In Sequence mode, playback strictly follows the sequence list and the Jack transport, and does not loop. This mode is suitable for parallel compositions between Non and a Jack Timebase Master capable DAW.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Trigger mode is very much like Pattern mode, except that all patterns begin muted and must be enabled via the trigger view.
|
||||||
|
</p>
|
||||||
|
<h1 id="n:7.">7. Sister Projects</h1>
|
||||||
|
<p>
|
||||||
|
Much of the inspiration to move forward with Non was derived from JP Mercury's highly useful and successful FreeWheeling looper. Mr. Mercury is a visionary.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
But the closest sister of Non has to be the amazingly capable ZynAddSubFX soft-synth by Nasca Octavian Paul. ZynAddSubFX, like Non, utilizes the FLTK GUI toolkit, and has recently begun to support Jack MIDI (albeit in a limited fashion.) This is, hands down, the best synth available for Linux, and probably one of the best period. If all you have is Non and Zyn, you have all that you require to make great music.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Of course, this section can hardly go without mention of Rob Buse's Seq24. It was the author's unending frustration with the abysmal performance and absurd limitations of Seq24 that, more than any other single factor, inspired him to write Non. The most frustrating aspect was that, prior to Non, Seq24 was, in the author's opinion, the best sequencer available on Linux. Seq24, which claims to be light and free of bloat is, without comparison, the slowest, most poorly optimized sequencer the author has tried. Even the huge, snarling beast that is RoseGarden out performs Seq24 in every way but start time.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Those days are over.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,394 @@
|
||||||
|
|
||||||
|
! title The Non Sequencer
|
||||||
|
! author Jonathan Moore Liles #(email,male@tuxfamily.org)
|
||||||
|
! date Oct 13 2007
|
||||||
|
! keywords Non Jack ALSA FLTK
|
||||||
|
! extra #(url,http://non.tuxfamily.org,Home)
|
||||||
|
|
||||||
|
-- Table Of Contents
|
||||||
|
|
||||||
|
: Description
|
||||||
|
|
||||||
|
< non-new-about.png
|
||||||
|
|
||||||
|
:: Guiding Principles
|
||||||
|
|
||||||
|
+ Flexibility
|
||||||
|
+ Efficiency
|
||||||
|
+ Purpose
|
||||||
|
+ Grace
|
||||||
|
|
||||||
|
Non has many modes and functions. Where flexibility comes at a small
|
||||||
|
cost, we prefer to be flexible and make up the difference
|
||||||
|
elsewhere. Where arbitrary limitations are reasonable and necessary,
|
||||||
|
Non enforces them, but not without being forced into it. Where it is
|
||||||
|
easier to be inefficient than efficient, but the efficiency matters,
|
||||||
|
we prefer to put in the (small amount of) work required to be
|
||||||
|
efficient, often resulting in thousand-fold performance gains; this
|
||||||
|
may sound like an obvious statement, but, in fact, design for
|
||||||
|
efficiency is a rare practice in this (Linux Audio/'Modern'
|
||||||
|
software) arena. Although it is tempting to implement a kitchen sink
|
||||||
|
in every program, we resist the urge. Non has the purpose of being a
|
||||||
|
real-time sequencer and anything outside of that scope is a job for
|
||||||
|
another day. If there is something related to the task at hand that
|
||||||
|
a computer can do instantly and easily, but which requires labor for
|
||||||
|
you, Non tries to do it for you so that you can continue making
|
||||||
|
music without being bothered. Non's user interface is designed to
|
||||||
|
combine the stark functionality and speed of hardware with the
|
||||||
|
degrees of freedom of software.
|
||||||
|
|
||||||
|
: The Interface
|
||||||
|
|
||||||
|
The interface is quite simple and is based on the excellent FLTK
|
||||||
|
(1.1.x) toolkit. (Versions \< 1 of Non were based on raw Xlib and a
|
||||||
|
few Motif widgets.) The author examined many toolkits before
|
||||||
|
beginning, and has absolutely no interest in pursuing GTK or Qt--Non
|
||||||
|
simply doesn't require much of a toolkit, and these are incapable of
|
||||||
|
providing less than total excess.
|
||||||
|
|
||||||
|
Non's GUI is highly optimized. Common operations are designed to be
|
||||||
|
as fast as possible. Where other sequencers completely monopolize
|
||||||
|
the CPU when scrolling, etc., Non performs smoothly--even on
|
||||||
|
antiquated hardware. It is not technically difficult to achieve
|
||||||
|
such speed. And, in fact, it is a shame that more developers don't
|
||||||
|
consider good (or even just reasonable) performance a priority.
|
||||||
|
|
||||||
|
:: The Pattern Editor
|
||||||
|
|
||||||
|
< non-pattern-editor.png
|
||||||
|
|
||||||
|
Upon invocation, Non enters the pattern editor and loads Pattern
|
||||||
|
1. The pattern editor presents a grid interface--the heart of a step
|
||||||
|
sequencer. You can toggle a note on the grid by entering its
|
||||||
|
coordinates with the keyboard or clicking an intersection with the
|
||||||
|
mouse. The length of patterns is unlimited and no special action is
|
||||||
|
required to lengthen them (simply adding notes beyond the "end" is
|
||||||
|
enough.) Non can present grids in one of two modes, expanded and
|
||||||
|
compacted. In the compacted view, only named rows are displayed;
|
||||||
|
this means that only the notes the current instrument or scale will
|
||||||
|
consume vertical space--resulting in far more efficient use of
|
||||||
|
screen real-estate. Any notes that are made invisible by the
|
||||||
|
compacted view will be silenced.
|
||||||
|
|
||||||
|
You may add, remove, transpose, move, and edit notes, as well as
|
||||||
|
trigger/mute patterns, while the transport is running.
|
||||||
|
|
||||||
|
The resolution of the pattern display can be adjusted (the default
|
||||||
|
is one point per 1\/16th note), and, additionally, the canvas can be
|
||||||
|
zoomed horizontally and vertically as necessary. However, it is
|
||||||
|
highly recommended that you avoid creating 'vertical' compositions,
|
||||||
|
that is, one should place each part in a separate pattern and avoid
|
||||||
|
the need to scroll about looking for notes.
|
||||||
|
|
||||||
|
Tonic patterns have a choice of scale and key, which limits the
|
||||||
|
display to only valid notes. This /row-compaction/ can be turned
|
||||||
|
off, if desired, so that all 128 notes are visible. Or simply choose
|
||||||
|
the /chromatic/ mapping if you are not creating scale based music.
|
||||||
|
|
||||||
|
Percussion, or other sample-based patterns can be assigned an
|
||||||
|
/instrument/ mapping, which again limits the display to only those
|
||||||
|
notes for which names and volumes have been provided. The instrument
|
||||||
|
definition format is a simple ASCII file containing one name, note
|
||||||
|
and volume percentage per line.
|
||||||
|
|
||||||
|
Individual patterns may be soloed or muted right from the pattern
|
||||||
|
editor.
|
||||||
|
|
||||||
|
Each pattern has a setting for output MIDI channel and sequencer
|
||||||
|
port--and these may also be changed while the transport is running.
|
||||||
|
|
||||||
|
::: The Notes
|
||||||
|
|
||||||
|
The type (duration) of note to be inserted can be adjusted in the
|
||||||
|
pattern editor (control+mouse-wheel). The velocity of individual
|
||||||
|
notes may be adjusted (mouse-wheel), and the current value is
|
||||||
|
reflected in the color of the note. Ranges may also be /inserted/
|
||||||
|
and /deleted/, a commonly required operation during composition, but
|
||||||
|
one that is, sadly, missing from many sequencers.
|
||||||
|
|
||||||
|
< non-cursors.png
|
||||||
|
|
||||||
|
::: Recording
|
||||||
|
|
||||||
|
A pattern can be recorded via MIDI in one of four modes:
|
||||||
|
|
||||||
|
= Merge (the most familiar/least useful)
|
||||||
|
= In this mode recorded events are merged into the pattern on each pass
|
||||||
|
= through the loop. This is how most sequencers work, but it usually just
|
||||||
|
= results in a jumble of notes that require much manual cleaning up.
|
||||||
|
= Overwrite (each pass [with input] replaces the previous contents of the pattern)
|
||||||
|
= This is like merge mode, except that the pattern is cleared before
|
||||||
|
= the recorded events are input. If no notes have been played during
|
||||||
|
= a loop, the pattern remains unchanged. This is a great way to just get
|
||||||
|
= a part down without having to remove your hands from the instrument.
|
||||||
|
= Layer (each pass [with input] goes into a new pattern)
|
||||||
|
= This is just like overwrite mode, except that the pattern actually
|
||||||
|
= overwritten is a duplicate. Use this mode to record several loops of
|
||||||
|
= the same length without removing your hands from the instrument.
|
||||||
|
= New
|
||||||
|
= In this mode, all recorded events are placed into a new pattern (of
|
||||||
|
= whatever length) when recording is stopped.
|
||||||
|
|
||||||
|
# It is especially useful if you bind Record to a MIDI footswitch.
|
||||||
|
|
||||||
|
::: The Event Editor
|
||||||
|
|
||||||
|
< non-event-editor-notes.png
|
||||||
|
|
||||||
|
For situations requiring close inspection, fine-adjustments or
|
||||||
|
entering of non-note data, the Event Editor allows one to edit the
|
||||||
|
raw MIDI event list of a pattern. A common use is to insert program
|
||||||
|
or control change events.
|
||||||
|
|
||||||
|
Like everything else in Non, the Event Editor is real-time--change a
|
||||||
|
note and you'll see and hear the result as the pattern plays.
|
||||||
|
|
||||||
|
:: The Phrase Editor
|
||||||
|
|
||||||
|
< non-phrase-editor.png
|
||||||
|
|
||||||
|
Phrases are to patterns as patterns are to notes. Switching to the
|
||||||
|
Phrase Editor brings up Phrase 1, where each row corresponds to an
|
||||||
|
existing /pattern/. The grid of the Phrase Editor is fixed at one
|
||||||
|
column-per-beat. This view is somewhat similar to a timeline view in
|
||||||
|
other sequencers, but do not be deceived--Phrases may be many in
|
||||||
|
number and are triggered just like patterns.
|
||||||
|
|
||||||
|
When a node on the Phrase Editor grid is activated, the length of
|
||||||
|
the cue event inserted will be the same as that of the pattern being
|
||||||
|
triggered. Adjusting the duration of this event will cause the
|
||||||
|
pattern be cut short or looped. If the length of a referenced
|
||||||
|
pattern is changed, this will *not* be reflected in the Phrase
|
||||||
|
display. You must either re-insert or adjust the length of the
|
||||||
|
reference.
|
||||||
|
|
||||||
|
It is recommended that, to avoid confusion, you first compose all of
|
||||||
|
the patterns you need for a phrase, and only then bring up the
|
||||||
|
phrase editor.
|
||||||
|
|
||||||
|
Editing operations are the same as those for the Pattern Editor.
|
||||||
|
|
||||||
|
:: The Sequence Editor
|
||||||
|
|
||||||
|
The Sequence Editor defines the sequence of playback. The interface
|
||||||
|
is a list of phrases, to be played sequentially, beginning from bar
|
||||||
|
1. It is not necessary to include all existing phrases in the
|
||||||
|
playlist. Phrases can be moved up and down the playlist, inserted
|
||||||
|
and deleted. The editor displays the start bar of each phrase in
|
||||||
|
addition to its number and name.
|
||||||
|
|
||||||
|
This sequence->phrase->pattern hierarchy allows for logical,
|
||||||
|
expressive compositions--without the labor intensive
|
||||||
|
copy/paste/duplicate work-flow imposed by other sequencers.
|
||||||
|
|
||||||
|
For example, suppose you have a song with a 12 bar progression that
|
||||||
|
repeats 4 times. This 12 bar sequence is composed of many patterns,
|
||||||
|
each a few measures in length and roughly corresponding to the
|
||||||
|
chords in the progression.
|
||||||
|
|
||||||
|
In another sequencer you would be required to use clumsy copy\/paste
|
||||||
|
operations to destructively extend the 12 bar sequence. Then if you
|
||||||
|
wanted to change a part of that subsequence later, you would have to
|
||||||
|
go edit each instance of it on the 'timeline' view. This is absurdly
|
||||||
|
inefficient for the operator.
|
||||||
|
|
||||||
|
In Non you simply create your patterns, assemble them into logical
|
||||||
|
phrases, and then assemble these phrases into a sequence that
|
||||||
|
determines the entire song. This approach is similar to the
|
||||||
|
bottom-up approach of factored languages such as Forth.
|
||||||
|
|
||||||
|
|
||||||
|
:: Pattern Triggers
|
||||||
|
|
||||||
|
< non-pattern-triggers.png
|
||||||
|
|
||||||
|
Next to the sequence playlist is an array of pattern triggers. Here
|
||||||
|
one can monitor the progress of multiple patterns during playback
|
||||||
|
and cause them to be muted etc.
|
||||||
|
|
||||||
|
The left mouse button toggles muting, the middle button toggles
|
||||||
|
soloing, and the right button brings up the given pattern in the
|
||||||
|
pattern editor.
|
||||||
|
|
||||||
|
Playing patterns appear green, the solo pattern appears red, and
|
||||||
|
muted patterns appear gray,
|
||||||
|
|
||||||
|
: MIDI
|
||||||
|
|
||||||
|
:: IO
|
||||||
|
|
||||||
|
Non utilizes the Jack MIDI transport. Jack MIDI is an emerging MIDI
|
||||||
|
transport for Linux. Since Jack already provides similar routing as
|
||||||
|
the ALSA Sequencer interface, little is lost--besides compatibility
|
||||||
|
with existing programs. (Jack has an aseq bridge capability, but in
|
||||||
|
order to benefit from Jack MIDI, both sequencer and synth must use
|
||||||
|
Jack). The Jack MIDI API is extremely limited in comparison to the
|
||||||
|
very capable ALSA API, but this is a problem for the programmer, not
|
||||||
|
the user.
|
||||||
|
|
||||||
|
At the time of writing, Non is one of only two sequencers to use
|
||||||
|
Jack MIDI natively.
|
||||||
|
|
||||||
|
::: About Jack MIDI Connections
|
||||||
|
|
||||||
|
Since Jack MIDI is new and not all programs support it, many find
|
||||||
|
themselves confused. This section attempts to explain Jack MIDI
|
||||||
|
ports.
|
||||||
|
|
||||||
|
The ALSA sequencer interface has long been the standard MIDI routing
|
||||||
|
subsystem on Linux. But many (all) of the programs we use for
|
||||||
|
synthesis these days use Jack for their audio IO. It makes more
|
||||||
|
sense for those MIDI related programs utilizing the Jack Transport
|
||||||
|
for synchronization to also use Jack ports for MIDI
|
||||||
|
delivery. Therefore, ALSA MIDI is quickly becoming obsolete.
|
||||||
|
|
||||||
|
Jack MIDI ports are *not* related to ALSA MIDI ports in any
|
||||||
|
way. Jack MIDI ports are just like Jack audio ports, except that the
|
||||||
|
data being transmitted in each buffer are raw, timestamped MIDI
|
||||||
|
events instead of floating point audio samples. Jack MIDI is
|
||||||
|
sample-accurate. This means that a MIDI Note On event can occur
|
||||||
|
concurrently with a sound, and the two will never drift apart as
|
||||||
|
often happens to some extent with ALSA.
|
||||||
|
|
||||||
|
In essence, Jack MIDI is a way of expressing a direct temporal
|
||||||
|
correlation between audio and MIDI data.
|
||||||
|
|
||||||
|
// Note:
|
||||||
|
{ Older versions of QJackCtl and other connection managers do not
|
||||||
|
{ know about Jack MIDI ports. Please make sure you're using an
|
||||||
|
{ up-to-date version.
|
||||||
|
|
||||||
|
When Non is started, it will create `Non:midi_in` and
|
||||||
|
`Non:control_in` input ports, as well as the 16 output ports with
|
||||||
|
names after the form `Non:midi_out-X`, where `X` is a number from 1
|
||||||
|
to 16. These ports will be visible in any connection manager capable
|
||||||
|
of connecting Jack MIDI ports, as well as via the `jack_lsp` and
|
||||||
|
`jack_connect` command-line utilities.
|
||||||
|
|
||||||
|
For example, to connect Non to ZynAddSubFX (the CVS version supports
|
||||||
|
Jack MIDI), type the following into the shell:
|
||||||
|
|
||||||
|
> $ jack_connect Non:midi_out-1 ZynAddSubFX:midi_in
|
||||||
|
|
||||||
|
Also, be sure that Zyn's outputs are connected to
|
||||||
|
system:playback\_\* so that you can hear the sounds it produces.
|
||||||
|
|
||||||
|
It is possible to use Jack MIDI clients and ALSA MIDI clients
|
||||||
|
together via the bridge built into jackd. For this to work you must
|
||||||
|
append the `-X seq` option to the `alsa` driver section of the jackd
|
||||||
|
command line. Like so:
|
||||||
|
|
||||||
|
> $ jackd -d alsa -X seq
|
||||||
|
|
||||||
|
The way such bridged ports are named varies between Jack versions,
|
||||||
|
but they should be fairly obvious. When used in this way, many of
|
||||||
|
the advantages of Jack MIDI are lost, so it is recommended that you
|
||||||
|
find a Jack MIDI capable synth for best results.
|
||||||
|
|
||||||
|
// Example of Jack MIDI connections in Patchage
|
||||||
|
< non-patchage.png
|
||||||
|
|
||||||
|
:: Non Files
|
||||||
|
|
||||||
|
The format of `.non` files is a variation of SMF-2. In an SMF-2
|
||||||
|
file, each track chunk represents a pattern. Because Non groups
|
||||||
|
patterns into /phrases/, this usage of SMF-2 is probably not
|
||||||
|
compatible with other implementations (although, the author has
|
||||||
|
never actually seen another program that could play back SMF-2
|
||||||
|
anyway.)
|
||||||
|
|
||||||
|
Each phrase is stored as a track of MIDI Cue messages, each
|
||||||
|
referring to a pattern to be triggered. The sequence\/playlist is
|
||||||
|
stored as the first track, and consists of a list of Cue Point
|
||||||
|
meta-events referring to phrases.
|
||||||
|
|
||||||
|
Also in the first track is a sequencer specific meta-event (ID
|
||||||
|
"Non!") containing song data that cannot be readily expressed with
|
||||||
|
existing meta events, and some versioning info to aid future
|
||||||
|
compatibility.
|
||||||
|
|
||||||
|
In short, the author has done the utmost to save sequences in a
|
||||||
|
standard format--within reason; SMF was hardly designed with a
|
||||||
|
program like Non in mind--instead of some ad-hoc ASCII format (which
|
||||||
|
would have been *far* easier to implement), or worse, buggy, bulky,
|
||||||
|
and unmaintainable XML.
|
||||||
|
|
||||||
|
:: Exports
|
||||||
|
|
||||||
|
In addition to saving and loading `.non` files, Non can export
|
||||||
|
individual patterns as flat, SMF-0 MIDI files.
|
||||||
|
|
||||||
|
:: Imports
|
||||||
|
|
||||||
|
SMF-0 files can be imported as a new pattern (all channels merged),
|
||||||
|
or SMF-1 (such as those written by Seq24) and SMF-2 (ever seen one
|
||||||
|
of these?) can be imported as N new patterns (selected from a track
|
||||||
|
list.) All imported patterns are set to display the Chromatic scale,
|
||||||
|
in order that no notes be hidden from view.
|
||||||
|
|
||||||
|
This should make it easy to migrate any existing patterns that you
|
||||||
|
may have over to Non, or to permit editing of Non patterns in
|
||||||
|
external programs (for graphic controller tweaking perhaps?)
|
||||||
|
|
||||||
|
: Synchronization
|
||||||
|
|
||||||
|
Non's transport is driven by the Jack Transport, so in order to sync
|
||||||
|
Non with a DAW like Ardour, you must set Ardour to be the Jack
|
||||||
|
Timebase Master. Therefore, all tempo mapping and time signature
|
||||||
|
information should be manipulated in the Timebase Master--Non will
|
||||||
|
respond to these changes automatically. If there is no Timebase
|
||||||
|
Master registered when Non starts, it will take over that role
|
||||||
|
instead. This is useful if you simply plan to use Non as a musical
|
||||||
|
instrument.
|
||||||
|
|
||||||
|
: Control
|
||||||
|
|
||||||
|
Non creates two MIDI input ports, one for /performance/ data and one
|
||||||
|
for /control/ data. The control port is used to control Non with
|
||||||
|
hardware MIDI controllers, such as the BCF2000, or other software.
|
||||||
|
The performance port is used to record musical data into patterns.
|
||||||
|
|
||||||
|
: Playback
|
||||||
|
|
||||||
|
The playback mode can be toggled between Pattern, Sequence and
|
||||||
|
Trigger. In Pattern mode (the default), all patterns are played
|
||||||
|
simultaneously, from the beginning, and looped forever. Since
|
||||||
|
patterns may differ widely in length, interesting compositions are
|
||||||
|
possible. In this mode, Non makes for a very intuitive software
|
||||||
|
instrument--rivaled only by the excellent program FreeWheeling (a
|
||||||
|
live audio looper.)
|
||||||
|
|
||||||
|
In Sequence mode, playback strictly follows the sequence list and
|
||||||
|
the Jack transport, and does not loop. This mode is suitable for
|
||||||
|
parallel compositions between Non and a Jack Timebase Master capable
|
||||||
|
DAW.
|
||||||
|
|
||||||
|
Trigger mode is very much like Pattern mode, except that all
|
||||||
|
patterns begin muted and must be enabled via the trigger view.
|
||||||
|
|
||||||
|
: Sister Projects
|
||||||
|
|
||||||
|
Much of the inspiration to move forward with Non was derived from JP
|
||||||
|
Mercury's highly useful and successful FreeWheeling
|
||||||
|
looper. Mr. Mercury is a visionary.
|
||||||
|
|
||||||
|
But the closest sister of Non has to be the amazingly capable
|
||||||
|
ZynAddSubFX soft-synth by Nasca Octavian Paul. ZynAddSubFX, like
|
||||||
|
Non, utilizes the FLTK GUI toolkit, and has recently begun to
|
||||||
|
support Jack MIDI (albeit in a limited fashion.) This is, hands
|
||||||
|
down, the best synth available for Linux, and probably one of the
|
||||||
|
best period. If all you have is Non and Zyn, you have all that you
|
||||||
|
require to make great music.
|
||||||
|
|
||||||
|
Of course, this section can hardly go without mention of Rob Buse's
|
||||||
|
Seq24. It was the author's unending frustration with the abysmal
|
||||||
|
performance and absurd limitations of Seq24 that, more than any
|
||||||
|
other single factor, inspired him to write Non. The most
|
||||||
|
frustrating aspect was that, prior to Non, Seq24 was, in the
|
||||||
|
author's opinion, the best sequencer available on Linux. Seq24,
|
||||||
|
which claims to be light and free of bloat is, without comparison,
|
||||||
|
the slowest, most poorly optimized sequencer the author has
|
||||||
|
tried. Even the huge, snarling beast that is RoseGarden out performs
|
||||||
|
Seq24 in every way but start time.
|
||||||
|
|
||||||
|
Those days are over.
|
|
@ -0,0 +1,23 @@
|
||||||
|
|
||||||
|
SRCS=$(wildcard *.mu)
|
||||||
|
OBJS=$(SRCS:.mu=.html)
|
||||||
|
|
||||||
|
%.html: %.mu
|
||||||
|
@ echo Mupping $<...
|
||||||
|
@ mup.wrapper html $<
|
||||||
|
|
||||||
|
.PHONY: all clean
|
||||||
|
|
||||||
|
all: $(OBJS)
|
||||||
|
|
||||||
|
upload: all
|
||||||
|
@ ln -sf OVERVIEW.html index.html
|
||||||
|
@ rsync -L mup.css MANUAL.html index.html *.png ssh.tuxfamily.org:/home/non/non-sequencer.tuxfamily.org-web/htdocs
|
||||||
|
@ rm -f index.html
|
||||||
|
|
||||||
|
install:
|
||||||
|
@ install -d "$(DESTDIR)$(DOCUMENT_PATH)/non-sequencer"
|
||||||
|
@ install -m 644 $(OBJS) *.png mup.css ../../COPYING "$(DESTDIR)$(DOCUMENT_PATH)/non-sequencer"
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -f $(OBJS)
|
|
@ -0,0 +1,86 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||||
|
<html><head>
|
||||||
|
<meta name="generator" content="Generated by MUP v3.5">
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||||
|
<link type="text/css" rel="stylesheet" href="mup.css">
|
||||||
|
<title>The Non Sequencer</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id=cover>
|
||||||
|
<h1>The Non Sequencer</h1>
|
||||||
|
<h3></h3>
|
||||||
|
<address>
|
||||||
|
Jonathan Moore Liles <a href="mailto:male@tuxfamily.org"><male@tuxfamily.org></a><br>
|
||||||
|
<br>
|
||||||
|
|
||||||
|
</address><img src="icon.png" alt="logo"><hr></div>
|
||||||
|
<div id=body>
|
||||||
|
<hr width=50%>
|
||||||
|
<h1 id="u:1.">Description</h1>
|
||||||
|
<p>
|
||||||
|
The Non Sequencer is a powerful real-time, pattern-based MIDI sequencer for Linux--released under the GPL. Filling the void left by countless DAWs, piano-roll editors, and other purely performance based solutions, it is a compositional tool--one that transforms MIDI music-making on Linux from a complex nightmare into a pleasurable, efficient, and streamlined process.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Please see the <a class=ext href="MANUAL.html">manual</a> for more information.
|
||||||
|
</p>
|
||||||
|
<h1 id="u:2.">What it is not</h1>
|
||||||
|
<p>
|
||||||
|
Non is <b>not</b> a plain MIDI recorder, tracker, software synthesizer, notation editor or AI system. There are other programs available to do those things. Non is intended to be one tool among many in your Linux audio toolbox.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Everything in Non happens <i>on-line</i>, in realtime. Music is composed live, while the transport is running.
|
||||||
|
</p>
|
||||||
|
<h1 id="u:3.">What does freedom have to do with this software?</h1>
|
||||||
|
<p>
|
||||||
|
Non is <i>free software</i>. This means, briefly, that you are free use it as <b>you</b> wish, free to examine and adapt the source code, free to share it with your friends, and free to publish your changes to the source code. Furthermore, Non is <i>copyleft</i>, which means that you are free from the threat of some other entity taking over and denying you the above freedoms. The <i>free</i> part of <i>free software</i> doesn't refer to price any more than the <i>free</i> in <i>free speech</i> does.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
To learn why free software is so important to us (and why it should be important to you), please see the Free Software Foundation's website:
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<a class=ext href="http://www.fsf.org/licensing/essays/free-sw.html">What is Free Software?</a> <a class=ext href="http://www.fsf.org/licensing/essays/copyleft.html">What is Copyleft?</a>
|
||||||
|
</p>
|
||||||
|
<h1 id="u:4.">Donations</h1>
|
||||||
|
<p>
|
||||||
|
Donations can take many forms. You can donate your time in code, either by sending it to me for review or cloning the git repository and publishing one containing your changes. You can donate your time in testing, documentation, artwork, indexing, etc. Or, if you don't feel that you possess the time or skills required for the above forms of donation, you can donate money instead. Money donated will help to ensure that I have the free time, good nutrition and enthusiasm required to implement new features. It can also be a more palpable way of saying "Thanks for caring." or "Job well done!"
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
If you don't love this software, don't feel guilty about not contributing. If you do love it, then please help me improve it--in whatever manner you think is appropriate.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<a class=ext href="http://non.tuxfamily.org/donation.html">Make a donation</a>
|
||||||
|
</p>
|
||||||
|
<h1 id="u:5.">Distribution</h1>
|
||||||
|
<p>
|
||||||
|
Development of the Non Sequencer can be followed with Git:
|
||||||
|
</p>
|
||||||
|
<div class="fig example"><table width=100%><tr><td><pre>
|
||||||
|
git clone git://git.tuxfamily.org/gitroot/non/sequencer.git
|
||||||
|
</pre></td></tr>
|
||||||
|
</table></div>
|
||||||
|
<p>
|
||||||
|
There are no pre-compiled binaries available.
|
||||||
|
</p>
|
||||||
|
<h1 id="u:6.">Requirements</h1>
|
||||||
|
<p>
|
||||||
|
The following libraries are required to build Non.
|
||||||
|
</p>
|
||||||
|
<ul><li><span>FLTK >= 1.1.7 (with `fluid`)</span>
|
||||||
|
<li><span>JACK >= 0.103.0</span>
|
||||||
|
<li><span>sigc++ 2.0</span>
|
||||||
|
</ul><h1 id="u:7.">Community</h1>
|
||||||
|
<p>
|
||||||
|
Feel free to drop by the <tt>#non</tt> channel on irc.freenode.net.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
There is a mailing list <tt>non-sequencer@lists.tuxfamily.org</tt>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
To subscribe, send a message with the subject 'subscribe' to <a href="mailto:non-sequencer-request@lists.tuxfamily.org"><non-sequencer-request@lists.tuxfamily.org></a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
You can also browse the <a class=ext href="http://listengine.tuxfamily.org/lists.tuxfamily.org/non-sequencer/">archive</a>.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,91 @@
|
||||||
|
|
||||||
|
! title The Non Sequencer
|
||||||
|
! author Jonathan Moore Liles #(email,male@tuxfamily.org)
|
||||||
|
! extra #(image,logo,icon.png)
|
||||||
|
|
||||||
|
--
|
||||||
|
|
||||||
|
; Description
|
||||||
|
|
||||||
|
The Non Sequencer is a powerful real-time, pattern-based MIDI sequencer for
|
||||||
|
Linux--released under the GPL. Filling the void left by countless DAWs,
|
||||||
|
piano-roll editors, and other purely performance based solutions, it is a
|
||||||
|
compositional tool--one that transforms MIDI music-making on Linux from a
|
||||||
|
complex nightmare into a pleasurable, efficient, and streamlined process.
|
||||||
|
|
||||||
|
Please see the #(url,MANUAL.html,manual) for more information.
|
||||||
|
|
||||||
|
; What it is not
|
||||||
|
|
||||||
|
Non is *not* a plain MIDI recorder, tracker, software synthesizer, notation
|
||||||
|
editor or AI system. There are other programs available to do those things.
|
||||||
|
Non is intended to be one tool among many in your Linux audio toolbox.
|
||||||
|
|
||||||
|
Everything in Non happens /on-line/, in realtime. Music is composed live,
|
||||||
|
while the transport is running.
|
||||||
|
|
||||||
|
; What does freedom have to do with this software?
|
||||||
|
|
||||||
|
Non is /free software/. This means, briefly, that you are free use it as
|
||||||
|
*you* wish, free to examine and adapt the source code, free to share it with
|
||||||
|
your friends, and free to publish your changes to the source code.
|
||||||
|
Furthermore, Non is /copyleft/, which means that you are free from the threat
|
||||||
|
of some other entity taking over and denying you the above freedoms. The
|
||||||
|
/free/ part of /free software/ doesn't refer to price any more than the
|
||||||
|
/free/ in /free speech/ does.
|
||||||
|
|
||||||
|
To learn why free software is so important to us (and why it should be
|
||||||
|
important to you), please see the Free Software Foundation's website:
|
||||||
|
|
||||||
|
#(url,http:\/\/www.fsf.org\/licensing\/essays\/free-sw.html,What is Free Software?)
|
||||||
|
#(url,http:\/\/www.fsf.org\/licensing\/essays\/copyleft.html,What is Copyleft?)
|
||||||
|
|
||||||
|
; Donations
|
||||||
|
|
||||||
|
Donations can take many forms. You can donate your time in code, either by
|
||||||
|
sending it to me for review or cloning the git repository and publishing one
|
||||||
|
containing your changes. You can donate your time in testing, documentation,
|
||||||
|
artwork, indexing, etc. Or, if you don't feel that you possess the time or
|
||||||
|
skills required for the above forms of donation, you can donate money
|
||||||
|
instead. Money donated will help to ensure that I have the free time, good
|
||||||
|
nutrition and enthusiasm required to implement new features. It can also be
|
||||||
|
a more palpable way of saying "Thanks for caring." or "Job well done!"
|
||||||
|
|
||||||
|
If you don't love this software, don't feel guilty about not contributing. If
|
||||||
|
you do love it, then please help me improve it--in whatever manner you think
|
||||||
|
is appropriate.
|
||||||
|
|
||||||
|
#(url,http:\/\/non.tuxfamily.org\/donation.html,Make a donation)
|
||||||
|
|
||||||
|
; Distribution
|
||||||
|
|
||||||
|
Development of the Non Sequencer can be followed with Git:
|
||||||
|
|
||||||
|
> git clone git://git.tuxfamily.org/gitroot/non/sequencer.git
|
||||||
|
|
||||||
|
# or
|
||||||
|
#
|
||||||
|
# > git clone git://repo.or.gz/src/git/non.git
|
||||||
|
|
||||||
|
There are no pre-compiled binaries available.
|
||||||
|
|
||||||
|
; Requirements
|
||||||
|
|
||||||
|
The following libraries are required to build Non.
|
||||||
|
|
||||||
|
|
||||||
|
* FLTK >= 1.1.7 (with `fluid`)
|
||||||
|
* JACK >= 0.103.0
|
||||||
|
* sigc++ 2.0
|
||||||
|
|
||||||
|
; Community
|
||||||
|
|
||||||
|
Feel free to drop by the `#non` channel on irc.freenode.net.
|
||||||
|
|
||||||
|
There is a mailing list `non-sequencer@lists.tuxfamily.org`.
|
||||||
|
|
||||||
|
To subscribe, send a message with the subject 'subscribe' to
|
||||||
|
#(email,non-sequencer-request@lists.tuxfamily.org).
|
||||||
|
|
||||||
|
You can also browse the #(url,http:\/\/listengine.tuxfamily.org\/lists.tuxfamily.org\/non-sequencer\/,archive).
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
../icons/hicolor/256x256/apps/non-sequencer.png
|
|
@ -0,0 +1,449 @@
|
||||||
|
|
||||||
|
/* Example CSS Style for MUP */
|
||||||
|
|
||||||
|
a:link {
|
||||||
|
color: yellow;
|
||||||
|
}
|
||||||
|
a:visited {
|
||||||
|
color: olive;
|
||||||
|
}
|
||||||
|
a:active {
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
a:link:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* #(url) */
|
||||||
|
a.ext:link {
|
||||||
|
color: red;
|
||||||
|
text-decoration: none;
|
||||||
|
border-bottom: dashed silver 1;
|
||||||
|
}
|
||||||
|
a.ext:visited {
|
||||||
|
color: darkred;
|
||||||
|
border-bottom: dashed silver 1;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* #(ref) */
|
||||||
|
a.int:link {
|
||||||
|
border-bottom: dashed silver 0.15em;
|
||||||
|
}
|
||||||
|
a.int:link:hover {
|
||||||
|
text-decoration: none;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
a[href^="#"]:link {
|
||||||
|
border-bottom: dashed silver 0.15em;
|
||||||
|
}
|
||||||
|
a[href^="#"]:link:hover {
|
||||||
|
text-decoration: none;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
p:contains("Warning:") {
|
||||||
|
background: #d00;
|
||||||
|
color: white;
|
||||||
|
border: dotted gray 0.5em;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* First letter of first paragraph of every chapter */
|
||||||
|
/*
|
||||||
|
h1 + p:first-letter {
|
||||||
|
text-transform: uppercase;
|
||||||
|
float: left;
|
||||||
|
line-height: 0.8em;
|
||||||
|
font-size: 350%;
|
||||||
|
font-family: Serif;
|
||||||
|
letter-spacing: 0;
|
||||||
|
margin-right: 0.1em;
|
||||||
|
margin-top: 0.1em;
|
||||||
|
border: solid gray 1px;
|
||||||
|
padding: 1px;
|
||||||
|
color: #d00;
|
||||||
|
text-shadow: #666 3px 3px 3px;
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
/* First paragraph of every chapter */
|
||||||
|
/*
|
||||||
|
h1 + p {
|
||||||
|
text-indent: 0;
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* cover */
|
||||||
|
#cover * {
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
#cover {
|
||||||
|
position: relative;
|
||||||
|
background: #da0;
|
||||||
|
color: black;
|
||||||
|
text-align: center;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0.5em;
|
||||||
|
}
|
||||||
|
#cover h1, #cover h3 {
|
||||||
|
text-shadow: #444 0.2em 0.2em 0.2em;
|
||||||
|
color: white;
|
||||||
|
border: none;
|
||||||
|
letter-spacing: 0.2em;
|
||||||
|
line-height: 0.8em;
|
||||||
|
margin-left: 2em;
|
||||||
|
margin-right: 2em;
|
||||||
|
}
|
||||||
|
#cover h1:before, #cover h1:after {
|
||||||
|
content: "::";
|
||||||
|
font-size: 300%;
|
||||||
|
color: black;
|
||||||
|
}
|
||||||
|
#cover h1:before {
|
||||||
|
position: absolute;
|
||||||
|
top: 0.2em;
|
||||||
|
left: 0.1em;
|
||||||
|
}
|
||||||
|
#cover h1:after {
|
||||||
|
position: absolute;
|
||||||
|
top: 0.2em;
|
||||||
|
right: 0.1em;
|
||||||
|
}
|
||||||
|
#cover hr {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
hr:first-child {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
hr {
|
||||||
|
height: 0.2em;
|
||||||
|
background: #555;
|
||||||
|
color: #555;
|
||||||
|
margin-left: 0.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
#cover a:visited {
|
||||||
|
color: black;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* endnote */
|
||||||
|
#endnote {
|
||||||
|
color: black;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* TOC */
|
||||||
|
#toc {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
#toc hr {
|
||||||
|
}
|
||||||
|
#toc h1 {
|
||||||
|
}
|
||||||
|
#toc ul {
|
||||||
|
font-size: 125%;
|
||||||
|
font-weight: bold;
|
||||||
|
margin-bottom: 1em;
|
||||||
|
}
|
||||||
|
#toc ul ul {
|
||||||
|
font-size: 90%;
|
||||||
|
font-weight: normal;
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
#toc li {
|
||||||
|
list-style: none;
|
||||||
|
|
||||||
|
}
|
||||||
|
#toc a:link {
|
||||||
|
border-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
margin: 0;
|
||||||
|
background: #222;
|
||||||
|
color: white;
|
||||||
|
font-family: Arial, sans-serif;
|
||||||
|
}
|
||||||
|
/* */
|
||||||
|
#body {
|
||||||
|
position: relative;
|
||||||
|
margin: 0.5em;
|
||||||
|
padding: 0.5em;
|
||||||
|
}
|
||||||
|
/* ;, : */
|
||||||
|
h1 {
|
||||||
|
color: #ff0;
|
||||||
|
border-bottom: solid #444 0.1em;
|
||||||
|
}
|
||||||
|
/* ::, :::, ::::, :::::, :::::: */
|
||||||
|
h2, h3, h4, h5, h6 {
|
||||||
|
color: #dd0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* tables, figures */
|
||||||
|
.fig caption {
|
||||||
|
color: gray;
|
||||||
|
text-align: center;
|
||||||
|
/* Required for Mozilla */
|
||||||
|
margin: auto;
|
||||||
|
}
|
||||||
|
.fig table {
|
||||||
|
border: none;
|
||||||
|
margin: auto;
|
||||||
|
/* border-collapse: collapse; */
|
||||||
|
}
|
||||||
|
/* / */
|
||||||
|
.fig.table th {
|
||||||
|
border: none;
|
||||||
|
background: gray;
|
||||||
|
color: black;
|
||||||
|
}
|
||||||
|
/* [ */
|
||||||
|
.fig.table td {
|
||||||
|
border: none;
|
||||||
|
background: silver;
|
||||||
|
color: black;
|
||||||
|
padding-left: 1em;
|
||||||
|
padding-right: 1em;
|
||||||
|
padding-top: 0.2em;
|
||||||
|
padding-bottom: 0.2em;
|
||||||
|
}
|
||||||
|
/* < */
|
||||||
|
|
||||||
|
.fig.image table {
|
||||||
|
border: dashed silver 0.2em;
|
||||||
|
background: transparent;
|
||||||
|
/* Every browser should support border radii */
|
||||||
|
-moz-border-radius: 0.5em;
|
||||||
|
border-radius: 0.5em;
|
||||||
|
|
||||||
|
}
|
||||||
|
.fig.image tr, .fig.image td {
|
||||||
|
border: none;
|
||||||
|
background: transparent;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* */
|
||||||
|
p {
|
||||||
|
margin-right: 2%;
|
||||||
|
text-align: justify;
|
||||||
|
text-indent: 1em;
|
||||||
|
}
|
||||||
|
/* > */
|
||||||
|
.example *
|
||||||
|
{
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
.example table
|
||||||
|
{
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
table-layout: fixed;
|
||||||
|
width: 100%;
|
||||||
|
caption-side: top;
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
.example caption
|
||||||
|
{
|
||||||
|
caption-side: top;
|
||||||
|
|
||||||
|
}
|
||||||
|
.example {
|
||||||
|
}
|
||||||
|
.example p {
|
||||||
|
display: inline;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.example pre {
|
||||||
|
margin-top: 0;
|
||||||
|
font-family: Monospace;
|
||||||
|
padding: 1em;
|
||||||
|
border: dashed 0.3em gray;
|
||||||
|
background: #111;
|
||||||
|
color: white;
|
||||||
|
display: block;
|
||||||
|
overflow: auto;
|
||||||
|
/* Every browser should support border radii */
|
||||||
|
-moz-border-radius: 0.5em;
|
||||||
|
border-radius: 0.5em;
|
||||||
|
}
|
||||||
|
/* " */
|
||||||
|
/*
|
||||||
|
.quote:before {
|
||||||
|
float: left;
|
||||||
|
font-size: 500%;
|
||||||
|
content: "\201C";
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
/*
|
||||||
|
blockquote:after {
|
||||||
|
content: "\201D";
|
||||||
|
}*/
|
||||||
|
.quote blockquote {
|
||||||
|
padding: 0.5em;
|
||||||
|
margin-left: 0.5em;
|
||||||
|
font-family: Serif;
|
||||||
|
border-left: solid 0.4em gray;
|
||||||
|
/* background: #333; */
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
/* ^ */
|
||||||
|
small {
|
||||||
|
/*
|
||||||
|
color: silver;
|
||||||
|
font-size: 50%;
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
.footnote p {
|
||||||
|
color: silver;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Popup footnotes */
|
||||||
|
.footnote p {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.footnote p:target {
|
||||||
|
display: block;
|
||||||
|
overflow: auto;
|
||||||
|
position: fixed;
|
||||||
|
left: auto;
|
||||||
|
bottom: 0;
|
||||||
|
right: 0;
|
||||||
|
max-width: 50%;
|
||||||
|
border: solid 0.3em white;
|
||||||
|
-moz-border-radius: 0.5em;
|
||||||
|
background: black;
|
||||||
|
padding: 0.2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* { */
|
||||||
|
.admonition * {
|
||||||
|
background: transparent;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
.admonition dl
|
||||||
|
{
|
||||||
|
display: table;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
background: #333;
|
||||||
|
border: dotted black 0.3em;
|
||||||
|
width: 90%
|
||||||
|
margin-top: 0.5em;
|
||||||
|
margin-bottom: 0.5em;
|
||||||
|
}
|
||||||
|
.admonition dt
|
||||||
|
{
|
||||||
|
display: table-cell;
|
||||||
|
vertical-align: center;
|
||||||
|
border-right: solid silver 0.4em;
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 115%;
|
||||||
|
font-family: Serif;
|
||||||
|
background: gray;
|
||||||
|
width: 0;
|
||||||
|
text-shadow: black 0.15em 0.15em 0.15em;
|
||||||
|
}
|
||||||
|
.admonition dd
|
||||||
|
{
|
||||||
|
padding-left: 0.4em;
|
||||||
|
display: table-cell;
|
||||||
|
width: 100%;
|
||||||
|
text-align: justify;
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition table
|
||||||
|
{
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
background: #333;
|
||||||
|
border: dotted black 0.3em;
|
||||||
|
width: 90%
|
||||||
|
margin-top: 0.5em;
|
||||||
|
margin-bottom: 0.5em;
|
||||||
|
}
|
||||||
|
.admonition td {
|
||||||
|
width: 100%;
|
||||||
|
text-align: justify;
|
||||||
|
}
|
||||||
|
.admonition td:first-child:contains("Warning:") {
|
||||||
|
background: #900;
|
||||||
|
}
|
||||||
|
.admonition td:first-child:contains("Caution:") {
|
||||||
|
background: #960;
|
||||||
|
}
|
||||||
|
.admonition td:first-child:contains("Note:") {
|
||||||
|
background: #690;
|
||||||
|
}
|
||||||
|
.admonition td:first-child {
|
||||||
|
border-right: solid silver 0.4em;
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 115%;
|
||||||
|
font-family: Serif;
|
||||||
|
background: gray;
|
||||||
|
width: 0;
|
||||||
|
text-shadow: black 0.15em 0.15em 0.15em;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* #(b) */
|
||||||
|
/* b { color: olive; } */
|
||||||
|
/* #(c) */
|
||||||
|
tt {
|
||||||
|
color: #7f0;
|
||||||
|
}
|
||||||
|
/* ! keywords ... */
|
||||||
|
p em {
|
||||||
|
color: gray;
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* *, + */
|
||||||
|
/* Bullet, numbe */
|
||||||
|
li {
|
||||||
|
color: #f0f;
|
||||||
|
}
|
||||||
|
/* Text */
|
||||||
|
li span, li p {
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
li p {
|
||||||
|
color: red;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
ul {
|
||||||
|
list-style-type: square;
|
||||||
|
}
|
||||||
|
dl {
|
||||||
|
margin-left: 2%;
|
||||||
|
margin-top: 1em;
|
||||||
|
}
|
||||||
|
/* = */
|
||||||
|
dt {
|
||||||
|
background: #181818;
|
||||||
|
padding: 0.2em;
|
||||||
|
font-variant: small-caps;
|
||||||
|
font-weight: bold;
|
||||||
|
color: #f0f;
|
||||||
|
}
|
||||||
|
dd {
|
||||||
|
color: white;
|
||||||
|
text-align: justify;
|
||||||
|
margin-right: 5%;
|
||||||
|
}
|
||||||
|
dt a:link, dt a:visited {
|
||||||
|
color: #f0f;
|
||||||
|
}
|
||||||
|
dt a:link:hover {
|
||||||
|
color: silver;
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
After Width: | Height: | Size: 72 KiB |
After Width: | Height: | Size: 107 KiB |
After Width: | Height: | Size: 40 KiB |
After Width: | Height: | Size: 68 KiB |
After Width: | Height: | Size: 102 KiB |
After Width: | Height: | Size: 94 KiB |
After Width: | Height: | Size: 34 KiB |
After Width: | Height: | Size: 58 KiB |
After Width: | Height: | Size: 2.0 KiB |
After Width: | Height: | Size: 119 KiB |
After Width: | Height: | Size: 142 KiB |
After Width: | Height: | Size: 6.3 KiB |
After Width: | Height: | Size: 7.6 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 225 KiB |
After Width: | Height: | Size: 20 KiB |
After Width: | Height: | Size: 25 KiB |
After Width: | Height: | Size: 39 KiB |
|
@ -0,0 +1,998 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
width="512"
|
||||||
|
height="512"
|
||||||
|
id="svg2"
|
||||||
|
version="1.1"
|
||||||
|
inkscape:version="0.48.1 r9760"
|
||||||
|
sodipodi:docname="icon-large.svg"
|
||||||
|
inkscape:export-filename="/home/male/prog/non-sequencer/doc/just-text.png"
|
||||||
|
inkscape:export-xdpi="141.06583"
|
||||||
|
inkscape:export-ydpi="141.06583"
|
||||||
|
style="enable-background:new">
|
||||||
|
<defs
|
||||||
|
id="defs4">
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient6483">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffa903;stop-opacity:1"
|
||||||
|
offset="0"
|
||||||
|
id="stop6485" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#fea700;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop6487" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient5418">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#669a18;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop5420" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#654d4d;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop5422" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient5021">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop5023" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop5025" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient5013">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop5015" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop5017" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient4861">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#a50000;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop4863" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#a50000;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop4865" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient5209"
|
||||||
|
osb:paint="solid">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop5211" />
|
||||||
|
</linearGradient>
|
||||||
|
<filter
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="filter5252"
|
||||||
|
x="-0.051939286"
|
||||||
|
width="1.1038786"
|
||||||
|
y="-0.80208468"
|
||||||
|
height="2.6041694"
|
||||||
|
color-interpolation-filters="sRGB">
|
||||||
|
<feGaussianBlur
|
||||||
|
inkscape:collect="always"
|
||||||
|
stdDeviation="5.3552102"
|
||||||
|
id="feGaussianBlur5254" />
|
||||||
|
</filter>
|
||||||
|
<filter
|
||||||
|
id="filter6205"
|
||||||
|
inkscape:label="Black hole"
|
||||||
|
inkscape:menu="Morphology"
|
||||||
|
inkscape:menu-tooltip="Creates a black light inside and outside"
|
||||||
|
height="1.5"
|
||||||
|
width="1.5"
|
||||||
|
y="-0.25"
|
||||||
|
x="-0.25"
|
||||||
|
color-interpolation-filters="sRGB">
|
||||||
|
<feGaussianBlur
|
||||||
|
id="feGaussianBlur6207"
|
||||||
|
stdDeviation="5"
|
||||||
|
in="SourceAlpha"
|
||||||
|
result="result1" />
|
||||||
|
<feComposite
|
||||||
|
id="feComposite6209"
|
||||||
|
in2="result1"
|
||||||
|
operator="arithmetic"
|
||||||
|
k2="3.2"
|
||||||
|
k1="-1"
|
||||||
|
k4="-2"
|
||||||
|
result="result3"
|
||||||
|
k3="0" />
|
||||||
|
<feColorMatrix
|
||||||
|
id="feColorMatrix6211"
|
||||||
|
values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 10 0 "
|
||||||
|
result="result2" />
|
||||||
|
<feComposite
|
||||||
|
id="feComposite6213"
|
||||||
|
in2="result2"
|
||||||
|
result="fbSourceGraphic"
|
||||||
|
in="SourceGraphic"
|
||||||
|
operator="out" />
|
||||||
|
<feBlend
|
||||||
|
id="feBlend6215"
|
||||||
|
in2="fbSourceGraphic"
|
||||||
|
mode="multiply"
|
||||||
|
in="result1"
|
||||||
|
result="result91" />
|
||||||
|
<feBlend
|
||||||
|
id="feBlend6217"
|
||||||
|
in2="result91"
|
||||||
|
mode="screen"
|
||||||
|
in="fbSourceGraphic" />
|
||||||
|
</filter>
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient6759-3"
|
||||||
|
id="radialGradient6767-0"
|
||||||
|
cx="103.21429"
|
||||||
|
cy="213.43361"
|
||||||
|
fx="103.21429"
|
||||||
|
fy="213.43361"
|
||||||
|
r="8.2009745"
|
||||||
|
gradientTransform="matrix(1,0,0,1.0160278,0,-3.4208767)"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient6759-3">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop6761-5" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop6763-9" />
|
||||||
|
</linearGradient>
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient6759-2"
|
||||||
|
id="radialGradient6767-9"
|
||||||
|
cx="103.21429"
|
||||||
|
cy="213.43361"
|
||||||
|
fx="103.21429"
|
||||||
|
fy="213.43361"
|
||||||
|
r="8.2009745"
|
||||||
|
gradientTransform="matrix(1,0,0,1.0160278,0,-3.4208767)"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient6759-2">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop6761-9" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop6763-0" />
|
||||||
|
</linearGradient>
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient6759-2-4"
|
||||||
|
id="radialGradient6846-0"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(1,0,0,1.0160278,0,-3.4208767)"
|
||||||
|
cx="103.21429"
|
||||||
|
cy="213.43361"
|
||||||
|
fx="103.21429"
|
||||||
|
fy="213.43361"
|
||||||
|
r="8.2009745" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient6759-2-4">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop6761-9-1" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop6763-0-7" />
|
||||||
|
</linearGradient>
|
||||||
|
<filter
|
||||||
|
id="filter4094"
|
||||||
|
inkscape:label="Black hole"
|
||||||
|
inkscape:menu="Morphology"
|
||||||
|
inkscape:menu-tooltip="Creates a black light inside and outside"
|
||||||
|
height="1.5"
|
||||||
|
width="1.5"
|
||||||
|
y="-0.25"
|
||||||
|
x="-0.25"
|
||||||
|
color-interpolation-filters="sRGB">
|
||||||
|
<feGaussianBlur
|
||||||
|
id="feGaussianBlur4096"
|
||||||
|
stdDeviation="5"
|
||||||
|
in="SourceAlpha"
|
||||||
|
result="result1" />
|
||||||
|
<feComposite
|
||||||
|
id="feComposite4098"
|
||||||
|
in2="result1"
|
||||||
|
operator="arithmetic"
|
||||||
|
k2="3.2"
|
||||||
|
k1="-1"
|
||||||
|
k4="-2"
|
||||||
|
result="result3"
|
||||||
|
k3="0" />
|
||||||
|
<feColorMatrix
|
||||||
|
id="feColorMatrix4100"
|
||||||
|
values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 10 0 "
|
||||||
|
result="result2" />
|
||||||
|
<feComposite
|
||||||
|
id="feComposite4102"
|
||||||
|
in2="result2"
|
||||||
|
result="fbSourceGraphic"
|
||||||
|
in="SourceGraphic"
|
||||||
|
operator="out" />
|
||||||
|
<feBlend
|
||||||
|
id="feBlend4104"
|
||||||
|
in2="fbSourceGraphic"
|
||||||
|
mode="multiply"
|
||||||
|
in="result1"
|
||||||
|
result="result91" />
|
||||||
|
<feBlend
|
||||||
|
id="feBlend4106"
|
||||||
|
in2="result91"
|
||||||
|
mode="screen"
|
||||||
|
in="fbSourceGraphic" />
|
||||||
|
</filter>
|
||||||
|
<filter
|
||||||
|
id="filter4108"
|
||||||
|
inkscape:label="Black hole"
|
||||||
|
inkscape:menu="Morphology"
|
||||||
|
inkscape:menu-tooltip="Creates a black light inside and outside"
|
||||||
|
height="1.5"
|
||||||
|
width="1.5"
|
||||||
|
y="-0.25"
|
||||||
|
x="-0.25"
|
||||||
|
color-interpolation-filters="sRGB">
|
||||||
|
<feGaussianBlur
|
||||||
|
id="feGaussianBlur4110"
|
||||||
|
stdDeviation="5"
|
||||||
|
in="SourceAlpha"
|
||||||
|
result="result1" />
|
||||||
|
<feComposite
|
||||||
|
id="feComposite4112"
|
||||||
|
in2="result1"
|
||||||
|
operator="arithmetic"
|
||||||
|
k2="3.2"
|
||||||
|
k1="-1"
|
||||||
|
k4="-2"
|
||||||
|
result="result3"
|
||||||
|
k3="0" />
|
||||||
|
<feColorMatrix
|
||||||
|
id="feColorMatrix4114"
|
||||||
|
values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 10 0 "
|
||||||
|
result="result2" />
|
||||||
|
<feComposite
|
||||||
|
id="feComposite4116"
|
||||||
|
in2="result2"
|
||||||
|
result="fbSourceGraphic"
|
||||||
|
in="SourceGraphic"
|
||||||
|
operator="out" />
|
||||||
|
<feBlend
|
||||||
|
id="feBlend4118"
|
||||||
|
in2="fbSourceGraphic"
|
||||||
|
mode="multiply"
|
||||||
|
in="result1"
|
||||||
|
result="result91" />
|
||||||
|
<feBlend
|
||||||
|
id="feBlend4120"
|
||||||
|
in2="result91"
|
||||||
|
mode="screen"
|
||||||
|
in="fbSourceGraphic" />
|
||||||
|
</filter>
|
||||||
|
<filter
|
||||||
|
id="filter2996"
|
||||||
|
inkscape:label="Black hole"
|
||||||
|
inkscape:menu="Morphology"
|
||||||
|
inkscape:menu-tooltip="Creates a black light inside and outside"
|
||||||
|
height="1.5"
|
||||||
|
width="1.5"
|
||||||
|
y="-0.25"
|
||||||
|
x="-0.25"
|
||||||
|
color-interpolation-filters="sRGB">
|
||||||
|
<feGaussianBlur
|
||||||
|
id="feGaussianBlur2998"
|
||||||
|
stdDeviation="5"
|
||||||
|
in="SourceAlpha"
|
||||||
|
result="result1" />
|
||||||
|
<feComposite
|
||||||
|
id="feComposite3000"
|
||||||
|
in2="result1"
|
||||||
|
operator="arithmetic"
|
||||||
|
k2="3.2"
|
||||||
|
k1="-1"
|
||||||
|
k4="-2"
|
||||||
|
result="result3"
|
||||||
|
k3="0" />
|
||||||
|
<feColorMatrix
|
||||||
|
id="feColorMatrix3002"
|
||||||
|
values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 10 0 "
|
||||||
|
result="result2" />
|
||||||
|
<feComposite
|
||||||
|
id="feComposite3004"
|
||||||
|
in2="result2"
|
||||||
|
result="fbSourceGraphic"
|
||||||
|
in="SourceGraphic"
|
||||||
|
operator="out" />
|
||||||
|
<feBlend
|
||||||
|
id="feBlend3006"
|
||||||
|
in2="fbSourceGraphic"
|
||||||
|
mode="multiply"
|
||||||
|
in="result1"
|
||||||
|
result="result91" />
|
||||||
|
<feBlend
|
||||||
|
id="feBlend3008"
|
||||||
|
in2="result91"
|
||||||
|
mode="screen"
|
||||||
|
in="fbSourceGraphic" />
|
||||||
|
</filter>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient4523-5"
|
||||||
|
id="linearGradient4533-8"
|
||||||
|
x1="40.691368"
|
||||||
|
y1="-5.0138588"
|
||||||
|
x2="115.70895"
|
||||||
|
y2="122.54021"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="translate(-1.4285714,-0.26785715)" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient4523-5">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop4525-8" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop4527-2" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient4861-0"
|
||||||
|
id="linearGradient4867-9"
|
||||||
|
x1="-277.44415"
|
||||||
|
y1="-50.038612"
|
||||||
|
x2="36.835873"
|
||||||
|
y2="319.67722"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient4861-0">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#d90000;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop4863-4" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#a50000;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop4865-0" />
|
||||||
|
</linearGradient>
|
||||||
|
<filter
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="filter4948"
|
||||||
|
color-interpolation-filters="sRGB">
|
||||||
|
<feGaussianBlur
|
||||||
|
inkscape:collect="always"
|
||||||
|
stdDeviation="4.5318938"
|
||||||
|
id="feGaussianBlur4950" />
|
||||||
|
</filter>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient5013"
|
||||||
|
id="linearGradient5019"
|
||||||
|
x1="7.3245215"
|
||||||
|
y1="-54.502781"
|
||||||
|
x2="135.65985"
|
||||||
|
y2="191.63652"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(1.5920888,0,0,1.59211,-0.93895132,-193.95339)" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient5021"
|
||||||
|
id="linearGradient5027"
|
||||||
|
x1="65.545662"
|
||||||
|
y1="-43.027843"
|
||||||
|
x2="294.41019"
|
||||||
|
y2="289.31235"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(1.5920888,0,0,1.59211,-0.93895132,-193.95339)" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient5013-1"
|
||||||
|
id="linearGradient5019-5"
|
||||||
|
x1="26.703053"
|
||||||
|
y1="29.001957"
|
||||||
|
x2="170.00505"
|
||||||
|
y2="221.94109"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient5013-1">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop5015-6" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop5017-1" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient6116"
|
||||||
|
id="linearGradient5285"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0.30012437,0,0,0.30012437,-202.06109,894.75914)"
|
||||||
|
x1="432.34528"
|
||||||
|
y1="197.17313"
|
||||||
|
x2="432.34528"
|
||||||
|
y2="544.38947" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient6116">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#a00000;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop6118" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#00ff00;stop-opacity:1;"
|
||||||
|
offset="1"
|
||||||
|
id="stop6120" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient6116"
|
||||||
|
id="linearGradient5287"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0.30012437,0,0,0.30012437,-202.06109,894.75914)"
|
||||||
|
x1="432.34528"
|
||||||
|
y1="197.17313"
|
||||||
|
x2="432.34528"
|
||||||
|
y2="544.38947" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient5170">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#a00000;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop5172" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#00ff00;stop-opacity:1;"
|
||||||
|
offset="1"
|
||||||
|
id="stop5174" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient6116"
|
||||||
|
id="linearGradient5289"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0.30012437,0,0,0.30012437,-202.06109,894.75914)"
|
||||||
|
x1="432.34528"
|
||||||
|
y1="197.17313"
|
||||||
|
x2="432.34528"
|
||||||
|
y2="544.38947" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient5177">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#a00000;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop5179" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#00ff00;stop-opacity:1;"
|
||||||
|
offset="1"
|
||||||
|
id="stop5181" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient6116"
|
||||||
|
id="linearGradient5291"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0.30012437,0,0,0.30012437,-202.06109,894.75914)"
|
||||||
|
x1="432.34528"
|
||||||
|
y1="197.17313"
|
||||||
|
x2="432.34528"
|
||||||
|
y2="544.38947" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient5184">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#a00000;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop5186" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#00ff00;stop-opacity:1;"
|
||||||
|
offset="1"
|
||||||
|
id="stop5188" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient6116"
|
||||||
|
id="linearGradient5293"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0.30012437,0,0,0.30012437,-202.06109,894.75914)"
|
||||||
|
x1="432.34528"
|
||||||
|
y1="197.17313"
|
||||||
|
x2="432.34528"
|
||||||
|
y2="544.38947" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient5191">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#a00000;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop5193" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#00ff00;stop-opacity:1;"
|
||||||
|
offset="1"
|
||||||
|
id="stop5195" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient6116"
|
||||||
|
id="linearGradient5295"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0.30012437,0,0,0.30012437,-202.06109,894.75914)"
|
||||||
|
x1="432.34528"
|
||||||
|
y1="197.17313"
|
||||||
|
x2="432.34528"
|
||||||
|
y2="544.38947" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient5198">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#a00000;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop5200" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#00ff00;stop-opacity:1;"
|
||||||
|
offset="1"
|
||||||
|
id="stop5202" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient6116"
|
||||||
|
id="linearGradient5297"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0.30012437,0,0,0.30012437,-202.06109,894.75914)"
|
||||||
|
x1="432.34528"
|
||||||
|
y1="197.17313"
|
||||||
|
x2="432.34528"
|
||||||
|
y2="544.38947" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient5205">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#a00000;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop5207" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#00ff00;stop-opacity:1;"
|
||||||
|
offset="1"
|
||||||
|
id="stop5209" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient6116"
|
||||||
|
id="linearGradient5299"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0.30012437,0,0,0.30012437,-202.06109,894.75914)"
|
||||||
|
x1="432.34528"
|
||||||
|
y1="197.17313"
|
||||||
|
x2="432.34528"
|
||||||
|
y2="544.38947" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient5212">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#a00000;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop5214" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#00ff00;stop-opacity:1;"
|
||||||
|
offset="1"
|
||||||
|
id="stop5216" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient6116"
|
||||||
|
id="linearGradient5301"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0.30012437,0,0,0.30012437,-202.06109,894.75914)"
|
||||||
|
x1="432.34528"
|
||||||
|
y1="197.17313"
|
||||||
|
x2="432.34528"
|
||||||
|
y2="544.38947" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient5219">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#a00000;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop5221" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#00ff00;stop-opacity:1;"
|
||||||
|
offset="1"
|
||||||
|
id="stop5223" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient6116"
|
||||||
|
id="linearGradient5303"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0.30012437,0,0,0.30012437,-202.06109,894.75914)"
|
||||||
|
x1="432.34528"
|
||||||
|
y1="197.17313"
|
||||||
|
x2="432.34528"
|
||||||
|
y2="544.38947" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient5226">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#a00000;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop5228" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#00ff00;stop-opacity:1;"
|
||||||
|
offset="1"
|
||||||
|
id="stop5230" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient6116"
|
||||||
|
id="linearGradient5305"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0.30012437,0,0,0.30012437,-202.06109,894.75914)"
|
||||||
|
x1="432.34528"
|
||||||
|
y1="197.17313"
|
||||||
|
x2="432.34528"
|
||||||
|
y2="544.38947" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient5233">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#a00000;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop5235" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#00ff00;stop-opacity:1;"
|
||||||
|
offset="1"
|
||||||
|
id="stop5237" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient6116"
|
||||||
|
id="linearGradient5307"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0.30012437,0,0,0.30012437,-202.06109,894.75914)"
|
||||||
|
x1="432.34528"
|
||||||
|
y1="197.17313"
|
||||||
|
x2="432.34528"
|
||||||
|
y2="544.38947" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient5240">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#a00000;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop5242" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#00ff00;stop-opacity:1;"
|
||||||
|
offset="1"
|
||||||
|
id="stop5244" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient6483"
|
||||||
|
id="linearGradient6489"
|
||||||
|
x1="-156.01903"
|
||||||
|
y1="74.887634"
|
||||||
|
x2="37.546711"
|
||||||
|
y2="312.74481"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(1.5920888,0,0,1.59211,183.17146,-157.30856)" />
|
||||||
|
<filter
|
||||||
|
color-interpolation-filters="sRGB"
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="filter3998">
|
||||||
|
<feGaussianBlur
|
||||||
|
inkscape:collect="always"
|
||||||
|
stdDeviation="4.0022328"
|
||||||
|
id="feGaussianBlur4000" />
|
||||||
|
</filter>
|
||||||
|
</defs>
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="base"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:zoom="1.3416928"
|
||||||
|
inkscape:cx="342.78023"
|
||||||
|
inkscape:cy="263.52795"
|
||||||
|
inkscape:document-units="px"
|
||||||
|
inkscape:current-layer="layer1"
|
||||||
|
showgrid="false"
|
||||||
|
fit-margin-top="0"
|
||||||
|
fit-margin-left="0"
|
||||||
|
fit-margin-right="0"
|
||||||
|
fit-margin-bottom="0"
|
||||||
|
inkscape:window-width="1920"
|
||||||
|
inkscape:window-height="1032"
|
||||||
|
inkscape:window-x="-2"
|
||||||
|
inkscape:window-y="25"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
showguides="false"
|
||||||
|
inkscape:guide-bbox="true"
|
||||||
|
inkscape:snap-global="false">
|
||||||
|
<sodipodi:guide
|
||||||
|
orientation="1,0"
|
||||||
|
position="46.428571,183.92857"
|
||||||
|
id="guide6942" />
|
||||||
|
<sodipodi:guide
|
||||||
|
orientation="0,1"
|
||||||
|
position="96.843761,183.49949"
|
||||||
|
id="guide6944" />
|
||||||
|
<inkscape:grid
|
||||||
|
type="xygrid"
|
||||||
|
id="grid6946"
|
||||||
|
empspacing="5"
|
||||||
|
visible="true"
|
||||||
|
enabled="true"
|
||||||
|
snapvisiblegridlinesonly="true" />
|
||||||
|
<sodipodi:guide
|
||||||
|
orientation="1,0"
|
||||||
|
position="42.385351,259.70081"
|
||||||
|
id="guide7007" />
|
||||||
|
<sodipodi:guide
|
||||||
|
orientation="1,0"
|
||||||
|
position="20.357143,157.14286"
|
||||||
|
id="guide7009" />
|
||||||
|
</sodipodi:namedview>
|
||||||
|
<metadata
|
||||||
|
id="metadata7">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
<dc:title />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
inkscape:label="Box"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1"
|
||||||
|
transform="translate(310.95069,254.88855)"
|
||||||
|
style="display:inline">
|
||||||
|
<rect
|
||||||
|
style="opacity:0.98999999;fill:#ffffff;fill-opacity:0.44769874;stroke:#000000;stroke-width:0.4779852;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:0.73127753;stroke-dasharray:1.91194092, 1.91194092;stroke-dashoffset:0;filter:url(#filter5252)"
|
||||||
|
id="rect5223"
|
||||||
|
width="247.45247"
|
||||||
|
height="16.023874"
|
||||||
|
x="169.8452"
|
||||||
|
y="186.4931"
|
||||||
|
rx="12.85704"
|
||||||
|
ry="12.03072"
|
||||||
|
transform="matrix(1.3918993,0,0,0.5671588,-459.41639,-330.03016)" />
|
||||||
|
<rect
|
||||||
|
style="fill:#000000;fill-opacity:1;stroke:#363434;stroke-width:1.03784263;stroke-miterlimit:4;stroke-opacity:0.72246692;stroke-dasharray:none;display:inline;filter:url(#filter4948);enable-background:new"
|
||||||
|
id="rect3597-9"
|
||||||
|
width="312.62057"
|
||||||
|
height="303.76965"
|
||||||
|
x="-307.06512"
|
||||||
|
y="-56.173706"
|
||||||
|
rx="84.17984"
|
||||||
|
ry="78.412369"
|
||||||
|
transform="matrix(1.5920545,0,0,1.6189277,183.16629,-155.1575)" />
|
||||||
|
<rect
|
||||||
|
style="fill:url(#linearGradient6489);fill-opacity:1;stroke:#000000;stroke-width:1.66618872;stroke-miterlimit:4;stroke-opacity:0.44052866;stroke-dasharray:none;display:inline;enable-background:new"
|
||||||
|
id="rect3597"
|
||||||
|
width="497.70898"
|
||||||
|
height="491.78116"
|
||||||
|
x="-308.39767"
|
||||||
|
y="-252.12758"
|
||||||
|
rx="134.01889"
|
||||||
|
ry="126.94395" />
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none"
|
||||||
|
x="-161.42857"
|
||||||
|
y="44.714287"
|
||||||
|
id="text3313"
|
||||||
|
sodipodi:linespacing="100%"
|
||||||
|
transform="translate(-310.95069,-61.88855)"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan3315"
|
||||||
|
x="-161.42857"
|
||||||
|
y="44.714287" /></text>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer2"
|
||||||
|
inkscape:label="Graphic"
|
||||||
|
style="display:inline"
|
||||||
|
transform="translate(0,193)" />
|
||||||
|
<g
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer5"
|
||||||
|
inkscape:label="Shadow"
|
||||||
|
style="opacity:0.96153846;display:inline"
|
||||||
|
transform="translate(0,193)">
|
||||||
|
<g
|
||||||
|
transform="matrix(1.5920888,0,0,1.59211,5.8842913,-195.09415)"
|
||||||
|
style="display:inline"
|
||||||
|
id="g4707">
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path4133-5"
|
||||||
|
d="M 100.40305,75.141103 C 94.747792,60.562595 86.906602,50.296813 76.879444,44.343729 l 0,26.606016 c 7.08077,4.981149 12.545844,12.452694 16.395236,22.414657 2.993834,7.653878 4.490786,15.611378 4.490874,23.872518 -8.8e-5,8.62576 -1.49704,16.70475 -4.490874,24.23699 -2.946464,7.41085 -6.938344,13.54602 -11.975646,18.40553 L 43.30485,44.343729 C 34.085477,49.81086 26.624464,59.165476 20.921787,72.407609 15.219093,85.528488 12.36775,100.47158 12.36775,117.23692 c 0,15.42912 2.471164,29.46104 7.413499,42.09582 5.702678,14.57866 13.543871,24.84443 23.523601,30.79738 l 0,-26.60603 C 36.223985,158.5431 30.758911,151.1323 26.909613,141.29168 c -2.993924,-7.65373 -4.490879,-15.67198 -4.490869,-24.05476 -10e-6,-8.26114 1.473183,-16.1579 4.419585,-23.690285 2.993896,-7.653681 7.009537,-13.910341 12.046936,-18.769998 L 76.879444,190.13012 c 10.027158,-5.95295 17.868348,-16.21872 23.523606,-30.79738 4.94224,-12.63478 7.4134,-26.6667 7.4135,-42.09582 -1e-4,-15.42897 -2.47126,-29.460893 -7.4135,-42.095817"
|
||||||
|
style="text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.62810147;stroke-opacity:1;display:inline;filter:url(#filter3998)" />
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path4680"
|
||||||
|
d="m 157.375,44.34375 c -12.54595,1.47e-4 -23.1322,7.032454 -31.78125,21.125 C 116.94466,79.561544 112.625,96.840003 112.625,117.25 c 0,14.45721 2.31155,27.62541 6.96875,39.53125 4.08692,10.44804 9.47185,18.64082 16.125,24.59375 6.70064,5.83145 13.91006,8.75 21.65625,8.75 7.79362,0 15.00306,-2.91855 21.65625,-8.75 6.7006,-5.95293 12.1005,-14.14571 16.1875,-24.59375 4.65712,-11.90584 6.99991,-25.07404 7,-39.53125 -9e-5,-14.45706 -2.34288,-27.656512 -7,-39.5625 -4.087,-10.447902 -9.4869,-18.574664 -16.1875,-24.40625 -6.65319,-5.952801 -13.86263,-8.937353 -21.65625,-8.9375 z m 0,24.0625 c 6.463,1.22e-4 12.47107,2.355812 18.03125,7.09375 5.56006,4.738169 9.94093,11.172864 13.125,19.3125 2.80375,7.16791 4.18743,14.66231 4.1875,22.4375 -7e-5,13.24233 -3.48303,24.71845 -10.46875,34.4375 -6.98586,9.59763 -15.27553,14.37501 -24.875,14.375 -6.41557,1e-5 -12.42364,-2.35567 -18.03125,-7.09375 -5.56015,-4.73803 -9.92604,-11.17272 -13.0625,-19.3125 -2.85136,-7.16777 -4.25002,-14.63091 -4.25,-22.40625 -2e-5,-7.77519 1.39864,-15.26959 4.25,-22.4375 3.13646,-8.139636 7.50235,-14.574331 13.0625,-19.3125 5.60761,-4.737938 11.61568,-7.093628 18.03125,-7.09375 z"
|
||||||
|
style="text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.62810147;stroke-opacity:1;display:inline;filter:url(#filter3998)" />
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path4137-5"
|
||||||
|
d="M 294.76235,75.141103 C 289.1071,60.562595 281.26591,50.296813 271.23875,44.343729 l 0,26.606016 c 7.08077,4.981149 12.54585,12.452694 16.39524,22.414657 2.99383,7.653878 4.49078,15.611378 4.49087,23.872518 -9e-5,8.62576 -1.49704,16.70475 -4.49087,24.23699 -2.94647,7.41085 -6.93835,13.54602 -11.97566,18.40553 L 237.66415,44.343729 c -9.21936,5.467131 -16.68038,14.821747 -22.38306,28.06388 -5.70269,13.120879 -8.55404,28.063971 -8.55404,44.829311 0,15.42912 2.47117,29.46104 7.4135,42.09582 5.70268,14.57866 13.54387,24.84443 23.5236,30.79738 l 0,-26.60603 c -7.08086,-4.98099 -12.54594,-12.39179 -16.39523,-22.23241 -2.99393,-7.65373 -4.49088,-15.67198 -4.49087,-24.05476 -1e-5,-8.26114 1.47318,-16.1579 4.41958,-23.690285 2.9939,-7.653681 7.00954,-13.910341 12.04694,-18.769998 l 37.99418,115.353483 c 10.02716,-5.95295 17.86835,-16.21872 23.5236,-30.79738 4.94224,-12.63478 7.4134,-26.6667 7.4135,-42.09582 -1e-4,-15.42897 -2.47126,-29.460893 -7.4135,-42.095817"
|
||||||
|
style="text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.62810147;stroke-opacity:1;display:inline;filter:url(#filter3998)" />
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path4140-7"
|
||||||
|
d="m 38.496485,265.43345 -18.274424,0 c -2.963423,0 -4.445132,-2.27906 -4.44513,-6.83716 l 0,-6.21559 c -2e-6,-1.49172 0.301827,-2.65196 0.90549,-3.48073 0.603656,-0.82873 1.317071,-1.2431 2.140247,-1.24311 0.823167,1e-5 1.509143,0.41438 2.057931,1.24311 0.603652,0.74589 0.905482,1.90613 0.905489,3.48073 -7e-6,2.07188 0.164627,3.35643 0.493904,3.85367 0.32926,0.49725 1.152431,0.74588 2.469516,0.74587 l 3.210372,0 c 1.31706,1e-5 2.140232,-0.24862 2.469517,-0.74587 0.38413,-0.58011 0.576203,-1.86467 0.576221,-3.85367 l 0,-4.35091 c -1.8e-5,-2.32047 -0.274408,-3.64647 -0.823173,-3.97799 -0.548797,-0.41434 -1.289651,-0.62153 -2.222565,-0.62155 l -7.820136,0 c -2.908545,2e-5 -4.362815,-2.23759 -4.362813,-6.71284 l 0,-16.28485 c -2e-6,-2.23756 0.411584,-3.93649 1.234759,-5.09679 0.823168,-1.16019 1.92073,-1.74031 3.292689,-1.74036 l 18.192106,0 c 1.317049,5e-5 2.387173,0.62161 3.210372,1.86468 0.878021,1.16029 1.317046,2.81779 1.317075,4.97247 l 0,6.58853 c -2.9e-5,1.57466 -0.301858,2.77634 -0.905489,3.60504 -0.54881,0.74591 -1.262225,1.11884 -2.140248,1.11881 -0.823197,3e-5 -1.536612,-0.41434 -2.140248,-1.24312 -0.603682,-0.82871 -0.905512,-1.98895 -0.905489,-3.48073 -2.3e-5,-2.32045 -0.164658,-3.72932 -0.493904,-4.2266 -0.32929,-0.49721 -1.152462,-0.74584 -2.469517,-0.74587 l -9.219529,0 c -1.262206,3e-5 -2.085378,0.2901 -2.469516,0.87017 -0.329277,0.4973 -0.493911,1.74041 -0.493904,3.72937 l 0,3.72935 c -7e-6,2.07189 0.164627,3.35645 0.493904,3.85367 0.32926,0.49727 1.152431,0.7459 2.469516,0.74587 l 13.746977,0 c 3.018271,3e-5 4.527418,2.27907 4.527447,6.83715 l 0,16.78209 c -2.9e-5,4.5581 -1.509176,6.83716 -4.527447,6.83716"
|
||||||
|
style="text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.62810147;stroke-opacity:1;filter:url(#filter3998)" />
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path4672"
|
||||||
|
d="m 50.78125,213.59375 c -2.963423,5e-5 -4.468752,2.28571 -4.46875,6.84375 l 0,38.15625 c -2e-6,4.5581 1.505327,6.84375 4.46875,6.84375 l 22.28125,0 c 2.963388,0 4.468717,-2.28565 4.46875,-6.84375 l 0,-5.59375 c -3.3e-5,-1.49172 -0.302623,-2.59785 -0.90625,-3.34375 -0.548812,-0.82872 -1.239359,-1.24998 -2.0625,-1.25 -0.823202,2e-5 -1.552619,0.42128 -2.15625,1.25 -0.548809,0.7459 -0.812527,1.80991 -0.8125,3.21875 l 0,0.875 c -2.7e-5,2.15474 -0.605208,3.21876 -1.8125,3.21875 l -8.625,0 c -1.207335,10e-6 -1.812515,-1.06401 -1.8125,-3.21875 l 0,-9.6875 c -1.5e-5,-2.07184 0.605165,-3.12497 1.8125,-3.125 l 11.90625,0 c 2.963388,3e-5 4.468717,-2.28562 4.46875,-6.84375 l 0,-13.65625 c -3.3e-5,-4.55804 -1.505362,-6.8437 -4.46875,-6.84375 l -22.28125,0 z m 11.59375,8.46875 5.9375,0 c 0.878026,3e-5 1.576194,0.47431 2.125,1.46875 0.603634,0.91166 0.906223,2.00693 0.90625,3.25 -2.7e-5,1.32603 -0.302616,2.43216 -0.90625,3.34375 -0.603685,0.91165 -1.301852,1.37504 -2.125,1.375 l -5.9375,0 c -0.932945,4e-5 -1.669985,-0.46335 -2.21875,-1.375 -0.548797,-0.91159 -0.812515,-2.01772 -0.8125,-3.34375 -1.5e-5,-1.24307 0.263703,-2.33834 0.8125,-3.25 0.603643,-0.99444 1.340683,-1.46872 2.21875,-1.46875 z"
|
||||||
|
style="text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.62810147;stroke-opacity:1;filter:url(#filter3998)" />
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path4144-4"
|
||||||
|
d="m 85.65625,213.59375 c -2.963422,5e-5 -4.437501,2.28571 -4.4375,6.84375 l 0,38.15625 c -10e-7,4.5581 1.474078,6.84375 4.4375,6.84375 l 16.875,0 c 1.2073,0 1.9832,0.25275 2.3125,0.75 0.32924,0.49725 0.49997,1.77189 0.5,3.84375 l 0,22.625 c -3e-5,4.47519 1.47406,6.71872 4.4375,6.71875 l 3.03125,0 c 3.01826,-3e-5 4.5312,-2.24356 4.53125,-6.71875 l 0,-24.125 c -5e-5,-2.07187 -0.17077,-3.47288 -0.5,-4.21875 -3.3476,-5.30396 -5.0854,-8.23236 -5.25,-8.8125 -0.16465,-0.66298 -0.25004,-2.82225 -0.25,-6.46875 l 0,-28.59375 c -4e-5,-2.15468 -0.43448,-3.80846 -1.3125,-4.96875 -0.8232,-1.24307 -1.94058,-1.87495 -3.3125,-1.875 l -21.0625,0 z m 4.53125,8.46875 12.09375,0 c 1.59144,3e-5 2.49922,0.34793 2.71875,1.09375 0.21949,0.74591 0.34372,1.92541 0.34375,3.5 l 0,25.71875 c -3e-5,1.989 -0.20963,3.26364 -0.59375,3.84375 -0.32929,0.49725 -1.1517,0.75001 -2.46875,0.75 l -12.09375,0 c -1.317084,10e-6 -2.139491,-0.25275 -2.46875,-0.75 -0.329275,-0.49724 -0.5,-1.77187 -0.5,-3.84375 l 0,-25.71875 c 0,-1.98896 0.170725,-3.2527 0.5,-3.75 0.384138,-0.58007 1.206545,-0.84372 2.46875,-0.84375 z"
|
||||||
|
style="text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.62810147;stroke-opacity:1;filter:url(#filter3998)" />
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path4146-3"
|
||||||
|
d="m 131.97798,252.3807 c -1e-5,2.07188 0.16462,3.35643 0.49391,3.85367 0.32925,0.49725 1.15242,0.74588 2.46951,0.74587 l 3.21037,0 c 1.31706,1e-5 2.14023,-0.24862 2.46952,-0.74587 0.38413,-0.58011 0.5762,-1.86467 0.57622,-3.85367 l 0,-33.56419 c -2e-5,-1.65745 0.3018,-2.94199 0.90549,-3.85367 0.60363,-0.91156 1.31705,-1.36738 2.14025,-1.36743 0.82315,5e-5 1.50912,0.45587 2.05793,1.36743 0.60363,0.8288 0.90546,2.03048 0.90549,3.60504 l 0,40.02841 c -3e-5,4.5581 -1.50918,6.83716 -4.52745,6.83716 l -18.1921,0 c -3.01831,0 -4.52746,-2.27906 -4.52746,-6.83716 l 0,-40.02841 c 0,-1.57456 0.27439,-2.77624 0.82318,-3.60504 0.60366,-0.91156 1.34451,-1.36738 2.22256,-1.36743 0.87805,5e-5 1.59147,0.41443 2.14025,1.24312 0.54878,0.74592 0.82317,1.9476 0.82317,3.60504 l 0,8.57752 c 0,2.0719 0.21951,3.5222 0.65855,4.35091 l 2.14024,3.23211 c 1.53657,2.32052 2.44206,3.85369 2.71647,4.59954 0.32926,0.7459 0.49389,2.07189 0.4939,3.97798 l 0,9.19907"
|
||||||
|
style="text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.62810147;stroke-opacity:1;filter:url(#filter3998)" />
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path4662"
|
||||||
|
d="m 155.59375,213.59375 c -2.96343,5e-5 -4.4375,2.28571 -4.4375,6.84375 l 0,38.15625 c 0,4.5581 1.47407,6.84375 4.4375,6.84375 l 22.3125,0 c 2.96339,0 4.43746,-2.28565 4.4375,-6.84375 l 0,-5.59375 c -4e-5,-1.49172 -0.30262,-2.59785 -0.90625,-3.34375 -0.54881,-0.82872 -1.23936,-1.24998 -2.0625,-1.25 -0.8232,2e-5 -1.52137,0.42128 -2.125,1.25 -0.54881,0.7459 -0.84378,1.80991 -0.84375,3.21875 l 0,0.875 c -3e-5,2.15474 -0.57395,3.21876 -1.78125,3.21875 l -8.65625,0 c -1.20733,10e-6 -1.81251,-1.06401 -1.8125,-3.21875 l 0,-9.6875 c -1e-5,-2.07184 0.60517,-3.12497 1.8125,-3.125 l 11.9375,0 c 2.96339,3e-5 4.43746,-2.28562 4.4375,-6.84375 l 0,-13.65625 c -4e-5,-4.55804 -1.47411,-6.8437 -4.4375,-6.84375 l -22.3125,0 z m 11.59375,8.46875 5.9375,0 c 0.87803,3e-5 1.60744,0.47431 2.15625,1.46875 0.60363,0.91166 0.90622,2.00693 0.90625,3.25 -3e-5,1.32603 -0.30262,2.43216 -0.90625,3.34375 -0.60369,0.91165 -1.3331,1.37504 -2.15625,1.375 l -5.9375,0 c -0.93295,4e-5 -1.66998,-0.46335 -2.21875,-1.375 -0.54879,-0.91159 -0.81251,-2.01772 -0.8125,-3.34375 -1e-5,-1.24307 0.26371,-2.33834 0.8125,-3.25 0.60365,-0.99444 1.34068,-1.46872 2.21875,-1.46875 z"
|
||||||
|
style="text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.62810147;stroke-opacity:1;filter:url(#filter3998)" />
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path4150-7"
|
||||||
|
d="m 193.5294,265.43345 -3.04573,0 c -2.96343,0 -4.44514,-2.27906 -4.44514,-6.83716 l 0,-38.16373 c 0,-2.23756 0.41159,-3.93649 1.23476,-5.09679 0.82317,-1.16019 1.92073,-1.74031 3.29269,-1.74036 l 18.76833,0 c 2.96339,5e-5 4.4451,2.27911 4.44513,6.83715 l 0,40.0284 c -3e-5,1.57463 -0.30186,2.81774 -0.90549,3.72937 -0.54881,0.82874 -1.23479,1.24312 -2.05793,1.24312 -2.03052,0 -3.04576,-1.74037 -3.04573,-5.2211 l 0,-33.56419 c -3e-5,-2.07183 -0.16467,-3.35639 -0.49391,-3.85367 -0.32929,-0.49721 -1.15246,-0.74584 -2.46951,-0.74587 l -9.79576,0 c -1.2622,3e-5 -2.08537,0.2901 -2.46951,0.87017 -0.32928,0.4973 -0.49391,1.74041 -0.49391,3.72937 0,1.98901 0.0823,3.23213 0.24695,3.72935 0.16463,0.49728 1.01524,1.94758 2.55184,4.35091 1.59145,2.32052 2.52438,3.81226 2.79879,4.47523 0.27437,0.58014 0.41157,1.74039 0.41158,3.48072 l 0,15.91192 c -1e-5,4.5581 -1.50916,6.83716 -4.52745,6.83716"
|
||||||
|
style="text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.62810147;stroke-opacity:1;filter:url(#filter3998)" />
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path4152-8"
|
||||||
|
d="m 244.47605,226.64816 c -3e-5,1.24315 -0.30185,2.32052 -0.90549,3.23211 -0.54881,0.82877 -1.17991,1.24314 -1.8933,1.24311 l -6.58537,0 c -0.65856,3e-5 -1.28966,-0.41434 -1.8933,-1.24311 -0.5488,-0.91159 -0.82319,-1.98896 -0.82317,-3.23211 l 0,-1.36743 c -2e-5,-2.1547 -0.60367,-3.23208 -1.81098,-3.23211 l -5.51526,0 c -1.20732,3e-5 -1.81098,1.07741 -1.81097,3.23211 l 0,28.4674 c -1e-5,2.15474 0.60365,3.23212 1.81097,3.23211 l 9.30185,0 c 1.97559,1e-5 3.12803,-0.16574 3.45732,-0.49725 0.38413,-0.41436 0.5762,-1.61604 0.57623,-3.60505 -3e-5,-1.40884 0.27436,-2.48621 0.82317,-3.23211 0.60363,-0.82872 1.34449,-1.24309 2.22257,-1.24311 0.82314,2e-5 1.53656,0.41439 2.14024,1.24311 0.60364,0.82877 0.90546,1.98901 0.90549,3.48074 l 0,5.46972 c -3e-5,4.5581 -1.50917,6.83716 -4.52745,6.83716 l -18.27442,0 c -2.96343,0 -4.44513,-2.27906 -4.44513,-6.83716 l 0,-38.16373 c 0,-4.55804 1.4817,-6.8371 4.44513,-6.83715 l 18.27442,0 c 1.31705,5e-5 2.38717,0.62161 3.21038,1.86468 0.87802,1.16029 1.31704,2.81779 1.31707,4.97247 l 0,6.2156"
|
||||||
|
style="text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.62810147;stroke-opacity:1;filter:url(#filter3998)" />
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path4654"
|
||||||
|
d="m 252.375,213.59375 c -2.96342,5e-5 -4.4375,2.28571 -4.4375,6.84375 l 0,38.15625 c 0,4.5581 1.47408,6.84375 4.4375,6.84375 l 22.3125,0 c 2.96339,0 4.43747,-2.28565 4.4375,-6.84375 l 0,-5.59375 c -3e-5,-1.49172 -0.30262,-2.59785 -0.90625,-3.34375 -0.54881,-0.82872 -1.20811,-1.24998 -2.03125,-1.25 -0.8232,2e-5 -1.55262,0.42128 -2.15625,1.25 -0.54881,0.7459 -0.81252,1.80991 -0.8125,3.21875 l 0,0.875 c -2e-5,2.15474 -0.60521,3.21876 -1.8125,3.21875 l -8.65625,0 c -1.20733,10e-6 -1.81251,-1.06401 -1.8125,-3.21875 l 0,-9.6875 c -10e-6,-2.07184 0.60517,-3.12497 1.8125,-3.125 l 11.9375,0 c 2.96339,3e-5 4.43747,-2.28562 4.4375,-6.84375 l 0,-13.65625 c -3e-5,-4.55804 -1.47411,-6.8437 -4.4375,-6.84375 l -22.3125,0 z m 11.625,8.46875 5.90625,0 c 0.87803,3e-5 1.60744,0.47431 2.15625,1.46875 0.60363,0.91166 0.90622,2.00693 0.90625,3.25 -3e-5,1.32603 -0.30262,2.43216 -0.90625,3.34375 -0.60369,0.91165 -1.3331,1.37504 -2.15625,1.375 L 264,231.5 c -0.93294,4e-5 -1.66998,-0.46335 -2.21875,-1.375 -0.54879,-0.91159 -0.84376,-2.01772 -0.84375,-3.34375 -10e-6,-1.24307 0.29496,-2.33834 0.84375,-3.25 0.60365,-0.99444 1.34068,-1.46872 2.21875,-1.46875 z"
|
||||||
|
style="text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.62810147;stroke-opacity:1;filter:url(#filter3998)" />
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path4156-8"
|
||||||
|
d="m 294.8439,258.59629 c -1e-5,4.5581 -1.50916,6.83716 -4.52744,6.83716 l -3.04574,0 c -2.96342,0 -4.44513,-2.27906 -4.44513,-6.83716 l 0,-38.16373 c 0,-2.23756 0.41159,-3.93649 1.23476,-5.09679 0.82317,-1.16019 1.92073,-1.74031 3.29269,-1.74036 l 14.32319,0 c 1.31706,5e-5 2.38718,0.62161 3.21038,1.86468 0.87802,1.16029 1.31704,2.81779 1.31707,4.97247 l 0,5.96697 c -3e-5,1.40891 -0.30185,2.56915 -0.90548,3.48074 -0.54881,0.82877 -1.23479,1.24314 -2.05794,1.24311 -2.03051,3e-5 -3.04576,-1.57458 -3.04573,-4.72385 -3e-5,-2.07182 -0.16466,-3.31494 -0.49391,-3.72935 -0.32929,-0.41434 -1.17989,-0.62153 -2.55183,-0.62156 l -5.35062,0 c -1.26221,3e-5 -2.08538,0.2901 -2.46952,0.87017 -0.32928,0.4973 -0.49391,1.74041 -0.4939,3.72937 -10e-6,2.07189 0.0823,3.35644 0.24695,3.85366 0.10975,0.33153 0.96036,1.69897 2.55183,4.10229 1.59146,2.40339 2.52438,3.93657 2.79879,4.59954 0.27438,0.58014 0.41157,1.74039 0.41158,3.48072 l 0,15.91192"
|
||||||
|
style="text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.62810147;stroke-opacity:1;filter:url(#filter3998)" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer4"
|
||||||
|
inkscape:label="Text"
|
||||||
|
style="display:inline"
|
||||||
|
transform="translate(0,193)">
|
||||||
|
<g
|
||||||
|
transform="matrix(1.5920888,0,0,1.59211,1.6954939,-192.96898)"
|
||||||
|
style="stroke:#a7a7a7;stroke-width:0.62810147;stroke-opacity:0.75770928;display:inline"
|
||||||
|
id="g4693">
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path4608"
|
||||||
|
d="m 156.4375,39.4375 c -12.54595,1.47e-4 -23.1322,7.063704 -31.78125,21.15625 -8.64909,14.092794 -13,31.339997 -13,51.75 0,14.45721 2.3428,27.62541 7,39.53125 4.08692,10.44804 9.47185,18.64082 16.125,24.59375 6.70064,5.83145 13.91006,8.75 21.65625,8.75 7.79362,0 15.00306,-2.91855 21.65625,-8.75 6.7006,-5.95293 12.1005,-14.14571 16.1875,-24.59375 4.65712,-11.90584 6.99991,-25.07404 7,-39.53125 -9e-5,-14.457065 -2.34288,-27.656512 -7,-39.5625 -4.087,-10.447902 -9.4869,-18.574664 -16.1875,-24.40625 -6.65319,-5.952801 -13.86263,-8.937353 -21.65625,-8.9375 z m 0,24.0625 c 6.463,1.22e-4 12.47107,2.355812 18.03125,7.09375 5.56006,4.738169 9.94093,11.172864 13.125,19.3125 2.80375,7.167918 4.18743,14.6623 4.1875,22.4375 -7e-5,13.24232 -3.48303,24.71846 -10.46875,34.4375 -6.98586,9.59763 -15.27553,14.40627 -24.875,14.40625 -6.41557,2e-5 -12.42364,-2.38691 -18.03125,-7.125 -5.56015,-4.73802 -9.92604,-11.17271 -13.0625,-19.3125 -2.85136,-7.16777 -4.25002,-14.63091 -4.25,-22.40625 -2e-5,-7.7752 1.39864,-15.269582 4.25,-22.4375 3.13646,-8.139636 7.50235,-14.574331 13.0625,-19.3125 5.60761,-4.737938 11.61568,-7.093628 18.03125,-7.09375 z"
|
||||||
|
style="text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:#a7a7a7;stroke-width:0.63336247;stroke-opacity:0.75770928" />
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path4133"
|
||||||
|
d="M 99.462616,70.239967 C 93.807362,55.661459 85.966172,45.395677 75.939014,39.442593 l 0,26.606016 c 7.08077,4.981149 12.545844,12.452694 16.395236,22.414657 2.993834,7.653874 4.490786,15.611374 4.490874,23.872524 -8.8e-5,8.62576 -1.49704,16.70474 -4.490874,24.23698 -2.946464,7.41085 -6.938344,13.54602 -11.975646,18.40553 L 42.36442,39.442593 c -9.219373,5.467131 -16.680386,14.821747 -22.383063,28.06388 -5.702694,13.120879 -8.554037,28.06397 -8.554037,44.829317 0,15.42911 2.471164,29.46104 7.413499,42.09582 5.702678,14.57865 13.543871,24.84442 23.523601,30.79737 l 0,-26.60602 c -7.080865,-4.981 -12.545939,-12.3918 -16.395237,-22.23242 -2.993924,-7.65373 -4.490879,-15.67197 -4.490869,-24.05475 -10e-6,-8.26115 1.473183,-16.157906 4.419585,-23.690291 2.993896,-7.653681 7.009537,-13.910341 12.046936,-18.769998 L 75.939014,185.22898 c 10.027158,-5.95295 17.868348,-16.21872 23.523602,-30.79737 4.942244,-12.63478 7.413404,-26.66671 7.413504,-42.09582 -1e-4,-15.428973 -2.47126,-29.460899 -7.413504,-42.095823"
|
||||||
|
style="text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:#a7a7a7;stroke-width:0.63336247;stroke-opacity:0.75770928" />
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path4137"
|
||||||
|
d="m 293.82192,70.239967 c -5.65525,-14.578508 -13.49644,-24.84429 -23.5236,-30.797374 l 0,26.606016 c 7.08077,4.981149 12.54585,12.452694 16.39524,22.414657 2.99383,7.653874 4.49078,15.611374 4.49087,23.872524 -9e-5,8.62576 -1.49704,16.70474 -4.49087,24.23698 -2.94647,7.41085 -6.93835,13.54602 -11.97566,18.40553 L 236.72372,39.442593 c -9.21936,5.467131 -16.68038,14.821747 -22.38306,28.06388 -5.70269,13.120879 -8.55404,28.06397 -8.55404,44.829317 0,15.42911 2.47117,29.46104 7.4135,42.09582 5.70268,14.57865 13.54387,24.84442 23.5236,30.79737 l 0,-26.60602 c -7.08086,-4.981 -12.54594,-12.3918 -16.39523,-22.23242 -2.99393,-7.65373 -4.49088,-15.67197 -4.49087,-24.05475 -10e-6,-8.26115 1.47318,-16.157906 4.41958,-23.690291 2.9939,-7.653681 7.00954,-13.910341 12.04694,-18.769998 l 37.99418,115.353479 c 10.02716,-5.95295 17.86835,-16.21872 23.5236,-30.79737 4.94224,-12.63478 7.4134,-26.66671 7.4135,-42.09582 -10e-5,-15.428973 -2.47126,-29.460899 -7.4135,-42.095823"
|
||||||
|
style="text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:#a7a7a7;stroke-width:0.63336247;stroke-opacity:0.75770928" />
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path4140"
|
||||||
|
d="m 37.556055,260.53231 -18.274424,0 c -2.963423,0 -4.445132,-2.27906 -4.44513,-6.83716 l 0,-6.21559 c -2e-6,-1.49172 0.301827,-2.65196 0.90549,-3.48072 0.603656,-0.82874 1.317071,-1.24311 2.140247,-1.24312 0.823167,1e-5 1.509143,0.41438 2.057931,1.24312 0.603652,0.74588 0.905482,1.90612 0.905489,3.48072 -7e-6,2.07188 0.164627,3.35644 0.493904,3.85367 0.32926,0.49726 1.152431,0.74589 2.469516,0.74587 l 3.210372,0 c 1.31706,2e-5 2.140232,-0.24861 2.469517,-0.74587 0.38413,-0.58011 0.576203,-1.86466 0.576221,-3.85367 l 0,-4.35091 c -1.8e-5,-2.32047 -0.274408,-3.64646 -0.823173,-3.97798 -0.548797,-0.41434 -1.289651,-0.62154 -2.222565,-0.62156 l -7.820136,0 c -2.908545,2e-5 -4.362815,-2.23758 -4.362813,-6.71283 l 0,-16.28486 c -2e-6,-2.23756 0.411584,-3.93648 1.234759,-5.09678 0.823168,-1.1602 1.92073,-1.74032 3.292689,-1.74037 l 18.192106,0 c 1.317049,5e-5 2.387173,0.62161 3.210372,1.86468 0.878021,1.16029 1.317046,2.81779 1.317075,4.97247 l 0,6.58853 c -2.9e-5,1.57466 -0.301858,2.77634 -0.905489,3.60504 -0.54881,0.74591 -1.262225,1.11884 -2.140248,1.11882 -0.823197,2e-5 -1.536612,-0.41435 -2.140248,-1.24312 -0.603682,-0.82871 -0.905512,-1.98895 -0.905489,-3.48074 -2.3e-5,-2.32044 -0.164658,-3.72931 -0.493904,-4.2266 -0.32929,-0.4972 -1.152462,-0.74583 -2.469517,-0.74587 l -9.219529,0 c -1.262206,4e-5 -2.085378,0.2901 -2.469516,0.87018 -0.329277,0.49729 -0.493911,1.74041 -0.493904,3.72936 l 0,3.72935 c -7e-6,2.0719 0.164627,3.35645 0.493904,3.85367 0.32926,0.49727 1.152431,0.7459 2.469516,0.74587 l 13.746977,0 c 3.018271,3e-5 4.527418,2.27907 4.527447,6.83715 l 0,16.78209 c -2.9e-5,4.5581 -1.509176,6.83716 -4.527447,6.83716"
|
||||||
|
style="text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:#a7a7a7;stroke-width:0.63336247;stroke-opacity:0.75770928" />
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path4598"
|
||||||
|
d="m 49.84375,208.6875 c -2.963423,5e-5 -4.468752,2.28571 -4.46875,6.84375 l 0,38.15625 c -2e-6,4.5581 1.505327,6.84375 4.46875,6.84375 l 22.28125,0 c 2.963388,0 4.468717,-2.28565 4.46875,-6.84375 l 0,-5.59375 c -3.3e-5,-1.49172 -0.302623,-2.59785 -0.90625,-3.34375 -0.548812,-0.82873 -1.239359,-1.24997 -2.0625,-1.25 -0.823202,3e-5 -1.552619,0.42127 -2.15625,1.25 -0.548809,0.7459 -0.812527,1.8099 -0.8125,3.21875 l 0,0.875 c -2.7e-5,2.15475 -0.605208,3.25002 -1.8125,3.25 l -8.65625,0 c -1.207335,2e-5 -1.812515,-1.09525 -1.8125,-3.25 l 0,-9.6875 c -1.5e-5,-2.07184 0.605165,-3.12497 1.8125,-3.125 l 11.9375,0 c 2.963388,3e-5 4.468717,-2.25438 4.46875,-6.8125 l 0,-13.6875 c -3.3e-5,-4.55804 -1.505362,-6.8437 -4.46875,-6.84375 l -22.28125,0 z m 11.59375,8.46875 5.9375,0 c 0.878026,4e-5 1.576194,0.47432 2.125,1.46875 0.603634,0.91167 0.906223,2.00694 0.90625,3.25 -2.7e-5,1.32603 -0.302616,2.43216 -0.90625,3.34375 -0.603685,0.91165 -1.301852,1.37503 -2.125,1.375 l -5.9375,0 c -0.932945,3e-5 -1.669985,-0.46335 -2.21875,-1.375 -0.548797,-0.91159 -0.843765,-2.01772 -0.84375,-3.34375 -1.5e-5,-1.24306 0.294953,-2.33833 0.84375,-3.25 0.603643,-0.99443 1.340683,-1.46871 2.21875,-1.46875 z"
|
||||||
|
style="text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:#a7a7a7;stroke-width:0.63336247;stroke-opacity:0.75770928" />
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path4144"
|
||||||
|
d="m 84.71875,208.6875 c -2.963422,5e-5 -4.437501,2.28571 -4.4375,6.84375 l 0,38.15625 c -10e-7,4.5581 1.474078,6.84375 4.4375,6.84375 l 16.875,0 c 1.2073,0 1.9832,0.25276 2.3125,0.75 0.32924,0.49726 0.49997,1.77188 0.5,3.84375 l 0,22.625 c -3e-5,4.47519 1.47406,6.71873 4.4375,6.71875 l 3.03125,0 c 3.01826,-2e-5 4.5312,-2.24356 4.53125,-6.71875 l 0,-24.125 c -5e-5,-2.07186 -0.17077,-3.47287 -0.5,-4.21875 -3.3476,-5.30396 -5.0854,-8.23237 -5.25,-8.8125 -0.16465,-0.66299 -0.25004,-2.82225 -0.25,-6.46875 l 0,-28.59375 c -4e-5,-2.15468 -0.43448,-3.80846 -1.3125,-4.96875 -0.8232,-1.24307 -1.94058,-1.87495 -3.3125,-1.875 l -21.0625,0 z m 4.53125,8.46875 12.09375,0 c 1.59144,4e-5 2.49922,0.37918 2.71875,1.125 0.21949,0.74591 0.34372,1.89417 0.34375,3.46875 l 0,25.71875 c -3e-5,1.98901 -0.20963,3.29489 -0.59375,3.875 -0.32929,0.49726 -1.1517,0.75002 -2.46875,0.75 l -12.09375,0 c -1.317084,2e-5 -2.139491,-0.25274 -2.46875,-0.75 -0.329275,-0.49723 -0.5,-1.80312 -0.5,-3.875 l 0,-25.71875 c 0,-1.98895 0.170725,-3.22146 0.5,-3.71875 0.384138,-0.58008 1.206545,-0.87496 2.46875,-0.875 z"
|
||||||
|
style="text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:#a7a7a7;stroke-width:0.63336247;stroke-opacity:0.75770928" />
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path4146"
|
||||||
|
d="m 131.03755,247.47956 c -1e-5,2.07188 0.16462,3.35644 0.49391,3.85367 0.32925,0.49726 1.15242,0.74589 2.46951,0.74587 l 3.21037,0 c 1.31706,2e-5 2.14023,-0.24861 2.46952,-0.74587 0.38413,-0.58011 0.5762,-1.86466 0.57622,-3.85367 l 0,-33.56419 c -2e-5,-1.65745 0.3018,-2.94199 0.90549,-3.85366 0.60363,-0.91157 1.31705,-1.36739 2.14025,-1.36744 0.82315,5e-5 1.50912,0.45587 2.05793,1.36744 0.60363,0.82879 0.90546,2.03047 0.90549,3.60503 l 0,40.02841 c -3e-5,4.5581 -1.50918,6.83716 -4.52745,6.83716 l -18.1921,0 c -3.01831,0 -4.52746,-2.27906 -4.52746,-6.83716 l 0,-40.02841 c 0,-1.57456 0.27439,-2.77624 0.82318,-3.60503 0.60366,-0.91157 1.34451,-1.36739 2.22256,-1.36744 0.87805,5e-5 1.59147,0.41443 2.14025,1.24312 0.54878,0.74592 0.82317,1.9476 0.82317,3.60504 l 0,8.57752 c 0,2.07191 0.21951,3.5222 0.65855,4.35091 l 2.14024,3.23211 c 1.53657,2.32052 2.44206,3.85369 2.71647,4.59954 0.32926,0.7459 0.49389,2.07189 0.4939,3.97798 l 0,9.19907"
|
||||||
|
style="text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:#a7a7a7;stroke-width:0.63336247;stroke-opacity:0.75770928" />
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path4588"
|
||||||
|
d="m 154.65625,208.6875 c -2.96343,5e-5 -4.4375,2.28571 -4.4375,6.84375 l 0,38.15625 c 0,4.5581 1.47407,6.84375 4.4375,6.84375 l 22.3125,0 c 2.96339,0 4.43746,-2.28565 4.4375,-6.84375 l 0,-5.59375 c -4e-5,-1.49172 -0.30262,-2.59785 -0.90625,-3.34375 -0.54881,-0.82873 -1.23936,-1.24997 -2.0625,-1.25 -0.8232,3e-5 -1.52137,0.42127 -2.125,1.25 -0.54881,0.7459 -0.84378,1.8099 -0.84375,3.21875 l 0,0.875 c -3e-5,2.15475 -0.6052,3.25002 -1.8125,3.25 l -8.625,0 c -1.20733,2e-5 -1.81251,-1.09525 -1.8125,-3.25 l 0,-9.6875 c -1e-5,-2.07184 0.60517,-3.12497 1.8125,-3.125 l 11.9375,0 c 2.96339,3e-5 4.43746,-2.25438 4.4375,-6.8125 l 0,-13.6875 c -4e-5,-4.55804 -1.47411,-6.8437 -4.4375,-6.84375 l -22.3125,0 z m 11.59375,8.46875 5.9375,0 c 0.87803,4e-5 1.60744,0.47432 2.15625,1.46875 0.60363,0.91167 0.87497,2.00694 0.875,3.25 -3e-5,1.32603 -0.27137,2.43216 -0.875,3.34375 -0.60369,0.91165 -1.3331,1.37503 -2.15625,1.375 l -5.9375,0 c -0.93295,3e-5 -1.66998,-0.46335 -2.21875,-1.375 -0.54879,-0.91159 -0.81251,-2.01772 -0.8125,-3.34375 -1e-5,-1.24306 0.26371,-2.33833 0.8125,-3.25 0.60365,-0.99443 1.34068,-1.46871 2.21875,-1.46875 z"
|
||||||
|
style="text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:#a7a7a7;stroke-width:0.63336247;stroke-opacity:0.75770928" />
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path4150"
|
||||||
|
d="m 192.58897,260.53231 -3.04573,0 c -2.96343,0 -4.44514,-2.27906 -4.44514,-6.83716 l 0,-38.16373 c 0,-2.23756 0.41159,-3.93648 1.23476,-5.09678 0.82317,-1.1602 1.92073,-1.74032 3.29269,-1.74037 l 18.76833,0 c 2.96339,5e-5 4.4451,2.27911 4.44513,6.83715 l 0,40.02841 c -3e-5,1.57462 -0.30186,2.81774 -0.90549,3.72936 -0.54881,0.82874 -1.23479,1.24312 -2.05793,1.24312 -2.03052,0 -3.04576,-1.74036 -3.04573,-5.2211 l 0,-33.56419 c -3e-5,-2.07183 -0.16467,-3.35638 -0.49391,-3.85367 -0.32929,-0.4972 -1.15246,-0.74583 -2.46951,-0.74587 l -9.79576,0 c -1.2622,4e-5 -2.08537,0.2901 -2.46951,0.87018 -0.32928,0.49729 -0.49391,1.74041 -0.49391,3.72936 0,1.98902 0.0823,3.23213 0.24695,3.72935 0.16463,0.49729 1.01524,1.94758 2.55184,4.35092 1.59145,2.32052 2.52438,3.81225 2.79879,4.47522 0.27437,0.58015 0.41157,1.74039 0.41158,3.48073 l 0,15.91191 c -1e-5,4.5581 -1.50916,6.83716 -4.52745,6.83716"
|
||||||
|
style="text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:#a7a7a7;stroke-width:0.63336247;stroke-opacity:0.75770928" />
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path4152"
|
||||||
|
d="m 243.53562,221.74702 c -3e-5,1.24316 -0.30185,2.32052 -0.90549,3.23211 -0.54881,0.82877 -1.17991,1.24314 -1.8933,1.24312 l -6.58537,0 c -0.65856,2e-5 -1.28966,-0.41435 -1.8933,-1.24312 -0.5488,-0.91159 -0.82319,-1.98895 -0.82317,-3.23211 l 0,-1.36743 c -2e-5,-2.15469 -0.60367,-3.23207 -1.81098,-3.23211 l -5.51526,0 c -1.20732,4e-5 -1.81098,1.07742 -1.81097,3.23211 l 0,28.4674 c -10e-6,2.15475 0.60365,3.23213 1.81097,3.23211 l 9.30185,0 c 1.97559,2e-5 3.12803,-0.16574 3.45732,-0.49724 0.38413,-0.41437 0.5762,-1.61605 0.57623,-3.60505 -3e-5,-1.40885 0.27436,-2.48621 0.82317,-3.23211 0.60363,-0.82873 1.34449,-1.24309 2.22257,-1.24312 0.82314,3e-5 1.53656,0.41439 2.14024,1.24312 0.60364,0.82876 0.90546,1.989 0.90549,3.48074 l 0,5.46971 c -3e-5,4.5581 -1.50917,6.83716 -4.52745,6.83716 l -18.27442,0 c -2.96343,0 -4.44513,-2.27906 -4.44513,-6.83716 l 0,-38.16373 c 0,-4.55804 1.4817,-6.8371 4.44513,-6.83715 l 18.27442,0 c 1.31705,5e-5 2.38717,0.62161 3.21038,1.86468 0.87802,1.16029 1.31704,2.81779 1.31707,4.97247 l 0,6.2156"
|
||||||
|
style="text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:#a7a7a7;stroke-width:0.63336247;stroke-opacity:0.75770928" />
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path4580"
|
||||||
|
d="m 251.4375,208.6875 c -2.96342,5e-5 -4.4375,2.28571 -4.4375,6.84375 l 0,38.15625 c 0,4.5581 1.47408,6.84375 4.4375,6.84375 l 22.3125,0 c 2.96339,0 4.43747,-2.28565 4.4375,-6.84375 l 0,-5.59375 c -3e-5,-1.49172 -0.30262,-2.59785 -0.90625,-3.34375 -0.54881,-0.82873 -1.23936,-1.24997 -2.0625,-1.25 -0.8232,3e-5 -1.52137,0.42127 -2.125,1.25 -0.54881,0.7459 -0.81252,1.8099 -0.8125,3.21875 l 0,0.875 c -2e-5,2.15475 -0.60521,3.25002 -1.8125,3.25 l -8.65625,0 c -1.20733,2e-5 -1.81251,-1.09525 -1.8125,-3.25 l 0,-9.6875 c -10e-6,-2.07184 0.60517,-3.12497 1.8125,-3.125 l 11.9375,0 c 2.96339,3e-5 4.43747,-2.25438 4.4375,-6.8125 l 0,-13.6875 c -3e-5,-4.55804 -1.47411,-6.8437 -4.4375,-6.84375 l -22.3125,0 z m 11.625,8.46875 5.90625,0 c 0.87803,4e-5 1.60744,0.47432 2.15625,1.46875 0.60363,0.91167 0.90622,2.00694 0.90625,3.25 -3e-5,1.32603 -0.30262,2.43216 -0.90625,3.34375 -0.60369,0.91165 -1.3331,1.37503 -2.15625,1.375 l -5.90625,0 c -0.93294,3e-5 -1.70123,-0.46335 -2.25,-1.375 -0.54879,-0.91159 -0.81251,-2.01772 -0.8125,-3.34375 -10e-6,-1.24306 0.26371,-2.33833 0.8125,-3.25 0.60365,-0.99443 1.37193,-1.46871 2.25,-1.46875 z"
|
||||||
|
style="text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:#a7a7a7;stroke-width:0.63336247;stroke-opacity:0.75770928" />
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path4156"
|
||||||
|
d="m 293.90347,253.69515 c -1e-5,4.5581 -1.50916,6.83716 -4.52744,6.83716 l -3.04574,0 c -2.96342,0 -4.44513,-2.27906 -4.44513,-6.83716 l 0,-38.16373 c 0,-2.23756 0.41159,-3.93648 1.23476,-5.09678 0.82317,-1.1602 1.92073,-1.74032 3.29269,-1.74037 l 14.32319,0 c 1.31706,5e-5 2.38718,0.62161 3.21038,1.86468 0.87802,1.16029 1.31704,2.81779 1.31707,4.97247 l 0,5.96697 c -3e-5,1.40891 -0.30185,2.56915 -0.90548,3.48074 -0.54881,0.82877 -1.23479,1.24314 -2.05794,1.24312 -2.03051,2e-5 -3.04576,-1.57459 -3.04573,-4.72386 -3e-5,-2.07181 -0.16466,-3.31493 -0.49391,-3.72935 -0.32929,-0.41433 -1.17989,-0.62152 -2.55183,-0.62156 l -5.35062,0 c -1.26221,4e-5 -2.08538,0.2901 -2.46952,0.87018 -0.32928,0.49729 -0.49391,1.74041 -0.4939,3.72936 -10e-6,2.07189 0.0823,3.35645 0.24695,3.85367 0.10975,0.33153 0.96036,1.69896 2.55183,4.10228 1.59146,2.4034 2.52438,3.93657 2.79879,4.59954 0.27438,0.58015 0.41157,1.74039 0.41158,3.48073 l 0,15.91191"
|
||||||
|
style="text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:#a7a7a7;stroke-width:0.63336247;stroke-opacity:0.75770928" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer3"
|
||||||
|
inkscape:label="Gloss"
|
||||||
|
style="opacity:0.39743593;display:inline"
|
||||||
|
transform="translate(0,193)">
|
||||||
|
<path
|
||||||
|
style="fill:url(#linearGradient5019);fill-opacity:1;stroke:none;display:inline;enable-background:new"
|
||||||
|
d="m 140.75695,-181.46527 c -72.755273,0 -131.3473247,55.32504 -131.3473247,124.035321 l 0,226.726419 c 0,20.80953 5.4124137,40.37745 14.9258327,57.56472 C 7.7443533,-168.40399 355.28423,-168.5508 427.33293,-164.35009 c -19.53259,-10.874 -42.31047,-17.11518 -66.71847,-17.11518 l -219.85751,0 z"
|
||||||
|
id="path4983"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
<path
|
||||||
|
style="fill:url(#linearGradient5027);fill-opacity:1;stroke:none;display:inline;enable-background:new"
|
||||||
|
d="M 491.91203,111.33371 C 472.74849,191.80784 359.21234,253.0633 254.5913,293.33179 l 106.02316,0 c 72.75527,0 131.29757,-55.32506 131.29757,-124.03532 l 0,-57.96276 z"
|
||||||
|
id="rect4484"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 59 KiB |
|
@ -0,0 +1,581 @@
|
||||||
|
/* XPM */
|
||||||
|
static const char *icon_16x16[] = {
|
||||||
|
/* columns rows colors chars-per-pixel */
|
||||||
|
"319 319 256 2 ",
|
||||||
|
" c #007400670066",
|
||||||
|
". c #0D6B09B201FA",
|
||||||
|
"X c #0A540A540A54",
|
||||||
|
"o c #093D067402B2",
|
||||||
|
"O c #13050D090215",
|
||||||
|
"+ c #1C1C130A013A",
|
||||||
|
"@ c #17F0116E03C0",
|
||||||
|
"# c #135113511351",
|
||||||
|
"$ c #1B481B481B48",
|
||||||
|
"% c #21BB167F00B3",
|
||||||
|
"& c #255B194D0161",
|
||||||
|
"* c #2C2D1D6800E2",
|
||||||
|
"= c #252F1BD008B3",
|
||||||
|
"- c #2A9D1E6F08C9",
|
||||||
|
"; c #2D3C211008B1",
|
||||||
|
": c #33D222810124",
|
||||||
|
"> c #397A2625011F",
|
||||||
|
", c #3DBB2916011F",
|
||||||
|
"< c #35CD266909A1",
|
||||||
|
"1 c #2A4C232C1537",
|
||||||
|
"2 c #32B9287E13BA",
|
||||||
|
"3 c #3EBF321219FA",
|
||||||
|
"4 c #23C023C023C0",
|
||||||
|
"5 c #2BB42BB32BB0",
|
||||||
|
"6 c #3A763467287E",
|
||||||
|
"7 c #33673365335F",
|
||||||
|
"8 c #3BD33BCE3BC1",
|
||||||
|
"9 c #3996384F361F",
|
||||||
|
"0 c #35752E6E2161",
|
||||||
|
"q c #43CD2CF80114",
|
||||||
|
"w c #45472ED904D0",
|
||||||
|
"e c #4BE93281018E",
|
||||||
|
"r c #494D328C06B2",
|
||||||
|
"t c #51E4362200F2",
|
||||||
|
"y c #55BE39080141",
|
||||||
|
"u c #5CD13D4B00F7",
|
||||||
|
"i c #55963B6A098C",
|
||||||
|
"p c #496637FF16DE",
|
||||||
|
"a c #60B13F610097",
|
||||||
|
"s c #46733BA52773",
|
||||||
|
"d c #43633EBF3737",
|
||||||
|
"f c #5F16408E053E",
|
||||||
|
"g c #5A8543991843",
|
||||||
|
"h c #63ED4286028D",
|
||||||
|
"j c #6A1C468A02CE",
|
||||||
|
"k c #6DF749650442",
|
||||||
|
"l c #693A48180917",
|
||||||
|
"z c #74084D4802D8",
|
||||||
|
"x c #78CE4F4C010E",
|
||||||
|
"c c #73E84ED70843",
|
||||||
|
"v c #7D0A52C40133",
|
||||||
|
"b c #767150F40870",
|
||||||
|
"n c #7C3154DB09E6",
|
||||||
|
"m c #7DCF57010C16",
|
||||||
|
"M c #7797568C16CC",
|
||||||
|
"N c #69494D8D1838",
|
||||||
|
"B c #57AD478028F0",
|
||||||
|
"V c #488A43F53A47",
|
||||||
|
"C c #56204BD23838",
|
||||||
|
"Z c #5A1A4EBE3848",
|
||||||
|
"A c #68AC58413931",
|
||||||
|
"S c #6DC357202BEE",
|
||||||
|
"D c #79E5639F38E5",
|
||||||
|
"F c #7DFE61612AAB",
|
||||||
|
"G c #42E942D742B6",
|
||||||
|
"H c #4C2A4C064BAB",
|
||||||
|
"J c #4B234949456D",
|
||||||
|
"K c #518B4D9F45F4",
|
||||||
|
"L c #54A752254CFA",
|
||||||
|
"P c #5B7A559E49FA",
|
||||||
|
"I c #53FA53C05333",
|
||||||
|
"U c #5CB85A1B54EF",
|
||||||
|
"Y c #5B845B3E5ACE",
|
||||||
|
"T c #5947573252F7",
|
||||||
|
"R c #68C85C6E44EB",
|
||||||
|
"E c #62BC5DF15484",
|
||||||
|
"W c #61075EC55A74",
|
||||||
|
"Q c #767B669F4871",
|
||||||
|
"! c #648E61B55BE9",
|
||||||
|
"~ c #6AF165E65C63",
|
||||||
|
"^ c #6C31662B5A12",
|
||||||
|
"/ c #75606D9F5E90",
|
||||||
|
"( c #75EA6A76546B",
|
||||||
|
") c #76516ACC5491",
|
||||||
|
"_ c #644F643163F8",
|
||||||
|
"` c #6CAF69DB645F",
|
||||||
|
"' c #6CAD6C1B6B11",
|
||||||
|
"] c #68F566DA6356",
|
||||||
|
"[ c #726C6D4E6356",
|
||||||
|
"{ c #70F76EBF6ABB",
|
||||||
|
"} c #7B8E72F96215",
|
||||||
|
"| c #745A71E06D4C",
|
||||||
|
" . c #7A5C75A26C30",
|
||||||
|
".. c #798873EC68C3",
|
||||||
|
"X. c #761E758D7418",
|
||||||
|
"o. c #7958773573BB",
|
||||||
|
"O. c #7C7C79B9745D",
|
||||||
|
"+. c #7E4C7D717C27",
|
||||||
|
"@. c #824856610127",
|
||||||
|
"#. c #860B591B0137",
|
||||||
|
"$. c #8C2C5D0A011F",
|
||||||
|
"%. c #83EF5ABB0BC2",
|
||||||
|
"&. c #89165EBF0C5F",
|
||||||
|
"*. c #812A5765089E",
|
||||||
|
"=. c #90AB5F780141",
|
||||||
|
"-. c #86895EC21127",
|
||||||
|
";. c #8C4F61C40DF3",
|
||||||
|
":. c #8F7D60330393",
|
||||||
|
">. c #9435625B0125",
|
||||||
|
",. c #9A9F666D0116",
|
||||||
|
"<. c #9E98691A011A",
|
||||||
|
"1. c #92C4650B0C35",
|
||||||
|
"2. c #9E486BC10A0A",
|
||||||
|
"3. c #8B0261A910A5",
|
||||||
|
"4. c #8B3564BA1A37",
|
||||||
|
"5. c #949F69171494",
|
||||||
|
"6. c #A4376CD60121",
|
||||||
|
"7. c #A8B56F760120",
|
||||||
|
"8. c #A2226EEF0B0B",
|
||||||
|
"9. c #AC8A725E012A",
|
||||||
|
"0. c #A8E173560BD3",
|
||||||
|
"q. c #B2AC766D0133",
|
||||||
|
"w. c #B6AB7927013A",
|
||||||
|
"e. c #BC377CBC0155",
|
||||||
|
"r. c #B4797A8E0B0B",
|
||||||
|
"t. c #A9A978EB193C",
|
||||||
|
"y. c #B2D77EDA18AB",
|
||||||
|
"u. c #8B926AB22B94",
|
||||||
|
"i. c #9B1E74482997",
|
||||||
|
"p. c #85FF6AF536DF",
|
||||||
|
"a. c #976076B937B2",
|
||||||
|
"s. c #8EE46FB633C2",
|
||||||
|
"d. c #A5927ABF289F",
|
||||||
|
"f. c #A3487D6E3562",
|
||||||
|
"g. c #C0DB7F7D01F6",
|
||||||
|
"h. c #8B0A7410482B",
|
||||||
|
"j. c #95B87B894949",
|
||||||
|
"k. c #86CB769B56F9",
|
||||||
|
"l. c #8A0074FE4D61",
|
||||||
|
"z. c #850D7B8468ED",
|
||||||
|
"x. c #83377E1C743B",
|
||||||
|
"c. c #80CF7F3B7CDA",
|
||||||
|
"v. c #BAA083F319CB",
|
||||||
|
"b. c #BD6780AB0B36",
|
||||||
|
"n. c #BA4D895A2A8F",
|
||||||
|
"m. c #AB95842537FB",
|
||||||
|
"M. c #B7F38B92364A",
|
||||||
|
"N. c #BE1C915B3B05",
|
||||||
|
"B. c #AF0482022BAC",
|
||||||
|
"V. c #C4D282480206",
|
||||||
|
"C. c #CAE486330206",
|
||||||
|
"Z. c #CED288EC0211",
|
||||||
|
"A. c #C70B86C20AA4",
|
||||||
|
"S. c #D45B8C940211",
|
||||||
|
"D. c #D8E68F890216",
|
||||||
|
"F. c #D3538EB90A60",
|
||||||
|
"G. c #DCD49241021E",
|
||||||
|
"H. c #D87D920A0A0A",
|
||||||
|
"J. c #C7D38B5116AE",
|
||||||
|
"K. c #D855970019B0",
|
||||||
|
"L. c #CDCD90901B1B",
|
||||||
|
"P. c #E2D196200220",
|
||||||
|
"I. c #E6E998EC0222",
|
||||||
|
"U. c #EC439C540239",
|
||||||
|
"Y. c #E70B9BE40C7A",
|
||||||
|
"T. c #F13D9F9A0260",
|
||||||
|
"R. c #E3A79E4319DE",
|
||||||
|
"E. c #F554A25E025E",
|
||||||
|
"W. c #FB90A67D026E",
|
||||||
|
"Q. c #FFF1A9A1030B",
|
||||||
|
"!. c #FFDCAC9C0C02",
|
||||||
|
"~. c #F4DAA5600C0C",
|
||||||
|
"^. c #EB39A38219EC",
|
||||||
|
"/. c #FFB7AEA912BC",
|
||||||
|
"(. c #F2F0A8571941",
|
||||||
|
"). c #FFFAB1FA1C21",
|
||||||
|
"_. c #FFFFB0B01717",
|
||||||
|
"`. c #EF99A2220D0D",
|
||||||
|
"'. c #C32E8E8E28EF",
|
||||||
|
"]. c #CB98946129DD",
|
||||||
|
"[. c #D6E49B0C27A0",
|
||||||
|
"{. c #C9449765370B",
|
||||||
|
"}. c #D36B9E423768",
|
||||||
|
"|. c #DB2DA38B37C9",
|
||||||
|
" X c #DE48A1762C97",
|
||||||
|
".X c #E854A7032967",
|
||||||
|
"XX c #F41CAE32285A",
|
||||||
|
"oX c #FFDAB4782385",
|
||||||
|
"OX c #FFB0B6EE2B4D",
|
||||||
|
"+X c #FFFFB8B82E38",
|
||||||
|
"@X c #F688B1802C69",
|
||||||
|
"#X c #ECC9AD8A33BE",
|
||||||
|
"$X c #E48EAA7F3A6C",
|
||||||
|
"%X c #E699AA43362B",
|
||||||
|
"&X c #EF2EB1A13B2B",
|
||||||
|
"*X c #F4A9B304340B",
|
||||||
|
"=X c #FAC8B6DB3394",
|
||||||
|
"-X c #FFE6BAA1341B",
|
||||||
|
";X c #F483B50E3AC1",
|
||||||
|
":X c #FFBFBD003B88",
|
||||||
|
">X c #F8D6B7FC3AB2",
|
||||||
|
",X c #F1C6AFAF3106",
|
||||||
|
"<X c #9B38845357F5",
|
||||||
|
"1X c #9D7881384B02",
|
||||||
|
"2X c #A7FA882D4A7C",
|
||||||
|
"3X c #BB0A937846D4",
|
||||||
|
"4X c #A79B8B695515",
|
||||||
|
"5X c #AEB890ED5776",
|
||||||
|
"6X c #B767965756A6",
|
||||||
|
"7X c #B4348E8E45A1",
|
||||||
|
"8X c #9833881368D1",
|
||||||
|
"9X c #864480EE762D",
|
||||||
|
"0X c #8CAE848E74A7",
|
||||||
|
"qX c #836B81A57E32",
|
||||||
|
"wX c #8AA786837E40",
|
||||||
|
"eX c #8EA488EB7E72",
|
||||||
|
"rX c #946189BC74BD",
|
||||||
|
"tX c #93668C177DB2",
|
||||||
|
"yX c #96FC8B5E7513",
|
||||||
|
"uX c #9BC591CD7E5F",
|
||||||
|
"iX c #9D9D90907721",
|
||||||
|
"pX c #8AF5816C6E6E",
|
||||||
|
"aX c #A937936F697E",
|
||||||
|
"sX c #ADC49AE876E3",
|
||||||
|
"dX c #A34496BE7E32",
|
||||||
|
"fX c #A77D98DD7BEA",
|
||||||
|
"gX c #B22A9DF87759",
|
||||||
|
"hX c #ACD1946665C1",
|
||||||
|
"jX c #B8C9A23B7744",
|
||||||
|
"kX c #C76B9BA8479D",
|
||||||
|
"lX c #C3439DDD556A",
|
||||||
|
"zX c #D70CA6FD49CB",
|
||||||
|
"xX c #CF01A5D85641",
|
||||||
|
"cX c #EB7CB33346B5",
|
||||||
|
"vX c #FFCDBF324242",
|
||||||
|
"bX c #F5D6B9FE46D6",
|
||||||
|
"nX c #EA92B6835268",
|
||||||
|
"mX c #C7B8A5F16547",
|
||||||
|
"MX c #D0BEB14C74FE",
|
||||||
|
"NX c #E464BACA6ACA",
|
||||||
|
"BX c #FFFEC0C04624",
|
||||||
|
"VX c #FFC5C1AF48B8",
|
||||||
|
"CX c #F6A0C1165858",
|
||||||
|
"ZX c #838C832A820D",
|
||||||
|
"AX c #8CF98A0D846D",
|
||||||
|
"SX c #932C8E3184AD",
|
||||||
|
"DX c #9A0694FD8B0D",
|
||||||
|
"FX c #9974974E9309",
|
||||||
|
"GX c #A71A9C6A87EA",
|
||||||
|
"HX c #A3279D5F925D",
|
||||||
|
"JX c #B4EFA5FB8954",
|
||||||
|
"KX c #AAB6A337948E",
|
||||||
|
"LX c #B312A9C997AC",
|
||||||
|
"PX c #AEC0A37E8D1F",
|
||||||
|
"IX c #C821B232883B",
|
||||||
|
"UX c None",
|
||||||
|
/* pixels */
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX+ : , r y f j j k k z x x z z x x b x x b x x x b z x x x x x b b x x x b b b v v b b b b b v b b z x x x b x x b x x x b b b v x b x x x b x x b b x x x b x x x b x x x b z x x x x b b x x x z x x x x x x b b x x x x b z x x x x b b x x x x b z x x z x x x x x x b z b x x b x x b x x x x z z x x b x x x x x k k j j f y e , * @ UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXO > t h v #.,.7.e.C.Z.D.G.U.I.U.U.U.T.T.T.T.E.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.W.E.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.E.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.E.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.E.T.T.T.T.T.T.T.T.T.T.T.T.U.E.E.U.U.T.`.T.T.T.T.E.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.U.U.U.I.I.P.D.Z.V.e.9.,.#.v h e : @ UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX: t k #.7.b.S.I.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.!.!.!.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.I.Z.e.8.#.j t - o UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX& t z :.b.Z.U.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.!.!.Q.Q.!.!.!.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.I.Z.w.:.k t & UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX: h #.9.C.U.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.!.!.!.!.!.!.!.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.U.C.9.#.h > UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX% u $.q.F.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.!.!.!.!./.!././.!./././.!././.!./.!./.!././.!./.!./._.!.!._.!.!._._./.!./.!./.!./.!.!././.!./.!././.!.!././.!./.!.!./.!./.!.!./.!././.!.!./.!./.!./.!.!./.!.!./.!./.!./.!./.!./.!./.!.!./.!.!.!.!.!.!.!.!.!.!.!././.!.!.!.!.!.!./.!.!.!.!.!./.!.!.!./.!.!.!.!.!.!.!.!.!.!.!.!.!./.!.!.!.!.!.!.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.S.9.@.y & UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXe x 7.Z.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.!.!._._.oX+X:X:X:XBXBXBXBXBXBXBXBXBXBXBXBXvXBXBX:XBXBXvXBXvXBX:X:XBXBXvX:XBXBXBX:X:XBX:X:XvX:XBXBX:X:XBXBX:X:X:XvX:XBX:X:XvX:X:X:XvX:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X-X:X:X-X:X-X:X:X-X:X-X:X-X:X-X:X:X-X-X-X:X-X-X-X-X-X-X-X:X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X+X-X-X+X-X+X-X+X-X+X+X-X-X+X+X+X+X+X+X+X+X+XOX+X+X+X+X+X+X+XOXOXoXoX)._././.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.Z.7.x w . UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX* j :.V.T.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q./.).+X-XvXBXVXVXBXBXBXBXBXBXBXBXvXBXBXvXBXvX:XBXBXBXvXBXBXBXvXvXvXvXBXBXBXBX:XvX:XvX:XBX:XBX:XBXvXvXBX:X:X:X:X:X:X:XvX:XvX:X:X:X:X:X:XvX:X:X:X:X:X:X:X:X:X:X:X:X:X-X:X:X-X:X-X:X-X:X:X:X-X:X:X-X:X-X-X-X:X-X:X-X-X-X:X-X-X-X-X-X:X-X-X-X-X-X-X-X-X-X:X+X-X-X-X-X+X+X-X-X-X-X+X-X+X-X+X-X+X-X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+XOX+X+X+XOX+XOXOXOX+X+XOXOXoX)./.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.T.V.:.h & UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX* k <.S.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q./.oX-XBXBXVXVXVXBXBXBXvXBXBXBXBXBXBXBXBXBXBXBXBXvXBXBXBXBXBX:XBX:XBXvXvXvXvXvX:XBX:XvXvXvXvXBX:XBX:XBXBX:X:X:X:X:XBXBX:XBX:XvX:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X-X:X:X:X:X:X:X-X:X:X:X:X:X:X:X:X-X:X-X-X-X:X:X:X-X:X-X-X-X-X:X-X-X-X-X:X-X-X-X-X-X-X-X-X-X-X-X+X-X-X+X+X-X-X-X-X-X-X+X-X+X+X-X-X+X-X+X-X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+XOX+X+XOXOX+XOX+XOXOX+XOXOXOXOXOXOXoX_.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Z.<.j & UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX* k 6.G.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.!.oX-XBXVXVXVXVXBXBXBXVXVXvXVXVXBXBXBXBXBXBXBXBXBXvXvXvXBXvXBX:XBX:X:XBXBXBX:XvXvXvX:XBX:XBXvX:XvXvX:XBX:X:X:X:X:XBX:XBX:XBX:X:X:X:X:X:X:XvX:XBX:X:X:XvX:X:X:X:X:X:X:X:X:X:X:X-X:X:X:X-X:X-X-X-X:X-X-X:X-X:X-X:X-X-X:X-X-X-X:X-X-X:X-X-X:X-X-X-X-X-X-X-X-X-X-X+X-X-X:X+X-X-X+X-X+X-X+X+X+X-X+X-X+X+X+X-X+X+X+X+X+X-X+X+X+X+X+X+X+XOX+X+X+X+XOX+X+X+XOX+XOXOX+XOXOXOXOXOXOXOXOXOXOXoXOXOXOX)./.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.G.7.j & UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX* x 7.P.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.!.).:XvXVXVXVXBXVXVXBXBXVXVXBXBXBXBXBXBXBXBXBXBXBXBXBXBXvXBXvXvXvXvXBXBXBXBXBXBX:XvXvXvXvXvXvXvXvXvXvXvX:XBX:XBXBXBX:X:XBX:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X-X:X:X:X-X-X:X:X:X:X:X:X-X:X-X:X-X-X-X:X:X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X+X-X-X+X-X+X-X-X-X+X-X+X-X+X+X+X+X-X+X+X-X+X+X+X+X+X+X+X+X+X+X+X+X+X+XOX+X+XOX+XOX+XOX+XOXOX+XOX+XOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXoX/.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.P.7.z - UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX@ j 6.G.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q._.+XBXvXVXVXVXVXBXVXBXBXBXVXBXBXBXBXBXBXBXBXBXBXBXBXBXBXvXvXvXvXvXBXvXvXvXBX:XBX:XBXBXvXvX:XvX:XvXvX:X:XvX:XvX:X:X:X:X:XBX:X:X:XBX:XBX:XBX:XBX:XvX:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X-X:X:X-X:X-X-X-X:X-X-X:X-X-X:X:X-X-X-X-X:X-X:X-X:X-X-X:X-X-X-X-X-X-X-X-X+X-X-X-X-X+X-X+X-X+X-X+X-X-X+X-X+X+X+X-X+X-X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+XOXOX+XOX+XOX+X+XOXOXOXOXOXOXOXOXOXOXOXoXOXOXOXOXoXOXoXOXoXOXoXOX)./.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.G.<.h @ UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXy ,.S.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.!.oXvXVXVXVXVXVXVXVXBXVXVXBXVXBXBXBXBXBXBXBXVXBXBXBXBXBXvX:X:XBX:XBXBXvXBXvXBXvXvXBXBXBX:XBXvXvXvXvXvXvXvXvXvX:XBX:X:XBX:XBX:X:X:X:X:X:X:X:X:X:XBX:X:X:X:XvX:X:X:X:X:X:X:X:X:X:X:X:X:X:X-X:X:X:X-X:X:X-X-X:X-X:X:X-X-X:X:X-X-X-X:X-X-X:X-X-X-X-X-X-X-X-X-X-X-X-X+X-X-X-X-X-X+X+X-X-X-X+X-X+X-X+X+X-X+X+X+X-X+X-X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+XOXOX+XOXOX+X+XOXOXOX+XOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXoXOXOXoXOXoXOXoX_.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.D.>.y o UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX* v g.W.Q.Q.Q.Q.Q.Q.Q.Q.Q./.-XvXVXBXVXVXVXVXVXvXVXBXVXBXVXBXBXBXBXvXBXBXBXvXVXvXBXvXvXBXBXBXBXBXBXvXvXvXvXvXvXvX:X:X:XBX:XvX:XvXvXvX:XvX:XvXvXvXvX:XBX:X:X:XBXBX:X:XBX:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X-X:X:X-X-X:X-X:X-X:X:X:X-X:X:X-X:X-X-X:X-X:X-X-X:X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X+X-X+X-X-X-X+X-X-X+X-X+X-X+X+X+X-X+X-X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+XOX+XOXOX+XOX+XOXOXOX+XOXOXOXOXOXOXOXOXOXoXOXOXOXOXOXoXoXOXOXOXoXOXOXoXOXoXOXoXoXOXoX_.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.V.x & UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXj 6.U.Q.Q.Q.Q.Q.Q.Q.Q.Q./.-XVXVXVXVXVXVXVXvXVXVXvXVXBXBXBXBXBXBXBXBXBXvXBXBXBXBXvXvXBXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvX:XBXBXBXvX:XBX:XvXvX:XvXvXvXvXvX:XvXvX:XvX:X:XvX:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X-X:X:X:X:X:X:X:X:X:X:X:X-X:X-X:X-X:X:X-X:X:X-X:X:X-X-X:X-X-X-X-X-X-X:X-X-X-X-X-X-X-X+X-X+X-X-X+X-X-X-X+X-X-X-X+X+X-X+X+X+X-X+X-X-X-X+X+X+X+X+X+X+X+X+X+X+X+X+X+XOX+X+X+XOX+XOX+X+XOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXoXOXoXOXOXOXOXoXOXoXOXoXoXOXoXOXoXoXOXoXoXOX).!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.U.6.y X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX> #.C.W.Q.Q.Q.Q.Q.Q.Q.Q./.-XVXBXVXVXVXVXVXBXVXVXvXVXvXVXBXBXBXBXBXBXvXBXBXBXvXBXBXvXvXBXvXBXvXBXBXBXvXvXvXvXvXvXvXvX:XvXvXBX:XBXvX:XBX:X:XvXvX:XvX:XvX:X:X:X:X:X:X:X:X:X:X:X:X:X:XBX:X:X:X:X:X:X:X:X-X:X:X:X:X-X-X:X-X-X:X-X:X-X:X:X:X-X-X-X-X-X-X-X-X-X-X:X-X-X-X-X-X:X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X+X+X-X-X+X+X-X-X+X+X:X+X-X+X+X-X+X+X+X+X+X+X+X+X+X+X+X+X+XOX+XOX+X+XOX+X+XOX+XOXOX+XOXOXOXOXOXOXOXOXOXOXOXoXOXOXOXOXoXOXOXOXOXoXoXOXOXOXoXOXOXoXOXoXOXoXoXOXoXoXoXoX).Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Z.#.- UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXy 6.U.Q.Q.Q.Q.Q.Q.Q.Q./.-XVXVXVXVXVXVXVXvXBXVXvXvXVXVXVXvXBXBXBXBXBXBXBXBXBXBXBXvXBXBXBXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXBX:X:XBX:X:X:XvX:XvXvXvXvX:X:XvXvX:XvX:XvXvX:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X-X:X-X:X:X-X-X:X:X-X:X:X-X:X-X:X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X+X+X-X-X-X+X-X+X-X-X+X-X-X+X+X+X-X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+XOX+XOX+X+X+X+X+X+XOXOXOXOXOXOXoXoX).).)._._._.)././././.!.!.!.!.!.Q.!.Q.!.!.Q.Q.!.Q.!.!.Q.!.!./././././._.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.U.6.y UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX% v V.W.Q.Q.Q.Q.Q.Q.Q.Q.oXVXVXVXVXBXVXVXVXVXVXVXvXVXVXVXvXVXVXBXBXBXBXBXBXBXBXvXBXvXBXvXvXvXVXvXBXvXBXvXvXvXvXvXvXvX:XvXvXvX:X:X:XBX:X:XBX:XBX:XvX:X:X:X:X:XvX:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X-X:X:X:X-X:X-X-X:X:X-X-X:X:X:X-X-X-X-X:X-X-X:X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-XOX-X-X+X-X+X-X-X-X-X-X+X-X+X-X+X+X+X+X+X+X-X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+XOXOX+X+X+X+XoXoX)._._././.!.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.e.v @ UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX> :.G.Q.Q.Q.Q.Q.Q.Q.Q.).VXVXCXVXVXVXVXBXVXBXvXVXVXvXVXVXvXVXvXVXBXBXvXBXBXVXvXBXvXBXBXvXvXvXVXVXvXBXvXvXvXvXvXvXvXvX:XvXvXvX:XvXvXvXvX:X:X:XBX:XvX:XvXvX:X:X:XvX:X:X:XvX:XvX:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X-X:X:X:X:X-X-X:X-X:X-X:X:X-X:X-X-X:X-X-X-X:X:X-X:X-X-X-X-X-X-X>X-X-X-X-X-X-XOX-X-X-X-X-X+X-X-X+X-X+X+X+X-X+X+X+X-X-X-X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+XOXoXoX_._./.!.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.(.Q.Q.Q.Q.Q.Q.Q.Q.Q.G.=.: UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXy 6.`.Q.Q.Q.Q.Q.Q.Q.!.-XVXCXIXNXVXVXBXVXBXVXBXVXBXVXVXvXvXVXvXvXVXBXvXBXBXvXvXBXvXBXvXvXBXvXBXCXIXNXvXvXvXvXvX>XvXvXvXvXvX:XvXvXvX:X:XvXBX:XBXvX:X:X:X:X:XvXvX:X:X:XvX:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X-X:X-X-X:X:X:X:X:X-X:X:X-X:X-X-X-X-X:X-X:X:X:XCXNXMXjXJXLXLXLXLXLXJXIXMXnXbX-X-X-X-X-X-X-X-X-X+X-X+X-X-X+X+X-X-X+X-X+X-X+X+X+X+X+X+X+X+X+X+X+X+X+XOXoX)._.!.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.!.W.zXsXQ.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.xXlX(.W.Q.Q.Q.Q.Q.Q.Q.E.6.t UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXj q.W.Q.Q.Q.Q.Q.Q.Q.oXVXVXNXLXX.LXvXvXVXVXVXBXVXBXBXvXVXVXVXVXVXVXvXBXBXvXBXvXBXBXvXvXvXBXvXvXvXVXLXDXIXVXvXvXvXvXvXvX:X:XvXvXvXvX:XvXvX:X:XBX:X:X:X:XvX:XvX:X:X:X:XvX:X:X:X:X:X:X:X:X:X:X:X:X-X:X:X:X-X:X:X-X:X:X:X-X-X:X-X-X:X-X:X:X-X:X:X>XNXMXKXuX| Y H G 7 7 7 7 7 8 H Y .DXPXMXnX;XOX-XOX-XOX+X-X-X+X+X-X+X-X+X+X+X+X-X+X+X-X+X+X+X+XOXoX)./.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.(.aXE ...XW.W.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.6X~ 8X XW.W.W.Q.Q.Q.Q.Q.W.q.h o UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX. x V.Q.Q.Q.Q.Q.Q.Q.Q.-XVXCXIXSXI J KXNXbXbXbXVXBXBXBXBXvXVXvXVXvXvXVXVXBXvXBXvXBXvXvXBXvXvXvXvXvXvXVXLXG ' KXNXvX:XvXvXvXvXvX:X:XvX:XvXvX:XBX:X:X:X:XBXvX:X:X:X:XvX:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X-X:X:X:X:X-X:X:X:X-X:X:X-X:X:X-X:X-X-X:XVXMXKXx.H 9 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 9 Y wXPXMX&X-X-X-X-X-X+X-X-X+X-X+X+X+X+X-X+X+X+XoXoX_.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.zX0X5 9 6XE.E.W.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.6X5 $ .6X`.E.W.W.Q.Q.Q.Q.Q.V.k . UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX@ v D.Q.Q.Q.Q.Q.Q.Q./.vXBXNXLX' J G J X.MXcXcXbXBXvXBXBXBXVXvXBXBXBXBXvXBXvXBXvXBXvXvXvXvXvXvXvXvXvXvXCXKX8 8 H FXMXcXvXvXvX:X:X:XvXvXvXvX:X:XvX:X:XvX:XvX:XvX:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X-X:X:X:X:X:X:X-X:X:X-X:X-X:X:X-X:X:X-X:X>X-XCXjXDXY 9 7 7 7 7 7 7 7 7 7 7 5 7 7 7 7 5 7 7 7 5 7 8 { PXMX&X@X-X-X-X+X-X+X+X-X-XOXOX)./.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.~.6X! X X yXG.I.T.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.6X5 o G 8XR.E.E.Q.Q.Q.Q.Q.Q.S.v @ UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX+ #.G.Q.Q.Q.Q.Q.Q.Q.oXBXVXNXKXY G G G G I LXzXcXbXbXvXBXBXBXBXVXBXBXvXvXvXvXBXvXvXvXvXBXvXBXvXvXvXvXvXvXbXLX8 G G G ZXJXcX&XvX:XvXvX:XvXvX:X:XvXvX:XvX:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X-X:X:X:X:X:X-X:X-X:X:X:X-X:X:X-X:X-X-X:X-X-X:X-XBXMXHXY 7 7 7 7 7 7 7 7 5 7 7 7 7 7 7 7 5 7 5 7 5 7 7 7 5 7 7 ] KXNX*X=X@X-X+X+XoX_./.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.(.aXG [ n.S.P.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.6X5 5 rX].U.E.W.!.Q.Q.Q.Q.H.@.@ UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX& #.P.Q.Q.Q.Q.Q.Q.Q.+XVXVXIXHXH G G H H G H FX6XzXcXvXbXBXBXBXBXVXvXVXvXBXVXvXvXBXvXvXvXvXvXvXvXvXvXvXvXvXbXKXG G 8 8 8 ' LXnX&XbX:X:XvXvX:X:X:XvX:X:X:X:X:XvX:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X-X:X:X-X:X:X:X:X:X-X:X-X:X:X-X-X:X-X-X-X:X-XNXPX_ 7 7 7 7 7 7 7 7 7 5 7 7 5 7 7 7 7 5 7 7 7 7 5 7 5 7 7 5 7 5 8 x.JX$X(./.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.(.iX4 9 1Xb.S.U.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.6X5 $ z.{.I.E.W.Q.Q.Q.Q.Q.P.#.% UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX& $.P.Q.Q.Q.Q.Q.Q.!.:XVXVXIXSXJ H G G G G G G X.gXkXzXcXvXBXBXVXvXvXvXvXBXvXvXvXvXvXBXvXvXvXvXvXvXvXvXvXvX>XcXKX8 8 G 8 8 8 Y PXnX&XbX:X:X:X:XvX:X:X:XvXvX:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X-X:X-X:X:X-X:X-X:X-X-X-X:X-X:X-X:XvXMXAX8 7 7 7 7 7 7 7 7 5 7 7 7 7 7 7 7 5 7 7 5 5 7 5 7 5 7 5 5 7 5 4 # X 5 pX}.`.W.W.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q..XrX$ X 0X8.C.P.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.5X4 X } 3XI.E.W.Q.Q.Q.Q.Q.P.#.% UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX% $.P.Q.Q.Q.Q.Q.Q./.BXVXVXIXSXJ G G G H G G G G I KX7XzXcXbXvXBXvXBXvXvXBXvXvXvXBXvXvXvXvXvXvXvXvXvXvX:XvXvXvXcXKX8 8 8 8 8 8 8 _ KXnX&XvX>XvX:XvX:XvX:X:XvX:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X-X:X:X-X:X:X:X:X-X:X:X:X:X-X-X:X-X-X:X:X-XbXJX` 7 7 7 7 7 7 7 7 7 7 7 7 7 5 7 7 7 7 5 7 5 7 7 5 7 7 5 5 4 $ # o X ` 6XY.W.W.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q..XyX$ ] i.q.D.U.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.5X4 X [ 3XP.E.W.Q.Q.Q.Q.Q.P.#.@ UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX@ #.P.Q.Q.Q.Q.Q.Q._.BXVXVXIXDXJ J G H G G G G G G G DX5XkX$XbXvXvXvXvXBXvXvXvXBXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXcXKXG G 8 G G 8 8 8 Y KXzXcX>XvX:X:X:X:XvX:XvX:X:X:X:X:X:X:X:X:X:X:X-X:X:X:X:X:X-X:X-X:X:X-X:X-X-X:X-X-X:X:X-X:X:X-X:XnXKXT 7 7 7 7 7 7 7 7 5 7 7 7 5 7 7 7 7 5 7 7 5 7 7 5 7 5 $ # X K aXK.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q..XyX$ 9 l.6.Z.I.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.T.5X5 X [ 3XP.T.W.Q.Q.Q.W.Q.G.@.@ UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX. v G.Q.Q.Q.Q.Q.Q.).vXBXBXNXFXH H G G G G G J G G G G X.fXkXzX&XvXBXvXvXBXBXBXBXvXBXvXvXvXvXvXvXvX:XvXvXvXvX:XvX:XcXKX8 8 8 8 8 8 8 8 8 Y PXcX&X>X>X:X:XvX:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X-X-X-X-X:X:X:X-X:X:X-X:X-X-X-X:X:X-X-X-X-X-XnXPXG 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 5 7 7 5 5 7 7 5 5 $ X 7 yXK.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.(.iX4 X qX,.V.P.T.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.5X5 X ..M.I.E.E.W.Q.W.W.Q.S.x . UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXz S.Q.Q.Q.Q.Q.Q.).vXVXVXNXHXH G G G G J G G G G G G G I KX7X}.cXbXvXBXBX:X:XBXvXvXBXvXvXvXvXvX:XvXvXvXvX:XvXvXvXbXcXKXG 8 8 G 8 8 8 8 8 8 ' JXzX&XvX:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X-X-X:X:X-X:X-X-X:X-X-X-X-X:X:X:XCXDXG 7 7 7 7 7 7 7 7 5 7 7 7 5 7 7 5 7 7 5 7 5 4 # o $ 0X[.U.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.(.aX5 ~ u.q.D.T.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.T.5X5 # x.L.P.E.E.Q.W.Q.Q.W.Z.j o UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXh V.Q.Q.Q.Q.Q.Q.).VXVXVXCXLXI G G H G G G G G G G G G G G FX8XkX$XBXBXBXBXvXBXBX:XBXBX:XvX:XvXvXvX:X:XvX:XvXvXvX:XbXcXKX8 8 8 8 8 8 8 8 8 8 8 +.jX$X&X>X:X:X:X:X-X:X:X:X:X:X:X-X:X:X-X:X:X-X-X:X:X:X-X:X-X:X-X:X:X-X-X:X:X:X-X-X-X:XnXGXG 7 7 7 7 7 7 7 7 7 5 7 5 7 5 7 7 7 5 7 4 X o $ rX].U.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.6XG 7 k.7.Z.U.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.5X4 4 rXJ.I.T.T.W.W.W.W.Q.g.y o UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXt q.Q.Q.Q.Q.Q.Q._.VXVXVXVXIX_ G G G G G G G G G G G G G G G ' fX3XzXcX;XBXvXvX:XBXBX:X:XBXvXvXvXvXvXvXBX:XBX:XvX:XvX>XcXKX8 8 8 8 8 8 8 8 7 8 8 8 AXmX$XbX>X:X:X:X:X:X:X:X:X:X:X:X-X:X:X:X:X:X:X:X-X-X:X:X:X-X:X-X-X:X-X-X-X-X-X-X:XnXHXG 7 7 7 5 7 7 7 5 7 7 7 7 5 7 7 7 5 4 # $ rXL.U.E.W.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.zX^ X 0X1.g.G.T.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.5X5 5 8XZ.P.T.W.W.W.W.W.T.9.w UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX: <.W.Q.Q.Q.Q.Q._.BXVXBXVXIX+.G G H G G G G G G G G G G G G G H KX7XzX$X;XvXvXvXvX:XBX:XBX:XvXvX:XvX:X:XvXBXvX:X:XvX:XvXcXKX8 8 8 8 8 8 8 8 8 8 8 7 J HXxX$X;X:X:X:X:X:X:X:X-X:X:X:X:X:X:X-X:X-X:X-X:X-X-X-X-X-X:X-X:X-X:X-X-X-X-X-XbXKXJ 7 7 7 7 7 7 7 7 7 5 7 7 7 7 5 4 # o $ rXL.U.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q..XpXX ! i.q.S.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.5X4 L 2XD.I.T.W.W.W.W.W.E.,.* UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXO $.T.Q.Q.Q.Q.Q./.BXVXBXBXNXDXG G G G H G G G G G G G G G G G G G DX5XkX$XbXvXvXvXvXvXBXBX:XBXvX:XBXvXvXvXvX:X:XvXvX:X:X:XcXKXG 8 8 8 8 8 8 8 8 8 8 8 8 Y PX}.$X;X-X:X:X:X:X:X-X:X-X:X:X-X:X:X-X:X-X:X:X-X:X-X-X:X-X:X-X-X-X-X-X:X:X:XJXY 7 7 7 5 7 7 7 7 5 7 7 7 5 5 $ o 5 yXF.U.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.(.iX$ 7 k.6.Z.I.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.5X5 o O.n.D.U.T.W.T.W.W.W.U.#.O UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXz G.Q.Q.Q.Q.Q.!.vXBXBXBXCXLXL G G G G G G G G G G G G G G G G G 8 ' dX3X$XcXvXvXBX:XBX:XBX:XBX:XvXvX:X:XvXvXvXvX:XvX:XvX:XcXKX8 8 7 8 9 8 8 9 8 8 8 8 9 9 +.gX$X&X>X:X:X:X:X-X:X-X:X:X:X:X:X:X:X:X-X:X:X-X:X:X:X-X:X-X:X-X-X:X-X:X>XjX{ 7 7 5 7 7 7 7 5 5 7 7 5 4 X G 4XH.U.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.6XV X 9X,.V.P.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.T.5X4 $ pXA.G.U.T.W.W.W.W.W.S.j o UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXy e.Q.Q.Q.Q.Q.Q.-XBXBXBXBXIX{ G G G G G G G G G G G 8 G G 8 G G G G I HX7XzXcX;XvX:XBX:XBX:X:X:XvXvX:XvXvX:XvXvX:XvX:X:XvX:XcXKX8 8 8 8 8 9 8 8 8 7 7 8 8 8 8 FXlX$X;X>X:X:X:X:X:X:X:X-X+X:X:X+X-X-X:X-X-X:X-X-X-X-X:X-X-X-X-X-X-X-XNXqX7 7 7 7 5 7 7 7 7 7 4 # Y 5XD.T.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q..Xz. ~ u.q.D.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.5X5 G <XC.P.U.E.E.E.E.E.W.w.w UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUX* <.Q.Q.Q.Q.Q.Q.-XVXBXBXBXNXDXG G G G G G G G G G G G G 8 G 8 G 8 8 8 G DX4XkX$XbXvXvX:XBX:XBXBX:X:X:XvXvX:XvXvX:X:X:XvXvX:X:XcXKX8 8 8 8 8 8 8 7 8 8 7 8 8 9 8 I GXkX$X;X-X:X:X:X:X-X-X:X:X-X:X:X+X:X-X:X-X-X-X:X-X:X-X-X-X-X-X-X-XbXHX9 7 7 7 7 7 7 7 5 $ X o o o ..n.G.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.~.iX$ 7 k.6.Z.I.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.5X5 .d.S.I.T.E.E.W.E.E.E.,.% UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXo v U.Q.Q.Q.Q.Q.oXBXBXBXBXVXLXI G G G G G 8 G G G G 8 G G G G G G 8 G G 8 ' fXN.|.bX>XvXBX:XBX:XBX:X:XvX:X:XvX:X:XvXvX:X:X:X:X:XcXKX7 8 8 8 7 9 8 8 7 8 8 8 8 7 7 8 qXmX|.#X-X:X-X-X:X:X:X-X-X:X-X+X:X-X:X-X:X-X-X-X-X-X-X-X-X:X-X-X-XJXH 7 7 7 5 7 7 4 # o $ 0XJ.P.T.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.kXK X 9X1.V.P.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.T.5X5 4 8Xe.S.I.T.E.E.E.E.E.P.x o UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXu V.Q.Q.Q.Q.Q._.vXVXBXBXbXMXO.G G G G G G G G 8 G G 8 G 8 G G G 8 G 8 G 8 H HX7X}.cX>XBXvXvX:XvX:XvXvX:XvXvX:XvX:X:X:X:X:X:X:X:XcXHX8 8 7 8 7 8 8 8 8 7 8 7 8 7 8 7 J HXkX$X&X>X-X:X:X-X:X-X:X-X-X:X:X+X:X-X-X:X+X:X-X-X-X-X-X-X-X-XMX .7 7 7 7 7 $ X G <XS.I.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.(.0Xo ~ u.q.S.T.W.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.2X5 Y f.V.H.U.T.E.E.E.E.E.e.t UXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUX& <.Q.Q.Q.Q.Q.!.:XBXBXBXBXCXLXH G G G G G G G G G G G G G 8 G 8 G G 8 G 8 G G DX4XkXcXbX:X:XvXvX:XvX:XvX:X:X:X:X:XvX:XvXvX:XvXvX:XcXKX8 8 7 8 8 8 7 8 7 8 8 8 8 7 7 8 9 ' gX}.$X;X:X-X-X:X-X:X:X-X:X:X:X:X-X:X-X-X:X+X:X-X-X-X-X-X-XbXGX8 5 7 5 $ X [ B.S.U.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.6X7 7 l.6.C.U.~.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.T.5X5 # pXr.Z.P.T.E.T.E.E.E.T.=.& UXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXx I.Q.Q.Q.Q.Q.-XBXBXBXBXBXIX' G G G G G 8 G 8 8 G G G 8 G G 8 8 G 8 G 8 G G 8 ' fX3X|.&X:XvX:X:X:XvX:XvX:X:XvX:X:X:X:X:X:X:X:X:X>X&XKX7 8 8 8 8 7 7 8 8 7 7 7 7 8 8 7 9 8 FXkX|.#X>X-X:X-X-X:X-X-X:X+X+X:X-X+X+X:X+X:X-X-X-X-X-X-X:XJXH 7 5 $ o $ 0XA.G.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q..Xz. X 0X1.g.P.T.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.T.5X4 G j.e.S.I.T.T.T.T.E.W.S.j o UXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXw w.Q.Q.Q.Q.Q.oXBXBXBXBXBXCXHXG G G G G G G G G G G 8 G G G 8 G G 8 G 8 G 8 8 8 H HXm.zX$XbXvXvXBX:XvX:X:XvX:X:XvX:XvX:X:X:X:X:X:X:XcXHX8 8 8 7 8 7 8 8 8 8 7 8 7 8 7 8 7 9 ! dX}.$X*X-X-X-X:X-X:X-X-X:X:X+X-X:X:X+X:X+X-X-X-X-X-X-XNXx.5 # H 1XC.P.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.hX4 ! u.q.D.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.T.5X5 X 9X0.C.G.U.T.T.T.T.T.T.9.> UXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUX. $.E.Q.Q.Q.Q.!.vXBXBXBXvXVXIX_ G G G G G G 8 G G 8 G G 8 8 G G 8 G 8 G 8 8 8 8 G 8 FX4X{.$XbX>XvXvXvX:XvXvX:X:X:X:X:X:X:X:X:X:X:X:X:X&XKX8 7 7 8 7 8 8 7 7 7 8 7 8 7 8 7 7 9 8 FX3X|.#X>X-X:X-X:X-X-X-X-X+X:X+X:X+X:X+X-X-X-X-X-X-X>XPX4 o # 4 7 8 9 8 7 4 $ o o O.v.S.U.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q..X[ 7 k.6.C.I.W.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.T.5X5 G j.w.S.P.T.T.T.T.E.T.P.v o UXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXy C.Q.Q.Q.Q.Q.-XBXBXBX:XBXCXHXG G G 8 G 8 G G G 8 G 8 G 8 G 8 8 G G 8 8 G 8 G 8 8 8 ' dXN.zX&X:X:X:X:X:X:X:X:X:XvXvX:X:X:X:XvX:X:X:X>XcXHX8 8 8 8 8 7 7 8 7 8 7 8 8 7 7 7 9 7 7 Y GX{.$X*X>X-X-X-X:X:X-X-X-X+X:X+X:X+X:X-X-X-X-X-XOXxXJ $ G ! X.` U K K K K K U ] O._ G 4 7 <XV.G.T.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.aX4 o 9X1.V.P.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.T.5X4 X x.t.V.G.P.T.T.T.T.T.T.e.q o UXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXO >.W.Q.Q.Q.Q._.BXBXBXBXBXBXIX' G 8 G 8 G G 8 8 G G 8 G 8 G 8 G 8 8 8 8 G 8 8 8 8 8 8 H HXM.}.$X>XvXBX:X:X:XvX:XvX:X:X:X:X:X:X:X:X:X:X>XcXHX7 7 8 7 7 8 7 7 8 8 7 7 7 8 7 8 7 7 7 9 FX3X}.#X=X=X:X-X-X-X:X-X-X-X+X:X+X:X+X-X-X-XOX_.^.rXo X G | ` V 0 = + & & * * * * * * * 3 C ` o.G # o ..d.Z.I.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q..X.. ! u.w.D.U.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.T.5X5 G j.9.S.P.I.T.T.T.T.T.U.$.O UXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXu Z.Q.Q.Q.Q.Q.:XvXBXvXBXBXbXKXG G G G G G 8 G G G 8 G 8 G 8 G 8 8 G G 8 8 8 8 8 G 8 8 8 DX4XkX$X;XvX:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:XcXLXI 8 7 8 8 7 7 8 7 7 7 8 7 7 7 7 7 8 9 9 _ aX{.$X;X-X-X-X-X-X-X-X+X:X:X+X:X+X:X+XOX).Q.Q.6X7 X H O.L 1 + & - : > q e t y y y y t t q q , 3 P O.L # 5 <Xb.G.`.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.6X5 7 k.6.C.U.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.W.T.3XU o X 9X2.g.D.I.U.T.U.T.T.T.V.w X UXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXO ,.Q.Q.Q.Q.Q.oXBXBXBXvXvXBXMX' G G G G 8 G G G 8 8 G G 8 8 G 8 8 8 G 8 8 G 8 G 8 8 8 8 8 ' dXN.|.;X:XvX:XvX:X:X:X:X:X:X:X:X:X:X:X:X-X:X-X*XzXPX| 8 9 8 7 8 7 7 8 7 8 7 7 7 9 7 7 7 9 8 HXN.}.#X=X-X-X-X-X-X-X-X-X-X-X-X-X+X).Q.Q.Q.(.0X 8 X.J = + * > w t y h k x v v #.#.*.@.x z j a y w r Z +.G .t.Z.Y.E.W.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.^.z. X 9X1.g.P.E.Q.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.Q.W.W.W.W.T.H.2X{ # I a.q.Z.P.U.U.U.T.U.T.U.$.. UXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXy Z.Q.Q.Q.Q.!.vXvXBXvXBXvXVXLXH G G 8 G 8 8 G G G 8 8 8 G 8 8 G G 8 8 G 8 8 8 8 8 8 8 8 8 H FXm.zX$X;X:X:XvX:X:X:X:X:X:X:X:X:X:X:X:X:X:X>X;X$XkXfXZX8 7 9 7 9 7 7 7 7 9 7 9 9 7 7 7 7 7 X.hX{.%X*X>X-X-X-X-X-X-X-X-X-X+X_.Q.Q.Q.Q.Q.6X8 # ] W = & * > e y h x #.:.,.6.7.9.q.q.9.9.7.6.,.=.@.z h y t ^ { $ 5 pXw.D.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.lX8 ! u.w.S.U.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.Q.W.W.W.W.T.G.V.a.O.4 $ z.<.g.D.P.U.U.U.U.U.T.V.w o UXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXO :.Q.Q.Q.Q.Q.OXBXvXvXBXvXvXNX9X8 G G 8 8 G 8 G 8 G G G G 8 8 G 8 Y 8 8 8 8 8 8 8 8 G 8 8 8 8 AX4X{.$X;X>X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X-X:X;X$X{.m.iXAXG 7 7 7 8 7 9 7 7 7 7 7 9 7 7 7 7 G HXN.|.%X=X-X-X-X-X-X-X-X-XoX!.Q.Q.Q.Q.Q.(.yXo 8 | 6 + * > e u k #.>.6.q.e.V.Z.Z.D.S.D.D.S.Z.C.g.e.9.6.>.@.j y B O.8 o .t.C.I.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.~.yXX # $ 7 l.6.C.U.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.Q.W.W.W.W.E.W.T.P.C.6.4.x.5 ] u.w.Z.P.P.U.U.T.T.T.U.@.. UXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXe V.Q.Q.Q.Q./.vXvXBXvXvXvXBXLXL G G 8 G G 8 G 8 G 8 8 8 G 8 8 8 _ FXI G 8 8 8 8 8 8 8 8 8 8 8 ' fXN.zX&X>X:X:X:X:X:X:X:X:X:X-X:X-X:X:X-X:X:X>X&X|.N.f.z.FXG 9 7 7 7 7 7 9 7 7 7 7 7 7 7 7 7 qX5X].%X*X-X-X-X-X-X-XOX!.Q.Q.Q.Q.Q.Q.Q.kXV I ] 1 & : q u k #.<.9.V.Z.S.G.P.U.U.U.T.T.T.U.U.I.P.G.S.C.e.7.,.@.k f } I o 9 j.w.G.T.W.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.|.T X ` I X x.,.V.P.T.W.Q.Q.Q.Q.Q.Q.Q.W.Q.W.W.W.W.W.W.W.T.U.S.q.=.M z.7 5 k.6.V.H.P.U.U.U.U.U.U.w., UXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUX@.E.Q.Q.Q.Q.-XvXvXBXvXvXvXNXDXG G 8 G 8 G 8 8 G 8 G 8 8 G 8 8 _ FXc.X.G 8 8 8 8 8 8 8 9 8 8 8 G HXm.}.cX>X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X-X:X-X*X%X}.M.a.k.SXG 9 7 7 7 7 7 7 7 7 7 7 7 7 7 7 I uX'.|.#X=X-X-X-XOX/.Q.Q.Q.Q.Q.Q.Q.Q.~.yXX X ! U + * , t j #.<.q.g.S.G.I.`.E.E.E.W.W.W.W.W.W.W.W.E.E.U.I.H.Z.g.9.,.v h Q _ X X x.0.Z.P.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.aX$ X { J X. E u.q.S.U.W.Q.Q.Q.Q.Q.W.W.W.W.W.W.W.W.W.W.W.E.U.G.C.9.=.l x.7 x.1.q.S.P.U.U.U.U.U.U.P.z UXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUX< w.Q.Q.Q.Q.!.vXvXvXBXvXvXvXMX_ G G 8 8 8 8 G G 8 8 8 8 G 8 8 Y FXI P FX8 8 8 8 8 8 8 8 8 8 9 7 8 SX4X{.$X;X:X:X:X:X:X-X:X:X:X-X:X:X-X-X:X-X:X:X>X&X%X}.M.f.8XAX8 8 7 7 7 7 7 7 7 7 7 7 7 5 7 9 FXm.}.%X*X-X-X).Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.|.L X ` K % * q u z >.9.V.S.P.U.E.E.W.W.Q.Q.Q.Q.Q.Q.W.Q.Q.W.Q.W.W.E.E.U.G.Z.e.6.$.k Q { X H a.w.D.U.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q..X} o { V @ _ 5 7 k.6.Z.I.E.Q.Q.Q.Q.Q.Q.Q.W.W.W.W.E.W.W.E.W.E.T.I.G.V.6.=.c x.5 H p.6.V.D.P.U.I.U.U.U.U.6.* UXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXk P.Q.Q.Q.Q.+XvXvXvXvXvXBXbXLXG 8 8 G 8 G G G 8 G G 8 8 8 G I FXE K Z SXI 8 8 8 8 8 8 8 8 8 8 8 8 ' iXN.|.&X:X:X:X:X:X:X:X:X:X:X-X:X:X-X:X:X-X:X-X=X&X$X}.N.f.yXZX7 7 8 7 7 7 7 7 7 7 7 7 7 7 7 X.hXN. X*XoX!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.aX$ X ] K % : w h @.<.w.Z.G.U.E.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.!.Q.Q.Q.W.E.E.U.H.C.q.>.x D { X $ pX6.Z.U.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.lX7 W K % * C I X 0X1.g.P.E.Q.Q.Q.Q.W.W.W.W.W.W.W.W.W.E.E.E.E.E.T.I.D.V.9.=.M O.$ $ z.,.w.S.P.P.I.U.I.U.U.Z.y UXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXO <.Q.Q.Q.Q.!.:XBXvXvXvXvX:XNXwXG 8 G 8 G 8 8 8 8 8 8 8 8 G G FX~ Z A D pXX.8 8 9 8 8 8 9 8 8 9 7 8 G HXm.}.$X;X>X:X:X:X-X:X-X:X:X:X-X:X:X-X-X:X-X:X-X;X#X%X}.M.f.SX' 7 7 7 7 7 7 7 7 7 7 7 7 7 5 H uXn.}.^.T.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q..XpX _ K & : e j $.6.V.S.I.E.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.U.P.S.e.6.@.Q ` o { i.g.G.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.iXX H W & * q i O.o ! u.q.F.U.W.Q.W.W.Q.W.W.W.W.W.W.T.W.E.W.W.E.E.E.U.U.D.C.9.=.F | X | 4.7.V.G.P.I.I.I.I.U.U.=.. UXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXe V.Q.Q.Q.Q.oXvXvXBXvXvXvXvXMXY 8 G 8 8 8 G 8 G 8 8 8 8 8 8 ZXX.Z R D s.1XFX8 8 8 8 8 8 8 8 8 7 7 8 8 AX4X{.$X;X:X:X:X:X-X-X:X:X:X-X:X-X:X-X:X-X:X-X:X-X>X*X%X}.N.f.DXI 7 7 7 7 7 5 7 7 7 7 7 7 7 7 FXf.b.G.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.kX8 U T % : t j $.9.C.H.U.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.U.H.V.6.$.) W 8 l.9.S.U.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q..X/ 5 | = : e h k k.5 5 k.6.Z.I.E.W.W.Q.W.W.W.E.W.W.E.W.E.W.T.W.E.E.T.T.T.P.G.C.9.=.h.Y G l.,.w.S.P.P.I.I.I.U.U.q.> X UXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXz T.Q.Q.Q.Q.:XBXBX:XvXvXvXbXLXG G 8 G G 8 8 8 8 8 G G 8 8 ' AXK A p.a.2X2XGXI 8 8 8 8 7 8 8 8 8 8 8 8 _ dXN.|.&X>X:X-X:X:X:X:X-X-X:X-X:X-X:X-X:X-X:X:X-X=X=X&X%X}.M.1XDX8 7 7 7 7 7 7 5 7 7 5 7 5 5 T s.9.S.U.W.Q.Q.Q.Q.Q.Q.Q.Q.!.W.iXX G _ & : t k >.q.Z.G.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.U.G.V.7.$.k.H X 0X,.V.Y.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.6X7 X O.2 * e j @.:.a.T X 0X1.V.G.E.W.W.W.W.W.W.W.W.E.W.E.W.E.W.T.T.E.E.E.T.T.P.D.C.7.$.z.7 $ x.$.q.Z.G.P.I.I.I.I.I.D.h UXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUX@ 6.Q.Q.Q.Q.).vXvX:XvX:XvX:XNXZXG 8 G 8 8 G 8 8 G 8 8 8 8 H FXP P D a.m.N.{.jXX.8 9 8 8 7 8 7 7 8 8 7 8 G FXm.}.%X;X-X:X:X:X:X-X-X:X:X:X-X:X-X-X:X-X-X-X-X-X:X=X&X%X}.M.aX+.7 7 5 7 7 7 7 5 7 7 7 4 4 z.<.V.I.E.W.Q.Q.Q.Q.Q.Q.Q.Q. X^ 4 | = : e j >.9.Z.P.U.W.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.U.P.V.7.&.x.5 ! i.w.H.T.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.iXX W V - q h #.6.q.q.9XX W u.q.S.U.E.W.W.W.W.W.W.W.W.E.E.E.E.E.T.W.T.E.T.T.T.U.P.D.V.7.&.x.# .4.6.V.G.P.P.I.I.I.U.U.=.. UXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXe C.Q.Q.Q.Q.-X:XvXvXvXvXvXvXIX_ 8 8 8 8 8 8 8 8 8 8 8 8 8 AX' Z D a.2XkX}.|.kXHX8 8 9 8 8 8 7 8 8 8 7 9 9 AX4X{.$X;X;X-X:X-X-X:X:X-X-X-X:X-X:X-X-X:X-X-X:X-X-X-X=X*X X}.B.DXI 7 7 7 7 7 5 7 7 5 X o x.1.b.G.T.W.Q.Q.Q.Q.Q.Q.Q.Q.6X5 X | 0 : q j =.q.Z.P.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.T.P.V.7.4.O.X 7 k.7.Z.U.E.Q.Q.Q.Q.Q.Q.Q.Q..X/ 7 ] & q h #.7.V.Z.V.<X5 5 k.6.C.P.E.W.E.W.E.W.E.E.W.E.W.E.E.E.E.T.E.T.E.T.T.T.T.P.S.e.<.p.~ G p.,.w.S.G.P.I.P.I.I.I.q.> o UXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXk T.Q.Q.Q.!.:XvXvXvXvXvX:XBXLXG 8 8 8 G 8 8 G 8 8 8 8 8 Y AXZ D h.m.N.zX&X$X|.HXI 7 8 7 7 8 8 8 7 8 8 9 9 _ iXM.|.&X>X-X:X-X:X-X:X-X:X-X:X-X-X:X-X-X:X-X-X-X:X-X-X>X#X|.].2XDX7 7 7 7 7 7 7 4 o T s.9.S.U.W.Q.Q.Q.Q.Q.Q.Q.W.iXX I K * q h $.9.C.P.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.U.G.V.6.s.W X 0X,.V.G.E.W.Q.Q.Q.Q.Q.Q.W.kX8 X X.2 > t x 6.V.H.P.S.M.U X 9X1.e.G.U.E.W.W.E.W.E.E.E.E.E.E.W.T.T.T.T.T.T.T.T.T.U.U.P.S.q.,.z.5 $ z.#.q.C.G.P.P.P.P.I.I.S.u UXUXUXUXUXUX",
|
||||||
|
"UXUXUXUX. ,.Q.Q.Q.Q.oXvXvXvXvX:XvXvXnXDX8 8 G 8 8 8 8 8 8 8 8 8 G DXE A D f.3X}.$X&X;X$XmXX.8 8 8 8 8 7 7 8 8 7 7 9 V HXm.}.$X;X:X:X:X-X-X-X:X-X:X-X:X-X-X:X-X-X-X-X-X-X-X-X-X=X#X|.{.iX` 5 7 5 5 5 # 5 k.<.C.I.E.Q.Q.Q.Q.Q.Q.Q..X[ 5 ` * , y @.6.C.G.E.W.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.U.D.V.<.z.7 ] u.w.S.T.W.Q.Q.Q.Q.Q.Q.W.aX$ G P : e k 1.e.H.U.T.I.A.0Xo E u.q.S.I.E.W.E.W.E.W.E.E.E.E.E.T.T.T.W.T.T.T.T.T.T.U.U.I.G.C.q.5. .o x.*.6.V.S.G.P.P.P.P.P.U.#.X UXUXUXUXUXUX",
|
||||||
|
"UXUXUXUX> e.Q.Q.Q.Q.-XvXBX:XvX:XvX:XMX' G 8 G 8 8 8 8 8 8 8 8 8 | +.P D s.7X{.$X;X>X>X$XzXFX8 7 8 8 7 8 8 7 8 7 8 7 9 AX4X{.$X;X>X-X-X:X:X-X:X-X-X-X-X-X-X-X-X:X-X-X-X-X-X-X-X=X*X%X}.M.HX8 7 7 4 X X 9X>.b.G.T.Q.Q.Q.Q.Q.Q.W.kXV o | 0 : t x 6.V.G.E.W.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.U.S.e.5.x.X G h.6.C.U.E.Q.Q.Q.Q.Q.Q.~.0X # .; q h $.q.S.I.E.E.T.S.<X5 5 k.6.V.I.T.E.W.E.E.E.E.E.E.E.E.W.T.T.T.T.T.T.T.T.T.U.U.I.P.S.V.6.k.V U F ,.w.S.G.P.P.P.P.I.I.6.& UXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXy G.Q.Q.Q.!.vXvX:XvXvXvXvXvXLXI 8 8 8 8 8 8 8 8 8 8 8 J DXP A p.2X{.$X&X>X:X:X;X|.PXI 8 7 7 8 7 7 8 7 8 7 9 9 ! iXM.|.&X=X-X:X-X:X-X-X-X:X:X-X-X-X-X-X-X-X-X-X-X-X-X-X-X=X*X X{.aX| 5 $ | -.q.H.U.W.Q.Q.Q.Q.Q.W.aX# G T * e j >.w.S.U.E.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.~.I.S.q.l.H # z.,.V.P.E.Q.Q.Q.Q.Q.Q.|.U Y V : t x 6.V.P.E.W.Q.E.G.M.U X x.>.e.D.T.E.E.E.W.E.E.E.E.E.E.T.T.T.T.T.T.T.U.U.U.T.U.U.U.P.S.r.8.x.X 9 ) $.9.C.G.G.P.P.P.P.I.g.w o UXUXUXUXUX",
|
||||||
|
"UXUXUXUXx E.Q.Q.Q.).BXvXvXvXvX:X:XbXKXG 8 8 8 8 8 8 8 8 8 8 8 X.[ A D j.N.}.$X>XvX:X-X;X$XmXX.9 9 9 7 8 7 8 7 7 8 7 7 G FXm.}.%X;X-X-X:X-X-X:X-X-X-X-X-X-X-X:X-X-X-X-X-X-X-X-X-X-X@X#X|.N.DX$ H p.6.Z.U.E.Q.Q.Q.Q.Q.`.0X X o.; > f #.b.Z.I.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.E.G.C.0.0X# O.;.w.H.T.W.Q.Q.Q.Q.W.6X5 $ | * q j :.e.G.T.W.Q.Q.E.P.A.0XX W u.9.S.I.T.W.T.E.E.E.E.E.T.E.T.T.T.T.T.T.T.U.U.U.U.U.U.I.I.G.g.q.l.J # z.@.6.V.S.P.P.G.P.P.P.G.a UXUXUXUXUX",
|
||||||
|
"UXUXUXo ,.Q.Q.Q.Q.+XvX:XvX:X:XvX:XCXSX8 8 8 8 8 8 8 8 8 8 8 G FXP D p.m.{.$X;X>X:X:X:X;X#XzXHX9 7 9 8 7 8 7 7 8 7 8 8 7 AX4XN.$X&X-X:X-X:X-X-X-X-X-X:X-X-X-X-X-X-X-X-X-X-X+X-X-X-X-X*X%XL.1XK 5 k.1.V.P.E.Q.Q.Q.Q.W.|.P L K : t v <.b.P.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.T.D.V.a.U T u.7.Z.U.W.Q.Q.Q.Q.E.aX# I V > u #.9.Z.U.T.Q.Q.Q.W.T.D.<X5 5 k.6.g.P.T.E.E.E.E.T.E.T.T.T.T.T.T.U.T.U.U.T.T.U.U.U.I.U.I.P.S.g.8.c.X O.M ,.e.Z.D.G.P.P.G.P.P.#.o UXUXUXUXUX",
|
||||||
|
"UXUXUX* w.Q.Q.Q.Q.:X:XvXvX:XvX:XvXMX' 8 8 8 8 8 8 8 8 8 8 9 ' +.A D f.N.|.&X>X:X:X:X:X:X&X|.GXL 8 7 8 8 7 7 7 8 7 7 7 9 _ iXM.|.#X-X-X:X-X-X-X-X:X-X-X-X-X-X-X-X-X-X+X-X-X-X-X-X-X-X=X^.S.r.0XX X x.$.w.H.E.W.Q.Q.Q.Q.6X7 # o.; w h :.b.S.U.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.U.S.0.pX$ 7 k.>.C.P.E.Q.Q.Q.Q.`.rX # .: e k ,.g.G.T.W.Q.Q.Q.W.E.G.M.U X x.:.w.D.I.T.E.E.E.E.E.T.T.T.T.T.U.T.U.T.U.U.U.U.U.U.U.U.U.I.G.C.q.j.8 U F :.q.C.G.G.P.G.P.P.P.6.% UXUXUXUXUX",
|
||||||
|
"UXUXUXe Z.Q.Q.Q./.:XBX:X:XvX:XvXvXIXI 8 8 8 8 8 8 8 8 7 8 G FXP R s.m.kX$X;XvX:X:X:X:X=X;X$XmXX.7 9 7 7 8 8 7 7 9 7 7 7 8 HXm.}.%X*X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X+X-X+X+X/.E.P.V.1XG .-.9.S.U.W.Q.Q.Q.Q.aX# J K : f v 7.Z.I.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.G.V.f.I # z.=.w.G.T.W.Q.Q.W..X^ H K > u #.q.Z.U.W.Q.Q.Q.Q.W.W.U.A.0Xo T s.9.Z.I.T.E.T.T.E.T.E.T.T.T.T.T.T.T.U.U.U.U.U.U.U.I.U.I.I.P.D.g.8.O. 8 Q #.9.g.S.G.G.G.G.P.P.9.> X UXUXUXUX",
|
||||||
|
"UXUXUXh P.Q.Q.Q.).vX:XvX:XvXvX:X>XLX8 8 8 8 8 8 8 9 9 8 9 ' +.Z D f.N.|.;X>X:X-X:X-X:X+X>X&XzXHX8 7 7 9 7 7 8 7 9 7 7 7 7 wX4X{.$X#X-X-X-X-X-X-X-X-X-X-X-X-X-X+X-X-X-X+X-X-X-X-XOX!.Q.W.T.D.y.x. Y u.,.C.I.E.Q.Q.Q.`.rX o X.< w k >.b.G.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.T.D.w.0XX O.-.9.S.U.W.Q.Q.W.kX8 X o.< e z ,.V.P.E.W.Q.Q.Q.Q.Q.W.U.D.<X7 5 k.,.g.P.T.T.E.T.T.T.T.T.T.T.U.T.U.T.U.U.U.U.U.I.U.I.U.I.I.I.G.Z.w.k.5 4 ) @.6.g.S.D.G.G.G.P.P.C.e o UXUXUXUX",
|
||||||
|
"UXUXUXv E.Q.Q.Q.-X:XvX:XvX:X:XvXnXGX8 8 8 8 8 8 8 8 8 9 8 AXR R s.m.}.cX;X-X:X:X:X:X:X:X-X&X|.fXI 7 8 7 7 7 7 7 7 9 7 9 7 W iXM.}.#X>X-X-X:X-X-X-X-X-X-X-X-X-X-X-X+X-X-X-X-X-XoX!.Q.Q.W.E.P.V.8X4 V p.>.V.P.E.Q.Q.W..X( 9 U > y #.9.Z.I.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.I.V.1XJ Y u.6.Z.U.W.Q.Q.W.hX4 8 P > u *.q.Z.U.W.!.Q.Q.Q.Q.Q.Q.T.P.M.U X x.1.w.S.I.T.T.T.T.T.T.U.T.T.U.U.T.U.U.U.U.I.U.U.I.U.I.I.I.I.G.S.g.f.! X x.k ,.w.Z.S.P.G.G.G.G.D.h UXUXUXUX",
|
||||||
|
"UXUX >.Q.Q.Q.Q.:XvX:XvX:X:X:X:XnXAX8 8 8 8 8 7 8 7 8 9 I AXA D 1XN.|.#X>X-X:X:X-X:X:X:X-X;X$XmXX.7 8 7 7 7 9 7 7 7 7 7 7 8 HXm.}.%X*X-X-X-X-X-X-X-X-X+X-X-X-X-X-X-X+X+X-X-X).Q.Q.Q.Q.Q.W.U.S.B.I 4 } $.e.G.E.W.Q.Q.zXG ' 3 w j >.b.G.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.`.D.v.9Xo G h.,.C.P.E.W.Q.W.iXX { 3 q k ,.V.P.T.W.Q.Q.Q.Q.Q.Q.Q.T.I.C.eXo U u.7.C.P.T.T.T.T.T.T.T.T.U.U.U.U.U.U.I.U.I.U.I.I.I.I.I.I.I.P.D.g.9.eXX | M =.q.C.S.G.G.G.G.P.P.n UXUXUXUX",
|
||||||
|
"UXUXO 7.Q.Q.Q.!.:X:XvX:X:XvXvX:XNX' 8 8 8 9 9 8 8 8 9 8 X.} A h.m.{.$X;X:X:X-X:X:X:X+X:X:X;X#XzXFX8 7 7 9 9 7 7 7 7 9 7 7 7 wX4X{. X&X-X-X-X-X-X-X-X-X+X-X-X-X+X+X-X-X-X+X_.Q.Q.Q.Q.Q.!.W.E.G.A.0Xo X x.@.9.H.T.W.Q.Q.5X4 $ | > y v 9.Z.U.W.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.P.V.8X4 4 ) =.e.H.E.W.W.`.rX # | : y #.9.Z.I.W.Q.Q.Q.Q.Q.Q.Q.W.W.U.S.<X5 5 k.,.g.G.U.T.T.T.T.T.U.U.T.U.U.U.U.I.U.U.U.I.U.I.I.I.I.P.I.P.G.S.e.j.7 T S #.9.g.S.D.G.D.G.G.G.=.. UXUXUXUX",
|
||||||
|
"UXUX- w.Q.Q.Q._.:XvX:X:X:XvX:X:XJXY 8 8 8 8 8 7 7 8 8 8 FXP D a.M.|.$X;X:X:X:X:X:X-X:X:X-X>X*X|.GXI 9 7 7 7 9 7 7 7 7 7 7 7 Y iXM.|.#X>X-X-X-X-X+X-X-X-X-X-X+X-X-X+X-XOX_.Q.Q.Q.Q.Q.Q.Q.Q.W.U.S.<X5 +.m 7.Z.I.W.Q.E.iX# G C w j >.b.G.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.U.D.m.T X x.#.q.S.E.W.Q..X/ V K , j =.g.G.T.Q.Q.Q.Q.Q.Q.Q.W.W.W.T.G.M.W o x.:.w.Z.U.U.T.T.U.T.U.U.U.U.U.U.U.U.I.U.I.I.I.I.I.I.I.I.I.P.G.S.C.d.~ G D v 6.g.Z.G.G.D.G.G.G.6.% UXUXUXUX",
|
||||||
|
"UXUXq V.Q.Q.Q.).:X:X:X:X:XvX:X>XJXG 8 8 8 7 8 8 7 8 7 I ZXR D m.{.$X;X:X-X:X:X:X-X:X-X-X:X=X;X$XmXX.7 7 7 7 7 7 7 7 7 7 7 7 8 HXB.{.%X*X-X-X-X-X-X-X-X+X+X-X-X-X-X-X+X!.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.T.D.M.E ] M 6.C.I.E.Q.~.yX | 2 t x 7.Z.P.W.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.P.b.0Xo x.*.7.S.U.E.W.|.J | 3 t x 7.Z.U.E.W.Q.Q.Q.Q.Q.Q.Q.W.W.T.P.A.0XX T p.6.C.P.U.T.U.U.U.T.U.U.U.U.I.U.I.U.I.I.I.I.I.I.I.I.I.P.I.P.D.C.q.rXX 5 ) x <.w.Z.S.D.D.D.G.G.7.- UXUXUX",
|
||||||
|
"UXUXt S.Q.Q.Q.OX:X:XvX:X:X:X:X>XLXG 8 7 7 8 7 8 8 8 7 X.} R s.M.}.#X;X:X:X-X:X-X:X-X:X-X-X-X=X#X}.HX9 7 7 7 7 7 7 7 7 7 7 5 7 qX4X{. X*X-X+X-X-X-X-X-X+X+X-X-X+X+XOX!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.U.A.0Xo L D >.V.P.E.W.^.z. $ ] , h $.q.D.T.W.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.U.S.<X4 ` M <.C.I.W.E.lX7 $ { , h $.w.D.U.W.Q.Q.Q.Q.Q.Q.W.Q.W.W.E.U.S.<X5 5 k.,.g.D.U.U.U.T.U.U.U.U.U.U.U.U.I.I.I.I.I.I.I.I.I.P.P.P.P.P.G.Z.e.<X7 $ ..k ,.q.C.S.D.D.D.G.G.q.> X UXUXUX",
|
||||||
|
"UXUXy D.Q.Q.Q.-X:XvX:X:X:X:X:XnXHX8 8 7 8 8 8 8 8 7 8 FXR D a.N.|.&X>X:X-X:X-X:X-X:X-X:X-X:X>X*X|.GXI 7 7 7 7 7 7 7 7 7 7 7 7 Y iXn.}.#X*X-X-X+X-X+X-X-X-X-X+X-XoXQ.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.U.H.<X4 9 Q :.e.G.E.W. X^ H C w k ,.V.I.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.T.G.M.U L D 1.V.P.~.E.5X4 8 P w k ,.V.P.E.Q.Q.Q.Q.W.Q.W.W.W.W.W.E.T.D.n.E X x.$.q.Z.P.U.U.U.U.U.U.U.U.I.U.I.U.I.I.I.I.P.I.P.P.I.P.P.P.P.G.S.C.d.^ X x.h $.9.C.S.D.D.D.G.P.e.w o UXUXUX",
|
||||||
|
"UXUXh P.Q.Q.Q.:XvX:X:X:X:X:X>XnXeX8 8 9 8 7 8 7 7 8 H SXA p.m.{.$X;X=X-X:X-X:X-X:X:X-X:X-X-X:X*X$XmXX.7 7 7 7 7 7 5 7 7 7 5 7 8 DXB.{..X*X+X-X-X-X-X-X+X+X-X-XoXQ.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.G.M.H 5 ) #.q.G.T.E.zXJ X.3 y v 0.Z.I.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.I.A.0X 8 Q =.e.P.T.E.aX# W s y x 7.Z.U.W.W.W.Q.W.W.Q.W.W.W.W.W.E.T.P.V.eXo U p.6.C.G.U.U.U.U.U.U.U.U.I.U.U.I.I.I.I.I.I.P.P.P.P.P.P.P.G.P.H.C.r.0X o.l #.9.g.Z.S.D.D.D.G.V.e UXUXUX",
|
||||||
|
"UXUXk U.Q.Q.Q.:X:X:X:X:X:X:X=XNXO.9 8 9 8 7 7 8 9 8 Y x.A a.M.}.&X;X-X:X-X:X-X:X-X-X-X-X:X-X-X>X%X}.HX7 7 7 5 7 7 7 7 7 7 7 7 7 qX4XN. X*X-X+X-X-X+X-X+X-X+XoXQ.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.U.'.[ $ } @.9.S.U.E.3X7 # ., h =.e.D.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.T.H.yX$ 5 ) #.q.D.T.T.uX +., f $.w.G.U.W.Q.Q.Q.Q.W.W.W.W.E.W.W.E.T.P.S.<X7 5 k.>.e.D.P.U.U.U.U.U.I.U.I.I.I.I.I.I.I.P.I.P.P.P.P.P.P.G.P.P.G.S.e.pX$ ` N @.6.g.Z.S.S.D.D.D.Z.y o UXUXUX",
|
||||||
|
"UXUXx E.Q.Q.!.:XvX:X:X:X:X:X>XNX' 7 9 9 8 8 8 7 7 8 X.} D a.N.|.#X-X-X:X:X-X:X-X-X:X-X:X-X-X-X=X&X|.gXL 7 7 7 7 7 5 7 5 7 7 5 5 Y iXn.|.#X*X+X+X+X-X+X-X+X).Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.T.S.rXo # o.x 6.Z.U.T.aX$ 5 E w k <.C.I.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.G.2X9 $ } @.9.S.U.`.0X $ [ q j ,.V.P.~.Q.W.Q.Q.W.W.W.W.W.W.W.W.W.T.U.D.n.! o x.&.q.Z.P.I.U.U.P.U.U.I.I.I.I.I.I.I.P.I.P.P.P.P.P.P.P.P.G.G.G.S.V.1X8 Y S n 6.w.Z.S.D.D.D.D.Z.y o UXUXUX",
|
||||||
|
"UXUXz E.Q.Q./.:X:X:X:X:X:X:X>XMXY 9 9 9 7 8 7 7 8 7 SXQ D f.{.$X;X:X-X-X:X-X-X:X-X-X-X-X:X-X-X-X*X%XmXX.7 5 7 7 7 7 7 7 5 7 7 7 8 FXm.].%X@X-X+X-X+X-X+X).Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.G.8X4 9Xx 6.C.I.U.aX# I B t v 7.S.U.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.I.'.E X x.x 7.Z.U.R... 8 P t x 7.Z.U.E.Q.W.W.Q.W.W.W.W.W.W.E.T.W.E.T.G.g.0XX T u.6.g.G.P.I.U.I.U.I.I.U.I.I.I.I.I.I.P.P.P.P.P.G.P.G.G.P.G.G.S.C.B.E H A x ,.w.C.S.S.S.D.D.F.u UXUXUX",
|
||||||
|
"UXUXx W.Q.Q./.:X:X:X:X-X:X:XvXjXI 8 7 8 7 7 8 7 8 G DXA p.m.}.%X=X=X:X:X-X:X-X:X-X:X-X-X+X-X-X-X=X#X}.HX7 7 7 7 7 7 7 7 5 7 7 5 5 9X4X'. X,X=X-X+X+X+X).Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.I.7XG .c ,.V.P.U.iXX | p u =.q.G.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.T.F.0X qXz 6.C.P.[.^ U s u #.q.D.T.W.W.W.W.W.W.W.W.W.W.W.E.E.E.W.T.P.S.<X5 5 ) ,.e.S.P.P.P.U.U.I.U.I.I.I.I.I.P.P.P.P.P.P.G.P.P.P.P.G.G.G.D.C.r.9X 8 R z ,.q.C.S.S.S.S.S.S.a UXUXUX",
|
||||||
|
"UXUXx W.Q.Q._.:X:X:X:X:X:X:X;XJXH 7 8 7 8 8 7 8 7 I qXD a.M.|.#X>X:X-X-X-X-X-X:X-X-X-X-X:X-X-X:X=X*X|.GXI 7 5 7 5 7 5 5 7 5 7 7 7 U iXB.|.#X@X+X+X+X).Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.U.].E ` S >.g.G.U.tX X .q j ,.V.P.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.T.H.yX# .c ,.V.P.}.P | p h =.e.G.T.W.W.Q.W.W.W.W.W.E.W.E.E.E.E.E.T.I.S.B.! o x.&.9.Z.P.U.U.U.P.I.P.P.I.P.P.P.P.P.P.P.P.P.P.G.G.G.G.G.G.G.D.S.e.rXX 5 ( j =.q.V.Z.S.S.S.G.S.a X UXUXUX",
|
||||||
|
"UXUXv Q.Q.Q.).:X:X:X:X:X:X-X>XPXG 7 7 8 7 7 8 7 7 _ X.D a.N.|.&X=X-X:X-X-X-X-X-X-X-X-X-X:X+X:X+X-X*X%XlXX.7 5 7 7 5 7 7 7 5 7 5 5 8 HXm.]..X@X-X+XoXQ.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.T.L... Y S =.e.H.Y.pX 4 ] e x 6.C.I.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.P.4X4 ` N 1.V.G.{.G +.w k ,.C.P.T.W.W.W.W.W.E.E.W.E.E.E.W.E.E.W.T.U.G.g.0XX U p.6.V.H.P.U.I.P.I.I.I.P.I.P.P.P.P.P.P.G.G.P.G.P.G.G.G.G.G.G.S.g.8X$ 4 ) h =.9.V.Z.S.S.S.D.S.l UXUXUX",
|
||||||
|
"UXUXv Q.Q.Q._.:X:X-X:X:X:X:X;XLX8 7 8 7 8 7 7 7 7 X...D m.{.$X*X:X-X-X-X-X:X-X-X-X-X:X-X+X:X+X:X-X*X%X}.HX7 7 7 7 7 5 7 5 7 5 7 7 5 c.4X'.|.*X*X).Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.H.eX T S =.w.G.K.z. 7 E t @.0.S.U.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.U.7X8 W S >.w.G.kX8 # | e x 6.Z.I.E.W.W.W.W.W.W.W.E.W.E.E.E.E.E.T.E.T.P.C.<X7 4 k.>.w.Z.G.I.P.U.I.I.I.I.P.P.P.P.P.G.P.P.P.G.P.G.G.G.G.G.G.D.S.V.1X7 $ [ h #.9.g.Z.S.S.S.D.F.a UXUXUX",
|
||||||
|
"UXUXv Q.Q.Q.).:X:X:X:X:X:X-X;XKX8 7 8 7 7 8 7 8 7 c.) p.m.{.$X*X-X-X-X-X-X-X-X-X-X-X-X-X-X-X:X+X-X=X#X|.gXI 5 5 5 7 5 7 5 7 5 5 5 5 I iXn.}..X).Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.P.rXX H A #.q.D.[.^ J P y $.w.G.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.U.{.H T S $.w.S.7X7 4 ! y @.9.Z.U.E.W.W.W.W.W.W.E.W.E.E.E.E.E.E.T.E.T.I.S.B.! o x.#.9.C.G.P.U.P.I.P.P.P.P.P.P.P.P.P.G.G.G.P.G.G.G.G.D.G.G.S.S.C.m.G # | a *.7.g.C.S.Z.S.D.S.j o UXUXUX",
|
||||||
|
"UXUXv Q.Q.Q.oX:X:X:X:X-X:X-XbXHX7 8 7 7 7 7 7 7 9 SXQ s.B.}.#X*X:X-X:X-X-X-X:X-X-X-X-X-X-X-X+X-X-X-X*X.XlXo.7 7 7 5 7 5 7 5 5 7 5 7 9 FXm.{.R.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.I.4X4 G D @.q.S.].E I B h >.V.P.T.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.].^ H D #.q.S.5X5 8 R u #.w.D.T.E.W.W.W.E.E.E.E.E.W.E.E.E.E.E.E.T.T.U.G.g.rXX I p.6.g.S.P.I.P.I.P.I.P.P.P.P.P.P.G.G.P.G.G.G.G.G.G.G.D.G.G.S.C.B.E X .u @.6.e.C.Z.Z.S.S.S.a o UXUXUX",
|
||||||
|
"UXUXv Q.Q.Q.).:X:X:X:X-X:X-XcXHX7 7 7 7 7 7 7 8 7 FXA s.M.|.#X=X-X-X:X-X-X-X-X-X-X-X-X-X-X-X+X-X-X-X=X#X}.HX7 7 7 5 5 7 5 7 5 7 5 5 7 c.4Xv.D.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.U.5X5 8 Q x 7.S.{.P ' g k ,.V.P.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.K.z. G D v q.Z.4X4 J A a =.e.G.T.E.E.W.E.W.E.E.E.E.E.E.E.E.T.E.T.T.T.U.P.Z.j.7 5 k.:.w.S.G.P.I.P.P.P.P.P.P.P.G.P.G.G.P.G.G.G.G.G.D.D.D.D.S.S.Z.v.[ o +.y @.6.w.C.Z.S.S.S.S.a UXUXUX",
|
||||||
|
"UXUXv W.Q.Q.).:X-X-X:X:X:X-XcXDX7 8 7 8 8 7 7 7 8 FXD a.M.|.#X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X=X,X|.fXH 7 5 5 7 5 5 7 5 5 7 7 5 I 8X6.Z.I.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.T.3X8 7 Q x 7.Z.{.P O.r z 6.C.I.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.H.rX 9 Q n 7.C.8X4 I B j =.g.G.T.E.W.W.W.E.W.E.W.E.E.E.T.E.E.T.T.T.T.T.P.S.B.] o c.&.7.V.D.P.P.P.P.P.P.G.P.G.P.G.P.G.G.G.G.D.G.G.D.G.D.S.G.S.C.v.z. 9Xt x ,.w.V.Z.Z.Z.S.F.f X UXUXUX",
|
||||||
|
"UXUXv W.Q.Q.oX:X:X-X:X-X:X-XcXSX7 9 7 7 7 7 7 7 8 FXF a.N.|.*X=X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-XOX-X-X*X XlXO.7 7 5 5 5 7 5 7 5 5 5 5 5 0X1.V.P.E.W.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.kXG 5 Q x 7.C.{.H +.t v 7.Z.U.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.I.tX 8 R v 7.C.<X$ T B j ,.g.P.T.E.E.W.E.E.E.E.E.E.E.T.E.T.E.T.T.T.T.U.U.D.e.rXX I p.<.e.S.G.P.P.G.P.P.P.G.P.G.G.G.P.G.G.G.G.G.D.D.D.D.D.D.S.S.b.9X c.t x ,.w.C.Z.Z.Z.S.S.a o UXUXUX",
|
||||||
|
"UXUXv W.Q.Q.).-X:X-X-X:X-X-XnXtX7 7 9 9 7 7 7 7 G SXD a.{. X;X-X-X-X-X-X-X-X-X-X+X-X-X+X+X-X+X+X-X-XOX=X#X}.DX7 5 5 7 5 7 5 5 5 5 5 5 ! u.w.S.U.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.{.J 5 ^ x 6.V.{.G qXy @.9.D.U.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.I.tXo 7 Q x 7.C.8X$ ! B z <.C.P.T.W.W.E.E.W.E.E.E.E.E.E.E.T.T.T.T.T.T.T.U.G.C.<X7 5 k.:.q.Z.G.P.P.P.P.G.G.P.G.P.G.G.G.G.G.D.D.D.D.D.D.D.D.S.S.Z.V.0X +.y z ,.w.g.Z.Z.Z.S.S.a UXUXUX",
|
||||||
|
"UX v !.Q.Q.oX-X-X:X-X:X:X>XnXtX7 9 7 7 7 9 7 7 G SXD m.{. X*X-X-X-X-X+X-X-X-X-X:X+X-X-X-X-X+X-XOXOX-X=X,X XsXI 5 7 5 7 5 5 5 5 7 5 7 k.6.Z.I.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.{.L 5 ^ z 6.V.kXG o O.y #.q.D.T.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.U.iXX 7 Q k 6.V.8X# ~ g x 6.Z.P.T.W.E.E.E.E.E.E.E.T.E.T.T.T.T.T.T.U.U.U.U.G.S.B.~ x.%.7.V.S.G.P.P.P.P.P.P.G.G.G.G.G.G.D.G.G.D.D.D.D.D.S.S.S.Z.V.tX o.i z >.w.g.Z.Z.Z.Z.S.f o UXUXUX",
|
||||||
|
"UXo v W.Q.Q.).:X:X:X-X-X-X>XnXwX7 7 7 7 7 7 7 7 H AXD B.{.%X*X-X-X-X-X+X-X-X-X+X-X+X+X-X-X+X+X:X-X-X-XOX*X%XlXo.5 7 5 5 5 5 7 5 5 X o pX1.e.P.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.}.U 5 ( x 6.g.N.8 X o.u $.w.G.T.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.T.8X# 5 ( x <.V.8X# ` g x 6.Z.I.T.E.E.W.E.E.E.E.E.T.E.T.T.T.T.T.T.T.T.U.T.P.D.e.0XX I p.,.e.S.G.P.G.G.P.G.G.G.G.G.D.G.D.G.D.D.D.D.D.S.D.S.S.S.S.e.rXX o.i z =.9.g.C.Z.Z.S.F.f UXUXUX",
|
||||||
|
"UXo v Q.Q.Q.).:X:X-X-X:X-X*XnXwX7 7 7 7 7 7 7 7 I 0XD m.{..X=X=X-X-X-X-X-X+X+X-X+X-X+X-X+X-X+X+X+X+X+X-X@X.X}.HX7 5 5 5 5 5 5 5 # ! u.q.D.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.[.E 5 ^ k <.V.3X8 # .u $.w.G.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.U.aX# 5 ( k <.g.8X# { g v 7.Z.I.E.E.E.E.E.E.E.E.T.T.T.T.T.T.U.T.U.U.U.U.U.P.G.V.<X7 5 k.:.q.C.D.P.G.P.G.G.G.G.G.G.G.D.G.D.D.D.S.D.D.S.S.D.S.S.Z.V.rXX o.i k >.9.V.Z.Z.Z.Z.S.a UXUXUX",
|
||||||
|
"UX v W.Q.Q.).-X-X:X:X-X-X;XnXeX7 7 7 7 7 7 7 7 J wXp.m.{.#X>X=X+X-X-X-X-X-X-X-X-X-X-X+X+X+X-X+X+X+X+X+X-X,X XfXI 5 5 5 5 5 5 $ 7 k.6.Z.I.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.[.E 4 ( k ,.e.N.8 X .h $.e.G.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.8X# 5 Q x 6.e.8X# { g v 7.Z.I.T.E.E.E.E.E.E.E.T.T.T.T.T.T.T.T.U.T.U.T.U.P.P.Z.d.~ x.%.7.g.S.G.G.G.G.G.G.G.G.G.D.D.D.D.D.D.D.S.D.S.S.S.S.S.Z.V.rXX X.i k >.9.g.C.C.Z.Z.S.u o UXUXUX",
|
||||||
|
"UX v W.Q.Q.oX-X:X-X:X-X-X>XzXAX7 7 7 7 7 7 7 7 G AXp.B.}.%X*X+X-X-X-X-X-X+X-X+X+X-X+X-X+X:X-X+X-X+X-X+X+X@X%XlXo.5 5 5 5 5 $ X pX1.V.G.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.}.P 5 ( k ,.V.3X8 X +.h =.e.P.T.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.U.iX# 7 E k <.V.8X# ] N @.9.Z.U.T.E.E.E.E.E.T.E.T.T.T.U.U.T.T.U.U.U.U.U.U.U.P.S.e.rXX L p.,.w.S.G.G.G.G.G.G.G.D.D.G.G.S.D.D.D.D.D.S.S.S.S.S.S.Z.V.tX O.r j =.9.g.C.C.C.Z.Z.a UXUXUX",
|
||||||
|
"UX v Q.Q.Q.oX-X-X:X+X:X-X*XnXSX7 7 7 7 7 7 7 7 G SXp.B.].%X>X+X-X+X-X-X-X-X-X+X-X+X-X+X-X+X+X+X-X+X+X+X+X@X#X}.HX7 5 5 5 4 ! u.q.D.U.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.}.K 5 ^ k <.e.N.G c.h >.e.G.T.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.yXX 7 Q k <.e.8X$ ! B @.7.S.P.T.E.E.E.T.T.T.T.T.T.T.T.T.U.U.T.U.U.U.U.U.U.I.D.V.<X7 5 ) =.9.C.S.G.G.G.G.G.D.G.D.G.D.D.D.D.S.S.S.S.S.S.S.S.S.Z.V.rX O.r k =.q.g.C.C.Z.Z.S.a o UXUXUX",
|
||||||
|
"UX n Q.Q.Q.oX-X:X-X-X-X-X=XcXSX7 7 7 7 7 7 7 7 8 DXp.f.}.%X*X-X-X-X-X-X-X+X+X-X+X+X:X+X+X+X-X+X+X-X+X+X+XOXXX XfXI 5 5 5 o 7 k.6.C.I.E.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.}.G 5 ( j <.e.{.G c.h =.e.P.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.uXo 8 R k ,.e.8X$ Y B @.7.S.U.T.E.E.T.T.T.T.T.T.T.T.T.U.U.U.U.U.U.U.U.I.U.P.G.g.y./ o x.%.6.e.S.D.G.G.G.D.D.D.G.D.S.D.S.D.S.D.S.S.S.S.S.S.Z.Z.V.0X +.t j =.9.g.C.C.C.Z.Z.f UXUXUX",
|
||||||
|
"UXo v Q.Q.Q.).-X-X-X-X-X:X=XcXSX7 7 5 7 5 7 7 7 7 FXp.B.].%XOX-X-XOX-XOX-X+X-X+X+X-X+X+X+X-X+X+X+X+X+X+X+X-X,X%XlXO.5 5 X o 9X1.e.P.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.kX8 7 Q k ,.g.N.J +.h =.e.P.~.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.U.yX 8 Q z ,.e.<X$ T S v 7.Z.P.T.E.T.E.T.T.T.T.T.T.U.U.T.U.U.U.U.U.U.U.U.I.I.P.F.g.x.X L p.,.w.Z.S.G.G.D.D.G.D.S.D.G.S.D.S.S.S.S.S.S.S.Z.S.Z.Z.A.x. qXr k =.q.g.g.C.C.Z.Z.f o UXUXUX",
|
||||||
|
"UX v W.Q.Q.).-X:X-X-X:X-X>XcXSX7 7 7 7 7 5 7 7 7 FXF m.].#X*X-X-X+X-X+X+X-X+X+X+X+X-X-X-X+X+X+X+X+X+X+X+XOX@X.X}.HX5 # ! u.w.S.U.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.3X7 9 R k ,.g.{.L | N =.e.G.T.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.`.0X 8 A k <.g.8X4 K S v 7.Z.P.U.E.T.T.T.T.T.T.T.U.U.U.U.U.U.U.U.U.P.U.I.U.U.P.D.g.4X9 4 } $.9.C.S.D.G.G.G.D.G.D.S.S.S.S.S.S.S.S.S.S.S.Z.S.S.C.v.z. 9Xq j =.9.g.g.g.Z.Z.Z.f UXUXUX",
|
||||||
|
"UX n W.Q.W.).-X-X-X-X-X-X=X$XHX5 7 7 7 7 7 7 5 7 SXp.m.{.%X@X=X+X-X+X-X-X+X+X+X-X+X+X+X+X+X+X+X+X+X+X+X+X+XOX,X XgXG 5 l.7.Z.U.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.6X5 G A k <.e.'.E W S =.w.G.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.R.z. J A z ,.e.4X4 8 Q x 6.Z.P.U.T.T.T.T.T.T.T.U.T.U.U.U.U.U.U.U.U.P.U.U.P.U.P.G.g.d.~ +.%.6.e.Z.D.D.D.S.D.S.S.G.S.D.S.S.S.S.S.S.Z.Z.S.Z.Z.C.n.` X O.e k =.9.g.g.C.C.Z.Z.h UXUXUX",
|
||||||
|
"UXo n Q.Q.Q.).-X-X-X-X-X-X=X&XKX7 5 7 5 5 7 7 7 5 ZXh.f.{..X*XOX-X+X-X+X+X-X+X-X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X,X XkXE X 0X1.g.P.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.8X$ J A k <.V.'.^ H D $.w.G.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W. X^ I Z x 6.g.2X7 5 ) x 6.C.P.U.T.T.T.U.T.U.T.U.U.U.U.U.I.U.I.U.P.U.P.U.P.P.P.G.S.w.rXX L p.>.q.Z.S.D.D.D.S.G.D.D.S.S.S.S.S.S.S.Z.Z.S.Z.Z.Z.C.M.L # | q k =.9.e.g.C.C.Z.Z.u UXUXUX",
|
||||||
|
"UX @.W.Q.Q.).-X-X-X-X-X-X=X#XKX7 7 7 7 7 7 5 5 7 | k.f.].%X*XOX+X-X+X-X+X+X+X-X-X+X+X+X+X+X+X+X+X+X+X+XOXOX+X@X.XJ.wXo W u.q.S.U.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.uXo L Z z <.V.L.} 7 Q #.w.H.U.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.|.L U B x ,.g.7X8 $ } k 6.V.G.U.T.T.T.T.U.U.U.U.U.U.U.U.U.U.U.P.U.P.U.P.U.U.P.G.D.g.<X9 4 } $.9.V.S.S.S.G.S.S.S.S.S.S.S.S.S.Z.S.Z.S.Z.Z.Z.Z.C.7X9 $ ` e z =.9.g.g.C.C.C.C.u o UXUXUX",
|
||||||
|
"UX v W.Q.Q.).-X-X-X-X-X-X=X,XPX8 5 7 5 5 7 5 7 5 Y pXd.{..X,X-X+X+X-X+X-X+X+X+X+X+X+X+X+X+X+X+X+XOX+XOX+X+X+XOX(.S.<X5 5 k.6.Z.U.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.`.rX U N z 6.V.L.z. 4 ) #.q.D.U.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.kX8 _ g x 6.g.7XV X O.k ,.V.G.U.U.T.T.U.T.T.U.U.U.U.U.U.I.U.I.U.P.U.P.P.P.P.P.P.D.V.d.` x.m 6.e.Z.S.D.S.D.S.S.S.S.S.S.S.Z.Z.Z.Z.Z.Z.Z.Z.Z.V.<X5 4 ~ e k >.9.e.A.C.V.C.Z.u UXUXUX",
|
||||||
|
"UXo v W.Q.Q.).-X-X-X-X-X-X=X,XPXG 7 5 7 7 5 7 7 7 I rXa.n.|.,X=X-X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+XOX+X+X+XOXOXoXE.P.M.E X 0X1.V.G.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.R... ~ B x 6.C.F.0X # .v 9.S.U.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.5X4 { g x 6.g.N.H O.k ,.e.H.U.U.U.U.T.U.U.U.U.U.U.U.I.U.I.I.P.U.P.U.U.P.U.P.P.G.S.w.0XX L p.:.q.C.S.S.G.D.S.S.S.S.S.S.Z.S.S.S.Z.Z.Z.Z.Z.Z.V.8X$ 5 E e z >.9.e.V.g.C.C.A.u o UXUXUX",
|
||||||
|
"UX x Q.Q.Q.).-X-X-X-X-X-X=X,XjXH 7 5 7 7 5 5 5 5 G tXa.n.|.,X=X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+XOX+X+X+XOXOXQ.W.I.A.rXo W u.q.S.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W. XU { g x 7.Z.S.uXo x.n 6.Z.U.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.iXX O.i x 6.V.'.E ] M =.w.S.I.U.U.T.U.U.U.U.U.U.U.U.I.I.I.U.I.I.I.I.I.P.P.P.P.G.S.g.1X7 4 } $.7.g.Z.S.S.S.S.S.S.S.S.Z.Z.S.Z.Z.Z.Z.Z.Z.C.Z.g.rXX 7 R t x >.9.g.g.g.g.C.C.f o UXUXUX",
|
||||||
|
"UX v W.Q.Q.).-X-X-X-X-X+X-X*XjXI 5 7 5 7 5 7 7 7 7 DXs.M.[.,X*X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+XOX+X+XOX+X+X/.Q.W.T.H.<X5 5 k.6.Z.I.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.kX8 +.y v 7.Z.G.8X# W F <.C.P.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.`.0X X O.t v 7.V.L./ H D #.q.S.P.U.U.U.U.U.U.U.U.P.U.P.U.I.U.P.I.I.P.I.P.I.P.P.P.P.S.V.d.` o O.m 6.w.C.S.S.S.S.S.Z.S.Z.S.Z.S.Z.Z.Z.Z.Z.C.Z.C.v.z. G P t z >.9.w.g.g.Z.C.C.y UXUXUX",
|
||||||
|
"UXo v Q.Q.Q.).-X-X-X-X-X-X-X*XmX! 7 5 7 5 5 7 5 5 5 +.j.B.}.#XOX+X+X+X+X+X+X+X+X+X+X+X+XOX+X+XOXOX+X+XOXOX).Q.Q.W.E.G.M.! o 9X2.V.G.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.aX$ X O.y @.q.S.H.4X4 8 Q ,.V.P.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q..X/ # { y #.9.C.J.z. 5 ) @.7.Z.P.U.U.U.U.U.U.U.I.U.U.I.U.I.I.I.I.P.I.P.P.P.P.P.P.G.G.Z.q.0XX I D :.q.V.Z.S.S.S.S.S.S.Z.S.Z.Z.Z.Z.Z.Z.Z.Z.C.C.M.P I B t x ,.q.g.g.g.Z.C.C.f o UXUXUX",
|
||||||
|
"UX x Q.Q.Q.).-X-X-XOX-X-X-X-XxX{ 5 7 5 5 7 5 5 5 7 ! 8XB.]..X*X+X+X+X+X+X+X+X+X+X+X+X+X+X+XOX+X+X+XOXOXoXQ.Q.Q.Q.E.I.A.0Xo Y u.9.D.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.~.yX $ | y #.q.S.G.5X5 4 z.#.w.H.T.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.kX8 4 ^ y #.q.Z.Z.tX X x.x 6.C.G.U.U.U.U.U.I.U.U.I.U.I.I.I.P.I.P.I.P.P.P.I.P.P.G.P.G.S.e.1X8 4 k.#.7.g.Z.S.S.S.Z.S.Z.S.Z.Z.Z.Z.Z.Z.C.C.C.C.V.2X5 _ p y x ,.9.g.g.g.g.C.C.y UXUXUX",
|
||||||
|
"UXo n Q.Q.Q.).-X-X-X-X-X-X-X,XzXx.5 7 7 7 5 5 5 5 7 J tXd.]. X@X+X+X+X+X+X+X+XOX+X+XOX+X+X+XOX+X+XOXOXOX!.Q.Q.Q.Q.W.T.D.<X5 5 k.8.Z.I.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q..X/ 4 ~ u #.w.D.P.kXV o c.*.q.S.U.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.aX$ 7 R u #.q.Z.S.yXX ..M ,.V.G.I.U.U.U.U.U.I.I.I.I.P.I.I.I.I.I.P.P.P.P.P.P.G.P.G.G.S.V.d.` O.m ,.w.V.S.S.S.Z.Z.S.Z.Z.Z.Z.C.Z.C.Z.C.C.C.V.yX# | w u x ,.9.g.g.g.g.C.C.f UXUXUX",
|
||||||
|
"UX v W.Q.Q.).OX-X-XOX-XOX-X*XcXSX5 5 5 5 5 7 7 5 5 7 FXa.n. X*X+X+X+X+X+X+X+X+XOXOX+XOXOX+X+XOXOX+X+X).Q.Q.Q.Q.Q.W.E.G.M.U X 0X1.V.G.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.kXV 7 R h =.e.G.I.].U ! u.7.Z.I.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.`.rX H Z h =.w.S.D.8X$ L D >.w.D.P.I.U.U.P.I.U.I.I.U.P.I.I.P.I.P.P.P.P.P.P.G.P.P.P.G.S.C.r.0XX I F :.q.g.Z.Z.S.Z.S.Z.Z.Z.Z.Z.Z.Z.C.C.C.C.V.A.0X +.q u @.<.q.g.g.g.Z.V.C.f UXUXUX",
|
||||||
|
"UXo v W.Q.Q.).-XOX-X-X+X-XOX*X%XKX7 5 7 5 7 5 5 7 5 5 qX1Xn. X#X@X+X+X+X+X+X+XOX+XOXOX+X+XOXOXOXOXOXOXQ.Q.Q.Q.Q.Q.Q.E.U.A.rXo Y u.q.S.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.hX4 J Z h :.V.H.U.K... 5 k.<.V.P.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W. X! W B h >.e.S.G.2X5 7 ) =.q.g.P.U.U.U.I.U.I.U.I.P.U.I.P.P.P.P.P.P.P.P.G.G.P.G.G.G.D.S.w.<X9 4 z.#.6.e.Z.S.Z.Z.Z.Z.Z.Z.Z.C.Z.C.C.C.C.C.C.n.E # | q a @.6.q.g.g.g.g.V.C.f o UXUXUX",
|
||||||
|
"UX n W.Q.Q.).-XOX-X-XOX-X-X=X.XGX8 5 5 5 5 5 5 5 5 5 Y yXB.]..X@X+X+X+X+XOXOX+XOX+X+X+XOXOX+XOXOXOX!.Q.Q.Q.Q.Q.Q.Q.~.T.S.<X7 5 k.6.Z.I.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.~.0X W B j ,.V.G.U.H.rX o 9X1.b.G.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.6X5 | r j ,.g.S.H.{.J X 9X*.7.g.U.I.U.P.U.I.I.P.I.I.P.P.P.P.I.P.G.P.P.P.G.P.G.P.G.G.G.S.g.d./ O.n ,.q.V.Z.Z.Z.Z.Z.Z.C.Z.C.C.C.C.C.C.C.V.<X5 5 ! w a #.6.w.g.g.g.Z.V.V.f UXUXUX",
|
||||||
|
"UX v W.Q.Q.).-X+X-X+X+X+X-X@X#XgXH 5 5 5 5 5 5 5 5 5 8 DXf.{..X@X+X+X+XOXOX+XOX+XOX+X+XOXOXOXOXOX).Q.Q.Q.Q.Q.Q.Q.Q.W.E.P.n.! o x.1.V.G.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.|.L | p z <.C.I.U.I.yX# U s.9.S.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.Q.~.yXo o +.e k ,.V.G.G.'.! Y u.<.V.G.P.U.U.I.I.I.I.I.P.I.I.P.P.P.P.P.P.P.P.G.G.G.G.G.G.G.S.C.q.pXX L D =.9.V.C.Z.Z.Z.C.Z.Z.C.C.C.C.C.C.C.V.V.0XX 8 K e h $.6.w.e.V.e.V.V.V.y o UXUXUX",
|
||||||
|
"UXo v W.Q.Q.).OX-X+X+X-X+X+XOX,XmXY 5 7 5 7 5 5 5 5 5 5 9X1X'. X,XOXOX+X+X+X+XOXOXOXOXOXOXOXOXOXOXQ.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.U.A.rXX W u.q.S.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.aX4 o +.t x 6.Z.I.E.U.4X5 5 k.6.C.I.W.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.Q.Q.|.E $ [ e x 6.C.G.P.L.z. 5 ) >.q.S.G.I.I.I.I.P.I.P.I.P.P.P.P.P.P.G.G.G.G.G.G.P.G.G.G.G.S.Z.e.j.8 4 } #.6.w.C.Z.Z.Z.Z.Z.C.C.C.C.C.C.V.C.V.M.U L s e k =.7.w.e.e.V.V.C.V.f UXUXUX",
|
||||||
|
"UX @.Q.Q.Q.).OX+X-X+X-X+X+X+X,XxX .5 5 5 5 5 5 5 5 5 5 T yXn.[..X@X+X+X+XOXOX+XOXOXOXOXOXOXOXOX/.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.U.S.<X5 5 k.6.C.I.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.(.pX $ [ t v 7.S.U.E.U.{.G o 9X1.b.P.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.Q.W.W.E.hX4 7 R y @.7.Z.P.P.S.rXo o x.%.q.C.G.P.I.I.I.I.P.P.P.P.P.P.P.G.P.G.P.G.G.G.G.G.G.G.G.G.H.Z.V.d.` O.b ,.q.V.C.C.Z.Z.C.C.C.C.C.V.C.C.V.V.4X5 _ s t k :.7.w.e.e.e.V.V.V.y UXUXUX",
|
||||||
|
"UX n Q.Q.Q.).-X+X-X+X+X-X+X-X,XzXSX5 5 5 5 5 5 5 5 5 5 7 DXf.]..X@X+X+XOX+XOXOXOXOXOXOXOXOXOX).Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.P.M.! o 9X1.V.G.E.W.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.}.J 7 E y #.q.S.U.W.U.].~ K h.9.S.`.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.Q.W.W.Q.^.0X I C y #.9.S.P.I.S.8X4 T u.<.V.G.G.I.I.P.I.I.P.P.P.P.P.P.P.G.P.G.P.G.G.G.G.G.G.G.S.G.Z.C.7.pX# L p.$.7.e.C.C.C.C.C.C.C.C.C.C.V.C.V.b.0X +.> y x >.9.w.e.V.e.V.V.V.f o UXUXUX",
|
||||||
|
"UXo x Q.Q.Q.).+X+X+X+X+X-X+X+X@X%XHX7 5 5 5 5 5 5 5 5 5 5 +.2Xn..X@X@XOXOXOXOXOXOXOXOXOXOXOXOX!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.I.A.tXo W u.q.D.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.aX$ H Z h $.w.H.E.E.E.H.0X # 9X6.C.I.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.Q.W.W.W.6Xd ' p a #.q.S.I.I.G.2X9 5 z.:.w.Z.G.P.I.P.P.P.P.P.P.P.G.P.P.P.G.G.G.G.G.G.G.D.G.G.D.D.S.Z.w.j.8 4 } @.6.w.V.C.Z.C.C.C.C.C.V.V.C.V.V.7XL $ { > y v ,.q.w.e.e.e.V.V.V.y UXUXUX",
|
||||||
|
"UX v W.Q.Q.).+X-X+X-X+X+X+X+X*X.XfXG 5 5 5 5 5 5 5 5 4 5 J uXn.[..X@XOXOXOXOXOXOXOXOXOXOXOX).Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.T.D.<X7 5 k.6.C.I.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.%X~ ` p h >.V.P.E.W.E.G.yX# o ! i.b.G.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.Q.W.W.W.W.`.yXX o x.q j >.e.D.I.I.G.M.P .4.9.C.G.P.I.P.I.P.P.P.P.P.P.G.G.G.G.G.G.G.G.G.D.G.D.D.G.D.S.Z.e.d.[ O.M >.q.g.V.C.C.C.C.V.C.C.C.V.V.V.yX# 7 P q h @.,.q.q.e.e.e.V.V.V.f o UXUXUX",
|
||||||
|
"UX v Q.Q.Q.).+X+X+X+X+X+X+X+X@X#XmXT 5 5 5 5 5 5 4 5 4 5 5 AX2X]. X@XOXOXOXOXOXOXOXOXOXOXoXQ.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.T.P.n.! o 9X1.V.G.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.aX4 o +.w k ,.V.P.E.Q.E.I.4X7 4 pX6.Z.U.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.W.W.W.W.E.kXJ 4 ~ q k ,.g.G.U.I.P.J. . 7 l.,.V.Z.G.P.P.P.P.P.G.P.P.G.G.P.G.G.G.G.G.G.G.G.D.D.D.S.G.S.S.V.9.0X# H D $.7.e.V.C.C.C.C.C.V.V.V.C.g.M.E H C q h #.<.q.w.e.e.e.V.V.V.y UXUXUX",
|
||||||
|
"UX x Q.Q.Q.).+X+X+X+X+X+X+X+X@X.XxX{ 5 5 5 5 5 5 5 5 5 5 4 T iXn.|.XX@XOXOXOXOXOXoXOXOXOX/.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.U.A.0XX Y u.q.S.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q..Xz. $ [ e x 6.Z.U.W.W.W.U.'.U ` i.V.P.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.W.W.W.W.W.W.`.iXX J Z t x 6.C.P.I.U.P.C.rXX X 9X;.q.Z.G.P.P.P.G.P.P.G.G.P.G.G.P.G.G.G.G.G.D.D.D.D.G.S.S.S.Z.C.w.j.9 4 } @.<.q.V.V.C.V.C.V.V.C.V.V.V.8X4 ` 3 e j $.6.q.w.e.e.e.e.b.V.f UXUXUX",
|
||||||
|
"UX n Q.Q.Q.).+X+X+X+X+X+X+X+XOX,X|.DX5 5 5 4 5 5 5 4 5 5 5 5 SXM.]..X@XOXOXOXOXoXOXOXOXoXQ.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.U.S.<X7 5 k.6.C.I.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.6X5 8 P y @.9.S.U.W.W.W.T.F.9X 4 pXq.S.U.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.Q.W.Q.W.W.W.W.W.E.kXG _ s u #.9.C.P.I.U.P.S.<X5 G h.6.V.S.G.P.P.G.P.G.G.P.G.G.G.G.D.G.D.G.D.G.S.D.S.D.S.D.S.S.Z.e.d.[ o.m >.9.g.g.C.C.C.V.C.V.C.g.n./ X o.: t k =.6.q.e.w.b.e.e.V.b.u UXUXUX",
|
||||||
|
"UXo v Q.Q.Q._.OX+X+X+X+X+X+X+XOX@X.XGX8 5 5 5 5 4 5 4 5 5 4 4 T iX'. X@XOXoXOXOXOXOXOXoX/.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.P.n.! o x.1.V.G.E.W.Q.Q.Q.Q.Q.Q.Q.^.pX W B u $.w.H.T.W.Q.W.E.H.yX# U f.V.G.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.Q.W.W.W.W.W.W.E.W.^.pXo X O., a $.q.S.P.U.U.I.S.M.H X 9X5.e.Z.G.G.G.P.P.G.P.G.G.G.G.G.G.G.G.S.G.D.G.S.D.D.D.S.S.S.Z.V.7.0X# L D $.7.w.A.g.C.V.V.g.V.V.g.8X5 5 ! > y x ,.7.w.w.w.e.e.V.V.V.y o UXUXUX",
|
||||||
|
"UX v Q.Q.Q.).+X+X+X+X+X+X+X+XOXOX.XgXL 5 4 5 5 5 5 5 4 4 5 5 5 SXM.[..X@XOXoXOXOXOXOX).Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.I.A.rXX Y s.q.D.U.W.Q.Q.Q.Q.Q.Q.Q.hX7 O.w h >.V.G.E.W.Q.Q.E.P.2X9 $ 0X0.S.T.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.W.W.W.W.W.W.E.W.W.E.hX7 5 ! q j >.e.D.I.U.T.P.S.v... G l.7.V.S.G.P.P.G.G.G.G.G.G.G.G.S.G.D.G.D.G.S.D.D.S.S.S.S.S.Z.V.w.j.8 4 } @.,.q.g.V.C.C.V.V.V.V.M.` H V q a v ,.7.q.e.e.w.e.e.b.V.y UXUXUX",
|
||||||
|
"UX x W.Q.Q._.+XOX+X+XOX+X+XOXOX@X.XxX .5 5 4 5 4 4 5 5 5 4 5 4 I iX]. XXX@XOXOXOXOXoX!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.T.H.<X5 5 k.<.Z.Y.E.Q.Q.Q.Q.Q.W.$X[ 4 ` q z <.V.U.E.Q.Q.Q.E.I.].` H 1XC.G.~.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.Q.W.W.W.W.W.W.E.E.|.} I C e x <.g.G.I.U.U.I.G.C.rXX X x.5.q.C.G.G.G.P.G.G.G.G.G.G.G.G.G.S.G.S.S.D.D.S.S.S.S.S.S.Z.Z.w.d.[ O.b =.9.g.g.g.V.V.V.V.V.yX$ { 3 q h #.,.q.w.w.w.e.e.e.e.b.f UXUXUX",
|
||||||
|
"UXo v W.W.W.).OX+X+X+X+XOX+X+XOX=X,X|.DX5 5 5 4 5 4 5 4 5 4 4 5 5 wX7X[..X@XoXOXOXoX).Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.T.P.n.! o 9X>.V.G.E.W.Q.Q.Q.Q.!.iX$ G P t v 7.Z.U.W.!.Q.Q.W.U.F.rXX o .B.S.U.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.Q.W.W.W.W.E.W.E.W.(.yX# O.< u @.7.C.G.I.T.U.I.G.Z.<X5 9 k.6.V.S.G.G.G.G.G.D.G.G.G.S.G.S.D.S.G.S.D.S.S.S.S.S.S.S.Z.Z.e.7.0X# K D #.7.e.g.g.V.V.V.V.2XK X o.* e k =.6.q.w.w.e.w.e.e.e.V.y UXUXUX",
|
||||||
|
"UX v W.Q.Q.).+X+XOXOX+X+XOXOX+XOXXX.XGXV 5 4 5 4 5 4 5 4 5 5 4 4 G DX'. XXX@XOXOXoXQ.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.U.Z.0XX U s.9.S.T.W.Q.Q.Q.Q.kXK { p u #.q.D.T.W.Q.Q.Q.W.E.D.4X5 4 0XV.G.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.W.W.W.W.E.W.W.W.E.E.T.6X8 4 [ q a $.q.Z.P.I.U.U.I.P.S.M.U { i.q.C.S.G.G.G.G.G.G.D.D.G.D.G.S.G.S.S.S.S.S.S.S.S.S.S.Z.Z.V.q.j.8 4 } x ,.9.g.g.V.V.g.v.rXX 8 U > y x =.7.q.q.w.w.w.w.e.V.e.y UXUXUX",
|
||||||
|
"UX n Q.Q.Q.).OX+X+XOX+XOXOX+XOXOX@X.X6X] 5 4 4 5 4 5 4 5 5 4 4 4 4 ' hX[..X@XoXOX_.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.U.D.<X7 5 k.6.C.I.W.Q.Q.Q.XX0XX # o.q h >.e.P.E.W.Q.Q.Q.Q.E.P.M.E J <XZ.U.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.W.W.W.W.W.W.E.E.W.W.}.[ H Z q z ,.g.D.P.U.I.U.I.P.D.r.0Xo $ 9X2.e.Z.S.G.G.G.D.G.G.D.S.G.S.D.D.S.S.S.S.S.S.S.Z.S.Z.S.Z.V.q.d.[ O.M =.7.e.g.V.V.b.4X7 ! s , u x ,.7.q.w.w.w.w.w.e.e.b.f UXUXUX",
|
||||||
|
"UXo v Q.Q.Q._.OXOX+X+XOX+XOXOX+XOX@X#X}.SX5 5 5 4 5 4 5 4 4 4 5 4 5 5 AX3X[.XXXXoXQ.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.P.n.~ 9X1.V.H.E.W.Q.~.aX4 8 P e k 6.C.P.E.Q.Q.Q.Q.W.W.U.F.rXX [ m.S.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.W.Q.W.W.W.W.E.W.W.W.E.E..Xx.X X.< y x 6.g.D.I.I.U.I.U.I.H.V.<X4 8 <X9.V.S.S.G.G.G.S.D.D.D.D.S.D.D.S.S.S.S.S.Z.S.S.S.Z.Z.Z.C.e.6.pX# K D *.6.w.g.g.g.2XW X O.* q h #.,.7.q.w.q.w.w.e.w.e.b.f UXUXUX",
|
||||||
|
"UXo v W.Q.Q./.+XOX+XOXOXOX+XOXOXOX@X@X XGX8 4 4 4 5 5 4 4 5 4 5 5 4 4 G GX]..XXX(.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.U.A.yXX T s.q.F.U.W.W.6XJ ] s t v 7.S.U.W.Q.Q.Q.Q.Q.W.T.D.4X7 X z.n.G.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.Q.Q.W.W.W.W.W.W.E.W.E.W.E.^.yX$ 5 ~ , u #.q.Z.G.P.U.I.I.I.I.G.Z.m.L ` a.w.C.Z.H.G.D.D.D.D.S.D.S.D.S.S.S.S.S.Z.S.Z.S.S.Z.Z.Z.C.g.q.j.8 4 } x ,.9.e.e.n.z.X 5 W : e k $.6.9.q.q.q.w.w.w.e.e.e.y UXUXUX",
|
||||||
|
"UX v Q.Q.Q._.+X+X+XOX+XOXOXOXOXOXOX@X.X6XW 5 5 5 4 4 4 4 4 4 4 4 4 4 4 Y iX[..XE.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.T.G.<X7 5 k.6.C.I.E.|... # .> h =.w.H.E.W.Q.Q.Q.Q.Q.W.T.P.n.[ $ 0X'.P.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.Q.W.W.W.W.W.W.E.W.E.E.E.W.`.aX5 I s w k >.w.S.P.U.I.U.I.I.I.G.S.y.9X # x.t.e.Z.S.D.D.D.D.D.D.S.S.S.S.S.S.S.S.S.Z.Z.Z.Z.Z.Z.Z.C.g.e.d.[ .b $.7.w.b.yX4 Y s > y x :.6.q.q.q.w.q.w.w.e.e.b.y o UXUXUX",
|
||||||
|
"UX v Q.Q.Q._.+XOXOXOXOXOXOXOXOXOXOX@X.X}.SX5 4 4 4 4 5 5 4 5 4 4 4 4 4 4 | hXK.U.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.G.n.! o 9X1.e.G.R.rX# 8 P q k ,.V.P.E.W.Q.Q.Q.Q.Q.Q.E.U.Z.rX# 4 0XL.P.E.W.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.W.W.W.W.W.W.E.W.W.W.E.W.`.aXV X O.> t x 6.V.S.P.I.I.I.I.I.I.P.S.e.<X4 4 pX0.e.Z.S.D.D.D.D.S.D.S.S.S.S.Z.S.Z.Z.S.S.Z.Z.Z.Z.Z.C.g.e.6.x.# H D *.6.0.8Xd X .; q h @.,.7.q.q.q.q.q.w.w.w.e.b.y UXUXUX",
|
||||||
|
"UXo v Q.Q.Q._.OX+XOXOXOXOXOXOXOXOXOX@X.X[.GXV 4 5 4 4 5 4 4 4 4 4 4 4 4 4 5 9X7XH.E.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.U.Z.0XX U u.q.L.iX$ ` 3 t n 7.Z.U.W.W.Q.Q.Q.Q.Q.Q.W.T.S.2XG 5 yXL.U.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.Q.Q.W.W.E.W.W.W.W.E.E.E.E.T.hXG 7 U > a #.9.C.G.I.U.I.I.I.I.I.P.D.V.m.U 9 8Xr.V.S.S.S.S.S.S.S.S.S.S.S.S.S.Z.S.Z.Z.Z.Z.Z.Z.Z.Z.C.g.9.j.d 4 } x ,.<XL 7 U * e h $.<.9.q.q.q.q.q.q.w.w.w.V.y UXUXUX",
|
||||||
|
"UX x Q.Q.Q._.+XOXOXOXOXOXOXOXOXOXOXoXXX.X6X[ 5 4 5 4 4 5 4 4 4 4 4 4 4 4 4 $ .M.G.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.U.H.<X7 5 k.8.iX5 $ | > h =.w.H.E.W.Q.Q.Q.Q.Q.Q.Q.Q.T.P.b.x. 4 0X].U.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.Q.W.W.W.W.W.E.W.E.W.E.W.`.hXJ { 3 q k >.w.S.P.I.I.I.I.I.I.P.P.G.Z.r.0XX G 8Xq.V.Z.S.S.S.S.S.S.S.Z.S.S.Z.S.Z.Z.Z.Z.Z.Z.C.Z.C.C.g.w.i.[ O.M j.! ] 3 > y x =.6.7.q.q.q.q.q.q.w.w.e.e.f UXUXUX",
|
||||||
|
"UXo v W.Q.Q._.+XOXOXOXOXOXOXOXoXOXOXOXXX.X{.DX5 4 4 4 4 4 4 4 4 4 4 4 5 4 4 o X z.N.G.E.W.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.P.n.~ o x.pX7 H C q k ,.V.P.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.U.Z.<X7 $ 0X{.U.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.Q.Q.W.W.W.W.W.W.W.E.E.E.W.^.iX7 4 ` : t v 6.V.D.P.I.I.P.I.I.P.P.P.G.Z.w.<X7 J 8Xw.C.Z.S.S.S.S.S.S.S.Z.Z.S.Z.Z.Z.Z.Z.Z.Z.C.C.C.C.g.e.6.0X# K z.] # | & q f v ,.7.q.q.q.q.q.q.q.w.w.e.w.y UXUXUX",
|
||||||
|
"UXo v Q.Q.Q._.OXOXOXOXOXOXOXOXOX@X+XOXoXXX[.sXI 4 5 4 4 4 4 4 4 4 4 4 4 4 # # .3XP.`.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.U.Z.rXX I 7 o O.< t v 7.Z.U.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.T.G.n.[ # [ 5XY.T.Q.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.W.W.W.E.W.W.W.E.W.E.E.|.rX4 Y s , h #.9.Z.G.P.I.I.I.I.I.P.P.P.P.S.V.t.| H 8Xr.C.Z.Z.S.S.S.Z.Z.S.Z.Z.Z.Z.Z.Z.Z.Z.C.C.C.C.Z.g.e.9.j.9 4 Y o H K * e j #.,.7.q.7.q.9.q.q.q.q.w.w.e.y UXUXUX",
|
||||||
|
"UX v W.Q.Q._.OXOXOXOXoXOXOXoXOXOXoX+XoXXX X{.eX4 4 4 4 4 4 4 4 4 4 4 4 4 o . [ 5XP.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.U.D.<X7 X 8 E > h =.w.D.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.P.g.8X4 o J yX[.T.W.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.W.W.W.W.W.W.E.E.E.E.E.`.6X..# $ | ; e k ,.w.S.G.I.P.I.I.P.P.P.P.P.P.G.C.q.8X$ 8 0Xv.V.C.S.S.Z.S.S.Z.Z.Z.Z.Z.Z.C.C.C.Z.C.C.C.C.g.g.q.i.} X X o.- > y x >.6.7.q.q.q.q.q.q.q.q.q.w.b.y UXUXUX",
|
||||||
|
"UX v W.Q.Q._.OXoXOXOXoXOXOXOXoXOXOXOXOXoX.X[.fXG 4 4 4 4 4 4 4 4 4 4 $ $ o T aXH.E.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.P.n.~ | 3 e z <.V.I.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.U.D.B.] $ z.5XR.E.Q.Q.Q.Q.Q.Q.Q.Q.W.Q.W.W.W.W.W.W.W.E.W.W.E.E.E.|.iX8 I V > u @.7.C.S.P.I.I.I.P.P.P.P.P.P.G.G.S.e.f.! 5 9XB.V.C.Z.Z.Z.Z.Z.Z.Z.Z.Z.C.Z.C.C.C.C.C.C.V.V.g.w.<.x.# 8 U * q h @.,.6.q.q.q.9.q.9.q.q.q.q.w.w.i UXUXUX",
|
||||||
|
"UX v Q.Q.Q._.OXOXOXOXOXoXOXOXOXOXoXoXOXXXXX X3Xo.4 4 4 4 4 4 4 4 4 4 4 X 9 yXK.T.W.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.Y.Z.rXX 4 ` > y @.q.S.U.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.G.A.rX$ d rX6XR.E.Q.Q.Q.Q.Q.W.Q.Q.W.W.W.W.W.W.E.W.W.E.~.}.iXU # # X.* w k :.q.S.G.I.P.P.P.P.P.P.G.P.P.P.G.S.V.7.pX# # .2Xg.C.Z.Z.Z.Z.Z.C.Z.C.Z.C.C.C.C.C.C.C.V.C.V.e.7.j.8 { 2 : t k $.,.7.9.q.q.q.7.q.9.q.q.q.w.w.y X UXUXUX",
|
||||||
|
"UX n W.Q.W._.OXOXOXOXoXOXOXOXoXoXoXOXoXoXXX.XL.GX7 4 4 4 4 4 4 $ 4 4 4 G N.G.T.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.U.G.4X7 _ s q j ,.e.G.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.U.S.B.! X d pXhX|.`.E.Q.Q.Q.Q.W.W.W.W.W.W.E.W.E. X6XiXP # I C > y v <.V.S.P.P.I.P.P.I.P.P.P.P.P.G.G.G.C.q.j.H X rXq.e.V.Z.Z.Z.Z.Z.C.Z.C.C.C.V.C.V.C.V.C.V.V.e.9.i.| 5 ~ & , u x :.6.9.q.q.q.7.q.9.9.q.q.q.w.w.y UXUXUX",
|
||||||
|
"UXX v Q.Q.W._.oXoXOXOXOXOXoXoXOXOXOXoXOX@XoX.X[.5X[ 4 4 4 4 4 $ 4 4 $ X G 2XV.P.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.P.n.] $ | : t x 6.Z.U.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.T.G.e.rX4 4 P rXaXkX|..X`.~.`.`.(..X XkX5XiX( 7 o $ o.* q j :.q.Z.G.G.P.P.P.P.P.P.P.P.G.G.P.G.G.S.e.0.0XX X pX,.q.g.V.Z.Z.Z.C.C.C.C.C.C.C.C.C.V.C.V.C.V.g.w.6.pX# ] 6 * e h #.,.7.7.q.7.9.q.7.q.q.7.q.q.w.w.y UXUXUX",
|
||||||
|
"UX x Q.Q.Q._.OXOXoXOXOXOXOXoXOXOXoXOXoXOXoXXX.X].DX9 4 4 4 $ 4 4 4 $ 8 j.q.S.Y.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.I.A.rXX W V q h =.w.H.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.I.S.d... $ 8 P / z.rXrX0Xz.) E 8 $ o Y V : t x 6.e.S.G.P.P.P.P.P.P.G.P.G.P.P.P.G.G.S.C.q.j.J X x.#.,.q.g.C.Z.C.C.C.C.C.C.C.C.C.V.C.V.V.V.V.V.w.7.j.G 5 ~ + , y z =.<.7.q.q.7.9.q.7.9.9.9.q.q.w.w.y UXUXUX",
|
||||||
|
"UX v W.Q.Q._.OXOXoXOXoXoXoXOXoXoXOXoXOXOXoXoX.X[.5X{ 4 $ 4 4 4 $ 4 # 9 h.,.V.G.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.D.4X7 $ { * t x 6.C.P.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.T.H.V.k.7 5 { * q j $.q.C.G.P.I.P.P.P.P.P.P.P.G.G.G.G.G.G.D.Z.w.8.0X# X x.k =.9.g.V.Z.C.Z.C.C.C.C.C.V.C.V.V.V.V.V.V.V.e.9.5. . ' 6 * e j v ,.7.q.7.7.q.q.7.9.9.q.9.9.q.q.w.i UXUXUX",
|
||||||
|
"UXo v Q.Q.Q._.oXOXOXOXOXOXoXoXOXoXOXOXoXoXoXoX.XR.'.DX9 4 4 4 4 4 4 o G D #.q.D.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.P.n.` _ s > a $.q.H.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.U.Z.t.x.X o | 3 > y x <.e.S.G.P.P.P.P.P.P.G.P.P.G.G.G.G.G.G.D.Z.V.7.j.K X O.a @.6.w.V.C.C.C.C.C.C.V.V.C.V.V.V.V.V.V.V.g.e.q.<.z.# 5 ~ + > y k $.<.7.7.9.q.7.q.7.7.7.9.9.9.q.q.w.i UXUXUX",
|
||||||
|
"UX x Q.Q.Q._.OXoXOXoXoXOXoXOXoXOXoXoXoXOXOX).XX.XK.5X{ 4 4 $ 4 4 # 8 Q v 9.Z.U.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.U.Z.rXX 4 | : t x 6.V.P.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.G.V.j.I G T * q j :.q.C.D.P.P.P.G.P.P.G.P.G.P.G.G.G.G.G.G.D.D.C.w.<.9X# X O.y v <.q.V.V.C.C.C.V.C.V.C.V.C.V.A.V.V.g.V.V.e.w.6.j.G ` 0 * w h v ,.6.7.q.q.9.9.7.7.q.q.0.9.9.q.q.w.y UXUXUX",
|
||||||
|
"UXo n Q.Q.Q._.OXoXOXoXOXoXOXoXoXoXOXoXOXoXoXoX@X(.R.'.uXG 4 $ 4 $ X 8 Q x 6.Z.U.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.H.2X8 ' 6 > a $.w.S.U.Q.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.I.S.0.pX4 $ .; > y v 6.e.S.G.G.G.P.P.P.G.G.G.P.G.G.G.G.G.G.D.D.D.Z.g.7.a.W X O.y z ,.q.g.Z.Z.g.Z.g.Z.Z.g.Z.g.g.V.V.g.g.g.V.g.w.9.5. . 8 U % > y k $.,.6.9.9.9.9.9.9.6.9.9.9.9.9.9.q.w.t X UXUXUX",
|
||||||
|
"UX v W.Q.Q./.oXOXoXOXoXOXoXoXOXoXOXoXoXoXoXoXOX@X.X[.M.AX4 4 $ $ 8 A x 6.Z.U.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.G.n.` G U * t x 2.V.P.T.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.G.V.i. .X ` d * e k :.q.Z.G.G.P.P.P.G.P.G.P.G.P.G.G.G.G.G.D.G.D.D.S.C.w.,.z.5 X O.e z =.q.g.Z.g.Z.g.Z.g.Z.g.g.g.Z.V.V.g.V.V.g.g.e.q.,.x.$ X X.- * q h v >.6.9.9.9.9.9.9.9.9.7.9.6.9.9.q.q.q.t UXUXUX",
|
||||||
|
"UX v Q.Q.Q._.oXoXoXOXoXoXOXoXOXoXoXoXoXOXoXoXoX).XX[.'.aXU 4 $ # G R x 6.C.U.~.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.U.Z.rXX # o.; q h =.q.D.U.W.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.U.S.q.j.U H P * > h @.6.V.S.G.P.P.G.P.P.G.P.G.G.G.G.G.G.G.D.D.D.D.D.S.Z.g.9.4.O.o X O.e z >.q.g.g.g.Z.Z.g.Z.g.g.Z.g.Z.V.g.g.V.g.g.g.e.w.6.j.8 I J & > y z #.<.6.9.9.9.9.9.9.9.6.9.9.7.9.9.9.q.q.t X UXUXUX",
|
||||||
|
"UX v W.Q.Q._.OXOXoXoXOXOXoXoXoXOXoXoXOXoXoXoXoXoXXX.XK.B.DX5 4 o 8 R x 6.C.U.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.T.G.2X8 I K : t v 6.C.I.E.W.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.P.C.6.z.7 4 | = > t x ,.w.Z.G.G.P.P.P.P.G.P.G.G.G.G.G.G.D.D.G.G.D.D.D.D.Z.C.w.,.k.G X O.e z =.q.g.g.Z.g.g.Z.g.g.g.g.g.g.g.V.g.g.e.g.g.e.w.9.5. . 4 | + * q h @.>.6.6.9.9.9.9.9.6.6.9.7.6.9.9.9.9.9.q.t UXUXUX",
|
||||||
|
"UXo v W.W.W._.oXoXOXoXOXoXoXoXOXoXoXoXoXoXoXoXoXoXoXXXR.'.2Xc.$ 8 R x 6.C.U.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.P.n.[ 5 { * q j =.w.G.U.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.T.D.w.5.0X$ # X.2 * q j =.q.C.S.G.G.P.G.G.G.P.G.G.G.G.G.G.G.D.G.D.G.D.S.S.D.S.Z.g.9.=.x.$ X O.y z >.q.g.g.g.Z.g.Z.Z.g.g.g.g.g.g.V.e.V.V.e.e.e.w.9.,.pX# X | 0 & , y k =.,.6.9.9.9.9.9.9.7.7.6.6.9.6.7.9.9.r.q.t UXUXUX",
|
||||||
|
"UX v Q.Q.Q._.oXoXoXoXoXoXoXoXoXOXoXoXoXoXoXoX).oXoXXX.XK.n.8XH 8 R x 6.C.I.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.U.Z.rXX # o.2 > y #.7.S.P.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.U.S.q.u.o.# X | 6 * q h #.6.e.Z.G.G.P.G.P.P.G.G.G.G.G.G.G.D.D.G.D.D.S.D.D.D.S.S.Z.C.w.,.u. .X X .e j >.9.g.g.Z.g.g.g.g.g.Z.g.g.g.V.g.g.e.e.e.V.V.w.w.6.h.G I K + : e j #.>.6.6.9.9.9.6.9.6.9.6.9.7.7.6.9.9.9.9.q.t UXUXUX",
|
||||||
|
"UXo n W.Q.Q._.oXOXoXoXoXoXOXoXoXoXoXoXoXoXoXoXoXoXoXXX(..XL.B.pX4 8 A x 6.C.U.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.T.S.2X9 _ V * e k ,.g.G.T.W.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.T.P.Z.6.p.` o W K & > y x ,.w.C.G.G.P.P.P.G.G.G.G.G.G.G.G.D.D.D.D.D.D.D.S.S.S.D.S.S.C.g.9.=.l.I X o.e z =.9.g.g.g.g.Z.g.g.C.g.g.g.C.g.g.e.e.e.e.e.e.e.w.7.5. . 5 ` + * q u x =.<.7.7.9.9.9.9.6.9.6.9.6.7.6.6.9.7.9.q.q.t o UXUXUX",
|
||||||
|
"UX v Q.Q.Q._.oXoXoXOXoXoXoXoXoXoXoXoXoXoXoXoXoXoX).).oX(.[.v.i. .o V R x 6.Z.I.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.P.n.[ 8 ] * q h =.q.S.U.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.T.G.g.>.h._ o W P % : t k =.q.V.S.G.G.G.G.P.G.G.G.G.G.G.D.D.D.G.D.D.D.S.D.S.D.S.S.S.Z.Z.C.w.6.#.z.5 X O.t z =.9.g.g.g.Z.C.g.g.C.g.g.g.g.g.e.V.V.e.g.e.e.e.w.9.,.0X# # X.2 & > t k #.,.6.7.9.9.6.9.6.9.6.9.9.6.6.7.6.6.7.9.9.9.t UXUXUX",
|
||||||
|
"UX v Q.Q.Q./.oXoXOXOXoXoXoXoXoXoXoXoX).oXoXoXoX).oXoXoXXX^.F.9.l.! 8 R x 6.Z.I.~.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.U.Z.rXX 4 o.; > y v 6.C.I.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.U.S.w.1.k.T I W % * e j $.9.g.S.G.G.G.G.G.G.G.G.G.G.G.G.D.D.G.S.D.S.D.S.S.S.S.S.S.S.S.Z.Z.g.q.1.-.O.$ X o.e z =.9.g.g.g.C.g.g.g.g.C.g.g.g.V.e.e.e.e.e.e.e.e.w.q.6.j.G X ` d + : t h v >.<.6.7.9.9.7.7.6.9.6.7.6.6.6.7.7.6.9.7.9.q.r o UXUXUX",
|
||||||
|
"UX v W.Q.Q./.oXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoX).).XXH.V.6.k.L 8 R x 6.C.U.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.U.G.2X8 $ o.2 * t z ,.e.H.U.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.P.S.q.$.k.U I ! & * q j #.6.e.Z.D.G.P.G.G.G.P.G.G.G.G.G.D.G.D.D.D.D.S.D.S.S.S.S.S.S.S.S.S.Z.C.w.6.=.F .# X O.e z =.9.g.g.C.g.g.g.g.g.g.g.g.g.e.e.g.e.e.g.e.w.w.w.q.6.5. . _ J + * q y x $.<.6.7.9.7.7.7.6.9.7.6.6.6.6.6.6.6.6.7.9.9.q.e o UXUXUX",
|
||||||
|
"UXo v Q.Q.Q./.OXoXoXoXoXoXoXoXoXoXoXoX).oXoXoXoXoX).oXoXoX(.U.D.w.,.z.9 8 A x 6.C.I.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.P.'.[ # { 0 * q j =.w.S.U.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.P.C.9.$.k.W T U % * q a @.<.w.C.S.G.G.G.P.G.G.G.G.G.G.D.D.D.D.G.S.D.S.D.S.S.S.S.S.S.S.S.S.Z.Z.Z.g.w.6.#.D { o X O.q z =.9.e.g.g.g.g.g.g.g.g.g.g.g.V.e.e.e.e.e.e.e.e.w.q.9.>.z.$ K I @ * , y k #.,.6.7.7.7.6.9.7.7.7.6.6.6.6.6.6.6.6.7.6.9.9.9.t o UXUXUX",
|
||||||
|
"UX v Q.Q.Q./.oXoXoXoXoXoXoXoXoXoXoXoXoXoX).oX).oXoX).oX).!.E.I.Z.q.;.x.5 V R x 6.C.I.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.U.A.rX# X ] V * q f #.8.C.I.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.T.P.V.6.#.) { # X ' U % * q a @.,.w.C.D.G.G.P.G.G.G.G.G.G.D.G.S.G.D.G.S.D.S.G.S.S.S.S.S.S.S.Z.S.Z.S.Z.Z.C.g.9.,.v Q Y o X .e j =.9.e.g.g.g.g.C.g.g.g.g.e.g.e.g.e.e.e.e.w.e.e.w.q.9.,.j.G 8 ' + & : t j @.:.,.6.7.7.7.9.6.9.6.6.6.6.6.6.6.6.6.6.6.6.6.9.q.r UXUXUX",
|
||||||
|
"UX v W.Q.Q./.oXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoX).).).oX).).Q.W.E.P.C.7.4.9X7 8 R x 6.C.U.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.T.D.2X9 # ' V & , u v 6.C.G.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.U.H.V.6.@.D x.4 4 | V + * w u v ,.q.g.S.G.G.P.G.G.G.G.G.G.D.D.G.G.S.G.S.S.D.D.S.S.S.S.S.S.S.Z.S.Z.S.Z.Z.Z.C.A.e.7.>.z ) ! o X x.e j >.9.w.g.g.g.g.g.g.g.e.e.e.g.e.e.e.e.e.e.w.e.w.e.w.q.6.4. . G ` # + > e h v =.,.6.7.7.7.7.6.9.9.6.6.6.6.6.6.6.6.6.6.6.6.9.0.9.t o UXUXUX",
|
||||||
|
"UXo x !.Q.Q./.oXoXoXoXoXoXoXoXoXoXoX).oX).).oXoXoXoX).oX_.Q.W.W.E.G.g.6.-.z.7 G A z 6.C.I.~.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.P.n.[ X ` V % > y x <.V.S.U.W.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.U.D.g.6.@.N x.G 8 | 0 + * q h v ,.q.g.D.G.G.G.G.G.G.G.G.G.G.D.D.D.D.D.D.S.G.S.S.S.S.S.S.S.S.Z.Z.Z.S.Z.Z.Z.Z.Z.C.V.w.6.$.k Q _ o X o.e z =.7.e.g.g.g.g.e.g.e.e.g.e.e.e.e.e.w.w.w.e.w.w.w.q.q.6.,.z.$ G _ @ % : w f x $.,.6.7.7.7.7.7.6.6.6.7.6.6.6.6.6.6.<.6.<.6.6.7.9.9.r UXUXUX",
|
||||||
|
"UXo v Q.Q.Q./.oXoXoXoXoXoXoX).oXoX).oX).oXoX).oXoX).oXoX!.Q.Q.W.W.U.D.g.<.M .8 8 R x 6.C.I.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.U.Z.rXX # ` V % > t x ,.e.F.U.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.W.E.U.S.g.6.#.l ( ` $ $ ' U = % : e h v ,.q.V.Z.G.G.P.G.G.G.G.G.G.G.S.G.D.G.S.D.D.G.S.S.S.S.S.S.S.S.S.S.S.Z.Z.Z.Z.C.Z.C.Z.g.g.w.6.#.j Q ! X X o.e k =.7.w.g.g.g.g.g.g.g.g.e.e.e.e.e.e.w.e.w.e.w.w.w.w.q.7.<.h.G J ` = + : q y z #.,.6.6.7.7.7.6.7.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.7.7.9.e o UXUXUX",
|
||||||
|
"UX v W.Q.Q./.oXoXoX).oXoXoX).oXoX).oXoXoX).oX).oXoX).).Q.Q.Q.Q.W.E.U.D.e.<.m z.L V R x 6.Z.I.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.T.H.2X8 4 X.d & > t z >.w.S.I.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.W.W.T.U.D.V.7.#.j S O.I X X H X.6 @ * > t j #.<.q.C.S.D.G.P.G.G.G.G.G.G.D.D.G.D.D.S.D.S.S.S.S.S.S.S.S.S.S.Z.Z.Z.Z.Z.Z.Z.Z.Z.C.Z.C.Z.V.e.q.,.#.h R o.# o x.e j =.7.w.e.g.g.g.e.e.e.e.e.e.e.e.e.w.e.e.w.w.w.w.w.w.q.7.6.5. . X Y W @ + : q u z @.,.<.6.7.7.7.7.7.6.6.7.6.6.6.6.6.6.<.<.<.<.6.<.6.6.9.9.t o UXUXUX",
|
||||||
|
"UX v Q.Q.Q./.oXoXoXoXoXoX).oXoX).).oXoX).oX).oX).oX)./.Q.Q.Q.Q.W.W.E.U.S.w.,.n ) ] X G A x 6.C.U.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.P.n.[ G | 1 * > t x >.w.Z.P.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.Q.W.W.W.E.E.T.U.D.g.9.=.x u A O.I # # H X.J + & * q y z $.6.w.C.S.D.G.G.G.G.G.D.G.G.G.D.D.D.D.S.D.D.S.D.S.S.S.S.S.S.S.S.Z.Z.Z.Z.Z.Z.Z.Z.Z.C.C.C.C.C.g.e.9.,.@.h B x.7 X o.e k =.7.w.e.g.g.e.e.e.e.e.e.e.e.e.w.e.e.w.w.w.w.w.w.q.q.9.6.>.pX$ $ | G @ + : , y z @.>.<.6.7.7.6.7.6.7.6.6.6.6.6.<.6.6.6.6.<.<.<.<.<.6.8.7.0.r o UXUXUX",
|
||||||
|
"UX n Q.Q.Q./.oX).oXoX).oXoXoX).oXoXoX).oXoXoX).oX).oX!.Q.Q.Q.Q.Q.Q.W.E.U.S.w.,.v Q o.4 8 Q z 6.C.I.W.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.U.Z.rX# X I ` 1 & > y x :.w.Z.I.~.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.Q.W.W.W.W.W.W.W.E.T.U.G.Z.q.>.@.h i A O.W 5 X o 5 Y o.K = % * > t a v =.9.e.C.S.D.G.G.G.G.G.G.G.G.D.D.G.D.D.D.D.D.S.D.S.S.S.S.Z.S.Z.S.Z.Z.Z.Z.Z.Z.Z.Z.C.C.C.C.C.C.C.g.g.e.9.,.#.j g z.G o . o.e k =.7.w.e.e.g.e.g.e.e.e.e.e.e.b.w.w.w.w.w.w.w.q.w.w.q.q.7.,.h.G 7 o.6 @ % : w f k @.>.<.6.7.7.7.7.7.7.6.6.6.6.6.6.6.6.<.<.<.<.6.6.6.6.6.6.7.7.t UXUXUX",
|
||||||
|
"UX n W.Q.Q./.oXoXoX).oX).).oXoX).oXoX).oX).oXoX).).).Q.Q.Q.Q.Q.Q.Q.Q.W.~.U.S.e.,.v N x.L H Q x 6.Z.U.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.H.2X8 7 O.P * : q y v ,.w.S.I.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.Q.Q.W.W.W.W.E.W.W.W.E.E.T.U.P.Z.e.6.$.k u e B ^ O.Y 8 $ $ 9 T X.Y 9 + % * > q y k #.,.q.g.Z.S.G.G.P.G.G.G.D.G.D.G.D.D.D.D.D.S.S.S.S.S.S.S.S.Z.S.Z.Z.Z.S.Z.Z.Z.Z.C.Z.C.C.C.C.C.C.C.C.C.C.g.w.9.,.*.j i ^ | 5 x.t k =.6.w.e.V.e.e.e.e.e.e.w.w.e.e.w.w.w.w.w.w.w.w.q.q.q.q.7.<.4. .# ! ` 1 + & > e f z v ,.<.6.6.7.6.6.7.6.6.6.6.6.6.6.<.6.<.6.<.<.<.<.<.<.<.6.6.7.7.t UXUXUX",
|
||||||
|
"UXo v W.Q.Q./.).).oXoXoXoXoX).oXoX).oXoXoX).).).).oX_.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.U.S.g.6.#.k Q ZXD @.7.S.U.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.P.'.9Xz.g q > w a @.<.w.S.I.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.Q.W.W.W.W.W.W.W.W.E.E.E.W.E.T.U.P.S.g.9.,.#.k i q , s P { +.| Y T H H H I Y { O.| L 6 = + * * > e y j @.=.7.w.g.S.D.G.G.G.G.G.G.G.G.G.D.D.D.D.S.D.S.D.S.D.S.S.S.S.S.S.S.Z.S.Z.Z.Z.Z.C.Z.Z.C.C.Z.C.C.C.C.V.V.C.g.g.g.w.7.,.#.k y B .x.y x =.7.w.e.e.e.e.e.e.e.w.e.e.w.w.w.e.w.w.w.w.q.q.w.q.q.q.9.6.=.pX9XZ : * * > e f b #.>.,.6.7.7.7.7.7.6.7.6.6.6.6.<.<.6.6.<.<.<.<.<.<.<.<.<.<.6.7.7.e o UXUXUX",
|
||||||
|
"UX n W.Q.Q./.oXoXoX).).oX).oX).).oXoX).oX).oX).).oX/.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.E.U.D.V.7.$.v M u.$.w.S.U.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.U.F.m.=.j u u k #.6.V.S.I.E.W.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.Q.W.W.W.W.W.W.E.W.E.W.E.E.E.E.T.U.I.D.Z.w.7.>.v k u t q > * 2 s s V s V 6 6 1 & & & * : > q e u j @.=.6.q.g.Z.S.D.G.G.G.G.G.G.G.D.G.D.D.D.D.D.D.D.S.D.S.S.S.S.S.Z.S.Z.Z.Z.Z.Z.Z.Z.Z.Z.C.Z.C.C.C.C.C.C.C.C.C.C.C.g.g.g.w.9.<.$.z h i D h v >.7.w.e.e.e.e.e.w.e.e.e.w.w.w.w.w.q.b.q.q.q.q.q.q.q.q.9.7.,.u.N t q , q t h x $.>.6.6.6.7.7.6.6.6.7.6.6.6.6.6.6.<.6.6.<.<.<.<.<.<.,.<.<.<.6.7.7.r o UXUXUX",
|
||||||
|
"UX v Q.Q.Q./.).).oXoXoX).oX).oXoX).).).).).).).).).Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.U.G.C.q.6.1.,.7.V.H.U.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.T.G.V.7.#.@.#.,.9.V.G.U.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.Q.W.W.W.W.W.W.E.W.T.E.W.E.E.E.E.E.T.U.U.P.S.C.w.7.,.#.x j y t e q , > > : : : > > > q e t y j x @.:.6.q.e.C.S.S.G.G.P.G.G.G.G.G.G.D.D.D.D.D.D.D.S.D.S.S.S.S.S.S.S.Z.Z.S.S.Z.S.Z.Z.Z.C.Z.C.C.C.C.C.C.V.C.V.C.g.g.g.C.C.g.g.w.9.6.=.x z k x #.,.9.w.e.e.e.e.w.e.e.w.e.w.w.w.w.w.w.q.q.q.q.q.q.q.q.q.9.7.<.=.x j y y a k v :.>.<.6.7.7.7.6.6.7.6.6.6.6.<.6.6.<.<.<.<.<.<.<.<.<.<.<.<.<.<.6.6.7.r o UXUXUX",
|
||||||
|
"UXo v W.Q.Q./.oX).oX).oXoXoXoX).).).oXoXoXoX).).oX_.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.T.P.Z.g.w.w.V.Z.I.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.I.S.g.9.7.7.w.Z.G.U.W.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.Q.W.W.W.W.W.W.E.W.W.W.E.W.E.E.E.E.E.E.E.E.T.T.U.P.P.S.C.w.9.<.>.#.v x j h u y y y y y a h j k x #.=.,.7.q.e.C.Z.D.G.G.G.P.G.G.G.G.D.D.D.G.D.D.D.D.S.D.S.S.S.S.S.S.S.Z.Z.S.S.Z.Z.Z.Z.Z.Z.C.C.C.C.C.C.C.C.V.C.V.C.g.g.C.g.C.g.C.e.e.w.q.6.,.=.#.=.>.6.q.w.e.e.e.e.e.e.w.e.w.w.w.w.w.w.w.q.q.q.q.q.q.q.q.9.9.9.6.>.#.x k k x #.:.,.6.6.7.7.6.7.6.6.6.6.6.6.6.<.6.6.<.6.<.<.<.<.<.<.<.,.<.,.<.<.6.7.7.e o UXUXUX",
|
||||||
|
"UX x Q.Q.Q./.).oX).oXoX).).).oX).oX).).).).).oX)./.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.E.U.G.F.S.D.P.T.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.I.D.Z.C.S.G.U.E.E.W.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.Q.W.W.W.W.W.W.E.T.W.W.T.E.E.E.E.T.E.T.T.T.T.T.U.U.P.G.D.C.V.w.9.6.,.:.=.#.#.#.#.#.#.#.$.=.,.6.7.q.w.V.Z.S.S.G.G.G.G.G.G.G.G.G.G.G.D.D.D.D.D.D.S.D.S.D.S.S.S.S.Z.S.S.S.Z.Z.Z.Z.Z.Z.Z.Z.Z.C.C.C.C.C.C.C.C.V.C.g.C.C.g.C.g.g.g.V.V.e.w.q.6.6.<.<.6.9.q.w.e.e.e.e.w.w.e.w.w.w.w.w.w.q.q.q.q.q.q.q.q.q.9.q.9.9.6.6.,.=.#.$.=.>.<.6.7.6.7.7.6.7.6.6.6.6.6.<.6.6.6.<.<.<.<.6.,.<.,.,.,.,.,.<.,.<.2.7.6.e UXUXUX",
|
||||||
|
"UXo v W.Q.Q./.).oX).oX).).oX).).).oX).oXoX).).).).!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.E.U.I.U.E.~.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.E.U.I.I.U.T.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.Q.W.W.W.W.W.W.W.E.W.E.E.E.E.E.E.E.E.E.E.T.T.T.T.T.T.U.U.T.I.P.G.G.S.C.V.V.w.q.q.7.7.6.7.7.9.q.w.e.g.V.Z.Z.S.G.G.G.G.P.G.G.G.G.G.D.D.G.D.D.D.D.D.D.S.D.S.D.S.S.S.S.S.Z.Z.S.Z.Z.Z.Z.Z.Z.Z.C.C.Z.C.C.C.C.C.V.C.V.V.V.C.C.g.V.g.V.g.g.V.V.e.g.e.q.q.7.q.q.q.w.e.e.b.w.w.e.e.w.w.w.w.w.q.w.q.q.q.q.q.q.q.q.9.q.q.9.9.7.6.6.,.,.,.<.<.6.7.6.7.6.7.6.6.6.6.6.6.6.<.6.6.,.,.<.6.6.,.<.,.<.,.,.,.,.,.,.<.6.6.6.r UXUXUX",
|
||||||
|
"UX @.W.Q.Q./.oX).oX).oX).oX).oX).).).).).).oX).).Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.W.E.W.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.E.E.E.E.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.W.W.W.W.E.E.W.E.E.E.E.E.E.E.E.E.E.E.T.T.T.T.T.T.U.U.T.U.U.U.P.P.G.G.D.S.Z.Z.C.C.C.C.C.C.Z.Z.S.S.D.D.G.G.G.G.G.G.P.G.G.G.G.G.G.G.D.G.D.D.S.D.D.D.S.S.S.S.S.S.Z.S.Z.S.Z.Z.Z.Z.Z.Z.Z.Z.Z.C.C.C.C.C.V.V.C.C.V.C.V.g.V.C.g.V.V.g.V.e.g.e.g.e.e.e.w.q.w.w.e.w.w.e.e.w.w.w.w.w.w.w.w.q.q.q.q.q.q.q.q.q.9.q.9.9.q.9.9.7.6.6.6.<.6.6.7.7.7.6.7.6.6.6.6.6.6.6.6.6.,.,.6.6.<.,.,.<.,.<.,.,.,.,.,.,.,.<.<.6.6.r o UXUXUX",
|
||||||
|
"UX n Q.Q.Q./.oXoX).).oX).).).oX).oX).).).).).)./.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.!.W.Q.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.W.W.W.W.W.W.W.W.W.E.E.E.E.E.E.E.T.T.T.T.T.T.T.T.T.U.T.T.U.U.U.U.I.I.I.P.P.P.G.H.G.G.G.G.G.G.D.H.G.P.G.P.P.G.P.P.G.G.G.G.G.G.G.D.D.D.D.D.D.D.S.S.S.S.S.S.S.S.Z.S.Z.Z.S.Z.Z.Z.Z.Z.Z.Z.Z.C.C.C.C.C.V.C.C.C.V.V.C.V.V.V.g.g.g.V.g.g.g.g.e.g.g.V.e.e.e.b.w.e.w.e.w.e.w.w.w.w.w.w.w.q.q.q.q.q.q.q.q.q.9.9.9.q.9.9.9.9.9.9.7.6.6.7.7.6.7.7.7.6.7.6.6.6.6.6.6.,.,.6.,.6.,.6.,.<.,.,.<.,.,.,.,.,.,.,.,.<.<.6.6.r UXUXUX",
|
||||||
|
"UX v W.Q.W.!.).).oX).).oX).).).).).oX).).).).)./.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.Q.W.W.W.W.W.W.W.W.E.W.E.E.W.E.E.E.T.E.E.E.E.T.T.T.T.T.T.U.T.U.U.U.U.U.U.U.I.U.U.I.I.I.I.P.P.P.P.P.P.G.P.G.P.G.P.G.P.G.P.G.G.G.G.G.G.D.D.G.D.D.S.D.D.D.D.S.S.S.S.S.S.S.S.Z.S.Z.Z.Z.Z.Z.Z.Z.C.C.C.C.C.C.C.C.V.C.V.C.V.V.V.V.g.C.g.g.g.g.g.g.g.g.g.e.e.e.e.e.e.e.e.e.w.e.w.w.w.w.w.w.w.q.q.w.q.q.q.q.q.q.9.q.9.q.9.9.9.9.7.9.7.9.7.7.7.7.7.7.6.6.6.6.6.6.6.<.6.6.6.6.6.6.,.6.<.<.,.<.,.,.,.,.,.,.,.,.,.,.,.<.6.7.r UXUXUX",
|
||||||
|
"UXo v W.Q.Q./.).).).).oX).).oX).).oX).).).).).).!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.Q.W.W.W.E.W.E.W.E.W.E.E.E.E.E.E.E.T.T.T.T.T.T.T.T.T.U.U.U.U.U.U.U.U.U.I.U.U.I.I.U.I.I.I.P.I.P.P.G.I.G.I.P.P.G.P.G.P.G.G.G.G.G.D.D.D.D.D.D.S.D.D.S.S.D.S.S.S.S.S.Z.S.Z.S.Z.Z.Z.Z.Z.Z.Z.C.C.C.C.C.C.C.V.C.V.V.C.V.V.V.V.V.V.g.g.g.g.g.g.g.e.g.e.e.e.e.e.w.e.e.w.e.w.e.w.w.w.w.w.q.q.q.w.q.q.q.9.9.q.q.9.q.9.q.9.9.q.7.7.9.7.9.7.7.7.7.7.6.7.6.6.6.6.6.6.6.6.6.,.6.,.,.6.,.<.,.,.,.,.,.,.,.,.,.,.,.,.,.,.<.2.6.e o UXUXUX",
|
||||||
|
"UX v Q.Q.Q./.).).oX).oXoX).).).).).).).).).).).Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.W.W.W.W.W.W.E.W.E.E.E.W.E.E.E.E.E.E.E.T.T.T.T.T.T.U.U.U.T.U.U.U.U.U.U.I.U.I.I.I.I.I.I.I.I.P.P.I.P.I.P.I.G.P.G.P.G.G.G.G.G.G.D.D.G.G.G.D.D.D.D.D.S.S.S.S.S.S.S.S.Z.S.Z.Z.Z.Z.Z.Z.Z.Z.Z.C.C.C.C.C.C.V.C.V.V.C.V.V.V.V.V.V.V.C.g.g.g.g.g.g.g.g.e.e.e.e.e.e.e.w.e.e.w.w.w.w.w.w.w.q.w.q.w.q.q.q.q.q.q.9.9.q.9.9.9.9.9.9.7.9.7.7.7.7.7.7.6.7.6.6.6.6.6.6.<.<.6.,.<.6.,.,.6.6.,.<.,.,.<.,.,.>.,.>.>.,.>.,.>.,.<.6.6.e UXUXUX",
|
||||||
|
"UXo n W.Q.Q./.oX).oX).).).).).).).).).).).).)./.Q.Q.!.Q.Q.Q.Q.Q.!.Q.Q.!.Q.Q.!.Q.Q.!.Q.Q.!.Q.Q.Q.Q.W.Q.!.Q.Q.Q.!.Q.Q.Q.!.Q.!.Q.Q.Q.Q.Q.!.Q.Q.Q.!.Q.Q.Q.!.Q.Q.Q.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.Q.W.W.W.W.W.W.W.W.W.W.E.E.E.E.E.E.E.E.E.T.T.T.T.T.U.U.U.I.T.U.U.U.U.I.I.U.I.I.I.I.I.I.I.I.I.P.P.P.P.P.G.P.G.G.G.G.G.G.P.G.G.G.D.D.D.G.D.D.D.D.S.D.S.S.S.S.S.S.Z.S.Z.S.Z.S.Z.Z.Z.C.Z.C.C.C.C.Z.C.C.g.V.V.A.C.V.C.V.V.A.V.V.V.e.g.g.g.A.g.g.e.e.e.e.e.e.e.w.e.q.w.q.w.w.q.w.w.w.w.q.q.q.q.q.q.q.9.9.q.9.9.9.q.9.9.9.7.9.7.9.7.7.7.7.7.7.7.6.6.6.6.6.6.6.6.6.<.<.6.,.,.6.6.<.,.,.,.,.,.,.,.,.>.,.,.>.>.,.>.,.,.<.<.6.r o UXUXUX",
|
||||||
|
"UX v Q.Q.Q.!.).).).).).).).).).).).).).).).).!.Q.Q.Q.~./.(.(.(.^.(.(.(.^.(.(.^.(.(.^.(.(.(.(.(.(.(.(.^.(.(.^.(.(.(.^.(.(.^.(.(.(.(.(.^.(.(.(.^.(.(.(.^.(.(.^.(.(.(.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.Q.W.~.~.(.^.^.^.^.^.^.R.R.^.^.^.^.R.R.^.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.K.R.R.R.K.R.K.R.K.R.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.L.L.K.L.K.K.S.H.D.S.D.S.D.S.D.S.S.S.S.S.S.Z.S.Z.S.Z.Z.Z.Z.Z.Z.Z.C.C.C.C.A.A.J.J.J.J.v.J.v.v.J.v.v.v.J.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.y.v.v.v.t.v.t.y.v.t.y.y.y.y.t.v.t.t.t.t.v.t.t.t.t.t.t.t.t.t.0.0.7.6.7.6.6.6.7.6.6.6.6.<.6.<.6.6.<.6.,.,.<.,.,.,.,.,.>.,.,.,.,.>.,.,.>.,.1.,.,.<.<.e UXUXUX",
|
||||||
|
"UX x Q.Q.Q./.).).).).).).).).).).).).).).oX&XzXmXmXJXfXfXdXfXfXdXfXGXfXdXfXdXfXGXfXfXfXdXfXGXfXfXGXfXdXGXfXdXdXfXGXfXdXGXfXdXdXfXGXfXdXGXfXdXdXfXGXfXdXGXfXdXdXsXfXgXjXmXzX.XW.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.(.%XxXmXjXfXfXfXfXdXGXfXdXdXGXfXdXdXdXdXdXdXfXfXGXdXdXfXfXdXdXdXdXdXdXGXdXdXdXdXdXdXdXfXGXuXdXdXdXdXdXGXdXdXdXGXdXdXuXdXdXdXdXdXuXdXdXdXdXuXdXdXdXfXjX6XlX].F.S.S.S.S.S.S.Z.S.Z.S.Z.Z.Z.Z.Z.Z.C.Z.A.'.3X6XgXfXGXdXdXuXuXuXuXuXdXuXuXuXuXuXuXuXuXuXuXuXuXuXuXuXuXuXuXuXuXuXuXuXuXuXuXuXuXuXuXuXuXuXuXuXuXuXSXuXuXtXuXuXuXuXuXtXSXuXuXuXuXuXSXuXdXaX4Xf.0.6.6.6.6.6.6.6.6.,.6.,.6.,.,.,.,.,.,.,.,.,.>.,.,.>.>.>.>.>.>.>.,.,.,.<.6.e o UXUXUX",
|
||||||
|
"UX v W.Q.Q.!.).).).).).).).).).)._.).oXzXIXGXuXqX` I H L H G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G H I T _ +.eXdXgXzX(.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.(.xXgXiXwXo.! L L H H G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G H H H I ] X.wXSXsX6XJ.S.Z.S.S.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.A.3XfXSXAX+._ I H H G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G J H H Y | ZXAXiX8Xd.,.6.,.<.,.,.6.<.<.,.<.<.,.,.,.,.,.,.,.,.>.,.=.,.>.>.>.,.>.>.,.,.<.2.e UXUXUX",
|
||||||
|
"UXo n Q.Q.Q./.).).).).).).).)._.).).cXJXDX+.H $ # 9 ` AXfXzX~.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.!.zXfXwXY 7 # o # 9 _ AXfX'.Z.Z.Z.S.Z.S.Z.Z.Z.C.Z.C.'.sXAX_ 9 # o 5 I qXtX4X5.,.6.<.6.,.<.,.6.,.,.,.,.,.,.,.,.,.>.,.=.,.=.>.>.>.>.>.,.,.,.,.<.e UXUXUX",
|
||||||
|
"UX v W.Q.Q./.).).).).).).).).).).cXPXqX8 $ X 4 ` uXlX`.W.W.Q.Q.Q.Q.Q.Q.Q.zXdX` $ 4 X.uXn.V.Z.Z.Z.Z.Z.Z.Z.Z.C.'.GX| 4 X H 9XDXi.,.,.,.6.<.,.,.<.,.,.,.,.,.,.,.>.,.>.,.>.,.>.>.>.>.>.>.>.,.<.<.r o UXUXUX",
|
||||||
|
"UXo n Q.Q.Q./.).).).).)._.).).).,XJXO.4 # $ X H SXlXT.E.W.Q.Q.Q.Q.Q.(.GX_ X # X.dXr.V.Z.Z.Z.Z.Z.C.C.C.sXO.# 4 O.uX1.>.,.,.<.,.,.,.,.,.,.,.>.,.>.,.>.>.,.=.>.>.>.:.>.>.>.,.>.,.2.w o UXUXUX",
|
||||||
|
"UX v W.Q.Q.!.).).).).).).)._.).MXDX5 # $ # Y fXK.T.E.W.Q.Q.Q.Q.zXtX$ 7 tXm.w.V.C.Z.Z.Z.Z.C.'.uX8 5 9Xj.=.>.,.,.,.<.,.,.,.,.,.,.,.,.>.>.,.=.>.>.>.>.>.>.>.>.>.,.<.<.e UXUXUX",
|
||||||
|
"UX v Q.Q.Q.!.)._.).).)._.).).).MXX.$ $ # # 4 eXM.D.U.E.Q.Q.Q.Q.mXX. X qX<X7.w.g.C.C.C.C.C.3XeX# | 8X@.=.>.,.,.,.,.,.>.>.,.>.=.,.,.>.>.>.>.>.:.>.>.>.>.>.>.,.,.2.w o UXUXUX",
|
||||||
|
"UX v W.Q.Q.!.).).).).).).)._.).PX_ # # # # # wX2XC.P.E.W.Q.Q.W.jX_ +.j.>.9.g.C.C.C.C.C.3XZXX Y eXk #.:.,.,.,.,.,.,.,.>.,.>.>.>.>.>.>.>.=.>.>.$.>.$.>.>.,.,.<.w o UXUXUX",
|
||||||
|
"UXo v W.Q.Q.!.).).)._._.)._.).(.JX_ # $ # X 4 5 9 8 J H I I I I I I I I I I I I I I I I I I I I I I I I I I H G G 8 5 # X ZXj.w.S.T.E.Q.Q.E.jXW o 4 8 G G H H H H H H H H H H H H H H H H J G 9 $ O.z.#.<.q.V.C.C.C.C.6XZXo # 5 7 8 8 G H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H G G G 9 5 4 o Y wXh x #.:.>.,.,.,.,.,.>.,.>.>.>.>.>.:.>.=.>.$.>.:.>.$.>.>.,.<.r UXUXUX",
|
||||||
|
"UX v Q.Q.Q.!.)._.).).).).).).oXJX_ # # # o H X.+.ZXc.c.ZXc.ZXqXqXqXZXqXqXqXqXqXZXqXqXZXqXqXqXqXqXZXqXc.qXqXqXZX+.ZXc.+.qXZX{ $ o X ZXl.6.C.I.T.W.W.E.gX_ $ Y +.+.+.qXqXZXc.qXZXc.qXqXqXqXqXc.qXqXqXc.c.c.c.c.ZXX.H X X.k.x ,.q.V.V.C.C.V.5X0X 4 ' +.+.+.c.qX+.qXc.qXqXqX+.c.ZXc.qXZXc.ZXc.c.c.c.c.c.c.c.c.ZXc.c.qXZXc.c.c.c.ZXc.ZXZXc.ZXc.+.+.+.H o T AXy k @.=.,.,.>.>.>.>.>.>.>.>.>.>.:.>.>.=.>.$.$.>.$.>.>.>.,.,.w o UXUXUX",
|
||||||
|
"UXo n W.Q.Q./.).)._._.)._._./.(.PX_ # # # J c.` J s 0 0 2 2 ; < ; < ; < < < ; ; ; < < ; ; < < < < ; < < < < ; < 2 3 s 3 s P qX{ X qXl.:.e.G.E.W.W.T.jXY H c.ZX! V 0 1 ; - ; ; ; : ; ; ; ; ; ; ; : ; ; - 2 2 3 K | ZXX.5 O.} j =.9.g.V.C.C.g.5XqXo $ +.O.L s 0 0 2 1 = = = = = = = = = = = * = % = = = = = = = = % = = = % = = = = = & = 1 ; 1 0 6 C ` +.G Y wXt j v =.>.>.>.,.>.>.,.:.,.>.>.>.:.>.=.=.$.>.$.>.>.>.>.>.,.,.w UXUXUX",
|
||||||
|
"UX v Q.Q.Q.!.).)._.)._._.).(.(.PX_ $ # # O.{ % & * > q q e e t e t t t t e t t t t t t t e t t t t t e t e t t t t e e q q R qX4 X qXQ $.q.S.T.E.W.T.gXW I qX] 1 % * : > > q q q q q e q q w q q q q q q q q q q q > B O.+.G o.} h #.7.e.V.C.C.g.5XqX H c.4 @ + & * : : > > > : > > > > > > > > > > > > > < > : > > > > > : > : : : : : : : : > : * : * * o.X. I wXq h x =.=.,.,.>.>.,.>.>.=.>.=.=.=.:.:.=.>.$.=.$.:.$.>.>.,.,.r UXUXUX",
|
||||||
|
"UX v W.Q.Q.!.)._._.).).)._.).(.PX! # # # # ZXK * q t h j x x x x n v v v v v v n v v v v v v v v v v v v v x v v x v x x k k M wX8 X c.( #.q.S.T.W.W.T.gX_ 5 +.U % * > q t y h h j j j k j j j j j j j j j j j j h a a y e r } +.# X.} h #.6.e.V.C.C.g.5XqXo ` | + * : q e e t y y y y y y y u y y y y y y y y y y y y y y y t t t y t t t t t t t t t t e e e q E qXX Y qXq u x #.>.>.,.>.,.:.:.>.:.>.=.=.:.=.=.=.>.$.$.:.$.>.>.:.>.,.r o UXUXUX",
|
||||||
|
"UX n W.Q.Q.!.).)._._._._._.).(.JXY # # X 4 ZXC q u x #.1.6.6.6.6.7.7.7.9.7.9.7.9.7.7.7.9.7.7.7.0.7.0.7.7.7.q.7.8.7.7.7.6.6.1.3.tXG X ZXQ @.9.S.U.E.E.T.gXY I c.1 * , t h x @.#.=.:.>.>.>.>.>.>.=.>.>.=.>.:.:.=.$.=.$.#.@.z j S wX7 X.} a #.6.w.g.C.V.g.5X9X X.` * > t h j k x x x x x v x x x x x x x x z x z x z z z z z k z k x k z z k k k k k k k j j j h u D wX$ T ZXq h x #.=.>.>.>.>.:.>.>.>.=.=.=.>.=.=.=.$.:.$.=.$.$.=.>.>.,.r UXUXUX",
|
||||||
|
"UXo v Q.Q.Q.!.).)._._._._._.(.(.PX_ # # o 4 ZXZ y x <.q.V.C.C.S.S.S.S.S.Z.S.S.S.S.Z.S.S.S.S.Z.Z.S.S.S.S.S.S.S.S.S.S.Z.Z.Z.C.V.w.uXI # qXQ @.9.S.U.E.E.U.sXY I +.< q u x =.,.6.q.q.w.q.w.w.w.w.q.w.w.w.w.w.q.q.q.q.q.q.7.6.,.$.u.AX8 X.} u #.6.w.V.V.V.g.5XqX X.~ > t j v #.:.:.:.,.,.,.:.,.,.:.>.>.>.:.:.:.=.=.=.=.=.$.=.$.$.=.=.=.$.#.=.#.=.#.#.#.#.#.#.#.@.@.x p.wX4 U wXq u x #.:.>.>.>.:.,.:.,.=.:.=.=.=.=.=.$.$.$.=.$.$.=.>.:.>.,.w UXUXUX",
|
||||||
|
"UX x Q.Q.Q.!._._._.)._._.)./.(.JX_ # # 4 +.S k ,.w.S.G.I.I.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.T.U.U.U.T.U.U.U.U.U.U.U.U.U.U.U.G.S.sX| X 7 ZXS @.9.S.U.E.W.U.gX_ 7 c.R y x >.9.w.V.C.C.Z.Z.Z.Z.Z.Z.C.C.Z.g.g.Z.Z.C.V.C.g.g.g.e.w.8.8Xx.# O.} u #.6.w.g.V.V.e.4XqXX X./ q h x :.<.6.6.7.6.7.7.6.6.7.7.6.7.6.6.6.6.6.6.<.6.<.<.<.<.<.<.<.,.<.,.,.<.,.,.,.,.,.,.,.>.:.=.$.p.qX4 T qXq u x #.:.>.>.>.,.:.:.:.:.:.=.=.$.$.=.$.$.$.$.$.$.$.>.:.>.>.w o UXUXUX",
|
||||||
|
"UXo v W.Q.Q.!.)./.)._._._._./.(.PXW # # 4 qXA @.7.Z.P.T.E.W.E.W.W.W.W.W.E.W.W.W.W.E.W.W.W.~.W.W.W.W.W.E.W.W.E.W.W.W.E.W.E.E.I.{.SXW # 4 O.x.i #.q.S.U.E.E.U.gX_ _ wXl.&.7.e.Z.S.D.D.S.G.G.S.D.S.S.S.S.S.S.S.S.S.Z.S.Z.C.Z.S.'.hXeXG o.} a @.6.w.g.g.g.g.5Xc.o X.[ t k #.<.7.q.q.q.q.q.q.q.q.7.q.9.9.9.9.9.9.9.9.7.9.7.7.6.6.7.6.6.6.6.6.6.6.6.6.<.6.<.,.6.,.,.,.,.a.wX4 Y wX, u z #.=.:.:.,.>.=.=.>.$.>.>.$.$.$.$.$.$.$.$.$.$.:.=.=.:.>.w UXUXUX",
|
||||||
|
"UX @.W.Q.Q.!.)._._._._._._.(.(.PX_ # X 4 qXS #.q.D.T.W.Q.Q.Q.Q.W.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.Q.W.T.D.7XyX+.I 4 X # 7 Y c.c.p a #.w.S.T.E.E.U.gXW X Y qXuX5X{.].H.H.H.H.H.H.S.H.H.H.D.H.F.H.F.F.F.F.F.L.].{.hXuXqX8 X.} u @.6.w.g.g.g.w.5Xx.o O.[ y x >.6.q.w.w.q.q.w.q.q.q.q.q.q.9.q.q.q.9.9.9.9.9.9.9.9.9.9.9.7.7.6.9.6.6.6.6.6.6.6.6.6.6.<.6.,.a.9X4 T qXq y z #.=.=.:.:.>.$.>.$.:.$.$.:.$.>.$.$.$.$.$.#.=.;.$.=.,.,.w UXUXUX",
|
||||||
|
"UX n Q.Q.Q.Q.)._._._.)._._._.(.PXW # X $ qXD #.q.G.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.I.C.d.8XwXZX+.X.{ { | O.+.x.qX! 2 w k >.e.D.U.E.E.U.fX_ 5 ] AXtXuXfXGXdXdXdXfXGXdXdXGXdXdXdXdXdXdXdXdXdXdXuXAXc.L # X.} u @.6.r.g.g.g.g.5Xc. X.} y x :.7.q.w.w.q.w.q.w.q.q.q.q.q.q.q.q.9.9.9.q.9.9.9.7.9.6.9.7.7.9.6.6.6.7.6.6.6.6.6.6.6.6.,.6.,.a.wX4 Y qXq u x #.=.:.:.>.>.>.>.=.$.$.$.$.$.$.$.$.$.#.$.$.$.;.=.=.>.,.w UXUXUX",
|
||||||
|
"UX v W.Q.Q./._._._._././._._.(.PXW # X # qX( #.w.H.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.~.U.S.q.$.M A ( [ | o.| ~ U V ; : q h @.6.C.P.T.E.E.I.sXW X 4 8 H H H H H H H H H H H H H H H H H H H H 7 $ o X.} u @.<.w.g.g.g.g.5XwXX X./ y x >.6.q.q.w.q.q.q.q.q.q.q.9.9.q.9.9.9.9.9.9.9.7.9.9.9.9.6.9.7.6.6.9.7.6.6.6.6.6.<.6.,.6.6.,.,.a.wX4 Y qX, y z @.=.:.>.:.$.>.$.$.>.$.:.$.$.$.$.$.$.$.#.#.;.1.=.=.:.1.w UXUXUX",
|
||||||
|
"UXo v W.Q.Q.!._.)./._./._././.^.JXY # o { 0X4.w.H.~.W.Q.Q.Q.Q.Q.!.Q.Q.Q.Q.!.Q.Q.Q.Q.Q.Q.!.Q.Q.Q.!.Q.Q.!.Q.Q.!.Q.!.Q.Q.Q.Q.E.T.P.V.9.$.k y e > : > : > > q e a @.,.e.S.I.T.W.T.U.sXW X.} y @.<.w.g.g.g.e.4Xc.o X./ y x >.6.q.w.q.q.q.q.q.q.q.q.q.q.9.q.9.9.9.9.9.9.7.9.9.7.6.7.6.7.7.6.6.6.6.6.6.6.6.<.<.6.<.<.<.<.a.wX4 Y wXq u k #.=.=.=.=.=.=.$.=.:.$.$.$.$.$.$.$.#.$.#.$.;.1.$.$.,.:.w UXUXUX",
|
||||||
|
"UX v Q.Q.Q.!.)./.)./._./.)._.(.PX! # 4 +.tXaX6XmXxXxXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXxXlX6X2Xj.h.p.D S f y y a j x $.6.w.S.G.T.T.E.T.U.sX_ O./ h @.<.w.g.g.g.e.5XqX +.} y x >.6.q.q.q.q.q.9.q.q.7.q.7.9.q.9.9.9.9.9.9.9.9.6.9.6.9.7.6.6.6.6.6.6.6.6.6.6.6.<.6.<.<.6.<.,.a.0X4 T qX, y z @.#.=.=.=.=.$.=.$.$.$.$.$.$.#.$.#.$.#.#.$.1.;.#.=.=.,.w o UXUXUX",
|
||||||
|
"UXo n W.Q.Q.!././._._././._./.^.PXY # 4 I ` c.9XeXwXeXAX0XAXeXAXtXAXAXwXtXAXwXeXwXAXeXeXeXAX0XAXAXeXeXAX0XAXeXAXtXAXeXeXwX0XwXwXeXrXeXeXeXAXtXiX<Xi.>.6.9.e.S.P.U.T.E.E.T.U.sX! X qX( u @.<.q.g.g.g.w.4XqX X./ y v >.6.9.q.q.q.q.q.q.q.q.q.7.9.9.9.9.9.9.9.6.6.9.7.9.9.9.6.9.6.7.6.6.6.6.6.6.6.,.6.<.<.<.<.<.,.a.wX4 Y 9Xq y k #.=.=.=.=.$.$.$.=.$.$.$.#.$.#.#.#.$.#.$.=.5.;.=.=.=.>., UXUXUX",
|
||||||
|
"UX v Q.Q.Q.!._.)./._./._._._.(.JXY X X # X # # # # X # # # # X # # # # # # # X # # # # # X # # # # X # # # # # # # # X $ $ $ 4 7 H ` qXAXaXM.Z.D.P.U.T.E.T.E.T.I.sXW 7 qXZ u @.<.w.e.g.g.r.4XwXX X./ y x :.6.q.q.q.q.q.q.q.7.q.9.q.9.9.9.7.9.9.9.9.9.6.7.6.6.6.6.6.6.6.6.6.<.6.6.<.<.6.<.<.<.<.<.<.,.a.wX4 Y qXq y k @.$.=.$.$.$.=.$.$.$.$.$.$.$.$.#.$.#.#.#.;.3.;.#.=.=.>.w UXUXUX",
|
||||||
|
"UXo x Q.Q.Q.!._./././._._././.(.JX] X X 8 o.uXkXG.U.T.E.E.T.E.T.P.sX_ X X.c.w h @.6.q.e.V.V.w.4XqX X.[ y z >.6.9.b.q.q.q.q.q.9.q.9.9.9.9.9.9.7.9.6.9.7.7.6.7.7.6.6.6.6.6.6.<.6.<.6.<.<.6.<.<.<.<.<.,.,.a.0X4 Y qXq y k @.$.$.$.:.$.$.$.#.$.$.$.$.#.#.#.$.#.#.#.3.1.;.#.=.$.>., X UXUXUX",
|
||||||
|
"UX v W.Q.Q.!._.)./._././././.~.jX+.X X Y SX{.U.U.T.E.E.E.T.U.sXW $ | ZXs q h #.6.w.e.e.e.e.4XqX O./ y z :.6.9.9.9.q.7.q.7.9.q.9.9.9.9.9.7.9.9.9.6.7.7.7.7.6.6.6.6.6.6.6.6.<.6.6.<.<.<.<.,.<.,.,.,.,.s.AX4 Y 9Xq y k @.$.$.:.$.$.$.$.$.$.#.$.#.#.$.#.#.#.#.;.3.1.&.#.$.$.:.w UXUXUX",
|
||||||
|
"UX v Q.Q.Q.!._././._././././.(.xXSX5 X { fXF.P.T.T.T.E.U.P.sXW # 7 _ +.O.d : t k =.8.w.e.e.b.w.4XwXX X./ y z >.6.9.q.q.q.q.9.q.9.9.9.9.9.9.9.7.7.7.7.7.6.7.7.6.6.6.6.6.6.6.6.6.6.6.<.<.<.<.<.<.,.,.<.<.:.a.wX4 T ZX> y k @.#.$.$.$.$.$.$.$.$.$.#.#.$.#.#.#.#.#.3.3.3.&.#.$.:.>.w UXUXUX",
|
||||||
|
"UX x Q.Q.Q.!././._./._._././.(.R.GXo.$ 7 tXn.S.I.U.T.T.T.I.sX_ $ 7 8 H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H G G H I ] X.+.ZXc.L 2 * w u v ,.q.w.e.V.e.w.4XqX X./ y b :.<.9.9.q.q.7.q.7.9.9.9.9.7.9.7.7.7.7.7.7.7.6.6.7.6.6.6.6.6.6.<.<.<.<.<.<.<.<.<.,.<.,.,.,.,.a.wX4 T wXq y k v $.$.$.$.$.$.$.$.#.#.$.#.#.#.#.#.#.&.3.3.3.;.#.=.$.:.w UXUXUX",
|
||||||
|
"UX n Q.Q.Q.!./._./._././././.~.R.{.uXc.G X $ wX2Xg.D.I.T.T.T.I.sX_ 4 ' +.+.+.c.c.c.c.c.qX+.c.qXc.c.c.ZXc.+.c.+.c.qXqXc.qX+.+.qXZXqX+.+.9Xc.c.+.qX+.c.c.X._ P 6 = & * q y z $.6.q.w.g.e.e.w.4XqXo +./ y z >.6.9.9.9.7.9.q.7.9.9.9.7.7.7.7.7.7.7.7.6.6.6.6.6.6.6.6.6.6.6.6.<.<.<.<.<.<.<.,.<.,.,.,.,.:.a.wX4 Y qX> y k @.#.$.$.$.$.$.#.#.$.#.#.#.#.#.#.#.#.-.3.3.3.&.#.$.$.:.w UXUXUX",
|
||||||
|
"UXo v Q.Q.Q.!./././././././././.`.H.t.yXAX+._ G 5 $ X o X X X o o X X X o X X X o X X X o X X X X o o # 9Xj.9.Z.P.U.T.U.P.gXY $ O.O.L 6 0 2 2 2 2 1 2 2 2 2 2 2 2 ; 2 2 2 2 2 2 ; 2 2 2 2 2 ; 2 2 2 2 1 2 2 2 2 - & & & * * : > e u k #.,.9.w.e.g.e.e.w.4XwX o./ y z $.6.9.9.9.7.q.9.9.9.7.9.9.7.9.7.7.7.6.7.6.7.6.6.6.6.<.<.6.6.<.<.<.<.<.<.<.<.,.,.,.,.,.,.,.,.a.wX$ Y qXq y k v #.$.$.#.$.$.#.$.#.#.#.#.#.#.#.v #.3.3.3.3.&.#.$.$.>.w UXUXUX",
|
||||||
|
"UX v Q.Q.Q.!._././._././././.(.^.K.e.>.F ) 9Xc.qXqX+.c.c.c.+.+.+.+.+.c.+.+.+.c.+.+.+.c.+.+.+.c.+.ZX+.+.O.{ ] I 8 $ X c.l.>.e.D.U.U.U.P.sX_ G +.0 % & * > > > q q , q , , q , q , , , > q , , > , , , > > > , , , > > , , > > > q q q q e t u j x =.,.7.w.e.e.e.e.e.q.4XqX o.[ y z =.6.6.9.9.q.9.9.9.9.9.9.7.7.7.7.7.6.7.6.7.6.6.6.6.<.6.6.<.<.<.<.<.<.<.<.,.,.,.,.,.,.,.,.:.:.a.wX4 Y ZX, y k v #.$.$.#.$.#.$.#.#.#.#.#.#.#.#.#.&.3.-.3.&.&.#.#.$.>.w UXUXUX",
|
||||||
|
"UX x W.Q.Q.!././././.!./././././.Y.Z.q.$.z i g B P P E E E ! E E E W E E E W E E E W E E E W E E E E ] ~ ' X.qXqXc.I X qXl.=.q.S.P.U.U.P.sXY Y c.% * q t y a h h h h h h h h a a h a h h h h f h a h a f a h a u u h u a u u u a u a h j j z @.#.>.6.7.q.e.e.e.e.e.e.q.4XqXX o./ y z $.6.9.9.9.7.9.9.7.7.7.7.7.7.7.7.6.7.6.6.6.6.6.6.6.6.6.<.6.<.<.<.<.<.<.,.<.,.,.,.,.,.,.,.,.,.s.wX4 T ZX> y j @.#.#.$.$.#.#.#.$.#.#.#.#.#.#.v #.3.-.3.3.&.%.@.$.$.$.w UXUXUX",
|
||||||
|
"UXo v W.W.Q.!._./././././././.!./.~.P.C.9.>.x j y t q q q > > > > > > > > > > > > > > > > > > > > > > > > : : < s ^ ZX8 # qXQ #.9.Z.P.U.U.P.sXW Y qX* q u k v #.$.=.=.$.$.=.$.$.=.#.$.#.#.#.$.#.#.#.#.*.#.#.#.#.#.#.#.#.#.@.@.@.@.@.@.*.#.#.=.=.,.6.9.q.w.w.e.e.e.e.e.w.q.4XwXX X./ y z $.<.7.9.9.9.9.7.9.7.7.7.7.7.7.6.7.6.6.6.6.6.6.6.<.6.<.6.<.<.<.<.,.<.<.<.,.,.,.,.,.>.,.>.,.=.s.eX4 Y qX, y j x #.#.#.#.$.#.$.#.#.#.#.#.@.@.#.-.-.-.-.&.3.%.#.$.$.=.q UXUXUX",
|
||||||
|
"UX v W.W.Q.!././././.!./././././.~.U.P.Z.b.6.>.@.x k k h h h h a h f f u h u h f f f f f h f f h u u h h a u y y t x.` X qX( v 6.Z.G.U.U.G.sX_ T qX, u x =.<.6.7.7.7.7.7.7.7.8.7.7.6.7.7.7.7.6.6.6.7.7.6.6.6.6.<.<.<.<.<.<.<.,.6.6.<.6.6.7.7.9.9.q.q.e.e.e.e.V.e.e.e.e.q.4XqX X./ t z $.6.7.9.7.9.7.9.7.7.7.7.7.7.7.6.6.6.6.6.6.6.6.<.6.<.6.<.<.<.<.<.<.,.,.,.,.,.,.,.,.,.>.,.>.=.a.wX4 U qX, y j v #.#.$.#.#.#.#.#.#.@.@.@.#.@.#.&.3.-.-.-.&.%.@.$.$.=.q UXUXUX",
|
||||||
|
"UX n Q.Q.Q.!././././././././././.Q.W.T.Y.].N.5X5XaX4Xj.a.5.=.>.=.=.$.:.=.=.$.:.=.=.=.=.=.=.:.:.:.$.=.=.=.$.$.#.v z k.c. X qX( v 6.C.G.U.U.H.sXW T ZXe j =.6.w.e.V.g.V.V.V.e.e.V.e.V.e.e.e.e.e.e.e.e.e.e.w.w.w.w.w.e.w.w.w.w.w.r.w.q.q.q.w.w.e.e.e.e.e.e.e.e.e.e.e.w.e.w.q.4XqX X./ y k $.<.6.9.9.7.7.7.9.7.7.7.6.7.6.6.6.6.6.6.<.6.6.6.<.<.<.<.<.<.<.<.<.,.,.,.,.,.>.>.,.>.,.>.,.$.s.wX4 Y qX, y j v #.#.#.#.#.#.#.#.@.#.@.@.@.@.&.-.-.-.&.&.&.$.@.#.$.=.q UXUXUX",
|
||||||
|
"UXo v Q.Q.Q.!./././././.!./.!./.!.Q.(.xXgXdXeXwXqXqXZXwXtXdXhXB.w.w.e.e.e.e.e.e.e.e.e.w.e.e.w.V.e.e.e.e.w.w.w.q.9.6.<XqXX X c.Q x 6.C.D.U.I.P.sXW Y wXy x <.w.V.C.Z.Z.C.Z.C.C.Z.C.C.V.C.V.C.C.V.V.V.V.V.g.V.V.g.g.g.g.g.g.g.g.y.M.6XaXdXfXiXaXhX7Xy.e.e.e.e.e.e.w.e.e.w.w.q.4XqXo O.[ t z $.<.6.7.9.9.7.7.7.7.7.7.7.6.6.6.6.6.6.6.6.<.<.6.<.<.<.<.<.<.,.,.,.,.,.,.,.,.,.,.,.,.>.>.>.>.a.9X4 U qX> y j v v $.$.#.#.#.@.#.#.#.@.@.@.%.&.-.&.-.&.-.&.%.#.#.*.=.q UXUXUX",
|
||||||
|
"UX x Q.Q.Q.!.!./.!./././.!.!././.%XgXtX_ 8 $ o # 4 L c.uX6XH.G.G.G.G.P.G.G.G.G.G.G.G.G.G.G.G.H.G.G.G.H.D.S.C.2XwXX X ZXQ x 6.C.G.I.U.P.sX_ Y wXu @.6.e.C.S.Z.S.Z.S.Z.Z.Z.Z.Z.C.Z.C.C.C.C.C.C.V.C.V.C.V.C.g.C.g.g.g.y.6XGXeXqX{ Y Y Y ' qXAXuX5Xv.w.w.e.e.w.e.e.w.w.q.4XqXX X./ t z $.<.6.9.7.7.7.7.7.7.6.7.6.6.7.6.6.<.6.6.6.<.6.<.6.<.<.<.<.,.<.,.,.,.,.,.>.>.,.>.>.,.>.,.>.=.a.wX4 Y 9X, y h v v #.#.#.#.v #.#.@.@.@.@.v &.-.-.%.&.&.-.&.%.@.#.#.=.q UXUXUX",
|
||||||
|
"UXo v W.Q.Q.!././././././././.!.#XGX| 4 X H SX6XI.U.E.`.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.T.E.U.I.3XZXX X c.Q z 6.V.G.I.I.G.sXW Y wXu @.6.e.Z.Z.S.Z.S.Z.Z.Z.Z.Z.Z.Z.Z.Z.C.C.C.C.C.C.C.C.V.V.C.C.g.C.A.'.GXwXT 4 o $ L qXdXm.w.w.w.e.e.w.w.w.q.4XqX X./ t z $.<.6.7.7.7.7.7.7.7.7.6.6.6.6.6.6.6.6.<.<.<.<.<.<.<.<.<.,.<.,.,.,.,.,.,.,.,.,.,.>.>.>.>.>.$.s.qX4 I ZX> y j x v #.#.#.#.#.v #.@.@.@.@.%.-.&.-.-.-.%.%.-.%.@.#.$.$.q UXUXUX",
|
||||||
|
"UX v Q.Q.Q.!.!./.!./.!.!./././.mXqXX I dXK.U.E.E.W.W.Q.W.Q.W.Q.W.W.W.Q.W.W.Q.Q.W.W.W.~.T.kXAXX X ZXQ x <.V.G.I.I.G.sX_ Y wXy @.6.e.C.Z.S.S.Z.S.Z.Z.Z.C.Z.Z.Z.C.C.C.C.C.C.V.C.V.V.C.V.g.C.C.g.sXX.$ $ ' DXt.9.w.w.w.w.w.q.q.4XqX X./ t j $.<.6.7.7.7.7.6.6.6.6.6.6.6.6.6.<.6.<.<.6.<.<.<.<.,.<.,.<.,.,.,.,.,.>.>.,.,.>.,.>.>.>.:.>.>.s.ZX4 I qX, i j x #.#.#.#.#.#.#.@.@.@.@.@.-.&.&.%.%.-.-.%.&.*.@.@.#.=.> X UXUXUX",
|
||||||
|
"UX x Q.Q.Q.!./././.!././.!.!./.JXY 5 SX'.H.T.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.kXAXX # +.Q x <.V.G.I.U.G.fXW I eXy @.6.e.Z.Z.S.Z.Z.Z.Z.Z.Z.Z.C.C.C.C.C.C.C.C.V.C.V.V.C.V.V.g.g.g.n.SX7 # wX2X6.q.w.w.w.w.w.q.4XqXo O.[ t z $.,.6.6.7.7.7.6.7.6.6.6.6.6.<.6.6.6.<.<.<.<.<.<.<.<.,.,.,.,.,.,.,.,.,.,.>.>.>.>.>.>.>.>.>.$.a.AX4 H qXr y h x v #.#.#.v #.#.v @.@.v %.%.-.-.%.&.%.%.%.&.*.@.@.*.$.q UXUXUX",
|
||||||
|
"UX n Q.Q.Q.!././.!././.!./.!./.JXI 4 wXm.C.P.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.lXZXX X ZXQ x <.V.G.P.I.G.sX_ Y wXy @.6.w.Z.Z.S.Z.Z.Z.Z.Z.Z.C.Z.C.Z.C.C.C.C.C.C.C.C.V.V.V.V.C.g.g.N.SX$ X.8X,.6.q.w.w.w.q.q.4XqXo | ..t k #.,.6.7.7.6.6.6.6.6.6.6.6.6.<.6.6.<.<.<.<.<.<.<.,.<.,.,.,.,.,.,.,.>.,.>.>.,.:.>.>.>.>.:.>.$.j.wX$ G qXp t j x v #.#.#.#.v #.v v #.%.-.*.&.&.-.%.%.%.%.%.*.*.@.@.$., o UXUXUX",
|
||||||
|
"UXo v Q.Q.Q.!.!.!././.!./././.~.gXI # qXj.q.S.T.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.mXO. X ZXQ x 6.V.S.P.I.G.sXY I wXy @.6.w.C.Z.Z.Z.Z.Z.Z.Z.Z.Z.C.C.C.C.C.V.C.V.V.V.V.V.V.V.V.C.g.g.7XeX# X.<X@.,.6.q.q.w.q.q.<X9X ] O.t k #.,.6.6.7.6.7.6.6.6.6.6.6.6.<.<.<.<.<.<.6.<.<.,.,.,.,.,.,.,.>.>.,.,.>.,.>.>.>.>.>.,.:.>.:.$.j.qXX 8 qXB e h x v #.#.v #.v v #.#.v -.&.-.-.%.%.%.%.%.-.%.*.*.@.#.$.q UXUXUX",
|
||||||
|
"UX v Q.Q.Q.!././.!.!.!./.!./.~.GXI O.yX2.V.P.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.Q.W..XfXL # c.Q z <.V.D.P.I.G.sX_ G qXD n 8.e.C.C.Z.Z.Z.Z.C.C.C.C.C.C.C.C.V.C.C.C.V.C.V.V.V.g.V.g.g.g.aXc.o X.z.z =.6.q.q.w.q.9.4XqXo H ZXN k #.<.6.6.6.6.6.6.<.6.<.6.<.<.6.<.<.6.<.<.<.,.,.,.<.,.,.,.,.,.>.,.>.>.>.>.>.=.:.>.>.:.:.:.,.5.yX_ $ qXE t h x v #.v #.v #.#.v v %.%.-.%.%.%.%.%.%.%.%.*.*.x @.#.$.q UXUXUX",
|
||||||
|
"UX x W.Q.Q.Q.!.!./.!./.!./.!.(.gXI 8 wXiX5XkX}.%X%X.X.X.X.X.X.X#X%X.X.X.X%X$X$XzXmXfXc.# X ZXQ z <.V.G.P.P.G.fXW X | AX<Xf.B.'.'.'.'.'.'.'.{.n.'.n.'.n.'.n.n.n.n.n.'.n.n.n.n.n.M.7XfXAX8 X.} j #.,.7.q.q.q.7.4XqX # +.tXk.j.a.f.f.d.B.d.d.d.d.d.d.f.f.i.d.d.i.d.i.i.i.d.a.d.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.s.a.a.j.<XtXqX4 _ 9Xz.N k v v #.v #.v v v #.3.%.%.%.-.%.-.%.%.%.%.*.*.@.@.@.$.> UXUXUX",
|
||||||
|
"UXo v W.W.W.Q././.!.!.!././.!.`.GXI 9 ` qXeXtXtXuXuXuXtXSXuXuXuXuXuXyXSXtXtXtX0XO.Y $ X +.Q x <.V.D.P.P.G.sXW X Y c.wXeXtXtXtXtXtXtXtXtXtXSXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXeXAX| 7 X.} f v ,.6.q.q.q.7.<XwX 4 Y qXwXwXeXeXtXeXeXtXeXeXeXeXeXeXeXeX0XAX0XeXeXtXeXeXeXeXeXeX0XeXwXeXeXAXeXeXeXeXeXeXeXwXwXwXc._ 4 J ZXAXp.v v v #.v v v #.-.-.-.%.%.%.%.*.%.M *.%.M *.@.@.#.#.> o UXUXUX",
|
||||||
|
"UX v W.Q.Q.!././.!./.!./.!./.`.GXI o $ $ 4 4 5 5 5 5 4 5 5 5 5 5 5 4 4 $ # # c.Q x <.V.S.P.I.D.sX_ X $ 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 4 # X./ y v ,.6.q.q.q.7.4XqXX # # 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 4 4 $ # o $ ` wXpXu.v v #.v v %.%.%.%.%.-.m %.%.%.*.*.*.%.*.x @.#.#.> o UXUXUX",
|
||||||
|
"UX n Q.Q.Q.!.!.!.!.!.!.!.!.!.~.gXU # c.Q x ,.V.S.P.P.D.gX] c./ y x :.7.q.q.q.9.4XZXX 8 O.eX<XM v v %.-.%.%.%.%.%.-.m m *.%.*.*.*.*.x @.#.#.q UXUXUX",
|
||||||
|
"UXo v Q.Q.Q.!.!.!././.!.!.!.!.~.jX{ 4 c.A x <.V.S.G.P.D.hXO. # ZXR y x :.6.7.q.q.7.f.wX$ # I ZXtXh.%.%.%.-.%.m -.m %.m m *.M M *.*.n x *.@.*.> o UXUXUX",
|
||||||
|
"UXo x Q.Q.Q.!.!./.!./.!.!.!./.~.lXeX4 I AXg x 6.V.G.G.P.G.3XeX5 G c.B y x :.6.7.q.9.7.t.tXH $ ' wXSXa.-.%.%.*.-.*.*.M *.*.m m *.*.n x @.@.*., UXUXUX",
|
||||||
|
"UX v W.Q.Q.!.!.!.!.!.!.!.!.!.~.K.dX{ X 8 +.^ t x 6.V.S.P.P.D.A.dXO.# 5 +.| , y v ,.6.9.q.q.7.<.8XZX5 8 +.SXz.D %.*.*.*.*.*.*.m m n n n *.x x @.$.< UXUXUX",
|
||||||
|
"UX v Q.Q.Q.!.!.!.!.!.!./.!.!.~.I.N.uXX.5 # I c.| , y #.7.V.S.P.P.G.C.B.iX+.7 X G +.+.2 q f v ,.6.q.q.9.9.6.1.yXqXJ X o o X $ I AXSXk.-.*.M *.M *.n n n m n n x @.@.@.> o UXUXUX",
|
||||||
|
"UX x Q.Q.Q.Q.!.!.!.!.!.!.!.!.~.U.Z.d.uXZX| H 5 # X 4 G Y c.qX! < q j =.q.Z.G.G.G.G.Z.w.i.rXAXX.I 7 # o o $ 8 I X.+.{ 2 : e j #.<.6.9.9.q.7.6.:.-.z.wX+.I 8 $ X X # X X X 4 ] SXSXF M n *.n n m n n *.b x v @.@.> o UXUXUX",
|
||||||
|
"UX n Q.Q.Q.Q.!.!.!.!.!.!.!.Q.W.T.G.w.1.p.9XwXc.qXc.| ' _ _ _ _ _ ] ] ] ] ] _ _ ] ] _ ] _ ] _ _ ] _ ] ] ] _ _ _ _ ] _ ] ] ] _ _ _ _ _ _ _ _ _ ] ] _ ] _ ] _ _ _ _ ' ' O.+.ZXc.c.E 3 = , y x <.w.Z.G.P.P.G.S.V.6.#.D z.qXc.c.c.| { ] ] _ ] _ _ ] ] _ _ ] ] ] _ _ _ ] _ _ ] _ _ ] ] ] _ _ _ _ _ _ ] _ _ ] _ _ _ _ _ ] _ _ ] _ _ ] ] _ _ _ _ _ ] ] ] _ ] _ _ _ ] _ _ _ ' X.+.+.+.qX] 6 & * , f z =.<.7.q.q.q.7.6.,.#.k S / wXc.c.c.X.{ ] _ ] ] _ _ ] _ _ _ _ _ _ _ _ _ _ ] ] _ _ _ _ _ ] _ _ _ ] ] ] _ _ ] _ ] _ _ _ _ ] ] ] _ _ _ _ ] _ Y Y I I 8 4 X X # X X X X X 7 ZXc.*.b *.*.m M m n n x x v @.@.> UXUXUX",
|
||||||
|
"UXo v Q.Q.Q.!.!.!.!.!.!.!.!.!.!.E.P.Z.9.$.k g Z P ! [ [ .| .| o.| | | | | | o.| | | | .| ...| | | | o.| | | o.| | .| | | X.| | X. .o.| | | | | | | | | | | | { ' ^ P V 6 & * : q y x :.q.C.S.G.P.G.G.D.C.q.,.x h p B P E [ ' | | | | | | | | | | | | ..| | | | | | | | | | | ..| | | | | | | | | | | | | | { | | | | | | | | | | | | | | | | | | | | | | | X.| ` ~ U J 6 = + & : q y j #.,.6.7.q.7.9.9.7.6.=.v h e r s K P ] ` | | | | | | | | | { { | | | | | | | | { | | | | | { | | { { { | | | { { | | { | | { | { | | | { | O.c.c.+.+.+.` # X X X X # X # X X # J SXD N c b n b b n n n x x @.@.> o UXUXUX",
|
||||||
|
"UX v W.Q.Q.Q.!.!.!.!.!.!.!.!.Q.W.T.P.C.7.:.x u t e q > : : : : * : : * : : * : : : * : * * * * * : * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * : : > , w y h x >.9.V.Z.G.P.P.G.G.G.Z.V.9.>.v j t q > > * * * * & * * & * & & & * & & * & & * * & * & & & & & & & & & & & & & & % & & & & & % & & % % % % & & & % % % % % % & & % & % % & % & % & * * * > , e f k @.>.<.7.7.9.7.9.9.7.6.,.#.x h t q > : * & & + + + % + + + + + % + + % + + + + + + @ + + % + @ @ + @ + @ @ + + + @ @ + @ + + @ @ @ @ @ @ @ @ @ @ + = 0 L ZXI o X # # X X X X X X X $ AXl.a N n n b n b b b x x @.@.> o UXUXUX",
|
||||||
|
"UXUXn W.Q.Q.!.!.!.!.!.!.!.!.!.!.Q.E.T.H.C.q.<.=.x k j u a u y y y y y y y y y y y y y y y y y y y y y y y y y y t y t y t y y t t t y t t y t y t t t t t t t e t t t t t y u h k x $.,.q.V.Z.G.G.G.P.G.G.G.S.Z.V.q.6.#.@.j h y y t e e e e q e q e q e q e q q e q q q q q q q e q q q q q q q q q q q q q q q q q q q q q , q q q , , , q , q , , , , , , , , , , , q , q q t y f h x @.,.<.6.7.q.7.q.9.9.7.6.6.>.=.v k f y e q , , , > > > > > > : > : > : > > : : : > : : : : : : : : : : : : : : * : : * : : * : * : : * : : * : : * ; * * & ~ +. X X X X X X X X # X X X # ZXz.a l c b n b n n b x x v @.< UXUXUX",
|
||||||
|
"UXUXx W.Q.Q.!.!.Q.!.!.!.!.Q.!.!.Q.W.E.T.P.S.C.w.7.<.>.=.$.$.*.#.#.#.#.#.#.#.#.#.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.v v @.v v v @.v v v v v v v v x v x v x v x v x x x x v v @.#.=.>.,.7.e.C.Z.S.G.G.G.G.G.G.G.G.S.Z.V.w.9.,.>.#.@.x x z k k k k k k k z k j k j j j j j j j j j j j j j j j j j j j a a j j j a j h h j a j a j a h h h h h h h a f h h f f f f f u h u h h h j j z x #.=.,.<.7.9.q.9.9.9.7.7.9.7.6.6.,.=.@.v k j h y y y y y y t t t y y t t t t t t t t t t e t t e t e t e e t e e e e e e e e e e e e e e e q w e w w w q q q > R qX$ X X X X # X X X X X X X X ZXz.i a c b b M b b c x x x @.: UXUXUX",
|
||||||
|
"UXUXx W.Q.Q.Q.!.!.!.!.!.!.!.Q.!.Q.Q.Q.E.E.U.P.D.Z.C.g.e.w.w.w.w.w.q.q.q.q.q.q.q.q.q.q.q.q.9.q.9.9.9.9.7.7.9.7.9.9.9.7.7.9.7.7.7.7.7.7.7.6.6.6.7.6.6.6.6.6.6.6.6.6.6.6.6.6.6.7.q.w.V.C.Z.S.G.G.G.G.P.P.G.P.G.G.G.S.S.Z.g.w.q.7.6.<.,.,.,.,.>.>.>.>.=.=.=.>.=.>.=.=.=.=.:.=.$.=.$.=.$.$.$.$.$.#.$.=.$.$.#.#.#.$.#.#.#.#.*.#.@.#.#.#.@.@.@.@.@.@.@.@.@.v @.@.@.v v @.v v v v @.@.$.=.:.,.6.6.7.7.9.9.9.9.9.9.7.7.7.6.6.<.<.,.=.$.v @.x x z z z z k k x k k k k k k j j k j j j j j j j j j j j j h j h j h j h h h h h h h u h h h f h h f u f f y t A qX$ X # X X # X X X X X X X X # ZX/ r g l c M n c *.c z x @.x : o UXUXUX",
|
||||||
|
"UXUXx E.Q.Q.Q.!.!.!.!.!.!.!.Q.!.Q.Q.Q.Q.W.W.E.U.U.P.P.G.H.G.G.G.D.H.H.G.D.D.D.S.D.D.S.S.D.S.S.D.S.S.S.S.Z.S.S.S.S.S.Z.S.Z.Z.Z.Z.Z.C.C.Z.Z.Z.C.C.C.C.C.C.V.C.V.V.V.V.V.V.V.C.C.Z.S.S.S.G.G.P.G.P.G.G.G.G.G.G.G.D.D.S.S.S.Z.C.g.e.e.w.w.q.q.w.w.q.w.w.q.q.q.w.q.q.q.q.q.9.q.9.9.9.9.9.9.7.7.7.7.9.7.7.7.7.7.7.7.6.6.6.6.6.6.6.6.6.6.<.<.<.<.<.<.<.<.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.<.6.7.7.9.9.9.9.7.9.9.9.7.7.7.7.7.7.6.6.,.<.,.,.:.=.$.$.=.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.@.@.@.@.v @.@.v v v v @.v v x v v x x x x x x x x x x x x z x z x z k k j D qX4 X # # X X X # X X X # X X X X ZX/ r i l c n c n c z z x x v : X UXUXUX",
|
||||||
|
"UXUXk T.Q.Q.Q.!.!.!.Q.!.Q.!.!.Q.Q.Q.Q.Q.Q.!.W.W.W.E.E.T.E.T.T.T.E.T.T.E.T.T.T.U.U.U.U.U.U.I.U.U.I.U.I.U.I.I.I.I.P.I.P.P.P.P.P.P.P.G.P.P.G.G.G.G.G.G.G.D.G.D.G.G.G.G.G.S.D.D.D.G.G.G.G.G.G.P.G.P.G.P.G.G.G.G.D.D.G.D.S.S.S.S.Z.Z.C.C.C.C.C.V.C.V.g.g.C.g.g.g.g.g.g.g.g.g.e.g.g.e.e.g.e.e.e.e.e.e.e.w.e.w.w.q.w.q.w.w.w.w.q.q.q.q.q.q.q.q.q.q.9.9.9.9.q.7.7.q.9.9.7.7.7.7.7.7.7.7.7.7.q.7.9.9.9.9.9.7.7.7.7.7.7.7.7.6.7.6.6.<.<.<.<.,.,.,.>.,.>.,.>.>.,.>.>.>.:.=.=.=.=.=.=.=.=.=.=.=.$.$.$.$.=.#.$.$.#.$.#.$.#.#.#.#.#.#.@.@.@.v @.@.v @.v v v x x D qX4 X X X X X X X X X X X X X X X X ZX` w i l l b c b *.z z x v x * UXUXUX",
|
||||||
|
"UXUXj U.Q.Q.Q.!.!.!.Q.Q.Q.!.!.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.Q.W.Q.W.Q.W.Q.W.W.W.E.W.E.W.W.T.T.W.T.E.T.E.E.T.E.T.T.T.T.T.T.T.T.U.U.U.U.U.U.U.U.I.I.I.I.I.I.I.I.I.I.P.P.P.G.P.P.P.P.G.G.G.G.P.G.P.G.G.G.G.G.G.G.G.G.G.D.D.D.D.D.D.D.S.S.S.S.Z.S.Z.Z.Z.Z.Z.Z.Z.C.C.C.C.C.C.C.C.C.V.C.V.g.C.g.C.g.C.g.g.g.g.g.g.g.g.e.g.g.g.e.e.e.e.e.e.e.w.e.w.w.w.e.w.w.w.w.w.q.q.q.q.q.q.q.q.9.q.9.9.9.q.q.q.9.9.9.9.9.7.7.9.7.9.7.7.7.6.6.7.6.6.6.6.6.<.6.<.6.<.<.,.<.<.,.<.,.,.,.,.,.,.,.=.,.=.,.=.=.>.:.>.=.:.:.:.=.=.:.:.$.:.$.$.$.$.$.#.$.$.$.$.#.#.#.#.#.#.#.@.@.@.v p.wX4 X X X X X X X X X X X X X # X X X ZX[ w i l l c *.c k x x x v k * UXUXUX",
|
||||||
|
"UXUXu G.Q.Q.Q.Q.!.Q.!.!.!.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.Q.W.W.W.W.W.W.W.E.W.E.W.E.E.E.E.T.E.T.E.T.T.T.T.T.T.U.U.U.U.U.U.U.U.U.U.U.I.U.I.I.I.I.I.I.I.P.P.P.P.P.P.G.P.P.P.G.P.G.G.G.G.G.G.D.D.G.D.D.D.D.S.S.S.S.S.S.S.S.S.S.S.Z.S.Z.Z.Z.Z.Z.Z.Z.C.C.C.C.C.C.C.C.C.C.g.C.g.g.C.C.g.g.g.g.g.g.g.g.e.g.g.g.e.e.e.e.e.w.e.e.e.w.w.w.w.w.w.w.w.q.q.q.q.q.q.q.q.q.q.9.q.q.7.q.9.9.7.9.9.7.9.7.7.7.7.6.7.6.6.6.6.6.6.6.6.<.6.<.<.6.,.<.<.<.,.,.,.,.,.,.>.,.,.,.,.,.,.,.>.>.>.>.>.>.>.>.:.:.>.$.:.=.$.$.>.$.$.$.#.$.#.$.#.$.#.#.#.#.#.#.#.v p.9X4 o X # X X # # X X X X X X X X X X X X ZX[ < i a c c l c c k k z v l & o UXUXUX",
|
||||||
|
"UXUXy S.Q.Q.Q.!.!.!.Q.!.!.Q.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.Q.W.W.W.W.W.W.T.W.E.E.E.W.E.E.E.E.T.T.E.T.T.T.T.T.U.T.U.T.U.U.U.I.U.U.U.I.U.U.I.I.I.I.P.I.P.P.P.I.P.P.P.P.P.P.P.P.G.G.P.G.G.G.G.D.D.D.G.S.G.S.D.D.D.S.D.S.S.S.S.S.Z.Z.S.Z.Z.Z.Z.Z.Z.Z.C.Z.C.Z.C.C.C.C.V.C.C.C.g.C.g.C.C.g.C.g.g.g.g.g.g.g.g.g.e.g.e.e.e.e.e.w.e.e.e.w.w.w.w.w.w.w.q.q.q.q.q.q.q.9.q.9.9.q.9.7.q.7.9.9.9.9.7.9.6.7.6.7.7.7.6.6.6.6.6.6.<.6.<.<.6.<.<.<.<.<.,.<.,.,.,.,.,.,.,.,.>.,.=.=.>.>.>.>.>.>.>.>.:.>.=.:.>.:.$.$.=.$.$.$.$.$.$.#.$.#.$.#.#.#.#.#.@.@.@.@.p.AX4 o X # X X X X X X # X X X X X X X X X X ZX` < i g l c c c z z x z v a & UXUXUX",
|
||||||
|
"UXUXw Z.Q.Q.Q.Q.Q.!.!.!.Q.!.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.Q.W.W.W.W.E.W.W.W.E.W.W.E.T.E.E.E.T.E.T.T.T.T.T.U.T.T.U.U.T.U.U.U.U.U.U.I.U.I.I.I.I.I.I.I.I.I.P.P.P.P.P.P.G.P.G.G.G.G.G.G.G.G.G.D.G.D.G.D.D.S.D.D.S.S.S.S.S.S.S.Z.S.Z.S.Z.Z.S.Z.Z.Z.Z.Z.C.C.C.C.C.C.V.V.C.V.V.g.C.g.C.g.g.g.g.g.g.g.g.g.g.e.g.e.e.e.e.e.e.w.e.e.e.w.w.w.w.w.w.w.q.w.q.q.q.q.q.q.q.q.9.9.q.9.9.9.9.7.9.9.7.7.7.7.7.7.7.6.7.6.6.6.6.6.<.6.6.6.<.6.,.<.6.<.<.<.,.,.<.,.,.>.,.,.,.>.,.=.,.>.,.>.>.>.>.:.>.=.:.=.=.$.$.:.$.$.$.$.$.$.$.$.#.$.$.#.#.#.#.#.#.#.#.#.@.v p.9X4 X X X X X X X X X X X X X X X X X X X X ZX` w i f l c z z z k z k v a + X UXUXUX",
|
||||||
|
"UXUX> e.Q.Q.Q.!.!.Q.!.Q.!.Q.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.Q.W.W.W.W.W.W.W.W.E.E.E.E.E.E.T.E.E.E.T.T.T.T.T.T.U.T.T.U.U.T.U.U.U.U.I.U.I.U.U.I.I.I.I.I.I.P.I.P.P.P.P.P.P.P.G.P.P.G.G.G.G.G.G.G.D.D.D.G.G.S.D.S.S.S.S.S.S.S.S.S.S.S.Z.S.S.Z.Z.Z.Z.Z.C.C.C.C.C.C.C.C.V.C.C.V.V.C.g.C.V.V.V.g.g.g.C.g.g.g.g.e.g.g.e.e.e.e.e.e.w.e.e.w.w.w.w.w.w.w.q.w.q.q.q.q.q.q.q.9.q.9.9.9.9.9.9.7.7.9.7.7.7.7.7.9.6.6.6.6.6.6.6.6.<.6.<.6.<.<.<.<.<.<.<.,.<.,.,.,.,.,.,.>.,.>.>.,.>.>.>.>.>.>.>.>.>.:.>.>.$.:.=.$.$.>.$.$.$.$.$.$.$.#.#.#.#.#.#.#.@.#.#.@.@.@.@.p.wX4 X X X X # X X X X X X X X X X X X X X X X X ZX] < i f l c c c k k k x x u O . UXUXUX",
|
||||||
|
"UXUX+ 9.Q.Q.Q.Q.Q.!.Q.!.Q.!.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.Q.W.W.W.W.W.W.W.E.W.E.E.E.E.E.E.E.E.E.T.E.T.T.T.T.T.T.U.U.T.U.U.U.U.U.U.U.I.I.I.I.I.I.I.I.I.I.P.P.P.P.G.P.P.P.G.P.G.G.G.G.G.G.G.G.D.D.G.D.S.S.D.S.G.S.G.S.S.S.S.S.S.Z.Z.Z.Z.Z.Z.Z.Z.C.Z.Z.C.C.C.C.C.C.V.C.C.V.C.V.V.V.V.V.V.g.V.g.g.g.g.g.g.e.g.e.e.e.e.e.e.w.e.e.w.w.q.w.w.w.w.w.q.w.q.q.q.q.q.9.q.q.q.9.q.9.9.9.9.9.9.9.9.7.7.7.7.7.6.7.6.6.6.6.6.6.6.6.6.6.<.6.<.<.<.<.<.<.,.,.,.,.,.,.,.,.,.>.,.,.>.>.>.>.>.>.>.$.>.$.>.$.$.>.$.$.:.$.$.$.$.#.$.$.#.#.$.#.$.#.#.#.#.#.@.@.@.@.@.@.p.ZX$ X X X # X X X X X X X X X X X X X X X X X X X ZX[ , i f l k c c k k x k x t . o UXUXUX",
|
||||||
|
"UXUXX <.Q.Q.Q.Q.!.Q.!.Q.Q.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.W.W.W.W.E.E.E.E.E.E.E.E.E.E.E.T.E.T.E.T.T.T.T.U.T.U.T.U.U.U.U.U.U.U.I.I.U.U.I.I.I.P.I.P.P.P.P.P.P.P.P.G.P.G.P.P.G.G.G.G.G.G.D.G.D.G.D.D.S.G.S.G.S.S.S.S.S.S.S.Z.S.Z.S.Z.Z.Z.Z.Z.Z.Z.Z.C.C.C.C.V.C.C.g.C.V.C.g.C.g.V.g.V.g.g.V.g.g.g.g.g.g.e.g.e.e.e.e.e.e.w.e.w.w.w.b.w.w.w.w.q.w.q.q.q.q.q.9.q.q.9.9.9.9.9.9.9.9.9.7.9.7.7.7.7.7.6.7.6.6.6.6.6.6.6.6.<.<.6.<.<.<.<.<.<.,.,.,.,.,.,.,.,.,.,.>.>.,.>.>.>.>.>.>.>.>.>.>.>.$.:.$.$.>.$.$.$.$.$.$.$.#.#.#.#.#.#.#.#.#.#.#.@.@.@.@.@.@.@.p.wX4 X X X X X X X X X X X X X X X X X X X X X X X X ZX[ < r f l c k c k k k x v w o X UXUXUX",
|
||||||
|
"UXUX #.Q.Q.Q.Q.Q.!.Q.!.!.Q.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.W.W.W.W.W.W.W.E.W.E.W.E.E.E.E.T.E.E.T.T.T.T.T.U.T.T.U.T.U.U.U.U.U.U.U.U.I.U.I.I.I.I.I.I.I.I.P.P.P.P.P.P.P.P.P.G.G.G.G.G.G.D.G.G.D.D.G.S.D.D.D.S.S.S.S.S.S.S.S.S.Z.S.Z.S.Z.Z.Z.Z.Z.Z.C.C.C.C.C.C.C.C.C.C.C.V.C.V.V.V.V.V.V.g.V.g.g.g.g.e.g.g.e.e.g.e.w.e.w.e.w.e.w.e.w.w.w.w.w.w.q.q.q.q.q.q.q.q.q.9.9.9.q.9.9.9.9.9.9.9.7.7.7.7.7.7.6.7.6.7.6.6.6.6.6.<.6.<.6.<.<.<.<.<.<.,.<.,.<.,.,.,.>.,.,.,.>.>.>.>.>.>.>.>.:.>.$.>.$.>.$.$.>.$.:.$.$.$.$.#.$.$.$.#.$.$.#.#.#.#.#.@.@.@.@.@.@.@.@.v p.wX4 X X X X X X X X X X # X X X X X X X X X X X X c.` , p f l l c c k k k x x > UXUXUX",
|
||||||
|
"UXUXUXk U.Q.Q.Q.Q.!.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.Q.W.W.W.E.W.W.W.E.W.E.E.E.E.E.E.E.E.T.T.T.T.T.T.T.U.T.U.U.T.U.U.U.U.U.I.U.I.I.U.I.I.I.I.I.I.P.I.P.P.P.P.P.P.G.P.G.G.P.G.G.G.G.G.G.D.D.D.G.D.G.S.S.S.D.S.S.S.S.S.S.S.Z.S.Z.Z.Z.Z.Z.Z.Z.C.Z.C.C.C.C.C.V.C.C.V.V.V.V.V.g.V.V.V.g.V.g.V.g.g.g.g.g.e.e.g.e.e.e.e.e.e.w.e.w.e.w.w.q.w.w.w.q.9.q.q.q.q.q.9.q.9.9.q.9.9.9.9.9.9.9.9.7.9.7.7.7.6.7.7.6.6.6.6.6.<.6.<.6.6.6.<.<.<.<.<.<.,.,.,.,.,.,.,.,.>.>.,.>.>.,.>.>.>.>.>.>.>.=.>.$.>.$.$.$.$.:.$.$.$.$.$.$.#.$.#.#.$.#.#.#.#.#.v @.@.@.@.@.@.@.@.v p.wX4 X X X X X # X X X X # X X X X X X X X X X X X X X ZX^ < i a l j k k k k k z j * UXUXUX",
|
||||||
|
"UXUXUXy S.Q.Q.Q.Q.Q.Q.!.Q.!.Q.!.Q.Q.Q.Q.Q.Q.Q.W.W.Q.W.W.W.W.W.W.E.W.E.E.E.E.E.E.E.E.E.E.T.T.T.T.T.T.T.T.U.T.T.U.U.U.U.U.U.U.I.U.U.I.I.I.I.I.P.I.I.P.P.P.P.P.G.P.P.G.G.P.G.G.G.G.G.G.D.G.G.D.S.D.S.D.G.S.S.S.S.S.S.Z.S.Z.S.Z.S.Z.Z.Z.Z.Z.C.Z.C.C.C.C.C.C.V.C.C.V.V.C.V.V.C.g.V.g.g.g.g.g.g.e.g.e.g.e.e.e.e.e.e.e.w.w.e.w.w.w.w.w.q.b.q.q.q.b.q.q.q.q.q.q.q.9.9.q.9.9.9.9.9.9.7.7.9.6.9.6.7.7.6.6.6.6.6.6.6.6.<.6.<.<.<.<.<.<.<.,.,.,.<.,.,.>.,.,.,.,.,.,.,.>.>.>.>.>.>.>.$.>.$.>.>.$.>.$.:.$.$.$.$.$.$.#.$.#.#.$.#.#.#.#.#.#.#.#.@.@.@.@.@.@.x @.x p.wX$ o X # X X X X X X X X X X X X X X X X X X X X X o o X qX^ , t g l k k k j k k z a % X UXUXUX",
|
||||||
|
"UXUXUX> V.Q.Q.Q.Q.!.Q.Q.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.W.W.W.W.W.E.W.W.E.E.W.E.E.E.E.T.E.E.E.T.T.T.T.T.T.T.T.T.U.U.U.U.U.U.I.U.I.U.I.I.I.I.I.I.P.I.P.P.P.P.P.P.P.G.P.P.G.G.G.G.G.G.G.G.D.G.D.D.D.S.D.D.S.S.S.S.S.S.S.S.Z.Z.S.S.Z.Z.Z.Z.Z.C.Z.Z.C.C.C.C.C.V.C.C.C.V.C.V.V.V.V.V.V.g.g.g.g.g.g.g.g.g.e.e.e.g.e.e.e.w.e.e.w.e.w.w.w.w.w.q.q.q.q.q.q.9.q.q.q.9.9.9.9.9.9.9.9.9.9.9.6.9.7.9.6.6.6.6.6.7.6.6.6.6.6.6.6.<.6.<.<.<.<.<.<.,.<.,.,.,.,.,.,.,.>.>.:.,.:.>.>.>.>.>.>.>.>.>.:.>.>.>.$.$.$.$.$.$.$.$.$.#.$.#.#.$.#.#.#.#.#.#.#.#.v @.@.@.v @.x @.x v p.c.4 X X X X X X X X X X X X X X X X X X X X X X X X X o ZX` < r i j l k j j k k x y O o X UXUXUX",
|
||||||
|
"UXUXUX@ 9.Q.Q.Q.Q.Q.!.Q.Q.Q.!.Q.Q.Q.Q.Q.Q.Q.W.W.Q.W.W.W.W.W.W.E.E.W.E.E.E.E.T.E.E.E.E.T.T.T.T.T.T.U.U.U.U.U.U.U.U.U.U.U.I.U.U.P.I.I.I.I.P.I.P.P.P.P.P.P.G.P.P.G.G.G.P.G.G.G.G.D.D.G.D.D.D.D.D.D.S.D.D.S.S.S.S.S.Z.S.S.Z.Z.Z.Z.Z.C.Z.Z.Z.C.C.C.C.C.C.C.V.V.V.V.V.C.V.V.V.V.g.V.V.g.g.g.g.g.e.e.g.e.e.e.e.w.e.e.w.e.w.w.w.w.w.w.q.q.9.b.q.q.q.q.q.q.9.q.9.q.9.9.9.9.9.9.9.7.9.6.9.6.9.6.7.7.6.6.6.6.6.6.6.<.<.<.<.<.<.<.,.<.,.<.,.,.,.,.,.>.,.,.>.>.,.:.,.:.>.>.>.:.>.>.$.$.>.$.$.$.:.$.$.$.$.#.$.$.#.$.#.$.#.#.#.#.#.#.#.v #.v #.@.@.@.@.@.@.@.@.v p.wX4 o X X X # X X X X X X X X X X X X X X X X X X X X X X X X qX` < i a j k k j j k k k e . X UXUXUX",
|
||||||
|
"UXUXUX #.W.Q.Q.Q.Q.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.Q.W.W.W.W.E.W.W.W.W.E.E.W.E.E.E.E.E.E.T.T.T.T.T.T.T.U.U.T.U.U.U.U.U.U.U.P.I.U.I.I.U.P.I.I.P.I.P.P.P.P.P.P.P.P.G.P.G.G.G.G.G.G.G.G.D.D.G.D.D.D.D.S.D.S.S.S.S.S.S.S.S.Z.S.Z.S.Z.Z.Z.Z.Z.Z.C.C.C.C.C.C.C.C.V.C.C.V.C.V.V.g.V.V.V.g.V.g.g.g.e.g.g.e.e.e.e.e.e.e.e.e.e.w.w.w.w.w.w.w.w.q.w.q.q.q.q.q.q.q.q.9.b.9.9.9.9.9.7.9.9.9.9.6.9.7.6.7.7.6.7.6.6.6.<.6.6.6.<.<.6.<.<.<.<.<.,.<.<.,.,.,.,.,.,.>.,.>.,.>.>.>.>.>.>.>.>.>.$.>.:.$.$.:.$.$.$.$.$.$.$.$.$.#.$.#.#.#.#.#.#.#.#.#.#.#.v #.v @.v @.v @.v @.x x p.ZX4 X X # X X X X X X X X X X X X X X X X X X X X X X X X X ZX_ < e u l l k j j k k z > o X UXUXUXUX",
|
||||||
|
"UXUXUXo h I.Q.Q.Q.Q.Q.Q.Q.!.Q.Q.Q.Q.W.Q.W.W.W.W.W.W.W.W.E.E.E.E.E.E.E.E.E.E.T.E.T.T.T.T.T.T.T.T.T.U.U.U.U.U.U.U.U.U.U.I.I.I.I.I.I.I.I.P.I.P.P.P.P.G.P.G.P.G.P.G.P.G.G.G.G.D.D.G.D.D.S.D.S.D.S.D.S.S.S.S.S.S.Z.S.S.Z.Z.Z.Z.Z.Z.C.Z.C.Z.C.C.C.C.V.C.C.V.V.V.V.V.V.V.g.V.g.g.g.g.g.g.g.e.g.e.g.e.e.e.w.e.e.w.w.e.e.w.w.w.q.w.q.w.q.q.q.q.q.q.9.9.q.9.9.9.9.9.9.9.9.9.6.6.9.9.6.9.6.6.7.6.6.6.6.6.6.<.6.<.6.<.<.<.<.<.<.<.<.,.,.,.,.,.,.>.,.,.>.,.>.>.>.>.>.>.>.$.>.>.>.$.>.>.$.>.$.$.$.$.$.$.$.#.$.#.$.#.$.#.#.#.$.#.#.v #.v #.v #.@.v v @.@.v @.x x p.AX5 X X X X X X X X X X X X X X X X X X X X X X X X X X X X X ZX~ < i i a j a k k k z a & UXUXUXUX",
|
||||||
|
"UXUXUXUXw C.Q.Q.Q.Q.!.Q.Q.Q.Q.!.Q.W.Q.W.Q.W.W.W.E.W.W.W.E.W.E.E.E.E.E.E.E.E.E.T.T.T.T.T.T.T.T.U.U.U.U.U.U.U.U.I.U.U.P.U.I.I.I.I.I.P.P.P.P.P.P.P.P.G.G.P.G.G.G.G.G.G.G.G.G.D.G.S.D.D.D.D.D.D.S.S.S.S.S.S.Z.S.S.Z.Z.Z.Z.Z.C.Z.C.Z.C.C.C.C.C.C.V.C.V.V.V.V.V.V.V.V.V.V.g.g.g.g.g.g.g.e.e.g.e.e.e.e.e.e.e.w.w.e.w.w.w.w.w.w.q.w.q.q.q.q.q.9.9.q.9.9.9.9.9.9.9.9.9.9.9.9.6.9.6.9.6.6.6.6.6.6.6.6.6.6.6.<.<.<.<.<.<.,.<.,.<.,.<.,.,.,.,.>.,.>.>.>.>.,.>.>.>.>.>.>.$.>.$.>.$.$.=.$.$.$.$.$.$.#.$.#.$.$.$.#.#.#.#.#.#.v v v #.#.v #.#.v v @.v @.v @.x @.x p.AX5 X X X X X # X X X X X X X X X X X X X X X X X X X X X X X X ZX` < r i l k k a j k z y @ UXUXUXUX",
|
||||||
|
"UXUXUXUX+ q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.W.W.W.W.W.W.E.E.W.E.E.E.E.E.E.E.E.T.T.E.T.T.T.U.T.T.T.U.U.U.U.U.U.U.I.U.I.P.U.U.P.I.I.I.P.I.P.I.P.P.P.P.G.G.P.P.G.P.G.G.G.G.G.D.D.D.G.D.D.D.D.S.S.S.S.S.S.S.S.S.Z.S.Z.Z.S.Z.Z.Z.Z.Z.Z.C.C.Z.C.C.V.V.C.V.C.C.V.C.V.V.V.V.V.g.g.g.V.g.g.g.g.g.e.g.e.e.e.e.e.e.w.w.e.w.w.w.w.w.w.q.w.q.q.q.q.q.q.q.q.q.9.q.9.9.9.9.7.9.9.9.7.6.9.7.6.7.7.6.7.7.6.6.6.6.<.<.6.6.<.6.<.<.<.<.<.,.<.,.,.,.,.>.,.,.,.>.,.,.>.>.>.>.>.>.>.>.$.>.:.:.:.$.>.$.:.$.$.$.$.$.$.#.$.#.#.$.#.#.#.#.#.#.#.#.#.#.v #.v #.v @.v @.v v v v x m p.AX5 X X X X X X X X X X X X X X X X X X X X X X X X X ZX^ < r u a k a j j j j t o X X UXUXUXUX",
|
||||||
|
"UXUXUXUX v W.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.Q.W.W.E.W.W.W.W.W.E.W.E.E.E.E.E.E.E.T.T.T.T.T.T.T.U.T.T.U.U.U.U.U.U.U.U.U.I.U.I.I.I.I.I.I.P.I.I.P.P.P.P.P.P.G.P.P.G.G.G.G.G.G.G.G.G.D.G.D.D.S.D.S.D.D.S.S.S.S.Z.S.S.Z.S.Z.Z.Z.Z.Z.Z.Z.C.C.C.C.C.C.C.C.C.V.C.V.V.V.C.g.V.V.V.g.g.g.g.g.g.g.e.g.g.e.e.e.e.e.e.e.w.e.w.w.w.w.w.w.w.w.q.q.w.q.q.q.9.9.q.q.q.9.9.9.9.9.9.9.7.9.7.7.6.9.6.9.6.9.6.6.6.6.6.6.6.<.6.<.<.6.<.<.<.<.<.<.<.,.,.,.,.,.,.>.>.,.>.>.>.>.>.>.>.>.>.>.>.>.$.>.>.$.>.$.:.$.$.$.$.$.#.$.#.$.$.#.#.#.#.v v #.#.#.#.v #.#.v #.v v @.v @.v v v v *.m h.AX5 X X X X X X X X X X X X X X X X X X X X X X X X X X X X ZX^ < r y l a j j j k k : X UXUXUXUX",
|
||||||
|
"UXUXUXUXo y H.Q.Q.Q.Q.Q.Q.Q.Q.W.W.W.W.W.W.W.W.E.E.E.E.E.E.E.E.E.E.E.T.T.T.E.T.T.T.T.T.U.U.U.U.U.U.U.U.U.U.I.I.I.U.I.I.I.I.P.P.P.P.P.P.P.P.P.G.P.G.G.G.G.G.G.G.G.D.G.S.G.S.D.D.D.S.S.S.S.S.S.S.Z.S.Z.S.Z.Z.Z.Z.Z.Z.Z.C.C.C.Z.C.C.C.C.V.C.V.C.V.C.V.V.V.V.V.g.g.g.g.g.g.g.g.e.g.e.e.e.e.e.e.e.w.e.e.w.w.w.w.w.w.w.q.q.q.q.q.q.q.q.b.9.9.9.9.9.9.9.9.9.9.9.9.9.7.7.9.6.9.6.6.6.6.6.6.6.6.<.<.6.<.6.<.<.<.<.<.,.,.,.,.,.,.,.,.>.,.,.,.>.,.>.>.>.>.>.>.>.>.:.$.>.:.$.$.$.$.:.$.$.$.$.$.$.$.#.#.#.#.#.#.#.#.#.#.#.#.v v #.v v v v v #.v v v v v n %.*.m p.AX5 X X X X X X X X X X X X X X X X X X X X X X X X o o qX` > r u j a a j j j u % o X UXUXUXUX",
|
||||||
|
"UXUXUXUXUX* e.Q.Q.Q.Q.Q.W.Q.W.W.W.W.E.W.W.W.E.W.W.E.W.E.E.E.E.E.T.T.E.T.T.T.T.T.T.U.T.T.U.U.U.U.P.U.U.P.U.I.I.I.P.I.I.I.P.I.P.P.P.G.P.G.G.P.P.G.G.G.P.G.G.G.G.D.D.G.D.D.S.G.S.D.S.S.S.S.S.S.S.S.Z.S.Z.Z.Z.Z.Z.Z.Z.C.Z.C.C.C.C.C.C.V.C.V.C.V.C.g.V.V.g.V.g.V.V.g.g.g.g.e.g.e.e.e.e.e.e.w.w.e.e.w.w.w.w.w.w.q.w.w.w.q.q.q.q.q.q.q.9.q.9.9.9.9.9.9.9.9.9.7.9.6.7.7.6.6.6.7.6.6.6.6.6.<.6.6.6.<.<.<.<.<.<.<.<.,.,.,.,.,.>.,.>.,.>.>.,.>.,.>.>.>.>.$.>.>.:.:.>.$.>.$.$.:.$.$.$.$.$.$.#.$.#.#.$.#.#.#.#.#.#.#.#.#.#.#.#.v #.v v v v v @.v v x n @.%.m m h.AX5 X X X X X X X X X X X X X X X X X X X X X X X X X X X X ZX~ < r i a a a j j k e . X UXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXo $.W.Q.Q.Q.W.Q.Q.W.W.W.W.W.W.W.E.W.E.E.E.E.E.E.E.T.E.T.E.T.T.T.T.T.U.T.U.U.U.U.U.U.U.U.U.U.U.I.I.U.I.I.I.P.I.P.P.P.I.P.P.P.P.P.G.G.P.G.G.G.G.G.D.D.G.G.S.G.S.D.S.D.S.S.S.S.S.S.S.S.Z.S.Z.Z.S.Z.Z.Z.Z.C.Z.C.C.C.C.C.C.C.V.C.C.V.V.V.V.V.V.V.g.V.g.g.g.g.g.g.g.e.g.e.e.e.e.e.e.e.w.w.e.w.e.w.w.w.w.q.q.q.q.q.q.9.q.q.9.q.9.q.q.9.9.9.9.7.9.7.7.7.7.7.7.6.9.7.6.6.6.6.6.6.6.<.<.6.<.<.<.<.<.<.,.,.,.<.,.,.,.,.,.,.,.>.,.>.>.>.>.>.>.>.>.=.$.>.:.$.>.$.:.$.$.$.#.$.$.$.#.$.#.$.$.#.#.#.#.#.#.#.v v #.v v #.v v v #.v #.v v v v *.%.*.*.m m p.AX5 X X X X X X X X X X X X X X X X X X X X X X X X ZX^ > w i a a j j j k > X UXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXX y H.Q.Q.Q.W.W.Q.W.W.W.E.W.W.W.E.E.E.W.E.E.E.E.E.E.T.T.T.T.T.U.T.U.T.U.U.U.U.U.I.U.U.I.U.I.I.I.I.I.I.I.I.P.P.I.P.P.P.P.P.G.P.P.G.G.P.G.G.D.G.D.D.G.D.D.D.S.D.D.S.S.D.S.S.S.S.S.Z.S.Z.S.Z.Z.Z.Z.Z.Z.Z.C.C.C.C.C.C.C.C.V.V.V.C.C.V.V.V.V.V.g.g.V.g.g.g.e.V.e.e.V.e.e.e.e.w.e.e.e.w.e.w.w.w.q.w.q.w.q.q.q.q.9.q.9.q.q.9.9.9.9.9.9.9.9.9.7.7.9.7.7.6.7.7.7.6.7.6.6.6.6.6.<.<.6.<.<.<.<.<.<.<.<.<.,.,.,.,.,.>.,.>.,.>.,.>.>.>.>.>.>.>.:.>.=.$.$.$.>.$.:.$.=.$.#.$.$.$.#.$.#.$.#.#.#.#.#.#.@.@.@.@.@.@.@.v @.v @.@.@.v v v v v %.m m *.m m n p.AX5 X X X X X X X X X X X X X X X X X X X X X X X X X ZX~ < w y a a a j k a % X UXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUX& q.W.Q.W.Q.W.W.W.W.W.W.W.E.E.E.W.E.E.E.E.T.E.T.E.T.T.T.T.T.T.U.U.T.T.U.U.U.U.U.I.U.U.I.U.I.I.I.I.I.P.I.P.P.P.P.P.P.G.P.G.G.G.G.G.G.G.G.G.G.G.D.D.D.D.D.D.S.D.S.S.S.S.S.S.S.Z.S.Z.S.Z.Z.C.Z.Z.C.C.C.C.C.C.C.C.V.V.C.V.C.V.V.V.V.V.g.g.g.V.g.g.g.g.e.e.V.e.e.e.e.e.e.e.e.w.w.w.w.w.w.w.w.w.w.w.q.q.q.q.q.q.q.q.9.9.q.9.q.9.9.7.9.7.9.9.7.7.7.7.7.6.6.6.6.6.6.6.<.6.<.6.<.6.<.<.<.<.<.<.,.,.,.,.,.,.,.,.,.>.,.,.>.>.>.>.>.>.>.>.>.=.:.:.>.>.$.$.$.:.$.=.#.=.#.$.#.$.$.#.#.#.#.#.#.@.#.@.#.@.@.@.@.v @.v @.v v v v v v *.%.%.m %.m *.m n p.AX8 X X X X X X X X X X X X X X X X X X X X X X X # ZXP < r y a a a j j e . o X UXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUX #.T.Q.Q.W.W.W.W.W.W.W.E.E.E.W.E.E.E.E.E.E.T.E.T.T.T.T.T.T.U.U.T.U.U.U.U.U.U.I.I.U.I.I.U.I.I.I.P.I.P.P.P.P.P.P.P.G.G.P.P.G.G.G.G.G.G.G.D.D.G.D.D.S.D.D.D.S.S.S.S.S.S.S.Z.S.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.C.C.C.C.C.C.C.C.V.C.V.C.V.V.V.V.V.V.g.g.V.g.g.g.g.e.e.e.e.e.e.e.w.w.w.e.e.w.w.e.w.w.w.w.q.w.q.q.q.q.q.q.q.9.q.9.q.9.9.9.9.9.9.9.9.9.7.7.7.7.7.6.7.6.6.6.6.6.6.6.<.6.6.<.<.<.<.<.<.<.,.<.,.,.,.>.,.,.,.>.>.,.>.>.,.>.>.>.>.>.>.$.$.>.$.$.=.>.$.$.$.$.=.$.=.#.#.#.#.#.#.#.#.#.#.@.@.#.@.@.@.@.@.v @.v @.v v v v v v *.*.%.m %.*.m m m n M SXW X X X X X X X X X X o X X X X X X X X X X X X X X 8 ZXV > w y a a j j j : o o UXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXo e C.Q.W.W.W.W.W.T.E.E.E.W.E.E.E.E.E.E.E.T.T.T.T.T.T.T.U.U.T.U.U.U.I.U.U.U.U.I.U.U.I.I.P.I.I.I.P.P.P.P.P.P.P.P.G.P.P.G.P.G.G.G.G.G.G.D.D.G.S.D.D.D.S.D.S.D.S.S.S.S.S.S.Z.Z.S.Z.Z.Z.Z.Z.Z.Z.C.C.C.C.C.C.C.V.V.C.V.V.V.V.V.V.g.V.g.g.V.g.g.g.e.g.g.e.e.b.e.e.e.e.e.e.e.w.e.w.w.w.w.w.w.q.q.q.q.q.q.q.q.9.q.q.9.9.9.9.9.9.9.9.9.9.6.6.6.7.7.6.6.7.6.6.6.6.6.6.6.<.6.<.<.<.<.<.<.<.,.,.,.,.,.,.,.,.,.,.,.>.,.>.>.>.>.>.>.=.>.=.>.$.>.>.>.$.$.$.$.$.$.$.#.$.#.=.$.#.$.#.#.#.#.#.#.#.@.@.@.@.@.@.@.@.v @.v v @.v v @.%.%.*.*.m *.m m m m *.b z.ZX5 X X X X X X X X X X X X X X X X X X X $ X.+.- > q y u a j j y % o UXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUX. >.Q.W.W.W.W.W.W.E.W.E.W.E.E.E.E.E.E.E.T.T.T.T.T.T.U.U.T.U.U.U.U.U.U.U.I.U.I.I.I.I.P.I.I.P.I.P.P.P.P.P.P.P.P.G.P.G.G.G.G.G.G.G.D.D.G.G.D.G.D.S.D.S.S.S.S.S.S.S.S.Z.S.S.Z.Z.Z.Z.Z.Z.Z.Z.C.C.C.Z.C.C.C.V.C.C.V.C.V.V.V.V.V.g.g.V.g.g.g.e.g.g.e.e.g.e.e.e.e.w.e.e.e.w.w.w.w.w.w.w.q.q.q.q.q.q.q.q.q.q.9.9.9.9.9.9.9.9.9.9.9.6.9.6.9.6.7.7.6.6.7.6.6.6.6.6.<.6.<.<.<.<.<.<.,.<.,.<.,.,.,.,.,.,.,.:.,.>.>.,.>.>.>.>.>.>.>.>.>.$.>.$.$.$.$.$.$.$.$.$.$.=.#.#.#.#.#.#.#.#.#.#.#.@.@.@.@.@.@.@.@.v v @.v v v v v *.*.%.*.%.m m m m m n n n c N tXZXG X X X X X X o o X X X X X X X X o o X 5 X.ZX9 * > q y a a j j > o X UXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXo a D.W.W.W.E.W.E.E.E.E.E.E.E.E.T.T.T.T.T.T.T.T.T.U.T.T.U.U.U.U.U.U.U.U.I.U.I.U.I.I.U.P.I.P.P.I.P.P.P.P.G.G.G.P.G.G.G.G.G.G.G.D.G.D.G.S.D.S.D.D.S.S.S.S.S.S.Z.S.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.C.C.Z.C.C.C.C.V.C.C.V.g.C.g.V.V.V.V.V.g.V.g.g.g.g.g.g.e.g.e.e.b.e.e.e.e.e.w.w.e.w.w.w.w.w.q.w.q.q.q.q.q.q.q.q.q.9.q.9.9.9.9.9.9.9.9.6.9.7.9.6.7.7.6.6.6.6.6.6.<.6.<.6.<.6.<.6.<.<.<.<.,.<.,.,.,.>.,.,.>.,.,.:.>.>.>.>.>.>.>.>.>.$.$.>.:.$.>.$.$.>.$.$.$.$.$.$.#.$.$.#.#.#.#.#.#.#.@.#.@.@.@.@.@.v @.v @.v v @.v v #.%.-.%.m m m *.m m v m n n b M l S x.ZXX.G $ X X X X X X X X X X o X X X X $ 9 ' ZX+.9 % ; > e y a h j y & o X UXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUX* 9.W.W.W.W.E.W.W.E.E.E.E.E.E.E.T.T.T.T.T.T.U.T.T.U.T.U.U.U.U.U.I.I.U.U.I.I.I.I.I.P.I.P.P.P.P.P.P.G.P.P.P.G.P.G.G.G.G.G.G.S.G.G.G.S.D.D.S.D.S.S.S.S.S.S.S.S.Z.S.S.S.Z.Z.Z.Z.Z.Z.Z.C.C.C.C.C.V.C.V.C.V.C.C.g.C.V.V.V.g.g.g.g.g.g.g.g.g.e.e.g.e.e.e.w.e.e.w.e.e.w.w.w.w.w.w.q.w.q.q.q.q.q.q.q.7.q.9.q.9.9.9.9.9.9.9.9.6.9.6.9.6.9.7.6.6.6.6.6.6.6.6.<.6.<.<.<.<.<.<.<.<.<.,.,.,.,.,.,.,.>.,.>.,.>.>.>.>.>.>.:.>.>.>.$.>.:.:.$.=.:.:.$.$.$.$.$.#.$.#.#.#.$.#.#.#.#.#.@.#.@.@.@.@.@.v @.v @.@.v v v v %.*.%.m m #.m m m n n n n n b b b l a g R qXZXZXc.{ Y H H H H H H H H G H H G H H Y ' X.ZXZXc.Y 1 @ = > w e y a j j w o X X UXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUX j P.W.W.T.W.E.E.E.E.E.E.T.T.T.T.T.T.T.T.U.T.U.U.U.U.U.U.U.I.U.I.U.I.I.I.I.I.P.I.I.P.P.P.P.P.P.P.P.G.G.P.G.G.G.G.G.G.G.G.G.G.S.G.S.D.S.D.D.S.S.S.S.S.S.S.Z.Z.S.Z.Z.Z.Z.Z.Z.Z.C.C.C.C.C.C.C.g.C.C.V.C.g.C.V.V.g.V.g.g.V.V.g.g.g.g.e.g.e.e.e.e.e.e.e.w.e.w.w.w.w.w.w.w.q.q.w.q.q.q.q.q.q.9.q.q.7.9.q.9.9.9.9.9.9.7.9.7.7.7.6.7.6.6.6.6.6.6.6.6.6.6.6.<.<.6.<.<.,.<.,.,.,.<.,.,.,.,.,.,.,.>.,.>.>.>.>.>.>.>.>.$.>.$.>.$.:.$.=.$.$.$.$.#.$.$.#.$.#.=.#.#.#.#.#.#.@.#.#.@.@.@.@.@.v @.v v @.v v v #.m %.%.%.m *.m m m m n n n b n n n b c l i r w s L ] X.qXZXZXZXZXZXZXZXZXZXZXZXZXZXZXc.X._ H 6 # X + = ; > q t a a j a & X UXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUX& q.W.W.E.E.W.E.E.E.E.E.T.T.T.T.T.T.U.U.T.U.U.U.U.U.U.I.U.I.U.I.U.I.I.I.P.I.P.P.P.I.P.P.P.P.P.G.P.G.G.P.G.G.G.G.G.G.S.D.G.D.D.S.D.D.S.D.S.S.S.S.S.S.S.Z.S.S.Z.Z.Z.Z.C.Z.C.C.C.C.C.C.C.V.C.V.C.V.C.g.V.V.V.V.V.g.V.V.g.e.V.g.e.e.e.g.e.e.e.e.w.e.w.e.e.w.w.w.w.q.q.q.q.q.q.q.q.q.q.q.9.9.q.9.9.q.9.9.9.9.9.9.6.9.7.7.6.7.6.7.6.7.6.6.6.6.<.6.6.<.6.<.<.<.<.<.<.,.<.,.,.,.,.>.,.>.,.>.>.>.>.>.>.,.>.>.>.>.$.>.>.:.>.>.$.$.:.$.$.$.$.$.$.$.$.#.#.#.#.#.#.#.#.#.@.@.@.@.@.@.@.@.v v @.v v v #.%.%.*.%.m m m m m m v n n n n n c m b b c l a i r < ; - = = = 1 1 1 4 $ 1 1 1 $ 1 $ $ = @ @ @ @ + + % = : q q t u a a h q . X UXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUX z U.W.W.W.T.E.E.T.E.T.T.T.T.T.T.T.U.T.U.T.U.U.U.U.U.I.U.U.I.I.I.I.I.I.I.I.I.P.P.P.P.P.P.G.P.P.G.P.G.G.G.G.G.G.D.G.G.G.D.D.D.G.S.S.D.S.S.S.S.Z.S.Z.Z.S.Z.Z.Z.Z.Z.Z.Z.C.Z.C.C.C.C.C.V.C.C.C.V.V.V.C.V.V.V.V.g.g.V.e.V.g.g.e.V.e.g.e.e.e.e.e.e.e.e.w.w.w.w.w.w.w.q.b.q.b.q.q.q.q.q.9.q.q.q.9.9.9.9.7.9.9.9.6.9.7.7.7.7.7.7.6.6.6.6.6.6.<.6.6.<.6.<.<.<.<.<.<.,.,.,.,.,.,.,.,.,.,.>.,.>.,.>.>.>.:.>.>.:.>.=.=.$.$.$.$.:.$.$.$.#.$.$.$.#.#.#.#.$.#.#.#.#.@.#.#.@.@.@.@.@.v @.v @.@.v @.v v -.m %.%.m *.m m m m m m n n n n n b b b b c c l u i p w < < ; - - - - = = = = % = & = = = = % = = - - : < q q e y u a j a * o X UXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUX- 9.W.E.W.E.E.E.E.T.T.T.T.T.T.T.U.T.U.U.U.U.U.U.U.I.U.U.I.U.I.I.I.I.I.P.I.P.P.P.P.P.P.G.G.P.G.P.G.G.G.G.G.G.D.D.G.G.S.G.G.S.S.D.S.S.S.S.S.S.S.S.Z.S.Z.Z.Z.Z.Z.Z.C.Z.C.Z.C.C.C.C.C.C.C.V.V.V.g.C.g.g.V.g.g.g.V.e.g.e.e.g.e.e.e.e.e.e.e.w.w.e.w.w.w.w.w.w.w.w.q.q.q.q.9.q.q.q.q.9.q.7.9.9.9.9.9.9.9.7.9.6.7.9.7.6.7.7.6.6.6.6.6.6.6.6.<.6.<.<.<.<.<.<.<.<.,.<.<.,.,.,.,.>.>.,.,.>.>.>.>.>.>.>.>.>.=.:.=.=.=.=.$.>.$.$.$.$.$.$.$.$.#.$.#.#.#.#.#.#.#.@.#.#.@.@.@.@.@.v @.v @.v v v @.%.*.%.*.m %.*.*.m m m n n n n n b m b n c b b c c l l a g i r r w < w < < > > < < > < > < < : : < > > < q w w e y u u a a j q O X UXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUX j D.W.E.E.E.E.E.T.T.T.T.T.T.U.T.U.U.U.U.U.U.U.I.U.I.I.I.I.I.I.I.I.P.I.P.P.P.P.P.P.P.G.P.G.P.G.G.G.G.D.G.D.D.G.S.G.S.S.S.D.S.S.S.S.S.S.S.S.Z.S.Z.Z.Z.Z.Z.Z.Z.C.Z.C.C.C.C.C.C.C.C.g.V.C.V.C.V.V.V.V.V.g.g.g.g.g.g.e.V.e.e.V.e.e.e.e.e.e.e.w.b.w.w.w.w.w.w.q.w.q.q.q.q.q.9.q.q.q.9.q.9.q.9.9.9.9.7.9.7.9.7.6.7.7.6.7.6.6.6.6.6.6.6.<.6.<.6.<.<.<.<.<.,.<.,.,.,.,.>.,.,.,.,.,.>.,.>.>.>.>.>.=.=.=.>.:.>.$.=.$.$.$.>.$.$.$.$.$.#.$.#.#.$.$.#.#.#.#.#.#.@.@.@.@.@.@.@.@.v @.v @.@.*.%.%.*.m -.%.m m *.m n n n n b n n b b b c n b c c c c c c a a i i i r r i r r r w r r w w w w w r w r w r t t y y y u a a j y * o X o UXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUX& 6.W.E.E.E.E.T.T.T.T.U.T.U.U.U.U.U.U.U.U.U.U.I.U.I.U.I.I.I.I.P.P.P.P.P.P.P.P.G.P.G.P.G.P.G.G.G.G.D.G.D.G.D.D.D.S.D.D.S.S.S.S.S.S.S.S.S.Z.Z.Z.Z.S.Z.Z.Z.Z.Z.Z.C.C.C.C.C.C.g.C.C.V.V.V.C.g.V.g.V.g.g.V.g.g.g.g.g.e.e.e.e.e.e.e.e.w.w.e.w.e.w.w.w.w.q.b.q.q.q.q.q.q.q.q.q.q.9.9.9.9.9.9.9.7.7.9.7.7.7.7.7.7.6.6.6.7.6.6.6.6.<.6.6.<.<.<.<.<.<.<.<.,.,.,.,.,.,.,.,.>.,.>.>.>.>.,.>.>.>.>.>.>.=.:.=.=.$.=.=.=.$.$.$.$.$.$.$.$.$.#.#.#.#.#.#.#.#.#.@.#.@.@.@.@.v @.v @.v v @.*.%.%.m *.-.m m *.m m n n n n n n n b b b n c b c b c c c c c c l l a l l a l i i u i i i i i i y i i y i y i i i u u u u a a j a q o X UXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUX h Z.W.E.E.T.T.T.T.T.T.U.U.U.U.U.U.U.U.U.I.U.I.I.I.I.I.P.I.I.I.P.P.P.P.P.P.P.P.P.P.G.G.P.G.G.G.G.G.D.D.D.D.D.D.D.S.S.S.D.S.S.S.S.S.Z.S.Z.S.Z.Z.Z.Z.Z.Z.C.C.C.C.C.C.C.V.C.V.C.V.C.g.C.V.V.V.V.V.g.g.g.g.g.g.e.g.e.g.e.e.e.e.w.e.e.e.w.w.w.w.w.w.w.q.q.q.q.q.q.q.q.9.q.9.9.7.q.q.9.q.7.9.9.9.7.7.7.7.7.7.7.6.7.6.6.6.6.6.<.6.6.<.<.<.<.<.<.<.<.,.,.<.,.,.,.,.,.,.,.,.>.,.>.>.>.>.>.>.:.>.:.>.:.=.=.=.$.$.$.$.$.$.$.$.$.#.#.#.#.$.#.#.#.#.#.#.@.@.@.@.@.@.v @.v @.v @.*.%.*.%.%.%.%.*.m m %.m m n n n n n b b n n b n c c n c c c c c c k c k k a l a k a l a l a a a a a a f i a a u a a u u u u a a a a u & X X UXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXO #.T.T.E.T.E.T.T.T.T.U.T.U.U.U.U.U.U.U.U.I.I.I.I.I.I.I.P.I.P.P.P.P.G.P.G.P.G.G.G.G.G.G.G.G.G.D.D.D.G.D.G.D.D.S.S.S.S.S.S.S.Z.S.S.S.Z.S.Z.Z.Z.Z.C.Z.Z.C.C.C.C.C.C.V.C.V.C.V.V.V.C.V.V.V.g.g.g.g.g.g.g.g.g.g.e.g.e.e.e.e.e.w.e.w.e.w.w.w.w.w.w.w.q.q.q.q.q.q.q.q.9.q.9.q.q.q.7.9.7.9.9.9.7.7.7.7.7.7.6.6.6.6.6.6.6.6.6.6.6.<.6.<.<.<.<.<.<.,.,.,.,.,.,.>.>.,.>.,.,.>.>.>.>.>.>.>.:.:.>.:.=.=.=.=.=.$.=.$.$.$.$.$.$.#.$.$.#.$.#.#.#.#.#.v #.@.@.@.@.@.@.@.@.n v @.*.%.%.*.m %.m *.*.*.m v m m n n n n b n b b b b c c c c b c c c c c k k c l l l l a l j l l l a a l l a a a a a a l a l a a a a a a a > o o UXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXo w w.W.E.E.T.T.U.T.T.U.U.U.U.U.U.I.U.I.I.U.I.I.I.I.I.P.I.P.I.P.P.P.P.P.P.G.G.P.G.G.G.G.G.D.D.G.D.D.D.D.S.S.D.S.S.S.S.S.S.S.S.S.Z.Z.Z.Z.Z.Z.Z.Z.Z.C.C.C.C.C.C.C.C.C.V.C.g.C.V.V.g.g.V.g.g.V.V.g.g.g.g.g.e.e.e.e.e.e.e.w.e.e.e.w.w.w.w.w.w.w.q.q.w.q.q.q.q.9.q.q.q.9.q.9.9.7.9.9.7.9.7.7.7.7.7.7.6.7.6.7.6.6.6.6.<.6.<.6.<.<.<.<.<.<.<.<.,.<.,.,.,.,.,.,.,.,.>.>.>.>.>.>.>.>.:.>.>.=.=.=.=.=.=.=.$.$.$.$.$.#.$.$.$.#.#.#.#.#.#.#.#.#.#.#.@.@.@.@.@.v v @.v @.@.%.%.%.%.%.*.%.m *.m m m m v n n n n b n b n b n c c c c c c c c c l k c l c k k c k k l l j l j l l a l l l a l l a a a a u u a a a h r @ o X UXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUX z I.E.T.T.T.T.U.U.U.U.U.U.U.I.U.I.I.U.I.I.U.P.P.I.P.P.P.P.P.P.P.G.P.P.G.G.G.G.G.G.G.D.G.D.D.D.D.D.D.S.G.S.S.S.S.S.S.S.S.Z.S.Z.Z.Z.Z.Z.Z.Z.Z.C.Z.C.C.C.C.C.C.V.C.C.V.V.V.V.V.V.V.V.g.g.V.e.V.g.e.e.g.e.e.g.e.e.e.e.e.w.w.e.w.w.w.w.w.q.q.q.q.q.q.q.q.9.q.q.9.9.q.9.9.9.9.9.9.9.7.7.7.7.6.7.6.6.7.6.6.6.6.6.6.6.6.6.<.<.<.<.<.<.<.,.<.,.,.,.,.>.,.>.,.,.>.,.>.>.>.>.>.>.>.>.=.>.:.>.$.$.>.$.>.$.$.$.$.$.$.$.#.$.#.#.#.#.#.#.#.#.#.@.@.@.v @.@.@.v @.@.@.%.%.%.%.%.%.*.*.*.*.*.*.*.M *.c *.M *.c *.*.b c c c *.c c c c c c c k c k c l k l k k k l j l j a l j a l a j l a a a a l f a a a a a h u : X UXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXo % ,.T.T.T.T.T.U.T.U.U.U.U.I.U.I.U.I.P.I.P.I.P.I.P.I.P.P.P.P.G.P.P.G.G.P.G.G.G.G.D.G.G.D.D.D.D.D.D.S.S.S.D.S.S.S.S.S.S.Z.Z.Z.S.Z.Z.Z.Z.C.C.Z.C.C.C.C.C.V.V.C.V.V.V.V.V.V.V.V.V.g.g.V.V.g.g.g.e.V.e.g.e.e.e.e.w.e.w.e.w.e.w.w.w.w.w.w.b.q.q.q.q.q.q.q.q.9.q.9.9.9.9.9.9.9.7.9.7.7.7.7.7.7.7.7.6.6.6.6.6.6.<.6.<.<.<.<.<.<.<.<.<.,.<.,.,.,.,.,.,.,.,.>.>.,.>.>.>.>.>.>.>.>.$.>.$.>.$.>.$.$.$.$.$.$.$.#.$.#.$.#.#.#.$.#.#.#.@.#.v #.@.@.@.@.@.v x @.*.%.%.%.*.%.*.%.m m %.*.b *.*.c *.*.*.c *.c *.c c c c c c c c c c c c c l c k k k k k k k l k l l j j l l a l a a a a l f l a u u a u a a a a > o X X UXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUX r e.T.T.T.U.T.U.U.U.U.I.U.U.I.I.I.I.I.I.P.I.P.P.P.P.P.P.P.G.P.G.P.G.G.G.G.G.G.G.D.D.D.D.D.S.D.D.D.S.S.S.S.S.S.S.S.Z.S.S.Z.Z.Z.Z.Z.Z.Z.C.C.C.C.C.C.C.C.C.C.C.V.V.C.V.V.V.g.g.g.V.e.e.g.g.e.g.e.e.e.e.e.e.e.w.e.e.w.w.w.w.w.w.w.q.w.q.q.q.q.q.q.q.9.9.q.9.9.9.9.9.7.9.7.9.7.7.7.7.7.7.6.7.6.7.6.6.6.6.6.6.6.6.<.<.6.<.<.<.<.<.<.,.,.,.,.,.,.,.>.>.,.>.>.>.>.>.>.>.>.>.$.:.:.>.$.=.$.$.>.$.$.$.$.$.$.$.$.#.#.#.#.#.#.#.#.#.#.@.#.@.v @.@.@.@.@.%.%.%.%.%.%.%.m *.*.*.*.M b *.b *.*.c M c *.c c c *.c *.c c c c c c k c k c k k l k k l k l k l j j l j l a l l a l a a a l a a a u u a a a a e + o X UXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUX k G.T.T.T.U.U.U.U.I.U.I.I.I.I.I.I.I.P.U.P.P.P.P.G.P.P.G.P.G.P.G.P.G.G.G.G.D.G.D.D.D.D.D.D.S.S.S.S.S.S.S.Z.S.Z.S.S.Z.Z.Z.Z.Z.C.Z.C.C.C.C.C.C.C.V.V.C.V.V.V.V.V.V.V.V.V.g.g.V.g.g.g.e.e.V.e.e.e.e.e.e.e.w.e.e.w.w.w.w.w.w.q.w.q.q.q.q.q.q.q.9.9.q.9.9.q.9.9.9.9.9.9.7.7.7.7.7.7.7.7.6.6.6.6.6.6.6.6.6.<.<.<.<.<.<.<.<.,.<.,.,.,.,.,.,.>.,.,.,.>.>.>.>.>.>.>.>.>.>.$.>.>.$.>.$.$.:.$.$.$.#.$.$.$.$.#.#.#.$.#.#.#.@.#.#.v #.@.#.v #.@.@.@.%.%.%.%.%.*.*.%.*.%.%.*.n *.*.*.M *.b M *.c *.c *.b c b b c c c c c c c c l k c l k k k l k k l l j l j l a l j a a a l a l a i a a u u a u a h y & o o UXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXo + =.U.T.U.U.U.U.U.I.U.I.I.I.I.I.I.P.P.P.P.P.P.P.P.P.P.G.G.P.G.G.G.G.G.G.G.D.D.D.D.D.D.S.D.S.S.D.S.S.S.S.S.Z.S.Z.Z.Z.Z.Z.C.Z.Z.C.C.C.C.C.C.C.V.C.C.V.C.V.V.V.V.g.V.V.g.V.V.g.g.g.g.g.g.e.e.e.e.e.e.w.w.e.w.w.w.w.w.w.w.w.q.w.q.q.q.q.q.q.q.q.9.q.q.9.9.9.9.9.7.9.7.9.7.7.7.7.6.6.6.6.6.6.6.6.<.6.6.<.<.6.<.<.<.<.<.,.<.,.,.,.,.,.,.,.,.,.>.>.>.>.>.>.>.>.>.>.>.>.>.>.$.>.:.$.:.$.$.$.$.$.$.$.#.#.#.#.#.#.#.#.#.#.#.#.#.#.v #.v v *.*.%.%.%.%.%.%.%.%.%.*.M %.*.m n n n n b *.c c *.*.c c b b c c c c c c k c k l c c k k k k l k l j k l l a j a a l a a l a a l a a a a u u u u a a a > o o o UXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXo * 7.T.U.T.U.U.U.U.I.I.I.I.I.P.P.P.P.P.P.P.P.G.P.G.P.G.G.G.G.G.D.G.D.D.D.D.D.D.D.D.S.D.S.S.S.S.S.S.S.Z.S.Z.S.Z.Z.Z.Z.Z.Z.Z.C.Z.Z.C.C.C.V.C.C.V.V.V.V.V.V.V.V.V.g.g.g.g.e.V.e.g.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.w.w.w.q.q.w.q.q.q.q.q.9.q.9.9.q.9.9.9.9.9.7.9.9.9.7.7.7.7.7.6.7.6.7.6.6.6.6.6.6.<.<.6.<.<.<.<.<.<.,.<.,.,.,.,.,.>.>.,.>.>.>.,.,.>.>.>.>.>.>.>.$.$.:.$.:.$.$.:.$.$.$.$.$.#.#.$.#.$.#.$.#.#.#.#.#.@.v #.v v #.v @.%.%.%.%.%.*.%.%.*.%.*.*.*.m *.n n n n n n *.c *.c c c c c b c c c c c c k c c c k k k c l k k l k l j a j j l l a a a l l a l a a a u a u a u a u a a w . o X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXo y g.T.U.U.U.I.U.I.U.I.I.P.I.P.P.P.P.P.G.P.P.G.G.P.G.G.G.G.G.G.D.G.D.D.D.D.D.D.S.D.S.S.S.S.S.Z.S.Z.S.Z.S.Z.Z.Z.Z.Z.Z.C.Z.C.C.C.C.C.V.C.V.V.V.C.V.V.V.V.V.V.g.V.g.g.g.e.g.e.g.e.V.e.e.e.e.e.w.w.e.w.w.w.w.w.w.w.q.w.q.q.q.q.q.q.9.q.9.q.9.9.9.9.9.9.9.9.9.9.9.7.7.7.7.7.7.7.6.6.6.6.6.<.6.6.<.<.<.<.<.<.,.<.,.,.,.,.,.,.,.,.,.,.>.,.>.>.>.>.>.>.>.>.:.$.>.$.>.>.$.$.$.$.$.$.#.$.$.$.#.$.#.#.$.#.#.#.#.#.#.#.#.#.v v #.v #.&.%.%.-.%.%.%.%.%.%.%.*.%.m m n *.n *.n n c c *.*.c c c c *.c c c c c c c k l c k c k k k l k l l j j j l l l a l l l a l a l a f a a a a u u u a a a e & X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXo o k Z.T.U.U.U.I.I.I.I.P.I.P.P.P.P.P.P.P.P.G.G.P.G.G.G.G.G.G.G.G.D.D.D.D.D.S.D.D.S.S.S.S.S.S.S.Z.S.Z.S.Z.Z.Z.Z.Z.C.Z.C.C.C.C.V.C.C.C.V.C.V.C.V.V.V.V.V.g.V.g.g.g.g.g.g.e.V.e.e.e.e.e.e.w.e.e.w.e.w.w.w.w.w.w.q.w.q.q.q.q.q.q.q.q.9.q.9.9.9.9.9.9.9.9.9.6.7.6.7.7.7.6.6.6.6.6.6.6.<.6.6.6.<.<.<.6.<.<.<.<.<.,.,.,.,.,.,.>.,.>.,.>.>.>.,.>.>.>.>.>.$.>.>.$.>.$.$.=.$.:.$.$.$.$.$.$.$.#.#.#.$.#.#.#.#.#.#.v @.@.v #.#.m -.%.&.%.%.%.%.*.%.%.*.m *.*.m n m n m n n n b n *.c c c *.c c c c c c c c c k c c k k l k k l k k l j l l j a j a j a a a l a f a f a f a u u u u u a a y & o o X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXX . x G.U.U.I.U.U.I.P.I.I.P.P.P.P.P.G.P.P.G.P.G.G.G.G.G.G.G.D.D.D.D.D.D.S.D.D.S.S.S.S.S.S.S.S.S.Z.Z.Z.Z.Z.Z.Z.C.Z.C.C.C.C.C.C.C.V.C.C.V.C.V.V.V.V.g.g.V.g.V.g.g.g.g.e.e.g.e.e.e.e.e.w.e.e.w.w.w.w.w.w.w.w.w.w.q.q.q.q.q.9.q.9.q.9.q.9.9.9.9.9.9.7.9.7.7.7.7.7.7.7.6.6.7.6.6.6.<.6.<.6.<.6.<.<.<.<.<.<.,.,.<.,.,.>.,.,.>.,.,.>.,.>.>.>.>.>.>.>.$.>.>.>.$.:.>.$.$.$.$.$.$.$.$.#.$.#.#.#.$.#.#.#.#.#.@.#.@.@.v #.#.%.%.&.&.%.%.%.%.%.*.%.*.%.%.*.*.*.n n n n n M b c b *.b b b c c c *.c c c k k k l c k l k k k l k j l j l a l l a l a a l a l a a l a a f a u u u u u u a y : o o X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXo + $.P.U.U.I.I.I.I.P.P.P.P.P.G.P.P.G.G.P.G.G.G.G.G.D.D.D.D.D.D.D.D.S.D.S.S.S.S.S.S.S.Z.S.Z.Z.S.Z.Z.Z.Z.C.C.Z.C.C.C.C.C.V.C.V.C.V.V.V.V.V.V.V.V.V.g.V.V.e.g.e.g.e.e.g.e.e.e.e.w.e.e.w.e.w.w.w.w.w.q.w.q.q.q.q.q.9.q.q.q.q.q.9.9.9.9.9.9.7.9.9.7.7.7.7.6.7.7.6.6.6.6.6.6.6.6.6.<.6.6.<.<.<.<.<.<.,.<.,.,.,.,.,.,.,.,.,.>.>.>.>.>.>.>.>.>.:.$.>.>.$.$.>.$.$.>.$.$.$.$.$.$.#.$.#.#.$.#.#.#.#.#.#.@.m @.@.@.#.%.-.%.-.%.%.%.%.%.%.*.%.%.*.*.n n n n n n *.b *.*.b *.b c c b b c c c c c c c k k c c k k k k l k l l j l j j j a a l a l l a l l a a a a f a i u u u u u a u > o X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXo * 1.U.U.I.I.I.I.P.P.P.P.G.G.P.G.P.G.G.G.G.G.G.D.G.D.G.D.D.D.D.D.S.S.S.S.S.S.S.Z.S.Z.Z.S.Z.Z.Z.Z.Z.Z.Z.Z.C.C.C.C.C.C.C.V.C.V.V.V.V.V.V.V.V.g.g.g.g.g.g.g.e.g.g.g.e.e.e.e.e.e.w.e.w.e.w.w.w.w.w.w.q.q.w.q.q.q.q.q.q.9.9.9.q.9.9.9.9.9.9.7.7.7.7.7.7.7.7.7.6.6.7.6.6.<.6.6.<.6.<.<.<.<.<.<.<.,.<.<.,.,.,.,.>.>.,.,.>.,.>.>.>.>.>.>.:.:.>.>.>.:.$.$.=.$.$.$.$.$.$.#.$.$.#.#.$.#.#.#.#.#.v @.@.#.#.@.#.*.&.-.&.%.&.%.-.%.%.%.*.*.*.%.*.n *.n n *.n n n n c b b *.b b b b c c c c c k c k c c k k k k k k l l j j l j a l l l a l a a l f a a f a a a i a u u u u u a a q O X X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX > ,.I.I.I.I.I.I.P.P.P.P.P.G.G.G.G.G.G.D.G.D.G.D.D.D.D.D.D.S.S.D.S.S.S.S.Z.S.S.Z.S.Z.Z.Z.Z.Z.Z.Z.C.C.C.C.C.C.C.C.V.V.C.V.C.V.V.V.V.V.V.g.V.g.g.g.g.g.e.g.e.e.e.e.e.e.e.w.e.e.w.w.w.w.w.w.w.q.w.q.q.q.q.q.q.q.q.9.q.9.9.9.9.9.9.9.9.9.7.7.7.7.7.7.6.7.6.6.6.6.6.6.6.<.6.<.<.6.<.<.<.<.,.<.,.,.,.,.>.,.,.,.,.>.>.>.>.>.>.>.>.>.>.>.=.:.$.$.>.$.:.$.:.$.$.$.$.#.$.$.$.#.#.$.#.#.#.#.#.#.#.@.v #.&.-.-.&.%.%.%.%.%.m #.%.%.*.%.M n n m m *.n n n n b *.c b b c c b b c c c c k c c k c k k l l c l l k k j l j j j l a j l a a l a a a a a a f i a a u u u u u a a > . X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXX w 7.I.U.I.I.P.P.P.G.P.G.P.G.G.G.G.G.G.D.G.D.D.D.S.D.S.D.S.S.D.S.S.S.S.S.S.S.S.Z.Z.Z.Z.Z.Z.C.Z.C.C.C.C.C.C.V.C.V.C.V.V.V.V.V.V.V.g.g.g.V.g.g.e.g.e.V.e.e.e.e.e.e.w.e.w.w.w.w.w.w.w.w.w.q.q.q.q.q.q.q.9.q.9.9.q.9.9.9.9.9.7.9.9.9.9.9.7.7.7.6.7.6.7.6.6.6.6.6.6.<.6.6.<.<.<.<.<.,.<.<.,.,.,.,.,.,.,.,.>.,.>.,.>.,.>.>.>.$.>.>.$.$.>.:.$.:.$.$.>.$.$.$.$.$.$.$.#.$.#.#.#.#.#.#.#.#.#.@.@.%.;.&.&.%.%.%.%.%.*.%.#.m -.*.%.n %.*.n *.n n M *.n n c n n c c c c c c b c c c k c c c k c k k l k k k k l j l j h l l a l a l a l a l a l a a u u a u u u u u u a q @ X X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXo t 7.I.I.I.P.P.P.P.G.P.G.P.G.G.G.G.D.D.D.D.D.D.D.S.D.S.D.S.S.S.S.Z.S.Z.Z.Z.Z.Z.Z.Z.Z.Z.C.C.C.Z.C.C.C.C.V.C.V.C.V.V.V.V.V.V.V.V.g.V.g.g.g.g.g.g.e.e.e.e.e.e.e.e.e.e.w.e.w.w.w.w.w.w.w.q.w.q.q.q.q.q.q.q.q.9.9.9.q.9.9.9.9.9.7.7.7.7.7.7.6.7.6.6.6.6.6.6.6.<.6.<.<.<.<.<.<.<.<.<.,.,.,.,.,.,.>.,.>.,.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.$.>.$.:.$.$.$.$.$.$.#.$.#.#.$.#.#.#.#.#.#.#.v #.&.&.&.&.-.%.%.-.&.%.%.-.%.%.*.m *.*.n *.n n n *.n b n c *.b c c c *.c c c c c c c c c k k l k k k k k j l k j l j l j l a a l a l a a a a a a a a u u u u u u u u a a q + X o o UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXo q 6.P.I.P.P.P.P.P.P.G.G.G.G.D.G.D.D.D.D.D.D.D.D.S.S.S.S.S.S.Z.Z.S.Z.S.Z.Z.Z.C.Z.Z.C.Z.C.Z.C.C.C.V.C.C.C.V.C.V.V.V.V.V.V.g.g.V.g.g.g.g.e.g.e.g.e.e.e.e.e.e.w.e.w.e.w.w.w.w.w.q.w.q.q.q.q.9.9.q.q.9.q.9.9.9.9.9.9.9.7.9.6.9.7.7.7.7.6.7.6.7.6.6.6.6.6.<.6.<.6.<.<.<.<.,.,.<.,.,.,.,.,.,.,.,.>.,.>.>.>.,.>.>.>.>.>.>.$.:.$.>.$.$.$.$.$.$.$.$.$.$.$.#.#.#.$.#.#.#.$.#.#.#.v $.%.&.-.&.-.-.%.&.&.%.%.%.%.*.*.%.%.m *.n *.n n n *.b *.b n b n b *.b c b c c c c c c c c c k k l k l c l j j l j l j l a l h l a a l l a a a a a a a u a u u u u u u a u w + X X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXX e 6.P.I.P.P.P.G.G.G.G.G.G.D.D.G.D.D.D.D.S.S.D.S.S.S.S.Z.S.S.S.Z.S.Z.Z.Z.Z.Z.C.Z.C.C.C.C.C.V.V.C.V.C.V.V.V.V.V.V.V.V.g.V.V.e.g.e.g.e.g.e.e.e.e.e.e.e.w.w.e.w.w.w.w.w.w.w.w.q.q.w.q.q.q.q.q.q.q.9.9.9.q.9.9.9.7.9.9.9.7.7.7.6.7.6.7.6.6.6.6.6.<.6.6.<.<.6.<.<.<.<.<.<.<.,.,.,.,.,.,.,.,.>.,.>.,.>.>.>.>.>.>.:.>.>.>.:.:.$.>.$.$.>.$.$.$.$.$.#.$.#.$.#.#.#.#.#.#.#.v %.3.-.&.-.&.&.%.%.%.&.%.#.%.%.%.%.m #.m m *.*.M *.n n *.b b n n b x c c b b c c c c c c k l c k k k c k k k l l j j j l j j h h h l a l a a a a l a a i u u u u u u u u u u q @ o X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXX > ,.P.P.P.P.P.G.G.G.G.D.G.G.S.G.S.S.S.S.S.S.S.S.S.S.Z.Z.S.Z.S.Z.Z.Z.Z.Z.Z.Z.C.C.C.C.C.C.C.C.V.C.V.V.V.V.V.V.V.V.g.e.V.g.g.g.e.g.e.g.e.e.e.e.e.e.w.e.e.w.w.w.w.w.w.w.q.w.q.q.q.q.q.q.q.9.q.9.9.9.9.9.9.9.7.9.7.7.9.7.7.7.7.6.6.6.6.6.6.6.6.<.6.6.<.6.<.6.,.<.,.<.<.,.,.,.,.,.,.>.,.>.,.>.>.>.>.>.>.>.>.>.>.>.$.>.=.=.$.=.$.=.$.$.$.$.$.$.$.#.#.#.$.#.#.#.#.#.&.%.;.&.&.-.&.&.%.&.&.%.%.%.*.%.%.*.%.*.*.m *.m m m n n n b n b n b b b b b b c c c c c z c c k l k k k k k k k l j j l j j l h h h h h h f h a a f a u u u u u u u u u u a a q @ X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXX - =.G.P.P.G.P.G.G.G.G.S.G.D.D.S.G.S.D.S.S.S.S.S.S.S.S.Z.Z.Z.Z.Z.Z.Z.C.C.C.C.C.C.C.C.V.C.V.C.V.C.V.V.V.g.V.g.g.V.V.g.g.V.g.V.e.g.e.e.e.e.e.e.w.e.w.w.e.w.w.w.w.w.w.q.q.q.q.q.q.q.9.q.q.9.q.9.q.9.9.9.9.9.7.9.7.7.7.7.6.7.6.7.7.6.6.6.6.6.6.<.<.6.,.<.6.,.<.<.,.,.,.,.,.,.>.,.,.,.,.>.,.>.>.>.>.>.>.>.$.>.:.>.$.=.=.=.$.=.$.$.$.$.$.$.#.#.#.$.#.#.#.#.#.%.;.&.;.;.&.&.%.-.-.%.%.%.%.%.%.%.*.%.%.*.*.*.m n n n n n *.b n b b c b b b x b b c c c k c k k c k k k k k k k l l j j l l h h h l h h h l f h h a a l u u a u u u u y u u a y > . o X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXX * @.S.P.P.G.G.G.G.G.D.S.D.D.D.S.S.S.S.S.S.S.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.C.C.C.C.C.C.C.C.V.C.V.V.C.V.V.V.V.V.V.g.g.V.g.e.V.g.e.e.e.e.e.e.e.e.e.w.w.e.e.w.w.w.w.w.q.w.w.q.w.q.q.9.q.q.q.9.q.q.9.9.q.7.9.9.7.7.7.7.7.7.7.6.7.6.6.6.6.6.6.6.,.6.6.,.6.<.<.,.6.,.,.<.,.,.,.,.,.,.,.,.,.,.>.>.>.>.>.>.>.>.>.:.=.>.$.:.$.$.=.$.$.$.$.$.$.$.#.#.$.$.#.#.#.#.#.#.%.&.3.&.-.&.&.%.-.-.%.%.%.%.%.%.%.%.%.%.*.*.*.*.n n n n n n n b *.n b b b b b b c c c c c c c k k c l c l k k k k k l j j j l h l l h h h h h f h f f a a a u u u u u u u u a a t : X X X o UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXo @ k e.P.P.G.G.D.G.G.G.S.D.S.G.S.S.S.Z.S.S.Z.Z.S.Z.S.Z.Z.Z.Z.Z.Z.C.Z.C.C.C.C.V.C.V.C.V.V.V.V.V.V.V.g.V.g.g.g.g.e.e.g.g.e.e.e.e.e.e.e.e.e.w.w.w.w.w.w.w.w.q.q.q.q.q.q.q.q.q.9.q.9.9.9.7.9.9.7.7.9.7.9.7.7.6.7.7.6.6.7.6.6.6.6.6.6.<.6.6.,.<.<.6.,.<.<.,.,.,.,.,.,.,.,.>.>.>.,.>.>.>.>.>.>.>.>.$.>.>.$.$.>.=.=.$.$.$.$.$.#.$.#.$.#.#.#.$.#.$.&.;.3.3.&.-.;.-.%.&.&.&.%.%.%.%.%.%.%.*.*.*.*.n *.n *.n *.n n n b *.b b b b b b b c c c c c k c l c k k k k k k l l j j j l l h l l h h h h h h h h h f h u a u u u u u u u u u a t * o o X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXo X u 9.G.P.G.G.G.S.G.S.D.S.S.S.S.S.S.Z.Z.S.Z.Z.Z.Z.Z.Z.C.Z.C.C.C.C.C.C.C.V.V.V.C.V.V.V.V.V.V.g.V.V.g.g.g.e.g.e.V.e.e.e.e.e.e.w.e.w.w.e.w.w.w.w.w.w.q.w.q.q.q.q.9.q.q.9.q.9.q.7.q.9.9.9.9.7.9.9.7.7.7.7.7.7.6.7.6.6.6.6.6.,.6.6.6.,.<.<.,.6.,.<.,.,.,.,.,.,.,.,.,.>.,.>.>.>.>.>.>.>.>.>.$.>.>.:.$.:.$.:.$.$.$.$.$.$.$.$.#.$.#.#.#.#.%.&.;.&.&.&.&.&.&.&.&.&.%.%.%.%.%.%.%.%.%.*.*.*.M *.n *.n m n b n b b b *.b b b b b c c c c c z c c k c k c k k k k k l j k l l j h l h h j h h h h h h a f a a u u u u u u u u u u a q & o X o UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXX o e >.S.G.G.D.G.S.G.S.S.S.S.S.S.S.Z.S.Z.Z.Z.Z.Z.Z.C.Z.C.C.C.C.C.C.V.V.C.C.C.V.V.V.V.V.V.g.g.g.g.g.g.g.g.e.g.e.e.e.e.e.e.e.e.e.w.e.w.w.w.w.w.w.q.q.q.q.q.q.q.q.q.9.q.9.q.q.9.9.9.9.7.9.9.7.7.7.7.7.6.6.6.6.6.6.6.6.6.6.6.6.,.6.,.<.6.,.,.,.,.,.<.,.,.,.>.>.,.>.,.>.,.>.,.>.>.>.>.>.:.>.:.$.>.>.$.=.$.>.$.$.$.$.#.#.$.#.#.#.#.:.;.;.;.;.;.&.&.&.&.&.&.%.%.&.%.%.%.%.*.%.*.%.%.*.*.*.*.m *.n n n n b n *.b b b b b x c c c z c c c c k k k c k k k k l j l j l k a h j h l h h h h h h f f f a a f u u u u u u u u u u > % o o X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXX o % x g.G.G.G.G.D.D.S.S.S.S.S.Z.S.Z.Z.Z.Z.Z.Z.Z.Z.C.C.C.C.C.C.C.C.C.V.V.V.V.V.V.V.V.V.g.V.V.g.g.g.g.e.e.e.e.e.e.e.e.e.e.w.e.w.w.w.w.w.w.w.w.q.q.q.q.9.q.9.9.q.q.q.9.9.9.9.9.7.9.7.7.7.7.7.7.6.6.7.6.7.6.6.6.6.6.6.<.6.6.,.6.6.6.,.6.,.,.6.,.,.,.,.,.,.,.>.>.,.>.>.>.>.>.>.$.>.$.>.$.>.>.$.$.$.$.$.$.$.$.$.$.#.$.#.$.#.;.;.;.;.;.;.;.&.3.&.-.&.-.%.&.%.%.%.%.%.%.%.%.%.m *.m n n n n n n n n n n n b b b b b b c c c c k c k k c k k k l k l k k k l j j j l j l j h h h h h h f h a a a a u u u u u u u u u u t * . o X X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX X X . u 6.S.G.G.S.S.S.S.S.S.Z.S.S.Z.Z.Z.Z.Z.C.C.C.C.C.C.C.C.g.V.C.V.V.V.V.V.V.V.V.g.g.V.g.g.g.g.e.g.e.V.e.e.e.e.w.e.w.w.e.w.w.w.w.w.w.q.w.q.q.q.q.q.q.q.q.q.q.9.9.9.9.9.7.9.9.9.7.7.7.7.7.7.7.7.6.7.6.6.6.<.6.6.<.6.,.,.6.,.,.<.,.,.,.,.,.,.,.,.,.>.,.>.,.>.,.,.>.>.>.>.>.>.>.>.:.>.$.$.$.>.:.$.$.$.$.$.#.$.$.#.#.;.1.;.3.;.;.&.&.&.3.&.&.-.-.&.%.%.%.&.%.%.%.*.%.m *.*.m *.n n *.n n n n b n b b b b b b x c c c c c c c k c l k c k k l k l l l l j a l a j h h h h h h f h h f f u a u u u u u u u a u u w % o o X X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXX ; v V.G.D.G.S.S.S.S.S.Z.Z.Z.Z.Z.Z.Z.C.C.C.C.C.C.V.C.C.V.C.V.V.V.V.V.V.V.g.V.V.e.e.g.e.e.g.e.e.e.e.e.e.e.e.w.w.e.w.w.w.w.w.q.w.w.q.q.q.q.q.q.q.q.9.q.9.9.9.9.9.6.9.7.9.7.7.9.7.6.6.6.9.6.6.6.6.6.6.6.6.6.<.6.<.<.<.<.<.,.,.<.,.,.,.,.,.,.,.>.,.>.,.>.>.>.>.>.>.>.>.$.>.>.$.:.$.=.$.$.$.$.$.$.$.#.$.#.$.:.3.3.;.;.;.;.&.&.&.&.&.-.&.&.&.-.%.%.%.%.-.*.%.%.*.%.*.n *.n *.n *.b *.b *.*.b b b b b c c c c c c c c k k c k c l k k k l j j j j j j j h j l l a l a a a a a a a a u u u u u u u u a a y : . X X o UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXX X . u ,.S.S.G.S.S.S.S.S.Z.S.Z.Z.Z.C.Z.C.C.V.C.C.C.V.V.V.V.V.V.V.V.V.g.g.V.e.V.e.V.g.e.g.e.g.e.e.e.e.e.w.e.w.e.w.w.w.w.w.w.w.q.q.q.q.q.q.q.q.9.9.q.9.9.9.9.9.9.9.9.9.9.9.7.6.9.6.9.6.6.6.6.6.6.6.<.<.6.<.<.<.<.<.<.<.,.<.,.,.,.,.,.,.=.,.>.,.=.>.,.>.>.>.>.>.>.$.>.>.$.$.>.$.=.:.$.$.$.$.$.$.$.$.&.1.3.3.;.3.;.;.;.;.-.&.&.&.-.&.-.%.&.%.%.%.%.%.#.*.*.*.*.M *.*.n n *.b b *.b *.b b b b b x b b c c c z c c k k c l k k k k l k k l j l l h l j l a a a l a a l a a a a u a u u u u u u a a y q & o o X X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXo % j q.S.S.S.S.S.S.Z.Z.Z.Z.C.C.C.Z.C.C.C.V.C.V.C.V.C.V.V.g.V.g.V.e.V.g.g.g.g.e.V.e.e.e.e.e.e.e.w.e.w.e.w.w.w.w.w.w.w.q.q.q.q.q.q.q.q.9.q.q.9.q.9.9.9.9.7.9.9.9.6.7.7.7.6.7.7.6.6.6.6.6.6.6.6.<.<.<.6.<.<.<.<.,.<.,.,.,.,.,.,.,.,.>.,.,.=.>.>.>.>.>.>.>.=.>.:.:.$.>.$.>.$.$.$.$.$.#.$.$.;.3.1.3.;.;.;.;.;.;.&.-.&.-.&.&.&.%.%.%.#.%.%.%.%.%.%.*.%.*.n *.n n n n n *.n b *.c b b b b b c c x c c k c c k c c k k c l k k k j j j j j h j h h l a l l a a l a a a a u a u u u u u u a u t ; . o o X X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXX o o , @.e.S.S.S.Z.S.Z.Z.Z.C.Z.C.C.C.C.V.C.V.C.V.V.V.V.V.V.V.g.g.V.g.g.g.e.g.e.e.e.e.e.e.e.w.e.e.w.e.w.w.w.w.w.w.q.q.w.q.q.9.q.9.q.9.q.9.9.9.9.9.9.9.9.9.9.6.9.6.6.7.6.7.6.6.6.6.6.6.6.<.<.<.6.<.<.<.<.<.<.,.<.,.<.,.,.,.,.,.=.,.,.>.,.>.>.>.>.>.>.=.=.=.$.>.$.>.$.$.$.$.$.$.$.$.:.;.3.1.1.3.1.;.3.&.;.3.;.;.;.&.-.&.%.-.&.%.%.%.%.%.%.#.m *.*.m *.*.n *.n n n n *.c *.b b b b b b b c c c c c c k k k k k l k k k k l j k l j l h j h l h a l a l a a a a a u a a u u u u u a a t > @ o X o UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXX X X q #.V.S.S.S.Z.Z.Z.Z.Z.C.C.C.V.C.V.C.V.V.V.V.g.V.g.g.V.g.V.e.g.e.e.e.e.e.e.e.e.e.w.e.e.w.w.w.w.w.w.w.w.q.q.q.q.q.q.q.q.q.7.q.q.9.9.9.q.7.9.7.9.6.9.6.7.9.7.7.6.6.6.6.6.6.<.6.<.6.6.<.<.<.<.<.,.<.,.,.,.<.,.,.,.>.,.>.,.=.=.,.,.>.>.:.>.:.>.>.$.>.$.>.$.$.=.$.$.$.$.$.;.1.1.1.1.1.3.3.;.;.3.;.;.&.&.&.&.%.-.&.&.%.-.%.%.%.*.%.m #.*.*.m *.n *.n n n *.*.b n b b b b x b b b c c c c c c c k c k c k k k l j l k l l j l j l j h l a j a j a a a u a a u u a u a a a a y > + o X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX o X @ y =.e.S.S.Z.Z.Z.C.C.C.V.C.C.C.V.V.V.V.V.g.V.V.g.g.g.e.g.e.V.e.V.e.e.e.e.w.e.e.w.w.w.w.w.w.w.w.q.q.q.q.q.q.9.9.q.q.9.q.9.7.q.9.9.7.9.9.9.7.9.9.6.7.6.6.6.6.6.6.6.6.6.6.6.6.<.<.6.<.<.<.<.<.,.,.,.,.,.,.,.,.,.>.,.,.=.,.=.>.>.>.>.>.=.$.:.>.>.>.$.$.$.$.$.$.:.;.1.1.1.3.3.3.;.3.1.3.;.3.3.&.;.&.-.&.&.%.%.%.%.#.%.%.%.%.%.%.m %.m m m *.*.n n b b n n c b c *.c c b b c z z c c k k k c k k k l k k k k k j j j j h a h h h h j a a a a a a a a a a u a a a a y q & O X X X X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXo X @ t #.q.S.Z.Z.Z.C.C.C.V.C.C.V.V.V.V.V.g.g.g.g.g.g.e.e.V.e.e.e.e.e.e.e.e.w.w.e.w.w.w.w.q.w.q.w.q.w.q.q.q.q.q.9.q.q.7.q.7.9.9.9.7.9.7.9.9.6.6.9.6.7.6.6.6.6.6.6.6.6.6.<.<.6.<.<.<.<.<.,.<.,.,.,.,.,.,.>.,.>.,.,.>.,.=.>.>.>.=.>.=.>.>.$.$.$.:.$.>.$.;.;.1.1.1.3.1.4.1.3.;.;.;.;.;.3.3.&.&.&.&.-.&.&.-.%.&.%.%.%.%.*.*.*.m *.*.m *.m *.b *.n *.n x b *.b b b *.c c z z c c c k c c k l k l k k l k k j l j j h h j l h j h a j a a a a a a u a a a a a a y > % . o o X X X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXX o o @ t n 6.C.Z.Z.C.C.C.V.V.C.V.V.V.V.V.V.g.g.g.g.V.e.e.e.V.e.e.w.e.w.e.w.e.w.w.w.w.w.w.w.q.q.q.q.q.q.q.q.9.q.9.9.q.7.q.7.7.9.9.7.7.7.7.7.9.6.7.6.7.6.6.6.6.6.<.6.<.6.<.<.<.<.,.<.<.<.,.,.,.,.,.>.,.,.>.,.>.>.>.>.>.>.>.=.>.=.=.:.>.:.>.:.$.$.:.1.1.5.1.1.4.1.1.3.1.3.;.;.;.&.3.&.&.&.&.&.%.&.%.%.%.#.&.%.-.*.%.%.m %.*.*.m n *.*.n *.b *.b c *.b c b b b c c c c c c c k k c l c k k k k k k k l j l h h l j j h h a a h a a a a a a a a a a a a e > & . o X X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXo X . > k >.w.Z.C.C.C.C.V.C.V.V.V.V.g.g.g.g.g.g.e.g.e.e.e.e.e.w.e.w.e.w.w.w.w.w.w.w.q.w.q.q.q.q.q.9.q.q.q.9.q.9.9.9.9.7.9.7.7.7.7.7.7.6.6.7.6.6.7.6.6.6.6.<.6.6.<.<.<.<.<.,.<.,.,.,.,.,.,.>.,.,.>.,.>.>.>.>.>.>.>.>.=.=.>.:.=.$.$.=.$.>.1.5.;.5.5.5.;.5.1.;.;.;.;.;.;.;.;.&.;.&.&.-.-.%.%.&.%.%.%.%.%.%.%.*.m *.*.*.*.n n *.n n b b n n n b b b b b b c c c c c z z k z k k c k k k j k j j j j j j h h h h h a j a a a a a a a a a a h y q : @ o X X X X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXX X X o + e x 6.e.C.C.C.V.V.V.V.V.g.g.g.g.g.g.g.e.e.e.e.e.e.e.w.e.w.w.w.w.w.q.w.w.q.q.q.q.q.q.q.q.9.7.7.q.7.q.9.9.7.q.7.9.9.9.6.7.7.7.6.6.6.6.6.6.6.6.<.6.<.<.<.<.<.<.<.<.<.<.,.,.,.,.,.,.,.>.,.>.>.,.>.>.>.>.>.=.>.:.:.:.=.$.1.1.5.5.5.1.5.1.;.;.;.;.;.1.;.;.;.;.;.;.;.&.;.&.&.%.%.&.*.%.&.%.%.%.&.#.m %.%.*.*.*.*.n *.n *.n *.*.x x b b n b z x c z c z z c k k z k k k k j k j k j j j j j a a j h h h h a a a a a j a a j a a e > & . o X X X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXX X X o X * y v ,.w.C.V.g.C.V.g.V.g.g.g.e.e.g.e.e.e.e.w.w.e.e.w.w.w.w.w.w.w.w.q.q.q.q.q.9.q.9.q.q.9.7.q.7.7.q.7.7.7.7.7.7.7.7.6.9.6.6.6.6.6.6.6.6.6.<.6.<.6.<.<.,.<.,.,.<.,.,.,.,.,.>.,.,.>.>.,.>.>.,.>.>.>.>.:.>.:.:.=.$.>.>.$.$.$.$.$.$.$.#.$.#.$.$.#.#.#.#.#.@.#.@.#.@.@.@.@.@.@.@.v v v v v v v v v x x @.x x x x x x z z k x k z z k x k k x x j j k k k k j j j j j j j j j j j a j j a a a j j a a j a j j a j a e q & @ o o X X o X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX X X o o * e z =.7.e.V.C.V.V.g.g.g.g.e.g.e.e.e.e.e.e.w.w.e.w.w.w.w.w.q.q.q.q.q.q.q.q.q.q.9.q.q.9.7.q.7.7.q.7.7.7.7.7.7.7.6.9.6.7.6.6.6.6.6.<.6.<.<.6.<.<.<.<.<.<.<.,.<.,.,.,.,.,.,.,.,.>.>.,.>.>.>.>.>.>.:.>.=.=.>.$.>.$.:.$.:.$.$.$.$.$.$.#.$.#.#.$.#.#.#.@.#.@.@.@.@.@.@.@.@.@.#.v #.v @.v v x @.x x x x x x x x x x x x x z x x k x x k k k x k k k k z j k k k j j k j a j j j a j j j a j j j a j h y q > & O o X X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXX X X X @ > t z #.<.q.g.g.V.V.e.V.V.e.e.e.e.e.w.e.e.w.w.w.w.q.q.w.q.w.q.q.q.q.q.9.q.q.9.9.q.7.9.7.9.7.9.9.7.7.7.7.7.7.7.6.6.6.6.6.6.6.6.<.6.6.<.<.6.,.6.,.,.<.,.,.,.,.,.,.,.,.>.,.,.>.,.>.>.>.>.>.:.>.:.>.$.>.:.:.:.$.$.$.$.$.$.$.$.$.#.$.#.#.#.#.#.#.#.*.#.#.#.#.@.@.#.@.@.@.v @.v v @.v @.x @.x v v x v x x x x x z x k z z z k z z z k k k k k k k j k j k j j j j j a a j j j j j a a t q > * + o o X X X X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX X X o X @ * q y z @.:.,.7.q.w.V.e.e.e.e.e.e.w.e.e.e.w.w.w.w.w.w.q.q.q.q.q.q.q.q.q.q.q.9.q.9.q.9.9.9.9.9.7.9.7.6.9.7.7.7.7.6.6.6.6.6.6.6.6.6.<.6.,.6.<.<.<.<.<.<.<.,.,.,.,.,.,.,.>.,.>.>.,.>.>.>.>.>.>.>.>.>.>.>.>.:.:.$.:.$.:.$.$.$.$.=.#.=.#.#.$.#.#.#.#.#.#.#.#.@.@.@.#.@.@.@.@.@.@.@.x v v v v @.x x @.x x x x x x x z z z z z z z z x z k z k k k k k k j k j a u y e q , * % @ o X o o X X X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXo X X o X . & ; , e y f j v n @.#.#.#.*.*.#.@.@.v @.@.@.v v v v v x v v x v x v v v x x n v z b b b v b x x b b z b x b z z k k x z k c z k k z z k k k k k j k j j j j j j j j j j j h l h h j h h h h h h h h h h h h f h u h a a h a a h h u u u u u u a u u u u y y u y y y u y y u y t y t t t t t t y t t y t t y y t t e e t t e e e e e q q q : - * % @ O . o o o X X X o X X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXo X X X X X o o o . . O O @ O @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ O @ @ O O O @ @ @ @ O O O O @ O O @ O O O O O @ @ O O O O O @ O O O O @ @ O @ @ . @ O @ . @ O @ . @ O O O O O O O O O O O O O O O O O . O O O O . O O . . . O . O O O O @ . O . . @ . O O . O . O O . O . O O O O O O O O O O . . O . . . . o O O o O O O O . . o o o X o o o o o X X X o X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX X X X o o X o X o o o X o o o o o o X X o o o o o X o o o X X X o o o o o o o o o X o o o o o o o X o o o X X X X o X o X X o o X X X o X X o X o X o o o o X o o X o o o X X o X o o X o o X X X X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX X X X o o X X X o X o o X o X o o o o o o o X X o o X X o X X X o o X o X o o X X o X o X o o o o X X X o o X X o X X X o o o X o X X o X o o X X X o o X o X X o X X o X X o X X X X o o o X X o o o X o o X X o o X X X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXo X o X X o o X X o X X X X X X X X X X o X X X X X X o X X X X X X X X X o o X o X o X o X o X X X X X X X X X X X X X X X X X X o X X X X X X o X X X X X X X X X o o X o X o X o X o X X X o X X o X X X o X X X o o X X X X o o o X X X X X X o X o X o X X X o X X o X X X X o X X X X X o X o X o o X X X o o X o X o X X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
|
||||||
|
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX"
|
||||||
|
};
|
|
@ -0,0 +1,13 @@
|
||||||
|
"Kick", 36, 100
|
||||||
|
"Snare", 38, 100
|
||||||
|
"Closed Hat", 42, 80
|
||||||
|
"Open Hat", 46, 80
|
||||||
|
"Rim Shot", 37, 100
|
||||||
|
"Ride", 51, 80
|
||||||
|
"Crash", 49, 80
|
||||||
|
"Hi Tom", 48, 100
|
||||||
|
"Mid Tom", 45, 100
|
||||||
|
"Low Tom", 41, 100
|
||||||
|
"Hi Conga", 62, 80
|
||||||
|
"Low Conga", 63, 80
|
||||||
|
"Timbale", 65, 80
|
|
@ -0,0 +1,44 @@
|
||||||
|
"Bass Drum 1", 36, 100
|
||||||
|
"Side Stick", 37, 80
|
||||||
|
"Acoustic Snare", 38, 100
|
||||||
|
"Hand Clap", 39, 80
|
||||||
|
"Electric Snare", 40, 100
|
||||||
|
"Low Floor Tom", 41, 100
|
||||||
|
"Closed Hi-Hat", 42, 80
|
||||||
|
"High Floor Tom", 43, 100
|
||||||
|
"Pedal Hi-Hat", 44, 80
|
||||||
|
"Low Tom", 45, 100
|
||||||
|
"Open Hi-Hat", 46, 64
|
||||||
|
"Low-Mid Tom", 47, 90
|
||||||
|
"Hi-Mid Tom", 48, 90
|
||||||
|
"Crash Cymbal 1", 49, 80
|
||||||
|
"High Tom", 50, 100
|
||||||
|
"Ride Cymbal 1", 51, 75
|
||||||
|
"Chinese Cymbal", 52, 75
|
||||||
|
"Ride Bell", 53, 75
|
||||||
|
"Tambourine", 54, 64
|
||||||
|
"Splash Cymbal", 55, 64
|
||||||
|
"Cowbell", 56, 64
|
||||||
|
"Crash Cymbal 2", 57, 64
|
||||||
|
"Hi Bongo", 60, 100
|
||||||
|
"Low Bongo", 61, 100
|
||||||
|
"Mute Hi Conga", 62, 80
|
||||||
|
"Open Hi Conga", 63, 100
|
||||||
|
"Low Conga", 64, 100
|
||||||
|
"High Timbale", 65, 80
|
||||||
|
"Low Timbale", 66, 80
|
||||||
|
"High Agogo", 67, 64
|
||||||
|
"Low Agogo", 68, 64
|
||||||
|
"Cabasa", 69, 64
|
||||||
|
"Maracas", 70, 70
|
||||||
|
"Short Whistle", 71, 64
|
||||||
|
"Long Whistle", 72, 64
|
||||||
|
"Short Guiro", 73, 64
|
||||||
|
"Long Guiro", 74, 64
|
||||||
|
"Claves", 75, 80
|
||||||
|
"Hi Wood Block", 76, 80
|
||||||
|
"Low Wood Block", 77, 80
|
||||||
|
"Mute Cuica", 78, 64
|
||||||
|
"Open Cuica", 79, 64
|
||||||
|
"Mute Triangle", 80, 64
|
||||||
|
"Open Triangle", 81, 64
|
|
@ -0,0 +1,61 @@
|
||||||
|
"High Q", 27, 100
|
||||||
|
"Slap", 28, 100
|
||||||
|
"Scratch Push", 29, 100
|
||||||
|
"Scratch Pull", 30, 100
|
||||||
|
"Sticks", 31, 100
|
||||||
|
"Square Click", 32, 100
|
||||||
|
"Metronome Click", 33, 100
|
||||||
|
"Metronome Bell", 34, 100
|
||||||
|
"Acoustic Bass Drum", 35, 100
|
||||||
|
"Bass Drum 1", 36, 100
|
||||||
|
"Side Stick", 37, 100
|
||||||
|
"Brush Tap", 38, 100
|
||||||
|
"Brush Slap", 39, 100
|
||||||
|
"Brush Swirl", 40, 100
|
||||||
|
"Low Floor Tom", 41, 100
|
||||||
|
"Closed Hi-Hat", 42, 100
|
||||||
|
"High Floor Tom", 43, 100
|
||||||
|
"Pedal Hi-Hat", 44, 100
|
||||||
|
"Low Tom", 45, 100
|
||||||
|
"Open Hi-Hat", 46, 100
|
||||||
|
"Low-Mid Tom", 47, 100
|
||||||
|
"Hi-Mid Tom", 48, 100
|
||||||
|
"Crash Cymbal 1", 49, 100
|
||||||
|
"High Tom", 50, 100
|
||||||
|
"Ride Cymbal 1", 51, 100
|
||||||
|
"Chinese Cymbal", 52, 100
|
||||||
|
"Ride Bell", 53, 100
|
||||||
|
"Tambourine", 54, 100
|
||||||
|
"Splash Cymbal", 55, 100
|
||||||
|
"Cowbell", 56, 100
|
||||||
|
"Crash Cymbal 2", 57, 100
|
||||||
|
"Vibraslap", 58, 100
|
||||||
|
"Ride Cymbal 2", 59, 100
|
||||||
|
"Hi Bongo", 60, 100
|
||||||
|
"Low Bongo", 61, 100
|
||||||
|
"Mute Hi Conga", 62, 100
|
||||||
|
"Open Hi Conga", 63, 100
|
||||||
|
"Low Conga", 64, 100
|
||||||
|
"High Timbale", 65, 100
|
||||||
|
"Low Timbale", 66, 100
|
||||||
|
"High Agogo", 67, 100
|
||||||
|
"Low Agogo", 68, 100
|
||||||
|
"Cabasa", 69, 100
|
||||||
|
"Maracas", 70, 100
|
||||||
|
"Short Whistle", 71, 100
|
||||||
|
"Long Whistle", 72, 100
|
||||||
|
"Short Guiro", 73, 100
|
||||||
|
"Long Guiro", 74, 100
|
||||||
|
"Claves", 75, 100
|
||||||
|
"Hi Wood Block", 76, 100
|
||||||
|
"Low Wood Block", 77, 100
|
||||||
|
"Mute Cuica", 78, 100
|
||||||
|
"Open Cuica", 79, 100
|
||||||
|
"Mute Triangle", 80, 100
|
||||||
|
"Open Triangle", 81, 100
|
||||||
|
"Shaker", 82, 100
|
||||||
|
"Jungle Bell", 83, 100
|
||||||
|
"Belltree", 84, 100
|
||||||
|
"Castanets", 85, 100
|
||||||
|
"Mute Surdo", 86, 100
|
||||||
|
"Open Surdo", 87, 100
|
|
@ -0,0 +1,61 @@
|
||||||
|
"High Q", 27, 100
|
||||||
|
"Slap", 28, 100
|
||||||
|
"Scratch Push", 29, 100
|
||||||
|
"Scratch Pull", 30, 100
|
||||||
|
"Sticks", 31, 100
|
||||||
|
"Square Click", 32, 100
|
||||||
|
"Metronome Click", 33, 100
|
||||||
|
"Metronome Bell", 34, 100
|
||||||
|
"Acoustic Bass Drum", 35, 100
|
||||||
|
"Elec BD", 36, 100
|
||||||
|
"Side Stick", 37, 100
|
||||||
|
"Elec SD", 38, 100
|
||||||
|
"Hand Clap", 39, 100
|
||||||
|
"Gated SD", 40, 100
|
||||||
|
"Elec Low Tom 2", 41, 100
|
||||||
|
"Closed Hi-Hat", 42, 100
|
||||||
|
"Elec Low Tom 1", 43, 100
|
||||||
|
"Pedal Hi-Hat", 44, 100
|
||||||
|
"Elec Mid Tom 2", 45, 100
|
||||||
|
"Open Hi-Hat", 46, 100
|
||||||
|
"Elec Mid Tom 1", 47, 100
|
||||||
|
"Elec Hi Tom 2", 48, 100
|
||||||
|
"Crash Cymbal 1", 49, 100
|
||||||
|
"Elec High Tom 1", 50, 100
|
||||||
|
"Ride Cymbal 1", 51, 100
|
||||||
|
"Reverse Cymbal", 52, 100
|
||||||
|
"Ride Bell", 53, 100
|
||||||
|
"Tambourine", 54, 100
|
||||||
|
"Splash Cymbal", 55, 100
|
||||||
|
"Cowbell", 56, 100
|
||||||
|
"Crash Cymbal 2", 57, 100
|
||||||
|
"Vibraslap", 58, 100
|
||||||
|
"Ride Cymbal 2", 59, 100
|
||||||
|
"Hi Bongo", 60, 100
|
||||||
|
"Low Bongo", 61, 100
|
||||||
|
"Mute Hi Conga", 62, 100
|
||||||
|
"Open Hi Conga", 63, 100
|
||||||
|
"Low Conga", 64, 100
|
||||||
|
"High Timbale", 65, 100
|
||||||
|
"Low Timbale", 66, 100
|
||||||
|
"High Agogo", 67, 100
|
||||||
|
"Low Agogo", 68, 100
|
||||||
|
"Cabasa", 69, 100
|
||||||
|
"Maracas", 70, 100
|
||||||
|
"Short Whistle", 71, 100
|
||||||
|
"Long Whistle", 72, 100
|
||||||
|
"Short Guiro", 73, 100
|
||||||
|
"Long Guiro", 74, 100
|
||||||
|
"Claves", 75, 100
|
||||||
|
"Hi Wood Block", 76, 100
|
||||||
|
"Low Wood Block", 77, 100
|
||||||
|
"Mute Cuica", 78, 100
|
||||||
|
"Open Cuica", 79, 100
|
||||||
|
"Mute Triangle", 80, 100
|
||||||
|
"Open Triangle", 81, 100
|
||||||
|
"Shaker", 82, 100
|
||||||
|
"Jungle Bell", 83, 100
|
||||||
|
"Belltree", 84, 100
|
||||||
|
"Castanets", 85, 100
|
||||||
|
"Mute Surdo", 86, 100
|
||||||
|
"Open Surdo", 87, 100
|
|
@ -0,0 +1,61 @@
|
||||||
|
"High Q", 27, 100
|
||||||
|
"Slap", 28, 100
|
||||||
|
"Scratch Push", 29, 100
|
||||||
|
"Scratch Pull", 30, 100
|
||||||
|
"Sticks", 31, 100
|
||||||
|
"Square Click", 32, 100
|
||||||
|
"Metronome Click", 33, 100
|
||||||
|
"Metronome Bell", 34, 100
|
||||||
|
"Acoustic Bass Drum", 35, 100
|
||||||
|
"Bass Drum 1", 36, 100
|
||||||
|
"Side Stick", 37, 100
|
||||||
|
"Acoustic Snare", 38, 100
|
||||||
|
"Hand Clap", 39, 100
|
||||||
|
"Electric Snare", 40, 100
|
||||||
|
"Low Floor Tom", 41, 100
|
||||||
|
"Closed Hi-Hat", 42, 100
|
||||||
|
"High Floor Tom", 43, 100
|
||||||
|
"Pedal Hi-Hat", 44, 100
|
||||||
|
"Low Tom", 45, 100
|
||||||
|
"Open Hi-Hat", 46, 100
|
||||||
|
"Low-Mid Tom", 47, 100
|
||||||
|
"Hi-Mid Tom", 48, 100
|
||||||
|
"Crash Cymbal 1", 49, 100
|
||||||
|
"High Tom", 50, 100
|
||||||
|
"Ride Cymbal 1", 51, 100
|
||||||
|
"Chinese Cymbal", 52, 100
|
||||||
|
"Ride Bell", 53, 100
|
||||||
|
"Tambourine", 54, 100
|
||||||
|
"Splash Cymbal", 55, 100
|
||||||
|
"Cowbell", 56, 100
|
||||||
|
"Crash Cymbal 2", 57, 100
|
||||||
|
"Vibraslap", 58, 100
|
||||||
|
"Ride Cymbal 2", 59, 100
|
||||||
|
"Hi Bongo", 60, 100
|
||||||
|
"Low Bongo", 61, 100
|
||||||
|
"Mute Hi Conga", 62, 100
|
||||||
|
"Open Hi Conga", 63, 100
|
||||||
|
"Low Conga", 64, 100
|
||||||
|
"High Timbale", 65, 100
|
||||||
|
"Low Timbale", 66, 100
|
||||||
|
"High Agogo", 67, 100
|
||||||
|
"Low Agogo", 68, 100
|
||||||
|
"Cabasa", 69, 100
|
||||||
|
"Maracas", 70, 100
|
||||||
|
"Short Whistle", 71, 100
|
||||||
|
"Long Whistle", 72, 100
|
||||||
|
"Short Guiro", 73, 100
|
||||||
|
"Long Guiro", 74, 100
|
||||||
|
"Claves", 75, 100
|
||||||
|
"Hi Wood Block", 76, 100
|
||||||
|
"Low Wood Block", 77, 100
|
||||||
|
"Mute Cuica", 78, 100
|
||||||
|
"Open Cuica", 79, 100
|
||||||
|
"Mute Triangle", 80, 100
|
||||||
|
"Open Triangle", 81, 100
|
||||||
|
"Shaker", 82, 100
|
||||||
|
"Jungle Bell", 83, 100
|
||||||
|
"Belltree", 84, 100
|
||||||
|
"Castanets", 85, 100
|
||||||
|
"Mute Surdo", 86, 100
|
||||||
|
"Open Surdo", 87, 100
|
|
@ -0,0 +1,62 @@
|
||||||
|
"Closed HH", 27, 100
|
||||||
|
"Pedal HH", 28, 100
|
||||||
|
"Open HH", 29, 100
|
||||||
|
"Hide Cymbal", 30, 100
|
||||||
|
"Sticks", 31, 100
|
||||||
|
"Square Click", 32, 100
|
||||||
|
"Metronome Click", 33, 100
|
||||||
|
"Metronome Bell", 34, 100
|
||||||
|
"Concert BD2", 35, 100
|
||||||
|
"Concert BD1", 36, 100
|
||||||
|
"Side Stick", 37, 100
|
||||||
|
"Concert SD", 38, 100
|
||||||
|
"Castanets", 39, 100
|
||||||
|
"Concert SD", 40, 100
|
||||||
|
"Timpani F", 41, 100
|
||||||
|
"Timpani F#", 42, 100
|
||||||
|
"Timpani G", 43, 100
|
||||||
|
"Timpani G#", 44, 100
|
||||||
|
"Timpani A", 45, 100
|
||||||
|
"Timpani A#", 46, 100
|
||||||
|
"Timpani B", 47, 100
|
||||||
|
"Timpani c", 48, 100
|
||||||
|
"Timpani c#", 49, 100
|
||||||
|
"Timpani d", 50, 100
|
||||||
|
"Timpani d#", 51, 100
|
||||||
|
"Timpani e", 52, 100
|
||||||
|
"Timpani f", 53, 100
|
||||||
|
"Tambourine", 54, 100
|
||||||
|
"Splash Cymbal", 55, 100
|
||||||
|
"Cowbell", 56, 100
|
||||||
|
"Concert Cymbal 2", 57, 100
|
||||||
|
"Vibraslap", 58, 100
|
||||||
|
"Concert Cymbal 1", 59, 100
|
||||||
|
"Hi Bongo", 60, 100
|
||||||
|
"Low Bongo", 61, 100
|
||||||
|
"Mute Hi Conga", 62, 100
|
||||||
|
"Open Hi Conga", 63, 100
|
||||||
|
"Low Conga", 64, 100
|
||||||
|
"High Timbale", 65, 100
|
||||||
|
"Low Timbale", 66, 100
|
||||||
|
"High Agogo", 67, 100
|
||||||
|
"Low Agogo", 68, 100
|
||||||
|
"Cabasa", 69, 100
|
||||||
|
"Maracas", 70, 100
|
||||||
|
"Short Whistle", 71, 100
|
||||||
|
"Long Whistle", 72, 100
|
||||||
|
"Short Guiro", 73, 100
|
||||||
|
"Long Guiro", 74, 100
|
||||||
|
"Claves", 75, 100
|
||||||
|
"Hi Wood Block", 76, 100
|
||||||
|
"Low Wood Block", 77, 100
|
||||||
|
"Mute Cuica", 78, 100
|
||||||
|
"Open Cuica", 79, 100
|
||||||
|
"Mute Triangle", 80, 100
|
||||||
|
"Open Triangle", 81, 100
|
||||||
|
"Shaker", 82, 100
|
||||||
|
"Jungle Bell", 83, 100
|
||||||
|
"Belltree", 84, 100
|
||||||
|
"Castanets", 85, 100
|
||||||
|
"Mute Surdo", 86, 100
|
||||||
|
"Open Surdo", 87, 100
|
||||||
|
"Applause", 88, 100
|
|
@ -0,0 +1,61 @@
|
||||||
|
"High Q", 27, 100
|
||||||
|
"Slap", 28, 100
|
||||||
|
"Scratch Push", 29, 100
|
||||||
|
"Scratch Pull", 30, 100
|
||||||
|
"Sticks", 31, 100
|
||||||
|
"Square Click", 32, 100
|
||||||
|
"Metronome Click", 33, 100
|
||||||
|
"Metronome Bell", 34, 100
|
||||||
|
"Acoustic Bass Drum", 35, 100
|
||||||
|
"MONDO Kick", 36, 100
|
||||||
|
"Side Stick", 37, 100
|
||||||
|
"Gated SD", 38, 100
|
||||||
|
"Hand Clap", 39, 100
|
||||||
|
"Electric Snare", 40, 100
|
||||||
|
"Room Low Tom 2", 41, 100
|
||||||
|
"Closed Hi-Hat", 42, 100
|
||||||
|
"Room Low Tom 1", 43, 100
|
||||||
|
"Pedal Hi-Hat", 44, 100
|
||||||
|
"Room Mid Tom 2", 45, 100
|
||||||
|
"Open Hi-Hat", 46, 100
|
||||||
|
"Room Mid Tom 1", 47, 100
|
||||||
|
"Room Hi Tom 2", 48, 100
|
||||||
|
"Crash Cymbal 1", 49, 100
|
||||||
|
"Room High Tom 1", 50, 100
|
||||||
|
"Ride Cymbal 1", 51, 100
|
||||||
|
"Chinese Cymbal", 52, 100
|
||||||
|
"Ride Bell", 53, 100
|
||||||
|
"Tambourine", 54, 100
|
||||||
|
"Splash Cymbal", 55, 100
|
||||||
|
"Cowbell", 56, 100
|
||||||
|
"Crash Cymbal 2", 57, 100
|
||||||
|
"Vibraslap", 58, 100
|
||||||
|
"Ride Cymbal 2", 59, 100
|
||||||
|
"Hi Bongo", 60, 100
|
||||||
|
"Low Bongo", 61, 100
|
||||||
|
"Mute Hi Conga", 62, 100
|
||||||
|
"Open Hi Conga", 63, 100
|
||||||
|
"Low Conga", 64, 100
|
||||||
|
"High Timbale", 65, 100
|
||||||
|
"Low Timbale", 66, 100
|
||||||
|
"High Agogo", 67, 100
|
||||||
|
"Low Agogo", 68, 100
|
||||||
|
"Cabasa", 69, 100
|
||||||
|
"Maracas", 70, 100
|
||||||
|
"Short Whistle", 71, 100
|
||||||
|
"Long Whistle", 72, 100
|
||||||
|
"Short Guiro", 73, 100
|
||||||
|
"Long Guiro", 74, 100
|
||||||
|
"Claves", 75, 100
|
||||||
|
"Hi Wood Block", 76, 100
|
||||||
|
"Low Wood Block", 77, 100
|
||||||
|
"Mute Cuica", 78, 100
|
||||||
|
"Open Cuica", 79, 100
|
||||||
|
"Mute Triangle", 80, 100
|
||||||
|
"Open Triangle", 81, 100
|
||||||
|
"Shaker", 82, 100
|
||||||
|
"Jungle Bell", 83, 100
|
||||||
|
"Belltree", 84, 100
|
||||||
|
"Castanets", 85, 100
|
||||||
|
"Mute Surdo", 86, 100
|
||||||
|
"Open Surdo", 87, 100
|
|
@ -0,0 +1,61 @@
|
||||||
|
"High Q", 27, 100
|
||||||
|
"Slap", 28, 100
|
||||||
|
"Scratch Push", 29, 100
|
||||||
|
"Scratch Pull", 30, 100
|
||||||
|
"Sticks", 31, 100
|
||||||
|
"Square Click", 32, 100
|
||||||
|
"Metronome Click", 33, 100
|
||||||
|
"Metronome Bell", 34, 100
|
||||||
|
"Acoustic Bass Drum", 35, 100
|
||||||
|
"Kick Drum 1", 36, 100
|
||||||
|
"Side Stick", 37, 100
|
||||||
|
"Acoustic Snare", 38, 100
|
||||||
|
"Hand Clap", 39, 100
|
||||||
|
"Electric Snare", 40, 100
|
||||||
|
"Room Low Tom 2", 41, 100
|
||||||
|
"Closed Hi-Hat", 42, 100
|
||||||
|
"Room Low Tom 1", 43, 100
|
||||||
|
"Pedal Hi-Hat", 44, 100
|
||||||
|
"Room Mid Tom 2", 45, 100
|
||||||
|
"Open Hi-Hat", 46, 100
|
||||||
|
"Room Mid Tom 1", 47, 100
|
||||||
|
"Room Hi Tom 2", 48, 100
|
||||||
|
"Crash Cymbal 1", 49, 100
|
||||||
|
"Room High Tom 1", 50, 100
|
||||||
|
"Ride Cymbal 1", 51, 100
|
||||||
|
"Chinese Cymbal", 52, 100
|
||||||
|
"Ride Bell", 53, 100
|
||||||
|
"Tambourine", 54, 100
|
||||||
|
"Splash Cymbal", 55, 100
|
||||||
|
"Cowbell", 56, 100
|
||||||
|
"Crash Cymbal 2", 57, 100
|
||||||
|
"Vibraslap", 58, 100
|
||||||
|
"Ride Cymbal 2", 59, 100
|
||||||
|
"Hi Bongo", 60, 100
|
||||||
|
"Low Bongo", 61, 100
|
||||||
|
"Mute Hi Conga", 62, 100
|
||||||
|
"Open Hi Conga", 63, 100
|
||||||
|
"Low Conga", 64, 100
|
||||||
|
"High Timbale", 65, 100
|
||||||
|
"Low Timbale", 66, 100
|
||||||
|
"High Agogo", 67, 100
|
||||||
|
"Low Agogo", 68, 100
|
||||||
|
"Cabasa", 69, 100
|
||||||
|
"Maracas", 70, 100
|
||||||
|
"Short Whistle", 71, 100
|
||||||
|
"Long Whistle", 72, 100
|
||||||
|
"Short Guiro", 73, 100
|
||||||
|
"Long Guiro", 74, 100
|
||||||
|
"Claves", 75, 100
|
||||||
|
"Hi Wood Block", 76, 100
|
||||||
|
"Low Wood Block", 77, 100
|
||||||
|
"Mute Cuica", 78, 100
|
||||||
|
"Open Cuica", 79, 100
|
||||||
|
"Mute Triangle", 80, 100
|
||||||
|
"Open Triangle", 81, 100
|
||||||
|
"Shaker", 82, 100
|
||||||
|
"Jungle Bell", 83, 100
|
||||||
|
"Belltree", 84, 100
|
||||||
|
"Castanets", 85, 100
|
||||||
|
"Mute Surdo", 86, 100
|
||||||
|
"Open Surdo", 87, 100
|
|
@ -0,0 +1,58 @@
|
||||||
|
"High Q", 27, 100
|
||||||
|
"Slap", 28, 100
|
||||||
|
"Scratch Push", 29, 100
|
||||||
|
"Scratch Pull", 30, 100
|
||||||
|
"Sticks", 31, 100
|
||||||
|
"Square Click", 32, 100
|
||||||
|
"Metronome Click", 33, 100
|
||||||
|
"Metronome Bell", 34, 100
|
||||||
|
"Acoustic Bass Drum", 35, 100
|
||||||
|
"Bass Drum 1", 36, 100
|
||||||
|
"Side Stick", 37, 100
|
||||||
|
"Acoustic Snare", 38, 100
|
||||||
|
"High Q", 39, 100
|
||||||
|
"Slap", 40, 100
|
||||||
|
"Scratch Push", 41, 100
|
||||||
|
"Scratch Pull", 42, 100
|
||||||
|
"Sticks", 43, 100
|
||||||
|
"Sqare Click", 44, 100
|
||||||
|
"Metronome Click", 45, 100
|
||||||
|
"Metronome Bell", 46, 100
|
||||||
|
"Guitar sld fing.", 47, 100
|
||||||
|
"Guitar cutt down", 48, 100
|
||||||
|
"Guitar cutt up", 49, 100
|
||||||
|
"String slap", 50, 100
|
||||||
|
"Fl. Key Click", 51, 100
|
||||||
|
"Laughing", 52, 100
|
||||||
|
"Screamming", 53, 100
|
||||||
|
"Punch", 54, 100
|
||||||
|
"Heart Beat", 55, 100
|
||||||
|
"Footsteps 1", 56, 100
|
||||||
|
"Footsteps 2", 57, 100
|
||||||
|
"Aplause", 58, 100
|
||||||
|
"Door Creaking", 59, 100
|
||||||
|
"Door", 60, 100
|
||||||
|
"Scratch", 61, 100
|
||||||
|
"Windchime", 62, 100
|
||||||
|
"Car-Engine", 63, 100
|
||||||
|
"Car-Stop", 64, 100
|
||||||
|
"Car-Pass", 65, 100
|
||||||
|
"Car-Crash", 66, 100
|
||||||
|
"Siren", 67, 100
|
||||||
|
"Train", 68, 100
|
||||||
|
"Jetplane", 69, 100
|
||||||
|
"Helicopter", 70, 100
|
||||||
|
"Starship", 71, 100
|
||||||
|
"Gun Shot", 72, 100
|
||||||
|
"Machine Gun", 73, 100
|
||||||
|
"Lasergun", 74, 100
|
||||||
|
"Explosion", 75, 100
|
||||||
|
"Dog", 76, 100
|
||||||
|
"Horse-Gallop", 77, 100
|
||||||
|
"Birds", 78, 100
|
||||||
|
"Rain", 79, 100
|
||||||
|
"Thunder", 80, 100
|
||||||
|
"Wind", 81, 100
|
||||||
|
"Seashore", 82, 100
|
||||||
|
"Stream", 83, 100
|
||||||
|
"Bubble", 84, 100
|