~ubuntu-branches/ubuntu/utopic/pango1.0/utopic

« back to all changes in this revision

Viewing changes to debian/patches/readd-pangox.patch

  • Committer: Package Import Robot
  • Author(s): Iain Lane
  • Date: 2013-02-21 17:58:07 UTC
  • mfrom: (1.6.6)
  • Revision ID: package-import@ubuntu.com-20130221175807-jtjv8iqwt3ix2px8
Tags: 1.32.5-0ubuntu1
* New upstream release; several changes from Rico Tzschichholz - thanks!
* debian/control:
  - Add build-depend on libharfbuzz-dev (>= 0.9.9)
  - Bump build-depend on libfonconfig1-dev (>= 2.5.0)
* debian/libpango1.0-0.symbols:
  - Updated
* debian/patches:
  - 00git_*.patch, dropped, they are upstream
  - 10_scan-module-files-in-dirs.patch,
    11_module-files-append-module-files-d.patch. refeshed
  - readd-pangox.patch, Readd libpangox library to temporarily
    preserve backwards compat
  - 0001-Link-basicfc-module-to-HarfBuzz.patch: Add, git backport to link
    correctly against harfbuzz.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
diff --git a/Makefile.am b/Makefile.am
 
2
index 1ac018a..b0b56ec 100644
 
3
--- a/Makefile.am
 
4
+++ b/Makefile.am
 
5
@@ -6,11 +6,13 @@ EXTRA_DIST =                  \
 
6
        autogen.sh              \
 
7
        pango.pc.in             \
 
8
        pangocairo.pc.in        \
 
9
+       pangox.pc.in            \
 
10
        pangoxft.pc.in          \
 
11
        pangoft2.pc.in          \
 
12
        pangowin32.pc.in        \
 
13
        pango-uninstalled.pc.in         \
 
14
        pangocairo-uninstalled.pc.in    \
 
15
+       pangox-uninstalled.pc.in        \
 
16
        pangoxft-uninstalled.pc.in      \
 
17
        pangoft2-uninstalled.pc.in      \
 
18
        pangowin32-uninstalled.pc.in    \
 
19
@@ -82,6 +84,10 @@ if HAVE_CAIRO
 
20
 pkgconfig_DATA += pangocairo.pc
 
21
 endif
 
22
 
 
23
+if HAVE_X
 
24
+pkgconfig_DATA += pangox.pc
 
25
+endif
 
26
+
 
27
 if HAVE_XFT
 
28
 pkgconfig_DATA += pangoxft.pc
 
29
 endif
 
30
diff --git a/configure.ac b/configure.ac
 
31
index bb37a60..aec4520 100644
 
32
--- a/configure.ac
 
33
+++ b/configure.ac
 
34
@@ -228,6 +228,21 @@ have_harfbuzz=false
 
35
 PKG_CHECK_MODULES(HARFBUZZ, harfbuzz >= 0.9.9, have_harfbuzz=true, AC_MSG_RESULT([no]))
 
36
 AM_CONDITIONAL(HAVE_HARFBUZZ, $have_harfbuzz)
 
37
 
 
38
+have_x=false
 
39
+if test "x$pango_os_win32" != xyes; then
 
40
+  AC_PATH_XTRA
 
41
+
 
42
+  if test x$no_x = xyes ; then
 
43
+    AC_MSG_WARN([X development libraries not found])
 
44
+    have_x=false
 
45
+  else
 
46
+    X_LIBS="$X_LIBS -lX11"
 
47
+    have_x=true
 
48
+    AC_DEFINE(HAVE_X, 1, [Have X libraries])
 
49
+  fi
 
50
+fi
 
51
+AM_CONDITIONAL(HAVE_X, $have_x)
 
52
+
 
53
 #
 
54
 # Check for fontconfig
 
55
 #
 
56
@@ -445,7 +460,7 @@ AM_CONDITIONAL(HAVE_CAIRO_QUARTZ, $have_cairo_quartz)
 
57
 # a new Pango backend outside of Pango, you are up to sending the necessary
 
58
 # patch to fix that rule. :-)
 
59
 #
 
60
-if $have_freetype || `test "x$with_xft" = xyes && $have_xft` || $have_cairo || $have_win32 ; then : ; else
 
61
+if $have_freetype || $have_x || `test "x$with_xft" = xyes && $have_xft` || $have_cairo || $have_win32 ; then : ; else
 
62
   AC_MSG_ERROR([*** Could not enable any backends.
 
63
 *** Must have at least one backend to build Pango.])
 
64
 fi
 
65
@@ -481,7 +496,7 @@ GOBJECT_INTROSPECTION_CHECK([0.9.5])
 
66
 # Modules to build
 
67
 #
 
68
 arabic_modules="arabic-lang"
 
69
-basic_modules="basic-fc,basic-win32,basic-coretext"
 
70
+basic_modules="basic-fc,basic-win32,basic-x,basic-coretext"
 
71
 indic_modules="indic-lang"
 
72
 thai_modules=""
 
73
 
 
74
@@ -528,11 +543,13 @@ AC_MSG_RESULT([$dynamic_modules (those built into Pango will be excluded)])
 
75
 AM_CONDITIONAL(HAVE_DYNAMIC_MODULES, test "x$dynamic_modules" != x)
 
76
 
 
77
 
 
78
+INCLUDED_X_MODULES=
 
79
 INCLUDED_FC_MODULES=
 
80
 INCLUDED_WIN32_MODULES=
 
81
 INCLUDED_CORE_TEXT_MODULES=
 
82
 INCLUDED_LANG_MODULES=
 
83
 
 
84
+AC_SUBST(INCLUDED_X_MODULES)
 
85
 AC_SUBST(INCLUDED_FC_MODULES)
 
86
 AC_SUBST(INCLUDED_WIN32_MODULES)
 
87
 AC_SUBST(INCLUDED_CORE_TEXT_MODULES)
 
88
@@ -544,6 +561,7 @@ for module in $included_modules; do
 
89
   included_path="\$(top_builddir)/modules/$dir/libpango-$module.la"
 
90
 
 
91
   case $module in
 
92
+    *-x)       INCLUDED_X_MODULES="$INCLUDED_X_MODULES $included_path" ;;
 
93
     *-fc)      INCLUDED_FC_MODULES="$INCLUDED_FC_MODULES $included_path" ;;
 
94
     *-win32)   INCLUDED_WIN32_MODULES="$INCLUDED_WIN32_MODULES $included_path" ;;
 
95
     *-coretext) INCLUDED_CORE_TEXT_MODULES="$INCLUDED_CORE_TEXT_MODULES $included_path" ;;
 
96
@@ -556,6 +574,7 @@ IFS="$pango_save_ifs"
 
97
 AM_CONDITIONAL(INCLUDE_ARABIC_LANG,    echo $included_modules | egrep '(^|,)arabic-lang($|,)'  > /dev/null)
 
98
 AM_CONDITIONAL(INCLUDE_BASIC_FC,       echo $included_modules | egrep '(^|,)basic-fc($|,)'     > /dev/null)
 
99
 AM_CONDITIONAL(INCLUDE_BASIC_WIN32,    echo $included_modules | egrep '(^|,)basic-win32($|,)'  > /dev/null)
 
100
+AM_CONDITIONAL(INCLUDE_BASIC_X,                echo $included_modules | egrep '(^|,)basic-x($|,)'      > /dev/null)
 
101
 AM_CONDITIONAL(INCLUDE_BASIC_CORE_TEXT,        echo $included_modules | egrep '(^|,)basic-coretext($|,)'       > /dev/null)
 
102
 AM_CONDITIONAL(INCLUDE_INDIC_LANG,     echo $included_modules | egrep '(^|,)indic-lang($|,)'   > /dev/null)
 
103
 AM_CONDITIONAL(INCLUDE_THAI_LANG,      echo $included_modules | egrep '(^|,)thai-lang($|,)'    > /dev/null)
 
104
@@ -563,6 +582,7 @@ AM_CONDITIONAL(INCLUDE_THAI_LANG,   echo $included_modules | egrep '(^|,)thai-lang
 
105
 AM_CONDITIONAL(DYNAMIC_ARABIC_LANG,    echo $dynamic_modules | egrep '(^|,)arabic-lang($|,)'   > /dev/null)
 
106
 AM_CONDITIONAL(DYNAMIC_BASIC_FC,       echo $dynamic_modules | egrep '(^|,)basic-fc($|,)'      > /dev/null)
 
107
 AM_CONDITIONAL(DYNAMIC_BASIC_WIN32,    echo $dynamic_modules | egrep '(^|,)basic-win32($|,)'   > /dev/null)
 
108
+AM_CONDITIONAL(DYNAMIC_BASIC_X,                echo $dynamic_modules | egrep '(^|,)basic-x($|,)'       > /dev/null)
 
109
 AM_CONDITIONAL(DYNAMIC_BASIC_CORE_TEXT,        echo $dynamic_modules | egrep '(^|,)basic-coretext($|,)'        > /dev/null)
 
110
 AM_CONDITIONAL(DYNAMIC_INDIC_LANG,     echo $dynamic_modules | egrep '(^|,)indic-lang($|,)'    > /dev/null)
 
111
 AM_CONDITIONAL(DYNAMIC_THAI_LANG,      echo $dynamic_modules | egrep '(^|,)thai-lang($|,)'     > /dev/null)
 
112
@@ -755,6 +775,35 @@ IFS="$pango_save_ifs"
 
113
 included_modules=$included_modules
 
114
 ])
 
115
 
 
116
+AC_CONFIG_COMMANDS([pango/module-defs-x.c],
 
117
+[
 
118
+### X modules
 
119
+cat > pango/module-defs-x.c <<EOTEXT
 
120
+/* Autogenerated by configure. Do not edit */
 
121
+
 
122
+#include "module-defs.h"
 
123
+
 
124
+PangoIncludedModule _pango_included_x_modules@<:@@:>@ = {
 
125
+EOTEXT
 
126
+
 
127
+IFS="${IFS=    }"; pango_save_ifs="$IFS"; IFS=","
 
128
+for module in $included_modules; do
 
129
+  if echo $module | egrep -- "-x($|,)" > /dev/null; then  
 
130
+    module_c=`echo $module | sed s/-/_/`
 
131
+    cat >> pango/module-defs-x.c <<EOTEXT
 
132
+ { _pango_${module_c}_script_engine_list, _pango_${module_c}_script_engine_init, _pango_${module_c}_script_engine_exit, _pango_${module_c}_script_engine_create },
 
133
+EOTEXT
 
134
+ fi
 
135
+done
 
136
+
 
137
+IFS="$pango_save_ifs"
 
138
+
 
139
+cat >> pango/module-defs-x.c <<EOTEXT
 
140
+ { NULL, NULL, NULL, NULL },
 
141
+};
 
142
+EOTEXT
 
143
+])
 
144
+
 
145
 AC_CONFIG_COMMANDS([pango/module-defs-fc.c],
 
146
 [
 
147
 ### FC modules
 
148
@@ -919,6 +968,7 @@ pango/pango.rc
 
149
 pango/pangoft2.rc
 
150
 pango/pangowin32.rc
 
151
 pango/pangocairo.rc
 
152
+pango/pangox.rc
 
153
 pango/pangoxft.rc
 
154
 pango-view/Makefile
 
155
 modules/Makefile
 
156
@@ -936,11 +986,13 @@ build/win32/Makefile
 
157
 build/win32/vs9/Makefile
 
158
 build/win32/vs10/Makefile
 
159
 pango.pc
 
160
+pangox.pc
 
161
 pangowin32.pc
 
162
 pangoft2.pc
 
163
 pangoxft.pc
 
164
 pangocairo.pc
 
165
 pango-uninstalled.pc
 
166
+pangox-uninstalled.pc
 
167
 pangowin32-uninstalled.pc
 
168
 pangoft2-uninstalled.pc
 
169
 pangoxft-uninstalled.pc
 
170
@@ -956,6 +1008,7 @@ if $have_cairo ; then backends="$backends Cairo"; fi
 
171
 if $have_win32 ; then backends="$backends Win32"; fi
 
172
 if test "x$with_xft" = xyes && $have_xft ; then backends="$backends Xft"; fi
 
173
 if $have_freetype && $have_fontconfig ; then backends="$backends FreeType"; fi
 
174
+if $have_x ; then backends="$backends X"; fi
 
175
 
 
176
 echo "configuration:
 
177
        backends:$backends"
 
178
diff --git a/modules/basic/Makefile.am b/modules/basic/Makefile.am
 
179
index 9726870..a1efe7c 100644
 
180
--- a/modules/basic/Makefile.am
 
181
+++ b/modules/basic/Makefile.am
 
182
@@ -1,5 +1,23 @@
 
183
 include $(top_srcdir)/modules/Module.mk
 
184
 
 
185
+if HAVE_X
 
186
+INCLUDES += $(X_CFLAGS)
 
187
+if INCLUDE_BASIC_X
 
188
+noinst_LTLIBRARIES += libpango-basic-x.la
 
189
+else
 
190
+if DYNAMIC_BASIC_X
 
191
+module_LTLIBRARIES += pango-basic-x.la
 
192
+endif
 
193
+endif
 
194
+endif
 
195
+
 
196
+pango_basic_x_la_LDFLAGS = -module $(MODULE_LIBTOOL_OPTIONS)
 
197
+pango_basic_x_la_LIBADD = $(pangoxlibs)
 
198
+pango_basic_x_la_SOURCES = basic-x.c
 
199
+libpango_basic_x_la_SOURCES = basic-x.c
 
200
+libpango_basic_x_la_CFLAGS = -DPANGO_MODULE_PREFIX=_pango_basic_x
 
201
+
 
202
+
 
203
 if HAVE_FREETYPE
 
204
 INCLUDES += $(FREETYPE_CFLAGS) $(HARFBUZZ_CFLAGS)
 
205
 if INCLUDE_BASIC_FC
 
206
@@ -52,4 +70,8 @@ pango_basic_coretext_la_SOURCES = basic-coretext.c
 
207
 libpango_basic_coretext_la_SOURCES = basic-coretext.c
 
208
 libpango_basic_coretext_la_CFLAGS = -DPANGO_MODULE_PREFIX=_pango_basic_coretext
 
209
 
 
210
+EXTRA_DIST =           \
 
211
+       tables-big.i    \
 
212
+       tables-small.i
 
213
+
 
214
 -include $(top_srcdir)/git.mk
 
215
diff --git a/modules/basic/basic-x.c b/modules/basic/basic-x.c
 
216
new file mode 100644
 
217
index 0000000..ba4effc
 
218
--- /dev/null
 
219
+++ b/modules/basic/basic-x.c
 
220
@@ -0,0 +1,720 @@
 
221
+/* Pango
 
222
+ * basic.c:
 
223
+ *
 
224
+ * Copyright (C) 1999 Red Hat Software
 
225
+ *
 
226
+ * This library is free software; you can redistribute it and/or
 
227
+ * modify it under the terms of the GNU Library General Public
 
228
+ * License as published by the Free Software Foundation; either
 
229
+ * version 2 of the License, or (at your option) any later version.
 
230
+ *
 
231
+ * This library is distributed in the hope that it will be useful,
 
232
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
 
233
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.         See the GNU
 
234
+ * Library General Public License for more details.
 
235
+ *
 
236
+ * You should have received a copy of the GNU Library General Public
 
237
+ * License along with this library; if not, write to the
 
238
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 
239
+ * Boston, MA 02111-1307, USA.
 
240
+ */
 
241
+
 
242
+#include "config.h"
 
243
+#include <glib.h>
 
244
+#include <string.h>
 
245
+#include "pango-engine.h"
 
246
+#include "pango-utils.h"
 
247
+
 
248
+#undef PANGO_DISABLE_DEPRECATED
 
249
+#include "pangox.h"
 
250
+
 
251
+/* No extra fields needed */
 
252
+typedef PangoEngineShape      BasicEngineX;
 
253
+typedef PangoEngineShapeClass BasicEngineXClass ;
 
254
+
 
255
+typedef struct _CharRange CharRange;
 
256
+typedef struct _Charset Charset;
 
257
+typedef struct _CharsetOrdering CharsetOrdering;
 
258
+typedef struct _CharCache CharCache;
 
259
+typedef struct _CharCachePointer CharCachePointer;
 
260
+typedef struct _MaskTable MaskTable;
 
261
+
 
262
+typedef PangoGlyph (*ConvFunc) (CharCache   *cache,
 
263
+                               GIConv       cd,
 
264
+                               const gchar *input);
 
265
+
 
266
+#define MAX_CHARSETS 32
 
267
+
 
268
+#define SCRIPT_ENGINE_NAME "BasicScriptEngineX"
 
269
+
 
270
+struct _Charset
 
271
+{
 
272
+  int   index;
 
273
+  const char *id;
 
274
+  const char *x_charset;
 
275
+  ConvFunc conv_func;
 
276
+};
 
277
+
 
278
+struct _CharsetOrdering
 
279
+{
 
280
+  const char *langs;
 
281
+  char charsets[MAX_CHARSETS];
 
282
+};
 
283
+
 
284
+struct _CharRange
 
285
+{
 
286
+  guint16 start;
 
287
+  guint16 end;
 
288
+  guint16 charsets;
 
289
+};
 
290
+
 
291
+struct _MaskTable
 
292
+{
 
293
+  int n_subfonts;
 
294
+
 
295
+  PangoXSubfont *subfonts;
 
296
+  Charset **charsets;
 
297
+};
 
298
+
 
299
+struct _CharCache
 
300
+{
 
301
+  guint ref_count;
 
302
+  CharsetOrdering *ordering;
 
303
+  MaskTable *mask_tables[256];
 
304
+  GIConv converters[MAX_CHARSETS];
 
305
+  PangoCoverage *coverage;
 
306
+};
 
307
+
 
308
+struct _CharCachePointer
 
309
+{
 
310
+  PangoLanguage *lang;
 
311
+  CharCache *cache;
 
312
+};
 
313
+
 
314
+static PangoGlyph conv_8bit (CharCache  *cache,
 
315
+                            GIConv      cd,
 
316
+                            const char *input);
 
317
+static PangoGlyph conv_eucjp (CharCache  *cache,
 
318
+                             GIConv      cd,
 
319
+                             const char *input);
 
320
+static PangoGlyph conv_16bit (CharCache  *cache,
 
321
+                             GIConv      cd,
 
322
+                             const char *input);
 
323
+static PangoGlyph conv_ucs4 (CharCache  *cache,
 
324
+                            GIConv      cd,
 
325
+                            const char *input);
 
326
+static PangoGlyph conv_16bit_MSB_on (CharCache  *cache,
 
327
+                             GIConv      cd,
 
328
+                             const char *input);
 
329
+static PangoGlyph conv_gb18030_1 (CharCache  *cache,
 
330
+                             GIConv      cd,
 
331
+                             const char *input);
 
332
+static PangoGlyph conv_euctw (CharCache  *cache,
 
333
+                             GIConv      cd,
 
334
+                             const char *input);
 
335
+
 
336
+#include "tables-big.i"
 
337
+
 
338
+static PangoEngineScriptInfo basic_scripts[] = {
 
339
+  { PANGO_SCRIPT_COMMON,  "" },
 
340
+};
 
341
+
 
342
+static PangoEngineInfo script_engines[] = {
 
343
+  {
 
344
+    SCRIPT_ENGINE_NAME,
 
345
+    PANGO_ENGINE_TYPE_SHAPE,
 
346
+    PANGO_RENDER_TYPE_X,
 
347
+    basic_scripts, G_N_ELEMENTS(basic_scripts)
 
348
+  }
 
349
+};
 
350
+
 
351
+/*
 
352
+ * X window system script engine portion
 
353
+ */
 
354
+
 
355
+/* Structure of our cache:
 
356
+ *
 
357
+ * PangoFont => CharCachePointer  ===\
 
358
+ *                    |               \
 
359
+ *              CharCachePointer  ======> CharCache => CharsetOrdering
 
360
+ *                    |                       |======> MaskTable[0]    => {subfonts,charset}[n_subfonts],
 
361
+ *                    |                       |======> MaskTable[1]    => {subfonts,charset}[n_subfonts],
 
362
+ *                    |                       \======> MaskTable[...]  => {subfonts,charset}[n_subfonts]
 
363
+ *                    |
 
364
+ *              CharCachePointer  ======> CharCache => CharsetOrdering
 
365
+ *                                            |======> MaskTable[0]    => {subfonts,charset}[n_subfonts],
 
366
+ *                                            |======> MaskTable[1]    => {subfonts,charset}[n_subfonts],
 
367
+ *                                            \======> MaskTable[...]  => {subfonts,charset}[n_subfonts]
 
368
+ *
 
369
+ * A CharCache structure caches the lookup of what subfonts can be used for what characters for a pair of a Font
 
370
+ * and CharsetOrdering. Multiple language tags can share the same CharsetOrdering - the list of CharCachePointer
 
371
+ * structures that is attached to the font as object data provides lookups from language tag to charcache.
 
372
+ */
 
373
+static CharCache *
 
374
+char_cache_new (CharsetOrdering *ordering)
 
375
+{
 
376
+  CharCache *result;
 
377
+  int i;
 
378
+
 
379
+  result = g_new0 (CharCache, 1);
 
380
+
 
381
+  result->ref_count = 1;
 
382
+  result->ordering = ordering;
 
383
+  for (i=0; i<MAX_CHARSETS; i++)
 
384
+    result->converters[i] = (GIConv)-1;
 
385
+
 
386
+  return result;
 
387
+}
 
388
+
 
389
+static void
 
390
+char_cache_free (CharCache *cache)
 
391
+{
 
392
+  int i;
 
393
+
 
394
+  for (i=0; i<256; i++)
 
395
+    if (cache->mask_tables[i])
 
396
+      {
 
397
+       g_free (cache->mask_tables[i]->subfonts);
 
398
+       g_free (cache->mask_tables[i]->charsets);
 
399
+
 
400
+       g_free (cache->mask_tables[i]);
 
401
+      }
 
402
+
 
403
+  for (i=0; i<MAX_CHARSETS; i++)
 
404
+    if (cache->converters[i] != (GIConv)-1)
 
405
+      g_iconv_close (cache->converters[i]);
 
406
+
 
407
+  g_free (cache);
 
408
+}
 
409
+
 
410
+static PangoGlyph
 
411
+find_char (CharCache *cache, PangoFont *font, gunichar wc, const char *input)
 
412
+{
 
413
+  int mask_index;
 
414
+  MaskTable *mask_table;
 
415
+  int i;
 
416
+
 
417
+  switch (wc)
 
418
+    {
 
419
+    case '\n':
 
420
+    case '\r':
 
421
+    case 0x2028: /* Line separator */
 
422
+    case 0x2029: /* Paragraph separator */
 
423
+      return PANGO_GET_UNKNOWN_GLYPH (wc);
 
424
+      break;
 
425
+    }
 
426
+
 
427
+  if (wc >= G_N_ELEMENTS (char_masks))
 
428
+    mask_index = 0;
 
429
+  else
 
430
+    mask_index = char_masks[wc];
 
431
+
 
432
+  if (cache->mask_tables[mask_index])
 
433
+    mask_table = cache->mask_tables[mask_index];
 
434
+  else
 
435
+    {
 
436
+      const char *charset_names[G_N_ELEMENTS(charsets)];
 
437
+      Charset *charsets_map[G_N_ELEMENTS(charsets)];
 
438
+      guint mask;
 
439
+      int n_charsets = 0;
 
440
+      int *subfont_charsets;
 
441
+
 
442
+      mask_table = g_new (MaskTable, 1);
 
443
+
 
444
+      mask = char_mask_map[mask_index] | ENC_ISO_10646;
 
445
+
 
446
+      /* Find the character sets that are included in this mask
 
447
+       */
 
448
+
 
449
+      for (i=0; i<(int)G_N_ELEMENTS(charsets); i++)
 
450
+       {
 
451
+         int charset_index = cache->ordering->charsets[i];
 
452
+
 
453
+         if (mask & (1 << charset_index))
 
454
+           {
 
455
+             charset_names[n_charsets] = charsets[charset_index].x_charset;
 
456
+             charsets_map[n_charsets] = &charsets[charset_index];
 
457
+
 
458
+             n_charsets++;
 
459
+           }
 
460
+       }
 
461
+
 
462
+      mask_table->n_subfonts = pango_x_list_subfonts (font, (char**)(void*)charset_names, n_charsets, &mask_table->subfonts, &subfont_charsets);
 
463
+
 
464
+      mask_table->charsets = g_new (Charset *, mask_table->n_subfonts);
 
465
+      for (i=0; i<mask_table->n_subfonts; i++)
 
466
+       mask_table->charsets[i] = charsets_map[subfont_charsets[i]];
 
467
+
 
468
+      g_free (subfont_charsets);
 
469
+
 
470
+      cache->mask_tables[mask_index] = mask_table;
 
471
+    }
 
472
+
 
473
+  for (i=0; i < mask_table->n_subfonts; i++)
 
474
+    {
 
475
+      PangoGlyph index;
 
476
+      PangoGlyph glyph;
 
477
+      Charset *charset;
 
478
+
 
479
+      charset = mask_table->charsets[i];
 
480
+      if (charset)
 
481
+       {
 
482
+         GIConv cd = cache->converters[charset->index];
 
483
+
 
484
+         if (charset->id && cd == (GIConv)-1)
 
485
+           {
 
486
+             cd = g_iconv_open (charset->id, "UTF-8");
 
487
+             if (cd == (GIConv)-1)
 
488
+               {
 
489
+                 g_warning ("Could not load converter from %s to UTF-8", charset->id);
 
490
+                 mask_table->charsets[i] = NULL;
 
491
+                 continue;
 
492
+               }
 
493
+
 
494
+             cache->converters[charset->index] = cd;
 
495
+           }
 
496
+
 
497
+         index = (*charset->conv_func) (cache, cd, input);
 
498
+         glyph = PANGO_X_MAKE_GLYPH (mask_table->subfonts[i], index);
 
499
+
 
500
+         if (pango_x_has_glyph (font, glyph))
 
501
+           return glyph;
 
502
+       }
 
503
+    }
 
504
+
 
505
+  return 0;
 
506
+}
 
507
+
 
508
+static void
 
509
+set_glyph (PangoFont *font, PangoGlyphString *glyphs, int i, int offset, PangoGlyph glyph)
 
510
+{
 
511
+  PangoRectangle logical_rect;
 
512
+
 
513
+  glyphs->glyphs[i].glyph = glyph;
 
514
+
 
515
+  glyphs->glyphs[i].geometry.x_offset = 0;
 
516
+  glyphs->glyphs[i].geometry.y_offset = 0;
 
517
+
 
518
+  glyphs->log_clusters[i] = offset;
 
519
+
 
520
+  pango_font_get_glyph_extents (font, glyphs->glyphs[i].glyph, NULL, &logical_rect);
 
521
+  glyphs->glyphs[i].geometry.width = logical_rect.width;
 
522
+}
 
523
+
 
524
+static PangoGlyph
 
525
+conv_8bit (CharCache  *cache G_GNUC_UNUSED,
 
526
+          GIConv      cd,
 
527
+          const char *input)
 
528
+{
 
529
+  char outbuf;
 
530
+
 
531
+  const char *inptr = input;
 
532
+  size_t inbytesleft;
 
533
+  char *outptr = &outbuf;
 
534
+  size_t outbytesleft = 1;
 
535
+
 
536
+  inbytesleft = g_utf8_next_char (input) - input;
 
537
+
 
538
+  g_iconv (cd, (char **)&inptr, &inbytesleft, &outptr, &outbytesleft);
 
539
+
 
540
+  return (guchar)outbuf;
 
541
+}
 
542
+
 
543
+static PangoGlyph
 
544
+conv_eucjp (CharCache  *cache G_GNUC_UNUSED,
 
545
+           GIConv      cd,
 
546
+           const char *input)
 
547
+{
 
548
+  char outbuf[4];
 
549
+
 
550
+  const char *inptr = input;
 
551
+  size_t inbytesleft;
 
552
+  char *outptr = outbuf;
 
553
+  size_t outbytesleft = 4;
 
554
+
 
555
+  inbytesleft = g_utf8_next_char (input) - input;
 
556
+
 
557
+  g_iconv (cd, (char **)&inptr, &inbytesleft, &outptr, &outbytesleft);
 
558
+
 
559
+  if ((guchar)outbuf[0] < 128)
 
560
+    return outbuf[0];
 
561
+  else if ((guchar)outbuf[0] == 0x8e && outbytesleft == 2)
 
562
+    return ((guchar)outbuf[1]);
 
563
+  else if ((guchar)outbuf[0] == 0x8f && outbytesleft == 1)
 
564
+    return ((guchar)outbuf[1] & 0x7f) * 256 + ((guchar)outbuf[2] & 0x7f);
 
565
+  else
 
566
+    return ((guchar)outbuf[0] & 0x7f) * 256 + ((guchar)outbuf[1] & 0x7f);
 
567
+}
 
568
+
 
569
+static PangoGlyph
 
570
+conv_16bit (CharCache  *cache G_GNUC_UNUSED,
 
571
+           GIConv      cd,
 
572
+           const char *input)
 
573
+{
 
574
+  char outbuf[2];
 
575
+
 
576
+  const char *inptr = input;
 
577
+  size_t inbytesleft;
 
578
+  char *outptr = outbuf;
 
579
+  size_t outbytesleft = 2;
 
580
+
 
581
+  inbytesleft = g_utf8_next_char (input) - input;
 
582
+
 
583
+  g_iconv (cd, (char **)&inptr, &inbytesleft, &outptr, &outbytesleft);
 
584
+
 
585
+  if ((guchar)outbuf[0] < 128)
 
586
+    return outbuf[0];
 
587
+  else
 
588
+    return ((guchar)outbuf[0] & 0x7f) * 256 + ((guchar)outbuf[1] & 0x7f);
 
589
+}
 
590
+
 
591
+static PangoGlyph
 
592
+conv_16bit_MSB_on (CharCache  *cache G_GNUC_UNUSED,
 
593
+                  GIConv      cd,
 
594
+                  const char *input)
 
595
+{
 
596
+  char outbuf[2];
 
597
+
 
598
+  const char *inptr = input;
 
599
+  size_t inbytesleft;
 
600
+  char *outptr = outbuf;
 
601
+  size_t outbytesleft = 2;
 
602
+
 
603
+  inbytesleft = g_utf8_next_char (input) - input;
 
604
+
 
605
+  g_iconv (cd, (char **)&inptr, &inbytesleft, &outptr, &outbytesleft);
 
606
+
 
607
+  if ((guchar)outbuf[0] < 128)
 
608
+    return outbuf[0];
 
609
+  else
 
610
+    return (guchar)outbuf[0] * 256 + (guchar)outbuf[1];
 
611
+}
 
612
+
 
613
+static PangoGlyph
 
614
+conv_gb18030_1 (CharCache  *cache G_GNUC_UNUSED,
 
615
+               GIConv      cd,
 
616
+               const char *input)
 
617
+{
 
618
+  char outbuf[4];
 
619
+
 
620
+  const char *inptr = input;
 
621
+  size_t inbytesleft;
 
622
+  char *outptr = outbuf;
 
623
+  size_t outbytesleft = 4;
 
624
+
 
625
+
 
626
+  inbytesleft = g_utf8_next_char (input) - input;
 
627
+
 
628
+  g_iconv (cd, (char **)&inptr, &inbytesleft, &outptr, &outbytesleft);
 
629
+
 
630
+  if ((guchar)outbuf[0] < 128)
 
631
+    return outbuf[0];
 
632
+  else
 
633
+    return  12600 * ((guchar)outbuf[0] - 0x81) + 1260 * ((guchar)outbuf[1] - 0x30) + 10 * ((guchar)outbuf[2] - 0x81) + ((guchar)outbuf[3] - 0x30);
 
634
+}
 
635
+
 
636
+static PangoGlyph
 
637
+conv_euctw (CharCache  *cache G_GNUC_UNUSED,
 
638
+           GIConv      cd,
 
639
+           const char *input)
 
640
+{
 
641
+  char outbuf[4];
 
642
+
 
643
+  const char *inptr = input;
 
644
+  size_t inbytesleft;
 
645
+  char *outptr = outbuf;
 
646
+  size_t outbytesleft = 4;
 
647
+
 
648
+  inbytesleft = g_utf8_next_char (input) - input;
 
649
+
 
650
+  g_iconv (cd, (char **)&inptr, &inbytesleft, &outptr, &outbytesleft);
 
651
+
 
652
+  /* The first two bytes determine which page of CNS to use; we
 
653
+   * get this information from tables-big.i, so ignore them
 
654
+   */
 
655
+  if ((guchar)outbuf[0] < 128)
 
656
+    return outbuf[0];
 
657
+  else
 
658
+    return ((guchar)outbuf[2] & 0x7f) * 256 + ((guchar)outbuf[3] & 0x7f);
 
659
+}
 
660
+
 
661
+static PangoGlyph
 
662
+conv_ucs4 (CharCache  *cache G_GNUC_UNUSED,
 
663
+          GIConv      cd G_GNUC_UNUSED,
 
664
+          const char *input)
 
665
+{
 
666
+  return g_utf8_get_char (input);
 
667
+}
 
668
+
 
669
+static void
 
670
+swap_range (PangoGlyphString *glyphs, int start, int end)
 
671
+{
 
672
+  int i, j;
 
673
+
 
674
+  for (i = start, j = end - 1; i < j; i++, j--)
 
675
+    {
 
676
+      PangoGlyphInfo glyph_info;
 
677
+      gint log_cluster;
 
678
+
 
679
+      glyph_info = glyphs->glyphs[i];
 
680
+      glyphs->glyphs[i] = glyphs->glyphs[j];
 
681
+      glyphs->glyphs[j] = glyph_info;
 
682
+
 
683
+      log_cluster = glyphs->log_clusters[i];
 
684
+      glyphs->log_clusters[i] = glyphs->log_clusters[j];
 
685
+      glyphs->log_clusters[j] = log_cluster;
 
686
+    }
 
687
+}
 
688
+
 
689
+static void
 
690
+char_caches_free (GSList *caches)
 
691
+{
 
692
+  GSList *tmp_list = caches;
 
693
+  while (tmp_list)
 
694
+    {
 
695
+      CharCachePointer *pointer = tmp_list->data;
 
696
+
 
697
+      pointer->cache->ref_count--;
 
698
+      if (pointer->cache->ref_count == 0)
 
699
+       char_cache_free (pointer->cache);
 
700
+      g_free (pointer);
 
701
+
 
702
+      tmp_list = tmp_list->next;
 
703
+    }
 
704
+  g_slist_free (caches);
 
705
+}
 
706
+
 
707
+static CharsetOrdering *
 
708
+ordering_for_lang (PangoLanguage *lang)
 
709
+{
 
710
+  int i;
 
711
+
 
712
+  for (i = 0; i < (int)G_N_ELEMENTS (charset_orderings) - 1; i++)
 
713
+    {
 
714
+      if (pango_language_matches (lang, charset_orderings[i].langs))
 
715
+       return &charset_orderings[i];
 
716
+    }
 
717
+
 
718
+  return &charset_orderings[i];
 
719
+}
 
720
+
 
721
+static CharCache *
 
722
+get_char_cache (PangoFont     *font,
 
723
+               PangoLanguage *lang)
 
724
+{
 
725
+  GQuark cache_id = g_quark_from_string ("basic-char-cache");
 
726
+  CharCache *cache = NULL;
 
727
+  CharCachePointer *pointer;
 
728
+  CharsetOrdering *ordering;
 
729
+  GSList *caches;
 
730
+  GSList *tmp_list;
 
731
+
 
732
+  caches = g_object_get_qdata (G_OBJECT (font), cache_id);
 
733
+  tmp_list = caches;
 
734
+  while (tmp_list)
 
735
+    {
 
736
+      pointer = tmp_list->data;
 
737
+      if (pointer->lang == lang)
 
738
+       return pointer->cache;
 
739
+
 
740
+      tmp_list = tmp_list->next;
 
741
+    }
 
742
+
 
743
+  ordering = ordering_for_lang (lang);
 
744
+
 
745
+  tmp_list = caches;
 
746
+  while (tmp_list)
 
747
+    {
 
748
+      pointer = tmp_list->data;
 
749
+      if (pointer->cache->ordering == ordering)
 
750
+       {
 
751
+         cache = pointer->cache;
 
752
+         break;
 
753
+       }
 
754
+
 
755
+      tmp_list = tmp_list->next;
 
756
+    }
 
757
+
 
758
+  if (!cache)
 
759
+    cache = char_cache_new (ordering);
 
760
+  else
 
761
+    cache->ref_count++;
 
762
+
 
763
+  pointer = g_new (CharCachePointer, 1);
 
764
+  pointer->lang = lang;
 
765
+  pointer->cache = cache;
 
766
+
 
767
+  caches = g_slist_prepend (caches, pointer);
 
768
+
 
769
+  g_object_steal_qdata (G_OBJECT (font), cache_id);
 
770
+  g_object_set_qdata_full (G_OBJECT (font), cache_id,
 
771
+                          caches, (GDestroyNotify)char_caches_free);
 
772
+
 
773
+  return cache;
 
774
+}
 
775
+
 
776
+static void
 
777
+basic_engine_shape (PangoEngineShape *engine G_GNUC_UNUSED,
 
778
+                   PangoFont        *font,
 
779
+                   const char       *text,
 
780
+                   gint              length,
 
781
+                   const PangoAnalysis *analysis,
 
782
+                   PangoGlyphString *glyphs)
 
783
+{
 
784
+  int n_chars;
 
785
+  int i;
 
786
+  const char *p;
 
787
+
 
788
+  CharCache *cache;
 
789
+
 
790
+  g_return_if_fail (font != NULL);
 
791
+  g_return_if_fail (text != NULL);
 
792
+  g_return_if_fail (length >= 0);
 
793
+  g_return_if_fail (analysis != NULL);
 
794
+
 
795
+  cache = get_char_cache (font, analysis->language);
 
796
+
 
797
+  n_chars = g_utf8_strlen (text, length);
 
798
+  pango_glyph_string_set_size (glyphs, n_chars);
 
799
+
 
800
+  p = text;
 
801
+  for (i=0; i < n_chars; i++)
 
802
+    {
 
803
+      gunichar wc;
 
804
+      gunichar mirrored_ch;
 
805
+      PangoGlyph index;
 
806
+      char buf[6];
 
807
+      const char *input;
 
808
+
 
809
+      wc = g_utf8_get_char (p);
 
810
+
 
811
+      input = p;
 
812
+      if (analysis->level % 2)
 
813
+       if (pango_get_mirror_char (wc, &mirrored_ch))
 
814
+         {
 
815
+           wc = mirrored_ch;
 
816
+
 
817
+           g_unichar_to_utf8 (wc, buf);
 
818
+           input = buf;
 
819
+         }
 
820
+
 
821
+      if (wc == 0xa0)  /* non-break-space */
 
822
+       {
 
823
+         wc = 0x20;
 
824
+
 
825
+         g_unichar_to_utf8 (wc, buf);
 
826
+         input = buf;
 
827
+       }
 
828
+
 
829
+      if (pango_is_zero_width (wc))
 
830
+       {
 
831
+         set_glyph (font, glyphs, i, p - text, PANGO_GLYPH_EMPTY);
 
832
+       }
 
833
+      else
 
834
+       {
 
835
+         index = find_char (cache, font, wc, input);
 
836
+         if (index)
 
837
+           {
 
838
+             set_glyph (font, glyphs, i, p - text, index);
 
839
+
 
840
+             if (g_unichar_type (wc) == G_UNICODE_NON_SPACING_MARK)
 
841
+               {
 
842
+                 if (i > 0)
 
843
+                   {
 
844
+                     PangoRectangle logical_rect, ink_rect;
 
845
+
 
846
+                     glyphs->glyphs[i].geometry.width = MAX (glyphs->glyphs[i-1].geometry.width,
 
847
+                                                             glyphs->glyphs[i].geometry.width);
 
848
+                     glyphs->glyphs[i-1].geometry.width = 0;
 
849
+                     glyphs->log_clusters[i] = glyphs->log_clusters[i-1];
 
850
+
 
851
+                     /* Some heuristics to try to guess how overstrike glyphs are
 
852
+                      * done and compensate
 
853
+                      */
 
854
+                     pango_font_get_glyph_extents (font, glyphs->glyphs[i].glyph, &ink_rect, &logical_rect);
 
855
+                     if (logical_rect.width == 0 && ink_rect.x == 0)
 
856
+                       glyphs->glyphs[i].geometry.x_offset = (glyphs->glyphs[i].geometry.width - ink_rect.width) / 2;
 
857
+                   }
 
858
+               }
 
859
+           }
 
860
+         else
 
861
+           set_glyph (font, glyphs, i, p - text, PANGO_GET_UNKNOWN_GLYPH (wc));
 
862
+       }
 
863
+
 
864
+      p = g_utf8_next_char (p);
 
865
+    }
 
866
+
 
867
+  /* Simple bidi support... may have separate modules later */
 
868
+
 
869
+  if (analysis->level % 2)
 
870
+    {
 
871
+      int start, end;
 
872
+
 
873
+      /* Swap all glyphs */
 
874
+      swap_range (glyphs, 0, n_chars);
 
875
+
 
876
+      /* Now reorder glyphs within each cluster back to LTR */
 
877
+      for (start=0; start<n_chars;)
 
878
+       {
 
879
+         end = start;
 
880
+         while (end < n_chars &&
 
881
+                glyphs->log_clusters[end] == glyphs->log_clusters[start])
 
882
+           end++;
 
883
+
 
884
+         swap_range (glyphs, start, end);
 
885
+         start = end;
 
886
+       }
 
887
+    }
 
888
+}
 
889
+
 
890
+static PangoCoverageLevel
 
891
+basic_engine_covers (PangoEngineShape *engine G_GNUC_UNUSED,
 
892
+                    PangoFont        *font,
 
893
+                    PangoLanguage    *lang,
 
894
+                    gunichar          wc)
 
895
+{
 
896
+  CharCache *cache = get_char_cache (font, lang);
 
897
+  char buf[6];
 
898
+
 
899
+  g_unichar_to_utf8 (wc, buf);
 
900
+
 
901
+  return find_char (cache, font, wc, buf) ? PANGO_COVERAGE_EXACT : PANGO_COVERAGE_NONE;
 
902
+}
 
903
+
 
904
+static void
 
905
+basic_engine_x_class_init (PangoEngineShapeClass *class)
 
906
+{
 
907
+  class->covers = basic_engine_covers;
 
908
+  class->script_shape = basic_engine_shape;
 
909
+}
 
910
+
 
911
+PANGO_ENGINE_SHAPE_DEFINE_TYPE (BasicEngineX, basic_engine_x,
 
912
+                               basic_engine_x_class_init, NULL)
 
913
+
 
914
+void
 
915
+PANGO_MODULE_ENTRY(init) (GTypeModule *module)
 
916
+{
 
917
+  basic_engine_x_register_type (module);
 
918
+}
 
919
+
 
920
+void
 
921
+PANGO_MODULE_ENTRY(exit) (void)
 
922
+{
 
923
+}
 
924
+
 
925
+void
 
926
+PANGO_MODULE_ENTRY(list) (PangoEngineInfo **engines,
 
927
+                         int              *n_engines)
 
928
+{
 
929
+  *engines = script_engines;
 
930
+  *n_engines = G_N_ELEMENTS (script_engines);
 
931
+}
 
932
+
 
933
+PangoEngine *
 
934
+PANGO_MODULE_ENTRY(create) (const char *id)
 
935
+{
 
936
+  if (!strcmp (id, SCRIPT_ENGINE_NAME))
 
937
+    return g_object_new (basic_engine_x_type, NULL);
 
938
+  else
 
939
+    return NULL;
 
940
+}
 
941
diff --git a/modules/basic/tables-big.i b/modules/basic/tables-big.i
 
942
new file mode 100644
 
943
index 0000000..7cca755
 
944
--- /dev/null
 
945
+++ b/modules/basic/tables-big.i
 
946
@@ -0,0 +1,4397 @@
 
947
+enum {
 
948
+  ENC_ISO_8859_1  = 1 << 0,
 
949
+  ENC_ISO_8859_2  = 1 << 1,
 
950
+  ENC_ISO_8859_3  = 1 << 2,
 
951
+  ENC_ISO_8859_4  = 1 << 3,
 
952
+  ENC_ISO_8859_5  = 1 << 4,
 
953
+  ENC_ISO_8859_6  = 1 << 5,
 
954
+  ENC_ISO_8859_7  = 1 << 6,
 
955
+  ENC_ISO_8859_8  = 1 << 7,
 
956
+  ENC_ISO_8859_9  = 1 << 8,
 
957
+  ENC_ISO_8859_10 = 1 << 9,
 
958
+  ENC_ISO_8859_13 = 1 << 10,
 
959
+  ENC_ISO_8859_14 = 1 << 11,
 
960
+  ENC_ISO_8859_15 = 1 << 12,
 
961
+  ENC_KOI8_R      = 1 << 13,
 
962
+  ENC_TIS_620     = 1 << 14,
 
963
+  ENC_JIS_0208    = 1 << 15,
 
964
+  ENC_GB_2312     = 1 << 16,
 
965
+  ENC_KSC_5601    = 1 << 17,
 
966
+  ENC_JIS_0201    = 1 << 18,
 
967
+  ENC_JIS_0212    = 1 << 19,
 
968
+  ENC_BIG5_1     = 1 << 20,
 
969
+  ENC_BIG5       = 1 << 21,
 
970
+  ENC_GB18030_0   = 1 << 22,
 
971
+  ENC_GB18030_1   = 1 << 23,
 
972
+  ENC_HKSCS_1    = 1 << 24,
 
973
+  ENC_CNS11643_1  = 1 << 25,
 
974
+  ENC_CNS11643_2  = 1 << 26,
 
975
+  ENC_CNS11643_3  = 1 << 27,
 
976
+  ENC_GBK         = 1 << 28,
 
977
+  ENC_ISO_10646   = 1 << 29
 
978
+};
 
979
+
 
980
+static Charset charsets[] = {
 
981
+  { 0,  NULL,           "iso8859-1",       conv_ucs4 },
 
982
+  { 1,  "ISO-8859-2",   "iso8859-2",       conv_8bit },
 
983
+  { 2,  "ISO-8859-3",   "iso8859-3",       conv_8bit },
 
984
+  { 3,  "ISO-8859-4",   "iso8859-4",       conv_8bit },
 
985
+  { 4,  "ISO-8859-5",   "iso8859-5",       conv_8bit },
 
986
+  { 5,  "ISO-8859-6",   "iso8859-6",       conv_8bit },
 
987
+  { 6,  "ISO-8859-7",   "iso8859-7",       conv_8bit },
 
988
+  { 7,  "ISO-8859-8",   "iso8859-8",       conv_8bit },
 
989
+  { 8,  "ISO-8859-9",   "iso8859-9",       conv_8bit },
 
990
+  { 9,  "ISO-8859-10",  "iso8859-10",      conv_8bit },
 
991
+  { 10, "ISO-8859-13",  "iso8859-13",      conv_8bit },
 
992
+  { 11, "ISO-8859-14",  "iso8859-14",      conv_8bit },
 
993
+  { 12, "ISO-8859-15",  "iso8859-15",      conv_8bit },
 
994
+  { 13, "KOI8-R",       "koi8-r",          conv_8bit },
 
995
+  { 14, "TIS-620",      "tis620.2529-1",   conv_8bit },
 
996
+  { 15, "EUC-JP",       "jisx0208.1983-0", conv_eucjp },
 
997
+  { 16, "GB2312",       "gb2312.1980-0",   conv_16bit },
 
998
+  { 17, "EUC-KR",       "ksc5601.1987-0",  conv_16bit },
 
999
+  { 18, "EUC-JP",       "jisx0201.1976-0", conv_eucjp },
 
1000
+  { 19, "EUC-JP",       "jisx0212.1990-0", conv_eucjp },
 
1001
+  { 20, "BIG5",                "big5-1",          conv_16bit_MSB_on },
 
1002
+  { 21, "BIG5",                "big5-0",          conv_16bit_MSB_on },
 
1003
+  { 22, "GB18030",      "gb18030.2000-0",  conv_16bit_MSB_on },
 
1004
+  { 23, "GB18030",      "gb18030.2000-1",  conv_gb18030_1 },
 
1005
+  { 24, "BIG5-HKSCS",   "hkscs-1",        conv_16bit_MSB_on },
 
1006
+  { 25, "EUC-TW",       "cns11643-1",     conv_16bit },
 
1007
+  { 26, "EUC-TW",       "cns11643-2",     conv_euctw },
 
1008
+  { 27, "EUC-TW",       "cns11643-3",     conv_euctw },
 
1009
+  { 28, "GBK",          "gbk-0",           conv_16bit_MSB_on },
 
1010
+  { 29, NULL,           "iso10646-1",      conv_ucs4 }
 
1011
+};
 
1012
+
 
1013
+static CharsetOrdering charset_orderings[] = {
 
1014
+       { "ja", { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 18, 19, 16, 17, 20, 21, 24, 25, 26, 27, 28, 22, 23, 29} },
 
1015
+       { "ko", { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 17, 15, 16, 18, 19, 20, 21, 24, 25, 26, 27, 28, 22, 23, 29} },
 
1016
+       { "zh-cn", { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 28, 22, 23, 16, 17, 15, 18, 19, 20, 21, 24, 25, 26, 27, 29} },
 
1017
+       { "zh-tw", { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 20, 21, 25, 26, 27, 24, 22, 23, 16, 17, 15, 18, 19, 28, 29} },
 
1018
+       { "zh-hk", { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 24, 20, 21, 25, 26, 27, 22, 23, 16, 17, 15, 18, 19, 28, 29} },
 
1019
+       { "zh", { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 28, 22, 23, 16, 17, 15, 18, 19, 20, 21, 24, 25, 26, 27, 29} },
 
1020
+       { NULL, { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 29, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28} }
 
1021
+};
 
1022
+static const guint32 char_mask_map[] = {
 
1023
+  0,
 
1024
+  ENC_ISO_8859_10|ENC_ISO_8859_1|ENC_ISO_8859_13|ENC_ISO_8859_14|ENC_ISO_8859_15|ENC_ISO_8859_2|ENC_ISO_8859_3|ENC_ISO_8859_4|ENC_ISO_8859_5|ENC_ISO_8859_6|ENC_ISO_8859_7|ENC_ISO_8859_8|ENC_ISO_8859_9|ENC_KOI8_R,
 
1025
+  ENC_ISO_8859_10|ENC_ISO_8859_1|ENC_ISO_8859_13|ENC_ISO_8859_14|ENC_ISO_8859_15|ENC_ISO_8859_2|ENC_ISO_8859_3|ENC_ISO_8859_4|ENC_ISO_8859_5|ENC_ISO_8859_6|ENC_ISO_8859_7|ENC_ISO_8859_8|ENC_ISO_8859_9|ENC_JIS_0201|ENC_KOI8_R|ENC_TIS_620,
 
1026
+  ENC_ISO_8859_10|ENC_ISO_8859_1|ENC_ISO_8859_13|ENC_ISO_8859_14|ENC_ISO_8859_15|ENC_ISO_8859_2|ENC_ISO_8859_3|ENC_ISO_8859_4|ENC_ISO_8859_5|ENC_ISO_8859_6|ENC_ISO_8859_7|ENC_ISO_8859_8|ENC_ISO_8859_9|ENC_JIS_0208|ENC_KOI8_R|ENC_TIS_620,
 
1027
+  ENC_ISO_8859_10|ENC_ISO_8859_1|ENC_ISO_8859_13|ENC_ISO_8859_14|ENC_ISO_8859_15|ENC_ISO_8859_2|ENC_ISO_8859_3|ENC_ISO_8859_4|ENC_ISO_8859_5|ENC_ISO_8859_6|ENC_ISO_8859_7|ENC_ISO_8859_8|ENC_ISO_8859_9|ENC_JIS_0212|ENC_KOI8_R|ENC_TIS_620,
 
1028
+  ENC_GB18030_1|ENC_ISO_8859_10|ENC_ISO_8859_1|ENC_ISO_8859_13|ENC_ISO_8859_14|ENC_ISO_8859_15|ENC_ISO_8859_2|ENC_ISO_8859_3|ENC_ISO_8859_4|ENC_ISO_8859_5|ENC_ISO_8859_6|ENC_ISO_8859_7|ENC_ISO_8859_8|ENC_ISO_8859_9,
 
1029
+  ENC_GB18030_1|ENC_ISO_8859_10|ENC_ISO_8859_1|ENC_ISO_8859_13|ENC_ISO_8859_14|ENC_ISO_8859_15|ENC_ISO_8859_2|ENC_ISO_8859_3|ENC_ISO_8859_4|ENC_ISO_8859_5|ENC_ISO_8859_6|ENC_ISO_8859_7|ENC_ISO_8859_8|ENC_ISO_8859_9|ENC_KOI8_R,
 
1030
+  ENC_GB18030_1|ENC_ISO_8859_1|ENC_ISO_8859_15|ENC_ISO_8859_9|ENC_JIS_0212|ENC_KSC_5601,
 
1031
+  ENC_BIG5_1|ENC_BIG5|ENC_GB18030_1|ENC_ISO_8859_1|ENC_ISO_8859_13|ENC_ISO_8859_15|ENC_ISO_8859_8|ENC_ISO_8859_9|ENC_JIS_0208,
 
1032
+  ENC_BIG5_1|ENC_BIG5|ENC_GB18030_1|ENC_ISO_8859_1|ENC_ISO_8859_13|ENC_ISO_8859_14|ENC_ISO_8859_15|ENC_ISO_8859_3|ENC_ISO_8859_7|ENC_ISO_8859_8|ENC_ISO_8859_9|ENC_JIS_0208,
 
1033
+  ENC_GB18030_0|ENC_GB_2312|ENC_GBK|ENC_ISO_8859_1|ENC_ISO_8859_13|ENC_ISO_8859_2|ENC_ISO_8859_3|ENC_ISO_8859_4|ENC_ISO_8859_6|ENC_ISO_8859_8|ENC_ISO_8859_9|ENC_JIS_0212|ENC_KSC_5601,
 
1034
+  ENC_BIG5_1|ENC_BIG5|ENC_GB18030_1|ENC_ISO_8859_1|ENC_ISO_8859_15|ENC_ISO_8859_8|ENC_ISO_8859_9|ENC_JIS_0201,
 
1035
+  ENC_GB18030_1|ENC_ISO_8859_1|ENC_ISO_8859_13|ENC_ISO_8859_7|ENC_ISO_8859_8|ENC_ISO_8859_9|ENC_JIS_0212,
 
1036
+  ENC_BIG5_1|ENC_BIG5|ENC_CNS11643_1|ENC_GB18030_0|ENC_GB_2312|ENC_GBK|ENC_ISO_8859_10|ENC_ISO_8859_1|ENC_ISO_8859_13|ENC_ISO_8859_14|ENC_ISO_8859_15|ENC_ISO_8859_2|ENC_ISO_8859_3|ENC_ISO_8859_4|ENC_ISO_8859_5|ENC_ISO_8859_7|ENC_ISO_8859_8|ENC_ISO_8859_9|ENC_JIS_0208|ENC_KSC_5601,
 
1037
+  ENC_GB18030_0|ENC_GB_2312|ENC_GBK|ENC_HKSCS_1|ENC_ISO_8859_1|ENC_ISO_8859_2|ENC_ISO_8859_3|ENC_ISO_8859_4|ENC_ISO_8859_7|ENC_ISO_8859_8|ENC_ISO_8859_9|ENC_JIS_0208|ENC_KSC_5601,
 
1038
+  ENC_GB18030_1|ENC_ISO_8859_1|ENC_ISO_8859_13|ENC_ISO_8859_14|ENC_ISO_8859_15|ENC_ISO_8859_7|ENC_ISO_8859_8|ENC_ISO_8859_9|ENC_JIS_0212|ENC_KOI8_R,
 
1039
+  ENC_GB18030_1|ENC_ISO_8859_1|ENC_ISO_8859_13|ENC_ISO_8859_15|ENC_ISO_8859_7|ENC_ISO_8859_8|ENC_ISO_8859_9,
 
1040
+  ENC_GB18030_1|ENC_ISO_8859_1|ENC_ISO_8859_13|ENC_ISO_8859_15|ENC_ISO_8859_7|ENC_ISO_8859_8|ENC_ISO_8859_9|ENC_JIS_0208,
 
1041
+  ENC_GB18030_1|ENC_ISO_8859_10|ENC_ISO_8859_1|ENC_ISO_8859_13|ENC_ISO_8859_14|ENC_ISO_8859_15|ENC_ISO_8859_2|ENC_ISO_8859_3|ENC_ISO_8859_4|ENC_ISO_8859_5|ENC_ISO_8859_6|ENC_ISO_8859_7|ENC_ISO_8859_8|ENC_ISO_8859_9|ENC_KSC_5601,
 
1042
+  ENC_GB18030_1|ENC_ISO_8859_1|ENC_ISO_8859_13|ENC_ISO_8859_14|ENC_ISO_8859_15|ENC_ISO_8859_8|ENC_ISO_8859_9|ENC_JIS_0212,
 
1043
+  ENC_GB18030_1|ENC_ISO_8859_1|ENC_ISO_8859_15|ENC_ISO_8859_4|ENC_ISO_8859_8|ENC_ISO_8859_9|ENC_JIS_0212,
 
1044
+  ENC_BIG5_1|ENC_BIG5|ENC_CNS11643_1|ENC_GB18030_0|ENC_GB_2312|ENC_GBK|ENC_ISO_8859_10|ENC_ISO_8859_1|ENC_ISO_8859_13|ENC_ISO_8859_15|ENC_ISO_8859_2|ENC_ISO_8859_3|ENC_ISO_8859_4|ENC_ISO_8859_7|ENC_ISO_8859_8|ENC_ISO_8859_9|ENC_JIS_0208|ENC_KOI8_R|ENC_KSC_5601,
 
1045
+  ENC_BIG5_1|ENC_BIG5|ENC_CNS11643_1|ENC_GB18030_0|ENC_GB_2312|ENC_GBK|ENC_ISO_8859_1|ENC_ISO_8859_13|ENC_ISO_8859_15|ENC_ISO_8859_7|ENC_ISO_8859_8|ENC_ISO_8859_9|ENC_JIS_0208|ENC_KSC_5601,
 
1046
+  ENC_GB18030_1|ENC_ISO_8859_1|ENC_ISO_8859_13|ENC_ISO_8859_15|ENC_ISO_8859_3|ENC_ISO_8859_7|ENC_ISO_8859_8|ENC_ISO_8859_9|ENC_KOI8_R|ENC_KSC_5601,
 
1047
+  ENC_GB18030_1|ENC_ISO_8859_1|ENC_ISO_8859_13|ENC_ISO_8859_15|ENC_ISO_8859_3|ENC_ISO_8859_7|ENC_ISO_8859_8|ENC_ISO_8859_9|ENC_KSC_5601,
 
1048
+  ENC_GB18030_1|ENC_ISO_8859_1|ENC_ISO_8859_2|ENC_ISO_8859_3|ENC_ISO_8859_4|ENC_ISO_8859_8|ENC_ISO_8859_9|ENC_JIS_0208|ENC_KSC_5601,
 
1049
+  ENC_GB18030_1|ENC_ISO_8859_1|ENC_ISO_8859_13|ENC_ISO_8859_15|ENC_ISO_8859_3|ENC_ISO_8859_8|ENC_ISO_8859_9,
 
1050
+  ENC_GB18030_1|ENC_ISO_8859_1|ENC_ISO_8859_13|ENC_ISO_8859_14|ENC_ISO_8859_15|ENC_ISO_8859_8|ENC_ISO_8859_9|ENC_JIS_0208|ENC_KSC_5601,
 
1051
+  ENC_BIG5_1|ENC_BIG5|ENC_CNS11643_1|ENC_GB18030_0|ENC_GBK|ENC_ISO_8859_10|ENC_ISO_8859_1|ENC_ISO_8859_13|ENC_ISO_8859_15|ENC_ISO_8859_3|ENC_ISO_8859_7|ENC_ISO_8859_8|ENC_ISO_8859_9|ENC_KOI8_R|ENC_KSC_5601,
 
1052
+  ENC_GB18030_1|ENC_ISO_8859_1|ENC_ISO_8859_2|ENC_ISO_8859_3|ENC_ISO_8859_4|ENC_ISO_8859_8|ENC_ISO_8859_9|ENC_JIS_0212|ENC_KSC_5601,
 
1053
+  ENC_GB18030_1|ENC_ISO_8859_1|ENC_ISO_8859_13|ENC_ISO_8859_15|ENC_ISO_8859_8|ENC_ISO_8859_9|ENC_KSC_5601,
 
1054
+  ENC_GB18030_1|ENC_ISO_8859_1|ENC_ISO_8859_13|ENC_ISO_8859_8|ENC_ISO_8859_9|ENC_KSC_5601,
 
1055
+  ENC_GB18030_1|ENC_ISO_8859_1|ENC_ISO_8859_13|ENC_ISO_8859_3|ENC_ISO_8859_7|ENC_ISO_8859_8|ENC_ISO_8859_9|ENC_KSC_5601,
 
1056
+  ENC_GB18030_1|ENC_HKSCS_1|ENC_ISO_8859_1|ENC_ISO_8859_14|ENC_ISO_8859_15|ENC_ISO_8859_3|ENC_ISO_8859_9|ENC_JIS_0212,
 
1057
+  ENC_GB18030_1|ENC_HKSCS_1|ENC_ISO_8859_10|ENC_ISO_8859_1|ENC_ISO_8859_14|ENC_ISO_8859_15|ENC_ISO_8859_2|ENC_ISO_8859_3|ENC_ISO_8859_4|ENC_ISO_8859_9|ENC_JIS_0212,
 
1058
+  ENC_GB18030_1|ENC_ISO_8859_10|ENC_ISO_8859_1|ENC_ISO_8859_14|ENC_ISO_8859_15|ENC_ISO_8859_2|ENC_ISO_8859_3|ENC_ISO_8859_4|ENC_ISO_8859_9|ENC_JIS_0212,
 
1059
+  ENC_GB18030_1|ENC_ISO_8859_10|ENC_ISO_8859_1|ENC_ISO_8859_14|ENC_ISO_8859_15|ENC_ISO_8859_4|ENC_ISO_8859_9|ENC_JIS_0212,
 
1060
+  ENC_GB18030_1|ENC_ISO_8859_10|ENC_ISO_8859_1|ENC_ISO_8859_13|ENC_ISO_8859_14|ENC_ISO_8859_15|ENC_ISO_8859_2|ENC_ISO_8859_3|ENC_ISO_8859_4|ENC_ISO_8859_9|ENC_JIS_0212,
 
1061
+  ENC_GB18030_1|ENC_ISO_8859_10|ENC_ISO_8859_1|ENC_ISO_8859_13|ENC_ISO_8859_14|ENC_ISO_8859_15|ENC_ISO_8859_4|ENC_ISO_8859_9|ENC_JIS_0212,
 
1062
+  ENC_GB18030_1|ENC_ISO_8859_10|ENC_ISO_8859_1|ENC_ISO_8859_13|ENC_ISO_8859_14|ENC_ISO_8859_15|ENC_ISO_8859_4|ENC_ISO_8859_9|ENC_JIS_0212|ENC_KSC_5601,
 
1063
+  ENC_GB18030_1|ENC_ISO_8859_1|ENC_ISO_8859_14|ENC_ISO_8859_15|ENC_ISO_8859_2|ENC_ISO_8859_3|ENC_ISO_8859_9|ENC_JIS_0212,
 
1064
+  ENC_GB18030_1|ENC_HKSCS_1|ENC_ISO_8859_10|ENC_ISO_8859_1|ENC_ISO_8859_13|ENC_ISO_8859_14|ENC_ISO_8859_15|ENC_ISO_8859_2|ENC_ISO_8859_3|ENC_ISO_8859_4|ENC_ISO_8859_9|ENC_JIS_0212,
 
1065
+  ENC_GB18030_1|ENC_ISO_8859_1|ENC_ISO_8859_14|ENC_ISO_8859_15|ENC_ISO_8859_3|ENC_ISO_8859_9|ENC_JIS_0212,
 
1066
+  ENC_GB18030_1|ENC_ISO_8859_10|ENC_ISO_8859_1|ENC_ISO_8859_14|ENC_ISO_8859_15|ENC_ISO_8859_3|ENC_ISO_8859_9|ENC_JIS_0212,
 
1067
+  ENC_GB18030_1|ENC_ISO_8859_10|ENC_ISO_8859_1|ENC_ISO_8859_15|ENC_KSC_5601,
 
1068
+  ENC_GB18030_1|ENC_HKSCS_1|ENC_ISO_8859_10|ENC_ISO_8859_1|ENC_ISO_8859_13|ENC_ISO_8859_14|ENC_ISO_8859_15|ENC_ISO_8859_2|ENC_ISO_8859_3|ENC_ISO_8859_9|ENC_JIS_0212,
 
1069
+  ENC_BIG5_1|ENC_BIG5|ENC_CNS11643_1|ENC_GB18030_0|ENC_GB_2312|ENC_GBK|ENC_ISO_8859_1|ENC_ISO_8859_13|ENC_ISO_8859_15|ENC_ISO_8859_2|ENC_ISO_8859_3|ENC_ISO_8859_4|ENC_ISO_8859_8|ENC_ISO_8859_9|ENC_JIS_0208|ENC_KSC_5601,
 
1070
+  ENC_GB18030_1|ENC_ISO_8859_10|ENC_ISO_8859_1|ENC_ISO_8859_14|ENC_ISO_8859_15|ENC_ISO_8859_3|ENC_ISO_8859_4|ENC_ISO_8859_9|ENC_JIS_0212,
 
1071
+  ENC_GB18030_1|ENC_ISO_8859_10|ENC_ISO_8859_1|ENC_ISO_8859_14|ENC_ISO_8859_15|ENC_ISO_8859_2|ENC_JIS_0212,
 
1072
+  ENC_GB18030_1|ENC_ISO_8859_10|ENC_ISO_8859_1|ENC_ISO_8859_15|ENC_JIS_0212|ENC_KSC_5601,
 
1073
+  ENC_GB18030_1|ENC_ISO_8859_10|ENC_ISO_8859_1|ENC_ISO_8859_13|ENC_ISO_8859_14|ENC_ISO_8859_15|ENC_ISO_8859_2|ENC_ISO_8859_3|ENC_ISO_8859_4|ENC_ISO_8859_9|ENC_JIS_0212|ENC_KSC_5601,
 
1074
+  ENC_GB18030_0|ENC_GB_2312|ENC_GBK|ENC_HKSCS_1|ENC_ISO_8859_1|ENC_ISO_8859_14|ENC_ISO_8859_15|ENC_ISO_8859_3|ENC_ISO_8859_9|ENC_JIS_0212,
 
1075
+  ENC_GB18030_0|ENC_GB_2312|ENC_GBK|ENC_HKSCS_1|ENC_ISO_8859_10|ENC_ISO_8859_1|ENC_ISO_8859_14|ENC_ISO_8859_15|ENC_ISO_8859_2|ENC_ISO_8859_3|ENC_ISO_8859_4|ENC_ISO_8859_9|ENC_JIS_0212,
 
1076
+  ENC_GB18030_0|ENC_GB_2312|ENC_GBK|ENC_HKSCS_1|ENC_ISO_8859_10|ENC_ISO_8859_1|ENC_ISO_8859_13|ENC_ISO_8859_14|ENC_ISO_8859_15|ENC_ISO_8859_2|ENC_ISO_8859_3|ENC_ISO_8859_4|ENC_ISO_8859_9|ENC_JIS_0212,
 
1077
+  ENC_GB18030_0|ENC_GB_2312|ENC_GBK|ENC_HKSCS_1|ENC_ISO_8859_10|ENC_ISO_8859_1|ENC_ISO_8859_13|ENC_ISO_8859_14|ENC_ISO_8859_15|ENC_ISO_8859_2|ENC_ISO_8859_3|ENC_ISO_8859_9|ENC_JIS_0212,
 
1078
+  ENC_BIG5_1|ENC_BIG5|ENC_CNS11643_1|ENC_GB18030_0|ENC_GB_2312|ENC_GBK|ENC_ISO_8859_1|ENC_ISO_8859_13|ENC_ISO_8859_15|ENC_ISO_8859_2|ENC_ISO_8859_3|ENC_ISO_8859_4|ENC_ISO_8859_8|ENC_ISO_8859_9|ENC_JIS_0208|ENC_KOI8_R|ENC_KSC_5601,
 
1079
+  ENC_GB18030_1|ENC_HKSCS_1|ENC_ISO_8859_10|ENC_ISO_8859_1|ENC_ISO_8859_13|ENC_ISO_8859_14|ENC_ISO_8859_15|ENC_ISO_8859_4|ENC_ISO_8859_9|ENC_JIS_0212|ENC_KSC_5601,
 
1080
+  ENC_ISO_8859_1|ENC_ISO_8859_14|ENC_ISO_8859_15|ENC_ISO_8859_9|ENC_JIS_0212,
 
1081
+  ENC_HKSCS_1|ENC_ISO_8859_10|ENC_ISO_8859_13|ENC_ISO_8859_4|ENC_JIS_0212,
 
1082
+  ENC_GB18030_0|ENC_GB_2312|ENC_GBK|ENC_HKSCS_1|ENC_ISO_8859_10|ENC_ISO_8859_13|ENC_ISO_8859_4|ENC_JIS_0212,
 
1083
+  ENC_ISO_8859_2|ENC_JIS_0212,
 
1084
+  ENC_ISO_8859_10|ENC_ISO_8859_13|ENC_ISO_8859_2|ENC_ISO_8859_4|ENC_JIS_0212,
 
1085
+  ENC_ISO_8859_13|ENC_ISO_8859_2|ENC_JIS_0212,
 
1086
+  ENC_ISO_8859_3|ENC_JIS_0212,
 
1087
+  ENC_ISO_8859_14|ENC_ISO_8859_3|ENC_JIS_0212,
 
1088
+  ENC_ISO_8859_10|ENC_ISO_8859_2|ENC_ISO_8859_4|ENC_JIS_0212,
 
1089
+  ENC_ISO_8859_10|ENC_ISO_8859_2|ENC_ISO_8859_4|ENC_JIS_0212|ENC_KSC_5601,
 
1090
+  ENC_ISO_8859_10|ENC_ISO_8859_13|ENC_ISO_8859_4|ENC_JIS_0212,
 
1091
+  ENC_HKSCS_1|ENC_ISO_8859_2|ENC_JIS_0212,
 
1092
+  ENC_GB18030_0|ENC_GB_2312|ENC_GBK|ENC_HKSCS_1|ENC_ISO_8859_2|ENC_JIS_0212,
 
1093
+  ENC_ISO_8859_3|ENC_ISO_8859_9|ENC_JIS_0212,
 
1094
+  ENC_ISO_8859_10|ENC_ISO_8859_13|ENC_ISO_8859_4,
 
1095
+  ENC_ISO_8859_3|ENC_JIS_0212|ENC_KSC_5601,
 
1096
+  ENC_ISO_8859_10|ENC_ISO_8859_4|ENC_JIS_0212,
 
1097
+  ENC_ISO_8859_3|ENC_ISO_8859_9|ENC_JIS_0212|ENC_KSC_5601,
 
1098
+  ENC_JIS_0212|ENC_KSC_5601,
 
1099
+  ENC_ISO_8859_10|ENC_ISO_8859_4|ENC_JIS_0212|ENC_KSC_5601,
 
1100
+  ENC_ISO_8859_13|ENC_ISO_8859_2|ENC_JIS_0212|ENC_KSC_5601,
 
1101
+  ENC_GB18030_0|ENC_GBK|ENC_ISO_8859_13|ENC_ISO_8859_2|ENC_JIS_0212,
 
1102
+  ENC_GB18030_0|ENC_GBK|ENC_ISO_8859_2|ENC_JIS_0212,
 
1103
+  ENC_HKSCS_1|ENC_ISO_8859_10|ENC_ISO_8859_4|ENC_JIS_0212|ENC_KSC_5601,
 
1104
+  ENC_ISO_8859_15|ENC_JIS_0212|ENC_KSC_5601,
 
1105
+  ENC_HKSCS_1|ENC_ISO_8859_15|ENC_JIS_0212|ENC_KSC_5601,
 
1106
+  ENC_ISO_8859_13|ENC_ISO_8859_4|ENC_JIS_0212,
 
1107
+  ENC_ISO_8859_2|ENC_ISO_8859_3|ENC_ISO_8859_9|ENC_JIS_0212,
 
1108
+  ENC_ISO_8859_10|ENC_ISO_8859_13|ENC_ISO_8859_15|ENC_ISO_8859_2|ENC_ISO_8859_4|ENC_JIS_0212,
 
1109
+  ENC_ISO_8859_14|ENC_JIS_0212,
 
1110
+  ENC_ISO_8859_14|ENC_ISO_8859_15|ENC_JIS_0212,
 
1111
+  ENC_ISO_8859_13|ENC_ISO_8859_2|ENC_ISO_8859_3|ENC_JIS_0212,
 
1112
+  ENC_HKSCS_1|ENC_JIS_0212,
 
1113
+  ENC_GB18030_0|ENC_GB_2312|ENC_GBK|ENC_HKSCS_1|ENC_JIS_0212,
 
1114
+  ENC_JIS_0212,
 
1115
+  ENC_GB18030_0|ENC_GBK,
 
1116
+  ENC_HKSCS_1,
 
1117
+  ENC_GB18030_0|ENC_GBK|ENC_HKSCS_1,
 
1118
+  ENC_BIG5_1|ENC_BIG5|ENC_CNS11643_1|ENC_GB18030_0|ENC_GB_2312|ENC_GBK|ENC_ISO_8859_2|ENC_ISO_8859_4|ENC_JIS_0212|ENC_KSC_5601,
 
1119
+  ENC_BIG5_1|ENC_BIG5|ENC_CNS11643_1|ENC_GB18030_0|ENC_GB_2312|ENC_GBK,
 
1120
+  ENC_BIG5_1|ENC_BIG5|ENC_CNS11643_1|ENC_GB18030_0|ENC_GBK,
 
1121
+  ENC_KSC_5601,
 
1122
+  ENC_ISO_8859_2|ENC_ISO_8859_3|ENC_JIS_0212|ENC_KSC_5601,
 
1123
+  ENC_BIG5_1|ENC_BIG5|ENC_CNS11643_1|ENC_GB18030_0|ENC_GBK|ENC_ISO_8859_2|ENC_ISO_8859_3|ENC_ISO_8859_4|ENC_JIS_0212|ENC_KSC_5601,
 
1124
+  ENC_ISO_8859_2|ENC_ISO_8859_4|ENC_JIS_0212|ENC_KSC_5601,
 
1125
+  ENC_ISO_8859_2|ENC_JIS_0212|ENC_KSC_5601,
 
1126
+  ENC_ISO_8859_7|ENC_JIS_0212,
 
1127
+  ENC_BIG5_1|ENC_BIG5|ENC_CNS11643_1|ENC_GB18030_0|ENC_GB_2312|ENC_GBK|ENC_ISO_8859_7|ENC_JIS_0208|ENC_KSC_5601,
 
1128
+  ENC_BIG5_1|ENC_BIG5|ENC_GB18030_0|ENC_GB_2312|ENC_GBK|ENC_HKSCS_1|ENC_ISO_8859_5|ENC_JIS_0208|ENC_KOI8_R|ENC_KSC_5601,
 
1129
+  ENC_ISO_8859_5|ENC_JIS_0212,
 
1130
+  ENC_GB18030_0|ENC_GB_2312|ENC_GBK|ENC_HKSCS_1|ENC_ISO_8859_5|ENC_JIS_0208|ENC_KOI8_R|ENC_KSC_5601,
 
1131
+  ENC_ISO_8859_8,
 
1132
+  ENC_GB18030_1|ENC_ISO_8859_6,
 
1133
+  ENC_GB18030_1,
 
1134
+  ENC_TIS_620,
 
1135
+  ENC_ISO_8859_14,
 
1136
+  ENC_GB18030_0|ENC_GBK|ENC_JIS_0208,
 
1137
+  ENC_GB18030_0|ENC_GB_2312|ENC_GBK|ENC_ISO_8859_10|ENC_ISO_8859_7|ENC_JIS_0208|ENC_KSC_5601,
 
1138
+  ENC_CNS11643_1|ENC_GB18030_0|ENC_GB_2312|ENC_GBK|ENC_JIS_0208,
 
1139
+  ENC_BIG5_1|ENC_BIG5|ENC_CNS11643_1|ENC_GB18030_0|ENC_GB_2312|ENC_GBK|ENC_ISO_8859_13|ENC_ISO_8859_7|ENC_JIS_0208|ENC_KSC_5601,
 
1140
+  ENC_BIG5_1|ENC_BIG5|ENC_CNS11643_1|ENC_GB18030_0|ENC_GB_2312|ENC_GBK|ENC_ISO_8859_13|ENC_JIS_0208|ENC_KSC_5601,
 
1141
+  ENC_ISO_8859_13,
 
1142
+  ENC_JIS_0208|ENC_KSC_5601,
 
1143
+  ENC_BIG5_1|ENC_BIG5,
 
1144
+  ENC_BIG5_1|ENC_BIG5|ENC_CNS11643_1|ENC_GB18030_0|ENC_GBK|ENC_JIS_0208|ENC_KSC_5601,
 
1145
+  ENC_BIG5_1|ENC_BIG5|ENC_CNS11643_1|ENC_GB18030_0|ENC_GB_2312|ENC_GBK|ENC_JIS_0208|ENC_KSC_5601,
 
1146
+  ENC_GB18030_0|ENC_GB_2312|ENC_GBK|ENC_JIS_0208|ENC_KSC_5601,
 
1147
+  ENC_BIG5_1|ENC_BIG5|ENC_CNS11643_1|ENC_JIS_0201,
 
1148
+  ENC_GB18030_0|ENC_GBK|ENC_ISO_8859_15,
 
1149
+  ENC_BIG5_1|ENC_BIG5|ENC_CNS11643_1|ENC_GB18030_0|ENC_GBK|ENC_KSC_5601,
 
1150
+  ENC_GB18030_0|ENC_GB_2312|ENC_GBK|ENC_HKSCS_1|ENC_ISO_8859_5|ENC_JIS_0212|ENC_KSC_5601,
 
1151
+  ENC_GB18030_0|ENC_GBK|ENC_HKSCS_1|ENC_KSC_5601,
 
1152
+  ENC_BIG5_1|ENC_BIG5|ENC_CNS11643_1|ENC_GB18030_0|ENC_GB_2312|ENC_GBK|ENC_KSC_5601,
 
1153
+  ENC_GB18030_0|ENC_GB_2312|ENC_GBK,
 
1154
+  ENC_CNS11643_1|ENC_GB18030_0|ENC_GBK|ENC_HKSCS_1|ENC_KSC_5601,
 
1155
+  ENC_GB18030_0|ENC_GB_2312|ENC_GBK|ENC_KSC_5601,
 
1156
+  ENC_JIS_0208,
 
1157
+  ENC_CNS11643_1|ENC_GB18030_0|ENC_GBK,
 
1158
+  ENC_KOI8_R,
 
1159
+  ENC_BIG5_1|ENC_BIG5|ENC_CNS11643_1|ENC_GB18030_0|ENC_GB_2312|ENC_GBK|ENC_JIS_0208|ENC_KOI8_R|ENC_KSC_5601,
 
1160
+  ENC_BIG5_1|ENC_BIG5|ENC_GB18030_0|ENC_GBK,
 
1161
+  ENC_BIG5_1|ENC_BIG5|ENC_GB18030_0|ENC_GB_2312|ENC_GBK|ENC_KSC_5601,
 
1162
+  ENC_BIG5_1|ENC_BIG5|ENC_CNS11643_1|ENC_KSC_5601,
 
1163
+  ENC_GB18030_0|ENC_GB_2312|ENC_GBK|ENC_KOI8_R,
 
1164
+  ENC_GB18030_0|ENC_GB_2312|ENC_GBK|ENC_KOI8_R|ENC_KSC_5601,
 
1165
+  ENC_BIG5_1|ENC_BIG5|ENC_CNS11643_1|ENC_GB18030_0|ENC_GBK|ENC_JIS_0208,
 
1166
+  ENC_CNS11643_1,
 
1167
+  ENC_BIG5_1|ENC_BIG5|ENC_CNS11643_1|ENC_GB18030_0|ENC_GB_2312|ENC_GBK|ENC_HKSCS_1|ENC_KSC_5601,
 
1168
+  ENC_BIG5_1|ENC_BIG5|ENC_CNS11643_1|ENC_GB18030_0|ENC_GBK|ENC_HKSCS_1|ENC_KOI8_R,
 
1169
+  ENC_GB18030_0|ENC_GBK|ENC_HKSCS_1|ENC_KOI8_R,
 
1170
+  ENC_BIG5_1|ENC_BIG5|ENC_CNS11643_1|ENC_GB18030_0|ENC_GBK|ENC_HKSCS_1,
 
1171
+  ENC_BIG5_1|ENC_BIG5|ENC_CNS11643_1|ENC_GB18030_0|ENC_GBK|ENC_KOI8_R,
 
1172
+  ENC_KOI8_R|ENC_KSC_5601,
 
1173
+  ENC_GB18030_0|ENC_GBK|ENC_KOI8_R,
 
1174
+  ENC_BIG5_1|ENC_BIG5|ENC_CNS11643_1,
 
1175
+  ENC_BIG5_1|ENC_BIG5|ENC_GB18030_0|ENC_GB_2312|ENC_GBK|ENC_HKSCS_1|ENC_JIS_0208,
 
1176
+  ENC_GB18030_0|ENC_GBK|ENC_HKSCS_1|ENC_JIS_0208,
 
1177
+  ENC_BIG5_1|ENC_BIG5|ENC_GB18030_0|ENC_GB_2312|ENC_GBK|ENC_HKSCS_1|ENC_JIS_0208|ENC_KSC_5601,
 
1178
+  ENC_BIG5_1|ENC_BIG5|ENC_GB18030_0|ENC_GBK|ENC_HKSCS_1|ENC_JIS_0208,
 
1179
+  ENC_CNS11643_1|ENC_GB_2312|ENC_JIS_0208,
 
1180
+  ENC_CNS11643_3|ENC_GB18030_1,
 
1181
+  ENC_GB18030_1|ENC_HKSCS_1,
 
1182
+  ENC_CNS11643_3|ENC_GB18030_1|ENC_HKSCS_1,
 
1183
+  ENC_CNS11643_3|ENC_GB18030_0|ENC_GBK|ENC_HKSCS_1,
 
1184
+  ENC_CNS11643_3|ENC_GB18030_0|ENC_GBK,
 
1185
+  ENC_GB18030_0|ENC_GBK|ENC_JIS_0212,
 
1186
+  ENC_CNS11643_3|ENC_GB18030_0|ENC_GBK|ENC_HKSCS_1|ENC_JIS_0212,
 
1187
+  ENC_CNS11643_3|ENC_GB18030_0|ENC_GBK|ENC_JIS_0212,
 
1188
+  ENC_BIG5_1|ENC_BIG5|ENC_CNS11643_2|ENC_GB18030_0|ENC_GB_2312|ENC_GBK|ENC_JIS_0208|ENC_KSC_5601,
 
1189
+  ENC_BIG5_1|ENC_BIG5|ENC_CNS11643_2|ENC_GB18030_0|ENC_GB_2312|ENC_GBK|ENC_JIS_0212,
 
1190
+  ENC_BIG5_1|ENC_BIG5|ENC_CNS11643_2|ENC_GB18030_0|ENC_GB_2312|ENC_GBK|ENC_JIS_0208,
 
1191
+  ENC_BIG5_1|ENC_BIG5|ENC_CNS11643_2|ENC_GB18030_0|ENC_GBK,
 
1192
+  ENC_BIG5_1|ENC_BIG5|ENC_CNS11643_1|ENC_GB18030_0|ENC_GB_2312|ENC_GBK|ENC_JIS_0208,
 
1193
+  ENC_GB18030_0|ENC_GB_2312|ENC_GBK|ENC_HKSCS_1,
 
1194
+  ENC_BIG5_1|ENC_BIG5|ENC_CNS11643_1|ENC_GB18030_0|ENC_GBK|ENC_JIS_0212,
 
1195
+  ENC_CNS11643_3|ENC_GB18030_0|ENC_GBK|ENC_HKSCS_1|ENC_JIS_0208,
 
1196
+  ENC_CNS11643_3|ENC_GB18030_0|ENC_GB_2312|ENC_GBK,
 
1197
+  ENC_CNS11643_3|ENC_GB18030_0|ENC_GB_2312|ENC_GBK|ENC_HKSCS_1|ENC_JIS_0212,
 
1198
+  ENC_CNS11643_3|ENC_GB18030_0|ENC_GB_2312|ENC_GBK|ENC_HKSCS_1|ENC_JIS_0208,
 
1199
+  ENC_BIG5_1|ENC_BIG5|ENC_CNS11643_1|ENC_GB18030_0|ENC_GB_2312|ENC_GBK|ENC_JIS_0212,
 
1200
+  ENC_BIG5_1|ENC_BIG5|ENC_CNS11643_2|ENC_GB18030_0|ENC_GBK|ENC_JIS_0212,
 
1201
+  ENC_BIG5_1|ENC_BIG5|ENC_CNS11643_2|ENC_GB18030_0|ENC_GBK|ENC_JIS_0208,
 
1202
+  ENC_CNS11643_3|ENC_GB18030_0|ENC_GB_2312|ENC_GBK|ENC_HKSCS_1,
 
1203
+  ENC_BIG5_1|ENC_BIG5|ENC_CNS11643_2|ENC_GB18030_0|ENC_GBK|ENC_JIS_0208|ENC_KSC_5601,
 
1204
+  ENC_CNS11643_3|ENC_GB18030_0|ENC_GBK|ENC_JIS_0208,
 
1205
+  ENC_GB18030_0|ENC_GBK|ENC_HKSCS_1|ENC_JIS_0212,
 
1206
+  ENC_GB18030_0|ENC_GBK|ENC_KSC_5601,
 
1207
+  ENC_CNS11643_3|ENC_GB18030_0|ENC_GB_2312|ENC_GBK|ENC_JIS_0208,
 
1208
+  ENC_BIG5_1|ENC_BIG5|ENC_CNS11643_2|ENC_GB18030_0|ENC_GB_2312|ENC_GBK,
 
1209
+  ENC_CNS11643_3|ENC_GB18030_0|ENC_GB_2312|ENC_GBK|ENC_HKSCS_1|ENC_JIS_0208|ENC_KSC_5601,
 
1210
+  ENC_GB18030_0|ENC_GB_2312|ENC_GBK|ENC_HKSCS_1|ENC_JIS_0208,
 
1211
+  ENC_BIG5_1|ENC_BIG5|ENC_CNS11643_1|ENC_GB18030_0|ENC_GBK|ENC_JIS_0212|ENC_KSC_5601,
 
1212
+  ENC_CNS11643_3|ENC_GB18030_0|ENC_GB_2312|ENC_GBK|ENC_JIS_0212,
 
1213
+  ENC_BIG5_1|ENC_BIG5|ENC_CNS11643_1|ENC_GB18030_0|ENC_GB_2312|ENC_GBK|ENC_JIS_0212|ENC_KSC_5601,
 
1214
+  ENC_BIG5_1|ENC_BIG5|ENC_CNS11643_2|ENC_GB18030_0|ENC_GBK|ENC_JIS_0212|ENC_KSC_5601,
 
1215
+  ENC_BIG5_1|ENC_BIG5|ENC_CNS11643_2|ENC_GB18030_0|ENC_GB_2312|ENC_GBK|ENC_JIS_0212|ENC_KSC_5601,
 
1216
+  ENC_CNS11643_3|ENC_GB18030_0|ENC_GBK|ENC_HKSCS_1|ENC_JIS_0212|ENC_KSC_5601,
 
1217
+  ENC_BIG5_1|ENC_BIG5|ENC_CNS11643_2|ENC_GB18030_0|ENC_GBK|ENC_KSC_5601,
 
1218
+  ENC_CNS11643_3|ENC_GB18030_0|ENC_GBK|ENC_KSC_5601,
 
1219
+  ENC_CNS11643_3|ENC_GB18030_0|ENC_GBK|ENC_JIS_0208|ENC_KSC_5601,
 
1220
+  ENC_GB18030_0|ENC_GBK|ENC_JIS_0212|ENC_KSC_5601,
 
1221
+  ENC_CNS11643_3|ENC_GB18030_0|ENC_GBK|ENC_HKSCS_1|ENC_JIS_0208|ENC_KSC_5601,
 
1222
+  ENC_CNS11643_3|ENC_GB18030_0|ENC_GB_2312|ENC_GBK|ENC_JIS_0208|ENC_KSC_5601,
 
1223
+  ENC_GB18030_0|ENC_GBK|ENC_JIS_0208|ENC_KSC_5601,
 
1224
+  ENC_GB18030_0|ENC_GBK|ENC_HKSCS_1|ENC_JIS_0212|ENC_KSC_5601,
 
1225
+  ENC_GB18030_0|ENC_GB_2312|ENC_GBK|ENC_JIS_0208,
 
1226
+  ENC_CNS11643_3|ENC_GB18030_0|ENC_GBK|ENC_HKSCS_1|ENC_KSC_5601,
 
1227
+  ENC_CNS11643_3|ENC_GB18030_0|ENC_GBK|ENC_JIS_0212|ENC_KSC_5601,
 
1228
+  ENC_GB18030_0|ENC_GBK|ENC_HKSCS_1|ENC_JIS_0208|ENC_KSC_5601,
 
1229
+  ENC_GB18030_0|ENC_GB_2312|ENC_GBK|ENC_JIS_0212,
 
1230
+  ENC_CNS11643_3|ENC_GB18030_0|ENC_GB_2312|ENC_GBK|ENC_HKSCS_1|ENC_KSC_5601,
 
1231
+  ENC_BIG5_1|ENC_BIG5|ENC_CNS11643_3|ENC_GB18030_0|ENC_GB_2312|ENC_GBK|ENC_JIS_0208,
 
1232
+  ENC_CNS11643_3|ENC_GB18030_0|ENC_GB_2312|ENC_GBK|ENC_HKSCS_1|ENC_JIS_0212|ENC_KSC_5601,
 
1233
+  ENC_CNS11643_3|ENC_GB18030_0|ENC_GB_2312|ENC_GBK|ENC_KSC_5601,
 
1234
+  ENC_BIG5_1|ENC_BIG5|ENC_CNS11643_2|ENC_GB18030_0|ENC_GB_2312|ENC_GBK|ENC_KSC_5601,
 
1235
+  ENC_BIG5_1|ENC_BIG5|ENC_CNS11643_1|ENC_GB18030_0|ENC_GBK|ENC_HKSCS_1|ENC_JIS_0208|ENC_KSC_5601,
 
1236
+  ENC_CNS11643_1|ENC_GB18030_1,
 
1237
+  ENC_GB18030_0|ENC_GB_2312|ENC_GBK|ENC_HKSCS_1|ENC_KSC_5601,
 
1238
+  ENC_GB18030_0|ENC_GB_2312|ENC_GBK|ENC_HKSCS_1|ENC_JIS_0208|ENC_KSC_5601,
 
1239
+  ENC_JIS_0201,
 
1240
+  ENC_BIG5_1|ENC_BIG5|ENC_JIS_0201,
 
1241
+  ENC_CNS11643_1|ENC_GB18030_0|ENC_GB_2312|ENC_GBK|ENC_KSC_5601,
 
1242
+  ENC_CNS11643_1|ENC_GB18030_0|ENC_GB_2312|ENC_GBK|ENC_JIS_0208|ENC_KSC_5601,
 
1243
+  ENC_BIG5|ENC_BIG5|ENC_BIG5|ENC_BIG5|ENC_BIG5|ENC_BIG5|ENC_BIG5,
 
1244
+};
 
1245
+
 
1246
+static const guchar char_masks[] = {
 
1247
+  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
 
1248
+  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
 
1249
+  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
 
1250
+  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
 
1251
+  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
 
1252
+  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  3,  2,  2,  2,
 
1253
+  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
 
1254
+  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  4,  1,
 
1255
+  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,
 
1256
+  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,
 
1257
+  6,  7,  8,  9, 10, 11, 12, 13, 14, 15,  7, 16, 17, 18, 19, 20,
 
1258
+ 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,  7, 16, 31, 32, 31,  7,
 
1259
+ 33, 34, 35, 36, 37, 38, 39, 40, 33, 41, 33, 35, 42, 35, 35, 43,
 
1260
+ 44, 42, 33, 45, 35, 38, 37, 46, 39, 42, 35, 47, 37, 48, 49, 50,
 
1261
+ 51, 52, 35, 36, 37, 38, 39, 40, 51, 53, 51, 35, 51, 52, 35, 43,
 
1262
+ 49, 42, 51, 54, 35, 38, 37, 55, 56, 51, 52, 47, 53, 48, 49, 57,
 
1263
+ 58, 59, 60, 60, 61, 61, 62, 62, 63, 63, 64, 64, 61, 61, 60, 60,
 
1264
+ 65, 66, 58, 59,  0,  0, 67, 67, 61, 61, 68, 69, 63, 63, 70, 70,
 
1265
+ 64, 64, 67, 71, 63, 63, 72, 72, 73, 73, 67, 59,  0,  0, 67, 67,
 
1266
+ 70, 74, 75, 75, 63, 63, 67, 67, 76, 60, 60, 67, 67, 60, 60, 75,
 
1267
+ 75, 77, 77, 62, 78, 67, 67, 60, 79, 75, 76, 80, 58, 59,  0,  0,
 
1268
+ 60, 60, 81, 82, 60, 60, 83, 83, 60, 60, 62, 62, 63, 63, 84, 84,
 
1269
+ 85, 85, 60, 60, 60, 60, 76, 76, 73, 73, 67, 59, 63, 63, 60, 60,
 
1270
+ 60, 60, 67, 67, 86, 86, 86, 86, 87, 62, 62, 88, 88, 85, 85,  0,
 
1271
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1272
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1273
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1274
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1275
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 89, 90, 91,
 
1276
+ 90, 89, 90, 91, 90, 91, 90, 91, 90, 91, 90, 91, 90,  0,  0,  0,
 
1277
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1278
+  0,  0,  0,  0,  0, 91,  0,  0,  0, 92,  0,  0,  0,  0,  0,  0,
 
1279
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1280
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1281
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1282
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1283
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1284
+ 93, 94,  0,  0, 93,  0,  0,  0,  0,  0,  0, 93,  0,  0,  0,  0,
 
1285
+  0, 94,  0,  0,  0,  0,  0,  0,  0,  0, 93,  0,  0,  0,  0,  0,
 
1286
+  0,  0,  0,  0,  0, 93,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1287
+  0,  0,  0, 93,  0,  0,  0,  0,  0,  0, 93,  0,  0,  0,  0,  0,
 
1288
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1289
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1290
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1291
+  0,  0,  0,  0,  0,  0, 93, 95,  0, 96, 97, 97,  0,  0,  0,  0,
 
1292
+ 98,  0,  0,  0,  0,  0,  0,  0, 99, 100, 75, 101,  0, 102,  0,  0,
 
1293
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1294
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1295
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1296
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1297
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1298
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1299
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1300
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1301
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1302
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1303
+  0,  0,  0,  0, 103, 103, 103,  0, 103, 103, 103,  0, 103,  0, 103, 103,
 
1304
+ 103, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104,
 
1305
+ 104, 104,  0, 104, 104, 104, 104, 104, 104, 104, 103, 103, 103, 103, 103, 103,
 
1306
+ 103, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104,
 
1307
+ 104, 104, 103, 104, 104, 104, 104, 104, 104, 104, 103, 103, 103, 103, 103,  0,
 
1308
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1309
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1310
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1311
+  0, 105, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,  0, 106, 106,
 
1312
+ 107, 107, 107, 107, 105, 105, 105, 105, 105, 105, 105, 105, 105, 107, 107, 107,
 
1313
+ 107, 107, 107, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
 
1314
+ 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
 
1315
+ 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
 
1316
+  0, 105, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,  0, 106, 106,
 
1317
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1318
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1319
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1320
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1321
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1322
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1323
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1324
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1325
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1326
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1327
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1328
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1329
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1330
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1331
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1332
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1333
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1334
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1335
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1336
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1337
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1338
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1339
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1340
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
 
1341
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,  0,  0,  0,  0,  0,
 
1342
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1343
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 109, 110, 110, 110,
 
1344
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 109, 110, 110, 110, 109,
 
1345
+ 110, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109,
 
1346
+ 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 110, 110, 110, 110, 110,
 
1347
+ 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109,
 
1348
+ 109, 109, 109, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
1349
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
1350
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
1351
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
1352
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
1353
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
1354
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
1355
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
1356
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
1357
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
1358
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,  0,
 
1359
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1360
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1361
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1362
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1363
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1364
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1365
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1366
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1367
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1368
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1369
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1370
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1371
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1372
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1373
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1374
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1375
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1376
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1377
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1378
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1379
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1380
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1381
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1382
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1383
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1384
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1385
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1386
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1387
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1388
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1389
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1390
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1391
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1392
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1393
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1394
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1395
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1396
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1397
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1398
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1399
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1400
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1401
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1402
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1403
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1404
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1405
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1406
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1407
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1408
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1409
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1410
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1411
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1412
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1413
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1414
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1415
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1416
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1417
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1418
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1419
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1420
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1421
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1422
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1423
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1424
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1425
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1426
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1427
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1428
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1429
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1430
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1431
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1432
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1433
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1434
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1435
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1436
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1437
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1438
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1439
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1440
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1441
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1442
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1443
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1444
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1445
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1446
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1447
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1448
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1449
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1450
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1451
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1452
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1453
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1454
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1455
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1456
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1457
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1458
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1459
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1460
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1461
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1462
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1463
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1464
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1465
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1466
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1467
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1468
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1469
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1470
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1471
+  0, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111,
 
1472
+ 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111,
 
1473
+ 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111,
 
1474
+ 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111,  0,  0,  0,  0, 111,
 
1475
+ 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111,
 
1476
+ 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111,  0,  0,  0,  0,
 
1477
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1478
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1479
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1480
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1481
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1482
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1483
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1484
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1485
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1486
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1487
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
1488
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
1489
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
1490
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
1491
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
1492
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
1493
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
1494
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
1495
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
1496
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
1497
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
1498
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
1499
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
1500
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1501
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1502
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1503
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1504
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1505
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1506
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1507
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1508
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1509
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1510
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1511
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1512
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1513
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1514
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1515
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1516
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1517
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1518
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1519
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1520
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1521
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1522
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1523
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1524
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1525
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1526
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1527
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1528
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1529
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1530
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1531
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1532
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1533
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1534
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1535
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1536
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1537
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1538
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1539
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1540
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1541
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1542
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1543
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1544
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1545
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1546
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1547
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1548
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1549
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1550
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1551
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1552
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1553
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1554
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1555
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1556
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1557
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1558
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1559
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1560
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1561
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1562
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1563
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1564
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1565
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1566
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1567
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1568
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1569
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1570
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1571
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1572
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1573
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1574
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1575
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1576
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1577
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1578
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1579
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1580
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1581
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1582
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1583
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1584
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1585
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1586
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1587
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1588
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1589
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1590
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1591
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1592
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1593
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1594
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1595
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1596
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1597
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1598
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1599
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1600
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1601
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1602
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1603
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1604
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1605
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1606
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1607
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1608
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1609
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1610
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1611
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1612
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1613
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1614
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1615
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1616
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1617
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1618
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1619
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1620
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1621
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1622
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1623
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1624
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1625
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1626
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1627
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1628
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1629
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1630
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1631
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
1632
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
1633
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
1634
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
1635
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
1636
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
1637
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
1638
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
1639
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
1640
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
1641
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,  0,  0,  0,  0,  0,  0,
 
1642
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1643
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1644
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1645
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1646
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1647
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1648
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1649
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1650
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1651
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1652
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1653
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1654
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1655
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1656
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1657
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1658
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1659
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1660
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1661
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1662
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1663
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1664
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1665
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1666
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1667
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1668
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1669
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1670
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1671
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1672
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1673
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1674
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1675
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1676
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1677
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1678
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1679
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1680
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1681
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1682
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1683
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1684
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1685
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1686
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1687
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1688
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1689
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1690
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1691
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1692
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1693
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1694
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1695
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1696
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1697
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1698
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1699
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1700
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1701
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1702
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1703
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1704
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1705
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1706
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1707
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1708
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1709
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1710
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1711
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1712
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1713
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1714
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1715
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1716
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1717
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1718
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1719
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1720
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1721
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1722
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1723
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1724
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1725
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1726
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1727
+  0,  0, 112, 112,  0,  0,  0,  0,  0,  0, 112, 112,  0,  0,  0,  0,
 
1728
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 112, 112,
 
1729
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1730
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1731
+ 112, 112,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1732
+  0,  0,  0,  0,  0,  0, 112, 112,  0,  0,  0,  0,  0,  0,  0,  0,
 
1733
+ 112, 112,  0,  0,  0,  0,  0,  0,  0,  0, 112, 112,  0,  0,  0,  0,
 
1734
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1735
+ 112, 112, 112, 112, 112, 112,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1736
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1737
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1738
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 93, 93,
 
1739
+ 93, 93,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1740
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1741
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1742
+  0,  0, 112, 112,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1743
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1744
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1745
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1746
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1747
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1748
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1749
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1750
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1751
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1752
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1753
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1754
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1755
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1756
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1757
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1758
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1759
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 108, 108,
 
1760
+ 113,  0,  0, 97, 97, 114, 115, 108, 104, 116,  0,  0, 117, 117, 118,  0,
 
1761
+ 119, 119, 120,  0,  0, 121, 122,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1762
+ 123,  0, 122, 123,  0, 97,  0,  0,  0,  0,  0, 122,  0,  0, 124,  0,
 
1763
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1764
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1765
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1766
+  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 98,
 
1767
+  0, 98, 98, 98, 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1768
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1769
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 125,  0,  0,  0,
 
1770
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1771
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1772
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1773
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1774
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1775
+  0,  0,  0, 122,  0, 97,  0,  0,  0, 126,  0,  0,  0,  0,  0,  0,
 
1776
+  0,  0,  0, 98,  0,  0, 127,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1777
+  0, 128, 75,  0,  0,  0, 98,  0,  0,  0,  0, 119,  0,  0,  0,  0,
 
1778
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1779
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1780
+  0,  0,  0, 98, 98,  0,  0,  0,  0,  0,  0, 98, 98, 98, 98,  0,
 
1781
+ 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 130, 130,  0,  0,  0,  0,
 
1782
+ 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,  0,  0,  0,  0,  0,  0,
 
1783
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1784
+ 122, 122, 122, 122, 98, 98, 126, 126, 126, 126,  0,  0,  0,  0,  0,  0,
 
1785
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1786
+  0,  0,  0,  0,  0,  0,  0,  0, 93, 93,  0,  0,  0,  0,  0,  0,
 
1787
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1788
+  0,  0, 119,  0, 119,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1789
+  0,  0,  0,  0,  0,  0,  0, 93,  0,  0,  0,  0,  0,  0,  0,  0,
 
1790
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1791
+ 119,  0, 119, 119,  0,  0,  0, 119, 123,  0,  0, 119,  0,  0,  0, 132,
 
1792
+  0, 132, 133,  0,  0, 134,  0,  0,  0, 135, 136,  0,  0, 123, 122, 97,
 
1793
+ 122,  0,  0, 137,  0, 138,  0, 123, 123, 122, 122, 122, 119,  0, 129,  0,
 
1794
+  0,  0,  0,  0, 122, 122, 130, 130,  0,  0,  0,  0, 139, 123,  0,  0,
 
1795
+  0,  0,  0,  0,  0,  0,  0,  0, 140,  0,  0,  0, 130,  0,  0,  0,
 
1796
+  0,  0, 121,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1797
+ 122, 122,  0,  0, 141, 141, 142, 142,  0,  0, 119, 119,  0,  0, 130, 130,
 
1798
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1799
+  0,  0, 119, 119,  0,  0, 119, 119,  0,  0,  0,  0,  0,  0,  0,  0,
 
1800
+  0,  0,  0,  0,  0, 92,  0,  0,  0, 132,  0,  0,  0,  0,  0,  0,
 
1801
+  0,  0,  0,  0,  0, 122,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1802
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 97,
 
1803
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1804
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1805
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1806
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1807
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1808
+  0,  0, 123,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1809
+ 135, 135,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1810
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1811
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1812
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1813
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1814
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1815
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1816
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1817
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1818
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1819
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1820
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1821
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1822
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1823
+ 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
 
1824
+ 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
 
1825
+  0, 143,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1826
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1827
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1828
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1829
+ 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 98, 98, 98, 98, 98,  0,
 
1830
+  0,  0,  0,  0, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 132, 132,
 
1831
+ 132, 132, 132, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130,
 
1832
+ 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 98, 98, 98, 98,
 
1833
+ 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98,
 
1834
+ 98, 98, 98, 98, 98, 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1835
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1836
+ 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98,
 
1837
+ 98, 98, 98, 98, 98, 98, 98, 98, 98, 98,  0,  0,  0,  0,  0,  0,
 
1838
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1839
+ 136, 123, 136, 123, 130, 130, 130, 130, 130, 130, 130, 130, 136, 132, 132, 123,
 
1840
+ 136, 132, 132, 123, 136, 132, 132, 123, 136, 132, 132, 123, 136, 123, 132, 132,
 
1841
+ 123, 132, 132, 123, 136, 123, 132, 132, 123, 132, 132, 123, 136, 132, 132, 123,
 
1842
+ 123, 132, 132, 123, 136, 132, 132, 123, 123, 132, 132, 123, 136, 132, 132, 123,
 
1843
+ 132, 132, 123, 132, 132, 132, 132, 132, 132, 132, 132, 123,  0,  0,  0,  0,
 
1844
+ 145, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 145, 146,
 
1845
+ 146, 145, 146, 146, 146, 146, 146, 146, 146, 146, 145, 146, 146, 147, 147, 147,
 
1846
+ 147, 97, 97, 97,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1847
+ 135, 97, 97, 97, 148, 97, 97, 97, 148, 97, 97, 97, 148, 97, 97, 97,
 
1848
+ 135, 135, 149, 150, 97, 97,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1849
+ 136, 122,  0, 98, 98, 98, 98, 98, 98, 98,  0,  0,  0,  0,  0,  0,
 
1850
+  0,  0, 122, 122,  0,  0, 98, 98,  0,  0,  0,  0, 121, 121,  0,  0,
 
1851
+ 98, 98,  0,  0,  0,  0, 122, 122, 98,  0,  0, 122,  0,  0, 122, 122,
 
1852
+ 98, 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1853
+  0,  0, 97, 97, 97, 97,  0,  0,  0,  0,  0,  0,  0,  0,  0, 133,
 
1854
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1855
+  0,  0,  0,  0,  0, 122, 122,  0,  0, 97,  0,  0,  0,  0, 98, 98,
 
1856
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 98,  0, 98,  0,
 
1857
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1858
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1859
+ 122, 151, 122,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1860
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1861
+ 98, 98,  0, 98, 98, 98,  0, 98, 98, 98, 119,  0, 98, 119,  0, 133,
 
1862
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1863
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1864
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1865
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1866
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1867
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1868
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1869
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1870
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1871
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1872
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1873
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1874
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 93,  0,  0,
 
1875
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1876
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1877
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1878
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1879
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1880
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1881
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1882
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1883
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1884
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1885
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1886
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1887
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1888
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1889
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1890
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1891
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1892
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1893
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1894
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1895
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1896
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1897
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1898
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1899
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1900
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1901
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1902
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1903
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1904
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1905
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1906
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1907
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1908
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1909
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1910
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1911
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1912
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1913
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1914
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1915
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1916
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1917
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1918
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1919
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1920
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1921
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1922
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1923
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1924
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1925
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1926
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1927
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1928
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1929
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1930
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1931
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1932
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1933
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1934
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1935
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1936
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1937
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1938
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1939
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1940
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1941
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1942
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1943
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1944
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1945
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1946
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1947
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1948
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1949
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1950
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1951
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1952
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1953
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1954
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1955
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1956
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1957
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1958
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1959
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1960
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1961
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1962
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1963
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1964
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1965
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1966
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1967
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1968
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1969
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1970
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1971
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1972
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1973
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1974
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1975
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1976
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1977
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1978
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1979
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1980
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1981
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1982
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1983
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1984
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1985
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1986
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1987
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1988
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1989
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1990
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1991
+ 93, 92,  0,  0, 94,  0, 93, 93, 94,  0, 93, 92, 94, 93,  0,  0,
 
1992
+  0,  0,  0,  0,  0, 93,  0, 92,  0,  0,  0,  0, 93, 93,  0,  0,
 
1993
+  0,  0,  0,  0,  0, 93,  0, 94,  0,  0, 94,  0, 93,  0, 94,  0,
 
1994
+  0,  0,  0, 92,  0,  0, 94, 92,  0,  0,  0, 92, 93,  0, 93,  0,
 
1995
+  0,  0,  0,  0,  0,  0, 93,  0,  0,  0, 94,  0, 93, 93,  0, 93,
 
1996
+  0,  0,  0,  0,  0,  0, 93, 93,  0,  0,  0,  0,  0,  0, 93,  0,
 
1997
+  0,  0,  0, 93,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1998
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
1999
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
2000
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
2001
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
2002
+  0,  0,  0, 93,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
2003
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
2004
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
2005
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
2006
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
2007
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
2008
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
2009
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
2010
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
2011
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
2012
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
2013
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
2014
+ 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92,  0,  0,  0,  0,
 
2015
+ 122, 122, 122, 122,  0, 152, 153, 153, 122, 122, 122, 122, 122, 122, 122, 122,
 
2016
+ 122, 122, 142, 123, 122, 122, 130, 130,  0,  0,  0,  0, 133, 97, 97,  0,
 
2017
+  0, 97, 97, 97, 97, 97, 97, 97, 97, 97,  0,  0,  0,  0,  0,  0,
 
2018
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 92,  0,
 
2019
+  0, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
 
2020
+ 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
 
2021
+ 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
 
2022
+ 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
 
2023
+ 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
 
2024
+ 154, 154, 154, 154,  0,  0,  0,  0,  0,  0,  0, 153, 153, 155, 155,  0,
 
2025
+  0, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
 
2026
+ 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
 
2027
+ 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
 
2028
+ 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
 
2029
+ 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
 
2030
+ 154, 154, 154, 154, 154, 154, 154,  0,  0,  0,  0, 156, 153, 153, 155,  0,
 
2031
+  0,  0,  0,  0,  0, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96,
 
2032
+ 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96,
 
2033
+ 96, 96, 96, 96, 96, 96, 96, 96, 96, 96,  0,  0,  0,  0,  0,  0,
 
2034
+  0, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98,
 
2035
+ 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98,
 
2036
+ 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98,
 
2037
+ 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98,
 
2038
+ 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98,
 
2039
+ 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98,  0,
 
2040
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
2041
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
2042
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
2043
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
2044
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
2045
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
2046
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
2047
+ 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98,
 
2048
+ 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98,  0,  0,  0,
 
2049
+ 130, 130, 130, 130, 130, 130, 130, 130, 130, 130,  0,  0,  0,  0,  0,  0,
 
2050
+  0, 94,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
2051
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
2052
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
2053
+ 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98,
 
2054
+ 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98,  0,  0,  0, 98,
 
2055
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
2056
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
2057
+  0,  0,  0, 97,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
2058
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
2059
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
2060
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
2061
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
2062
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
2063
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
2064
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
2065
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
2066
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
2067
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
2068
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
2069
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
2070
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
2071
+ 98, 98, 98, 98, 98,  0,  0,  0, 98, 98, 98, 98, 98, 98, 126, 126,
 
2072
+ 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 126, 126, 126, 98,
 
2073
+ 98, 126, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98,
 
2074
+ 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98,
 
2075
+ 98, 98, 98, 98, 126, 98, 98, 98, 98, 98, 98,  0,  0,  0, 97, 98,
 
2076
+ 98, 97, 97, 98,  0, 97, 98,  0, 98,  0,  0, 98, 98, 98,  0,  0,
 
2077
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
2078
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
2079
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
2080
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
2081
+ 110, 157, 110, 110, 157, 110, 110, 110, 157, 157, 110, 157, 110, 110, 157, 110,
 
2082
+ 110, 157, 157, 157, 157, 158, 110, 110, 110, 157, 110, 157, 157, 110, 110, 110,
 
2083
+ 158, 110, 157, 157, 157, 110, 110, 92, 110, 157, 110, 110, 158, 157, 110, 110,
 
2084
+ 110, 157, 110, 110, 110, 110, 110, 157, 110, 110, 157, 110, 110, 157, 110, 110,
 
2085
+ 110, 110, 110, 110, 159, 157, 110, 110, 110, 110, 110, 110, 110, 110, 110, 157,
 
2086
+ 157, 110, 110, 94, 157, 110, 110, 110, 110, 110, 159, 157, 157, 159, 158, 110,
 
2087
+ 110, 110, 110, 110, 110, 110, 157, 110, 110, 157, 110, 157, 157, 157, 110, 110,
 
2088
+ 110, 110, 157, 159, 110, 157, 159, 157, 110, 157, 110, 110, 110, 157, 157, 110,
 
2089
+ 110, 110, 110, 110, 110, 159, 157, 110, 110, 110, 157, 110, 110, 110, 110, 159,
 
2090
+ 157, 110, 157, 157, 110, 110, 110, 157, 157, 110, 157, 110, 158, 110, 110, 110,
 
2091
+ 110, 158, 157, 157, 110, 157, 110, 157, 159, 110, 157, 157, 157, 110, 110, 157,
 
2092
+ 157, 157, 110, 110, 157, 157, 110, 157, 110, 110, 110, 110, 157, 110, 110, 158,
 
2093
+ 110, 110, 110, 110, 158, 110, 110, 157, 157, 157, 110, 110, 110, 110, 157, 157,
 
2094
+ 110, 110, 110, 110, 110, 110, 110, 157, 110, 110, 110, 159, 110, 157, 110, 110,
 
2095
+ 110, 110, 110, 157, 157, 110, 158, 157, 110, 110, 110, 110, 110, 110, 110, 110,
 
2096
+ 110, 110, 110, 110, 110, 110, 110, 110, 157, 110, 110, 110, 110, 110, 157, 110,
 
2097
+ 110, 110, 157, 110, 157, 110, 110, 110, 110, 110, 110, 110, 110, 157, 110, 110,
 
2098
+ 110, 110, 157, 110, 110, 110, 110, 110, 110, 157, 110, 157, 110, 157, 158, 110,
 
2099
+ 110, 110, 157, 110, 157, 157, 157, 157, 157, 110, 157, 157, 110, 157, 110, 110,
 
2100
+ 110, 159, 110, 158, 157, 157, 157, 110, 157, 110, 110, 157, 157, 110, 110, 110,
 
2101
+ 157, 159, 110, 110, 157, 157, 157, 157, 110, 157, 110, 157, 157, 158, 110, 157,
 
2102
+ 158, 157, 159, 157, 110, 110, 157, 159, 159, 110, 157, 110, 110, 110, 110, 110,
 
2103
+ 157, 157, 157, 157, 159, 110, 110, 157, 110, 110, 110, 110, 110, 110, 110, 110,
 
2104
+ 157, 110, 157, 157, 110, 110, 110, 159, 158, 110, 110, 110, 110, 110, 92, 157,
 
2105
+ 157, 158, 110, 157, 157, 158, 157, 110, 110, 110, 110, 110, 110, 158, 110, 110,
 
2106
+ 110, 110, 110, 110, 157, 110, 110, 157, 110, 157, 157, 110, 110, 157, 157, 159,
 
2107
+ 110, 159, 110, 157, 110, 158, 110, 159, 110, 110, 158, 157, 110, 157, 158, 110,
 
2108
+ 157, 110, 158, 110, 110, 110, 159, 110, 110, 110, 157, 159, 110, 158, 110, 110,
 
2109
+ 110, 110, 110, 157, 157, 157, 110, 110, 110, 157, 157, 110, 110, 110, 110, 110,
 
2110
+ 110, 158, 158, 159, 110, 157, 110, 110, 110, 110, 110, 158, 110, 157, 158, 110,
 
2111
+ 110, 157, 157, 110, 110, 110, 110, 157, 110, 158, 110, 110, 157, 110, 92, 110,
 
2112
+ 110, 110, 110, 110, 157, 157, 110, 110, 158, 157, 160, 110, 110, 157, 157, 157,
 
2113
+ 110, 157, 157, 159, 110, 110, 157, 157, 110, 157, 157, 110, 157, 159, 110, 157,
 
2114
+ 157, 157, 110, 157, 157, 158, 157, 110, 157, 159, 157, 157, 110, 110, 158, 157,
 
2115
+ 110, 110, 157, 157, 157, 157, 110, 159, 159, 159, 157, 110, 110, 110, 158, 157,
 
2116
+ 110, 157, 110, 157, 110, 157, 110, 110, 110, 110, 110, 157, 157, 110, 110, 158,
 
2117
+ 110, 110, 110, 157, 110, 157, 110, 110, 157, 157, 110, 157, 157, 110, 110, 110,
 
2118
+ 157, 110, 157, 157, 157, 157, 157, 110, 157, 157, 158, 110, 157, 110, 110, 110,
 
2119
+ 110, 159, 110, 110, 157, 157, 110, 110, 110, 110, 110, 110, 157, 110, 157, 157,
 
2120
+ 157, 110, 110, 157, 110, 110, 110, 110, 110, 110, 159, 110, 110, 110, 157, 157,
 
2121
+ 110, 157, 157, 157, 157, 158, 110, 110, 157, 157, 159, 157, 159, 157, 157, 110,
 
2122
+ 159, 159, 110, 157, 157, 159, 157, 157, 157, 158, 157, 157, 159, 157, 110, 157,
 
2123
+ 110, 159, 110, 158, 159, 159, 110, 158, 158, 110, 110, 110, 110, 157, 157, 157,
 
2124
+ 157, 157, 110, 159, 159, 157, 159, 110, 110, 157, 110, 157, 157, 159, 157, 110,
 
2125
+ 110, 158, 158, 110, 110, 158, 159, 157, 157, 157, 110, 157, 157, 157, 157, 157,
 
2126
+ 157, 157, 157, 157, 157, 159, 110, 157, 110, 110, 157, 157, 110, 157, 157, 110,
 
2127
+ 110, 158, 157, 159, 157, 110, 157, 110, 159, 157, 159, 157, 110, 159, 110, 157,
 
2128
+ 157, 157, 157, 157, 110, 157, 110, 110, 110, 110, 157, 157, 159, 110, 110, 110,
 
2129
+ 157, 157, 158, 158, 110, 159, 157, 110, 157, 157, 157, 110, 158, 158, 110, 110,
 
2130
+ 159, 157, 158, 158, 157, 157, 157, 110, 157, 110, 158, 157, 157, 157, 110, 110,
 
2131
+ 159, 110, 110, 159, 157, 110, 110, 110, 157, 110, 157, 110, 157, 110, 157, 110,
 
2132
+ 157, 110, 157, 110, 157, 157, 157, 110, 110, 110, 110, 157, 157, 157, 110, 110,
 
2133
+ 157, 110, 159, 110, 110, 110, 110, 157, 110, 110, 110, 157, 110, 110, 110, 158,
 
2134
+ 110, 157, 110, 110, 110, 110, 110, 157, 110, 110, 110, 110, 110, 110, 110, 110,
 
2135
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 157, 157, 110, 110, 110,
 
2136
+ 157, 157, 110, 110, 157, 157, 157, 158, 110, 157, 110, 110, 110, 110, 110, 110,
 
2137
+ 158, 157, 157, 110, 157, 157, 157, 157, 157, 110, 110, 110, 110, 157, 110, 157,
 
2138
+ 110, 110, 157, 110, 110, 157, 157, 110, 110, 159, 110, 110, 110, 110, 159, 110,
 
2139
+ 157, 157, 110, 110, 157, 110, 110, 110, 110, 110, 157, 110, 110, 157, 110, 110,
 
2140
+ 110, 157, 110, 110, 157, 110, 110, 157, 157, 110, 157, 110, 110, 157, 110, 110,
 
2141
+ 157, 110, 110, 110, 110, 157, 157, 157, 157, 110, 110, 157, 110, 157, 110, 157,
 
2142
+ 110, 110, 158, 110, 110, 110, 157, 110, 158, 110, 110, 158, 110, 110, 157, 110,
 
2143
+ 157, 157, 110, 110, 157, 110, 110, 110, 157, 110, 110, 110, 157, 110, 110, 159,
 
2144
+ 110, 110, 110, 110, 110, 110, 157, 110, 157, 159, 110, 110, 157, 110, 110, 110,
 
2145
+ 158, 110, 110, 110, 110, 110, 157, 110, 110, 157, 110, 110, 110, 159, 110, 157,
 
2146
+ 110, 110, 157, 110, 110, 110, 159, 110, 158, 157, 110, 157, 110, 110, 110, 110,
 
2147
+ 110, 110, 110, 110, 157, 110, 110, 110, 110, 110, 110, 110, 110, 110, 157, 110,
 
2148
+ 110, 110, 110, 157, 110, 157, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
2149
+ 157, 110, 157, 158, 110, 110, 110, 110, 110, 157, 110, 110, 110, 157, 110, 157,
 
2150
+ 157, 157, 157, 110, 110, 110, 110, 110, 110, 157, 110, 157, 110, 157, 157, 110,
 
2151
+ 110, 110, 110, 110, 110, 110, 157, 110, 157, 110, 110, 110, 157, 110, 110, 110,
 
2152
+ 157, 110, 110, 157, 110, 110, 110, 110, 157, 157, 110, 110, 110, 110, 110, 110,
 
2153
+ 159, 157, 110, 110, 110, 110, 110, 110, 110, 157, 157, 110, 157, 110, 157, 110,
 
2154
+ 110, 110, 157, 110, 110, 110, 157, 110, 110, 110, 110, 110, 110, 157, 157, 110,
 
2155
+ 110, 110, 110, 158, 110, 110, 157, 110, 110, 110, 110, 157, 158, 157, 157, 157,
 
2156
+ 157, 158, 110, 157, 157, 110, 110, 110, 110, 157, 110, 110, 157, 110, 110, 157,
 
2157
+ 110, 110, 110, 110, 110, 157, 157, 110, 110, 110, 110, 110, 157, 110, 110, 110,
 
2158
+ 110, 110, 110, 110, 110, 157, 110, 110, 110, 110, 158, 157, 157, 110, 110, 110,
 
2159
+ 110, 157, 157, 157, 110, 157, 110, 110, 159, 110, 110, 157, 157, 110, 110, 110,
 
2160
+ 157, 157, 110, 157, 158, 110, 110, 110, 92, 157, 110, 157, 110, 110, 110, 157,
 
2161
+ 110, 110, 110, 110, 110, 110, 110, 158, 157, 110, 157, 110, 157, 110, 110, 110,
 
2162
+ 157, 110, 159, 157, 110, 157, 110, 157, 110, 157, 110, 110, 110, 110, 110, 158,
 
2163
+ 157, 110, 110, 157, 110, 110, 110, 157, 157, 110, 110, 157, 157, 159, 157, 110,
 
2164
+ 110, 157, 110, 110, 110, 157, 110, 110, 110, 110, 110, 110, 110, 110, 157, 110,
 
2165
+ 157, 110, 110, 158, 157, 110, 110, 157, 110, 110, 110, 157, 157, 157, 92, 110,
 
2166
+ 110, 110, 157, 110, 110, 157, 157, 110, 110, 157, 157, 110, 110, 110, 110, 157,
 
2167
+ 158, 110, 157, 157, 157, 110, 110, 110, 110, 159, 159, 110, 110, 157, 110, 110,
 
2168
+ 110, 110, 158, 110, 157, 110, 157, 110, 110, 158, 110, 158, 110, 110, 157, 110,
 
2169
+ 110, 159, 110, 110, 158, 110, 110, 110, 157, 110, 110, 157, 110, 157, 157, 157,
 
2170
+ 110, 110, 110, 110, 110, 110, 110, 157, 159, 110, 110, 110, 157, 157, 110, 110,
 
2171
+ 110, 110, 157, 110, 110, 157, 110, 110, 110, 110, 110, 157, 157, 157, 157, 92,
 
2172
+ 92, 110, 110, 157, 110, 157, 157, 110, 110, 110, 157, 110, 158, 110, 110, 92,
 
2173
+ 110, 110, 158, 157, 157, 159, 157, 110, 157, 110, 157, 110, 158, 110, 157, 157,
 
2174
+ 110, 157, 157, 157, 157, 157, 110, 157, 159, 110, 110, 158, 157, 110, 158, 157,
 
2175
+ 157, 158, 157, 158, 157, 110, 158, 157, 157, 110, 110, 157, 110, 157, 110, 157,
 
2176
+ 110, 110, 110, 157, 157, 110, 110, 159, 158, 110, 110, 157, 110, 110, 157, 157,
 
2177
+ 110, 110, 157, 157, 157, 157, 157, 157, 157, 159, 159, 110, 110, 110, 110, 110,
 
2178
+ 157, 157, 157, 110, 159, 157, 157, 110, 157, 110, 157, 110, 157, 110, 110, 157,
 
2179
+ 157, 110, 110, 110, 157, 110, 110, 110, 110, 110, 110, 158, 110, 110, 157, 110,
 
2180
+ 110, 110, 159, 110, 110, 157, 157, 159, 157, 157, 157, 157, 159, 157, 159, 110,
 
2181
+ 110, 157, 110, 110, 110, 157, 159, 158, 157, 110, 157, 110, 157, 157, 110, 110,
 
2182
+ 157, 110, 110, 161, 110, 157, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
2183
+ 157, 110, 110, 110, 110, 157, 110, 157, 110, 110, 110, 157, 110, 157, 110, 110,
 
2184
+ 110, 110, 110, 110, 110, 110, 110, 158, 110, 110, 157, 110, 110, 110, 110, 157,
 
2185
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 159, 110, 110, 110, 157,
 
2186
+ 110, 157, 110, 110, 157, 110, 157, 157, 157, 110, 110, 110, 110, 158, 110, 110,
 
2187
+ 110, 110, 110, 157, 110, 110, 110, 110, 110, 110, 157, 157, 110, 110, 110, 110,
 
2188
+ 110, 110, 110, 157, 157, 157, 110, 157, 157, 157, 110, 110, 110, 157, 158, 110,
 
2189
+ 159, 157, 110, 110, 110, 110, 110, 110, 110, 157, 110, 157, 110, 110, 110, 110,
 
2190
+ 158, 110, 158, 157, 110, 157, 110, 157, 157, 110, 157, 158, 110, 157, 110, 110,
 
2191
+ 110, 110, 110, 157, 157, 157, 157, 157, 157, 157, 110, 110, 157, 157, 158, 157,
 
2192
+ 157, 110, 110, 110, 157, 157, 110, 110, 110, 159, 110, 157, 157, 110, 110, 110,
 
2193
+ 157, 157, 158, 110, 110, 110, 110, 110, 110, 157, 157, 159, 157, 157, 110, 110,
 
2194
+ 157, 110, 157, 157, 157, 110, 157, 110, 157, 158, 110, 110, 110, 110, 110, 157,
 
2195
+ 110, 157, 159, 110, 157, 110, 110, 157, 157, 110, 157, 157, 110, 110, 92, 110,
 
2196
+ 110, 157, 157, 110, 110, 157, 110, 110, 158, 110, 110, 110, 157, 110, 110, 110,
 
2197
+ 159, 110, 157, 110, 110, 110, 110, 110, 157, 110, 157, 157, 110, 110, 110, 110,
 
2198
+ 110, 159, 159, 110, 110, 110, 110, 110, 110, 157, 110, 159, 159, 110, 110, 110,
 
2199
+ 159, 110, 110, 157, 110, 157, 157, 157, 157, 110, 110, 110, 157, 157, 157, 110,
 
2200
+ 110, 110, 157, 157, 157, 110, 159, 110, 157, 159, 157, 157, 157, 110, 110, 157,
 
2201
+ 110, 159, 110, 157, 110, 110, 110, 110, 110, 157, 110, 110, 157, 110, 157, 110,
 
2202
+ 110, 110, 110, 157, 157, 110, 110, 110, 157, 110, 157, 110, 158, 110, 158, 157,
 
2203
+ 110, 110, 159, 110, 159, 110, 110, 157, 157, 110, 110, 110, 157, 157, 157, 157,
 
2204
+ 157, 110, 110, 157, 110, 110, 157, 159, 110, 110, 157, 157, 157, 158, 157, 157,
 
2205
+ 157, 110, 157, 110, 157, 157, 157, 110, 110, 110, 157, 110, 159, 157, 157, 110,
 
2206
+ 110, 110, 159, 159, 158, 157, 157, 110, 110, 157, 110, 110, 110, 110, 110, 110,
 
2207
+ 157, 110, 110, 110, 110, 157, 157, 110, 157, 157, 157, 110, 110, 159, 157, 110,
 
2208
+ 157, 159, 110, 110, 110, 159, 157, 157, 110, 157, 157, 157, 110, 110, 110, 110,
 
2209
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 157, 110,
 
2210
+ 110, 110, 110, 110, 157, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 157,
 
2211
+ 110, 110, 110, 157, 110, 110, 110, 110, 157, 157, 110, 110, 110, 110, 110, 110,
 
2212
+ 110, 110, 157, 110, 159, 157, 110, 110, 157, 110, 157, 110, 110, 110, 157, 157,
 
2213
+ 157, 157, 157, 110, 110, 110, 110, 110, 157, 110, 157, 110, 110, 157, 92, 110,
 
2214
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 157, 110, 110, 110, 110, 157,
 
2215
+ 110, 110, 110, 110, 157, 110, 157, 157, 110, 110, 157, 110, 157, 110, 157, 110,
 
2216
+ 110, 110, 157, 110, 110, 110, 110, 110, 157, 110, 110, 110, 157, 110, 110, 110,
 
2217
+ 157, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 157, 110, 110,
 
2218
+ 110, 157, 110, 110, 157, 157, 157, 157, 110, 157, 157, 157, 110, 110, 157, 110,
 
2219
+ 157, 110, 157, 110, 157, 110, 157, 110, 110, 110, 157, 159, 157, 159, 157, 157,
 
2220
+ 110, 159, 157, 110, 110, 110, 159, 110, 110, 157, 110, 110, 158, 157, 157, 110,
 
2221
+ 92, 110, 110, 110, 110, 157, 157, 110, 110, 157, 110, 159, 157, 157, 157, 158,
 
2222
+ 110, 110, 110, 157, 110, 157, 110, 110, 157, 110, 157, 157, 157, 157, 110, 110,
 
2223
+ 110, 110, 110, 110, 110, 157, 157, 157, 157, 110, 157, 110, 110, 110, 110, 110,
 
2224
+ 110, 157, 110, 159, 110, 157, 157, 157, 110, 110, 157, 157, 157, 159, 110, 110,
 
2225
+ 110, 110, 110, 110, 110, 110, 157, 157, 157, 157, 157, 110, 110, 110, 157, 110,
 
2226
+ 157, 157, 158, 157, 157, 110, 110, 110, 157, 110, 110, 159, 157, 110, 157, 110,
 
2227
+ 157, 110, 157, 110, 110, 110, 158, 110, 110, 110, 157, 110, 158, 157, 159, 110,
 
2228
+ 110, 159, 110, 157, 110, 110, 157, 110, 157, 157, 110, 110, 110, 110, 110, 158,
 
2229
+ 110, 157, 159, 110, 110, 157, 157, 110, 110, 159, 159, 110, 157, 110, 110, 159,
 
2230
+ 157, 110, 110, 157, 110, 159, 110, 110, 157, 110, 110, 157, 110, 158, 110, 110,
 
2231
+ 110, 110, 110, 110, 110, 158, 110, 110, 157, 110, 158, 110, 157, 110, 110, 158,
 
2232
+ 110, 159, 110, 110, 110, 110, 110, 157, 157, 110, 157, 110, 157, 110, 110, 110,
 
2233
+ 157, 157, 110, 110, 157, 158, 157, 110, 157, 110, 157, 157, 157, 159, 157, 157,
 
2234
+ 157, 110, 110, 157, 158, 157, 110, 110, 110, 157, 157, 157, 110, 110, 110, 158,
 
2235
+ 110, 110, 157, 110, 110, 157, 158, 158, 110, 157, 157, 157, 158, 159, 157, 157,
 
2236
+ 157, 110, 157, 159, 110, 110, 110, 110, 157, 157, 110, 158, 110, 110, 110, 110,
 
2237
+ 157, 157, 110, 110, 110, 110, 157, 158, 158, 110, 110, 159, 157, 157, 157, 157,
 
2238
+ 110, 110, 110, 158, 157, 157, 110, 159, 157, 110, 110, 157, 159, 158, 157, 110,
 
2239
+ 157, 157, 110, 157, 157, 110, 158, 110, 157, 157, 157, 157, 110, 110, 110, 110,
 
2240
+ 157, 157, 110, 157, 157, 157, 157, 110, 157, 110, 157, 110, 110, 157, 157, 110,
 
2241
+ 110, 110, 110, 110, 110, 110, 157, 157, 110, 157, 110, 110, 110, 110, 110, 110,
 
2242
+ 157, 157, 110, 157, 110, 157, 157, 110, 110, 110, 110, 110, 110, 157, 110, 110,
 
2243
+ 159, 110, 110, 158, 110, 110, 110, 157, 158, 110, 110, 110, 110, 110, 110, 110,
 
2244
+ 110, 110, 110, 110, 110, 159, 157, 110, 110, 110, 110, 110, 110, 110, 157, 110,
 
2245
+ 157, 110, 110, 110, 157, 157, 157, 110, 110, 110, 110, 110, 110, 110, 157, 110,
 
2246
+ 110, 157, 110, 110, 158, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
2247
+ 110, 110, 110, 157, 110, 110, 110, 110, 110, 110, 110, 157, 110, 110, 110, 110,
 
2248
+ 110, 110, 110, 157, 110, 110, 110, 110, 110, 110, 110, 110, 110, 157, 110, 110,
 
2249
+ 110, 110, 110, 110, 110, 110, 110, 110, 159, 158, 159, 157, 157, 159, 157, 110,
 
2250
+ 157, 159, 110, 157, 110, 157, 110, 157, 159, 110, 110, 110, 110, 110, 110, 158,
 
2251
+ 157, 157, 159, 110, 157, 110, 110, 158, 157, 157, 159, 157, 158, 157, 157, 110,
 
2252
+ 158, 159, 110, 110, 157, 157, 159, 159, 110, 110, 158, 110, 110, 110, 159, 157,
 
2253
+ 110, 159, 158, 110, 110, 110, 110, 159, 110, 158, 110, 158, 110, 157, 157, 157,
 
2254
+ 159, 157, 157, 158, 158, 157, 110, 110, 157, 157, 158, 110, 158, 157, 110, 159,
 
2255
+ 158, 110, 157, 110, 158, 110, 158, 157, 110, 110, 110, 110, 110, 110, 158, 110,
 
2256
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 157, 157, 110, 157, 157, 110, 157,
 
2257
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 157,
 
2258
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 157, 110, 110, 110,
 
2259
+ 110, 157, 110, 157, 110, 110, 110, 110, 110, 110, 110, 110, 110, 157, 110, 110,
 
2260
+ 157, 110, 157, 158, 110, 110, 110, 157, 158, 159, 110, 110, 110, 110, 157, 157,
 
2261
+ 110, 110, 157, 159, 110, 110, 157, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
2262
+ 110, 110, 110, 110, 110, 157, 110, 110, 157, 110, 157, 157, 158, 157, 110, 110,
 
2263
+ 110, 110, 157, 110, 110, 110, 110, 157, 110, 110, 110, 110, 157, 110, 110, 110,
 
2264
+ 110, 157, 110, 158, 110, 157, 157, 110, 157, 110, 110, 110, 110, 157, 157, 110,
 
2265
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 157, 157, 110,
 
2266
+ 110, 110, 110, 110, 110, 110, 110, 110, 157, 110, 110, 110, 110, 110, 110, 110,
 
2267
+ 158, 110, 110, 110, 110, 157, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
2268
+ 110, 110, 110, 110, 110, 110, 110, 159, 110, 110, 110, 110, 159, 157, 157, 157,
 
2269
+ 110, 157, 157, 157, 110, 158, 110, 110, 110, 110, 110, 110, 157, 158, 110, 110,
 
2270
+ 110, 110, 110, 110, 110, 157, 157, 110, 110, 158, 158, 110, 110, 110, 110, 110,
 
2271
+ 157, 110, 157, 157, 159, 110, 157, 110, 110, 110, 110, 157, 110, 110, 157, 110,
 
2272
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 158, 157, 110,
 
2273
+ 157, 157, 157, 110, 157, 110, 110, 110, 110, 110, 157, 157, 110, 110, 110, 157,
 
2274
+ 110, 157, 110, 157, 110, 110, 110, 110, 110, 158, 110, 110, 110, 110, 110, 110,
 
2275
+ 110, 110, 110, 157, 110, 158, 110, 110, 110, 110, 110, 110, 110, 110, 110, 157,
 
2276
+ 110, 110, 110, 158, 157, 110, 92, 159, 110, 110, 110, 110, 110, 110, 157, 110,
 
2277
+ 110, 110, 159, 157, 110, 158, 157, 157, 110, 110, 158, 110, 110, 110, 110, 159,
 
2278
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 157, 110, 110, 110, 110, 110, 110,
 
2279
+ 157, 110, 110, 110, 110, 110, 110, 110, 110, 110, 157, 110, 110, 110, 110, 110,
 
2280
+ 110, 110, 110, 110, 110, 110, 157, 157, 110, 110, 110, 157, 110, 157, 157, 110,
 
2281
+ 110, 110, 110, 157, 157, 157, 110, 110, 158, 110, 110, 157, 110, 157, 110, 157,
 
2282
+ 157, 110, 110, 110, 157, 110, 110, 110, 110, 110, 157, 158, 157, 110, 157, 158,
 
2283
+ 110, 110, 110, 110, 110, 110, 110, 110, 158, 157, 110, 157, 110, 110, 110, 110,
 
2284
+ 110, 110, 110, 110, 110, 110, 110, 110, 159, 157, 110, 157, 110, 110, 110, 158,
 
2285
+ 110, 110, 110, 157, 110, 157, 157, 110, 110, 157, 110, 157, 110, 110, 110, 110,
 
2286
+ 110, 110, 157, 110, 110, 110, 110, 110, 110, 110, 159, 157, 110, 157, 110, 110,
 
2287
+ 110, 157, 110, 159, 159, 110, 110, 157, 157, 158, 110, 110, 110, 157, 159, 157,
 
2288
+ 110, 157, 157, 157, 110, 157, 110, 110, 110, 157, 110, 157, 110, 110, 110, 110,
 
2289
+ 157, 157, 157, 110, 110, 157, 110, 157, 110, 110, 110, 157, 157, 157, 110, 110,
 
2290
+ 110, 110, 158, 110, 110, 110, 110, 157, 157, 110, 110, 110, 110, 157, 110, 110,
 
2291
+ 110, 110, 110, 110, 157, 110, 110, 157, 110, 110, 110, 110, 110, 110, 157, 110,
 
2292
+ 157, 110, 157, 110, 110, 157, 110, 157, 110, 157, 110, 157, 110, 110, 110, 92,
 
2293
+ 157, 157, 110, 157, 157, 110, 157, 158, 110, 110, 110, 110, 158, 110, 159, 110,
 
2294
+ 157, 110, 157, 110, 110, 110, 157, 110, 110, 157, 110, 110, 110, 157, 110, 159,
 
2295
+ 110, 157, 110, 110, 110, 110, 110, 110, 157, 110, 110, 110, 110, 110, 110, 110,
 
2296
+ 159, 110, 110, 157, 157, 110, 110, 157, 157, 157, 110, 110, 157, 110, 110, 110,
 
2297
+ 110, 157, 110, 157, 110, 157, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
2298
+ 110, 110, 158, 110, 110, 157, 157, 110, 110, 110, 110, 157, 110, 110, 110, 110,
 
2299
+ 110, 110, 157, 157, 158, 110, 157, 157, 110, 157, 158, 110, 157, 110, 157, 158,
 
2300
+ 110, 110, 110, 110, 110, 157, 110, 110, 110, 157, 110, 159, 110, 110, 110, 110,
 
2301
+ 157, 110, 110, 110, 157, 110, 110, 110, 110, 110, 157, 110, 110, 157, 110, 159,
 
2302
+ 110, 110, 110, 110, 110, 157, 110, 110, 110, 159, 157, 110, 157, 110, 157, 110,
 
2303
+ 110, 110, 110, 110, 157, 110, 110, 157, 110, 110, 157, 110, 110, 110, 110, 110,
 
2304
+ 110, 159, 157, 110, 157, 110, 157, 110, 110, 157, 110, 110, 110, 110, 110, 157,
 
2305
+ 110, 110, 110, 110, 157, 157, 110, 110, 110, 110, 110, 110, 157, 110, 110, 110,
 
2306
+ 157, 110, 110, 110, 110, 110, 110, 157, 110, 110, 110, 110, 110, 110, 110, 110,
 
2307
+ 159, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 157, 110, 157,
 
2308
+ 110, 110, 110, 110, 110, 110, 110, 110, 157, 157, 110, 110, 110, 157, 110, 110,
 
2309
+ 159, 157, 157, 110, 110, 110, 110, 110, 110, 157, 158, 157, 110, 110, 157, 110,
 
2310
+ 110, 110, 110, 110, 110, 157, 110, 110, 110, 110, 158, 157, 157, 110, 110, 110,
 
2311
+ 157, 110, 110, 110, 157, 157, 110, 157, 157, 157, 157, 157, 158, 157, 110, 157,
 
2312
+ 157, 110, 157, 157, 159, 157, 157, 110, 110, 110, 157, 110, 157, 157, 110, 110,
 
2313
+ 157, 110, 110, 110, 110, 157, 110, 110, 110, 157, 157, 110, 110, 110, 157, 110,
 
2314
+ 110, 110, 110, 110, 157, 158, 110, 157, 157, 159, 110, 110, 159, 157, 110, 157,
 
2315
+ 110, 157, 110, 157, 157, 110, 110, 110, 110, 110, 157, 157, 110, 110, 157, 110,
 
2316
+ 110, 110, 157, 157, 157, 157, 110, 157, 157, 157, 157, 157, 110, 110, 157, 110,
 
2317
+ 157, 157, 110, 110, 110, 157, 157, 157, 110, 110, 110, 110, 157, 157, 157, 157,
 
2318
+ 110, 110, 157, 157, 158, 110, 110, 110, 157, 157, 157, 159, 159, 110, 110, 110,
 
2319
+ 157, 110, 110, 157, 157, 157, 110, 157, 110, 157, 157, 110, 110, 157, 110, 157,
 
2320
+ 110, 157, 110, 157, 157, 110, 110, 110, 110, 157, 157, 157, 110, 110, 110, 110,
 
2321
+ 110, 157, 157, 110, 157, 110, 157, 157, 157, 157, 110, 158, 157, 110, 110, 110,
 
2322
+ 110, 110, 157, 110, 110, 110, 110, 92, 110, 110, 110, 110, 110, 110, 110, 110,
 
2323
+ 110, 110, 110, 110, 157, 157, 110, 110, 157, 110, 110, 110, 157, 110, 110, 110,
 
2324
+ 157, 157, 157, 157, 110, 110, 110, 110, 110, 110, 110, 157, 157, 110, 157, 157,
 
2325
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 157, 110, 110, 110, 110, 158, 110,
 
2326
+ 110, 110, 157, 110, 157, 110, 157, 110, 110, 157, 110, 110, 110, 110, 157, 157,
 
2327
+ 110, 157, 110, 110, 110, 157, 157, 110, 110, 110, 110, 157, 110, 157, 110, 157,
 
2328
+ 157, 110, 110, 110, 110, 110, 157, 159, 157, 157, 110, 110, 157, 157, 110, 110,
 
2329
+ 110, 110, 110, 157, 110, 110, 110, 110, 110, 110, 110, 110, 92, 110, 110, 110,
 
2330
+ 110, 92, 110, 157, 157, 157, 110, 110, 110, 157, 158, 110, 110, 110, 157, 157,
 
2331
+ 110, 158, 157, 110, 110, 110, 110, 110, 157, 110, 157, 110, 110, 110, 110, 110,
 
2332
+ 157, 110, 157, 157, 110, 110, 110, 110, 110, 158, 110, 157, 157, 92, 110, 158,
 
2333
+ 110, 110, 157, 157, 110, 110, 157, 110, 110, 110, 110, 110, 110, 158, 110, 157,
 
2334
+ 110, 110, 159, 110, 110, 110, 110, 110, 110, 157, 157, 157, 110, 110, 157, 110,
 
2335
+ 110, 158, 158, 110, 110, 110, 110, 157, 110, 110, 110, 110, 110, 110, 110, 157,
 
2336
+ 110, 110, 110, 159, 110, 110, 157, 110, 157, 157, 110, 110, 110, 110, 110, 110,
 
2337
+ 110, 157, 110, 110, 110, 159, 157, 110, 110, 110, 110, 110, 110, 158, 110, 110,
 
2338
+ 110, 110, 110, 110, 110, 110, 110, 157, 157, 110, 110, 110, 110, 110, 110, 110,
 
2339
+ 110, 110, 110, 157, 110, 157, 157, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
2340
+ 110, 110, 157, 157, 110, 110, 110, 110, 110, 157, 157, 157, 110, 110, 157, 157,
 
2341
+ 110, 110, 110, 157, 157, 110, 157, 110, 110, 110, 157, 110, 110, 110, 110, 110,
 
2342
+ 110, 110, 110, 110, 157, 110, 110, 110, 110, 157, 158, 110, 110, 110, 110, 110,
 
2343
+ 110, 110, 157, 157, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 158,
 
2344
+ 110, 110, 110, 157, 157, 157, 110, 110, 157, 110, 157, 157, 157, 157, 110, 159,
 
2345
+ 158, 110, 159, 157, 110, 157, 157, 110, 157, 157, 157, 157, 157, 110, 110, 110,
 
2346
+ 158, 157, 110, 157, 157, 157, 110, 159, 110, 157, 157, 110, 110, 110, 110, 110,
 
2347
+ 158, 157, 110, 110, 110, 159, 110, 110, 157, 110, 110, 110, 110, 110, 159, 110,
 
2348
+ 110, 157, 157, 110, 110, 110, 92, 110, 110, 110, 110, 110, 110, 158, 110, 159,
 
2349
+ 110, 157, 157, 110, 158, 157, 110, 157, 110, 158, 158, 158, 158, 110, 110, 110,
 
2350
+ 157, 110, 110, 110, 158, 157, 157, 157, 110, 157, 110, 110, 110, 157, 110, 110,
 
2351
+ 110, 157, 110, 158, 158, 157, 110, 110, 110, 159, 110, 158, 157, 157, 157, 110,
 
2352
+ 157, 110, 110, 110, 157, 110, 159, 110, 110, 157, 157, 157, 110, 159, 110, 157,
 
2353
+ 110, 157, 157, 157, 110, 157, 110, 158, 110, 110, 110, 157, 110, 110, 158, 110,
 
2354
+ 110, 110, 110, 159, 110, 157, 110, 157, 110, 110, 110, 158, 110, 159, 110, 158,
 
2355
+ 157, 110, 110, 158, 110, 110, 110, 110, 110, 110, 110, 110, 157, 157, 110, 157,
 
2356
+ 110, 159, 159, 110, 110, 159, 157, 157, 157, 110, 110, 110, 158, 110, 110, 157,
 
2357
+ 157, 110, 159, 110, 157, 110, 110, 110, 157, 110, 159, 110, 157, 110, 110, 157,
 
2358
+ 110, 157, 110, 110, 157, 110, 110, 158, 157, 110, 110, 157, 157, 110, 110, 110,
 
2359
+ 110, 157, 110, 110, 110, 158, 110, 110, 157, 110, 110, 157, 157, 157, 110, 157,
 
2360
+ 110, 157, 157, 110, 110, 157, 157, 110, 110, 110, 110, 110, 110, 157, 157, 157,
 
2361
+ 157, 110, 110, 110, 157, 157, 110, 157, 110, 110, 110, 110, 110, 110, 157, 110,
 
2362
+ 157, 110, 110, 110, 157, 157, 110, 110, 157, 157, 110, 110, 110, 157, 110, 110,
 
2363
+ 157, 110, 110, 110, 110, 157, 110, 110, 110, 157, 110, 157, 157, 110, 157, 157,
 
2364
+ 110, 157, 110, 110, 110, 157, 110, 110, 157, 110, 110, 110, 157, 110, 157, 110,
 
2365
+ 110, 110, 157, 110, 110, 110, 157, 110, 157, 158, 110, 157, 157, 110, 157, 110,
 
2366
+ 110, 110, 157, 110, 110, 110, 157, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
2367
+ 110, 157, 157, 110, 110, 110, 159, 157, 157, 110, 110, 110, 110, 157, 110, 159,
 
2368
+ 110, 157, 157, 110, 110, 158, 110, 159, 110, 157, 157, 110, 157, 110, 110, 110,
 
2369
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 157, 110, 157, 157, 157, 157, 110,
 
2370
+ 110, 110, 110, 157, 110, 110, 110, 110, 110, 110, 157, 110, 110, 110, 110, 110,
 
2371
+ 157, 157, 157, 110, 110, 110, 110, 110, 110, 110, 110, 110, 92, 110, 110, 110,
 
2372
+ 110, 157, 110, 110, 110, 110, 157, 157, 110, 157, 110, 159, 110, 157, 110, 110,
 
2373
+ 110, 92, 110, 110, 110, 110, 110, 110, 157, 110, 157, 110, 110, 110, 157, 110,
 
2374
+ 157, 110, 110, 110, 110, 110, 110, 157, 157, 110, 158, 110, 110, 110, 110, 157,
 
2375
+ 159, 157, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
2376
+ 110, 157, 110, 110, 157, 110, 157, 110, 157, 110, 157, 110, 110, 110, 110, 110,
 
2377
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 157, 110,
 
2378
+ 157, 110, 157, 110, 157, 157, 110, 110, 110, 157, 157, 157, 110, 157, 157, 110,
 
2379
+ 110, 110, 157, 110, 110, 157, 157, 110, 110, 157, 157, 157, 110, 110, 110, 158,
 
2380
+ 159, 110, 157, 110, 157, 110, 157, 110, 110, 110, 157, 157, 157, 110, 110, 110,
 
2381
+ 110, 157, 110, 110, 157, 110, 157, 157, 157, 110, 110, 110, 110, 157, 110, 110,
 
2382
+ 110, 157, 110, 110, 157, 158, 110, 110, 157, 110, 157, 157, 110, 110, 157, 110,
 
2383
+ 157, 157, 110, 110, 110, 110, 110, 157, 157, 110, 157, 110, 110, 157, 110, 110,
 
2384
+ 110, 110, 110, 159, 110, 110, 157, 110, 159, 110, 110, 110, 110, 110, 110, 110,
 
2385
+ 157, 110, 110, 92, 110, 110, 110, 110, 110, 92, 110, 110, 110, 157, 110, 157,
 
2386
+ 110, 110, 110, 110, 110, 157, 110, 110, 110, 157, 110, 157, 110, 157, 110, 157,
 
2387
+ 110, 110, 157, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 158, 110,
 
2388
+ 110, 110, 110, 157, 157, 110, 110, 110, 157, 110, 110, 110, 157, 157, 157, 157,
 
2389
+ 157, 157, 157, 110, 110, 157, 110, 110, 110, 110, 110, 110, 157, 110, 110, 110,
 
2390
+ 110, 157, 157, 110, 110, 157, 157, 157, 110, 110, 110, 110, 94, 110, 157, 157,
 
2391
+ 110, 110, 110, 110, 157, 110, 110, 110, 110, 157, 157, 110, 110, 92, 110, 110,
 
2392
+ 110, 110, 110, 110, 110, 110, 110, 110, 158, 110, 110, 157, 157, 157, 110, 157,
 
2393
+ 157, 110, 157, 110, 110, 110, 158, 110, 157, 110, 110, 110, 110, 110, 157, 110,
 
2394
+ 157, 110, 110, 157, 110, 110, 159, 110, 110, 110, 110, 110, 157, 110, 110, 110,
 
2395
+ 110, 110, 157, 110, 110, 110, 157, 110, 157, 110, 110, 110, 110, 110, 157, 110,
 
2396
+ 110, 110, 110, 110, 157, 158, 157, 110, 110, 110, 157, 110, 110, 110, 157, 110,
 
2397
+ 110, 110, 157, 110, 110, 110, 110, 110, 110, 110, 110, 157, 110, 158, 110, 110,
 
2398
+ 157, 157, 110, 110, 158, 110, 110, 110, 110, 110, 157, 110, 157, 157, 110, 110,
 
2399
+ 159, 110, 157, 157, 110, 110, 110, 110, 110, 110, 157, 158, 110, 110, 157, 157,
 
2400
+ 110, 110, 110, 110, 157, 110, 110, 110, 110, 110, 110, 110, 110, 157, 157, 110,
 
2401
+ 110, 110, 110, 110, 110, 157, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
2402
+ 157, 157, 157, 110, 110, 110, 157, 159, 157, 157, 110, 110, 110, 110, 157, 157,
 
2403
+ 110, 157, 110, 110, 110, 157, 157, 157, 157, 110, 110, 157, 157, 157, 110, 157,
 
2404
+ 157, 110, 157, 157, 110, 157, 110, 110, 110, 110, 110, 157, 110, 158, 110, 110,
 
2405
+ 157, 110, 110, 110, 110, 157, 110, 110, 110, 157, 110, 110, 110, 110, 110, 110,
 
2406
+ 110, 158, 110, 110, 110, 110, 110, 110, 110, 157, 157, 110, 157, 110, 110, 157,
 
2407
+ 110, 110, 110, 110, 157, 110, 110, 157, 110, 110, 157, 110, 110, 157, 110, 110,
 
2408
+ 110, 110, 157, 110, 110, 157, 110, 110, 110, 157, 110, 159, 157, 110, 157, 110,
 
2409
+ 157, 110, 157, 110, 110, 157, 157, 110, 110, 157, 157, 157, 157, 158, 158, 110,
 
2410
+ 157, 110, 110, 157, 110, 157, 157, 157, 157, 110, 110, 157, 110, 157, 157, 110,
 
2411
+ 110, 157, 157, 110, 110, 110, 157, 110, 110, 110, 110, 110, 110, 110, 157, 110,
 
2412
+ 158, 157, 110, 110, 110, 157, 110, 110, 110, 110, 157, 157, 110, 158, 157, 110,
 
2413
+ 110, 110, 110, 157, 110, 157, 110, 157, 157, 110, 110, 157, 110, 158, 110, 157,
 
2414
+ 157, 157, 110, 158, 110, 157, 110, 110, 110, 110, 158, 110, 110, 110, 110, 110,
 
2415
+ 110, 110, 110, 110, 157, 110, 158, 110, 157, 110, 110, 110, 110, 110, 110, 110,
 
2416
+ 110, 158, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 157, 157, 159, 157,
 
2417
+ 157, 157, 110, 110, 157, 158, 157, 110, 110, 110, 158, 157, 110, 159, 157, 110,
 
2418
+ 157, 110, 110, 157, 157, 158, 110, 110, 157, 110, 110, 110, 158, 157, 159, 110,
 
2419
+ 110, 110, 110, 110, 110, 159, 157, 92, 157, 110, 157, 157, 157, 110, 110, 110,
 
2420
+ 157, 159, 157, 158, 157, 110, 157, 110, 110, 110, 157, 110, 110, 110, 157, 110,
 
2421
+ 110, 157, 110, 110, 157, 159, 157, 157, 157, 110, 158, 157, 110, 157, 110, 110,
 
2422
+ 110, 110, 159, 157, 157, 157, 110, 157, 157, 110, 92, 110, 110, 92, 110, 110,
 
2423
+ 110, 110, 92, 92, 110, 92, 92, 110, 110, 158, 110, 110, 157, 110, 157, 110,
 
2424
+ 157, 157, 157, 110, 110, 110, 157, 157, 157, 110, 157, 92, 110, 110, 157, 161,
 
2425
+ 110, 158, 157, 110, 157, 157, 157, 159, 110, 110, 110, 110, 110, 157, 157, 110,
 
2426
+ 110, 110, 110, 110, 110, 110, 92, 92, 110, 110, 157, 157, 110, 110, 110, 110,
 
2427
+ 110, 110, 110, 157, 110, 110, 157, 110, 110, 110, 110, 157, 110, 157, 110, 110,
 
2428
+ 157, 157, 110, 157, 157, 157, 157, 157, 110, 157, 157, 157, 110, 110, 157, 159,
 
2429
+ 157, 157, 157, 157, 157, 159, 110, 159, 110, 110, 110, 110, 110, 110, 157, 110,
 
2430
+ 110, 157, 110, 157, 157, 157, 157, 110, 157, 157, 157, 157, 157, 157, 157, 157,
 
2431
+ 157, 110, 157, 157, 157, 157, 157, 157, 110, 157, 157, 157, 157, 110, 157, 158,
 
2432
+ 110, 110, 157, 110, 157, 110, 110, 157, 157, 157, 110, 110, 157, 159, 110, 157,
 
2433
+ 157, 110, 157, 110, 158, 110, 157, 157, 110, 110, 110, 110, 110, 157, 157, 157,
 
2434
+ 110, 157, 110, 110, 110, 159, 157, 157, 157, 157, 157, 157, 110, 110, 110, 110,
 
2435
+ 110, 110, 110, 157, 110, 157, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
2436
+ 110, 157, 110, 157, 110, 110, 157, 110, 110, 110, 110, 110, 157, 157, 110, 110,
 
2437
+ 110, 110, 110, 110, 110, 110, 110, 157, 157, 110, 110, 110, 157, 157, 157, 110,
 
2438
+ 110, 110, 110, 110, 110, 110, 110, 157, 157, 110, 110, 157, 110, 110, 110, 110,
 
2439
+ 110, 110, 110, 110, 110, 157, 110, 110, 157, 110, 110, 157, 110, 157, 110, 110,
 
2440
+ 110, 110, 110, 110, 157, 110, 158, 110, 157, 110, 110, 110, 110, 157, 157, 110,
 
2441
+ 157, 157, 157, 157, 110, 110, 157, 157, 157, 157, 110, 110, 110, 157, 110, 110,
 
2442
+ 157, 110, 110, 110, 158, 110, 110, 110, 159, 110, 157, 110, 110, 110, 110, 157,
 
2443
+ 110, 110, 110, 110, 110, 157, 110, 157, 157, 157, 110, 157, 110, 110, 157, 110,
 
2444
+ 157, 159, 157, 157, 110, 157, 110, 110, 110, 157, 157, 110, 110, 157, 110, 110,
 
2445
+ 110, 110, 110, 157, 158, 110, 110, 110, 110, 110, 110, 157, 110, 110, 110, 110,
 
2446
+ 110, 110, 110, 157, 110, 110, 110, 157, 110, 110, 157, 110, 110, 110, 110, 158,
 
2447
+ 110, 110, 110, 157, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
2448
+ 110, 110, 110, 110, 110, 157, 157, 157, 110, 159, 157, 110, 157, 110, 110, 110,
 
2449
+ 157, 157, 157, 110, 157, 157, 110, 157, 110, 157, 157, 110, 158, 157, 157, 110,
 
2450
+ 157, 157, 157, 110, 110, 157, 157, 158, 110, 157, 110, 110, 157, 110, 110, 110,
 
2451
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 157, 157, 110, 157, 110,
 
2452
+ 110, 110, 110, 110, 110, 110, 110, 157, 110, 110, 157, 157, 110, 110, 110, 157,
 
2453
+ 110, 110, 110, 157, 110, 110, 157, 110, 110, 110, 110, 157, 157, 110, 110, 158,
 
2454
+ 159, 110, 159, 157, 157, 110, 157, 110, 157, 110, 157, 159, 157, 157, 159, 110,
 
2455
+ 157, 157, 110, 157, 110, 110, 157, 157, 157, 110, 157, 110, 110, 110, 158, 157,
 
2456
+ 159, 110, 157, 158, 110, 110, 159, 158, 157, 110, 110, 157, 110, 158, 157, 110,
 
2457
+ 110, 110, 110, 110, 110, 157, 157, 110, 110, 110, 157, 110, 110, 110, 110, 157,
 
2458
+ 110, 110, 110, 110, 110, 110, 157, 110, 110, 110, 157, 110, 110, 159, 158, 157,
 
2459
+ 158, 157, 110, 110, 110, 110, 157, 157, 110, 157, 157, 110, 110, 110, 157, 157,
 
2460
+ 157, 110, 110, 110, 110, 157, 110, 110, 110, 157, 110, 110, 110, 157, 110, 110,
 
2461
+ 110, 157, 110, 110, 110, 110, 110, 157, 110, 110, 110, 110, 110, 157, 110, 110,
 
2462
+ 110, 110, 110, 157, 110, 110, 157, 110, 110, 110, 157, 110, 110, 110, 110, 157,
 
2463
+ 110, 110, 110, 110, 158, 157, 110, 158, 110, 110, 110, 110, 110, 157, 158, 110,
 
2464
+ 110, 157, 110, 110, 110, 110, 110, 110, 110, 157, 157, 157, 157, 110, 157, 157,
 
2465
+ 110, 110, 110, 157, 110, 157, 110, 110, 157, 110, 157, 110, 110, 110, 110, 110,
 
2466
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 157, 110, 158, 110, 110, 158, 157,
 
2467
+ 110, 110, 110, 157, 157, 110, 157, 157, 157, 157, 110, 157, 110, 110, 110, 157,
 
2468
+ 110, 110, 110, 110, 157, 110, 157, 110, 110, 110, 110, 158, 110, 110, 110, 110,
 
2469
+ 157, 110, 110, 110, 110, 110, 157, 157, 157, 110, 110, 157, 110, 158, 110, 157,
 
2470
+ 110, 110, 157, 157, 110, 110, 157, 161, 110, 157, 157, 110, 157, 159, 110, 157,
 
2471
+ 110, 110, 157, 110, 157, 110, 157, 110, 110, 110, 110, 110, 110, 110, 157, 157,
 
2472
+ 110, 110, 157, 110, 110, 110, 157, 110, 110, 157, 110, 110, 110, 110, 110, 92,
 
2473
+ 92, 92, 92, 92, 158, 157, 157, 157, 157, 157, 110, 157, 110, 110, 159, 110,
 
2474
+ 158, 110, 110, 157, 157, 157, 110, 159, 110, 110, 157, 110, 157, 110, 157, 110,
 
2475
+ 110, 110, 157, 110, 157, 110, 157, 110, 157, 110, 110, 157, 157, 158, 157, 157,
 
2476
+ 157, 110, 157, 110, 110, 110, 110, 157, 157, 110, 110, 110, 110, 110, 157, 110,
 
2477
+ 110, 159, 110, 110, 110, 110, 157, 110, 157, 157, 110, 110, 157, 158, 110, 110,
 
2478
+ 157, 157, 110, 110, 110, 110, 157, 110, 110, 110, 157, 110, 157, 157, 110, 157,
 
2479
+ 110, 110, 110, 110, 157, 157, 110, 110, 110, 158, 157, 110, 110, 157, 110, 157,
 
2480
+ 159, 110, 157, 92, 92, 92, 92, 92, 92, 92, 110, 110, 110, 110, 110, 110,
 
2481
+ 110, 110, 157, 157, 110, 110, 157, 110, 110, 157, 157, 157, 110, 110, 157, 110,
 
2482
+ 110, 110, 110, 110, 158, 157, 110, 110, 157, 110, 110, 110, 110, 110, 110, 110,
 
2483
+ 110, 110, 110, 110, 157, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
2484
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 157, 110,
 
2485
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 157, 110, 110, 110, 110, 110, 157,
 
2486
+ 110, 110, 110, 157, 110, 110, 110, 157, 110, 157, 110, 110, 110, 110, 110, 110,
 
2487
+ 110, 110, 110, 110, 110, 110, 110, 157, 110, 110, 157, 110, 157, 110, 110, 110,
 
2488
+ 110, 158, 110, 110, 110, 110, 110, 110, 110, 110, 157, 110, 158, 110, 157, 110,
 
2489
+ 110, 110, 110, 110, 110, 110, 157, 157, 157, 110, 110, 110, 110, 110, 92, 110,
 
2490
+ 110, 110, 110, 110, 110, 157, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
2491
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
2492
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
2493
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
2494
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
2495
+ 122, 122, 162, 122, 163, 164, 92, 165, 122, 122, 122, 122, 166, 122, 167, 168,
 
2496
+ 169, 122, 162, 130, 122, 122, 122, 113, 122, 122, 170, 130, 170, 130, 122, 171,
 
2497
+ 161, 172, 173, 162, 174, 130, 142, 130, 174, 92, 175, 176, 170, 122, 177, 162,
 
2498
+ 176, 178, 122, 168, 130, 162, 175, 94, 122, 122, 130, 122, 178, 179, 130, 175,
 
2499
+ 162, 162, 180, 122, 162, 122, 161, 166, 96, 179, 92, 122, 130, 122, 122, 122,
 
2500
+ 130, 162, 96, 96, 173, 113, 122, 181, 122, 122, 182, 94, 166, 122, 122, 122,
 
2501
+ 130, 130, 181, 164, 92, 92, 130, 92, 164, 176, 94, 183, 92, 183, 92, 92,
 
2502
+ 130, 184, 92, 122, 162, 162, 183, 183, 94, 164, 92, 92, 92, 92, 122, 177,
 
2503
+ 172, 160, 121, 168, 168, 172, 122, 160, 122, 175, 113, 122, 122, 166, 122, 173,
 
2504
+ 183, 122, 122, 185, 122, 122, 162, 164, 186, 142, 170, 122, 181, 164, 121, 169,
 
2505
+ 187, 122, 122, 161, 122, 122, 122, 130, 122, 130, 92, 122, 122, 122, 122, 164,
 
2506
+ 181, 161, 173, 169, 92, 130, 180, 160, 92, 177, 122, 170, 160, 92, 161, 170,
 
2507
+ 122, 122, 167, 176, 122, 173, 169, 122, 168, 185, 122, 122, 161, 122, 175, 181,
 
2508
+ 162, 130, 92, 130, 122, 122, 122, 122, 122, 122, 177, 162, 168, 165, 169, 122,
 
2509
+ 164, 166, 162, 122, 122, 122, 161, 161, 166, 168, 170, 170, 130, 113, 172, 164,
 
2510
+ 122, 177, 122, 176, 168, 166, 122, 165, 160, 161, 161, 122, 161, 176, 162, 176,
 
2511
+ 177, 122, 177, 163, 168, 168, 161, 161, 177, 122, 122, 188, 162, 122, 165, 122,
 
2512
+ 122, 122, 177, 168, 168, 171, 164, 189, 185, 176, 175, 130, 181, 178, 130, 130,
 
2513
+ 130, 92, 185, 92, 130, 130, 130, 130, 160, 94, 130, 130, 168, 168, 162, 122,
 
2514
+ 169, 164, 179, 177, 122, 164, 122, 163, 122, 163, 122, 177, 122, 122, 177, 168,
 
2515
+ 164, 168, 163, 122, 161, 160, 122, 121, 188, 177, 161, 163, 177, 122, 122, 122,
 
2516
+ 122, 122, 177, 167, 171, 122, 177, 169, 166, 122, 122, 122, 122, 169, 169, 166,
 
2517
+ 176, 168, 168, 176, 185, 130, 161, 185, 161, 122, 177, 168, 176, 161, 177, 122,
 
2518
+ 122, 162, 160, 122, 185, 142, 165, 177, 177, 177, 188, 169, 167, 177, 190, 122,
 
2519
+ 168, 191, 177, 122, 192, 177, 121, 168, 122, 166, 193, 122, 164, 122, 164, 122,
 
2520
+ 177, 122, 177, 164, 166, 168, 121, 166, 180, 162, 177, 122, 168, 122, 177, 164,
 
2521
+ 184, 181, 160, 173, 92, 130, 130, 130, 170, 130, 130, 153, 130, 113, 122, 122,
 
2522
+ 160, 161, 177, 168, 161, 122, 121, 171, 161, 177, 168, 177, 162, 163, 164, 122,
 
2523
+ 177, 177, 121, 122, 122, 166, 164, 168, 163, 191, 122, 177, 163, 177, 122, 176,
 
2524
+ 169, 122, 164, 194, 180, 161, 168, 122, 169, 168, 122, 178, 166, 122, 96, 122,
 
2525
+ 188, 122, 162, 184, 153, 172, 130, 161, 130, 130, 130, 92, 168, 130, 122, 122,
 
2526
+ 164, 129, 163, 122, 168, 180, 178, 168, 122, 160, 122, 161, 164, 163, 169, 164,
 
2527
+ 171, 162, 195, 160, 164, 178, 121, 177, 160, 121, 162, 121, 176, 122, 177, 169,
 
2528
+ 164, 121, 122, 177, 169, 168, 121, 177, 176, 122, 122, 177, 192, 164, 191, 122,
 
2529
+ 168, 122, 177, 121, 196, 169, 122, 191, 122, 169, 122, 121, 165, 122, 174, 168,
 
2530
+ 177, 168, 164, 177, 94, 177, 181, 168, 161, 181, 130, 197, 96, 92, 130, 161,
 
2531
+ 177, 177, 164, 122, 161, 177, 177, 122, 165, 121, 177, 168, 176, 168, 176, 122,
 
2532
+ 181, 177, 164, 177, 161, 122, 172, 177, 160, 164, 122, 168, 122, 168, 168, 177,
 
2533
+ 177, 168, 177, 177, 168, 122, 163, 162, 168, 168, 177, 168, 175, 171, 168, 97,
 
2534
+ 177, 164, 178, 168, 121, 121, 122, 96, 196, 161, 97, 173, 161, 142, 130, 130,
 
2535
+ 122, 163, 168, 177, 162, 122, 162, 168, 179, 161, 162, 168, 168, 122, 177, 164,
 
2536
+ 182, 121, 177, 162, 177, 168, 171, 161, 121, 121, 142, 177, 177, 168, 177, 162,
 
2537
+ 162, 162, 171, 185, 92, 130, 160, 130, 130, 130, 164, 161, 122, 121, 168, 171,
 
2538
+ 177, 168, 122, 121, 178, 121, 168, 121, 168, 164, 166, 96, 161, 177, 121, 168,
 
2539
+ 162, 168, 178, 164, 177, 121, 168, 171, 168, 180, 180, 168, 164, 172, 171, 122,
 
2540
+ 163, 121, 161, 177, 177, 121, 122, 168, 164, 160, 122, 168, 164, 177, 196, 163,
 
2541
+ 168, 160, 164, 178, 177, 121, 166, 122, 177, 171, 168, 161, 185, 122, 169, 177,
 
2542
+ 168, 171, 162, 185, 160, 169, 177, 161, 168, 121, 162, 122, 160, 168, 177, 194,
 
2543
+ 121, 198, 142, 177, 121, 97, 192, 166, 171, 121, 168, 166, 177, 163, 163, 161,
 
2544
+ 171, 168, 122, 168, 142, 142, 181, 177, 142, 162, 178, 164, 177, 164, 164, 121,
 
2545
+ 168, 122, 168, 162, 168, 168, 168, 164, 164, 168, 121, 160, 162, 177, 168, 164,
 
2546
+ 168, 177, 121, 171, 177, 177, 161, 121, 171, 177, 180, 142, 121, 168, 161, 169,
 
2547
+ 122, 122, 162, 122, 122, 122, 122, 121, 122, 122, 164, 122, 121, 122, 196, 162,
 
2548
+ 181, 173, 121, 162, 169, 176, 179, 171, 162, 97, 167, 97, 122, 97, 97, 177,
 
2549
+ 160, 97, 122, 97, 164, 122, 164, 126, 122, 121, 198, 122, 122, 122, 122, 92,
 
2550
+ 130, 122, 161, 130, 170, 122, 122, 122, 122, 179, 92, 130, 122, 130, 164, 161,
 
2551
+ 122, 130, 175, 162, 164, 184, 198, 168, 170, 169, 121, 164, 184, 122, 162, 178,
 
2552
+ 181, 142, 122, 178, 168, 122, 175, 122, 177, 184, 94, 130, 170, 164, 168, 161,
 
2553
+ 122, 164, 169, 164, 169, 122, 181, 94, 172, 113, 121, 187, 122, 162, 92, 130,
 
2554
+ 169, 167, 175, 175, 172, 175, 122, 122, 163, 168, 162, 130, 166, 122, 177, 162,
 
2555
+ 130, 161, 164, 160, 165, 178, 122, 179, 177, 186, 168, 122, 122, 121, 168, 174,
 
2556
+ 168, 174, 163, 163, 168, 162, 181, 168, 177, 161, 161, 175, 121, 122, 191, 160,
 
2557
+ 169, 122, 163, 161, 179, 164, 113, 113, 161, 113, 113, 130, 161, 175, 162, 130,
 
2558
+ 122, 121, 162, 176, 163, 167, 122, 162, 122, 122, 122, 130, 170, 122, 172, 130,
 
2559
+ 122, 176, 90, 122, 181, 163, 122, 122, 122, 168, 122, 172, 168, 130, 122, 161,
 
2560
+ 168, 122, 176, 177, 181, 164, 176, 122, 189, 130, 130, 130, 168, 122, 168, 160,
 
2561
+ 179, 168, 162, 161, 122, 121, 160, 172, 176, 122, 121, 173, 92, 130, 122, 161,
 
2562
+ 122, 177, 177, 167, 160, 177, 122, 122, 122, 199, 122, 122, 163, 130, 161, 130,
 
2563
+ 130, 96, 130, 122, 178, 164, 168, 121, 161, 177, 122, 121, 122, 122, 97, 181,
 
2564
+ 130, 130, 168, 161, 122, 177, 122, 163, 162, 160, 177, 121, 176, 126, 167, 177,
 
2565
+ 163, 192, 168, 181, 181, 184, 162, 173, 160, 122, 122, 168, 168, 168, 177, 122,
 
2566
+ 181, 113, 122, 172, 142, 121, 161, 171, 177, 163, 168, 168, 168, 122, 161, 122,
 
2567
+ 177, 185, 176, 121, 168, 162, 161, 121, 122, 121, 171, 168, 177, 121, 161, 94,
 
2568
+ 179, 121, 200, 176, 172, 162, 177, 177, 177, 168, 163, 122, 164, 173, 173, 122,
 
2569
+ 122, 170, 130, 122, 201, 162, 177, 162, 179, 122, 122, 122, 169, 167, 168, 162,
 
2570
+ 162, 202, 130, 173, 181, 172, 162, 162, 162, 172, 162, 171, 178, 164, 122, 173,
 
2571
+ 177, 121, 168, 122, 164, 198, 162, 122, 162, 122, 161, 130, 163, 180, 161, 164,
 
2572
+ 179, 163, 122, 168, 164, 121, 192, 142, 122, 121, 92, 188, 162, 121, 121, 122,
 
2573
+ 172, 163, 121, 121, 122, 162, 142, 181, 162, 177, 164, 168, 162, 161, 161, 168,
 
2574
+ 176, 177, 181, 121, 177, 121, 162, 177, 121, 187, 122, 126, 168, 161, 122, 122,
 
2575
+ 189, 153, 113, 164, 161, 122, 169, 161, 122, 168, 177, 177, 162, 122, 168, 122,
 
2576
+ 122, 177, 168, 162, 161, 122, 122, 122, 162, 122, 167, 162, 177, 169, 164, 177,
 
2577
+ 122, 122, 168, 122, 161, 164, 130, 163, 162, 162, 122, 162, 182, 177, 130, 121,
 
2578
+ 177, 142, 163, 172, 168, 164, 161, 168, 172, 122, 184, 175, 177, 177, 176, 122,
 
2579
+ 121, 122, 182, 122, 126, 169, 181, 122, 122, 122, 122, 164, 177, 180, 170, 173,
 
2580
+ 161, 122, 122, 122, 121, 173, 130, 122, 181, 162, 122, 162, 122, 160, 122, 179,
 
2581
+ 122, 176, 130, 166, 170, 164, 122, 179, 183, 175, 92, 130, 177, 163, 169, 122,
 
2582
+ 122, 122, 177, 169, 186, 122, 161, 122, 169, 171, 173, 142, 168, 203, 182, 122,
 
2583
+ 161, 92, 167, 162, 122, 130, 173, 162, 162, 173, 168, 173, 130, 130, 177, 168,
 
2584
+ 92, 92, 168, 193, 177, 130, 178, 168, 165, 177, 122, 161, 168, 176, 168, 122,
 
2585
+ 198, 162, 170, 130, 177, 122, 186, 168, 175, 175, 163, 163, 168, 121, 175, 162,
 
2586
+ 172, 161, 171, 181, 177, 162, 175, 164, 162, 168, 164, 122, 92, 162, 161, 130,
 
2587
+ 162, 179, 175, 121, 161, 163, 92, 92, 122, 122, 122, 122, 175, 122, 181, 162,
 
2588
+ 160, 170, 163, 162, 122, 164, 122, 122, 170, 175, 163, 122, 161, 164, 162, 169,
 
2589
+ 174, 180, 121, 122, 122, 122, 176, 162, 169, 122, 122, 122, 122, 122, 169, 122,
 
2590
+ 122, 122, 122, 122, 161, 176, 175, 175, 122, 173, 113, 96, 96, 130, 94, 161,
 
2591
+ 161, 169, 162, 122, 122, 161, 96, 168, 122, 122, 122, 142, 122, 122, 122, 122,
 
2592
+ 122, 122, 96, 174, 94, 173, 179, 130, 168, 168, 163, 122, 168, 122, 96, 122,
 
2593
+ 122, 174, 161, 179, 168, 168, 122, 176, 166, 122, 177, 122, 169, 169, 169, 174,
 
2594
+ 168, 176, 179, 126, 189, 176, 142, 168, 122, 122, 161, 122, 122, 178, 122, 161,
 
2595
+ 169, 168, 121, 176, 164, 168, 169, 177, 122, 181, 122, 179, 161, 163, 142, 177,
 
2596
+ 173, 196, 130, 130, 185, 130, 130, 130, 130, 130, 161, 130, 130, 92, 162, 181,
 
2597
+ 168, 168, 176, 168, 166, 168, 166, 177, 122, 163, 198, 177, 168, 163, 162, 168,
 
2598
+ 178, 122, 185, 122, 177, 122, 169, 169, 96, 161, 168, 122, 122, 122, 168, 177,
 
2599
+ 122, 177, 185, 162, 169, 163, 122, 168, 177, 164, 161, 169, 122, 177, 122, 175,
 
2600
+ 122, 177, 169, 160, 179, 176, 176, 94, 168, 130, 96, 130, 182, 130, 160, 164,
 
2601
+ 168, 177, 178, 179, 186, 178, 176, 176, 122, 176, 176, 122, 122, 166, 177, 169,
 
2602
+ 168, 176, 172, 122, 179, 161, 168, 177, 122, 163, 177, 176, 178, 122, 178, 176,
 
2603
+ 122, 122, 169, 168, 122, 168, 166, 169, 122, 122, 164, 160, 179, 174, 176, 185,
 
2604
+ 179, 130, 130, 130, 130, 130, 168, 130, 113, 130, 179, 92, 130, 130, 185, 130,
 
2605
+ 177, 121, 178, 94, 168, 122, 169, 185, 122, 169, 176, 168, 162, 122, 122, 163,
 
2606
+ 161, 168, 122, 185, 161, 161, 164, 168, 168, 161, 122, 168, 176, 169, 162, 166,
 
2607
+ 164, 176, 160, 168, 180, 177, 122, 122, 177, 176, 168, 168, 177, 163, 191, 169,
 
2608
+ 122, 185, 168, 160, 169, 162, 113, 168, 160, 161, 168, 130, 183, 92, 94, 92,
 
2609
+ 130, 92, 130, 170, 130, 94, 168, 96, 160, 161, 166, 163, 96, 168, 169, 122,
 
2610
+ 185, 122, 177, 169, 168, 191, 177, 96, 142, 178, 161, 177, 166, 162, 122, 179,
 
2611
+ 178, 176, 92, 96, 122, 178, 122, 182, 168, 174, 176, 168, 181, 177, 168, 121,
 
2612
+ 166, 177, 168, 198, 161, 96, 122, 142, 164, 161, 164, 162, 169, 172, 188, 97,
 
2613
+ 162, 176, 168, 121, 176, 185, 176, 130, 161, 94, 96, 160, 130, 130, 130, 92,
 
2614
+ 92, 160, 160, 160, 92, 185, 185, 185, 130, 94, 161, 169, 122, 168, 169, 177,
 
2615
+ 122, 166, 176, 169, 122, 161, 193, 122, 166, 122, 122, 169, 168, 168, 177, 166,
 
2616
+ 94, 166, 177, 177, 176, 168, 161, 164, 122, 122, 121, 161, 122, 122, 181, 169,
 
2617
+ 161, 168, 168, 177, 177, 168, 168, 122, 178, 198, 121, 121, 121, 177, 121, 161,
 
2618
+ 153, 96, 171, 96, 160, 185, 113, 130, 92, 170, 160, 96, 94, 130, 130, 177,
 
2619
+ 168, 163, 168, 177, 167, 122, 171, 121, 168, 176, 168, 177, 166, 185, 171, 168,
 
2620
+ 168, 176, 166, 176, 165, 168, 185, 163, 182, 168, 121, 177, 122, 185, 163, 122,
 
2621
+ 92, 96, 177, 122, 122, 96, 96, 97, 96, 177, 179, 130, 170, 92, 161, 96,
 
2622
+ 160, 94, 185, 130, 161, 170, 171, 169, 161, 178, 168, 160, 168, 122, 122, 177,
 
2623
+ 96, 185, 168, 161, 168, 163, 121, 161, 176, 122, 162, 161, 185, 171, 176, 166,
 
2624
+ 171, 163, 177, 168, 121, 168, 142, 121, 184, 162, 92, 169, 168, 168, 179, 96,
 
2625
+ 160, 94, 160, 170, 130, 94, 161, 185, 161, 142, 168, 161, 166, 179, 97, 121,
 
2626
+ 171, 184, 122, 177, 122, 177, 122, 163, 178, 176, 168, 176, 162, 177, 168, 176,
 
2627
+ 177, 177, 178, 182, 164, 168, 177, 161, 168, 177, 168, 164, 167, 174, 169, 163,
 
2628
+ 172, 161, 160, 126, 174, 92, 161, 96, 185, 96, 168, 113, 130, 94, 177, 161,
 
2629
+ 177, 163, 176, 177, 169, 97, 177, 161, 122, 176, 169, 122, 169, 177, 168, 171,
 
2630
+ 168, 176, 177, 168, 121, 162, 96, 168, 142, 97, 153, 179, 170, 161, 168, 168,
 
2631
+ 142, 168, 168, 168, 177, 176, 165, 142, 162, 160, 172, 182, 177, 168, 96, 169,
 
2632
+ 97, 161, 160, 185, 181, 171, 161, 168, 168, 177, 177, 161, 168, 177, 163, 163,
 
2633
+ 181, 94, 113, 130, 94, 121, 177, 177, 171, 162, 168, 177, 191, 177, 121, 179,
 
2634
+ 161, 182, 168, 177, 121, 168, 142, 176, 161, 160, 161, 161, 122, 168, 177, 94,
 
2635
+ 142, 142, 142, 178, 161, 177, 168, 161, 142, 171, 190, 177, 171, 191, 113, 162,
 
2636
+ 162, 121, 161, 178, 185, 92, 94, 167, 181, 162, 122, 122, 162, 176, 122, 166,
 
2637
+ 122, 166, 170, 181, 176, 177, 164, 177, 162, 161, 97, 176, 161, 174, 178, 160,
 
2638
+ 122, 174, 181, 181, 130, 130, 164, 177, 161, 165, 122, 161, 161, 175, 130, 169,
 
2639
+ 172, 177, 177, 122, 122, 161, 130, 177, 122, 169, 166, 121, 177, 121, 161, 181,
 
2640
+ 92, 162, 121, 121, 168, 163, 121, 161, 121, 92, 177, 177, 167, 163, 168, 122,
 
2641
+ 177, 161, 177, 166, 164, 162, 113, 181, 122, 176, 166, 92, 176, 122, 166, 176,
 
2642
+ 122, 161, 160, 176, 177, 161, 161, 113, 113, 130, 130, 122, 161, 164, 176, 163,
 
2643
+ 122, 168, 186, 160, 161, 177, 163, 122, 161, 168, 122, 168, 166, 190, 122, 169,
 
2644
+ 122, 122, 177, 161, 160, 161, 161, 179, 161, 161, 130, 170, 130, 130, 130, 179,
 
2645
+ 130, 122, 177, 161, 122, 164, 122, 163, 166, 169, 122, 166, 92, 166, 204, 166,
 
2646
+ 191, 177, 168, 166, 177, 191, 185, 176, 161, 162, 182, 166, 190, 168, 182, 172,
 
2647
+ 168, 164, 122, 176, 130, 130, 130, 92, 205, 113, 160, 122, 166, 160, 161, 168,
 
2648
+ 160, 161, 173, 122, 177, 177, 161, 177, 168, 177, 177, 185, 163, 177, 177, 177,
 
2649
+ 122, 174, 122, 122, 167, 168, 173, 174, 164, 206, 153, 130, 164, 130, 96, 92,
 
2650
+ 113, 92, 130, 113, 170, 168, 168, 161, 166, 168, 168, 160, 168, 177, 160, 168,
 
2651
+ 181, 168, 96, 122, 160, 161, 178, 191, 193, 161, 161, 122, 177, 161, 122, 166,
 
2652
+ 168, 161, 167, 113, 169, 166, 113, 94, 130, 130, 130, 161, 178, 174, 163, 122,
 
2653
+ 122, 177, 168, 178, 176, 168, 163, 177, 161, 177, 161, 92, 168, 166, 168, 179,
 
2654
+ 191, 168, 168, 168, 165, 177, 177, 121, 166, 122, 122, 168, 180, 166, 163, 164,
 
2655
+ 165, 168, 122, 163, 177, 121, 122, 185, 191, 188, 121, 167, 177, 166, 168, 161,
 
2656
+ 168, 130, 160, 161, 168, 202, 92, 92, 161, 167, 161, 177, 168, 142, 192, 164,
 
2657
+ 176, 122, 160, 168, 122, 168, 163, 191, 168, 168, 122, 161, 168, 177, 168, 121,
 
2658
+ 122, 121, 177, 168, 121, 122, 168, 168, 168, 177, 198, 168, 161, 178, 161, 177,
 
2659
+ 153, 113, 92, 92, 170, 161, 92, 160, 168, 177, 121, 121, 176, 166, 168, 191,
 
2660
+ 164, 122, 142, 168, 122, 177, 161, 121, 122, 178, 121, 168, 160, 168, 122, 163,
 
2661
+ 161, 204, 121, 168, 191, 185, 161, 164, 177, 172, 161, 169, 179, 97, 92, 168,
 
2662
+ 113, 168, 172, 160, 168, 121, 168, 161, 164, 121, 168, 168, 191, 97, 122, 177,
 
2663
+ 176, 166, 168, 122, 161, 122, 168, 177, 177, 192, 171, 168, 164, 164, 168, 177,
 
2664
+ 177, 168, 173, 122, 177, 161, 164, 181, 168, 170, 170, 161, 121, 177, 129, 122,
 
2665
+ 177, 177, 164, 168, 161, 168, 171, 160, 122, 190, 160, 178, 168, 161, 121, 168,
 
2666
+ 160, 177, 164, 121, 161, 160, 94, 161, 113, 113, 180, 198, 166, 168, 121, 168,
 
2667
+ 161, 122, 177, 161, 164, 122, 168, 121, 177, 168, 181, 94, 113, 164, 188, 168,
 
2668
+ 164, 122, 177, 121, 177, 122, 177, 113, 121, 121, 177, 168, 172, 177, 121, 121,
 
2669
+ 160, 162, 171, 168, 122, 113, 161, 168, 168, 171, 92, 122, 122, 92, 184, 121,
 
2670
+ 175, 181, 172, 174, 168, 161, 130, 181, 92, 122, 121, 198, 178, 121, 168, 168,
 
2671
+ 161, 161, 175, 168, 179, 163, 177, 170, 161, 181, 172, 164, 177, 185, 168, 122,
 
2672
+ 181, 160, 177, 162, 190, 122, 122, 168, 181, 122, 122, 113, 122, 162, 92, 179,
 
2673
+ 97, 162, 121, 164, 176, 169, 161, 122, 162, 122, 122, 122, 178, 122, 122, 166,
 
2674
+ 164, 122, 172, 162, 179, 162, 164, 122, 169, 130, 130, 92, 185, 161, 121, 162,
 
2675
+ 168, 130, 130, 162, 122, 168, 162, 122, 122, 122, 168, 173, 161, 161, 122, 122,
 
2676
+ 121, 122, 164, 177, 122, 122, 130, 122, 169, 162, 122, 164, 168, 164, 164, 162,
 
2677
+ 122, 177, 122, 164, 161, 187, 161, 121, 181, 142, 121, 191, 196, 188, 121, 162,
 
2678
+ 168, 168, 177, 122, 122, 163, 176, 168, 122, 176, 161, 177, 177, 122, 168, 168,
 
2679
+ 168, 169, 122, 122, 122, 168, 173, 130, 130, 160, 122, 162, 164, 169, 177, 168,
 
2680
+ 168, 92, 176, 122, 160, 162, 122, 192, 168, 122, 160, 181, 161, 142, 96, 163,
 
2681
+ 168, 168, 168, 169, 176, 122, 168, 177, 122, 130, 130, 130, 198, 164, 176, 176,
 
2682
+ 163, 168, 167, 171, 168, 168, 168, 163, 160, 122, 177, 122, 177, 168, 122, 161,
 
2683
+ 168, 177, 161, 191, 163, 97, 122, 168, 177, 198, 176, 122, 168, 171, 168, 168,
 
2684
+ 122, 122, 176, 122, 122, 161, 168, 173, 96, 198, 122, 168, 122, 192, 177, 164,
 
2685
+ 168, 168, 161, 176, 177, 169, 121, 164, 122, 168, 121, 172, 129, 168, 191, 163,
 
2686
+ 160, 177, 177, 168, 177, 168, 178, 177, 203, 179, 168, 122, 168, 168, 168, 122,
 
2687
+ 177, 122, 160, 122, 189, 130, 130, 130, 130, 169, 168, 160, 176, 163, 162, 168,
 
2688
+ 161, 122, 163, 176, 161, 168, 168, 168, 122, 168, 181, 126, 122, 161, 177, 122,
 
2689
+ 122, 160, 161, 176, 163, 122, 161, 182, 162, 122, 163, 160, 160, 177, 168, 181,
 
2690
+ 162, 173, 130, 168, 130, 178, 122, 168, 168, 168, 161, 161, 122, 160, 168, 161,
 
2691
+ 169, 121, 168, 168, 177, 163, 122, 177, 177, 122, 96, 161, 177, 168, 161, 161,
 
2692
+ 177, 168, 168, 168, 160, 166, 168, 168, 168, 160, 122, 168, 168, 168, 177, 168,
 
2693
+ 168, 160, 122, 163, 168, 177, 121, 166, 160, 168, 169, 160, 178, 177, 160, 161,
 
2694
+ 168, 160, 92, 161, 130, 173, 130, 176, 168, 160, 166, 177, 168, 168, 163, 169,
 
2695
+ 161, 160, 160, 168, 168, 161, 160, 161, 160, 161, 168, 177, 168, 161, 168, 168,
 
2696
+ 177, 160, 122, 177, 168, 168, 163, 168, 161, 163, 122, 122, 177, 168, 177, 177,
 
2697
+ 163, 160, 177, 161, 195, 168, 168, 171, 161, 168, 173, 160, 177, 92, 168, 168,
 
2698
+ 168, 177, 176, 176, 168, 166, 168, 168, 166, 168, 177, 177, 142, 142, 169, 177,
 
2699
+ 168, 122, 122, 160, 191, 161, 177, 168, 177, 122, 168, 178, 122, 168, 160, 163,
 
2700
+ 181, 161, 130, 160, 130, 168, 169, 142, 96, 168, 177, 168, 166, 168, 168, 168,
 
2701
+ 166, 122, 168, 169, 160, 177, 122, 161, 168, 122, 177, 185, 168, 168, 177, 161,
 
2702
+ 160, 130, 94, 168, 168, 171, 177, 168, 168, 168, 172, 142, 161, 177, 160, 168,
 
2703
+ 164, 177, 168, 168, 161, 194, 161, 168, 171, 122, 161, 121, 121, 160, 161, 168,
 
2704
+ 168, 160, 161, 168, 168, 161, 165, 166, 161, 177, 168, 177, 161, 171, 168, 160,
 
2705
+ 168, 177, 181, 168, 97, 177, 168, 168, 168, 161, 121, 160, 178, 177, 168, 168,
 
2706
+ 142, 161, 167, 161, 176, 161, 113, 173, 171, 161, 161, 161, 168, 168, 178, 168,
 
2707
+ 122, 182, 161, 121, 160, 178, 160, 168, 168, 161, 160, 177, 177, 168, 168, 160,
 
2708
+ 122, 122, 162, 96, 122, 122, 177, 122, 122, 130, 122, 169, 122, 122, 162, 122,
 
2709
+ 161, 92, 185, 122, 122, 167, 175, 161, 182, 122, 173, 121, 185, 94, 177, 162,
 
2710
+ 122, 122, 168, 169, 160, 122, 160, 168, 121, 161, 122, 168, 193, 176, 164, 171,
 
2711
+ 175, 166, 160, 169, 166, 122, 164, 122, 122, 122, 162, 122, 122, 181, 177, 122,
 
2712
+ 182, 162, 168, 192, 164, 165, 204, 122, 122, 122, 122, 122, 122, 175, 179, 172,
 
2713
+ 130, 130, 122, 122, 122, 122, 122, 168, 177, 162, 170, 173, 191, 177, 121, 162,
 
2714
+ 122, 162, 162, 122, 122, 122, 122, 164, 122, 122, 162, 161, 164, 130, 130, 122,
 
2715
+ 191, 177, 122, 198, 122, 122, 122, 122, 161, 113, 168, 168, 122, 177, 168, 162,
 
2716
+ 122, 168, 122, 122, 180, 160, 177, 193, 177, 177, 164, 181, 161, 184, 122, 122,
 
2717
+ 177, 122, 121, 168, 122, 122, 121, 121, 122, 121, 168, 121, 126, 92, 122, 191,
 
2718
+ 169, 177, 168, 172, 162, 121, 121, 161, 122, 173, 122, 130, 130, 164, 181, 175,
 
2719
+ 161, 122, 113, 168, 122, 172, 184, 121, 121, 122, 122, 121, 177, 121, 121, 122,
 
2720
+ 168, 122, 168, 172, 179, 185, 122, 162, 173, 195, 169, 161, 170, 130, 163, 177,
 
2721
+ 172, 161, 169, 182, 122, 185, 162, 130, 180, 162, 168, 164, 176, 113, 162, 161,
 
2722
+ 177, 122, 162, 168, 130, 162, 164, 97, 122, 122, 122, 165, 122, 184, 122, 122,
 
2723
+ 122, 169, 130, 92, 168, 122, 121, 168, 122, 179, 175, 122, 168, 121, 122, 169,
 
2724
+ 169, 122, 161, 172, 168, 122, 168, 161, 97, 166, 162, 195, 171, 97, 175, 161,
 
2725
+ 122, 184, 188, 166, 121, 122, 130, 177, 171, 177, 168, 161, 121, 177, 167, 122,
 
2726
+ 162, 122, 92, 168, 177, 162, 113, 161, 161, 122, 166, 177, 177, 162, 168, 130,
 
2727
+ 161, 130, 130, 92, 161, 160, 168, 162, 166, 168, 177, 168, 169, 185, 161, 177,
 
2728
+ 122, 122, 177, 168, 169, 168, 130, 130, 130, 170, 170, 130, 179, 177, 160, 177,
 
2729
+ 177, 121, 166, 166, 168, 168, 177, 168, 178, 122, 177, 122, 165, 185, 168, 168,
 
2730
+ 168, 122, 162, 122, 164, 192, 178, 122, 122, 161, 193, 181, 113, 130, 200, 130,
 
2731
+ 183, 179, 94, 92, 130, 113, 168, 178, 168, 177, 168, 166, 168, 161, 168, 168,
 
2732
+ 168, 160, 176, 168, 168, 161, 168, 177, 168, 122, 168, 168, 161, 164, 168, 168,
 
2733
+ 200, 184, 161, 92, 130, 179, 173, 92, 122, 172, 169, 161, 168, 169, 177, 198,
 
2734
+ 122, 177, 162, 161, 188, 161, 121, 168, 168, 168, 181, 122, 161, 121, 161, 168,
 
2735
+ 168, 171, 130, 130, 92, 92, 176, 122, 161, 161, 161, 178, 168, 191, 122, 168,
 
2736
+ 160, 121, 177, 161, 122, 172, 122, 121, 172, 121, 178, 169, 161, 168, 185, 178,
 
2737
+ 168, 161, 142, 177, 176, 168, 166, 190, 168, 122, 161, 162, 160, 130, 185, 160,
 
2738
+ 168, 177, 168, 168, 176, 168, 168, 168, 168, 177, 168, 161, 168, 166, 179, 177,
 
2739
+ 168, 168, 177, 177, 161, 168, 163, 96, 163, 168, 166, 165, 122, 161, 178, 161,
 
2740
+ 121, 177, 178, 161, 92, 177, 94, 160, 130, 177, 92, 179, 113, 130, 168, 162,
 
2741
+ 164, 162, 177, 168, 164, 168, 161, 168, 168, 122, 162, 185, 165, 164, 161, 122,
 
2742
+ 182, 168, 168, 113, 170, 161, 113, 168, 161, 177, 177, 161, 168, 168, 177, 177,
 
2743
+ 168, 177, 167, 164, 142, 94, 168, 121, 177, 168, 177, 198, 181, 168, 160, 161,
 
2744
+ 181, 161, 177, 177, 171, 177, 161, 168, 161, 166, 168, 164, 168, 122, 168, 177,
 
2745
+ 191, 168, 180, 161, 160, 161, 161, 177, 168, 168, 194, 163, 178, 168, 178, 168,
 
2746
+ 177, 168, 177, 161, 177, 168, 160, 167, 188, 163, 121, 161, 121, 121, 161, 161,
 
2747
+ 168, 160, 168, 177, 161, 130, 168, 177, 161, 142, 161, 177, 181, 122, 162, 168,
 
2748
+ 164, 168, 121, 181, 97, 168, 121, 160, 177, 162, 92, 175, 92, 122, 122, 168,
 
2749
+ 177, 122, 129, 181, 164, 122, 122, 122, 122, 206, 92, 122, 92, 92, 122, 130,
 
2750
+ 168, 122, 122, 122, 122, 172, 161, 122, 162, 177, 161, 181, 92, 122, 122, 168,
 
2751
+ 164, 130, 122, 122, 168, 130, 122, 162, 173, 160, 168, 172, 122, 162, 168, 130,
 
2752
+ 130, 122, 163, 161, 166, 176, 122, 168, 176, 165, 169, 122, 130, 122, 161, 171,
 
2753
+ 177, 168, 168, 168, 168, 121, 130, 130, 177, 168, 161, 121, 161, 122, 174, 181,
 
2754
+ 181, 130, 164, 121, 168, 164, 121, 169, 122, 161, 161, 130, 130, 122, 177, 183,
 
2755
+ 121, 168, 179, 142, 165, 122, 161, 196, 160, 162, 168, 177, 122, 168, 178, 168,
 
2756
+ 162, 162, 161, 168, 169, 122, 162, 142, 177, 168, 161, 176, 177, 168, 174, 121,
 
2757
+ 168, 122, 122, 121, 113, 161, 168, 168, 177, 168, 177, 171, 177, 177, 177, 168,
 
2758
+ 177, 161, 122, 122, 122, 178, 169, 195, 122, 121, 175, 122, 122, 122, 121, 175,
 
2759
+ 166, 181, 168, 172, 165, 161, 170, 122, 168, 168, 122, 166, 168, 168, 162, 122,
 
2760
+ 173, 130, 161, 130, 130, 122, 169, 122, 161, 173, 122, 168, 122, 161, 130, 130,
 
2761
+ 122, 161, 177, 168, 177, 166, 122, 122, 177, 161, 177, 121, 177, 122, 168, 161,
 
2762
+ 168, 177, 168, 166, 168, 122, 122, 122, 122, 185, 161, 161, 92, 163, 190, 164,
 
2763
+ 161, 142, 121, 113, 97, 168, 177, 168, 121, 122, 122, 177, 177, 160, 177, 181,
 
2764
+ 198, 166, 166, 122, 177, 177, 122, 168, 168, 168, 121, 165, 177, 142, 177, 121,
 
2765
+ 121, 178, 121, 121, 92, 177, 168, 168, 167, 178, 173, 162, 121, 161, 168, 168,
 
2766
+ 181, 178, 168, 121, 175, 161, 122, 122, 172, 160, 122, 198, 172, 161, 169, 169,
 
2767
+ 130, 122, 166, 184, 122, 168, 164, 177, 176, 113, 122, 169, 172, 172, 163, 122,
 
2768
+ 113, 199, 97, 122, 121, 122, 113, 122, 122, 162, 168, 122, 162, 177, 161, 122,
 
2769
+ 130, 164, 177, 177, 177, 175, 122, 122, 177, 122, 130, 162, 162, 169, 177, 184,
 
2770
+ 177, 122, 161, 168, 164, 121, 177, 142, 178, 173, 207, 164, 122, 162, 181, 162,
 
2771
+ 166, 113, 161, 168, 177, 162, 97, 162, 121, 168, 121, 168, 121, 163, 121, 168,
 
2772
+ 174, 172, 173, 184, 177, 173, 165, 122, 166, 121, 161, 204, 153, 208, 134, 92,
 
2773
+ 164, 175, 122, 163, 176, 97, 199, 191, 92, 122, 122, 121, 122, 122, 161, 177,
 
2774
+ 122, 122, 163, 167, 177, 162, 168, 122, 177, 122, 162, 170, 122, 177, 177, 121,
 
2775
+ 122, 122, 167, 172, 184, 122, 168, 122, 169, 176, 122, 122, 122, 164, 161, 164,
 
2776
+ 122, 121, 122, 181, 161, 130, 177, 122, 122, 122, 161, 168, 176, 162, 121, 168,
 
2777
+ 121, 122, 162, 92, 182, 168, 168, 163, 122, 121, 122, 177, 171, 167, 122, 177,
 
2778
+ 162, 182, 168, 181, 181, 129, 168, 129, 164, 121, 160, 168, 167, 122, 168, 168,
 
2779
+ 168, 168, 161, 122, 90, 122, 130, 164, 164, 166, 161, 162, 122, 122, 161, 185,
 
2780
+ 166, 166, 166, 164, 177, 168, 122, 122, 122, 122, 161, 160, 181, 169, 177, 160,
 
2781
+ 122, 166, 162, 168, 167, 168, 161, 173, 177, 164, 176, 122, 164, 166, 166, 177,
 
2782
+ 181, 169, 164, 177, 168, 122, 164, 168, 169, 161, 177, 167, 164, 122, 173, 122,
 
2783
+ 185, 130, 130, 130, 130, 130, 130, 164, 161, 168, 166, 168, 168, 166, 169, 122,
 
2784
+ 178, 168, 122, 177, 176, 169, 122, 177, 164, 167, 177, 169, 165, 122, 168, 162,
 
2785
+ 122, 122, 168, 160, 177, 122, 167, 122, 122, 169, 122, 169, 168, 177, 168, 122,
 
2786
+ 161, 172, 168, 177, 168, 176, 161, 168, 92, 168, 113, 170, 130, 161, 92, 130,
 
2787
+ 177, 165, 165, 122, 168, 168, 142, 177, 164, 177, 172, 184, 177, 122, 161, 161,
 
2788
+ 122, 164, 186, 168, 177, 122, 164, 162, 168, 122, 167, 168, 161, 192, 168, 178,
 
2789
+ 181, 164, 122, 122, 122, 121, 168, 166, 122, 122, 122, 169, 122, 122, 168, 122,
 
2790
+ 122, 162, 168, 173, 161, 172, 130, 153, 130, 130, 130, 130, 173, 130, 163, 176,
 
2791
+ 168, 178, 162, 167, 169, 126, 177, 168, 177, 122, 177, 181, 122, 122, 177, 92,
 
2792
+ 168, 162, 167, 164, 122, 177, 122, 178, 164, 161, 122, 165, 168, 166, 163, 122,
 
2793
+ 122, 161, 177, 122, 193, 162, 184, 198, 176, 181, 181, 130, 130, 130, 161, 130,
 
2794
+ 191, 166, 122, 198, 122, 142, 121, 177, 122, 168, 168, 176, 122, 121, 177, 168,
 
2795
+ 168, 168, 162, 168, 177, 122, 169, 121, 177, 177, 166, 176, 168, 168, 177, 177,
 
2796
+ 161, 122, 161, 178, 177, 176, 161, 160, 169, 177, 122, 177, 122, 166, 163, 122,
 
2797
+ 122, 121, 177, 172, 168, 164, 96, 175, 187, 179, 161, 130, 130, 130, 173, 130,
 
2798
+ 122, 121, 177, 122, 169, 177, 122, 178, 177, 122, 122, 121, 177, 163, 168, 168,
 
2799
+ 169, 122, 162, 178, 168, 168, 122, 163, 122, 122, 177, 168, 163, 122, 122, 122,
 
2800
+ 177, 164, 171, 177, 177, 122, 177, 162, 168, 163, 122, 121, 171, 168, 164, 122,
 
2801
+ 173, 181, 164, 96, 130, 161, 130, 122, 178, 168, 164, 166, 178, 92, 168, 168,
 
2802
+ 193, 164, 168, 161, 121, 162, 177, 188, 161, 162, 161, 168, 196, 172, 121, 122,
 
2803
+ 168, 177, 198, 161, 121, 177, 177, 121, 122, 177, 165, 121, 122, 142, 169, 168,
 
2804
+ 160, 130, 168, 180, 168, 122, 168, 161, 121, 198, 142, 168, 160, 122, 177, 121,
 
2805
+ 163, 168, 122, 121, 203, 178, 168, 122, 122, 161, 168, 121, 177, 92, 121, 172,
 
2806
+ 122, 178, 177, 178, 178, 169, 121, 122, 164, 168, 168, 164, 171, 203, 121, 162,
 
2807
+ 177, 193, 121, 177, 162, 161, 161, 172, 161, 168, 121, 166, 168, 177, 122, 161,
 
2808
+ 121, 121, 177, 177, 122, 160, 178, 164, 193, 198, 121, 168, 163, 166, 161, 177,
 
2809
+ 162, 168, 168, 161, 121, 162, 161, 122, 166, 122, 177, 121, 122, 177, 121, 168,
 
2810
+ 168, 168, 121, 168, 168, 168, 121, 179, 177, 163, 180, 161, 177, 161, 122, 168,
 
2811
+ 163, 177, 176, 180, 161, 168, 178, 121, 122, 121, 122, 122, 178, 142, 164, 163,
 
2812
+ 172, 130, 130, 160, 130, 162, 168, 92, 168, 161, 160, 161, 164, 164, 177, 177,
 
2813
+ 168, 162, 163, 142, 168, 177, 122, 177, 168, 177, 168, 168, 162, 177, 168, 162,
 
2814
+ 168, 168, 121, 161, 113, 96, 121, 121, 121, 168, 121, 168, 121, 178, 142, 122,
 
2815
+ 121, 177, 161, 177, 177, 161, 130, 191, 122, 178, 122, 130, 122, 122, 122, 173,
 
2816
+ 122, 122, 122, 164, 178, 176, 122, 130, 173, 168, 122, 169, 162, 113, 181, 122,
 
2817
+ 177, 122, 176, 177, 185, 185, 113, 177, 161, 177, 122, 177, 179, 168, 122, 181,
 
2818
+ 121, 195, 142, 169, 122, 161, 126, 179, 181, 163, 168, 181, 161, 166, 129, 122,
 
2819
+ 122, 122, 177, 166, 162, 161, 177, 122, 122, 122, 168, 122, 90, 122, 169, 161,
 
2820
+ 177, 176, 176, 122, 176, 113, 162, 161, 122, 168, 177, 169, 177, 161, 178, 161,
 
2821
+ 178, 168, 168, 169, 177, 168, 185, 173, 153, 130, 130, 130, 130, 176, 122, 176,
 
2822
+ 185, 180, 168, 176, 168, 161, 122, 168, 161, 122, 177, 168, 122, 177, 169, 122,
 
2823
+ 122, 168, 172, 178, 122, 160, 97, 168, 168, 122, 122, 161, 168, 164, 177, 177,
 
2824
+ 182, 122, 122, 169, 178, 122, 169, 122, 122, 161, 130, 199, 181, 160, 181, 130,
 
2825
+ 130, 130, 130, 161, 170, 173, 163, 161, 176, 168, 168, 122, 169, 168, 168, 168,
 
2826
+ 168, 122, 161, 177, 168, 122, 177, 164, 168, 122, 164, 167, 122, 122, 177, 176,
 
2827
+ 161, 161, 122, 94, 176, 175, 169, 122, 122, 122, 167, 97, 122, 122, 176, 180,
 
2828
+ 122, 178, 122, 122, 122, 163, 190, 122, 122, 122, 176, 122, 122, 181, 161, 179,
 
2829
+ 181, 181, 130, 130, 161, 170, 130, 130, 130, 130, 164, 168, 122, 122, 122, 122,
 
2830
+ 168, 122, 177, 122, 176, 178, 167, 122, 168, 168, 168, 168, 176, 176, 122, 122,
 
2831
+ 168, 122, 169, 177, 164, 161, 92, 122, 169, 122, 162, 177, 178, 177, 185, 168,
 
2832
+ 177, 122, 92, 177, 168, 168, 176, 161, 182, 181, 130, 173, 92, 130, 130, 184,
 
2833
+ 130, 173, 130, 130, 130, 130, 92, 113, 169, 177, 176, 122, 168, 177, 160, 122,
 
2834
+ 161, 160, 185, 168, 168, 163, 177, 160, 168, 166, 122, 194, 177, 122, 121, 181,
 
2835
+ 168, 177, 176, 166, 177, 185, 176, 168, 168, 122, 177, 166, 122, 169, 176, 122,
 
2836
+ 122, 168, 164, 164, 177, 122, 168, 178, 177, 168, 168, 164, 181, 161, 130, 130,
 
2837
+ 161, 130, 130, 130, 160, 177, 164, 122, 121, 169, 161, 142, 163, 166, 165, 168,
 
2838
+ 168, 176, 121, 161, 164, 177, 169, 122, 177, 160, 122, 122, 177, 177, 161, 193,
 
2839
+ 169, 168, 166, 121, 171, 168, 161, 166, 122, 122, 166, 160, 122, 168, 167, 169,
 
2840
+ 166, 168, 122, 161, 177, 162, 122, 168, 122, 171, 162, 121, 168, 168, 177, 178,
 
2841
+ 122, 121, 122, 169, 177, 122, 162, 122, 122, 122, 122, 178, 169, 166, 166, 177,
 
2842
+ 185, 168, 181, 130, 202, 113, 161, 130, 130, 94, 173, 113, 130, 177, 167, 161,
 
2843
+ 121, 163, 168, 178, 165, 177, 122, 168, 177, 169, 168, 168, 168, 96, 166, 122,
 
2844
+ 122, 163, 169, 177, 162, 177, 122, 168, 168, 168, 121, 121, 177, 168, 179, 168,
 
2845
+ 166, 122, 160, 169, 168, 177, 160, 168, 168, 169, 176, 168, 162, 129, 121, 168,
 
2846
+ 168, 168, 166, 177, 122, 177, 165, 195, 174, 171, 181, 94, 94, 130, 160, 130,
 
2847
+ 130, 130, 130, 161, 92, 130, 142, 160, 161, 177, 177, 185, 185, 121, 168, 122,
 
2848
+ 166, 161, 177, 169, 190, 168, 121, 121, 177, 161, 168, 185, 122, 161, 176, 168,
 
2849
+ 166, 185, 191, 168, 177, 177, 167, 168, 178, 164, 176, 168, 122, 122, 168, 177,
 
2850
+ 177, 161, 160, 168, 169, 177, 142, 168, 160, 168, 186, 160, 161, 176, 121, 166,
 
2851
+ 168, 185, 113, 168, 130, 130, 173, 173, 130, 161, 130, 177, 161, 168, 178, 164,
 
2852
+ 168, 171, 176, 177, 176, 161, 161, 161, 122, 168, 182, 177, 177, 177, 185, 171,
 
2853
+ 191, 177, 161, 162, 161, 168, 168, 169, 168, 122, 161, 168, 168, 176, 168, 121,
 
2854
+ 168, 160, 168, 177, 177, 168, 178, 168, 122, 129, 122, 171, 160, 177, 161, 168,
 
2855
+ 161, 161, 185, 181, 130, 166, 161, 176, 121, 168, 168, 168, 168, 160, 161, 177,
 
2856
+ 171, 209, 122, 121, 161, 169, 185, 168, 177, 176, 121, 164, 168, 177, 122, 177,
 
2857
+ 168, 164, 97, 177, 122, 121, 177, 161, 164, 169, 161, 121, 176, 122, 122, 160,
 
2858
+ 122, 168, 121, 171, 160, 130, 160, 130, 130, 181, 130, 121, 169, 177, 171, 171,
 
2859
+ 179, 121, 169, 168, 188, 122, 161, 121, 161, 177, 188, 171, 162, 122, 190, 168,
 
2860
+ 166, 164, 122, 160, 121, 164, 168, 166, 122, 168, 121, 168, 161, 94, 130, 161,
 
2861
+ 142, 198, 122, 178, 166, 193, 122, 198, 168, 177, 163, 168, 121, 171, 161, 178,
 
2862
+ 171, 142, 121, 168, 121, 162, 181, 171, 168, 161, 121, 171, 168, 178, 121, 177,
 
2863
+ 122, 177, 92, 168, 191, 181, 97, 168, 164, 166, 163, 161, 168, 168, 168, 171,
 
2864
+ 168, 160, 130, 177, 171, 168, 177, 168, 122, 171, 161, 177, 142, 121, 163, 163,
 
2865
+ 168, 168, 177, 121, 142, 185, 177, 161, 161, 177, 121, 122, 121, 168, 166, 122,
 
2866
+ 94, 164, 168, 168, 175, 175, 122, 180, 122, 122, 162, 122, 162, 177, 122, 122,
 
2867
+ 161, 168, 161, 177, 161, 122, 168, 162, 122, 176, 168, 161, 130, 198, 195, 122,
 
2868
+ 162, 122, 162, 168, 171, 169, 122, 121, 142, 169, 161, 130, 168, 169, 122, 163,
 
2869
+ 164, 161, 122, 122, 168, 168, 122, 177, 168, 92, 168, 174, 122, 203, 161, 168,
 
2870
+ 184, 161, 122, 168, 122, 121, 168, 122, 121, 168, 177, 168, 168, 162, 183, 168,
 
2871
+ 168, 177, 121, 121, 168, 193, 94, 122, 172, 172, 162, 173, 165, 161, 181, 92,
 
2872
+ 122, 122, 177, 130, 168, 171, 168, 122, 162, 122, 161, 122, 122, 177, 168, 122,
 
2873
+ 177, 122, 168, 162, 122, 122, 164, 122, 168, 130, 168, 122, 121, 184, 177, 122,
 
2874
+ 122, 92, 177, 177, 162, 160, 168, 121, 168, 122, 161, 168, 122, 122, 160, 177,
 
2875
+ 92, 122, 177, 167, 167, 122, 167, 161, 162, 164, 161, 122, 122, 168, 176, 122,
 
2876
+ 177, 160, 165, 168, 182, 92, 176, 122, 162, 113, 168, 178, 161, 168, 168, 177,
 
2877
+ 186, 178, 169, 203, 161, 122, 122, 184, 122, 122, 161, 161, 122, 122, 185, 185,
 
2878
+ 166, 122, 177, 168, 191, 177, 173, 130, 92, 164, 122, 180, 194, 194, 164, 193,
 
2879
+ 176, 161, 169, 167, 177, 168, 122, 121, 177, 191, 122, 168, 122, 177, 122, 122,
 
2880
+ 194, 191, 177, 122, 122, 190, 162, 161, 160, 130, 161, 161, 178, 166, 193, 122,
 
2881
+ 122, 177, 177, 163, 171, 122, 177, 122, 122, 164, 162, 177, 164, 122, 177, 122,
 
2882
+ 193, 190, 168, 177, 165, 167, 165, 164, 161, 177, 194, 195, 184, 92, 130, 113,
 
2883
+ 164, 122, 121, 122, 198, 171, 164, 168, 160, 121, 177, 186, 176, 161, 164, 122,
 
2884
+ 161, 177, 169, 170, 130, 130, 130, 174, 162, 191, 96, 191, 177, 121, 121, 165,
 
2885
+ 164, 166, 178, 160, 122, 194, 122, 198, 122, 196, 177, 193, 177, 161, 122, 122,
 
2886
+ 169, 168, 168, 193, 122, 162, 122, 190, 191, 177, 122, 177, 177, 160, 176, 164,
 
2887
+ 177, 181, 130, 113, 122, 94, 168, 122, 121, 121, 168, 177, 166, 171, 198, 161,
 
2888
+ 191, 122, 163, 161, 168, 168, 122, 122, 121, 177, 163, 162, 164, 122, 92, 177,
 
2889
+ 191, 168, 121, 92, 163, 161, 181, 130, 96, 168, 168, 121, 161, 163, 122, 168,
 
2890
+ 168, 171, 191, 203, 122, 177, 160, 168, 142, 122, 168, 191, 181, 168, 165, 163,
 
2891
+ 177, 181, 162, 164, 121, 161, 126, 121, 177, 121, 168, 168, 177, 160, 163, 177,
 
2892
+ 161, 161, 168, 92, 164, 161, 121, 161, 168, 122, 178, 166, 122, 122, 168, 164,
 
2893
+ 121, 161, 161, 168, 168, 161, 122, 161, 177, 169, 92, 177, 171, 168, 177, 161,
 
2894
+ 122, 94, 122, 122, 122, 181, 168, 122, 121, 122, 197, 162, 122, 113, 122, 122,
 
2895
+ 122, 168, 160, 121, 168, 177, 161, 162, 122, 122, 185, 122, 160, 122, 163, 178,
 
2896
+ 185, 161, 168, 177, 122, 122, 172, 122, 168, 164, 161, 122, 162, 122, 198, 122,
 
2897
+ 177, 168, 177, 168, 161, 160, 122, 121, 122, 92, 122, 122, 122, 122, 121, 173,
 
2898
+ 92, 122, 161, 177, 122, 96, 198, 181, 178, 168, 165, 168, 168, 122, 177, 178,
 
2899
+ 130, 113, 130, 130, 160, 177, 122, 177, 166, 122, 161, 168, 166, 168, 122, 122,
 
2900
+ 122, 122, 161, 122, 164, 177, 122, 97, 161, 178, 168, 161, 122, 177, 122, 122,
 
2901
+ 169, 175, 153, 113, 113, 184, 162, 94, 130, 130, 169, 161, 177, 122, 162, 122,
 
2902
+ 122, 121, 169, 122, 177, 122, 177, 122, 168, 168, 168, 191, 169, 168, 122, 122,
 
2903
+ 161, 166, 161, 168, 166, 178, 168, 122, 161, 122, 161, 122, 178, 168, 177, 193,
 
2904
+ 122, 177, 168, 188, 168, 122, 164, 122, 166, 177, 122, 162, 122, 122, 130, 168,
 
2905
+ 153, 113, 184, 173, 160, 130, 113, 130, 130, 113, 130, 130, 160, 130, 168, 122,
 
2906
+ 190, 163, 177, 165, 142, 166, 122, 165, 122, 178, 168, 177, 164, 162, 183, 160,
 
2907
+ 177, 167, 177, 166, 122, 177, 178, 161, 177, 177, 178, 168, 168, 168, 178, 122,
 
2908
+ 122, 122, 190, 122, 122, 161, 160, 163, 167, 176, 122, 168, 166, 122, 169, 168,
 
2909
+ 130, 162, 169, 168, 178, 96, 177, 178, 161, 122, 168, 168, 122, 168, 178, 122,
 
2910
+ 192, 122, 177, 122, 122, 121, 191, 177, 168, 163, 168, 196, 168, 130, 198, 169,
 
2911
+ 179, 160, 153, 153, 153, 173, 161, 130, 130, 130, 130, 130, 130, 94, 130, 130,
 
2912
+ 160, 130, 194, 122, 177, 161, 165, 122, 97, 164, 168, 160, 168, 166, 172, 177,
 
2913
+ 168, 122, 198, 161, 161, 168, 168, 164, 177, 169, 122, 178, 164, 177, 168, 191,
 
2914
+ 164, 177, 167, 166, 178, 168, 160, 179, 122, 122, 168, 177, 122, 122, 179, 162,
 
2915
+ 122, 122, 122, 122, 166, 176, 169, 160, 122, 185, 90, 168, 176, 178, 165, 168,
 
2916
+ 122, 122, 164, 122, 122, 174, 160, 162, 164, 181, 161, 162, 113, 153, 161, 113,
 
2917
+ 130, 130, 130, 202, 130, 170, 130, 202, 130, 130, 92, 166, 161, 194, 177, 177,
 
2918
+ 164, 177, 177, 161, 167, 177, 122, 167, 168, 177, 164, 177, 177, 168, 178, 121,
 
2919
+ 168, 122, 171, 169, 163, 122, 176, 168, 182, 168, 168, 168, 168, 113, 161, 165,
 
2920
+ 168, 168, 168, 122, 121, 161, 177, 122, 163, 161, 164, 178, 177, 121, 161, 121,
 
2921
+ 178, 188, 122, 177, 168, 164, 175, 122, 122, 177, 177, 168, 168, 122, 177, 122,
 
2922
+ 122, 121, 177, 122, 168, 122, 198, 161, 161, 172, 113, 162, 113, 94, 92, 92,
 
2923
+ 130, 161, 130, 160, 121, 193, 178, 168, 177, 122, 172, 122, 177, 122, 168, 164,
 
2924
+ 177, 177, 122, 177, 178, 122, 177, 121, 122, 162, 122, 161, 177, 177, 168, 121,
 
2925
+ 122, 178, 161, 169, 168, 164, 168, 121, 191, 168, 177, 177, 177, 164, 122, 178,
 
2926
+ 166, 166, 121, 168, 168, 176, 177, 168, 168, 122, 122, 171, 166, 177, 161, 161,
 
2927
+ 198, 175, 160, 160, 178, 122, 177, 168, 178, 163, 177, 167, 178, 122, 122, 178,
 
2928
+ 166, 177, 122, 177, 168, 168, 162, 177, 160, 113, 153, 153, 181, 92, 161, 130,
 
2929
+ 130, 113, 113, 113, 130, 178, 113, 183, 113, 161, 178, 92, 160, 130, 161, 168,
 
2930
+ 122, 164, 168, 177, 167, 177, 172, 168, 177, 167, 92, 177, 168, 165, 160, 165,
 
2931
+ 168, 168, 166, 160, 168, 177, 160, 161, 168, 177, 121, 168, 168, 161, 177, 168,
 
2932
+ 161, 168, 168, 121, 122, 198, 168, 192, 168, 180, 122, 171, 178, 169, 122, 168,
 
2933
+ 122, 198, 180, 190, 163, 177, 166, 160, 188, 177, 178, 122, 177, 121, 122, 180,
 
2934
+ 177, 166, 182, 172, 178, 121, 168, 122, 165, 122, 177, 177, 184, 181, 113, 162,
 
2935
+ 90, 113, 169, 168, 130, 160, 96, 130, 130, 130, 153, 92, 92, 166, 178, 161,
 
2936
+ 168, 178, 164, 168, 169, 122, 177, 168, 174, 168, 168, 122, 122, 161, 168, 160,
 
2937
+ 178, 177, 160, 97, 168, 191, 171, 165, 176, 168, 168, 176, 168, 176, 121, 177,
 
2938
+ 168, 167, 172, 168, 122, 168, 168, 176, 162, 168, 164, 122, 177, 168, 178, 178,
 
2939
+ 160, 122, 168, 121, 168, 164, 168, 113, 164, 168, 167, 121, 122, 121, 167, 168,
 
2940
+ 122, 163, 161, 142, 185, 160, 163, 162, 181, 178, 92, 130, 92, 113, 113, 130,
 
2941
+ 130, 160, 177, 161, 168, 177, 168, 178, 121, 160, 195, 178, 168, 169, 177, 164,
 
2942
+ 161, 177, 167, 171, 168, 162, 168, 168, 168, 172, 160, 180, 168, 122, 177, 165,
 
2943
+ 177, 171, 121, 182, 168, 142, 168, 168, 168, 168, 122, 172, 172, 168, 161, 177,
 
2944
+ 161, 188, 181, 121, 178, 177, 168, 165, 185, 121, 163, 178, 160, 177, 121, 122,
 
2945
+ 177, 122, 181, 121, 164, 168, 168, 168, 166, 181, 184, 153, 160, 160, 113, 130,
 
2946
+ 162, 130, 177, 160, 177, 122, 181, 164, 121, 121, 121, 177, 168, 122, 166, 177,
 
2947
+ 168, 168, 161, 161, 122, 163, 177, 169, 121, 177, 164, 121, 160, 168, 177, 168,
 
2948
+ 166, 177, 193, 203, 168, 177, 177, 160, 122, 122, 168, 166, 161, 168, 168, 121,
 
2949
+ 168, 122, 142, 161, 177, 170, 178, 177, 168, 168, 177, 126, 161, 168, 161, 168,
 
2950
+ 161, 174, 113, 162, 94, 92, 168, 161, 113, 130, 160, 92, 130, 161, 171, 178,
 
2951
+ 122, 177, 160, 177, 122, 168, 164, 177, 161, 191, 160, 162, 168, 180, 165, 160,
 
2952
+ 169, 166, 168, 168, 97, 168, 168, 122, 161, 160, 168, 177, 121, 163, 177, 177,
 
2953
+ 169, 168, 121, 121, 168, 177, 168, 160, 168, 130, 181, 174, 169, 168, 142, 171,
 
2954
+ 164, 163, 160, 121, 177, 160, 168, 168, 142, 168, 168, 121, 161, 177, 163, 164,
 
2955
+ 161, 181, 121, 121, 161, 168, 177, 168, 163, 182, 160, 168, 177, 168, 161, 168,
 
2956
+ 177, 178, 161, 121, 163, 164, 162, 161, 160, 168, 121, 121, 177, 171, 178, 178,
 
2957
+ 168, 168, 161, 161, 162, 97, 161, 177, 178, 161, 178, 168, 171, 161, 168, 168,
 
2958
+ 177, 177, 162, 168, 161, 161, 128, 92, 168, 168, 142, 121, 177, 164, 161, 161,
 
2959
+ 168, 161, 177, 177, 121, 153, 164, 164, 168, 177, 121, 168, 183, 161, 161, 177,
 
2960
+ 171, 177, 180, 168, 161, 92, 121, 177, 168, 168, 168, 164, 161, 172, 177, 113,
 
2961
+ 122, 122, 173, 122, 206, 168, 161, 184, 177, 161, 161, 164, 177, 168, 161, 177,
 
2962
+ 161, 168, 122, 168, 168, 163, 177, 167, 178, 167, 122, 177, 168, 121, 122, 177,
 
2963
+ 161, 168, 168, 167, 161, 168, 192, 122, 168, 169, 177, 168, 122, 177, 121, 161,
 
2964
+ 121, 168, 163, 181, 178, 168, 177, 160, 164, 169, 92, 178, 97, 164, 168, 121,
 
2965
+ 177, 121, 122, 122, 122, 129, 122, 176, 161, 181, 122, 164, 161, 168, 164, 172,
 
2966
+ 162, 161, 126, 181, 172, 162, 168, 126, 121, 169, 160, 122, 130, 162, 177, 121,
 
2967
+ 178, 179, 166, 122, 165, 162, 122, 130, 168, 122, 122, 184, 168, 167, 168, 168,
 
2968
+ 161, 168, 130, 130, 168, 178, 122, 177, 121, 168, 130, 166, 161, 161, 180, 177,
 
2969
+ 177, 173, 177, 177, 142, 168, 168, 168, 162, 162, 167, 178, 162, 177, 188, 121,
 
2970
+ 177, 113, 121, 167, 184, 122, 168, 122, 162, 162, 121, 181, 121, 177, 164, 122,
 
2971
+ 142, 207, 130, 177, 177, 122, 121, 168, 168, 177, 168, 122, 177, 122, 181, 129,
 
2972
+ 168, 161, 122, 122, 122, 130, 192, 129, 180, 130, 171, 122, 160, 161, 168, 113,
 
2973
+ 168, 174, 168, 177, 168, 161, 177, 177, 168, 161, 179, 122, 121, 161, 162, 169,
 
2974
+ 168, 162, 168, 167, 161, 130, 161, 177, 168, 166, 160, 168, 168, 96, 168, 177,
 
2975
+ 168, 168, 177, 168, 177, 176, 185, 130, 121, 177, 161, 168, 168, 166, 162, 122,
 
2976
+ 176, 122, 162, 122, 167, 185, 96, 113, 185, 166, 185, 169, 160, 168, 161, 176,
 
2977
+ 168, 185, 130, 121, 169, 168, 176, 176, 176, 130, 185, 97, 171, 161, 176, 96,
 
2978
+ 185, 160, 173, 171, 122, 90, 177, 198, 122, 160, 182, 177, 161, 170, 121, 177,
 
2979
+ 122, 122, 122, 168, 161, 161, 185, 130, 92, 170, 166, 177, 168, 171, 121, 177,
 
2980
+ 122, 161, 177, 161, 166, 122, 161, 122, 160, 171, 198, 176, 166, 122, 122, 122,
 
2981
+ 122, 96, 113, 161, 130, 168, 168, 177, 122, 185, 122, 177, 161, 191, 160, 177,
 
2982
+ 122, 168, 122, 178, 176, 160, 190, 161, 177, 174, 121, 177, 161, 122, 122, 160,
 
2983
+ 168, 122, 122, 122, 168, 190, 190, 191, 122, 176, 168, 168, 122, 142, 168, 185,
 
2984
+ 122, 161, 121, 165, 190, 191, 121, 164, 171, 122, 180, 122, 177, 168, 161, 174,
 
2985
+ 161, 184, 172, 130, 130, 130, 130, 130, 92, 130, 179, 122, 97, 185, 122, 160,
 
2986
+ 177, 169, 174, 122, 177, 92, 168, 168, 122, 122, 178, 122, 122, 122, 122, 122,
 
2987
+ 168, 121, 191, 168, 122, 169, 177, 168, 161, 122, 122, 160, 122, 177, 160, 177,
 
2988
+ 166, 177, 177, 122, 166, 122, 176, 122, 161, 178, 177, 122, 171, 178, 185, 160,
 
2989
+ 176, 122, 122, 122, 161, 122, 161, 177, 122, 177, 175, 192, 177, 168, 192, 122,
 
2990
+ 122, 169, 177, 122, 164, 96, 130, 130, 130, 168, 130, 130, 130, 130, 130, 161,
 
2991
+ 168, 185, 160, 168, 166, 160, 160, 166, 168, 168, 177, 122, 122, 168, 176, 177,
 
2992
+ 168, 191, 167, 164, 161, 161, 168, 122, 168, 165, 166, 122, 161, 168, 122, 178,
 
2993
+ 168, 161, 168, 161, 160, 122, 163, 190, 177, 121, 122, 169, 168, 168, 176, 177,
 
2994
+ 168, 176, 122, 167, 168, 122, 121, 168, 121, 190, 168, 122, 166, 122, 122, 177,
 
2995
+ 168, 122, 168, 130, 181, 184, 130, 130, 130, 92, 130, 130, 92, 130, 170, 130,
 
2996
+ 92, 130, 130, 130, 130, 92, 161, 163, 168, 122, 122, 160, 186, 161, 166, 177,
 
2997
+ 185, 177, 168, 165, 178, 171, 122, 177, 168, 122, 122, 161, 121, 168, 122, 166,
 
2998
+ 177, 160, 160, 161, 122, 168, 168, 122, 122, 121, 168, 168, 166, 168, 168, 194,
 
2999
+ 168, 160, 166, 168, 168, 122, 168, 188, 122, 129, 97, 168, 122, 194, 122, 160,
 
3000
+ 168, 192, 177, 122, 176, 122, 163, 177, 177, 181, 161, 184, 113, 130, 130, 130,
 
3001
+ 130, 130, 92, 130, 170, 160, 130, 130, 130, 130, 176, 185, 177, 161, 96, 122,
 
3002
+ 161, 160, 122, 168, 177, 122, 161, 177, 169, 163, 168, 168, 142, 177, 168, 176,
 
3003
+ 165, 161, 168, 195, 190, 122, 122, 122, 177, 168, 177, 122, 169, 168, 164, 191,
 
3004
+ 168, 122, 142, 168, 168, 178, 166, 168, 122, 122, 126, 177, 168, 166, 122, 177,
 
3005
+ 166, 122, 177, 168, 169, 177, 169, 161, 121, 177, 121, 122, 169, 168, 122, 177,
 
3006
+ 177, 122, 168, 122, 177, 121, 177, 122, 195, 122, 121, 122, 166, 168, 161, 161,
 
3007
+ 177, 161, 160, 168, 163, 169, 161, 181, 181, 181, 175, 113, 173, 130, 130, 160,
 
3008
+ 130, 130, 161, 113, 130, 153, 130, 210, 160, 121, 122, 121, 168, 169, 164, 180,
 
3009
+ 122, 122, 177, 122, 122, 122, 121, 177, 168, 175, 160, 165, 121, 122, 178, 122,
 
3010
+ 168, 168, 190, 168, 129, 168, 191, 92, 122, 177, 122, 177, 191, 194, 121, 168,
 
3011
+ 168, 168, 161, 122, 190, 177, 168, 168, 164, 177, 121, 177, 161, 122, 169, 163,
 
3012
+ 160, 177, 177, 166, 176, 168, 122, 164, 122, 160, 168, 122, 191, 177, 191, 122,
 
3013
+ 168, 168, 177, 171, 168, 168, 168, 121, 177, 97, 161, 165, 161, 161, 122, 121,
 
3014
+ 161, 168, 121, 191, 168, 161, 172, 168, 168, 168, 183, 164, 160, 162, 184, 202,
 
3015
+ 181, 92, 113, 130, 161, 130, 179, 92, 168, 96, 161, 160, 113, 177, 168, 167,
 
3016
+ 122, 161, 168, 177, 168, 92, 121, 168, 169, 177, 160, 168, 122, 121, 168, 165,
 
3017
+ 177, 168, 122, 168, 168, 122, 168, 176, 161, 161, 122, 126, 161, 162, 177, 122,
 
3018
+ 168, 192, 167, 177, 96, 160, 122, 167, 160, 168, 122, 174, 97, 167, 168, 177,
 
3019
+ 177, 166, 122, 177, 121, 121, 168, 176, 177, 180, 177, 122, 121, 177, 191, 166,
 
3020
+ 168, 122, 168, 122, 122, 169, 168, 130, 168, 160, 179, 160, 168, 172, 202, 130,
 
3021
+ 130, 130, 170, 161, 130, 130, 173, 92, 179, 179, 92, 177, 142, 177, 177, 121,
 
3022
+ 161, 168, 142, 161, 122, 168, 168, 142, 180, 166, 160, 177, 168, 177, 121, 121,
 
3023
+ 168, 121, 122, 168, 163, 168, 122, 168, 177, 167, 177, 160, 163, 177, 168, 122,
 
3024
+ 161, 196, 168, 169, 122, 122, 182, 160, 177, 168, 177, 164, 168, 161, 168, 168,
 
3025
+ 122, 168, 121, 121, 170, 168, 177, 168, 161, 176, 176, 122, 121, 166, 168, 176,
 
3026
+ 177, 122, 121, 176, 160, 168, 166, 168, 121, 168, 168, 177, 177, 160, 169, 121,
 
3027
+ 168, 180, 161, 168, 160, 113, 130, 130, 161, 161, 161, 130, 161, 130, 168, 177,
 
3028
+ 168, 188, 177, 177, 121, 168, 94, 191, 122, 164, 191, 121, 175, 177, 192, 121,
 
3029
+ 97, 177, 192, 168, 121, 161, 169, 168, 162, 168, 168, 168, 177, 122, 122, 142,
 
3030
+ 121, 161, 185, 168, 175, 161, 168, 168, 169, 160, 122, 168, 122, 191, 191, 168,
 
3031
+ 142, 198, 178, 162, 122, 168, 142, 177, 190, 185, 160, 177, 166, 192, 122, 161,
 
3032
+ 191, 181, 177, 177, 191, 168, 177, 121, 92, 161, 162, 92, 130, 160, 168, 163,
 
3033
+ 171, 169, 168, 180, 121, 177, 171, 190, 177, 168, 178, 168, 168, 168, 191, 191,
 
3034
+ 177, 121, 168, 122, 97, 163, 176, 161, 168, 122, 168, 160, 177, 168, 203, 168,
 
3035
+ 122, 121, 122, 121, 168, 162, 178, 177, 177, 185, 191, 168, 168, 168, 168, 168,
 
3036
+ 161, 130, 130, 160, 178, 121, 161, 161, 142, 160, 193, 142, 168, 168, 166, 121,
 
3037
+ 122, 122, 168, 168, 121, 161, 168, 168, 177, 188, 161, 121, 121, 168, 169, 122,
 
3038
+ 171, 121, 168, 181, 168, 164, 172, 168, 160, 162, 142, 168, 177, 164, 121, 168,
 
3039
+ 177, 180, 161, 160, 168, 191, 188, 177, 161, 121, 168, 121, 168, 177, 168, 121,
 
3040
+ 161, 122, 92, 161, 168, 121, 168, 177, 121, 168, 122, 122, 194, 121, 198, 121,
 
3041
+ 177, 168, 168, 192, 168, 161, 178, 180, 126, 168, 168, 168, 172, 161, 161, 191,
 
3042
+ 142, 168, 142, 168, 177, 185, 161, 191, 168, 166, 168, 168, 177, 161, 121, 168,
 
3043
+ 168, 168, 168, 177, 177, 168, 168, 161, 177, 177, 177, 163, 122, 161, 162, 130,
 
3044
+ 128, 121, 168, 161, 163, 177, 168, 168, 121, 161, 168, 168, 160, 191, 176, 168,
 
3045
+ 168, 168, 168, 121, 171, 177, 168, 160, 168, 168, 168, 122, 90, 130, 164, 175,
 
3046
+ 122, 168, 161, 161, 168, 174, 176, 161, 122, 160, 168, 161, 122, 121, 174, 170,
 
3047
+ 130, 163, 168, 168, 168, 192, 177, 161, 161, 175, 122, 160, 161, 161, 122, 160,
 
3048
+ 161, 168, 122, 168, 166, 176, 166, 162, 191, 122, 194, 162, 130, 130, 92, 168,
 
3049
+ 160, 194, 161, 160, 188, 160, 160, 160, 161, 168, 161, 190, 122, 122, 169, 122,
 
3050
+ 177, 166, 161, 122, 177, 168, 161, 192, 122, 186, 142, 179, 170, 170, 168, 161,
 
3051
+ 170, 130, 130, 130, 160, 168, 168, 168, 122, 161, 176, 180, 160, 168, 168, 121,
 
3052
+ 160, 177, 168, 177, 177, 163, 163, 168, 190, 122, 168, 173, 177, 180, 168, 186,
 
3053
+ 168, 168, 168, 161, 176, 161, 130, 130, 130, 130, 161, 130, 130, 130, 161, 96,
 
3054
+ 168, 198, 161, 168, 168, 160, 168, 185, 168, 122, 177, 168, 168, 122, 160, 168,
 
3055
+ 168, 161, 168, 164, 191, 182, 177, 164, 161, 122, 96, 177, 191, 168, 168, 164,
 
3056
+ 185, 161, 161, 185, 113, 130, 130, 168, 130, 122, 122, 168, 142, 160, 191, 168,
 
3057
+ 177, 121, 168, 168, 161, 168, 122, 161, 168, 94, 161, 163, 160, 164, 168, 166,
 
3058
+ 190, 166, 168, 160, 160, 160, 122, 161, 164, 161, 168, 160, 113, 161, 94, 161,
 
3059
+ 94, 177, 168, 168, 168, 174, 171, 191, 161, 121, 209, 177, 122, 168, 122, 160,
 
3060
+ 191, 160, 177, 168, 168, 113, 121, 164, 168, 121, 177, 161, 190, 168, 190, 168,
 
3061
+ 177, 168, 178, 168, 122, 121, 122, 122, 176, 121, 168, 160, 121, 161, 122, 161,
 
3062
+ 168, 160, 185, 170, 161, 160, 160, 160, 185, 162, 170, 168, 160, 122, 160, 161,
 
3063
+ 177, 168, 168, 161, 122, 177, 168, 177, 172, 194, 122, 161, 163, 161, 160, 165,
 
3064
+ 168, 161, 188, 161, 122, 113, 160, 168, 170, 122, 177, 177, 168, 168, 168, 122,
 
3065
+ 166, 168, 193, 160, 168, 168, 161, 168, 169, 168, 168, 161, 122, 160, 161, 177,
 
3066
+ 177, 121, 177, 166, 160, 185, 161, 160, 168, 122, 193, 161, 168, 168, 121, 177,
 
3067
+ 177, 191, 168, 122, 171, 168, 168, 168, 121, 121, 168, 177, 164, 161, 122, 168,
 
3068
+ 121, 160, 121, 164, 165, 122, 177, 113, 168, 171, 177, 168, 171, 160, 161, 121,
 
3069
+ 169, 168, 168, 161, 168, 122, 121, 122, 168, 161, 161, 160, 142, 121, 122, 161,
 
3070
+ 168, 168, 168, 161, 97, 153, 94, 92, 171, 167, 161, 121, 121, 168, 188, 180,
 
3071
+ 204, 168, 168, 168, 161, 168, 122, 177, 164, 182, 168, 161, 168, 142, 160, 160,
 
3072
+ 121, 161, 161, 177, 168, 160, 160, 163, 161, 168, 177, 121, 161, 166, 168, 177,
 
3073
+ 161, 161, 168, 168, 163, 161, 168, 168, 169, 168, 122, 182, 122, 121, 160, 162,
 
3074
+ 122, 130, 196, 92, 162, 122, 122, 130, 176, 176, 121, 122, 181, 122, 121, 167,
 
3075
+ 198, 177, 177, 162, 168, 162, 121, 122, 122, 168, 168, 178, 122, 130, 164, 177,
 
3076
+ 163, 161, 122, 177, 92, 163, 176, 160, 121, 122, 177, 122, 182, 122, 177, 122,
 
3077
+ 171, 122, 122, 177, 161, 161, 179, 122, 164, 122, 168, 162, 168, 161, 166, 176,
 
3078
+ 168, 162, 122, 168, 142, 130, 168, 177, 177, 122, 173, 177, 177, 121, 167, 166,
 
3079
+ 122, 122, 172, 161, 176, 168, 168, 172, 168, 177, 130, 185, 168, 166, 177, 170,
 
3080
+ 168, 168, 169, 177, 160, 168, 142, 168, 168, 161, 168, 171, 92, 168, 168, 170,
 
3081
+ 113, 168, 121, 168, 168, 168, 168, 121, 177, 168, 168, 161, 122, 90, 177, 122,
 
3082
+ 185, 164, 172, 92, 166, 168, 184, 130, 130, 184, 168, 161, 161, 168, 164, 168,
 
3083
+ 126, 166, 122, 167, 122, 168, 178, 164, 130, 177, 168, 168, 177, 179, 122, 161,
 
3084
+ 122, 168, 167, 161, 168, 162, 177, 122, 177, 122, 168, 181, 168, 92, 130, 177,
 
3085
+ 169, 122, 172, 168, 168, 164, 168, 161, 185, 122, 168, 168, 184, 184, 130, 130,
 
3086
+ 130, 130, 130, 166, 166, 161, 168, 169, 122, 121, 166, 166, 122, 121, 177, 168,
 
3087
+ 168, 185, 163, 130, 182, 162, 161, 177, 168, 92, 165, 177, 168, 162, 173, 168,
 
3088
+ 160, 168, 177, 176, 92, 130, 122, 167, 177, 171, 161, 122, 122, 165, 166, 113,
 
3089
+ 92, 130, 166, 168, 164, 122, 168, 177, 163, 122, 186, 186, 174, 168, 175, 181,
 
3090
+ 168, 166, 177, 168, 169, 177, 121, 122, 179, 170, 177, 177, 168, 162, 122, 122,
 
3091
+ 168, 160, 168, 177, 121, 121, 161, 161, 160, 168, 168, 161, 168, 166, 142, 172,
 
3092
+ 190, 168, 192, 161, 161, 161, 162, 122, 177, 168, 168, 168, 92, 177, 177, 177,
 
3093
+ 166, 168, 168, 113, 92, 168, 177, 177, 121, 177, 180, 177, 166, 130, 177, 166,
 
3094
+ 121, 163, 121, 168, 94, 121, 168, 171, 121, 162, 121, 121, 177, 168, 185, 168,
 
3095
+ 171, 177, 168, 177, 122, 177, 188, 122, 168, 122, 168, 122, 161, 161, 192, 160,
 
3096
+ 162, 130, 168, 177, 194, 177, 122, 191, 193, 92, 92, 130, 163, 168, 163, 190,
 
3097
+ 177, 168, 166, 161, 168, 171, 177, 203, 97, 122, 163, 176, 168, 191, 130, 173,
 
3098
+ 130, 92, 122, 122, 168, 177, 168, 176, 168, 191, 130, 169, 177, 164, 168, 177,
 
3099
+ 122, 161, 165, 168, 161, 177, 177, 168, 167, 209, 122, 177, 191, 122, 172, 209,
 
3100
+ 179, 130, 177, 177, 168, 160, 191, 168, 168, 192, 168, 168, 168, 191, 122, 161,
 
3101
+ 122, 163, 160, 191, 203, 165, 193, 166, 168, 192, 121, 168, 161, 122, 142, 160,
 
3102
+ 92, 113, 130, 160, 177, 177, 168, 193, 178, 193, 177, 163, 168, 191, 121, 177,
 
3103
+ 177, 191, 161, 122, 177, 122, 122, 191, 168, 122, 176, 168, 168, 97, 92, 130,
 
3104
+ 130, 182, 160, 183, 160, 160, 168, 160, 161, 160, 166, 190, 160, 168, 160, 160,
 
3105
+ 194, 194, 122, 168, 177, 122, 190, 161, 190, 177, 190, 191, 192, 177, 192, 188,
 
3106
+ 192, 177, 178, 122, 122, 122, 122, 94, 203, 163, 121, 161, 179, 161, 161, 121,
 
3107
+ 191, 122, 168, 193, 191, 160, 177, 163, 160, 160, 168, 191, 161, 177, 168, 168,
 
3108
+ 168, 177, 177, 160, 168, 122, 160, 192, 161, 122, 122, 122, 122, 163, 122, 122,
 
3109
+ 198, 161, 191, 142, 121, 203, 164, 177, 193, 121, 121, 163, 160, 176, 177, 121,
 
3110
+ 169, 177, 177, 178, 160, 168, 175, 130, 92, 168, 160, 161, 168, 168, 122, 168,
 
3111
+ 176, 166, 203, 122, 161, 177, 177, 192, 168, 191, 168, 122, 160, 160, 130, 162,
 
3112
+ 166, 162, 177, 161, 168, 168, 161, 168, 188, 163, 177, 160, 190, 161, 122, 188,
 
3113
+ 177, 191, 181, 188, 160, 194, 171, 122, 190, 176, 191, 177, 161, 168, 164, 177,
 
3114
+ 121, 177, 191, 161, 160, 191, 168, 168, 168, 204, 185, 177, 161, 121, 168, 188,
 
3115
+ 168, 168, 168, 168, 161, 168, 183, 161, 163, 164, 121, 168, 163, 161, 161, 121,
 
3116
+ 163, 161, 130, 163, 121, 168, 97, 168, 191, 168, 188, 177, 122, 168, 166, 177,
 
3117
+ 122, 168, 122, 122, 176, 168, 122, 153, 177, 142, 162, 164, 168, 161, 165, 189,
 
3118
+ 153, 153, 153, 161, 166, 168, 169, 122, 153, 161, 162, 177, 162, 168, 168, 166,
 
3119
+ 168, 195, 168, 178, 122, 153, 164, 168, 168, 161, 161, 168, 142, 169, 172, 185,
 
3120
+ 168, 165, 177, 167, 168, 121, 177, 177, 122, 170, 122, 195, 169, 168, 172, 122,
 
3121
+ 162, 177, 97, 196, 164, 122, 121, 162, 122, 176, 177, 122, 122, 96, 168, 166,
 
3122
+ 122, 122, 122, 122, 94, 170, 162, 122, 122, 177, 165, 175, 113, 171, 166, 177,
 
3123
+ 166, 161, 160, 162, 181, 130, 172, 191, 166, 181, 172, 169, 122, 172, 176, 122,
 
3124
+ 164, 205, 162, 128, 122, 160, 161, 164, 161, 122, 169, 165, 122, 121, 164, 177,
 
3125
+ 153, 164, 121, 168, 178, 122, 122, 172, 161, 113, 122, 142, 168, 172, 160, 191,
 
3126
+ 121, 164, 170, 113, 202, 183, 121, 178, 122, 166, 193, 162, 162, 177, 177, 122,
 
3127
+ 168, 164, 113, 179, 168, 162, 122, 121, 92, 181, 121, 122, 168, 94, 198, 122,
 
3128
+ 177, 122, 174, 164, 167, 177, 130, 130, 168, 176, 169, 161, 162, 122, 160, 130,
 
3129
+ 130, 130, 171, 169, 176, 122, 161, 168, 161, 92, 168, 122, 130, 92, 130, 130,
 
3130
+ 185, 186, 122, 122, 174, 122, 168, 92, 122, 122, 177, 168, 122, 122, 122, 177,
 
3131
+ 177, 177, 122, 175, 166, 122, 162, 122, 170, 130, 169, 168, 177, 122, 177, 177,
 
3132
+ 168, 168, 165, 161, 122, 122, 130, 177, 122, 121, 168, 122, 182, 168, 169, 177,
 
3133
+ 171, 177, 122, 169, 166, 161, 185, 166, 130, 113, 130, 130, 162, 168, 164, 177,
 
3134
+ 122, 176, 121, 142, 122, 168, 168, 168, 168, 166, 121, 168, 165, 168, 178, 169,
 
3135
+ 190, 169, 163, 166, 162, 130, 92, 163, 177, 142, 166, 142, 166, 121, 161, 177,
 
3136
+ 185, 168, 162, 171, 168, 166, 177, 130, 130, 192, 168, 166, 177, 177, 177, 122,
 
3137
+ 122, 121, 122, 177, 122, 166, 190, 142, 168, 176, 130, 130, 160, 166, 92, 168,
 
3138
+ 167, 168, 177, 166, 169, 166, 161, 161, 176, 162, 171, 198, 166, 168, 130, 130,
 
3139
+ 90, 162, 121, 166, 164, 164, 142, 178, 178, 177, 162, 162, 122, 170, 203, 160,
 
3140
+ 168, 160, 121, 168, 170, 162, 122, 168, 142, 177, 168, 161, 167, 92, 130, 171,
 
3141
+ 168, 121, 142, 130, 191, 171, 94, 172, 181, 121, 178, 130, 121, 177, 171, 174,
 
3142
+ 180, 171, 121, 160, 182, 168, 172, 161, 122, 168, 153, 122, 121, 122, 122, 168,
 
3143
+ 181, 177, 96, 181, 122, 162, 122, 122, 169, 168, 168, 169, 162, 162, 122, 168,
 
3144
+ 198, 130, 168, 122, 161, 177, 169, 161, 161, 167, 142, 177, 177, 177, 168, 162,
 
3145
+ 162, 160, 162, 164, 166, 163, 177, 162, 162, 161, 177, 168, 92, 177, 122, 168,
 
3146
+ 142, 130, 130, 161, 169, 168, 92, 172, 178, 181, 121, 168, 161, 177, 168, 122,
 
3147
+ 161, 164, 122, 121, 168, 176, 122, 161, 122, 177, 122, 164, 163, 169, 176, 130,
 
3148
+ 130, 130, 122, 168, 176, 161, 186, 184, 130, 164, 168, 122, 121, 168, 121, 122,
 
3149
+ 162, 121, 161, 121, 121, 169, 177, 121, 162, 168, 142, 161, 177, 168, 122, 96,
 
3150
+ 177, 166, 122, 168, 122, 168, 162, 168, 122, 176, 168, 178, 190, 161, 122, 161,
 
3151
+ 162, 122, 92, 168, 165, 168, 164, 169, 165, 122, 177, 122, 153, 130, 163, 160,
 
3152
+ 168, 168, 177, 168, 162, 177, 161, 162, 161, 166, 166, 178, 162, 168, 198, 169,
 
3153
+ 122, 161, 166, 168, 172, 178, 175, 168, 176, 122, 161, 160, 92, 166, 162, 166,
 
3154
+ 161, 168, 168, 168, 177, 166, 176, 122, 122, 177, 122, 168, 122, 177, 171, 161,
 
3155
+ 186, 130, 164, 179, 168, 177, 177, 167, 161, 161, 177, 168, 168, 191, 177, 171,
 
3156
+ 130, 130, 177, 161, 168, 168, 177, 162, 160, 168, 167, 122, 171, 161, 171, 177,
 
3157
+ 177, 122, 176, 122, 164, 169, 122, 177, 169, 168, 171, 122, 176, 168, 168, 168,
 
3158
+ 162, 161, 182, 162, 164, 161, 161, 160, 160, 122, 163, 160, 168, 176, 165, 122,
 
3159
+ 166, 168, 168, 168, 176, 185, 92, 97, 168, 168, 161, 121, 176, 166, 169, 168,
 
3160
+ 161, 122, 130, 94, 162, 177, 164, 168, 160, 168, 177, 168, 168, 168, 121, 176,
 
3161
+ 169, 168, 166, 168, 161, 122, 161, 176, 168, 173, 176, 168, 122, 121, 162, 163,
 
3162
+ 122, 177, 168, 122, 168, 166, 178, 168, 161, 172, 168, 122, 121, 169, 163, 122,
 
3163
+ 161, 161, 168, 182, 168, 160, 161, 142, 92, 177, 168, 94, 168, 167, 168, 168,
 
3164
+ 168, 164, 162, 97, 168, 177, 161, 122, 168, 177, 142, 122, 122, 161, 177, 164,
 
3165
+ 177, 92, 122, 122, 162, 122, 163, 167, 168, 122, 162, 130, 166, 122, 122, 121,
 
3166
+ 177, 177, 168, 122, 163, 161, 130, 168, 166, 168, 168, 177, 178, 96, 170, 130,
 
3167
+ 130, 130, 122, 168, 161, 177, 177, 161, 160, 166, 161, 161, 169, 176, 177, 168,
 
3168
+ 168, 166, 165, 168, 169, 181, 130, 130, 170, 161, 130, 161, 170, 176, 160, 96,
 
3169
+ 142, 177, 177, 166, 161, 122, 165, 122, 168, 185, 168, 168, 211, 176, 177, 168,
 
3170
+ 176, 168, 121, 168, 122, 177, 161, 176, 96, 170, 202, 130, 170, 160, 130, 113,
 
3171
+ 130, 92, 160, 171, 182, 165, 161, 174, 177, 168, 168, 160, 166, 168, 176, 195,
 
3172
+ 185, 160, 166, 160, 160, 130, 130, 130, 161, 92, 92, 92, 177, 122, 177, 161,
 
3173
+ 177, 162, 168, 164, 177, 168, 160, 92, 177, 168, 166, 122, 122, 185, 166, 121,
 
3174
+ 168, 168, 113, 92, 113, 92, 161, 130, 161, 168, 163, 168, 122, 161, 177, 97,
 
3175
+ 168, 198, 161, 168, 168, 168, 178, 165, 160, 96, 164, 161, 122, 186, 122, 177,
 
3176
+ 161, 122, 161, 169, 177, 178, 168, 122, 176, 168, 167, 130, 130, 162, 177, 176,
 
3177
+ 168, 166, 168, 122, 177, 185, 161, 122, 177, 121, 178, 168, 177, 177, 161, 172,
 
3178
+ 176, 174, 166, 176, 185, 113, 94, 161, 160, 170, 121, 191, 121, 162, 169, 162,
 
3179
+ 161, 122, 161, 168, 168, 122, 181, 163, 177, 166, 122, 122, 177, 168, 191, 168,
 
3180
+ 122, 178, 163, 163, 167, 176, 164, 94, 160, 130, 142, 177, 161, 168, 168, 177,
 
3181
+ 177, 177, 168, 168, 162, 168, 162, 142, 122, 168, 177, 161, 122, 168, 160, 121,
 
3182
+ 160, 160, 166, 177, 169, 128, 162, 176, 161, 168, 176, 191, 168, 178, 168, 177,
 
3183
+ 162, 122, 168, 92, 168, 185, 163, 181, 161, 168, 161, 161, 177, 161, 121, 92,
 
3184
+ 177, 178, 178, 185, 168, 161, 183, 168, 161, 142, 164, 168, 177, 168, 166, 162,
 
3185
+ 164, 168, 161, 168, 185, 177, 142, 177, 168, 177, 121, 121, 121, 177, 160, 168,
 
3186
+ 161, 177, 160, 94, 90, 177, 94, 161, 168, 168, 122, 90, 175, 177, 122, 177,
 
3187
+ 122, 122, 168, 92, 177, 177, 176, 121, 122, 122, 177, 177, 168, 161, 92, 177,
 
3188
+ 121, 177, 168, 167, 177, 142, 122, 122, 163, 160, 122, 192, 192, 122, 122, 169,
 
3189
+ 122, 168, 175, 168, 168, 122, 161, 166, 122, 177, 168, 177, 161, 122, 161, 130,
 
3190
+ 168, 160, 177, 168, 168, 161, 161, 202, 130, 177, 122, 162, 177, 168, 163, 121,
 
3191
+ 175, 122, 168, 160, 184, 202, 160, 160, 168, 161, 167, 177, 162, 121, 121, 122,
 
3192
+ 168, 201, 168, 177, 177, 177, 177, 168, 177, 160, 185, 177, 177, 172, 161, 160,
 
3193
+ 168, 177, 168, 161, 168, 160, 121, 122, 177, 163, 121, 177, 168, 168, 121, 164,
 
3194
+ 178, 188, 168, 122, 177, 161, 168, 168, 177, 122, 169, 166, 161, 122, 122, 121,
 
3195
+ 122, 122, 162, 173, 163, 168, 179, 164, 171, 122, 204, 122, 160, 185, 168, 177,
 
3196
+ 161, 122, 122, 161, 163, 165, 177, 161, 122, 161, 164, 161, 168, 177, 177, 122,
 
3197
+ 177, 181, 163, 169, 122, 164, 122, 122, 161, 122, 177, 166, 178, 166, 168, 130,
 
3198
+ 184, 163, 161, 161, 94, 161, 168, 168, 166, 161, 168, 122, 162, 130, 92, 161,
 
3199
+ 122, 92, 166, 166, 168, 126, 170, 164, 121, 164, 177, 122, 177, 122, 184, 161,
 
3200
+ 168, 177, 168, 168, 122, 177, 92, 165, 178, 180, 122, 177, 121, 161, 176, 121,
 
3201
+ 122, 162, 168, 130, 92, 161, 168, 162, 168, 161, 161, 177, 161, 163, 121, 177,
 
3202
+ 177, 121, 181, 130, 162, 162, 183, 122, 164, 166, 163, 122, 122, 122, 172, 122,
 
3203
+ 121, 161, 181, 153, 177, 163, 122, 177, 177, 198, 168, 97, 171, 121, 121, 181,
 
3204
+ 113, 130, 92, 161, 168, 162, 177, 122, 168, 162, 168, 168, 177, 162, 92, 177,
 
3205
+ 171, 121, 121, 113, 161, 182, 161, 177, 168, 121, 164, 121, 168, 177, 168, 161,
 
3206
+ 165, 168, 161, 161, 122, 177, 122, 130, 166, 122, 122, 168, 161, 198, 177, 122,
 
3207
+ 166, 122, 164, 175, 122, 177, 166, 168, 122, 168, 177, 177, 168, 130, 92, 168,
 
3208
+ 177, 174, 122, 196, 177, 122, 169, 169, 122, 168, 161, 92, 130, 130, 177, 122,
 
3209
+ 176, 161, 168, 177, 161, 130, 130, 161, 185, 121, 121, 168, 166, 130, 121, 121,
 
3210
+ 172, 168, 168, 166, 168, 177, 178, 168, 168, 162, 121, 163, 182, 161, 168, 169,
 
3211
+ 168, 168, 160, 153, 121, 121, 162, 121, 172, 163, 121, 122, 164, 181, 162, 172,
 
3212
+ 161, 177, 181, 172, 161, 181, 130, 183, 168, 122, 172, 163, 172, 198, 130, 122,
 
3213
+ 122, 181, 172, 122, 168, 122, 167, 160, 162, 163, 198, 177, 164, 122, 168, 122,
 
3214
+ 181, 164, 161, 161, 162, 161, 121, 168, 181, 122, 122, 177, 161, 176, 163, 122,
 
3215
+ 168, 168, 113, 130, 167, 168, 169, 162, 167, 168, 167, 175, 94, 161, 168, 165,
 
3216
+ 168, 122, 168, 168, 174, 130, 161, 161, 178, 122, 168, 122, 161, 168, 122, 163,
 
3217
+ 122, 161, 168, 177, 185, 167, 122, 182, 169, 163, 166, 166, 122, 191, 176, 177,
 
3218
+ 177, 166, 168, 167, 177, 178, 181, 161, 185, 205, 130, 168, 130, 162, 130, 162,
 
3219
+ 177, 164, 160, 160, 168, 167, 121, 166, 178, 122, 168, 122, 165, 121, 177, 122,
 
3220
+ 122, 122, 122, 161, 122, 163, 122, 161, 185, 161, 130, 130, 92, 202, 161, 92,
 
3221
+ 190, 168, 179, 168, 177, 178, 177, 142, 161, 177, 162, 161, 198, 177, 122, 163,
 
3222
+ 178, 167, 166, 177, 178, 122, 168, 176, 168, 173, 113, 170, 92, 183, 130, 92,
 
3223
+ 130, 161, 168, 161, 171, 185, 181, 121, 168, 162, 168, 121, 168, 167, 177, 121,
 
3224
+ 166, 177, 172, 161, 122, 122, 177, 122, 178, 178, 200, 177, 167, 122, 164, 181,
 
3225
+ 171, 122, 170, 160, 168, 162, 130, 130, 130, 130, 202, 130, 166, 122, 161, 177,
 
3226
+ 162, 122, 163, 161, 122, 177, 162, 168, 122, 168, 162, 162, 162, 162, 168, 161,
 
3227
+ 121, 122, 164, 161, 121, 162, 122, 122, 162, 121, 177, 178, 169, 161, 168, 153,
 
3228
+ 160, 130, 183, 130, 177, 168, 162, 162, 168, 176, 166, 171, 168, 167, 168, 168,
 
3229
+ 121, 96, 168, 168, 121, 167, 169, 168, 177, 121, 166, 168, 161, 181, 130, 92,
 
3230
+ 168, 185, 177, 178, 177, 162, 181, 169, 177, 177, 163, 168, 174, 168, 176, 168,
 
3231
+ 178, 177, 177, 177, 162, 168, 177, 122, 161, 177, 168, 166, 176, 142, 177, 166,
 
3232
+ 168, 142, 198, 113, 113, 94, 130, 113, 161, 177, 161, 163, 168, 168, 126, 167,
 
3233
+ 177, 121, 168, 142, 161, 177, 166, 122, 177, 168, 122, 121, 177, 168, 161, 161,
 
3234
+ 168, 162, 161, 177, 164, 160, 162, 142, 169, 177, 162, 168, 168, 121, 121, 122,
 
3235
+ 169, 130, 160, 121, 160, 168, 162, 168, 168, 168, 177, 161, 121, 122, 161, 113,
 
3236
+ 142, 163, 162, 177, 178, 162, 172, 168, 181, 177, 177, 177, 177, 163, 164, 142,
 
3237
+ 121, 162, 161, 171, 121, 142, 168, 177, 161, 177, 168, 168, 121, 163, 171, 168,
 
3238
+ 182, 161, 171, 122, 179, 178, 161, 161, 168, 177, 168, 179, 174, 176, 153, 168,
 
3239
+ 168, 178, 113, 198, 168, 168, 163, 164, 168, 122, 168, 181, 168, 178, 160, 162,
 
3240
+ 113, 185, 122, 161, 177, 122, 168, 122, 165, 161, 161, 181, 179, 130, 166, 122,
 
3241
+ 164, 178, 167, 168, 184, 122, 163, 198, 178, 161, 130, 113, 94, 113, 186, 168,
 
3242
+ 164, 122, 165, 122, 168, 97, 162, 164, 160, 122, 177, 177, 166, 169, 122, 177,
 
3243
+ 113, 130, 172, 161, 164, 167, 161, 174, 166, 163, 122, 168, 185, 174, 142, 162,
 
3244
+ 168, 168, 178, 163, 177, 176, 122, 166, 113, 176, 163, 161, 169, 171, 121, 122,
 
3245
+ 122, 161, 142, 161, 92, 92, 163, 121, 185, 162, 168, 162, 168, 160, 168, 169,
 
3246
+ 97, 168, 178, 160, 178, 163, 178, 168, 169, 94, 181, 122, 160, 168, 121, 161,
 
3247
+ 121, 168, 121, 177, 121, 121, 121, 188, 191, 171, 122, 121, 168, 121, 168, 177,
 
3248
+ 121, 177, 177, 177, 121, 142, 177, 121, 180, 121, 121, 121, 142, 177, 177, 168,
 
3249
+ 122, 121, 122, 162, 161, 160, 162, 130, 168, 168, 162, 122, 180, 164, 121, 122,
 
3250
+ 121, 171, 142, 121, 161, 180, 168, 161, 168, 121, 180, 168, 171, 177, 177, 178,
 
3251
+ 171, 177, 121, 121, 121, 180, 121, 177, 164, 161, 168, 113, 181, 163, 178, 178,
 
3252
+ 121, 177, 168, 177, 168, 97, 178, 164, 168, 164, 163, 142, 177, 163, 121, 168,
 
3253
+ 161, 121, 121, 178, 161, 162, 121, 177, 121, 168, 191, 168, 161, 168, 122, 168,
 
3254
+ 171, 121, 121, 121, 161, 181, 196, 130, 164, 121, 177, 177, 168, 178, 161, 191,
 
3255
+ 168, 171, 162, 177, 168, 177, 177, 161, 177, 172, 161, 164, 177, 177, 194, 121,
 
3256
+ 161, 171, 168, 121, 168, 161, 177, 163, 161, 181, 113, 113, 121, 177, 171, 178,
 
3257
+ 126, 168, 121, 178, 160, 92, 166, 177, 160, 168, 177, 172, 121, 121, 167, 178,
 
3258
+ 142, 121, 121, 163, 121, 121, 164, 177, 121, 177, 121, 121, 168, 121, 121, 121,
 
3259
+ 168, 168, 177, 162, 177, 177, 177, 121, 161, 168, 121, 180, 177, 163, 177, 172,
 
3260
+ 160, 181, 142, 160, 94, 113, 195, 177, 121, 171, 121, 168, 172, 121, 121, 168,
 
3261
+ 121, 180, 164, 126, 172, 163, 177, 168, 121, 121, 177, 164, 121, 164, 168, 121,
 
3262
+ 168, 177, 142, 168, 121, 163, 177, 168, 161, 171, 177, 121, 161, 160, 160, 161,
 
3263
+ 164, 181, 161, 168, 113, 113, 92, 160, 171, 121, 121, 178, 168, 168, 168, 168,
 
3264
+ 171, 171, 178, 168, 168, 191, 168, 177, 92, 161, 168, 121, 177, 188, 121, 180,
 
3265
+ 177, 180, 178, 121, 168, 168, 181, 163, 162, 168, 168, 121, 164, 177, 121, 188,
 
3266
+ 168, 121, 142, 177, 97, 142, 177, 121, 168, 142, 178, 167, 168, 121, 121, 171,
 
3267
+ 168, 122, 168, 121, 177, 171, 121, 192, 97, 168, 113, 113, 168, 181, 162, 161,
 
3268
+ 177, 168, 188, 168, 121, 121, 178, 168, 177, 142, 142, 161, 168, 181, 121, 177,
 
3269
+ 168, 188, 177, 168, 161, 182, 181, 153, 168, 121, 121, 188, 161, 121, 163, 177,
 
3270
+ 180, 161, 168, 171, 168, 168, 168, 168, 177, 121, 168, 178, 121, 142, 177, 172,
 
3271
+ 168, 177, 122, 113, 161, 161, 177, 177, 178, 181, 177, 168, 121, 177, 172, 121,
 
3272
+ 113, 177, 172, 121, 142, 177, 121, 168, 191, 168, 177, 165, 121, 162, 164, 170,
 
3273
+ 130, 130, 130, 130, 170, 130, 130, 130, 130, 130, 130, 130, 170, 130, 92, 130,
 
3274
+ 130, 130, 130, 130, 92, 130, 130, 130, 130, 130, 170, 92, 92, 130, 130, 130,
 
3275
+ 130, 130, 130, 130, 130, 130, 130, 170, 130, 130, 130, 130, 130, 130, 130, 170,
 
3276
+ 130, 130, 130, 130, 130, 130, 92, 130, 130, 130, 130, 130, 130, 130, 130, 170,
 
3277
+ 130, 130, 130, 130, 92, 130, 130, 130, 130, 130, 130, 130, 92, 130, 130, 130,
 
3278
+ 130, 130, 130, 130, 130, 130, 130, 130, 130, 92, 130, 130, 130, 130, 130, 130,
 
3279
+ 130, 130, 130, 130, 130, 130, 170, 130, 130, 130, 92, 130, 130, 130, 130, 130,
 
3280
+ 92, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 92, 130,
 
3281
+ 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130,
 
3282
+ 130, 130, 130, 130, 130, 130, 122, 94, 122, 168, 122, 164, 162, 171, 177, 177,
 
3283
+ 160, 160, 130, 177, 176, 167, 161, 163, 97, 94, 168, 168, 121, 178, 172, 177,
 
3284
+ 122, 167, 182, 182, 122, 122, 92, 130, 167, 161, 130, 177, 177, 177, 168, 169,
 
3285
+ 178, 166, 173, 177, 162, 177, 177, 178, 167, 169, 122, 180, 168, 177, 122, 161,
 
3286
+ 121, 174, 122, 168, 130, 121, 168, 121, 172, 122, 168, 168, 168, 177, 166, 177,
 
3287
+ 162, 130, 113, 178, 161, 121, 178, 178, 121, 168, 122, 171, 122, 177, 122, 163,
 
3288
+ 162, 177, 168, 160, 122, 168, 177, 163, 92, 161, 122, 168, 177, 167, 122, 130,
 
3289
+ 168, 166, 177, 172, 122, 168, 177, 185, 121, 121, 162, 92, 168, 177, 172, 169,
 
3290
+ 185, 168, 122, 168, 163, 168, 142, 168, 122, 122, 168, 168, 176, 122, 168, 176,
 
3291
+ 177, 122, 168, 177, 161, 122, 181, 168, 162, 168, 165, 168, 122, 168, 190, 177,
 
3292
+ 168, 168, 121, 161, 122, 122, 161, 168, 130, 92, 92, 177, 168, 160, 168, 190,
 
3293
+ 122, 122, 168, 177, 92, 166, 167, 160, 177, 122, 168, 180, 177, 168, 176, 177,
 
3294
+ 122, 96, 177, 169, 168, 168, 161, 168, 168, 121, 163, 169, 122, 177, 177, 177,
 
3295
+ 122, 122, 160, 122, 169, 122, 122, 177, 163, 183, 164, 169, 122, 176, 177, 177,
 
3296
+ 122, 171, 169, 162, 166, 122, 166, 122, 122, 169, 161, 168, 169, 163, 177, 177,
 
3297
+ 90, 178, 130, 161, 177, 170, 176, 130, 169, 185, 185, 161, 177, 183, 163, 160,
 
3298
+ 177, 170, 92, 122, 177, 166, 122, 166, 130, 177, 162, 175, 163, 122, 177, 122,
 
3299
+ 164, 161, 130, 211, 164, 161, 122, 168, 168, 161, 122, 130, 130, 130, 161, 168,
 
3300
+ 168, 168, 169, 161, 170, 92, 121, 161, 122, 161, 122, 160, 168, 168, 121, 181,
 
3301
+ 164, 172, 153, 160, 177, 161, 163, 168, 181, 130, 173, 161, 168, 162, 161, 121,
 
3302
+ 121, 176, 121, 121, 181, 177, 142, 121, 168, 178, 161, 161, 161, 121, 121, 122,
 
3303
+ 170, 162, 168, 130, 122, 121, 122, 122, 162, 122, 168, 122, 122, 161, 164, 168,
 
3304
+ 168, 161, 168, 169, 161, 168, 122, 161, 169, 168, 169, 122, 166, 122, 162, 179,
 
3305
+ 130, 122, 122, 168, 173, 122, 164, 163, 161, 122, 122, 176, 181, 167, 185, 122,
 
3306
+ 161, 122, 122, 161, 122, 168, 160, 170, 177, 162, 122, 161, 170, 170, 130, 130,
 
3307
+ 130, 130, 185, 122, 122, 168, 175, 168, 177, 168, 168, 161, 122, 166, 122, 177,
 
3308
+ 168, 168, 164, 161, 177, 177, 169, 166, 177, 167, 122, 122, 185, 169, 122, 161,
 
3309
+ 177, 122, 161, 168, 122, 122, 168, 130, 130, 170, 130, 130, 170, 176, 164, 169,
 
3310
+ 176, 122, 166, 176, 122, 168, 174, 161, 122, 177, 166, 168, 169, 122, 177, 161,
 
3311
+ 168, 168, 122, 163, 161, 121, 122, 198, 121, 175, 122, 162, 94, 130, 170, 130,
 
3312
+ 130, 130, 170, 130, 179, 168, 176, 163, 192, 168, 186, 180, 162, 168, 166, 168,
 
3313
+ 162, 168, 168, 121, 171, 168, 92, 177, 161, 121, 160, 126, 166, 168, 161, 122,
 
3314
+ 171, 184, 170, 113, 160, 162, 130, 94, 130, 121, 177, 161, 162, 168, 122, 92,
 
3315
+ 161, 161, 160, 168, 168, 164, 169, 177, 179, 161, 166, 122, 176, 168, 121, 168,
 
3316
+ 122, 122, 177, 169, 122, 122, 94, 162, 92, 170, 170, 168, 168, 161, 168, 181,
 
3317
+ 166, 177, 168, 161, 168, 122, 121, 166, 162, 166, 161, 121, 161, 174, 169, 177,
 
3318
+ 122, 122, 168, 97, 169, 161, 168, 177, 121, 122, 122, 130, 170, 173, 130, 122,
 
3319
+ 122, 164, 169, 178, 163, 162, 177, 168, 122, 168, 122, 177, 168, 168, 162, 122,
 
3320
+ 162, 130, 161, 172, 161, 178, 164, 168, 176, 168, 121, 176, 122, 122, 177, 168,
 
3321
+ 121, 161, 177, 165, 113, 94, 185, 168, 122, 142, 179, 168, 168, 161, 177, 161,
 
3322
+ 178, 168, 177, 122, 177, 180, 94, 168, 181, 168, 122, 166, 168, 121, 121, 121,
 
3323
+ 122, 170, 122, 176, 168, 177, 122, 168, 172, 142, 166, 162, 185, 121, 164, 171,
 
3324
+ 168, 178, 168, 113, 161, 177, 161, 177, 121, 178, 142, 177, 92, 177, 177, 121,
 
3325
+ 178, 177, 97, 122, 182, 121, 168, 122, 121, 168, 122, 162, 176, 122, 168, 160,
 
3326
+ 162, 162, 177, 122, 122, 162, 163, 168, 177, 177, 121, 122, 122, 162, 122, 177,
 
3327
+ 176, 167, 169, 164, 185, 122, 130, 121, 121, 142, 121, 168, 122, 122, 181, 162,
 
3328
+ 169, 168, 122, 164, 176, 168, 178, 113, 172, 164, 163, 122, 122, 177, 122, 122,
 
3329
+ 168, 192, 176, 130, 161, 168, 94, 161, 176, 172, 122, 122, 122, 179, 113, 185,
 
3330
+ 130, 130, 177, 167, 166, 122, 122, 122, 167, 122, 177, 130, 168, 168, 170, 168,
 
3331
+ 180, 161, 168, 162, 166, 191, 162, 122, 161, 185, 161, 176, 161, 92, 177, 166,
 
3332
+ 168, 177, 168, 168, 94, 168, 177, 168, 169, 121, 167, 168, 177, 113, 168, 167,
 
3333
+ 162, 168, 172, 177, 180, 160, 121, 162, 167, 168, 181, 178, 168, 177, 122, 122,
 
3334
+ 130, 121, 122, 130, 166, 168, 198, 142, 180, 170, 170, 163, 168, 166, 122, 166,
 
3335
+ 177, 162, 130, 177, 166, 168, 161, 182, 130, 162, 166, 122, 161, 122, 192, 185,
 
3336
+ 168, 166, 122, 168, 177, 161, 162, 130, 166, 122, 191, 177, 173, 122, 168, 122,
 
3337
+ 177, 166, 168, 171, 166, 122, 186, 177, 166, 192, 174, 167, 122, 122, 192, 122,
 
3338
+ 176, 122, 164, 122, 166, 168, 168, 190, 122, 122, 177, 121, 191, 122, 176, 197,
 
3339
+ 168, 130, 168, 168, 179, 113, 162, 130, 130, 161, 170, 130, 130, 130, 130, 170,
 
3340
+ 163, 122, 122, 169, 122, 192, 168, 122, 179, 178, 162, 122, 169, 161, 122, 122,
 
3341
+ 166, 165, 163, 169, 166, 122, 122, 121, 177, 161, 177, 167, 168, 177, 160, 176,
 
3342
+ 168, 122, 168, 178, 167, 168, 177, 174, 161, 167, 178, 167, 160, 193, 191, 94,
 
3343
+ 177, 190, 122, 122, 122, 122, 169, 166, 166, 122, 162, 163, 185, 168, 184, 130,
 
3344
+ 161, 130, 161, 92, 130, 130, 178, 122, 172, 168, 170, 166, 167, 163, 177, 164,
 
3345
+ 168, 164, 177, 181, 168, 168, 168, 185, 122, 168, 168, 122, 166, 166, 162, 165,
 
3346
+ 162, 122, 142, 166, 122, 122, 122, 177, 122, 122, 166, 168, 166, 182, 161, 168,
 
3347
+ 122, 168, 177, 176, 177, 178, 173, 192, 168, 122, 121, 168, 168, 177, 177, 122,
 
3348
+ 169, 192, 122, 177, 176, 162, 177, 163, 181, 92, 130, 130, 130, 92, 130, 130,
 
3349
+ 130, 130, 160, 179, 130, 130, 170, 130, 130, 130, 130, 130, 130, 130, 130, 170,
 
3350
+ 162, 161, 161, 180, 168, 178, 168, 122, 176, 161, 168, 122, 169, 166, 168, 177,
 
3351
+ 164, 168, 162, 168, 164, 175, 176, 178, 168, 122, 121, 168, 168, 177, 122, 168,
 
3352
+ 168, 160, 176, 169, 177, 177, 121, 168, 190, 177, 178, 166, 174, 177, 122, 181,
 
3353
+ 169, 161, 121, 168, 168, 168, 177, 171, 167, 192, 165, 122, 182, 164, 168, 168,
 
3354
+ 185, 202, 130, 130, 130, 113, 130, 173, 130, 170, 130, 92, 130, 122, 182, 177,
 
3355
+ 166, 122, 168, 168, 168, 122, 168, 166, 168, 191, 122, 168, 122, 160, 178, 166,
 
3356
+ 162, 177, 161, 198, 176, 168, 165, 168, 167, 168, 161, 168, 122, 166, 168, 169,
 
3357
+ 169, 185, 168, 168, 168, 185, 161, 168, 177, 122, 166, 180, 168, 160, 168, 121,
 
3358
+ 122, 122, 122, 168, 121, 168, 177, 113, 176, 192, 168, 178, 177, 122, 168, 168,
 
3359
+ 161, 166, 161, 122, 122, 160, 166, 142, 161, 168, 188, 169, 122, 122, 122, 166,
 
3360
+ 168, 166, 168, 178, 160, 162, 160, 161, 179, 162, 92, 168, 170, 130, 161, 161,
 
3361
+ 153, 160, 113, 168, 170, 130, 170, 130, 130, 180, 181, 168, 121, 168, 160, 177,
 
3362
+ 168, 122, 168, 168, 168, 142, 168, 168, 122, 177, 168, 168, 169, 122, 160, 168,
 
3363
+ 168, 161, 168, 168, 168, 177, 169, 177, 163, 121, 163, 168, 168, 177, 178, 164,
 
3364
+ 168, 166, 177, 160, 168, 160, 177, 122, 163, 166, 166, 122, 174, 168, 168, 168,
 
3365
+ 177, 122, 172, 122, 163, 177, 121, 177, 168, 169, 162, 122, 122, 169, 178, 180,
 
3366
+ 177, 175, 160, 166, 177, 122, 166, 142, 166, 178, 165, 161, 162, 177, 168, 160,
 
3367
+ 160, 162, 169, 161, 181, 162, 168, 130, 170, 130, 92, 202, 130, 168, 185, 168,
 
3368
+ 121, 168, 163, 163, 180, 164, 160, 185, 168, 122, 168, 168, 122, 168, 171, 178,
 
3369
+ 168, 165, 168, 160, 168, 161, 162, 168, 177, 177, 177, 168, 168, 172, 168, 166,
 
3370
+ 168, 177, 122, 161, 166, 161, 168, 161, 122, 167, 166, 180, 121, 174, 182, 122,
 
3371
+ 188, 167, 191, 161, 122, 168, 121, 177, 164, 122, 169, 121, 177, 165, 168, 177,
 
3372
+ 167, 122, 168, 176, 168, 161, 167, 168, 161, 113, 198, 168, 162, 130, 160, 130,
 
3373
+ 130, 160, 160, 130, 160, 170, 130, 177, 168, 168, 177, 168, 122, 161, 121, 177,
 
3374
+ 166, 177, 177, 168, 180, 161, 168, 177, 160, 168, 177, 177, 165, 177, 168, 169,
 
3375
+ 178, 161, 177, 163, 161, 160, 142, 177, 168, 168, 168, 168, 166, 168, 177, 168,
 
3376
+ 182, 122, 168, 122, 121, 178, 168, 122, 180, 168, 122, 161, 177, 168, 191, 167,
 
3377
+ 168, 122, 162, 188, 177, 188, 178, 177, 168, 168, 177, 166, 122, 121, 168, 191,
 
3378
+ 168, 168, 162, 163, 163, 181, 162, 130, 170, 130, 130, 185, 130, 122, 168, 204,
 
3379
+ 178, 180, 160, 122, 168, 168, 177, 168, 169, 122, 169, 172, 160, 168, 180, 162,
 
3380
+ 162, 177, 182, 191, 168, 178, 166, 178, 178, 190, 172, 168, 164, 177, 176, 164,
 
3381
+ 177, 177, 177, 180, 166, 168, 168, 168, 122, 121, 121, 177, 168, 121, 168, 163,
 
3382
+ 160, 168, 130, 160, 130, 168, 168, 178, 168, 166, 166, 166, 168, 162, 169, 164,
 
3383
+ 178, 177, 168, 168, 122, 166, 177, 122, 178, 177, 142, 177, 177, 168, 168, 192,
 
3384
+ 178, 121, 161, 164, 121, 168, 168, 181, 177, 178, 168, 122, 169, 177, 168, 177,
 
3385
+ 177, 168, 177, 168, 167, 162, 121, 177, 122, 121, 122, 181, 181, 162, 202, 122,
 
3386
+ 129, 168, 161, 168, 177, 168, 177, 166, 177, 169, 121, 161, 162, 177, 177, 177,
 
3387
+ 168, 186, 177, 168, 168, 168, 168, 177, 168, 122, 162, 177, 161, 121, 191, 122,
 
3388
+ 169, 168, 168, 130, 161, 122, 161, 168, 177, 168, 177, 161, 165, 121, 168, 177,
 
3389
+ 182, 168, 168, 168, 122, 121, 177, 161, 177, 122, 121, 168, 168, 177, 160, 168,
 
3390
+ 168, 168, 168, 162, 161, 161, 177, 121, 168, 142, 121, 122, 163, 168, 178, 192,
 
3391
+ 177, 168, 198, 161, 177, 166, 121, 121, 161, 168, 121, 142, 168, 163, 162, 161,
 
3392
+ 163, 176, 162, 181, 94, 161, 186, 121, 177, 177, 121, 177, 168, 161, 177, 168,
 
3393
+ 168, 177, 178, 168, 168, 168, 168, 166, 160, 166, 168, 161, 168, 121, 168, 172,
 
3394
+ 113, 168, 168, 168, 168, 168, 177, 161, 176, 168, 177, 168, 166, 164, 168, 121,
 
3395
+ 177, 164, 163, 168, 92, 160, 177, 168, 168, 161, 161, 168, 168, 167, 122, 130,
 
3396
+ 122, 130, 177, 177, 122, 121, 177, 164, 164, 177, 184, 126, 121, 164, 122, 121,
 
3397
+ 162, 177, 166, 177, 177, 168, 92, 121, 168, 177, 168, 169, 174, 168, 185, 177,
 
3398
+ 168, 169, 160, 168, 168, 164, 164, 177, 161, 122, 176, 169, 185, 173, 170, 130,
 
3399
+ 130, 130, 130, 92, 161, 168, 168, 168, 162, 161, 122, 167, 122, 166, 168, 161,
 
3400
+ 168, 177, 160, 122, 168, 167, 177, 168, 177, 168, 177, 161, 176, 185, 168, 161,
 
3401
+ 160, 177, 168, 122, 122, 168, 164, 166, 166, 122, 169, 113, 130, 182, 161, 169,
 
3402
+ 167, 176, 160, 177, 166, 176, 169, 177, 177, 177, 185, 168, 168, 168, 168, 177,
 
3403
+ 176, 177, 168, 177, 169, 177, 169, 122, 168, 169, 130, 122, 168, 113, 202, 130,
 
3404
+ 96, 166, 162, 168, 122, 164, 168, 177, 185, 122, 177, 122, 177, 168, 169, 122,
 
3405
+ 162, 161, 168, 177, 122, 162, 168, 162, 168, 167, 168, 168, 178, 122, 184, 153,
 
3406
+ 130, 130, 130, 130, 130, 168, 168, 168, 167, 169, 177, 142, 164, 164, 122, 161,
 
3407
+ 122, 168, 122, 122, 177, 177, 142, 176, 122, 167, 169, 177, 168, 167, 177, 162,
 
3408
+ 162, 178, 167, 176, 162, 173, 161, 130, 122, 177, 165, 168, 122, 161, 166, 162,
 
3409
+ 168, 166, 96, 166, 168, 169, 168, 168, 177, 169, 168, 161, 168, 168, 166, 162,
 
3410
+ 168, 166, 177, 168, 169, 168, 161, 169, 168, 164, 177, 169, 177, 164, 166, 169,
 
3411
+ 177, 168, 168, 177, 92, 164, 168, 173, 130, 202, 161, 113, 169, 177, 165, 168,
 
3412
+ 168, 168, 168, 169, 168, 121, 168, 122, 177, 169, 168, 168, 168, 177, 168, 180,
 
3413
+ 169, 177, 168, 167, 166, 166, 121, 168, 121, 168, 178, 168, 168, 168, 167, 177,
 
3414
+ 170, 163, 162, 168, 122, 168, 122, 168, 121, 168, 168, 166, 130, 179, 130, 113,
 
3415
+ 92, 168, 122, 176, 177, 166, 182, 177, 166, 177, 161, 174, 182, 122, 161, 168,
 
3416
+ 177, 168, 168, 166, 168, 162, 168, 166, 177, 164, 168, 168, 168, 168, 171, 122,
 
3417
+ 162, 161, 121, 177, 168, 160, 92, 162, 130, 160, 168, 169, 166, 166, 177, 167,
 
3418
+ 168, 163, 168, 122, 168, 166, 168, 168, 168, 168, 122, 142, 168, 167, 177, 177,
 
3419
+ 169, 163, 168, 168, 180, 168, 169, 181, 171, 177, 166, 169, 168, 161, 163, 92,
 
3420
+ 113, 96, 169, 185, 168, 164, 163, 168, 168, 177, 163, 185, 177, 168, 168, 177,
 
3421
+ 122, 168, 177, 177, 177, 185, 168, 168, 168, 161, 166, 177, 126, 177, 179, 121,
 
3422
+ 161, 162, 121, 177, 168, 160, 178, 178, 164, 122, 177, 121, 168, 161, 122, 177,
 
3423
+ 168, 177, 168, 166, 94, 121, 177, 161, 168, 177, 166, 177, 168, 142, 181, 172,
 
3424
+ 177, 178, 164, 166, 171, 169, 167, 168, 163, 177, 164, 166, 177, 168, 162, 188,
 
3425
+ 168, 169, 122, 121, 168, 168, 168, 172, 177, 168, 168, 168, 168, 163, 177, 168,
 
3426
+ 177, 121, 166, 168, 161, 177, 121, 168, 168, 169, 162, 121, 166, 168, 168, 168,
 
3427
+ 122, 177, 172, 177, 167, 174, 198, 161, 177, 162, 177, 177, 122, 122, 177, 160,
 
3428
+ 161, 162, 180, 121, 130, 177, 177, 122, 164, 122, 177, 121, 164, 121, 172, 164,
 
3429
+ 182, 122, 122, 122, 90, 170, 161, 168, 122, 166, 168, 122, 130, 168, 179, 168,
 
3430
+ 122, 177, 165, 161, 168, 178, 168, 122, 161, 171, 161, 164, 168, 169, 165, 165,
 
3431
+ 177, 122, 122, 168, 179, 130, 92, 160, 122, 168, 161, 122, 168, 122, 168, 161,
 
3432
+ 161, 168, 122, 168, 161, 168, 122, 180, 177, 178, 177, 177, 174, 92, 121, 177,
 
3433
+ 163, 168, 167, 161, 167, 161, 161, 168, 177, 161, 177, 122, 168, 130, 153, 92,
 
3434
+ 113, 169, 168, 92, 198, 172, 168, 167, 168, 168, 177, 161, 185, 177, 177, 172,
 
3435
+ 177, 122, 122, 113, 113, 187, 130, 94, 92, 185, 171, 177, 177, 177, 166, 198,
 
3436
+ 168, 162, 176, 162, 122, 122, 168, 168, 169, 122, 168, 177, 121, 121, 177, 122,
 
3437
+ 161, 121, 130, 130, 130, 130, 160, 177, 122, 161, 161, 168, 168, 161, 168, 171,
 
3438
+ 166, 166, 178, 122, 122, 193, 168, 177, 122, 169, 168, 168, 167, 121, 167, 160,
 
3439
+ 160, 177, 169, 161, 113, 168, 177, 121, 92, 168, 169, 168, 178, 162, 177, 164,
 
3440
+ 122, 168, 122, 122, 168, 171, 177, 168, 191, 192, 176, 173, 162, 113, 178, 168,
 
3441
+ 162, 96, 168, 168, 160, 122, 177, 177, 162, 168, 122, 169, 168, 168, 168, 168,
 
3442
+ 166, 177, 171, 168, 130, 177, 122, 168, 121, 164, 162, 121, 168, 97, 177, 161,
 
3443
+ 164, 165, 177, 172, 122, 162, 177, 94, 161, 177, 161, 168, 178, 172, 161, 177,
 
3444
+ 168, 168, 177, 168, 160, 92, 142, 177, 168, 168, 177, 177, 177, 168, 169, 122,
 
3445
+ 142, 177, 177, 177, 121, 160, 167, 161, 92, 168, 121, 177, 97, 178, 177, 142,
 
3446
+ 162, 168, 121, 177, 178, 162, 168, 153, 161, 168, 177, 166, 177, 164, 178, 122,
 
3447
+ 94, 122, 168, 122, 161, 168, 122, 198, 178, 163, 172, 121, 161, 162, 92, 121,
 
3448
+ 162, 160, 161, 121, 163, 177, 121, 178, 178, 92, 181, 177, 171, 168, 168, 177,
 
3449
+ 162, 180, 168, 168, 168, 163, 142, 172, 92, 198, 121, 161, 142, 168, 168, 178,
 
3450
+ 164, 161, 121, 181, 162, 164, 177, 177, 92, 168, 121, 161, 163, 121, 168, 178,
 
3451
+ 121, 170, 130, 92, 130, 130, 170, 130, 130, 130, 130, 130, 130, 92, 130, 130,
 
3452
+ 130, 130, 122, 168, 171, 177, 166, 162, 162, 168, 167, 168, 167, 178, 130, 168,
 
3453
+ 168, 168, 168, 122, 168, 166, 167, 172, 168, 177, 161, 166, 168, 177, 161, 130,
 
3454
+ 168, 177, 168, 166, 121, 161, 177, 168, 121, 162, 168, 168, 97, 162, 168, 177,
 
3455
+ 122, 92, 121, 121, 177, 164, 161, 166, 121, 92, 121, 161, 121, 161, 121, 171,
 
3456
+ 142, 171, 177, 121, 162, 171, 121, 121, 121, 161, 92, 121, 160, 121, 177, 121,
 
3457
+ 164, 161, 171, 121, 162, 121, 164, 168, 161, 160, 121, 163, 177, 121, 161, 162,
 
3458
+ 168, 121, 161, 113, 121, 164, 121, 162, 160, 168, 121, 121, 142, 163, 176, 168,
 
3459
+ 177, 142, 161, 164, 168, 177, 142, 162, 167, 163, 168, 161, 168, 177, 177, 168,
 
3460
+ 121, 178, 178, 162, 121, 121, 171, 177, 177, 168, 161, 121, 162, 164, 121, 92,
 
3461
+ 121, 177, 121, 121, 161, 164, 121, 163, 97, 121, 161, 142, 142, 121, 121, 161,
 
3462
+ 121, 121, 121, 121, 168, 191, 177, 177, 161, 190, 177, 171, 142, 161, 163, 177,
 
3463
+ 164, 168, 178, 177, 178, 121, 177, 121, 161, 202, 130, 177, 121, 121, 161, 177,
 
3464
+ 163, 142, 177, 122, 160, 121, 177, 162, 121, 177, 142, 161, 160, 161, 121, 164,
 
3465
+ 121, 121, 161, 121, 121, 121, 121, 171, 121, 163, 126, 168, 181, 113, 162, 163,
 
3466
+ 121, 161, 121, 164, 160, 161, 171, 164, 168, 121, 168, 177, 121, 168, 191, 121,
 
3467
+ 168, 161, 121, 177, 121, 168, 177, 121, 177, 171, 164, 121, 181, 121, 161, 180,
 
3468
+ 161, 177, 121, 177, 177, 177, 121, 177, 168, 168, 153, 121, 121, 177, 178, 177,
 
3469
+ 178, 180, 178, 161, 178, 161, 121, 121, 168, 161, 203, 121, 164, 121, 121, 168,
 
3470
+ 177, 121, 168, 142, 177, 177, 188, 121, 121, 161, 121, 168, 171, 161, 121, 177,
 
3471
+ 121, 121, 121, 161, 121, 177, 177, 167, 168, 161, 171, 177, 172, 168, 121, 168,
 
3472
+ 121, 177, 168, 168, 180, 168, 180, 121, 168, 121, 180, 121, 177, 121, 177, 163,
 
3473
+ 121, 113, 168, 168, 168, 168, 167, 168, 121, 161, 168, 121, 121, 163, 168, 168,
 
3474
+ 177, 168, 161, 180, 161, 168, 168, 177, 161, 121, 168, 168, 177, 168, 178, 160,
 
3475
+ 168, 121, 177, 163, 162, 177, 171, 168, 177, 121, 168, 168, 172, 163, 121, 121,
 
3476
+ 168, 168, 177, 177, 177, 168, 178, 168, 121, 171, 121, 113, 121, 168, 182, 142,
 
3477
+ 168, 161, 160, 177, 161, 168, 122, 168, 168, 160, 168, 142, 122, 177, 161, 121,
 
3478
+ 121, 181, 113, 161, 121, 161, 162, 121, 177, 177, 168, 168, 164, 121, 177, 168,
 
3479
+ 121, 163, 168, 181, 177, 177, 168, 161, 168, 92, 121, 177, 178, 164, 178, 162,
 
3480
+ 198, 161, 121, 121, 177, 177, 121, 161, 168, 178, 121, 160, 171, 161, 177, 177,
 
3481
+ 170, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 92, 130, 130, 130,
 
3482
+ 130, 92, 130, 130, 130, 130, 130, 130, 130, 130, 130, 92, 130, 130, 170, 130,
 
3483
+ 130, 130, 130, 130, 130, 130, 130, 92, 130, 130, 130, 130, 130, 130, 130, 130,
 
3484
+ 92, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130,
 
3485
+ 130, 130, 170, 130, 130, 130, 130, 130, 130, 130, 92, 130, 130, 130, 130, 130,
 
3486
+ 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130,
 
3487
+ 130, 130, 130, 130, 130, 130, 130, 130, 130, 92, 130, 130, 130, 130, 130, 130,
 
3488
+ 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 92, 130,
 
3489
+ 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130,
 
3490
+ 130, 130, 130, 130, 130, 130, 130, 122, 162, 177, 181, 168, 168, 177, 177, 121,
 
3491
+ 161, 122, 168, 168, 161, 177, 122, 166, 121, 176, 180, 177, 122, 168, 142, 177,
 
3492
+ 142, 163, 161, 164, 171, 122, 168, 177, 164, 162, 122, 164, 168, 177, 161, 168,
 
3493
+ 161, 122, 169, 164, 177, 168, 177, 161, 177, 177, 122, 122, 142, 171, 92, 168,
 
3494
+ 168, 168, 168, 176, 161, 177, 177, 168, 167, 122, 122, 177, 181, 168, 164, 161,
 
3495
+ 168, 168, 122, 161, 168, 167, 177, 164, 161, 169, 122, 162, 122, 142, 181, 168,
 
3496
+ 177, 168, 177, 171, 167, 168, 161, 168, 167, 177, 168, 163, 177, 121, 121, 160,
 
3497
+ 121, 121, 121, 168, 177, 168, 161, 121, 121, 121, 121, 121, 121, 172, 181, 121,
 
3498
+ 180, 161, 142, 121, 121, 168, 121, 121, 121, 177, 177, 121, 121, 121, 168, 121,
 
3499
+ 121, 121, 121, 121, 121, 171, 162, 121, 121, 164, 121, 162, 168, 172, 113, 177,
 
3500
+ 161, 121, 97, 121, 160, 177, 163, 168, 161, 177, 180, 172, 121, 177, 121, 168,
 
3501
+ 121, 171, 121, 121, 121, 168, 121, 168, 177, 160, 121, 160, 171, 121, 168, 164,
 
3502
+ 177, 168, 163, 168, 126, 177, 161, 163, 171, 168, 142, 121, 121, 121, 177, 162,
 
3503
+ 168, 162, 168, 163, 180, 121, 168, 180, 121, 177, 121, 172, 160, 121, 161, 142,
 
3504
+ 178, 160, 163, 121, 178, 168, 121, 171, 160, 168, 161, 171, 160, 170, 130, 130,
 
3505
+ 92, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130,
 
3506
+ 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130,
 
3507
+ 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130,
 
3508
+ 130, 92, 92, 130, 130, 130, 130, 92, 130, 130, 130, 130, 130, 130, 130, 92,
 
3509
+ 130, 130, 130, 130, 122, 164, 122, 169, 168, 177, 92, 122, 177, 169, 177, 168,
 
3510
+ 122, 181, 168, 122, 122, 130, 185, 122, 168, 168, 160, 168, 161, 168, 161, 164,
 
3511
+ 168, 169, 163, 161, 166, 122, 161, 161, 164, 168, 122, 173, 168, 177, 168, 168,
 
3512
+ 177, 166, 168, 168, 185, 171, 168, 161, 161, 121, 161, 168, 168, 161, 162, 176,
 
3513
+ 177, 168, 161, 122, 161, 168, 163, 168, 121, 160, 168, 177, 177, 168, 168, 177,
 
3514
+ 161, 130, 177, 122, 96, 166, 168, 177, 130, 177, 122, 164, 166, 161, 122, 185,
 
3515
+ 163, 168, 178, 170, 130, 177, 190, 177, 177, 161, 164, 122, 122, 168, 176, 165,
 
3516
+ 168, 176, 161, 168, 163, 177, 167, 166, 168, 177, 169, 122, 168, 122, 130, 169,
 
3517
+ 168, 121, 168, 165, 176, 162, 97, 177, 122, 168, 169, 167, 166, 161, 168, 122,
 
3518
+ 177, 177, 177, 122, 177, 202, 92, 130, 130, 130, 96, 130, 142, 166, 168, 178,
 
3519
+ 168, 163, 168, 168, 177, 166, 177, 168, 181, 167, 165, 164, 130, 168, 94, 122,
 
3520
+ 121, 177, 168, 168, 166, 168, 177, 168, 168, 168, 168, 168, 168, 169, 122, 169,
 
3521
+ 177, 171, 176, 166, 168, 168, 177, 177, 160, 96, 186, 97, 130, 94, 185, 130,
 
3522
+ 180, 176, 161, 177, 142, 122, 177, 162, 177, 176, 170, 161, 168, 166, 168, 168,
 
3523
+ 166, 166, 122, 161, 122, 168, 160, 165, 122, 122, 122, 176, 178, 177, 177, 163,
 
3524
+ 178, 130, 130, 168, 177, 142, 168, 168, 161, 122, 168, 177, 177, 177, 177, 121,
 
3525
+ 180, 177, 177, 142, 142, 168, 96, 168, 160, 166, 168, 161, 176, 166, 92, 166,
 
3526
+ 189, 182, 169, 168, 122, 160, 122, 160, 168, 162, 171, 177, 169, 92, 94, 130,
 
3527
+ 94, 122, 171, 164, 178, 169, 168, 122, 168, 171, 121, 142, 168, 121, 168, 130,
 
3528
+ 166, 142, 177, 142, 167, 177, 168, 168, 168, 181, 177, 162, 130, 177, 166, 168,
 
3529
+ 168, 142, 164, 168, 168, 168, 168, 163, 168, 177, 121, 122, 122, 163, 162, 184,
 
3530
+ 172, 181, 96, 164, 161, 162, 160, 161, 161, 161, 176, 162, 160, 168, 113, 161,
 
3531
+ 188, 164, 168, 163, 162, 113, 181, 162, 113, 168, 121, 121, 121, 121, 170, 171,
 
3532
+ 92, 177, 121, 168, 171, 161, 161, 168, 168, 161, 94, 142, 177, 168, 168, 121,
 
3533
+ 168, 168, 153, 113, 160, 168, 168, 168, 177, 168, 161, 180, 168, 182, 177, 168,
 
3534
+ 162, 177, 160, 161, 168, 168, 168, 177, 121, 177, 177, 121, 142, 181, 121, 168,
 
3535
+ 177, 168, 177, 121, 161, 180, 168, 177, 177, 121, 142, 168, 113, 168, 168, 162,
 
3536
+ 177, 168, 121, 121, 121, 121, 177, 177, 177, 172, 168, 121, 121, 121, 188, 121,
 
3537
+ 177, 162, 161, 177, 168, 171, 121, 204, 162, 121, 121, 161, 177, 163, 177, 121,
 
3538
+ 160, 161, 168, 121, 177, 177, 177, 177, 121, 180, 162, 121, 161, 161, 121, 121,
 
3539
+ 177, 163, 142, 177, 121, 121, 178, 177, 168, 121, 160, 168, 113, 121, 121, 177,
 
3540
+ 168, 177, 177, 177, 171, 177, 168, 178, 177, 168, 168, 168, 172, 191, 177, 121,
 
3541
+ 168, 142, 180, 178, 178, 164, 170, 170, 130, 130, 92, 130, 130, 130, 170, 130,
 
3542
+ 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130,
 
3543
+ 92, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 92, 130, 130, 130,
 
3544
+ 130, 130, 92, 170, 130, 130, 130, 130, 130, 130, 130, 122, 122, 164, 184, 169,
 
3545
+ 163, 164, 161, 122, 164, 163, 188, 181, 122, 130, 161, 130, 161, 121, 142, 121,
 
3546
+ 122, 122, 121, 160, 168, 163, 90, 153, 182, 179, 153, 153, 153, 130, 174, 178,
 
3547
+ 162, 174, 122, 92, 169, 122, 171, 173, 130, 168, 163, 177, 160, 177, 122, 161,
 
3548
+ 90, 122, 177, 166, 122, 166, 168, 168, 173, 173, 153, 130, 130, 130, 130, 130,
 
3549
+ 177, 168, 169, 177, 176, 169, 122, 161, 176, 184, 122, 122, 92, 122, 166, 181,
 
3550
+ 122, 164, 183, 130, 142, 177, 177, 122, 169, 186, 142, 177, 168, 122, 177, 168,
 
3551
+ 122, 122, 192, 122, 166, 122, 122, 92, 193, 173, 130, 165, 177, 122, 181, 122,
 
3552
+ 122, 165, 179, 181, 122, 121, 169, 122, 162, 121, 122, 176, 168, 122, 122, 122,
 
3553
+ 122, 165, 122, 121, 168, 161, 130, 113, 164, 164, 164, 161, 164, 166, 122, 166,
 
3554
+ 161, 121, 121, 182, 177, 122, 169, 163, 122, 113, 161, 173, 122, 168, 122, 177,
 
3555
+ 161, 122, 122, 164, 166, 181, 161, 122, 161, 178, 121, 121, 163, 122, 121, 169,
 
3556
+ 122, 122, 167, 122, 121, 121, 153, 130, 169, 121, 161, 176, 121, 188, 121, 161,
 
3557
+ 121, 198, 176, 122, 94, 202, 162, 177, 169, 121, 161, 168, 182, 122, 122, 180,
 
3558
+ 177, 161, 121, 168, 176, 122, 178, 121, 121, 177, 121, 168, 121, 122, 168, 122,
 
3559
+ 122, 121, 122, 122, 121, 177, 168, 121, 190, 181, 121, 176, 162, 168, 162, 121,
 
3560
+ 171, 122, 161, 173, 168, 190, 161, 166, 177, 192, 161, 166, 161, 130, 168, 168,
 
3561
+ 177, 166, 190, 122, 161, 177, 122, 168, 198, 161, 122, 161, 130, 161, 170, 165,
 
3562
+ 192, 122, 177, 166, 166, 122, 176, 161, 122, 173, 130, 170, 161, 177, 166, 168,
 
3563
+ 161, 122, 161, 171, 174, 166, 161, 166, 177, 161, 122, 168, 162, 161, 169, 130,
 
3564
+ 130, 130, 162, 130, 168, 177, 168, 166, 177, 177, 168, 167, 166, 176, 195, 177,
 
3565
+ 168, 122, 169, 168, 178, 177, 130, 130, 122, 168, 168, 166, 168, 122, 161, 166,
 
3566
+ 177, 168, 168, 168, 166, 121, 164, 181, 130, 168, 168, 168, 168, 122, 176, 177,
 
3567
+ 177, 168, 122, 168, 166, 177, 177, 168, 177, 97, 161, 168, 161, 177, 168, 168,
 
3568
+ 177, 168, 121, 161, 177, 195, 177, 171, 171, 122, 177, 168, 177, 168, 176, 168,
 
3569
+ 177, 168, 166, 166, 168, 164, 168, 188, 168, 177, 168, 168, 168, 121, 177, 166,
 
3570
+ 142, 176, 180, 168, 171, 168, 177, 164, 168, 176, 177, 168, 164, 164, 168, 168,
 
3571
+ 168, 168, 92, 166, 168, 168, 185, 177, 171, 122, 122, 122, 122, 122, 165, 166,
 
3572
+ 185, 160, 122, 177, 181, 168, 178, 176, 178, 163, 166, 162, 160, 130, 170, 168,
 
3573
+ 168, 166, 165, 169, 166, 169, 92, 163, 168, 122, 122, 161, 122, 162, 185, 185,
 
3574
+ 170, 130, 167, 178, 176, 122, 179, 122, 122, 166, 177, 164, 160, 130, 130, 130,
 
3575
+ 168, 177, 178, 171, 168, 166, 177, 122, 161, 122, 177, 122, 179, 165, 163, 168,
 
3576
+ 167, 166, 122, 177, 162, 164, 161, 113, 162, 168, 185, 185, 121, 168, 171, 168,
 
3577
+ 168, 177, 167, 96, 113, 168, 162, 168, 177, 160, 167, 121, 188, 166, 190, 165,
 
3578
+ 177, 188, 177, 177, 122, 165, 182, 168, 113, 168, 169, 163, 177, 177, 168, 164,
 
3579
+ 121, 142, 177, 177, 160, 171, 142, 122, 113, 122, 130, 121, 122, 122, 122, 122,
 
3580
+ 121, 122, 92, 177, 177, 168, 172, 188, 121, 171, 177, 181, 122, 121, 164, 172,
 
3581
+ 161, 113, 168, 121, 177, 163, 142, 121, 168, 171, 191, 168, 177, 171, 177, 162,
 
3582
+ 164, 177, 161, 168, 168, 121, 181, 177, 168, 177, 94, 162, 113, 177, 160, 178,
 
3583
+ 177, 177, 168, 168, 177, 177, 177, 171, 160, 171, 177, 161, 177, 121, 172, 168,
 
3584
+ 188, 121, 191, 163, 142, 142, 177, 194, 164, 168, 168, 161, 177, 162, 121, 92,
 
3585
+ 161, 161, 161, 171, 177, 177, 177, 168, 182, 113, 94, 160, 113, 168, 177, 164,
 
3586
+ 177, 168, 168, 177, 121, 163, 177, 142, 171, 171, 191, 161, 163, 97, 171, 121,
 
3587
+ 188, 160, 162, 162, 172, 121, 177, 162, 178, 121, 177, 142, 168, 171, 177, 177,
 
3588
+ 178, 171, 168, 168, 168, 160, 168, 121, 182, 164, 142, 121, 164, 163, 180, 160,
 
3589
+ 177, 177, 198, 168, 121, 191, 180, 177, 162, 162, 161, 160, 168, 168, 163, 177,
 
3590
+ 177, 113, 168, 161, 130, 162, 177, 182, 171, 177, 168, 171, 171, 177, 178, 177,
 
3591
+ 121, 160, 168, 180, 160, 121, 168, 168, 177, 163, 177, 168, 168, 177, 166, 160,
 
3592
+ 161, 121, 164, 121, 168, 178, 121, 177, 121, 177, 178, 178, 121, 168, 161, 162,
 
3593
+ 177, 168, 168, 168, 177, 177, 168, 177, 171, 168, 168, 177, 97, 181, 179, 162,
 
3594
+ 161, 160, 171, 126, 168, 168, 191, 121, 164, 198, 182, 171, 171, 162, 160, 163,
 
3595
+ 177, 171, 177, 177, 168, 171, 177, 171, 166, 168, 168, 177, 191, 177, 177, 180,
 
3596
+ 177, 168, 121, 177, 160, 177, 161, 177, 177, 177, 161, 160, 164, 177, 168, 177,
 
3597
+ 177, 177, 161, 182, 121, 163, 168, 177, 177, 178, 121, 160, 182, 181, 177, 168,
 
3598
+ 171, 168, 153, 172, 160, 161, 160, 168, 121, 177, 178, 177, 121, 160, 168, 177,
 
3599
+ 177, 168, 177, 160, 126, 161, 178, 160, 177, 168, 161, 168, 168, 177, 168, 178,
 
3600
+ 121, 162, 168, 168, 177, 171, 168, 161, 121, 142, 121, 168, 164, 177, 191, 191,
 
3601
+ 121, 188, 121, 178, 191, 177, 121, 177, 121, 177, 177, 121, 172, 168, 121, 121,
 
3602
+ 160, 160, 181, 171, 177, 178, 171, 162, 168, 168, 113, 113, 168, 92, 130, 161,
 
3603
+ 94, 94, 160, 94, 153, 160, 168, 177, 193, 177, 126, 121, 168, 121, 168, 168,
 
3604
+ 177, 177, 177, 161, 121, 177, 178, 177, 177, 168, 171, 121, 178, 161, 177, 160,
 
3605
+ 178, 168, 160, 168, 177, 171, 160, 177, 160, 163, 166, 160, 142, 177, 198, 162,
 
3606
+ 171, 177, 161, 163, 163, 121, 177, 168, 160, 168, 177, 168, 180, 163, 121, 164,
 
3607
+ 177, 182, 171, 168, 94, 94, 160, 94, 177, 168, 171, 164, 180, 177, 168, 166,
 
3608
+ 160, 168, 177, 161, 121, 177, 121, 142, 171, 168, 121, 177, 160, 168, 177, 168,
 
3609
+ 160, 177, 97, 191, 177, 168, 177, 180, 177, 177, 168, 162, 121, 198, 142, 168,
 
3610
+ 121, 168, 168, 97, 177, 177, 162, 168, 160, 113, 162, 160, 161, 160, 161, 94,
 
3611
+ 168, 164, 168, 121, 177, 164, 163, 177, 142, 162, 166, 163, 177, 171, 168, 168,
 
3612
+ 178, 121, 168, 163, 168, 168, 169, 142, 142, 177, 168, 160, 171, 142, 191, 171,
 
3613
+ 160, 121, 171, 168, 121, 181, 177, 177, 142, 161, 161, 161, 168, 161, 168, 161,
 
3614
+ 94, 160, 161, 160, 161, 168, 194, 177, 177, 177, 177, 177, 168, 171, 168, 168,
 
3615
+ 168, 182, 164, 142, 193, 161, 168, 178, 163, 177, 168, 168, 168, 177, 177, 177,
 
3616
+ 178, 168, 168, 178, 178, 177, 177, 163, 121, 178, 181, 160, 161, 94, 161, 164,
 
3617
+ 168, 113, 161, 161, 160, 128, 94, 160, 168, 168, 168, 121, 168, 160, 171, 162,
 
3618
+ 168, 177, 171, 171, 162, 121, 178, 168, 121, 168, 142, 177, 168, 177, 170, 177,
 
3619
+ 168, 113, 160, 163, 121, 177, 168, 168, 177, 168, 177, 168, 177, 160, 161, 168,
 
3620
+ 168, 121, 121, 113, 160, 177, 161, 168, 160, 162, 181, 198, 164, 168, 178, 164,
 
3621
+ 142, 164, 178, 171, 97, 160, 161, 160, 177, 168, 142, 166, 160, 177, 177, 177,
 
3622
+ 142, 177, 171, 168, 168, 178, 168, 142, 168, 94, 161, 160, 142, 121, 142, 121,
 
3623
+ 168, 178, 168, 177, 164, 170, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130,
 
3624
+ 130, 92, 130, 130, 130, 130, 92, 130, 92, 130, 130, 130, 130, 130, 130, 170,
 
3625
+ 130, 130, 170, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130,
 
3626
+ 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130,
 
3627
+ 130, 170, 130, 170, 130, 130, 130, 92, 130, 130, 130, 130, 130, 130, 130, 92,
 
3628
+ 130, 130, 130, 92, 92, 130, 130, 130, 130, 130, 92, 130, 170, 130, 130, 130,
 
3629
+ 130, 130, 130, 130, 130, 130, 92, 130, 130, 130, 130, 130, 130, 130, 130, 130,
 
3630
+ 130, 130, 130, 130, 130, 130, 170, 130, 130, 130, 130, 92, 130, 130, 130, 130,
 
3631
+ 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130,
 
3632
+ 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 92, 130, 130, 130,
 
3633
+ 92, 130, 130, 130, 130, 130, 130, 92, 130, 130, 130, 130, 130, 170, 130, 130,
 
3634
+ 130, 130, 130, 92, 130, 130, 130, 130, 130, 130, 130, 130, 130, 92, 130, 130,
 
3635
+ 130, 130, 130, 92, 130, 130, 130, 170, 92, 130, 130, 92, 130, 130, 130, 130,
 
3636
+ 130, 130, 130, 130, 130, 92, 130, 130, 130, 130, 92, 130, 130, 130, 130, 130,
 
3637
+ 92, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 92, 130,
 
3638
+ 130, 130, 130, 130, 92, 92, 130, 121, 182, 164, 168, 168, 168, 168, 162, 170,
 
3639
+ 121, 161, 142, 121, 162, 160, 168, 181, 177, 121, 113, 121, 177, 177, 171, 121,
 
3640
+ 168, 121, 126, 121, 121, 161, 153, 160, 121, 172, 161, 168, 168, 162, 177, 177,
 
3641
+ 153, 171, 172, 121, 121, 121, 182, 172, 121, 171, 94, 177, 177, 121, 168, 161,
 
3642
+ 168, 126, 181, 161, 162, 168, 177, 168, 161, 178, 177, 121, 180, 177, 178, 177,
 
3643
+ 168, 161, 161, 178, 161, 168, 171, 180, 171, 177, 121, 171, 142, 178, 161, 92,
 
3644
+ 171, 177, 177, 177, 121, 121, 121, 161, 181, 162, 177, 168, 121, 164, 177, 177,
 
3645
+ 177, 121, 121, 168, 177, 178, 162, 161, 170, 130, 130, 130, 92, 130, 130, 130,
 
3646
+ 130, 130, 130, 130, 170, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 92,
 
3647
+ 130, 130, 130, 130, 130, 130, 130, 92, 130, 130, 130, 130, 130, 130, 130, 130,
 
3648
+ 130, 130, 130, 92, 130, 130, 130, 130, 92, 130, 130, 92, 122, 174, 177, 130,
 
3649
+ 168, 122, 166, 168, 177, 162, 164, 161, 178, 161, 122, 161, 171, 168, 122, 178,
 
3650
+ 168, 176, 122, 174, 173, 130, 130, 164, 182, 177, 177, 122, 166, 166, 161, 122,
 
3651
+ 122, 163, 122, 168, 122, 170, 130, 130, 130, 130, 168, 122, 122, 122, 168, 178,
 
3652
+ 122, 168, 162, 168, 166, 130, 163, 162, 171, 161, 161, 122, 180, 121, 121, 165,
 
3653
+ 161, 176, 122, 121, 122, 113, 113, 130, 130, 170, 122, 168, 169, 168, 164, 168,
 
3654
+ 121, 168, 169, 121, 176, 122, 122, 122, 121, 161, 113, 163, 177, 121, 177, 164,
 
3655
+ 168, 163, 164, 177, 171, 122, 122, 168, 167, 177, 121, 122, 161, 122, 121, 175,
 
3656
+ 130, 177, 168, 168, 122, 121, 163, 167, 122, 122, 162, 121, 122, 164, 168, 164,
 
3657
+ 181, 168, 168, 198, 177, 163, 162, 122, 121, 177, 121, 161, 168, 161, 177, 164,
 
3658
+ 167, 121, 181, 166, 142, 161, 175, 196, 142, 169, 164, 121, 167, 179, 130, 168,
 
3659
+ 122, 122, 168, 168, 122, 122, 122, 122, 168, 122, 171, 121, 122, 122, 165, 130,
 
3660
+ 161, 181, 176, 168, 168, 122, 121, 168, 177, 121, 177, 121, 121, 177, 171, 177,
 
3661
+ 130, 168, 121, 121, 161, 168, 161, 161, 122, 190, 122, 113, 161, 161, 161, 190,
 
3662
+ 180, 177, 121, 130, 160, 168, 122, 122, 168, 122, 177, 121, 161, 168, 130, 168,
 
3663
+ 122, 130, 177, 182, 169, 177, 122, 122, 167, 176, 181, 168, 161, 169, 169, 169,
 
3664
+ 168, 121, 168, 122, 161, 161, 122, 161, 168, 180, 164, 163, 122, 177, 122, 168,
 
3665
+ 168, 182, 177, 177, 142, 168, 168, 121, 177, 168, 169, 168, 168, 130, 168, 168,
 
3666
+ 122, 163, 122, 164, 161, 168, 160, 161, 169, 122, 168, 161, 161, 121, 169, 168,
 
3667
+ 160, 163, 121, 177, 121, 161, 178, 168, 121, 178, 162, 168, 92, 161, 162, 162,
 
3668
+ 161, 203, 169, 130, 92, 164, 122, 182, 177, 184, 177, 176, 121, 160, 122, 160,
 
3669
+ 169, 122, 122, 164, 181, 130, 142, 164, 142, 122, 177, 113, 168, 198, 177, 161,
 
3670
+ 168, 153, 168, 166, 122, 92, 176, 191, 177, 181, 180, 177, 169, 177, 168, 177,
 
3671
+ 177, 178, 168, 168, 178, 169, 113, 160, 168, 163, 168, 122, 161, 122, 168, 121,
 
3672
+ 113, 130, 130, 161, 185, 162, 162, 177, 169, 177, 177, 160, 178, 168, 177, 163,
 
3673
+ 122, 168, 177, 169, 168, 168, 142, 92, 180, 161, 168, 165, 177, 122, 177, 130,
 
3674
+ 92, 163, 174, 178, 175, 164, 177, 168, 163, 177, 163, 168, 162, 160, 163, 177,
 
3675
+ 160, 171, 94, 142, 177, 177, 121, 177, 172, 171, 164, 121, 171, 177, 177, 168,
 
3676
+ 177, 162, 160, 121, 177, 168, 168, 177, 177, 177, 161, 162, 121, 177, 177, 168,
 
3677
+ 182, 177, 161, 168, 164, 168, 170, 130, 92, 130, 130, 130, 130, 169, 172, 164,
 
3678
+ 168, 177, 172, 122, 162, 175, 122, 162, 177, 97, 177, 121, 161, 168, 168, 121,
 
3679
+ 194, 121, 121, 121, 168, 121, 121, 177, 121, 92, 188, 161, 121, 177, 177, 178,
 
3680
+ 121, 121, 121, 121, 163, 160, 177, 121, 121, 164, 181, 168, 171, 168, 177, 160,
 
3681
+ 177, 142, 161, 163, 142, 162, 177, 168, 168, 168, 161, 171, 113, 121, 163, 177,
 
3682
+ 188, 161, 177, 163, 172, 177, 161, 142, 121, 126, 161, 121, 181, 181, 162, 161,
 
3683
+ 161, 168, 161, 168, 177, 168, 121, 163, 168, 168, 177, 172, 121, 121, 121, 142,
 
3684
+ 168, 177, 177, 171, 196, 181, 164, 177, 121, 177, 197, 142, 168, 168, 121, 168,
 
3685
+ 168, 161, 177, 177, 168, 188, 163, 121, 161, 168, 177, 121, 163, 161, 161, 121,
 
3686
+ 142, 142, 168, 178, 178, 170, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130,
 
3687
+ 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 92, 130, 130, 92, 130,
 
3688
+ 130, 130, 92, 130, 130, 92, 130, 130, 130, 92, 130, 130, 130, 130, 130, 130,
 
3689
+ 130, 130, 130, 92, 130, 130, 130, 130, 121, 168, 113, 162, 168, 177, 177, 121,
 
3690
+ 162, 121, 168, 97, 182, 161, 142, 163, 177, 160, 171, 177, 97, 168, 168, 177,
 
3691
+ 168, 168, 177, 172, 121, 162, 178, 203, 163, 168, 160, 168, 177, 161, 170, 92,
 
3692
+ 92, 130, 130, 130, 92, 130, 92, 92, 130, 130, 130, 121, 198, 161, 170, 122,
 
3693
+ 94, 193, 121, 177, 161, 177, 163, 176, 130, 142, 171, 178, 160, 121, 200, 121,
 
3694
+ 161, 160, 142, 164, 121, 160, 177, 161, 161, 168, 168, 92, 121, 121, 121, 161,
 
3695
+ 168, 161, 177, 121, 92, 142, 161, 177, 177, 121, 121, 92, 121, 130, 160, 92,
 
3696
+ 122, 177, 142, 121, 178, 177, 177, 177, 121, 160, 171, 171, 163, 181, 121, 177,
 
3697
+ 196, 142, 164, 161, 178, 168, 162, 177, 121, 168, 168, 177, 178, 168, 169, 168,
 
3698
+ 168, 177, 177, 177, 162, 171, 161, 94, 160, 163, 177, 163, 177, 142, 142, 97,
 
3699
+ 163, 177, 172, 168, 161, 121, 162, 177, 177, 121, 94, 180, 180, 193, 177, 161,
 
3700
+ 178, 121, 121, 168, 192, 169, 168, 121, 177, 177, 161, 177, 171, 160, 171, 177,
 
3701
+ 162, 168, 94, 170, 92, 130, 92, 130, 130, 130, 130, 130, 130, 130, 130, 130,
 
3702
+ 130, 130, 130, 92, 130, 130, 130, 130, 92, 92, 130, 92, 130, 130, 92, 130,
 
3703
+ 130, 130, 92, 92, 130, 130, 130, 130, 130, 92, 130, 130, 92, 130, 92, 130,
 
3704
+ 130, 130, 130, 130, 130, 130, 122, 167, 167, 122, 161, 182, 168, 191, 168, 162,
 
3705
+ 161, 168, 161, 168, 160, 122, 177, 168, 122, 161, 160, 168, 121, 121, 121, 168,
 
3706
+ 177, 188, 177, 121, 121, 177, 161, 161, 160, 191, 177, 168, 172, 177, 161, 164,
 
3707
+ 161, 121, 168, 177, 172, 153, 113, 168, 181, 177, 161, 168, 168, 168, 168, 168,
 
3708
+ 121, 121, 121, 177, 177, 121, 168, 168, 178, 188, 163, 142, 177, 121, 164, 121,
 
3709
+ 161, 160, 142, 168, 168, 168, 160, 177, 161, 168, 177, 164, 177, 121, 178, 161,
 
3710
+ 177, 121, 113, 161, 177, 163, 168, 168, 178, 177, 168, 178, 168, 177, 177, 121,
 
3711
+ 161, 121, 177, 177, 177, 178, 168, 168, 195, 168, 168, 177, 163, 168, 121, 180,
 
3712
+ 163, 177, 113, 113, 168, 168, 171, 161, 161, 121, 168, 168, 168, 168, 177, 160,
 
3713
+ 177, 160, 177, 177, 177, 168, 160, 177, 113, 168, 168, 121, 168, 177, 177, 160,
 
3714
+ 121, 168, 168, 162, 168, 171, 191, 121, 177, 168, 168, 160, 160, 168, 142, 168,
 
3715
+ 121, 177, 178, 121, 177, 121, 168, 162, 168, 168, 177, 162, 177, 121, 177, 168,
 
3716
+ 168, 164, 168, 168, 177, 121, 177, 121, 160, 168, 121, 121, 160, 162, 168, 121,
 
3717
+ 168, 161, 121, 160, 178, 121, 168, 168, 168, 180, 121, 178, 170, 130, 130, 130,
 
3718
+ 130, 130, 92, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130,
 
3719
+ 130, 130, 130, 92, 130, 130, 130, 130, 130, 92, 130, 130, 130, 92, 92, 170,
 
3720
+ 130, 130, 130, 130, 92, 92, 130, 130, 130, 92, 130, 130, 130, 130, 130, 130,
 
3721
+ 130, 130, 130, 130, 130, 130, 92, 130, 122, 161, 162, 168, 162, 178, 162, 171,
 
3722
+ 169, 185, 182, 168, 177, 164, 174, 96, 122, 177, 170, 177, 169, 160, 177, 177,
 
3723
+ 167, 176, 185, 162, 181, 130, 177, 168, 164, 161, 168, 130, 130, 168, 164, 142,
 
3724
+ 177, 169, 171, 122, 121, 177, 171, 163, 122, 161, 161, 162, 177, 161, 181, 167,
 
3725
+ 163, 96, 172, 178, 164, 204, 169, 177, 161, 164, 181, 167, 177, 169, 121, 169,
 
3726
+ 92, 178, 177, 177, 172, 164, 168, 178, 161, 166, 177, 169, 168, 177, 168, 182,
 
3727
+ 164, 177, 163, 176, 177, 177, 142, 161, 166, 163, 168, 177, 177, 171, 177, 170,
 
3728
+ 177, 168, 177, 130, 160, 168, 177, 168, 178, 177, 121, 162, 162, 161, 168, 167,
 
3729
+ 177, 161, 142, 169, 168, 142, 164, 121, 142, 178, 198, 177, 161, 163, 178, 167,
 
3730
+ 161, 121, 169, 177, 163, 177, 92, 177, 161, 182, 177, 167, 122, 164, 168, 168,
 
3731
+ 160, 122, 122, 165, 122, 122, 168, 130, 166, 173, 168, 177, 177, 169, 142, 122,
 
3732
+ 160, 169, 168, 161, 122, 177, 177, 164, 142, 168, 121, 177, 92, 161, 162, 168,
 
3733
+ 168, 177, 92, 164, 168, 162, 177, 168, 177, 160, 162, 164, 177, 162, 162, 121,
 
3734
+ 168, 168, 161, 162, 178, 177, 168, 171, 162, 162, 168, 168, 168, 168, 168, 182,
 
3735
+ 177, 94, 168, 172, 164, 177, 177, 177, 168, 164, 162, 163, 161, 182, 198, 163,
 
3736
+ 177, 121, 178, 178, 164, 168, 113, 153, 161, 161, 177, 168, 92, 163, 177, 198,
 
3737
+ 178, 168, 168, 161, 168, 168, 177, 162, 178, 162, 142, 121, 162, 142, 121, 168,
 
3738
+ 182, 162, 162, 92, 113, 168, 168, 162, 177, 178, 92, 164, 162, 168, 162, 177,
 
3739
+ 142, 177, 161, 168, 168, 161, 178, 177, 171, 121, 142, 161, 161, 161, 162, 153,
 
3740
+ 162, 113, 181, 168, 178, 168, 121, 177, 162, 168, 168, 142, 168, 182, 168, 164,
 
3741
+ 168, 178, 178, 181, 180, 177, 168, 171, 121, 160, 177, 177, 168, 94, 161, 162,
 
3742
+ 178, 153, 113, 162, 94, 113, 161, 177, 177, 164, 162, 161, 161, 171, 161, 163,
 
3743
+ 164, 92, 163, 92, 181, 168, 178, 168, 178, 178, 172, 177, 172, 121, 168, 162,
 
3744
+ 198, 162, 180, 142, 178, 198, 162, 168, 162, 162, 162, 172, 177, 168, 162, 160,
 
3745
+ 94, 178, 162, 177, 178, 121, 182, 164, 177, 177, 162, 168, 168, 142, 181, 153,
 
3746
+ 113, 171, 180, 168, 168, 163, 177, 177, 161, 178, 172, 121, 168, 177, 142, 168,
 
3747
+ 168, 177, 92, 162, 177, 163, 178, 200, 178, 188, 177, 168, 168, 168, 177, 163,
 
3748
+ 177, 161, 178, 163, 171, 168, 171, 121, 177, 168, 113, 162, 162, 163, 177, 171,
 
3749
+ 178, 161, 168, 177, 92, 161, 168, 178, 177, 162, 162, 162, 161, 168, 177, 161,
 
3750
+ 162, 168, 182, 168, 168, 177, 181, 171, 142, 168, 168, 163, 170, 92, 92, 130,
 
3751
+ 92, 130, 130, 92, 92, 130, 130, 130, 130, 92, 92, 130, 92, 130, 130, 92,
 
3752
+ 130, 130, 130, 92, 130, 130, 92, 92, 92, 92, 130, 130, 130, 92, 130, 130,
 
3753
+ 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 92, 130, 92, 130, 130, 92,
 
3754
+ 130, 130, 130, 130, 130, 130, 130, 130, 130, 92, 130, 130, 130, 130, 92, 92,
 
3755
+ 92, 92, 92, 130, 130, 130, 130, 130, 92, 92, 130, 130, 130, 130, 130, 130,
 
3756
+ 130, 92, 92, 130, 130, 130, 130, 130, 130, 130, 92, 92, 130, 130, 130, 130,
 
3757
+ 92, 92, 130, 92, 92, 121, 177, 180, 161, 121, 168, 181, 181, 168, 161, 161,
 
3758
+ 113, 168, 177, 121, 121, 168, 121, 177, 161, 177, 168, 168, 168, 168, 161, 168,
 
3759
+ 168, 161, 163, 142, 168, 168, 142, 178, 178, 121, 161, 162, 160, 161, 113, 161,
 
3760
+ 168, 162, 142, 161, 168, 142, 160, 177, 177, 168, 161, 121, 162, 177, 177, 178,
 
3761
+ 168, 160, 168, 142, 161, 168, 121, 161, 121, 168, 181, 113, 113, 168, 168, 177,
 
3762
+ 177, 168, 162, 177, 182, 161, 168, 168, 168, 160, 162, 121, 162, 177, 178, 142,
 
3763
+ 168, 178, 177, 177, 172, 177, 113, 162, 113, 160, 177, 168, 168, 161, 160, 168,
 
3764
+ 172, 121, 168, 177, 177, 161, 168, 168, 168, 178, 168, 168, 178, 121, 172, 177,
 
3765
+ 121, 121, 162, 164, 113, 162, 161, 168, 168, 177, 171, 177, 121, 160, 160, 178,
 
3766
+ 177, 168, 121, 168, 168, 168, 164, 177, 168, 168, 181, 177, 182, 168, 163, 168,
 
3767
+ 168, 168, 168, 163, 177, 168, 177, 178, 168, 142, 177, 168, 168, 162, 162, 113,
 
3768
+ 168, 161, 177, 182, 168, 164, 177, 177, 177, 168, 178, 168, 168, 168, 168, 168,
 
3769
+ 168, 177, 168, 168, 178, 160, 168, 168, 168, 180, 177, 153, 177, 168, 164, 121,
 
3770
+ 161, 177, 178, 168, 121, 177, 168, 168, 142, 177, 178, 178, 177, 160, 168, 177,
 
3771
+ 94, 178, 142, 177, 198, 168, 113, 177, 168, 182, 177, 168, 168, 168, 168, 178,
 
3772
+ 168, 168, 168, 142, 182, 177, 177, 188, 168, 178, 177, 168, 168, 168, 177, 177,
 
3773
+ 162, 168, 168, 168, 168, 171, 178, 162, 168, 177, 92, 177, 168, 178, 177, 178,
 
3774
+ 177, 92, 180, 177, 177, 168, 168, 168, 180, 121, 121, 168, 160, 178, 177, 168,
 
3775
+ 168, 168, 177, 168, 168, 168, 168, 177, 161, 168, 182, 168, 94, 168, 163, 168,
 
3776
+ 177, 177, 177, 168, 168, 177, 164, 168, 160, 177, 121, 142, 163, 177, 121, 170,
 
3777
+ 130, 130, 130, 130, 92, 130, 130, 92, 130, 130, 130, 130, 130, 130, 92, 130,
 
3778
+ 92, 130, 130, 130, 92, 130, 130, 130, 130, 130, 130, 92, 92, 130, 130, 130,
 
3779
+ 92, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 92, 130, 130,
 
3780
+ 92, 130, 92, 92, 92, 130, 92, 130, 130, 92, 130, 130, 130, 92, 130, 92,
 
3781
+ 92, 92, 92, 130, 130, 92, 130, 130, 130, 130, 130, 130, 130, 130, 92, 92,
 
3782
+ 130, 130, 92, 130, 92, 121, 92, 92, 113, 121, 177, 163, 171, 121, 130, 122,
 
3783
+ 177, 172, 176, 177, 163, 163, 168, 166, 167, 168, 168, 169, 178, 168, 177, 162,
 
3784
+ 160, 178, 122, 122, 168, 172, 182, 121, 163, 168, 168, 177, 168, 122, 163, 122,
 
3785
+ 168, 168, 160, 161, 177, 121, 175, 168, 182, 142, 172, 160, 163, 178, 177, 163,
 
3786
+ 177, 160, 161, 162, 190, 188, 168, 168, 202, 113, 113, 122, 142, 179, 122, 153,
 
3787
+ 168, 160, 168, 126, 175, 161, 163, 94, 177, 130, 161, 162, 142, 122, 122, 169,
 
3788
+ 178, 129, 181, 168, 122, 177, 168, 161, 122, 113, 168, 122, 122, 169, 121, 166,
 
3789
+ 169, 92, 170, 161, 177, 167, 168, 166, 121, 130, 130, 168, 162, 177, 177, 169,
 
3790
+ 177, 163, 177, 168, 121, 177, 178, 142, 182, 167, 168, 167, 167, 178, 179, 177,
 
3791
+ 168, 168, 163, 164, 161, 161, 168, 121, 198, 177, 168, 130, 92, 130, 122, 177,
 
3792
+ 166, 162, 177, 122, 164, 142, 177, 174, 168, 176, 177, 177, 168, 161, 168, 162,
 
3793
+ 122, 113, 166, 168, 168, 168, 163, 160, 168, 168, 177, 177, 169, 168, 168, 176,
 
3794
+ 168, 177, 177, 168, 171, 168, 168, 166, 168, 174, 162, 122, 162, 166, 169, 162,
 
3795
+ 168, 177, 168, 177, 90, 163, 177, 177, 168, 168, 121, 121, 168, 168, 180, 178,
 
3796
+ 179, 130, 121, 163, 178, 177, 177, 177, 177, 168, 163, 168, 97, 177, 177, 121,
 
3797
+ 178, 121, 153, 142, 168, 168, 142, 121, 162, 163, 121, 168, 121, 162, 177, 177,
 
3798
+ 177, 177, 142, 162, 168, 177, 178, 121, 168, 168, 177, 168, 161, 162, 168, 170,
 
3799
+ 130, 92, 92, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 121, 160, 162,
 
3800
+ 188, 177, 177, 161, 171, 180, 162, 164, 168, 170, 130, 130, 212, 181, 162, 170,
 
3801
+ 167, 164, 177, 164, 168, 163, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3802
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3803
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3804
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3805
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3806
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3807
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3808
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3809
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3810
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3811
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3812
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3813
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3814
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3815
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3816
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3817
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3818
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3819
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3820
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3821
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3822
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3823
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3824
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3825
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3826
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3827
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3828
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3829
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3830
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3831
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3832
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3833
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3834
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3835
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3836
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3837
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3838
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3839
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3840
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3841
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3842
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3843
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3844
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3845
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3846
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3847
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3848
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3849
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3850
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3851
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3852
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3853
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3854
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3855
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3856
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3857
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3858
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3859
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3860
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3861
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3862
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3863
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3864
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3865
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3866
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3867
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3868
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3869
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3870
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3871
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3872
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3873
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3874
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3875
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3876
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3877
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3878
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3879
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3880
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3881
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3882
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
3883
+ 110, 110, 110, 110, 110, 110, 110,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3884
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3885
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3886
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3887
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3888
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3889
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3890
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3891
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3892
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3893
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3894
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3895
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3896
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3897
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3898
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3899
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3900
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3901
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3902
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3903
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3904
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3905
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3906
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3907
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3908
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3909
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3910
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3911
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3912
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3913
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3914
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3915
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3916
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3917
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3918
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3919
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3920
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3921
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3922
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3923
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3924
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3925
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3926
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3927
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3928
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3929
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3930
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3931
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3932
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3933
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3934
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3935
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3936
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3937
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3938
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3939
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3940
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3941
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3942
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3943
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3944
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3945
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3946
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3947
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3948
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3949
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3950
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3951
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3952
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3953
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3954
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3955
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3956
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3957
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3958
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3959
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3960
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3961
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3962
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3963
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3964
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3965
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3966
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3967
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3968
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3969
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3970
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3971
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3972
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3973
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3974
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3975
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3976
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3977
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3978
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3979
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3980
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3981
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3982
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3983
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3984
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3985
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3986
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3987
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3988
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3989
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3990
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3991
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3992
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3993
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3994
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3995
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3996
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3997
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3998
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
3999
+ 98, 98,  0,  0, 98,  0,  0, 98, 98, 98, 98,  0,  0,  0,  0,  0,
 
4000
+ 98, 98, 98, 98, 98, 98, 98, 98,  0, 98, 98, 98, 98, 98,  0,  0,
 
4001
+ 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0, 98,
 
4002
+ 98, 98,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0, 98,  0,  0,  0,
 
4003
+ 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 98,  0, 98,  0,  0,
 
4004
+  0,  0,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,
 
4005
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4006
+ 98, 98,  0,  0, 98,  0,  0, 98, 98,  0, 98,  0,  0,  0,  0,  0,
 
4007
+ 98, 98,  0, 98, 98, 98, 98,  0,  0, 98, 98, 98, 98,  0,  0,  0,
 
4008
+ 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0, 98,
 
4009
+ 98, 98,  0,  0,  0,  0,  0,  0, 98, 98, 98,  0, 98,  0,  0, 98,
 
4010
+ 98,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0, 98, 98, 98,  0,  0,
 
4011
+  0, 98,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,
 
4012
+  0,  0,  0,  0,  0, 98,  0, 98,  0,  0,  0,  0,  0,  0,  0,  0,
 
4013
+ 98, 98,  0,  0, 98,  0,  0, 98, 98,  0, 98,  0, 98,  0,  0, 98,
 
4014
+ 98, 98,  0, 98,  0, 98, 98,  0,  0,  0,  0,  0, 98, 98,  0,  0,
 
4015
+ 98,  0,  0,  0, 98,  0, 98,  0,  0,  0,  0,  0, 98, 98,  0, 98,
 
4016
+  0, 98,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,
 
4017
+ 98,  0,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0, 98, 98,  0,  0,
 
4018
+  0,  0,  0,  0, 98, 98,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,
 
4019
+  0,  0,  0,  0, 98, 98,  0, 98,  0, 98,  0,  0,  0,  0,  0,  0,
 
4020
+ 98,  0,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4021
+  0, 98,  0, 98,  0,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0,
 
4022
+ 98,  0,  0, 98, 98, 98, 98,  0,  0,  0,  0, 98, 98, 98,  0, 98,
 
4023
+  0, 98, 98,  0,  0,  0,  0,  0, 98, 98,  0,  0, 98,  0,  0,  0,
 
4024
+ 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0,
 
4025
+  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4026
+  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,  0,
 
4027
+ 98, 98,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4028
+ 98, 98,  0, 98,  0,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,
 
4029
+ 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4030
+  0,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0, 98,  0,  0, 98,
 
4031
+ 98, 98,  0,  0,  0,  0,  0,  0, 98, 98,  0, 98,  0, 98,  0,  0,
 
4032
+  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4033
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4034
+ 98, 98,  0,  0, 98,  0,  0, 98, 98,  0, 98,  0,  0,  0,  0,  0,
 
4035
+ 98, 98,  0, 98,  0, 98, 98,  0,  0,  0, 98,  0, 98, 98, 98,  0,
 
4036
+ 98,  0,  0,  0, 98,  0, 98,  0,  0,  0,  0,  0, 98, 98,  0, 98,
 
4037
+ 98, 98,  0,  0,  0, 98,  0,  0, 98, 98,  0,  0, 98,  0,  0,  0,
 
4038
+ 98,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0, 98, 98, 98,  0,  0,
 
4039
+  0,  0,  0,  0, 98, 98,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,
 
4040
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4041
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4042
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 98, 98, 98,  0,
 
4043
+ 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0, 98,
 
4044
+ 98, 98,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0, 98,  0,  0,  0,
 
4045
+  0,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0, 98,  0, 98,  0,  0,
 
4046
+  0,  0,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,
 
4047
+  0,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0,  0,  0, 98,  0,  0,
 
4048
+ 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4049
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0,
 
4050
+ 98,  0, 98,  0, 98,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0, 98,
 
4051
+  0, 98, 98, 98,  0,  0,  0,  0, 98, 98,  0,  0,  0,  0,  0,  0,
 
4052
+ 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0,
 
4053
+  0,  0,  0,  0, 98, 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4054
+  0,  0,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,
 
4055
+ 98,  0,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4056
+ 98, 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,
 
4057
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4058
+  0,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0, 98,  0,  0,  0,
 
4059
+ 98,  0,  0,  0,  0,  0,  0, 98, 98, 98,  0, 98,  0, 98, 98,  0,
 
4060
+  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,
 
4061
+  0,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0,  0,  0,  0,  0,
 
4062
+ 98, 98,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4063
+ 98, 98,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,
 
4064
+ 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0,
 
4065
+  0,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4066
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4067
+  0,  0,  0,  0, 98, 98,  0,  0, 98,  0, 98,  0, 98,  0, 98,  0,
 
4068
+  0,  0,  0, 98, 98, 98,  0, 98,  0, 98,  0,  0,  0, 98,  0,  0,
 
4069
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4070
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0,
 
4071
+ 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0, 98,
 
4072
+  0, 98,  0,  0,  0,  0,  0,  0, 98, 98, 98,  0, 98,  0,  0, 98,
 
4073
+ 98, 98, 98,  0,  0,  0,  0,  0, 98, 98,  0, 98, 98, 98, 98, 98,
 
4074
+  0, 98,  0, 98, 98, 98,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,
 
4075
+  0,  0,  0,  0, 98, 98,  0, 98, 98, 98,  0,  0,  0,  0,  0,  0,
 
4076
+ 98, 98,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4077
+ 98,  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4078
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4079
+  0,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0, 98, 98,  0,  0,  0,
 
4080
+ 98,  0, 98, 98,  0,  0,  0,  0, 98, 98,  0, 98, 98, 98,  0,  0,
 
4081
+  0,  0,  0, 98, 98, 98,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,
 
4082
+  0,  0,  0,  0, 98, 98,  0, 98, 98, 98,  0,  0,  0,  0,  0,  0,
 
4083
+ 98, 98,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4084
+ 98, 98,  0,  0, 98, 98,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,
 
4085
+ 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4086
+  0,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0, 98,  0,  0,  0,
 
4087
+ 98,  0, 98,  0,  0,  0,  0,  0, 98, 98,  0, 98,  0, 98,  0,  0,
 
4088
+  0,  0, 98, 98, 98,  0,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,
 
4089
+  0,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4090
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4091
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,
 
4092
+ 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0, 98,
 
4093
+  0,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0, 98,  0,  0,  0,
 
4094
+ 98,  0,  0,  0,  0,  0,  0,  0,  0, 98,  0, 98,  0, 98,  0,  0,
 
4095
+  0,  0,  0,  0, 98, 98,  0,  0, 98,  0,  0, 98, 98,  0,  0,  0,
 
4096
+  0,  0,  0,  0, 98, 98,  0, 98,  0, 98,  0,  0,  0,  0,  0,  0,
 
4097
+ 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4098
+  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,
 
4099
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4100
+  0,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,
 
4101
+ 98,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0,  0,  0,  0,  0,
 
4102
+  0,  0,  0,  0, 98, 98,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,
 
4103
+  0,  0,  0,  0, 98, 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,
 
4104
+ 98, 98,  0,  0, 98,  0,  0,  0, 98, 98, 98,  0,  0,  0,  0,  0,
 
4105
+ 98, 98,  0, 98,  0, 98, 98,  0,  0,  0, 98,  0, 98,  0,  0,  0,
 
4106
+ 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4107
+  0,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0, 98,  0,  0,  0,
 
4108
+ 98,  0, 98,  0,  0,  0,  0,  0, 98, 98,  0, 98,  0, 98,  0,  0,
 
4109
+  0,  0, 98,  0, 98, 98, 98,  0, 98,  0,  0, 98, 98, 98, 98, 98,
 
4110
+  0,  0,  0, 98, 98, 98,  0, 98, 98, 98, 98, 98,  0,  0,  0, 98,
 
4111
+ 98, 98,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4112
+ 98, 98,  0, 98, 98, 98,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,
 
4113
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4114
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4115
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4116
+  0,  0,  0,  0, 98, 98, 98,  0, 98,  0,  0, 98, 98,  0, 98, 98,
 
4117
+  0,  0,  0,  0, 98, 98,  0, 98,  0, 98,  0, 98,  0,  0, 98,  0,
 
4118
+ 98, 98,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4119
+ 98, 98,  0, 98, 98, 98,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,
 
4120
+ 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4121
+ 98, 98,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,
 
4122
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4123
+  0,  0,  0,  0, 98, 98,  0,  0, 98,  0,  0, 98, 98,  0, 98,  0,
 
4124
+ 98,  0,  0,  0, 98, 98,  0, 98,  0, 98,  0, 98,  0, 98,  0,  0,
 
4125
+ 98,  0,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4126
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,
 
4127
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4128
+ 98,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,
 
4129
+ 98,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0, 98,  0,  0,  0,  0,
 
4130
+  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4131
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4132
+ 98, 98,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4133
+ 98, 98,  0, 98,  0, 98,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,
 
4134
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4135
+ 98,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4136
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,
 
4137
+  0,  0,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,
 
4138
+  0,  0,  0,  0,  0, 98,  0, 98,  0, 98,  0,  0,  0,  0,  0,  0,
 
4139
+ 98,  0,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4140
+ 98,  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0,
 
4141
+ 98,  0,  0, 98, 98,  0, 98,  0,  0,  0,  0,  0, 98, 98,  0, 98,
 
4142
+  0, 98,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4143
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4144
+  0,  0,  0,  0, 98, 98,  0,  0, 98,  0,  0, 98, 98,  0,  0,  0,
 
4145
+  0,  0,  0,  0, 98, 98,  0, 98, 98, 98, 98,  0,  0,  0,  0,  0,
 
4146
+ 98, 98,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4147
+ 98, 98,  0, 98, 98, 98,  0,  0,  0,  0,  0, 98, 98, 98,  0,  0,
 
4148
+ 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0, 98,
 
4149
+ 98, 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4150
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4151
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4152
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4153
+ 98, 98,  0,  0, 98,  0,  0,  0, 98,  0, 98, 98,  0,  0,  0,  0,
 
4154
+ 98, 98,  0, 98, 98, 98,  0,  0,  0,  0,  0, 98, 98, 98,  0,  0,
 
4155
+ 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0, 98,
 
4156
+ 98, 98,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4157
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,
 
4158
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4159
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4160
+ 98, 98,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4161
+  0,  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,
 
4162
+  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4163
+  0,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4164
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4165
+  0,  0,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4166
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4167
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4168
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0,
 
4169
+ 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0,  0,
 
4170
+  0, 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4171
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4172
+  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4173
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4174
+ 98,  0,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4175
+ 98, 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4176
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4177
+  0,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0, 98,  0,  0, 98,
 
4178
+ 98,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0, 98,  0,  0,  0,  0,
 
4179
+  0,  0,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,
 
4180
+  0,  0,  0,  0, 98, 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4181
+ 98,  0,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4182
+ 98, 98,  0, 98,  0, 98,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0,
 
4183
+ 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0, 98,
 
4184
+ 98, 98, 98,  0,  0,  0, 98, 98, 98, 98,  0,  0, 98,  0,  0,  0,
 
4185
+ 98,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0, 98, 98, 98,  0,  0,
 
4186
+  0,  0,  0,  0, 98, 98,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4187
+  0,  0,  0,  0,  0,  0,  0, 98,  0, 98,  0,  0,  0,  0,  0,  0,
 
4188
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4189
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0,
 
4190
+ 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0, 98,
 
4191
+ 98, 98,  0,  0,  0,  0,  0, 98, 98, 98,  0,  0, 98,  0,  0,  0,
 
4192
+ 98,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0, 98,  0, 98,  0,  0,
 
4193
+  0,  0,  0,  0, 98, 98,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,
 
4194
+  0,  0,  0,  0, 98, 98,  0, 98, 98, 98,  0,  0,  0,  0,  0,  0,
 
4195
+ 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4196
+  0, 98,  0, 98,  0,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0,
 
4197
+ 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0, 98,
 
4198
+  0, 98,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,
 
4199
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,
 
4200
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4201
+  0,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4202
+ 98,  0,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4203
+ 98, 98,  0, 98,  0, 98,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,
 
4204
+ 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,  0, 98,  0, 98,
 
4205
+  0, 98,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0, 98,  0,  0,  0,
 
4206
+ 98,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0, 98,  0, 98,  0,  0,
 
4207
+  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4208
+  0,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4209
+ 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4210
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0,
 
4211
+ 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0, 98,
 
4212
+  0, 98,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0, 98,  0,  0,  0,
 
4213
+ 98,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0, 98,  0, 98,  0,  0,
 
4214
+  0,  0,  0,  0, 98, 98,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,
 
4215
+  0,  0,  0,  0, 98, 98,  0, 98,  0, 98, 98,  0,  0, 98, 98,  0,
 
4216
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4217
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0,
 
4218
+ 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0, 98,
 
4219
+  0, 98,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0, 98,  0, 98, 98,
 
4220
+ 98, 98, 98,  0,  0,  0,  0,  0, 98, 98,  0, 98,  0, 98, 98,  0,
 
4221
+  0, 98,  0, 98, 98, 98,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,
 
4222
+  0,  0,  0,  0, 98, 98,  0, 98, 98, 98, 98,  0,  0,  0,  0,  0,
 
4223
+ 98, 98,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4224
+  0,  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4225
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4226
+  0,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0, 98,  0,  0,  0,
 
4227
+ 98,  0, 98,  0,  0,  0,  0,  0, 98, 98,  0, 98,  0, 98, 98,  0,
 
4228
+  0,  0,  0, 98, 98, 98,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,
 
4229
+  0,  0,  0,  0, 98, 98,  0, 98, 98, 98,  0,  0,  0,  0,  0,  0,
 
4230
+ 98, 98,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4231
+  0,  0,  0, 98, 98, 98,  0, 98,  0,  0,  0,  0, 98,  0,  0,  0,
 
4232
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4233
+  0,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0, 98, 98,  0,  0,  0,
 
4234
+ 98,  0, 98,  0,  0,  0,  0,  0, 98, 98,  0, 98,  0, 98,  0,  0,
 
4235
+  0,  0,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4236
+  0,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0,  0,  0,  0,  0,
 
4237
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4238
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,
 
4239
+ 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,  0, 98,  0, 98,
 
4240
+  0, 98,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,
 
4241
+ 98,  0,  0,  0,  0,  0,  0,  0,  0, 98,  0, 98,  0,  0,  0,  0,
 
4242
+  0,  0,  0,  0, 98, 98, 98,  0, 98,  0,  0, 98, 98, 98, 98,  0,
 
4243
+  0,  0,  0,  0, 98, 98,  0, 98,  0, 98,  0,  0,  0, 98,  0, 98,
 
4244
+ 98,  0,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4245
+  0, 98,  0, 98,  0,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,
 
4246
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4247
+  0,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,
 
4248
+ 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4249
+  0,  0,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,
 
4250
+  0,  0,  0,  0, 98,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,  0,
 
4251
+ 98,  0,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4252
+ 98,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4253
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4254
+  0,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0, 98,  0,  0, 98,
 
4255
+ 98,  0, 98,  0,  0,  0,  0,  0, 98, 98,  0, 98, 98, 98,  0, 98,
 
4256
+  0, 98,  0,  0, 98, 98, 98, 98, 98,  0,  0, 98, 98, 98, 98, 98,
 
4257
+  0,  0,  0,  0, 98, 98,  0, 98,  0, 98,  0,  0,  0, 98,  0,  0,
 
4258
+ 98, 98,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4259
+ 98, 98,  0, 98, 98, 98,  0,  0,  0, 98,  0,  0, 98, 98,  0,  0,
 
4260
+ 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,
 
4261
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4262
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4263
+  0,  0,  0,  0, 98, 98,  0,  0, 98,  0,  0, 98, 98,  0, 98,  0,
 
4264
+  0,  0,  0,  0, 98, 98,  0, 98,  0, 98, 98,  0,  0,  0,  0,  0,
 
4265
+ 98, 98,  0,  0, 98,  0,  0, 98, 98,  0,  0,  0,  0,  0,  0,  0,
 
4266
+ 98, 98,  0, 98, 98, 98,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0,
 
4267
+ 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,  0, 98,  0, 98,
 
4268
+ 98, 98,  0,  0,  0, 98,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,
 
4269
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4270
+  0,  0,  0,  0, 98, 98, 98,  0, 98,  0,  0,  0, 98,  0,  0,  0,
 
4271
+  0,  0,  0,  0, 98, 98,  0, 98,  0, 98,  0,  0,  0,  0,  0,  0,
 
4272
+ 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4273
+  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,
 
4274
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4275
+ 98,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0, 98,  0,  0,  0,
 
4276
+ 98,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0,  0,  0,  0,  0,
 
4277
+  0,  0,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4278
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4279
+ 98, 98,  0,  0, 98,  0,  0, 98, 98, 98, 98,  0,  0,  0,  0,  0,
 
4280
+ 98, 98,  0, 98,  0, 98,  0,  0,  0, 98, 98,  0, 98,  0,  0,  0,
 
4281
+  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4282
+ 98,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4283
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4284
+  0,  0,  0,  0, 98, 98,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,
 
4285
+  0,  0,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,
 
4286
+ 98,  0,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4287
+ 98,  0,  0, 98,  0, 98,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0,
 
4288
+ 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0, 98,
 
4289
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4290
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4291
+  0,  0,  0,  0, 98, 98,  0,  0, 98,  0,  0,  0, 98,  0, 98,  0,
 
4292
+  0,  0,  0,  0, 98, 98,  0, 98,  0, 98, 98, 98,  0,  0,  0,  0,
 
4293
+ 98, 98,  0,  0, 98,  0,  0,  0, 98,  0, 98,  0,  0,  0,  0,  0,
 
4294
+ 98, 98,  0, 98, 98, 98,  0,  0,  0,  0,  0, 98, 98, 98,  0,  0,
 
4295
+ 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0, 98,
 
4296
+ 98, 98,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0,  0,  0,  0,  0,
 
4297
+  0,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4298
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4299
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4300
+ 98, 98,  0,  0, 98,  0,  0, 98, 98,  0,  0,  0,  0,  0,  0,  0,
 
4301
+ 98,  0,  0, 98, 98, 98,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,
 
4302
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4303
+  0, 98,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0,  0,  0,  0,  0,
 
4304
+  0,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0, 98, 98, 98,  0,  0,
 
4305
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4306
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4307
+ 98, 98,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4308
+ 98, 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4309
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4310
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4311
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4312
+  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4313
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4314
+ 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4315
+  0,  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0,
 
4316
+ 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0, 98,
 
4317
+  0, 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4318
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4319
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4320
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4321
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4322
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,
 
4323
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4324
+  0, 98,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,
 
4325
+ 98,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0,  0,  0,  0,  0,
 
4326
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4327
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4328
+ 98, 98,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4329
+ 98, 98,  0, 98,  0, 98,  0,  0,  0,  0,  0,  0, 98, 98,  0, 98,
 
4330
+ 98,  0,  0, 98, 98, 98, 98,  0,  0,  0,  0,  0, 98, 98,  0, 98,
 
4331
+ 98, 98,  0,  0,  0, 98,  0,  0, 98, 98,  0,  0, 98,  0,  0,  0,
 
4332
+ 98,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0, 98, 98, 98,  0,  0,
 
4333
+  0,  0,  0,  0, 98, 98,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,
 
4334
+  0,  0,  0,  0, 98, 98,  0, 98,  0, 98,  0,  0,  0,  0,  0,  0,
 
4335
+ 98,  0,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4336
+ 98,  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0, 98, 98, 98, 98,
 
4337
+ 98,  0,  0, 98, 98,  0, 98, 98,  0,  0,  0,  0, 98, 98,  0, 98,
 
4338
+ 98, 98,  0,  0,  0,  0, 98,  0, 98, 98,  0,  0, 98,  0,  0,  0,
 
4339
+ 98,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0, 98, 98, 98,  0,  0,
 
4340
+  0,  0,  0,  0, 98, 98,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,
 
4341
+  0,  0,  0,  0, 98, 98,  0, 98, 98, 98,  0,  0,  0,  0,  0,  0,
 
4342
+ 98,  0,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4343
+  0,  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0, 98, 98, 98,  0,
 
4344
+ 98,  0,  0,  0, 98,  0, 98,  0,  0,  0,  0,  0, 98, 98,  0, 98,
 
4345
+  0, 98,  0,  0,  0, 98,  0,  0, 98, 98,  0,  0, 98,  0,  0,  0,
 
4346
+ 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,
 
4347
+  0,  0,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,
 
4348
+  0,  0,  0,  0, 98,  0,  0, 98, 98,  0,  0,  0,  0,  0,  0,  0,
 
4349
+ 98,  0,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4350
+ 98, 98,  0, 98,  0,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0,
 
4351
+ 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0, 98,
 
4352
+  0, 98,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0, 98,  0,  0, 98,
 
4353
+ 98,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0, 98,  0, 98,  0, 98,
 
4354
+  0, 98, 98,  0, 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4355
+  0,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4356
+ 98, 98,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4357
+ 98,  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0,
 
4358
+ 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0, 98,
 
4359
+  0, 98,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0,  0,  0,  0,  0,
 
4360
+ 98,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0, 98,  0, 98,  0,  0,
 
4361
+  0,  0,  0,  0, 98, 98,  0,  0, 98,  0,  0,  0, 98, 98,  0,  0,
 
4362
+  0,  0,  0,  0, 98, 98,  0, 98,  0, 98,  0,  0,  0,  0,  0,  0,
 
4363
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4364
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0,
 
4365
+ 98,  0,  0, 98, 98,  0,  0,  0,  0,  0,  0, 98, 98, 98,  0, 98,
 
4366
+  0, 98,  0,  0,  0,  0, 98,  0, 98, 98,  0, 98, 98,  0,  0,  0,
 
4367
+ 98,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0, 98, 98,  0,  0,
 
4368
+  0,  0,  0, 98, 98, 98,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,
 
4369
+  0,  0,  0,  0, 98, 98,  0,  0, 98, 98,  0,  0,  0,  0,  0,  0,
 
4370
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4371
+  0,  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4372
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4373
+  0,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0, 98,  0,  0,  0,
 
4374
+ 98,  0, 98,  0,  0,  0,  0,  0, 98, 98,  0,  0, 98, 98,  0,  0,
 
4375
+  0,  0,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,
 
4376
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4377
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4378
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4379
+ 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4380
+  0,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0, 98,  0,  0, 98,
 
4381
+ 98,  0, 98,  0,  0,  0,  0,  0, 98, 98,  0,  0,  0, 98,  0,  0,
 
4382
+  0,  0,  0,  0, 98, 98,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4383
+  0,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4384
+ 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4385
+  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,
 
4386
+ 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0,
 
4387
+  0,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4388
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4389
+  0,  0,  0,  0, 98, 98,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,
 
4390
+  0,  0,  0,  0, 98, 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,
 
4391
+ 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4392
+  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,
 
4393
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4394
+  0,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,
 
4395
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4396
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4397
+  0,  0,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,
 
4398
+ 98, 98,  0,  0, 98,  0,  0,  0, 98,  0, 98,  0,  0,  0,  0, 98,
 
4399
+ 98, 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,
 
4400
+ 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,
 
4401
+  0,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0, 98,  0,  0,  0,
 
4402
+ 98,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0, 98,  0, 98,  0,  0,
 
4403
+  0,  0,  0,  0, 98, 98,  0,  0, 98, 98, 98,  0, 98, 98, 98,  0,
 
4404
+  0,  0,  0, 98, 98, 98,  0, 98, 98, 98,  0,  0,  0, 98, 98,  0,
 
4405
+ 98, 98,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4406
+ 98, 98,  0, 98, 98, 98,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0,
 
4407
+ 98,  0,  0,  0, 98,  0,  0, 98,  0,  0,  0,  0, 98, 98,  0, 98,
 
4408
+  0, 98,  0,  0,  0, 98,  0, 98, 98,  0,  0,  0, 98,  0,  0,  0,
 
4409
+ 98,  0,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,
 
4410
+  0,  0,  0,  0, 98, 98,  0,  0, 98, 98,  0, 98, 98, 98, 98,  0,
 
4411
+  0,  0,  0,  0, 98, 98, 98, 98, 98, 98, 98,  0, 98,  0, 98,  0,
 
4412
+ 98, 98,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4413
+ 98, 98,  0, 98,  0, 98,  0,  0,  0,  0,  0,  0, 98, 98, 98,  0,
 
4414
+ 98,  0,  0,  0, 98,  0, 98, 98,  0,  0,  0,  0, 98, 98, 98, 98,
 
4415
+ 98, 98,  0,  0,  0, 98, 98, 98, 98,  0,  0,  0, 98,  0,  0,  0,
 
4416
+ 98,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0, 98, 98,  0,  0,  0,
 
4417
+  0,  0,  0,  0, 98, 98,  0,  0, 98,  0,  0,  0, 98, 98, 98,  0,
 
4418
+ 98,  0,  0, 98, 98, 98,  0, 98,  0, 98,  0, 98,  0,  0,  0,  0,
 
4419
+ 98, 98,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4420
+ 98, 98,  0, 98, 98, 98,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0,
 
4421
+ 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0, 98,
 
4422
+  0, 98,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0, 98,  0,  0,  0,
 
4423
+ 98,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0, 98,  0, 98,  0,  0,
 
4424
+  0,  0,  0,  0, 98, 98,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,
 
4425
+  0,  0,  0,  0, 98, 98,  0, 98,  0, 98,  0,  0,  0,  0,  0,  0,
 
4426
+ 98, 98,  0,  0, 98,  0,  0,  0, 98, 98, 98,  0,  0,  0,  0,  0,
 
4427
+ 98, 98,  0, 98,  0, 98,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0,
 
4428
+ 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0,
 
4429
+ 98, 98,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0, 98,  0,  0,  0,
 
4430
+ 98,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0,  0, 98,  0,  0,
 
4431
+  0,  0,  0,  0, 98, 98,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,
 
4432
+  0,  0,  0,  0, 98, 98,  0, 98,  0, 98,  0,  0,  0,  0,  0,  0,
 
4433
+ 98, 98,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4434
+ 98, 98,  0, 98,  0, 98,  0, 98,  0,  0,  0,  0, 98, 98,  0,  0,
 
4435
+ 98,  0,  0,  0, 98,  0,  0,  0,  0,  0, 98,  0, 98, 98,  0, 98,
 
4436
+  0, 98, 98, 98, 98, 98, 98, 98, 98,  0,  0,  0, 98,  0,  0,  0,
 
4437
+ 98,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0, 98,  0,  0,  0,  0,
 
4438
+  0,  0,  0,  0, 98, 98,  0,  0, 98,  0,  0,  0, 98, 98, 98,  0,
 
4439
+  0,  0,  0, 98, 98, 98,  0, 98, 98, 98, 98,  0,  0,  0, 98,  0,
 
4440
+ 98, 98,  0,  0, 98,  0, 98, 98, 98,  0, 98,  0,  0,  0,  0,  0,
 
4441
+ 98, 98,  0, 98, 98, 98, 98,  0,  0,  0,  0,  0, 98, 98,  0,  0,
 
4442
+ 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0, 98,
 
4443
+ 98, 98,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0, 98,  0, 98,  0,
 
4444
+ 98,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,  0, 98,  0,  0,
 
4445
+  0,  0,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,
 
4446
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4447
+ 98, 98,  0,  0, 98,  0,  0,  0, 98,  0, 98,  0,  0,  0,  0,  0,
 
4448
+ 98, 98,  0, 98,  0, 98, 98,  0,  0,  0,  0,  0, 98, 98,  0,  0,
 
4449
+ 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0, 98,
 
4450
+  0, 98,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,
 
4451
+ 98,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0, 98, 98,  0,  0,
 
4452
+  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4453
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4454
+ 98, 98,  0,  0, 98,  0,  0,  0, 98,  0, 98,  0,  0,  0,  0,  0,
 
4455
+ 98, 98,  0, 98,  0, 98, 98, 98,  0,  0,  0, 98, 98, 98,  0,  0,
 
4456
+  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,  0, 98,  0, 98,
 
4457
+  0, 98,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4458
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0,
 
4459
+  0,  0,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,
 
4460
+  0,  0,  0,  0, 98, 98,  0, 98,  0, 98,  0,  0,  0,  0,  0,  0,
 
4461
+ 98, 98,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4462
+  0,  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0,
 
4463
+ 98,  0,  0,  0, 98, 98, 98,  0,  0,  0,  0,  0, 98, 98,  0, 98,
 
4464
+  0, 98,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4465
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,
 
4466
+  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4467
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4468
+ 98, 98,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4469
+ 98, 98,  0, 98,  0,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,
 
4470
+ 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,
 
4471
+  0,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0, 98,  0,  0,  0,
 
4472
+ 98,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0, 98,  0, 98,  0,  0,
 
4473
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4474
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4475
+ 98, 98,  0,  0, 98,  0,  0, 98, 98,  0, 98,  0,  0,  0,  0,  0,
 
4476
+ 98, 98,  0, 98,  0, 98, 98,  0,  0, 98, 98,  0, 98, 98,  0,  0,
 
4477
+ 98,  0, 98,  0, 98,  0,  0, 98,  0,  0,  0,  0, 98, 98,  0, 98,
 
4478
+ 98, 98,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0, 98,  0,  0,  0,
 
4479
+ 98,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0, 98, 98, 98,  0,  0,
 
4480
+  0,  0,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4481
+  0,  0,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,
 
4482
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4483
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0,
 
4484
+ 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0, 98,
 
4485
+ 98, 98,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4486
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,
 
4487
+  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4488
+  0,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4489
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4490
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0,
 
4491
+ 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0, 98,
 
4492
+  0, 98,  0, 98,  0,  0,  0,  0, 98, 98,  0,  0,  0,  0,  0,  0,
 
4493
+ 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,
 
4494
+  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4495
+  0,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4496
+ 98,  0,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4497
+ 98, 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4498
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4499
+  0, 98,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0, 98,  0,  0,  0,
 
4500
+ 98,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0,  0, 98,  0,  0,
 
4501
+  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4502
+  0,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0,  0,  0,  0,  0,
 
4503
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4504
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,
 
4505
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4506
+  0,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4507
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4508
+  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4509
+  0,  0,  0,  0, 98,  0,  0, 98,  0, 98,  0,  0,  0,  0,  0,  0,
 
4510
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4511
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0,
 
4512
+ 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0,
 
4513
+  0, 98, 98,  0,  0,  0,  0, 98, 98, 98,  0,  0, 98,  0, 98,  0,
 
4514
+ 98,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0, 98, 98, 98, 98,  0,
 
4515
+  0,  0,  0,  0, 98, 98,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,
 
4516
+  0,  0,  0,  0, 98, 98,  0, 98, 98, 98,  0,  0,  0,  0,  0,  0,
 
4517
+ 98,  0,  0,  0, 98,  0, 98,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4518
+ 98,  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4519
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4520
+  0,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0, 98,  0,  0,  0,
 
4521
+ 98,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0, 98, 98, 98,  0,  0,
 
4522
+  0,  0,  0,  0, 98, 98,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,
 
4523
+  0,  0,  0,  0, 98, 98,  0, 98,  0, 98,  0,  0,  0,  0,  0,  0,
 
4524
+ 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4525
+  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,
 
4526
+ 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4527
+  0, 98,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0, 98,  0,  0,  0,
 
4528
+ 98,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0, 98,  0, 98,  0,  0,
 
4529
+  0,  0,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,
 
4530
+  0,  0,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,
 
4531
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4532
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,
 
4533
+ 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0, 98,
 
4534
+  0, 98,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4535
+  0,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4536
+  0,  0,  0,  0, 98, 98,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,
 
4537
+  0,  0,  0,  0, 98, 98,  0, 98,  0, 98,  0,  0,  0,  0,  0,  0,
 
4538
+ 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4539
+  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,
 
4540
+ 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4541
+  0,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,
 
4542
+ 98,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0, 98,  0, 98,  0,  0,
 
4543
+  0,  0,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,
 
4544
+  0,  0,  0,  0, 98,  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,
 
4545
+ 98, 98,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4546
+ 98, 98,  0, 98,  0, 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4547
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4548
+  0,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0, 98,  0,  0, 98,
 
4549
+ 98, 98,  0,  0,  0,  0,  0,  0, 98, 98,  0, 98,  0, 98,  0,  0,
 
4550
+  0,  0,  0,  0, 98, 98,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,
 
4551
+  0,  0,  0,  0, 98, 98,  0, 98,  0, 98,  0,  0,  0,  0,  0,  0,
 
4552
+ 98, 98,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4553
+ 98, 98,  0, 98, 98, 98,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0,
 
4554
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4555
+  0, 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4556
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4557
+  0,  0,  0,  0, 98, 98,  0,  0, 98,  0,  0, 98, 98,  0,  0,  0,
 
4558
+  0,  0,  0,  0, 98, 98,  0, 98, 98, 98,  0,  0,  0,  0,  0,  0,
 
4559
+ 98, 98,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4560
+ 98, 98,  0, 98,  0, 98,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,
 
4561
+ 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0, 98,
 
4562
+ 98, 98,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4563
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4564
+  0,  0,  0,  0, 98, 98,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,
 
4565
+  0,  0,  0,  0, 98, 98,  0, 98,  0, 98,  0,  0,  0,  0,  0,  0,
 
4566
+ 98, 98,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4567
+ 98,  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,
 
4568
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4569
+  0, 98,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4570
+ 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4571
+  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4572
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4573
+ 98, 98,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4574
+ 98, 98,  0, 98,  0, 98,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,
 
4575
+ 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4576
+  0, 98,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4577
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,
 
4578
+  0,  0,  0,  0, 98, 98,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,
 
4579
+  0,  0,  0,  0, 98, 98,  0, 98,  0, 98,  0,  0,  0,  0,  0,  0,
 
4580
+ 98,  0,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4581
+ 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0,
 
4582
+ 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0,
 
4583
+  0, 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4584
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4585
+  0,  0,  0,  0, 98, 98,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,
 
4586
+  0,  0,  0,  0, 98, 98,  0, 98,  0, 98,  0,  0,  0,  0,  0,  0,
 
4587
+ 98, 98,  0,  0, 98,  0,  0,  0, 98, 98,  0,  0,  0,  0,  0,  0,
 
4588
+ 98, 98,  0, 98, 98, 98,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0,
 
4589
+ 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0, 98,
 
4590
+ 98, 98,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4591
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,
 
4592
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4593
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4594
+ 98, 98,  0,  0, 98,  0,  0,  0, 98,  0, 98,  0,  0,  0,  0,  0,
 
4595
+ 98, 98,  0, 98, 98, 98,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0,
 
4596
+ 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0, 98,
 
4597
+  0, 98,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,
 
4598
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,
 
4599
+  0,  0,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4600
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4601
+ 98, 98,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4602
+ 98, 98,  0, 98,  0, 98,  0,  0,  0,  0, 98,  0, 98,  0,  0,  0,
 
4603
+ 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4604
+  0,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4605
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4606
+  0,  0,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4607
+  0,  0,  0,  0,  0,  0,  0, 98,  0, 98,  0,  0,  0,  0,  0,  0,
 
4608
+ 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4609
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0,
 
4610
+ 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0, 98,
 
4611
+  0, 98,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4612
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,
 
4613
+  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4614
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4615
+ 98, 98,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4616
+ 98, 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,
 
4617
+ 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,
 
4618
+  0, 98,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0, 98,  0,  0, 98,
 
4619
+ 98,  0, 98,  0,  0,  0,  0,  0, 98, 98,  0, 98,  0,  0,  0,  0,
 
4620
+  0,  0,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,
 
4621
+  0,  0,  0,  0, 98, 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4622
+ 98, 98,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4623
+ 98, 98,  0, 98,  0, 98,  0,  0,  0,  0,  0,  0, 98, 98, 98,  0,
 
4624
+ 98,  0,  0,  0, 98,  0, 98,  0,  0,  0,  0,  0, 98, 98,  0, 98,
 
4625
+ 98, 98,  0,  0,  0, 98,  0,  0, 98, 98,  0,  0, 98,  0,  0,  0,
 
4626
+ 98,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0, 98, 98, 98,  0,  0,
 
4627
+  0,  0,  0,  0, 98, 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4628
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4629
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4630
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0,
 
4631
+ 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0, 98,
 
4632
+ 98, 98,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0, 98,  0,  0,  0,
 
4633
+ 98,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0, 98,  0, 98,  0,  0,
 
4634
+  0,  0,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,
 
4635
+  0,  0,  0,  0, 98, 98,  0,  0, 98, 98,  0,  0,  0,  0,  0,  0,
 
4636
+ 98,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4637
+  0, 98,  0, 98,  0,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0,
 
4638
+ 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0, 98,
 
4639
+  0, 98,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4640
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,
 
4641
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4642
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4643
+ 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4644
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,
 
4645
+ 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,  0, 98,  0, 98,
 
4646
+  0,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0, 98,  0,  0, 98,
 
4647
+ 98,  0, 98,  0,  0,  0,  0,  0, 98, 98,  0, 98,  0, 98,  0,  0,
 
4648
+  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4649
+  0,  0,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,
 
4650
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4651
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,
 
4652
+ 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0, 98,
 
4653
+  0,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,
 
4654
+ 98,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0, 98,  0, 98,  0,  0,
 
4655
+  0,  0,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,
 
4656
+  0,  0,  0,  0, 98, 98,  0, 98,  0,  0,  0,  0,  0,  0,  0,  0,
 
4657
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4658
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0,
 
4659
+ 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0, 98,
 
4660
+  0, 98,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0, 98,  0,  0,  0,
 
4661
+ 98,  0,  0,  0,  0, 98,  0,  0, 98, 98,  0, 98,  0, 98,  0,  0,
 
4662
+  0,  0,  0,  0, 98, 98,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,
 
4663
+  0,  0,  0,  0, 98, 98,  0, 98, 98, 98,  0,  0,  0,  0,  0,  0,
 
4664
+ 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4665
+  0,  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4666
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4667
+  0,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0, 98,  0,  0,  0,
 
4668
+ 98,  0, 98,  0,  0,  0,  0,  0, 98, 98,  0, 98,  0, 98,  0,  0,
 
4669
+  0,  0,  0,  0, 98, 98,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,
 
4670
+  0,  0,  0,  0, 98, 98,  0, 98,  0, 98,  0,  0,  0,  0,  0,  0,
 
4671
+ 98, 98,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4672
+ 98, 98,  0, 98, 98, 98,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0,
 
4673
+ 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,  0, 98,  0,  0,
 
4674
+  0,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0, 98,  0,  0,  0,
 
4675
+ 98,  0,  0,  0,  0, 98,  0,  0, 98, 98,  0, 98,  0, 98,  0,  0,
 
4676
+  0, 98,  0,  0, 98, 98,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,
 
4677
+  0,  0,  0,  0,  0,  0,  0, 98,  0, 98,  0,  0,  0,  0,  0,  0,
 
4678
+ 98, 98,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4679
+  0,  0,  0, 98,  0, 98,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0,
 
4680
+ 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,  0, 98,  0, 98,
 
4681
+  0, 98,  0,  0,  0,  0,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,
 
4682
+ 98,  0,  0,  0,  0,  0,  0,  0,  0, 98,  0, 98,  0,  0,  0,  0,
 
4683
+  0,  0,  0,  0, 98, 98,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,
 
4684
+  0, 98,  0,  0, 98,  0,  0, 98,  0, 98,  0,  0,  0,  0,  0,  0,
 
4685
+ 98,  0,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,
 
4686
+ 98,  0,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0,
 
4687
+ 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4688
+  0, 98,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0, 98,  0,  0,  0,
 
4689
+ 98,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0, 98,  0, 98,  0,  0,
 
4690
+  0,  0,  0,  0, 98, 98,  0,  0, 98,  0,  0,  0, 98,  0,  0,  0,
 
4691
+  0,  0,  0,  0, 98,  0,  0, 98,  0, 98,  0,  0,  0,  0,  0,  0,
 
4692
+ 98, 98,  0,  0, 98,  0, 98, 98, 98, 98,  0,  0,  0,  0,  0,  0,
 
4693
+ 98, 98,  0, 98,  0, 98,  0,  0,  0, 98,  0,  0, 98,  0,  0,  0,
 
4694
+ 98,  0,  0,  0, 98,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0,
 
4695
+  0, 98,  0,  0,  0,  0,  0,  0, 98, 98,  0,  0, 98,  0,  0,  0,
 
4696
+ 98,  0,  0,  0,  0,  0,  0,  0, 98, 98,  0, 98,  0, 98,  0,  0,
 
4697
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4698
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4699
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4700
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4701
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4702
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4703
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4704
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4705
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4706
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4707
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4708
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4709
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4710
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4711
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4712
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4713
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4714
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4715
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4716
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4717
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4718
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4719
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4720
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4721
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4722
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4723
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4724
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4725
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4726
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4727
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4728
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4729
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4730
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4731
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4732
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4733
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4734
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4735
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4736
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4737
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4738
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4739
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4740
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4741
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4742
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4743
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4744
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4745
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4746
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4747
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4748
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4749
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4750
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4751
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4752
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4753
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4754
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4755
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4756
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4757
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4758
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4759
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4760
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4761
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4762
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4763
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4764
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4765
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4766
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4767
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4768
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4769
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4770
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4771
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4772
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4773
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4774
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4775
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4776
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4777
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4778
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4779
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4780
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4781
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4782
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4783
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4784
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4785
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4786
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4787
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4788
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4789
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4790
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4791
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4792
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4793
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4794
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4795
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4796
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4797
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4798
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4799
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4800
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4801
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4802
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4803
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4804
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4805
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4806
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4807
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4808
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4809
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4810
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4811
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4812
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4813
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4814
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4815
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4816
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4817
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4818
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4819
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4820
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4821
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4822
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4823
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4824
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4825
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4826
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4827
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4828
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4829
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4830
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4831
+ 94, 92, 94, 94, 92, 92, 92, 92, 92, 94, 94, 92, 94, 92, 94, 92,
 
4832
+ 92, 92, 94, 94, 94, 94, 94, 92, 94, 92, 94, 94, 94, 94, 94, 92,
 
4833
+ 94, 92, 94, 94, 92, 94, 92, 92, 92, 92, 92, 92, 92, 94, 94, 92,
 
4834
+ 94, 92, 94, 94, 94, 94, 94, 94, 94, 92, 92, 94, 94, 92, 92, 92,
 
4835
+ 92, 92, 92, 92, 92, 94, 92, 92, 92, 92, 92, 92, 94, 92, 92, 92,
 
4836
+ 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 94, 92, 94, 92, 92, 94,
 
4837
+ 94, 94, 92, 92, 94, 92, 94, 92, 92, 92, 92, 92, 94, 92, 92, 92,
 
4838
+ 92, 94, 92, 92, 94, 94, 92, 92, 94, 92, 92, 92, 92, 94, 92, 92,
 
4839
+ 92, 92, 92, 92, 92, 92, 92, 94, 92, 94, 94, 92, 94, 92, 92, 92,
 
4840
+ 92, 92, 92, 94, 94, 92, 92, 92, 92, 94, 94, 92, 94, 94, 94, 92,
 
4841
+ 92, 92, 92, 92, 92, 92, 94, 94, 92, 94, 92, 94, 92, 92, 94, 92,
 
4842
+ 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 94, 92, 94, 92, 94, 92,
 
4843
+ 92, 92, 92, 94, 92, 94, 92, 94, 94, 92, 94, 92, 92, 92, 92, 92,
 
4844
+ 94, 92, 92, 92, 94, 94, 92, 92, 92, 92, 92, 92, 94, 92, 92, 94,
 
4845
+ 92, 92, 94, 94, 94, 94, 92, 94, 94, 94, 92, 94, 94, 92, 94, 92,
 
4846
+ 92, 92, 94, 92, 92, 92, 92, 92, 94, 94, 92, 94, 92, 94, 92, 92,
 
4847
+ 92, 92, 92, 94, 92, 92, 94, 92, 92, 94, 94, 94, 92, 92, 92, 92,
 
4848
+ 94, 92, 92, 92, 94, 94, 92, 92, 92, 92, 92, 92, 94, 94, 92, 92,
 
4849
+ 92, 94, 92, 92, 92, 92, 94, 94, 94, 92, 92, 92, 92, 92, 92, 92,
 
4850
+ 94, 94, 92, 92, 92, 92, 94, 92, 92, 94, 92, 92, 92, 92, 92, 92,
 
4851
+ 92, 94, 94, 92, 92, 94, 92, 94, 94, 92, 94, 92, 92, 94, 92, 92,
 
4852
+ 94, 92, 92, 92, 94, 94, 94, 94, 92, 94, 94, 92, 92, 94, 92, 92,
 
4853
+ 92, 92, 94, 92, 92, 92, 92, 92, 94, 94, 94, 92, 92, 92, 92, 92,
 
4854
+ 92, 94, 94, 92, 92, 94, 92, 92, 94, 94, 92, 94, 94, 92, 92, 94,
 
4855
+ 94, 92, 92, 92, 92, 94, 92, 94, 92, 94, 92, 94, 92, 92, 92, 94,
 
4856
+ 94, 92, 92, 94, 92, 94, 94, 92, 92, 92, 92, 92, 92, 92, 92, 94,
 
4857
+ 94, 92, 92, 92, 94, 92, 94, 92, 92, 92, 94, 92, 92, 92, 94, 92,
 
4858
+ 94, 94, 92, 94, 94, 92, 94, 92, 94, 92, 92, 94, 94, 94, 94, 94,
 
4859
+ 92, 94, 92, 92, 94, 94, 92, 92, 94, 92, 92, 92, 94, 94, 92, 92,
 
4860
+ 92, 92, 92, 92, 94, 94, 92, 94, 92, 92, 94, 92, 92, 94, 92, 92,
 
4861
+ 92, 92, 94, 92, 92, 92, 94, 92, 92, 92, 92, 94, 92, 92, 92, 94,
 
4862
+ 94, 92, 94, 92, 92, 92, 92, 94, 92, 92, 94, 92, 92, 92, 94, 92,
 
4863
+ 94, 94, 94, 92, 92, 94, 92, 94, 92, 92, 94, 94, 94, 92, 92, 92,
 
4864
+ 94, 92, 94, 94, 94, 94, 94, 92, 92, 94, 92, 94, 94, 92, 92, 94,
 
4865
+ 94, 94, 92, 92, 92, 92, 94, 94, 94, 92, 94, 92, 92, 92, 92, 94,
 
4866
+ 92, 94, 92, 94, 92, 92, 92, 94, 92, 92, 92, 94, 92, 94, 94, 92,
 
4867
+ 92, 92, 92, 92, 92, 94, 92, 92, 94, 92, 94, 94, 94, 94, 94, 94,
 
4868
+ 92, 94, 94, 94, 94, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92,
 
4869
+ 92, 94, 92, 92, 92, 92, 92, 92, 94, 92, 92, 94, 92, 94, 94, 94,
 
4870
+ 92, 94, 92, 92, 92, 92, 92, 92, 92, 92, 94, 92, 92, 94, 92, 92,
 
4871
+ 92, 92, 94, 92, 92, 92, 92, 92, 94, 94, 92, 94, 92, 92, 92, 92,
 
4872
+ 94, 94, 92, 92, 94, 94, 94, 92, 92, 94, 94, 94, 92, 92, 92, 94,
 
4873
+ 92, 94, 92, 92, 94, 92, 94, 92, 92, 92, 92, 92, 92, 92, 92, 92,
 
4874
+ 92, 92, 94, 94, 94, 94, 92, 94, 94, 92, 94, 92, 92, 92, 94, 94,
 
4875
+ 92, 94, 92, 92, 92, 92, 92, 94, 92, 94, 92, 92, 92, 92, 92, 92,
 
4876
+ 92, 92, 92, 92, 94, 92, 92, 92, 94, 94, 92, 92, 92, 92, 94, 92,
 
4877
+ 94, 94, 94, 92, 92, 92, 92, 94, 92, 94, 92, 94, 94, 94, 92, 92,
 
4878
+ 94, 94, 92, 92, 92, 92, 92, 92, 94, 92, 92, 92, 94, 92, 92, 94,
 
4879
+ 94, 94, 92, 92, 92, 92, 94, 92, 94, 92, 92, 92, 94, 92, 92, 94,
 
4880
+ 92, 94, 92, 94, 92, 94, 92, 92, 94, 92, 92, 94, 94, 92, 92, 94,
 
4881
+ 92, 92, 92, 92, 92, 94, 92, 92, 92, 92, 92, 92, 94, 92, 92, 92,
 
4882
+ 94, 94, 92, 92, 92, 94, 94, 92, 92, 92, 92, 94, 92, 94, 92, 92,
 
4883
+ 92, 92, 94, 92, 92, 94, 92, 92, 94, 92, 92, 92, 92, 92, 92, 92,
 
4884
+ 92, 92, 94, 92, 94, 92, 92, 92, 92, 92, 92, 94, 94, 92, 92, 92,
 
4885
+ 94, 92, 94, 92, 94, 94, 92, 92, 92, 92, 92, 92, 92, 92, 92, 94,
 
4886
+ 92, 92, 94, 92, 94, 94, 92, 94, 92, 94, 92, 94, 92, 92, 92, 92,
 
4887
+ 92, 94, 94, 92, 92, 92, 94, 92, 94, 94, 94, 92, 92, 94, 92, 92,
 
4888
+ 92, 94, 92, 94, 94, 92, 94, 92, 94, 92, 94, 94, 92, 92, 94, 94,
 
4889
+ 94, 92, 94, 92, 92, 94, 94, 94, 94, 94, 92, 92, 94, 92, 92, 92,
 
4890
+ 92, 94, 94, 92, 94, 94, 92, 92, 92, 94, 94, 94, 94, 94, 92, 92,
 
4891
+ 92, 92, 92, 94, 92, 92, 92, 92, 94, 92, 92, 92, 94, 94, 92, 94,
 
4892
+ 92, 92, 92, 92, 92, 94, 92, 92, 94, 94, 94, 92, 92, 92, 92, 92,
 
4893
+ 92, 94, 92, 94, 92, 92, 92, 94, 92, 92, 92, 92, 92, 94, 94, 92,
 
4894
+ 94, 92, 94, 94, 94, 92, 92, 92, 94, 92, 94, 92, 92, 94, 92, 94,
 
4895
+ 92, 92, 92, 92, 92, 92, 92, 92, 92, 94, 94, 94, 92, 92, 92, 92,
 
4896
+ 92, 92, 92, 92, 94, 92, 92, 92, 92, 92, 92, 94, 92, 94, 94, 92,
 
4897
+ 92, 92, 92, 94, 92, 94, 94, 92, 94, 92, 92, 92, 94, 94, 92, 92,
 
4898
+ 92, 92, 94, 92, 92, 92, 94, 92, 92, 92, 94, 94, 94, 92, 94, 92,
 
4899
+ 94, 94, 92, 92, 94, 92, 92, 92, 94, 92, 92, 92, 94, 94, 94, 92,
 
4900
+ 94, 94, 92, 92, 92, 92, 92, 92, 92, 94, 94, 92, 92, 94, 94, 92,
 
4901
+ 92, 94, 94, 94, 92, 94, 92, 94, 94, 94, 94, 92, 94, 92, 94, 94,
 
4902
+ 92, 94, 94, 92, 94, 92, 94, 92, 92, 92, 92, 92, 92, 92, 94, 94,
 
4903
+ 92, 92, 92, 92, 94, 92, 94, 94, 94, 94, 94, 92, 92, 94, 94, 92,
 
4904
+ 92, 94, 94, 92, 92, 94, 94, 94, 92, 92, 92, 92, 92, 92, 92, 92,
 
4905
+ 92, 94, 94, 94, 94, 92, 92, 92, 92, 92, 92, 94, 92, 92, 92, 94,
 
4906
+ 92, 92, 92, 94, 94, 94, 94, 94, 94, 94, 94, 92, 92, 92, 92, 92,
 
4907
+ 92, 94, 92, 92, 92, 92, 94, 92, 92, 94, 92, 92, 92, 94, 94, 92,
 
4908
+ 92, 92, 92, 92, 92, 92, 94, 92, 92, 94, 92, 92, 94, 94, 92, 92,
 
4909
+ 92, 92, 92, 92, 94, 92, 94, 94, 94, 92, 92, 92, 92, 92, 94, 94,
 
4910
+ 92, 92, 92, 92, 92, 92, 94, 92, 94, 94, 92, 92, 92, 92, 92, 94,
 
4911
+ 92, 94, 94, 92, 92, 94, 92, 92, 92, 92, 94, 92, 92, 94, 92, 94,
 
4912
+ 92, 92, 94, 92, 94, 92, 94, 92, 92, 92, 94, 92, 94, 94, 94, 94,
 
4913
+ 94, 94, 92, 92, 94, 92, 92, 92, 94, 94, 94, 94, 94, 92, 94, 94,
 
4914
+ 92, 92, 92, 92, 92, 92, 92, 94, 92, 92, 92, 92, 92, 92, 94, 92,
 
4915
+ 92, 92, 92, 94, 92, 92, 92, 92, 92, 92, 92, 94, 92, 92, 92, 92,
 
4916
+ 92, 92, 92, 92, 94, 94, 92, 94, 94, 94, 92, 94, 94, 92, 94, 94,
 
4917
+ 92, 92, 94, 92, 92, 92, 94, 94, 92, 92, 92, 92, 92, 94, 94, 92,
 
4918
+ 94, 92, 94, 94, 92, 94, 94, 94, 92, 94, 94, 92, 94, 94, 94, 92,
 
4919
+ 94, 92, 94, 94, 94, 94, 94, 92, 94, 92, 92, 94, 94, 94, 94, 94,
 
4920
+ 94, 92, 94, 94, 94, 92, 92, 92, 92, 92, 94, 92, 92, 94, 94, 94,
 
4921
+ 94, 94, 92, 92, 94, 92, 94, 94, 94, 92, 94, 92, 92, 92, 92, 94,
 
4922
+ 92, 94, 94, 92, 92, 94, 92, 94, 94, 92, 94, 94, 92, 92, 94, 94,
 
4923
+ 94, 92, 94, 92, 92, 92, 92, 92, 94, 94, 92, 92, 92, 92, 92, 92,
 
4924
+ 92, 92, 92, 92, 92, 92, 92, 94, 94, 94, 92, 94, 94, 92, 92, 94,
 
4925
+ 92, 94, 94, 94, 92, 94, 94, 92, 92, 94, 92, 92, 92, 92, 94, 94,
 
4926
+ 94, 94, 92, 94, 92, 92, 92, 92, 92, 92, 92, 94, 94, 92, 92, 92,
 
4927
+ 94, 92, 94, 92, 94, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 94,
 
4928
+ 94, 94, 94, 92, 92, 92, 92, 92, 92, 94, 94, 94, 94, 92, 92, 92,
 
4929
+ 92, 94, 92, 94, 94, 92, 92, 94, 92, 92, 92, 94, 92, 92, 92, 92,
 
4930
+ 92, 92, 94, 94, 94, 92, 92, 94, 94, 92, 94, 92, 94, 92, 92, 94,
 
4931
+ 94, 94, 94, 92, 92, 94, 94, 92, 94, 92, 92, 94, 92, 92, 94, 94,
 
4932
+ 92, 92, 94, 94, 94, 94, 92, 94, 94, 94, 92, 92, 92, 94, 94, 94,
 
4933
+ 94, 92, 94, 94, 92, 94, 94, 94, 94, 92, 94, 92, 92, 92, 94, 94,
 
4934
+ 92, 94, 92, 92, 92, 92, 94, 94, 94, 94, 92, 94, 94, 94, 92, 94,
 
4935
+ 94, 92, 92, 94, 94, 94, 94, 94, 94, 92, 94, 94, 94, 92, 94, 94,
 
4936
+ 94, 92, 94, 92, 92, 92, 94, 94, 92, 94, 94, 92, 94, 92, 94, 94,
 
4937
+ 92, 94, 94, 92, 92, 92, 94, 92, 92, 92, 92, 92, 94, 94, 92, 92,
 
4938
+ 92, 92, 94, 92, 92, 92, 92, 92, 92, 94, 94, 92, 92, 94, 94, 92,
 
4939
+ 94, 94, 92, 92, 92, 94, 92, 94, 92, 92, 94, 92, 92, 92, 92, 92,
 
4940
+ 92, 94, 94, 92, 92, 92, 92, 94, 94, 92, 94, 94, 92, 94, 94, 94,
 
4941
+ 94, 94, 92, 92, 94, 94, 94, 92, 92, 92, 92, 92, 92, 92, 94, 92,
 
4942
+ 92, 92, 94, 94, 92, 92, 92, 94, 92, 92, 94, 94, 94, 92, 92, 94,
 
4943
+ 92, 94, 94, 92, 92, 92, 94, 94, 92, 94, 94, 92, 94, 92, 92, 92,
 
4944
+ 94, 94, 92, 94, 92, 92, 92, 94, 94, 92, 94, 94, 92, 94, 92, 92,
 
4945
+ 92, 92, 92, 92, 94, 94, 92, 92, 92, 92, 92, 94, 92, 92, 92, 94,
 
4946
+ 92, 92, 92, 94, 94, 94, 94, 94, 92, 92, 92, 92, 94, 94, 92, 92,
 
4947
+ 94, 94, 94, 92, 94, 92, 92, 94, 92, 92, 92, 92, 92, 94, 94, 94,
 
4948
+ 92, 94, 94, 92, 92, 92, 92, 92, 92, 92, 92, 94, 94, 94, 92, 94,
 
4949
+ 92, 94, 94, 92, 94, 94, 92, 94, 94, 94, 92, 92, 93, 94, 94, 92,
 
4950
+ 94, 92, 92, 92, 92, 94, 92, 94, 94, 92, 94, 92, 94, 94, 92, 92,
 
4951
+ 92, 92, 92, 92, 94, 92, 94, 92, 92, 94, 92, 94, 92, 94, 92, 92,
 
4952
+ 94, 92, 94, 92, 94, 92, 94, 94, 92, 94, 92, 92, 92, 92, 92, 92,
 
4953
+ 92, 92, 94, 92, 94, 94, 94, 94, 94, 94, 92, 92, 92, 92, 92, 92,
 
4954
+ 92, 94, 92, 92, 94, 92, 92, 92, 94, 92, 92, 92, 94, 92, 92, 92,
 
4955
+ 92, 92, 92, 92, 94, 92, 92, 92,  0, 92, 94, 92, 92, 92, 94, 92,
 
4956
+ 92, 94, 92, 92, 92, 92, 92, 92, 94, 92, 94, 92, 94, 94, 92, 92,
 
4957
+ 92, 92, 92, 92, 94, 92, 92, 93, 93, 93,  0, 93,  0, 93, 93, 93,
 
4958
+  0, 93, 93, 93, 92, 92, 92, 92, 94, 92, 92, 94, 94, 92, 92, 94,
 
4959
+ 94, 94, 94, 92, 92, 92, 92, 92, 94, 92, 92, 92, 94, 92, 94, 94,
 
4960
+ 92, 94, 92, 94, 92,  0, 94, 94, 94,  0, 93,  0,  0,  0, 92,  0,
 
4961
+  0, 93,  0,  0,  0,  0, 92, 93, 93,  0,  0, 92, 92, 93,  0, 93,
 
4962
+  0, 92, 92,  0,  0, 93,  0, 93, 93,  0, 93, 94,  0,  0,  0,  0,
 
4963
+  0, 93, 93, 92,  0,  0,  0,  0,  0,  0,  0, 93,  0, 93, 93,  0,
 
4964
+  0, 93,  0,  0, 92, 94, 93, 93, 93,  0,  0, 93, 93, 93,  0,  0,
 
4965
+ 93, 93, 93,  0, 92, 93, 93, 93,  0, 93, 93,  0, 93,  0,  0,  0,
 
4966
+  0, 93,  0,  0,  0,  0,  0,  0, 93,  0,  0,  0,  0, 93, 93, 93,
 
4967
+  0,  0,  0,  0,  0,  0,  0, 93,  0,  0,  0,  0,  0,  0,  0, 93,
 
4968
+  0, 93, 93,  0, 93, 93,  0,  0,  0,  0, 93,  0,  0, 93,  0,  0,
 
4969
+ 93, 93,  0, 93, 93, 93, 93, 93,  0, 93, 93,  0, 93, 93, 93, 93,
 
4970
+ 93,  0,  0,  0,  0, 93, 93,  0, 93,  0,  0,  0,  0, 93, 93, 93,
 
4971
+ 93, 93, 93, 93,  0, 93,  0, 93,  0,  0,  0, 93,  0, 93, 93,  0,
 
4972
+ 93, 93,  0, 93,  0, 93, 93,  0, 93, 93, 93,  0,  0, 93,  0, 93,
 
4973
+ 93, 93,  0,  0,  0, 93, 93,  0, 93, 93, 93,  0,  0, 93,  0,  0,
 
4974
+  0, 93, 93,  0,  0, 93,  0,  0,  0,  0,  0, 93,  0,  0, 93,  0,
 
4975
+ 93,  0,  0, 93,  0,  0,  0, 93, 93,  0,  0,  0, 93,  0,  0,  0,
 
4976
+  0,  0,  0,  0,  0,  0,  0, 93, 93,  0,  0,  0, 93,  0, 93, 93,
 
4977
+ 93, 93, 93,  0,  0, 93, 93, 93, 93, 93, 93, 93, 93,  0, 93, 93,
 
4978
+  0,  0,  0, 93, 93, 93, 93,  0, 93,  0, 93,  0, 93, 93, 93,  0,
 
4979
+  0, 93,  0,  0, 93, 93,  0,  0, 93,  0,  0,  0,  0, 93,  0,  0,
 
4980
+ 93,  0, 93, 93, 93, 93,  0, 93, 93,  0, 93,  0, 93, 93, 93,  0,
 
4981
+ 93, 93,  0,  0, 93,  0,  0, 93, 93,  0,  0,  0,  0,  0, 93, 93,
 
4982
+  0,  0,  0, 93, 93, 93,  0, 93, 93,  0, 93, 93,  0, 93,  0,  0,
 
4983
+  0, 93, 93,  0,  0,  0,  0, 93,  0,  0, 93,  0,  0,  0, 93,  0,
 
4984
+  0, 93,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4985
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4986
+ 93,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4987
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 93,  0,  0,  0,  0,
 
4988
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4989
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 93,
 
4990
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4991
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4992
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4993
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4994
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4995
+  0,  0,  0, 93,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4996
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4997
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4998
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
4999
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5000
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5001
+  0,  0,  0,  0,  0,  0,  0,  0,  0, 93,  0,  0,  0,  0,  0,  0,
 
5002
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 93,
 
5003
+ 93, 93,  0,  0,  0, 93,  0,  0,  0, 93, 93, 93, 93,  0,  0, 93,
 
5004
+ 93, 93,  0, 93, 93,  0, 93, 93, 93, 93, 93,  0, 93,  0, 93, 93,
 
5005
+ 93, 93, 93, 93,  0,  0,  0, 93, 93, 93, 93, 93, 93,  0, 93,  0,
 
5006
+ 93, 93, 93,  0, 93, 93, 93,  0, 93, 93, 93, 93,  0,  0, 93, 93,
 
5007
+ 93,  0, 93, 93, 93, 93,  0,  0, 93, 93, 93, 93, 93, 93, 93, 93,
 
5008
+  0, 93, 93,  0,  0, 93,  0,  0, 93, 93, 93, 93, 93, 93,  0, 93,
 
5009
+ 93, 93,  0, 93,  0, 93,  0, 93,  0,  0, 93,  0, 93, 93, 93, 93,
 
5010
+ 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,  0,  0,  0, 93, 93, 93,
 
5011
+  0, 93,  0, 93, 93,  0, 93,  0,  0,  0, 93, 93, 93, 93, 93, 93,
 
5012
+ 93,  0,  0, 93, 93, 93, 93, 93, 93, 93, 93, 93,  0, 93,  0, 93,
 
5013
+  0, 93, 93, 93,  0, 93,  0, 93, 93, 93,  0, 93,  0, 93,  0, 93,
 
5014
+ 93, 93,  0, 93, 93,  0, 93, 93, 93,  0, 93,  0,  0,  0, 93, 93,
 
5015
+ 93, 93,  0, 93, 93, 93,  0,  0, 93, 93, 93,  0, 93, 93, 93, 93,
 
5016
+ 93,  0,  0, 93,  0, 93,  0, 93, 93, 93, 93, 93,  0,  0,  0, 93,
 
5017
+ 93,  0, 93, 93,  0, 93, 93,  0, 93,  0, 93, 93,  0, 93, 93, 93,
 
5018
+ 93,  0, 93, 93, 93,  0, 93,  0,  0, 93,  0,  0, 93, 93,  0, 93,
 
5019
+  0,  0, 93,  0,  0, 93, 93, 93, 93,  0, 93,  0, 93, 93, 93,  0,
 
5020
+ 93,  0,  0, 93,  0, 93,  0, 93, 93,  0, 93, 93,  0, 93,  0, 93,
 
5021
+  0, 93,  0,  0, 93,  0,  0, 93, 93, 93,  0, 93, 93,  0, 93, 93,
 
5022
+  0, 93, 93,  0,  0, 93, 93,  0,  0, 93, 93, 93,  0, 93, 93,  0,
 
5023
+  0,  0,  0,  0,  0, 93, 93,  0, 93, 93,  0,  0, 93,  0, 93, 93,
 
5024
+ 93,  0,  0, 93, 93,  0,  0, 93, 93, 93, 93, 93, 93, 93,  0,  0,
 
5025
+ 93,  0, 93,  0, 93,  0, 93,  0,  0,  0, 93, 93, 93, 93, 93, 93,
 
5026
+  0, 93, 93,  0,  0, 93,  0, 93,  0,  0,  0, 93, 93,  0,  0, 93,
 
5027
+ 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,  0, 93, 93,  0,  0, 93,
 
5028
+  0,  0, 93,  0, 93,  0, 93, 93, 93,  0, 93,  0, 93, 93,  0, 93,
 
5029
+ 93,  0, 93, 93,  0,  0,  0, 93, 93, 93, 93, 93, 93, 93, 93, 93,
 
5030
+ 93, 93, 93, 93,  0, 93, 93,  0,  0, 93,  0, 93,  0,  0, 93,  0,
 
5031
+ 93,  0,  0,  0, 93,  0, 93,  0,  0,  0,  0,  0,  0, 93, 93,  0,
 
5032
+  0, 93, 93, 93, 93, 93, 93,  0, 93, 93, 93, 93,  0, 93, 93,  0,
 
5033
+ 93,  0,  0, 93, 93,  0,  0, 93, 93,  0,  0, 93,  0, 93,  0, 93,
 
5034
+  0,  0,  0,  0, 93,  0, 93,  0,  0, 93, 93, 93,  0,  0,  0,  0,
 
5035
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 93,
 
5036
+  0,  0,  0,  0, 93,  0,  0,  0,  0,  0,  0, 93, 93,  0, 93, 93,
 
5037
+ 93, 93,  0,  0,  0, 93,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5038
+ 93,  0, 93,  0,  0, 93,  0,  0,  0,  0,  0,  0, 93,  0,  0,  0,
 
5039
+  0,  0,  0,  0, 93,  0,  0, 93,  0,  0, 93,  0, 93, 93, 93, 93,
 
5040
+ 93, 93,  0, 93,  0, 93, 93, 93, 93,  0, 93,  0, 93, 93, 93,  0,
 
5041
+  0,  0, 93,  0, 93, 93, 93, 93,  0, 93, 93,  0, 93, 93,  0,  0,
 
5042
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 93,  0, 93,  0,  0,
 
5043
+  0, 93, 93,  0,  0, 93,  0, 93,  0,  0, 93, 93,  0, 93, 93, 93,
 
5044
+  0, 93, 93, 93, 93,  0,  0, 93, 93,  0,  0,  0,  0,  0,  0, 93,
 
5045
+  0,  0, 93,  0,  0,  0,  0,  0,  0,  0,  0, 93,  0,  0,  0,  0,
 
5046
+  0, 93, 93,  0,  0, 93,  0, 93, 93,  0, 93,  0,  0,  0,  0,  0,
 
5047
+  0, 93,  0,  0, 93, 93, 93,  0, 93, 93, 93, 93,  0,  0, 93,  0,
 
5048
+  0, 93,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5049
+  0,  0,  0,  0,  0,  0, 93,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5050
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5051
+  0,  0,  0,  0,  0,  0, 93,  0,  0,  0,  0,  0,  0,  0,  0, 93,
 
5052
+  0, 93,  0,  0,  0,  0,  0, 93,  0,  0, 93, 93,  0, 93,  0,  0,
 
5053
+  0, 93,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 93,  0,  0,
 
5054
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5055
+  0,  0,  0,  0,  0,  0,  0,  0, 93,  0,  0,  0,  0,  0,  0,  0,
 
5056
+  0, 93,  0,  0,  0, 93,  0,  0,  0,  0,  0, 93,  0,  0,  0,  0,
 
5057
+ 93,  0, 93,  0,  0,  0,  0,  0,  0,  0, 93,  0,  0,  0,  0,  0,
 
5058
+ 93, 93,  0,  0, 93,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5059
+  0,  0,  0,  0,  0,  0,  0,  0, 93,  0,  0,  0,  0,  0,  0,  0,
 
5060
+  0,  0,  0,  0,  0,  0, 93,  0,  0,  0,  0, 93,  0, 93,  0,  0,
 
5061
+ 93,  0,  0,  0, 93,  0,  0,  0,  0,  0, 93,  0,  0,  0,  0,  0,
 
5062
+  0,  0,  0,  0,  0,  0, 93,  0,  0,  0,  0,  0, 93,  0, 93,  0,
 
5063
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5064
+  0, 93,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 93,  0,  0,  0,
 
5065
+  0, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,  0, 93, 93, 93, 93,
 
5066
+ 93, 93,  0,  0, 93,  0,  0, 93,  0,  0,  0,  0,  0,  0,  0,  0,
 
5067
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5068
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5069
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5070
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5071
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5072
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5073
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5074
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5075
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5076
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5077
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5078
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5079
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5080
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5081
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5082
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5083
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5084
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5085
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5086
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5087
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5088
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5089
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5090
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5091
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5092
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5093
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5094
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5095
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5096
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5097
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5098
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5099
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5100
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5101
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5102
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5103
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5104
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5105
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5106
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5107
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5108
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5109
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5110
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5111
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5112
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5113
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5114
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5115
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5116
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5117
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5118
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5119
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5120
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5121
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5122
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5123
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5124
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5125
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5126
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5127
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5128
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5129
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5130
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5131
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5132
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5133
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5134
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5135
+  0,  0,  0, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
 
5136
+ 93, 93, 93, 93, 93, 93, 93, 93, 93,  0,  0,  0,  0,  0,  0,  0,
 
5137
+  0,  0,  0,  0,  0, 93,  0, 93,  0,  0,  0,  0,  0,  0,  0,  0,
 
5138
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5139
+  0,  0,  0,  0, 93,  0, 93,  0,  0,  0, 93, 93,  0,  0,  0,  0,
 
5140
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5141
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5142
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5143
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5144
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5145
+ 93, 93,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 93,  0,  0,  0,
 
5146
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5147
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5148
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5149
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5150
+ 93,  0,  0,  0,  0,  0,  0,  0,  0, 93, 93,  0, 93,  0,  0,  0,
 
5151
+  0,  0,  0,  0,  0,  0,  0,  0, 93, 93, 93, 93,  0,  0,  0,  0,
 
5152
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5153
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5154
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 93,  0,  0,
 
5155
+ 93, 93, 93,  0, 93,  0, 93,  0, 93, 93,  0, 93,  0, 93,  0,  0,
 
5156
+ 93, 93, 93,  0, 93, 93, 93, 93,  0,  0, 93, 93, 93, 93, 93, 93,
 
5157
+  0, 93, 93, 93,  0, 93, 93,  0,  0, 93,  0,  0, 93, 93, 93, 93,
 
5158
+  0,  0,  0,  0, 93,  0,  0, 93, 93, 93,  0, 93, 93, 93, 93,  0,
 
5159
+ 93, 93,  0, 93, 93, 93,  0,  0, 93,  0,  0, 93,  0, 93, 93, 93,
 
5160
+ 93, 93,  0,  0,  0,  0,  0, 93, 93,  0,  0, 93,  0,  0, 93,  0,
 
5161
+  0,  0,  0,  0, 93, 93, 93, 93,  0, 93, 93,  0,  0, 93,  0, 93,
 
5162
+ 93,  0, 93, 93, 93,  0,  0, 93,  0,  0, 93, 93, 93, 93, 93, 93,
 
5163
+ 93, 93,  0, 93, 93, 93,  0, 93, 93, 93, 93,  0, 93, 93, 93, 93,
 
5164
+  0, 93, 93, 93, 93, 93,  0, 93,  0, 93, 93, 93, 93, 93, 93, 93,
 
5165
+ 93,  0, 93, 93, 93, 93, 93, 93, 93, 93,  0,  0,  0,  0,  0, 93,
 
5166
+  0,  0, 93, 93,  0,  0,  0,  0, 93,  0,  0,  0, 93,  0, 93, 93,
 
5167
+ 93, 93,  0, 93,  0, 93,  0, 93, 93, 93, 93, 93, 93, 93, 93, 93,
 
5168
+ 93, 93,  0, 93, 93, 93, 93,  0, 93, 93, 93, 93, 93, 93,  0, 93,
 
5169
+ 93, 93, 93, 93, 93, 93, 93,  0,  0,  0, 93,  0,  0,  0,  0,  0,
 
5170
+  0,  0,  0, 93, 93,  0,  0,  0,  0,  0, 93, 93,  0, 93,  0,  0,
 
5171
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 93,  0,
 
5172
+  0,  0,  0, 93,  0,  0, 93,  0,  0, 93, 93,  0,  0,  0, 93,  0,
 
5173
+  0,  0,  0,  0,  0, 93,  0,  0,  0,  0,  0, 93,  0,  0,  0,  0,
 
5174
+  0,  0, 93,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5175
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5176
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5177
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5178
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5179
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5180
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5181
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5182
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5183
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5184
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5185
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5186
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5187
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5188
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5189
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5190
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5191
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5192
+  0,  0,  0,  0, 93,  0,  0,  0,  0,  0,  0,  0,  0,  0, 93,  0,
 
5193
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 93,  0,  0,
 
5194
+ 93,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5195
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5196
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5197
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5198
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5199
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5200
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5201
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5202
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5203
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5204
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5205
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5206
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5207
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5208
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5209
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5210
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5211
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5212
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5213
+  0,  0,  0,  0,  0, 93, 93,  0, 93,  0, 93, 93,  0, 93, 93,  0,
 
5214
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5215
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5216
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5217
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5218
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5219
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5220
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5221
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5222
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5223
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5224
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5225
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5226
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5227
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5228
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5229
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5230
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5231
+ 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98,
 
5232
+ 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98,
 
5233
+ 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 183, 98, 98, 98,
 
5234
+ 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98,
 
5235
+ 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98,
 
5236
+ 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98,
 
5237
+ 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98,
 
5238
+ 98, 98, 98, 98, 98, 98, 98, 98, 98, 183, 98, 98, 98, 98, 98, 98,
 
5239
+ 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98,
 
5240
+ 98, 98, 98, 98, 98, 183, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98,
 
5241
+ 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98,
 
5242
+ 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98,
 
5243
+ 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98,
 
5244
+ 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98,
 
5245
+ 98, 98, 98, 98, 98, 98, 98, 183, 98, 98, 98, 98, 98, 98, 98, 98,
 
5246
+ 98, 183, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98,
 
5247
+ 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 137, 137, 92, 92,
 
5248
+  0, 92,  0, 92, 92,  0,  0,  0, 92,  0,  0,  0,  0,  0,  0, 92,
 
5249
+ 92, 92,  0, 92, 92,  0,  0, 92, 92, 92,  0,  0,  0,  0,  0,  0,
 
5250
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5251
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5252
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5253
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5254
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5255
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5256
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5257
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5258
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5259
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5260
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5261
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5262
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5263
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5264
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5265
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5266
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5267
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5268
+  0,  0,  0,  0,  0,  0, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
5269
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
5270
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
5271
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
5272
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
5273
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
5274
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
5275
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
5276
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
5277
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
5278
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
5279
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
5280
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
5281
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
5282
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
5283
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
5284
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
5285
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
5286
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
5287
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
5288
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
5289
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
5290
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
5291
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
5292
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
5293
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
5294
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
5295
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
5296
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
5297
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
5298
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
5299
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
5300
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
5301
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
5302
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
5303
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
5304
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
5305
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
5306
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
5307
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
5308
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
5309
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
5310
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
5311
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
5312
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
5313
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
5314
+ 97, 97, 213, 137, 137, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97,
 
5315
+ 97, 97, 97, 97, 97, 110, 110, 110, 110, 97, 97, 97, 97, 97, 97, 137,
 
5316
+ 97, 134, 97, 110, 97, 97, 97, 97, 110, 97, 97, 97, 97, 97, 97, 97,
 
5317
+ 97, 97, 97, 97, 97, 97, 97, 110, 134, 97, 97, 97, 110, 110, 110, 110,
 
5318
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
5319
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
5320
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
5321
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
5322
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
5323
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
5324
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
5325
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
 
5326
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,  0,  0,  0,
 
5327
+  0, 122, 214, 122, 122, 122, 122, 214, 122, 122, 122, 122, 122, 129, 122, 122,
 
5328
+ 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
 
5329
+ 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
 
5330
+ 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 215, 129, 215, 123, 122,
 
5331
+ 123, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
 
5332
+ 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 132,  0,
 
5333
+  0, 216, 216, 216, 217, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216,
 
5334
+ 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216,
 
5335
+ 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216,
 
5336
+ 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216,
 
5337
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5338
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5339
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5340
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5341
+ 218, 218, 128, 123, 94, 219, 98,  0,  0,  0,  0,  0,  0, 93,  0,  0,
 
5342
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 220,
 
5343
+};
 
5344
diff --git a/modules/basic/tables-small.i b/modules/basic/tables-small.i
 
5345
new file mode 100644
 
5346
index 0000000..98abb3a
 
5347
--- /dev/null
 
5348
+++ b/modules/basic/tables-small.i
 
5349
@@ -0,0 +1,603 @@
 
5350
+/* NOTE: This file has not been maintained, and is out
 
5351
+ * of date with respect to the rest of the code. 
 
5352
+ */
 
5353
+enum {
 
5354
+  ENC_ISO_8859_1 = 1 << 0,
 
5355
+  ENC_ISO_8859_2 = 1 << 1,
 
5356
+  ENC_ISO_8859_3 = 1 << 2,
 
5357
+  ENC_ISO_8859_4 = 1 << 3,
 
5358
+  ENC_ISO_8859_5 = 1 << 4,
 
5359
+  ENC_ISO_8859_6 = 1 << 5,
 
5360
+  ENC_ISO_8859_7 = 1 << 6,
 
5361
+  ENC_ISO_8859_8 = 1 << 7,
 
5362
+  ENC_ISO_8859_9 = 1 << 8,
 
5363
+  ENC_ISO_10646  = 1 << 12
 
5364
+};
 
5365
+
 
5366
+static Charset charsets[] = {
 
5367
+  { 0, NULL,         "iso8859-1", conv_ucs4 },
 
5368
+  { 1, "ISO-8859-2", "iso8859-2", conv_8bit },
 
5369
+  { 2, "ISO-8859-3", "iso8859-3", conv_8bit },
 
5370
+  { 3, "ISO-8859-4", "iso8859-4", conv_8bit },
 
5371
+  { 4, "ISO-8859-5", "iso8859-5", conv_8bit },
 
5372
+  { 5, "ISO-8859-6", "iso8859-6", conv_8bit },
 
5373
+  { 6, "ISO-8859-7", "iso8859-7", conv_8bit },
 
5374
+  { 7, "ISO-8859-8", "iso8859-8", conv_8bit },
 
5375
+  { 8, "ISO-8859-9", "iso8859-9", conv_8bit },
 
5376
+  { 9, NULL,         "iso10646-1", conv_ucs4 }
 
5377
+};
 
5378
+
 
5379
+static PangoEngineRange basic_ranges[] = {
 
5380
+  { 0x0000, 0x02af, "*" },
 
5381
+  { 0x02b0, 0x02ff, "" },
 
5382
+  { 0x0380, 0x058f, "*" },
 
5383
+  { 0x0591, 0x05f4, "*" }, /* Hebrew */
 
5384
+  { 0x060c, 0x06f9, "" },  /* Arabic */
 
5385
+  { 0x2015, 0x2017, "*" },
 
5386
+};
 
5387
+
 
5388
+static const guint32 char_mask_map[] = {
 
5389
+  0,
 
5390
+  ENC_ISO_8859_1|ENC_ISO_8859_2|ENC_ISO_8859_3|ENC_ISO_8859_4|ENC_ISO_8859_5|ENC_ISO_8859_6|ENC_ISO_8859_7|ENC_ISO_8859_8|ENC_ISO_8859_9,
 
5391
+  ENC_ISO_8859_1|ENC_ISO_8859_2|ENC_ISO_8859_3|ENC_ISO_8859_4|ENC_ISO_8859_5|ENC_ISO_8859_7|ENC_ISO_8859_8|ENC_ISO_8859_9,
 
5392
+  ENC_ISO_8859_1|ENC_ISO_8859_9,
 
5393
+  ENC_ISO_8859_1|ENC_ISO_8859_8|ENC_ISO_8859_9,
 
5394
+  ENC_ISO_8859_1|ENC_ISO_8859_3|ENC_ISO_8859_7|ENC_ISO_8859_8|ENC_ISO_8859_9,
 
5395
+  ENC_ISO_8859_1|ENC_ISO_8859_2|ENC_ISO_8859_3|ENC_ISO_8859_4|ENC_ISO_8859_6|ENC_ISO_8859_8|ENC_ISO_8859_9,
 
5396
+  ENC_ISO_8859_1|ENC_ISO_8859_7|ENC_ISO_8859_8|ENC_ISO_8859_9,
 
5397
+  ENC_ISO_8859_1|ENC_ISO_8859_2|ENC_ISO_8859_3|ENC_ISO_8859_4|ENC_ISO_8859_7|ENC_ISO_8859_8|ENC_ISO_8859_9,
 
5398
+  ENC_ISO_8859_1|ENC_ISO_8859_4|ENC_ISO_8859_9,
 
5399
+  ENC_ISO_8859_1|ENC_ISO_8859_2|ENC_ISO_8859_3|ENC_ISO_8859_4|ENC_ISO_8859_8|ENC_ISO_8859_9,
 
5400
+  ENC_ISO_8859_1|ENC_ISO_8859_3|ENC_ISO_8859_8|ENC_ISO_8859_9,
 
5401
+  ENC_ISO_8859_1|ENC_ISO_8859_3|ENC_ISO_8859_9,
 
5402
+  ENC_ISO_8859_1|ENC_ISO_8859_2|ENC_ISO_8859_3|ENC_ISO_8859_4|ENC_ISO_8859_9,
 
5403
+  ENC_ISO_8859_1|ENC_ISO_8859_2|ENC_ISO_8859_3|ENC_ISO_8859_9,
 
5404
+  ENC_ISO_8859_1,
 
5405
+  ENC_ISO_8859_1|ENC_ISO_8859_3|ENC_ISO_8859_4|ENC_ISO_8859_9,
 
5406
+  ENC_ISO_8859_1|ENC_ISO_8859_2,
 
5407
+  ENC_ISO_8859_4,
 
5408
+  ENC_ISO_8859_2,
 
5409
+  ENC_ISO_8859_2|ENC_ISO_8859_4,
 
5410
+  ENC_ISO_8859_3,
 
5411
+  ENC_ISO_8859_3|ENC_ISO_8859_9,
 
5412
+  ENC_ISO_8859_2|ENC_ISO_8859_3|ENC_ISO_8859_9,
 
5413
+  ENC_ISO_8859_2|ENC_ISO_8859_3,
 
5414
+  ENC_ISO_8859_7,
 
5415
+  ENC_ISO_8859_2|ENC_ISO_8859_3|ENC_ISO_8859_4,
 
5416
+  ENC_ISO_8859_5,
 
5417
+  ENC_ISO_8859_8,
 
5418
+  ENC_ISO_8859_6
 
5419
+};
 
5420
+
 
5421
+static const guchar char_masks[] = {
 
5422
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5423
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5424
+  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
 
5425
+  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  1,  1,  1,  1,  1,  1,
 
5426
+  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
 
5427
+  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
 
5428
+  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
 
5429
+  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  0,
 
5430
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5431
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5432
+  1,  3,  4,  5,  6,  4,  7,  2,  8,  7,  3,  7,  7,  1,  4,  9,
 
5433
+  8,  7,  5,  5, 10, 11,  4,  5, 10,  4,  3,  7,  4,  5,  4,  3,
 
5434
+ 12, 13, 13,  9, 13,  9,  9, 14, 12, 13, 12, 13, 12, 13, 13, 12,
 
5435
+ 15, 12, 12, 14, 13,  9, 13, 10,  9, 12, 13, 16, 13, 17, 15, 13,
 
5436
+ 12, 13, 13,  9, 13,  9,  9, 14, 12, 13, 12, 13, 12, 13, 13, 12,
 
5437
+ 15, 12, 12, 14, 13,  9, 13, 10,  9, 12, 13, 16, 13, 17, 15,  3,
 
5438
+ 18, 18, 19, 19, 20, 20, 19, 19, 21, 21, 21, 21, 20, 20, 19, 19,
 
5439
+ 20, 20, 18, 18,  0,  0, 18, 18, 20, 20, 19, 19, 21, 21, 22, 22,
 
5440
+ 21, 21, 18, 18, 21, 21, 21, 21, 18, 18, 18, 18,  0,  0, 18, 18,
 
5441
+ 22, 22,  0,  0, 21, 21, 18, 18, 18, 19, 19, 18, 18, 19, 19,  0,
 
5442
+  0, 19, 19, 19, 19, 18, 18, 19, 19,  0, 18, 18, 18, 18,  0,  0,
 
5443
+ 19, 19,  0,  0, 19, 19, 18, 18, 19, 19, 19, 19, 21, 21, 23, 23,
 
5444
+ 20, 20, 19, 19, 19, 19, 18, 18, 18, 18, 18, 18, 21, 21, 19, 19,
 
5445
+ 19, 19, 18, 18,  0,  0,  0,  0,  0, 19, 19, 24, 24, 20, 20,  0,
 
5446
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5447
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5448
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5449
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5450
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5451
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5452
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5453
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5454
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5455
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5456
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5457
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5458
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5459
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5460
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5461
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5462
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5463
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5464
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5465
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 25, 25,  0,  0,
 
5466
+  0,  0,  0,  0,  0,  0,  0, 20,  0,  0,  0,  0,  0,  0,  0,  0,
 
5467
+  0,  0,  0,  0,  0,  0,  0,  0, 24, 26,  0, 20,  0, 19,  0,  0,
 
5468
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5469
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5470
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5471
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5472
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5473
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5474
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5475
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5476
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5477
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5478
+  0,  0,  0,  0, 25, 25, 25,  0, 25, 25, 25,  0, 25,  0, 25, 25,
 
5479
+ 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
 
5480
+ 25, 25,  0, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
 
5481
+ 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
 
5482
+ 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,  0,
 
5483
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5484
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5485
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5486
+  0, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,  0, 27, 27,
 
5487
+ 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
 
5488
+ 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
 
5489
+ 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
 
5490
+ 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
 
5491
+  0, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,  0, 27, 27,
 
5492
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5493
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5494
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5495
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5496
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5497
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5498
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5499
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5500
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5501
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5502
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5503
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5504
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5505
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5506
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5507
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5508
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5509
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5510
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5511
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5512
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5513
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5514
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5515
+ 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
 
5516
+ 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,  0,  0,  0,  0,  0,
 
5517
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5518
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 29,  0,  0,  0,
 
5519
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 29,  0,  0,  0, 29,
 
5520
+  0, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
 
5521
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,  0,  0,  0,  0,  0,
 
5522
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
 
5523
+ 29, 29, 29,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5524
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,  0,  0,  0,  0,  0,  0,
 
5525
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5526
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5527
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5528
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5529
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5530
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5531
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5532
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5533
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5534
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5535
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5536
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5537
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5538
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5539
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5540
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5541
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5542
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5543
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5544
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5545
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5546
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5547
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5548
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5549
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5550
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5551
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5552
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5553
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5554
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5555
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5556
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5557
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5558
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5559
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5560
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5561
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5562
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5563
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5564
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5565
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5566
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5567
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5568
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5569
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5570
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5571
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5572
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5573
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5574
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5575
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5576
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5577
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5578
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5579
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5580
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5581
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5582
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5583
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5584
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5585
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5586
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5587
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5588
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5589
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5590
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5591
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5592
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5593
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5594
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5595
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5596
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5597
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5598
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5599
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5600
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5601
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5602
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5603
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5604
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5605
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5606
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5607
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5608
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5609
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5610
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5611
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5612
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5613
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5614
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5615
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5616
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5617
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5618
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5619
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5620
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5621
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5622
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5623
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5624
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5625
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5626
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5627
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5628
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5629
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5630
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5631
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5632
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5633
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5634
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5635
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5636
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5637
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5638
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5639
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5640
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5641
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5642
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5643
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5644
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5645
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5646
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5647
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5648
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5649
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5650
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5651
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5652
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5653
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5654
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5655
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5656
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5657
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5658
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5659
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5660
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5661
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5662
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5663
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5664
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5665
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5666
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5667
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5668
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5669
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5670
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5671
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5672
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5673
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5674
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5675
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5676
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5677
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5678
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5679
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5680
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5681
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5682
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5683
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5684
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5685
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5686
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5687
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5688
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5689
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5690
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5691
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5692
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5693
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5694
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5695
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5696
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5697
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5698
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5699
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5700
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5701
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5702
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5703
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5704
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5705
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5706
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5707
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5708
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5709
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5710
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5711
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5712
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5713
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5714
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5715
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5716
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5717
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5718
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5719
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5720
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5721
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5722
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5723
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5724
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5725
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5726
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5727
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5728
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5729
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5730
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5731
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5732
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5733
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5734
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5735
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5736
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5737
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5738
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5739
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5740
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5741
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5742
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5743
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5744
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5745
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5746
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5747
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5748
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5749
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5750
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5751
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5752
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5753
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5754
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5755
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5756
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5757
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5758
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5759
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5760
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5761
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5762
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5763
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5764
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5765
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5766
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5767
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5768
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5769
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5770
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5771
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5772
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5773
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5774
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5775
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5776
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5777
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5778
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5779
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5780
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5781
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5782
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5783
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5784
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5785
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5786
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5787
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5788
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5789
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5790
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5791
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5792
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5793
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5794
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5795
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5796
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5797
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5798
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5799
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5800
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5801
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5802
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5803
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5804
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5805
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5806
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5807
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5808
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5809
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5810
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5811
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5812
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5813
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5814
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5815
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5816
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5817
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5818
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5819
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5820
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5821
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5822
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5823
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5824
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5825
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5826
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5827
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5828
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5829
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5830
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5831
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5832
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5833
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5834
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5835
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5836
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5837
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5838
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5839
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5840
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5841
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5842
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5843
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5844
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5845
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5846
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5847
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5848
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5849
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5850
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5851
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5852
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5853
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5854
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5855
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5856
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5857
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5858
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5859
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5860
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5861
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5862
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5863
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5864
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5865
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5866
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5867
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5868
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5869
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5870
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5871
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5872
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5873
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5874
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5875
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5876
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5877
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5878
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5879
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5880
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5881
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5882
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5883
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5884
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5885
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5886
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5887
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5888
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5889
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5890
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5891
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5892
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5893
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5894
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5895
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5896
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5897
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5898
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5899
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5900
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5901
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5902
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5903
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5904
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5905
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5906
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5907
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5908
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5909
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5910
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5911
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5912
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5913
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5914
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5915
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5916
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5917
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5918
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5919
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5920
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5921
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5922
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5923
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5924
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5925
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5926
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5927
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5928
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5929
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5930
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5931
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5932
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5933
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5934
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5935
+  0,  0,  0,  0,  0, 25,  0, 28,  0,  0,  0,  0,  0,  0,  0,  0,
 
5936
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5937
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 28,  0,
 
5938
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5939
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5940
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5941
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5942
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5943
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5944
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5945
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5946
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5947
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5948
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5949
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5950
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 
5951
+  0,  0,  0,  0,  0,  0, 27,
 
5952
+};
 
5953
diff --git a/pango-view/Makefile.am b/pango-view/Makefile.am
 
5954
index 7b6e568..d4ae3ec 100644
 
5955
--- a/pango-view/Makefile.am
 
5956
+++ b/pango-view/Makefile.am
 
5957
@@ -49,6 +49,15 @@ pango_view_SOURCES =                                 \
 
5958
 pango_view_LDADD =                                     \
 
5959
        ../pango/libpango-$(PANGO_API_VERSION).la       \
 
5960
        $(GLIB_LIBS)
 
5961
+if HAVE_X
 
5962
+pango_view_SOURCES +=                                  \
 
5963
+       viewer-x.h                                      \
 
5964
+       viewer-x.c                                      \
 
5965
+       viewer-pangox.c
 
5966
+pango_view_LDADD +=                                    \
 
5967
+       ../pango/libpangox-$(PANGO_API_VERSION).la      \
 
5968
+       $(X_LIBS)
 
5969
+endif
 
5970
 if HAVE_FREETYPE
 
5971
 pango_view_SOURCES +=                                  \
 
5972
        viewer-pangoft2.c
 
5973
@@ -58,9 +67,7 @@ pango_view_LDADD +=                                   \
 
5974
 endif
 
5975
 if HAVE_XFT
 
5976
 pango_view_SOURCES +=                                  \
 
5977
-       viewer-pangoxft.c                               \
 
5978
-       viewer-x.h                                      \
 
5979
-       viewer-x.c
 
5980
+       viewer-pangoxft.c
 
5981
 pango_view_LDADD +=                                    \
 
5982
        ../pango/libpangoft2-$(PANGO_API_VERSION).la    \
 
5983
        ../pango/libpangoxft-$(PANGO_API_VERSION).la    \
 
5984
diff --git a/pango-view/viewer-pangox.c b/pango-view/viewer-pangox.c
 
5985
new file mode 100644
 
5986
index 0000000..137319d
 
5987
--- /dev/null
 
5988
+++ b/pango-view/viewer-pangox.c
 
5989
@@ -0,0 +1,122 @@
 
5990
+/* viewer-pangox.c: PangoX viewer backend.
 
5991
+ *
 
5992
+ * Copyright (C) 1999,2004,2005 Red Hat, Inc.
 
5993
+ * Copyright (C) 2001 Sun Microsystems
 
5994
+ *
 
5995
+ * This library is free software; you can redistribute it and/or
 
5996
+ * modify it under the terms of the GNU Library General Public
 
5997
+ * License as published by the Free Software Foundation; either
 
5998
+ * version 2 of the License, or (at your option) any later version.
 
5999
+ *
 
6000
+ * This library is distributed in the hope that it will be useful,
 
6001
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
 
6002
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.         See the GNU
 
6003
+ * Library General Public License for more details.
 
6004
+ *
 
6005
+ * You should have received a copy of the GNU Library General Public
 
6006
+ * License along with this library; if not, write to the
 
6007
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 
6008
+ * Boston, MA 02111-1307, USA.
 
6009
+ */
 
6010
+#include "config.h"
 
6011
+
 
6012
+#include "viewer-render.h"
 
6013
+#include "viewer-x.h"
 
6014
+
 
6015
+#include <pango/pangox.h>
 
6016
+
 
6017
+static void
 
6018
+pangox_view_destroy (gpointer instance)
 
6019
+{
 
6020
+  XViewer *x = (XViewer *)instance;
 
6021
+
 
6022
+  pango_x_shutdown_display (x->display);
 
6023
+
 
6024
+  x_view_destroy (instance);
 
6025
+}
 
6026
+
 
6027
+static PangoContext *
 
6028
+pangox_view_get_context (gpointer instance)
 
6029
+{
 
6030
+  XViewer *x = (XViewer *) instance;
 
6031
+  PangoContext *context;
 
6032
+  PangoMatrix matrix = {0., 0., 0., 0., 0., 0.};
 
6033
+
 
6034
+  context = pango_font_map_create_context (pango_x_font_map_for_display (x->display));
 
6035
+
 
6036
+  /* We set an all-zero matrix on the context, to negotiate that
 
6037
+   * this backend doesn't support transformations.
 
6038
+   */
 
6039
+  pango_context_set_matrix (context, &matrix);
 
6040
+
 
6041
+  return context;
 
6042
+}
 
6043
+
 
6044
+typedef struct
 
6045
+{
 
6046
+  XViewer *x;
 
6047
+  Drawable drawable;
 
6048
+  GC gc;
 
6049
+} MyXContext;
 
6050
+
 
6051
+static void
 
6052
+render_callback (PangoLayout *layout,
 
6053
+                int          x,
 
6054
+                int          y,
 
6055
+                gpointer     context,
 
6056
+                gpointer     state G_GNUC_UNUSED)
 
6057
+{
 
6058
+  MyXContext *x_context = (MyXContext *) context;
 
6059
+
 
6060
+  pango_x_render_layout (x_context->x->display,
 
6061
+                        x_context->drawable,
 
6062
+                        x_context->gc,
 
6063
+                        layout,
 
6064
+                        x, y);
 
6065
+}
 
6066
+
 
6067
+static void
 
6068
+pangox_view_render (gpointer      instance,
 
6069
+                   gpointer      surface,
 
6070
+                   PangoContext *context,
 
6071
+                   int          *width,
 
6072
+                   int          *height,
 
6073
+                   gpointer      state)
 
6074
+{
 
6075
+  XViewer *x = (XViewer *) instance;
 
6076
+  Pixmap pixmap = (Pixmap) surface;
 
6077
+  GC gc;
 
6078
+  MyXContext x_context;
 
6079
+
 
6080
+  gc = XCreateGC (x->display, pixmap, 0, NULL);
 
6081
+
 
6082
+  XSetForeground(x->display, gc, WhitePixel(x->display, x->screen));
 
6083
+  XFillRectangle (x->display, pixmap, gc, 0, 0, *width, *height);
 
6084
+
 
6085
+  x_context.x = x;
 
6086
+  x_context.drawable = pixmap;
 
6087
+  x_context.gc = gc;
 
6088
+
 
6089
+  XSetForeground(x->display, gc, BlackPixel(x->display, x->screen));
 
6090
+  do_output (context, render_callback, NULL, &x_context, state, width, height);
 
6091
+
 
6092
+  XFlush(x->display);
 
6093
+
 
6094
+  XFreeGC (x->display, gc);
 
6095
+}
 
6096
+
 
6097
+const PangoViewer pangox_viewer = {
 
6098
+  "PangoX",
 
6099
+  "x",
 
6100
+  NULL,
 
6101
+  x_view_create,
 
6102
+  pangox_view_destroy,
 
6103
+  pangox_view_get_context,
 
6104
+  x_view_create_surface,
 
6105
+  x_view_destroy_surface,
 
6106
+  pangox_view_render,
 
6107
+  NULL,
 
6108
+  x_view_create_window,
 
6109
+  x_view_destroy_window,
 
6110
+  x_view_display
 
6111
+};
 
6112
diff --git a/pango/Makefile.am b/pango/Makefile.am
 
6113
index e37a579..d43b788 100644
 
6114
--- a/pango/Makefile.am
 
6115
+++ b/pango/Makefile.am
 
6116
@@ -163,6 +163,45 @@ Pango_1_0_gir_CFLAGS = -I$(top_builddir) -I$(top_srcdir) $(PANGO_CFLAGS)
 
6117
 Pango_1_0_gir_FILES = $(filter-out %-private.h pango-color-table.h, $(pango_introspection_files))
 
6118
 Pango_1_0_gir_SCANNERFLAGS = --c-include "pango/pango.h"
 
6119
 
 
6120
+# ------------------- libpangox -------------------
 
6121
+
 
6122
+if HAVE_X
 
6123
+pangoinclude_HEADERS += $(pangox_headers)
 
6124
+lib_LTLIBRARIES += libpangox-1.0.la
 
6125
+aliasdir = $(sysconfdir)/pango
 
6126
+alias_DATA = pangox.aliases
 
6127
+endif
 
6128
+
 
6129
+pangox_headers = pangox.h
 
6130
+pangox_public_sources = pangox.c
 
6131
+
 
6132
+libpangox_1_0_la_LDFLAGS = $(LIBRARY_LIBTOOL_OPTIONS)
 
6133
+libpangox_1_0_la_LIBADD =                      \
 
6134
+       libpango-$(PANGO_API_VERSION).la        \
 
6135
+       $(INCLUDED_X_MODULES)                   \
 
6136
+       $(GLIB_LIBS)                            \
 
6137
+       $(X_LIBS)                               \
 
6138
+       $(X_EXTRA_LIBS)
 
6139
+libpangox_1_0_la_DEPENDENCIES =                        \
 
6140
+       libpango-$(PANGO_API_VERSION).la        \
 
6141
+       $(INCLUDED_X_MODULES)
 
6142
+
 
6143
+if PLATFORM_WIN32
 
6144
+libpangox_1_0_la_LDFLAGS += -export-symbols $(srcdir)/pangox.def -Wl,pangox-win32-res.o
 
6145
+libpangox_1_0_la_DEPENDENCIES += pangox-win32-res.o pangox.def
 
6146
+endif
 
6147
+
 
6148
+pangox-win32-res.o: pangox.rc
 
6149
+       $(WINDRES) $< $@
 
6150
+
 
6151
+libpangox_1_0_la_SOURCES =                     \
 
6152
+       $(pangox_public_sources)                \
 
6153
+       modules.h                               \
 
6154
+       module-defs-x.c                         \
 
6155
+       pangox-private.h                        \
 
6156
+       pangox-fontcache.c                      \
 
6157
+       pangox-fontmap.c
 
6158
+
 
6159
 # ------------------- libpangoft2 -------------------
 
6160
 
 
6161
 if HAVE_FREETYPE
 
6162
@@ -426,10 +465,16 @@ endif # HAVE_INTROSPECTION
 
6163
 
 
6164
 bin_PROGRAMS = pango-querymodules
 
6165
 
 
6166
+#
 
6167
+# As a temporary hack, we pull in libpangox here so that we can link
 
6168
+#
 
6169
 pango_querymodules_SOURCES = \
 
6170
        querymodules.c
 
6171
 
 
6172
 pango_querymodules_LDADD =
 
6173
+if HAVE_X
 
6174
+pango_querymodules_LDADD += libpangox-$(PANGO_API_VERSION).la
 
6175
+endif
 
6176
 if HAVE_XFT
 
6177
 pango_querymodules_LDADD += libpangoxft-$(PANGO_API_VERSION).la
 
6178
 endif
 
6179
@@ -454,15 +499,17 @@ EXTRA_DIST =                                      \
 
6180
        pangocairo.def                          \
 
6181
        pangowin32.def                          \
 
6182
        pangoft2.def                            \
 
6183
-       pangoxft.def                            \
 
6184
        pango.rc                                \
 
6185
        pango.rc.in                             \
 
6186
+       pangox.aliases                          \
 
6187
        pangoft2.rc                             \
 
6188
        pangoft2.rc.in                          \
 
6189
        pangowin32.rc                           \
 
6190
        pangowin32.rc.in                        \
 
6191
        pangocairo.rc                           \
 
6192
        pangocairo.rc.in                        \
 
6193
+       pangox.rc                               \
 
6194
+       pangox.rc.in                            \
 
6195
        pangoxft.rc                             \
 
6196
        pangoxft.rc.in                          \
 
6197
        check.defs
 
6198
@@ -472,7 +519,7 @@ if HAVE_INCLUDED_MODULES
 
6199
 included-modules:
 
6200
        $(AM_V_GEN) cd $(top_builddir)/modules && $(MAKE) $(AM_MAKEFLAGS) included-modules
 
6201
 
 
6202
-$(INCLUDED_LANG_MODULES) $(INCLUDED_FC_MODULES) $(INCLUDED_WIN32_MODULES) $(INCLUDED_CORE_TEXT_MODULES): included-modules
 
6203
+$(INCLUDED_LANG_MODULES) $(INCLUDED_X_MODULES) $(INCLUDED_FC_MODULES) $(INCLUDED_WIN32_MODULES) $(INCLUDED_CORE_TEXT_MODULES): included-modules
 
6204
        $(AM_V_GEN) true
 
6205
 
 
6206
 .PHONY: included-modules
 
6207
@@ -481,6 +528,7 @@ endif
 
6208
 MODULE_DEF_FILES = \
 
6209
        module-defs.h \
 
6210
        module-defs-lang.c \
 
6211
+       module-defs-x.c \
 
6212
        module-defs-fc.c \
 
6213
        module-defs-win32.c \
 
6214
        module-defs-coretext.c
 
6215
@@ -506,12 +554,11 @@ MOSTLYCLEANFILES =                \
 
6216
 
 
6217
 DISTCLEANFILES =               \
 
6218
        pango-features.h        \
 
6219
-       $(MODULE_DEF_FILES)     \
 
6220
-       $(pango_vcproj_stuff)
 
6221
+       $(MODULE_DEF_FILES)
 
6222
 
 
6223
 install-exec-hook:
 
6224
 if DISABLE_EXPLICIT_DEPS
 
6225
-       -for i in libpangoft2-$(PANGO_API_VERSION).la libpangoxft-$(PANGO_API_VERSION).la libpangowin32-$(PANGO_API_VERSION).la; do \
 
6226
+       -for i in libpangoft2-$(PANGO_API_VERSION).la libpangoxft-$(PANGO_API_VERSION).la libpangox-$(PANGO_API_VERSION).la libpangowin32-$(PANGO_API_VERSION).la; do \
 
6227
          test -f $(DESTDIR)$(libdir)/$$i && $(SHELL) $(top_srcdir)/sanitize-la.sh $(DESTDIR)$(libdir)/$$i ; \
 
6228
        done
 
6229
 endif
 
6230
diff --git a/pango/pangox-fontcache.c b/pango/pangox-fontcache.c
 
6231
new file mode 100644
 
6232
index 0000000..f60b8c9
 
6233
--- /dev/null
 
6234
+++ b/pango/pangox-fontcache.c
 
6235
@@ -0,0 +1,249 @@
 
6236
+/* Pango
 
6237
+ * pango-fontcache.c: Cache of XFontStructs by XLFD
 
6238
+ *
 
6239
+ * Copyright (C) 2000 Red Hat Software
 
6240
+ *
 
6241
+ * This library is free software; you can redistribute it and/or
 
6242
+ * modify it under the terms of the GNU Library General Public
 
6243
+ * License as published by the Free Software Foundation; either
 
6244
+ * version 2 of the License, or (at your option) any later version.
 
6245
+ *
 
6246
+ * This library is distributed in the hope that it will be useful,
 
6247
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
 
6248
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.         See the GNU
 
6249
+ * Library General Public License for more details.
 
6250
+ *
 
6251
+ * You should have received a copy of the GNU Library General Public
 
6252
+ * License along with this library; if not, write to the
 
6253
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 
6254
+ * Boston, MA 02111-1307, USA.
 
6255
+ */
 
6256
+
 
6257
+#include "config.h"
 
6258
+#include "pangox.h"
 
6259
+
 
6260
+/* Font cache
 
6261
+ */
 
6262
+
 
6263
+/* Number of fonts to retain after they are not otherwise referenced.
 
6264
+ */
 
6265
+#define CACHE_SIZE 16
 
6266
+
 
6267
+typedef struct _CacheEntry CacheEntry;
 
6268
+
 
6269
+struct _PangoXFontCache
 
6270
+{
 
6271
+  Display *display;
 
6272
+
 
6273
+  GHashTable *forward;
 
6274
+  GHashTable *back;
 
6275
+
 
6276
+  GList *mru;
 
6277
+  GList *mru_tail;
 
6278
+  int mru_count;
 
6279
+};
 
6280
+
 
6281
+struct _CacheEntry
 
6282
+{
 
6283
+  char *xlfd;
 
6284
+  XFontStruct *fs;
 
6285
+
 
6286
+  gint ref_count;
 
6287
+  GList *mru;
 
6288
+};
 
6289
+
 
6290
+static void
 
6291
+free_cache_entry (char            *xlfd G_GNUC_UNUSED,
 
6292
+                 CacheEntry      *entry,
 
6293
+                 PangoXFontCache *cache)
 
6294
+{
 
6295
+  g_free (entry->xlfd);
 
6296
+  XFreeFont (cache->display, entry->fs);
 
6297
+
 
6298
+  g_slice_free (CacheEntry, entry);
 
6299
+}
 
6300
+
 
6301
+/**
 
6302
+ * pango_x_font_cache_free:
 
6303
+ * @cache: a #PangoXFontCache
 
6304
+ *
 
6305
+ * Frees a #PangoXFontCache and all associated memory. All fonts loaded
 
6306
+ * through this font cache will be freed along with the cache.
 
6307
+ **/
 
6308
+void
 
6309
+pango_x_font_cache_free (PangoXFontCache *cache)
 
6310
+{
 
6311
+  g_return_if_fail (cache != NULL);
 
6312
+
 
6313
+  g_hash_table_foreach (cache->forward, (GHFunc)free_cache_entry, cache);
 
6314
+
 
6315
+  g_hash_table_destroy (cache->forward);
 
6316
+  g_hash_table_destroy (cache->back);
 
6317
+
 
6318
+  g_list_free (cache->mru);
 
6319
+
 
6320
+  g_slice_free (PangoXFontCache, cache);
 
6321
+}
 
6322
+
 
6323
+/**
 
6324
+ * pango_x_font_cache_new:
 
6325
+ * @display: an X display.
 
6326
+ *
 
6327
+ * Creates a font cache for the specified display.
 
6328
+ *
 
6329
+ * Return value: The newly allocated #PangoXFontCache, which should be
 
6330
+ *               freed with pango_x_font_cache_free().
 
6331
+ **/
 
6332
+PangoXFontCache *
 
6333
+pango_x_font_cache_new (Display *display)
 
6334
+{
 
6335
+  PangoXFontCache *cache;
 
6336
+
 
6337
+  g_return_val_if_fail (display != NULL, NULL);
 
6338
+
 
6339
+  cache = g_slice_new (PangoXFontCache);
 
6340
+
 
6341
+  cache->display = display;
 
6342
+
 
6343
+  cache->forward = g_hash_table_new (g_str_hash, g_str_equal);
 
6344
+  cache->back = g_hash_table_new (g_direct_hash, g_direct_equal);
 
6345
+
 
6346
+  cache->mru = NULL;
 
6347
+  cache->mru_tail = NULL;
 
6348
+  cache->mru_count = 0;
 
6349
+
 
6350
+  return cache;
 
6351
+}
 
6352
+
 
6353
+static void
 
6354
+cache_entry_unref (PangoXFontCache *cache, CacheEntry *entry)
 
6355
+{
 
6356
+  if (g_atomic_int_dec_and_test (&entry->ref_count))
 
6357
+    {
 
6358
+      g_hash_table_remove (cache->forward, entry->xlfd);
 
6359
+      g_hash_table_remove (cache->back, entry->fs);
 
6360
+
 
6361
+      free_cache_entry (NULL, entry, cache);
 
6362
+    }
 
6363
+}
 
6364
+
 
6365
+/**
 
6366
+ * pango_x_font_cache_load:
 
6367
+ * @cache: a #PangoXFontCache
 
6368
+ * @xlfd: the X Logical Font Description to load.
 
6369
+ *
 
6370
+ * Loads a #XFontStruct from a X Logical Font Description. The
 
6371
+ * result may be newly loaded, or it may have been previously
 
6372
+ * stored.
 
6373
+ *
 
6374
+ * Return value: The font structure, or %NULL if the font could
 
6375
+ * not be loaded. In order to free this structure, you must call
 
6376
+ * pango_x_font_cache_unload().
 
6377
+ **/
 
6378
+XFontStruct *
 
6379
+pango_x_font_cache_load (PangoXFontCache *cache,
 
6380
+                        const char      *xlfd)
 
6381
+{
 
6382
+  CacheEntry *entry;
 
6383
+
 
6384
+  g_return_val_if_fail (cache != NULL, NULL);
 
6385
+  g_return_val_if_fail (xlfd != NULL, NULL);
 
6386
+
 
6387
+  entry = g_hash_table_lookup (cache->forward, xlfd);
 
6388
+
 
6389
+  if (entry)
 
6390
+    {
 
6391
+      g_atomic_int_inc (&entry->ref_count);
 
6392
+    }
 
6393
+  else
 
6394
+    {
 
6395
+      XFontStruct *fs = XLoadQueryFont (cache->display, xlfd);
 
6396
+
 
6397
+      if (!fs)
 
6398
+       return NULL;
 
6399
+
 
6400
+      entry = g_slice_new (CacheEntry);
 
6401
+
 
6402
+      entry->xlfd = g_strdup (xlfd);
 
6403
+      entry->fs = fs;
 
6404
+
 
6405
+      entry->ref_count = 1;
 
6406
+      entry->mru = NULL;
 
6407
+
 
6408
+      g_hash_table_insert (cache->forward, entry->xlfd, entry);
 
6409
+      g_hash_table_insert (cache->back, entry->fs, entry);
 
6410
+    }
 
6411
+
 
6412
+  if (entry->mru)
 
6413
+    {
 
6414
+      if (cache->mru_count > 1 && entry->mru->prev)
 
6415
+       {
 
6416
+         /* Move to the head of the mru list */
 
6417
+
 
6418
+         if (entry->mru == cache->mru_tail)
 
6419
+           {
 
6420
+             cache->mru_tail = cache->mru_tail->prev;
 
6421
+             cache->mru_tail->next = NULL;
 
6422
+           }
 
6423
+         else
 
6424
+           {
 
6425
+             entry->mru->prev->next = entry->mru->next;
 
6426
+             entry->mru->next->prev = entry->mru->prev;
 
6427
+           }
 
6428
+
 
6429
+         entry->mru->next = cache->mru;
 
6430
+         entry->mru->prev = NULL;
 
6431
+         cache->mru->prev = entry->mru;
 
6432
+         cache->mru = entry->mru;
 
6433
+       }
 
6434
+    }
 
6435
+  else
 
6436
+    {
 
6437
+      g_atomic_int_inc (&entry->ref_count);
 
6438
+
 
6439
+      /* Insert into the mru list */
 
6440
+
 
6441
+      if (cache->mru_count == CACHE_SIZE)
 
6442
+       {
 
6443
+         CacheEntry *old_entry = cache->mru_tail->data;
 
6444
+
 
6445
+         cache->mru_tail = cache->mru_tail->prev;
 
6446
+         cache->mru_tail->next = NULL;
 
6447
+
 
6448
+         g_list_free_1 (old_entry->mru);
 
6449
+         old_entry->mru = NULL;
 
6450
+         cache_entry_unref (cache, old_entry);
 
6451
+       }
 
6452
+      else
 
6453
+       cache->mru_count++;
 
6454
+
 
6455
+      cache->mru = g_list_prepend (cache->mru, entry);
 
6456
+      if (!cache->mru_tail)
 
6457
+       cache->mru_tail = cache->mru;
 
6458
+      entry->mru = cache->mru;
 
6459
+    }
 
6460
+
 
6461
+  return entry->fs;
 
6462
+}
 
6463
+
 
6464
+/**
 
6465
+ * pango_x_font_cache_unload:
 
6466
+ * @cache: a #PangoXFontCache
 
6467
+ * @fs: the font structure to unload
 
6468
+ *
 
6469
+ * Frees a font structure previously loaded with pango_x_font_cache_load().
 
6470
+ **/
 
6471
+void
 
6472
+pango_x_font_cache_unload (PangoXFontCache *cache,
 
6473
+                          XFontStruct     *fs)
 
6474
+{
 
6475
+  CacheEntry *entry;
 
6476
+
 
6477
+  g_return_if_fail (cache != NULL);
 
6478
+  g_return_if_fail (fs != NULL);
 
6479
+
 
6480
+  entry = g_hash_table_lookup (cache->back, fs);
 
6481
+  g_return_if_fail (entry != NULL);
 
6482
+
 
6483
+  cache_entry_unref (cache, entry);
 
6484
+}
 
6485
diff --git a/pango/pangox-fontmap.c b/pango/pangox-fontmap.c
 
6486
new file mode 100644
 
6487
index 0000000..74925dc
 
6488
--- /dev/null
 
6489
+++ b/pango/pangox-fontmap.c
 
6490
@@ -0,0 +1,1628 @@
 
6491
+/* Pango
 
6492
+ * pangox-fontmap.c: X font handling
 
6493
+ *
 
6494
+ * Copyright (C) 2000 Red Hat Software
 
6495
+ *
 
6496
+ * This library is free software; you can redistribute it and/or
 
6497
+ * modify it under the terms of the GNU Library General Public
 
6498
+ * License as published by the Free Software Foundation; either
 
6499
+ * version 2 of the License, or (at your option) any later version.
 
6500
+ *
 
6501
+ * This library is distributed in the hope that it will be useful,
 
6502
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
 
6503
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.         See the GNU
 
6504
+ * Library General Public License for more details.
 
6505
+ *
 
6506
+ * You should have received a copy of the GNU Library General Public
 
6507
+ * License along with this library; if not, write to the
 
6508
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 
6509
+ * Boston, MA 02111-1307, USA.
 
6510
+ */
 
6511
+
 
6512
+#include "config.h"
 
6513
+#include <stdio.h>
 
6514
+#include <stdlib.h>
 
6515
+#include <string.h>
 
6516
+#include <errno.h>
 
6517
+#include <glib.h>
 
6518
+
 
6519
+#include <X11/Xatom.h>
 
6520
+
 
6521
+/* For XExtSetCloseDisplay */
 
6522
+#include <X11/Xlibint.h>
 
6523
+
 
6524
+#include "pango-engine-private.h"
 
6525
+#include "pango-fontmap.h"
 
6526
+#include "pango-impl-utils.h"
 
6527
+#include "modules.h"
 
6528
+
 
6529
+#undef PANGO_DISABLE_DEPRECATED
 
6530
+
 
6531
+#include "pangox-private.h"
 
6532
+
 
6533
+typedef struct _PangoXFamily       PangoXFamily;
 
6534
+typedef struct _PangoXFamilyClass  PangoXFamilyClass;
 
6535
+typedef struct _PangoXSizeInfo     PangoXSizeInfo;
 
6536
+
 
6537
+/* Number of freed fonts */
 
6538
+#define MAX_FREED_FONTS 16
 
6539
+
 
6540
+/* This is the largest field length we will accept. If a fontname has a field
 
6541
+   larger than this we will skip it. */
 
6542
+#define XLFD_MAX_FIELD_LEN 64
 
6543
+#define MAX_FONTS 32767
 
6544
+
 
6545
+/* These are the field numbers in the X Logical Font Description fontnames,
 
6546
+   e.g. -adobe-courier-bold-o-normal--25-180-100-100-m-150-iso8859-1 */
 
6547
+typedef enum
 
6548
+{
 
6549
+  XLFD_FOUNDRY         = 0,
 
6550
+  XLFD_FAMILY          = 1,
 
6551
+  XLFD_WEIGHT          = 2,
 
6552
+  XLFD_SLANT           = 3,
 
6553
+  XLFD_SET_WIDTH       = 4,
 
6554
+  XLFD_ADD_STYLE       = 5,
 
6555
+  XLFD_PIXELS          = 6,
 
6556
+  XLFD_POINTS          = 7,
 
6557
+  XLFD_RESOLUTION_X    = 8,
 
6558
+  XLFD_RESOLUTION_Y    = 9,
 
6559
+  XLFD_SPACING         = 10,
 
6560
+  XLFD_AVERAGE_WIDTH   = 11,
 
6561
+  XLFD_CHARSET         = 12,
 
6562
+  XLFD_NUM_FIELDS
 
6563
+} FontField;
 
6564
+
 
6565
+struct _PangoXFamily
 
6566
+{
 
6567
+  PangoFontFamily parent_instance;
 
6568
+
 
6569
+  char *family_name;
 
6570
+  GSList *font_entries;
 
6571
+};
 
6572
+
 
6573
+struct _PangoXFamilyClass
 
6574
+{
 
6575
+  PangoFontFamilyClass parent_class;
 
6576
+};
 
6577
+
 
6578
+struct _PangoXFace
 
6579
+{
 
6580
+  PangoFontFace parent_instance;
 
6581
+
 
6582
+  char *xlfd;
 
6583
+  PangoFontDescription *description;
 
6584
+  PangoCoverage *coverage;
 
6585
+
 
6586
+  char *face_name;
 
6587
+
 
6588
+  GSList *cached_fonts;
 
6589
+};
 
6590
+
 
6591
+struct _PangoXSizeInfo
 
6592
+{
 
6593
+  char *identifier;
 
6594
+  GSList *xlfds;
 
6595
+};
 
6596
+
 
6597
+static const struct {
 
6598
+  const gchar text[12];
 
6599
+  PangoWeight value;
 
6600
+} weights_map[] = {
 
6601
+  { "light",     300 },
 
6602
+  { "regular",   400 },
 
6603
+  { "book",      400 },
 
6604
+  { "medium",    500 },
 
6605
+  { "semibold",  600 },
 
6606
+  { "demibold",  600 },
 
6607
+  { "bold",      700 },
 
6608
+  { "extrabold", 800 },
 
6609
+  { "ultrabold", 800 },
 
6610
+  { "heavy",     900 },
 
6611
+  { "black",     900 }
 
6612
+};
 
6613
+
 
6614
+static const struct {
 
6615
+  const gchar text[4];
 
6616
+  PangoStyle value;
 
6617
+} styles_map[] = {
 
6618
+  { "r", PANGO_STYLE_NORMAL },
 
6619
+  { "i", PANGO_STYLE_ITALIC },
 
6620
+  { "o", PANGO_STYLE_OBLIQUE }
 
6621
+};
 
6622
+
 
6623
+static const struct {
 
6624
+  const gchar text[16];
 
6625
+  PangoStretch value;
 
6626
+} stretches_map[] = {
 
6627
+  { "normal",        PANGO_STRETCH_NORMAL },
 
6628
+  { "semicondensed", PANGO_STRETCH_SEMI_CONDENSED },
 
6629
+  { "condensed",     PANGO_STRETCH_CONDENSED },
 
6630
+};
 
6631
+
 
6632
+static void       pango_x_font_map_finalize      (GObject                      *object);
 
6633
+static PangoFont *pango_x_font_map_load_font     (PangoFontMap                 *fontmap,
 
6634
+                                                 PangoContext                 *context,
 
6635
+                                                 const PangoFontDescription   *description);
 
6636
+static void       pango_x_font_map_list_families (PangoFontMap                 *fontmap,
 
6637
+                                                 PangoFontFamily            ***families,
 
6638
+                                                 int                          *n_families);
 
6639
+
 
6640
+static void     pango_x_fontmap_cache_clear (PangoXFontMap   *xfontmap);
 
6641
+static void     pango_x_font_map_read_aliases (PangoXFontMap *xfontmap);
 
6642
+
 
6643
+static gint     pango_x_get_size            (PangoXFontMap      *fontmap,
 
6644
+                                            const char         *fontname);
 
6645
+static void     pango_x_insert_font         (PangoXFontMap      *fontmap,
 
6646
+                                            const char         *fontname);
 
6647
+static gboolean pango_x_is_xlfd_font_name   (const char         *fontname);
 
6648
+static char *   pango_x_get_xlfd_field      (const char         *fontname,
 
6649
+                                            FontField           field_num,
 
6650
+                                            char               *buffer);
 
6651
+static char *   pango_x_get_identifier      (const char         *fontname);
 
6652
+
 
6653
+
 
6654
+#define PANGO_X_TYPE_FAMILY              (pango_x_family_get_type ())
 
6655
+#define PANGO_X_FAMILY(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), PANGO_X_TYPE_FAMILY, PangoXFamily))
 
6656
+#define PANGO_X_IS_FAMILY(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), PANGO_X_TYPE_FAMILY))
 
6657
+
 
6658
+GType           pango_x_family_get_type (void);
 
6659
+
 
6660
+
 
6661
+#define PANGO_X_TYPE_FACE              (pango_x_face_get_type ())
 
6662
+#define PANGO_X_FACE(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), PANGO_X_TYPE_FACE, PangoXFace))
 
6663
+#define PANGO_X_IS_FACE(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), PANGO_X_TYPE_FACE))
 
6664
+
 
6665
+GType           pango_x_face_get_type (void);
 
6666
+
 
6667
+G_DEFINE_TYPE (PangoXFontMap, pango_x_font_map, PANGO_TYPE_FONT_MAP);
 
6668
+
 
6669
+static void
 
6670
+pango_x_font_map_init (PangoXFontMap *xfontmap)
 
6671
+{
 
6672
+  xfontmap->families = g_hash_table_new (g_str_hash, g_str_equal);
 
6673
+  xfontmap->size_infos = g_hash_table_new (g_str_hash, g_str_equal);
 
6674
+  xfontmap->to_atom_cache = g_hash_table_new (g_str_hash, g_str_equal);
 
6675
+  xfontmap->from_atom_cache = g_hash_table_new (g_direct_hash, g_direct_equal);
 
6676
+  xfontmap->n_fonts = 0;
 
6677
+}
 
6678
+
 
6679
+static void
 
6680
+pango_x_font_map_class_init (PangoXFontMapClass *class)
 
6681
+{
 
6682
+  GObjectClass *object_class = G_OBJECT_CLASS (class);
 
6683
+  PangoFontMapClass *font_map_class = PANGO_FONT_MAP_CLASS (class);
 
6684
+
 
6685
+  object_class->finalize = pango_x_font_map_finalize;
 
6686
+
 
6687
+  font_map_class->load_font = pango_x_font_map_load_font;
 
6688
+  font_map_class->list_families = pango_x_font_map_list_families;
 
6689
+  font_map_class->shape_engine_type = PANGO_RENDER_TYPE_X;
 
6690
+}
 
6691
+
 
6692
+/*
 
6693
+ * Hackery to set up notification when a Display is closed
 
6694
+ */
 
6695
+static GSList *registered_displays;
 
6696
+
 
6697
+static int
 
6698
+close_display_cb (Display   *display,
 
6699
+                 XExtCodes *extcodes G_GNUC_UNUSED)
 
6700
+{
 
6701
+  pango_x_shutdown_display (display);
 
6702
+  registered_displays = g_slist_remove (registered_displays, display);
 
6703
+
 
6704
+  return 0;
 
6705
+}
 
6706
+
 
6707
+static void
 
6708
+register_display (Display *display)
 
6709
+{
 
6710
+  XExtCodes *extcodes;
 
6711
+  GSList *tmp_list;
 
6712
+
 
6713
+  for (tmp_list = registered_displays; tmp_list; tmp_list = tmp_list->next)
 
6714
+    {
 
6715
+      if (tmp_list->data == display)
 
6716
+       return;
 
6717
+    }
 
6718
+
 
6719
+  registered_displays = g_slist_prepend (registered_displays, display);
 
6720
+
 
6721
+  extcodes = XAddExtension (display);
 
6722
+  XESetCloseDisplay (display, extcodes->extension, close_display_cb);
 
6723
+}
 
6724
+
 
6725
+static GList *fontmaps = NULL;
 
6726
+
 
6727
+/**
 
6728
+ * pango_x_font_map_for_display:
 
6729
+ * @display: an X #Display.
 
6730
+ *
 
6731
+ * Returns a #PangoXFontMap for @display. Font maps are cached and should
 
6732
+ * not be freed. If the font map for a display is no longer needed, it can
 
6733
+ * be released with pango_x_shutdown_display().
 
6734
+ *
 
6735
+ * Return value: a #PangoXFontMap for @display.
 
6736
+ **/
 
6737
+PangoFontMap *
 
6738
+pango_x_font_map_for_display (Display *display)
 
6739
+{
 
6740
+  PangoXFontMap *xfontmap;
 
6741
+  GList *tmp_list = fontmaps;
 
6742
+  char **xfontnames;
 
6743
+  int num_fonts, i;
 
6744
+  int screen;
 
6745
+  static gboolean registered_modules = FALSE;
 
6746
+
 
6747
+  g_return_val_if_fail (display != NULL, NULL);
 
6748
+
 
6749
+  if (!registered_modules)
 
6750
+    {
 
6751
+      registered_modules = TRUE;
 
6752
+
 
6753
+      for (i = 0; _pango_included_x_modules[i].list; i++)
 
6754
+       pango_module_register (&_pango_included_x_modules[i]);
 
6755
+    }
 
6756
+
 
6757
+  /* Make sure that the type system is initialized */
 
6758
+  g_type_init ();
 
6759
+
 
6760
+  while (tmp_list)
 
6761
+    {
 
6762
+      xfontmap = tmp_list->data;
 
6763
+
 
6764
+      if (xfontmap->display == display)
 
6765
+       return PANGO_FONT_MAP (xfontmap);
 
6766
+
 
6767
+      tmp_list = tmp_list->next;
 
6768
+    }
 
6769
+
 
6770
+  xfontmap = g_object_new (PANGO_TYPE_X_FONT_MAP, NULL);
 
6771
+
 
6772
+  xfontmap->display = display;
 
6773
+  xfontmap->font_cache = pango_x_font_cache_new (display);
 
6774
+  xfontmap->freed_fonts = g_queue_new ();
 
6775
+
 
6776
+  /* Get a maximum of MAX_FONTS fontnames from the X server.
 
6777
+     Use "-*" as the pattern rather than "-*-*-*-*-*-*-*-*-*-*-*-*-*-*" since
 
6778
+     the latter may result in fonts being returned which don't actually exist.
 
6779
+     xlsfonts also uses "*" so I think it's OK. "-*" gets rid of aliases. */
 
6780
+  xfontnames = XListFonts (xfontmap->display, "-*", MAX_FONTS, &num_fonts);
 
6781
+  if (num_fonts == MAX_FONTS)
 
6782
+    g_warning("MAX_FONTS exceeded. Some fonts may be missing.");
 
6783
+
 
6784
+  /* Insert the font families into the main table */
 
6785
+  for (i = 0; i < num_fonts; i++)
 
6786
+    {
 
6787
+      if (pango_x_is_xlfd_font_name (xfontnames[i]))
 
6788
+       pango_x_insert_font (xfontmap, xfontnames[i]);
 
6789
+    }
 
6790
+
 
6791
+  XFreeFontNames (xfontnames);
 
6792
+
 
6793
+  pango_x_font_map_read_aliases (xfontmap);
 
6794
+
 
6795
+  fontmaps = g_list_prepend (fontmaps, xfontmap);
 
6796
+
 
6797
+  /* This is a little screwed up, since different screens on the same display
 
6798
+   * might have different resolutions
 
6799
+   */
 
6800
+  screen = DefaultScreen (xfontmap->display);
 
6801
+  xfontmap->resolution = (PANGO_SCALE * 72.27 / 25.4) * ((double) DisplayWidthMM (xfontmap->display, screen) /
 
6802
+                                                        DisplayWidth (xfontmap->display, screen));
 
6803
+
 
6804
+  register_display (xfontmap->display);
 
6805
+
 
6806
+  return PANGO_FONT_MAP (xfontmap);
 
6807
+}
 
6808
+
 
6809
+/**
 
6810
+ * pango_x_shutdown_display:
 
6811
+ * @display: an X #Display
 
6812
+ *
 
6813
+ * Free cached resources for the given X display structure.
 
6814
+ **/
 
6815
+void
 
6816
+pango_x_shutdown_display (Display *display)
 
6817
+{
 
6818
+  GList *tmp_list;
 
6819
+
 
6820
+  g_return_if_fail (display != NULL);
 
6821
+
 
6822
+  tmp_list = fontmaps;
 
6823
+  while (tmp_list)
 
6824
+    {
 
6825
+      PangoXFontMap *xfontmap = tmp_list->data;
 
6826
+
 
6827
+      if (xfontmap->display == display)
 
6828
+       {
 
6829
+         fontmaps = g_list_delete_link (fontmaps, tmp_list);
 
6830
+         pango_x_fontmap_cache_clear (xfontmap);
 
6831
+         g_object_unref (xfontmap);
 
6832
+
 
6833
+         return;
 
6834
+       }
 
6835
+
 
6836
+      tmp_list = tmp_list->next;
 
6837
+    }
 
6838
+}
 
6839
+
 
6840
+static void
 
6841
+pango_x_font_map_finalize (GObject *object)
 
6842
+{
 
6843
+  PangoXFontMap *xfontmap = PANGO_X_FONT_MAP (object);
 
6844
+
 
6845
+  g_list_foreach (xfontmap->freed_fonts->head, (GFunc)g_object_unref, NULL);
 
6846
+  g_queue_free (xfontmap->freed_fonts);
 
6847
+
 
6848
+  pango_x_font_cache_free (xfontmap->font_cache);
 
6849
+
 
6850
+  /* FIXME: None of these hashtables free their key/values
 
6851
+  g_hash_table_destroy (xfontmap->families);
 
6852
+  g_hash_table_destroy (xfontmap->size_infos);
 
6853
+  g_hash_table_destroy (xfontmap->to_atom_cache);
 
6854
+  g_hash_table_destroy (xfontmap->from_atom_cache);
 
6855
+  */
 
6856
+
 
6857
+  fontmaps = g_list_remove (fontmaps, xfontmap);
 
6858
+
 
6859
+  G_OBJECT_CLASS (pango_x_font_map_parent_class)->finalize (object);
 
6860
+}
 
6861
+
 
6862
+static void
 
6863
+list_families_foreach (gpointer key G_GNUC_UNUSED,
 
6864
+                      gpointer value,
 
6865
+                      gpointer user_data)
 
6866
+{
 
6867
+  GSList **list = user_data;
 
6868
+
 
6869
+  *list = g_slist_prepend (*list, value);
 
6870
+}
 
6871
+
 
6872
+static void
 
6873
+pango_x_font_map_list_families (PangoFontMap           *fontmap,
 
6874
+                               PangoFontFamily      ***families,
 
6875
+                               int                    *n_families)
 
6876
+{
 
6877
+  GSList *family_list = NULL;
 
6878
+  GSList *tmp_list;
 
6879
+  PangoXFontMap *xfontmap = (PangoXFontMap *)fontmap;
 
6880
+
 
6881
+  if (!n_families)
 
6882
+    return;
 
6883
+
 
6884
+  g_hash_table_foreach (xfontmap->families, list_families_foreach, &family_list);
 
6885
+
 
6886
+  *n_families = g_slist_length (family_list);
 
6887
+
 
6888
+  if (families)
 
6889
+    {
 
6890
+      int i = 0;
 
6891
+
 
6892
+      *families = g_new (PangoFontFamily *, *n_families);
 
6893
+
 
6894
+      tmp_list = family_list;
 
6895
+      while (tmp_list)
 
6896
+       {
 
6897
+         (*families)[i] = tmp_list->data;
 
6898
+         i++;
 
6899
+         tmp_list = tmp_list->next;
 
6900
+       }
 
6901
+    }
 
6902
+
 
6903
+  g_slist_free (family_list);
 
6904
+}
 
6905
+
 
6906
+static PangoXFamily *
 
6907
+pango_x_get_font_family (PangoXFontMap *xfontmap,
 
6908
+                        const char    *family_name)
 
6909
+{
 
6910
+  PangoXFamily *font_family = g_hash_table_lookup (xfontmap->families, family_name);
 
6911
+  if (!font_family)
 
6912
+    {
 
6913
+      font_family = g_object_new (PANGO_X_TYPE_FAMILY, NULL);
 
6914
+      font_family->family_name = g_strdup (family_name);
 
6915
+      font_family->font_entries = NULL;
 
6916
+
 
6917
+      g_hash_table_insert (xfontmap->families, font_family->family_name, font_family);
 
6918
+    }
 
6919
+
 
6920
+  return font_family;
 
6921
+}
 
6922
+
 
6923
+static PangoFont *
 
6924
+pango_x_font_map_load_font (PangoFontMap               *fontmap,
 
6925
+                           PangoContext               *context G_GNUC_UNUSED,
 
6926
+                           const PangoFontDescription *description)
 
6927
+{
 
6928
+  PangoXFontMap *xfontmap = (PangoXFontMap *)fontmap;
 
6929
+  PangoXFamily *font_family;
 
6930
+  PangoFont *result = NULL;
 
6931
+  GSList *tmp_list;
 
6932
+  const gchar *family;
 
6933
+  gchar *name;
 
6934
+  gint size;
 
6935
+
 
6936
+  g_return_val_if_fail (description != NULL, NULL);
 
6937
+
 
6938
+  family = pango_font_description_get_family (description);
 
6939
+  name = g_ascii_strdown (family ? family : "", -1);
 
6940
+  size = pango_font_description_get_size (description);
 
6941
+
 
6942
+  if (size < 0)
 
6943
+    return NULL;
 
6944
+
 
6945
+  font_family = g_hash_table_lookup (xfontmap->families, name);
 
6946
+  if (font_family)
 
6947
+    {
 
6948
+      PangoXFace *best_match = NULL;
 
6949
+
 
6950
+      tmp_list = font_family->font_entries;
 
6951
+      while (tmp_list)
 
6952
+       {
 
6953
+         PangoXFace *font_entry = tmp_list->data;
 
6954
+
 
6955
+         if (pango_font_description_better_match (description,
 
6956
+                                                  best_match ? best_match->description : NULL,
 
6957
+                                                  font_entry->description))
 
6958
+           best_match = font_entry;
 
6959
+
 
6960
+         tmp_list = tmp_list->next;
 
6961
+       }
 
6962
+
 
6963
+      if (best_match)
 
6964
+       {
 
6965
+         GSList *tmp_list = best_match->cached_fonts;
 
6966
+
 
6967
+         while (tmp_list)
 
6968
+           {
 
6969
+             PangoXFont *xfont = tmp_list->data;
 
6970
+             if (xfont->size == size)
 
6971
+               {
 
6972
+                 result = (PangoFont *)xfont;
 
6973
+
 
6974
+                 g_object_ref (result);
 
6975
+                 if (xfont->in_cache)
 
6976
+                   pango_x_fontmap_cache_remove (fontmap, xfont);
 
6977
+
 
6978
+                 break;
 
6979
+               }
 
6980
+             tmp_list = tmp_list->next;
 
6981
+           }
 
6982
+
 
6983
+         if (!result)
 
6984
+           {
 
6985
+             PangoXFont *xfont = pango_x_font_new (fontmap, best_match->xlfd, size);
 
6986
+
 
6987
+             xfont->xface = best_match;
 
6988
+             best_match->cached_fonts = g_slist_prepend (best_match->cached_fonts, xfont);
 
6989
+
 
6990
+             result = (PangoFont *)xfont;
 
6991
+           }
 
6992
+       }
 
6993
+    }
 
6994
+
 
6995
+  g_free (name);
 
6996
+  return result;
 
6997
+}
 
6998
+
 
6999
+
 
7000
+/************************
 
7001
+ * Coverage Map Caching *
 
7002
+ ************************/
 
7003
+
 
7004
+/* We need to be robust against errors accessing the coverage
 
7005
+ * cache window, since it is not our window. So we temporarily
 
7006
+ * set this error handler while accessing it. The error_occurred
 
7007
+ * global allows us to tell whether an error occurred for
 
7008
+ * XChangeProperty
 
7009
+ */
 
7010
+static gboolean error_occurred;
 
7011
+
 
7012
+static int
 
7013
+ignore_error (Display     *d G_GNUC_UNUSED,
 
7014
+             XErrorEvent *e G_GNUC_UNUSED)
 
7015
+{
 
7016
+  return 0;
 
7017
+}
 
7018
+
 
7019
+/* Retrieve the coverage window for the given display.
 
7020
+ * We look for a property on the root window, and then
 
7021
+ * check that the window that property points to also
 
7022
+ * has the same property pointing to itself. The second
 
7023
+ * check allows us to make sure that a stale property
 
7024
+ * isn't just pointing to some other apps window
 
7025
+ */
 
7026
+static Window
 
7027
+pango_x_real_get_coverage_win (Display *display)
 
7028
+{
 
7029
+  Atom type;
 
7030
+  int format;
 
7031
+  gulong n_items;
 
7032
+  gulong bytes_after;
 
7033
+  guchar *data;
 
7034
+  Window retval = None;
 
7035
+  int (*old_handler) (Display *, XErrorEvent *);
 
7036
+
 
7037
+  Atom coverage_win_atom = XInternAtom (display,
 
7038
+                                       "PANGO_COVERAGE_WIN",
 
7039
+                                       False);
 
7040
+
 
7041
+  XGetWindowProperty (display,
 
7042
+                     DefaultRootWindow (display),
 
7043
+                     coverage_win_atom,
 
7044
+                     0, 4,
 
7045
+                     False, XA_WINDOW,
 
7046
+                     &type, &format, &n_items, &bytes_after,
 
7047
+                     &data);
 
7048
+
 
7049
+  if (type == XA_WINDOW)
 
7050
+    {
 
7051
+      if (format == 32 && n_items == 1 && bytes_after == 0)
 
7052
+       retval = *(Atom *)data;
 
7053
+
 
7054
+      XFree (data);
 
7055
+    }
 
7056
+
 
7057
+  old_handler= XSetErrorHandler (ignore_error);
 
7058
+
 
7059
+  if (XGetWindowProperty (display,
 
7060
+                         retval,
 
7061
+                         coverage_win_atom,
 
7062
+                         0, 4,
 
7063
+                         False, XA_WINDOW,
 
7064
+                         &type, &format, &n_items, &bytes_after,
 
7065
+                         &data) == Success &&
 
7066
+      type == XA_WINDOW)
 
7067
+    {
 
7068
+      if (format != 32 || n_items != 1 || bytes_after != 0 ||
 
7069
+         *(Atom *)data != retval)
 
7070
+       retval = None;
 
7071
+
 
7072
+      XFree (data);
 
7073
+    }
 
7074
+  else
 
7075
+    retval = None;
 
7076
+
 
7077
+  XSync (display, False);
 
7078
+  XSetErrorHandler (old_handler);
 
7079
+
 
7080
+  return retval;
 
7081
+}
 
7082
+
 
7083
+/* Find or create the persistent window for caching font coverage
 
7084
+ * information.
 
7085
+ *
 
7086
+ * To assure atomic creation, we first look for the window, then if we
 
7087
+ * don't find it, grab the server, look for it again, and then if that
 
7088
+ * still didn't find it, create it and ungrab.
 
7089
+ */
 
7090
+static Window
 
7091
+pango_x_get_coverage_win (PangoXFontMap *xfontmap)
 
7092
+{
 
7093
+  if (!xfontmap->coverage_win)
 
7094
+    xfontmap->coverage_win = pango_x_real_get_coverage_win (xfontmap->display);
 
7095
+
 
7096
+  if (!xfontmap->coverage_win)
 
7097
+    {
 
7098
+      Display *persistant_display;
 
7099
+
 
7100
+      persistant_display = XOpenDisplay (DisplayString (xfontmap->display));
 
7101
+      if (!persistant_display)
 
7102
+       {
 
7103
+         g_warning ("Cannot create or retrieve display for font coverage cache");
 
7104
+         return None;
 
7105
+       }
 
7106
+
 
7107
+      XGrabServer (persistant_display);
 
7108
+
 
7109
+      xfontmap->coverage_win = pango_x_real_get_coverage_win (xfontmap->display);
 
7110
+      if (!xfontmap->coverage_win)
 
7111
+       {
 
7112
+         XSetWindowAttributes attr;
 
7113
+
 
7114
+         attr.override_redirect = True;
 
7115
+
 
7116
+         XSetCloseDownMode (persistant_display, RetainPermanent);
 
7117
+
 
7118
+         xfontmap->coverage_win =
 
7119
+           XCreateWindow (persistant_display,
 
7120
+                          DefaultRootWindow (persistant_display),
 
7121
+                          -100, -100, 10, 10, 0, 0,
 
7122
+                          InputOnly, (Visual *)CopyFromParent,
 
7123
+                          CWOverrideRedirect, &attr);
 
7124
+
 
7125
+         XChangeProperty (persistant_display,
 
7126
+                          DefaultRootWindow (persistant_display),
 
7127
+                          XInternAtom (persistant_display,
 
7128
+                                       "PANGO_COVERAGE_WIN",
 
7129
+                                       FALSE),
 
7130
+                          XA_WINDOW,
 
7131
+                          32, PropModeReplace,
 
7132
+                          (guchar *)&xfontmap->coverage_win, 1);
 
7133
+
 
7134
+
 
7135
+         XChangeProperty (persistant_display,
 
7136
+                          xfontmap->coverage_win,
 
7137
+                          XInternAtom (persistant_display,
 
7138
+                                       "PANGO_COVERAGE_WIN",
 
7139
+                                       FALSE),
 
7140
+                          XA_WINDOW,
 
7141
+                          32, PropModeReplace,
 
7142
+                          (guchar *)&xfontmap->coverage_win, 1);
 
7143
+       }
 
7144
+
 
7145
+      XUngrabServer (persistant_display);
 
7146
+
 
7147
+      XSync (persistant_display, False);
 
7148
+      XCloseDisplay (persistant_display);
 
7149
+    }
 
7150
+
 
7151
+  return xfontmap->coverage_win;
 
7152
+}
 
7153
+
 
7154
+/* Find the cached value for the coverage map on the
 
7155
+ * coverage cache window, if it exists. *atom is set
 
7156
+ * to the interned value of str for later use in storing
 
7157
+ * the property if the lookup fails
 
7158
+ */
 
7159
+static PangoCoverage *
 
7160
+pango_x_get_cached_coverage (PangoXFontMap *xfontmap,
 
7161
+                            const char    *str,
 
7162
+                            Atom          *atom)
 
7163
+{
 
7164
+  int (*old_handler) (Display *, XErrorEvent *);
 
7165
+  Window coverage_win;
 
7166
+  PangoCoverage *result = NULL;
 
7167
+
 
7168
+  Atom type;
 
7169
+  int format;
 
7170
+  int tries = 5;
 
7171
+  gulong n_items;
 
7172
+  gulong bytes_after;
 
7173
+  guchar *data;
 
7174
+
 
7175
+  *atom = XInternAtom (xfontmap->display, str, False);
 
7176
+
 
7177
+  while (tries--)
 
7178
+    {
 
7179
+      coverage_win = pango_x_get_coverage_win (xfontmap);
 
7180
+
 
7181
+      if (!coverage_win)
 
7182
+       return NULL;
 
7183
+
 
7184
+      old_handler= XSetErrorHandler (ignore_error);
 
7185
+
 
7186
+      if (XGetWindowProperty (xfontmap->display,
 
7187
+                             coverage_win, *atom,
 
7188
+                             0, G_MAXLONG,
 
7189
+                             False, XA_STRING,
 
7190
+                             &type, &format, &n_items, &bytes_after,
 
7191
+                             &data) == Success
 
7192
+         && type == XA_STRING)
 
7193
+       {
 
7194
+         if (format == 8 && bytes_after == 0)
 
7195
+           result = pango_coverage_from_bytes (data, n_items);
 
7196
+
 
7197
+         XSetErrorHandler (old_handler);
 
7198
+         XFree (data);
 
7199
+         break;
 
7200
+       }
 
7201
+      else
 
7202
+       {
 
7203
+         /* Window disappeared out from under us */
 
7204
+         XSetErrorHandler (old_handler);
 
7205
+         xfontmap->coverage_win = None;
 
7206
+       }
 
7207
+
 
7208
+    }
 
7209
+
 
7210
+  return result;
 
7211
+}
 
7212
+
 
7213
+/* Store the given coverage map on the coverage cache window.
 
7214
+ * atom is the intern'ed value of the string that identifies
 
7215
+ * the cache entry.
 
7216
+ */
 
7217
+static void
 
7218
+pango_x_store_cached_coverage (PangoXFontMap *xfontmap,
 
7219
+                              Atom           atom,
 
7220
+                              PangoCoverage *coverage)
 
7221
+{
 
7222
+  int (*old_handler) (Display *, XErrorEvent *);
 
7223
+  guchar *bytes;
 
7224
+  gint size;
 
7225
+
 
7226
+  int tries = 5;
 
7227
+
 
7228
+  pango_coverage_to_bytes (coverage, &bytes, &size);
 
7229
+
 
7230
+  while (tries--)
 
7231
+    {
 
7232
+      Window coverage_win = pango_x_get_coverage_win (xfontmap);
 
7233
+
 
7234
+      if (!coverage_win)
 
7235
+       break;
 
7236
+
 
7237
+      old_handler = XSetErrorHandler (ignore_error);
 
7238
+      error_occurred = False;
 
7239
+
 
7240
+      XChangeProperty (xfontmap->display,
 
7241
+                      coverage_win,
 
7242
+                      atom,
 
7243
+                      XA_STRING,
 
7244
+                      8, PropModeReplace,
 
7245
+                      bytes, size);
 
7246
+
 
7247
+      XSync (xfontmap->display, False);
 
7248
+      XSetErrorHandler (old_handler);
 
7249
+
 
7250
+      if (!error_occurred)
 
7251
+       break;
 
7252
+      else
 
7253
+       {
 
7254
+         /* Window disappeared out from under us */
 
7255
+         XSetErrorHandler (old_handler);
 
7256
+         xfontmap->coverage_win = None;
 
7257
+       }
 
7258
+    }
 
7259
+
 
7260
+  g_free (bytes);
 
7261
+}
 
7262
+
 
7263
+
 
7264
+static void
 
7265
+pango_x_font_map_read_alias_file (PangoXFontMap *xfontmap,
 
7266
+                                 const char   *filename)
 
7267
+{
 
7268
+  FILE *infile;
 
7269
+  char **xlfds;
 
7270
+  int lineno = 0;
 
7271
+  int i;
 
7272
+  PangoXFace *xface = NULL;
 
7273
+
 
7274
+  infile = fopen (filename, "r");
 
7275
+  if (infile)
 
7276
+    {
 
7277
+      GString *line_buf = g_string_new (NULL);
 
7278
+      GString *tmp_buf = g_string_new (NULL);
 
7279
+      gint lines_read;
 
7280
+
 
7281
+      while ((lines_read = pango_read_line (infile, line_buf)))
 
7282
+       {
 
7283
+         PangoXFamily *font_family;
 
7284
+         PangoStyle style;
 
7285
+         PangoVariant variant;
 
7286
+         PangoWeight weight;
 
7287
+         PangoStretch stretch;
 
7288
+
 
7289
+         const char *p = line_buf->str;
 
7290
+
 
7291
+         lineno += lines_read;
 
7292
+
 
7293
+         if (!pango_skip_space (&p))
 
7294
+           continue;
 
7295
+
 
7296
+         if (!pango_scan_string (&p, tmp_buf))
 
7297
+           goto error;
 
7298
+
 
7299
+         xface = g_object_new (PANGO_X_TYPE_FACE, NULL);
 
7300
+         xface->xlfd = NULL;
 
7301
+         xface->description = pango_font_description_new ();
 
7302
+
 
7303
+         g_string_ascii_down (tmp_buf);
 
7304
+         pango_font_description_set_family (xface->description, tmp_buf->str);
 
7305
+
 
7306
+         if (!pango_scan_string (&p, tmp_buf))
 
7307
+           goto error;
 
7308
+
 
7309
+         if (!pango_parse_style (tmp_buf->str, &style, TRUE))
 
7310
+           goto error;
 
7311
+         pango_font_description_set_style (xface->description, style);
 
7312
+
 
7313
+         if (!pango_scan_string (&p, tmp_buf))
 
7314
+           goto error;
 
7315
+
 
7316
+         if (!pango_parse_variant (tmp_buf->str, &variant, TRUE))
 
7317
+           goto error;
 
7318
+         pango_font_description_set_variant (xface->description, variant);
 
7319
+
 
7320
+         if (!pango_scan_string (&p, tmp_buf))
 
7321
+           goto error;
 
7322
+
 
7323
+         if (!pango_parse_weight (tmp_buf->str, &weight, TRUE))
 
7324
+           goto error;
 
7325
+         pango_font_description_set_weight (xface->description, weight);
 
7326
+
 
7327
+         if (!pango_scan_string (&p, tmp_buf))
 
7328
+           goto error;
 
7329
+
 
7330
+         if (!pango_parse_stretch (tmp_buf->str, &stretch, TRUE))
 
7331
+           goto error;
 
7332
+         pango_font_description_set_stretch (xface->description, stretch);
 
7333
+
 
7334
+         if (!pango_scan_string (&p, tmp_buf))
 
7335
+           goto error;
 
7336
+
 
7337
+         /* Remove excess whitespace and check for complete fields */
 
7338
+
 
7339
+         xlfds = g_strsplit (tmp_buf->str, ",", -1);
 
7340
+         for (i=0; xlfds[i]; i++)
 
7341
+           {
 
7342
+             char *trimmed = pango_trim_string (xlfds[i]);
 
7343
+             g_free (xlfds[i]);
 
7344
+             xlfds[i] = trimmed;
 
7345
+
 
7346
+             if (!pango_x_is_xlfd_font_name (xlfds[i]))
 
7347
+               {
 
7348
+                 g_warning ("XLFD '%s' must be complete (14 fields)", xlfds[i]);
 
7349
+                 g_strfreev (xlfds);
 
7350
+                 goto error;
 
7351
+               }
 
7352
+           }
 
7353
+
 
7354
+         xface->xlfd = g_strjoinv (",", xlfds);
 
7355
+         g_strfreev (xlfds);
 
7356
+
 
7357
+         /* Insert the font entry into our structures */
 
7358
+
 
7359
+         font_family = pango_x_get_font_family (xfontmap,
 
7360
+                                                pango_font_description_get_family (xface->description));
 
7361
+         font_family->font_entries = g_slist_prepend (font_family->font_entries, xface);
 
7362
+         xfontmap->n_fonts++;
 
7363
+
 
7364
+         /* Save space by consolidating duplicated string */
 
7365
+         pango_font_description_set_family_static (xface->description, font_family->family_name);
 
7366
+         xface->cached_fonts = NULL;
 
7367
+         xface->coverage = NULL;
 
7368
+       }
 
7369
+
 
7370
+      if (ferror (infile))
 
7371
+       g_warning ("Error reading '%s': %s", filename, g_strerror(errno));
 
7372
+
 
7373
+      goto out;
 
7374
+
 
7375
+    error:
 
7376
+      if (xface)
 
7377
+       {
 
7378
+         g_free (xface->xlfd);
 
7379
+         if (xface->description)
 
7380
+           pango_font_description_free (xface->description);
 
7381
+         g_free (xface);
 
7382
+       }
 
7383
+
 
7384
+      g_warning ("Error parsing line %d of alias file '%s'", lineno, filename);
 
7385
+
 
7386
+    out:
 
7387
+      g_string_free (tmp_buf, TRUE);
 
7388
+      g_string_free (line_buf, TRUE);
 
7389
+
 
7390
+      fclose (infile);
 
7391
+    }
 
7392
+
 
7393
+}
 
7394
+
 
7395
+static void
 
7396
+pango_x_font_map_read_aliases (PangoXFontMap *xfontmap)
 
7397
+{
 
7398
+  char **files;
 
7399
+  char *user_file;
 
7400
+  char *files_str = pango_config_key_get ("PangoX/AliasFiles");
 
7401
+  int n;
 
7402
+
 
7403
+  if (!files_str)
 
7404
+    {
 
7405
+      user_file = g_build_filename (g_get_user_config_dir (), "pango", "pangox.aliases", NULL);
 
7406
+
 
7407
+      files_str = g_strconcat (user_file, ":" SYSCONFDIR "/pango/pangox.aliases", NULL);
 
7408
+      g_free (user_file);
 
7409
+    }
 
7410
+
 
7411
+  files = pango_split_file_list (files_str);
 
7412
+
 
7413
+  n = 0;
 
7414
+  while (files[n])
 
7415
+    n++;
 
7416
+
 
7417
+  while (n-- > 0)
 
7418
+    pango_x_font_map_read_alias_file (xfontmap, files[n]);
 
7419
+
 
7420
+  g_strfreev (files);
 
7421
+  g_free (files_str);
 
7422
+}
 
7423
+
 
7424
+/*
 
7425
+ * Returns %TRUE if the fontname is a valid XLFD.
 
7426
+ * (It just checks if the number of dashes is 14, and that each
 
7427
+ * field < XLFD_MAX_FIELD_LEN  characters long - that's not in the XLFD but it
 
7428
+ * makes it easier for me).
 
7429
+ */
 
7430
+static gboolean
 
7431
+pango_x_is_xlfd_font_name (const char *fontname)
 
7432
+{
 
7433
+  int i = 0;
 
7434
+  int field_len = 0;
 
7435
+
 
7436
+  while (*fontname)
 
7437
+    {
 
7438
+      if (*fontname++ == '-')
 
7439
+       {
 
7440
+         if (field_len > XLFD_MAX_FIELD_LEN) return FALSE;
 
7441
+         field_len = 0;
 
7442
+         i++;
 
7443
+       }
 
7444
+      else
 
7445
+       field_len++;
 
7446
+    }
 
7447
+
 
7448
+  return (i == 14) ? TRUE : FALSE;
 
7449
+}
 
7450
+
 
7451
+static int
 
7452
+pango_x_get_size (PangoXFontMap *xfontmap, const char *fontname)
 
7453
+{
 
7454
+  char size_buffer[XLFD_MAX_FIELD_LEN];
 
7455
+  int size;
 
7456
+
 
7457
+  if (!pango_x_get_xlfd_field (fontname, XLFD_PIXELS, size_buffer))
 
7458
+    return -1;
 
7459
+
 
7460
+  size = atoi (size_buffer);
 
7461
+  if (size != 0)
 
7462
+    {
 
7463
+      return (int)(0.5 + size * xfontmap->resolution);
 
7464
+    }
 
7465
+  else
 
7466
+    {
 
7467
+      /* We use the trick that scaled bitmaps have a non-zero RESOLUTION_X, while
 
7468
+       * actual scaleable fonts have a zero RESOLUTION_X */
 
7469
+      if (!pango_x_get_xlfd_field (fontname, XLFD_RESOLUTION_X, size_buffer))
 
7470
+       return -1;
 
7471
+
 
7472
+      if (atoi (size_buffer) == 0)
 
7473
+       return 0;
 
7474
+      else
 
7475
+       return -1;
 
7476
+    }
 
7477
+}
 
7478
+
 
7479
+static char *
 
7480
+pango_x_get_identifier (const char *fontname)
 
7481
+{
 
7482
+  const char *p = fontname;
 
7483
+  const char *start;
 
7484
+  int n_dashes = 0;
 
7485
+
 
7486
+  while (n_dashes < 2)
 
7487
+    {
 
7488
+      if (*p == '-')
 
7489
+       n_dashes++;
 
7490
+      p++;
 
7491
+    }
 
7492
+
 
7493
+  start = p;
 
7494
+
 
7495
+  while (n_dashes < 6)
 
7496
+    {
 
7497
+      if (*p == '-')
 
7498
+       n_dashes++;
 
7499
+      p++;
 
7500
+    }
 
7501
+
 
7502
+  return g_strndup (start, (p - 1 - start));
 
7503
+}
 
7504
+
 
7505
+/*
 
7506
+ * This fills the buffer with the specified field from the X Logical Font
 
7507
+ * Description name, and returns it. If fontname is %NULL or the field is
 
7508
+ * longer than XFLD_MAX_FIELD_LEN it returns %NULL.
 
7509
+ * Note: For the charset field, we also return the encoding, e.g. 'iso8859-1'.
 
7510
+ */
 
7511
+static char*
 
7512
+pango_x_get_xlfd_field (const char *fontname,
 
7513
+                       FontField   field_num,
 
7514
+                       char       *buffer)
 
7515
+{
 
7516
+  const char *t1, *t2;
 
7517
+  char *p;
 
7518
+  int countdown, len, num_dashes;
 
7519
+
 
7520
+  if (!fontname)
 
7521
+    return NULL;
 
7522
+
 
7523
+  /* we assume this is a valid fontname...that is, it has 14 fields */
 
7524
+
 
7525
+  countdown = field_num;
 
7526
+  t1 = fontname;
 
7527
+  while (*t1 && (countdown >= 0))
 
7528
+    if (*t1++ == '-')
 
7529
+      countdown--;
 
7530
+
 
7531
+  num_dashes = (field_num == XLFD_CHARSET) ? 2 : 1;
 
7532
+  for (t2 = t1; *t2; t2++)
 
7533
+    {
 
7534
+      if (*t2 == '-' && --num_dashes == 0)
 
7535
+       break;
 
7536
+    }
 
7537
+
 
7538
+  if (t1 != t2)
 
7539
+    {
 
7540
+      /* Check we don't overflow the buffer */
 
7541
+      len = (long) t2 - (long) t1;
 
7542
+      if (len > XLFD_MAX_FIELD_LEN - 1)
 
7543
+       return NULL;
 
7544
+      strncpy (buffer, t1, len);
 
7545
+      buffer[len] = 0;
 
7546
+      /* Convert to lower case. */
 
7547
+      for (p = buffer; *p; p++)
 
7548
+       *p = g_ascii_tolower (*p);
 
7549
+    }
 
7550
+  else
 
7551
+    strcpy(buffer, "(nil)");
 
7552
+
 
7553
+  return buffer;
 
7554
+}
 
7555
+
 
7556
+/* This inserts the given fontname into the FontInfo table.
 
7557
+   If a FontInfo already exists with the same family and foundry, then the
 
7558
+   fontname is added to the FontInfos list of fontnames, else a new FontInfo
 
7559
+   is created and inserted in alphabetical order in the table. */
 
7560
+static void
 
7561
+pango_x_insert_font (PangoXFontMap *xfontmap,
 
7562
+                    const char    *fontname)
 
7563
+{
 
7564
+  PangoFontDescription *description;
 
7565
+  char *family_name;
 
7566
+  PangoStyle style;
 
7567
+  PangoVariant variant;
 
7568
+  PangoWeight weight;
 
7569
+  PangoStretch stretch;
 
7570
+  char family_buffer[XLFD_MAX_FIELD_LEN];
 
7571
+  char weight_buffer[XLFD_MAX_FIELD_LEN];
 
7572
+  char slant_buffer[XLFD_MAX_FIELD_LEN];
 
7573
+  char set_width_buffer[XLFD_MAX_FIELD_LEN];
 
7574
+  GSList *tmp_list;
 
7575
+  PangoXFamily *font_family;
 
7576
+  PangoXFace *xface;
 
7577
+  PangoXSizeInfo *size_info;
 
7578
+  char *identifier;
 
7579
+  unsigned int i;
 
7580
+
 
7581
+  /* First insert the XLFD into the list of XLFDs for the "identifier" - which
 
7582
+   * is the 2-4th fields of the XLFD
 
7583
+   */
 
7584
+  identifier = pango_x_get_identifier (fontname);
 
7585
+  size_info = g_hash_table_lookup (xfontmap->size_infos, identifier);
 
7586
+  if (!size_info)
 
7587
+    {
 
7588
+      size_info = g_slice_new (PangoXSizeInfo);
 
7589
+      size_info->identifier = identifier;
 
7590
+      size_info->xlfds = NULL;
 
7591
+
 
7592
+      g_hash_table_insert (xfontmap->size_infos, identifier, size_info);
 
7593
+    }
 
7594
+  else
 
7595
+    g_free (identifier);
 
7596
+
 
7597
+  size_info->xlfds = g_slist_prepend (size_info->xlfds, g_strdup (fontname));
 
7598
+
 
7599
+  /* Convert the XLFD into a PangoFontDescription */
 
7600
+
 
7601
+  family_name = pango_x_get_xlfd_field (fontname, XLFD_FAMILY, family_buffer);
 
7602
+  if (!family_name)
 
7603
+    return;
 
7604
+
 
7605
+  style = PANGO_STYLE_NORMAL;
 
7606
+  if (pango_x_get_xlfd_field (fontname, XLFD_SLANT, slant_buffer))
 
7607
+    {
 
7608
+      for (i=0; i<G_N_ELEMENTS(styles_map); i++)
 
7609
+       {
 
7610
+         if (!strcmp (styles_map[i].text, slant_buffer))
 
7611
+           {
 
7612
+             style = styles_map[i].value;
 
7613
+             break;
 
7614
+           }
 
7615
+       }
 
7616
+    }
 
7617
+  else
 
7618
+    strcpy (slant_buffer, "*");
 
7619
+
 
7620
+  variant = PANGO_VARIANT_NORMAL;
 
7621
+
 
7622
+  weight = PANGO_WEIGHT_NORMAL;
 
7623
+  if (pango_x_get_xlfd_field (fontname, XLFD_WEIGHT, weight_buffer))
 
7624
+    {
 
7625
+      for (i=0; i<G_N_ELEMENTS(weights_map); i++)
 
7626
+       {
 
7627
+         if (!strcmp (weights_map[i].text, weight_buffer))
 
7628
+           {
 
7629
+             weight = weights_map[i].value;
 
7630
+             break;
 
7631
+           }
 
7632
+       }
 
7633
+    }
 
7634
+  else
 
7635
+    strcpy (weight_buffer, "*");
 
7636
+
 
7637
+  stretch = PANGO_STRETCH_NORMAL;
 
7638
+  if (pango_x_get_xlfd_field (fontname, XLFD_SET_WIDTH, set_width_buffer))
 
7639
+    {
 
7640
+      for (i=0; i<G_N_ELEMENTS(stretches_map); i++)
 
7641
+       {
 
7642
+         if (!strcmp (stretches_map[i].text, set_width_buffer))
 
7643
+           {
 
7644
+             stretch = stretches_map[i].value;
 
7645
+             break;
 
7646
+           }
 
7647
+       }
 
7648
+    }
 
7649
+  else
 
7650
+    strcpy (set_width_buffer, "*");
 
7651
+
 
7652
+  font_family = pango_x_get_font_family (xfontmap, family_name);
 
7653
+
 
7654
+  tmp_list = font_family->font_entries;
 
7655
+  while (tmp_list)
 
7656
+    {
 
7657
+      xface = tmp_list->data;
 
7658
+
 
7659
+      if (pango_font_description_get_style (xface->description) == style &&
 
7660
+         pango_font_description_get_weight (xface->description) == weight &&
 
7661
+         pango_font_description_get_stretch (xface->description) == stretch &&
 
7662
+         pango_font_description_get_variant (xface->description) == variant)
 
7663
+       return;
 
7664
+
 
7665
+      tmp_list = tmp_list->next;
 
7666
+    }
 
7667
+
 
7668
+  description = pango_font_description_new ();
 
7669
+  pango_font_description_set_family_static (description, font_family->family_name);
 
7670
+  pango_font_description_set_style (description, style);
 
7671
+  pango_font_description_set_weight (description, weight);
 
7672
+  pango_font_description_set_stretch (description, stretch);
 
7673
+  pango_font_description_set_variant (description, variant);
 
7674
+
 
7675
+  xface = g_object_new (PANGO_X_TYPE_FACE, NULL);
 
7676
+  xface->description = description;
 
7677
+  xface->cached_fonts = NULL;
 
7678
+  xface->coverage = NULL;
 
7679
+
 
7680
+  xface->xlfd = g_strconcat ("-*-",
 
7681
+                                 family_buffer,
 
7682
+                                 "-",
 
7683
+                                 weight_buffer,
 
7684
+                                 "-",
 
7685
+                                 slant_buffer,
 
7686
+                                 "-",
 
7687
+                                 set_width_buffer,
 
7688
+                                 "--*-*-*-*-*-*-*-*",
 
7689
+                                 NULL);
 
7690
+
 
7691
+  font_family->font_entries = g_slist_append (font_family->font_entries, xface);
 
7692
+  xfontmap->n_fonts++;
 
7693
+}
 
7694
+
 
7695
+/* Compare the tail of a to b */
 
7696
+static gboolean
 
7697
+match_end (const char *a, const char *b)
 
7698
+{
 
7699
+  size_t len_a = strlen (a);
 
7700
+  size_t len_b = strlen (b);
 
7701
+
 
7702
+  if (len_b > len_a)
 
7703
+    return FALSE;
 
7704
+  else
 
7705
+    return (strcmp (a + len_a - len_b, b) == 0);
 
7706
+}
 
7707
+
 
7708
+/* Given a XLFD, charset and size, find the best matching installed X font.
 
7709
+ * The XLFD must be a full XLFD (14 fields)
 
7710
+ */
 
7711
+char *
 
7712
+pango_x_make_matching_xlfd (PangoFontMap *fontmap, char *xlfd, const char *charset, int size)
 
7713
+{
 
7714
+  PangoXFontMap *xfontmap;
 
7715
+
 
7716
+  GSList *tmp_list;
 
7717
+  PangoXSizeInfo *size_info;
 
7718
+  char *identifier;
 
7719
+  char *closest_match = NULL;
 
7720
+  gint match_distance = 0;
 
7721
+  gboolean match_scaleable = FALSE;
 
7722
+  char *result = NULL;
 
7723
+
 
7724
+  char *dash_charset;
 
7725
+
 
7726
+  xfontmap = PANGO_X_FONT_MAP (fontmap);
 
7727
+
 
7728
+  dash_charset = g_strconcat ("-", charset, NULL);
 
7729
+
 
7730
+  if (!match_end (xlfd, "-*-*") && !match_end (xlfd, dash_charset))
 
7731
+    {
 
7732
+      g_free (dash_charset);
 
7733
+      return NULL;
 
7734
+    }
 
7735
+
 
7736
+  identifier = pango_x_get_identifier (xlfd);
 
7737
+  size_info = g_hash_table_lookup (xfontmap->size_infos, identifier);
 
7738
+  g_free (identifier);
 
7739
+
 
7740
+  if (!size_info)
 
7741
+    {
 
7742
+      g_free (dash_charset);
 
7743
+      return NULL;
 
7744
+    }
 
7745
+
 
7746
+  tmp_list = size_info->xlfds;
 
7747
+  while (tmp_list)
 
7748
+    {
 
7749
+      char *tmp_xlfd = tmp_list->data;
 
7750
+
 
7751
+      if (match_end (tmp_xlfd, dash_charset))
 
7752
+       {
 
7753
+         int font_size = pango_x_get_size (xfontmap, tmp_xlfd);
 
7754
+
 
7755
+         if (size != -1)
 
7756
+           {
 
7757
+             int new_distance = (font_size == 0) ? 0 : abs (font_size - size);
 
7758
+
 
7759
+             if (!closest_match ||
 
7760
+                 new_distance < match_distance ||
 
7761
+                 (new_distance < PANGO_SCALE && match_scaleable && font_size != 0))
 
7762
+               {
 
7763
+                 closest_match = tmp_xlfd;
 
7764
+                 match_scaleable = (font_size == 0);
 
7765
+                 match_distance = new_distance;
 
7766
+               }
 
7767
+           }
 
7768
+       }
 
7769
+
 
7770
+      tmp_list = tmp_list->next;
 
7771
+    }
 
7772
+
 
7773
+  if (closest_match)
 
7774
+    {
 
7775
+      if (match_scaleable)
 
7776
+       {
 
7777
+         char *prefix_end, *p;
 
7778
+         int n_dashes = 0;
 
7779
+         int target_size;
 
7780
+         char *prefix;
 
7781
+
 
7782
+         /* OK, we have a match; let's modify it to fit this size and charset */
 
7783
+
 
7784
+         p = closest_match;
 
7785
+         while (n_dashes < 6)
 
7786
+           {
 
7787
+             if (*p == '-')
 
7788
+               n_dashes++;
 
7789
+             p++;
 
7790
+           }
 
7791
+
 
7792
+         prefix_end = p - 1;
 
7793
+
 
7794
+         while (n_dashes < 9)
 
7795
+           {
 
7796
+             if (*p == '-')
 
7797
+               n_dashes++;
 
7798
+             p++;
 
7799
+           }
 
7800
+
 
7801
+         target_size = (int)((double)size / xfontmap->resolution + 0.5);
 
7802
+         prefix = g_strndup (closest_match, prefix_end - closest_match);
 
7803
+         result  = g_strdup_printf ("%s--%d-*-*-*-*-*-%s", prefix, target_size, charset);
 
7804
+         g_free (prefix);
 
7805
+       }
 
7806
+      else
 
7807
+       {
 
7808
+         result = g_strdup (closest_match);
 
7809
+       }
 
7810
+    }
 
7811
+
 
7812
+  g_free (dash_charset);
 
7813
+
 
7814
+  return result;
 
7815
+}
 
7816
+
 
7817
+/**
 
7818
+ * pango_x_font_map_get_font_cache:
 
7819
+ * @font_map: a #PangoXFontMap.
 
7820
+ *
 
7821
+ * Obtains the font cache associated with the given font map.
 
7822
+ *
 
7823
+ * Return value: the #PangoXFontCache of @font_map.
 
7824
+ **/
 
7825
+PangoXFontCache *
 
7826
+pango_x_font_map_get_font_cache (PangoFontMap *font_map)
 
7827
+{
 
7828
+  g_return_val_if_fail (font_map != NULL, NULL);
 
7829
+  g_return_val_if_fail (PANGO_X_IS_FONT_MAP (font_map), NULL);
 
7830
+
 
7831
+  return PANGO_X_FONT_MAP (font_map)->font_cache;
 
7832
+}
 
7833
+
 
7834
+Display *
 
7835
+pango_x_fontmap_get_display (PangoFontMap    *fontmap)
 
7836
+{
 
7837
+  g_return_val_if_fail (fontmap != NULL, NULL);
 
7838
+  g_return_val_if_fail (PANGO_X_IS_FONT_MAP (fontmap), NULL);
 
7839
+
 
7840
+  return PANGO_X_FONT_MAP (fontmap)->display;
 
7841
+}
 
7842
+
 
7843
+void
 
7844
+pango_x_fontmap_cache_add (PangoFontMap    *fontmap,
 
7845
+                          PangoXFont      *xfont)
 
7846
+{
 
7847
+  PangoXFontMap *xfontmap = PANGO_X_FONT_MAP (fontmap);
 
7848
+
 
7849
+  if (xfontmap->freed_fonts->length == MAX_FREED_FONTS)
 
7850
+    {
 
7851
+      PangoXFont *old_font = g_queue_pop_tail (xfontmap->freed_fonts);
 
7852
+      g_object_unref (old_font);
 
7853
+    }
 
7854
+
 
7855
+  g_object_ref (xfont);
 
7856
+  g_queue_push_head (xfontmap->freed_fonts, xfont);
 
7857
+  xfont->in_cache = TRUE;
 
7858
+}
 
7859
+
 
7860
+void
 
7861
+pango_x_fontmap_cache_remove (PangoFontMap    *fontmap,
 
7862
+                             PangoXFont      *xfont)
 
7863
+{
 
7864
+  PangoXFontMap *xfontmap = PANGO_X_FONT_MAP (fontmap);
 
7865
+
 
7866
+  GList *link = g_list_find (xfontmap->freed_fonts->head, xfont);
 
7867
+  if (link == xfontmap->freed_fonts->tail)
 
7868
+    {
 
7869
+      xfontmap->freed_fonts->tail = xfontmap->freed_fonts->tail->prev;
 
7870
+      if (xfontmap->freed_fonts->tail)
 
7871
+       xfontmap->freed_fonts->tail->next = NULL;
 
7872
+    }
 
7873
+
 
7874
+  xfontmap->freed_fonts->head = g_list_delete_link (xfontmap->freed_fonts->head, link);
 
7875
+  xfontmap->freed_fonts->length--;
 
7876
+  xfont->in_cache = FALSE;
 
7877
+
 
7878
+  g_object_unref (xfont);
 
7879
+}
 
7880
+
 
7881
+static void
 
7882
+pango_x_fontmap_cache_clear (PangoXFontMap   *xfontmap)
 
7883
+{
 
7884
+  g_list_foreach (xfontmap->freed_fonts->head, (GFunc)g_object_unref, NULL);
 
7885
+  g_list_free (xfontmap->freed_fonts->head);
 
7886
+  xfontmap->freed_fonts->head = NULL;
 
7887
+  xfontmap->freed_fonts->tail = NULL;
 
7888
+  xfontmap->freed_fonts->length = 0;
 
7889
+}
 
7890
+
 
7891
+
 
7892
+Atom
 
7893
+pango_x_fontmap_atom_from_name (PangoFontMap *fontmap,
 
7894
+                               const char   *atomname)
 
7895
+{
 
7896
+  PangoXFontMap *xfm = PANGO_X_FONT_MAP(fontmap);
 
7897
+  gpointer found;
 
7898
+  Atom atom;
 
7899
+
 
7900
+  found = g_hash_table_lookup (xfm->to_atom_cache, atomname);
 
7901
+
 
7902
+  if (found)
 
7903
+    return (Atom)(GPOINTER_TO_UINT(found));
 
7904
+
 
7905
+  atom = XInternAtom (xfm->display, atomname, FALSE);
 
7906
+  g_hash_table_insert (xfm->to_atom_cache, g_strdup (atomname),
 
7907
+                      (gpointer)atom);
 
7908
+
 
7909
+  return atom;
 
7910
+}
 
7911
+
 
7912
+
 
7913
+const char *
 
7914
+pango_x_fontmap_name_from_atom (PangoFontMap *fontmap,
 
7915
+                               Atom          atom)
 
7916
+{
 
7917
+  PangoXFontMap *xfm = PANGO_X_FONT_MAP(fontmap);
 
7918
+  gpointer found;
 
7919
+  char *name, *name2;
 
7920
+
 
7921
+  found = g_hash_table_lookup (xfm->from_atom_cache, GUINT_TO_POINTER(atom));
 
7922
+
 
7923
+  if (found)
 
7924
+    return (const char *)found;
 
7925
+
 
7926
+  name = XGetAtomName (xfm->display, atom);
 
7927
+  name2 = g_strdup (name);
 
7928
+  XFree (name);
 
7929
+
 
7930
+  g_hash_table_insert (xfm->from_atom_cache, (gpointer)atom, name2);
 
7931
+
 
7932
+  return name2;
 
7933
+}
 
7934
+
 
7935
+/*
 
7936
+ * PangoXFace
 
7937
+ */
 
7938
+
 
7939
+static PangoFontDescription *
 
7940
+pango_x_face_describe (PangoFontFace *face)
 
7941
+{
 
7942
+  PangoXFace *xface = PANGO_X_FACE (face);
 
7943
+
 
7944
+  return pango_font_description_copy (xface->description);
 
7945
+}
 
7946
+
 
7947
+static const char *
 
7948
+pango_x_face_get_face_name (PangoFontFace *face)
 
7949
+{
 
7950
+  PangoXFace *xface = PANGO_X_FACE (face);
 
7951
+
 
7952
+  if (!xface->face_name)
 
7953
+    {
 
7954
+      PangoFontDescription *desc = pango_font_face_describe (face);
 
7955
+
 
7956
+      pango_font_description_unset_fields (desc,
 
7957
+                                          PANGO_FONT_MASK_FAMILY | PANGO_FONT_MASK_SIZE);
 
7958
+
 
7959
+      xface->face_name = pango_font_description_to_string (desc);
 
7960
+      pango_font_description_free (desc);
 
7961
+    }
 
7962
+
 
7963
+  return xface->face_name;
 
7964
+}
 
7965
+
 
7966
+typedef PangoFontFaceClass PangoXFaceClass;
 
7967
+G_DEFINE_TYPE (PangoXFace, pango_x_face, PANGO_TYPE_FONT_FACE);
 
7968
+
 
7969
+static void
 
7970
+pango_x_face_class_init (PangoXFaceClass *class)
 
7971
+{
 
7972
+  class->describe = pango_x_face_describe;
 
7973
+  class->get_face_name = pango_x_face_get_face_name;
 
7974
+}
 
7975
+
 
7976
+static void
 
7977
+pango_x_face_init (PangoXFace *self)
 
7978
+{
 
7979
+}
 
7980
+
 
7981
+/* Cut and paste here to avoid an inter-module dependency */
 
7982
+static PangoCoverageLevel
 
7983
+engine_shape_covers (PangoEngineShape *engine,
 
7984
+                    PangoFont        *font,
 
7985
+                    PangoLanguage    *language,
 
7986
+                    gunichar          wc)
 
7987
+{
 
7988
+  g_return_val_if_fail (PANGO_IS_ENGINE_SHAPE (engine), PANGO_COVERAGE_NONE);
 
7989
+  g_return_val_if_fail (PANGO_IS_FONT (font), PANGO_COVERAGE_NONE);
 
7990
+
 
7991
+  return PANGO_ENGINE_SHAPE_GET_CLASS (engine)->covers (engine,
 
7992
+                                                       font,
 
7993
+                                                       language,
 
7994
+                                                       wc);
 
7995
+}
 
7996
+
 
7997
+PangoCoverage *
 
7998
+pango_x_face_get_coverage (PangoXFace      *xface,
 
7999
+                          PangoFont       *font,
 
8000
+                          PangoLanguage   *language)
 
8001
+{
 
8002
+  PangoXFont *xfont;
 
8003
+  PangoXFontMap *xfontmap = NULL; /* Quiet gcc */
 
8004
+  PangoCoverage *result = NULL;
 
8005
+  Atom atom = None;
 
8006
+
 
8007
+  if (xface)
 
8008
+    {
 
8009
+      if (xface->coverage)
 
8010
+       {
 
8011
+         pango_coverage_ref (xface->coverage);
 
8012
+         return xface->coverage;
 
8013
+       }
 
8014
+
 
8015
+      xfont = (PangoXFont *)font;
 
8016
+
 
8017
+      xfontmap = (PangoXFontMap *)pango_x_font_map_for_display (xfont->display);
 
8018
+      if (xface->xlfd)
 
8019
+       {
 
8020
+         const char *lang_str = language ? pango_language_to_string (language) : "*";
 
8021
+
 
8022
+         char *str = g_strconcat (lang_str, "|", xface->xlfd, NULL);
 
8023
+         result = pango_x_get_cached_coverage (xfontmap, str, &atom);
 
8024
+         g_free (str);
 
8025
+       }
 
8026
+    }
 
8027
+
 
8028
+  if (!result)
 
8029
+    {
 
8030
+      PangoMap *shape_map;
 
8031
+      PangoEngineShape *engine;
 
8032
+      gunichar wc;
 
8033
+
 
8034
+      result = pango_coverage_new ();
 
8035
+
 
8036
+      shape_map = pango_x_get_shaper_map (language);
 
8037
+      engine = (PangoEngineShape *)pango_map_get_engine (shape_map, PANGO_SCRIPT_COMMON);
 
8038
+
 
8039
+      for (wc = 0; wc < 65536; wc++)
 
8040
+       {
 
8041
+         PangoCoverageLevel level;
 
8042
+
 
8043
+         level = engine_shape_covers (engine, font, language, wc);
 
8044
+         if (level != PANGO_COVERAGE_NONE)
 
8045
+           pango_coverage_set (result, wc, level);
 
8046
+       }
 
8047
+
 
8048
+      if (atom)
 
8049
+       pango_x_store_cached_coverage (xfontmap, atom, result);
 
8050
+    }
 
8051
+
 
8052
+  if (xface)
 
8053
+    {
 
8054
+      xface->coverage = result;
 
8055
+      pango_coverage_ref (result);
 
8056
+    }
 
8057
+
 
8058
+  return result;
 
8059
+}
 
8060
+
 
8061
+void
 
8062
+pango_x_face_remove (PangoXFace  *xface,
 
8063
+                    PangoFont   *font)
 
8064
+{
 
8065
+  xface->cached_fonts = g_slist_remove (xface->cached_fonts, font);
 
8066
+}
 
8067
+
 
8068
+/*
 
8069
+ * PangoXFontFamily
 
8070
+ */
 
8071
+
 
8072
+static void
 
8073
+pango_x_family_list_faces (PangoFontFamily  *family,
 
8074
+                          PangoFontFace  ***faces,
 
8075
+                          int              *n_faces)
 
8076
+{
 
8077
+  PangoXFamily *xfamily = PANGO_X_FAMILY (family);
 
8078
+
 
8079
+  *n_faces = g_slist_length (xfamily->font_entries);
 
8080
+  if (faces)
 
8081
+    {
 
8082
+      GSList *tmp_list;
 
8083
+      int i = 0;
 
8084
+
 
8085
+      *faces = g_new (PangoFontFace *, *n_faces);
 
8086
+
 
8087
+      tmp_list = xfamily->font_entries;
 
8088
+      while (tmp_list)
 
8089
+       {
 
8090
+         (*faces)[i++] = tmp_list->data;
 
8091
+         tmp_list = tmp_list->next;
 
8092
+       }
 
8093
+    }
 
8094
+}
 
8095
+
 
8096
+static const char *
 
8097
+pango_x_family_get_name (PangoFontFamily  *family)
 
8098
+{
 
8099
+  PangoXFamily *xfamily = PANGO_X_FAMILY (family);
 
8100
+
 
8101
+  return xfamily->family_name;
 
8102
+}
 
8103
+
 
8104
+G_DEFINE_TYPE (PangoXFamily, pango_x_family, PANGO_TYPE_FONT_FAMILY);
 
8105
+
 
8106
+static void
 
8107
+pango_x_family_class_init (PangoXFamilyClass *klass)
 
8108
+{
 
8109
+  PangoFontFamilyClass *font_family_class = PANGO_FONT_FAMILY_CLASS (klass);
 
8110
+
 
8111
+  font_family_class->list_faces = pango_x_family_list_faces;
 
8112
+  font_family_class->get_name = pango_x_family_get_name;
 
8113
+}
 
8114
+
 
8115
+static void
 
8116
+pango_x_family_init (PangoXFamily *self)
 
8117
+{
 
8118
+}
 
8119
diff --git a/pango/pangox-private.h b/pango/pangox-private.h
 
8120
new file mode 100644
 
8121
index 0000000..e28ab8b
 
8122
--- /dev/null
 
8123
+++ b/pango/pangox-private.h
 
8124
@@ -0,0 +1,127 @@
 
8125
+/* Pango
 
8126
+ * pangox-private.h:
 
8127
+ *
 
8128
+ * Copyright (C) 1999 Red Hat Software
 
8129
+ *
 
8130
+ * This library is free software; you can redistribute it and/or
 
8131
+ * modify it under the terms of the GNU Library General Public
 
8132
+ * License as published by the Free Software Foundation; either
 
8133
+ * version 2 of the License, or (at your option) any later version.
 
8134
+ *
 
8135
+ * This library is distributed in the hope that it will be useful,
 
8136
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
 
8137
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.         See the GNU
 
8138
+ * Library General Public License for more details.
 
8139
+ *
 
8140
+ * You should have received a copy of the GNU Library General Public
 
8141
+ * License along with this library; if not, write to the
 
8142
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 
8143
+ * Boston, MA 02111-1307, USA.
 
8144
+ */
 
8145
+
 
8146
+#ifndef __PANGOX_PRIVATE_H__
 
8147
+#define __PANGOX_PRIVATE_H__
 
8148
+
 
8149
+#include <pango/pangox.h>
 
8150
+#include <pango/pango-modules.h>
 
8151
+
 
8152
+typedef struct _PangoXFace        PangoXFace;
 
8153
+typedef struct _PangoXFont        PangoXFont;
 
8154
+typedef struct _PangoXSubfontInfo PangoXSubfontInfo;
 
8155
+
 
8156
+struct _PangoXFont
 
8157
+{
 
8158
+  PangoFont font;
 
8159
+  Display *display;
 
8160
+
 
8161
+  char **fonts;
 
8162
+  int n_fonts;
 
8163
+  int size;
 
8164
+
 
8165
+  /* hash table mapping from charset-name to array of PangoXSubfont ids,
 
8166
+   * of length n_fonts
 
8167
+   */
 
8168
+  GHashTable *subfonts_by_charset;
 
8169
+
 
8170
+  PangoXSubfontInfo **subfonts;
 
8171
+
 
8172
+  int n_subfonts;
 
8173
+  int max_subfonts;
 
8174
+
 
8175
+  GSList *metrics_by_lang;
 
8176
+
 
8177
+  PangoFontMap *fontmap;
 
8178
+  /* If TRUE, font is in cache of recently unused fonts and not otherwise
 
8179
+   * in use.
 
8180
+   */
 
8181
+  gboolean in_cache;
 
8182
+
 
8183
+  PangoXFace *xface;   /* Used to remove cached fonts */
 
8184
+};
 
8185
+
 
8186
+
 
8187
+#define PANGO_TYPE_X_FONT_MAP              (pango_x_font_map_get_type ())
 
8188
+#define PANGO_X_FONT_MAP(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), PANGO_TYPE_X_FONT_MAP, PangoXFontMap))
 
8189
+#define PANGO_X_FONT_MAP_CLASS(klass)      (G_TYPE_CHECK_CLASS_CAST ((klass), PANGO_TYPE_X_FONT_MAP, PangoXFontMapClass))
 
8190
+#define PANGO_X_IS_FONT_MAP(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), PANGO_TYPE_X_FONT_MAP))
 
8191
+#define PANGO_X_IS_FONT_MAP_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE ((klass), PANGO_TYPE_X_FONT_MAP))
 
8192
+#define PANGO_X_FONT_MAP_GET_CLASS(obj)    (G_TYPE_INSTANCE_GET_CLASS ((obj), PANGO_TYPE_X_FONT_MAP, PangoXFontMapClass))
 
8193
+
 
8194
+typedef struct _PangoXFontMap      PangoXFontMap;
 
8195
+typedef struct _PangoXFontMapClass PangoXFontMapClass;
 
8196
+
 
8197
+struct _PangoXFontMap
 
8198
+{
 
8199
+  PangoFontMap parent_instance;
 
8200
+
 
8201
+  Display *display;
 
8202
+
 
8203
+  PangoXFontCache *font_cache;
 
8204
+  GQueue *freed_fonts;
 
8205
+
 
8206
+  GHashTable *families;
 
8207
+  GHashTable *size_infos;
 
8208
+
 
8209
+  GHashTable *to_atom_cache;
 
8210
+  GHashTable *from_atom_cache;
 
8211
+
 
8212
+  int n_fonts;
 
8213
+
 
8214
+  double resolution;           /* (points / pixel) * PANGO_SCALE */
 
8215
+
 
8216
+  Window coverage_win;
 
8217
+};
 
8218
+
 
8219
+struct _PangoXFontMapClass
 
8220
+{
 
8221
+  PangoFontMapClass parent_class;
 
8222
+};
 
8223
+
 
8224
+GType    pango_x_font_map_get_type   (void) G_GNUC_CONST;
 
8225
+
 
8226
+PangoXFont *   pango_x_font_new                (PangoFontMap    *fontmap,
 
8227
+                                               const char      *spec,
 
8228
+                                               int              size);
 
8229
+PangoMap *     pango_x_get_shaper_map          (PangoLanguage   *language);
 
8230
+char *         pango_x_make_matching_xlfd      (PangoFontMap    *fontmap,
 
8231
+                                               char            *xlfd,
 
8232
+                                               const char      *charset,
 
8233
+                                               int              size);
 
8234
+PangoCoverage *pango_x_face_get_coverage       (PangoXFace      *xface,
 
8235
+                                               PangoFont       *font,
 
8236
+                                               PangoLanguage   *language);
 
8237
+void           pango_x_face_remove             (PangoXFace      *xface,
 
8238
+                                               PangoFont       *font);
 
8239
+
 
8240
+Display *      pango_x_fontmap_get_display     (PangoFontMap    *fontmap);
 
8241
+void           pango_x_fontmap_cache_add       (PangoFontMap    *fontmap,
 
8242
+                                               PangoXFont      *xfont);
 
8243
+void           pango_x_fontmap_cache_remove    (PangoFontMap    *fontmap,
 
8244
+                                               PangoXFont      *xfont);
 
8245
+
 
8246
+Atom           pango_x_fontmap_atom_from_name (PangoFontMap *fontmap,
 
8247
+                                              const char   *atomname);
 
8248
+const char    *pango_x_fontmap_name_from_atom  (PangoFontMap *fontmap,
 
8249
+                                               Atom          atom);
 
8250
+
 
8251
+#endif /* __PANGOX_PRIVATE_H__ */
 
8252
diff --git a/pango/pangox.aliases b/pango/pangox.aliases
 
8253
new file mode 100644
 
8254
index 0000000..9b41aa7
 
8255
--- /dev/null
 
8256
+++ b/pango/pangox.aliases
 
8257
@@ -0,0 +1,220 @@
 
8258
+# File defining aliases of PangoFontDescription to X font set
 
8259
+#
 
8260
+# family style variant weight stretch   XLFD
 
8261
+
 
8262
+sans normal normal normal normal \
 
8263
+  "-*-helvetica-medium-r-normal--*-*-*-*-*-*-*-*,\
 
8264
+   -*-gulim-medium-r-normal--*-*-*-*-*-*-ksc5601.1987-0,\
 
8265
+   -*-clearlyu-medium-r-normal--*-*-*-*-*-*-iso10646-1,\
 
8266
+   -*-fixed-medium-r-normal--*-*-*-*-*-*-*-*,\
 
8267
+   -kaist-iyagi-bold-r-normal--*-*-*-*-*-*-johab-1,\
 
8268
+   -*-song ti-medium-r-normal--*-*-*-*-*-*-*-*,\
 
8269
+   -freetype-unitamil-medium-r-normal--*-*-*-*-*-*-iso10646-tam,\
 
8270
+   -*-devanagari-medium-r-normal--*-*-*-*-*-*-iso10646-dev,\
 
8271
+   -*-gujarati-medium-r-normal--*-*-*-*-*-*-iso10646-guj,\
 
8272
+   -*-gurmukhi-medium-r-normal--*-*-*-*-*-*-iso10646-gur,\
 
8273
+   -*-bengali-medium-r-normal--*-*-*-*-*-*-iso10646-bng,\
 
8274
+   -*-kannada-medium-r-normal--*-*-*-*-*-*-iso10646-kan,\
 
8275
+   -*-burmese-medium-r-normal--*-*-*-*-*-*-iso10646-brm,\
 
8276
+   -*-buginese-medium-r-normal--*-*-*-*-*-*-iso10646-bgn,\
 
8277
+   -*-oriya-medium-r-normal--*-*-*-*-*-*-iso10646-ori,\
 
8278
+   -daewoo-mincho-medium-r-normal--*-*-*-*-*-*-ksc5601.1987-0"
 
8279
+
 
8280
+sans italic normal normal normal \
 
8281
+  "-*-helvetica-medium-o-normal--*-*-*-*-*-*-*-*,\
 
8282
+   -*-gulim-medium-o-normal--*-*-*-*-*-*-ksc5601.1987-0,\
 
8283
+   -*-clearlyu-medium-r-normal--*-*-*-*-*-*-iso10646-1,\
 
8284
+   -*-fixed-medium-r-normal--*-*-*-*-*-*-*-*,\
 
8285
+   -kaist-iyagi-bold-r-normal--*-*-*-*-*-*-johab-1,\
 
8286
+   -*-song ti-medium-r-normal--*-*-*-*-*-*-*-*,\
 
8287
+   -freetype-unitamil-medium-r-normal--*-*-*-*-*-*-iso10646-tam,\
 
8288
+   -*-devanagari-medium-r-normal--*-*-*-*-*-*-iso10646-dev,\
 
8289
+   -*-gujarati-medium-r-normal--*-*-*-*-*-*-iso10646-guj,\
 
8290
+   -*-gurmukhi-medium-r-normal--*-*-*-*-*-*-iso10646-gur,\
 
8291
+   -*-bengali-medium-r-normal--*-*-*-*-*-*-iso10646-bng,\
 
8292
+   -*-kannada-medium-r-normal--*-*-*-*-*-*-iso10646-kan,\
 
8293
+   -*-burmese-medium-r-normal--*-*-*-*-*-*-iso10646-brm,\
 
8294
+   -*-buginese-medium-r-normal--*-*-*-*-*-*-iso10646-bgn,\
 
8295
+   -*-oriya-medium-r-normal--*-*-*-*-*-*-iso10646-ori,\
 
8296
+   -daewoo-mincho-medium-r-normal--*-*-*-*-*-*-ksc5601.1987-0"
 
8297
+
 
8298
+sans normal normal bold normal \
 
8299
+  "-*-helvetica-bold-r-normal--*-*-*-*-*-*-*-*,\
 
8300
+   -*-gulim-bold-r-normal--*-*-*-*-*-*-ksc5601.1987-0,\
 
8301
+   -*-clearlyu-medium-r-normal--*-*-*-*-*-*-iso10646-1,\
 
8302
+   -*-fixed-medium-r-normal--*-*-*-*-*-*-*-*,\
 
8303
+   -kaist-iyagi-bold-r-normal--*-*-*-*-*-*-johab-1,\
 
8304
+   -*-song ti-medium-r-normal--*-*-*-*-*-*-*-*,\
 
8305
+   -freetype-unitamil-medium-r-normal--*-*-*-*-*-*-iso10646-tam,\
 
8306
+   -*-devanagari-medium-r-normal--*-*-*-*-*-*-iso10646-dev,\
 
8307
+   -*-gujarati-medium-r-normal--*-*-*-*-*-*-iso10646-guj,\
 
8308
+   -*-gurmukhi-medium-r-normal--*-*-*-*-*-*-iso10646-gur,\
 
8309
+   -*-bengali-medium-r-normal--*-*-*-*-*-*-iso10646-bng,\
 
8310
+   -*-kannada-medium-r-normal--*-*-*-*-*-*-iso10646-kan,\
 
8311
+   -*-burmese-medium-r-normal--*-*-*-*-*-*-iso10646-brm,\
 
8312
+   -*-buginese-medium-r-normal--*-*-*-*-*-*-iso10646-bgn,\
 
8313
+   -*-oriya-medium-r-normal--*-*-*-*-*-*-iso10646-ori,\
 
8314
+   -daewoo-mincho-medium-r-normal--*-*-*-*-*-*-ksc5601.1987-0"
 
8315
+
 
8316
+sans italic normal bold normal \
 
8317
+  "-*-helvetica-bold-o-normal--*-*-*-*-*-*-*-*,\
 
8318
+   -*-gulim-bold-o-normal--*-*-*-*-*-*-ksc5601.1987-0,\
 
8319
+   -*-clearlyu-medium-r-normal--*-*-*-*-*-*-iso10646-1,\
 
8320
+   -*-fixed-medium-r-normal--*-*-*-*-*-*-*-*,\
 
8321
+   -kaist-iyagi-bold-r-normal--*-*-*-*-*-*-johab-1,\
 
8322
+   -*-song ti-medium-r-normal--*-*-*-*-*-*-*-*,\
 
8323
+   -freetype-unitamil-medium-r-normal--*-*-*-*-*-*-iso10646-tam,\
 
8324
+   -*-devanagari-medium-r-normal--*-*-*-*-*-*-iso10646-dev,\
 
8325
+   -*-gujarati-medium-r-normal--*-*-*-*-*-*-iso10646-guj,\
 
8326
+   -*-gurmukhi-medium-r-normal--*-*-*-*-*-*-iso10646-gur,\
 
8327
+   -*-bengali-medium-r-normal--*-*-*-*-*-*-iso10646-bng,\
 
8328
+   -*-kannada-medium-r-normal--*-*-*-*-*-*-iso10646-kan,\
 
8329
+   -*-burmese-medium-r-normal--*-*-*-*-*-*-iso10646-brm,\
 
8330
+   -*-buginese-medium-r-normal--*-*-*-*-*-*-iso10646-bgn,\
 
8331
+   -*-oriya-medium-r-normal--*-*-*-*-*-*-iso10646-ori,\
 
8332
+   -daewoo-mincho-medium-r-normal--*-*-*-*-*-*-ksc5601.1987-0"
 
8333
+
 
8334
+
 
8335
+serif normal normal normal normal \
 
8336
+  "-*-times-medium-r-normal--*-*-*-*-*-*-*-*,\
 
8337
+   -*-batang-medium-r-normal--*-*-*-*-*-*-ksc5601.1987-0,\
 
8338
+   -*-clearlyu-medium-r-normal--*-*-*-*-*-*-iso10646-1,\
 
8339
+   -*-fixed-medium-r-normal--*-*-*-*-*-*-*-*,\
 
8340
+   -kaist-iyagi-bold-r-normal--*-*-*-*-*-*-johab-1,\
 
8341
+   -*-song ti-medium-r-normal--*-*-*-*-*-*-*-*,\
 
8342
+   -freetype-unitamil-medium-r-normal--*-*-*-*-*-*-iso10646-tam,\
 
8343
+   -*-devanagari-medium-r-normal--*-*-*-*-*-*-iso10646-dev,\
 
8344
+   -*-gujarati-medium-r-normal--*-*-*-*-*-*-iso10646-guj,\
 
8345
+   -*-gurmukhi-medium-r-normal--*-*-*-*-*-*-iso10646-gur,\
 
8346
+   -*-bengali-medium-r-normal--*-*-*-*-*-*-iso10646-bng,\
 
8347
+   -*-kannada-medium-r-normal--*-*-*-*-*-*-iso10646-kan,\
 
8348
+   -*-burmese-medium-r-normal--*-*-*-*-*-*-iso10646-brm,\
 
8349
+   -*-buginese-medium-r-normal--*-*-*-*-*-*-iso10646-bgn,\
 
8350
+   -*-oriya-medium-r-normal--*-*-*-*-*-*-iso10646-ori,\
 
8351
+   -daewoo-mincho-medium-r-normal--*-*-*-*-*-*-ksc5601.1987-0"
 
8352
+
 
8353
+serif italic normal normal normal \
 
8354
+  "-*-times-medium-i-normal--*-*-*-*-*-*-*-*,\
 
8355
+   -*-batang-medium-r-normal--*-*-*-*-*-*-ksc5601.1987-0,\
 
8356
+   -*-clearlyu-medium-r-normal--*-*-*-*-*-*-iso10646-1,\
 
8357
+   -*-fixed-medium-r-normal--*-*-*-*-*-*-*-*,\
 
8358
+   -kaist-iyagi-bold-r-normal--*-*-*-*-*-*-johab-1,\
 
8359
+   -*-song ti-medium-r-normal--*-*-*-*-*-*-*-*,\
 
8360
+   -freetype-unitamil-medium-r-normal--*-*-*-*-*-*-iso10646-tam,\
 
8361
+   -*-devanagari-medium-r-normal--*-*-*-*-*-*-iso10646-dev,\
 
8362
+   -*-gujarati-medium-r-normal--*-*-*-*-*-*-iso10646-guj,\
 
8363
+   -*-gurmukhi-medium-r-normal--*-*-*-*-*-*-iso10646-gur,\
 
8364
+   -*-bengali-medium-r-normal--*-*-*-*-*-*-iso10646-bng,\
 
8365
+   -*-kannada-medium-r-normal--*-*-*-*-*-*-iso10646-kan,\
 
8366
+   -*-burmese-medium-r-normal--*-*-*-*-*-*-iso10646-brm,\
 
8367
+   -*-buginese-medium-r-normal--*-*-*-*-*-*-iso10646-bgn,\
 
8368
+   -*-oriya-medium-r-normal--*-*-*-*-*-*-iso10646-ori,\
 
8369
+   -daewoo-mincho-medium-r-normal--*-*-*-*-*-*-ksc5601.1987-0"
 
8370
+
 
8371
+serif normal normal bold normal \
 
8372
+  "-*-times-bold-r-normal--*-*-*-*-*-*-*-*,\
 
8373
+   -*-batang-bold-r-normal--*-*-*-*-*-*-ksc5601.1987-0,\
 
8374
+   -*-clearlyu-medium-r-normal--*-*-*-*-*-*-iso10646-1,\
 
8375
+   -*-fixed-medium-r-normal--*-*-*-*-*-*-*-*,\
 
8376
+   -kaist-iyagi-bold-r-normal--*-*-*-*-*-*-johab-1,\
 
8377
+   -*-song ti-medium-r-normal--*-*-*-*-*-*-*-*,\
 
8378
+   -freetype-unitamil-medium-r-normal--*-*-*-*-*-*-iso10646-tam,\
 
8379
+   -*-devanagari-medium-r-normal--*-*-*-*-*-*-iso10646-dev,\
 
8380
+   -*-gujarati-medium-r-normal--*-*-*-*-*-*-iso10646-guj,\
 
8381
+   -*-gurmukhi-medium-r-normal--*-*-*-*-*-*-iso10646-gur,\
 
8382
+   -*-bengali-medium-r-normal--*-*-*-*-*-*-iso10646-bng,\
 
8383
+   -*-kannada-medium-r-normal--*-*-*-*-*-*-iso10646-kan,\
 
8384
+   -*-burmese-medium-r-normal--*-*-*-*-*-*-iso10646-brm,\
 
8385
+   -*-buginese-medium-r-normal--*-*-*-*-*-*-iso10646-bgn,\
 
8386
+   -*-oriya-medium-r-normal--*-*-*-*-*-*-iso10646-ori,\
 
8387
+   -daewoo-mincho-medium-r-normal--*-*-*-*-*-*-ksc5601.1987-0"
 
8388
+
 
8389
+serif italic normal bold normal \
 
8390
+  "-*-times-bold-i-normal--*-*-*-*-*-*-*-*,\
 
8391
+   -*-batang-bold-r-normal--*-*-*-*-*-*-ksc5601.1987-0,\
 
8392
+   -*-clearlyu-medium-r-normal--*-*-*-*-*-*-iso10646-1,\
 
8393
+   -*-fixed-medium-r-normal--*-*-*-*-*-*-*-*,\
 
8394
+   -kaist-iyagi-bold-r-normal--*-*-*-*-*-*-johab-1,\
 
8395
+   -*-song ti-medium-r-normal--*-*-*-*-*-*-*-*,\
 
8396
+   -freetype-unitamil-medium-r-normal--*-*-*-*-*-*-iso10646-tam,\
 
8397
+   -*-devanagari-medium-r-normal--*-*-*-*-*-*-iso10646-dev,\
 
8398
+   -*-gujarati-medium-r-normal--*-*-*-*-*-*-iso10646-guj,\
 
8399
+   -*-gurmukhi-medium-r-normal--*-*-*-*-*-*-iso10646-gur,\
 
8400
+   -*-bengali-medium-r-normal--*-*-*-*-*-*-iso10646-bng,\
 
8401
+   -*-kannada-medium-r-normal--*-*-*-*-*-*-iso10646-kan,\
 
8402
+   -*-burmese-medium-r-normal--*-*-*-*-*-*-iso10646-brm,\
 
8403
+   -*-buginese-medium-r-normal--*-*-*-*-*-*-iso10646-bgn,\
 
8404
+   -*-oriya-medium-r-normal--*-*-*-*-*-*-iso10646-ori,\
 
8405
+   -daewoo-mincho-medium-r-normal--*-*-*-*-*-*-ksc5601.1987-0"
 
8406
+
 
8407
+monospace normal normal normal normal \
 
8408
+  "-*-fixed-medium-r-normal--*-*-*-*-*-*-*-*,\
 
8409
+   -*-dotum-medium-r-normal--*-*-*-*-*-*-ksc5601.1987-0,\
 
8410
+   -*-clearlyu-medium-r-normal--*-*-*-*-*-*-iso10646-1,\
 
8411
+   -*-fixed-medium-r-normal--*-*-*-*-*-*-*-*,\
 
8412
+   -kaist-iyagi-bold-r-normal--*-*-*-*-*-*-johab-1,\
 
8413
+   -*-song ti-medium-r-normal--*-*-*-*-*-*-*-*,\
 
8414
+   -freetype-unitamil-medium-r-normal--*-*-*-*-*-*-iso10646-tam,\
 
8415
+   -*-devanagari-medium-r-normal--*-*-*-*-*-*-iso10646-dev,\
 
8416
+   -*-gujarati-medium-r-normal--*-*-*-*-*-*-iso10646-guj,\
 
8417
+   -*-gurmukhi-medium-r-normal--*-*-*-*-*-*-iso10646-gur,\
 
8418
+   -*-bengali-medium-r-normal--*-*-*-*-*-*-iso10646-bng,\
 
8419
+   -*-kannada-medium-r-normal--*-*-*-*-*-*-iso10646-kan,\
 
8420
+   -*-burmese-medium-r-normal--*-*-*-*-*-*-iso10646-brm,\
 
8421
+   -*-buginese-medium-r-normal--*-*-*-*-*-*-iso10646-bgn,\
 
8422
+   -*-oriya-medium-r-normal--*-*-*-*-*-*-iso10646-ori,\
 
8423
+   -daewoo-mincho-medium-r-normal--*-*-*-*-*-*-ksc5601.1987-0"
 
8424
+
 
8425
+monospace italic normal normal normal \
 
8426
+  "-*-fixed-medium-i-normal--*-*-*-*-*-*-*-*,\
 
8427
+   -*-dotum-medium-r-normal--*-*-*-*-*-*-ksc5601.1987-0,\
 
8428
+   -*-clearlyu-medium-r-normal--*-*-*-*-*-*-iso10646-1,\
 
8429
+   -*-fixed-medium-r-normal--*-*-*-*-*-*-*-*,\
 
8430
+   -kaist-iyagi-bold-r-normal--*-*-*-*-*-*-johab-1,\
 
8431
+   -*-song ti-medium-r-normal--*-*-*-*-*-*-*-*,\
 
8432
+   -freetype-unitamil-medium-r-normal--*-*-*-*-*-*-iso10646-tam,\
 
8433
+   -*-devanagari-medium-r-normal--*-*-*-*-*-*-iso10646-dev,\
 
8434
+   -*-gujarati-medium-r-normal--*-*-*-*-*-*-iso10646-guj,\
 
8435
+   -*-gurmukhi-medium-r-normal--*-*-*-*-*-*-iso10646-gur,\
 
8436
+   -*-bengali-medium-r-normal--*-*-*-*-*-*-iso10646-bng,\
 
8437
+   -*-kannada-medium-r-normal--*-*-*-*-*-*-iso10646-kan,\
 
8438
+   -*-burmese-medium-r-normal--*-*-*-*-*-*-iso10646-brm,\
 
8439
+   -*-buginese-medium-r-normal--*-*-*-*-*-*-iso10646-bgn,\
 
8440
+   -*-oriya-medium-r-normal--*-*-*-*-*-*-iso10646-ori,\
 
8441
+   -daewoo-mincho-medium-r-normal--*-*-*-*-*-*-ksc5601.1987-0"
 
8442
+
 
8443
+monospace normal normal bold normal \
 
8444
+  "-*-fixed-bold-r-normal--*-*-*-*-*-*-*-*,\
 
8445
+   -*-dotum-bold-r-normal--*-*-*-*-*-*-ksc5601.1987-0,\
 
8446
+   -*-clearlyu-medium-r-normal--*-*-*-*-*-*-iso10646-1,\
 
8447
+   -*-fixed-medium-r-normal--*-*-*-*-*-*-*-*,\
 
8448
+   -kaist-iyagi-bold-r-normal--*-*-*-*-*-*-johab-1,\
 
8449
+   -*-song ti-medium-r-normal--*-*-*-*-*-*-*-*,\
 
8450
+   -freetype-unitamil-medium-r-normal--*-*-*-*-*-*-iso10646-tam,\
 
8451
+   -*-devanagari-medium-r-normal--*-*-*-*-*-*-iso10646-dev,\
 
8452
+   -*-gujarati-medium-r-normal--*-*-*-*-*-*-iso10646-guj,\
 
8453
+   -*-gurmukhi-medium-r-normal--*-*-*-*-*-*-iso10646-gur,\
 
8454
+   -*-bengali-medium-r-normal--*-*-*-*-*-*-iso10646-bng,\
 
8455
+   -*-kannada-medium-r-normal--*-*-*-*-*-*-iso10646-kan,\
 
8456
+   -*-burmese-medium-r-normal--*-*-*-*-*-*-iso10646-brm,\
 
8457
+   -*-buginese-medium-r-normal--*-*-*-*-*-*-iso10646-bgn,\
 
8458
+   -*-oriya-medium-r-normal--*-*-*-*-*-*-iso10646-ori,\
 
8459
+   -daewoo-mincho-medium-r-normal--*-*-*-*-*-*-ksc5601.1987-0"
 
8460
+
 
8461
+monospace italic normal bold normal \
 
8462
+  "-*-fixed-bold-i-normal--*-*-*-*-*-*-*-*,\
 
8463
+   -*-dotum-bold-r-normal--*-*-*-*-*-*-ksc5601.1987-0,\
 
8464
+   -*-clearlyu-medium-r-normal--*-*-*-*-*-*-iso10646-1,\
 
8465
+   -*-fixed-medium-r-normal--*-*-*-*-*-*-*-*,\
 
8466
+   -kaist-iyagi-bold-r-normal--*-*-*-*-*-*-johab-1,\
 
8467
+   -*-song ti-medium-r-normal--*-*-*-*-*-*-*-*,\
 
8468
+   -freetype-unitamil-medium-r-normal--*-*-*-*-*-*-iso10646-tam,\
 
8469
+   -*-devanagari-medium-r-normal--*-*-*-*-*-*-iso10646-dev,\
 
8470
+   -*-gujarati-medium-r-normal--*-*-*-*-*-*-iso10646-guj,\
 
8471
+   -*-gurmukhi-medium-r-normal--*-*-*-*-*-*-iso10646-gur,\
 
8472
+   -*-bengali-medium-r-normal--*-*-*-*-*-*-iso10646-bng,\
 
8473
+   -*-kannada-medium-r-normal--*-*-*-*-*-*-iso10646-kan,\
 
8474
+   -*-burmese-medium-r-normal--*-*-*-*-*-*-iso10646-brm,\
 
8475
+   -*-buginese-medium-r-normal--*-*-*-*-*-*-iso10646-bgn,\
 
8476
+   -*-oriya-medium-r-normal--*-*-*-*-*-*-iso10646-ori,\
 
8477
+   -daewoo-mincho-medium-r-normal--*-*-*-*-*-*-ksc5601.1987-0"
 
8478
diff --git a/pango/pangox.c b/pango/pangox.c
 
8479
new file mode 100644
 
8480
index 0000000..24bca5e
 
8481
--- /dev/null
 
8482
+++ b/pango/pangox.c
 
8483
@@ -0,0 +1,1790 @@
 
8484
+/* pangox.c: Routines for handling X fonts
 
8485
+ *
 
8486
+ * Copyright (C) 1999 Red Hat Software
 
8487
+ * Copyright (C) 2000 SuSE Linux Ltd
 
8488
+ *
 
8489
+ * This library is free software; you can redistribute it and/or
 
8490
+ * modify it under the terms of the GNU Library General Public
 
8491
+ * License as published by the Free Software Foundation; either
 
8492
+ * version 2 of the License, or (at your option) any later version.
 
8493
+ *
 
8494
+ * This library is distributed in the hope that it will be useful,
 
8495
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
 
8496
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.         See the GNU
 
8497
+ * Library General Public License for more details.
 
8498
+ *
 
8499
+ * You should have received a copy of the GNU Library General Public
 
8500
+ * License along with this library; if not, write to the
 
8501
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 
8502
+ * Boston, MA 02111-1307, USA.
 
8503
+ */
 
8504
+
 
8505
+#include "config.h"
 
8506
+#include <string.h>
 
8507
+#include <stdlib.h>
 
8508
+#include <math.h>
 
8509
+
 
8510
+#include <X11/Xlib.h>
 
8511
+#include "pango-impl-utils.h"
 
8512
+
 
8513
+#undef PANGO_DISABLE_DEPRECATED
 
8514
+
 
8515
+#include "pangox.h"
 
8516
+#include "pangox-private.h"
 
8517
+
 
8518
+#define PANGO_TYPE_X_FONT              (pango_x_font_get_type ())
 
8519
+#define PANGO_X_FONT(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), PANGO_TYPE_X_FONT, PangoXFont))
 
8520
+#define PANGO_X_FONT_CLASS(klass)      (G_TYPE_CHECK_CLASS_CAST ((klass), PANGO_TYPE_X_FONT, PangoXFontClass))
 
8521
+#define PANGO_X_IS_FONT(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), PANGO_TYPE_X_FONT))
 
8522
+#define PANGO_X_IS_FONT_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE ((klass), PANGO_TYPE_X_FONT))
 
8523
+#define PANGO_X_FONT_GET_CLASS(obj)    (G_TYPE_INSTANCE_GET_CLASS ((obj), PANGO_TYPE_X_FONT, PangoXFontClass))
 
8524
+
 
8525
+typedef struct _PangoXFontClass   PangoXFontClass;
 
8526
+typedef struct _PangoXMetricsInfo PangoXMetricsInfo;
 
8527
+typedef struct _PangoXContextInfo PangoXContextInfo;
 
8528
+
 
8529
+struct _PangoXSubfontInfo
 
8530
+{
 
8531
+  char *xlfd;
 
8532
+  XFontStruct *font_struct;
 
8533
+  gboolean     is_1byte;
 
8534
+  int          range_byte1;
 
8535
+  int          range_byte2;
 
8536
+};
 
8537
+
 
8538
+struct _PangoXMetricsInfo
 
8539
+{
 
8540
+  const char *sample_str;
 
8541
+  PangoFontMetrics *metrics;
 
8542
+};
 
8543
+
 
8544
+struct _PangoXContextInfo
 
8545
+{
 
8546
+  PangoGetGCFunc  get_gc_func;
 
8547
+  PangoFreeGCFunc free_gc_func;
 
8548
+};
 
8549
+
 
8550
+struct _PangoXFontClass
 
8551
+{
 
8552
+  PangoFontClass parent_class;
 
8553
+};
 
8554
+
 
8555
+static void pango_x_font_dispose    (GObject         *object);
 
8556
+static void pango_x_font_finalize   (GObject         *object);
 
8557
+
 
8558
+static PangoFontDescription *pango_x_font_describe          (PangoFont        *font);
 
8559
+static PangoCoverage *       pango_x_font_get_coverage      (PangoFont        *font,
 
8560
+                                                            PangoLanguage    *language);
 
8561
+static PangoEngineShape *    pango_x_font_find_shaper       (PangoFont        *font,
 
8562
+                                                            PangoLanguage    *language,
 
8563
+                                                            guint32           ch);
 
8564
+static void                  pango_x_font_get_glyph_extents (PangoFont        *font,
 
8565
+                                                            PangoGlyph        glyph,
 
8566
+                                                            PangoRectangle   *ink_rect,
 
8567
+                                                            PangoRectangle   *logical_rect);
 
8568
+static PangoFontMetrics *    pango_x_font_get_metrics       (PangoFont        *font,
 
8569
+                                                            PangoLanguage    *language);
 
8570
+static PangoFontMap *        pango_x_font_get_font_map      (PangoFont        *font);
 
8571
+
 
8572
+static PangoXSubfontInfo * pango_x_find_subfont    (PangoFont          *font,
 
8573
+                                                   PangoXSubfont       subfont_index);
 
8574
+static XCharStruct *       pango_x_get_per_char    (PangoFont          *font,
 
8575
+                                                   PangoXSubfontInfo  *subfont,
 
8576
+                                                   guint16             char_index);
 
8577
+static gboolean            pango_x_find_glyph      (PangoFont          *font,
 
8578
+                                                   PangoGlyph          glyph,
 
8579
+                                                   PangoXSubfontInfo **subfont_return,
 
8580
+                                                   XCharStruct       **charstruct_return);
 
8581
+static XFontStruct *       pango_x_get_font_struct (PangoFont          *font,
 
8582
+                                                   PangoXSubfontInfo  *info);
 
8583
+
 
8584
+static void     pango_x_get_item_properties (PangoItem      *item,
 
8585
+                                            PangoUnderline *uline,
 
8586
+                                            PangoAttrColor *fg_color,
 
8587
+                                            gboolean       *fg_set,
 
8588
+                                            PangoAttrColor *bg_color,
 
8589
+                                            gboolean       *bg_set);
 
8590
+
 
8591
+static inline PangoXSubfontInfo *
 
8592
+pango_x_find_subfont (PangoFont  *font,
 
8593
+                     PangoXSubfont subfont_index)
 
8594
+{
 
8595
+  PangoXFont *xfont = (PangoXFont *)font;
 
8596
+
 
8597
+  if (subfont_index < 1 || subfont_index > xfont->n_subfonts)
 
8598
+    return NULL;
 
8599
+
 
8600
+  return xfont->subfonts[subfont_index-1];
 
8601
+}
 
8602
+
 
8603
+static void
 
8604
+pango_x_make_font_struct (PangoFont *font, PangoXSubfontInfo *info)
 
8605
+{
 
8606
+  PangoXFont *xfont = (PangoXFont *)font;
 
8607
+  PangoXFontCache *cache;
 
8608
+
 
8609
+  cache = pango_x_font_map_get_font_cache (xfont->fontmap);
 
8610
+
 
8611
+  info->font_struct = pango_x_font_cache_load (cache, info->xlfd);
 
8612
+  if (!info->font_struct)
 
8613
+    {
 
8614
+      g_warning ("Cannot load font for XLFD '%s\n", info->xlfd);
 
8615
+
 
8616
+      /* Prevent a segfault, but probably not much more */
 
8617
+      info->font_struct = pango_x_font_cache_load (cache, "fixed");
 
8618
+    }
 
8619
+
 
8620
+  info->is_1byte = (info->font_struct->min_byte1 == 0 && info->font_struct->max_byte1 == 0);
 
8621
+  info->range_byte1 = info->font_struct->max_byte1 - info->font_struct->min_byte1 + 1;
 
8622
+  info->range_byte2 = info->font_struct->max_char_or_byte2 - info->font_struct->min_char_or_byte2 + 1;
 
8623
+}
 
8624
+
 
8625
+static inline XFontStruct *
 
8626
+pango_x_get_font_struct (PangoFont *font, PangoXSubfontInfo *info)
 
8627
+{
 
8628
+  if (!info->font_struct)
 
8629
+    pango_x_make_font_struct (font, info);
 
8630
+
 
8631
+  return info->font_struct;
 
8632
+}
 
8633
+
 
8634
+static void
 
8635
+free_context_info (PangoXContextInfo *info)
 
8636
+{
 
8637
+  g_slice_free (PangoXContextInfo, info);
 
8638
+}
 
8639
+
 
8640
+static PangoXContextInfo *
 
8641
+get_context_info (PangoContext *context)
 
8642
+{
 
8643
+  PangoXContextInfo *info;
 
8644
+  static GQuark quark = 0;
 
8645
+
 
8646
+  if (G_UNLIKELY (!quark))
 
8647
+    quark = g_quark_from_static_string ("pango-x-info");
 
8648
+
 
8649
+  info =  g_object_get_qdata (G_OBJECT (context), quark);
 
8650
+
 
8651
+  if (G_UNLIKELY (!info))
 
8652
+    {
 
8653
+      info = g_slice_new (PangoXContextInfo);
 
8654
+      info->get_gc_func = NULL;
 
8655
+      info->free_gc_func = NULL;
 
8656
+      g_object_set_qdata_full (G_OBJECT (context),
 
8657
+                              quark,
 
8658
+                              info, (GDestroyNotify)free_context_info);
 
8659
+    }
 
8660
+
 
8661
+  return info;
 
8662
+}
 
8663
+
 
8664
+/**
 
8665
+ * pango_x_get_context:
 
8666
+ * @display: an X display (As returned by XOpenDisplay().)
 
8667
+ *
 
8668
+ * Retrieves a #PangoContext appropriate for rendering with X fonts on the
 
8669
+ * given display.
 
8670
+ *
 
8671
+ * Return value: the new #PangoContext.
 
8672
+ *
 
8673
+ * Deprecated: 1.22: Use pango_x_font_map_for_display() followed by
 
8674
+ * pango_font_map_create_context() instead.
 
8675
+ **/
 
8676
+PangoContext *
 
8677
+pango_x_get_context (Display *display)
 
8678
+{
 
8679
+  return pango_font_map_create_context (pango_x_font_map_for_display (display));
 
8680
+}
 
8681
+
 
8682
+/**
 
8683
+ * pango_x_context_set_funcs:
 
8684
+ * @context: a #PangoContext.
 
8685
+ * @get_gc_func: function called to create a new GC for a given color.
 
8686
+ * @free_gc_func: function called to free a GC created with @get_gc_func.
 
8687
+ *
 
8688
+ * Sets the functions that will be used to get GC's in various colors when
 
8689
+ * rendering layouts with this context.
 
8690
+ **/
 
8691
+void
 
8692
+pango_x_context_set_funcs  (PangoContext     *context,
 
8693
+                           PangoGetGCFunc    get_gc_func,
 
8694
+                           PangoFreeGCFunc   free_gc_func)
 
8695
+{
 
8696
+  PangoXContextInfo *info;
 
8697
+
 
8698
+  g_return_if_fail (context != NULL);
 
8699
+
 
8700
+  info = get_context_info (context);
 
8701
+
 
8702
+  info->get_gc_func = get_gc_func;
 
8703
+  info->free_gc_func = free_gc_func;
 
8704
+}
 
8705
+
 
8706
+G_DEFINE_TYPE (PangoXFont, pango_x_font, PANGO_TYPE_FONT);
 
8707
+
 
8708
+static void
 
8709
+pango_x_font_init (PangoXFont *xfont)
 
8710
+{
 
8711
+  xfont->subfonts_by_charset = g_hash_table_new (g_str_hash, g_str_equal);
 
8712
+
 
8713
+  xfont->n_subfonts = 0;
 
8714
+  xfont->max_subfonts = 1;
 
8715
+
 
8716
+  xfont->subfonts = g_new (PangoXSubfontInfo *, xfont->max_subfonts);
 
8717
+
 
8718
+  xfont->metrics_by_lang = NULL;
 
8719
+
 
8720
+  xfont->size = -1;
 
8721
+  xfont->xface = NULL;
 
8722
+}
 
8723
+
 
8724
+static void
 
8725
+pango_x_font_class_init (PangoXFontClass *class)
 
8726
+{
 
8727
+  GObjectClass *object_class = G_OBJECT_CLASS (class);
 
8728
+  PangoFontClass *font_class = PANGO_FONT_CLASS (class);
 
8729
+
 
8730
+  object_class->finalize = pango_x_font_finalize;
 
8731
+  object_class->dispose = pango_x_font_dispose;
 
8732
+
 
8733
+  font_class->describe = pango_x_font_describe;
 
8734
+  font_class->get_coverage = pango_x_font_get_coverage;
 
8735
+  font_class->find_shaper = pango_x_font_find_shaper;
 
8736
+  font_class->get_glyph_extents = pango_x_font_get_glyph_extents;
 
8737
+  font_class->get_metrics = pango_x_font_get_metrics;
 
8738
+  font_class->get_font_map = pango_x_font_get_font_map;
 
8739
+}
 
8740
+
 
8741
+PangoXFont *
 
8742
+pango_x_font_new (PangoFontMap *fontmap, const char *spec, int size)
 
8743
+{
 
8744
+  PangoXFont *result;
 
8745
+
 
8746
+  g_return_val_if_fail (fontmap != NULL, NULL);
 
8747
+  g_return_val_if_fail (spec != NULL, NULL);
 
8748
+
 
8749
+  result = g_object_new (PANGO_TYPE_X_FONT, NULL);
 
8750
+
 
8751
+  g_assert (result->fontmap == NULL);
 
8752
+  result->fontmap = fontmap;
 
8753
+  g_object_add_weak_pointer (G_OBJECT (result->fontmap), (gpointer *) (gpointer) &result->fontmap);
 
8754
+
 
8755
+  result->display = pango_x_fontmap_get_display (fontmap);
 
8756
+
 
8757
+  result->fonts = g_strsplit(spec, ",", -1);
 
8758
+  for (result->n_fonts = 0; result->fonts[result->n_fonts]; result->n_fonts++)
 
8759
+    ; /* Nothing */
 
8760
+
 
8761
+  result->size = size;
 
8762
+
 
8763
+  return result;
 
8764
+}
 
8765
+
 
8766
+/**
 
8767
+ * pango_x_load_font:
 
8768
+ * @display: the X display.
 
8769
+ * @spec:    a comma-separated list of XLFD's.
 
8770
+ *
 
8771
+ * Loads up a logical font based on a "fontset" style text
 
8772
+ * specification. This is not remotely useful (Pango API's generally
 
8773
+ * work in terms of #PangoFontDescription) and the result may not
 
8774
+ * work correctly in all circumstances. Use of this function should
 
8775
+ * be avoided.
 
8776
+ *
 
8777
+ * Returns: a new #PangoFont.
 
8778
+ */
 
8779
+PangoFont *
 
8780
+pango_x_load_font (Display    *display,
 
8781
+                  const char *spec)
 
8782
+{
 
8783
+  PangoXFont *result;
 
8784
+
 
8785
+  g_return_val_if_fail (display != NULL, NULL);
 
8786
+  g_return_val_if_fail (spec != NULL, NULL);
 
8787
+
 
8788
+  result = pango_x_font_new (pango_x_font_map_for_display (display), spec, -1);
 
8789
+
 
8790
+  return (PangoFont *)result;
 
8791
+}
 
8792
+
 
8793
+
 
8794
+#define FLUSH                                          \
 
8795
+  G_STMT_START {                                       \
 
8796
+    if (charcount)                                     \
 
8797
+      {                                                        \
 
8798
+       XDrawString16 (display, d, gc,                  \
 
8799
+                      glyph_x0, glyph_y0,              \
 
8800
+                      xcharbuffer, charcount);         \
 
8801
+       charcount = 0;                                  \
 
8802
+      }                                                        \
 
8803
+  } G_STMT_END
 
8804
+
 
8805
+
 
8806
+/**
 
8807
+ * pango_x_render:
 
8808
+ * @display: the X display.
 
8809
+ * @d:       the drawable on which to draw string.
 
8810
+ * @gc:      the graphics context.
 
8811
+ * @font:    the font in which to draw the string.
 
8812
+ * @glyphs:  the glyph string to draw.
 
8813
+ * @x:       the x position of start of string (in pixels).
 
8814
+ * @y:       the y position of baseline (in pixels).
 
8815
+ *
 
8816
+ * Renders a #PangoGlyphString onto an X drawable.
 
8817
+ */
 
8818
+void
 
8819
+pango_x_render  (Display           *display,
 
8820
+                Drawable           d,
 
8821
+                GC                 gc,
 
8822
+                PangoFont         *font,
 
8823
+                PangoGlyphString  *glyphs,
 
8824
+                int                x,
 
8825
+                int                y)
 
8826
+{
 
8827
+  Font old_fid = None;
 
8828
+  XFontStruct *fs;
 
8829
+  int i;
 
8830
+  int x_off = 0;
 
8831
+
 
8832
+  /*
 
8833
+   * We collect the characters in this buffer as long as the font does not
 
8834
+   * change.  At that time, or when the buffer runs full, or at the end,
 
8835
+   * then we empty the buffer.
 
8836
+   */
 
8837
+  XChar2b xcharbuffer[1000];
 
8838
+  int glyph_x0 = 0, expected_x = 0; /* x/y initializations are to quiet GCC */
 
8839
+  int glyph_y0 = 0;
 
8840
+  int charcount = 0;
 
8841
+
 
8842
+  g_return_if_fail (display != NULL);
 
8843
+  g_return_if_fail (glyphs != NULL);
 
8844
+
 
8845
+  for (i=0; i<glyphs->num_glyphs; i++)
 
8846
+    {
 
8847
+      PangoGlyph glyph = glyphs->glyphs[i].glyph;
 
8848
+      int glyph_x = x + PANGO_PIXELS (x_off + glyphs->glyphs[i].geometry.x_offset);
 
8849
+      int glyph_y = y + PANGO_PIXELS (glyphs->glyphs[i].geometry.y_offset);
 
8850
+
 
8851
+      /* Clip glyphs into the X coordinate range; we really
 
8852
+       * want to clip glyphs with an ink rect outside the
 
8853
+       * [0,32767] x [0,32767] rectangle but looking up
 
8854
+       * the ink rect here would be a noticeable speed hit.
 
8855
+       * This is close enough.
 
8856
+       */
 
8857
+      if (!(glyph != PANGO_GLYPH_EMPTY &&
 
8858
+           glyph_x >= -16384 && glyph_x <= 32767 &&
 
8859
+           glyph_y >= -16384 && glyph_y <= 32767))
 
8860
+       goto next_glyph;
 
8861
+
 
8862
+      if (G_LIKELY ((glyph & PANGO_GLYPH_UNKNOWN_FLAG) == 0))
 
8863
+       {
 
8864
+         guint16 index = PANGO_X_GLYPH_INDEX (glyph);
 
8865
+         guint16 subfont_index = PANGO_X_GLYPH_SUBFONT (glyph);
 
8866
+         PangoXSubfontInfo *subfont;
 
8867
+
 
8868
+         subfont = pango_x_find_subfont (font, subfont_index);
 
8869
+         if (subfont)
 
8870
+           {
 
8871
+             fs = pango_x_get_font_struct (font, subfont);
 
8872
+             if (!fs)
 
8873
+               continue;
 
8874
+
 
8875
+             if (fs->fid != old_fid)
 
8876
+               {
 
8877
+                 FLUSH;
 
8878
+                 XSetFont (display, gc, fs->fid);
 
8879
+                 old_fid = fs->fid;
 
8880
+               }
 
8881
+
 
8882
+             if (charcount == G_N_ELEMENTS (xcharbuffer) ||
 
8883
+                 (charcount > 0 && (glyph_y != glyph_y0 ||
 
8884
+                                    glyph_x != expected_x)))
 
8885
+               FLUSH;
 
8886
+
 
8887
+             if (charcount == 0)
 
8888
+               {
 
8889
+                 glyph_x0 = glyph_x;
 
8890
+                 glyph_y0 = glyph_y;
 
8891
+               }
 
8892
+             xcharbuffer[charcount].byte1 = index / 256;
 
8893
+             xcharbuffer[charcount].byte2 = index % 256;
 
8894
+
 
8895
+             expected_x = glyph_x + XTextWidth16 (fs, &xcharbuffer[charcount], 1);
 
8896
+
 
8897
+             charcount++;
 
8898
+           } else
 
8899
+             goto unknown_glyph;
 
8900
+       } else {
 
8901
+         PangoFontMetrics *metrics;
 
8902
+         int x1, y1, x2, y2; /* rectangle the character should go inside. */
 
8903
+         int baseline;
 
8904
+         int stroke_thick;
 
8905
+         gunichar wc;
 
8906
+         gboolean invalid_input;
 
8907
+
 
8908
+       unknown_glyph:
 
8909
+         FLUSH;
 
8910
+
 
8911
+         if (font)
 
8912
+           metrics = pango_font_get_metrics (font, NULL);
 
8913
+         else
 
8914
+           metrics = NULL;
 
8915
+
 
8916
+         if (metrics)
 
8917
+           {
 
8918
+             y1 = glyph_y - PANGO_PIXELS (metrics->ascent);
 
8919
+             y2 = y1 + PANGO_PIXELS (metrics->ascent + metrics->descent);
 
8920
+           }
 
8921
+         else
 
8922
+           {
 
8923
+             y2 = glyph_y;
 
8924
+             y1 = y2 - PANGO_UNKNOWN_GLYPH_HEIGHT;
 
8925
+           }
 
8926
+
 
8927
+         x1 = glyph_x;
 
8928
+         x2 = x1 + PANGO_PIXELS (glyphs->glyphs[i].geometry.width);
 
8929
+
 
8930
+         baseline = glyph_y;
 
8931
+         stroke_thick = MAX ((int) (0.5 + 0.025 * (y2 - y1)), 1);
 
8932
+
 
8933
+         if (glyph & PANGO_GLYPH_UNKNOWN_FLAG)
 
8934
+           wc = glyph & ~PANGO_GLYPH_UNKNOWN_FLAG;
 
8935
+         else
 
8936
+           wc = 0;
 
8937
+         invalid_input = glyph == PANGO_GLYPH_INVALID_INPUT || wc > 0x10FFFF;
 
8938
+
 
8939
+         switch (wc)
 
8940
+           {
 
8941
+           case '\n':
 
8942
+           case '\r':
 
8943
+           case 0x2028: /* Line separator */
 
8944
+           case 0x2029: /* Paragraph separator */
 
8945
+             {
 
8946
+               /* Draw a carriage-return thingy */
 
8947
+               PangoRectangle up_stroke;
 
8948
+               PangoRectangle across_stroke;
 
8949
+
 
8950
+               int hborder = (x2 - x1) * 0.1;
 
8951
+               int arrow_height = 0.25 * (y2 - y1);
 
8952
+               int top_border = (y2 - y1) * 0.25;
 
8953
+
 
8954
+               int arrow_x, arrow_width, tmp_height;
 
8955
+
 
8956
+               /* Draw the arrow-head */
 
8957
+
 
8958
+               tmp_height = (stroke_thick % 2 == 0) ? 2 : 1; /* Starting height */
 
8959
+               arrow_height = 2 * ((1 + arrow_height - tmp_height) / 2) + tmp_height; /* Force symmetry */
 
8960
+               arrow_width = 2 + arrow_height - tmp_height;
 
8961
+
 
8962
+               for (arrow_x = x1 + hborder; arrow_x < x1 + hborder + arrow_width; arrow_x++)
 
8963
+                 {
 
8964
+                   XDrawLine (display, d, gc,
 
8965
+                              arrow_x,
 
8966
+                              baseline - stroke_thick + (stroke_thick - tmp_height) / 2,
 
8967
+                              arrow_x,
 
8968
+                              baseline - stroke_thick + (stroke_thick - tmp_height) / 2 + tmp_height - 1);
 
8969
+
 
8970
+                   if ((arrow_x - x1 - hborder) % 2 == 1)
 
8971
+                     tmp_height += 2;
 
8972
+                 }
 
8973
+
 
8974
+               across_stroke.x = arrow_x;
 
8975
+               across_stroke.width = x2 - hborder - arrow_x - stroke_thick;
 
8976
+               across_stroke.y = baseline - stroke_thick;
 
8977
+               across_stroke.height = stroke_thick;
 
8978
+
 
8979
+               XFillRectangle (display, d, gc,
 
8980
+                               across_stroke.x, across_stroke.y,
 
8981
+                               across_stroke.width, across_stroke.height);
 
8982
+
 
8983
+               up_stroke.x = across_stroke.x + across_stroke.width;
 
8984
+               up_stroke.width = stroke_thick;
 
8985
+               up_stroke.y = y1 + top_border;
 
8986
+               up_stroke.height = baseline - up_stroke.y;
 
8987
+
 
8988
+               XFillRectangle (display, d, gc,
 
8989
+                               up_stroke.x, up_stroke.y,
 
8990
+                               up_stroke.width, up_stroke.height);
 
8991
+             }
 
8992
+             break;
 
8993
+
 
8994
+           default:
 
8995
+             {
 
8996
+               /* Perhaps we should draw the box-with-numbers as in the
 
8997
+                * other backends, though we have no guarantee of having
 
8998
+                * an appropriate size of font. Right now, we just
 
8999
+                * draw an empty box. (To draw the box-with-numbers.
 
9000
+                * the backends would have to be changed to use
 
9001
+                * pango_x_font_get_unknown_glyph() rather than
 
9002
+                * pango_x_get_unknown_glyph().
 
9003
+                */
 
9004
+
 
9005
+               int xspace = MAX ((int) (0.5 + 0.1 * (x2 - x1)), 1);
 
9006
+               int yspace = MAX ((int) (0.5 + 0.1 * (y2 - y1)), 1);
 
9007
+
 
9008
+               x1 += xspace;
 
9009
+               x2 -= xspace;
 
9010
+               y1 += yspace;
 
9011
+               y2 -= yspace;
 
9012
+
 
9013
+               XFillRectangle (display, d, gc,
 
9014
+                               x1, y1,
 
9015
+                               x2 - x1, stroke_thick);
 
9016
+               XFillRectangle (display, d, gc,
 
9017
+                               x1, y1 + stroke_thick,
 
9018
+                               stroke_thick, y2 - y1 - 2 * stroke_thick);
 
9019
+               XFillRectangle (display, d, gc,
 
9020
+                               x2 - stroke_thick, y1 + stroke_thick,
 
9021
+                               stroke_thick, y2 - y1 - 2 * stroke_thick);
 
9022
+               XFillRectangle (display, d, gc,
 
9023
+                               x1, y2 - stroke_thick,
 
9024
+                               x2 - x1, stroke_thick);
 
9025
+               if (invalid_input)
 
9026
+                 {
 
9027
+                   XDrawLine (display, d, gc,
 
9028
+                              x1, y1,
 
9029
+                              x2-1, y2-1);
 
9030
+                   XDrawLine (display, d, gc,
 
9031
+                              x2-1, y1,
 
9032
+                              x1, y2-1);
 
9033
+                 }
 
9034
+
 
9035
+               break;
 
9036
+             }
 
9037
+           }
 
9038
+
 
9039
+         pango_font_metrics_unref (metrics);
 
9040
+       }
 
9041
+
 
9042
+    next_glyph:
 
9043
+      x_off += glyphs->glyphs[i].geometry.width;
 
9044
+    }
 
9045
+  FLUSH;
 
9046
+}
 
9047
+
 
9048
+#undef FLUSH
 
9049
+
 
9050
+static void
 
9051
+pango_x_font_get_glyph_extents  (PangoFont      *font,
 
9052
+                                PangoGlyph      glyph,
 
9053
+                                PangoRectangle *ink_rect,
 
9054
+                                PangoRectangle *logical_rect)
 
9055
+{
 
9056
+  XCharStruct *cs;
 
9057
+  PangoXSubfontInfo *subfont;
 
9058
+
 
9059
+  if (glyph == PANGO_GLYPH_EMPTY)
 
9060
+    {
 
9061
+      if (ink_rect)
 
9062
+       ink_rect->x = ink_rect->width = ink_rect->y = ink_rect->height = 0;
 
9063
+      if (logical_rect)
 
9064
+       logical_rect->x = logical_rect->width = logical_rect->y = logical_rect->height = 0;
 
9065
+      return;
 
9066
+    }
 
9067
+  if ((glyph & PANGO_GLYPH_UNKNOWN_FLAG) == 0 && pango_x_find_glyph (font, glyph, &subfont, &cs))
 
9068
+    {
 
9069
+      if (ink_rect)
 
9070
+       {
 
9071
+         ink_rect->x = PANGO_SCALE * cs->lbearing;
 
9072
+         ink_rect->width = PANGO_SCALE * (cs->rbearing - cs->lbearing);
 
9073
+         ink_rect->y = PANGO_SCALE * -cs->ascent;
 
9074
+         ink_rect->height = PANGO_SCALE * (cs->ascent + cs->descent);
 
9075
+       }
 
9076
+      if (logical_rect)
 
9077
+       {
 
9078
+         logical_rect->x = 0;
 
9079
+         logical_rect->width = PANGO_SCALE * cs->width;
 
9080
+         logical_rect->y = - PANGO_SCALE * subfont->font_struct->ascent;
 
9081
+         logical_rect->height = PANGO_SCALE * (subfont->font_struct->ascent + subfont->font_struct->descent);
 
9082
+       }
 
9083
+    }
 
9084
+  else
 
9085
+    {
 
9086
+      PangoFontMetrics *metrics;
 
9087
+      gunichar wc;
 
9088
+      gdouble width_factor;
 
9089
+      int w;
 
9090
+
 
9091
+      if (glyph & PANGO_GLYPH_UNKNOWN_FLAG)
 
9092
+       wc = glyph & (~PANGO_GLYPH_UNKNOWN_FLAG);
 
9093
+      else
 
9094
+       wc = 0;
 
9095
+
 
9096
+      switch (wc)
 
9097
+       {
 
9098
+       case '\n':
 
9099
+       case '\r':
 
9100
+       case 0x2028: /* Line separator */
 
9101
+       case 0x2029: /* Paragraph separator */
 
9102
+         {
 
9103
+#define MAGIC_FACTOR 1.2
 
9104
+
 
9105
+           /* carriage-return thingy */
 
9106
+           width_factor = MAGIC_FACTOR;
 
9107
+           break;
 
9108
+         }
 
9109
+       default:
 
9110
+         {
 
9111
+           /* Unknown glyph square */
 
9112
+           width_factor = 1.0;
 
9113
+         }
 
9114
+       }
 
9115
+
 
9116
+      metrics = pango_font_get_metrics (font, NULL);
 
9117
+
 
9118
+      if (metrics)
 
9119
+       {
 
9120
+         w = metrics->approximate_char_width * width_factor;
 
9121
+         w = PANGO_SCALE * PANGO_PIXELS (w);
 
9122
+
 
9123
+         if (ink_rect)
 
9124
+           {
 
9125
+             ink_rect->x = PANGO_SCALE;
 
9126
+             ink_rect->width = w - 2 * PANGO_SCALE;
 
9127
+             ink_rect->y = - (metrics->ascent - PANGO_SCALE);
 
9128
+             ink_rect->height = metrics->ascent + metrics->descent - 2 * PANGO_SCALE;
 
9129
+           }
 
9130
+         if (logical_rect)
 
9131
+           {
 
9132
+             logical_rect->x = 0;
 
9133
+             logical_rect->width = w;
 
9134
+             logical_rect->y = - metrics->ascent;
 
9135
+             logical_rect->height = metrics->ascent + metrics->descent;
 
9136
+           }
 
9137
+
 
9138
+         pango_font_metrics_unref (metrics);
 
9139
+       }
 
9140
+      else
 
9141
+       {
 
9142
+         if (ink_rect)
 
9143
+           ink_rect->x = ink_rect->y = ink_rect->height = ink_rect->width = 0;
 
9144
+         if (logical_rect)
 
9145
+           logical_rect->x = logical_rect->y = logical_rect->height = logical_rect->width = 0;
 
9146
+       }
 
9147
+    }
 
9148
+}
 
9149
+
 
9150
+static gboolean
 
9151
+get_int_prop (Atom         atom,
 
9152
+             XFontStruct *fs,
 
9153
+             int         *val)
 
9154
+{
 
9155
+  int i;
 
9156
+
 
9157
+  *val = 0;
 
9158
+
 
9159
+  i = 0;
 
9160
+  while (i < fs->n_properties)
 
9161
+    {
 
9162
+      if (fs->properties[i].name == atom)
 
9163
+       {
 
9164
+         *val = fs->properties[i].card32;
 
9165
+         return TRUE;
 
9166
+       }
 
9167
+
 
9168
+      ++i;
 
9169
+    }
 
9170
+
 
9171
+  return FALSE;
 
9172
+}
 
9173
+
 
9174
+/* Call @func with each glyph resulting from shaping @string with each
 
9175
+ * glyph. This duplicates quite a bit of code from pango_itemize. This
 
9176
+ * function should die and we should simply add the ability to specify
 
9177
+ * particular fonts when itemizing.
 
9178
+ */
 
9179
+static void
 
9180
+itemize_string_foreach (PangoFont     *font,
 
9181
+                       PangoLanguage *language,
 
9182
+                       const char    *str,
 
9183
+                       void         (*func) (PangoFont      *font,
 
9184
+                                             PangoGlyphInfo *glyph_info,
 
9185
+                                             gpointer        data),
 
9186
+                       gpointer       data)
 
9187
+{
 
9188
+  const char *start, *p;
 
9189
+  PangoGlyphString *glyph_str = pango_glyph_string_new ();
 
9190
+  PangoEngineShape *shaper, *last_shaper;
 
9191
+  int last_level;
 
9192
+  int i;
 
9193
+  guint8 *embedding_levels;
 
9194
+  PangoDirection base_dir = PANGO_DIRECTION_LTR;
 
9195
+  gboolean finished = FALSE;
 
9196
+
 
9197
+  embedding_levels = pango_log2vis_get_embedding_levels (str, -1, &base_dir);
 
9198
+
 
9199
+  last_shaper = NULL;
 
9200
+  last_level = 0;
 
9201
+
 
9202
+  i = 0;
 
9203
+  p = start = str;
 
9204
+  while (*p || !finished)
 
9205
+    {
 
9206
+      gunichar wc;
 
9207
+
 
9208
+      if (*p)
 
9209
+       {
 
9210
+         wc = g_utf8_get_char (p);
 
9211
+         shaper = pango_font_find_shaper (font, language, wc);
 
9212
+       }
 
9213
+      else
 
9214
+       {
 
9215
+         finished = TRUE;
 
9216
+         shaper = NULL;
 
9217
+       }
 
9218
+
 
9219
+      if (p > start &&
 
9220
+         (finished ||
 
9221
+          (shaper != last_shaper || last_level != embedding_levels[i])))
 
9222
+       {
 
9223
+         PangoAnalysis analysis = { NULL };
 
9224
+         int j;
 
9225
+
 
9226
+         analysis.shape_engine = last_shaper;
 
9227
+         analysis.font = font;
 
9228
+         analysis.language = language;
 
9229
+         analysis.level = last_level;
 
9230
+
 
9231
+         pango_shape (start, p - start, &analysis, glyph_str);
 
9232
+
 
9233
+         for (j = 0; j < glyph_str->num_glyphs; j++)
 
9234
+           (*func) (font, &glyph_str->glyphs[j], data);
 
9235
+
 
9236
+         start = p;
 
9237
+       }
 
9238
+
 
9239
+      if (!finished)
 
9240
+       {
 
9241
+         p = g_utf8_next_char (p);
 
9242
+
 
9243
+         last_shaper = shaper;
 
9244
+         last_level = embedding_levels[i];
 
9245
+         i++;
 
9246
+       }
 
9247
+    }
 
9248
+
 
9249
+  pango_glyph_string_free (glyph_str);
 
9250
+  g_free (embedding_levels);
 
9251
+}
 
9252
+
 
9253
+/* Get composite font metrics for all subfonts in list
 
9254
+ */
 
9255
+static void
 
9256
+get_font_metrics_from_subfonts (PangoFont        *font,
 
9257
+                               GSList           *subfonts,
 
9258
+                               PangoFontMetrics *metrics)
 
9259
+{
 
9260
+  PangoXFont *xfont = (PangoXFont *)font;
 
9261
+  GSList *tmp_list = subfonts;
 
9262
+  gboolean first = TRUE;
 
9263
+  int total_avg_widths = 0;
 
9264
+  int n_avg_widths = 0;
 
9265
+  Atom avg_width_atom;
 
9266
+
 
9267
+  avg_width_atom = pango_x_fontmap_atom_from_name (xfont->fontmap,
 
9268
+                                                  "AVERAGE_WIDTH");
 
9269
+
 
9270
+  metrics->ascent = 0;
 
9271
+  metrics->descent = 0;
 
9272
+
 
9273
+  while (tmp_list)
 
9274
+    {
 
9275
+      PangoXSubfontInfo *subfont = pango_x_find_subfont (font, GPOINTER_TO_UINT (tmp_list->data));
 
9276
+
 
9277
+      if (subfont)
 
9278
+       {
 
9279
+         XFontStruct *fs = pango_x_get_font_struct (font, subfont);
 
9280
+         gint avg_width = 0;
 
9281
+
 
9282
+         if (fs)
 
9283
+           {
 
9284
+             if (first)
 
9285
+               {
 
9286
+                 metrics->ascent = fs->ascent * PANGO_SCALE;
 
9287
+                 metrics->descent = fs->descent * PANGO_SCALE;
 
9288
+                 first = FALSE;
 
9289
+               }
 
9290
+             else
 
9291
+               {
 
9292
+                 metrics->ascent = MAX (fs->ascent * PANGO_SCALE, metrics->ascent);
 
9293
+                 metrics->descent = MAX (fs->descent * PANGO_SCALE, metrics->descent);
 
9294
+               }
 
9295
+
 
9296
+             if (get_int_prop (avg_width_atom, fs, &avg_width))
 
9297
+               {
 
9298
+                 /* convert decipoints --> Pango units.
 
9299
+                  * Resolution is in (points * PANGO_SCALE) / pixel,
 
9300
+                  * avg_width in decipoints.
 
9301
+                  * We want pixels * PANGO_SCALE
 
9302
+                  */
 
9303
+
 
9304
+                 /* Convert to points * PANGO_SCALE */
 
9305
+                 avg_width *= PANGO_SCALE / (double) 10.0;
 
9306
+                 /* Convert to pixels * PANGO_SCALE */
 
9307
+                 avg_width *= (PANGO_SCALE / PANGO_X_FONT_MAP (PANGO_X_FONT (font)->fontmap)->resolution);
 
9308
+               }
 
9309
+             else
 
9310
+               {
 
9311
+                 avg_width = PANGO_SCALE * ((fs->min_bounds.width + fs->max_bounds.width) / 2);
 
9312
+               }
 
9313
+           }
 
9314
+
 
9315
+         if (avg_width)
 
9316
+           {
 
9317
+             total_avg_widths += avg_width;
 
9318
+             n_avg_widths += 1;
 
9319
+           }
 
9320
+       }
 
9321
+      else
 
9322
+       g_warning ("Invalid subfont %d in get_font_metrics_from_subfonts", GPOINTER_TO_UINT (tmp_list->data));
 
9323
+
 
9324
+      tmp_list = tmp_list->next;
 
9325
+    }
 
9326
+
 
9327
+  /* This is pretty darn bogus. */
 
9328
+  if (n_avg_widths)
 
9329
+    metrics->approximate_char_width = total_avg_widths / n_avg_widths;
 
9330
+  else
 
9331
+    metrics->approximate_char_width = PANGO_UNKNOWN_GLYPH_WIDTH * PANGO_SCALE;
 
9332
+  if (metrics->ascent + metrics->descent == 0)
 
9333
+    {
 
9334
+      metrics->ascent = PANGO_UNKNOWN_GLYPH_HEIGHT * PANGO_SCALE;
 
9335
+      metrics->descent = 0;
 
9336
+    }
 
9337
+}
 
9338
+
 
9339
+static void
 
9340
+get_subfonts_foreach (PangoFont      *font,
 
9341
+                     PangoGlyphInfo *glyph_info,
 
9342
+                     gpointer        data)
 
9343
+{
 
9344
+  GSList **subfonts = data;
 
9345
+  PangoGlyph glyph = glyph_info->glyph;
 
9346
+  PangoXSubfont subfont;
 
9347
+
 
9348
+  if (glyph == PANGO_GLYPH_EMPTY)
 
9349
+    return;
 
9350
+
 
9351
+  /* Use an arbitrary subfont for unknown glyphs...*/
 
9352
+  if (glyph & PANGO_GLYPH_UNKNOWN_FLAG)
 
9353
+    {
 
9354
+    if (((PangoXFont *)font)->n_subfonts > 0)
 
9355
+      glyph = PANGO_X_MAKE_GLYPH (1, 0);
 
9356
+    else
 
9357
+      return;
 
9358
+    }
 
9359
+
 
9360
+  subfont = PANGO_X_GLYPH_SUBFONT (glyph);
 
9361
+  if (!g_slist_find (*subfonts, GUINT_TO_POINTER ((guint)subfont)))
 
9362
+    *subfonts = g_slist_prepend (*subfonts, GUINT_TO_POINTER ((guint)subfont));
 
9363
+}
 
9364
+
 
9365
+/* Get composite font metrics for all subfonts resulting from shaping
 
9366
+ * string str with the given font
 
9367
+ */
 
9368
+static void
 
9369
+get_font_metrics_from_string (PangoFont        *font,
 
9370
+                             PangoLanguage    *language,
 
9371
+                             const char       *str,
 
9372
+                             PangoFontMetrics *metrics)
 
9373
+{
 
9374
+  GSList *subfonts = NULL;
 
9375
+
 
9376
+  itemize_string_foreach (font, language, str, get_subfonts_foreach, &subfonts);
 
9377
+  get_font_metrics_from_subfonts (font, subfonts, metrics);
 
9378
+  g_slist_free (subfonts);
 
9379
+}
 
9380
+
 
9381
+static void
 
9382
+average_width_foreach (PangoFont      *font G_GNUC_UNUSED,
 
9383
+                      PangoGlyphInfo *glyph_info,
 
9384
+                      gpointer        data)
 
9385
+{
 
9386
+  int *width = data;
 
9387
+
 
9388
+  *width += glyph_info->geometry.width;
 
9389
+}
 
9390
+
 
9391
+/* Get composite font metrics for all subfonts resulting from shaping
 
9392
+ * string str with the given font
 
9393
+ */
 
9394
+static gdouble
 
9395
+get_total_width_for_string (PangoFont        *font,
 
9396
+                           PangoLanguage    *language,
 
9397
+                           const char       *str)
 
9398
+{
 
9399
+  int width = 0;
 
9400
+
 
9401
+  itemize_string_foreach (font, language, str, average_width_foreach, &width);
 
9402
+
 
9403
+  return width;
 
9404
+}
 
9405
+
 
9406
+static PangoFontMetrics *
 
9407
+pango_x_font_get_metrics (PangoFont        *font,
 
9408
+                         PangoLanguage    *language)
 
9409
+{
 
9410
+  PangoXMetricsInfo *info = NULL; /* Quiet gcc */
 
9411
+  PangoXFont *xfont = (PangoXFont *)font;
 
9412
+  GSList *tmp_list;
 
9413
+
 
9414
+  const char *sample_str = pango_language_get_sample_string (language);
 
9415
+
 
9416
+  tmp_list = xfont->metrics_by_lang;
 
9417
+  while (tmp_list)
 
9418
+    {
 
9419
+      info = tmp_list->data;
 
9420
+
 
9421
+      if (info->sample_str == sample_str)    /* We _don't_ need strcmp */
 
9422
+       break;
 
9423
+
 
9424
+      tmp_list = tmp_list->next;
 
9425
+    }
 
9426
+
 
9427
+  if (!tmp_list)
 
9428
+    {
 
9429
+      PangoFontMetrics *metrics;
 
9430
+
 
9431
+      info = g_slice_new0 (PangoXMetricsInfo);
 
9432
+
 
9433
+      xfont->metrics_by_lang = g_slist_prepend (xfont->metrics_by_lang, info);
 
9434
+
 
9435
+      info->sample_str = sample_str;
 
9436
+      metrics = pango_font_metrics_new ();
 
9437
+
 
9438
+      get_font_metrics_from_string (font, language, sample_str, metrics);
 
9439
+
 
9440
+      metrics->approximate_digit_width = get_total_width_for_string (font, language, "0123456789") / 10;
 
9441
+
 
9442
+      info->metrics = metrics;
 
9443
+    }
 
9444
+
 
9445
+  return pango_font_metrics_ref (info->metrics);
 
9446
+}
 
9447
+
 
9448
+static PangoFontMap *
 
9449
+pango_x_font_get_font_map (PangoFont *font)
 
9450
+{
 
9451
+  PangoXFont *xfont = (PangoXFont *)font;
 
9452
+
 
9453
+  return xfont->fontmap;
 
9454
+}
 
9455
+
 
9456
+/* Compare the tail of a to b */
 
9457
+static gboolean
 
9458
+match_end (const char *a, const char *b)
 
9459
+{
 
9460
+  size_t len_a = strlen (a);
 
9461
+  size_t len_b = strlen (b);
 
9462
+
 
9463
+  if (len_b > len_a)
 
9464
+    return FALSE;
 
9465
+  else
 
9466
+    return (strcmp (a + len_a - len_b, b) == 0);
 
9467
+}
 
9468
+
 
9469
+/* Substitute in a charset into an XLFD. Return the
 
9470
+ * (g_malloc'd) new name, or %NULL if the XLFD cannot
 
9471
+ * match the charset
 
9472
+ */
 
9473
+static char *
 
9474
+name_for_charset (char *xlfd, char *charset)
 
9475
+{
 
9476
+  char *p;
 
9477
+  char *dash_charset = g_strconcat ("-", charset, NULL);
 
9478
+  char *result = NULL;
 
9479
+  int ndashes = 0;
 
9480
+
 
9481
+  for (p = xlfd; *p; p++)
 
9482
+    if (*p == '-')
 
9483
+      ndashes++;
 
9484
+
 
9485
+  if (ndashes == 14) /* Complete XLFD */
 
9486
+    {
 
9487
+      if (match_end (xlfd, "-*-*"))
 
9488
+       {
 
9489
+         result = g_malloc (strlen (xlfd) - 4 + strlen (dash_charset) + 1);
 
9490
+         strncpy (result, xlfd, strlen (xlfd) - 4);
 
9491
+         strcpy (result + strlen (xlfd) - 4, dash_charset);
 
9492
+       }
 
9493
+      if (match_end (xlfd, dash_charset))
 
9494
+       result = g_strdup (xlfd);
 
9495
+    }
 
9496
+  else if (ndashes == 13)
 
9497
+    {
 
9498
+      if (match_end (xlfd, "-*"))
 
9499
+       {
 
9500
+         result = g_malloc (strlen (xlfd) - 2 + strlen (dash_charset) + 1);
 
9501
+         strncpy (result, xlfd, strlen (xlfd) - 2);
 
9502
+         strcpy (result + strlen (xlfd) - 2, dash_charset);
 
9503
+       }
 
9504
+      if (match_end (xlfd, dash_charset))
 
9505
+       result = g_strdup (xlfd);
 
9506
+    }
 
9507
+  else
 
9508
+    {
 
9509
+      if (match_end (xlfd, "*"))
 
9510
+       {
 
9511
+         result = g_malloc (strlen (xlfd) + strlen (dash_charset) + 1);
 
9512
+         strcpy (result, xlfd);
 
9513
+         strcpy (result + strlen (xlfd), dash_charset);
 
9514
+       }
 
9515
+      if (match_end (xlfd, dash_charset))
 
9516
+       result = g_strdup (xlfd);
 
9517
+    }
 
9518
+
 
9519
+  g_free (dash_charset);
 
9520
+  return result;
 
9521
+}
 
9522
+
 
9523
+static PangoXSubfont
 
9524
+pango_x_insert_subfont (PangoFont *font, const char *xlfd)
 
9525
+{
 
9526
+  PangoXFont *xfont = (PangoXFont *)font;
 
9527
+  PangoXSubfontInfo *info;
 
9528
+
 
9529
+  info = g_slice_new (PangoXSubfontInfo);
 
9530
+
 
9531
+  info->xlfd = g_strdup (xlfd);
 
9532
+  info->font_struct = NULL;
 
9533
+
 
9534
+  xfont->n_subfonts++;
 
9535
+
 
9536
+  if (xfont->n_subfonts > xfont->max_subfonts)
 
9537
+    {
 
9538
+      xfont->max_subfonts *= 2;
 
9539
+      xfont->subfonts = g_renew (PangoXSubfontInfo *, xfont->subfonts, xfont->max_subfonts);
 
9540
+    }
 
9541
+
 
9542
+  xfont->subfonts[xfont->n_subfonts - 1] = info;
 
9543
+
 
9544
+  return xfont->n_subfonts;
 
9545
+}
 
9546
+
 
9547
+/**
 
9548
+ * pango_x_list_subfonts:
 
9549
+ * @font: a #PangoFont.
 
9550
+ * @charsets: the charsets to list subfonts for.
 
9551
+ * @n_charsets: the number of charsets in @charsets.
 
9552
+ * @subfont_ids: location to store a pointer to an array of subfont IDs for each found subfont;
 
9553
+ *               the result must be freed using g_free().
 
9554
+ * @subfont_charsets: location to store a pointer to an array of subfont IDs for each found subfont;
 
9555
+ *               the result must be freed using g_free().
 
9556
+ *
 
9557
+ * Lists the subfonts of a given font. The result is ordered first by charset,
 
9558
+ * and then within each charset, by the order of fonts in the font specification.
 
9559
+ *
 
9560
+ * Return value: length of the arrays stored in @subfont_ids and
 
9561
+ * @subfont_charsets.
 
9562
+ **/
 
9563
+int
 
9564
+pango_x_list_subfonts (PangoFont        *font,
 
9565
+                      char            **charsets,
 
9566
+                      int               n_charsets,
 
9567
+                      PangoXSubfont   **subfont_ids,
 
9568
+                      int             **subfont_charsets)
 
9569
+{
 
9570
+  PangoXFont *xfont = (PangoXFont *)font;
 
9571
+  PangoXSubfont **subfont_lists;
 
9572
+  PangoFontMap *fontmap;
 
9573
+  int i, j;
 
9574
+  int n_subfonts = 0;
 
9575
+
 
9576
+  g_return_val_if_fail (font != NULL, 0);
 
9577
+  g_return_val_if_fail (n_charsets == 0 || charsets != NULL, 0);
 
9578
+
 
9579
+  fontmap = pango_x_font_map_for_display (xfont->display);
 
9580
+
 
9581
+  subfont_lists = g_new (PangoXSubfont *, n_charsets);
 
9582
+
 
9583
+  for (j=0; j<n_charsets; j++)
 
9584
+    {
 
9585
+      subfont_lists[j] = g_hash_table_lookup (xfont->subfonts_by_charset, charsets[j]);
 
9586
+      if (!subfont_lists[j])
 
9587
+       {
 
9588
+         subfont_lists[j] = g_new (PangoXSubfont, xfont->n_fonts);
 
9589
+
 
9590
+         for (i = 0; i < xfont->n_fonts; i++)
 
9591
+           {
 
9592
+             PangoXSubfont subfont = 0;
 
9593
+             char *xlfd;
 
9594
+
 
9595
+             if (xfont->size == -1)
 
9596
+               {
 
9597
+                 xlfd = name_for_charset (xfont->fonts[i], charsets[j]);
 
9598
+
 
9599
+                 if (xlfd)
 
9600
+                   {
 
9601
+                     int count;
 
9602
+                     char **names = XListFonts (xfont->display, xlfd, 1, &count);
 
9603
+                     if (count > 0)
 
9604
+                       subfont = pango_x_insert_subfont (font, names[0]);
 
9605
+
 
9606
+                     XFreeFontNames (names);
 
9607
+                     g_free (xlfd);
 
9608
+                   }
 
9609
+               }
 
9610
+             else
 
9611
+               {
 
9612
+                 xlfd = pango_x_make_matching_xlfd (fontmap, xfont->fonts[i], charsets[j], xfont->size);
 
9613
+                 if (xlfd)
 
9614
+                   {
 
9615
+                     subfont = pango_x_insert_subfont (font, xlfd);
 
9616
+                     g_free (xlfd);
 
9617
+                   }
 
9618
+               }
 
9619
+
 
9620
+             subfont_lists[j][i] = subfont;
 
9621
+           }
 
9622
+
 
9623
+         g_hash_table_insert (xfont->subfonts_by_charset, g_strdup (charsets[j]), subfont_lists[j]);
 
9624
+       }
 
9625
+
 
9626
+      for (i = 0; i < xfont->n_fonts; i++)
 
9627
+       if (subfont_lists[j][i])
 
9628
+         n_subfonts++;
 
9629
+    }
 
9630
+
 
9631
+  *subfont_ids = g_new (PangoXSubfont, n_subfonts);
 
9632
+  *subfont_charsets = g_new (int, n_subfonts);
 
9633
+
 
9634
+  n_subfonts = 0;
 
9635
+
 
9636
+  for (j=0; j<n_charsets; j++)
 
9637
+    for (i=0; i<xfont->n_fonts; i++)
 
9638
+      if (subfont_lists[j][i])
 
9639
+       {
 
9640
+         (*subfont_ids)[n_subfonts] = subfont_lists[j][i];
 
9641
+         (*subfont_charsets)[n_subfonts] = j;
 
9642
+         n_subfonts++;
 
9643
+       }
 
9644
+
 
9645
+  g_free (subfont_lists);
 
9646
+
 
9647
+  return n_subfonts;
 
9648
+}
 
9649
+
 
9650
+/**
 
9651
+ * pango_x_has_glyph:
 
9652
+ * @font: a #PangoFont which must be from the X backend.
 
9653
+ * @glyph: the index of a glyph in the font. (Formed
 
9654
+ *         using the #PANGO_X_MAKE_GLYPH macro)
 
9655
+ *
 
9656
+ * Checks if the given glyph is present in a X font.
 
9657
+ *
 
9658
+ * Return value: %TRUE if the glyph is present.
 
9659
+ **/
 
9660
+gboolean
 
9661
+pango_x_has_glyph (PangoFont  *font,
 
9662
+                  PangoGlyph  glyph)
 
9663
+{
 
9664
+  PangoXSubfontInfo *subfont;
 
9665
+  XCharStruct *cs;
 
9666
+
 
9667
+  guint16 char_index = PANGO_X_GLYPH_INDEX (glyph);
 
9668
+  guint16 subfont_index = PANGO_X_GLYPH_SUBFONT (glyph);
 
9669
+
 
9670
+  subfont = pango_x_find_subfont (font, subfont_index);
 
9671
+  if (!subfont)
 
9672
+    return FALSE;
 
9673
+
 
9674
+  cs = pango_x_get_per_char (font, subfont, char_index);
 
9675
+
 
9676
+  if (cs && (cs->lbearing != cs->rbearing || cs->width != 0))
 
9677
+    return TRUE;
 
9678
+  else
 
9679
+    return FALSE;
 
9680
+}
 
9681
+
 
9682
+/**
 
9683
+ * pango_x_font_subfont_xlfd:
 
9684
+ * @font: a #PangoFont which must be from the X backend.
 
9685
+ * @subfont_id: the id of a subfont within the font.
 
9686
+ *
 
9687
+ * Determines the X Logical Font Description for the specified
 
9688
+ * subfont.
 
9689
+ *
 
9690
+ * Return value: A newly-allocated string containing the XLFD for the
 
9691
+ * subfont. This string must be freed with g_free().
 
9692
+ **/
 
9693
+char *
 
9694
+pango_x_font_subfont_xlfd (PangoFont     *font,
 
9695
+                          PangoXSubfont  subfont_id)
 
9696
+{
 
9697
+  PangoXSubfontInfo *subfont;
 
9698
+
 
9699
+  g_return_val_if_fail (font != NULL, NULL);
 
9700
+  g_return_val_if_fail (PANGO_X_IS_FONT (font), NULL);
 
9701
+
 
9702
+  subfont = pango_x_find_subfont (font, subfont_id);
 
9703
+  if (!subfont)
 
9704
+    {
 
9705
+      g_warning ("pango_x_font_subfont_xlfd: Invalid subfont_id specified");
 
9706
+      return NULL;
 
9707
+    }
 
9708
+
 
9709
+  return g_strdup (subfont->xlfd);
 
9710
+}
 
9711
+
 
9712
+static void
 
9713
+pango_x_font_dispose (GObject *object)
 
9714
+{
 
9715
+  PangoXFont *xfont = PANGO_X_FONT (object);
 
9716
+
 
9717
+  /* If the font is not already in the freed-fonts cache, add it,
 
9718
+   * if it is already there, do nothing and the font will be
 
9719
+   * freed.
 
9720
+   */
 
9721
+  if (!xfont->in_cache && xfont->fontmap)
 
9722
+    pango_x_fontmap_cache_add (xfont->fontmap, xfont);
 
9723
+
 
9724
+  G_OBJECT_CLASS (pango_x_font_parent_class)->dispose (object);
 
9725
+}
 
9726
+
 
9727
+
 
9728
+static void
 
9729
+subfonts_foreach (gpointer key, gpointer value, gpointer data G_GNUC_UNUSED)
 
9730
+{
 
9731
+  g_free (key);
 
9732
+  g_free (value);
 
9733
+}
 
9734
+
 
9735
+static void
 
9736
+free_metrics_info (PangoXMetricsInfo *info)
 
9737
+{
 
9738
+  pango_font_metrics_unref (info->metrics);
 
9739
+  g_slice_free (PangoXMetricsInfo, info);
 
9740
+}
 
9741
+
 
9742
+static void
 
9743
+pango_x_font_finalize (GObject *object)
 
9744
+{
 
9745
+  PangoXFont *xfont = (PangoXFont *)object;
 
9746
+  PangoXFontCache *cache = pango_x_font_map_get_font_cache (xfont->fontmap);
 
9747
+
 
9748
+  int i;
 
9749
+
 
9750
+  for (i=0; i<xfont->n_subfonts; i++)
 
9751
+    {
 
9752
+      PangoXSubfontInfo *info = xfont->subfonts[i];
 
9753
+
 
9754
+      g_free (info->xlfd);
 
9755
+
 
9756
+      if (info->font_struct)
 
9757
+       pango_x_font_cache_unload (cache, info->font_struct);
 
9758
+
 
9759
+      g_slice_free (PangoXSubfontInfo, info);
 
9760
+    }
 
9761
+
 
9762
+  g_free (xfont->subfonts);
 
9763
+
 
9764
+  g_hash_table_foreach (xfont->subfonts_by_charset, subfonts_foreach, NULL);
 
9765
+  g_hash_table_destroy (xfont->subfonts_by_charset);
 
9766
+
 
9767
+  g_slist_foreach (xfont->metrics_by_lang, (GFunc)free_metrics_info, NULL);
 
9768
+  g_slist_free (xfont->metrics_by_lang);
 
9769
+
 
9770
+  if (xfont->xface)
 
9771
+    pango_x_face_remove (xfont->xface, (PangoFont *)xfont);
 
9772
+
 
9773
+  g_assert (xfont->fontmap != NULL);
 
9774
+  g_object_remove_weak_pointer (G_OBJECT (xfont->fontmap), (gpointer *) (gpointer) &xfont->fontmap);
 
9775
+  xfont->fontmap = NULL;
 
9776
+
 
9777
+  g_strfreev (xfont->fonts);
 
9778
+
 
9779
+  G_OBJECT_CLASS (pango_x_font_parent_class)->finalize (object);
 
9780
+}
 
9781
+
 
9782
+static PangoFontDescription *
 
9783
+pango_x_font_describe (PangoFont *font)
 
9784
+{
 
9785
+  /* FIXME: this doesn't work for fonts from pango_x_font_load()
 
9786
+   */
 
9787
+  PangoXFont *xfont = (PangoXFont *)font;
 
9788
+
 
9789
+  if (xfont->xface)
 
9790
+    {
 
9791
+      PangoFontDescription *desc = pango_font_face_describe (PANGO_FONT_FACE (xfont->xface));
 
9792
+      pango_font_description_set_size (desc, xfont->size);
 
9793
+
 
9794
+      return desc;
 
9795
+    }
 
9796
+  else
 
9797
+    return NULL;
 
9798
+}
 
9799
+
 
9800
+PangoMap *
 
9801
+pango_x_get_shaper_map (PangoLanguage *language)
 
9802
+{
 
9803
+  static guint engine_type_id = 0;
 
9804
+  static guint render_type_id = 0;
 
9805
+
 
9806
+  if (engine_type_id == 0)
 
9807
+    {
 
9808
+      engine_type_id = g_quark_from_static_string (PANGO_ENGINE_TYPE_SHAPE);
 
9809
+      render_type_id = g_quark_from_static_string (PANGO_RENDER_TYPE_X);
 
9810
+    }
 
9811
+
 
9812
+  return pango_find_map (language, engine_type_id, render_type_id);
 
9813
+}
 
9814
+
 
9815
+static PangoCoverage *
 
9816
+pango_x_font_get_coverage (PangoFont     *font,
 
9817
+                          PangoLanguage *language)
 
9818
+{
 
9819
+  PangoXFont *xfont = (PangoXFont *)font;
 
9820
+
 
9821
+  return pango_x_face_get_coverage (xfont->xface, font, language);
 
9822
+}
 
9823
+
 
9824
+static PangoEngineShape *
 
9825
+pango_x_font_find_shaper (PangoFont     *font G_GNUC_UNUSED,
 
9826
+                         PangoLanguage *language,
 
9827
+                         guint32        ch)
 
9828
+{
 
9829
+  PangoMap *shape_map = NULL;
 
9830
+  PangoScript script;
 
9831
+
 
9832
+  shape_map = pango_x_get_shaper_map (language);
 
9833
+  script = pango_script_for_unichar (ch);
 
9834
+  return (PangoEngineShape *)pango_map_get_engine (shape_map, script);
 
9835
+}
 
9836
+
 
9837
+/* Utility functions */
 
9838
+
 
9839
+static XCharStruct *
 
9840
+pango_x_get_per_char (PangoFont         *font,
 
9841
+                     PangoXSubfontInfo *subfont,
 
9842
+                     guint16            char_index)
 
9843
+{
 
9844
+  XFontStruct *fs;
 
9845
+
 
9846
+  int index;
 
9847
+  int byte1;
 
9848
+  int byte2;
 
9849
+
 
9850
+  fs = pango_x_get_font_struct (font, subfont);
 
9851
+  if (!fs)
 
9852
+    return NULL;
 
9853
+
 
9854
+  if (subfont->is_1byte)
 
9855
+    {
 
9856
+      index = (int)char_index - fs->min_char_or_byte2;
 
9857
+      if (index < 0 || index >= subfont->range_byte2)
 
9858
+       return NULL;
 
9859
+    }
 
9860
+  else
 
9861
+    {
 
9862
+      byte1 = (int)(char_index / 256) - fs->min_byte1;
 
9863
+      if (byte1 < 0 || byte1 >= subfont->range_byte1)
 
9864
+       return NULL;
 
9865
+
 
9866
+      byte2 = (int)(char_index % 256) - fs->min_char_or_byte2;
 
9867
+      if (byte2 < 0 || byte2 >= subfont->range_byte2)
 
9868
+       return NULL;
 
9869
+
 
9870
+      index = byte1 * subfont->range_byte2 + byte2;
 
9871
+    }
 
9872
+
 
9873
+  if (fs->per_char)
 
9874
+    return &fs->per_char[index];
 
9875
+  else
 
9876
+    return &fs->min_bounds;
 
9877
+}
 
9878
+
 
9879
+static gboolean
 
9880
+pango_x_find_glyph (PangoFont *font,
 
9881
+                   PangoGlyph glyph,
 
9882
+                   PangoXSubfontInfo **subfont_return,
 
9883
+                   XCharStruct **charstruct_return)
 
9884
+{
 
9885
+  PangoXSubfontInfo *subfont;
 
9886
+  XCharStruct *cs;
 
9887
+
 
9888
+  guint16 char_index = PANGO_X_GLYPH_INDEX (glyph);
 
9889
+  guint16 subfont_index = PANGO_X_GLYPH_SUBFONT (glyph);
 
9890
+
 
9891
+  subfont = pango_x_find_subfont (font, subfont_index);
 
9892
+  if (!subfont)
 
9893
+    return FALSE;
 
9894
+
 
9895
+  cs = pango_x_get_per_char (font, subfont, char_index);
 
9896
+
 
9897
+  if (cs && (cs->lbearing != cs->rbearing || cs->width != 0))
 
9898
+    {
 
9899
+      if (subfont_return)
 
9900
+       *subfont_return = subfont;
 
9901
+
 
9902
+      if (charstruct_return)
 
9903
+       *charstruct_return = cs;
 
9904
+
 
9905
+      return TRUE;
 
9906
+    }
 
9907
+  else
 
9908
+    return FALSE;
 
9909
+}
 
9910
+
 
9911
+/**
 
9912
+ * pango_x_get_unknown_glyph:
 
9913
+ * @font: a #PangoFont.
 
9914
+ *
 
9915
+ * Returns the index of a glyph suitable for drawing unknown characters;
 
9916
+ * you should generally use PANGO_GET_UNKNOWN_GLYPH() instead,
 
9917
+ * since that may return a glyph that provides a better representation
 
9918
+ * of a particular char. (E.g., by showing hex digits, or a glyph
 
9919
+ * representative of a certain Unicode range.)
 
9920
+ *
 
9921
+ * Return value: a glyph index into @font.
 
9922
+ **/
 
9923
+PangoGlyph
 
9924
+pango_x_get_unknown_glyph (PangoFont *font G_GNUC_UNUSED)
 
9925
+{
 
9926
+  return PANGO_GET_UNKNOWN_GLYPH (0);
 
9927
+}
 
9928
+
 
9929
+/**
 
9930
+ * pango_x_render_layout_line:
 
9931
+ * @display:   the X display.
 
9932
+ * @drawable:  the drawable on which to draw.
 
9933
+ * @gc:        GC to use for uncolored drawing.
 
9934
+ * @line:      a #PangoLayoutLine.
 
9935
+ * @x:         the x position of start of string (in pixels).
 
9936
+ * @y:         the y position of baseline (in pixels).
 
9937
+ *
 
9938
+ * Renders a #PangoLayoutLine onto an X drawable.
 
9939
+ */
 
9940
+void
 
9941
+pango_x_render_layout_line (Display          *display,
 
9942
+                           Drawable          drawable,
 
9943
+                           GC                gc,
 
9944
+                           PangoLayoutLine  *line,
 
9945
+                           int               x,
 
9946
+                           int               y)
 
9947
+{
 
9948
+  GSList *tmp_list = line->runs;
 
9949
+  PangoRectangle overall_rect;
 
9950
+  PangoRectangle logical_rect;
 
9951
+  PangoRectangle ink_rect;
 
9952
+  PangoContext *context = pango_layout_get_context (line->layout);
 
9953
+  PangoXContextInfo *info = get_context_info (context);
 
9954
+
 
9955
+  int x_off = 0;
 
9956
+
 
9957
+  pango_layout_line_get_extents (line,NULL, &overall_rect);
 
9958
+
 
9959
+  while (tmp_list)
 
9960
+    {
 
9961
+      PangoUnderline uline = PANGO_UNDERLINE_NONE;
 
9962
+      PangoLayoutRun *run = tmp_list->data;
 
9963
+      PangoAttrColor fg_color, bg_color;
 
9964
+      gboolean fg_set, bg_set;
 
9965
+      GC fg_gc;
 
9966
+
 
9967
+      tmp_list = tmp_list->next;
 
9968
+
 
9969
+      pango_x_get_item_properties (run->item, &uline, &fg_color, &fg_set, &bg_color, &bg_set);
 
9970
+
 
9971
+      if (fg_set && info->get_gc_func)
 
9972
+       fg_gc = info->get_gc_func (context, &fg_color.color, gc);
 
9973
+      else
 
9974
+       fg_gc = gc;
 
9975
+
 
9976
+      if (uline == PANGO_UNDERLINE_NONE)
 
9977
+       pango_glyph_string_extents (run->glyphs, run->item->analysis.font,
 
9978
+                                   NULL, &logical_rect);
 
9979
+      else
 
9980
+       pango_glyph_string_extents (run->glyphs, run->item->analysis.font,
 
9981
+                                   &ink_rect, &logical_rect);
 
9982
+
 
9983
+      if (bg_set && info->get_gc_func)
 
9984
+       {
 
9985
+         GC bg_gc = info->get_gc_func (context, &bg_color.color, gc);
 
9986
+
 
9987
+         XFillRectangle (display, drawable, bg_gc,
 
9988
+                         x + (x_off + logical_rect.x) / PANGO_SCALE,
 
9989
+                         y + overall_rect.y / PANGO_SCALE,
 
9990
+                         logical_rect.width / PANGO_SCALE,
 
9991
+                         overall_rect.height / PANGO_SCALE);
 
9992
+
 
9993
+         if (info->free_gc_func)
 
9994
+           info->free_gc_func (context, bg_gc);
 
9995
+       }
 
9996
+
 
9997
+      pango_x_render (display, drawable, fg_gc, run->item->analysis.font, run->glyphs,
 
9998
+                     x + x_off / PANGO_SCALE, y);
 
9999
+
 
10000
+      switch (uline)
 
10001
+       {
 
10002
+       case PANGO_UNDERLINE_NONE:
 
10003
+         break;
 
10004
+       case PANGO_UNDERLINE_DOUBLE:
 
10005
+         XDrawLine (display, drawable, fg_gc,
 
10006
+                    x + (x_off + ink_rect.x) / PANGO_SCALE - 1, y + 4,
 
10007
+                    x + (x_off + ink_rect.x + ink_rect.width) / PANGO_SCALE, y + 4);
 
10008
+         /* Fall through */
 
10009
+       case PANGO_UNDERLINE_SINGLE:
 
10010
+         XDrawLine (display, drawable, fg_gc,
 
10011
+                    x + (x_off + ink_rect.x) / PANGO_SCALE - 1, y + 2,
 
10012
+                    x + (x_off + ink_rect.x + ink_rect.width) / PANGO_SCALE, y + 2);
 
10013
+         break;
 
10014
+       case PANGO_UNDERLINE_ERROR:
 
10015
+         {
 
10016
+           int point_x;
 
10017
+           int counter = 0;
 
10018
+           int end_x = x + (x_off + ink_rect.x + ink_rect.width) / PANGO_SCALE;
 
10019
+
 
10020
+           for (point_x = x + PANGO_PIXELS (x_off + ink_rect.x) - 1;
 
10021
+                point_x <= end_x;
 
10022
+                point_x += 2)
 
10023
+             {
 
10024
+               if (counter)
 
10025
+                 XDrawLine (display, drawable, gc,
 
10026
+                            point_x, y + 2, MIN (point_x + 1, end_x), y + 2);
 
10027
+               else
 
10028
+                 XDrawLine (display, drawable, gc,
 
10029
+                            point_x, y + 3, MIN (point_x + 1, end_x), y + 3);
 
10030
+
 
10031
+               counter = (counter + 1) % 2;
 
10032
+             }
 
10033
+         }
 
10034
+         break;
 
10035
+       case PANGO_UNDERLINE_LOW:
 
10036
+         XDrawLine (display, drawable, fg_gc,
 
10037
+                    x + (x_off + ink_rect.x) / PANGO_SCALE - 1, y + (ink_rect.y + ink_rect.height) / PANGO_SCALE + 2,
 
10038
+                    x + (x_off + ink_rect.x + ink_rect.width) / PANGO_SCALE, y + (ink_rect.y + ink_rect.height) / PANGO_SCALE + 2);
 
10039
+         break;
 
10040
+       }
 
10041
+
 
10042
+      if (fg_set && info->get_gc_func && info->free_gc_func)
 
10043
+       info->free_gc_func (context, fg_gc);
 
10044
+
 
10045
+      x_off += logical_rect.width;
 
10046
+    }
 
10047
+}
 
10048
+
 
10049
+/**
 
10050
+ * pango_x_render_layout:
 
10051
+ * @display:   the X display.
 
10052
+ * @drawable:  the drawable on which to draw.
 
10053
+ * @gc:        GC to use for uncolored drawing.
 
10054
+ * @layout:    a #PangoLayout.
 
10055
+ * @x:         the x position of the left of the layout (in pixels).
 
10056
+ * @y:         the y position of the top of the layout (in pixels).
 
10057
+ *
 
10058
+ * Renders a #PangoLayout onto an X drawable.
 
10059
+ */
 
10060
+void
 
10061
+pango_x_render_layout (Display         *display,
 
10062
+                      Drawable         drawable,
 
10063
+                      GC               gc,
 
10064
+                      PangoLayout     *layout,
 
10065
+                      int              x,
 
10066
+                      int              y)
 
10067
+{
 
10068
+  PangoLayoutIter *iter;
 
10069
+
 
10070
+  g_return_if_fail (display != NULL);
 
10071
+  g_return_if_fail (PANGO_IS_LAYOUT (layout));
 
10072
+
 
10073
+  iter = pango_layout_get_iter (layout);
 
10074
+
 
10075
+  do
 
10076
+    {
 
10077
+      PangoRectangle   logical_rect;
 
10078
+      PangoLayoutLine *line;
 
10079
+      int              baseline;
 
10080
+
 
10081
+      line = pango_layout_iter_get_line_readonly (iter);
 
10082
+
 
10083
+      pango_layout_iter_get_line_extents (iter, NULL, &logical_rect);
 
10084
+      baseline = pango_layout_iter_get_baseline (iter);
 
10085
+
 
10086
+      pango_x_render_layout_line (display, drawable, gc,
 
10087
+                                 line,
 
10088
+                                 x + PANGO_PIXELS (logical_rect.x),
 
10089
+                                 y + PANGO_PIXELS (baseline));
 
10090
+    }
 
10091
+  while (pango_layout_iter_next_line (iter));
 
10092
+
 
10093
+  pango_layout_iter_free (iter);
 
10094
+}
 
10095
+
 
10096
+/* This utility function is duplicated here and in pango-layout.c; should it be
 
10097
+ * public? Trouble is - what is the appropriate set of properties?
 
10098
+ */
 
10099
+static void
 
10100
+pango_x_get_item_properties (PangoItem      *item,
 
10101
+                            PangoUnderline *uline,
 
10102
+                            PangoAttrColor *fg_color,
 
10103
+                            gboolean       *fg_set,
 
10104
+                            PangoAttrColor *bg_color,
 
10105
+                            gboolean       *bg_set)
 
10106
+{
 
10107
+  GSList *tmp_list = item->analysis.extra_attrs;
 
10108
+
 
10109
+  if (fg_set)
 
10110
+    *fg_set = FALSE;
 
10111
+
 
10112
+  if (bg_set)
 
10113
+    *bg_set = FALSE;
 
10114
+
 
10115
+  while (tmp_list)
 
10116
+    {
 
10117
+      PangoAttribute *attr = tmp_list->data;
 
10118
+
 
10119
+      switch ((int) attr->klass->type)
 
10120
+       {
 
10121
+       case PANGO_ATTR_UNDERLINE:
 
10122
+         if (uline)
 
10123
+           *uline = ((PangoAttrInt *)attr)->value;
 
10124
+         break;
 
10125
+
 
10126
+       case PANGO_ATTR_FOREGROUND:
 
10127
+         if (fg_color)
 
10128
+           *fg_color = *((PangoAttrColor *)attr);
 
10129
+         if (fg_set)
 
10130
+           *fg_set = TRUE;
 
10131
+
 
10132
+         break;
 
10133
+
 
10134
+       case PANGO_ATTR_BACKGROUND:
 
10135
+         if (bg_color)
 
10136
+           *bg_color = *((PangoAttrColor *)attr);
 
10137
+         if (bg_set)
 
10138
+           *bg_set = TRUE;
 
10139
+
 
10140
+         break;
 
10141
+
 
10142
+       default:
 
10143
+         break;
 
10144
+       }
 
10145
+      tmp_list = tmp_list->next;
 
10146
+    }
 
10147
+}
 
10148
+
 
10149
+/**
 
10150
+ * pango_x_apply_ligatures:
 
10151
+ * @font: unused
 
10152
+ * @subfont: unused
 
10153
+ * @glyphs: unused
 
10154
+ * @n_glyphs: unused
 
10155
+ * @clusters: unused
 
10156
+ *
 
10157
+ * Previously did subfont-specific ligation. Now a no-op.
 
10158
+ *
 
10159
+ * Return value: %FALSE, always.
 
10160
+ */
 
10161
+gboolean
 
10162
+pango_x_apply_ligatures (PangoFont     *font G_GNUC_UNUSED,
 
10163
+                        PangoXSubfont  subfont_id G_GNUC_UNUSED,
 
10164
+                        gunichar     **glyphs G_GNUC_UNUSED,
 
10165
+                        int           *n_glyphs G_GNUC_UNUSED,
 
10166
+                        int           **clusters G_GNUC_UNUSED)
 
10167
+{
 
10168
+  return FALSE;
 
10169
+}
 
10170
+
 
10171
+/**
 
10172
+ * pango_x_find_first_subfont:
 
10173
+ * @font: A #PangoFont.
 
10174
+ * @rfont: A pointer to a #PangoXSubfont.
 
10175
+ * @charsets: An array of charsets.
 
10176
+ * @n_charsets: The number of charsets in @charsets.
 
10177
+ *
 
10178
+ * Looks for subfonts with the @charset charset,
 
10179
+ * in @font, and puts the first one in *@rfont.
 
10180
+ *
 
10181
+ * Return value: %TRUE if *@rfont now contains a font.
 
10182
+ */
 
10183
+gboolean
 
10184
+pango_x_find_first_subfont (PangoFont      *font,
 
10185
+                           char          **charsets,
 
10186
+                           int             n_charsets,
 
10187
+                           PangoXSubfont  *rfont)
 
10188
+{
 
10189
+  int n_subfonts;
 
10190
+  gboolean result = FALSE;
 
10191
+  PangoXSubfont *subfonts;
 
10192
+  int *subfont_charsets;
 
10193
+
 
10194
+  g_return_val_if_fail (font, 0);
 
10195
+  g_return_val_if_fail (charsets, 0);
 
10196
+  g_return_val_if_fail (rfont, 0);
 
10197
+
 
10198
+  n_subfonts = pango_x_list_subfonts (font, charsets, n_charsets,
 
10199
+                                     &subfonts, &subfont_charsets);
 
10200
+
 
10201
+  if (n_subfonts > 0)
 
10202
+    {
 
10203
+      *rfont = subfonts[0];
 
10204
+      result = TRUE;
 
10205
+    }
 
10206
+
 
10207
+  g_free (subfonts);
 
10208
+  g_free (subfont_charsets);
 
10209
+  return result;
 
10210
+}
 
10211
+
 
10212
+/**
 
10213
+ * pango_x_fallback_shape:
 
10214
+ * @font: A #PangoFont.
 
10215
+ * @glyphs: A pointer to a #PangoGlyphString.
 
10216
+ * @text: UTF-8 string.
 
10217
+ * @n_chars: Number of UTF-8 seqs in @text.
 
10218
+ *
 
10219
+ * This is a simple fallback shaper, that can be used
 
10220
+ * if no subfont that supports a given script is found.
 
10221
+ * For every character in @text, it puts the unknown glyph.
 
10222
+ */
 
10223
+void
 
10224
+pango_x_fallback_shape (PangoFont        *font,
 
10225
+                       PangoGlyphString *glyphs,
 
10226
+                       const char       *text,
 
10227
+                       int               n_chars)
 
10228
+{
 
10229
+  PangoGlyph unknown_glyph = pango_x_get_unknown_glyph (font);
 
10230
+  PangoRectangle logical_rect;
 
10231
+  const char *p;
 
10232
+  int i;
 
10233
+
 
10234
+  g_return_if_fail (font);
 
10235
+  g_return_if_fail (glyphs);
 
10236
+  g_return_if_fail (text);
 
10237
+  g_return_if_fail (n_chars >= 0);
 
10238
+
 
10239
+  pango_font_get_glyph_extents (font, unknown_glyph, NULL, &logical_rect);
 
10240
+  pango_glyph_string_set_size (glyphs, n_chars);
 
10241
+  p = text;
 
10242
+  for (i = 0; i < n_chars; i++)
 
10243
+    {
 
10244
+      glyphs->glyphs[i].glyph = unknown_glyph;
 
10245
+
 
10246
+      glyphs->glyphs[i].geometry.x_offset = 0;
 
10247
+      glyphs->glyphs[i].geometry.y_offset = 0;
 
10248
+      glyphs->glyphs[i].geometry.width = logical_rect.width;
 
10249
+
 
10250
+      glyphs->log_clusters[i] = p - text;
 
10251
+
 
10252
+      p = g_utf8_next_char (p);
 
10253
+    }
 
10254
+}
 
10255
+
 
10256
+/**
 
10257
+ * pango_x_font_get_unknown_glyph:
 
10258
+ * @font: a #PangoFont.
 
10259
+ * @wc: the Unicode character for which a glyph is needed.
 
10260
+ *
 
10261
+ * Returns the index of a glyph suitable for drawing @wc as an
 
10262
+ * unknown character.
 
10263
+ *
 
10264
+ * Use PANGO_GET_UNKNOWN_GLYPH() instead.
 
10265
+ *
 
10266
+ * Return value: a glyph index into @font.
 
10267
+ */
 
10268
+PangoGlyph
 
10269
+pango_x_font_get_unknown_glyph (PangoFont *font G_GNUC_UNUSED,
 
10270
+                               gunichar   wc)
 
10271
+{
 
10272
+  return PANGO_GET_UNKNOWN_GLYPH (wc);
 
10273
+}
 
10274
diff --git a/pango/pangox.def b/pango/pangox.def
 
10275
new file mode 100644
 
10276
index 0000000..36d7e3f
 
10277
--- /dev/null
 
10278
+++ b/pango/pangox.def
 
10279
@@ -0,0 +1,36 @@
 
10280
+EXPORTS
 
10281
+pango_x_apply_ligatures
 
10282
+pango_x_context_set_funcs
 
10283
+pango_x_face_get_coverage
 
10284
+pango_x_face_get_type
 
10285
+pango_x_face_remove
 
10286
+pango_x_fallback_shape
 
10287
+pango_x_family_get_type
 
10288
+pango_x_find_first_subfont
 
10289
+pango_x_font_cache_free
 
10290
+pango_x_font_cache_load
 
10291
+pango_x_font_cache_new
 
10292
+pango_x_font_cache_unload
 
10293
+pango_x_font_get_type
 
10294
+pango_x_font_get_unknown_glyph
 
10295
+pango_x_font_map_for_display
 
10296
+pango_x_font_map_get_font_cache
 
10297
+pango_x_font_map_get_type
 
10298
+pango_x_font_new
 
10299
+pango_x_font_subfont_xlfd
 
10300
+pango_x_fontmap_atom_from_name
 
10301
+pango_x_fontmap_cache_add
 
10302
+pango_x_fontmap_cache_remove
 
10303
+pango_x_fontmap_get_display
 
10304
+pango_x_fontmap_name_from_atom
 
10305
+pango_x_get_context
 
10306
+pango_x_get_shaper_map
 
10307
+pango_x_get_unknown_glyph
 
10308
+pango_x_has_glyph
 
10309
+pango_x_list_subfonts
 
10310
+pango_x_load_font
 
10311
+pango_x_make_matching_xlfd
 
10312
+pango_x_render
 
10313
+pango_x_render_layout
 
10314
+pango_x_render_layout_line
 
10315
+pango_x_shutdown_display
 
10316
diff --git a/pango/pangox.h b/pango/pangox.h
 
10317
new file mode 100644
 
10318
index 0000000..f708ed1
 
10319
--- /dev/null
 
10320
+++ b/pango/pangox.h
 
10321
@@ -0,0 +1,152 @@
 
10322
+/* Pango
 
10323
+ * pangox.h:
 
10324
+ *
 
10325
+ * Copyright (C) 1999 Red Hat Software
 
10326
+ * Copyright (C) 2000 SuSE Linux Ltd
 
10327
+ *
 
10328
+ * This library is free software; you can redistribute it and/or
 
10329
+ * modify it under the terms of the GNU Library General Public
 
10330
+ * License as published by the Free Software Foundation; either
 
10331
+ * version 2 of the License, or (at your option) any later version.
 
10332
+ *
 
10333
+ * This library is distributed in the hope that it will be useful,
 
10334
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
 
10335
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.         See the GNU
 
10336
+ * Library General Public License for more details.
 
10337
+ *
 
10338
+ * You should have received a copy of the GNU Library General Public
 
10339
+ * License along with this library; if not, write to the
 
10340
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 
10341
+ * Boston, MA 02111-1307, USA.
 
10342
+ */
 
10343
+
 
10344
+#ifndef __PANGOX_H__
 
10345
+#define __PANGOX_H__
 
10346
+
 
10347
+#include <glib.h>
 
10348
+#include <pango/pango-layout.h>
 
10349
+
 
10350
+G_BEGIN_DECLS
 
10351
+
 
10352
+#include <X11/Xlib.h>
 
10353
+
 
10354
+#ifndef PANGO_DISABLE_DEPRECATED
 
10355
+
 
10356
+#define PANGO_RENDER_TYPE_X "PangoRenderX"
 
10357
+
 
10358
+typedef GC (*PangoGetGCFunc) (PangoContext *context, PangoColor *color, GC base_gc);
 
10359
+typedef void (*PangoFreeGCFunc) (PangoContext *context, GC gc);
 
10360
+
 
10361
+/* Calls for applications
 
10362
+ */
 
10363
+G_DEPRECATED
 
10364
+PangoContext * pango_x_get_context        (Display          *display);
 
10365
+G_DEPRECATED
 
10366
+void           pango_x_context_set_funcs  (PangoContext     *context,
 
10367
+                                          PangoGetGCFunc    get_gc_func,
 
10368
+                                          PangoFreeGCFunc   free_gc_func);
 
10369
+
 
10370
+G_DEPRECATED
 
10371
+PangoFont *    pango_x_load_font          (Display          *display,
 
10372
+                                          const gchar      *spec);
 
10373
+G_DEPRECATED
 
10374
+void           pango_x_render             (Display          *display,
 
10375
+                                          Drawable          d,
 
10376
+                                          GC                gc,
 
10377
+                                          PangoFont        *font,
 
10378
+                                          PangoGlyphString *glyphs,
 
10379
+                                          gint              x,
 
10380
+                                          gint              y);
 
10381
+G_DEPRECATED
 
10382
+void           pango_x_render_layout_line (Display          *display,
 
10383
+                                          Drawable          drawable,
 
10384
+                                          GC                gc,
 
10385
+                                          PangoLayoutLine  *line,
 
10386
+                                          int               x,
 
10387
+                                          int               y);
 
10388
+G_DEPRECATED
 
10389
+void           pango_x_render_layout      (Display          *display,
 
10390
+                                          Drawable          drawable,
 
10391
+                                          GC                gc,
 
10392
+                                          PangoLayout      *layout,
 
10393
+                                          int               x,
 
10394
+                                          int               y);
 
10395
+
 
10396
+/* API for rendering modules
 
10397
+ */
 
10398
+typedef guint16 PangoXSubfont;
 
10399
+
 
10400
+#define PANGO_X_MAKE_GLYPH(subfont,index_) ((subfont)<<16 | (index_))
 
10401
+#define PANGO_X_GLYPH_SUBFONT(glyph) ((glyph)>>16)
 
10402
+#define PANGO_X_GLYPH_INDEX(glyph) ((glyph) & 0xffff)
 
10403
+
 
10404
+G_DEPRECATED
 
10405
+int        pango_x_list_subfonts     (PangoFont      *font,
 
10406
+                                     char          **charsets,
 
10407
+                                     int             n_charsets,
 
10408
+                                     PangoXSubfont **subfont_ids,
 
10409
+                                     int           **subfont_charsets);
 
10410
+G_DEPRECATED
 
10411
+gboolean   pango_x_has_glyph         (PangoFont      *font,
 
10412
+                                     PangoGlyph      glyph);
 
10413
+G_DEPRECATED
 
10414
+PangoGlyph pango_x_get_unknown_glyph (PangoFont      *font);
 
10415
+
 
10416
+#ifdef PANGO_ENABLE_ENGINE
 
10417
+G_DEPRECATED
 
10418
+PangoGlyph pango_x_font_get_unknown_glyph (PangoFont    *font,
 
10419
+                                          gunichar      wc);
 
10420
+#endif /* PANGO_ENABLE_ENGINE */
 
10421
+
 
10422
+/* API for libraries that want to use PangoX mixed with classic X fonts.
 
10423
+ */
 
10424
+typedef struct _PangoXFontCache PangoXFontCache;
 
10425
+
 
10426
+G_DEPRECATED
 
10427
+PangoXFontCache *pango_x_font_cache_new     (Display         *display);
 
10428
+G_DEPRECATED
 
10429
+void             pango_x_font_cache_free    (PangoXFontCache *cache);
 
10430
+
 
10431
+G_DEPRECATED
 
10432
+XFontStruct * pango_x_font_cache_load      (PangoXFontCache *cache,
 
10433
+                                           const char      *xlfd);
 
10434
+G_DEPRECATED
 
10435
+void          pango_x_font_cache_unload    (PangoXFontCache *cache,
 
10436
+                                           XFontStruct     *fs);
 
10437
+
 
10438
+G_DEPRECATED
 
10439
+PangoFontMap *   pango_x_font_map_for_display  (Display     *display);
 
10440
+G_DEPRECATED
 
10441
+void             pango_x_shutdown_display      (Display     *display);
 
10442
+G_DEPRECATED
 
10443
+PangoXFontCache *pango_x_font_map_get_font_cache (PangoFontMap *font_map);
 
10444
+
 
10445
+G_DEPRECATED
 
10446
+char *pango_x_font_subfont_xlfd (PangoFont     *font,
 
10447
+                                PangoXSubfont  subfont_id);
 
10448
+
 
10449
+
 
10450
+G_DEPRECATED
 
10451
+gboolean pango_x_find_first_subfont (PangoFont     *font,
 
10452
+                                    char         **charsets,
 
10453
+                                    int            n_charsets,
 
10454
+                                    PangoXSubfont *rfont);
 
10455
+
 
10456
+G_DEPRECATED
 
10457
+void pango_x_fallback_shape (PangoFont        *font,
 
10458
+                            PangoGlyphString *glyphs,
 
10459
+                            const char       *text,
 
10460
+                            int               n_chars);
 
10461
+
 
10462
+G_DEPRECATED
 
10463
+gboolean pango_x_apply_ligatures (PangoFont     *font,
 
10464
+                                 PangoXSubfont  subfont,
 
10465
+                                 gunichar     **glyphs,
 
10466
+                                 int           *n_glyphs,
 
10467
+                                 int          **clusters);
 
10468
+
 
10469
+#endif /* PANGO_DISABLE_DEPRECATED */
 
10470
+
 
10471
+G_END_DECLS
 
10472
+
 
10473
+#endif /* __PANGOX_H__ */
 
10474
diff --git a/pango/pangox.rc.in b/pango/pangox.rc.in
 
10475
new file mode 100644
 
10476
index 0000000..c259393
 
10477
--- /dev/null
 
10478
+++ b/pango/pangox.rc.in
 
10479
@@ -0,0 +1,30 @@
 
10480
+#include <winver.h>
 
10481
+
 
10482
+VS_VERSION_INFO VERSIONINFO
 
10483
+  FILEVERSION @PANGO_VERSION_MAJOR@,@PANGO_VERSION_MINOR@,@PANGO_VERSION_MICRO@,0
 
10484
+  PRODUCTVERSION @PANGO_VERSION_MAJOR@,@PANGO_VERSION_MINOR@,@PANGO_VERSION_MICRO@,0
 
10485
+  FILEFLAGSMASK 0
 
10486
+  FILEFLAGS 0
 
10487
+  FILEOS VOS__WINDOWS32
 
10488
+  FILETYPE VFT_DLL
 
10489
+  FILESUBTYPE VFT2_UNKNOWN
 
10490
+  BEGIN
 
10491
+    BLOCK "StringFileInfo"
 
10492
+    BEGIN
 
10493
+      BLOCK "040904B0"
 
10494
+      BEGIN
 
10495
+       VALUE "CompanyName", "Red Hat Software"
 
10496
+       VALUE "FileDescription", "Pangox"
 
10497
+       VALUE "FileVersion", "@PANGO_VERSION_MAJOR@.@PANGO_VERSION_MINOR@.@PANGO_VERSION_MICRO@.0"
 
10498
+       VALUE "InternalName", "pangox-@PANGO_API_VERSION@-@PANGO_CURRENT_MINUS_AGE@"
 
10499
+       VALUE "LegalCopyright", "Copyright � 1999 Red Hat Software."
 
10500
+       VALUE "OriginalFilename", "pangox-@PANGO_API_VERSION@-@PANGO_CURRENT_MINUS_AGE@.dll"
 
10501
+       VALUE "ProductName", "Pangox"
 
10502
+       VALUE "ProductVersion", "@PANGO_VERSION_MAJOR@.@PANGO_VERSION_MINOR@.@PANGO_VERSION_MICRO@"
 
10503
+      END
 
10504
+    END
 
10505
+    BLOCK "VarFileInfo"
 
10506
+    BEGIN
 
10507
+      VALUE "Translation", 0x409, 1200
 
10508
+    END
 
10509
+  END
 
10510
diff --git a/pangox-uninstalled.pc.in b/pangox-uninstalled.pc.in
 
10511
new file mode 100644
 
10512
index 0000000..434cc61
 
10513
--- /dev/null
 
10514
+++ b/pangox-uninstalled.pc.in
 
10515
@@ -0,0 +1,6 @@
 
10516
+Name: Pango X Uninstalled
 
10517
+Description: X Window System font support for Pango, Not Installed
 
10518
+Version: @VERSION@
 
10519
+Requires: pango
 
10520
+Libs: ${pc_top_builddir}/${pcfiledir}/pango/libpangox-@PANGO_API_VERSION@.la @X_LIBS@
 
10521
+Cflags: -I${pc_top_builddir}/${pcfiledir}/@srcdir@ @X_CFLAGS@
 
10522
diff --git a/pangox.pc.in b/pangox.pc.in
 
10523
new file mode 100644
 
10524
index 0000000..95f1c26
 
10525
--- /dev/null
 
10526
+++ b/pangox.pc.in
 
10527
@@ -0,0 +1,11 @@
 
10528
+prefix=@prefix@
 
10529
+exec_prefix=@exec_prefix@
 
10530
+libdir=@libdir@
 
10531
+includedir=@includedir@
 
10532
+
 
10533
+Name: Pango X
 
10534
+Description: X Window System font support for Pango
 
10535
+Version: @VERSION@
 
10536
+Requires: pango
 
10537
+Libs: -L${libdir} -lpangox-@PANGO_API_VERSION@ @X_LIBS@
 
10538
+Cflags: -I${includedir}/pango-1.0 @X_CFLAGS@