gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r23245 - in Extractor/src/plugins: . old testdata


From: gnunet
Subject: [GNUnet-SVN] r23245 - in Extractor/src/plugins: . old testdata
Date: Wed, 15 Aug 2012 23:06:57 +0200

Author: grothoff
Date: 2012-08-15 23:06:57 +0200 (Wed, 15 Aug 2012)
New Revision: 23245

Added:
   Extractor/src/plugins/test_thumbnailgtk.c
   Extractor/src/plugins/testdata/thumbnail_torsten.jpg
   Extractor/src/plugins/thumbnailgtk_extractor.c
Removed:
   Extractor/src/plugins/old/thumbnailgtk_extractor.c
Modified:
   Extractor/src/plugins/Makefile.am
Log:
porting gtk thumbnailer

Modified: Extractor/src/plugins/Makefile.am
===================================================================
--- Extractor/src/plugins/Makefile.am   2012-08-14 23:45:49 UTC (rev 23244)
+++ Extractor/src/plugins/Makefile.am   2012-08-15 21:06:57 UTC (rev 23245)
@@ -45,7 +45,13 @@
 if HAVE_MAGIC
 PLUGIN_MIME=libextractor_mime.la
 TEST_MIME=test_mime
+
+if HAVE_GTK
+# Thumbnailer requires MAGIC and GTK
+PLUGIN_GTK=libextractor_thumbnailgtk.la
+TEST_GTK=test_thumbnailgtk
 endif
+endif
 
 if HAVE_GIF
 PLUGIN_GIF=libextractor_gif.la
@@ -98,6 +104,7 @@
   libextractor_sid.la \
   libextractor_wav.la \
   libextractor_zip.la \
+  $(PLUGIN_GTK) \
   $(PLUGIN_ZLIB) \
   $(PLUGIN_OGG) \
   $(PLUGIN_MIME) \
@@ -124,6 +131,7 @@
   test_nsf \
   test_nsfe \
   $(TEST_ZLIB) \
+  $(TEST_GTK) \
   $(TEST_OGG) \
   $(TEST_MIME) \
   $(TEST_GIF) \
@@ -296,6 +304,21 @@
   $(top_builddir)/src/plugins/libtest.la
 
 
+libextractor_thumbnailgtk_la_SOURCES = \
+  thumbnailgtk_extractor.c
+libextractor_thumbnailgtk_la_LDFLAGS = \
+  $(PLUGINFLAGS)
+libextractor_thumbnailgtk_la_CFLAGS = \
+  $(GTK_CFLAGS)
+libextractor_thumbnailgtk_la_LIBADD = \
+  -lmagic $(GTK_LIBS)
+
+test_thumbnailgtk_SOURCES = \
+  test_thumbnailgtk.c
+test_thumbnailgtk_LDADD = \
+  $(top_builddir)/src/plugins/libtest.la
+
+
 libextractor_gif_la_SOURCES = \
   gif_extractor.c
 libextractor_gif_la_LDFLAGS = \

Deleted: Extractor/src/plugins/old/thumbnailgtk_extractor.c
===================================================================
--- Extractor/src/plugins/old/thumbnailgtk_extractor.c  2012-08-14 23:45:49 UTC 
(rev 23244)
+++ Extractor/src/plugins/old/thumbnailgtk_extractor.c  2012-08-15 21:06:57 UTC 
(rev 23245)
@@ -1,162 +0,0 @@
-/*
-     This file is part of libextractor.
-     (C) 2005, 2009 Vidyut Samanta and Christian Grothoff
-
-     libextractor is free software; you can redistribute it and/or modify
-     it under the terms of the GNU General Public License as published
-     by the Free Software Foundation; either version 2, or (at your
-     option) any later version.
-
-     libextractor is distributed in the hope that it will be useful, but
-     WITHOUT ANY WARRANTY; without even the implied warranty of
-     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-     General Public License for more details.
-
-     You should have received a copy of the GNU General Public License
-     along with libextractor; see the file COPYING.  If not, write to the
-     Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-     Boston, MA 02111-1307, USA.
- */
-
-/**
- * @file thumbnailextractor.c
- * @author Christian Grothoff
- * @brief this extractor produces a binary (!) encoded
- * thumbnail of images (using gdk pixbuf).  The bottom
- * of the file includes a decoder method that can be used
- * to reproduce the 128x128 PNG thumbnails.
- */
-
-#include "platform.h"
-#include "extractor.h"
-#include <glib.h>
-#include <gdk-pixbuf/gdk-pixbuf.h>
-
-#define THUMBSIZE 128
-
-/* using libgobject, needs init! */
-void __attribute__ ((constructor)) ole_gobject_init ()
-{
-  g_type_init ();
-}
-
-
-const char *
-EXTRACTOR_thumbnailgtk_options ()
-{
-  /* 
-     Since the Gnome developers think that being unable to
-     unload plugins is an 'acceptable' limitation, we
-     require out-of-process execution for plugins depending
-     on libgsf and other glib-based plugins.
-     See also https://bugzilla.gnome.org/show_bug.cgi?id=374940 
-  */
-  return "oop-only"; 
-}
-
-
-int 
-EXTRACTOR_thumbnailgtk_extract (const char *data,
-                               size_t size,
-                               EXTRACTOR_MetaDataProcessor proc,
-                               void *proc_cls,
-                               const char *options)
-{
-  GdkPixbufLoader *loader;
-  GdkPixbuf *in;
-  GdkPixbuf *out;
-  size_t length;
-  char *thumb;
-  unsigned long width;
-  unsigned long height;
-  char format[64];
-  int ret;
-
-  loader = gdk_pixbuf_loader_new ();
-  gdk_pixbuf_loader_write (loader, 
-                          (const unsigned char*) data, 
-                          size, NULL);
-  in = gdk_pixbuf_loader_get_pixbuf (loader);
-  gdk_pixbuf_loader_close (loader, NULL);
-  if (in == NULL)
-    {
-      g_object_unref (loader);
-      return 0;
-    }
-  g_object_ref (in);
-  g_object_unref (loader);
-  height = gdk_pixbuf_get_height (in);
-  width = gdk_pixbuf_get_width (in);
-  snprintf (format, 
-           sizeof(format),
-           "%ux%u",
-           (unsigned int) width, 
-           (unsigned int) height);
-  if (0 != proc (proc_cls,
-                "thumbnailgtk",
-                EXTRACTOR_METATYPE_IMAGE_DIMENSIONS,
-                EXTRACTOR_METAFORMAT_UTF8,
-                "text/plain",
-                format,
-                strlen (format) + 1))
-    {
-      g_object_unref (in);
-      return 1;
-    }
-  if ((height <= THUMBSIZE) && (width <= THUMBSIZE))
-    {
-      g_object_unref (in);
-      return 0;
-    }
-  if (height > THUMBSIZE)
-    {
-      width = width * THUMBSIZE / height;
-      height = THUMBSIZE;
-    }
-  if (width > THUMBSIZE)
-    {
-      height = height * THUMBSIZE / width;
-      width = THUMBSIZE;
-    }
-  if ( (height == 0) || (width == 0) )
-    {
-      g_object_unref (in);
-      return 0;
-    }
-  out = gdk_pixbuf_scale_simple (in, width, height, GDK_INTERP_BILINEAR);
-  g_object_unref (in);
-  thumb = NULL;
-  length = 0;
-  if (out == NULL)
-    return 0;
-  if (!gdk_pixbuf_save_to_buffer (out, &thumb, &length, "png", NULL, 
-                                 "compression", "9", NULL))
-    {
-      g_object_unref (out);
-      return 0;
-    }
-  g_object_unref (out);
-  if (thumb == NULL)
-    return 0;
-  ret = proc (proc_cls,
-             "thumbnailgtk",
-             EXTRACTOR_METATYPE_THUMBNAIL,
-             EXTRACTOR_METAFORMAT_BINARY,
-             "image/png",
-             thumb, length);  
-  free (thumb);
-  return ret;
-}
-
-int 
-EXTRACTOR_thumbnail_extract (const char *data,
-                            size_t size,
-                            EXTRACTOR_MetaDataProcessor proc,
-                            void *proc_cls,
-                            const char *options)
-{
-  return EXTRACTOR_thumbnailgtk_extract (data, size, proc, proc_cls, options);
-}
-
-
-/* end of thumbnailgtk_extractor.c */

Added: Extractor/src/plugins/test_thumbnailgtk.c
===================================================================
--- Extractor/src/plugins/test_thumbnailgtk.c                           (rev 0)
+++ Extractor/src/plugins/test_thumbnailgtk.c   2012-08-15 21:06:57 UTC (rev 
23245)
@@ -0,0 +1,72 @@
+/*
+     This file is part of libextractor.
+     (C) 2012 Vidyut Samanta and Christian Grothoff
+
+     libextractor is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published
+     by the Free Software Foundation; either version 3, or (at your
+     option) any later version.
+
+     libextractor is distributed in the hope that it will be useful, but
+     WITHOUT ANY WARRANTY; without even the implied warranty of
+     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+     General Public License for more details.
+
+     You should have received a copy of the GNU General Public License
+     along with libextractor; see the file COPYING.  If not, write to the
+     Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+     Boston, MA 02111-1307, USA.
+*/
+/**
+ * @file plugins/test_thumbnailgtkj.c
+ * @brief testcase for thumbnailgtkj plugin
+ * @author Christian Grothoff
+ */
+#include "platform.h"
+#include "test_lib.h"
+
+
+
+/**
+ * Main function for the THUMBNAILGTKJ testcase.
+ *
+ * @param argc number of arguments (ignored)
+ * @param argv arguments (ignored)
+ * @return 0 on success
+ */
+int
+main (int argc, char *argv[])
+{
+  uint8_t thumbnail_data[] = { 
+137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 0, 128, 0, 
0, 0, 96, 8, 2, 0, 0, 0, 90, 24, 237, 30, 0, 0, 0, 3, 115, 66, 73, 84, 8, 8, 8, 
219, 225, 79, 224, 0, 0, 32, 0, 73, 68, 65, 84, 120, 218, 100, 188, 91, 172, 
109, 91, 118, 29, 212, 90, 239, 99, 204, 57, 215, 90, 123, 239, 115, 246, 62, 
143, 251, 174, 170, 235, 91, 85, 215, 101, 187, 28, 227, 71, 217, 137, 28, 32, 
145, 74, 38, 137, 66, 196, 7, 31, 1, 9, 240, 47, 63, 72, 124, 36, 124, 240, 16, 
34, 8, 241, 135, 20, 132, 80, 4, 124, 16, 41, 136, 124, 32, 28, 64, 2, 89, 16, 
69, 69, 32, 84, 236, 196, 118, 28, 219, 229, 114, 213, 173, 58, 247, 113, 238, 
185, 231, 181, 95, 235, 49, 231, 28, 189, 55, 62, 230, 58, 215, 54, 172, 159, 
179, 207, 222, 231, 172, 189, 214, 232, 125, 244, 222, 122, 107, 173, 47, 150, 
186, 146, 0, 0, 4, 248, 234, 79, 17, 132, 140, 4, 73, 2, 6, 2, 32, 1, 25, 105, 
160, 132, 164, 68, 48, 1, 72, 128, 154, 82, 72, 89, 49, 35, 146, 60, 89, 173, 
239, 158, 159, 159, 173, 214, 155, 179, 77, 
 245, 210
 , 119, 221, 221, 59, 155, 185, 181, 23, 47, 110, 5, 17, 162, 193, 19, 116, 35, 
73, 129, 52, 22, 8, 86, 0, 128, 89, 233, 52, 138, 36, 205, 140, 72, 0, 64, 103, 
12, 152, 185, 64, 51, 129, 112, 8, 16, 104, 48, 42, 193, 132, 40, 43, 158, 73, 
119, 32, 69, 51, 210, 204, 160, 4, 201, 148, 137, 68, 166, 76, 213, 0, 192, 
196, 144, 8, 36, 4, 40, 147, 64, 35, 150, 183, 211, 178, 73, 18, 20, 145, 41, 
37, 90, 72, 20, 34, 133, 198, 68, 203, 200, 200, 204, 84, 102, 70, 180, 136, 
214, 148, 183, 55, 87, 109, 154, 251, 161, 55, 115, 218, 241, 88, 9, 120, 113, 
119, 171, 110, 181, 148, 98, 44, 37, 139, 62, 63, 126, 65, 2, 12, 2, 141, 16, 
96, 2, 32, 17, 199, 151, 14, 65, 68, 74, 2, 142, 63, 50, 64, 72, 1, 132, 120, 
252, 110, 74, 78, 131, 98, 158, 165, 156, 114, 90, 107, 35, 48, 51, 105, 197, 
59, 91, 13, 93, 83, 3, 221, 8, 7, 83, 238, 5, 70, 166, 232, 38, 24, 76, 6, 119, 
3, 100, 4, 84, 224, 233, 52, 128, 18, 101, 68, 21, 205, 37, 25, 45, 4, 205, 18, 
229, 166, 32, 0, 25, 44, 68, 200, 0, 69, 90, 11
 7, 16, 1
 6, 8, 35, 64, 24, 76, 20, 32, 51, 131, 144, 72, 82, 1, 49, 65, 184, 35, 99, 
57, 47, 131, 201, 154, 50, 232, 82, 147, 160, 37, 21, 45, 11, 169, 84, 218, 
146, 16, 114, 82, 0, 97, 146, 68, 38, 9, 79, 50, 61, 213, 64, 147, 17, 132, 33, 
205, 138, 145, 14, 58, 173, 122, 173, 197, 43, 89, 138, 138, 142, 177, 209, 
146, 251, 72, 136, 72, 2, 160, 4, 179, 229, 7, 226, 171, 139, 1, 104, 9, 21, 
73, 42, 133, 37, 126, 90, 190, 16, 63, 255, 210, 142, 87, 166, 133, 50, 37, 
144, 174, 80, 37, 107, 233, 208, 72, 35, 104, 52, 149, 229, 169, 33, 167, 68, 
55, 192, 88, 0, 131, 145, 20, 144, 20, 138, 64, 154, 152, 128, 72, 48, 67, 52, 
56, 82, 98, 18, 48, 42, 173, 20, 100, 17, 154, 57, 9, 144, 102, 41, 102, 194, 
204, 4, 166, 8, 46, 169, 40, 8, 126, 204, 73, 154, 32, 96, 57, 70, 192, 5, 209, 
51, 211, 149, 18, 210, 233, 34, 205, 13, 74, 205, 73, 164, 160, 229, 153, 204, 
210, 147, 66, 6, 225, 198, 144, 145, 73, 128, 4, 5, 167, 38, 16, 176, 229, 151, 
192, 72, 146, 238, 238, 213, 216, 23, 171, 157, 151, 3
 7, 0, 4,
  112, 60, 196, 227, 131, 169, 37, 110, 2, 51, 5, 91, 78, 56, 1, 131, 45, 121, 
4, 113, 249, 63, 194, 18, 13, 65, 90, 50, 66, 105, 50, 185, 17, 93, 215, 123, 
162, 235, 171, 183, 48, 151, 82, 173, 69, 63, 116, 93, 45, 243, 220, 120, 44, 
28, 60, 94, 50, 210, 228, 60, 254, 218, 229, 233, 201, 76, 2, 48, 50, 73, 131, 
104, 160, 144, 50, 163, 180, 36, 94, 154, 185, 220, 45, 82, 32, 40, 122, 245, 
88, 242, 199, 209, 199, 18, 95, 3, 72, 209, 151, 50, 154, 75, 184, 33, 37, 42, 
41, 89, 0, 48, 25, 82, 2, 65, 184, 33, 147, 162, 51, 9, 38, 141, 153, 109, 121, 
61, 32, 143, 21, 64, 34, 16, 16, 151, 203, 123, 60, 11, 164, 33, 150, 96, 8, 
130, 168, 37, 236, 70, 161, 152, 138, 91, 237, 234, 208, 121, 95, 12, 50, 103, 
150, 204, 228, 114, 170, 18, 249, 170, 90, 9, 146, 196, 229, 77, 45, 245, 9, 
60, 158, 52, 36, 45, 105, 244, 249, 233, 231, 49, 18, 128, 150, 71, 200, 108, 
121, 175, 155, 179, 147, 245, 106, 115, 24, 71, 121, 36, 196, 202, 18, 244, 
194, 204, 52, 131, 100, 84, 194, 8, 242, 152, 48, 14
 6, 150, 
 172, 201, 52, 123, 213, 149, 140, 88, 46, 28, 77, 206, 180, 165, 28, 225, 24, 
22, 18, 230, 75, 83, 129, 32, 19, 97, 52, 3, 28, 150, 132, 89, 18, 150, 70, 
192, 73, 188, 138, 164, 232, 164, 16, 2, 1, 3, 196, 68, 130, 82, 98, 185, 222, 
104, 205, 211, 18, 84, 99, 6, 151, 90, 171, 204, 60, 102, 199, 241, 238, 67, 
204, 37, 1, 37, 130, 33, 19, 139, 57, 129, 228, 171, 106, 224, 160, 211, 75, 
173, 181, 12, 157, 173, 87, 213, 96, 16, 87, 125, 150, 165, 106, 47, 85, 94, 
159, 199, 96, 169, 71, 74, 9, 34, 62, 175, 82, 204, 72, 188, 10, 182, 142, 113, 
226, 82, 118, 94, 189, 26, 4, 131, 82, 11, 169, 129, 168, 101, 117, 247, 254, 
131, 199, 159, 124, 2, 41, 50, 141, 165, 56, 196, 89, 78, 81, 164, 160, 165, 
186, 225, 88, 230, 204, 97, 96, 6, 173, 126, 222, 136, 96, 80, 128, 110, 84, 
66, 142, 20, 140, 214, 152, 110, 92, 206, 124, 193, 5, 146, 8, 91, 130, 175, 
229, 31, 153, 129, 52, 208, 140, 148, 145, 22, 6, 202, 76, 18, 210, 4, 145, 
168, 0, 146, 145, 20, 3, 70, 66, 70, 41, 101, 46, 203, 104, 
 82, 194,
  32, 136, 33, 80, 48, 50, 157, 146, 25, 34, 27, 197, 212, 210, 195, 9, 45, 
221, 51, 105, 36, 36, 57, 184, 252, 102, 84, 122, 37, 59, 227, 170, 247, 174, 
51, 67, 169, 165, 156, 173, 172, 32, 133, 165, 28, 136, 120, 21, 127, 252, 177, 
199, 114, 226, 60, 150, 248, 229, 38, 0, 32, 5, 131, 25, 80, 224, 14, 164, 153, 
144, 144, 2, 160, 164, 204, 32, 5, 4, 220, 64, 74, 200, 57, 12, 170, 213, 220, 
148, 77, 70, 19, 69, 183, 37, 188, 76, 28, 97, 23, 68, 57, 130, 44, 36, 68, 26, 
128, 116, 18, 137, 52, 57, 233, 198, 227, 245, 134, 133, 228, 128, 17, 73, 144, 
230, 126, 76, 14, 208, 8, 163, 22, 52, 103, 36, 105, 32, 156, 75, 169, 130, 1, 
57, 205, 251, 185, 109, 86, 107, 241, 8, 233, 104, 76, 131, 50, 40, 99, 184, 
229, 76, 48, 232, 174, 4, 178, 217, 130, 148, 4, 180, 204, 200, 128, 72, 101, 
166, 50, 50, 148, 64, 34, 18, 137, 76, 75, 81, 4, 12, 110, 160, 155, 8, 186, 
89, 87, 189, 115, 239, 74, 215, 91, 191, 94, 213, 211, 147, 174, 192, 58, 32, 
129, 132, 85, 40, 1, 193, 42, 20, 160, 209, 42, 
 50, 65, 
 210, 28, 209, 232, 5, 42, 194, 72, 31, 32, 101, 134, 247, 39, 138, 209, 64, 
116, 171, 28, 111, 205, 13, 44, 57, 221, 208, 107, 233, 134, 210, 121, 173, 93, 
173, 117, 179, 218, 128, 5, 144, 144, 153, 42, 213, 107, 41, 45, 39, 65, 6, 
151, 94, 33, 92, 95, 90, 139, 44, 51, 89, 29, 146, 18, 38, 74, 48, 191, 121, 
121, 185, 94, 175, 186, 210, 195, 143, 173, 148, 5, 4, 224, 164, 45, 233, 71, 
209, 65, 48, 147, 164, 65, 144, 129, 100, 166, 209, 109, 1, 106, 114, 59, 130, 
106, 17, 40, 176, 85, 45, 206, 76, 100, 210, 40, 48, 165, 132, 128, 165, 158, 
192, 148, 17, 153, 80, 70, 203, 80, 70, 11, 133, 148, 203, 95, 66, 137, 152, 
66, 45, 231, 22, 33, 49, 34, 162, 101, 42, 90, 36, 205, 63, 47, 30, 173, 88, 
165, 131, 11, 238, 112, 55, 239, 251, 210, 119, 165, 150, 82, 172, 156, 73, 19, 
152, 44, 107, 181, 3, 152, 172, 27, 205, 59, 90, 97, 89, 231, 116, 203, 210, 
209, 58, 229, 13, 203, 26, 162, 218, 108, 101, 165, 12, 195, 200, 82, 16, 227, 
210, 248, 13, 132, 85, 210, 105, 133, 52, 90, 77, 48, 9
 1, 146, 
 52, 127, 149, 229, 6, 41, 205, 106, 41, 69, 135, 41, 153, 114, 80, 102, 228, 
177, 207, 224, 8, 160, 132, 38, 48, 211, 104, 5, 12, 41, 215, 235, 181, 21, 75, 
75, 164, 168, 37, 255, 145, 36, 212, 108, 134, 138, 165, 156, 10, 36, 41, 100, 
102, 74, 44, 198, 112, 87, 192, 45, 204, 141, 40, 49, 39, 209, 130, 5, 110, 38, 
20, 122, 154, 230, 249, 136, 242, 140, 160, 92, 153, 128, 73, 50, 168, 209, 72, 
103, 132, 40, 121, 58, 11, 147, 25, 205, 93, 65, 120, 112, 174, 213, 26, 189, 
184, 149, 80, 152, 179, 186, 82, 94, 210, 198, 113, 118, 115, 186, 96, 75, 170, 
164, 40, 100, 68, 139, 108, 217, 170, 198, 104, 101, 82, 97, 237, 161, 10, 138, 
44, 172, 6, 18, 44, 172, 5, 52, 153, 91, 119, 2, 22, 24, 108, 56, 165, 85, 64, 
94, 207, 105, 14, 84, 83, 79, 185, 186, 19, 128, 6, 211, 112, 71, 20, 149, 214, 
157, 28, 209, 129, 121, 136, 74, 192, 68, 138, 50, 201, 230, 180, 21, 221, 205, 
98, 187, 23, 23, 24, 68, 84, 153, 21, 107, 100, 53, 38, 68, 178, 76, 45, 201, 
2, 143, 154, 32, 156, 76, 230, 152, 16
 9, 4, 19
 7, 98, 102, 71, 184, 96, 41, 154, 153, 156, 9, 50, 228, 110, 52, 154, 149, 
226, 165, 22, 99, 45, 140, 66, 210, 157, 180, 178, 180, 12, 39, 150, 46, 96, 
68, 112, 233, 125, 33, 192, 147, 145, 88, 2, 174, 204, 96, 100, 34, 155, 82, 
173, 53, 34, 76, 25, 115, 204, 109, 10, 80, 24, 145, 38, 23, 140, 12, 146, 48, 
80, 180, 100, 144, 96, 46, 35, 198, 130, 198, 197, 72, 57, 51, 48, 55, 237, 
218, 140, 145, 77, 177, 157, 234, 118, 143, 34, 16, 49, 193, 93, 4, 50, 177, 
164, 163, 18, 102, 75, 201, 55, 64, 203, 29, 93, 96, 80, 142, 168, 3, 178, 33, 
3, 101, 149, 211, 142, 180, 172, 43, 141, 59, 86, 23, 61, 199, 27, 22, 167, 
215, 165, 77, 24, 179, 176, 22, 129, 104, 46, 207, 121, 170, 126, 178, 238, 87, 
253, 176, 146, 146, 181, 200, 101, 132, 163, 218, 144, 178, 101, 6, 114, 7, 40, 
154, 47, 173, 159, 128, 91, 1, 155, 204, 117, 28, 213, 43, 33, 152, 200, 148, 
25, 205, 9, 58, 188, 26, 205, 97, 102, 232, 220, 106, 169, 157, 213, 206, 233, 
102, 70, 210, 232, 128, 113, 129, 27, 198, 36, 140, 166,
  5, 204,
  21, 3, 140, 40, 112, 184, 165, 49, 28, 41, 32, 65, 160, 208, 153, 72, 199, 
56, 239, 111, 110, 174, 175, 159, 61, 123, 209, 182, 207, 196, 164, 135, 166, 
136, 88, 208, 49, 32, 3, 97, 140, 164, 4, 38, 200, 164, 204, 64, 152, 9, 104, 
217, 198, 200, 220, 215, 152, 199, 67, 157, 13, 94, 44, 11, 208, 148, 13, 52, 
80, 204, 3, 209, 147, 150, 243, 158, 92, 209, 169, 233, 86, 101, 3, 163, 226, 
32, 239, 160, 64, 52, 150, 5, 116, 165, 12, 199, 54, 171, 153, 104, 22, 6, 63, 
118, 82, 184, 19, 73, 217, 130, 200, 89, 139, 148, 32, 35, 147, 134, 110, 229, 
117, 240, 57, 151, 206, 8, 131, 83, 98, 113, 136, 90, 234, 145, 96, 36, 151, 
231, 146, 37, 9, 38, 139, 32, 96, 105, 221, 177, 80, 12, 132, 9, 116, 192, 9, 
72, 75, 245, 231, 121, 241, 47, 222, 187, 120, 243, 237, 47, 222, 191, 255, 
160, 27, 78, 251, 174, 235, 235, 80, 206, 86, 89, 43, 58, 43, 230, 110, 165, 
239, 186, 82, 138, 209, 172, 22, 146, 40, 238, 164, 195, 173, 175, 50, 138, 
175, 0, 248, 43, 12, 184, 148, 71, 75, 229, 188, 251, 213, 
 191, 245
 , 55, 255, 243, 95, 249, 59, 11, 240, 95, 218, 13, 73, 131, 133, 105, 193, 2, 
11, 154, 92, 46, 0, 73, 101, 10, 22, 138, 150, 145, 212, 108, 54, 26, 104, 112, 
99, 33, 10, 187, 13, 172, 136, 48, 219, 128, 69, 86, 172, 84, 154, 3, 196, 234, 
46, 224, 0, 204, 59, 178, 194, 131, 181, 147, 57, 85, 150, 131, 202, 225, 12, 
106, 18, 173, 91, 219, 66, 16, 12, 103, 138, 32, 59, 55, 153, 145, 75, 231, 
201, 5, 52, 81, 73, 137, 67, 173, 213, 107, 203, 145, 132, 113, 33, 100, 128, 
148, 92, 11, 6, 39, 224, 18, 36, 88, 165, 228, 70, 44, 108, 136, 185, 209, 22, 
68, 184, 140, 6, 102, 182, 204, 177, 71, 40, 151, 50, 179, 191, 248, 231, 254, 
210, 207, 254, 249, 111, 234, 56, 230, 30, 167, 152, 87, 227, 166, 244, 71, 
224, 29, 248, 199, 32, 159, 132, 118, 156, 168, 94, 13, 58, 127, 124, 78, 21, 
192, 110, 245, 217, 237, 129, 105, 109, 30, 1, 24, 45, 23, 12, 73, 131, 180, 
32, 122, 41, 19, 180, 35, 207, 101, 162, 18, 162, 48, 73, 96, 163, 104, 51, 
204, 13, 84, 33, 50, 99, 79, 14, 64, 81, 155, 89, 1, 1
 53, 114,
  38, 11, 4, 197, 204, 10, 6, 148, 51, 43, 21, 161, 24, 217, 109, 178, 77, 82, 
88, 183, 206, 121, 75, 39, 225, 49, 110, 85, 7, 194, 99, 186, 245, 82, 44, 83, 
146, 179, 136, 40, 197, 199, 200, 190, 3, 201, 164, 162, 181, 205, 176, 90, 15, 
117, 26, 15, 66, 194, 29, 6, 6, 168, 52, 58, 204, 76, 70, 147, 194, 40, 67, 
166, 140, 22, 73, 25, 170, 193, 40, 164, 41, 81, 11, 150, 249, 227, 136, 128, 
64, 39, 3, 173, 205, 88, 247, 171, 139, 139, 4, 95, 209, 92, 250, 255, 13, 251, 
127, 120, 154, 127, 36, 28, 255, 159, 199, 31, 78, 68, 199, 42, 200, 101, 72, 
215, 246, 242, 7, 191, 241, 187, 255, 152, 66, 45, 37, 230, 118, 36, 112, 142, 
68, 25, 136, 36, 98, 1, 150, 199, 180, 88, 6, 123, 1, 121, 28, 214, 142, 92, 
70, 6, 149, 37, 21, 203, 139, 160, 18, 57, 43, 105, 102, 17, 35, 75, 21, 164, 
24, 205, 11, 213, 144, 19, 209, 17, 45, 145, 196, 194, 58, 241, 213, 144, 90, 
65, 89, 169, 199, 129, 167, 56, 96, 6, 3, 102, 114, 105, 66, 54, 142, 187, 174, 
174, 142, 60, 71, 230, 176, 238, 55, 119, 54, 87
 , 187, 1
 37, 166, 133, 98, 147, 39, 147, 50, 119, 2, 68, 210, 88, 157, 177, 52, 233, 
87, 115, 114, 128, 72, 57, 180, 204, 189, 2, 205, 16, 96, 1, 13, 40, 6, 178, 
47, 133, 133, 143, 62, 250, 206, 151, 119, 239, 119, 195, 6, 52, 252, 209, 131, 
92, 56, 14, 33, 165, 54, 183, 200, 136, 8, 76, 45, 199, 136, 80, 70, 219, 205, 
83, 139, 136, 136, 152, 115, 28, 227, 48, 29, 246, 251, 237, 120, 104, 227, 
246, 112, 121, 245, 252, 242, 229, 147, 143, 31, 127, 248, 241, 211, 143, 246, 
237, 32, 164, 100, 112, 135, 68, 185, 22, 0, 203, 136, 196, 130, 194, 96, 6, 
164, 142, 100, 178, 41, 37, 64, 52, 17, 73, 17, 146, 84, 196, 66, 171, 48, 167, 
57, 8, 148, 13, 97, 160, 215, 122, 74, 86, 73, 236, 157, 164, 91, 97, 183, 86, 
49, 69, 215, 137, 50, 103, 233, 22, 234, 194, 121, 2, 152, 148, 172, 6, 80, 
110, 233, 27, 134, 64, 154, 87, 24, 237, 21, 154, 86, 42, 1, 20, 159, 35, 78, 
186, 210, 214, 155, 199, 124, 25, 11, 157, 72, 26, 72, 203, 162, 36, 8, 37, 73, 
25, 176, 160, 121, 130, 101, 73, 50, 41, 157, 8, 22,
  34, 176
 , 76, 89, 6, 99, 6, 189, 16, 146, 65, 102, 138, 248, 187, 223, 250, 127, 190, 
253, 247, 127, 253, 206, 250, 108, 88, 159, 150, 226, 110, 84, 154, 138, 24, 
77, 100, 204, 156, 209, 50, 50, 25, 49, 71, 203, 64, 90, 0, 66, 83, 3, 128, 80, 
68, 100, 83, 75, 101, 206, 211, 152, 104, 243, 212, 218, 52, 183, 105, 140, 24, 
145, 11, 157, 71, 210, 210, 35, 130, 8, 65, 148, 50, 51, 213, 90, 180, 152, 
103, 69, 100, 100, 186, 57, 45, 1, 167, 1, 112, 64, 204, 192, 194, 243, 32, 
160, 2, 52, 204, 163, 186, 21, 4, 196, 158, 221, 10, 176, 156, 103, 239, 43, 
66, 202, 201, 74, 23, 34, 99, 54, 95, 41, 90, 83, 51, 223, 104, 220, 1, 100, 
183, 206, 249, 198, 234, 134, 180, 121, 220, 214, 110, 173, 22, 49, 94, 121, 
89, 9, 73, 5, 108, 69, 186, 131, 132, 69, 52, 130, 200, 152, 230, 54, 116, 171, 
55, 238, 247, 191, 255, 193, 199, 250, 188, 246, 218, 50, 219, 3, 130, 124, 1, 
67, 75, 88, 150, 241, 62, 120, 36, 101, 3, 34, 3, 162, 193, 32, 67, 22, 17, 
182, 80, 106, 182, 80, 85, 86, 198, 204, 166, 105, 183, 
 125, 81,
  246, 151, 36, 225, 178, 227, 184, 103, 82, 26, 9, 181, 102, 202, 36, 147, 58, 
162, 188, 12, 19, 230, 148, 20, 10, 52, 40, 35, 20, 209, 212, 66, 161, 12, 205, 
17, 209, 90, 132, 20, 74, 53, 81, 77, 74, 41, 34, 98, 140, 24, 247, 227, 205, 
205, 245, 97, 26, 19, 109, 28, 179, 239, 187, 72, 213, 36, 93, 199, 102, 176, 
208, 59, 0, 18, 73, 32, 147, 169, 66, 58, 172, 44, 104, 83, 48, 192, 72, 7, 
130, 114, 32, 77, 34, 13, 25, 208, 2, 122, 27, 72, 194, 233, 133, 114, 152, 
179, 244, 86, 186, 4, 170, 78, 232, 157, 231, 172, 178, 90, 152, 23, 3, 92, 
114, 243, 52, 243, 98, 49, 7, 141, 112, 70, 203, 206, 203, 189, 139, 245, 102, 
24, 94, 222, 222, 2, 160, 11, 74, 192, 51, 101, 6, 4, 192, 140, 212, 194, 162, 
208, 36, 88, 44, 76, 112, 32, 143, 28, 68, 161, 1, 150, 204, 20, 43, 136, 99, 
0, 5, 209, 140, 114, 36, 97, 36, 205, 160, 5, 9, 136, 102, 52, 55, 51, 163, 67, 
74, 193, 148, 74, 8, 41, 138, 129, 72, 65, 77, 66, 66, 153, 202, 150, 202, 84, 
100, 180, 166, 204, 136, 229, 27, 177, 52, 21, 9, 2
 02, 140,
  57, 218, 225, 176, 127, 113, 125, 27, 115, 35, 18, 18, 100, 149, 50, 51, 119, 
163, 161, 152, 59, 109, 129, 82, 76, 52, 120, 34, 163, 181, 195, 97, 202, 105, 
44, 40, 189, 251, 144, 52, 26, 160, 222, 173, 210, 220, 186, 147, 52, 183, 86, 
217, 245, 160, 177, 186, 156, 128, 123, 215, 155, 0, 167, 151, 51, 44, 56, 180, 
59, 149, 23, 164, 232, 162, 185, 64, 247, 6, 51, 122, 49, 131, 57, 75, 101, 
201, 48, 243, 104, 51, 8, 45, 109, 33, 243, 181, 243, 139, 243, 147, 213, 203, 
151, 151, 2, 23, 85, 36, 208, 184, 100, 170, 57, 41, 66, 41, 17, 52, 7, 105, 
74, 221, 238, 183, 63, 252, 240, 147, 221, 246, 118, 179, 94, 189, 243, 230, 
219, 221, 208, 67, 105, 70, 202, 101, 44, 6, 217, 194, 196, 43, 13, 241, 138, 
250, 76, 153, 17, 70, 35, 81, 96, 238, 11, 51, 185, 180, 206, 88, 216, 211, 
133, 245, 32, 130, 226, 50, 14, 5, 208, 36, 73, 169, 80, 196, 2, 98, 8, 99, 
200, 128, 68, 10, 164, 34, 98, 222, 29, 246, 47, 95, 220, 118, 157, 223, 61, 
63, 109, 153, 251, 253, 20, 145, 153, 249, 138, 19, 119,
  131, 87
 , 51, 208, 164, 124, 69, 28, 171, 141, 109, 191, 59, 16, 42, 152, 199, 200, 
217, 235, 73, 100, 48, 38, 12, 157, 50, 99, 30, 125, 117, 55, 114, 68, 238, 75, 
119, 146, 243, 132, 104, 54, 156, 197, 126, 7, 138, 118, 18, 187, 27, 150, 66, 
31, 226, 240, 210, 135, 51, 132, 98, 124, 94, 214, 247, 179, 141, 49, 94, 251, 
106, 35, 53, 161, 129, 43, 247, 206, 104, 230, 54, 77, 137, 36, 211, 228, 190, 
59, 236, 238, 223, 59, 125, 237, 254, 157, 239, 255, 224, 145, 97, 193, 166, 
106, 6, 215, 76, 185, 51, 104, 0, 97, 118, 108, 210, 68, 154, 243, 172, 239, 
238, 222, 57, 123, 248, 218, 131, 152, 14, 84, 243, 112, 154, 9, 32, 194, 96, 
108, 160, 217, 50, 158, 97, 209, 122, 0, 75, 24, 105, 203, 32, 244, 57, 173, 
109, 228, 162, 105, 28, 69, 178, 87, 40, 149, 149, 45, 123, 240, 132, 171, 189, 
182, 215, 134, 9, 205, 204, 194, 200, 200, 150, 72, 75, 186, 41, 147, 178, 204, 
140, 41, 110, 182, 227, 126, 119, 56, 63, 29, 220, 156, 52, 43, 53, 43, 195, 
35, 20, 173, 1, 16, 255, 16, 101, 131, 105, 9, 129
 , 73, 10
 6, 86, 75, 2, 145, 197, 188, 200, 12, 197, 93, 70, 200, 233, 146, 96, 190, 
188, 127, 200, 128, 66, 166, 22, 194, 199, 150, 65, 217, 173, 118, 100, 7, 51, 
239, 55, 230, 29, 152, 198, 187, 40, 157, 39, 169, 153, 240, 226, 230, 21, 238, 
233, 133, 45, 201, 133, 62, 207, 16, 91, 16, 47, 46, 175, 101, 221, 219, 111, 
190, 182, 238, 127, 151, 208, 172, 178, 159, 198, 136, 204, 24, 79, 251, 13, 
233, 105, 160, 195, 204, 13, 110, 230, 48, 210, 148, 173, 108, 54, 171, 245, 
102, 213, 182, 62, 172, 187, 105, 63, 86, 235, 138, 87, 167, 65, 10, 23, 233, 
148, 209, 132, 101, 156, 7, 108, 225, 238, 109, 57, 0, 163, 147, 190, 204, 111, 
128, 17, 182, 16, 118, 128, 142, 253, 241, 167, 126, 230, 79, 253, 229, 95, 
254, 215, 234, 170, 63, 188, 124, 250, 239, 253, 149, 191, 146, 51, 51, 82, 
136, 5, 78, 206, 199, 153, 86, 154, 115, 158, 199, 231, 215, 55, 10, 221, 217, 
108, 148, 145, 175, 4, 91, 175, 30, 45, 45, 140, 8, 46, 172, 176, 184, 220, 47, 
81, 201, 196, 162, 205, 69, 70, 52, 50, 11, 202, 224, 
 148, 89,
  5, 204, 202, 10, 165, 250, 66, 29, 162, 178, 43, 192, 90, 116, 27, 6, 18, 
180, 222, 173, 95, 218, 162, 13, 38, 19, 82, 40, 14, 118, 136, 70, 119, 122, 
109, 54, 194, 156, 94, 0, 115, 85, 183, 50, 148, 42, 177, 84, 163, 33, 144, 5, 
18, 248, 244, 118, 254, 214, 175, 255, 230, 60, 77, 157, 91, 128, 217, 204, 
106, 61, 25, 134, 159, 121, 255, 141, 95, 250, 51, 127, 246, 63, 251, 235, 255, 
109, 184, 104, 56, 206, 201, 71, 65, 15, 233, 238, 160, 185, 215, 174, 14, 93, 
169, 166, 113, 108, 104, 198, 190, 51, 24, 168, 114, 236, 114, 11, 41, 106, 4, 
210, 62, 55, 20, 0, 254, 74, 83, 242, 165, 101, 208, 22, 21, 145, 6, 166, 204, 
170, 157, 254, 75, 255, 202, 95, 246, 117, 47, 224, 111, 253, 205, 255, 110, 
215, 154, 47, 218, 176, 148, 122, 53, 11, 71, 180, 136, 155, 237, 110, 187, 
187, 237, 106, 45, 189, 101, 164, 100, 82, 50, 69, 131, 45, 50, 231, 66, 229, 
40, 200, 138, 35, 163, 177, 192, 184, 163, 154, 88, 250, 190, 236, 155, 20, 
134, 182, 205, 241, 22, 137, 136, 49, 230, 27, 48, 243, 17
 6, 207, 
 221, 53, 149, 57, 222, 106, 186, 161, 81, 187, 91, 237, 111, 21, 83, 219, 189, 
200, 249, 74, 152, 219, 205, 51, 205, 123, 197, 220, 174, 175, 40, 98, 218, 
107, 186, 81, 42, 15, 55, 57, 109, 41, 106, 158, 23, 134, 222, 251, 161, 77, 
73, 209, 173, 32, 115, 153, 234, 91, 78, 207, 174, 174, 111, 159, 190, 88, 135, 
91, 186, 84, 87, 221, 250, 193, 197, 197, 217, 249, 197, 191, 243, 239, 255, 
53, 213, 44, 75, 157, 48, 99, 128, 145, 102, 112, 119, 43, 232, 204, 188, 184, 
217, 236, 230, 110, 181, 95, 173, 104, 106, 49, 203, 85, 170, 121, 145, 27, 9, 
37, 148, 150, 52, 209, 104, 11, 93, 189, 8, 36, 146, 101, 250, 114, 22, 166, 
148, 18, 41, 164, 192, 156, 237, 207, 124, 243, 155, 39, 23, 167, 6, 252, 234, 
255, 248, 183, 255, 209, 111, 126, 155, 134, 164, 66, 153, 202, 80, 206, 25, 
109, 158, 111, 15, 251, 39, 47, 46, 247, 135, 221, 102, 40, 67, 181, 197, 43, 
0, 36, 152, 9, 197, 194, 12, 195, 65, 123, 69, 102, 44, 37, 81, 144, 212, 4, 
33, 160, 164, 204, 88, 86, 253, 217, 201, 80, 188, 110
 , 8, 90,
  183, 54, 5, 16, 238, 155, 172, 163, 101, 152, 85, 121, 133, 85, 178, 202, 11, 
96, 144, 89, 233, 205, 59, 88, 239, 155, 51, 175, 43, 0, 94, 6, 150, 94, 60, 
147, 131, 242, 110, 117, 30, 81, 140, 94, 187, 106, 101, 54, 114, 232, 135, 
253, 116, 128, 12, 9, 154, 155, 204, 150, 43, 216, 244, 141, 159, 254, 233, 
127, 235, 175, 254, 7, 223, 254, 214, 63, 248, 239, 127, 229, 127, 37, 175, 
127, 225, 27, 63, 243, 119, 254, 167, 95, 137, 238, 108, 119, 24, 55, 253, 198, 
0, 36, 185, 40, 235, 42, 75, 242, 210, 172, 120, 29, 37, 70, 46, 69, 220, 74, 
101, 164, 166, 73, 93, 165, 123, 67, 132, 100, 36, 211, 18, 190, 208, 215, 137, 
4, 205, 228, 98, 178, 20, 169, 8, 153, 113, 164, 35, 146, 48, 240, 252, 206, 
189, 63, 251, 231, 191, 73, 224, 247, 254, 209, 111, 255, 47, 191, 242, 63, 
139, 136, 54, 181, 150, 45, 98, 138, 54, 77, 243, 28, 243, 229, 245, 245, 56, 
199, 170, 150, 178, 170, 149, 14, 96, 22, 64, 201, 150, 231, 200, 22, 77, 128, 
195, 22, 193, 39, 104, 50, 59, 202, 110, 178, 101, 234, 5
 3, 32, 1
 52, 76, 68, 139, 186, 238, 139, 121, 181, 50, 208, 7, 168, 185, 57, 216, 163, 
184, 25, 9, 103, 221, 152, 67, 94, 216, 175, 141, 78, 115, 218, 41, 173, 36, 
204, 188, 163, 247, 106, 243, 34, 248, 79, 17, 164, 43, 90, 27, 47, 137, 204, 
90, 133, 160, 123, 233, 202, 208, 213, 219, 235, 118, 84, 121, 185, 200, 164, 
140, 180, 76, 252, 189, 95, 251, 173, 127, 250, 27, 223, 253, 249, 111, 252, 
220, 87, 190, 244, 246, 131, 211, 238, 235, 63, 251, 167, 255, 250, 223, 248, 
111, 246, 105, 83, 155, 223, 126, 208, 33, 13, 164, 25, 152, 201, 54, 86, 148, 
105, 106, 19, 242, 116, 232, 15, 151, 222, 90, 204, 169, 22, 113, 228, 45, 12, 
216, 29, 178, 20, 37, 82, 202, 98, 112, 1, 84, 48, 36, 100, 0, 182, 228, 164, 
87, 55, 179, 22, 45, 51, 114, 153, 186, 65, 11, 100, 124, 246, 95, 252, 71, 
255, 241, 118, 63, 125, 239, 227, 239, 205, 49, 182, 150, 115, 78, 209, 218, 
212, 52, 181, 216, 79, 227, 126, 187, 93, 213, 238, 108, 232, 74, 41, 238, 86, 
73, 32, 23, 58, 86, 169, 80, 6, 144, 139, 53, 129, 73, 
 194, 204
 , 44, 89, 72, 210, 23, 57, 96, 233, 249, 11, 31, 49, 31, 166, 155, 171, 171, 
59, 155, 215, 74, 155, 183, 213, 157, 217, 231, 254, 133, 173, 78, 81, 124, 
222, 61, 171, 171, 19, 243, 33, 15, 47, 56, 156, 26, 124, 190, 121, 110, 155, 
51, 69, 215, 246, 207, 235, 201, 107, 217, 38, 140, 151, 172, 171, 104, 91, 34, 
19, 85, 211, 53, 121, 39, 148, 153, 113, 172, 131, 8, 162, 84, 179, 97, 213, 
239, 159, 95, 203, 96, 182, 80, 191, 136, 128, 212, 90, 155, 111, 218, 248, 
127, 252, 239, 127, 247, 203, 63, 245, 51, 171, 190, 127, 247, 253, 47, 79, 83, 
187, 222, 141, 88, 173, 111, 247, 227, 179, 151, 47, 114, 225, 16, 68, 20, 97, 
214, 221, 179, 187, 87, 55, 55, 219, 233, 246, 141, 55, 222, 218, 29, 14, 135, 
105, 10, 28, 201, 125, 111, 84, 180, 169, 77, 47, 94, 190, 248, 234, 253, 135, 
63, 114, 247, 139, 223, 185, 253, 104, 100, 145, 144, 66, 112, 206, 16, 154, 
154, 50, 35, 139, 243, 254, 197, 189, 237, 237, 193, 124, 33, 49, 33, 75, 111, 
126, 237, 151, 143, 30, 63, 158, 21, 41, 68, 11, 41,
  231, 14
 0, 140, 54, 55, 205, 106, 243, 212, 134, 174, 214, 190, 239, 58, 235, 188, 90, 
49, 55, 69, 58, 90, 75, 135, 2, 20, 23, 194, 16, 146, 50, 69, 51, 176, 80, 206, 
132, 45, 220, 46, 60, 209, 22, 253, 47, 143, 202, 119, 48, 202, 112, 250, 192, 
124, 0, 139, 213, 135, 102, 85, 194, 112, 122, 97, 62, 128, 176, 179, 7, 100, 
47, 160, 63, 189, 207, 210, 39, 204, 203, 67, 122, 103, 94, 185, 122, 93, 232, 
234, 234, 130, 230, 41, 235, 238, 60, 20, 140, 243, 196, 225, 4, 109, 90, 136, 
42, 119, 148, 82, 124, 24, 166, 113, 150, 29, 225, 118, 38, 105, 25, 45, 2, 
217, 52, 142, 183, 227, 251, 63, 254, 227, 191, 246, 15, 127, 227, 23, 46, 238, 
223, 92, 223, 172, 106, 185, 137, 113, 174, 190, 223, 141, 222, 21, 58, 65, 99, 
131, 131, 62, 244, 211, 203, 167, 227, 225, 144, 45, 94, 222, 222, 140, 211, 
30, 238, 16, 96, 116, 144, 4, 83, 155, 190, 255, 87, 255, 205, 95, 254, 23, 
254, 197, 127, 253, 215, 127, 245, 111, 255, 219, 255, 225, 127, 58, 195, 164, 
76, 166, 210, 20, 145, 18, 164, 117, 29, 112, 2
 3, 124, 
 197, 252, 45, 116, 51, 141, 230, 2, 162, 132, 66, 88, 56, 253, 66, 206, 70, 
115, 120, 64, 238, 38, 115, 178, 118, 181, 55, 79, 161, 205, 152, 90, 68, 18, 
112, 51, 48, 39, 147, 252, 200, 191, 38, 104, 222, 185, 23, 46, 190, 54, 207, 
212, 50, 214, 38, 65, 41, 72, 243, 190, 239, 171, 169, 196, 97, 143, 245, 138, 
243, 8, 76, 234, 42, 52, 101, 142, 86, 78, 34, 39, 182, 137, 171, 149, 218, 12, 
194, 106, 213, 52, 51, 147, 125, 201, 221, 149, 12, 44, 93, 187, 125, 89, 54, 
103, 18, 231, 237, 243, 114, 122, 191, 29, 46, 219, 238, 121, 169, 107, 67, 
245, 28, 157, 125, 95, 88, 135, 245, 56, 143, 190, 140, 142, 138, 68, 184, 132, 
102, 57, 203, 130, 157, 151, 213, 217, 201, 237, 118, 188, 123, 239, 181, 143, 
62, 250, 173, 117, 223, 29, 230, 49, 204, 79, 220, 190, 248, 224, 226, 227, 
171, 155, 105, 49, 59, 37, 134, 234, 197, 33, 218, 204, 140, 121, 190, 190, 
221, 79, 217, 34, 89, 189, 44, 184, 190, 24, 239, 223, 57, 251, 171, 255, 238, 
127, 242, 95, 254, 181, 255, 234, 122, 190, 126, 26, 1
 23, 137,
  88, 132, 18, 165, 22, 173, 87, 208, 169, 201, 22, 1, 126, 177, 41, 46, 180, 
125, 100, 154, 211, 211, 128, 92, 196, 160, 22, 11, 159, 137, 198, 36, 153, 70, 
1, 138, 150, 123, 40, 22, 127, 78, 194, 22, 33, 194, 205, 84, 228, 17, 193, 
134, 68, 40, 40, 95, 84, 78, 209, 146, 164, 72, 40, 105, 80, 232, 104, 187, 
232, 250, 138, 244, 226, 116, 67, 9, 28, 152, 225, 178, 156, 102, 34, 208, 155, 
166, 61, 219, 193, 250, 59, 49, 222, 32, 67, 253, 105, 182, 29, 145, 130, 103, 
6, 173, 50, 23, 45, 194, 128, 40, 221, 64, 21, 179, 190, 150, 53, 220, 172, 84, 
26, 156, 222, 119, 21, 170, 152, 218, 226, 189, 145, 12, 96, 139, 156, 216, 
218, 66, 85, 13, 54, 167, 14, 59, 217, 106, 115, 249, 244, 217, 170, 216, 202, 
86, 251, 105, 142, 192, 63, 251, 222, 87, 30, 93, 190, 248, 181, 15, 127, 48, 
137, 48, 116, 181, 59, 54, 77, 171, 67, 45, 165, 248, 116, 104, 173, 37, 142, 
230, 167, 76, 152, 179, 78, 169, 223, 217, 125, 6, 50, 37, 40, 41, 72, 148, 
150, 62, 12, 164, 101, 168, 24, 105, 94, 104, 86, 23, 
 20, 179,
  16, 32, 176, 164, 192, 168, 178, 80, 211, 226, 105, 44, 76, 200, 143, 68, 
205, 20, 153, 135, 201, 221, 105, 52, 202, 204, 204, 184, 177, 90, 156, 25, 
101, 154, 243, 48, 207, 104, 153, 139, 129, 204, 94, 249, 109, 151, 70, 189, 
152, 79, 151, 113, 128, 233, 213, 215, 155, 53, 205, 138, 175, 239, 154, 179, 
212, 13, 232, 64, 181, 225, 156, 112, 89, 237, 252, 62, 153, 160, 117, 221, 
125, 178, 136, 214, 215, 135, 203, 44, 81, 78, 47, 96, 5, 17, 180, 83, 212, 
158, 45, 233, 37, 181, 8, 74, 101, 145, 253, 75, 231, 94, 185, 218, 244, 135, 
219, 131, 34, 150, 113, 7, 153, 145, 105, 82, 106, 110, 209, 66, 114, 175, 207, 
15, 135, 235, 195, 54, 18, 143, 159, 127, 122, 90, 11, 80, 62, 217, 239, 71, 
242, 159, 252, 254, 239, 126, 253, 253, 31, 29, 115, 255, 59, 79, 158, 205, 
105, 181, 171, 164, 185, 113, 191, 187, 46, 125, 169, 133, 102, 78, 155, 193, 
52, 59, 26, 80, 172, 58, 9, 33, 151, 22, 136, 136, 207, 221, 136, 132, 3, 11, 
39, 201, 98, 86, 139, 87, 231, 50, 11, 24, 74, 34, 22, 15, 73, 1
 66, 142,
  42, 113, 18, 20, 2, 40, 150, 242, 76, 68, 182, 177, 205, 105, 86, 144, 43, 
243, 117, 215, 13, 67, 53, 43, 30, 72, 233, 80, 24, 49, 155, 211, 195, 22, 247, 
47, 224, 96, 154, 5, 88, 180, 184, 109, 69, 189, 18, 123, 246, 135, 54, 78, 
168, 167, 181, 168, 29, 18, 253, 188, 127, 81, 134, 51, 243, 147, 184, 125, 94, 
86, 167, 178, 147, 220, 126, 90, 134, 83, 148, 33, 14, 207, 203, 112, 14, 118, 
237, 230, 73, 57, 189, 151, 77, 109, 251, 89, 57, 123, 61, 14, 215, 57, 93, 
149, 187, 111, 76, 215, 79, 138, 17, 195, 189, 121, 251, 153, 180, 171, 221, 
153, 98, 34, 224, 244, 245, 176, 217, 239, 110, 149, 9, 243, 163, 111, 55, 149, 
72, 133, 101, 54, 139, 86, 10, 159, 95, 222, 108, 167, 105, 123, 216, 221, 92, 
93, 177, 169, 237, 110, 222, 170, 171, 63, 249, 206, 23, 207, 135, 228, 60, 
189, 255, 240, 65, 35, 255, 224, 179, 151, 195, 122, 229, 102, 197, 180, 61, 
220, 184, 161, 47, 101, 107, 109, 177, 92, 44, 244, 82, 33, 7, 202, 105, 90, 
164, 52, 0, 197, 168, 204, 197, 62, 40, 44, 124, 142, 57
 , 172, 1
 48, 234, 205, 28, 164, 27, 32, 153, 29, 79, 91, 70, 101, 73, 164, 145, 105, 
52, 38, 4, 99, 17, 41, 162, 32, 231, 140, 40, 213, 251, 218, 175, 251, 174, 
171, 110, 180, 92, 200, 218, 70, 150, 37, 99, 177, 16, 74, 11, 68, 56, 42, 180, 
90, 102, 192, 63, 180, 176, 101, 204, 99, 147, 80, 139, 149, 78, 100, 215, 109, 
172, 172, 224, 142, 178, 178, 50, 132, 137, 165, 151, 245, 100, 146, 206, 66, 
74, 214, 117, 100, 81, 13, 91, 159, 18, 198, 126, 40, 213, 33, 175, 195, 57, 
201, 84, 150, 225, 36, 91, 130, 233, 165, 163, 53, 47, 133, 94, 95, 94, 61, 
141, 74, 91, 124, 99, 105, 139, 197, 52, 96, 17, 106, 9, 247, 114, 115, 189, 
155, 230, 105, 191, 31, 183, 243, 12, 119, 221, 236, 236, 222, 157, 79, 111, 
94, 86, 174, 119, 113, 232, 212, 125, 237, 237, 47, 236, 14, 81, 205, 188, 90, 
169, 181, 237, 178, 131, 175, 250, 90, 182, 7, 199, 66, 203, 187, 45, 94, 122, 
161, 48, 4, 144, 78, 67, 231, 54, 56, 205, 242, 118, 140, 125, 203, 164, 148, 
42, 166, 206, 173, 249, 145, 17, 210, 209, 65, 4, 35, 20
 6, 250, 
 46, 50, 212, 114, 74, 77, 45, 182, 135, 38, 183, 68, 169, 77, 56, 146, 221, 
112, 152, 209, 172, 90, 169, 238, 175, 152, 37, 151, 106, 104, 124, 165, 143, 
90, 16, 48, 45, 246, 105, 210, 242, 149, 145, 147, 48, 40, 21, 177, 200, 179, 
12, 8, 69, 94, 45, 147, 221, 128, 50, 144, 233, 155, 51, 122, 95, 209, 242, 
228, 14, 189, 55, 11, 12, 15, 105, 149, 41, 43, 247, 101, 213, 219, 65, 253, 
134, 48, 206, 129, 210, 45, 78, 64, 90, 69, 155, 133, 153, 72, 42, 156, 225, 
136, 234, 133, 125, 167, 253, 236, 64, 72, 96, 200, 131, 60, 6, 162, 101, 34, 
179, 212, 114, 24, 39, 41, 29, 97, 4, 6, 59, 123, 120, 103, 63, 248, 63, 120, 
242, 241, 63, 254, 120, 126, 237, 195, 245, 187, 111, 191, 253, 238, 27, 248, 
242, 23, 222, 122, 60, 169, 74, 181, 148, 46, 56, 172, 215, 187, 118, 232, 104, 
35, 225, 52, 226, 56, 241, 238, 167, 131, 172, 20, 168, 115, 91, 119, 118, 218, 
247, 23, 103, 155, 7, 23, 171, 136, 252, 240, 147, 203, 31, 60, 189, 156, 140, 
213, 173, 22, 46, 78, 1, 2, 121, 84, 27, 221, 153, 136
 , 249, 2
 42, 230, 234, 193, 217, 233, 39, 159, 60, 125, 248, 224, 254, 97, 68, 144, 
116, 56, 161, 134, 116, 34, 204, 64, 67, 22, 23, 11, 204, 124, 241, 15, 4, 136, 
229, 244, 23, 79, 223, 114, 113, 100, 66, 114, 241, 124, 114, 241, 121, 65, 73, 
160, 120, 4, 164, 203, 203, 221, 249, 233, 186, 168, 105, 222, 191, 36, 163, 
156, 13, 243, 254, 218, 114, 234, 206, 223, 153, 47, 95, 40, 167, 238, 238, 27, 
243, 205, 11, 228, 88, 207, 223, 154, 46, 159, 1, 115, 189, 243, 102, 187, 122, 
2, 167, 15, 23, 113, 253, 196, 214, 231, 129, 169, 221, 126, 218, 157, 188, 
150, 243, 174, 237, 175, 189, 192, 234, 0, 5, 137, 161, 239, 79, 47, 238, 229, 
245, 168, 39, 79, 9, 83, 66, 12, 28, 169, 121, 36, 36, 161, 20, 91, 152, 153, 
8, 161, 133, 114, 174, 155, 250, 224, 173, 55, 31, 63, 125, 57, 213, 250, 232, 
234, 250, 128, 79, 198, 57, 126, 254, 39, 222, 63, 237, 1, 21, 198, 161, 116, 
54, 101, 45, 86, 223, 121, 235, 254, 97, 158, 46, 111, 15, 45, 50, 100, 20, 
174, 119, 147, 27, 139, 161, 26, 205, 202, 28, 246,
  236, 23
 4, 240, 236, 197, 182, 243, 76, 139, 31, 121, 243, 124, 187, 63, 92, 108, 54, 
11, 31, 237, 71, 159, 185, 57, 133, 132, 9, 235, 97, 189, 26, 134, 204, 120, 
247, 11, 111, 222, 78, 9, 15, 49, 45, 37, 44, 166, 249, 72, 79, 160, 153, 85, 
135, 45, 156, 143, 193, 25, 137, 44, 69, 233, 152, 76, 48, 83, 36, 13, 162, 24, 
92, 90, 223, 17, 139, 66, 137, 197, 224, 187, 248, 138, 59, 67, 97, 33, 221, 
86, 103, 78, 66, 172, 221, 192, 114, 46, 55, 95, 173, 140, 107, 51, 47, 117, 
13, 174, 12, 238, 171, 83, 58, 105, 222, 109, 46, 72, 6, 189, 220, 121, 59, 
101, 212, 216, 157, 62, 128, 245, 172, 209, 157, 220, 67, 220, 90, 93, 89, 45, 
230, 99, 191, 26, 134, 225, 252, 242, 249, 103, 185, 184, 49, 89, 129, 42, 45, 
4, 89, 39, 1, 74, 115, 99, 182, 48, 77, 210, 76, 62, 189, 186, 54, 243, 59, 
111, 76, 235, 186, 74, 204, 81, 235, 106, 189, 17, 57, 133, 214, 149, 238, 169, 
136, 214, 110, 111, 118, 243, 237, 56, 10, 13, 73, 194, 5, 148, 206, 152, 145, 
109, 110, 115, 4, 216, 13, 107, 176, 243, 90, 106, 17
 3, 183, 
 55, 87, 159, 190, 188, 105, 173, 21, 94, 158, 172, 122, 6, 78, 206, 110, 152, 
30, 5, 73, 216, 66, 7, 201, 166, 150, 215, 207, 94, 90, 173, 20, 50, 52, 35, 
50, 22, 111, 195, 2, 99, 51, 230, 16, 180, 236, 88, 192, 138, 195, 221, 234, 
171, 221, 22, 45, 182, 152, 101, 141, 199, 150, 141, 144, 69, 212, 59, 90, 153, 
95, 233, 243, 175, 108, 24, 39, 167, 235, 47, 157, 110, 10, 80, 148, 51, 114, 
70, 183, 162, 36, 100, 113, 207, 121, 52, 151, 215, 21, 72, 246, 213, 189, 151, 
185, 153, 123, 237, 150, 90, 38, 119, 204, 115, 206, 91, 118, 167, 24, 133, 8, 
245, 84, 140, 106, 35, 5, 196, 178, 50, 129, 210, 175, 103, 246, 187, 105, 191, 
48, 226, 139, 101, 80, 90, 156, 59, 78, 175, 217, 102, 22, 143, 148, 71, 34, 
116, 24, 245, 217, 245, 158, 100, 247, 225, 167, 175, 189, 126, 254, 241, 39, 
159, 204, 99, 171, 165, 59, 191, 184, 31, 178, 123, 195, 122, 221, 241, 178, 
160, 171, 88, 157, 216, 211, 67, 155, 14, 83, 155, 102, 184, 239, 247, 187, 
211, 245, 186, 55, 27, 199, 67, 19, 134, 90, 166, 24
 9, 208, 
 218, 88, 87, 107, 167, 178, 69, 231, 54, 69, 38, 253, 106, 55, 223, 206, 154, 
236, 211, 215, 31, 60, 28, 250, 141, 21, 89, 8, 42, 50, 120, 101, 237, 106, 44, 
238, 110, 75, 11, 43, 181, 77, 176, 84, 58, 82, 53, 230, 57, 35, 3, 116, 50, 
35, 218, 60, 123, 198, 28, 84, 6, 90, 232, 208, 226, 48, 207, 83, 68, 107, 121, 
52, 248, 251, 98, 216, 182, 228, 17, 135, 198, 178, 74, 18, 74, 242, 40, 42, 
131, 37, 166, 219, 156, 175, 229, 175, 25, 44, 119, 207, 73, 79, 32, 182, 79, 
251, 205, 107, 244, 214, 174, 63, 89, 221, 189, 79, 239, 15, 215, 31, 173, 46, 
94, 247, 44, 227, 237, 39, 171, 139, 215, 129, 109, 140, 159, 157, 157, 173, 
34, 182, 193, 209, 54, 155, 235, 253, 205, 60, 223, 248, 250, 14, 251, 85, 201, 
219, 10, 143, 212, 52, 237, 219, 124, 32, 22, 239, 62, 141, 164, 227, 21, 197, 
64, 210, 43, 164, 12, 169, 41, 14, 40, 217, 23, 128, 188, 188, 124, 249, 99, 
111, 191, 254, 232, 67, 101, 206, 187, 195, 62, 89, 228, 190, 234, 251, 47, 
220, 127, 253, 201, 203, 43, 82, 159, 59, 122, 181,
  108, 62
 , 72, 38, 237, 183, 251, 67, 155, 251, 218, 197, 20, 187, 22, 103, 125, 127, 
239, 206, 6, 200, 126, 61, 76, 181, 76, 47, 155, 204, 87, 171, 58, 37, 182, 
179, 94, 220, 222, 188, 117, 178, 41, 242, 69, 176, 148, 66, 105, 203, 214, 89, 
138, 68, 8, 51, 205, 83, 153, 129, 44, 180, 44, 198, 230, 38, 47, 40, 125, 61, 
204, 185, 221, 111, 35, 51, 90, 70, 144, 118, 212, 75, 27, 164, 164, 251, 43, 
238, 16, 88, 24, 113, 169, 1, 102, 80, 114, 217, 142, 91, 172, 115, 50, 161, 
120, 29, 106, 191, 162, 247, 180, 226, 103, 15, 225, 61, 129, 238, 244, 161, 
149, 97, 168, 248, 234, 195, 55, 206, 242, 210, 253, 208, 93, 156, 156, 221, 
181, 243, 243, 251, 3, 55, 155, 205, 102, 51, 20, 198, 151, 29, 54, 142, 15, 
119, 227, 60, 182, 217, 241, 53, 243, 50, 43, 246, 251, 249, 217, 203, 23, 211, 
212, 216, 246, 135, 79, 62, 56, 108, 111, 109, 89, 44, 130, 231, 98, 37, 89, 
168, 66, 144, 129, 231, 223, 255, 129, 90, 120, 90, 178, 26, 84, 205, 130, 202, 
140, 206, 228, 94, 172, 116, 103, 39, 103, 183, 187, 2
 35, 166,
  123, 42, 221, 215, 190, 242, 254, 111, 127, 255, 123, 116, 211, 220, 150, 
125, 35, 106, 49, 212, 146, 198, 237, 60, 47, 234, 147, 92, 213, 252, 245, 139, 
243, 7, 231, 119, 167, 156, 116, 150, 227, 118, 222, 135, 174, 199, 169, 175, 
131, 37, 200, 122, 125, 115, 184, 184, 56, 220, 233, 87, 16, 72, 51, 149, 102, 
16, 181, 44, 121, 64, 150, 114, 66, 133, 214, 2, 98, 178, 144, 166, 197, 246, 
105, 165, 18, 158, 154, 200, 35, 9, 29, 11, 165, 97, 180, 212, 177, 253, 82, 
88, 246, 105, 150, 37, 194, 101, 119, 64, 200, 60, 26, 196, 76, 76, 66, 96, 81, 
140, 41, 185, 153, 90, 136, 147, 121, 71, 5, 50, 147, 200, 166, 71, 31, 253, 
144, 187, 79, 157, 236, 205, 126, 236, 11, 15, 95, 91, 87, 75, 29, 14, 135, 45, 
4, 54, 181, 80, 102, 76, 77, 33, 163, 89, 15, 193, 48, 183, 19, 30, 162, 88, 
219, 63, 223, 254, 224, 106, 82, 159, 221, 10, 132, 152, 139, 64, 158, 139, 
242, 111, 38, 165, 90, 206, 251, 144, 91, 78, 243, 148, 249, 244, 249, 203, 
193, 226, 206, 249, 201, 135, 223, 123, 244, 240, 193, 2
 53, 39, 
 63, 252, 240, 100, 213, 237, 247, 251, 219, 195, 110, 202, 243, 187, 39, 119, 
127, 226, 171, 95, 249, 253, 71, 143, 74, 136, 74, 218, 226, 113, 2, 133, 121, 
158, 91, 68, 95, 153, 169, 34, 191, 191, 58, 125, 253, 206, 121, 105, 120, 177, 
221, 117, 195, 186, 121, 233, 54, 235, 78, 104, 100, 63, 212, 195, 20, 169, 
246, 228, 233, 139, 238, 181, 7, 79, 46, 175, 191, 244, 224, 13, 153, 140, 182, 
44, 72, 134, 53, 91, 150, 55, 136, 76, 248, 162, 172, 17, 76, 165, 193, 66, 22, 
65, 55, 175, 158, 251, 92, 214, 178, 152, 41, 3, 22, 122, 131, 41, 35, 168, 
163, 246, 193, 63, 220, 30, 66, 10, 25, 71, 3, 157, 50, 105, 142, 44, 177, 191, 
33, 193, 147, 85, 140, 55, 208, 161, 158, 117, 243, 238, 150, 109, 223, 149, 
183, 183, 187, 155, 253, 126, 235, 83, 131, 210, 105, 235, 79, 158, 190, 251, 
246, 91, 235, 245, 137, 96, 200, 140, 89, 137, 0, 228, 93, 5, 22, 79, 120, 180, 
140, 253, 52, 93, 237, 114, 118, 208, 108, 103, 214, 104, 114, 46, 178, 174, 
146, 6, 154, 188, 120, 169, 181, 206, 125, 121, 
 243, 235
 , 63, 250, 226, 242, 38, 160, 253, 97, 143, 196, 201, 122, 243, 96, 157, 241, 
98, 127, 216, 61, 127, 227, 167, 222, 120, 92, 253, 179, 231, 79, 78, 79, 46, 
182, 187, 113, 63, 198, 218, 234, 215, 126, 228, 171, 143, 62, 249, 232, 178, 
49, 242, 72, 217, 8, 128, 107, 154, 102, 10, 202, 104, 224, 69, 191, 57, 59, 
57, 115, 175, 171, 190, 223, 63, 141, 219, 121, 167, 204, 57, 102, 74, 135, 
195, 222, 156, 219, 221, 173, 59, 63, 125, 178, 123, 239, 237, 55, 223, 190, 
255, 96, 177, 156, 46, 115, 42, 185, 108, 81, 6, 28, 74, 115, 45, 6, 122, 120, 
35, 69, 179, 6, 199, 20, 13, 233, 76, 73, 217, 166, 152, 231, 57, 17, 120, 37, 
225, 18, 139, 144, 147, 74, 26, 124, 217, 180, 131, 152, 238, 163, 118, 91, 0, 
0, 32, 0, 73, 68, 65, 84, 90, 72, 136, 101, 205, 49, 23, 143, 88, 58, 11, 55, 
103, 6, 6, 197, 126, 109, 182, 73, 161, 12, 107, 100, 215, 90, 88, 233, 181, 
122, 109, 158, 118, 210, 193, 213, 158, 220, 238, 62, 123, 113, 117, 178, 57, 
43, 36, 172, 128, 80, 195, 161, 229, 33, 56, 165, 154, 
 105, 66,
  61, 8, 59, 216, 117, 98, 146, 57, 12, 181, 178, 20, 95, 92, 170, 190, 188, 
128, 69, 151, 45, 181, 246, 114, 183, 82, 111, 198, 209, 144, 77, 86, 106, 129, 
251, 225, 197, 120, 241, 108, 111, 23, 245, 242, 241, 227, 174, 148, 143, 31, 
63, 254, 194, 27, 221, 97, 63, 238, 198, 241, 116, 51, 12, 253, 234, 205, 251, 
111, 60, 126, 244, 193, 210, 206, 76, 233, 112, 36, 70, 52, 24, 90, 195, 157, 
161, 190, 247, 133, 47, 98, 154, 31, 61, 191, 124, 183, 188, 254, 250, 189, 7, 
223, 127, 250, 225, 220, 56, 199, 188, 61, 140, 83, 11, 223, 99, 187, 223, 117, 
213, 199, 57, 174, 118, 135, 85, 95, 183, 183, 219, 169, 65, 146, 167, 146, 
145, 153, 96, 157, 198, 150, 10, 162, 53, 177, 41, 90, 203, 221, 120, 88, 173, 
139, 38, 77, 243, 225, 102, 60, 68, 204, 173, 205, 211, 52, 183, 152, 35, 57, 
75, 211, 60, 22, 161, 90, 61, 185, 179, 90, 13, 21, 165, 148, 165, 60, 190, 
186, 5, 199, 149, 82, 38, 37, 129, 72, 17, 42, 237, 112, 235, 94, 9, 42, 166, 
180, 226, 96, 198, 72, 16, 152, 50, 155, 177, 162, 6
 3, 215, 
 254, 113, 42, 111, 231, 252, 189, 239, 253, 224, 245, 135, 15, 187, 85, 191, 
11, 93, 205, 188, 154, 234, 62, 216, 128, 198, 108, 77, 227, 212, 14, 251, 221, 
205, 245, 205, 246, 246, 166, 5, 135, 85, 125, 231, 157, 47, 12, 171, 97, 154, 
71, 129, 146, 9, 78, 115, 20, 163, 209, 187, 138, 82, 175, 246, 135, 219, 219, 
131, 101, 2, 205, 176, 112, 57, 56, 187, 115, 119, 215, 213, 155, 237, 190, 
120, 121, 118, 117, 115, 178, 126, 113, 177, 189, 184, 217, 221, 92, 220, 61, 
173, 42, 247, 238, 61, 228, 163, 31, 30, 117, 70, 59, 110, 23, 58, 108, 86, 27, 
74, 125, 243, 222, 195, 159, 125, 255, 199, 62, 252, 240, 163, 239, 60, 249, 
108, 155, 126, 255, 228, 206, 151, 44, 190, 255, 248, 241, 118, 63, 29, 166, 
113, 142, 72, 206, 135, 241, 208, 178, 32, 241, 193, 163, 167, 119, 239, 173, 
126, 248, 193, 15, 182, 81, 215, 67, 191, 42, 4, 212, 100, 95, 124, 239, 171, 
143, 30, 125, 151, 5, 57, 205, 115, 230, 52, 77, 215, 219, 45, 188, 252, 196, 
123, 95, 234, 122, 223, 244, 197, 203, 184, 29, 115,
  159, 10
 9, 49, 188, 132, 90, 182, 249, 250, 242, 178, 107, 113, 210, 15, 35, 243, 228, 
244, 30, 200, 84, 66, 6, 81, 150, 6, 37, 153, 75, 20, 36, 29, 131, 226, 37, 14, 
91, 244, 43, 147, 199, 254, 133, 117, 125, 166, 229, 238, 133, 149, 226, 171, 
59, 113, 251, 162, 212, 178, 58, 185, 215, 184, 109, 227, 205, 40, 125, 239, 
118, 220, 124, 252, 236, 236, 225, 91, 251, 182, 24, 33, 189, 17, 227, 110, 
126, 126, 125, 251, 236, 217, 211, 155, 171, 253, 120, 184, 164, 91, 87, 125, 
232, 235, 201, 217, 166, 14, 107, 163, 43, 103, 33, 221, 228, 36, 205, 221, 
170, 147, 197, 203, 92, 236, 91, 223, 254, 245, 211, 119, 127, 97, 178, 216, 
71, 6, 139, 68, 152, 213, 161, 186, 233, 79, 124, 227, 231, 126, 248, 225, 71, 
187, 23, 47, 230, 253, 246, 234, 230, 246, 211, 103, 47, 207, 86, 39, 231, 39, 
171, 7, 23, 231, 239, 189, 249, 198, 71, 207, 159, 197, 98, 65, 49, 75, 114, 
221, 15, 171, 121, 126, 255, 205, 183, 255, 228, 87, 127, 242, 39, 223, 120, 
235, 172, 248, 131, 245, 157, 123, 119, 207, 87, 39, 221
 , 103, 2
 15, 221, 103, 207, 159, 95, 222, 222, 180, 140, 113, 138, 72, 137, 154, 231, 
88, 200, 253, 147, 190, 158, 174, 55, 103, 195, 166, 51, 251, 242, 23, 238, 
103, 225, 163, 71, 79, 222, 121, 208, 95, 116, 111, 60, 254, 228, 217, 157, 
119, 30, 26, 230, 79, 159, 94, 125, 252, 76, 71, 169, 169, 152, 89, 41, 165, 
109, 66, 54, 0, 36, 219, 108, 139, 197, 136, 34, 85, 148, 24, 167, 121, 106, 
86, 187, 227, 7, 0, 104, 145, 130, 143, 11, 160, 130, 97, 217, 176, 164, 1, 42, 
62, 156, 192, 139, 32, 14, 103, 139, 175, 198, 134, 83, 154, 75, 244, 245, 169, 
209, 186, 161, 158, 173, 31, 206, 243, 29, 74, 131, 251, 97, 117, 15, 173, 64, 
185, 111, 237, 217, 243, 219, 151, 87, 211, 238, 80, 103, 120, 180, 211, 180, 
25, 165, 47, 171, 251, 181, 99, 181, 237, 178, 47, 183, 124, 206, 192, 209, 
238, 95, 192, 98, 94, 151, 245, 57, 180, 253, 120, 126, 255, 193, 254, 176, 
159, 160, 237, 246, 86, 110, 211, 60, 173, 89, 174, 14, 251, 31, 255, 11, 127, 
225, 193, 151, 191, 248, 155, 255, 240, 255, 186, 56, 93, 
 221, 63,
  189, 55, 244, 245, 242, 217, 243, 207, 214, 43, 231, 249, 201, 106, 248, 233, 
247, 126, 244, 163, 79, 159, 124, 247, 147, 79, 193, 35, 181, 181, 94, 13, 111, 
220, 191, 255, 246, 189, 7, 109, 62, 92, 239, 110, 58, 218, 123, 175, 221, 59, 
89, 173, 237, 164, 127, 126, 253, 114, 60, 204, 238, 86, 139, 111, 247, 147, 
154, 140, 22, 77, 233, 254, 248, 227, 199, 95, 122, 231, 235, 41, 173, 28, 251, 
121, 247, 91, 223, 249, 64, 105, 183, 135, 253, 254, 240, 123, 227, 116, 123, 
152, 226, 179, 171, 219, 152, 51, 149, 78, 11, 129, 198, 42, 185, 201, 205, 
211, 179, 23, 163, 145, 176, 57, 125, 49, 207, 23, 176, 210, 108, 110, 227, 
229, 214, 239, 176, 12, 14, 194, 1, 91, 44, 205, 16, 66, 92, 246, 224, 95, 173, 
243, 150, 152, 183, 142, 181, 88, 213, 70, 121, 7, 134, 212, 22, 22, 59, 35, 
172, 67, 63, 216, 218, 86, 24, 54, 82, 86, 67, 29, 214, 153, 184, 57, 204, 223, 
251, 224, 249, 237, 216, 208, 70, 14, 231, 18, 40, 17, 110, 203, 90, 151, 85, 
179, 9, 201, 148, 80, 104, 77, 33, 3, 220, 210, 1
 38, 192,
  4, 204, 36, 124, 244, 7, 223, 117, 164, 218, 148, 243, 188, 189, 189, 238, 
173, 220, 238, 174, 207, 47, 30, 252, 233, 127, 227, 151, 119, 159, 61, 255, 
223, 254, 235, 191, 209, 15, 171, 190, 84, 103, 190, 241, 214, 235, 207, 30, 
63, 121, 242, 228, 211, 193, 101, 113, 151, 226, 47, 254, 216, 159, 216, 238, 
118, 63, 124, 250, 148, 6, 89, 210, 177, 234, 7, 51, 191, 157, 231, 79, 175, 
111, 214, 165, 214, 90, 187, 174, 107, 147, 166, 195, 212, 175, 55, 109, 187, 
237, 187, 126, 53, 196, 97, 156, 138, 87, 117, 113, 90, 135, 59, 167, 167, 230, 
38, 68, 30, 14, 247, 206, 207, 210, 75, 4, 207, 16, 197, 109, 24, 135, 51, 179, 
156, 155, 66, 83, 219, 61, 121, 246, 98, 158, 115, 241, 105, 155, 179, 128, 
141, 14, 134, 155, 117, 105, 89, 204, 211, 157, 236, 192, 30, 48, 160, 95, 119, 
92, 21, 207, 229, 179, 11, 242, 248, 113, 3, 88, 48, 174, 4, 82, 38, 96, 10, 
149, 156, 15, 180, 1, 214, 98, 186, 241, 238, 20, 84, 30, 174, 188, 110, 96, 
210, 225, 197, 202, 207, 6, 63, 49, 55, 167, 41, 189, 14
 , 85, 19
 7, 198, 67, 254, 193, 247, 126, 112, 59, 13, 17, 169, 241, 186, 116, 103, 154, 
247, 218, 191, 84, 233, 108, 56, 245, 210, 209, 150, 165, 61, 49, 69, 2, 44, 
78, 165, 45, 235, 47, 199, 77, 65, 214, 178, 57, 191, 255, 163, 247, 47, 10, 
145, 109, 190, 188, 190, 25, 54, 155, 95, 248, 231, 126, 233, 221, 47, 189, 
247, 251, 223, 254, 118, 255, 195, 143, 207, 175, 114, 187, 174, 181, 27, 204, 
208, 25, 222, 254, 202, 151, 31, 253, 230, 63, 249, 172, 20, 36, 134, 126, 109, 
62, 252, 51, 63, 242, 149, 237, 60, 190, 80, 165, 237, 44, 120, 152, 99, 183, 
221, 225, 241, 205, 243, 131, 225, 221, 55, 29, 40, 163, 102, 197, 97, 30, 157, 
4, 108, 55, 141, 155, 213, 186, 141, 217, 149, 186, 46, 195, 159, 250, 185, 
159, 115, 103, 237, 188, 250, 234, 252, 181, 215, 134, 206, 205, 181, 157, 102, 
201, 45, 52, 215, 48, 99, 130, 65, 90, 29, 156, 156, 189, 216, 162, 94, 210, 
151, 109, 176, 227, 54, 56, 89, 96, 13, 64, 170, 0, 131, 80, 101, 203, 104, 
118, 244, 253, 47, 91, 17, 203, 222, 245, 145, 149, 91
 , 252, 4
 2, 243, 20, 81, 124, 115, 1, 21, 145, 62, 220, 165, 87, 8, 101, 56, 151, 185, 
25, 204, 207, 87, 39, 167, 142, 196, 209, 114, 196, 174, 14, 10, 92, 238, 198, 
195, 188, 130, 245, 230, 102, 221, 90, 182, 177, 174, 83, 29, 114, 188, 70, 
200, 214, 167, 112, 99, 28, 204, 75, 87, 107, 45, 117, 198, 136, 101, 173, 187, 
52, 44, 62, 7, 97, 63, 183, 79, 62, 125, 124, 245, 252, 229, 87, 126, 234, 181, 
89, 246, 242, 229, 75, 148, 254, 183, 127, 227, 55, 126, 239, 91, 127, 255, 27, 
195, 166, 95, 13, 39, 94, 247, 47, 247, 122, 163, 171, 221, 240, 242, 227, 15, 
207, 223, 120, 227, 244, 164, 191, 122, 254, 188, 55, 107, 39, 51, 188, 152, 
117, 175, 191, 243, 213, 23, 205, 239, 110, 206, 226, 233, 227, 155, 121, 119, 
177, 90, 149, 14, 159, 190, 252, 236, 106, 133, 135, 247, 238, 77, 173, 200, 
226, 118, 60, 220, 236, 118, 99, 204, 211, 28, 142, 210, 247, 157, 132, 215, 
238, 222, 61, 93, 119, 16, 146, 201, 146, 165, 179, 90, 29, 198, 239, 252, 211, 
15, 182, 227, 60, 207, 99, 107, 227, 178, 57, 9
 2, 235, 
 250, 141, 183, 238, 138, 86, 220, 204, 181, 236, 92, 193, 64, 75, 208, 4, 3, 
66, 202, 57, 50, 67, 203, 199, 155, 4, 36, 153, 103, 222, 28, 166, 190, 120, 
87, 139, 12, 150, 18, 83, 70, 182, 133, 53, 10, 77, 57, 77, 44, 57, 237, 88, 
87, 84, 81, 78, 52, 39, 139, 52, 145, 203, 110, 26, 86, 235, 13, 180, 5, 152, 
162, 121, 150, 161, 11, 225, 229, 203, 109, 203, 6, 239, 150, 229, 110, 43, 53, 
5, 107, 135, 200, 25, 104, 154, 246, 101, 115, 86, 225, 125, 237, 86, 39, 103, 
102, 139, 57, 193, 28, 71, 189, 98, 89, 122, 236, 80, 207, 79, 238, 62, 123, 
252, 124, 14, 204, 198, 155, 235, 235, 211, 179, 139, 130, 201, 52, 122, 217, 
192, 189, 174, 86, 183, 159, 62, 246, 211, 90, 75, 221, 172, 78, 236, 102, 119, 
231, 100, 149, 219, 237, 205, 179, 167, 211, 60, 121, 215, 29, 34, 119, 234, 
39, 175, 232, 78, 253, 1, 247, 227, 238, 185, 137, 167, 171, 187, 103, 103, 
172, 229, 179, 171, 219, 237, 152, 89, 242, 227, 237, 246, 229, 110, 119, 24, 
15, 115, 196, 238, 48, 186, 113, 83, 251, 251, 15, 238,
  47, 94,
  30, 73, 154, 194, 246, 135, 84, 55, 131, 57, 223, 198, 20, 51, 27, 43, 34, 
80, 88, 78, 238, 172, 12, 70, 185, 21, 22, 82, 153, 99, 107, 83, 102, 52, 32, 
146, 244, 64, 107, 161, 8, 105, 89, 8, 77, 61, 183, 92, 89, 158, 2, 155, 190, 
182, 214, 174, 183, 99, 75, 173, 123, 235, 202, 34, 216, 45, 88, 20, 211, 196, 
195, 97, 180, 28, 119, 217, 198, 156, 166, 56, 220, 102, 68, 196, 220, 118, 47, 
115, 158, 98, 206, 220, 93, 81, 215, 193, 8, 44, 13, 28, 102, 229, 48, 231, 
245, 229, 118, 190, 125, 166, 54, 97, 58, 180, 235, 79, 149, 99, 30, 110, 231, 
203, 143, 169, 52, 31, 40, 179, 24, 73, 14, 103, 155, 211, 139, 123, 195, 201, 
137, 144, 137, 185, 101, 116, 181, 27, 186, 50, 12, 221, 48, 116, 39, 171, 254, 
189, 175, 255, 232, 97, 154, 178, 77, 110, 190, 223, 205, 44, 189, 87, 219, 29, 
118, 247, 191, 246, 254, 87, 255, 210, 55, 223, 251, 165, 127, 62, 135, 154, 
125, 233, 207, 238, 124, 118, 115, 125, 117, 216, 175, 134, 225, 107, 95, 253, 
202, 151, 222, 121, 135, 57, 61, 123, 254, 244, 
 249, 243
 , 103, 47, 14, 115, 122, 217, 163, 92, 113, 56, 156, 156, 127, 231, 114, 251, 
237, 15, 31, 125, 176, 221, 93, 146, 207, 29, 127, 176, 191, 252, 157, 79, 31, 
125, 255, 163, 71, 79, 174, 175, 183, 115, 131, 172, 120, 5, 120, 113, 126, 86, 
171, 211, 143, 31, 18, 82, 51, 254, 229, 247, 127, 226, 221, 110, 115, 243, 
217, 83, 100, 102, 204, 49, 207, 209, 154, 34, 41, 90, 160, 152, 129, 112, 115, 
130, 209, 184, 189, 153, 111, 183, 237, 102, 140, 155, 67, 220, 236, 230, 219, 
195, 188, 157, 226, 122, 123, 64, 194, 105, 141, 126, 75, 14, 253, 154, 96, 94, 
239, 186, 244, 187, 235, 238, 206, 73, 215, 34, 95, 220, 236, 159, 191, 188, 
221, 77, 115, 147, 90, 224, 208, 226, 48, 239, 139, 175, 78, 129, 194, 90, 189, 
62, 72, 118, 64, 243, 225, 30, 189, 35, 108, 117, 122, 223, 84, 144, 139, 205, 
87, 164, 135, 217, 110, 28, 131, 125, 57, 123, 219, 124, 35, 193, 186, 83, 114, 
240, 146, 60, 121, 93, 113, 48, 150, 186, 185, 96, 153, 171, 237, 54, 195, 234, 
222, 253, 215, 175, 158, 127, 122, 253, 2
 52, 229,
  172, 28, 95, 60, 255, 218, 47, 254, 226, 170, 235, 73, 91, 111, 78, 186, 58, 
156, 118, 171, 247, 190, 240, 176, 216, 100, 212, 110, 127, 187, 219, 94, 214, 
174, 143, 57, 118, 31, 124, 252, 60, 116, 123, 179, 139, 185, 141, 135, 125, 
61, 221, 60, 121, 249, 130, 207, 94, 76, 173, 205, 23, 119, 238, 109, 238, 124, 
237, 221, 175, 6, 219, 111, 126, 247, 187, 187, 235, 219, 168, 29, 66, 170, 
171, 91, 76, 87, 87, 55, 57, 237, 253, 131, 239, 94, 188, 56, 159, 221, 199, 
221, 237, 188, 63, 28, 198, 241, 32, 94, 92, 60, 88, 117, 93, 140, 243, 56, 
222, 126, 227, 103, 126, 242, 230, 242, 58, 25, 144, 211, 41, 225, 131, 221, 
213, 205, 56, 149, 218, 213, 210, 173, 6, 31, 104, 68, 134, 80, 188, 238, 219, 
248, 112, 184, 99, 132, 25, 105, 165, 31, 44, 155, 18, 51, 146, 72, 36, 211, 
169, 240, 20, 162, 35, 6, 119, 163, 249, 201, 233, 79, 124, 249, 171, 191, 255, 
189, 239, 228, 212, 180, 206, 160, 187, 97, 189, 234, 54, 67, 151, 145, 215, 
187, 253, 118, 119, 32, 235, 56, 205, 84, 22, 69, 99, 23
 7, 64, 6
 7, 54, 122, 66, 98, 134, 1, 78, 122, 87, 133, 80, 164, 220, 146, 97, 165, 100, 
234, 112, 72, 200, 109, 97, 182, 205, 105, 65, 163, 220, 161, 14, 106, 130, 98, 
188, 246, 190, 47, 110, 93, 181, 245, 201, 201, 103, 159, 226, 163, 143, 62, 
81, 59, 92, 220, 61, 217, 156, 158, 90, 210, 200, 161, 95, 129, 220, 212, 225, 
27, 63, 249, 245, 231, 163, 93, 93, 93, 221, 222, 94, 173, 175, 54, 197, 134, 
3, 253, 255, 252, 238, 239, 13, 223, 255, 238, 54, 242, 146, 237, 158, 176, 26, 
250, 151, 251, 86, 79, 42, 174, 111, 230, 22, 187, 205, 116, 255, 100, 255, 
250, 249, 221, 111, 254, 252, 207, 127, 233, 229, 246, 127, 248, 157, 223, 253, 
208, 232, 39, 155, 237, 174, 117, 119, 239, 206, 55, 41, 40, 114, 204, 238, 14, 
191, 244, 227, 15, 191, 242, 147, 167, 239, 190, 215, 15, 125, 253, 248, 123, 
223, 253, 191, 255, 222, 38, 199, 187, 183, 151, 239, 126, 225, 237, 31, 204, 
143, 140, 85, 48, 100, 27, 137, 111, 253, 240, 251, 175, 245, 171, 47, 158, 
159, 159, 221, 59, 11, 243, 128, 152, 115, 75, 1
 15, 88, 
 203, 216, 141, 135, 101, 29, 183, 152, 185, 19, 197, 35, 83, 135, 72, 163, 23, 
43, 73, 113, 249, 200, 23, 115, 8, 102, 103, 247, 239, 251, 98, 194, 224, 50, 
44, 58, 212, 32, 19, 19, 206, 179, 205, 122, 21, 184, 220, 141, 243, 60, 89, 
177, 18, 109, 180, 50, 32, 3, 211, 205, 242, 97, 49, 26, 255, 223, 174, 222, 
52, 216, 182, 237, 170, 239, 27, 205, 156, 115, 173, 181, 187, 211, 159, 219, 
247, 175, 83, 243, 132, 26, 100, 12, 36, 32, 161, 194, 178, 229, 38, 14, 169, 
56, 174, 114, 57, 73, 153, 82, 153, 130, 148, 33, 216, 84, 197, 152, 20, 113, 
128, 216, 133, 177, 83, 64, 66, 4, 101, 151, 92, 194, 29, 78, 176, 49, 2, 7, 
97, 225, 72, 86, 143, 158, 164, 247, 158, 94, 115, 95, 123, 223, 237, 239, 61, 
253, 57, 123, 239, 181, 215, 154, 115, 142, 49, 242, 97, 238, 171, 152, 124, 
187, 159, 206, 61, 205, 218, 107, 205, 53, 198, 255, 255, 251, 157, 120, 98, 
67, 143, 169, 55, 11, 10, 0, 34, 12, 165, 167, 111, 125, 167, 34, 162, 243, 29, 
26, 157, 49, 3, 105, 239, 243, 248, 162, 73, 180, 246,
  30, 84,
  13, 250, 218, 36, 115, 6, 199, 224, 1, 54, 55, 182, 175, 191, 248, 77, 36, 
75, 57, 95, 186, 246, 248, 18, 117, 196, 228, 171, 96, 170, 234, 130, 115, 46, 
8, 34, 98, 59, 155, 159, 140, 142, 253, 96, 24, 214, 38, 119, 166, 115, 67, 
141, 217, 136, 195, 153, 102, 224, 16, 188, 163, 149, 141, 179, 65, 103, 251, 
135, 211, 40, 210, 165, 188, 232, 227, 57, 177, 199, 54, 182, 255, 218, 135, 
191, 255, 203, 231, 223, 254, 208, 112, 133, 253, 233, 184, 151, 23, 187, 200, 
227, 215, 117, 5, 170, 81, 189, 121, 26, 131, 31, 86, 56, 89, 25, 176, 251, 
224, 217, 63, 241, 3, 123, 95, 253, 226, 205, 223, 248, 216, 188, 237, 136, 93, 
25, 138, 145, 81, 76, 121, 224, 228, 93, 107, 227, 15, 127, 239, 247, 252, 232, 
255, 250, 107, 254, 210, 230, 187, 255, 252, 251, 175, 255, 171, 175, 104, 210, 
157, 135, 199, 27, 231, 183, 227, 188, 207, 81, 130, 15, 194, 24, 28, 49, 114, 
199, 124, 60, 59, 17, 129, 58, 184, 101, 7, 124, 9, 85, 66, 49, 156, 172, 173, 
228, 216, 23, 82, 80, 73, 105, 0, 18, 161, 154, 98
 , 33, 14
 2, 117, 41, 119, 34, 98, 50, 241, 181, 115, 131, 109, 64, 2, 99, 24, 54, 102, 
128, 32, 220, 84, 192, 21, 48, 133, 1, 153, 46, 0, 17, 24, 17, 128, 125, 157, 
129, 230, 189, 25, 15, 97, 120, 86, 125, 131, 72, 140, 231, 12, 3, 50, 227, 96, 
219, 172, 35, 100, 55, 90, 7, 55, 99, 166, 16, 170, 209, 218, 214, 201, 225, 
161, 170, 213, 132, 231, 207, 93, 116, 204, 0, 232, 189, 39, 231, 77, 50, 57, 
67, 162, 65, 101, 190, 14, 211, 131, 67, 216, 63, 48, 231, 55, 214, 215, 103, 
33, 16, 83, 213, 12, 8, 161, 25, 13, 128, 109, 115, 125, 99, 247, 96, 255, 29, 
87, 207, 60, 60, 56, 208, 78, 64, 45, 246, 221, 241, 201, 209, 214, 241, 225, 
112, 251, 252, 124, 116, 169, 31, 142, 246, 111, 190, 252, 193, 119, 142, 240, 
236, 224, 254, 253, 116, 179, 57, 61, 7, 60, 218, 223, 221, 216, 62, 165, 80, 
123, 26, 51, 251, 230, 236, 248, 241, 15, 248, 231, 127, 253, 23, 185, 106, 20, 
248, 17, 122, 138, 124, 168, 218, 236, 191, 122, 52, 123, 246, 55, 126, 123, 
227, 169, 139, 166, 246, 198, 239, 189, 108, 110,
  128, 94
 , 207, 94, 93, 77, 96, 190, 202, 232, 200, 149, 0, 28, 121, 68, 148, 148, 198, 
163, 122, 231, 193, 113, 93, 23, 48, 6, 32, 149, 206, 1, 24, 26, 251, 208, 103, 
53, 52, 112, 4, 132, 80, 178, 71, 168, 5, 56, 166, 106, 189, 88, 236, 19, 51, 
142, 70, 206, 73, 234, 145, 27, 64, 85, 233, 137, 27, 52, 54, 200, 88, 26, 17, 
150, 65, 197, 150, 117, 1, 2, 239, 146, 72, 234, 179, 170, 161, 37, 208, 96, 
192, 170, 181, 130, 34, 7, 114, 35, 139, 157, 166, 214, 218, 125, 183, 30, 216, 
83, 61, 108, 14, 15, 231, 71, 251, 123, 162, 186, 181, 190, 217, 12, 70, 37, 
254, 20, 66, 99, 64, 82, 250, 35, 46, 4, 205, 27, 227, 102, 255, 222, 195, 163, 
180, 63, 88, 169, 29, 81, 197, 108, 102, 22, 163, 128, 37, 15, 10, 182, 185, 
189, 249, 210, 245, 27, 17, 67, 52, 77, 102, 105, 49, 109, 52, 16, 234, 254, 
188, 221, 232, 98, 59, 57, 53, 63, 243, 68, 229, 214, 14, 109, 44, 251, 71, 
183, 221, 202, 113, 223, 29, 29, 31, 109, 156, 61, 119, 116, 120, 148, 118, 12, 
66, 227, 66, 104, 234, 170, 25, 173, 95, 124, 236
 , 109, 2
 31, 207, 109, 236, 220, 189, 95, 0, 115, 224, 212, 8, 31, 28, 29, 233, 250, 
138, 116, 221, 104, 176, 86, 0, 128, 217, 135, 174, 107, 161, 169, 80, 181, 26, 
14, 66, 93, 87, 245, 0, 148, 65, 217, 76, 82, 31, 207, 156, 185, 48, 59, 142, 
136, 196, 80, 98, 90, 0, 6, 138, 100, 68, 92, 55, 89, 122, 5, 0, 118, 217, 8, 
69, 137, 20, 192, 148, 81, 20, 22, 201, 186, 168, 57, 201, 96, 80, 49, 177, 
147, 174, 131, 192, 96, 6, 105, 106, 21, 137, 129, 245, 7, 174, 94, 193, 16, 
112, 88, 16, 89, 72, 102, 236, 24, 136, 22, 39, 169, 61, 186, 159, 181, 2, 34, 
39, 21, 142, 54, 184, 30, 49, 51, 96, 202, 135, 175, 171, 36, 211, 14, 189, 
122, 24, 59, 174, 128, 195, 27, 175, 191, 120, 50, 61, 130, 216, 95, 121, 236, 
61, 0, 133, 30, 70, 161, 169, 149, 178, 101, 21, 85, 98, 87, 1, 156, 90, 25, 
190, 230, 113, 54, 107, 195, 120, 112, 97, 243, 244, 218, 165, 198, 64, 160, 
240, 51, 28, 64, 198, 241, 160, 50, 192, 233, 60, 123, 223, 244, 105, 126, 208, 
118, 18, 103, 99, 207, 209, 106, 57, 56, 104, 111, 188, 
 25, 7, 9
 1, 105, 208, 252, 238, 237, 116, 250, 226, 147, 135, 157, 160, 131, 209, 218, 
218, 238, 91, 183, 124, 168, 53, 202, 238, 157, 38, 12, 135, 195, 193, 64, 26, 
255, 244, 159, 255, 11, 178, 243, 188, 137, 81, 32, 51, 16, 76, 158, 144, 154, 
154, 12, 129, 26, 45, 53, 125, 2, 19, 24, 79, 214, 216, 80, 147, 136, 145, 247, 
190, 10, 30, 144, 140, 40, 167, 108, 160, 211, 217, 73, 168, 170, 210, 71, 195, 
101, 125, 3, 80, 65, 128, 92, 104, 210, 108, 110, 70, 100, 164, 96, 82, 122, 
207, 132, 104, 160, 96, 49, 231, 20, 35, 35, 12, 235, 90, 53, 59, 26, 95, 5, 
109, 193, 20, 135, 23, 192, 162, 89, 226, 193, 121, 180, 206, 83, 34, 155, 45, 
209, 104, 4, 196, 100, 8, 9, 135, 52, 122, 220, 87, 107, 192, 140, 136, 68, 13, 
107, 235, 2, 246, 199, 15, 180, 219, 49, 235, 5, 184, 10, 149, 83, 171, 216, 
245, 49, 159, 220, 122, 181, 157, 31, 123, 7, 231, 46, 92, 38, 66, 32, 99, 135, 
236, 57, 229, 94, 65, 212, 196, 66, 224, 76, 171, 236, 215, 87, 38, 39, 199, 
135, 93, 215, 69, 30, 54, 237, 140, 201, 135, 
 83, 19, 
 37, 39, 42, 129, 131, 243, 97, 101, 52, 220, 61, 216, 153, 172, 140, 118, 247, 
102, 109, 76, 179, 62, 103, 174, 14, 103, 179, 177, 146, 219, 189, 131, 254, 
59, 99, 214, 220, 47, 22, 183, 238, 215, 227, 21, 32, 198, 80, 173, 157, 62, 
51, 63, 58, 106, 103, 71, 121, 135, 171, 209, 170, 173, 173, 146, 54, 155, 167, 
207, 200, 253, 231, 200, 24, 140, 173, 204, 241, 193, 86, 87, 134, 206, 204, 
141, 42, 66, 50, 49, 77, 58, 168, 56, 73, 4, 95, 155, 18, 8, 51, 57, 43, 0, 52, 
210, 174, 91, 0, 161, 102, 9, 77, 136, 125, 44, 252, 45, 32, 121, 4, 91, 196, 
202, 5, 63, 30, 194, 62, 244, 125, 132, 138, 144, 56, 144, 179, 172, 128, 26, 
147, 196, 164, 154, 83, 85, 57, 231, 76, 197, 156, 106, 130, 220, 163, 107, 76, 
208, 226, 9, 249, 42, 3, 97, 106, 161, 98, 91, 150, 46, 77, 193, 128, 189, 26, 
245, 139, 30, 120, 200, 84, 97, 220, 91, 217, 62, 235, 43, 223, 205, 251, 197, 
206, 235, 105, 126, 172, 154, 65, 209, 251, 58, 120, 34, 135, 204, 110, 218, 
231, 147, 147, 253, 220, 46, 182, 54, 79, 135, 1
 02, 88, 
 168, 9, 33, 212, 170, 100, 153, 178, 192, 225, 254, 225, 250, 202, 216, 41, 1, 
201, 249, 243, 167, 110, 222, 187, 211, 206, 230, 251, 206, 175, 28, 158, 140, 
23, 56, 60, 183, 169, 92, 85, 142, 145, 73, 52, 175, 172, 15, 239, 220, 219, 
221, 90, 59, 35, 138, 25, 49, 19, 246, 44, 173, 232, 94, 236, 229, 181, 87, 
223, 243, 103, 86, 105, 60, 220, 123, 243, 53, 152, 30, 87, 251, 251, 161, 25, 
184, 122, 0, 85, 64, 51, 96, 175, 81, 165, 143, 38, 74, 106, 210, 118, 137, 72, 
60, 115, 33, 155, 24, 102, 196, 233, 44, 119, 237, 148, 204, 38, 227, 213, 154, 
21, 204, 14, 238, 158, 172, 95, 187, 2, 236, 64, 12, 80, 124, 168, 234, 170, 
86, 36, 51, 236, 186, 30, 192, 165, 236, 136, 13, 40, 149, 46, 142, 10, 46, 
163, 16, 76, 224, 195, 100, 114, 74, 223, 122, 11, 204, 76, 196, 136, 123, 19, 
6, 0, 208, 174, 183, 152, 212, 16, 154, 65, 5, 102, 106, 232, 16, 19, 248, 26, 
184, 70, 139, 88, 175, 0, 86, 4, 153, 235, 53, 12, 217, 96, 170, 106, 10, 170, 
4, 76, 4, 138, 28, 220, 214, 218, 0, 93, 206, 11,
  136, 71
 , 55, 167, 221, 34, 167, 40, 73, 12, 60, 64, 133, 1, 155, 65, 112, 30, 28, 59, 
118, 62, 46, 186, 195, 189, 131, 28, 187, 243, 87, 174, 153, 162, 58, 231, 0, 
200, 15, 68, 77, 205, 98, 191, 216, 219, 217, 221, 90, 25, 19, 123, 111, 120, 
97, 123, 107, 18, 6, 7, 211, 217, 116, 144, 167, 97, 52, 98, 149, 156, 209, 13, 
153, 124, 225, 42, 172, 142, 87, 238, 216, 110, 92, 38, 130, 209, 49, 95, 188, 
118, 241, 27, 175, 220, 81, 55, 58, 153, 221, 59, 188, 255, 214, 249, 183, 125, 
100, 117, 251, 204, 221, 87, 95, 60, 126, 184, 3, 71, 39, 232, 144, 156, 99, 
199, 41, 217, 0, 131, 243, 57, 231, 236, 144, 78, 222, 184, 126, 25, 16, 20, 
140, 13, 205, 8, 217, 128, 6, 53, 143, 194, 42, 0, 132, 170, 97, 50, 96, 90, 
107, 198, 196, 142, 208, 58, 77, 70, 118, 52, 157, 174, 174, 172, 50, 160, 228, 
56, 91, 204, 222, 186, 191, 191, 189, 125, 118, 123, 101, 84, 234, 239, 10, 89, 
16, 13, 11, 183, 133, 24, 249, 244, 229, 107, 47, 61, 255, 12, 213, 142, 107, 
223, 71, 217, 59, 152, 14, 70, 77, 229, 92, 20
 4, 41, 1
 67, 46, 4, 170, 28, 107, 22, 3, 32, 139, 115, 48, 37, 85, 237, 118, 64, 90, 
64, 210, 246, 0, 164, 37, 150, 210, 87, 22, 52, 5, 0, 14, 6, 144, 102, 237, 
244, 232, 238, 225, 131, 55, 167, 211, 69, 183, 200, 25, 106, 115, 35, 12, 35, 
244, 3, 98, 14, 148, 199, 117, 174, 88, 171, 192, 153, 116, 209, 45, 166, 135, 
59, 78, 244, 204, 185, 139, 82, 120, 41, 224, 145, 92, 217, 36, 159, 236, 31, 
247, 41, 97, 97, 199, 4, 30, 112, 184, 122, 241, 2, 82, 94, 244, 243, 227, 10, 
54, 222, 251, 20, 13, 86, 56, 120, 98, 118, 196, 132, 110, 48, 26, 48, 115, 
219, 246, 85, 221, 40, 66, 162, 112, 253, 230, 46, 213, 43, 89, 161, 217, 216, 
190, 247, 202, 115, 147, 225, 176, 153, 140, 159, 250, 238, 239, 125, 231, 135, 
255, 212, 229, 63, 254, 221, 227, 107, 79, 242, 218, 182, 249, 97, 82, 155, 29, 
236, 246, 177, 147, 44, 40, 114, 239, 197, 175, 57, 230, 101, 98, 183, 128, 50, 
205, 66, 24, 14, 134, 205, 120, 60, 110, 170, 170, 170, 125, 19, 120, 60, 169, 
135, 30, 155, 224, 7, 117, 131, 230, 210, 66, 23
 1, 139, 
 57, 160, 152, 116, 9, 85, 16, 144, 16, 217, 17, 5, 92, 66, 167, 172, 164, 29, 
9, 216, 249, 149, 171, 79, 190, 111, 107, 124, 90, 147, 245, 217, 12, 213, 121, 
74, 34, 125, 204, 93, 206, 134, 54, 108, 234, 82, 148, 65, 70, 199, 245, 57, 
96, 7, 18, 121, 120, 1, 253, 16, 69, 220, 202, 5, 196, 128, 112, 15, 85, 74, 
142, 5, 201, 28, 97, 18, 156, 37, 215, 129, 33, 79, 192, 64, 53, 90, 58, 1, 77, 
140, 82, 187, 28, 198, 58, 26, 13, 71, 129, 135, 3, 87, 87, 40, 22, 231, 179, 
89, 63, 159, 158, 58, 123, 202, 215, 131, 37, 251, 213, 121, 21, 16, 181, 156, 
245, 193, 254, 30, 4, 67, 114, 132, 106, 64, 224, 221, 227, 79, 60, 126, 253, 
141, 235, 237, 98, 190, 235, 249, 225, 124, 118, 118, 107, 203, 49, 23, 144, 
167, 97, 168, 7, 126, 115, 109, 237, 240, 104, 186, 190, 50, 100, 162, 205, 
245, 245, 24, 167, 179, 121, 50, 79, 198, 110, 239, 245, 235, 119, 95, 248, 
186, 27, 175, 38, 77, 131, 225, 164, 89, 25, 94, 58, 181, 5, 46, 164, 36, 74, 
60, 127, 248, 96, 182, 127, 232, 66, 128, 216, 238, 188
 , 242, 1
 38, 60, 121, 14, 57, 154, 85, 133, 77, 107, 108, 102, 89, 104, 201, 194, 36, 
83, 237, 187, 80, 55, 170, 194, 220, 152, 194, 120, 117, 243, 137, 199, 165, 
105, 216, 32, 179, 243, 3, 8, 152, 176, 170, 7, 131, 225, 136, 124, 8, 46, 28, 
238, 223, 39, 85, 91, 214, 33, 105, 216, 12, 215, 198, 147, 145, 111, 136, 66, 
86, 67, 130, 83, 235, 43, 139, 62, 31, 207, 162, 198, 236, 2, 86, 21, 107, 122, 
52, 40, 118, 131, 245, 242, 210, 102, 196, 96, 134, 20, 169, 30, 7, 70, 223, 
221, 94, 46, 150, 1, 212, 84, 28, 71, 177, 46, 97, 206, 192, 121, 78, 44, 30, 
166, 205, 56, 140, 155, 48, 170, 221, 160, 9, 195, 161, 175, 235, 208, 48, 129, 
229, 172, 113, 239, 112, 190, 247, 224, 129, 196, 238, 236, 229, 111, 7, 205, 
160, 128, 106, 232, 173, 151, 136, 170, 89, 101, 127, 111, 103, 99, 117, 66, 
80, 34, 202, 136, 0, 147, 209, 224, 234, 133, 203, 215, 223, 124, 35, 69, 125, 
184, 63, 61, 127, 230, 188, 34, 34, 169, 153, 97, 54, 207, 225, 212, 246, 250, 
206, 254, 145, 154, 219, 92, 31, 158, 222, 92, 12
 5, 253, 
 16, 155, 212, 242, 176, 158, 182, 40, 237, 241, 203, 159, 250, 205, 193, 246, 
133, 131, 227, 35, 38, 38, 31, 200, 135, 213, 213, 77, 171, 6, 126, 50, 62, 
123, 229, 202, 202, 19, 151, 129, 120, 250, 226, 215, 140, 53, 27, 41, 22, 130, 
7, 160, 193, 201, 81, 75, 182, 227, 157, 71, 102, 242, 142, 16, 128, 9, 22, 11, 
15, 220, 136, 239, 23, 93, 159, 14, 223, 120, 237, 245, 237, 179, 231, 46, 110, 
111, 86, 21, 13, 155, 197, 211, 143, 95, 171, 39, 235, 227, 149, 149, 137, 73, 
154, 207, 14, 247, 31, 72, 201, 7, 32, 136, 105, 112, 253, 171, 175, 191, 112, 
119, 231, 134, 88, 86, 13, 76, 4, 136, 57, 107, 18, 19, 208, 73, 221, 136, 169, 
18, 32, 48, 43, 56, 191, 182, 94, 146, 90, 72, 196, 68, 164, 6, 58, 183, 246, 
54, 200, 145, 50, 144, 2, 162, 18, 56, 67, 138, 41, 82, 108, 199, 72, 163, 21, 
25, 12, 92, 83, 175, 15, 154, 122, 92, 185, 97, 29, 92, 85, 57, 135, 6, 42, 
170, 177, 167, 147, 46, 222, 123, 176, 59, 235, 90, 79, 178, 125, 234, 84, 76, 
137, 73, 2, 112, 150, 174, 12, 80, 103, 237, 
 172, 107
 , 23, 54, 30, 151, 2, 49, 74, 249, 67, 203, 213, 39, 158, 232, 132, 83, 61, 
185, 123, 239, 245, 119, 42, 52, 21, 163, 17, 144, 137, 35, 85, 24, 48, 163, 
169, 89, 127, 237, 242, 197, 131, 221, 19, 66, 120, 226, 252, 202, 218, 198, 
232, 206, 148, 78, 14, 32, 165, 62, 245, 41, 84, 195, 149, 139, 143, 181, 243, 
163, 193, 112, 109, 150, 122, 200, 189, 155, 185, 163, 253, 227, 233, 206, 254, 
197, 205, 245, 189, 175, 126, 182, 97, 200, 82, 114, 202, 8, 168, 8, 240, 190, 
119, 125, 155, 164, 152, 129, 50, 20, 230, 135, 24, 84, 89, 77, 45, 31, 206, 
89, 51, 25, 54, 167, 174, 190, 125, 125, 236, 137, 144, 154, 177, 243, 39, 227, 
186, 86, 65, 0, 55, 24, 84, 146, 230, 176, 196, 255, 46, 171, 247, 158, 120, 
88, 55, 100, 42, 34, 41, 246, 228, 234, 172, 186, 72, 57, 167, 228, 29, 87, 
193, 155, 232, 35, 44, 51, 56, 116, 158, 213, 80, 122, 48, 5, 11, 18, 143, 211, 
244, 142, 158, 220, 130, 176, 8, 181, 83, 96, 68, 244, 142, 16, 216, 153, 156, 
219, 160, 122, 224, 6, 85, 61, 168, 253, 160, 174, 2
 35, 166,
  10, 158, 21, 52, 70, 109, 219, 184, 72, 185, 91, 116, 139, 69, 223, 199, 249, 
108, 122, 100, 41, 173, 109, 156, 2, 228, 28, 35, 50, 32, 87, 22, 163, 0, 64, 
112, 59, 59, 251, 25, 65, 97, 73, 58, 7, 175, 64, 6, 74, 171, 43, 171, 223, 
255, 193, 15, 253, 230, 31, 124, 250, 88, 100, 103, 111, 239, 234, 197, 203, 
152, 163, 2, 48, 91, 178, 152, 82, 166, 16, 18, 178, 95, 217, 126, 235, 213, 
27, 126, 251, 113, 191, 182, 234, 71, 245, 24, 22, 19, 231, 54, 222, 243, 254, 
87, 218, 234, 202, 149, 199, 174, 127, 237, 153, 247, 125, 228, 79, 127, 243, 
15, 191, 120, 241, 125, 223, 209, 206, 230, 193, 116, 182, 191, 123, 250, 236, 
165, 85, 182, 23, 190, 254, 185, 199, 182, 38, 101, 110, 140, 8, 89, 65, 12, 
206, 158, 59, 141, 6, 128, 14, 0, 16, 25, 208, 131, 99, 99, 54, 45, 20, 115, 
52, 68, 81, 108, 231, 135, 135, 15, 110, 49, 7, 64, 86, 114, 140, 174, 10, 78, 
98, 215, 165, 200, 200, 5, 13, 103, 68, 128, 68, 236, 71, 195, 1, 33, 184, 154, 
51, 19, 128, 117, 189, 246, 73, 85, 101, 101, 82, 163
 , 22, 24
 2, 54, 149, 114, 143, 99, 237, 45, 69, 201, 173, 101, 205, 243, 125, 208, 35, 
17, 15, 52, 200, 50, 199, 174, 39, 98, 66, 84, 231, 200, 108, 48, 240, 147, 38, 
12, 130, 27, 12, 235, 213, 97, 141, 196, 39, 49, 30, 206, 98, 159, 250, 190, 
139, 169, 143, 192, 80, 135, 102, 184, 209, 116, 247, 102, 162, 42, 210, 157, 
187, 112, 33, 75, 116, 8, 230, 157, 15, 65, 85, 37, 181, 74, 245, 222, 206, 14, 
26, 166, 172, 70, 128, 140, 37, 74, 134, 0, 26, 243, 233, 183, 95, 186, 255, 
214, 13, 9, 112, 227, 238, 189, 43, 87, 174, 2, 120, 32, 131, 12, 16, 83, 143, 
137, 3, 109, 108, 159, 189, 117, 251, 230, 145, 224, 229, 205, 77, 127, 234, 
162, 249, 208, 132, 94, 23, 139, 197, 217, 167, 7, 211, 227, 209, 169, 237, 
122, 50, 222, 187, 125, 231, 210, 19, 79, 223, 126, 233, 185, 39, 191, 253, 59, 
31, 222, 191, 191, 125, 241, 138, 243, 245, 201, 171, 95, 183, 233, 12, 182, 
86, 34, 64, 6, 246, 136, 211, 249, 244, 112, 190, 184, 124, 238, 108, 201, 46, 
32, 17, 34, 155, 99, 32, 71, 70, 90, 10, 4, 5, 0, 7
 5, 70, 1
 28, 8, 14, 140, 13, 9, 153, 84, 92, 59, 157, 198, 118, 182, 88, 204, 13, 48, 
155, 49, 60, 138, 234, 229, 232, 107, 68, 96, 231, 106, 207, 98, 168, 109, 151, 
114, 86, 98, 174, 131, 183, 108, 143, 210, 65, 164, 6, 110, 126, 247, 235, 22, 
79, 48, 52, 32, 42, 139, 93, 174, 134, 228, 183, 216, 51, 66, 225, 31, 3, 160, 
128, 7, 68, 24, 6, 30, 15, 154, 81, 83, 27, 242, 65, 215, 45, 230, 221, 162, 
79, 41, 37, 36, 172, 170, 106, 48, 30, 48, 18, 128, 246, 34, 39, 211, 99, 201, 
169, 102, 222, 56, 181, 133, 142, 201, 59, 231, 235, 106, 188, 217, 79, 143, 
85, 103, 237, 60, 158, 76, 143, 77, 204, 36, 163, 33, 150, 102, 33, 34, 161, 
230, 212, 65, 37, 77, 205, 71, 243, 233, 253, 227, 227, 233, 124, 62, 25, 142, 
200, 76, 60, 88, 207, 206, 32, 19, 221, 74, 233, 254, 254, 73, 187, 232, 246, 
98, 63, 155, 205, 83, 187, 63, 104, 134, 18, 219, 45, 166, 205, 115, 231, 167, 
187, 59, 239, 252, 192, 7, 191, 250, 59, 159, 124, 223, 159, 254, 207, 79, 57, 
247, 242, 51, 207, 60, 249, 206, 119, 107, 18, 21
 5, 207, 
 247, 95, 120, 198, 99, 70, 17, 20, 117, 150, 13, 253, 234, 100, 99, 101, 82, 
248, 30, 100, 72, 192, 1, 151, 152, 59, 180, 130, 143, 92, 178, 12, 204, 0, 
128, 72, 205, 136, 132, 200, 140, 16, 251, 212, 247, 150, 114, 236, 99, 18, 88, 
198, 168, 11, 205, 148, 60, 6, 135, 160, 137, 7, 193, 167, 216, 101, 73, 25, 
45, 203, 120, 60, 64, 5, 1, 80, 100, 68, 51, 85, 49, 114, 233, 232, 54, 145, 
104, 246, 104, 70, 136, 85, 168, 214, 86, 121, 50, 92, 13, 97, 163, 30, 132, 
44, 112, 116, 176, 99, 218, 2, 66, 51, 108, 40, 132, 189, 105, 187, 232, 218, 
121, 151, 208, 200, 215, 77, 51, 25, 58, 64, 164, 66, 186, 34, 99, 202, 93, 63, 
155, 30, 170, 164, 181, 83, 167, 171, 102, 211, 7, 231, 124, 112, 161, 33, 110, 
128, 91, 65, 57, 220, 219, 145, 62, 17, 168, 152, 41, 150, 128, 45, 170, 194, 
254, 225, 189, 115, 79, 61, 245, 220, 87, 158, 125, 250, 201, 111, 251, 194, 
51, 159, 93, 116, 237, 189, 135, 247, 38, 79, 188, 205, 68, 17, 64, 17, 51, 
104, 215, 140, 142, 197, 181, 166, 60, 89, 219, 187, 181
 , 147, 2
 39, 220, 211, 69, 14, 236, 198, 87, 46, 175, 123, 94, 219, 220, 190, 243, 234, 
27, 23, 158, 254, 182, 139, 239, 122, 215, 55, 63, 255, 251, 239, 250, 240, 15, 
112, 53, 184, 245, 214, 235, 219, 27, 91, 103, 54, 214, 190, 241, 236, 231, 3, 
138, 2, 100, 80, 69, 2, 224, 178, 226, 93, 18, 144, 200, 153, 57, 37, 114, 136, 
64, 4, 86, 112, 33, 69, 81, 177, 36, 155, 171, 99, 69, 15, 64, 200, 117, 39, 
93, 240, 67, 134, 72, 61, 59, 71, 102, 9, 150, 213, 40, 203, 81, 163, 88, 6, 
132, 194, 203, 91, 168, 168, 48, 99, 83, 59, 181, 180, 68, 101, 43, 168, 22, 
222, 148, 246, 162, 10, 57, 1, 18, 213, 131, 26, 102, 141, 231, 42, 76, 134, 
195, 225, 250, 250, 38, 134, 213, 213, 245, 237, 249, 252, 192, 85, 131, 89, 
23, 219, 147, 227, 249, 225, 49, 198, 197, 218, 217, 43, 149, 15, 133, 70, 135, 
223, 130, 89, 153, 246, 109, 127, 176, 123, 98, 201, 48, 235, 197, 171, 79, 
185, 122, 200, 129, 216, 133, 102, 188, 38, 28, 222, 122, 235, 53, 132, 188, 
183, 127, 36, 150, 129, 44, 153, 244, 73, 157, 25, 64
 , 126, 1
 76, 243, 96, 125, 251, 204, 179, 95, 127, 246, 202, 185, 203, 120, 141, 158, 
125, 254, 43, 243, 121, 123, 227, 246, 131, 75, 231, 175, 85, 21, 131, 18, 152, 
102, 30, 244, 131, 97, 84, 225, 245, 43, 222, 252, 241, 221, 91, 219, 79, 94, 
109, 170, 201, 173, 235, 223, 208, 62, 207, 115, 58, 53, 24, 104, 78, 179, 131, 
195, 141, 11, 151, 223, 252, 250, 87, 166, 15, 110, 87, 163, 149, 51, 215, 158, 
152, 61, 184, 127, 248, 230, 11, 233, 104, 207, 57, 84, 32, 73, 164, 76, 198, 
76, 74, 192, 100, 6, 72, 222, 136, 203, 84, 211, 128, 201, 216, 152, 150, 41, 
69, 6, 52, 84, 210, 66, 16, 242, 85, 133, 200, 68, 86, 55, 97, 52, 172, 227, 
162, 165, 97, 149, 22, 142, 30, 189, 8, 27, 3, 187, 16, 23, 41, 27, 34, 114, 
82, 233, 37, 137, 74, 211, 120, 34, 144, 92, 218, 75, 180, 132, 76, 3, 57, 200, 
45, 32, 2, 50, 0, 74, 111, 61, 218, 241, 254, 66, 226, 162, 242, 222, 64, 54, 
207, 156, 109, 111, 77, 185, 106, 142, 143, 142, 142, 142, 118, 167, 251, 59, 
169, 91, 172, 12, 199, 27, 103, 46, 129, 154, 16
 , 46, 15
 3, 228, 102, 177, 79, 109, 59, 87, 149, 108, 170, 128, 193, 251, 243, 87, 31, 
11, 62, 56, 36, 36, 95, 215, 43, 57, 229, 152, 176, 61, 57, 94, 204, 231, 129, 
8, 145, 44, 137, 196, 254, 120, 62, 237, 226, 172, 89, 61, 123, 227, 173, 155, 
79, 61, 249, 118, 131, 180, 61, 216, 190, 114, 241, 218, 11, 215, 191, 185, 
187, 183, 219, 182, 179, 170, 89, 83, 131, 132, 58, 245, 117, 244, 192, 221, 
60, 108, 172, 15, 47, 63, 53, 184, 242, 182, 221, 231, 191, 88, 77, 218, 44, 
253, 195, 55, 95, 93, 189, 247, 192, 63, 253, 222, 48, 26, 29, 237, 29, 173, 
95, 190, 176, 125, 241, 201, 187, 207, 63, 7, 147, 245, 247, 124, 199, 31, 191, 
188, 245, 182, 87, 254, 209, 207, 123, 75, 168, 172, 64, 113, 233, 151, 96, 
112, 0, 232, 0, 209, 200, 33, 20, 194, 56, 23, 80, 26, 34, 23, 20, 69, 73, 162, 
144, 89, 237, 3, 3, 178, 115, 200, 148, 128, 216, 1, 48, 43, 208, 168, 30, 230, 
209, 188, 246, 33, 47, 22, 73, 20, 148, 200, 121, 192, 210, 70, 212, 182, 203, 
42, 134, 42, 85, 85, 153, 169, 194, 82, 129, 160, 1
 66, 106,
  104, 64, 14, 180, 3, 10, 128, 108, 42, 150, 45, 102, 166, 62, 1, 206, 17, 31, 
206, 99, 186, 191, 187, 27, 187, 238, 104, 111, 239, 228, 248, 96, 62, 59, 114, 
62, 56, 199, 189, 196, 44, 145, 124, 5, 136, 170, 106, 217, 218, 233, 44, 165, 
30, 16, 140, 73, 77, 204, 236, 244, 197, 243, 190, 25, 18, 17, 179, 115, 190, 
9, 190, 154, 247, 221, 188, 111, 213, 251, 201, 250, 42, 170, 4, 114, 136, 248, 
210, 115, 207, 27, 168, 177, 31, 14, 142, 206, 159, 59, 183, 191, 115, 23, 65, 
21, 240, 252, 249, 115, 175, 188, 246, 210, 108, 118, 116, 251, 198, 235, 147, 
201, 187, 178, 133, 46, 194, 190, 57, 162, 236, 67, 197, 205, 138, 100, 197, 0, 
163, 243, 23, 135, 27, 107, 131, 181, 205, 75, 239, 253, 174, 155, 119, 142, 
133, 104, 237, 226, 229, 126, 222, 54, 161, 217, 186, 248, 196, 115, 159, 254, 
228, 123, 63, 244, 174, 111, 126, 254, 179, 79, 174, 77, 94, 251, 212, 191, 
169, 202, 153, 75, 52, 166, 126, 153, 107, 68, 2, 35, 44, 203, 25, 64, 67, 38, 
96, 96, 4, 116, 68, 14, 17, 141, 137, 202, 8
 3, 138, 
 192, 57, 135, 72, 14, 193, 68, 21, 144, 216, 171, 168, 26, 55, 227, 113, 223, 
45, 42, 14, 189, 182, 106, 162, 64, 74, 68, 166, 128, 38, 128, 109, 20, 203, 
82, 85, 161, 80, 217, 16, 64, 129, 213, 64, 21, 13, 140, 80, 138, 48, 167, 144, 
163, 28, 176, 51, 16, 81, 235, 37, 194, 98, 214, 101, 149, 124, 191, 109, 79, 
52, 165, 101, 244, 202, 12, 1, 114, 206, 113, 62, 243, 97, 104, 34, 109, 187, 
136, 125, 143, 68, 64, 200, 5, 180, 32, 81, 227, 226, 218, 147, 239, 96, 40, 
49, 68, 30, 140, 70, 25, 117, 145, 100, 119, 231, 176, 61, 188, 207, 206, 129, 
137, 101, 8, 222, 61, 245, 212, 123, 198, 147, 225, 233, 51, 167, 124, 177, 
176, 48, 22, 0, 247, 248, 234, 197, 231, 95, 60, 125, 231, 222, 173, 155, 119, 
111, 109, 110, 173, 76, 54, 46, 181, 93, 158, 46, 22, 236, 216, 66, 37, 174, 
226, 164, 144, 123, 77, 177, 111, 187, 164, 58, 186, 112, 121, 239, 249, 255, 
219, 153, 206, 14, 142, 135, 195, 193, 201, 193, 193, 202, 153, 173, 141, 205, 
179, 179, 163, 67, 94, 196, 215, 62, 255, 241, 128, 1
 89, 144,
  33, 96, 6, 42, 80, 184, 210, 106, 46, 108, 45, 118, 94, 133, 16, 128, 153, 
212, 179, 67, 15, 228, 8, 72, 10, 245, 17, 213, 150, 45, 76, 68, 115, 170, 128, 
166, 198, 38, 166, 81, 97, 33, 210, 41, 136, 153, 17, 138, 145, 152, 177, 131, 
105, 59, 207, 104, 109, 31, 197, 84, 69, 71, 171, 67, 2, 83, 165, 226, 26, 40, 
220, 97, 32, 32, 64, 7, 92, 178, 92, 90, 62, 7, 169, 159, 155, 96, 138, 208, 
158, 156, 64, 41, 154, 211, 242, 64, 160, 170, 89, 82, 9, 197, 204, 166, 51, 
243, 163, 62, 246, 42, 194, 64, 236, 24, 0, 68, 109, 122, 184, 183, 119, 255, 
126, 237, 240, 236, 249, 43, 76, 68, 228, 136, 185, 110, 42, 73, 74, 14, 217, 
147, 227, 0, 108, 34, 164, 78, 169, 226, 115, 23, 54, 214, 214, 78, 57, 114, 
88, 254, 51, 64, 130, 12, 102, 202, 242, 142, 183, 189, 227, 225, 131, 187, 
135, 39, 179, 189, 135, 7, 204, 195, 89, 47, 247, 111, 223, 198, 241, 74, 189, 
186, 85, 49, 177, 51, 64, 6, 163, 238, 112, 127, 120, 230, 178, 80, 48, 199, 
32, 194, 62, 172, 76, 86, 239, 221, 223, 185, 250, 182, 
 199, 207
 , 188, 243, 169, 155, 95, 251, 234, 229, 51, 91, 111, 190, 250, 18, 22, 144, 
43, 47, 125, 72, 217, 92, 32, 95, 218, 5, 8, 184, 54, 8, 169, 237, 19, 80, 22, 
163, 172, 89, 197, 5, 165, 170, 54, 43, 53, 50, 54, 148, 194, 32, 54, 71, 128, 
110, 89, 158, 39, 37, 2, 64, 210, 34, 85, 42, 214, 2, 52, 34, 20, 51, 21, 88, 
116, 81, 83, 174, 107, 231, 28, 153, 136, 146, 20, 226, 243, 163, 202, 188, 22, 
32, 103, 193, 40, 2, 64, 82, 75, 144, 115, 204, 5, 252, 138, 180, 76, 177, 21, 
21, 144, 82, 97, 64, 137, 168, 119, 179, 69, 135, 179, 153, 50, 51, 150, 78, 
63, 117, 113, 122, 178, 45, 0, 133, 0, 0, 22, 113, 73, 68, 65, 84, 255, 246, 
173, 220, 117, 144, 250, 243, 87, 174, 57, 174, 128, 153, 17, 8, 153, 185, 202, 
185, 31, 58, 255, 216, 219, 222, 253, 141, 47, 125, 134, 81, 136, 84, 179, 128, 
164, 129, 198, 227, 157, 219, 213, 198, 217, 36, 130, 136, 160, 86, 30, 34, 
138, 178, 178, 182, 85, 15, 134, 125, 234, 142, 142, 142, 6, 27, 235, 123, 216, 
100, 12, 218, 165, 124, 124, 216, 108, 109, 105
 , 215, 4
 6, 102, 71, 84, 187, 116, 212, 111, 60, 254, 206, 69, 212, 80, 143, 82, 204, 
205, 100, 34, 204, 113, 222, 46, 230, 221, 120, 99, 243, 248, 232, 196, 42, 
211, 212, 226, 35, 74, 162, 0, 36, 65, 36, 135, 100, 70, 92, 252, 73, 175, 188, 
124, 227, 133, 151, 95, 85, 30, 178, 243, 103, 86, 221, 71, 255, 203, 63, 245, 
59, 207, 124, 181, 169, 71, 201, 8, 133, 60, 155, 65, 88, 244, 157, 33, 228, 
220, 43, 55, 36, 91, 42, 206, 170, 41, 114, 68, 38, 228, 146, 130, 43, 242, 13, 
75, 102, 41, 197, 46, 106, 84, 85, 201, 227, 213, 9, 155, 137, 33, 34, 42, 168, 
154, 101, 67, 196, 242, 66, 97, 14, 164, 7, 36, 64, 7, 32, 96, 10, 142, 65, 
164, 128, 225, 113, 185, 30, 42, 117, 100, 66, 198, 2, 87, 207, 41, 231, 152, 
212, 150, 106, 31, 53, 57, 120, 120, 123, 247, 193, 125, 231, 29, 19, 168, 228, 
75, 215, 158, 88, 194, 17, 8, 171, 186, 17, 45, 131, 90, 204, 41, 3, 130, 89, 
33, 99, 150, 212, 171, 198, 121, 235, 136, 218, 195, 147, 24, 117, 56, 30, 2, 
160, 8, 37, 181, 157, 131, 227, 170, 153, 204, 247
 , 102, 7
 , 237, 188, 89, 116, 237, 198, 118, 56, 115, 177, 61, 216, 69, 149, 233, 253, 
251, 97, 60, 82, 73, 218, 45, 252, 104, 60, 58, 119, 73, 76, 137, 41, 245, 209, 
58, 129, 74, 9, 116, 126, 114, 84, 123, 71, 132, 71, 39, 15, 75, 59, 16, 204, 
176, 84, 34, 179, 2, 178, 1, 131, 81, 193, 252, 1, 2, 58, 108, 88, 207, 109, 
227, 157, 195, 217, 63, 248, 216, 63, 207, 205, 112, 237, 204, 217, 54, 101, 
77, 209, 91, 6, 3, 68, 239, 168, 190, 123, 115, 143, 134, 167, 255, 202, 15, 
253, 240, 213, 237, 245, 127, 244, 47, 62, 121, 227, 213, 47, 76, 202, 101, 
202, 75, 223, 13, 100, 66, 68, 102, 223, 38, 49, 128, 166, 246, 193, 99, 142, 
10, 134, 84, 184, 152, 90, 122, 104, 6, 4, 130, 236, 204, 10, 77, 73, 151, 162, 
180, 130, 115, 36, 134, 37, 16, 28, 151, 249, 230, 226, 47, 41, 111, 112, 8, 
128, 34, 8, 100, 50, 63, 57, 58, 124, 120, 79, 178, 177, 243, 206, 59, 82, 9, 
117, 125, 234, 236, 69, 65, 116, 6, 132, 88, 143, 70, 146, 197, 84, 21, 245, 
96, 247, 1, 0, 44, 225, 109, 192, 228, 192, 124, 115, 18
 8, 115, 
 91, 39, 39, 174, 94, 255, 189, 127, 251, 207, 255, 196, 71, 62, 44, 57, 11, 
138, 102, 82, 237, 1, 164, 174, 154, 147, 147, 185, 220, 186, 119, 178, 223, 
110, 188, 255, 123, 23, 237, 20, 212, 114, 78, 182, 183, 71, 129, 82, 140, 43, 
103, 30, 31, 77, 214, 142, 166, 199, 33, 212, 211, 233, 116, 180, 182, 238, 
106, 175, 97, 144, 187, 164, 38, 85, 195, 154, 81, 213, 208, 212, 108, 217, 56, 
146, 194, 89, 7, 95, 90, 164, 37, 38, 101, 8, 215, 222, 126, 118, 247, 181, 29, 
129, 193, 124, 152, 201, 225, 123, 222, 243, 158, 36, 160, 104, 100, 64, 148, 
15, 118, 118, 110, 188, 254, 250, 165, 171, 215, 94, 121, 254, 250, 47, 253, 
242, 175, 125, 239, 7, 62, 248, 55, 127, 236, 47, 254, 198, 111, 93, 248, 196, 
63, 252, 56, 230, 195, 62, 73, 129, 223, 152, 102, 4, 126, 240, 250, 27, 73, 
205, 48, 13, 154, 70, 68, 69, 193, 0, 4, 116, 249, 93, 148, 18, 101, 1, 7, 21, 
247, 18, 148, 178, 170, 102, 80, 133, 101, 8, 152, 138, 35, 143, 190, 229, 172, 
2, 92, 214, 84, 1, 0, 52, 247, 243, 7, 111, 189, 11
 8, 255, 
 214, 235, 34, 70, 206, 187, 138, 192, 84, 250, 120, 250, 236, 69, 10, 129, 
208, 208, 128, 208, 163, 111, 20, 81, 13, 68, 116, 111, 103, 135, 25, 45, 160, 
32, 2, 145, 40, 171, 16, 56, 54, 73, 49, 183, 79, 60, 253, 180, 152, 106, 33, 
176, 168, 170, 130, 105, 26, 173, 140, 186, 190, 95, 160, 235, 250, 197, 225, 
155, 47, 173, 94, 122, 66, 124, 72, 49, 165, 62, 197, 233, 84, 213, 38, 23, 
175, 224, 160, 241, 14, 131, 163, 217, 254, 1, 86, 92, 213, 193, 13, 234, 69, 
148, 24, 21, 169, 30, 97, 141, 102, 102, 218, 39, 73, 81, 98, 210, 36, 160, 
228, 150, 195, 51, 99, 0, 74, 125, 70, 211, 90, 165, 174, 171, 44, 34, 57, 247, 
93, 15, 162, 166, 0, 153, 204, 72, 12, 137, 81, 28, 17, 147, 151, 126, 109, 
124, 252, 135, 95, 250, 253, 31, 249, 233, 79, 188, 255, 187, 158, 254, 197, 
191, 247, 179, 51, 122, 124, 30, 217, 19, 51, 177, 160, 17, 231, 47, 124, 246, 
115, 234, 28, 162, 33, 97, 74, 154, 213, 178, 90, 202, 42, 185, 88, 239, 20, 
169, 212, 251, 18, 253, 81, 174, 56, 150, 11, 159, 216, 23, 
 210, 110
 , 217, 73, 106, 177, 231, 101, 43, 239, 209, 146, 242, 225, 222, 222, 157, 
215, 95, 154, 207, 231, 206, 13, 125, 213, 84, 85, 96, 36, 16, 211, 20, 47, 63, 
254, 68, 137, 98, 27, 163, 15, 149, 0, 42, 152, 154, 206, 78, 142, 82, 234, 
145, 120, 9, 145, 37, 96, 128, 20, 13, 216, 167, 44, 106, 139, 11, 231, 46, 
168, 112, 86, 80, 1, 49, 203, 70, 168, 58, 26, 13, 129, 40, 51, 156, 127, 255, 
247, 240, 202, 250, 202, 153, 115, 245, 104, 130, 204, 198, 0, 196, 97, 184, 
178, 114, 234, 172, 154, 154, 81, 53, 28, 247, 179, 133, 244, 109, 86, 9, 206, 
171, 10, 40, 4, 231, 99, 92, 204, 231, 237, 108, 190, 152, 119, 253, 201, 188, 
141, 41, 225, 178, 38, 138, 138, 184, 28, 195, 106, 78, 162, 142, 67, 223, 138, 
170, 40, 8, 152, 170, 22, 138, 1, 2, 48, 42, 163, 154, 19, 83, 2, 99, 5, 201, 
117, 136, 195, 254, 141, 159, 254, 217, 95, 253, 234, 238, 225, 239, 254, 235, 
143, 125, 247, 127, 242, 195, 0, 155, 158, 42, 68, 236, 166, 251, 183, 119, 30, 
66, 238, 135, 85, 109, 10, 89, 77, 204, 178, 138, 1
 54, 42, 
 154, 150, 189, 165, 16, 137, 197, 92, 6, 78, 184, 204, 75, 1, 51, 58, 231, 
154, 129, 111, 6, 228, 28, 18, 19, 113, 89, 201, 3, 57, 228, 64, 161, 38, 242, 
34, 22, 187, 104, 192, 236, 130, 243, 222, 187, 98, 211, 65, 211, 92, 215, 97, 
235, 236, 5, 33, 82, 64, 48, 8, 131, 177, 70, 49, 65, 49, 190, 191, 179, 67, 
76, 104, 84, 74, 45, 160, 36, 128, 106, 144, 68, 85, 1, 20, 85, 181, 160, 137, 
51, 64, 134, 12, 40, 170, 38, 73, 162, 192, 131, 235, 47, 76, 95, 251, 230, 
202, 246, 165, 246, 120, 127, 253, 244, 25, 98, 114, 129, 152, 221, 202, 249, 
107, 245, 202, 186, 137, 178, 115, 117, 61, 32, 195, 217, 241, 73, 140, 221, 
120, 101, 68, 4, 104, 226, 28, 239, 61, 188, 29, 147, 230, 108, 69, 171, 160, 
74, 143, 24, 150, 188, 100, 188, 2, 164, 130, 178, 80, 155, 181, 157, 169, 168, 
90, 22, 88, 116, 177, 48, 185, 21, 139, 69, 18, 132, 73, 141, 132, 80, 80, 217, 
65, 237, 226, 105, 127, 255, 147, 159, 248, 248, 207, 255, 218, 31, 252, 202, 
39, 126, 242, 163, 63, 241, 247, 162, 59, 235, 144, 6
 3, 251, 
 233, 79, 67, 32, 6, 240, 62, 148, 27, 190, 129, 137, 228, 242, 131, 34, 160, 
17, 8, 154, 228, 28, 251, 88, 52, 121, 244, 72, 66, 65, 72, 132, 236, 128, 25, 
153, 137, 25, 201, 147, 11, 20, 130, 175, 130, 171, 42, 231, 3, 18, 17, 123, 
174, 106, 23, 66, 240, 33, 212, 213, 210, 184, 160, 0, 42, 231, 46, 94, 98, 
174, 202, 99, 219, 33, 133, 122, 40, 162, 10, 89, 173, 223, 187, 127, 135, 137, 
12, 200, 74, 185, 147, 80, 21, 199, 235, 155, 237, 52, 17, 177, 100, 213, 226, 
112, 42, 114, 56, 53, 210, 212, 165, 238, 230, 189, 7, 93, 22, 162, 234, 205, 
207, 126, 234, 206, 31, 252, 179, 97, 53, 76, 185, 173, 199, 13, 168, 25, 209, 
230, 19, 239, 28, 98, 183, 153, 143, 7, 208, 15, 215, 214, 221, 120, 216, 30, 
30, 247, 179, 69, 224, 202, 161, 39, 32, 135, 20, 239, 221, 46, 187, 66, 70, 
38, 64, 83, 203, 154, 31, 5, 7, 9, 128, 12, 150, 47, 87, 134, 16, 189, 9, 146, 
2, 16, 131, 232, 66, 201, 4, 202, 216, 6, 202, 233, 172, 88, 59, 193, 72, 20, 
36, 69, 137, 221, 32, 223, 249, 195, 223, 255, 248, 
 127, 243
 , 87, 127, 225, 251, 254, 204, 127, 250, 119, 254, 201, 199, 251, 149, 243, 
93, 43, 146, 98, 221, 84, 75, 160, 37, 22, 98, 151, 129, 34, 2, 114, 1, 42, 
170, 196, 156, 83, 156, 209, 35, 75, 199, 210, 23, 178, 148, 244, 17, 151, 158, 
180, 171, 130, 11, 181, 247, 53, 251, 154, 93, 141, 190, 6, 98, 10, 129, 93, 
96, 246, 222, 59, 208, 37, 95, 89, 85, 53, 167, 243, 215, 158, 52, 116, 168, 
76, 192, 92, 85, 134, 160, 6, 162, 210, 45, 250, 227, 227, 99, 5, 3, 44, 71, 
225, 37, 184, 104, 24, 198, 11, 10, 162, 152, 13, 21, 81, 21, 12, 52, 171, 138, 
192, 188, 205, 157, 85, 209, 216, 140, 44, 27, 185, 230, 240, 250, 171, 111, 
125, 234, 159, 58, 51, 135, 198, 204, 102, 52, 98, 121, 239, 225, 87, 223, 251, 
204, 191, 252, 80, 122, 69, 22, 237, 214, 197, 43, 245, 234, 230, 206, 27, 119, 
178, 244, 108, 32, 146, 7, 141, 63, 121, 112, 19, 73, 241, 145, 65, 195, 216, 
140, 8, 20, 151, 231, 103, 84, 64, 139, 49, 106, 132, 100, 216, 103, 76, 57, 
230, 156, 186, 152, 22, 157, 152, 160, 153, 89, 86, 53
 , 81, 21
 , 69, 86, 201, 57, 27, 9, 165, 164, 73, 69, 52, 105, 138, 216, 222, 126, 254, 
211, 31, 251, 161, 31, 252, 209, 23, 110, 30, 252, 248, 95, 249, 171, 152, 129, 
144, 67, 237, 181, 252, 160, 229, 236, 185, 148, 73, 144, 26, 153, 65, 74, 154, 
98, 84, 205, 174, 248, 33, 138, 244, 196, 12, 202, 124, 152, 209, 27, 35, 176, 
18, 58, 100, 7, 68, 232, 8, 193, 171, 21, 44, 179, 99, 102, 118, 108, 132, 70, 
69, 206, 104, 38, 185, 9, 126, 251, 244, 185, 34, 110, 50, 118, 97, 180, 150, 
58, 51, 51, 21, 216, 221, 221, 85, 73, 128, 4, 144, 1, 1, 153, 180, 199, 196, 
240, 217, 47, 126, 230, 244, 133, 243, 89, 147, 25, 171, 7, 212, 172, 89, 5, 
116, 62, 155, 190, 118, 227, 213, 44, 204, 126, 140, 222, 0, 231, 26, 103, 8, 
116, 114, 253, 213, 60, 159, 158, 125, 250, 219, 147, 100, 95, 141, 102, 55, 
95, 106, 219, 235, 252, 214, 124, 184, 125, 113, 237, 204, 211, 106, 182, 121, 
238, 204, 124, 122, 178, 152, 78, 235, 181, 241, 252, 224, 96, 236, 88, 218, 
214, 59, 86, 41, 110, 55, 22, 101, 1, 114, 36, 13
 4, 108, 
 104, 0, 96, 100, 217, 80, 157, 187, 115, 160, 223, 243, 3, 127, 238, 183, 254, 
175, 223, 170, 9, 68, 33, 231, 98, 195, 50, 5, 52, 197, 36, 128, 229, 105, 67, 
152, 98, 230, 218, 169, 81, 233, 100, 32, 26, 200, 201, 226, 205, 127, 255, 79, 
127, 225, 166, 58, 139, 146, 255, 228, 159, 253, 200, 215, 62, 247, 25, 1, 178, 
2, 8, 122, 148, 15, 45, 231, 152, 156, 37, 139, 164, 20, 153, 27, 90, 62, 123, 
203, 72, 179, 56, 48, 128, 29, 59, 118, 21, 251, 154, 125, 69, 46, 176, 171, 
152, 106, 199, 1, 36, 3, 20, 36, 25, 63, 250, 122, 180, 84, 79, 66, 58, 117, 
225, 42, 242, 168, 228, 191, 216, 200, 249, 38, 89, 185, 177, 219, 238, 157, 
187, 165, 177, 12, 90, 168, 246, 0, 0, 170, 192, 129, 118, 239, 221, 216, 187, 
243, 230, 222, 253, 27, 7, 183, 223, 56, 120, 120, 103, 127, 247, 230, 189, 
183, 94, 126, 230, 107, 95, 152, 31, 79, 85, 197, 76, 136, 216, 85, 3, 231, 26, 
19, 81, 176, 217, 237, 59, 111, 252, 193, 111, 207, 239, 188, 54, 170, 29, 205, 
15, 58, 166, 187, 155, 219, 183, 231, 232, 155
 , 70, 18
 6, 28, 219, 238, 236, 149, 171, 49, 106, 240, 206, 7, 63, 123, 243, 101, 231, 
16, 10, 245, 122, 57, 234, 39, 4, 80, 83, 69, 213, 226, 211, 144, 98, 114, 179, 
155, 183, 238, 92, 88, 95, 255, 203, 63, 248, 209, 121, 59, 50, 181, 168, 81, 
20, 68, 177, 48, 243, 243, 82, 48, 74, 138, 40, 144, 136, 128, 8, 153, 150, 
162, 93, 48, 1, 235, 180, 223, 91, 64, 132, 209, 228, 218, 181, 39, 21, 68, 
192, 20, 203, 97, 106, 153, 153, 40, 191, 231, 152, 52, 245, 157, 129, 85, 131, 
154, 254, 136, 46, 133, 112, 169, 145, 101, 98, 239, 216, 5, 10, 21, 249, 64, 
222, 51, 57, 0, 208, 36, 142, 57, 84, 129, 217, 17, 185, 130, 149, 7, 81, 16, 
211, 148, 47, 61, 241, 54, 51, 49, 52, 2, 32, 199, 236, 72, 69, 69, 173, 207, 
253, 225, 254, 3, 52, 37, 40, 102, 1, 92, 190, 141, 136, 248, 48, 169, 39, 27, 
213, 112, 45, 52, 163, 80, 143, 140, 240, 240, 248, 232, 213, 55, 110, 247, 11, 
73, 177, 207, 177, 53, 3, 43, 202, 64, 23, 136, 61, 152, 33, 66, 158, 199, 189, 
23, 94, 122, 229, 119, 255, 207, 151, 63, 245, 5
 9, 95, 1
 22, 238, 181, 87, 15, 238, 191, 185, 247, 96, 255, 206, 141, 164, 54, 95, 116, 
201, 180, 158, 172, 167, 12, 43, 206, 61, 120, 233, 107, 180, 180, 26, 21, 212, 
21, 2, 98, 50, 204, 236, 202, 252, 197, 202, 38, 29, 17, 0, 68, 245, 87, 62, 
246, 137, 249, 238, 131, 95, 254, 59, 63, 99, 254, 116, 31, 157, 25, 129, 113, 
33, 111, 131, 145, 1, 121, 50, 81, 203, 41, 151, 95, 152, 90, 86, 120, 164, 
143, 67, 238, 189, 239, 99, 250, 99, 223, 245, 157, 36, 89, 11, 252, 189, 144, 
33, 16, 136, 184, 56, 25, 99, 18, 145, 44, 57, 133, 170, 9, 136, 14, 150, 18, 
79, 130, 229, 180, 9, 17, 140, 209, 1, 21, 201, 29, 3, 48, 18, 154, 89, 142, 
61, 129, 186, 224, 203, 165, 4, 200, 96, 98, 75, 208, 93, 30, 52, 131, 141, 
205, 83, 136, 102, 198, 192, 228, 199, 195, 46, 37, 48, 19, 203, 251, 71, 135, 
109, 90, 208, 82, 193, 109, 136, 196, 64, 201, 128, 84, 170, 129, 247, 126, 92, 
24, 135, 199, 135, 187, 207, 126, 227, 185, 168, 89, 201, 161, 15, 204, 222, 
59, 73, 105, 129, 174, 82, 51, 51, 65, 98, 235, 231,
  232, 13
 8, 159, 209, 229, 197, 226, 222, 235, 111, 238, 222, 184, 57, 153, 140, 70, 
55, 31, 76, 158, 142, 27, 223, 63, 1, 10, 139, 155, 47, 54, 235, 155, 27, 103, 
206, 79, 95, 127, 227, 248, 246, 27, 75, 6, 124, 57, 245, 227, 183, 132, 177, 
42, 2, 4, 168, 14, 77, 138, 249, 51, 171, 9, 34, 252, 230, 111, 255, 206, 245, 
27, 15, 254, 143, 255, 237, 127, 249, 173, 127, 245, 21, 193, 206, 83, 4, 67, 
1, 98, 204, 140, 166, 197, 73, 151, 51, 130, 149, 95, 190, 74, 57, 59, 32, 177, 
87, 6, 39, 86, 169, 2, 100, 203, 25, 203, 22, 13, 193, 140, 11, 57, 72, 69, 82, 
148, 212, 119, 228, 168, 170, 188, 89, 114, 127, 196, 215, 249, 200, 217, 178, 
188, 90, 176, 44, 169, 105, 201, 82, 200, 153, 61, 243, 50, 211, 71, 96, 168, 
70, 160, 130, 0, 162, 121, 251, 252, 53, 65, 207, 76, 198, 4, 192, 174, 30, 
199, 18, 5, 212, 116, 176, 115, 31, 164, 88, 41, 173, 216, 170, 16, 12, 205, 
114, 22, 66, 12, 174, 98, 2, 114, 252, 229, 47, 125, 102, 177, 104, 205, 57, 
84, 69, 53, 2, 217, 58, 119, 233, 173, 235, 175, 112
 , 109, 7
 0, 12, 42, 165, 117, 168, 89, 208, 49, 48, 151, 239, 42, 9, 28, 28, 79, 15, 
94, 122, 206, 94, 126, 238, 229, 127, 253, 191, 179, 27, 196, 174, 115, 206, 
109, 78, 86, 145, 140, 173, 45, 219, 102, 64, 44, 194, 214, 76, 229, 12, 80, 
28, 192, 96, 153, 204, 64, 52, 139, 152, 96, 97, 164, 228, 23, 159, 251, 210, 
79, 254, 244, 253, 95, 248, 219, 63, 245, 226, 171, 123, 215, 95, 126, 145, 41, 
154, 129, 101, 22, 197, 36, 84, 212, 37, 34, 152, 241, 209, 221, 189, 64, 242, 
217, 169, 36, 201, 252, 205, 103, 159, 89, 181, 12, 18, 163, 40, 146, 51, 177, 
82, 231, 51, 213, 216, 231, 148, 90, 53, 109, 234, 129, 25, 154, 20, 204, 89, 
137, 213, 45, 77, 193, 69, 140, 141, 192, 14, 200, 21, 212, 182, 1, 42, 42, 
144, 161, 43, 208, 58, 87, 96, 228, 88, 8, 68, 160, 42, 114, 238, 242, 227, 
197, 124, 231, 204, 8, 157, 227, 0, 10, 138, 38, 217, 118, 30, 220, 23, 83, 45, 
76, 157, 71, 149, 5, 176, 108, 210, 41, 100, 38, 100, 246, 185, 143, 211, 217, 
66, 150, 175, 166, 168, 204, 98, 120, 247, 173, 155, 1
 96, 206,
  146, 148, 105, 111, 233, 116, 21, 11, 11, 1, 50, 121, 112, 30, 153, 128, 24, 
141, 192, 56, 39, 72, 93, 207, 92, 5, 223, 104, 154, 75, 63, 117, 200, 14, 61, 
163, 39, 36, 34, 38, 114, 12, 172, 200, 162, 75, 95, 160, 1, 24, 177, 128, 47, 
87, 182, 90, 6, 80, 194, 118, 239, 222, 141, 191, 246, 19, 63, 87, 187, 246, 
63, 251, 179, 223, 215, 219, 208, 128, 98, 209, 81, 161, 152, 130, 138, 2, 128, 
169, 230, 44, 10, 229, 4, 11, 130, 146, 147, 24, 85, 143, 61, 253, 29, 183, 
102, 114, 56, 77, 243, 69, 78, 6, 185, 80, 203, 68, 251, 148, 114, 206, 154, 
197, 87, 129, 25, 77, 197, 202, 78, 200, 30, 61, 6, 232, 209, 63, 144, 12, 208, 
150, 166, 71, 43, 118, 172, 132, 5, 207, 9, 4, 229, 212, 79, 132, 40, 132, 36, 
41, 215, 77, 179, 181, 125, 154, 144, 0, 28, 32, 213, 131, 161, 230, 172, 96, 
170, 210, 205, 103, 199, 199, 7, 84, 160, 141, 10, 130, 6, 32, 2, 34, 146, 65, 
213, 68, 1, 9, 152, 191, 241, 220, 151, 231, 211, 41, 249, 80, 108, 123, 133, 
238, 11, 200, 134, 98, 26, 161, 12, 107, 72, 145,
  208, 17
 8, 89, 202, 132, 10, 206, 23, 3, 234, 82, 235, 92, 190, 59, 100, 14, 205, 96, 
80, 173, 55, 2, 104, 40, 150, 16, 20, 192, 212, 36, 67, 20, 97, 242, 88, 84, 
18, 182, 84, 11, 136, 105, 33, 156, 91, 153, 188, 176, 170, 2, 98, 60, 189, 6, 
191, 252, 75, 191, 250, 61, 223, 247, 161, 31, 252, 11, 127, 238, 55, 127, 255, 
203, 59, 119, 119, 205, 28, 41, 128, 129, 244, 38, 200, 106, 2, 36, 166, 10, 
73, 11, 107, 20, 192, 140, 171, 247, 127, 199, 119, 189, 235, 226, 218, 223, 
120, 238, 115, 189, 129, 15, 222, 36, 170, 153, 168, 100, 73, 146, 18, 17, 85, 
85, 69, 38, 6, 136, 224, 190, 197, 55, 51, 88, 190, 37, 195, 163, 254, 63, 226, 
178, 106, 140, 132, 106, 41, 145, 22, 41, 25, 33, 58, 64, 86, 52, 36, 148, 28, 
53, 119, 103, 206, 95, 64, 114, 143, 124, 95, 92, 13, 134, 125, 151, 76, 52, 
171, 238, 236, 239, 128, 164, 66, 21, 23, 52, 43, 38, 94, 21, 73, 73, 82, 178, 
148, 20, 100, 62, 59, 184, 113, 227, 45, 0, 51, 144, 98, 179, 32, 246, 96, 104, 
41, 155, 153, 1, 106, 78, 154, 59, 48, 35, 31, 
 128, 157
 , 1, 170, 138, 106, 66, 66, 246, 53, 115, 69, 206, 19, 57, 34, 38, 98, 36, 36, 
235, 103, 179, 118, 118, 60, 159, 206, 23, 221, 172, 235, 231, 125, 92, 164, 
162, 147, 6, 64, 53, 41, 79, 213, 165, 190, 70, 151, 31, 101, 100, 68, 79, 197, 
2, 239, 152, 37, 69, 15, 241, 193, 222, 222, 207, 253, 210, 175, 255, 87, 31, 
249, 206, 247, 190, 247, 3, 243, 110, 144, 13, 84, 13, 212, 72, 146, 154, 170, 
136, 149, 85, 206, 242, 156, 143, 224, 28, 14, 27, 234, 22, 129, 220, 96, 92, 
51, 35, 17, 3, 96, 138, 57, 167, 172, 42, 85, 83, 21, 169, 152, 1, 219, 82, 
246, 89, 62, 2, 143, 108, 218, 138, 197, 108, 143, 197, 104, 14, 8, 150, 163, 
169, 217, 242, 78, 5, 160, 106, 42, 184, 4, 59, 25, 170, 158, 187, 114, 205, 0, 
21, 72, 1, 140, 89, 253, 64, 10, 148, 72, 244, 224, 254, 46, 66, 249, 25, 177, 
140, 216, 196, 76, 36, 138, 36, 81, 137, 221, 34, 247, 139, 207, 125, 230, 223, 
117, 253, 2, 16, 65, 80, 76, 160, 92, 29, 133, 49, 85, 0, 234, 38, 18, 231, 26, 
251, 98, 57, 70, 102, 96, 54, 53, 19, 69, 36,
  98, 118
 , 205, 128, 195, 144, 169, 246, 97, 48, 104, 194, 202, 200, 143, 86, 38, 171, 
91, 235, 43, 91, 235, 107, 155, 235, 147, 205, 181, 102, 117, 165, 106, 6, 68, 
30, 201, 23, 140, 39, 34, 228, 94, 246, 143, 246, 193, 32, 41, 170, 145, 25, 
106, 54, 73, 166, 130, 49, 231, 76, 6, 104, 27, 235, 131, 181, 21, 247, 223, 
253, 207, 191, 242, 228, 83, 27, 255, 195, 143, 254, 72, 111, 219, 25, 125, 2, 
237, 114, 234, 23, 49, 197, 28, 147, 102, 144, 114, 212, 2, 32, 51, 183, 58, 
89, 201, 6, 232, 184, 216, 181, 9, 73, 5, 36, 169, 228, 236, 188, 47, 148, 70, 
69, 50, 2, 91, 202, 38, 205, 254, 99, 41, 57, 46, 125, 189, 136, 132, 70, 96, 
96, 146, 83, 33, 255, 21, 59, 21, 18, 26, 22, 171, 113, 150, 156, 234, 166, 
217, 220, 62, 189, 60, 61, 41, 250, 186, 17, 53, 5, 149, 44, 189, 164, 157, 
189, 7, 69, 163, 146, 151, 36, 101, 80, 21, 137, 93, 78, 41, 231, 36, 144, 187, 
156, 238, 223, 187, 183, 244, 10, 22, 214, 51, 62, 210, 70, 250, 128, 236, 1, 
48, 75, 18, 201, 154, 179, 169, 33, 113, 185, 214, 8, 9
 , 85, 20
 1, 57, 49, 81, 5, 98, 71, 85, 237, 170, 198, 1, 118, 11, 93, 180, 121, 62, 
235, 23, 211, 56, 155, 247, 139, 163, 78, 59, 209, 108, 64, 6, 168, 154, 77, 
197, 76, 41, 105, 82, 14, 98, 224, 235, 241, 120, 237, 76, 61, 57, 29, 86, 183, 
109, 176, 29, 134, 43, 193, 215, 34, 230, 152, 147, 24, 179, 61, 113, 126, 244, 
243, 127, 255, 31, 126, 237, 181, 151, 255, 199, 31, 255, 111, 87, 183, 222, 
157, 114, 21, 66, 224, 38, 96, 8, 206, 51, 114, 5, 196, 229, 6, 40, 90, 111, 
175, 174, 117, 194, 170, 0, 74, 38, 32, 106, 49, 69, 201, 17, 1, 66, 229, 11, 
201, 186, 28, 107, 0, 192, 45, 21, 63, 143, 82, 21, 75, 200, 37, 41, 20, 166, 
153, 46, 253, 112, 197, 22, 11, 8, 88, 164, 102, 229, 195, 33, 134, 34, 103, 
175, 92, 201, 224, 60, 24, 97, 54, 14, 85, 51, 204, 93, 167, 42, 217, 242, 241, 
225, 97, 219, 78, 61, 21, 175, 163, 10, 18, 154, 154, 104, 142, 217, 82, 182, 
220, 75, 55, 219, 185, 123, 71, 114, 132, 146, 131, 214, 192, 204, 198, 88, 54, 
114, 102, 74, 192, 16, 154, 64, 121, 101, 125, 117, 
 111, 247
 , 208, 84, 216, 85, 102, 96, 169, 181, 165, 153, 196, 1, 100, 75, 17, 42, 38, 
224, 97, 168, 182, 55, 135, 132, 89, 186, 188, 188, 45, 35, 37, 17, 136, 41, 
90, 182, 164, 138, 144, 197, 204, 64, 212, 124, 168, 198, 1, 148, 100, 235, 
220, 165, 141, 179, 168, 133, 97, 201, 230, 68, 56, 235, 225, 254, 238, 130, 
147, 38, 65, 38, 0, 61, 181, 105, 255, 246, 183, 255, 205, 179, 207, 95, 255, 
187, 63, 243, 195, 255, 248, 95, 126, 238, 133, 231, 191, 48, 246, 39, 101, 
197, 171, 133, 88, 89, 204, 178, 180, 249, 216, 214, 105, 141, 187, 206, 98, 
212, 160, 160, 125, 234, 82, 234, 179, 230, 106, 80, 17, 130, 154, 217, 114, 6, 
141, 86, 76, 227, 255, 191, 131, 40, 41, 160, 0, 176, 22, 111, 117, 206, 125, 
113, 216, 24, 114, 73, 62, 170, 230, 165, 91, 88, 20, 178, 157, 186, 244, 56, 
60, 34, 100, 19, 64, 240, 190, 237, 147, 154, 168, 200, 238, 253, 187, 200, 
170, 203, 55, 0, 84, 83, 144, 148, 250, 69, 78, 189, 104, 84, 201, 47, 191, 
240, 245, 163, 54, 3, 136, 101, 48, 98, 100, 80, 73, 84, 110, 
 62, 203,
  71, 189, 16, 208, 100, 56, 220, 152, 184, 189, 157, 61, 16, 3, 23, 152, 43, 
181, 108, 169, 55, 48, 73, 11, 231, 155, 180, 152, 50, 2, 134, 81, 240, 121, 
209, 78, 29, 18, 25, 18, 170, 26, 160, 169, 35, 2, 79, 102, 144, 51, 65, 54, 
205, 17, 83, 202, 152, 75, 152, 12, 0, 38, 147, 145, 218, 50, 17, 103, 4, 37, 
51, 101, 152, 103, 199, 83, 38, 21, 67, 85, 203, 125, 55, 170, 160, 166, 197, 
71, 255, 198, 223, 254, 233, 159, 248, 145, 15, 125, 224, 221, 191, 250, 171, 
255, 196, 108, 33, 70, 130, 10, 197, 98, 102, 96, 121, 250, 230, 238, 94, 186, 
123, 160, 228, 68, 173, 56, 41, 115, 78, 206, 59, 118, 94, 37, 155, 81, 97, 73, 
3, 2, 138, 61, 122, 15, 48, 192, 210, 165, 44, 211, 50, 0, 144, 162, 23, 84, 
75, 233, 209, 223, 75, 65, 89, 53, 26, 32, 161, 83, 72, 160, 50, 28, 53, 147, 
201, 22, 153, 67, 99, 68, 170, 170, 202, 148, 52, 155, 152, 74, 204, 59, 119, 
239, 16, 152, 105, 177, 100, 27, 136, 72, 234, 211, 98, 17, 99, 39, 34, 160, 
112, 50, 61, 238, 51, 2, 168, 42, 90, 140, 230, 145, 40
 , 88, 23
 6, 192, 33, 34, 171, 164, 148, 122, 70, 246, 163, 53, 38, 118, 129, 83, 76, 
38, 9, 29, 147, 111, 68, 21, 52, 73, 55, 101, 116, 190, 153, 228, 110, 234, 67, 
63, 153, 108, 162, 42, 25, 89, 54, 49, 1, 134, 108, 38, 81, 65, 53, 171, 83, 
139, 237, 225, 131, 59, 55, 82, 237, 92, 219, 238, 58, 95, 35, 5, 172, 60, 145, 
11, 193, 147, 31, 122, 199, 200, 206, 51, 0, 57, 15, 25, 80, 65, 20, 49, 97, 
223, 107, 236, 13, 18, 83, 191, 194, 211, 159, 248, 201, 255, 233, 47, 255, 
165, 191, 244, 247, 127, 238, 199, 254, 230, 223, 253, 199, 135, 47, 253, 251, 
229, 147, 92, 205, 76, 8, 22, 59, 135, 211, 205, 225, 88, 21, 128, 36, 101, 
209, 156, 208, 172, 170, 43, 180, 34, 132, 195, 255, 207, 171, 139, 234, 150, 
150, 209, 114, 78, 92, 202, 97, 117, 233, 109, 66, 200, 49, 170, 10, 21, 206, 
88, 217, 205, 144, 45, 53, 102, 42, 166, 105, 243, 220, 21, 36, 111, 38, 10, 
68, 10, 161, 158, 180, 41, 153, 170, 169, 181, 49, 158, 204, 143, 29, 148, 141, 
14, 171, 101, 16, 77, 57, 37, 73, 146, 133, 136, 212, 2
 49, 12, 
 202, 142, 179, 168, 170, 130, 198, 28, 133, 156, 0, 59, 88, 244, 64, 72, 190, 
241, 97, 68, 161, 74, 128, 92, 121, 239, 125, 234, 162, 164, 196, 92, 19, 87, 
228, 68, 19, 0, 104, 92, 28, 185, 209, 122, 24, 174, 175, 79, 42, 39, 64, 196, 
33, 128, 27, 56, 112, 53, 97, 80, 115, 136, 144, 36, 247, 139, 217, 209, 201, 
241, 162, 109, 31, 236, 11, 251, 0, 123, 187, 32, 32, 90, 100, 112, 76, 64, 6, 
224, 138, 76, 192, 17, 147, 39, 207, 117, 224, 207, 127, 246, 223, 57, 18, 79, 
182, 232, 218, 236, 135, 167, 207, 158, 30, 84, 236, 101, 239, 99, 191, 242, 
139, 95, 125, 246, 149, 159, 249, 137, 31, 252, 103, 191, 113, 230, 215, 127, 
253, 151, 150, 1, 47, 80, 130, 248, 240, 141, 147, 119, 60, 61, 80, 177, 108, 
154, 77, 205, 172, 10, 21, 20, 147, 141, 129, 45, 7, 163, 6, 0, 229, 88, 246, 
31, 233, 117, 241, 91, 130, 93, 89, 234, 145, 115, 46, 79, 8, 40, 76, 119, 98, 
82, 2, 52, 131, 12, 42, 8, 120, 234, 220, 149, 37, 109, 176, 168, 50, 61, 74, 
238, 193, 32, 171, 236, 238, 63, 36, 201, 86, 240,
  92, 44,
  38, 162, 150, 69, 178, 228, 88, 38, 18, 186, 140, 26, 91, 29, 220, 162, 207, 
0, 96, 150, 53, 10, 58, 143, 136, 192, 30, 139, 3, 83, 45, 182, 16, 86, 104, 
92, 215, 237, 108, 102, 18, 53, 47, 184, 4, 103, 217, 155, 101, 144, 20, 231, 
135, 52, 48, 213, 106, 58, 107, 161, 188, 59, 46, 71, 15, 140, 153, 128, 81, 
17, 152, 141, 217, 55, 21, 101, 114, 82, 100, 87, 229, 109, 159, 128, 202, 142, 
156, 48, 35, 18, 152, 18, 103, 85, 54, 12, 162, 139, 184, 80, 205, 102, 150, 
187, 206, 13, 130, 115, 97, 52, 89, 219, 60, 211, 53, 93, 218, 185, 245, 252, 
127, 253, 195, 127, 235, 167, 126, 252, 135, 158, 122, 226, 31, 252, 247, 127, 
253, 199, 44, 222, 5, 16, 204, 179, 207, 62, 247, 214, 71, 255, 139, 15, 115, 
47, 217, 171, 89, 38, 2, 32, 180, 44, 186, 60, 247, 62, 66, 169, 131, 150, 152, 
110, 153, 205, 48, 22, 27, 71, 129, 186, 133, 33, 57, 7, 57, 75, 142, 72, 101, 
43, 207, 180, 212, 222, 40, 32, 155, 169, 196, 228, 107, 255, 248, 59, 255, 24, 
147, 67, 34, 66, 114, 62, 84, 205, 122, 140, 89,
  77, 147
 , 197, 91, 175, 94, 159, 159, 28, 20, 117, 162, 130, 153, 138, 106, 150, 216, 
231, 216, 50, 44, 111, 75, 165, 98, 238, 25, 145, 44, 27, 1, 146, 169, 154, 68, 
208, 108, 146, 65, 147, 161, 48, 5, 69, 74, 41, 117, 93, 183, 136, 93, 217, 
235, 1, 18, 133, 1, 148, 183, 42, 211, 178, 187, 30, 141, 87, 201, 121, 88, 46, 
54, 208, 216, 12, 64, 17, 205, 64, 65, 77, 132, 144, 128, 28, 58, 79, 200, 236, 
60, 19, 178, 99, 100, 95, 102, 165, 128, 100, 84, 176, 203, 102, 8, 4, 232, 17, 
251, 156, 181, 80, 169, 53, 33, 135, 119, 189, 231, 219, 26, 31, 38, 195, 225, 
104, 16, 134, 195, 48, 174, 210, 39, 127, 239, 63, 140, 6, 163, 159, 250, 91, 
127, 253, 63, 124, 238, 141, 118, 113, 15, 100, 118, 120, 255, 250, 131, 111, 
124, 121, 122, 114, 120, 164, 38, 253, 130, 60, 131, 150, 147, 76, 73, 146, 0, 
146, 153, 45, 199, 82, 140, 72, 88, 160, 236, 143, 116, 54, 204, 193, 133, 26, 
41, 72, 238, 85, 50, 26, 23, 62, 124, 161, 255, 149, 235, 75, 179, 152, 196, 
51, 151, 174, 110, 157, 185, 4, 132, 14, 9, 2
 5, 235, 
 209, 68, 153, 68, 197, 76, 98, 140, 175, 94, 127, 78, 179, 0, 162, 169, 148, 
77, 148, 101, 201, 49, 153, 244, 69, 228, 184, 28, 82, 2, 120, 70, 68, 72, 73, 
205, 213, 0, 132, 32, 75, 210, 187, 100, 45, 51, 15, 114, 93, 74, 109, 204, 
106, 2, 42, 197, 23, 14, 228, 153, 61, 58, 135, 236, 49, 84, 43, 235, 27, 131, 
193, 16, 151, 187, 85, 64, 116, 75, 175, 3, 115, 201, 24, 0, 147, 34, 129, 115, 
128, 206, 3, 19, 16, 48, 149, 140, 98, 97, 105, 34, 58, 100, 102, 69, 100, 66, 
66, 98, 102, 132, 172, 130, 196, 132, 12, 228, 98, 76, 231, 207, 93, 32, 181, 
20, 19, 244, 157, 196, 36, 185, 171, 93, 251, 236, 115, 207, 125, 241, 11, 95, 
254, 217, 31, 249, 139, 159, 254, 194, 255, 19, 115, 55, 146, 254, 181, 157, 
189, 99, 116, 57, 117, 4, 66, 104, 166, 186, 124, 178, 46, 53, 234, 101, 217, 
140, 96, 240, 255, 2, 173, 210, 203, 57, 54, 235, 6, 183, 0, 0, 0, 0, 73, 69, 
78, 68, 174, 66, 96, 130
+    }; 
+  struct SolutionData thumbnail_torsten_sol[] =
+    {
+      { 
+       EXTRACTOR_METATYPE_IMAGE_DIMENSIONS,
+       EXTRACTOR_METAFORMAT_UTF8,
+       "text/plain",
+       "1600x1200",
+       strlen ("1600x1200") + 1,
+       0 
+      },
+      { 
+       EXTRACTOR_METATYPE_THUMBNAIL,
+       EXTRACTOR_METAFORMAT_BINARY,
+       "image/png",
+       (void *) thumbnail_data, 
+       sizeof (thumbnail_data),
+       0 
+      },
+      { 0, 0, NULL, NULL, 0, -1 }
+    };
+  struct ProblemSet ps[] =
+    {
+      { "testdata/thumbnail_torsten.jpg",
+       thumbnail_torsten_sol },
+      { NULL, NULL }
+    };
+  return ET_main ("thumbnailgtk", ps);
+}
+
+/* end of test_thumbnailgtk.c */

Added: Extractor/src/plugins/testdata/thumbnail_torsten.jpg
===================================================================
(Binary files differ)


Property changes on: Extractor/src/plugins/testdata/thumbnail_torsten.jpg
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Copied: Extractor/src/plugins/thumbnailgtk_extractor.c (from rev 23244, 
Extractor/src/plugins/old/thumbnailgtk_extractor.c)
===================================================================
--- Extractor/src/plugins/thumbnailgtk_extractor.c                              
(rev 0)
+++ Extractor/src/plugins/thumbnailgtk_extractor.c      2012-08-15 21:06:57 UTC 
(rev 23245)
@@ -0,0 +1,236 @@
+/*
+     This file is part of libextractor.
+     (C) 2005, 2009, 2012 Vidyut Samanta and Christian Grothoff
+
+     libextractor is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published
+     by the Free Software Foundation; either version 3, or (at your
+     option) any later version.
+
+     libextractor is distributed in the hope that it will be useful, but
+     WITHOUT ANY WARRANTY; without even the implied warranty of
+     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+     General Public License for more details.
+
+     You should have received a copy of the GNU General Public License
+     along with libextractor; see the file COPYING.  If not, write to the
+     Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+     Boston, MA 02111-1307, USA.
+ */
+/**
+ * @file plugins/thumbnailgtk_extractor.c
+ * @author Christian Grothoff
+ * @brief this extractor produces a binary (!) encoded
+ * thumbnail of images (using gdk pixbuf).  The bottom
+ * of the file includes a decoder method that can be used
+ * to reproduce the 128x128 PNG thumbnails.  We use
+ * libmagic to test if the input data is actually an
+ * image before trying to give it to gtk.
+ */
+#include "platform.h"
+#include "extractor.h"
+#include <magic.h>
+#include <glib.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+
+/**
+ * Target size for the thumbnails (width and height).
+ */
+#define THUMBSIZE 128
+
+/**
+ * Maximum image size supported (to avoid unreasonable
+ * allocations)
+ */
+#define MAX_IMAGE_SIZE (32 * 1024 * 1024)
+
+
+/**
+ * Global handle to MAGIC data.
+ */
+static magic_t magic;
+
+
+/**
+ * Main method for the thumbnailer plugin.
+ *
+ * @param ec extraction context
+ */
+void
+EXTRACTOR_thumbnailgtk_extract_method (struct EXTRACTOR_ExtractContext *ec)
+{
+  GdkPixbufLoader *loader;
+  GdkPixbuf *in;
+  GdkPixbuf *out;
+  size_t length;
+  char *thumb;
+  unsigned long width;
+  unsigned long height;
+  char format[64];
+  void *data;
+  uint64_t size;
+  size_t off;
+  ssize_t iret;
+  void *buf;
+  const char *mime;
+
+  iret = ec->read (ec->cls,
+                  &data,
+                  16 * 1024);
+  if (-1 == iret)
+    return;
+  if (NULL == (mime = magic_buffer (magic, data, iret)))
+    return;
+  if (0 != strncmp (mime,
+                   "image/",
+                   strlen ("image/")))
+    return; /* not an image */
+
+  /* read entire image into memory */
+  size = ec->get_size (ec->cls);
+  if (UINT64_MAX == size)
+    size = MAX_IMAGE_SIZE; /* unknown size, cap at max */
+  if (size > MAX_IMAGE_SIZE)
+    return; /* FAR too big to be an image */
+  if (NULL == (buf = malloc (size)))
+    return; /* too big to fit into memory on this system */
+
+  /* start with data already read */
+  memcpy (buf, data, iret);
+  off = iret;
+  while (off < size)
+    {
+      iret = ec->read (ec->cls, &data, size - off);
+      if (iret <= 0)
+       {
+         /* io error */
+         free (buf);
+         return;
+       }
+      memcpy (buf + off, data, iret);
+      off += iret;
+    }
+
+  loader = gdk_pixbuf_loader_new ();
+  gdk_pixbuf_loader_write (loader, 
+                          buf, 
+                          size, NULL);
+  free (buf);
+  in = gdk_pixbuf_loader_get_pixbuf (loader);
+  gdk_pixbuf_loader_close (loader, NULL);
+  if (NULL == in)
+    {
+      g_object_unref (loader);
+      return;
+    }
+  g_object_ref (in);
+  g_object_unref (loader);
+  height = gdk_pixbuf_get_height (in);
+  width = gdk_pixbuf_get_width (in);
+  snprintf (format, 
+           sizeof (format),
+           "%ux%u",
+           (unsigned int) width, 
+           (unsigned int) height);
+  if (0 != ec->proc (ec->cls,
+                    "thumbnailgtk",
+                    EXTRACTOR_METATYPE_IMAGE_DIMENSIONS,
+                    EXTRACTOR_METAFORMAT_UTF8,
+                    "text/plain",
+                    format,
+                    strlen (format) + 1))
+    {
+      g_object_unref (in);
+      return;
+    }
+  if ((height <= THUMBSIZE) && (width <= THUMBSIZE))
+    {
+      g_object_unref (in);
+      return;
+    }
+  if (height > THUMBSIZE)
+    {
+      width = width * THUMBSIZE / height;
+      height = THUMBSIZE;
+    }
+  if (width > THUMBSIZE)
+    {
+      height = height * THUMBSIZE / width;
+      width = THUMBSIZE;
+    }
+  if ( (0 == height) || (0 == width) )
+    {
+      g_object_unref (in);
+      return;
+    }
+  out = gdk_pixbuf_scale_simple (in, width, height,
+                                GDK_INTERP_BILINEAR);
+  g_object_unref (in);
+  thumb = NULL;
+  length = 0;
+  if (NULL == out)
+    return;
+  if (! gdk_pixbuf_save_to_buffer (out, &thumb, 
+                                  &length, 
+                                  "png", NULL, 
+                                  "compression", "9", 
+                                  NULL))
+    {
+      g_object_unref (out);
+      return;
+    }
+  g_object_unref (out);
+  if (NULL == thumb)
+    return;
+  ec->proc (ec->cls,
+           "thumbnailgtk",
+           EXTRACTOR_METATYPE_THUMBNAIL,
+           EXTRACTOR_METAFORMAT_BINARY,
+           "image/png",
+           thumb, length);  
+  free (thumb);
+}
+
+
+/**
+ * This plugin sometimes is installed under the alias 'thumbnail'.
+ * So we need to provide a second entry method.
+ *
+ * @param ec extraction context
+ */
+void
+EXTRACTOR_thumbnail_extract_method (struct EXTRACTOR_ExtractContext *ec)
+{
+  EXTRACTOR_thumbnailgtk_extract_method (ec);
+}
+
+
+/**
+ * Initialize glib and load magic file.
+ */
+void __attribute__ ((constructor)) 
+ole_gobject_init ()
+{
+  g_type_init ();
+  magic = magic_open (MAGIC_MIME_TYPE);
+  if (0 != magic_load (magic, NULL))
+    {
+      /* FIXME: how to deal with errors? */
+    }
+}
+
+
+/**
+ * Destructor for the library, cleans up.
+ */
+void __attribute__ ((destructor)) 
+mime_ltdl_fini () 
+{
+  if (NULL != magic)
+    {
+      magic_close (magic);
+      magic = NULL;
+    }
+}
+
+/* end of thumbnailgtk_extractor.c */




reply via email to

[Prev in Thread] Current Thread [Next in Thread]